/* ============================================================================
 * DFPC CardioChew PDP (Phase 2) - scoped entirely under body.dfpc-pdp.
 * Restyles the standard Astra/WooCommerce single-product layout into the premium
 * page. Loads after dfpc-design.css (tokens + fonts). Brand: navy #213c4c,
 * mint #3ddf9b, blue #329dff. Senior-friendly: large targets, AA contrast.
 * Revert: dequeue (handled by the mu-plugin) / delete this file.
 * ========================================================================== */

body.dfpc-pdp {
	--pdp-navy: #213c4c;
	--pdp-mint: #3ddf9b;
	--pdp-blue: #329dff;
	--pdp-ink: #1d2b25;
	--pdp-muted: #5a6b63;
	--pdp-line: #e2e8e5;
	--pdp-cream: #f6faf8;
	--pdp-radius: 14px;
}

/* ---- buy-box (summary) typography + injected bits ---- */
body.dfpc-pdp .summary.entry-summary { font-family: var(--font-body, system-ui, sans-serif); color: var(--pdp-ink); }

body.dfpc-pdp .dfpc-pdp-eyebrow {
	margin: 0 0 .35em; font-family: var(--font-head, var(--font-body));
	font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: var(--pdp-navy);
}
body.dfpc-pdp .product_title.entry-title {
	font-family: var(--font-heading, Georgia, serif); font-weight: 600;
	font-size: clamp(1.7rem, 1.2rem + 2.2vw, 2.4rem); line-height: 1.15; color: var(--pdp-navy); margin: 0 0 .3em;
}
body.dfpc-pdp .dfpc-pdp-subtitle { font-size: 1.05rem; line-height: 1.5; color: var(--pdp-muted); margin: 0 0 .8em; }
body.dfpc-pdp .dfpc-pdp-bullets { list-style: none; margin: 0 0 1em; padding: 0; }
body.dfpc-pdp .dfpc-pdp-bullets li {
	position: relative; padding: .2em 0 .2em 1.7em; line-height: 1.45; font-size: 1rem;
}
body.dfpc-pdp .dfpc-pdp-bullets li::before {
	content: ""; position: absolute; left: 0; top: .45em; width: 1.05em; height: 1.05em;
	background: var(--pdp-mint); border-radius: 50%;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/.7em no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/.7em no-repeat;
}

/* price + per-day */
body.dfpc-pdp .summary .price { color: var(--pdp-navy); font-weight: 600; font-size: 1.5rem; margin: .2em 0 .1em; }
body.dfpc-pdp .summary .price del { color: var(--pdp-muted); font-weight: 400; font-size: 1.1rem; }
body.dfpc-pdp .dfpc-pdp-perday { margin: 0 0 1em; color: var(--pdp-muted); font-size: .95rem; }
body.dfpc-pdp .dfpc-pdp-perday-note { color: var(--pdp-muted); font-size: .85rem; }

/* dose snapshot chips */
body.dfpc-pdp .dfpc-pdp-dose { margin: 1.1em 0; }
body.dfpc-pdp .dfpc-pdp-dose-label { display: block; font-weight: 600; color: var(--pdp-navy); margin-bottom: .45em; font-size: .95rem; }
body.dfpc-pdp .dfpc-pdp-dose-chips { display: flex; flex-wrap: wrap; gap: .5em; }
body.dfpc-pdp .dfpc-pdp-chip {
	display: flex; flex-direction: column; gap: .1em; padding: .5em .8em; min-height: 52px; justify-content: center;
	border: 1px solid var(--pdp-line); border-radius: 10px; background: #fff; text-decoration: none; color: var(--pdp-ink);
	font-size: .85rem; transition: border-color .15s, box-shadow .15s;
}
body.dfpc-pdp .dfpc-pdp-chip:hover { border-color: var(--pdp-mint); box-shadow: 0 0 0 1px var(--pdp-mint); }
body.dfpc-pdp .dfpc-pdp-chip strong { color: var(--pdp-navy); }
body.dfpc-pdp .dfpc-pdp-chip span { color: var(--pdp-muted); }

/* the native add-to-cart / Subscribe & Save - large mint CTA */
body.dfpc-pdp form.cart { margin: 1.1em 0 .8em; }
body.dfpc-pdp .single_add_to_cart_button.button {
	background: var(--pdp-mint); color: var(--pdp-navy); font-family: var(--font-head, var(--font-body));
	font-weight: 700; font-size: 1.1rem; letter-spacing: .01em;
	width: 100%; min-height: 56px; border: 0; border-radius: 12px; padding: 1em 1.2em;
	box-shadow: 0 6px 18px rgba(61, 223, 155, .35); transition: transform .12s, box-shadow .12s;
}
body.dfpc-pdp .single_add_to_cart_button.button:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(61, 223, 155, .45); }
/* keep the Subscribe & Save options legible */
body.dfpc-pdp .wcsatt-options-wrapper, body.dfpc-pdp .wcsatt-options-product { margin: .4em 0 1em; }
body.dfpc-pdp .wcsatt-options-product li { padding: .3em 0; }

body.dfpc-pdp .dfpc-pdp-microtrust { list-style: none; display: flex; flex-wrap: wrap; gap: .3em .9em; margin: .4em 0 1em; padding: 0; }
body.dfpc-pdp .dfpc-pdp-microtrust li { position: relative; padding-left: 1.1em; font-size: .85rem; color: var(--pdp-muted); }
body.dfpc-pdp .dfpc-pdp-microtrust li::before { content: ""; position: absolute; left: 0; top: .42em; width: .55em; height: .55em; border-radius: 50%; background: var(--pdp-mint); }

/* gallery polish */
body.dfpc-pdp .woocommerce-product-gallery { border-radius: var(--pdp-radius); overflow: hidden; }
body.dfpc-pdp .woocommerce-product-gallery__image img { border-radius: var(--pdp-radius); }

/* hide the default WC tabs - our model-driven sections supersede them (kept in DOM for TargetBay/schema) */
body.dfpc-pdp .woocommerce-tabs.wc-tabs-wrapper { display: none !important; }

