/* ==========================================================================
   Cerbera Gallery — WooCommerce Cart & Checkout  v3.0
   Covers: Cart · Checkout · Order Received
   ========================================================================== */

/* ── Design tokens ───────────────────────────────────────────────────────────
   Pulls the canonical site tokens (child theme style.css :root) with fallbacks. */
:root {
	--cgc-bg: var(--color-bg-subtle, #faf9f6);
	--cgc-surface: var(--color-bg, #ffffff);
	--cgc-text: var(--color-text, #141414);
	--cgc-muted: var(--color-muted, #737373);
	--cgc-muted-2: var(--color-faint, #a3a3a3);
	--cgc-border: var(--color-border, #e6e6e6);
	--cgc-border-input: var(--color-border, #e6e6e6);
	--cgc-gold: var(--color-gold, #e2a336);
	--cgc-gold-dark: #a97618;
	--cgc-serif: var(--font-serif, "Cormorant Garamond", Georgia, serif);
	--cgc-sans: var(--font-sans, "Inter", -apple-system, system-ui, sans-serif);
	--cgc-radius: 4px;
	--cgc-radius-card: 8px;
	--cgc-ease: var(--transition-base, 0.22s ease);
	--cgc-pad-x: 2.25rem;
	/* horizontal page gutter */
}

/* ── Remove Elementor section padding on these pages ────────────────────── */
/*.woocommerce-cart .elementor-section,
.woocommerce-cart .e-con-inner,
.woocommerce-checkout .elementor-section,
.woocommerce-checkout .e-con-inner,
.woocommerce-order-received .elementor-section,
.woocommerce-order-received .e-con-inner { padding: 0 !important; }*/

/* ── Base font / color ───────────────────────────────────────────────────── */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-order-received .woocommerce {
	font-family: var(--cgc-sans);
	color: var(--cgc-text);
	font-size: 1rem;
}

/* ══════════════════════════════════════════════════════════════════════════
   PAGE HERO
   Injected before cart / checkout content via PHP hooks.
   Warm tinted strip matching the HTML design prototype.
   ══════════════════════════════════════════════════════════════════════════ */

.cgc-page-hero {
	/*background: var(--cgc-bg);*/
	border-bottom: 1px solid var(--cgc-border);
	padding: 2.75rem var(--cgc-pad-x) 2rem;
	margin-bottom: 0;
}

.cgc-page-hero__eyebrow {
	font-family: var(--cgc-sans);
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cgc-muted);
	margin: 0 0 .5rem;
}

.cgc-page-hero__title {
	font-family: var(--cgc-serif);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 400;
	margin: 0;
	line-height: 1.15;
	color: var(--cgc-text);
	letter-spacing: -0.01em;
}

/* ══════════════════════════════════════════════════════════════════════════
   CART — PAGE WRAPPER
   ══════════════════════════════════════════════════════════════════════════ */

.woocommerce-cart .woocommerce {
	padding: 0;
}

/* WooCommerce notices above the layout */
.woocommerce-cart .woocommerce>.woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce>.woocommerce-message,
.woocommerce-cart .woocommerce>.woocommerce-error,
.woocommerce-cart .woocommerce>.woocommerce-info {
	padding: .75rem var(--cgc-pad-x);
	border-radius: 0;
	border-left: none;
	border-right: none;
	margin: 0;
	font-family: var(--cgc-sans);
	font-size: .875rem;
	list-style: none;
}

.woocommerce-cart .woocommerce>.woocommerce-message {
	background: #dcfce7;
	color: #166534;
	border: none;
	border-bottom: 1px solid #bbf7d0;
}

.woocommerce-cart .woocommerce>.woocommerce-error {
	background: #fee2e2;
	color: #991b1b;
	border: none;
	border-bottom: 1px solid #fecaca;
}

.woocommerce-cart .woocommerce>.woocommerce-info {
	background: #dbeafe;
	color: #1e40af;
	border: none;
	border-bottom: 1px solid #bfdbfe;
}

/* ── Coupon / info notice — gallery palette (overrides WooCommerce default blue) ──
   The coupon toggle on cart & checkout, and any checkout info notice, become a warm
   card with a gold accent instead of the stock blue box + blue top rule. */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-cart .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	background: var(--cgc-bg);
	color: var(--cgc-text);
	border: 1px solid var(--cgc-border);
	border-left: 3px solid var(--cgc-gold);
	border-radius: var(--cgc-radius);
	padding: .85rem 3.1rem;
	margin: 0 0 1.75rem;
	font-family: var(--cgc-sans);
	font-size: .875rem;
	list-style: none;
}

.woocommerce-checkout .woocommerce-info::before,
.woocommerce-cart .woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before {
	color: var(--cgc-gold);
}

.woocommerce-checkout .woocommerce-info a,
.woocommerce-cart .woocommerce-form-coupon-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a {
	color: var(--cgc-gold);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-checkout .woocommerce-info a:hover,
.woocommerce-cart .woocommerce-form-coupon-toggle .woocommerce-info a:hover {
	text-decoration: underline;
}

/* ── Two-column layout wrapper (injected via PHP hook) ──────────────────── */
.cgc-cart-layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	column-gap: 3rem;
	align-items: start;
	padding: 2.5rem var(--cgc-pad-x) 3.5rem;
}

.cgc-cart-layout>form.woocommerce-cart-form {
	grid-column: 1;
	min-width: 0;
}

.cgc-cart-layout>.cart-collaterals {
	grid-column: 2;
	position: sticky;
	top: 5.5rem;
}

/* Hide cross-sells in the narrow sidebar */
.cgc-cart-layout .cross-sells {
	display: none;
}

/* ── Cart items header (count + continue link, injected via PHP hook) ───── */
.cgc-cart-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5rem;
	padding-bottom: .875rem;
	border-bottom: 1px solid var(--cgc-border);
}

.cgc-cart-count {
	font-size: .8125rem;
	color: var(--cgc-muted);
	letter-spacing: .02em;
}

.cgc-continue-shop {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .8125rem;
	font-weight: 500;
	color: var(--cgc-muted);
	text-decoration: none;
	transition: color var(--cgc-ease);
}

.cgc-continue-shop:hover {
	color: var(--cgc-text);
}

/* ── Cart table ─────────────────────────────────────────────────────────── */

/* Full theme table reset — prevent hello-elementor borders, shading, margins */
.woocommerce-cart-form .shop_table.cart,
.woocommerce-cart-form .shop_table.cart th,
.woocommerce-cart-form .shop_table.cart td {
	border: none;
	background: none;
}

.woocommerce-cart-form .shop_table.cart tbody>tr>td {
	background: none;
}

.woocommerce-cart-form .shop_table.cart tbody tr:hover>td {
	background: none;
}

.woocommerce-cart-form .shop_table.cart {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
	margin-block-end: 0;
}

/* Column header row */
.woocommerce-cart-form .shop_table.cart thead th {
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cgc-muted-2);
	padding: 0 0 .875rem;
	border-bottom: 1px solid var(--cgc-border);
	text-align: left;
}

.woocommerce-cart-form .shop_table.cart .product-remove {
	width: 30px;
}

.woocommerce-cart-form .shop_table.cart .product-thumbnail {
	width: 96px;
}

/* Item rows */
.woocommerce-cart-form .shop_table.cart .cart_item td {
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--cgc-border);
	vertical-align: middle;
}

.woocommerce-cart-form .shop_table.cart tbody tr:last-child td {
	border-bottom: none;
}

/* Remove ×  */
.woocommerce-cart-form .shop_table.cart .product-remove {
	padding-right: .625rem;
	vertical-align: middle;
}

.woocommerce-cart-form .shop_table.cart .product-remove .remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	font-size: 1rem;
	line-height: 1;
	color: var(--cgc-muted-2);
	text-decoration: none;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	transition: color var(--cgc-ease), background var(--cgc-ease);
}

.woocommerce-cart-form .shop_table.cart .product-remove .remove:hover {
	color: #b91c1c;
	background: #fee2e2;
}

/* Thumbnail — portrait aspect ratio suits artwork */
.woocommerce-cart-form .shop_table.cart .product-thumbnail {
	padding-right: 1.125rem;
}

.woocommerce-cart-form .shop_table.cart .product-thumbnail a {
	display: block;
}

.woocommerce-cart-form .shop_table.cart .product-thumbnail img {
	width: 80px;
	height: 100px;
	object-fit: cover;
	border-radius: var(--cgc-radius-card);
	display: block;
	max-width: none;
}

/* Product name cell */
.woocommerce-cart-form .shop_table.cart .product-name {
	padding-right: 1.5rem;
}

.woocommerce-cart-form .shop_table.cart .product-name a {
	font-family: var(--cgc-serif);
	font-size: 1.125rem;
	font-weight: 400;
	color: var(--cgc-text);
	text-decoration: none;
	line-height: 1.3;
	display: block;
	margin-bottom: .2rem;
	transition: color var(--cgc-ease);
}

.woocommerce-cart-form .shop_table.cart .product-name a:hover {
	color: var(--cgc-gold);
}

/* Variation / meta below name */
.woocommerce-cart-form .shop_table.cart .product-name .variation,
.woocommerce-cart-form .shop_table.cart .product-name dl.variation {
	font-size: .8125rem;
	color: var(--cgc-muted);
	margin-top: .25rem;
}

.woocommerce-cart-form .shop_table.cart .product-name dl.variation dt,
.woocommerce-cart-form .shop_table.cart .product-name dl.variation dd {
	display: inline;
	margin: 0;
}

.woocommerce-cart-form .shop_table.cart .product-name dl.variation dt::after {
	content: ': ';
}

.woocommerce-cart-form .shop_table.cart .product-name dl.variation dd::after {
	content: ' · ';
}

.woocommerce-cart-form .shop_table.cart .product-name dl.variation dd:last-child::after {
	content: '';
}

/* Unit price */
.woocommerce-cart-form .shop_table.cart .product-price {
	font-size: .9375rem;
	color: var(--cgc-muted);
	text-align: right;
	white-space: nowrap;
}

/* Row subtotal */
.woocommerce-cart-form .shop_table.cart .product-subtotal {
	font-size: .9375rem;
	font-weight: 600;
	color: var(--cgc-text);
	text-align: right;
	white-space: nowrap;
}

/* Quantity number input */
.woocommerce-cart-form .shop_table.cart .product-quantity {
	text-align: center;
}

.woocommerce-cart-form .shop_table.cart .product-quantity .qty {
	width: 58px;
	padding: .4375rem .5rem;
	border: 1.5px solid var(--cgc-border-input);
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .9375rem;
	text-align: center;
	color: var(--cgc-text);
	background: var(--cgc-surface);
	outline: none;
	transition: border-color var(--cgc-ease);
}

.woocommerce-cart-form .shop_table.cart .product-quantity .qty:focus {
	border-color: var(--cgc-text);
}

/* ── Actions row (coupon code + update cart) ────────────────────────────── */
.woocommerce-cart-form .shop_table.cart .actions td {
	padding: 1.25rem 0 0;
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
	justify-content: space-between;
}

.woocommerce-cart-form .shop_table.cart .actions .coupon {
	display: flex;
	align-items: center;
	gap: .5rem;
	float: none;
}

.woocommerce-cart-form .shop_table.cart .actions .coupon #coupon_code {
	width: 180px;
	padding: .5625rem .875rem;
	border: 1.5px solid var(--cgc-border-input);
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .875rem;
	color: var(--cgc-text);
	background: var(--cgc-surface);
	outline: none;
	transition: border-color var(--cgc-ease);
}

.woocommerce-cart-form .shop_table.cart .actions .coupon #coupon_code:focus {
	border-color: var(--cgc-text);
}

