/**
 * PrimatePet Checkout — cart + checkout styling.
 *
 * Palette and components are the CDP-measured source values (PROJECT-BRIEF §6):
 *   brand/CTA #FA441D · headings #000000 · body #555555 · accent #FEDA46
 *   cream #FFF8E5 · muted #8D8D8D · input border 0.667px solid #B1B1B1, radius 0,
 *   padding 17px 29px · .btn-primary = #FA441D on #FFF, radius 100px (pill), 56px tall,
 *   padding 0 50px, Anybody 600 16px · container 1330px.
 *
 * ⛔ No #720eec / --wc-primary / --woocommerce anywhere: those are WooCommerce defaults,
 * not this brand.
 *
 * Inlined from disk in wp_head (priority 999) because Hostinger's x-hcdn edge caches
 * .css by path and ignores ?ver.
 *
 * ⚠️ VERIFICATION NOTE: because this sheet is inlined SITE-WIDE, a whole-page
 * `grep -c 'ppck-'` matches on EVERY page whatever rendered — that is the exact
 * false-PASS trap in STANDARDS ("/cart/ contained cxck" while serving the stock block
 * cart). Any assertion must strip the style and script blocks first, then test markup
 * unique to the thing under test, ideally as a PRESENT+ABSENT pair.
 *
 * ⛔ AND NEVER WRITE A LITERAL ANGLE-BRACKET TAG IN THIS FILE — not even in a comment.
 * This stylesheet is inlined into wp_head on EVERY page, and every verifier in the
 * pipeline strips the script block before the style block. A literal script tag sitting
 * in here therefore terminates the strip early and eats the whole body: P3 measured
 * /shop/ scoring 0 cards / 0 widgets / 0 sort options while it was in fact rendering all
 * three. Same family as the plain-text-email trap, one layer out. Say "script tag", not
 * the tag itself.
 *
 * Verified at 390 first, then 820 / 1440.
 */

.ppck-cart,
.woocommerce-checkout .woocommerce,
.ppck-delivery {
	--pp-brand: #FA441D;
	--pp-ink: #000000;
	--pp-body: #555555;
	--pp-accent: #FEDA46;
	--pp-cream: #FFF8E5;
	--pp-muted: #8D8D8D;
	--pp-border: #B1B1B1;
	--pp-line: rgba(0, 0, 0, .12);
	--pp-sans: "Anybody", "Segoe UI", Helvetica, Arial, sans-serif;
	--pp-display: "DynaPuff", "Anybody", "Trebuchet MS", Helvetica, Arial, sans-serif;
}

/* ============================================================ shared controls */

/* ⚠️ BUTTONS — SPECIFICITY, NOT TASTE. Read before "simplifying" these selectors.
 *
 * WooCommerce's own `woocommerce.css` paints every button, and it is enqueued on
 * /cart/ and /checkout/ (verified: woocommerce.css?ver=11.2.0 in the head). Its rules
 * look weak because of the `:where()` wrapper, but `:where()` contributes ZERO
 * specificity, so they actually resolve to:
 *
 *   .woocommerce:where(body:not(...)) a.button.alt   -> (0,3,1)   background #7f54b3
 *   .woocommerce:where(body:not(...)) button.button  -> (0,2,1)   background #ebe9eb
 *   .woocommerce .cart .button                       -> (0,3,0)
 *   .woocommerce .wc-proceed-to-checkout a.checkout-button -> (0,3,1)
 *
 * A single-class rule of mine like `.ppck-cart .checkout-button` is (0,2,0) and LOSES,
 * so "Proceed to checkout" rendered WooCommerce PURPLE and the secondary buttons
 * rendered Woo grey. Measured head-to-head, not guessed. This is the same systemic
 * defect P3 found on the sale badge and P4 found on the PDP add-to-cart — the fourth
 * independent instance, so it is the house pattern, not a one-off.
 *
 * ⛔ Nor is it masked here: Woo gates those rules on
 * `body:not(.woocommerce-block-theme-has-button-styles)`, and that class is ABSENT on
 * this site, so the rules are live right now.
 *
 * Fix: match the ELEMENT as well as the class (so the element column cannot be lost),
 * and mark the four paint properties `!important`. Geometry is left unflagged because
 * nothing competes for it.
 */
