/* Cart, checkout and order received. Loaded only on is_cart() / is_checkout(), after shop.css (inc/product.php).
   WooCommerce's own stylesheets are switched off (inc/woocommerce.php), so the shortcode markup is styled here. Mobile first. */

/* Use the full container. .entry-content caps reading pages at 70ch, which squeezed the cart and checkout into 790px. */
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content { max-width: none; }
.woocommerce-notices-wrapper:empty { display: none; }
/* main.css boxes every .entry-content table cell; here rows are separated by top lines only. */
.woocommerce-cart .entry-content th, .woocommerce-cart .entry-content td,
.woocommerce-checkout .entry-content th, .woocommerce-checkout .entry-content td { border-right: 0; border-bottom: 0; border-left: 0; }

/* Shared bits */
.woocommerce-cart input[type="checkbox"], .woocommerce-cart input[type="radio"],
.woocommerce-checkout input[type="checkbox"], .woocommerce-checkout input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--nhi-ink); vertical-align: -3px; }
.woocommerce-cart .required, .woocommerce-checkout .required { color: #b3261e; border: 0; text-decoration: none; }
.woocommerce-checkout .optional { color: var(--nhi-muted); font-weight: var(--nhi-weight-body); }
.woocommerce-cart dl.variation, .woocommerce-checkout dl.variation {
	display: grid; grid-template-columns: auto 1fr; gap: 0 .4em; margin: var(--nhi-space-1) 0 0;
	font-size: var(--nhi-step--1); font-weight: var(--nhi-weight-body); color: var(--nhi-muted);
}
.woocommerce-cart dl.variation dt, .woocommerce-checkout dl.variation dt { font-weight: var(--nhi-weight-strong); }
.woocommerce-cart dl.variation dd, .woocommerce-checkout dl.variation dd { margin: 0; }
.woocommerce-cart dl.variation p, .woocommerce-checkout dl.variation p { margin: 0; }
.nhi-cart-help { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nhi-space-2) var(--nhi-space-3); margin: var(--nhi-space-4) 0 0; font-size: var(--nhi-step--1); color: var(--nhi-muted); }
.nhi-cart-help > span { white-space: nowrap; }
.nhi-cart-help .nhi-btn { flex: none; }

/* Totals tables (cart totals and checkout order review) */
.woocommerce .cart_totals table.shop_table,
.woocommerce-checkout #order_review table.shop_table { margin: 0 0 var(--nhi-space-5); border: 0; border-radius: 0; background: transparent; }
.woocommerce .cart_totals table.shop_table th, .woocommerce .cart_totals table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td {
	padding: var(--nhi-space-3) 0; border-top: 1px solid var(--nhi-line); vertical-align: baseline; background: transparent;
}
.woocommerce .cart_totals table.shop_table tr:first-child > *,
.woocommerce-checkout #order_review table.shop_table thead th { border-top: 0; }
.woocommerce .cart_totals table.shop_table th,
.woocommerce-checkout #order_review table.shop_table tfoot th { padding-right: var(--nhi-space-4); font-size: var(--nhi-step--1); font-weight: var(--nhi-weight-strong); color: var(--nhi-muted); text-align: left; }
.woocommerce .cart_totals table.shop_table td,
.woocommerce-checkout #order_review table.shop_table .product-total,
.woocommerce-checkout #order_review table.shop_table tfoot td { text-align: right; }
.woocommerce .cart_totals .order-total th, .woocommerce .cart_totals .order-total td,
.woocommerce-checkout #order_review .order-total th, .woocommerce-checkout #order_review .order-total td {
	padding-top: var(--nhi-space-4); border-top: 2px solid var(--nhi-ink); font-size: var(--nhi-step-1); font-weight: var(--nhi-weight-head); color: var(--nhi-ink);
}
.woocommerce .cart_totals .order-total small, .woocommerce-checkout #order_review .order-total small { display: block; font-size: var(--nhi-step--1); font-weight: var(--nhi-weight-body); color: var(--nhi-muted); }
.woocommerce-shipping-methods, #shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-shipping-methods li, #shipping_method li { margin: 0 0 var(--nhi-space-1); }
.woocommerce-shipping-methods li label, #shipping_method li label { font-weight: var(--nhi-weight-strong); }
.woocommerce-shipping-methods li input, #shipping_method li input { margin-right: .4em; }
.woocommerce-shipping-destination { margin: var(--nhi-space-2) 0 0; font-size: var(--nhi-step--1); color: var(--nhi-muted); }
.woocommerce-shipping-calculator { margin: var(--nhi-space-1) 0 0; font-size: var(--nhi-step--1); }
.woocommerce-shipping-calculator .shipping-calculator-form { margin-top: var(--nhi-space-3); text-align: left; }
.woocommerce-shipping-calculator .form-row { margin-bottom: var(--nhi-space-3); }

