/**
 * PTR Product Page — single-product styles (v0.5.8).
 * Full-width decision-led layout for PTR Press product pages.
 * Scoped to .ptr-pp; targets both WooCommerce markup and the JS-built buy box.
 */

/* ---------- Full width: undo Storefront's single-product sidebar squeeze ---------- */
.ptr-pp-fullwidth .site-content { padding-top: 0 !important; }
.ptr-pp-fullwidth .content-area,
.ptr-pp-fullwidth #primary { width: 100% !important; margin: 0 !important; padding-top: 16px !important; float: none !important; }
.ptr-pp-fullwidth main.site-main,
.ptr-pp-fullwidth .site-main { max-width: 100% !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.ptr-pp-fullwidth #secondary,
.ptr-pp-fullwidth .widget-area { display: none !important; }
.ptr-pp-fullwidth .site-content .col-full { max-width: 1440px; }

/* ---------- Container + tokens ---------- */
.ptr-pp {
	--teal: #23515b; --teal-dark: #1b3f47; --plum: #96588a; --plum-dark: #7c4573;
	--coral: #e76f51; --coral-dark: #d65b3d; --gold: #e8b64c; --green: #2e8b57;
	--ink: #28323a; --muted: #5c6b70; --line: #e2e6e7; --soft: #f4f6f6;
	--shadow: 0 18px 50px rgba(27,63,71,.10);

	max-width: 1440px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 0 44px;
	font-family: "Source Sans Pro", Helvetica, Arial, sans-serif;
	color: var(--ink);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
.ptr-pp .post-edit-link { display: none; }

/* Breadcrumb — override Storefront's centered .col-full wrapper so it left-aligns with the card */
.ptr-pp__crumb {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	color: #747b80;
	padding: 10px 0 12px;
}
.ptr-pp__crumb a {
	color: #72777b;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ptr-pp__crumb a:hover { color: var(--teal); }
.ptr-pp__crumb .storefront-breadcrumb,
.ptr-pp__crumb .col-full { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
.ptr-pp__crumb .woocommerce-breadcrumb { text-align: left !important; }

/* ---------- Product hero ---------- */
.ptr-pp__hero {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--shadow);
	padding: 28px;
	display: grid;
	grid-template-columns: minmax(360px, 42%) minmax(0, 1fr);
	gap: 34px;
	align-items: start;
}
/* Neutralize WooCommerce's default 48% float on the gallery + summary so the grid controls sizing. */
.ptr-pp .ptr-pp__gallery,
.ptr-pp .ptr-pp__summary,
.ptr-pp .woocommerce-product-gallery,
.ptr-pp .summary.entry-summary { width: 100% !important; float: none !important; margin: 0 !important; }

/* Gallery */
.ptr-pp__media {
	position: sticky;
	top: 18px;
	min-width: 0;
}
.ptr-pp__gallery {
	background: #f8fbfb;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 18px;
	overflow: visible;
}
.ptr-pp__flipbook {
	margin-top: 18px;
	padding: 20px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(27,63,71,.08);
}
.ptr-pp__flipbook-kicker {
	margin: 0 0 4px;
	color: var(--plum);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}
.ptr-pp__flipbook h2 {
	margin: 0 0 14px;
	color: var(--teal);
	font-size: 22px;
	font-weight: 900;
	line-height: 1.2;
}
.ptr-pp__flipbook-viewer { min-width: 0; overflow: hidden; border-radius: 10px; }
.ptr-pp__flipbook[hidden] { display: none !important; }
.ptr-pp-language-links { margin: 14px 0 4px; }
.ptr-pp-language-links__label { display: block; margin-bottom: 7px; color: #263b44; font-size: 14px; font-weight: 800; }
.ptr-pp-language-links__options { display: flex; flex-wrap: wrap; gap: 8px; }
.ptr-pp-language-link { display: inline-flex; align-items: center; min-height: 38px; padding: 7px 13px; border: 1px solid #b8d2d8; border-radius: 7px; background: #fff; color: #185c6b; font-weight: 700; text-decoration: none !important; }
.ptr-pp-language-link:hover, .ptr-pp-language-link:focus { border-color: #185c6b; background: #f2f7f8; color: #185c6b; }
.ptr-pp-language-link.is-current { border: 2px solid #263b44; padding: 6px 12px; color: #263b44; }
.ptr-pp-gallery-stage {
	--ptr-gallery-stage-height: clamp(460px, 52vh, 720px);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--ptr-gallery-stage-height);
	min-height: 0;
	overflow: hidden;
	background: #f8fbfb;
	border-radius: 10px;
}
.ptr-pp-gallery-stage.is-tall-image {
	--ptr-gallery-stage-height: clamp(560px, 68vh, 820px);
}
.ptr-pp-gallery-stage.is-wide-image {
	--ptr-gallery-stage-height: clamp(360px, 34vw, 520px);
}
.ptr-pp-gallery-main-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	text-decoration: none;
}
.ptr-pp-gallery-main-img {
	display: block;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: calc(var(--ptr-gallery-stage-height) - 4px) !important;
	margin: 0 auto;
	object-fit: contain !important;
	object-position: center center !important;
	flex: 0 0 auto;
}
.ptr-pp__gallery img { border-radius: 0 !important; }
.ptr-pp-gallery-thumbs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin: 14px auto 0;
	position: relative;
	z-index: 3;
}
.ptr-pp-gallery-thumb {
	display: grid;
	place-items: center;
	width: 78px;
	height: 78px;
	flex: 0 0 78px;
	padding: 3px;
	border: 2px solid var(--line);
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
	overflow: hidden;
}
.ptr-pp-gallery-thumb:hover,
.ptr-pp-gallery-thumb:focus {
	border-color: #9fc9d3;
	outline: none;
}
.ptr-pp-gallery-thumb.is-active {
	border-color: var(--teal);
}
.ptr-pp-gallery-thumb img {
	display: block;
	max-width: 100% !important;
	max-height: 100% !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	object-position: center center !important;
}

/* ---------- Buy box ---------- */
.ptr-pp__eyebrow { color: var(--plum); font-weight: 900; font-size: 12px; letter-spacing: .09em; text-transform: uppercase; }
.ptr-pp__title { font-size: clamp(30px, 3vw, 48px); line-height: 1.05; font-weight: 900; color: var(--teal); margin: 7px 0 14px; letter-spacing: 0; }
.ptr-pp__one-line {
	margin: 0 0 18px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--line);
	color: #52646b;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.45;
}
.ptr-pp__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.ptr-pp__badge { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 800; padding: 6px 11px; border-radius: 8px; border: 1px solid var(--line); background: var(--soft); }
.ptr-pp__badge b { color: var(--muted); text-transform: uppercase; font-size: 10px; letter-spacing: .04em; }
.ptr-pp__badge.lang { background: #eef4dc; border-color: #cfe09a; }
.ptr-pp__format-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: -6px 0 16px;
}
.ptr-pp__format-links a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 6px 11px;
	border: 1px solid #c6dfe6;
	border-radius: 8px;
	background: #fff;
	color: var(--teal);
	font-size: 13px;
	font-weight: 900;
	text-decoration: none;
}
.ptr-pp__format-links a:hover { background: #eef7f8; color: var(--teal-dark); }

.ptr-pp__summary .woocommerce-product-details__short-description {
	font-size: 18px;
	line-height: 1.5;
	color: #42545b;
	margin: 0 0 18px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--line);
}
.ptr-pp__summary .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
.ptr-pp__summary .stock { color: var(--green); font-weight: 700; }
.ptr-pp__summary .product_meta { font-size: 13px; color: var(--muted); border-top: 1px solid var(--line); padding-top: 12px; margin-top: 14px; }
.ptr-pp__summary .product_meta a { color: var(--plum); text-decoration: none; }
/* The purchase panel displays the calculated total; keep WooCommerce's raw
   summary price available to JavaScript but visually suppress the duplicate. */
.ptr-pp .ptr-pp__summary > p.price,
.ptr-pp.ptr-pp-has-grid .ptr-pp__summary form.cart p.price,
.ptr-pp.ptr-pp-has-grid .ptr-pp__summary form.cart > p.price,
.ptr-pp.ptr-pp-has-grid .ptr-pp__summary > .price,
.ptr-pp.ptr-pp-has-grid .ptr-pp__summary p.price { display: none !important; }

/* Pricing table (price header + Save badge + You-save column) */
.ptr-pp-pricing { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin: 8px 0 14px; }
.ptr-pp-pricing-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; background: linear-gradient(180deg,#f7fafa,#fff); border-bottom: 1px solid var(--line); }
.ptr-pp-pricing-single .ptr-pp-pricing-head { border-bottom: 0; }
.ptr-pp-price-prefix { font-size: 16px; font-weight: 900; color: var(--teal); }
.ptr-pp-pp-amt { font-size: 30px; font-weight: 900; color: var(--teal); }
.ptr-pp-pp-unit { font-size: 14px; font-weight: 700; color: var(--muted); }
.ptr-pp-pricing-save { background: #e7f4e8; color: var(--green); font-weight: 800; font-size: 13px; padding: 7px 13px; border-radius: 8px; white-space: nowrap; }
.ptr-pp-pricing-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.ptr-pp-pricing-table th { text-align: left; color: var(--muted); font-weight: 800; text-transform: uppercase; font-size: 11px; letter-spacing: .04em; padding: 12px 20px; background: #fbfdfe; }
.ptr-pp-pricing-table td { padding: 13px 20px; border-top: 1px solid var(--line); font-weight: 700; color: var(--ink); }
.ptr-pp-pricing-table tr[data-qty] { cursor: pointer; }
.ptr-pp-pricing-table tr[data-qty]:hover td { background: #f7fafa; }
.ptr-pp-save-cell { color: var(--green); font-weight: 800; }
.ptr-pp-pricing-table tr.ptr-pp-active-tier-row td { background: var(--soft); color: var(--teal); }
.ptr-pp-pricing-table tr.ptr-pp-active-tier-row td:first-child { box-shadow: inset 4px 0 0 var(--teal); }
.ptr-pp-original-pricing-hidden { display: none !important; }

/* First-paint space reservation for asynchronously loaded variation pricing. */
.ptr-pp-pricing-placeholder {
	height: 422px;
	margin: 8px 0 14px;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
}
.ptr-pp-pricing-placeholder__head {
	height: 72px;
	border-bottom: 1px solid var(--line);
	background: linear-gradient(100deg, #f5f8f8 20%, #fff 38%, #f5f8f8 56%);
	background-size: 220% 100%;
	animation: ptr-pp-price-loading 1.2s ease-in-out infinite;
}
.ptr-pp-pricing-placeholder__labels { height: 42px; border-bottom: 1px solid var(--line); background: #fbfdfe; }
.ptr-pp-pricing-placeholder__rows { display: grid; grid-template-rows: repeat(5, 1fr); height: 266px; }
.ptr-pp-pricing-placeholder__rows span { border-bottom: 1px solid var(--line); background: linear-gradient(100deg, #fff 20%, #f7f9f9 38%, #fff 56%); background-size: 220% 100%; animation: ptr-pp-price-loading 1.2s ease-in-out infinite; }
.ptr-pp-pricing-placeholder__rows span:last-child { border-bottom: 0; }
@keyframes ptr-pp-price-loading { to { background-position-x: -220%; } }
@media (prefers-reduced-motion: reduce) {
	.ptr-pp-pricing-placeholder__head,
	.ptr-pp-pricing-placeholder__rows span { animation: none; }
}

/* Variation products use a distinct language-selection card. */
.ptr-pp form.variations_form table.variations.ptr-pp-language-card {
	display: table;
	width: 100%;
	margin: 8px 0 14px;
	border: 1px solid #dec5d9;
	border-radius: 12px;
	border-spacing: 0;
	border-collapse: separate;
	overflow: hidden;
	background: #fbf6fa;
}
.ptr-pp-language-card__heading {
	caption-side: top;
	padding: 15px 18px 10px;
	text-align: left;
	background: #fff;
}
.ptr-pp-language-card__heading span {
	display: block;
	margin-bottom: 3px;
	color: var(--plum);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.ptr-pp-language-card__heading strong {
	display: block;
	color: var(--teal);
	font-size: 20px;
	font-weight: 900;
	line-height: 1.2;
}
.ptr-pp form.variations_form table.variations.ptr-pp-language-card tbody,
.ptr-pp form.variations_form table.variations.ptr-pp-language-card tr { background: transparent; }
.ptr-pp form.variations_form table.variations.ptr-pp-language-card th,
.ptr-pp form.variations_form table.variations.ptr-pp-language-card td {
	padding: 8px 18px 16px;
	border: 0;
	vertical-align: middle;
}
.ptr-pp form.variations_form table.variations.ptr-pp-language-card th.label {
	width: 125px;
	color: var(--ink);
	font-weight: 800;
}
.ptr-pp form.variations_form table.variations.ptr-pp-language-card select {
	min-width: 220px;
	height: 44px;
	padding: 0 38px 0 12px;
	border: 1px solid #cbb8c7;
	border-radius: 8px;
	background-color: #fff;
	color: var(--ink);
	font-weight: 700;
}
.ptr-pp form.variations_form table.variations.ptr-pp-language-card .reset_variations { margin-left: 10px; }

/* Order panel: plain Quantity input | Your Total */
.ptr-pp-purchase-panel { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; background: #f7fafa; border: 1px solid var(--line); border-radius: 12px; padding: 14px 18px; margin: 8px 0 14px; }
.ptr-pp-label { display: block; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.ptr-pp-qty-area .quantity { display: inline-flex; }
.ptr-pp-qty-area input.qty { width: 120px; height: 50px; border: 1px solid #cdd4d5; border-radius: 8px; text-align: center; font-size: 18px; font-weight: 800; }
.ptr-pp-total-area { min-width: 310px; text-align: right; }
.ptr-pp-total-breakdown { min-width: 310px; margin: 0 0 9px; padding: 0 0 9px; border-bottom: 1px solid var(--line); }
.ptr-pp-total-breakdown[hidden] { display: none !important; }
.ptr-pp-total-row { display: flex; justify-content: space-between; gap: 24px; padding: 3px 0; color: #45575e; font-size: 14px; line-height: 1.35; text-align: left; }
.ptr-pp-total-row span { white-space: normal; }
.ptr-pp-total-row strong { flex: 0 0 auto; color: var(--ink); font-weight: 900; }
.ptr-pp-total-row--addon span { color: var(--plum-dark); font-weight: 800; }
.ptr-pp-total-final { display: flex; align-items: baseline; justify-content: flex-end; gap: 12px; }
.ptr-pp-total-final-label { color: var(--muted); font-size: 13px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.ptr-pp-total-amount { font-size: 32px; font-weight: 900; color: var(--teal); }

/* Buttons */
.ptr-pp-button-stack { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 12px; }
.ptr-pp-sample-group {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	align-self: flex-end;
	gap: 4px;
	width: 280px;
	max-width: 100%;
	margin-left: auto;
	margin-right: 0;
}
.ptr-pp__summary .single_add_to_cart_button {
	background: var(--coral); border: none; border-radius: 9px; color: #fff;
	font-size: 17px; font-weight: 800; letter-spacing: .2px; padding: 15px 24px;
	width: 100%; transition: background .15s ease;
}
.ptr-pp__summary .single_add_to_cart_button:hover { background: var(--coral-dark); }
.ptr-pp__summary .ptr-free-sample-btn {
	background: var(--soft); color: var(--teal); border: 1px solid var(--teal);
	border-radius: 9px; font-size: 16px; font-weight: 800; padding: 13px 24px; width: 100% !important;
	margin-left: 0 !important; margin-right: 0 !important;
}
.ptr-free-sample-note { width: 100%; text-align: center; font-size: 12.5px; color: var(--muted); margin: 0; line-height: 1.35; }

/* EPO fields stay inside the cart form but display openly immediately after pricing. */
.ptr-pp-epo-inline {
	display: block !important;
	max-height: none !important;
	overflow: visible !important;
	margin: 4px 0 16px;
	padding: 16px 18px !important;
	border: 1px solid #bfd4d8;
	border-radius: 12px;
	background: #eef5f6;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.ptr-pp-epo-inline.ptr-pp-epo-separated {
	margin: 4px 0 16px;
	padding: 0 !important;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.ptr-pp-epo-separated > .tm-extra-product-options-fields {
	display: flex !important;
	flex-direction: column;
	gap: 14px;
}
.ptr-pp-epo-separated > .tm-extra-product-options-fields > .ptr-pp-epo-card {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 16px 18px !important;
	border: 1px solid #bfd4d8;
	border-radius: 12px;
	background: #eef5f6;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.ptr-pp-epo-inline .ptr-pp-epo-title {
	display: block !important;
	width: 100% !important;
	margin: 0 0 14px !important;
	padding: 0 0 12px !important;
	border-bottom: 1px solid rgba(35, 81, 91, .16);
	color: var(--teal-dark) !important;
	font-size: 25px !important;
	font-weight: 900 !important;
	letter-spacing: -.015em;
	line-height: 1.12 !important;
}
.ptr-pp-epo-inline .ptr-pp-epo-title::before {
	display: block;
	margin: 0 0 4px;
	color: var(--plum);
	content: "PERSONALIZATION";
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .1em;
	line-height: 1.2;
}
.ptr-pp-epo-inline .ptr-pp-language-title::before {
	content: "PRODUCT OPTION";
}
.ptr-pp-epo-separated > .tm-extra-product-options-fields > .ptr-pp-language-card {
	padding: 0 !important;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.ptr-pp-epo-inline .ptr-pp-language-card .ptr-pp-language-title {
	margin: 0 !important;
	padding: 15px 18px 10px !important;
	border: 0;
	background: #fff;
	font-size: 20px !important;
	line-height: 1.2 !important;
}
.ptr-pp-epo-inline .ptr-pp-language-card .ptr-pp-language-title::before {
	margin-bottom: 3px;
	font-size: 10px;
	letter-spacing: .1em;
}
.ptr-pp-epo-inline .ptr-pp-language-card .tc-section-fields {
	padding: 8px 18px 16px !important;
	border: 1px solid #dec5d9;
	border-radius: 12px;
	background: #fbf6fa;
}
.ptr-pp-epo-inline .ptr-pp-language-card .cpf-type-select > .tc-element-inner-wrap > .tc-row > .tm-epo-element-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-language-field-label {
	display: block;
	width: 100%;
	margin: 0 0 8px;
	color: var(--ink);
	font-size: 16px;
	font-weight: 800;
}
.ptr-pp-epo-inline .ptr-pp-language-card .cpf-type-select > .tc-element-inner-wrap > .tc-row > .tc-element-container {
	display: flex !important;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.ptr-pp-epo-inline .ptr-pp-language-card .tmcp-ul-wrap {
	flex: 0 0 440px !important;
	width: min(100%, 440px) !important;
	max-width: 440px !important;
	min-width: 220px;
	margin: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-language-card .tmcp-field-wrap,
.ptr-pp-epo-inline .ptr-pp-language-card .tmcp-field-wrap-inner,
.ptr-pp-epo-inline .ptr-pp-language-card .tc-field-label-wrap,
.ptr-pp-epo-inline .ptr-pp-language-card .tm-epo-field-label {
	width: 100% !important;
	max-width: 440px !important;
}
.ptr-pp-epo-inline .ptr-pp-language-card select.tm-epo-field {
	width: 100% !important;
	max-width: 440px !important;
	height: 44px;
	min-height: 44px;
	padding: 0 38px 0 12px !important;
	border: 1px solid #cbb8c7 !important;
	border-radius: 8px !important;
	background-color: #fff !important;
	color: var(--ink) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
}
.ptr-pp-epo-inline .ptr-pp-language-clear {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 40px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: #6ea0ab;
	font-size: 16px;
	font-weight: 500;
	white-space: nowrap;
}
.ptr-pp-epo-inline .ptr-pp-language-clear span {
	font-size: 18px;
	font-weight: 800;
	line-height: 1;
}
@media (max-width: 620px) {
	.ptr-pp-epo-inline .ptr-pp-language-card .tmcp-ul-wrap {
		flex-basis: 100%;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0;
	}
	.ptr-pp-epo-inline .ptr-pp-language-card .tmcp-field-wrap,
	.ptr-pp-epo-inline .ptr-pp-language-card .tmcp-field-wrap-inner,
	.ptr-pp-epo-inline .ptr-pp-language-card .tc-field-label-wrap,
	.ptr-pp-epo-inline .ptr-pp-language-card .tm-epo-field-label,
	.ptr-pp-epo-inline .ptr-pp-language-card select.tm-epo-field {
		max-width: 100% !important;
	}
}
.ptr-pp-epo-inline .ptr-pp-language-clear:hover,
.ptr-pp-epo-inline .ptr-pp-language-clear:focus {
	background: transparent;
	color: var(--teal);
	text-decoration: underline;
}
.ptr-pp-epo-inline .ptr-pp-epo-title + .tc-section-fields {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-language-card .ptr-pp-language-title + .tc-section-fields {
	padding: 8px 18px 16px !important;
}
.ptr-pp-epo-inline .ptr-pp-imprint-options-label {
	margin: 0 0 8px !important;
	color: var(--ink) !important;
	font-size: 16px !important;
	font-weight: 900 !important;
}

/* Reusable EPO optional-product cards. These are detected structurally by the
 * product-page script, so matching blocks added later inherit the same style. */
.ptr-pp-epo-inline .ptr-pp-addon-card {
	margin: 0 0 14px !important;
	padding: 0 !important;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.ptr-pp-epo-inline .ptr-pp-addon-card > .tc-section-inner-wrap > .tc-row > .tc-section-fields > .tc-row {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 14px;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header {
	margin: 0 !important;
	padding: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header > .tc-element-inner-wrap > .tc-row {
	display: block !important;
	padding: 0 !important;
	border-bottom: 0;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header .tm-epo-element-label {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 0 12px !important;
	border-bottom: 1px solid rgba(35, 81, 91, .16);
	color: var(--teal-dark) !important;
	font-size: 25px !important;
	font-weight: 900 !important;
	letter-spacing: -.01em;
	line-height: 1.12 !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header .tm-epo-element-label::before {
	display: block;
	margin: 0 0 4px;
	color: var(--plum);
	content: "OPTIONAL ADD-ON";
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .1em;
	line-height: 1.2;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header .tm-element-description {
	margin: 0 !important;
	padding: 18px 0 4px !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header .tm-element-description p {
	margin: 0 !important;
	text-align: center;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header img {
	display: block;
	width: 300px !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 300px;
	margin: 0 auto !important;
	object-fit: contain;
	filter: drop-shadow(0 6px 9px rgba(30, 46, 52, .14));
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio {
	margin: 0 !important;
	padding: 10px 0 0 !important;
	border-top: 0;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio > .tc-element-inner-wrap > .tc-row {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 9px;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tm-epo-element-label {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--ink) !important;
	font-size: 15px !important;
	font-weight: 900 !important;
	line-height: 1.35 !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tmcp-ul-wrap {
	display: flex !important;
	align-items: stretch;
	gap: 10px;
	margin: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tmcp-field-wrap {
	display: flex !important;
	flex: 1 1 0 !important;
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tmcp-field-wrap-inner,
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tc-field-label-wrap {
	display: flex !important;
	flex: 1 1 auto !important;
	width: 100% !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tm-epo-field-label {
	display: flex !important;
	align-items: center;
	box-sizing: border-box;
	width: 100% !important;
	min-height: 52px;
	padding: 11px 13px !important;
	border: 1px solid #cad9dc;
	border-radius: 9px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tm-epo-field-label:hover {
	border-color: #92b8bf;
	background: #f5fafb;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tmcp-field-wrap.tc-active .tm-epo-field-label,
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tm-epo-field-label:has(input:checked) {
	border-color: var(--plum);
	background: #f8f0f6;
	box-shadow: 0 0 0 2px rgba(150, 88, 138, .1);
}
.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio input[type="radio"] {
	margin-right: 9px !important;
}
.ptr-pp-epo-inline .ptr-pp-addon-card .ptr-pp-addon-detail {
	margin: 0 !important;
	padding: 15px !important;
	border: 1px solid #c7dadd;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 5px 14px rgba(27, 63, 71, .05);
}
.ptr-pp-epo-inline .ptr-pp-addon-card .ptr-pp-addon-detail .tm-epo-element-label {
	color: var(--ink) !important;
	font-weight: 900 !important;
}

/* EPO color swatches — keep white and translucent options visible while
 * preserving a decisive black selected state. */
.ptr-pp .tmhexcolorimage .tc-image {
	border: 1px solid rgba(40, 50, 58, .28) !important;
	box-shadow: 0 1px 4px rgba(27, 63, 71, .18), inset 0 0 0 1px rgba(255, 255, 255, .5) !important;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.ptr-pp .tmhexcolorimage:hover .tc-image {
	border-color: rgba(40, 50, 58, .5) !important;
	box-shadow: 0 2px 7px rgba(27, 63, 71, .24), inset 0 0 0 1px rgba(255, 255, 255, .5) !important;
}
.ptr-pp .tc-label-wrap:has(input.tmcp-field:checked) .tmhexcolorimage .tc-image {
	border: 2px solid #111 !important;
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(17, 17, 17, .22) !important;
}
.ptr-pp .tc-label-wrap:has(input.tmcp-field:focus-visible) .tmhexcolorimage .tc-image {
	outline: 3px solid rgba(23, 103, 122, .3);
	outline-offset: 3px;
}
.ptr-pp-epo-inline .ptr-pp-imprint-step {
	margin: 12px 0 0 !important;
	padding: 16px !important;
	border: 1px solid #c7dadd;
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 5px 14px rgba(27,63,71,.05);
}
.ptr-pp-epo-inline .ptr-pp-imprint-step::before { display: none; content: none; }
.ptr-pp-epo-inline .ptr-pp-imprint-step .tm-epo-element-label {
	color: var(--ink) !important;
	font-weight: 900 !important;
}
.ptr-pp-epo-inline .cpf-type-divider { display: none !important; }
.ptr-pp-epo-inline .ptr-pp-imprint-notice {
	margin: 12px 0 0 !important;
	padding: 12px 15px !important;
	border: 1px solid #ead8a5;
	border-left: 5px solid #d69b22;
	border-radius: 9px;
	background: #fff9e8;
	box-shadow: 0 6px 15px rgba(137,101,24,.07);
}
.ptr-pp-epo-inline .ptr-pp-imprint-notice > .tc-element-inner-wrap > .tc-row {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2px;
}
.ptr-pp-epo-inline .ptr-pp-imprint-notice .tm-epo-element-label {
	margin: 0 !important;
	padding: 0 !important;
	color: #72530e !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	letter-spacing: .04em;
	line-height: 1.25 !important;
	text-transform: uppercase;
}
.ptr-pp-epo-inline .ptr-pp-imprint-notice .tm-element-description,
.ptr-pp-epo-inline .ptr-pp-imprint-notice p {
	margin: 0 !important;
	padding: 0 !important;
	color: #675b3d;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.4;
}
.ptr-pp-epo-inline .ptr-pp-artwork-help {
	margin-top: 12px !important;
	padding: 16px 18px !important;
	border: 1px solid #d9bed4;
	border-left: 5px solid var(--plum);
	border-radius: 11px;
	background: linear-gradient(135deg, #fff 0%, #f7eef5 100%);
	box-shadow: 0 8px 20px rgba(112,65,125,.08);
}
.ptr-pp-epo-inline .ptr-pp-artwork-help > .tc-element-inner-wrap > .tc-row {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 4px;
}
.ptr-pp-epo-inline .ptr-pp-artwork-help .tm-epo-element-label,
.ptr-pp-epo-inline .ptr-pp-artwork-help .tm-element-description,
.ptr-pp-epo-inline .ptr-pp-artwork-help p {
	margin: 0 !important;
	padding: 0 !important;
}
.ptr-pp-epo-inline .ptr-pp-artwork-help .tm-epo-element-label {
	color: var(--teal-dark) !important;
	font-size: 19px !important;
	font-weight: 900 !important;
	line-height: 1.25 !important;
}
.ptr-pp-artwork-help-icon {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin-right: 9px;
	border-radius: 999px;
	background: var(--plum);
	color: #fff;
	vertical-align: middle;
}
.ptr-pp-artwork-help-icon svg { width: 18px; height: 18px; fill: currentColor; }
.ptr-pp-epo-inline .ptr-pp-artwork-help .tm-element-description { color: #4b5d64; line-height: 1.45; }
.ptr-pp-design-consultation {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--plum) !important;
	font-weight: 900 !important;
	text-decoration: none !important;
}
.ptr-pp-design-consultation::after { display: none; content: none; }
.ptr-pp-design-consultation:hover { color: var(--teal-dark) !important; }

/* Collapsible personalization */
.ptr-pp-personalization-panel {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 12px;
	margin: 10px 0 14px;
	overflow: hidden;
	box-shadow: 0 8px 22px rgba(27,63,71,.06);
}
.ptr-pp-personalization-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 14px 16px;
	background: #f8fbfb;
	border: 0;
	cursor: pointer;
	font-family: inherit;
	font-size: 15px;
	font-weight: 900;
	color: var(--teal);
}
.ptr-pp-personalization-toggle:hover,
.ptr-pp-personalization-toggle:focus {
	background: #fff4ef;
	color: var(--teal-dark);
	outline: none;
}
.ptr-pp-personalization-panel.is-open .ptr-pp-personalization-toggle {
	background: #fff4ef;
	color: var(--teal-dark);
	border-bottom: 1px solid var(--line);
}
.ptr-pp-personalization-panel.is-open .ptr-pp-personalization-toggle:hover,
.ptr-pp-personalization-panel.is-open .ptr-pp-personalization-toggle:focus {
	background: #ffebe3;
	color: var(--teal-dark);
}
.ptr-pp-personalization-headwrap { display: flex; align-items: center; gap: 10px; text-align: left; }
.ptr-pp-pencil { color: var(--coral); }
.ptr-pp-personalization-chevron { transition: transform .2s ease; color: var(--teal); }
.ptr-pp-personalization-panel.is-open .ptr-pp-personalization-chevron { transform: rotate(180deg); }
.ptr-pp-personalization-expanded .ptr-pp-personalization-chevron { display: none; }
.ptr-pp-epo-content { max-height: 0; overflow: hidden; transition: max-height .25s ease; padding: 0 16px; }
.ptr-pp-epo-content.ptr-pp-epo-open, .ptr-pp-epo-content.ptr-pp-epo-expanded { max-height: 5000px; padding: 4px 16px 16px; }
.ptr-pp-needhelp-source-hidden { display: none; }

/* Bottom trust strip */
.ptr-pp-trust-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); text-align: center; font-size: 12px; font-weight: 800; color: #42545b; }
.ptr-pp-trust-item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 7px 9px; border: 1px solid #d6e2e5; border-radius: 12px; background: #f4f8f9; line-height: 1.25; }
.ptr-pp-trust-item .ptr-pp-trust-icon { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; background: #285965; color: #fff; }
.ptr-pp-trust-item .ptr-pp-trust-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Hide orphan plugin price/totals artifacts; the main Your Total panel remains visible. */
.ptr-pp .ptr-pp-price-artifact-hidden,
.ptr-pp .tm-extra-product-options-totals,
.ptr-pp .tc-totals-form,
.ptr-pp .tc-epo-totals,
.ptr-pp .tm-epo-totals,
.ptr-pp .cpf-product-price,
.ptr-pp .tc-price-wrap {
	display: none !important;
}
.ptr-pp.ptr-pp-has-grid form.cart > .price,
.ptr-pp.ptr-pp-has-grid form.cart > p.price,
.ptr-pp.ptr-pp-has-grid form.cart .ptr-pp-button-stack ~ .price,
.ptr-pp.ptr-pp-has-grid form.cart .ptr-pp-button-stack ~ p.price,
.ptr-pp.ptr-pp-has-grid form.cart .ptr-pp-trust-strip ~ .price,
.ptr-pp.ptr-pp-has-grid form.cart .ptr-pp-trust-strip ~ p.price,
.ptr-pp.ptr-pp-has-grid form.cart .price:not(.ptr-pp-pricing-price):not(.ptr-pp-total-amount),
.ptr-pp form.cart p.price {
	display: none !important;
}

/* Format benefits inserted directly beneath the age and language badges. */
.ptr-pp-format-benefits {
	margin: 2px 0 16px;
	padding: 16px 0 18px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.ptr-pp-format-benefits__heading {
	margin: 0 0 13px;
	color: var(--teal);
	font-size: 19px;
	font-weight: 900;
	line-height: 1.2;
}
.ptr-pp-format-benefits__list {
	display: grid;
	gap: 11px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ptr-pp-format-benefits__item {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	color: #34454c;
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.5;
}
.ptr-pp-format-benefits__icon {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	margin-top: 1px;
	border-radius: 999px;
	background: var(--plum);
	color: #fff;
	box-shadow: 0 7px 16px rgba(150, 88, 138, .18);
}
.ptr-pp-format-benefits__icon::before {
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
}
.ptr-pp-format-benefits__icon--star::before { content: "★"; }
.ptr-pp-format-benefits__icon--bolt::before { content: "⚡"; }
.ptr-pp-format-benefits__icon--repeat::before { content: "↻"; }
.ptr-pp-format-benefits__icon--check::before { content: "✓"; }
.ptr-pp-format-benefits__icon--plus::before { content: "+"; }
.ptr-pp-format-benefits__text strong {
	color: var(--ink);
	font-weight: 900;
}

/* ---------- Product details ---------- */
.ptr-pp__planning-row {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 24px;
	align-items: stretch;
	margin: 28px 0;
}
.ptr-pp__planning-row--full { grid-template-columns: 1fr; }
.ptr-pp__learn {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--shadow);
	padding: 30px;
	margin: 28px 0;
}
.ptr-pp__planning-row .ptr-pp__learn {
	margin: 0;
	height: 100%;
}
.ptr-pp__learn-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 22px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}
.ptr-pp__learn-list li {
	display: grid;
	grid-template-columns: 12px minmax(0, 1fr);
	gap: 11px;
	align-items: start;
	color: #34454c;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.45;
}
.ptr-pp__learn-dot {
	width: 8px;
	height: 8px;
	margin-top: 8px;
	border-radius: 999px;
	background: var(--plum);
}

.ptr-pp__details {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--shadow);
	padding: 30px;
	margin: 28px 0;
}
.ptr-pp__planning-row .ptr-pp__details {
	margin: 0;
	height: 100%;
}
.ptr-pp__details-head {
	display: block;
	margin-bottom: 18px;
}
.ptr-pp__kicker {
	margin: 0 0 4px;
	color: var(--plum);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}
.ptr-pp__section-title { font-size: 28px; line-height: 1.1; color: var(--teal); font-weight: 900; margin: 0; }
.ptr-pp__detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ptr-pp__planning-row .ptr-pp__learn-list { grid-template-columns: 1fr; }
.ptr-pp__detail-card {
	background: #fbfcfc;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 20px;
}
.ptr-pp__detail-card h3 { margin: 0 0 14px; color: var(--ink); font-size: 18px; line-height: 1.2; font-weight: 900; }
.ptr-pp__term-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ptr-pp__term-list a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 6px 10px;
	border: 1px solid #c6dfe6;
	border-radius: 7px;
	background: #fff;
	color: var(--teal);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}
.ptr-pp__term-list a:hover { background: #eef7f8; color: var(--teal-dark); }
.ptr-pp__sku { margin: 14px 0 0; color: var(--muted); font-size: 13px; font-weight: 800; }
.ptr-pp__term-stack p { margin: 0 0 10px; color: var(--muted); font-size: 14px; line-height: 1.45; }
.ptr-pp__term-stack p:last-child { margin-bottom: 0; }
.ptr-pp__term-stack strong { display: block; color: var(--ink); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }

/* Product content blocks replace Woo tabs. */
.ptr-pp .woocommerce-tabs { display: none !important; }
.ptr-pp__overview-row {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
	gap: 24px;
	align-items: stretch;
	margin: 28px 0;
}
.ptr-pp__overview-row > .ptr-pp__content-card { height: 100%; }
.ptr-pp__overview-sidebar { display: grid; gap: 24px; align-content: start; }
.ptr-pp__overview-sidebar .ptr-pp__learn { margin: 0; }
.ptr-pp__overview-sidebar .ptr-pp__learn-list { grid-template-columns: 1fr; }
.ptr-pp__content-blocks {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
	gap: 24px;
	margin: 28px 0;
}
.ptr-pp__content-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--shadow);
	padding: 28px 30px;
}
.ptr-pp__description-copy {
	margin-top: 18px;
	color: #34454c;
	font-size: 16px;
	line-height: 1.65;
}
.ptr-pp__description-copy p { margin: 0 0 14px; }
.ptr-pp__description-copy p:last-child { margin-bottom: 0; }
.ptr-pp__description-copy ul,
.ptr-pp__description-copy ol {
	margin: 14px 0 0 22px;
	padding: 0;
}
.ptr-pp__description-copy li { margin: 0 0 8px; }
.ptr-pp__spec-table {
	margin-top: 18px;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 12px;
}
.ptr-pp__info-list {
	margin: 18px 0 0;
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
}
.ptr-pp__info-list div {
	display: grid;
	grid-template-columns: 42% minmax(0, 1fr);
}
.ptr-pp__info-list dt,
.ptr-pp__info-list dd {
	margin: 0;
	padding: 14px 16px;
	border-bottom: 1px solid #edf0f0;
}
.ptr-pp__info-list dt {
	background: #f8fbfb;
	color: var(--ink);
	font-size: 13px;
	font-weight: 900;
}
.ptr-pp__info-list dd {
	color: #34454c;
	font-size: 14px;
	font-weight: 700;
}
.ptr-pp__info-list div:last-child dt,
.ptr-pp__info-list div:last-child dd { border-bottom: 0; }
.ptr-pp__spec-table table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}
.ptr-pp__spec-table th,
.ptr-pp__spec-table td {
	padding: 14px 16px;
	border-bottom: 1px solid #edf0f0;
	text-align: left;
	vertical-align: top;
}
.ptr-pp__spec-table tr:last-child th,
.ptr-pp__spec-table tr:last-child td { border-bottom: 0; }
.ptr-pp__spec-table th {
	width: 42%;
	background: #f8fbfb;
	color: var(--ink);
	font-size: 13px;
	font-weight: 900;
}
.ptr-pp__spec-table td {
	color: #34454c;
	font-size: 14px;
	font-weight: 600;
}
.ptr-pp__spec-table a { color: var(--teal); text-decoration: none; }
.ptr-pp .related.products,
.ptr-pp .up-sells {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--shadow);
	padding: 28px 30px;
	margin: 28px 0 0;
}
.ptr-pp .related.products > h2,
.ptr-pp .up-sells > h2 {
	margin: 0 0 20px;
	font-size: 28px;
	line-height: 1.1;
	color: var(--teal);
	font-weight: 900;
}
.ptr-pp .related.products::before,
.ptr-pp .up-sells.products::before {
	content: "Related Products";
	display: block;
	margin: 0 0 4px;
	color: var(--plum);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .09em;
	line-height: 1.3;
	text-align: left;
	text-transform: uppercase;
}
.ptr-pp .related.products > h2,
.ptr-pp .up-sells.products > h2 { text-align: left !important; }
.ptr-pp .related.products ul.products,
.ptr-pp .up-sells ul.products {
	margin-bottom: 0;
}

/* Responsive */
@media (max-width: 1080px) {
	.ptr-pp__hero { grid-template-columns: 1fr; gap: 24px; }
	.ptr-pp__media { position: static; }
	.ptr-pp__overview-row { grid-template-columns: 1fr; }
	.ptr-pp__planning-row { grid-template-columns: 1fr; }
	.ptr-pp__detail-grid { grid-template-columns: 1fr; }
	.ptr-pp__content-blocks { grid-template-columns: 1fr; }
}
@media (min-width: 1081px) and (max-width: 1279px) {
	.ptr-pp__hero {
		grid-template-columns: minmax(340px, 38%) minmax(0, 1fr);
		gap: 24px;
	}
}
@media (min-width: 621px) and (max-width: 1279px) {
	.ptr-pp form.variations_form table.variations.ptr-pp-language-card select {
		width: 82%;
		max-width: 82%;
		min-width: 0;
	}
}
@media (max-width: 620px) {
	.ptr-pp { padding-left: 14px; padding-right: 14px; }
	.ptr-pp__hero,
	.ptr-pp__learn,
	.ptr-pp__details,
	.ptr-pp__content-card,
	.ptr-pp .related.products,
	.ptr-pp .up-sells { padding: 18px; border-radius: 14px; }
	.ptr-pp__one-line { font-size: 17px; }
	.ptr-pp__learn-list { grid-template-columns: 1fr; }
	.ptr-pp-purchase-panel { grid-template-columns: 1fr; }
	.ptr-pp-total-area { min-width: 0; text-align: left; }
	.ptr-pp-total-breakdown { min-width: 0; }
	.ptr-pp-total-final { justify-content: flex-start; }
	.ptr-pp-trust-strip { grid-template-columns: 1fr 1fr; }
	.ptr-pp-pricing-table { font-size: 12.5px; }
	.ptr-pp-epo-inline .ptr-pp-addon-card { padding: 0 !important; }
	.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-header img { width: 240px !important; max-height: 240px; }
	.ptr-pp-epo-inline .ptr-pp-addon-card .cpf-type-radio .tmcp-ul-wrap { flex-direction: column; }
}