.ppck-cart a.button,
.ppck-cart button.button,
.ppck-cart input.button,
.ppck-cart a.checkout-button,
.woocommerce .ppck-cart a.button,
.woocommerce .ppck-cart button.button,
.woocommerce .ppck-cart input.button,
.woocommerce .ppck-cart a.checkout-button,
.woocommerce-checkout #place_order {
	display: inline-block;
	box-sizing: border-box;
	height: 56px;
	line-height: 1;
	padding: 0 50px;
	border: 0 !important;
	border-radius: 100px !important;
	background: var(--pp-brand) !important;
	background-color: var(--pp-brand) !important;
	color: #fff !important;
	font-family: var(--pp-sans);
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
	text-decoration: none;
	text-shadow: none !important;
	transition: background .18s ease, color .18s ease;
}

.ppck-cart a.button:hover,
.ppck-cart button.button:hover,
.ppck-cart input.button:hover,
.ppck-cart a.checkout-button:hover,
.woocommerce .ppck-cart a.button:hover,
.woocommerce .ppck-cart button.button:hover,
.woocommerce .ppck-cart input.button:hover,
.woocommerce .ppck-cart a.checkout-button:hover,
.woocommerce-checkout #place_order:hover {
	background: var(--pp-ink) !important;
	background-color: var(--pp-ink) !important;
	color: #fff !important;
}

/* "Update cart" / "Apply coupon" are secondary actions, not the primary CTA.
   Element-qualified for the same reason as above — `.woocommerce .cart .button` is
   (0,3,0) and would otherwise repaint these. */
.ppck-cart .actions button.button[name="update_cart"],
.ppck-cart .actions .coupon button.button,
.woocommerce .ppck-cart .actions button.button[name="update_cart"],
.woocommerce .ppck-cart .actions .coupon button.button {
	background: #fff !important;
	background-color: #fff !important;
	color: var(--pp-ink) !important;
	border: 1px solid var(--pp-border) !important;
	padding: 0 28px;
}

.ppck-cart .actions button.button[name="update_cart"]:hover,
.ppck-cart .actions .coupon button.button:hover,
.woocommerce .ppck-cart .actions button.button[name="update_cart"]:hover,
.woocommerce .ppck-cart .actions .coupon button.button:hover {
	background: var(--pp-cream) !important;
	background-color: var(--pp-cream) !important;
	color: var(--pp-ink) !important;
}

.ppck-cart input[type="text"],
.ppck-cart input[type="number"],
.woocommerce-checkout .woocommerce input.input-text,
.woocommerce-checkout .woocommerce textarea,
.woocommerce-checkout .woocommerce select {
	box-sizing: border-box;
	width: 100%;
	background: #fff;
	border: 0.667px solid var(--pp-border);
	border-radius: 0;
	padding: 17px 29px;
	color: var(--pp-ink);
	font-family: var(--pp-sans);
	font-size: 16px;
}

.woocommerce-checkout .woocommerce input.input-text:focus,
.woocommerce-checkout .woocommerce textarea:focus,
.woocommerce-checkout .woocommerce select:focus {
	outline: 0;
	border-color: var(--pp-brand);
}

.ppck-cart a { color: var(--pp-brand); }

/* ============================================================ /cart/ */

.ppck-cart {
	color: var(--pp-body);
	font-family: var(--pp-sans);
	font-size: 16px;
	line-height: 1.65;
}

.ppck-cart table.cart {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 2em;
	border: 0;
}

.ppck-cart table.cart thead th {
	padding: 0 .6em 1em;
	border: 0;
	border-bottom: 1px solid var(--pp-border);
	text-align: left;
	font-family: var(--pp-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-muted);
}

.ppck-cart table.cart td {
	padding: 1.2em .6em;
	border: 0;
	border-bottom: 1px solid var(--pp-line);
	vertical-align: middle;
}

