/* ============================================================
 * NB WooCommerce — Cart + Checkout styles (SINGLE-COLUMN REBUILD)
 *
 * Rebuilt as a clean single-column flow. No grid wrestling.
 * Sections stack vertically, max-width clamped for readability.
 * Loaded only on cart and checkout pages.
 *
 * Replaces all prior phase 7 / 7.1 / 7.2 styles.
 * ============================================================ */


/* ─────────────── 1. Page wrapper ─────────────── */

.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main {
	background: var(--night);
	color: var(--parchment);
}

/* Release any width constraint <main> may impose */
body.woocommerce-cart main.site-main,
body.woocommerce-checkout main.site-main,
body.woocommerce-cart #nb-content,
body.woocommerce-checkout #nb-content {
	max-width: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-checkout-page .entry-title,
.woocommerce-cart .page-title,
.woocommerce-checkout .page-title {
	display: none;
}

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
	display: block !important;
	max-width: 760px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 56px clamp(20px, 5vw, 48px) 96px !important;
	box-sizing: border-box !important;
	color: var(--parchment);
}

@media (max-width: 700px) {
	body.woocommerce-cart .woocommerce,
	body.woocommerce-checkout .woocommerce {
		padding: 32px 20px 64px !important;
	}
}


/* ─────────────── 2. Section headings ─────────────── */

.woocommerce h2,
.woocommerce-cart h1.page-title,
.woocommerce-checkout-review-order > h3,
#order_review_heading,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
	font-family: 'Cinzel', serif !important;
	font-weight: 400;
	font-size: clamp(1.4rem, 2.5vw, 1.8rem) !important;
	line-height: 1.15 !important;
	letter-spacing: 0.005em !important;
	color: var(--parchment) !important;
	margin: 0 0 22px !important;
	padding-bottom: 12px !important;
	border-bottom: 1px solid var(--rule) !important;
	overflow-wrap: break-word;
}

#order_review_heading {
	margin-top: 40px !important;
}


/* ─────────────── 3. Form: kill any internal column behavior ─────────────── */

.woocommerce-checkout form.checkout {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

.woocommerce-checkout form.checkout #customer_details.col2-set,
.woocommerce-checkout form.checkout .col2-set {
	display: block !important;
	width: 100% !important;
}

.woocommerce-checkout form.checkout .col2-set .col-1,
.woocommerce-checkout form.checkout .col2-set .col-2,
.woocommerce-checkout form.checkout #customer_details > .col-1,
.woocommerce-checkout form.checkout #customer_details > .col-2 {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 0 32px !important;
	display: block !important;
}

.woocommerce-checkout form.checkout > * {
	float: none !important;
	clear: both;
}


/* ─────────────── 4. Notices ─────────────── */

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-message {
	background: var(--night-soft) !important;
	border: 1px solid var(--rule) !important;
	border-left: 4px solid var(--candle) !important;
	color: var(--parchment) !important;
	font-family: 'EB Garamond', serif;
	font-size: 16px;
	padding: 14px 18px;
	margin: 0 0 24px;
	list-style: none;
	box-shadow: none;
}
.woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-error {
	border-left-color: var(--wine) !important;
}
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--candle) !important;
}
.woocommerce-error a,
.woocommerce-info a,
.woocommerce-message a {
	color: var(--candle);
	text-decoration: underline;
}


/* ─────────────── 5. Form inputs ─────────────── */

.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce form .form-row label.checkbox {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--parchment);
	margin-bottom: 8px;
	display: block;
}

