/**
 * PBS Cart + Checkout — styles for the custom two-column cart and checkout
 * layouts (woocommerce/cart/cart.php + woocommerce/checkout/form-checkout.php).
 * Enqueued on both the cart and checkout pages. Only WooCommerce's default markup
 * is styled — no fields/logic changed. Poppins is loaded site-wide. The page
 * container is matched to the shop (max 1440px, pink canvas, clamp gutters).
 */

/* Match the shop's full-width container + pink canvas on cart & checkout, so
   the two flows sit in the same frame as the shop listing. */
body.woocommerce-cart #content,
body.woocommerce-checkout #content {
	background: #fff2f2;
	padding-bottom: 40px;
}

body.woocommerce-cart #content > .container,
body.woocommerce-checkout #content > .container {
	max-width: 1440px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 60px);
}

.pbs-checkout,
.pbs-cart {
	--pbs-red: #ce2020;
	--pbs-maroon: #611637;
	--pbs-ink: #101010;
	--pbs-gray: #666;
	--pbs-line: #d5d3cb;
	--pbs-soft: #f6f6f6;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 40px 0 64px;
	font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--pbs-ink);
	box-sizing: border-box;
}

.pbs-checkout *,
.pbs-checkout *::before,
.pbs-checkout *::after,
.pbs-cart *,
.pbs-cart *::before,
.pbs-cart *::after {
	box-sizing: border-box;
}

/* The parent theme sets a global `input { background: transparent; color: #fff }`
   which makes fields look pink with invisible white text on our canvas. Force
   readable white fields + dark text on both flows. */
.pbs-checkout input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.pbs-checkout textarea,
.pbs-checkout select,
.pbs-cart input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.pbs-cart textarea,
.pbs-cart select {
	background-color: #fff !important;
	color: var(--pbs-ink) !important;
}

/* Images inside the summary/payment column never overflow the card. */
.pbs-checkout__summary img,
.pbs-cart__aside img {
	max-width: 100%;
	height: auto;
}

/* ---- Heading ---- */
.pbs-checkout__head {
	margin-bottom: 20px;
}

.pbs-checkout__title {
	margin: 0;
	font-size: clamp(28px, 3.4vw, 40px);
	line-height: 1.15;
	font-weight: 500;
	letter-spacing: -.8px;
	color: #000;
}

.pbs-checkout__subtitle {
	margin: 10px 0 0;
	font-size: 16px;
	color: var(--pbs-gray);
}

/* ---- Coupon + returning-customer login (woocommerce_before_checkout_form) ---- */
.pbs-checkout .woocommerce-form-login-toggle,
.pbs-checkout .woocommerce-form-coupon-toggle {
	margin: 0 0 20px;
}

.pbs-checkout .woocommerce-info {
	position: relative;
	margin: 0 0 18px;
	padding: 14px 18px;
	background: #fff7ef;
	border: 1px solid #f0dcc4;
	border-left: 4px solid var(--pbs-red);
	border-radius: 10px;
	font-size: 14px;
	color: #7a4a12;
	list-style: none;
}

.pbs-checkout .woocommerce-info a {
	color: var(--pbs-red);
	font-weight: 600;
	text-decoration: underline;
}

.pbs-checkout form.checkout_coupon,
.pbs-checkout form.login {
	margin: 0 0 24px;
	padding: 24px;
	border: 1px solid var(--pbs-line);
	border-radius: 14px;
	background: #fff;
}

/* ---- Two-column grid ---- */
.pbs-checkout__grid {
	display: grid;
	/* Left (contact/details) column fills the rest; the order summary is fixed
	   width and flush-right. A slightly wider summary keeps the left column a
	   touch narrower without leaving gaps or misaligning the page heading. */
	grid-template-columns: minmax(0, 1fr) 520px;
	gap: 40px;
	align-items: start;
}

/* Left column: stack billing + shipping full-width (not WC's default 48% float) */
.pbs-checkout #customer_details .col2-set,
.pbs-checkout #customer_details .col-1,
.pbs-checkout #customer_details .col-2 {
	width: 100%;
	float: none;
	margin: 0;
	padding: 0;
}

.pbs-checkout #customer_details .col-2 {
	margin-top: 8px;
}