.ppck-cart table.cart td.product-remove { width: 36px; padding-left: 0; }
.ppck-cart table.cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--pp-cream);
	color: var(--pp-ink);
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
}
.ppck-cart table.cart td.product-remove a.remove:hover { background: var(--pp-brand); color: #fff; }

.ppck-cart table.cart td.product-thumbnail { width: 96px; }
.ppck-cart table.cart td.product-thumbnail img { width: 80px; height: auto; display: block; border-radius: 0; }

.ppck-cart table.cart td.product-name a {
	font-family: var(--pp-sans);
	font-size: 18px;
	font-weight: 700;
	color: var(--pp-ink);
	text-decoration: none;
}
.ppck-cart table.cart td.product-name a:hover { color: var(--pp-brand); }

.ppck-cart table.cart td.product-price,
.ppck-cart table.cart td.product-subtotal { color: var(--pp-ink); font-weight: 600; }
.ppck-cart table.cart td.product-subtotal { color: var(--pp-brand); font-weight: 800; }

.ppck-cart table.cart td.actions { border-bottom: 0; padding: 1.6em 0 0; }
.ppck-cart .actions .coupon { display: flex; flex-wrap: wrap; gap: .6em; margin: 0 0 .9em; }
.ppck-cart .actions .coupon input#coupon_code { flex: 1 1 200px; min-width: 0; }

/* ---- the source's custom +/- quantity stepper (rebuilt with our own carets) ---- */
.ppck-qty {
	display: inline-flex;
	align-items: stretch;
	border: 0.667px solid var(--pp-border);
	background: #fff;
}

.ppck-qty .quantity { margin: 0; display: block; }

.ppck-qty input.qty {
	width: 56px;
	min-width: 0;
	height: 44px;
	padding: 0;
	border: 0;
	border-left: 0.667px solid var(--pp-border);
	border-right: 0.667px solid var(--pp-border);
	border-radius: 0;
	text-align: center;
	font-family: var(--pp-sans);
	font-weight: 600;
	color: var(--pp-ink);
	-moz-appearance: textfield;
	appearance: textfield;
}

.ppck-qty input.qty::-webkit-outer-spin-button,
.ppck-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ppck-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 44px;
	padding: 0;
	border: 0;
	background: #fff;
	color: var(--pp-ink);
	cursor: pointer;
}

.ppck-qty-btn:hover { background: var(--pp-cream); color: var(--pp-brand); }
.ppck-qty-btn svg { width: 10px; height: 6px; display: block; }

/* ---- cart totals ---- */
.ppck-cart .cart-collaterals { max-width: 440px; margin-left: auto; }

.ppck-cart .cart_totals h2 {
	font-family: var(--pp-display);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.2;
	color: var(--pp-ink);
	margin: 0 0 .6em;
}

.ppck-cart .cart_totals table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; }
.ppck-cart .cart_totals th,
.ppck-cart .cart_totals td {
	padding: .9em 0;
	border: 0;
	border-bottom: 1px solid var(--pp-line);
	text-align: left;
}
.ppck-cart .cart_totals td { text-align: right; color: var(--pp-ink); }
.ppck-cart .cart_totals th { color: var(--pp-muted); font-weight: 400; }
.ppck-cart .cart_totals tr.order-total th,
.ppck-cart .cart_totals tr.order-total td {
	border-bottom: 0;
	font-size: 20px;
	color: var(--pp-brand);
	font-weight: 800;
}

.ppck-cart .wc-proceed-to-checkout { margin: 0; }
/* `a.`, not `.` — Woo's `.woocommerce .wc-proceed-to-checkout a.checkout-button` is
   (0,3,1) and sets display/text-align itself, so a (0,3,0) rule here loses the layout. */
.ppck-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce .ppck-cart .wc-proceed-to-checkout a.checkout-button { display: block; text-align: center; line-height: 56px; padding: 0 20px; }

/* ---- empty state ---- */
.ppck-cart--empty { padding: 1em 0 2em; }
.ppck-cart--empty .cart-empty,
.ppck-cart--empty .wc-empty-cart-message {
	font-family: var(--pp-display);
	font-weight: 600;
	font-size: 28px;
	color: var(--pp-ink);
	margin: 0 0 1em;
}
.ppck-cart--empty .return-to-shop { margin: 0; }