.woocommerce form .form-row label .required,
.woocommerce form .form-row label .optional {
	color: var(--candle);
	margin-left: 4px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
	width: 100% !important;
	font-family: 'EB Garamond', serif !important;
	font-size: 17px !important;
	color: var(--parchment) !important;
	background: var(--night-soft) !important;
	border: 1px solid var(--rule) !important;
	border-radius: 0 !important;
	padding: 12px 14px !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	height: auto !important;
	box-sizing: border-box;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.select2-container--default .select2-selection--single:focus {
	border-color: var(--candle) !important;
	background: var(--night) !important;
	outline: none !important;
}

.woocommerce form .form-row textarea {
	min-height: 110px !important;
	resize: vertical;
}

/* Select2 styling */
.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--parchment) !important;
	line-height: 1.4 !important;
	padding: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100% !important;
	right: 12px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var(--candle) transparent transparent !important;
}
.select2-dropdown {
	background: var(--night-soft) !important;
	border: 1px solid var(--candle) !important;
	color: var(--parchment) !important;
}
.select2-results__option {
	color: var(--parchment) !important;
	padding: 10px 14px !important;
	font-family: 'EB Garamond', serif;
	font-size: 16px;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted--first {
	background: rgba(212, 160, 86, 0.15) !important;
	color: var(--candle) !important;
}
.select2-search--dropdown .select2-search__field {
	background: var(--night) !important;
	color: var(--parchment) !important;
	border: 1px solid var(--rule) !important;
	font-family: 'EB Garamond', serif;
}

.woocommerce form .form-row {
	margin: 0 0 18px;
	padding: 0;
	display: block;
	width: 100%;
}

.woocommerce form .form-row.woocommerce-validated input.input-text {
	box-shadow: inset 2px 0 0 var(--candle) !important;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text {
	box-shadow: inset 2px 0 0 var(--wine) !important;
}

.woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

/* First/last name side-by-side at desktop, stacked at mobile */
.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce-page form .form-row-first,
.woocommerce-page form .form-row-last {
	width: calc(50% - 9px);
	display: inline-block;
	vertical-align: top;
}
.woocommerce form .form-row-first,
.woocommerce-page form .form-row-first {
	margin-right: 18px;
}
.woocommerce form .form-row-wide,
.woocommerce-page form .form-row-wide {
	width: 100%;
}

@media (max-width: 600px) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last,
	.woocommerce-page form .form-row-first,
	.woocommerce-page form .form-row-last {
		width: 100%;
		display: block;
		margin-right: 0 !important;
	}
}


/* ─────────────── 6. Coupon / Login banners ─────────────── */

.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
	background: var(--night-soft) !important;
	border: 1px dashed var(--rule) !important;
	border-left: 4px solid var(--candle) !important;
	color: var(--parchment-dim) !important;
	font-family: 'EB Garamond', serif !important;
	font-size: 15px !important;
	margin: 0 0 24px !important;
	padding: 12px 16px !important;
}
.woocommerce-form-coupon-toggle a,
.woocommerce-form-login-toggle a {
	color: var(--candle) !important;
	font-weight: 500;
}

.woocommerce-form-coupon,
.woocommerce-form-login {
	background: var(--night-soft);
	border: 1px solid var(--rule);
	padding: 22px;
	margin: 0 0 24px;
}
.woocommerce-form-coupon p:first-child,
.woocommerce-form-login p:first-child {
	margin-top: 0;
}

.woocommerce-form-coupon .button,
.woocommerce-form-login .button {
	font-family: 'Cinzel', serif !important;
	font-weight: 500 !important;
	font-size: 11px !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	background: transparent !important;
	color: var(--candle) !important;
	border: 1px solid var(--candle) !important;
	border-radius: 0 !important;
	padding: 12px 18px !important;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}
.woocommerce-form-coupon .button:hover,
.woocommerce-form-login .button:hover {
	background: var(--candle) !important;
	color: var(--night) !important;
}


/* ─────────────── 7. Apple/Google Pay row ─────────────── */

.woocommerce-checkout #wc-stripe-payment-request-wrapper,
.woocommerce-checkout .wc-stripe-payment-request-wrapper {
	margin: 0 0 24px;
	padding: 18px 0;
	border-bottom: 1px solid var(--rule);
	text-align: center;
}
.woocommerce-checkout #wc-stripe-payment-request-button-separator,
.woocommerce-checkout .wc-stripe-payment-request-button-separator {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--parchment-dim) !important;
	margin: 14px 0 0;
	padding: 0;
	text-align: center;
}


/* ─────────────── 8. Bitch Bag section ─────────────── */

.nb-bitch-bag {
	display: block !important;
	width: 100% !important;
	margin: 32px 0 !important;
	padding: 28px 28px 24px !important;
	background:
		radial-gradient(ellipse 600px 300px at 30% 20%, rgba(212, 160, 86, 0.10), transparent 60%),
		var(--night-soft);
	border: 1px solid var(--candle);
	border-left-width: 4px;
	box-sizing: border-box;
}

.nb-bitch-bag-heading {
	margin-bottom: 22px;
}
.nb-bitch-bag-heading .eyebrow {
	display: block;
	margin-bottom: 8px;
}
.nb-bitch-bag-title {
	font-family: 'Cinzel', serif !important;
	font-weight: 400;
	font-size: 1.5rem !important;
	line-height: 1.1;
	letter-spacing: 0.005em;
	color: var(--parchment);
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: 0 !important;
}
.nb-bitch-bag-intro {
	font-family: 'EB Garamond', serif;
	font-style: italic;
	font-size: 16px;
	line-height: 1.55;
	color: var(--parchment);
	margin: 0;
	max-width: 56ch;
}