.woocommerce-cart-form .shop_table.cart .actions .coupon #coupon_code::placeholder {
	color: var(--cgc-muted-2);
}

/* ── Cart buttons — specificity 0,3,0 beats theme [type=button] 0,1,0 ──── */

/* Generic dark button (Apply Coupon) */
.woocommerce-cart .woocommerce .button,
.woocommerce-cart .woocommerce button.button {
	display: inline-flex;
	align-items: center;
	padding: .5625rem 1rem;
	background: var(--cgc-text);
	color: #fff;
	border: 1.5px solid var(--cgc-text);
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .8125rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--cgc-ease), border-color var(--cgc-ease);
	line-height: 1.5;
	width: auto;
	white-space: nowrap;
}

.woocommerce-cart .woocommerce .button:hover,
.woocommerce-cart .woocommerce button.button:hover {
	background: #000;
	border-color: #000;
	color: #fff;
}

/* "Update cart" — ghost/outline style (secondary action) */
.woocommerce-cart .woocommerce button[name="update_cart"] {
	background: transparent;
	color: var(--cgc-muted);
	border-color: var(--cgc-border-input);
}

.woocommerce-cart .woocommerce button[name="update_cart"]:hover {
	background: var(--cgc-bg);
	border-color: var(--cgc-text);
	color: var(--cgc-text);
}