/* Section cards + headings */
.pbs-checkout .woocommerce-billing-fields,
.pbs-checkout .woocommerce-shipping-fields,
.pbs-checkout .woocommerce-additional-fields {
	margin-bottom: 28px;
}

.pbs-checkout .woocommerce-billing-fields > h3,
.pbs-checkout .woocommerce-shipping-fields > h3,
.pbs-checkout .woocommerce-additional-fields > h3,
.pbs-checkout #order_review_heading {
	margin: 0 0 18px;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -.3px;
	color: #000;
}

.pbs-checkout .woocommerce-shipping-fields h3 label {
	font-size: 16px;
	font-weight: 500;
}

/* ---- Form fields ---- */
.pbs-checkout .form-row {
	margin: 0 0 20px;
	padding: 0;
}

.pbs-checkout .form-row label {
	display: block;
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 500;
	color: #000;
}

.pbs-checkout .form-row label .required,
.pbs-checkout .required {
	color: #ff3737;
	border: 0;
	text-decoration: none;
}

.pbs-checkout .form-row .optional {
	color: var(--pbs-gray);
}

.pbs-checkout input.input-text,
.pbs-checkout textarea,
.pbs-checkout select,
.pbs-checkout .select2-selection {
	width: 100%;
	min-height: 56px;
	border: 1px solid var(--pbs-line) !important;
	border-radius: 10px !important;
	padding: 0 18px;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.3;
	color: var(--pbs-ink);
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.pbs-checkout textarea {
	min-height: 110px;
	padding: 14px 18px;
	resize: vertical;
}

.pbs-checkout input.input-text:focus,
.pbs-checkout textarea:focus,
.pbs-checkout select:focus {
	outline: 0;
	border-color: var(--pbs-red) !important;
	box-shadow: 0 0 0 3px rgba(206, 32, 32, .12);
}

.pbs-checkout input::placeholder,
.pbs-checkout textarea::placeholder {
	color: #9a9a9a;
}

/* Select2 (country/state) alignment */
.pbs-checkout .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
}

.pbs-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
	right: 12px;
}

/* Two-up rows (first/last name etc.) */
.pbs-checkout .form-row-first {
	float: left;
	width: calc(50% - 10px);
}

.pbs-checkout .form-row-last {
	float: right;
	width: calc(50% - 10px);
}

.pbs-checkout .form-row-wide {
	clear: both;
}

.pbs-checkout #customer_details::after {
	content: "";
	display: table;
	clear: both;
}

/* "Ship to different address" checkbox row */
.pbs-checkout #ship-to-different-address {
	margin-bottom: 12px;
}

.pbs-checkout #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

/* ---- Order summary (right, sticky card) ---- */
.pbs-checkout__aside {
	position: sticky;
	top: 24px;
}

.pbs-checkout__summary {
	border: 1px solid var(--pbs-line);
	border-radius: 16px;
	padding: 26px;
	background: #fff;
	box-shadow: 0 8px 30px rgba(97, 22, 55, .05);
}

.pbs-checkout__summary-title {
	padding-bottom: 16px;
	border-bottom: 1px solid #efe6e8;
}

/* Order table (review-order.php) */
.pbs-checkout .shop_table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 15px;
}

.pbs-checkout .shop_table th,
.pbs-checkout .shop_table td {
	padding: 12px 0;
	text-align: left;
	border: 0;
	vertical-align: top;
}

.pbs-checkout .shop_table .product-total,
.pbs-checkout .shop_table td.product-total,
.pbs-checkout .shop_table .amount {
	text-align: right;
	white-space: nowrap;
}

.pbs-checkout .shop_table .cart_item td {
	border-bottom: 1px solid #f2eaec;
}

.pbs-checkout .shop_table .product-name {
	color: var(--pbs-ink);
	font-weight: 500;
	padding-right: 12px;
}

.pbs-checkout .shop_table .product-name .product-quantity {
	color: var(--pbs-gray);
	font-weight: 400;
}

.pbs-checkout .shop_table .cart-subtotal th,
.pbs-checkout .shop_table .cart-subtotal td,
.pbs-checkout .shop_table tr.shipping th,
.pbs-checkout .shop_table tr.shipping td,
.pbs-checkout .shop_table .fee th,
.pbs-checkout .shop_table .fee td {
	padding-top: 14px;
	color: var(--pbs-gray);
	font-weight: 500;
}