/* ------------------------------------------------------------------ Cart */
.woocommerce-cart .entry-content > .woocommerce { display: grid; gap: var(--nhi-space-5); }
.woocommerce-cart .entry-content > .woocommerce > * { min-width: 0; margin: 0; }
.woocommerce-cart table.cart { margin: 0; border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius); border-collapse: separate; border-spacing: 0; background: var(--nhi-paper); }
.woocommerce-cart table.cart thead th { padding: var(--nhi-space-3) var(--nhi-space-4); border-top: 0; font-size: var(--nhi-step--1); font-weight: var(--nhi-weight-strong); letter-spacing: .04em; text-transform: uppercase; color: var(--nhi-muted); }
.woocommerce-cart table.cart thead th:first-child { border-top-left-radius: var(--nhi-radius); }
.woocommerce-cart table.cart thead th:last-child { border-top-right-radius: var(--nhi-radius); }
.woocommerce-cart table.cart td { padding: var(--nhi-space-4); }
.woocommerce-cart table.cart td.product-thumbnail { width: 72px; }
.woocommerce-cart table.cart .product-thumbnail img { display: block; width: 72px; max-width: none; height: 72px; object-fit: contain; background: var(--nhi-cream); border-radius: var(--nhi-radius-sm); }
.site table.cart .product-name a, .site table.cart .product-name a:visited { color: var(--nhi-ink); font-weight: var(--nhi-weight-strong); text-decoration: none; }
.site table.cart .product-name a:hover { color: var(--nhi-gold-ink); text-decoration: underline; }
.woocommerce-cart table.cart .product-subtotal { font-weight: var(--nhi-weight-head); }
.site table.cart a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
	border: 1px solid var(--nhi-line); border-radius: 50%; color: var(--nhi-muted); font-size: 1.25rem; line-height: 1; text-decoration: none;
}
.site table.cart a.remove:hover, .site table.cart a.remove:focus { border-color: #b3261e; color: #b3261e; background: #fbeceb; }
.woocommerce-cart table.cart .quantity .qty { width: 4.5rem; min-height: 44px; padding: .4em; }
.woocommerce-cart table.cart td.actions { padding: var(--nhi-space-4); border-top: 1px solid var(--nhi-line); }
.woocommerce-cart table.cart td.actions::after { content: ""; display: table; clear: both; }
.woocommerce-cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--nhi-space-2); }
.woocommerce-cart td.actions .coupon .input-text { flex: 1 1 10rem; min-width: 0; max-width: 18rem; min-height: 44px; margin: 0; }
.woocommerce-cart td.actions .button { min-height: 44px; padding: .7em 1.3em; font-size: var(--nhi-step--1); }
.woocommerce-cart td.actions button[name="update_cart"] { background: transparent; color: var(--nhi-ink); box-shadow: inset 0 0 0 1.5px var(--nhi-ink); }
.woocommerce-cart td.actions button[name="update_cart"]:hover { background: var(--nhi-ink); color: var(--nhi-paper); }
.woocommerce-cart td.actions button[name="update_cart"]:disabled { opacity: .4; cursor: not-allowed; background: transparent; color: var(--nhi-ink); }