/* Proceed to checkout — gold CTA with subtle shadow */
.woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	padding: .9375rem 1rem;
	background: var(--cgc-gold);
	color: #fff;
	border: none;
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .9375rem;
	font-weight: 600;
	text-align: center;
	letter-spacing: .03em;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(201, 145, 30, .35);
	transition: background var(--cgc-ease), box-shadow var(--cgc-ease);
	margin-top: 1.375rem;
}

.woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--cgc-gold-dark);
	box-shadow: 0 4px 16px rgba(201, 145, 30, .4);
	color: #fff;
}

/* ── Cart totals sidebar card ───────────────────────────────────────────── */
.cgc-cart-layout .cart_totals {
	background: var(--cgc-surface);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	padding: 1.625rem 1.75rem 1.75rem;
}

.cgc-cart-layout .cart_totals h2 {
	font-family: var(--cgc-serif);
	font-size: 1.25rem;
	font-weight: 400;
	margin: 0 0 1.125rem;
	padding-bottom: .875rem;
	border-bottom: 1px solid var(--cgc-border);
	line-height: 1.2;
	color: var(--cgc-text);
	letter-spacing: -0.01em;
}

/* Totals table — full reset then re-apply */
.cgc-cart-layout .cart_totals .shop_table,
.cgc-cart-layout .cart_totals .shop_table th,
.cgc-cart-layout .cart_totals .shop_table td {
	border: none;
	background: none;
}