.pbs-checkout .shop_table .order-total th,
.pbs-checkout .shop_table .order-total td {
	padding-top: 16px;
	border-top: 2px solid #efe6e8;
	font-size: 20px;
	font-weight: 600;
	color: #000;
}

.pbs-checkout .shop_table .order-total .amount {
	color: var(--pbs-red);
}

/* --- Normalize the order-summary typography ---------------------------------
   The shop theme inflates every price amount (line items 18px, subtotal 20px,
   total 30px) and gives the "Payment" heading a different size from
   "Your order". Pull them back to one consistent scale in the right column.
   Scoped through `.woocommerce-checkout-review-order-table` for the specificity
   needed to win over the theme's `.woocommerce-Price-amount` rules. */
.pbs-checkout .woocommerce-checkout-review-order-table .cart_item .amount,
.pbs-checkout .woocommerce-checkout-review-order-table .cart-subtotal .amount,
.pbs-checkout .woocommerce-checkout-review-order-table tr.shipping .amount,
.pbs-checkout .woocommerce-checkout-review-order-table .fee .amount {
	font-size: 15px;
	font-weight: 600;
	color: var(--pbs-ink);
}

.pbs-checkout .woocommerce-checkout-review-order-table tfoot .order-total th {
	font-size: 16px;
}

.pbs-checkout .woocommerce-checkout-review-order-table tfoot .order-total .amount {
	font-size: 24px;
	font-weight: 700;
	color: var(--pbs-red);
}

/* "Payment" section heading — match the "Your order" title exactly. The theme
   (`.woocommerce form.woocommerce-checkout h3.order_review_heading`) sets 25px
   with higher specificity but no `!important`, so `!important` wins. */
.pbs-checkout .order_review_heading {
	margin: 22px 0 14px;
	font-size: 20px !important;
	font-weight: 600 !important;
	letter-spacing: -.3px;
	color: #000;
}

/* The parent theme (theme-shop) + WooCommerce core draw dashed/gray borders on
   the review-order cells with high-specificity selectors. Beat them with
   `!important` (they carry none) and restore only our own light dividers. */
.pbs-checkout .woocommerce-checkout-review-order-table th,
.pbs-checkout .woocommerce-checkout-review-order-table td {
	border: 0 !important;
	background: transparent !important;
}

.pbs-checkout .woocommerce-checkout-review-order-table .cart_item td {
	border-bottom: 1px solid #f2eaec !important;
}

.pbs-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
.pbs-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
	border-top: 2px solid #efe6e8 !important;
}

/* Shipping method radio list */
.pbs-checkout #shipping_method {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
}

.pbs-checkout #shipping_method li {
	margin: 0 0 6px;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Coupon field inside review (some themes) */
.pbs-checkout .checkout_coupon .form-row {
	display: flex;
	gap: 10px;
}

/* ---- Payment box ---- */
.pbs-checkout #payment {
	background: transparent;
	border-radius: 0;
	margin-top: 6px;
}

.pbs-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 8px;
	padding: 18px 0 0;
	border: 0;
	border-top: 1px solid #efe6e8;
}

.pbs-checkout #payment ul.payment_methods li {
	margin: 0 0 8px;
	font-size: 15px;
}

/* Only one gateway (CCAvenue) — it is auto-selected, so the radio adds nothing
   but clutter. The theme wraps it in <span class="lqd-woo-radio-input">, so hide
   both the wrapper and the input at any depth; the input still posts its
   checked value. */
.pbs-checkout #payment ul.payment_methods li input[type="radio"],
.pbs-checkout #payment ul.payment_methods li .lqd-woo-radio-input {
	display: none !important;
}

.pbs-checkout #payment ul.payment_methods li label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.35;
	color: var(--pbs-ink);
	max-width: 100%;
}

/* The CCAvenue "accepted cards" logo ships as a ~366px external GIF that
   overflows the narrow summary column and squashes the title. Constrain it
   and let it wrap onto its own line under the label text. */
.pbs-checkout #payment ul.payment_methods li label img {
	flex: 0 0 auto;
	width: auto !important;
	max-width: 100%;
	height: auto;
	margin: 4px 0 0;
}