.woocommerce .cart-collaterals { width: 100%; }
.woocommerce .cart-collaterals .cart_totals {
	float: none; width: 100%; max-width: none; margin: 0; padding: var(--nhi-space-5);
	background: var(--nhi-cream); border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius);
}
.woocommerce .cart-collaterals .cart_totals h2 { margin: 0 0 var(--nhi-space-3); font-size: var(--nhi-step-1); }
.woocommerce .wc-proceed-to-checkout { margin: 0; padding: 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; padding: 1em; box-sizing: border-box; text-align: center; font-size: var(--nhi-step-0); }
.woocommerce .cart-collaterals .cross-sells ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (min-width: 48em) {
	.woocommerce-cart td.actions .coupon { float: left; }
	.woocommerce-cart td.actions > .button { float: right; }
}

@media (min-width: 64em) {
	.woocommerce-cart .entry-content > .woocommerce:has(> .woocommerce-cart-form) { grid-template-columns: minmax(0, 1fr) 24rem; gap: var(--nhi-space-6); align-items: start; }
	.woocommerce-cart .entry-content > .woocommerce > :not(.woocommerce-cart-form):not(.cart-collaterals) { grid-column: 1 / -1; }
}

/* Phones: each cart line is a card (thumbnail, name, remove / price / quantity, subtotal). */
@media (max-width: 47.99em) {
	.woocommerce-cart table.cart, .woocommerce-cart table.cart tbody { display: block; border: 0; background: transparent; }
	.woocommerce-cart table.cart tr.cart_item {
		display: grid; grid-template-columns: 72px minmax(0, 1fr) auto;
		grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub";
		gap: var(--nhi-space-2) var(--nhi-space-3); align-items: center;
		margin: 0 0 var(--nhi-space-3); padding: var(--nhi-space-4);
		border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius); background: var(--nhi-paper);
	}
	.woocommerce-cart table.cart tr.cart_item td { display: block; padding: 0; border: 0; text-align: left; }
	.woocommerce-cart table.cart tr.cart_item td::before { display: none; }
	.woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; align-self: start; }
	.woocommerce-cart table.cart td.product-name { grid-area: name; }
	.woocommerce-cart table.cart td.product-remove { grid-area: remove; align-self: start; }
	.woocommerce-cart table.cart td.product-price { grid-area: price; font-size: var(--nhi-step--1); color: var(--nhi-muted); }
	.woocommerce-cart table.cart tr.cart_item td.product-price::before { content: attr(data-title) ": "; display: inline; float: none; }
	.woocommerce-cart table.cart td.product-quantity { grid-area: qty; }
	.woocommerce-cart table.cart td.product-subtotal { grid-area: sub; text-align: right; }
	.woocommerce-cart table.cart tr:not(.cart_item) { display: block; }
	.woocommerce-cart table.cart td.actions { display: block; padding: 0; border: 0; }
	.woocommerce-cart td.actions .coupon .input-text { max-width: none; }
	.woocommerce-cart td.actions .coupon .button { flex: none; }
	.woocommerce-cart td.actions > .button { display: block; width: 100%; margin-top: var(--nhi-space-3); }
	.woocommerce .cart-collaterals .cart_totals { padding: var(--nhi-space-4); }
	.woocommerce .cart_totals table.shop_table_responsive tr td::before { font-weight: var(--nhi-weight-strong); color: var(--nhi-muted); font-size: var(--nhi-step--1); }
}