.cgc-cart-layout .cart_totals .shop_table tbody>tr>td {
	background: none;
}

.cgc-cart-layout .cart_totals .shop_table tbody tr:hover>td {
	background: none;
}

.cgc-cart-layout .cart_totals .shop_table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	margin-block-end: 0;
	font-size: 1rem;
}

.cgc-cart-layout .cart_totals .shop_table th {
	font-family: var(--cgc-sans);
	font-weight: 400;
	font-size: .875rem;
	color: var(--cgc-muted);
	text-align: left;
	padding: .4375rem 0;
	line-height: 1.5;
}

.cgc-cart-layout .cart_totals .shop_table td {
	font-size: .875rem;
	text-align: right;
	padding: .4375rem 0;
	line-height: 1.5;
	color: var(--cgc-text);
}

/* Shipping row */
.cgc-cart-layout .cart_totals .shop_table .shipping td {
	color: var(--cgc-muted);
	font-size: .8125rem;
}

/* Total row */
.cgc-cart-layout .cart_totals .shop_table .order-total th,
.cgc-cart-layout .cart_totals .shop_table .order-total td {
	font-size: .9375rem;
	font-weight: 600;
	color: var(--cgc-text);
	padding-top: .875rem;
	padding-bottom: 0;
	border-top: 1px solid var(--cgc-border);
	margin-top: .375rem;
}

/* Coupon remove link */
.cgc-cart-layout .cart_totals .shop_table .cart-discount td a.woocommerce-remove-coupon {
	margin-left: .375rem;
	font-size: .75rem;
	color: var(--cgc-muted);
	text-decoration: underline;
	cursor: pointer;
}

/* ── Trust badges (injected via PHP hook) ───────────────────────────────── */
.cgc-trust-badges {
	margin-top: 1.375rem;
	padding-top: 1.375rem;
	border-top: 1px solid var(--cgc-border);
	display: flex;
	flex-direction: column;
	gap: .625rem;
}

.cgc-trust-badge {
	display: flex;
	align-items: center;
	gap: .625rem;
	font-family: var(--cgc-sans);
	font-size: .8rem;
	color: var(--cgc-muted);
	line-height: 1.4;
}

.cgc-trust-badge svg {
	color: var(--cgc-gold);
	flex-shrink: 0;
}

/* ── Empty cart ─────────────────────────────────────────────────────────── */
.woocommerce-cart .woocommerce .cart-empty {
	padding: 4rem var(--cgc-pad-x);
	font-size: 1rem;
	color: var(--cgc-muted);
	text-align: center;
}

.woocommerce-cart .woocommerce .return-to-shop {
	text-align: center;
	padding-bottom: 3rem;
}

/* ══════════════════════════════════════════════════════════════════════════
   CHECKOUT — PAGE WRAPPER & TWO-COLUMN LAYOUT
   PHP hooks inject .cgc-co-billing (billing + shipping fields) and
   .cgc-co-sidebar (order summary heading + review table + payment).
   ══════════════════════════════════════════════════════════════════════════ */

.woocommerce-checkout .woocommerce {
	padding: 0;
}

/* Checkout notices (above the form) */
.woocommerce-checkout .woocommerce-NoticeGroup,
.woocommerce-checkout>.woocommerce>.woocommerce-error,
.woocommerce-checkout>.woocommerce>.woocommerce-message,
.woocommerce-checkout>.woocommerce>.woocommerce-info {
	padding: .75rem var(--cgc-pad-x);
	font-family: var(--cgc-sans);
	font-size: .875rem;
	list-style: none;
	border: none;
	margin: 0;
}

.woocommerce-checkout .woocommerce-error {
	background: #fee2e2;
	color: #991b1b;
}

.woocommerce-checkout .woocommerce-message {
	background: #dcfce7;
	color: #166534;
}

.woocommerce-checkout .woocommerce-info {
	background: #dbeafe;
	color: #1e40af;
}