/* ============================================================ /checkout/ */

.woocommerce-checkout .woocommerce { font-family: var(--pp-sans); color: var(--pp-body); }

.woocommerce-checkout .woocommerce h3,
.woocommerce-checkout #order_review_heading {
	font-family: var(--pp-display);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.15;
	color: var(--pp-ink);
	margin: 0 0 .7em;
}

.woocommerce-checkout .woocommerce .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce .woocommerce-additional-fields__field-wrapper { display: block; }

.woocommerce-checkout .woocommerce .form-row { margin: 0 0 1.1em; padding: 0; }
.woocommerce-checkout .woocommerce .form-row label {
	display: block;
	margin: 0 0 .4em;
	font-family: var(--pp-sans);
	font-size: 15px;
	font-weight: 600;
	color: var(--pp-ink);
}
.woocommerce-checkout .woocommerce .form-row .required { color: var(--pp-brand); text-decoration: none; border: 0; }

.woocommerce-checkout .woocommerce #customer_details { display: grid; grid-template-columns: 1fr; gap: 0 2em; }
.woocommerce-checkout .woocommerce #customer_details .col-1,
.woocommerce-checkout .woocommerce #customer_details .col-2 { float: none; width: auto; min-width: 0; }

/* the source lays billing first/last side by side */
@media screen and (min-width: 600px) {
	.woocommerce-checkout .woocommerce .form-row-first,
	.woocommerce-checkout .woocommerce .form-row-last {
		float: none;
		display: inline-block;
		width: calc(50% - .55em);
		vertical-align: top;
	}
	.woocommerce-checkout .woocommerce .form-row-first { margin-right: 1em; }
}

/* ---- coupon toggle ---- */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce .woocommerce-info {
	background: var(--pp-cream);
	border: 0;
	border-left: 3px solid var(--pp-accent);
	border-radius: 0;
	padding: 1em 1.2em;
	margin: 0 0 1.5em;
	color: var(--pp-ink);
	font-size: 15px;
}
.woocommerce .woocommerce-info::before { display: none; }
.woocommerce-checkout .woocommerce-form-coupon { margin: 0 0 1.6em; }
.woocommerce-checkout .woocommerce-form-coupon .button { padding: 0 28px; }

/* ---- delivery radios (our own admin-editable rows) ---- */
.ppck-delivery { margin: 1.6em 0 2em; }

.ppck-delivery-title {
	font-family: var(--pp-display) !important;
	font-weight: 600;
	font-size: 28px;
	line-height: 1.15;
	color: var(--pp-ink);
	margin: 0 0 .6em;
}

.ppck-delivery-free-note {
	margin: 0 0 .8em;
	padding: .7em 1em;
	background: var(--pp-cream);
	border-left: 3px solid var(--pp-accent);
	color: var(--pp-ink);
	font-size: 15px;
}

.ppck-delivery-list { list-style: none; margin: 0; padding: 0; }

.ppck-delivery-row { margin: 0 0 .7em; }

.ppck-delivery-row > label {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: .2em .8em;
	align-items: start;
	padding: 1em 1.1em;
	border: 0.667px solid var(--pp-border);
	background: #fff;
	cursor: pointer;
	font-weight: 400 !important;
	color: var(--pp-body) !important;
	margin: 0 !important;
}

.ppck-delivery-row > label:hover { border-color: var(--pp-brand); }

.ppck-delivery-row input[type="radio"] { margin: .25em 0 0; width: auto; }

.ppck-delivery-row input[type="radio"]:checked ~ .ppck-delivery-main .ppck-delivery-label { color: var(--pp-brand); }

.ppck-delivery-main { min-width: 0; }
.ppck-delivery-label {
	display: block;
	font-family: var(--pp-sans);
	font-size: 17px;
	font-weight: 600;
	color: var(--pp-ink);
	overflow-wrap: anywhere;
}
.ppck-delivery-desc { display: block; margin-top: .25em; color: var(--pp-body); font-size: 14px; line-height: 1.55; }