.pbs-checkout #payment .payment_box {
	background: var(--pbs-soft);
	border-radius: 10px;
	padding: 14px 16px;
	font-size: 14px;
	color: var(--pbs-gray);
}

.pbs-checkout #payment .payment_box::before {
	display: none;
}

/* Terms & conditions */
.pbs-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 14px 0;
	font-size: 14px;
	color: var(--pbs-gray);
}

/* ---- Place order button ---- */
.pbs-checkout #place_order,
.pbs-checkout .wc-block-components-checkout-place-order-button {
	display: block;
	width: 100%;
	min-height: 58px;
	margin-top: 10px;
	padding: 16px 24px;
	border: 0;
	border-radius: 10px;
	background: var(--pbs-red);
	color: #fff;
	font-family: inherit;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background .2s ease;
}

.pbs-checkout #place_order:hover {
	background: #b01a1a;
}

/* ---- Notices ---- */
.pbs-checkout .woocommerce-error,
.pbs-checkout .woocommerce-message {
	list-style: none;
	margin: 0 0 22px;
	padding: 14px 18px;
	border-radius: 10px;
	font-size: 14px;
}

.pbs-checkout .woocommerce-error {
	background: #fdecec;
	color: #b01a1a;
	border: 1px solid #f4c7c7;
}

.pbs-checkout .woocommerce-message {
	background: #eaf6ec;
	color: #256a2e;
	border: 1px solid #c6e6cc;
}

/* ---- Responsive ---- */
@media (max-width: 980px) {
	.pbs-checkout__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.pbs-checkout__aside {
		position: static;
	}
}

@media (max-width: 520px) {
	.pbs-checkout {
		padding: 28px 18px 44px;
	}

	.pbs-checkout .form-row-first,
	.pbs-checkout .form-row-last {
		float: none;
		width: 100%;
	}

	.pbs-checkout__summary {
		padding: 20px;
	}
}

/* ==================================================================== */
/* CART page (woocommerce/cart/cart.php)                                */
/* ==================================================================== */
.pbs-cart__head {
	margin-bottom: 20px;
}

.pbs-cart__title {
	margin: 0;
	font-size: clamp(28px, 3.4vw, 40px);
	line-height: 1.15;
	font-weight: 500;
	letter-spacing: -.8px;
	color: #000;
}

.pbs-cart__subtitle {
	margin: 10px 0 0;
	font-size: 16px;
	color: var(--pbs-gray);
}

.pbs-cart__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 40px;
	align-items: start;
}

.pbs-cart__aside {
	position: sticky;
	top: 24px;
}

/* Cart items table */
.pbs-cart .woocommerce-cart-form__contents {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid var(--pbs-line);
	border-radius: 16px;
	overflow: hidden;
}

.pbs-cart .shop_table thead th {
	text-align: left;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: var(--pbs-gray);
	font-weight: 600;
	padding: 16px 16px;
	border-bottom: 1px solid #efe6e8;
	background: #faf6f7;
}

.pbs-cart .shop_table td {
	padding: 16px;
	border-bottom: 1px solid #f2eaec;
	vertical-align: middle;
	font-size: 15px;
}

.pbs-cart .shop_table .product-thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}

.pbs-cart .shop_table .product-name a {
	color: var(--pbs-ink);
	font-weight: 500;
	text-decoration: none;
}

.pbs-cart .shop_table .product-name a:hover {
	color: var(--pbs-red);
}

.pbs-cart .shop_table .product-price,
.pbs-cart .shop_table .product-subtotal {
	white-space: nowrap;
}

.pbs-cart .shop_table .product-subtotal {
	font-weight: 600;
	color: var(--pbs-ink);
}

.pbs-cart .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #f4eef0;
	color: #611637 !important;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
}

.pbs-cart .product-remove a.remove:hover {
	background: var(--pbs-red);
	color: #fff !important;
}

.pbs-cart .quantity input.qty {
	width: 74px;
	height: 46px;
	border: 1px solid var(--pbs-line);
	border-radius: 8px;
	text-align: center;
	font-size: 15px;
	font-family: inherit;
}

/* Coupon + Update cart actions row */
.pbs-cart td.actions {
	padding: 18px 16px;
	background: #faf6f7;
	overflow: hidden;
}