/* Coupon and login forms that appear above the checkout fields */
.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout form.login {
	background: var(--cgc-surface);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	padding: 1.25rem 1.5rem;
	margin: 1rem var(--cgc-pad-x) 0;
	max-width: 560px;
}

/* Checkout flex layout */
form.woocommerce-checkout {
	display: flex;
	align-items: flex-start;
	gap: 2.5rem;
	padding: 2.5rem var(--cgc-pad-x) 3.5rem;
}

/* Left: billing / shipping / additional fields */
.cgc-co-billing {
	flex: 1;
	min-width: 0;
}

/* Right: order summary + payment */
.cgc-co-sidebar {
	width: 380px;
	flex-shrink: 0;
	position: sticky;
	top: 5.5rem;
}

/* Stack WC's col2-set (billing + shipping) vertically */
.woocommerce-checkout .col2-set {
	display: block;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	width: 100%;
	float: none;
	padding: 0;
}

/* ── Billing / Shipping / Additional info cards ──────────────────────────── */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: var(--cgc-surface);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	padding: 1.6rem 1.8rem;
	margin-bottom: 1rem;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-family: var(--cgc-serif);
	font-size: 1.1875rem;
	font-weight: 400;
	margin: 0 0 1.25rem;
	color: var(--cgc-text);
	letter-spacing: -0.01em;
}

/* "Ship to a different address?" — checkbox toggle heading */
.woocommerce-checkout .woocommerce-shipping-fields h3 {
	font-family: var(--cgc-serif);
	font-size: 1.1875rem;
	font-weight: 400;
	margin: 0 0 1rem;
	color: var(--cgc-text);
}

.woocommerce-checkout .woocommerce-shipping-fields h3 label {
	display: flex;
	align-items: center;
	gap: .625rem;
	cursor: pointer;
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.woocommerce-checkout .woocommerce-shipping-fields h3 label input[type="checkbox"] {
	width: 1rem;
	height: 1rem;
	accent-color: var(--cgc-text);
	flex-shrink: 0;
}

/* ── Checkout form fields ────────────────────────────────────────────────── */
.woocommerce-checkout .form-row {
	margin-bottom: .875rem;
}

.woocommerce-checkout .form-row label {
	display: block;
	font-family: var(--cgc-sans);
	font-size: .72rem;
	font-weight: 500;
	color: var(--cgc-muted);
	margin-bottom: .4rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.woocommerce-checkout .form-row label .optional {
	font-weight: 400;
	color: var(--cgc-muted-2);
}

.woocommerce-checkout .form-row label abbr[title] {
	color: #dc2626;
	text-decoration: none;
	border: none;
}

/* Input / select / textarea */
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select {
	width: 100%;
	padding: .625rem .875rem;
	border: 1.5px solid var(--cgc-border-input);
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .9375rem;
	color: var(--cgc-text);
	background: var(--cgc-surface);
	outline: none;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color var(--cgc-ease), box-shadow var(--cgc-ease);
	line-height: 1.5;
}

.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row input[type="text"]:focus,
.woocommerce-checkout .form-row input[type="email"]:focus,
.woocommerce-checkout .form-row input[type="tel"]:focus,
.woocommerce-checkout .form-row select:focus {
	border-color: var(--cgc-text);
	box-shadow: 0 0 0 3px rgba(26, 26, 26, .06);
}

.woocommerce-checkout .form-row .input-text::placeholder,
.woocommerce-checkout .form-row input::placeholder {
	color: var(--cgc-muted-2);
}

/* Side-by-side fields */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
	width: 48%;
	display: inline-block;
	vertical-align: top;
	float: none;
}

.woocommerce-checkout .form-row-first {
	margin-right: 4%;
}

/* Validation states */
.woocommerce-checkout .form-row.woocommerce-invalid .input-text,
.woocommerce-checkout .form-row.woocommerce-invalid input[type="text"],
.woocommerce-checkout .form-row.woocommerce-invalid select {
	border-color: #dc2626;
}

.woocommerce-checkout .form-row.woocommerce-invalid label {
	color: #dc2626;
}

.woocommerce-checkout .form-row.woocommerce-validated .input-text,
.woocommerce-checkout .form-row.woocommerce-validated input[type="text"] {
	border-color: #16a34a;
}

/* Checkout generic buttons */
.woocommerce-checkout .woocommerce .button,
.woocommerce-checkout .woocommerce button.button {
	display: inline-flex;
	align-items: center;
	padding: .5625rem 1.125rem;
	background: var(--cgc-text);
	color: #fff;
	border: 1.5px solid var(--cgc-text);
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .875rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--cgc-ease);
	width: auto;
}