/* -------------------------------------------------------------- Checkout */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: var(--nhi-space-4); }
.woocommerce-checkout form.checkout_coupon,
.woocommerce-checkout form.woocommerce-form-login { margin: 0 0 var(--nhi-space-5); padding: var(--nhi-space-4); border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius); }
.woocommerce-checkout form.checkout_coupon p { margin: 0 0 var(--nhi-space-3); }
.woocommerce-checkout form.checkout_coupon .form-row-first,
.woocommerce-checkout form.checkout_coupon .form-row-last { display: inline-block; width: auto; margin: 0 var(--nhi-space-2) 0 0; vertical-align: bottom; }
.woocommerce-checkout form.checkout_coupon .clear { display: none; }

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float: none; width: auto; }
.woocommerce-checkout .col2-set .col-2 { margin-top: var(--nhi-space-5); }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3, .woocommerce-checkout #order_review_heading { margin: 0 0 var(--nhi-space-4); font-size: var(--nhi-step-1); }
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--nhi-space-4); }
.woocommerce-checkout form .form-row,
.woocommerce-checkout .col2-set .form-row-first,
.woocommerce-checkout .col2-set .form-row-last { grid-column: 1 / -1; float: none; width: auto; margin: 0 0 var(--nhi-space-4); }
@media (min-width: 30em) {
	.woocommerce-checkout .col2-set .form-row-first { grid-column: 1; }
	.woocommerce-checkout .col2-set .form-row-last { grid-column: 2; }
}
.woocommerce-checkout form .form-row textarea { min-height: 7em; resize: vertical; }
.woocommerce-checkout #ship-to-different-address { margin: 0 0 var(--nhi-space-4); font-size: var(--nhi-step-0); }
.woocommerce-checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: var(--nhi-space-2); margin: 0; font-size: inherit; cursor: pointer; }
.woocommerce form .form-row.woocommerce-invalid .select2-container--default .select2-selection--single { border-color: #b3261e; }

/* Country / state dropdowns (select2 / selectWoo): match the text inputs. */
.woocommerce form .form-row .select2-container { width: 100% !important; }
.select2-container--default .select2-selection--single {
	height: 48px; border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius-sm); background: var(--nhi-paper);
}
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 2.5em 0 1em; line-height: 46px; color: var(--nhi-ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; right: .6em; height: 46px; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single { border-color: var(--nhi-gold); outline: 2px solid var(--nhi-gold); outline-offset: 1px; }
.select2-dropdown { border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius-sm); box-shadow: var(--nhi-shadow); font-family: var(--nhi-font); font-size: var(--nhi-step--1); overflow: hidden; }
.select2-search--dropdown { padding: var(--nhi-space-2); }
.select2-container--default .select2-search--dropdown .select2-search__field { min-height: 40px; padding: .4em .75em; border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius-sm); font: inherit; }
.select2-results__option { padding: .55em 1em; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--nhi-ink); color: var(--nhi-paper); }
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] { background: var(--nhi-cream); color: var(--nhi-ink); }

/* Order review card */
.woocommerce-checkout #order_review { padding: var(--nhi-space-5); background: var(--nhi-cream); border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius); }
.woocommerce-checkout #order_review table.shop_table thead th { padding-top: 0; font-size: var(--nhi-step--1); font-weight: var(--nhi-weight-strong); letter-spacing: .04em; text-transform: uppercase; color: var(--nhi-muted); }
.woocommerce-checkout #order_review table.shop_table thead .product-total { text-align: right; }
.woocommerce-checkout #order_review .product-name { width: 100%; padding-right: var(--nhi-space-4); font-weight: var(--nhi-weight-strong); }
.woocommerce-checkout #order_review .product-quantity { font-weight: var(--nhi-weight-body); color: var(--nhi-muted); white-space: nowrap; }
.woocommerce-checkout #order_review .product-total,
.woocommerce-checkout #order_review tfoot td { white-space: nowrap; }