.nb-bitch-bag-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 18px 24px !important;
	width: 100% !important;
}
.nb-bb-field {
	margin: 0 !important;
	width: 100%;
	min-width: 0;
}
.nb-bb-field label {
	margin-bottom: 6px !important;
}
.nb-bb-field .nb-bb-instructions {
	display: block;
	margin-top: 6px;
	font-family: 'EB Garamond', serif;
	font-style: italic;
	font-size: 13px;
	color: var(--parchment-dim);
}

@media (max-width: 600px) {
	.nb-bitch-bag {
		padding: 22px 18px 18px !important;
	}
	.nb-bitch-bag-grid {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
	}
	.nb-bitch-bag-title {
		font-size: 1.3rem !important;
	}
}


/* ─────────────── 9. Order Review ─────────────── */

#order_review {
	display: block !important;
	width: 100% !important;
	margin: 0 0 32px !important;
	padding: 28px 28px 32px !important;
	background: var(--night-soft);
	border: 1px solid var(--rule);
	box-sizing: border-box;
	overflow: visible !important;
}

.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order table {
	width: 100% !important;
	border-collapse: collapse;
	margin: 0 0 24px;
	background: transparent;
	border: 0;
	table-layout: auto;
}

.woocommerce-checkout-review-order-table thead th {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--parchment-dim);
	background: transparent !important;
	padding: 10px 0;
	border-bottom: 1px solid var(--rule);
	text-align: left;
}
.woocommerce-checkout-review-order-table thead th.product-total {
	text-align: right;
}

.woocommerce-checkout-review-order-table tbody td,
.woocommerce-checkout-review-order-table .cart_item td {
	font-family: 'EB Garamond', serif !important;
	font-size: 16px;
	color: var(--parchment);
	background: transparent !important;
	padding: 14px 0;
	border-bottom: 1px solid var(--rule-soft);
	vertical-align: top;
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
.woocommerce-checkout-review-order-table .product-name {
	font-style: italic;
	line-height: 1.4;
	max-width: 60%;
}
.woocommerce-checkout-review-order-table .product-name strong {
	font-style: normal;
	font-weight: 500;
}
.woocommerce-checkout-review-order-table .product-quantity {
	color: var(--parchment-dim);
	font-style: italic;
	margin-left: 4px;
}
.woocommerce-checkout-review-order-table .product-total {
	text-align: right;
	font-family: 'EB Garamond', serif !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	color: var(--parchment) !important;
	white-space: normal;
	overflow-wrap: break-word;
}

.woocommerce-checkout-review-order-table tfoot td {
	font-family: 'EB Garamond', serif !important;
	font-size: 16px;
	color: var(--parchment);
	background: transparent !important;
	padding: 12px 0;
	border-bottom: 1px solid var(--rule-soft);
	text-align: right;
	white-space: normal;
}
.woocommerce-checkout-review-order-table tfoot th {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--parchment-dim);
	background: transparent !important;
	padding: 12px 0;
	border-bottom: 1px solid var(--rule-soft);
	text-align: left;
}
.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
	border-top: 2px solid var(--candle) !important;
	padding-top: 16px !important;
	font-size: 22px !important;
	color: var(--candle) !important;
	font-weight: 500 !important;
}
.woocommerce-checkout-review-order-table tfoot .amount {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	color: var(--candle) !important;
	white-space: normal;
}


/* ─────────────── 10. Payment methods ─────────────── */

#payment {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	width: 100%;
}
#payment ul.payment_methods {
	border: 0 !important;
	padding: 0 0 24px !important;
	margin: 0 !important;
	list-style: none;
}
#payment ul.payment_methods li {
	background: var(--night) !important;
	border: 1px solid var(--rule) !important;
	margin: 0 0 8px !important;
	padding: 14px 16px !important;
}
#payment ul.payment_methods li:hover {
	border-color: var(--candle) !important;
}
#payment ul.payment_methods li input[type="radio"] {
	margin-right: 10px !important;
	accent-color: var(--candle);
}
#payment ul.payment_methods li label {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--parchment) !important;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
#payment ul.payment_methods li img {
	max-height: 24px;
	margin: 0 0 0 6px;
}
#payment ul.payment_methods li .payment_box {
	background: var(--night-soft) !important;
	color: var(--parchment-dim) !important;
	font-family: 'EB Garamond', serif;
	padding: 14px !important;
	margin-top: 14px !important;
	border: 1px solid var(--rule-soft) !important;
}
#payment ul.payment_methods li .payment_box::before {
	border-color: transparent transparent var(--night-soft) !important;
}