.woocommerce-checkout .woocommerce .button:hover,
.woocommerce-checkout .woocommerce button.button:hover {
	background: #000;
	border-color: #000;
	color: #fff;
}

/* ── Order summary sidebar heading ──────────────────────────────────────── */
.cgc-co-sidebar>#order_review_heading {
	font-family: var(--cgc-serif);
	font-size: 1.25rem;
	font-weight: 400;
	margin: 0 0 .875rem;
	color: var(--cgc-text);
	letter-spacing: -0.01em;
}

/* ── Order review card ──────────────────────────────────────────────────── */
#order_review.woocommerce-checkout-review-order {
	background: var(--cgc-surface);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	overflow: hidden;
}

/* Review table reset */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	border: none;
	background: none;
}

.woocommerce-checkout-review-order-table tbody>tr>td {
	background: none;
}

.woocommerce-checkout-review-order-table tbody tr:hover>td {
	background: none;
}

.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
	margin: 0;
	margin-block-end: 0;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: .75rem 1.375rem;
	line-height: 1.4;
}

.woocommerce-checkout-review-order-table thead th {
	font-size: .625rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cgc-muted-2);
	border-bottom: 1px solid var(--cgc-border);
	padding-top: 1.125rem;
	padding-bottom: .75rem;
}

.woocommerce-checkout-review-order-table tbody .cart_item td {
	border-bottom: 1px solid var(--cgc-border);
}

.woocommerce-checkout-review-order-table .product-name {
	font-size: .875rem;
	color: var(--cgc-text);
}

.woocommerce-checkout-review-order-table .product-name .product-quantity {
	font-weight: 400;
	color: var(--cgc-muted);
	font-size: .8125rem;
}

.woocommerce-checkout-review-order-table .product-total {
	text-align: right;
	font-weight: 500;
	font-size: .875rem;
}

/* Totals footer rows */
.woocommerce-checkout-review-order-table tfoot tr th {
	color: var(--cgc-muted);
	font-size: .875rem;
	font-weight: 400;
}

.woocommerce-checkout-review-order-table tfoot tr td {
	text-align: right;
	font-size: .875rem;
	color: var(--cgc-muted);
}

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	font-weight: 600;
	font-size: .9375rem;
	color: var(--cgc-text);
	border-top: 1px solid var(--cgc-border);
	padding-top: .875rem;
	padding-bottom: 1.125rem;
}

/* ── Payment section ────────────────────────────────────────────────────── */
#payment {
	background: var(--cgc-surface);
	border-top: 1px solid var(--cgc-border);
	padding: 0px;
}

#payment ul.payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 1rem;
	display: flex;
	flex-direction: column;
	gap: 0;
	border-top: 1px solid var(--cgc-border);
}

/* Simple hairline-separated payment rows (no boxes). */
#payment ul.payment_methods li {
	background: none;
	border: none;
	border-bottom: 1px solid var(--cgc-border);
	border-radius: 0;
	padding: .9rem .25rem;
	cursor: pointer;
}

#payment ul.payment_methods li:last-child {
	border-bottom: none;
}

#payment ul.payment_methods li label {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-family: var(--cgc-sans);
	font-size: .875rem;
	font-weight: 500;
	color: var(--cgc-text);
	cursor: pointer;
	margin: 0;
}

#payment ul.payment_methods li label input[type="radio"] {
	accent-color: var(--cgc-text);
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

#payment ul.payment_methods li label img {
	height: 18px;
	width: auto;
	max-width: 110px;
	margin-left: auto;
	display: inline-block;
	vertical-align: middle;
}

#payment .payment_box {
	margin-top: .25rem;
	padding: .4rem 0 .5rem;
	background: none;
	font-family: var(--cgc-sans);
	font-size: .875rem;
	color: var(--cgc-muted);
	border: none;
}

#payment .payment_box::before {
	display: none;
}

/* Place order — ID wins over all theme reset rules */
#payment #place_order,
.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	padding: .95rem 1rem;
	background: #1f1f1f;
	color: #fff;
	border: none;
	border-radius: var(--cgc-radius);
	font-family: var(--cgc-sans);
	font-size: .875rem;
	font-weight: 500;
	text-align: center;
	cursor: pointer;
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background var(--cgc-ease);
	margin-top: .25rem;
}

#payment #place_order:hover,
.woocommerce-checkout #place_order:hover {
	background: #000;
	color: #fff;
}

/* Terms & conditions */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: .75rem;
	font-family: var(--cgc-sans);
	font-size: .8125rem;
	color: var(--cgc-muted);
	line-height: 1.5;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
	color: var(--cgc-text);
	text-decoration: underline;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	accent-color: var(--cgc-text);
}