.pbs-cart td.actions .coupon {
	display: inline-flex;
	gap: 10px;
	float: left;
}

.pbs-cart td.actions .coupon input#coupon_code {
	height: 48px;
	border: 1px solid var(--pbs-line);
	border-radius: 10px;
	padding: 0 16px;
	font-size: 15px;
	min-width: 180px;
	font-family: inherit;
}

.pbs-cart td.actions .button {
	height: 48px;
	padding: 0 22px;
	border: 1px solid var(--pbs-red);
	border-radius: 10px;
	background: #fff;
	color: var(--pbs-red);
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}

.pbs-cart td.actions .coupon .button {
	background: var(--pbs-red);
	color: #fff;
}

.pbs-cart td.actions .coupon .button:hover,
.pbs-cart td.actions .button:hover {
	background: #b01a1a;
	color: #fff;
	border-color: #b01a1a;
}

.pbs-cart td.actions button[name="update_cart"] {
	float: right;
}

/* Cart totals summary (sticky aside) */
.pbs-cart .cart_totals {
	border: 1px solid var(--pbs-line);
	border-radius: 16px;
	padding: 26px;
	background: #fff;
	box-shadow: 0 8px 30px rgba(97, 22, 55, .05);
}

.pbs-cart .cart_totals h2 {
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid #efe6e8;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -.3px;
	color: #000;
}

.pbs-cart .cart_totals table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	margin: 0;
}

.pbs-cart .cart_totals th,
.pbs-cart .cart_totals td {
	padding: 12px 0;
	text-align: left;
	border: 0;
	color: var(--pbs-gray);
	font-weight: 500;
}

.pbs-cart .cart_totals td {
	text-align: right;
	color: var(--pbs-ink);
}

.pbs-cart .cart_totals .order-total th,
.pbs-cart .cart_totals .order-total td {
	padding-top: 16px;
	border-top: 2px solid #efe6e8;
	font-size: 20px;
	font-weight: 600;
	color: #000;
}

.pbs-cart .cart_totals .order-total .amount {
	color: var(--pbs-red);
}

.pbs-cart .cart_totals .shipping-calculator-button {
	color: var(--pbs-red);
}

.pbs-cart .wc-proceed-to-checkout {
	margin-top: 18px;
	padding: 0;
}

.pbs-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	min-height: 58px;
	padding: 16px;
	border-radius: 10px;
	background: var(--pbs-red);
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
}

.pbs-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: #b01a1a;
}

.pbs-cart .wc-proceed-to-checkout a.checkout-button i {
	margin-left: 8px;
}

/* "By clicking Checkout…" note printed under the proceed button */
.pbs-cart .wc-proceed-to-checkout p,
.pbs-cart .wc-proceed-to-checkout small {
	display: block;
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--pbs-gray);
	text-align: center;
}

/* --- Beat the parent theme's global `table.shop_table` styling --------------
   The parent theme paints gray cell backgrounds + borders on every shop table
   cell and gives the proceed button a fixed inline width. Override with the
   same reach so our clean cart design wins. */
.pbs-cart .shop_table tbody td:not(.actions),
.pbs-cart .cart_totals table td,
.pbs-cart .cart_totals table th {
	background: transparent !important;
	border-left: 0 !important;
	border-right: 0 !important;
}

/* A plugin stylesheet (`style.css?ver=7.1`) paints the subtotal cell + totals
   label cells gray with `!important` and a 3-class selector
   (`.woocommerce .cart_totals table.shop_table th`). Match its class count
   (add `.shop_table`) + a `body` prefix so ours wins, and strip the grid
   borders it draws between the summary cells. */
body .pbs-cart .woocommerce-cart-form table.shop_table td.product-subtotal,
body .pbs-cart .cart_totals table.shop_table,
body .pbs-cart .cart_totals table.shop_table th,
body .pbs-cart .cart_totals table.shop_table td {
	background: transparent !important;
	border: 0 !important;
}

/* Re-assert just the divider line above the grand-total row. */
body .pbs-cart .cart_totals table.shop_table tr.order-total th,
body .pbs-cart .cart_totals table.shop_table tr.order-total td {
	border-top: 2px solid #efe6e8 !important;
}