/* Payment */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { margin: 0 0 var(--nhi-space-4); padding: 0; border: 0; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0 0 var(--nhi-space-2); padding: var(--nhi-space-3) var(--nhi-space-4);
	background: var(--nhi-paper); border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius-sm); line-height: 1.5;
}
.woocommerce-checkout #payment ul.payment_methods li > label { display: inline; margin-left: var(--nhi-space-2); font-weight: var(--nhi-weight-strong); cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li img { display: inline-block; max-height: 1.5em; margin-left: var(--nhi-space-2); vertical-align: middle; }
.woocommerce-checkout #payment div.payment_box { margin: var(--nhi-space-3) 0 0; padding: 0; background: transparent; font-size: var(--nhi-step--1); color: var(--nhi-ink-3); }
.woocommerce-checkout #payment div.payment_box p { margin: 0 0 var(--nhi-space-2); }
.woocommerce-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment .form-row.place-order { margin: 0; padding: 0; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .woocommerce-privacy-policy-text { margin: 0 0 var(--nhi-space-4); font-size: var(--nhi-step--1); color: var(--nhi-muted); }
.woocommerce-checkout .woocommerce-privacy-policy-text p { margin: 0; }
.woocommerce-checkout #payment #place_order { display: block; width: 100%; padding: 1em; font-size: var(--nhi-step-0); }

@media (max-width: 47.99em) {
	.woocommerce-checkout #order_review { padding: var(--nhi-space-4); }
}

/* Two columns on wide screens: details on the left, the order beside them from the top. */
@media (min-width: 64em) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-rows: auto auto 1fr; gap: 0 var(--nhi-space-7); align-items: start; }
	.woocommerce-checkout form.checkout > * { min-width: 0; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; }
	.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 2 / span 2; }
	.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 2; }
	.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 3; }
}

/* ---------------------------------------------------------- Order received */
.woocommerce-order .woocommerce-thankyou-order-received { margin: 0 0 var(--nhi-space-5); font-size: var(--nhi-step-1); font-weight: var(--nhi-weight-strong); }
.woocommerce-order ul.woocommerce-order-overview {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: var(--nhi-space-4);
	margin: 0 0 var(--nhi-space-6); padding: var(--nhi-space-5); list-style: none; background: var(--nhi-cream); border-radius: var(--nhi-radius);
}
.woocommerce-order ul.woocommerce-order-overview li { margin: 0; font-size: var(--nhi-step--1); color: var(--nhi-muted); }
.woocommerce-order ul.woocommerce-order-overview li strong { display: block; margin-top: var(--nhi-space-1); font-size: var(--nhi-step-0); color: var(--nhi-ink); }
.woocommerce-order .woocommerce-bacs-bank-details { margin: 0 0 var(--nhi-space-6); }
.woocommerce-order ul.wc-bacs-bank-details {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--nhi-space-4);
	margin: 0 0 var(--nhi-space-4); padding: var(--nhi-space-5); list-style: none; border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius);
}
.woocommerce-order ul.wc-bacs-bank-details li { margin: 0; font-size: var(--nhi-step--1); color: var(--nhi-muted); }
.woocommerce-order ul.wc-bacs-bank-details li strong { display: block; margin-top: var(--nhi-space-1); font-size: var(--nhi-step-0); color: var(--nhi-ink); word-break: break-word; }
.woocommerce-order .woocommerce-order-details table.shop_table td,
.woocommerce-order .woocommerce-order-details table.shop_table tfoot th { vertical-align: top; }
.woocommerce-order .woocommerce-order-details table.shop_table tfoot td { text-align: right; }
.woocommerce-order .woocommerce-customer-details address { padding: var(--nhi-space-4); border: 1px solid var(--nhi-line); border-radius: var(--nhi-radius); font-style: normal; line-height: 1.7; }
.woocommerce-order .woocommerce-customer-details .col2-set { display: grid; gap: var(--nhi-space-5); }
@media (min-width: 48em) {
	.woocommerce-order .woocommerce-customer-details .col2-set { grid-template-columns: 1fr 1fr; }
	.woocommerce-order .woocommerce-customer-details .col2-set .col-1, .woocommerce-order .woocommerce-customer-details .col2-set .col-2 { float: none; width: auto; }
}