/* ══════════════════════════════════════════════════════════════════════════
   ORDER RECEIVED — THANK YOU PAGE
   ══════════════════════════════════════════════════════════════════════════ */

.woocommerce-order-received .woocommerce {
	padding: 2.5rem var(--cgc-pad-x) 3.5rem;
	max-width: 760px;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-family: var(--cgc-serif);
	font-size: clamp(1.625rem, 4vw, 2.25rem);
	font-weight: 400;
	margin: 0 0 1.5rem;
	letter-spacing: -0.01em;
}

.woocommerce-order-received .woocommerce-notice--success {
	background: #dcfce7;
	border: none;
	border-radius: var(--cgc-radius-card);
	padding: 1rem 1.5rem;
	color: #166534;
	font-family: var(--cgc-sans);
	font-size: .9375rem;
	margin-bottom: 1.75rem;
}

/* Order overview strip */
.woocommerce-order-received .woocommerce-order-overview {
	background: var(--cgc-surface);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	padding: 1.25rem 1.75rem;
	margin-bottom: 1.75rem;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
}

.woocommerce-order-received .woocommerce-order-overview li {
	font-size: .8125rem;
	color: var(--cgc-muted);
	font-family: var(--cgc-sans);
}

.woocommerce-order-received .woocommerce-order-overview li strong {
	display: block;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--cgc-text);
	margin-top: .2rem;
}

/* Order details + customer details headings */
.woocommerce-order-received .woocommerce-order-details h2,
.woocommerce-order-received .woocommerce-customer-details h2 {
	font-family: var(--cgc-serif);
	font-size: 1.25rem;
	font-weight: 400;
	margin: 0 0 .875rem;
	color: var(--cgc-text);
}

/* Order details table */
.woocommerce-order-received .woocommerce-table--order-details,
.woocommerce-order-received .woocommerce-table--order-details th,
.woocommerce-order-received .woocommerce-table--order-details td {
	border: none;
	background: none;
}

.woocommerce-order-received .woocommerce-table--order-details tbody>tr>td {
	background: none;
}

.woocommerce-order-received .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
	margin-bottom: 1.75rem;
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	overflow: hidden;
	margin-block-end: 1.75rem;
}