/* WooCommerce core floats `.cart_totals` at 48% width; in our narrow aside that
   shrinks the summary to ~180px and wraps the button. Make it fill the column. */
.pbs-cart .cart-collaterals,
.pbs-cart .cart_totals {
	width: 100% !important;
	float: none !important;
}

.pbs-cart .cart_totals table tr:not(.order-total) td,
.pbs-cart .cart_totals table tr:not(.order-total) th {
	border-top: 0 !important;
	border-bottom: 0 !important;
}

.pbs-cart .wc-proceed-to-checkout a.checkout-button {
	display: block !important;
	width: 100% !important;
	white-space: normal;
}

/* Cross-sells hidden in the narrow cart column for a clean layout */
.pbs-cart .cross-sells {
	display: none;
}

/* Cart responsive */
@media (max-width: 980px) {
	.pbs-cart__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.pbs-cart__aside {
		position: static;
	}
}

@media (max-width: 600px) {
	.pbs-cart .shop_table thead {
		display: none;
	}

	.pbs-cart td.actions .coupon {
		float: none;
		display: flex;
	}

	.pbs-cart td.actions button[name="update_cart"] {
		float: none;
		width: 100%;
		margin-top: 12px;
	}
}

/* ==========================================================================
   Order received / Thank-you page (woocommerce/checkout/thankyou.php)
   Confirmation hero + order-summary card matching the cart & checkout flow.
   ========================================================================== */

/* Match the shop's full-width container + pink canvas. */
body.woocommerce-order-received #content {
	background: #fff2f2;
	padding-bottom: 40px;
}

body.woocommerce-order-received #content > .container {
	max-width: 1440px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 60px);
}

/* The parent template's step indicator + "Thank You" heading are replaced by
   our own hero, so hide them if they render. */
body.woocommerce-order-received .lqd-woo-steps,
body.woocommerce-order-received .kws-heading {
	display: none;
}

.pbs-thankyou {
	--pbs-red: #ce2020;
	--pbs-maroon: #611637;
	--pbs-ink: #101010;
	--pbs-gray: #666;
	--pbs-line: #d5d3cb;
	--pbs-soft: #f6f6f6;
	--pbs-green: #1f9254;
	--pbs-card: 860px;
	width: 100%;
	max-width: none;
	margin: 0 auto;
	padding: 40px 0 64px;
	font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--pbs-ink);
	box-sizing: border-box;
}

.pbs-thankyou *,
.pbs-thankyou *::before,
.pbs-thankyou *::after {
	box-sizing: border-box;
}

/* Cap OUR cards to a readable column and centre them, while leaving the wrapper
   full-width so the theme's donation banner (a wide Bootstrap .container injected
   on the woocommerce_thankyou hook) can centre on the page instead of being
   trapped in a narrow box and overflowing to the right. */
.pbs-thankyou__hero,
.pbs-thankyou__overview,
.pbs-thankyou .woocommerce-order-details,
.pbs-thankyou .woocommerce-customer-details,
.pbs-thankyou__actions {
	max-width: var(--pbs-card);
	margin-left: auto;
	margin-right: auto;
}

/* --- Confirmation hero ---------------------------------------------------- */
.pbs-thankyou__hero {
	text-align: center;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 30px rgba(97, 22, 55, .05);
	padding: 48px 32px 40px;
	margin-bottom: 24px;
}

.pbs-thankyou__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: rgba(31, 146, 84, .1);
	color: var(--pbs-green);
	margin-bottom: 20px;
}

.pbs-thankyou__badge--failed {
	background: rgba(206, 32, 32, .1);
	color: var(--pbs-red);
}

.pbs-thankyou__title {
	font-size: clamp(24px, 3.5vw, 32px);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 12px;
	color: var(--pbs-maroon);
}

.pbs-thankyou__lead {
	font-size: 16px;
	line-height: 1.6;
	color: var(--pbs-gray);
	max-width: 520px;
	margin: 0 auto;
}

/* --- Order overview card -------------------------------------------------- */
.pbs-thankyou__overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 4px 24px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 30px rgba(97, 22, 55, .05);
	padding: 28px 32px;
	margin-bottom: 24px;
	list-style: none;
}

.pbs-thankyou__overview-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px 0;
}

.pbs-thankyou__overview-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pbs-gray);
}