/* ---- below-fold sections ---- */
body.dfpc-pdp .dfpc-pdp-section { padding: clamp(2rem, 1rem + 4vw, 3.5rem) 1rem; }
body.dfpc-pdp .dfpc-pdp-section.is-alt { background: var(--pdp-cream); }
body.dfpc-pdp .dfpc-pdp-wrap { max-width: 1100px; margin: 0 auto; }
body.dfpc-pdp .dfpc-pdp-h2 {
	font-family: var(--font-heading, Georgia, serif); font-weight: 600; color: var(--pdp-navy);
	font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.05rem); line-height: 1.2; margin: 0 0 1rem;
}
/* The Elementor global kit (.elementor-kit-930, still on our <body>) sets heading line-height
 * (h3 = 48px) + letter-spacing (-1px) site-wide. We override font-size/color/family on our
 * headings but NOT these two, so they leak - huge line gaps + cramped tracking on the small
 * card/ingredient/expert h3s. Normalize line-height + letter-spacing across all PDP headings
 * (specificity 0,1,2 beats the kit's 0,1,1; our more-specific size/color rules still win). */
body.dfpc-pdp h2, body.dfpc-pdp h3, body.dfpc-pdp h4 { line-height: 1.25; letter-spacing: normal; }

/* certification bar */
body.dfpc-pdp .dfpc-pdp-certbar { background: var(--pdp-navy); color: #fff; padding: 1rem; }
body.dfpc-pdp .dfpc-pdp-certbar ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .6em 2em; margin: 0; padding: 0; }
body.dfpc-pdp .dfpc-pdp-certbar li { position: relative; padding-left: 1.4em; font-weight: 600; font-size: .95rem; }
body.dfpc-pdp .dfpc-pdp-certbar li::before {
	content: ""; position: absolute; left: 0; top: .15em; width: 1.05em; height: 1.05em; background: var(--pdp-mint);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/.85em no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/.85em no-repeat;
}