.woocommerce-order-received .woocommerce-table--order-details th,
.woocommerce-order-received .woocommerce-table--order-details td {
	padding: .875rem 1.5rem;
	border-bottom: 1px solid var(--cgc-border);
	text-align: left;
	line-height: 1.5;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot th,
.woocommerce-order-received .woocommerce-table--order-details tfoot td {
	color: var(--cgc-muted);
	font-size: .875rem;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot .order-total th,
.woocommerce-order-received .woocommerce-table--order-details tfoot .order-total td {
	font-weight: 600;
	font-size: 1rem;
	color: var(--cgc-text);
	border-bottom: none;
}

/* Customer addresses */
.woocommerce-order-received .woocommerce-customer-details address {
	font-style: normal;
	font-size: .9rem;
	line-height: 1.75;
	background: var(--cgc-surface);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
	padding: 1.25rem 1.5rem;
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET  (≤ 960px)
   ══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 960px) {
	:root {
		--cgc-pad-x: 1.5rem;
	}

	/* Stack cart columns */
	.cgc-cart-layout {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.cgc-cart-layout>form.woocommerce-cart-form {
		grid-column: 1;
	}

	.cgc-cart-layout>.cart-collaterals {
		grid-column: 1;
		position: static;
	}

	/* Stack checkout columns */
	form.woocommerce-checkout {
		flex-direction: column;
	}

	.cgc-co-billing {
		width: 100%;
	}

	.cgc-co-sidebar {
		width: 100%;
		position: static;
	}
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE  (≤ 600px)
   ══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 600px) {
	:root {
		--cgc-pad-x: 1rem;
	}

	.cgc-page-hero {
		padding: 1.75rem var(--cgc-pad-x) 1.5rem;
	}

	.cgc-cart-layout,
	form.woocommerce-checkout {
		padding-block: 1.75rem 2.5rem;
	}

	/* Full-width checkout fields on mobile */
	.woocommerce-checkout .form-row-first,
	.woocommerce-checkout .form-row-last {
		width: 100%;
		display: block;
	}

	.woocommerce-checkout .form-row-first {
		margin-right: 0;
	}

	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout .woocommerce-shipping-fields,
	.woocommerce-checkout .woocommerce-additional-fields {
		padding: 1.25rem 1rem;
	}

	.cgc-cart-layout .cart_totals {
		padding: 1.25rem 1rem;
	}

	/* Cart table → flex rows on mobile (thead hidden) */
	.woocommerce-cart-form .shop_table.cart thead {
		display: none;
	}

	.woocommerce-cart-form .shop_table.cart,
	.woocommerce-cart-form .shop_table.cart tbody,
	.woocommerce-cart-form .shop_table.cart tr,
	.woocommerce-cart-form .shop_table.cart td {
		display: block;
	}

	.woocommerce-cart-form .shop_table.cart .cart_item {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: .75rem;
		padding: 1rem 0;
		border-bottom: 1px solid var(--cgc-border);
	}

	.woocommerce-cart-form .shop_table.cart .product-remove {
		order: 3;
		align-self: center;
		padding: 0;
	}

	.woocommerce-cart-form .shop_table.cart .product-thumbnail {
		flex-shrink: 0;
		padding: 0;
	}

	.woocommerce-cart-form .shop_table.cart .product-name {
		flex: 1;
		min-width: 0;
		padding: 0;
	}

	.woocommerce-cart-form .shop_table.cart .product-price {
		display: none;
	}

	.woocommerce-cart-form .shop_table.cart .product-quantity,
	.woocommerce-cart-form .shop_table.cart .product-subtotal {
		padding: 0;
	}

	.woocommerce-cart-form .shop_table.cart .product-subtotal {
		margin-left: auto;
	}

	.woocommerce-cart-form .shop_table.cart .actions td {
		display: flex;
		flex-wrap: wrap;
		gap: .625rem;
	}

	.woocommerce-order-received .woocommerce {
		padding: 1.75rem 1rem 2.5rem;
	}

	.woocommerce-order-received .woocommerce-order-overview {
		flex-direction: column;
		gap: .75rem;
	}
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	width: auto;
}

/* ── Checkout: reassurance panel (fills the sidebar below the summary) ─────── */
.cgc-reassure {
	margin-top: 1.25rem;
	padding: 1.25rem 1.375rem;
	background: var(--cgc-bg);
	border: 1.5px solid var(--cgc-border);
	border-radius: var(--cgc-radius-card);
}

.cgc-reassure__title {
	font-family: var(--cgc-serif);
	font-size: 1.1875rem;
	font-weight: 500;
	margin: 0 0 .9rem;
	color: var(--cgc-text);
	letter-spacing: -.01em;
}

.cgc-reassure__list {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: grid;
	gap: .7rem;
}

.cgc-reassure__list li {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-family: var(--cgc-sans);
	font-size: .8125rem;
	line-height: 1.45;
	color: var(--cgc-muted);
}

.cgc-reassure__list svg {
	width: 17px;
	height: 17px;
	flex: none;
	color: var(--cgc-text);
	margin-top: 1px;
}

.cgc-reassure__help {
	margin: 0;
	padding-top: .9rem;
	border-top: 1px solid var(--cgc-border);
	font-family: var(--cgc-sans);
	font-size: .8125rem;
	color: var(--cgc-muted);
}

.cgc-reassure__help a {
	color: var(--cgc-gold);
	font-weight: 600;
	text-decoration: none;
}

.cgc-reassure__help a:hover {
	text-decoration: underline;
}

/* On stacked (mobile) layout the sidebar is full width — keep the panel tidy. */
@media (max-width: 860px) {
	.cgc-reassure {
		margin-top: 1rem;
	}
}

/* ── Checkout order summary: product thumbnails (match the cart) ──────────── */
.woocommerce-checkout-review-order-table .product-name {
	padding-right: .5rem;
}

.woocommerce-checkout-review-order-table .cgc-co-item {
	display: flex;
	align-items: center;
	gap: .75rem;
}

.cgc-co-item__thumb {
	flex: none;
	width: 46px;
	height: 46px;
	border-radius: var(--cgc-radius);
	overflow: hidden;
	background: var(--cgc-bg);
	border: 1px solid var(--cgc-border);
}

.woocommerce-checkout-review-order-table .cgc-co-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
}

.cgc-co-item__text {
	font-size: .875rem;
	color: var(--cgc-text);
	line-height: 1.35;
}

.cgc-co-item__text .product-quantity {
	color: var(--cgc-muted);
	font-size: .8125rem;
	font-weight: 400;
}

/* ── Simple, borderless order summary (override theme .shop_table boxing) ──── */
.woocommerce-checkout-review-order-table {
	border: none !important;
}

.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th {
	border-left: none !important;
	border-right: none !important;
	background: none !important;
}

.woocommerce-checkout-review-order-table tbody .cart_item td {
	border-top: none !important;
	border-bottom: 1px solid var(--cgc-border) !important;
}

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
	border-top: none !important;
}

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	border-top: 1px solid var(--cgc-border) !important;
}