.pbs-thankyou__overview-value {
	font-size: 16px;
	font-weight: 600;
	color: var(--pbs-ink);
	word-break: break-word;
}

.pbs-thankyou__overview-value .amount,
.pbs-thankyou__overview-value bdi {
	color: var(--pbs-red);
}

/* --- Core order-details + customer/address blocks ------------------------- */
.pbs-thankyou .woocommerce-order-details,
.pbs-thankyou .woocommerce-customer-details {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 30px rgba(97, 22, 55, .05);
	padding: 28px 32px;
	margin-bottom: 24px;
}

.pbs-thankyou .woocommerce-order-details__title,
.pbs-thankyou .woocommerce-customer-details h2,
.pbs-thankyou .woocommerce-column__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--pbs-maroon);
	margin: 0 0 18px;
}

.pbs-thankyou .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.pbs-thankyou .woocommerce-table--order-details th,
.pbs-thankyou .woocommerce-table--order-details td {
	text-align: left;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid #f2eaec;
	font-size: 15px;
	vertical-align: top;
}

.pbs-thankyou .woocommerce-table--order-details thead th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pbs-gray);
}

.pbs-thankyou .woocommerce-table--order-details td.product-total,
.pbs-thankyou .woocommerce-table--order-details th.product-total,
.pbs-thankyou .woocommerce-table--order-details tfoot td {
	text-align: right;
}

.pbs-thankyou .woocommerce-table--order-details tfoot th {
	text-align: left;
	font-weight: 600;
	color: var(--pbs-ink);
}

.pbs-thankyou .woocommerce-table--order-details tfoot tr:last-child th,
.pbs-thankyou .woocommerce-table--order-details tfoot tr:last-child td {
	border-top: 2px solid #efe6e8;
	border-bottom: 0;
	padding-top: 16px;
	font-size: 17px;
}

.pbs-thankyou .woocommerce-table--order-details tfoot tr:last-child .amount {
	color: var(--pbs-red);
	font-weight: 700;
}

.pbs-thankyou .woocommerce-table--order-details a {
	color: var(--pbs-maroon);
	text-decoration: none;
}

.pbs-thankyou .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin: 0;
}

/* Pin billing -> left, shipping -> right. The parent theme otherwise places the
   columns against source order, which would swap them under the 2-col grid. */
.pbs-thankyou .woocommerce-columns--addresses > .woocommerce-column--billing-address {
	grid-column: 1;
}

.pbs-thankyou .woocommerce-columns--addresses > .woocommerce-column--shipping-address {
	grid-column: 2;
}

.pbs-thankyou .woocommerce-columns--addresses .col-1,
.pbs-thankyou .woocommerce-columns--addresses .col-2 {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
}

.pbs-thankyou address {
	font-style: normal;
	font-size: 15px;
	line-height: 1.7;
	color: var(--pbs-ink);
	border: 0;
	padding: 0;
}

/* --- Buttons -------------------------------------------------------------- */
.pbs-thankyou__actions {
	text-align: center;
	margin: 0 auto;
}

.pbs-thankyou__actions--footer {
	margin-top: 8px;
}

.pbs-thankyou__hero .pbs-thankyou__actions {
	margin-top: 24px;
}

.pbs-thankyou__btn {
	display: inline-block;
	background: var(--pbs-red);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	padding: 14px 34px;
	border-radius: 10px;
	transition: background-color .15s ease, transform .15s ease;
	margin: 6px;
}

.pbs-thankyou__btn:hover {
	background: var(--pbs-maroon);
	color: #fff;
	transform: translateY(-1px);
}

.pbs-thankyou__btn--ghost {
	background: transparent;
	color: var(--pbs-maroon);
	border: 1px solid var(--pbs-line);
}

.pbs-thankyou__btn--ghost:hover {
	background: var(--pbs-soft);
	color: var(--pbs-maroon);
}

@media (max-width: 600px) {
	.pbs-thankyou__hero {
		padding: 36px 20px 30px;
	}

	.pbs-thankyou__overview,
	.pbs-thankyou .woocommerce-order-details,
	.pbs-thankyou .woocommerce-customer-details {
		padding: 22px 20px;
	}

	.pbs-thankyou .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
	}

	.pbs-thankyou__btn {
		display: block;
		width: 100%;
	}
}