/* ─────────────── 11. Place Order button ─────────────── */

#place_order,
.woocommerce #place_order,
.woocommerce-checkout #place_order {
	display: block !important;
	width: 100% !important;
	margin-top: 16px !important;
	padding: 18px 20px !important;
	background: var(--candle) !important;
	color: var(--night) !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	border: 0 !important;
	border-radius: 0 !important;
	cursor: pointer;
	transition: background 0.2s;
	text-shadow: none !important;
	box-shadow: none !important;
}
#place_order:hover {
	background: #e6b56a !important;
}
#place_order:disabled,
#place_order.nb-disabled {
	background: var(--rule) !important;
	color: var(--parchment-dim) !important;
	cursor: not-allowed;
	pointer-events: none;
}


/* ─────────────── 12. Agreements (slot inside order_review) ─────────────── */

#order_review .nb-agreements {
	margin: 16px 0;
	padding: 18px 20px;
}


/* ─────────────── 13. Cart page (single column) ─────────────── */

body.woocommerce-cart .woocommerce {
	display: block !important;
	max-width: 760px !important;
}

body.woocommerce-cart .woocommerce > * {
	display: block;
	width: 100%;
}

.shop_table.cart {
	background: transparent !important;
	border: 0 !important;
	border-collapse: collapse;
	width: 100% !important;
	margin: 0 0 32px;
}
.shop_table.cart thead th {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--parchment-dim);
	background: transparent !important;
	padding: 12px 12px;
	border-bottom: 1px solid var(--rule);
	text-align: left;
}
.shop_table.cart tbody td {
	background: transparent !important;
	border-bottom: 1px solid var(--rule-soft) !important;
	padding: 16px 12px !important;
	color: var(--parchment);
	font-family: 'EB Garamond', serif;
	font-size: 16px;
	vertical-align: middle;
}
.shop_table.cart .product-thumbnail img {
	max-width: 70px;
	height: auto;
}
.shop_table.cart .product-name a {
	color: var(--parchment);
	text-decoration: none;
	font-style: italic;
	font-size: 17px;
}
.shop_table.cart .product-name a:hover {
	color: var(--candle);
}
.shop_table.cart .product-price,
.shop_table.cart .product-subtotal {
	color: var(--candle);
	font-family: 'Cinzel', serif;
	font-weight: 500;
	font-size: 16px;
}
.shop_table.cart .product-quantity input.qty {
	width: 64px;
	text-align: center;
}
.shop_table.cart .product-remove a {
	color: var(--wine);
	font-size: 22px;
	text-decoration: none;
}
.shop_table.cart .product-remove a:hover {
	color: var(--candle);
}

.cart-collaterals {
	margin-top: 32px !important;
	width: 100% !important;
}
.cart-collaterals .cart_totals {
	background: var(--night-soft);
	border: 1px solid var(--rule);
	padding: 28px;
	width: 100% !important;
}
.cart_totals h2 {
	margin: 0 0 18px !important;
	font-size: 1.3rem !important;
	padding-bottom: 12px !important;
}
.cart_totals .shop_table {
	background: transparent !important;
	border: 0 !important;
	width: 100%;
}
.cart_totals .shop_table th,
.cart_totals .shop_table td {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rule-soft) !important;
	padding: 10px 0 !important;
	font-family: 'EB Garamond', serif;
	color: var(--parchment);
	font-size: 16px;
}
.cart_totals .shop_table th {
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 11px !important;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--parchment-dim);
}
.cart_totals .order-total td .amount,
.cart_totals .order-total th {
	font-family: 'Cinzel', serif !important;
	font-size: 22px !important;
	color: var(--candle) !important;
}

.woocommerce-cart .actions .button,
.woocommerce-cart .actions .checkout-button,
.wc-proceed-to-checkout a.checkout-button {
	display: block !important;
	width: 100% !important;
	padding: 16px 20px !important;
	background: var(--candle) !important;
	color: var(--night) !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 16px 0 0 !important;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
}
.wc-proceed-to-checkout a.checkout-button:hover {
	background: #e6b56a !important;
}

.woocommerce-cart .actions .coupon {
	display: flex;
	gap: 8px;
	align-items: stretch;
	margin-bottom: 16px;
}
.woocommerce-cart .actions .coupon input.input-text {
	flex: 1;
}
.woocommerce-cart .actions .coupon button {
	font-family: 'Cinzel', serif !important;
	font-weight: 500 !important;
	font-size: 11px !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	background: transparent !important;
	color: var(--candle) !important;
	border: 1px solid var(--candle) !important;
	border-radius: 0 !important;
	padding: 0 18px !important;
	cursor: pointer;
	white-space: nowrap;
}
.woocommerce-cart .actions .coupon button:hover {
	background: var(--candle) !important;
	color: var(--night) !important;
}