/* benefit cards */
body.dfpc-pdp .dfpc-pdp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.2rem; }
body.dfpc-pdp .dfpc-pdp-card { background: #fff; border: 1px solid var(--pdp-line); border-radius: var(--pdp-radius); padding: 1.4rem; }
body.dfpc-pdp .dfpc-pdp-card h3 { font-family: var(--font-heading, Georgia, serif); font-weight: 600; color: var(--pdp-navy); font-size: 1.2rem; margin: 0 0 .4em; }
body.dfpc-pdp .dfpc-pdp-card p { margin: 0; color: var(--pdp-muted); line-height: 1.5; }

/* actives / ingredients */
body.dfpc-pdp .dfpc-pdp-actives { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.1rem; }
body.dfpc-pdp .dfpc-pdp-active { background: #fff; border: 1px solid var(--pdp-line); border-left: 3px solid var(--pdp-mint); border-radius: var(--pdp-radius); padding: 1.2rem; }
body.dfpc-pdp .dfpc-pdp-active h3 { font-family: var(--font-heading, Georgia, serif); font-weight: 600; color: var(--pdp-navy); font-size: 1.15rem; margin: 0 0 .35em; }
body.dfpc-pdp .dfpc-pdp-amt { font-family: var(--font-body); font-weight: 600; font-size: .85rem; color: var(--pdp-blue); }
body.dfpc-pdp .dfpc-pdp-active p { margin: 0 0 .4em; color: var(--pdp-ink); line-height: 1.5; }
body.dfpc-pdp .dfpc-pdp-clin { font-size: .9rem; color: var(--pdp-blue); font-weight: 600; }
body.dfpc-pdp .dfpc-pdp-src { font-size: .85rem; color: var(--pdp-muted); }
body.dfpc-pdp .dfpc-pdp-refused { margin-top: 1.4rem; padding: 1.2rem; background: #fff; border: 1px dashed var(--pdp-line); border-radius: var(--pdp-radius); }
body.dfpc-pdp .dfpc-pdp-refused h3 { margin: 0 0 .5em; color: var(--pdp-navy); font-size: 1.05rem; }
body.dfpc-pdp .dfpc-pdp-refused ul { margin: 0; padding-left: 1.2em; }

/* tables (dosing + comparison) */
body.dfpc-pdp .dfpc-pdp-dosetable, body.dfpc-pdp .dfpc-pdp-compare { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--pdp-radius); overflow: hidden; border: 1px solid var(--pdp-line); }
body.dfpc-pdp .dfpc-pdp-dosetable th, body.dfpc-pdp .dfpc-pdp-compare th, body.dfpc-pdp .dfpc-pdp-dosetable td, body.dfpc-pdp .dfpc-pdp-compare td { padding: .85em 1em; text-align: left; border-bottom: 1px solid var(--pdp-line); }
body.dfpc-pdp .dfpc-pdp-dosetable thead th, body.dfpc-pdp .dfpc-pdp-compare thead th { background: var(--pdp-navy); color: #fff; font-weight: 600; }
body.dfpc-pdp .dfpc-pdp-compare th[scope=row] { background: var(--pdp-cream); font-weight: 600; color: var(--pdp-navy); }
body.dfpc-pdp .dfpc-pdp-compare .is-us { color: var(--pdp-navy); font-weight: 600; }
body.dfpc-pdp .dfpc-pdp-compare .is-them { color: var(--pdp-muted); }
body.dfpc-pdp .dfpc-pdp-dosenote { margin-top: .9em; color: var(--pdp-muted); font-size: .95rem; }
body.dfpc-pdp .dfpc-pdp-doseguide { margin: .7em 0 0; }
body.dfpc-pdp .dfpc-pdp-doseguide a { color: var(--pdp-blue); font-weight: 600; text-decoration: none; }
body.dfpc-pdp .dfpc-pdp-doseguide a:hover { text-decoration: underline; }

/* expert block */
body.dfpc-pdp .dfpc-pdp-expert { display: flex; gap: 1.6rem; align-items: flex-start; background: #fff; border: 1px solid var(--pdp-line); border-radius: var(--pdp-radius); padding: 1.6rem; }
body.dfpc-pdp .dfpc-pdp-expert-photo { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
body.dfpc-pdp .dfpc-pdp-expert-body h3 { font-family: var(--font-heading, Georgia, serif); font-weight: 600; color: var(--pdp-navy); font-size: 1.3rem; margin: 0 0 .2em; }
body.dfpc-pdp .dfpc-pdp-expert-body h3 span { display: block; font-family: var(--font-body); font-weight: 500; font-size: .9rem; color: var(--pdp-muted); }
body.dfpc-pdp .dfpc-pdp-quote { margin: .6em 0; padding-left: 1em; border-left: 3px solid var(--pdp-mint); font-style: italic; color: var(--pdp-ink); }
body.dfpc-pdp .dfpc-pdp-expert-links a { color: var(--pdp-blue); text-decoration: underline; }

/* FAQ */
body.dfpc-pdp .dfpc-pdp-faqs { max-width: 800px; margin: 0 auto; }
body.dfpc-pdp .dfpc-pdp-faq-item { background: #fff; border: 1px solid var(--pdp-line); border-radius: 10px; margin-bottom: .7em; }
body.dfpc-pdp .dfpc-pdp-faq-item summary {
	cursor: pointer; padding: 1em 1.2em; font-family: var(--font-heading, Georgia, serif); font-weight: 600;
	color: var(--pdp-navy); font-size: 1.08rem; list-style: none;
	display: flex; justify-content: space-between; align-items: center; gap: 1em;
}
body.dfpc-pdp .dfpc-pdp-faq-item summary::-webkit-details-marker { display: none; }
body.dfpc-pdp .dfpc-pdp-faq-item summary::after {
	content: ""; flex: 0 0 auto; width: 1.05em; height: 1.05em; background: var(--pdp-navy);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;
	transition: transform .2s ease;
}
body.dfpc-pdp .dfpc-pdp-faq-item[open] summary::after { transform: rotate(180deg); }
body.dfpc-pdp .dfpc-pdp-faq-a { padding: 0 1.2em 1.1em; color: var(--pdp-ink); line-height: 1.55; }

/* final CTA */
body.dfpc-pdp .dfpc-pdp-finalcta { background: var(--pdp-navy); color: #fff; text-align: center; }
body.dfpc-pdp .dfpc-pdp-finalcta .dfpc-pdp-h2 { color: #fff; }
body.dfpc-pdp .dfpc-pdp-finalcta p { color: rgba(255, 255, 255, .85); margin: 0 0 1.4em; }
body.dfpc-pdp .dfpc-pdp-ctabtn {
	display: inline-block; background: var(--pdp-mint); color: var(--pdp-navy); font-family: var(--font-head, var(--font-body));
	font-weight: 700; font-size: 1.1rem; padding: 1em 2.4em; border-radius: 12px; text-decoration: none; min-height: 56px;
	box-shadow: 0 6px 18px rgba(61, 223, 155, .35);
}

/* sticky mobile add-to-cart */
body.dfpc-pdp .dfpc-pdp-stickybar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; display: flex; align-items: center; gap: 1em;
	padding: .7em 1em; background: #fff; border-top: 1px solid var(--pdp-line); box-shadow: 0 -6px 20px rgba(0, 0, 0, .1);
	transform: translateY(110%); transition: transform .25s ease; padding-bottom: calc(.7em + env(safe-area-inset-bottom, 0px));
}
body.dfpc-pdp .dfpc-pdp-stickybar.is-on { transform: translateY(0); }
body.dfpc-pdp .dfpc-pdp-stickybar-info { flex: 1; min-width: 0; }
body.dfpc-pdp .dfpc-pdp-stickybar-name { display: block; font-weight: 600; color: var(--pdp-navy); font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.dfpc-pdp .dfpc-pdp-stickybar-price { font-size: .9rem; color: var(--pdp-muted); }
body.dfpc-pdp .dfpc-pdp-stickybar-price del { opacity: .6; }
body.dfpc-pdp .dfpc-pdp-stickybar-btn {
	flex: 0 0 auto; background: var(--pdp-mint); color: var(--pdp-navy); font-weight: 700; text-decoration: none;
	padding: .85em 1.5em; border-radius: 10px; min-height: 48px; display: flex; align-items: center;
}
@media (min-width: 783px) { body.dfpc-pdp .dfpc-pdp-stickybar { display: none; } }

/* hide the whole product meta line (category / tag / brand / SKU) - decluttered.
 * SEO is intact: category is in the breadcrumb, Brand stays in the Product schema. */
body.dfpc-pdp .product_meta { display: none; }

/* product details accordion (full original description) */
body.dfpc-pdp .dfpc-pdp-detailsbox { max-width: 820px; margin: 0 auto; }
body.dfpc-pdp .dfpc-pdp-richtext { color: var(--pdp-ink); }
body.dfpc-pdp .dfpc-pdp-richtext h4 { font-family: var(--font-heading, Georgia, serif); font-weight: 600; color: var(--pdp-navy); margin: 1.1em 0 .3em; font-size: 1.1rem; }
body.dfpc-pdp .dfpc-pdp-richtext p { margin: .5em 0; line-height: 1.6; }
body.dfpc-pdp .dfpc-pdp-richtext ul { margin: .5em 0; padding-left: 1.3em; }
body.dfpc-pdp .dfpc-pdp-richtext li { margin: .25em 0; }
body.dfpc-pdp .dfpc-pdp-richtext table { width: 100%; border-collapse: collapse; margin: .9em 0; }
body.dfpc-pdp .dfpc-pdp-richtext th, body.dfpc-pdp .dfpc-pdp-richtext td { border: 1px solid var(--pdp-line); padding: .5em .8em; text-align: left; }
body.dfpc-pdp .dfpc-pdp-richtext thead th { background: var(--pdp-cream); color: var(--pdp-navy); }

/* ============================================================================
 * Polish round 2: full-bleed section BANDS with contained CONTENT, quantity
 * field, related-products cards, buy-box description spacing.
 * ========================================================================== */

/* The buy box stays at the contained (box) width; the section bands break out to
 * full viewport width with their content centered at the box width. */
body.dfpc-pdp { overflow-x: hidden; } /* guard the 100vw bleed against a scrollbar */
body.dfpc-pdp .dfpc-pdp-section,
body.dfpc-pdp .dfpc-pdp-certbar,
body.dfpc-pdp .related.products {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
	clear: both; /* drop below the gallery/summary floats (esp. the trust band right under the buy box) */
}
body.dfpc-pdp .dfpc-pdp-wrap { max-width: 1180px; margin: 0 auto; padding-left: 1.3rem; padding-right: 1.3rem; }

/* buy-box description: more breathing room + a clearer lead line */
body.dfpc-pdp .dfpc-pdp-subtitle { font-size: 1.1rem; line-height: 1.55; color: var(--pdp-ink); margin: 0 0 1em; }
body.dfpc-pdp .dfpc-pdp-bullets { margin: 0 0 1.2em; }
body.dfpc-pdp .dfpc-pdp-bullets li { padding: .3em 0 .3em 1.8em; }

/* quantity + add-to-cart on one tidy row, both 56px tall (SIMPLE product) */
body.dfpc-pdp form.cart { margin: 1.1em 0 .8em; }
body.dfpc-pdp form.cart:not(.variations_form) { display: flex; align-items: stretch; gap: .7rem; flex-wrap: wrap; }
/* VARIABLE product: form is block (variations stack); the add-to-cart row is the flex row */
body.dfpc-pdp .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: .7rem; flex-wrap: wrap; margin-top: .8em; }
/* "Choose a Size" variation selector */
body.dfpc-pdp .variations { margin: .2em 0 1em; border-collapse: collapse; width: 100%; }
body.dfpc-pdp .variations th.label { color: var(--pdp-navy); font-weight: 600; text-align: left; padding: .4em .8em .4em 0; vertical-align: middle; white-space: nowrap; }
body.dfpc-pdp .variations td.value select { width: 100%; min-height: 52px; padding: .5em .8em; border: 1px solid var(--pdp-line); border-radius: 10px; font-size: 1rem; color: var(--pdp-ink); background: #fff; }
body.dfpc-pdp .woocommerce-variation-price .price { font-size: 1.6rem; font-weight: 700; color: var(--pdp-navy); }
body.dfpc-pdp .reset_variations { display: inline-block; margin-top: .3em; color: var(--pdp-blue); font-size: .85rem; }
body.dfpc-pdp form.cart .quantity { flex: 0 0 auto; display: flex; align-items: stretch; }
body.dfpc-pdp form.cart .quantity .qty {
	height: 56px; width: 3.6rem; text-align: center; font-size: 1.1rem; font-weight: 600;
	border: 1px solid var(--pdp-line); color: var(--pdp-navy); background: #fff; -moz-appearance: textfield;
}
body.dfpc-pdp form.cart .quantity button,
body.dfpc-pdp form.cart .quantity .plus,
body.dfpc-pdp form.cart .quantity .minus {
	width: 46px; height: 56px; border: 1px solid var(--pdp-line); background: #fff; color: var(--pdp-navy);
	font-size: 1.25rem; line-height: 1; cursor: pointer; border-radius: 10px;
}
body.dfpc-pdp form.cart .quantity .qty { border-radius: 0; border-left: 0; border-right: 0; }
body.dfpc-pdp .single_add_to_cart_button.button { flex: 1 1 220px; width: auto; box-shadow: none; }

/* related products -> a proper cream band with premium cards (force-override WC columns-3 floats) */
body.dfpc-pdp .related.products { background: var(--pdp-cream); padding: clamp(2rem,1rem + 4vw,3.5rem) 1.3rem; float: none !important; clear: both; }
body.dfpc-pdp .related.products > h2 {
	max-width: 1180px; margin: 0 auto 1.4rem; font-family: var(--font-heading,Georgia,serif); font-weight: 600;
	color: var(--pdp-navy); font-size: clamp(1.5rem,1.1rem + 1.8vw,2.05rem);
}
body.dfpc-pdp .related.products ul.products {
	max-width: 1180px; margin: 0 auto !important; padding: 0; list-style: none; width: auto !important;
	display: grid !important; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)) !important; gap: 1.4rem !important;
}
body.dfpc-pdp .related.products ul.products::before,
body.dfpc-pdp .related.products ul.products::after { content: none !important; display: none !important; }
body.dfpc-pdp .related.products ul.products li.product {
	background: #fff; border: 1px solid var(--pdp-line); border-radius: var(--pdp-radius);
	padding: 1.1rem; margin: 0 !important; width: auto !important; max-width: none !important; float: none !important; clear: none !important;
}
body.dfpc-pdp .related.products li.product a img { width: 100%; height: auto; border-radius: 8px; }
body.dfpc-pdp .related.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-heading,Georgia,serif); color: var(--pdp-navy); font-size: 1.05rem; padding: .4em 0 .2em;
}
body.dfpc-pdp .related.products li.product .price { color: var(--pdp-navy); }
body.dfpc-pdp .related.products li.product .button {
	background: var(--pdp-mint); color: var(--pdp-navy); border: 0; border-radius: 10px; font-weight: 700; margin-top: .6em;
}

/* enriched expert (Dr. Miller) block */
body.dfpc-pdp .dfpc-pdp-expert { gap: 2rem; padding: 2rem; align-items: center; }
body.dfpc-pdp .dfpc-pdp-expert-photo { width: 156px; height: 156px; box-shadow: 0 6px 18px rgba(33,60,76,.18); border: 4px solid #fff; }
body.dfpc-pdp .dfpc-pdp-expert-bio { color: var(--pdp-muted); line-height: 1.6; margin: .3em 0 .7em; }
body.dfpc-pdp .dfpc-pdp-quote { font-size: 1.1rem; }

/* "complete the routine" bundle / cross-sell - contained + balanced (was spreading full-width) */
body.dfpc-pdp .dfpc-pdp-bundle { max-width: 880px; margin: 0 auto; display: flex; gap: 2.5rem; align-items: center; justify-content: center; flex-wrap: wrap; }
body.dfpc-pdp .dfpc-pdp-bundle-copy { flex: 1 1 320px; }

/* TargetBay reviews block: constrain to the content width (was too wide) */
body.dfpc-pdp #targetbay_reviews,
body.dfpc-pdp .woocommerce-tabs.wc-tabs-wrapper ~ #targetbay_reviews { clear: both; max-width: 1180px; margin: 1rem auto 0 !important; padding: 0 1.3rem; }
body.dfpc-pdp #targetbay_reviews .tbay_reviews_main_div,
body.dfpc-pdp #targetbay_reviews > div { max-width: 100%; }

/* details "More about CardioChew" accordion box inside its cream band */
body.dfpc-pdp #dfpc-details .dfpc-pdp-detailsbox { max-width: 820px; margin: 0 auto; }

/* remove trailing whitespace after the last section / final CTA */
body.dfpc-pdp .dfpc-pdp-finalcta { margin-bottom: 0; }
body.dfpc-pdp div.product { margin-bottom: 0; padding-bottom: 0; }
body.dfpc-pdp .related.products { margin-bottom: 0; }
body.dfpc-pdp .dfpc-pdp-bundle-copy p { font-size: 1.1rem; line-height: 1.6; color: var(--pdp-ink); margin: 0; }
body.dfpc-pdp .dfpc-pdp-bundle-card {
	flex: 0 0 260px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .15em;
	padding: 1.4rem; background: #fff; border: 1px solid var(--pdp-line); border-radius: var(--pdp-radius);
	text-decoration: none; color: var(--pdp-ink); transition: box-shadow .15s, transform .12s;
}
body.dfpc-pdp .dfpc-pdp-bundle-card:hover { box-shadow: 0 10px 26px rgba(0,0,0,.1); transform: translateY(-2px); }
body.dfpc-pdp .dfpc-pdp-bundle-img { width: 150px; height: 150px; object-fit: contain; }
body.dfpc-pdp .dfpc-pdp-bundle-name { font-family: var(--font-heading,Georgia,serif); font-weight: 600; color: var(--pdp-navy); font-size: 1.1rem; margin-top: .4em; }
body.dfpc-pdp .dfpc-pdp-bundle-price { color: var(--pdp-muted); font-size: .95rem; }
body.dfpc-pdp .dfpc-pdp-bundle-btn { margin-top: .7em; background: var(--pdp-mint); color: var(--pdp-navy); font-weight: 700; padding: .7em 1.5em; border-radius: 10px; }

/* Put the TargetBay rating (Ask a question | Write a review) right below the title.
 * TargetBay injects it client-side near a .product-name holder (priority 10), so the only
 * reliable way to move it is to flex the buy box and reorder. Eyebrow + title + rating float to
 * the top; everything else keeps its natural order. */
body.dfpc-pdp .summary.entry-summary { display: flex; flex-direction: column; }
body.dfpc-pdp .summary.entry-summary > .dfpc-pdp-eyebrow { order: -3; }
body.dfpc-pdp .summary.entry-summary > .product_title { order: -2; }
body.dfpc-pdp .summary.entry-summary > .product-name,
body.dfpc-pdp .summary.entry-summary > .woocommerce-product-rating { order: -1; margin: 0 0 .4em; }

/* ===== Polish round 4 ===== */
/* tighten vertical rhythm - the page read too airy */
body.dfpc-pdp .dfpc-pdp-section { padding-top: clamp(1.6rem,.9rem + 2.2vw,2.6rem); padding-bottom: clamp(1.6rem,.9rem + 2.2vw,2.6rem); }

/* related products: brute-force full width (WooCommerce was floating it to ~48%) */
body.dfpc-pdp .related.products {
	display: block !important; float: none !important; clear: both !important;
	width: 100vw !important; max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
}

/* Dr. Miller: top-align the photo with the name; keep text left-aligned */
body.dfpc-pdp .dfpc-pdp-expert { align-items: flex-start; text-align: left; }
body.dfpc-pdp .dfpc-pdp-expert-body { text-align: left; flex: 1; }
body.dfpc-pdp .dfpc-pdp-expert-photo { margin-top: .25rem; }

/* "complete the routine": clean horizontal product card (full redesign) */
body.dfpc-pdp .dfpc-pdp-bundle {
	max-width: 880px; margin: 0 auto; display: flex; gap: 2rem; align-items: stretch; flex-wrap: nowrap;
	background: #fff; border: 1px solid var(--pdp-line); border-radius: var(--pdp-radius); padding: 1.6rem;
	text-decoration: none; color: var(--pdp-ink); transition: box-shadow .15s, transform .12s;
}
body.dfpc-pdp .dfpc-pdp-bundle:hover { box-shadow: 0 12px 28px rgba(33,60,76,.12); transform: translateY(-2px); }
body.dfpc-pdp .dfpc-pdp-bundle-media {
	flex: 0 0 210px; background: var(--pdp-cream); border-radius: 12px; display: flex; align-items: center; justify-content: center; padding: 1.1rem;
}
body.dfpc-pdp .dfpc-pdp-bundle-media img { width: 100%; height: auto; max-height: 185px; object-fit: contain; display: block; border-radius: 0; }
body.dfpc-pdp .dfpc-pdp-bundle-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
body.dfpc-pdp .dfpc-pdp-bundle-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--pdp-blue); }
body.dfpc-pdp .dfpc-pdp-bundle-name { font-family: var(--font-heading,Georgia,serif); font-weight: 600; color: var(--pdp-navy); font-size: 1.2rem; margin: .15em 0 .35em; }
body.dfpc-pdp .dfpc-pdp-bundle-text { color: var(--pdp-muted); line-height: 1.55; margin: 0 0 1em; }
body.dfpc-pdp .dfpc-pdp-bundle-foot { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
body.dfpc-pdp .dfpc-pdp-bundle-price { font-weight: 600; color: var(--pdp-navy); }
body.dfpc-pdp .dfpc-pdp-bundle-btn { background: var(--pdp-mint); color: var(--pdp-navy); font-weight: 700; padding: .65em 1.4em; border-radius: 10px; }

/* quantity: connected minus | input | plus, no stray gap after the minus */
body.dfpc-pdp form.cart .quantity { gap: 0; }
body.dfpc-pdp form.cart .quantity > * { margin: 0 !important; }
body.dfpc-pdp form.cart .quantity .qty { border-radius: 0; }

/* match section content width to the buy box (Astra site-content-width = 1200) */
body.dfpc-pdp .dfpc-pdp-wrap { max-width: 1200px; }
/* the bundle / FAQ / "More about" use centered content blocks - center their headings to match
 * (the other sections are left-aligned with full-width content, which already lines up) */
body.dfpc-pdp #dfpc-bundle .dfpc-pdp-h2,
body.dfpc-pdp #dfpc-faq .dfpc-pdp-h2,
body.dfpc-pdp #dfpc-details .dfpc-pdp-h2 { text-align: center; }

/* ===== Polish round 5: related cards + reviews heading ===== */
/* related product cards: equal heights, button pinned to the bottom, tidy spacing */
body.dfpc-pdp .related.products ul.products li.product { display: flex; flex-direction: column; }
body.dfpc-pdp .related.products li.product .woocommerce-loop-product__title { min-height: 2.5em; }
body.dfpc-pdp .related.products li.product .price { margin: .3em 0; display: block; }
body.dfpc-pdp .related.products li.product .button,
body.dfpc-pdp .related.products li.product .added_to_cart { margin-top: auto !important; align-self: flex-start; }
/* out-of-stock label: keep it off the image edge */
body.dfpc-pdp .related.products li.product .out-of-stock,
body.dfpc-pdp .related.products li.product .stock.out-of-stock { display: block; margin: .5em 0; position: static; }

/* TargetBay "Product Reviews": match our section-title style + more side padding */
body.dfpc-pdp #targetbay_reviews { padding-left: 2rem; padding-right: 2rem; }
body.dfpc-pdp #targetbay_reviews h1,
body.dfpc-pdp #targetbay_reviews h2,
body.dfpc-pdp #targetbay_reviews h3 {
	font-family: var(--font-heading,Georgia,serif) !important; color: var(--pdp-navy) !important; font-weight: 600 !important;
}

/* ===== Polish round 6: Dr. Miller photo + text alignment ===== */
/* The headshot is delivered as a <picture> (WebP) wrapping a portrait <img>. Size the INNER img
 * (the earlier rules styled the <picture>, so the img rendered at natural size). Show the full
 * portrait as a clean rounded photo, top-aligned with the name. */
body.dfpc-pdp .dfpc-pdp-expert-photo {
	width: 160px; height: auto; flex: 0 0 160px; align-self: flex-start; display: block;
	border: 0; box-shadow: none; border-radius: 0; object-fit: initial; margin: 0;
}
body.dfpc-pdp .dfpc-pdp-expert-photo img {
	width: 100%; height: auto; display: block; border-radius: 14px; box-shadow: 0 8px 22px rgba(33,60,76,.18);
}
/* body: name, bio, quote and link all share one left edge */
body.dfpc-pdp .dfpc-pdp-expert-body { text-align: left; }
body.dfpc-pdp .dfpc-pdp-quote {
	margin: 1.1em 0; padding: .95em 1.2em; background: var(--pdp-cream);
	border-left: 4px solid var(--pdp-mint); border-radius: 0 10px 10px 0;
	font-style: italic; font-size: 1.05rem; line-height: 1.55; color: var(--pdp-navy);
}

/* ===== Polish round 7: buy box - mint CTA + brand-styled Subscribe & Save ===== */
/* Add-to-cart: mint primary CTA (Astra's .button.alt was forcing it blue) */
body.dfpc-pdp .single_add_to_cart_button.button.alt {
	background: var(--pdp-mint) !important; color: var(--pdp-navy) !important; border: 0 !important;
	box-shadow: 0 6px 18px rgba(61,223,155,.35) !important;
}
body.dfpc-pdp .single_add_to_cart_button.button.alt:hover { background: #32cc8c !important; transform: translateY(-1px); }
/* main price (above the options): make the AMOUNT big (the earlier rule sized the <p>, not the
 * $-amount span inside) + drop the stray <br>; keep the "or subscribe..." suffix small/muted */
body.dfpc-pdp .summary p.price { font-size: 1.05rem; line-height: 1.25; margin: .25em 0 .15em; }
body.dfpc-pdp .summary p.price br { display: none; }
body.dfpc-pdp .summary p.price > .woocommerce-Price-amount { font-size: 1.95rem !important; font-weight: 700; color: var(--pdp-navy); vertical-align: middle; }
body.dfpc-pdp .summary p.price .wcsatt-sub-options { font-size: .85rem; font-weight: 400; color: var(--pdp-muted); }
body.dfpc-pdp .summary p.price .wcsatt-sub-discount { vertical-align: middle; }
/* VARIABLE product shows a price RANGE ("$49.99 - $109.99"); two big amounts + a tiny dash
 * read like a superscript. Right-size the range and center the separator (simple products
 * keep the larger single price). The classless aria-hidden span is the range dash. */
body.dfpc-pdp .product-type-variable .summary p.price > .woocommerce-Price-amount { font-size: 1.55rem !important; }
body.dfpc-pdp .summary p.price > span[aria-hidden="true"]:not(.woocommerce-Price-amount) { display: inline-block; margin: 0 .12em; color: var(--pdp-muted); font-weight: 600; vertical-align: middle; }

/* ----- Subscribe & Save: FULL redesign - each plan is a clean selectable card ----- */
/* drop the outer box + the plugin's nested borders/padding (that was the "two borders") */
body.dfpc-pdp .wcsatt-options-wrapper { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; margin: 1.1em 0 !important; }
body.dfpc-pdp .wcsatt-options-product-wrapper,
body.dfpc-pdp .wcsatt-options-product-prompt { border: 0 !important; padding: 0 !important; margin: 0 !important; background: none !important; }
body.dfpc-pdp .wcsatt-options-prompt-text-label { display: block; font-weight: 700; color: var(--pdp-navy); margin: 0 0 .3em; font-size: 1rem; }
body.dfpc-pdp h4.subscription-title { display: none; } /* nested in the one-time option; rows + badges make the grouping clear */

/* options -> selectable bordered cards */
body.dfpc-pdp ul.wcsatt-options-product { list-style: none !important; margin: 0 !important; padding: 0 !important; }
body.dfpc-pdp .one-time-option, body.dfpc-pdp .subscription-option { margin: 0 !important; padding: 0 !important; border: 0 !important; }
body.dfpc-pdp .one-time-option > label, body.dfpc-pdp .subscription-option > label {
	display: flex !important; align-items: flex-start; gap: .65em; margin: 0 0 .55em !important; padding: .75em .85em; cursor: pointer;
	border: 1px solid var(--pdp-line); border-radius: 11px; transition: border-color .15s, background .15s, box-shadow .15s;
}
body.dfpc-pdp .one-time-option input[type=radio], body.dfpc-pdp .subscription-option input[type=radio] {
	accent-color: var(--pdp-mint); width: 1.2em; height: 1.2em; flex: 0 0 auto; margin: .12em 0 0 !important;
}
body.dfpc-pdp .one-time-option:has(input:checked) > label,
body.dfpc-pdp .subscription-option:has(input:checked) > label {
	border-color: var(--pdp-mint); background: var(--pdp-cream); box-shadow: inset 0 0 0 1px var(--pdp-mint);
}

/* the label content + pricing inside each card. NATURAL inline flow - not scattered flex
 * items (that broke "$" off its number and orphaned the "- save" suffix on mobile). Normal
 * case reads better for senior users and wraps far less than the old uppercase. */
body.dfpc-pdp .one-time-option-details, body.dfpc-pdp .subscription-option-details { flex: 1; display: block; color: var(--pdp-ink); line-height: 1.55; font-size: .95rem; text-transform: none; }
body.dfpc-pdp .one-time-option-details br, body.dfpc-pdp .subscription-option-details br { display: none; }
/* the inner .price span inherits the buy-box 1.5rem from ".summary .price" - pin it to row size */
body.dfpc-pdp .one-time-option-details .price, body.dfpc-pdp .subscription-option-details .price { font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0; }
body.dfpc-pdp .one-time-price { font-weight: 700; color: var(--pdp-navy); }
body.dfpc-pdp .subscription-details { color: var(--pdp-muted); }
/* every "$59.99" stays intact (currency symbol + number never split) - top range AND option rows */
body.dfpc-pdp .summary .woocommerce-Price-amount, body.dfpc-pdp .wcsatt-options-wrapper .woocommerce-Price-amount { white-space: nowrap; }
body.dfpc-pdp .wcsatt-options-wrapper .woocommerce-Price-amount { font-weight: 700; color: var(--pdp-navy); }
body.dfpc-pdp .subscription-price del { opacity: .6; margin-right: .15em; }
body.dfpc-pdp .subscription-price del .woocommerce-Price-amount { font-weight: 400; color: var(--pdp-muted); text-decoration: line-through; }
body.dfpc-pdp .subscription-price ins { text-decoration: none; }
body.dfpc-pdp .wcsatt-sub-discount { display: inline-block; background: var(--pdp-mint); color: var(--pdp-navy); font-weight: 700; font-size: .72rem; letter-spacing: .02em; text-transform: uppercase; padding: .2em .5em; border-radius: 5px; margin-left: .2em; vertical-align: baseline; white-space: nowrap; }
body.dfpc-pdp .wcsatt-options-wrapper .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); margin: -1px; padding: 0; border: 0; white-space: nowrap; }

/* ----- Subscribe & Save: artifact + gap fixes ----- */
/* a plugin injects "& Free Shipping" via ::after in blue (#329dff) -> invisible on the mint badge */
body.dfpc-pdp .wcsatt-options-product .wcsatt-sub-discount::after { color: var(--pdp-navy) !important; }
body.dfpc-pdp .wcsatt-sub-discount { text-transform: none; }
/* radios: clean native circle (strip WCS_ATT/theme background + pseudo artifacts) */
body.dfpc-pdp .wcsatt-options-product input[type=radio] {
	-webkit-appearance: radio !important; appearance: auto !important;
	background: none !important; background-image: none !important; box-shadow: none !important; border: 0 !important; outline: 0 !important;
}
body.dfpc-pdp .wcsatt-options-product input[type=radio]::before,
body.dfpc-pdp .wcsatt-options-product input[type=radio]::after { content: none !important; display: none !important; }
/* the hidden "Subscription Options:" h4 (nested in the one-time option) was leaving a gap */
body.dfpc-pdp h4.subscription-title { display: none !important; height: 0 !important; margin: 0 !important; padding: 0 !important; line-height: 0 !important; }
/* a plugin sets `.wcsatt-options-product li.one-time-option{margin-bottom:35px!important}` -> the gap.
 * Beat it with higher specificity so the one-time card spaces like the rest. */
body.dfpc-pdp .wcsatt-options-product li.one-time-option { margin-bottom: 0 !important; }
/* The Customizer (wp-custom-css) fights us on the ONE-TIME option with higher-specificity rules:
 *   `ul.wcsatt-options-product li span.one-time-option-details{display:inline-block}` and, worse,
 *   `.one-time-option-details span{display:inherit!important}` - the latter cascades the parent's
 * display down the nested price spans, so when the details is block the "$" and "59.99" stack
 * vertically ("One time / Purchase - / $ / 59.99"). Beat it with higher specificity + !important:
 * details = block, every inner span = inline, and the amount never splits. */
body.dfpc-pdp ul.wcsatt-options-product li.one-time-option .one-time-option-details { display: block !important; }
body.dfpc-pdp ul.wcsatt-options-product li.one-time-option .one-time-option-details span { display: inline !important; }
body.dfpc-pdp ul.wcsatt-options-product li.one-time-option .one-time-option-details .woocommerce-Price-amount { white-space: nowrap !important; }
body.dfpc-pdp ul.wcsatt-options-product li.one-time-option .one-time-price { font-weight: 700; color: var(--pdp-navy); }

/* ===== Polish round 9: related cards ===== */
/* center the card content */
body.dfpc-pdp .related.products li.product { text-align: center; }
body.dfpc-pdp .related.products li.product .button,
body.dfpc-pdp .related.products li.product .added_to_cart { align-self: center; margin-top: auto !important; }
/* hide the "Earn X Reward Points" line (base-price points -> misleading on a variable product) */
/* the rewards plugin injects "Earn 49.99 Reward Points" (the base PRICE as points - misleading)
 * into every get_price_html() output; hide it PDP-wide (related cards, bundle card, buy box). */
body.dfpc-pdp .variablerelatedmessage { display: none !important; }
/* clean the price: drop stray <br>, readable savings (plain text, no heavy badge in the small card) */
body.dfpc-pdp .related.products li.product .price br { display: none; }
body.dfpc-pdp .related.products li.product .price .wcsatt-sub-options { color: var(--pdp-muted); }
body.dfpc-pdp .related.products li.product .wcsatt-sub-discount { background: none !important; color: var(--pdp-navy) !important; font-weight: 700; padding: 0 !important; border-radius: 0; }
body.dfpc-pdp .related.products li.product .wcsatt-sub-discount::after { color: var(--pdp-navy) !important; }
/* "Select options" -> secondary OUTLINED button (distinct from the primary mint CTA) */
body.dfpc-pdp .related.products li.product .button {
	background: #fff !important; color: var(--pdp-navy) !important; border: 1.5px solid var(--pdp-navy) !important;
	box-shadow: none !important; font-weight: 600;
}
body.dfpc-pdp .related.products li.product .button:hover { background: var(--pdp-navy) !important; color: #fff !important; }

/* ============================================================================
 * Responsive / mobile (70% of traffic - must be perfect)
 * ========================================================================== */
@media (max-width: 782px) {
	/* sections: comfortable padding + smaller headings */
	body.dfpc-pdp .dfpc-pdp-section { padding-top: 1.7rem; padding-bottom: 1.7rem; }
	body.dfpc-pdp .dfpc-pdp-wrap { padding-left: 1.1rem; padding-right: 1.1rem; }
	body.dfpc-pdp .dfpc-pdp-h2 { font-size: 1.4rem; }

	/* buy box */
	body.dfpc-pdp .product_title.entry-title { font-size: 1.5rem; }
	body.dfpc-pdp .dfpc-pdp-dose-chips { gap: .45em; }
	body.dfpc-pdp .dfpc-pdp-chip { flex: 1 1 calc(50% - .45em); }
	body.dfpc-pdp form.cart { gap: .6rem; }
	body.dfpc-pdp form.cart .quantity .qty { width: 3.2rem; }
	body.dfpc-pdp .single_add_to_cart_button.button { font-size: 1.05rem; flex: 1 1 100%; }

	/* main price: keep the range on one line; push the "- or subscribe to save 15%" suffix
	 * onto its own line so it stops cramming the big number. The amount shrink is scoped to
	 * VARIABLE products (the range) so simple products keep their big single price. */
	body.dfpc-pdp .summary p.price { line-height: 1.3; }
	body.dfpc-pdp .product-type-variable .summary p.price > .woocommerce-Price-amount { font-size: 1.4rem !important; }
	body.dfpc-pdp .summary p.price .wcsatt-sub-options { display: block; margin-top: .3em; font-size: .82rem; }
	body.dfpc-pdp .summary p.price .wcsatt-sub-options .wcsatt-dash { display: none; } /* leading dash looks odd at line start */
	/* Subscribe & Save rows: a touch more vertical room for tap targets */
	body.dfpc-pdp .one-time-option > label, body.dfpc-pdp .subscription-option > label { padding: .85em; }

	/* cards: tidy gaps (auto-fit already collapses to 1-2 cols) */
	body.dfpc-pdp .dfpc-pdp-cards, body.dfpc-pdp .dfpc-pdp-actives { gap: 1rem; }

	/* expert: stack with photo on top, EVERYTHING centered */
	body.dfpc-pdp .dfpc-pdp-expert { flex-direction: column; align-items: center; text-align: center; padding: 1.4rem; }
	body.dfpc-pdp .dfpc-pdp-expert-photo { align-self: center; }
	body.dfpc-pdp .dfpc-pdp-expert-body { align-self: stretch; text-align: center; }
	body.dfpc-pdp .dfpc-pdp-expert-bio { text-align: center; }
	body.dfpc-pdp .dfpc-pdp-quote { text-align: center; }

	/* bundle: stack image over the body */
	body.dfpc-pdp .dfpc-pdp-bundle { flex-direction: column; text-align: center; padding: 1.4rem; }
	body.dfpc-pdp .dfpc-pdp-bundle-foot { justify-content: center; }

	/* tables: smaller, let cell text wrap (no overflow) */
	body.dfpc-pdp .dfpc-pdp-dosetable, body.dfpc-pdp .dfpc-pdp-compare { font-size: .82rem; }
	body.dfpc-pdp .dfpc-pdp-dosetable th, body.dfpc-pdp .dfpc-pdp-compare th,
	body.dfpc-pdp .dfpc-pdp-dosetable td, body.dfpc-pdp .dfpc-pdp-compare td { padding: .55em .5em; }

	/* trust band + related: tidy spacing */
	body.dfpc-pdp .dfpc-pdp-certbar ul { gap: .5em 1.2em; }
	body.dfpc-pdp .related.products ul.products { gap: 1rem !important; }

	/* FAQ summary: keep chevron from crowding the text */
	body.dfpc-pdp .dfpc-pdp-faq-item summary { font-size: 1rem; padding: .9em 1em; }
}
@media (max-width: 480px) {
	body.dfpc-pdp .dfpc-pdp-chip { flex: 1 1 100%; }
	body.dfpc-pdp .dfpc-pdp-h2 { font-size: 1.3rem; }
	body.dfpc-pdp .dfpc-pdp-expert-photo { width: 140px; height: auto; flex-basis: auto; }
}