.ppck-delivery-price {
	grid-column: 2;
	font-family: var(--pp-sans);
	font-weight: 700;
	color: var(--pp-ink);
}
.ppck-delivery-price .ppck-delivery-zero { color: var(--pp-muted); font-weight: 600; }
.ppck-delivery-price del { color: var(--pp-muted); font-weight: 400; margin-right: .4em; }
.ppck-delivery-price ins { color: var(--pp-brand); text-decoration: none; font-weight: 800; }

.ppck-delivery-row--waived > label { opacity: .55; cursor: not-allowed; background: var(--pp-cream); }

@media screen and (min-width: 600px) {
	.ppck-delivery-row > label {
		grid-template-columns: 22px minmax(0, 1fr) auto;
		align-items: center;
	}
	.ppck-delivery-price { grid-column: auto; text-align: right; padding-left: 1em; }
}

/* ---- payment plan: pay in full vs deposit (brief O2) ---- */
.ppck-payplan { margin: 1.6em 0 2em; }

.ppck-payplan-title {
	font-family: var(--pp-display) !important;
	font-weight: 600;
	font-size: 28px;
	line-height: 1.15;
	color: var(--pp-ink);
	margin: 0 0 .6em;
}

.ppck-payplan-list { list-style: none; margin: 0 0 .8em; padding: 0; }
.ppck-payplan-row { margin: 0 0 .7em; }

.ppck-payplan-row > label {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: .2em .8em;
	align-items: start;
	padding: 1em 1.1em;
	border: 0.667px solid var(--pp-border);
	background: #fff;
	cursor: pointer;
	margin: 0 !important;
	font-weight: 400 !important;
	color: var(--pp-body) !important;
}

.ppck-payplan-row > label:hover { border-color: var(--pp-brand); }
.ppck-payplan-row input[type="radio"] { margin: .25em 0 0; width: auto; }
.ppck-payplan-row input[type="radio"]:checked ~ .ppck-payplan-main .ppck-payplan-label { color: var(--pp-brand); }
.ppck-payplan-row input[type="radio"]:checked ~ .ppck-payplan-price { color: var(--pp-brand); }

.ppck-payplan-main { min-width: 0; }

.ppck-payplan-label {
	display: block;
	font-family: var(--pp-sans);
	font-size: 17px;
	font-weight: 600;
	color: var(--pp-ink);
	overflow-wrap: anywhere;
}

.ppck-payplan-desc { display: block; margin-top: .25em; color: var(--pp-body); font-size: 14px; line-height: 1.55; }