.woocommerce-cart .return-to-shop a,
.woocommerce-cart .actions button[name="update_cart"] {
	background: transparent !important;
	color: var(--candle) !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 500 !important;
	font-size: 11px !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	border: 1px solid var(--rule) !important;
	border-radius: 0 !important;
	padding: 12px 18px !important;
	margin: 0 !important;
	cursor: pointer;
	text-decoration: none;
}
.woocommerce-cart .actions button[name="update_cart"]:hover,
.woocommerce-cart .return-to-shop a:hover {
	border-color: var(--candle) !important;
	background: rgba(212, 160, 86, 0.08) !important;
}

@media (max-width: 600px) {
	.shop_table.cart thead {
		display: none;
	}
	.shop_table.cart, .shop_table.cart tbody, .shop_table.cart tr, .shop_table.cart td {
		display: block;
		width: 100%;
	}
	.shop_table.cart tbody td {
		border: 0 !important;
		padding: 6px 0 !important;
	}
	.shop_table.cart tr.cart_item {
		border-bottom: 1px solid var(--rule);
		padding: 16px 0;
	}
}
/* ============================================================
 * Phase 7.5 — Checkout fixes
 * Append to assets/css/woo-checkout.css
 * ============================================================ */


/* ─── Coupon banner: hide WC's overlapping ⓘ icon ─── */

.woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-form-login-toggle .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-cart .woocommerce-info::before {
	display: none !important;
	content: none !important;
}

/* And restore proper padding now that the icon's gone */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
	padding-left: 18px !important;
}


/* ─── Express pay safety-net CSS (in case JS is disabled) ─── */

body.woocommerce-cart .p-ApplePayButton,
body.woocommerce-cart .p-GooglePayButton,
body.woocommerce-checkout .p-ApplePayButton,
body.woocommerce-checkout .p-GooglePayButton,
body.woocommerce-cart [aria-label="Apple Pay"],
body.woocommerce-cart [aria-label="Google Pay"],
body.woocommerce-checkout [aria-label="Apple Pay"],
body.woocommerce-checkout [aria-label="Google Pay"] {
	/* hidden via inc/express-pay-gate.php conditionally — these rules are
	   the safety net if the gate's wp_head style block fails to inject */
}


/* ─── Hide "added to cart" message on checkout page (retreat already redirects) ─── */

body.woocommerce-checkout > .woocommerce-notices-wrapper .woocommerce-message[data-product-id],
body.woocommerce-checkout .woocommerce > .woocommerce-message {
	/* let standard messages through, but the retreat add-to-cart message
	   is suppressed via the wc_add_to_cart_message_html filter in
	   inc/woocommerce-customizations.php */
}


/* === BEGIN nb-cart-header-and-dietary === */
/* Phase 9.6: editorial page header for cart/account/order-received,
 * the new Dietary Needs checkout section, and a polish pass on the
 * Proceed to Checkout button so it reads as a button, not a link. */

.nb-woo-page-header {
	max-width: 760px;
	margin: 0 auto;
	padding: 12px 0 28px;
	border-bottom: 1px solid var(--rule);
	margin-bottom: 36px;
	text-align: left;
}
.nb-woo-page-header .eyebrow {
	display: block;
	font-family: 'Cinzel', serif;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--candle);
	margin-bottom: 8px;
}
.nb-woo-page-title {
	font-family: 'EB Garamond', serif;
	font-style: italic;
	font-weight: 400;
	font-size: clamp(38px, 6vw, 52px);
	line-height: 1.05;
	color: var(--parchment);
	margin: 0;
}

/* Account pages use a wider container, so the header should breathe wider too. */
body.woocommerce-account .nb-woo-page-header {
	max-width: 1320px;
	padding-left: 0;
	padding-right: 0;
}

@media (max-width: 700px) {
	.nb-woo-page-header {
		padding: 8px 0 22px;
		margin-bottom: 28px;
	}
}


/* ─────────────── Dietary needs at checkout ─────────────── */

.nb-dietary-needs {
	margin-top: 32px;
	padding: 28px clamp(20px, 4vw, 32px);
	background: var(--night-soft);
	border: 1px solid var(--rule);
}
.nb-dietary-heading {
	margin-bottom: 18px;
}
.nb-dietary-heading .eyebrow {
	display: block;
	font-family: 'Cinzel', serif;
	font-weight: 500;
	font-size: 10px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--candle);
	margin-bottom: 8px;
}
.nb-dietary-title {
	font-family: 'EB Garamond', serif;
	font-style: italic;
	font-weight: 400;
	font-size: 24px;
	line-height: 1.2;
	color: var(--parchment);
	margin: 0 0 8px;
}
.nb-dietary-intro {
	font-family: 'EB Garamond', serif;
	font-size: 14px;
	line-height: 1.5;
	color: var(--parchment-dim);
	margin: 0;
}
.nb-dietary-field {
	margin: 0;
}
.nb-dietary-field label {
	display: block;
	font-family: 'Cinzel', serif !important;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--parchment-dim) !important;
	margin-bottom: 8px;
}
.nb-dietary-textarea {
	width: 100%;
	min-height: 80px;
	padding: 12px 14px;
	background: var(--night) !important;
	border: 1px solid var(--rule) !important;
	color: var(--parchment) !important;
	font-family: 'EB Garamond', serif;
	font-size: 15px;
	line-height: 1.5;
	resize: vertical;
	box-sizing: border-box;
}
.nb-dietary-textarea:focus {
	border-color: var(--candle) !important;
	outline: none;
}
.nb-dietary-instructions {
	display: block;
	margin-top: 8px;
	font-family: 'EB Garamond', serif;
	font-style: italic;
	font-size: 13px;
	line-height: 1.5;
	color: var(--parchment-dim);
}