.ppck-payplan-split {
	display: block;
	margin-top: .45em;
	padding: .45em .7em;
	background: var(--pp-cream);
	border-left: 3px solid var(--pp-accent);
	color: var(--pp-ink);
	font-size: 14px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.ppck-payplan-note { display: block; margin-top: .4em; color: var(--pp-muted); font-size: 13px; line-height: 1.5; }

.ppck-payplan-price {
	grid-column: 2;
	font-family: var(--pp-sans);
	font-weight: 800;
	font-size: 18px;
	color: var(--pp-ink);
}

.ppck-payplan-terms {
	margin: 0;
	color: var(--pp-body);
	font-size: 14px;
	line-height: 1.6;
}

@media screen and (min-width: 600px) {
	.ppck-payplan-row > label {
		grid-template-columns: 22px minmax(0, 1fr) auto;
		align-items: center;
	}
	.ppck-payplan-price { grid-column: auto; text-align: right; padding-left: 1em; white-space: nowrap; }
}

/* the deposit rows injected under the review-table total */
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.ppck-due-now th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.ppck-due-now td {
	color: var(--pp-brand);
	font-weight: 800;
	font-size: 18px;
	border-top: 1px solid var(--pp-line);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.ppck-balance th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.ppck-balance td {
	color: var(--pp-body);
	border-bottom: 0;
}

/* ---- order review ---- */
.woocommerce-checkout #order_review {
	background: #fff;
	border: 0.667px solid var(--pp-border);
	padding: 1.4em 1.3em;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.4em;
	table-layout: fixed;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	padding: .85em .2em;
	border: 0;
	border-bottom: 1px solid var(--pp-line);
	text-align: left;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pp-muted);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table th.product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td { text-align: right; }

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name { color: var(--pp-ink); }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity { color: var(--pp-muted); }
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th { color: var(--pp-muted); font-weight: 400; }

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr.order-total td {
	border-bottom: 0;
	font-size: 20px;
	color: var(--pp-brand);
	font-weight: 800;
}

/* ---- payment methods ---- */
/* ⚠️ PAYMENT LIST — Woo's rules here carry an ID, so class-only rules cannot win.
 * `.woocommerce #payment ul.payment_methods` is (1,2,2) and
 * `.woocommerce #payment ul.payment_methods li` is (1,2,3); they set list-style, margin,
 * padding, border-bottom and line-height on exactly the elements below. A rule of mine
 * at (0,2,1) loses the ID column outright, which would have put Woo's hairline and
 * list padding back under my custom radio pills. Matching `#payment` levels the ID
 * column; my inline style is emitted later, so the tie resolves to me.
 */

.woocommerce-checkout #payment ul.wc_payment_methods {
	list-style: none;
	margin: 0 0 1.4em;
	padding: 0;
	border: 0;
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	margin: 0 0 .6em;
	padding: 0;
	list-style: none;
	border: 0.667px solid var(--pp-border);
	background: #fff;
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label {
	display: flex;
	align-items: center;
	gap: .6em;
	margin: 0 !important;
	padding: 1em 1.1em;
	cursor: pointer;
	font-family: var(--pp-sans);
	font-size: 17px;
	font-weight: 600;
	color: var(--pp-ink);
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > input[type="radio"] { display: none; }

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label::before {
	content: "";
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border: 2px solid var(--pp-border);
	border-radius: 50%;
	background: #fff;
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > input[type="radio"]:checked + label::before {
	border-color: var(--pp-brand);
	box-shadow: inset 0 0 0 4px var(--pp-brand);
}

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > input[type="radio"]:checked + label { color: var(--pp-brand); }

.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method .payment_box {
	margin: 0;
	padding: 0 1.1em 1.1em 2.5em;
	background: none;
	border: 0;
	color: var(--pp-body);
	font-size: 14px;
	line-height: 1.65;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method .payment_box::before { display: none; }
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method .payment_box p:last-child { margin-bottom: 0; }

/* ---- terms + consents ---- */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin: 0 0 1.2em; }

.woocommerce-checkout .woocommerce-privacy-policy-text p {
	color: var(--pp-body);
	font-size: 14px;
	line-height: 1.65;
	margin: 0 0 1em;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row,
.woocommerce-checkout .ppck-consent {
	display: block;
	margin: 0 0 .8em;
	padding: 0;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row label.checkbox,
.woocommerce-checkout .ppck-consent label.checkbox {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: .6em;
	align-items: start;
	margin: 0 !important;
	font-weight: 400 !important;
	font-size: 15px !important;
	line-height: 1.6;
	color: var(--pp-ink) !important;
	cursor: pointer;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row input.input-checkbox,
.woocommerce-checkout .ppck-consent input.input-checkbox {
	width: 18px;
	height: 18px;
	margin: .15em 0 0;
	accent-color: var(--pp-brand);
}

.woocommerce-checkout .ppck-consent-age label.checkbox {
	padding: .9em 1em;
	background: var(--pp-cream);
	border-left: 3px solid var(--pp-brand);
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper abbr.required,
.woocommerce-checkout .ppck-consent abbr.required { color: var(--pp-brand); border: 0; text-decoration: none; }

.woocommerce-checkout .form-row.place-order { margin: 0; padding: 0; }
.woocommerce-checkout #place_order { width: 100%; margin-top: .6em; }

@media screen and (min-width: 820px) {
	.woocommerce-checkout #place_order { width: auto; }
}

/* ---- notices ---- */
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-message {
	background: var(--pp-cream);
	border: 0;
	border-left: 3px solid var(--pp-brand);
	border-radius: 0;
	padding: 1em 1.2em;
	margin: 0 0 1.5em;
	list-style: none;
	color: var(--pp-ink);
	font-size: 15px;
}
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-message::before { display: none; }

/* ============================================================ two-column checkout at desktop */

@media screen and (min-width: 992px) {
	.woocommerce-checkout .woocommerce form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
		grid-template-areas:
			"details review-head"
			"details review"
			"delivery review"
			"payplan  review"
			"spacer  review";
		column-gap: 3em;
		align-items: start;
	}
	.woocommerce-checkout .woocommerce form.checkout #customer_details { grid-area: details; }
	.woocommerce-checkout .woocommerce form.checkout #ppck_delivery { grid-area: delivery; margin-top: .4em; }
	.woocommerce-checkout .woocommerce form.checkout #ppck_payplan { grid-area: payplan; margin-top: .4em; }
	.woocommerce-checkout .woocommerce form.checkout #order_review_heading { grid-area: review-head; }
	.woocommerce-checkout .woocommerce form.checkout #order_review { grid-area: review; position: sticky; top: 1.5em; }
	.woocommerce-checkout .woocommerce #customer_details { grid-template-columns: 1fr; }
}

/* ============================================================ opt-in cart drawer */

.ppck-drawer-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	z-index: 99998;
}
.ppck-drawer-overlay[hidden] { display: none; }

.ppck-drawer {
	position: fixed;
	top: 0;
	right: 0;
	width: min(400px, 92vw);
	height: 100%;
	background: #fff;
	box-shadow: -8px 0 32px rgba(0, 0, 0, .18);
	transform: translateX(100%);
	transition: transform .26s ease;
	z-index: 99999;
	display: flex;
	flex-direction: column;
	font-family: "Anybody", "Segoe UI", Helvetica, Arial, sans-serif;
}

.ppck-drawer.is-open { transform: translateX(0); }
.ppck-drawer-scroll { display: flex; flex-direction: column; height: 100%; overflow: hidden; }

.ppck-drawer-head {
	display: flex;
	align-items: center;
	gap: .6em;
	padding: 1.1em 1.2em;
	border-bottom: 1px solid rgba(0, 0, 0, .12);
}
.ppck-drawer-eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #FA441D; }
.ppck-drawer-count { font-size: 13px; color: #8D8D8D; margin-right: auto; }
.ppck-drawer-close { border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: #000; }

.ppck-drawer-body { flex: 1 1 auto; overflow-y: auto; padding: 1.1em 1.2em; }
.ppck-drawer-items { list-style: none; margin: 0; padding: 0; }
.ppck-drawer-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: .8em; padding: .9em 0; border-bottom: 1px solid rgba(0, 0, 0, .1); }
.ppck-di-img img { width: 64px; height: auto; display: block; }
.ppck-di-name { display: block; font-size: 15px; font-weight: 700; color: #000; }
.ppck-di-qty { display: inline-flex; align-items: center; gap: .5em; margin-top: .4em; }
.ppck-di-qty button { width: 26px; height: 26px; border: 1px solid #B1B1B1; background: #fff; cursor: pointer; }
.ppck-di-side { text-align: right; }
.ppck-di-price { display: block; font-weight: 800; color: #FA441D; }
.ppck-di-remove { border: 0; background: none; padding: 0; margin-top: .4em; font-size: 12px; color: #8D8D8D; text-decoration: underline; cursor: pointer; }
.ppck-drawer-subtotal { display: flex; justify-content: space-between; padding: 1em 0 .4em; font-size: 17px; color: #000; }
.ppck-drawer-note { margin: 0; font-size: 11px; letter-spacing: .08em; color: #8D8D8D; }
.ppck-drawer-empty { font-size: 18px; color: #000; margin: 0 0 1em; }

.ppck-drawer-foot { padding: 1.1em 1.2em; border-top: 1px solid rgba(0, 0, 0, .12); display: grid; gap: .6em; }
.ppck-drawer-cart,
.ppck-drawer-cta,
.ppck-drawer-shop {
	display: block;
	text-align: center;
	height: 52px;
	line-height: 52px;
	border-radius: 100px;
	text-decoration: none;
	font-weight: 600;
}
.ppck-drawer-cta,
.ppck-drawer-shop { background: #FA441D; color: #fff; }
.ppck-drawer-cart { background: #fff; color: #000; border: 1px solid #B1B1B1; }