/* ─────────────── Proceed to Checkout button polish ─────────────── */
/* Catch every WC variant of the button selector — some installs render it
 * as <a>, others as <button>, sometimes inside .wc-proceed-to-checkout,
 * sometimes inside .actions. */

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout button.checkout-button,
.woocommerce-cart a.checkout-button.alt,
.woocommerce-cart button.checkout-button.alt,
.woocommerce-cart .wc-proceed-to-checkout .button {
	display: block !important;
	width: 100% !important;
	padding: 16px 22px !important;
	background: var(--candle) !important;
	color: var(--night) !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 18px 0 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.2s ease;
	box-shadow: 0 4px 12px rgba(212, 160, 86, 0.18);
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout button.checkout-button:hover,
.woocommerce-cart a.checkout-button.alt:hover,
.woocommerce-cart button.checkout-button.alt:hover,
.woocommerce-cart .wc-proceed-to-checkout .button:hover {
	background: var(--candle-bright, #e6b56a) !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(212, 160, 86, 0.28);
}

/* === END nb-cart-header-and-dietary === */


/* === BEGIN nb-block-cart-button === */
/* Phase 9.6.1: WC 10+ defaults to the Block Cart, which renders the
 * Proceed to Checkout as <button class="wc-block-cart__submit-button">
 * inside .wp-block-woocommerce-proceed-to-checkout-block. The classic
 * .checkout-button selectors miss it entirely.
 *
 * If the user later switches the Cart page to the [woocommerce_cart]
 * shortcode, the existing classic selectors take over and these rules
 * become inert. */

body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-cart__submit-container button,
body.woocommerce-cart .wc-block-cart__submit-container a,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block button,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block .wp-block-button__link,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block a {
	display: block !important;
	width: 100% !important;
	padding: 16px 22px !important;
	background: var(--candle) !important;
	color: var(--night) !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: 0 4px 12px rgba(212, 160, 86, 0.18) !important;
	margin: 18px 0 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, transform 0.2s ease !important;
	opacity: 1 !important;
}
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart__submit-container button:hover,
body.woocommerce-cart .wc-block-cart__submit-container a:hover,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block button:hover,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block .wp-block-button__link:hover,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block a:hover {
	background: var(--candle-bright, #e6b56a) !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(212, 160, 86, 0.28) !important;
}

/* Inner text wrapper — Block buttons nest a span. */
body.woocommerce-cart .wc-block-cart__submit-button .wc-block-components-button__text,
body.woocommerce-cart .wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button__text {
	color: var(--night) !important;
	font-family: 'Cinzel', serif !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
}
/* === END nb-block-cart-button === */


/* === BEGIN nb-cart-rewrite === */
/* Phase 9.7.3 — cart layout, notice theming, retreat price breakdown. */


/* ── Form/parent width: ensure full reach to cart card edges ──────── */

form.woocommerce-cart-form,
body.woocommerce-cart form.woocommerce-cart-form {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}


/* ── Line items: kill WC's auto-labels first, then opt in ─────────── */

.shop_table.cart tr td::before {
	content: none !important;
	display: none !important;
	float: none !important;
}

.shop_table.cart tr td.product-price::before,
.shop_table.cart tr td.product-quantity::before,
.shop_table.cart tr td.product-subtotal::before {
	content: attr(data-title) !important;
	display: block !important;
	float: none !important;
	margin: 0 0 4px !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 500 !important;
	font-size: 10px !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--parchment-dim) !important;
	text-align: left !important;
}


/* ── Card layout ───────────────────────────────────────────────────── */

.shop_table.cart {
	background: transparent !important;
	border: 0 !important;
	width: 100% !important;
	margin: 0 0 24px !important;
}
.shop_table.cart thead {
	display: none !important;
}
.shop_table.cart tbody,
.shop_table.cart tr {
	display: block !important;
	width: 100% !important;
}

.shop_table.cart tr.cart_item {
	display: grid !important;
	grid-template-columns: 100px 1fr;
	grid-template-areas:
		"thumb name"
		"price price"
		"qty   qty"
		"sub   sub";
	column-gap: 22px;
	row-gap: 14px;
	align-items: start;
	position: relative !important;
	margin: 0 0 16px !important;
	padding: 28px 32px !important;
	background: var(--night-soft) !important;
	border: 1px solid var(--rule) !important;
	box-sizing: border-box !important;
}
.shop_table.cart tr.cart_item td {
	display: block !important;
	width: auto !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	text-align: left !important;
}

.shop_table.cart tr.cart_item .product-thumbnail { grid-area: thumb; }
.shop_table.cart tr.cart_item .product-name      { grid-area: name; align-self: center; }
.shop_table.cart tr.cart_item .product-price     { grid-area: price; }
.shop_table.cart tr.cart_item .product-quantity  { grid-area: qty; }
.shop_table.cart tr.cart_item .product-subtotal  { grid-area: sub; }

.shop_table.cart .product-remove {
	position: absolute !important;
	top: 14px !important;
	right: 18px !important;
	width: auto !important;
}
.shop_table.cart .product-remove a {
	color: var(--wine);
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
}
.shop_table.cart .product-remove a:hover { color: var(--candle); }

.shop_table.cart .product-thumbnail img {
	width: 100px !important;
	max-width: 100px !important;
	height: auto !important;
	display: block;
}

.shop_table.cart .product-name {
	padding-right: 24px !important;
	font-family: 'EB Garamond', serif !important;
	font-style: italic !important;
	font-size: 18px !important;
	line-height: 1.4 !important;
	color: var(--parchment) !important;
}
.shop_table.cart .product-name a {
	color: var(--parchment) !important;
	text-decoration: none !important;
	font-style: italic !important;
}
.shop_table.cart .product-name a:hover { color: var(--candle) !important; }
.shop_table.cart .product-name dl.variation {
	font-style: normal;
	font-family: 'EB Garamond', serif;
	font-size: 14px;
	color: var(--parchment-dim);
	margin: 6px 0 0;
}

.shop_table.cart .product-price,
.shop_table.cart .product-quantity,
.shop_table.cart .product-subtotal {
	padding: 14px 0 0 !important;
	border-top: 1px solid var(--rule-soft) !important;
	font-family: 'EB Garamond', serif !important;
	font-size: 15px !important;
	line-height: 1.55 !important;
	color: var(--parchment) !important;
}
.shop_table.cart .product-price,
.shop_table.cart .product-subtotal {
	color: var(--candle) !important;
}

/* Hide quantity cell on retreat orders — PHP filter wraps the qty in
 * .nb-cart-qty-hidden; CSS hides the whole cell when present. */
.shop_table.cart .product-quantity:has(.nb-cart-qty-hidden) {
	display: none !important;
}
.shop_table.cart .product-quantity input.qty {
	width: 64px !important;
	text-align: center !important;
}

/* Retreat price breakdown — 3 lines stacked */
.shop_table.cart .nb-cart-price-breakdown {
	display: block;
}
.shop_table.cart .nb-cart-price-line {
	display: block;
	line-height: 1.5;
}
.shop_table.cart .nb-cart-price-line + .nb-cart-price-line {
	margin-top: 4px;
}
.shop_table.cart .nb-cart-subtotal-today {
	display: block;
	font-weight: 500;
}


/* ── Actions row: full-width vertical stack ───────────────────────── */

.shop_table.cart tr td.actions {
	display: block !important;
	width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	padding: 8px 0 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}

.woocommerce-cart .actions .coupon {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.woocommerce-cart .actions .coupon label[for="coupon_code"],
.woocommerce-cart .actions .coupon > label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Coupon input: full edge-to-edge with the cart card */
.woocommerce-cart .actions .coupon input.input-text,
body.woocommerce-cart input#coupon_code,
body.woocommerce-cart .actions .coupon #coupon_code {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: none !important;
	margin: 0 0 10px !important;
	font-family: 'EB Garamond', serif !important;
	font-size: 15px !important;
	color: var(--parchment) !important;
	background: var(--night-soft) !important;
	border: 1px solid var(--rule) !important;
	border-radius: 0 !important;
	padding: 12px 14px !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	height: auto !important;
	box-sizing: border-box !important;
}
.woocommerce-cart .actions .coupon input.input-text:focus,
body.woocommerce-cart input#coupon_code:focus {
	border-color: var(--candle) !important;
	background: var(--night) !important;
	outline: none !important;
}
.woocommerce-cart .actions .coupon input.input-text::placeholder {
	color: var(--muted) !important;
}

.woocommerce-cart .actions .coupon button[name="apply_coupon"],
.woocommerce-cart .actions .coupon button {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 12px 18px !important;
	background: transparent !important;
	color: var(--candle) !important;
	border: 1px solid var(--candle) !important;
	border-radius: 0 !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 500 !important;
	font-size: 11px !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	white-space: nowrap;
	transition: background 0.2s, color 0.2s;
}
.woocommerce-cart .actions .coupon button[name="apply_coupon"]:hover,
.woocommerce-cart .actions .coupon button:hover {
	background: var(--candle) !important;
	color: var(--night) !important;
}

.woocommerce-cart .actions button[name="update_cart"] {
	display: block !important;
	width: 100% !important;
	margin: 12px 0 0 !important;
	padding: 12px 18px !important;
	background: transparent !important;
	color: var(--candle) !important;
	border: 1px solid var(--rule) !important;
	border-radius: 0 !important;
	font-family: 'Cinzel', serif !important;
	font-weight: 500 !important;
	font-size: 11px !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: border-color 0.2s, background 0.2s;
}
.woocommerce-cart .actions button[name="update_cart"]:hover {
	border-color: var(--candle) !important;
	background: rgba(212, 160, 86, 0.05) !important;
}


/* ── WC notices: dark-theme + kill blue border + kill focus ring ───── */

.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-info,
.woocommerce-NoticeGroup .woocommerce-message,
ul.woocommerce-info,
ul.woocommerce-message,
ul.woocommerce-error {
	padding: 14px 18px !important;
	border: 1px solid var(--rule) !important;
	border-top: 1px solid var(--rule) !important;
	border-radius: 0 !important;
	background: var(--night-soft) !important;
	color: var(--parchment) !important;
	font-family: 'EB Garamond', serif !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	margin: 0 0 16px !important;
	list-style: none !important;
	box-shadow: none !important;
	outline: 0 !important;
}

/* Kill the focus ring (browser default + WC) — that's CJ's "blue box" */
.woocommerce-info:focus,
.woocommerce-message:focus,
.woocommerce-error:focus,
.woocommerce-info:focus-visible,
.woocommerce-message:focus-visible,
.woocommerce-error:focus-visible,
.woocommerce-info[tabindex],
.woocommerce-message[tabindex],
.woocommerce-error[tabindex],
.woocommerce-info[tabindex]:focus,
.woocommerce-message[tabindex]:focus,
.woocommerce-error[tabindex]:focus {
	outline: 0 !important;
	box-shadow: none !important;
	border-color: var(--rule) !important;
}

/* Kill the WC icon ::before that overlaps the message text */
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info > li::before,
.woocommerce-message > li::before,
.woocommerce-error > li::before {
	content: none !important;
	display: none !important;
}

/* Type accents (left-border color) */
.woocommerce-error,
ul.woocommerce-error {
	border-left: 3px solid var(--wine) !important;
}
.woocommerce-message,
ul.woocommerce-message {
	border-left: 3px solid var(--candle) !important;
}
.woocommerce-info {
	border-left: 3px solid var(--rule) !important;
}

.woocommerce-info a,
.woocommerce-message a,
.woocommerce-error a {
	color: var(--candle) !important;
	text-decoration: underline;
}
.woocommerce-info a:hover,
.woocommerce-message a:hover,
.woocommerce-error a:hover {
	color: var(--candle-bright, #e6b56a) !important;
}

.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.woocommerce-info .button,
.woocommerce-message .button {
	margin-left: 12px !important;
}

/* === END nb-cart-rewrite === */
