/* ============================================================
 *  HALDEN ROYAL — WooCommerce overrides
 *  PDP, archive, cart, checkout styles
 * ============================================================ */

/* ---------- Hide WooCommerce default messages styling ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	background: var(--c-gray-100);
	border-radius: var(--r-md);
	border: 1px solid var(--c-gray-300);
	padding: var(--s-4) var(--s-5);
	margin-bottom: var(--s-5);
	font-size: 0.875rem;
}
.woocommerce-error li { color: var(--c-error); }
.woocommerce-message::before { color: var(--c-success); }


/* ============================================================
 *  ARCHIVE / SHOP PAGE
 * ============================================================ */
.shop-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--s-6);
	flex-wrap: wrap;
	gap: var(--s-3);
}
.woocommerce-result-count {
	font-size: 0.875rem;
	color: var(--c-gray-700);
	margin: 0;
}
.woocommerce-ordering select {
	min-width: 220px;
	padding: 0.625rem 1rem;
	font-size: 0.875rem;
}

/* ============================================================
 *  SHOP PAGINATION
 *  Clean modern style — circular active page, hover effects
 * ============================================================ */
.woocommerce-pagination {
	margin: 64px 0 0;
	text-align: center;
	padding: 32px 0 0;
	border-top: 1px solid #EEEEEE;
}

/* Hide pagination wrapper if only one page (no real navigation) */
.woocommerce-pagination ul.page-numbers:not(:has(li:nth-child(2))),
.woocommerce-pagination:has(.page-numbers li:only-child) {
	display: none !important;
}
.woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	gap: 6px;
	list-style: none;
	padding: 0;
	margin: 0;
	align-items: center;
}
.woocommerce-pagination ul.page-numbers li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	background: transparent;
	border: 0;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	color: #1A1A1A;
	transition: background .15s ease, color .15s ease;
	box-sizing: border-box;
}
.woocommerce-pagination ul.page-numbers li a:hover {
	background: #F4F2EE;
	color: #1A1A1A;
}
.woocommerce-pagination ul.page-numbers li span.current,
.woocommerce-pagination ul.page-numbers li .current {
	background: #1A1A1A;
	color: #fff;
	font-weight: 600;
}
.woocommerce-pagination ul.page-numbers li .dots {
	background: transparent;
	color: #909090;
	cursor: default;
}
.woocommerce-pagination ul.page-numbers li .prev,
.woocommerce-pagination ul.page-numbers li .next {
	min-width: 40px;
	width: 40px;
	padding: 0;
	font-size: 1.125rem;
	color: #1A1A1A;
}
.woocommerce-pagination ul.page-numbers li .prev::before {
	content: '←';
}
.woocommerce-pagination ul.page-numbers li .next::before {
	content: '→';
}
.woocommerce-pagination ul.page-numbers li .next,
.woocommerce-pagination ul.page-numbers li .prev {
	font-size: 0;
}
.woocommerce-pagination ul.page-numbers li .next::before,
.woocommerce-pagination ul.page-numbers li .prev::before {
	font-size: 1rem;
}

/* Result count + sort row */
.woocommerce-result-count {
	font-size: 0.875rem;
	color: #606060;
	margin: 0;
	padding: 0;
}
.woocommerce-ordering {
	margin: 0;
}
.woocommerce-ordering select {
	background: #fff;
	border: 1px solid #E0E0E0;
	border-radius: 8px;
	padding: 10px 36px 10px 16px;
	font-size: 0.875rem;
	font-family: inherit;
	color: #1A1A1A;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%231A1A1A' stroke-width='1.5' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	min-width: 200px;
}
.woocommerce-ordering select:hover {
	border-color: #909090;
}
.woocommerce-ordering select:focus {
	outline: 0;
	border-color: #1A1A1A;
}


/* ============================================================
 *  PDP LAYOUT
 * ============================================================ */
.pdp {
	padding-block: var(--s-6) 0;
}

/* ============================================================
 *  CART DRAWER (mini-cart popup)
 *  Triggered by header cart icon.
 * ============================================================ */

/* Lock body scroll when drawer open */
body.is-locked {
	overflow: hidden;
}

.cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(420px, 100vw);
	z-index: 250;
	background: #ffffff;
	transform: translateX(100%);
	transition: transform .36s cubic-bezier(.4,0,.2,1);
	display: flex;
	flex-direction: column;
	box-shadow: -8px 0 32px rgba(0,0,0,.12);
}
.cart-drawer.is-open {
	transform: translateX(0);
}

.cart-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: 240;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}
.cart-drawer-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.cart-drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid #E8E8E8;
	background: #ffffff;
}

.cart-drawer-title {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin: 0;
	color: #1A1A1A;
}

.cart-drawer-body {
	flex: 1;
	overflow-y: auto;
	padding: 20px 24px;
	background: #ffffff;
}

.cart-drawer-empty {
	text-align: center;
	padding: 48px 0;
}
.cart-drawer-empty h3 {
	font-size: 1.0625rem;
	font-weight: 500;
	margin: 0 0 20px;
	color: #1A1A1A;
}

/* ---- Mini-cart items inside the drawer ----
 * WC's default markup per item:
 *   <li class="mini_cart_item">
 *     <a class="remove">&times;</a>
 *     <a href="..."><img>Product Title</a>
 *     <span class="quantity">2 × <span class="amount">$770.00</span></span>
 *   </li>
 *
 * We use grid placement (image extracted from the link via flex order)
 * to get: [image] [title + qty]  [×]
 */
.woocommerce-mini-cart {
	list-style: none;
	padding: 0;
	margin: 0 0 12px;
}

.woocommerce-mini-cart .mini_cart_item {
	position: relative;
	padding: 16px 32px 16px 0;
	border-bottom: 1px solid #E8E8E8;
	margin: 0;
	list-style: none;
	min-height: 88px;
}

/* The title link wraps the image + title text. Turn it into a flex row
 * so image is on the left, title text on the right, regardless of which
 * order WC outputs them in the source. */
.woocommerce-mini-cart .mini_cart_item > a:not(.remove) {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	gap: 14px !important;
	color: #1A1A1A !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1.4 !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
}
.woocommerce-mini-cart .mini_cart_item > a:not(.remove):hover {
	color: #806530 !important;
}

/* Image inside the title link */
.woocommerce-mini-cart .mini_cart_item > a:not(.remove) img,
.woocommerce-mini-cart .mini_cart_item img {
	width: 72px !important;
	height: 72px !important;
	min-width: 72px;
	max-width: 72px;
	object-fit: cover !important;
	border-radius: 8px !important;
	background: #F4F2EE !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	float: none !important;
	position: static !important;
	flex-shrink: 0 !important;
	order: -1; /* always put image first even if HTML has it after */
}

/* The title text node sits inside the same <a>, after the image.
 * Wrap-protect with flex behavior — text takes remaining width. */
.woocommerce-mini-cart .mini_cart_item > a:not(.remove)::after {
	content: '';
}

/* Hide any description / excerpt some plugins inject */
.woocommerce-mini-cart .mini_cart_item .product-description,
.woocommerce-mini-cart .mini_cart_item p:not(.product-name):not(.amount),
.woocommerce-mini-cart .mini_cart_item .wc-item-meta,
.woocommerce-mini-cart .mini_cart_item dl.variation {
	display: none !important;
}

/* Qty × price line sits BELOW the title link, indented to align with title text */
.woocommerce-mini-cart .mini_cart_item .quantity {
	display: block;
	margin: 8px 0 0 86px; /* 72px image + 14px gap */
	font-size: 0.8125rem;
	font-weight: 400;
	color: #606060;
}
.woocommerce-mini-cart .mini_cart_item .quantity .amount,
.woocommerce-mini-cart .mini_cart_item .quantity .woocommerce-Price-amount {
	color: #1A1A1A;
	font-weight: 500;
}

/* Mini-cart line wrapper (holds stepper + price) */
.mini-cart-line {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-wrap: wrap;
}

/* Quantity stepper inside the drawer */
.mini-cart-stepper {
	display: inline-flex !important;
	align-items: center;
	background: #fff;
	border: 1px solid #E0E0E0;
	border-radius: 6px;
	overflow: hidden;
	height: 30px;
	transition: opacity .15s ease;
}
.mini-cart-stepper.is-loading {
	opacity: 0.5;
	pointer-events: none;
}
.mini-cart-qty-decrease,
.mini-cart-qty-increase {
	width: 28px;
	height: 100%;
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	color: #1A1A1A;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.mini-cart-qty-decrease:hover,
.mini-cart-qty-increase:hover {
	background: #F4F2EE;
}
.mini-cart-qty-value {
	min-width: 26px;
	text-align: center;
	font-size: 0.875rem;
	font-weight: 500;
	color: #1A1A1A;
}
.mini-cart-line-price {
	font-size: 0.8125rem;
	color: #606060;
}
.mini-cart-line-price .woocommerce-Price-amount,
.mini-cart-line-price .amount {
	color: #1A1A1A !important;
	font-weight: 500;
}

/* Remove (X) button — top right of each item */
.woocommerce-mini-cart .mini_cart_item .remove,
.woocommerce-mini-cart .mini_cart_item .remove_from_cart_button {
	position: absolute !important;
	top: 16px !important;
	right: 0 !important;
	width: 22px !important;
	height: 22px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #606060 !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 18px !important;
	font-weight: 300 !important;
	text-decoration: none !important;
	line-height: 1 !important;
	border-radius: 0 !important;
	padding: 0 !important;
}
.woocommerce-mini-cart .mini_cart_item .remove:hover,
.woocommerce-mini-cart .mini_cart_item .remove_from_cart_button:hover {
	color: #1A1A1A !important;
	background: transparent !important;
}

/* Subtotal row above the buttons */
.woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 0;
	border-top: 1px solid #E8E8E8;
	border-bottom: 1px solid #E8E8E8;
	margin: 0 0 20px;
	font-size: 1rem;
	font-weight: 700;
	color: #1A1A1A;
	background: transparent;
}
.woocommerce-mini-cart__total strong {
	font-weight: 700;
}
.woocommerce-mini-cart__total .amount {
	font-weight: 700;
}

/* Action buttons */
.woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 0;
	margin: 0;
}

.woocommerce-mini-cart__buttons .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 52px !important;
	padding: 14px 20px !important;
	font-family: inherit !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
	width: 100% !important;
	box-sizing: border-box;
	margin: 0 !important;
}

/* "View cart" — outlined */
.woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout),
.woocommerce-mini-cart__buttons a.button:not(.checkout) {
	background: transparent !important;
	color: var(--c-ink, #1A1A1A) !important;
	border: 1.5px solid var(--c-ink, #1A1A1A) !important;
}
.woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):hover,
.woocommerce-mini-cart__buttons a.button:not(.checkout):hover {
	background: var(--c-ink, #1A1A1A) !important;
	color: #fff !important;
}

/* "Checkout" — solid black */
.woocommerce-mini-cart__buttons .button.checkout {
	background: var(--c-ink, #1A1A1A) !important;
	color: #fff !important;
	border: 1.5px solid var(--c-ink, #1A1A1A) !important;
}
.woocommerce-mini-cart__buttons .button.checkout:hover {
	background: var(--c-olive-dark, #806530) !important;
	border-color: var(--c-olive-dark, #806530) !important;
}


/* ============================================================
 *  CART PAGE
 *  Cream background, centered title, line items with image+stepper,
 *  collapsible "Add coupons", "Estimated total", proceed button.
 *  Matches the screenshot the client provided.
 * ============================================================ */

/* Apply white background to the whole cart page */
body.woocommerce-cart {
	background: #ffffff;
}
body.woocommerce-cart .site-main,
body.woocommerce-cart .woocommerce-wrap,
body.woocommerce-cart article.page,
body.woocommerce-cart .entry-content {
	background: transparent !important;
}

/* Centered page title above the table */
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart h1.entry-title {
	text-align: center;
	font-size: clamp(36px, 5vw, 56px);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 24px 0 40px;
	color: var(--c-ink, #1A1A1A);
}

/* Cart page wrapper — no card, just generous spacing on cream */
.woocommerce-cart .woocommerce {
	max-width: 1100px;
	margin-inline: auto;
	padding: 24px var(--gutter, 24px) 80px;
	background: transparent;
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty {
	display: none;
}

/* Cart form holds the line items table */
.woocommerce-cart form.woocommerce-cart-form {
	background: transparent !important;
	padding: 0 !important;
	border: 0 !important;
	margin: 0 0 32px !important;
	box-shadow: none !important;
}

/* Hide the default WC column headers — line items are self-explanatory */
.woocommerce-cart .shop_table.cart thead {
	display: none;
}

.woocommerce-cart .shop_table.cart {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	margin: 0;
	border: 0;
}

.woocommerce-cart .shop_table.cart tbody tr {
	background: transparent;
}

.woocommerce-cart .shop_table.cart .cart_item td {
	padding: 24px 0;
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A);
	vertical-align: top;
	background: transparent !important;
}

/* Product image */
.woocommerce-cart .cart_item .product-thumbnail {
	width: 110px;
	padding-right: 16px !important;
}
.woocommerce-cart .cart_item .product-thumbnail a {
	display: block;
}
.woocommerce-cart .cart_item .product-thumbnail img {
	width: 88px;
	height: 88px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
	background: var(--c-card-tile-bg, #F4F2EE);
}

/* Product name + price + short description block */
.woocommerce-cart .cart_item .product-name {
	padding-right: 16px !important;
}
.woocommerce-cart .cart_item .product-name a {
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c-ink, #1A1A1A);
	text-decoration: underline;
	text-underline-offset: 3px;
	margin-bottom: 6px;
}
.woocommerce-cart .cart_item .product-name a:hover {
	color: var(--c-olive, #9A7B3D);
}

/* Per-item price displayed under the name */
.woocommerce-cart .cart_item .product-name::after,
.woocommerce-cart .cart_item .product-name .product-price {
	display: block;
	font-size: 0.875rem;
	color: var(--c-ink, #1A1A1A);
	margin: 2px 0 8px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
}

/* Variations (size etc.) and product excerpt */
.woocommerce-cart .cart_item .product-name .variation,
.woocommerce-cart .cart_item .product-name dl,
.woocommerce-cart .cart_item .product-name p {
	font-size: 0.8125rem;
	color: var(--c-muted-custom, #606060);
	line-height: 1.5;
	margin: 0 0 12px;
}
.woocommerce-cart .cart_item .product-name dl dt,
.woocommerce-cart .cart_item .product-name dl dd {
	display: inline;
	margin: 0;
}
.woocommerce-cart .cart_item .product-name dl dt::after { content: ': '; }
.woocommerce-cart .cart_item .product-name dl dd::after { content: ''; display: block; margin-bottom: 4px; }

/* Quantity stepper — bordered box with - n + */
.woocommerce-cart .cart_item .product-name .quantity,
.woocommerce-cart .cart_item .product-quantity {
	display: inline-flex;
	align-items: center;
	background: var(--c-card-bg, #fff);
	border: 1px solid var(--c-olive-faint, #D9C89A);
	border-radius: 8px;
	overflow: hidden;
	width: 130px;
	height: 44px;
	margin-top: 4px;
}
.woocommerce-cart .cart_item .quantity .qty-decrease,
.woocommerce-cart .cart_item .quantity .qty-increase {
	width: 38px;
	height: 100%;
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 16px;
	color: var(--c-ink, #1A1A1A);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.woocommerce-cart .cart_item .quantity .qty-decrease:hover,
.woocommerce-cart .cart_item .quantity .qty-increase:hover {
	background: var(--c-card-tile-bg, #F4F2EE);
}
.woocommerce-cart .cart_item .quantity input[type="number"],
.woocommerce-cart .cart_item .quantity .qty {
	width: 54px;
	background: transparent;
	border: 0;
	padding: 0;
	text-align: center;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--c-ink, #1A1A1A);
	height: 100%;
	-moz-appearance: textfield;
}
.woocommerce-cart .cart_item .quantity input[type="number"]::-webkit-outer-spin-button,
.woocommerce-cart .cart_item .quantity input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Trash icon to remove */
.woocommerce-cart .cart_item .product-remove {
	width: 56px;
	padding-left: 12px !important;
	text-align: left;
	vertical-align: top;
}
.woocommerce-cart .cart_item .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--c-muted-custom, #606060);
	font-size: 0;
	text-decoration: none;
	background: transparent;
	border: 0;
	margin-top: 48px; /* align with quantity stepper */
	border-radius: 4px;
	transition: color .15s ease, background .15s ease;
}
.woocommerce-cart .cart_item .product-remove a.remove:hover {
	color: var(--c-ink, #1A1A1A);
	background: transparent;
}
.woocommerce-cart .cart_item .product-remove a.remove::before {
	content: '';
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.8'><path d='M3 6h18'/><path d='M8 6V4a2 2 0 012-2h4a2 2 0 012 2v2'/><path d='M19 6l-1 14a2 2 0 01-2 2H8a2 2 0 01-2-2L5 6'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>") center/contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.8'><path d='M3 6h18'/><path d='M8 6V4a2 2 0 012-2h4a2 2 0 012 2v2'/><path d='M19 6l-1 14a2 2 0 01-2 2H8a2 2 0 01-2-2L5 6'/><line x1='10' y1='11' x2='10' y2='17'/><line x1='14' y1='11' x2='14' y2='17'/></svg>") center/contain no-repeat;
}

/* Subtotal cell on the right */
.woocommerce-cart .cart_item .product-subtotal {
	text-align: right;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--c-ink, #1A1A1A);
	white-space: nowrap;
	padding-left: 16px !important;
	vertical-align: top;
	padding-top: 0 !important;
}

/* The "Update cart" + coupon row at the bottom of the table — hide or restyle */
.woocommerce-cart .cart .actions {
	display: none !important;
}

/* ---- Add coupons collapsible row ---- */
.halden-coupon-collapse {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 0;
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A);
	font-size: 0.875rem;
	color: var(--c-ink, #1A1A1A);
	cursor: pointer;
	background: transparent;
	border-top: 0;
	border-left: 0;
	border-right: 0;
	width: 100%;
	font-family: inherit;
	text-align: left;
}
.halden-coupon-collapse:hover {
	color: var(--c-olive, #9A7B3D);
}
.halden-coupon-collapse .chev {
	font-size: 14px;
	color: var(--c-muted-custom, #606060);
	transition: transform .2s ease;
}
.halden-coupon-collapse[aria-expanded="true"] .chev {
	transform: rotate(180deg);
}
.halden-coupon-form {
	display: none;
	padding: 16px 0 8px;
	gap: 8px;
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A);
}
.halden-coupon-form.is-open {
	display: flex;
}
.halden-coupon-form input[type="text"] {
	flex: 1;
	height: 44px;
	padding: 0 14px;
	background: var(--c-card-bg, #fff);
	border: 1px solid var(--c-olive-faint, #D9C89A);
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.875rem;
	color: var(--c-ink, #1A1A1A);
}
.halden-coupon-form input[type="text"]:focus {
	outline: 0;
	border-color: var(--c-olive, #9A7B3D);
}
.halden-coupon-form button {
	height: 44px;
	padding: 0 18px;
	background: var(--c-ink, #1A1A1A);
	color: #fff;
	border: 0;
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

/* ---- Cart totals — minimal, no card ---- */
.cart-collaterals,
.cart-collaterals .cart_totals {
	width: 100%;
	max-width: none;
	margin: 0;
	background: transparent !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

.cart_totals > h2 {
	display: none; /* "Cart totals" heading not needed in this design */
}

.cart_totals .shop_table {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
}
.cart_totals .shop_table tbody tr {
	background: transparent;
}

/* Hide subtotal / shipping rows on cart page — only show total */
.cart_totals .cart-subtotal,
.cart_totals .shipping,
.cart_totals .fee {
	display: none;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	padding: 20px 0;
	border: 0;
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A);
	background: transparent;
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--c-ink, #1A1A1A);
	text-align: left;
}
.cart_totals .order-total td,
.cart_totals .order-total .woocommerce-Price-amount {
	text-align: right;
	font-size: 1.0625rem;
	font-weight: 700;
}

/* Proceed to checkout button */
.wc-proceed-to-checkout {
	margin: 24px 0 0;
	padding: 0;
}
.wc-proceed-to-checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 60px;
	background: var(--c-ink, #1A1A1A);
	color: #fff;
	border: 0;
	border-radius: 8px;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
	transition: background .2s ease;
}
.wc-proceed-to-checkout .checkout-button:hover {
	background: var(--c-olive-dark, #806530);
}


/* ============================================================
 *  CHECKOUT PAGE
 *  Two-column layout: billing form left, order review right.
 *  Cream page background, white cards, olive-gold accents.
 * ============================================================ */

body.woocommerce-checkout {
	background: #ffffff;
}
body.woocommerce-checkout .site-main,
body.woocommerce-checkout .woocommerce-wrap,
body.woocommerce-checkout article.page,
body.woocommerce-checkout .entry-content {
	background: transparent !important;
}

/* Page title centered */
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout h1.entry-title {
	text-align: center;
	font-size: clamp(36px, 5vw, 56px);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 24px 0 32px;
	color: var(--c-ink, #1A1A1A);
}

.woocommerce-checkout .woocommerce {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px var(--gutter, 20px) 80px;
	background: transparent;
}
.woocommerce-checkout .woocommerce-notices-wrapper:empty {
	display: none;
}

/* Coupon callout at the top */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.halden-checkout-coupon-callout {
	margin: 0 0 24px !important;
	background: var(--c-card-bg, #fff) !important;
	border: 1px dashed var(--c-olive-faint, #D9C89A) !important;
	border-left: var(--w-callout, 3px) solid var(--c-olive, #9A7B3D) !important;
	border-radius: var(--r-input, 8px) !important;
	padding: 14px 20px !important;
	color: var(--c-ink, #1A1A1A);
	font-size: 0.875rem;
	box-shadow: none !important;
}
.woocommerce-checkout .woocommerce-info {
	background: var(--c-card-bg, #fff) !important;
	border: 1px dashed var(--c-olive-faint, #D9C89A) !important;
	border-left: var(--w-callout, 3px) solid var(--c-olive, #9A7B3D) !important;
	border-radius: var(--r-input, 8px) !important;
	padding: 14px 20px !important;
	color: var(--c-ink, #1A1A1A) !important;
	font-size: 0.875rem !important;
	box-shadow: none !important;
}
.woocommerce-checkout .woocommerce-info::before {
	color: var(--c-olive, #9A7B3D) !important;
}
.woocommerce-checkout .woocommerce-info a,
.halden-checkout-coupon-callout a {
	color: var(--c-olive-dark, #806530) !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}
.woocommerce-checkout form.checkout_coupon {
	margin-bottom: 24px !important;
	background: var(--c-card-bg, #fff);
	border: 1px solid var(--c-olive-faint, #D9C89A);
	border-radius: var(--r-input, 8px);
	padding: 18px;
}

/* ---- Two column grid layout ----
 * Left: billing form (spans both rows)
 * Right row 1: heading "Your order"
 * Right row 2: review table + payment
 */
.woocommerce-checkout form.checkout,
.woocommerce-checkout form.woocommerce-checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 420px !important;
	grid-template-rows: auto 1fr !important;
	gap: 0 24px !important;
	margin: 0 !important;
	align-items: start !important;
}

/* WC wraps billing+shipping in #customer_details with display:contents trick */
.woocommerce-checkout #customer_details {
	display: contents !important;
}

.woocommerce-checkout #customer_details > .col-1 {
	grid-column: 1 !important;
	grid-row: 1 / span 2 !important;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	min-width: 0 !important;
}

/* Hide shipping (second column) and additional fields — single-column form */
.woocommerce-checkout #customer_details > .col-2,
.woocommerce-checkout .woocommerce-additional-fields {
	display: none !important;
}

/* Right column heading */
.woocommerce-checkout form.checkout > #order_review_heading,
.woocommerce-checkout form.woocommerce-checkout > #order_review_heading {
	grid-column: 2 !important;
	grid-row: 1 !important;
	align-self: start !important;
	margin: 0 !important;
}

/* Right column review */
.woocommerce-checkout form.checkout > #order_review,
.woocommerce-checkout form.woocommerce-checkout > #order_review {
	grid-column: 2 !important;
	grid-row: 2 !important;
	align-self: start !important;
	margin: 0 !important;
	position: static !important;
	top: auto !important;
}

/* ---- Card style for billing form + order review ---- */
.woocommerce-checkout #customer_details > .col-1,
.woocommerce-checkout #order_review {
	background: var(--c-card-bg, #fff) !important;
	border: 1px solid var(--c-olive-faint, #D9C89A) !important;
	border-radius: var(--r-card, 8px) !important;
	padding: 24px 28px !important;
	box-shadow: 0 2px 12px rgba(42, 33, 24, 0.06);
}

.woocommerce-checkout #customer_details > .col-1 .woocommerce-billing-fields {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

/* Heading card piece fused with review below */
.woocommerce-checkout #order_review_heading {
	background: var(--c-card-bg, #fff) !important;
	border: 1px solid var(--c-olive-faint, #D9C89A) !important;
	border-bottom: 0 !important;
	border-radius: var(--r-card, 8px) var(--r-card, 8px) 0 0 !important;
	padding: 24px 28px 12px !important;
	margin: 0 !important;
	font-size: 1.375rem !important;
	font-weight: 600 !important;
	color: var(--c-ink, #1A1A1A) !important;
	position: relative !important;
	font-family: inherit;
	font-style: normal;
	letter-spacing: normal;
}
.woocommerce-checkout #order_review_heading::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 28px;
	width: var(--w-heading-acc, 48px);
	height: 2px;
	background: var(--c-olive, #9A7B3D);
}

.woocommerce-checkout #order_review {
	border-top: 0 !important;
	border-radius: 0 0 var(--r-card, 8px) var(--r-card, 8px) !important;
	margin-top: 0 !important;
}

/* Billing heading */
.woocommerce-checkout .woocommerce-billing-fields h3 {
	font-size: 1.375rem !important;
	font-weight: 600 !important;
	margin: 0 0 20px !important;
	padding-bottom: 12px !important;
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A) !important;
	color: var(--c-ink, #1A1A1A) !important;
	position: relative !important;
}
.woocommerce-checkout .woocommerce-billing-fields h3::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: var(--w-heading-acc, 48px);
	height: 2px;
	background: var(--c-olive, #9A7B3D);
}

/* ---- Field grid ---- */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 14px 16px !important;
}

.woocommerce-checkout .form-row {
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
}

.woocommerce-checkout #billing_email_field,
.woocommerce-checkout #billing_phone_field,
.woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #billing_address_2_field,
.woocommerce-checkout #billing_country_field {
	grid-column: 1 / -1 !important;
}
.woocommerce-checkout #billing_first_name_field { grid-column: 1 / 2 !important; }
.woocommerce-checkout #billing_last_name_field  { grid-column: 2 / 3 !important; }
.woocommerce-checkout #billing_postcode_field   { grid-column: 1 / 2 !important; }
.woocommerce-checkout #billing_city_field       { grid-column: 2 / 3 !important; }
.woocommerce-checkout #billing_state_field      { display: none !important; }

/* Labels */
.woocommerce-checkout .form-row label {
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	color: var(--c-ink, #1A1A1A) !important;
	margin-bottom: 6px !important;
	letter-spacing: 0.2px;
}
.woocommerce-checkout .form-row label .required,
.woocommerce-checkout .form-row label abbr {
	color: var(--c-required, #C8252F) !important;
	text-decoration: none !important;
	margin-left: 2px !important;
	font-weight: 600;
}
.woocommerce-checkout .form-row label .optional {
	color: var(--c-muted-custom, #606060) !important;
	font-weight: 400 !important;
	font-size: 0.75rem !important;
}

/* Inputs */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	width: 100% !important;
	height: 48px !important;
	padding: 0 14px !important;
	background: var(--c-cream-light, #FAF5E9) !important;
	border: 1px solid var(--c-olive-faint, #D9C89A) !important;
	border-radius: var(--r-input, 8px) !important;
	font-size: 0.9375rem !important;
	color: var(--c-ink, #1A1A1A) !important;
	font-family: inherit !important;
	box-shadow: none !important;
	line-height: 48px !important;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.woocommerce-checkout .form-row textarea.input-text,
.woocommerce-checkout .form-row textarea {
	height: auto !important;
	min-height: 100px !important;
	padding: 12px 14px !important;
	line-height: 1.5 !important;
	resize: vertical !important;
}

.woocommerce-checkout .form-row input.input-text::placeholder {
	color: var(--c-muted-custom, #B8A890) !important;
	font-size: 0.875rem;
	opacity: 0.7;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
	outline: none !important;
	border-color: var(--c-olive, #9A7B3D) !important;
	background: var(--c-card-bg, #fff) !important;
	box-shadow: 0 0 0 3px rgba(154, 123, 61, 0.15) !important;
}

.woocommerce-checkout .form-row.woocommerce-invalid input.input-text {
	border-color: var(--c-required, #C8252F) !important;
	background: #fef5f4 !important;
}

/* Select2 dropdowns */
.woocommerce-checkout .select2-container--default .select2-selection--single {
	display: flex !important;
	align-items: center !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 48px !important;
	padding-left: 0 !important;
	color: var(--c-ink, #1A1A1A) !important;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px !important;
	right: 12px !important;
}
.select2-dropdown {
	border-color: var(--c-olive, #9A7B3D) !important;
	border-radius: var(--r-input, 8px) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--c-olive, #9A7B3D) !important;
}

/* ---- Order review table ---- */
.woocommerce-checkout .woocommerce-checkout-review-order-table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin-bottom: 16px !important;
	background: transparent;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table thead {
	display: none !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td {
	padding: 12px 0 !important;
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A) !important;
	font-size: 0.875rem !important;
	vertical-align: top !important;
	background: transparent !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
	color: var(--c-ink, #1A1A1A) !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	width: 70% !important;
	padding-right: 12px !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
	color: var(--c-muted-custom, #606060) !important;
	font-weight: 400 !important;
	margin-left: 6px !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total {
	text-align: right !important;
	font-weight: 600 !important;
	color: var(--c-ink, #1A1A1A) !important;
	white-space: nowrap !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
	padding: 10px 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-size: 0.875rem !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th {
	color: var(--c-muted-custom, #606060) !important;
	font-weight: 500 !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td {
	color: var(--c-ink, #1A1A1A) !important;
	text-align: right !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td {
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	color: var(--c-olive-dark, #806530) !important;
	padding-top: 14px !important;
	border-top: 2px solid var(--c-olive-faint, #D9C89A) !important;
	text-align: right;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th {
	text-align: left;
}

/* ---- Payment methods ---- */
.woocommerce-checkout #payment {
	background: transparent !important;
	border-radius: 0 !important;
	margin-top: 8px !important;
}
.woocommerce-checkout #payment ul.payment_methods {
	background: var(--c-cream-light, #FAF5E9) !important;
	border: 1px solid var(--c-olive-faint, #D9C89A) !important;
	border-radius: var(--r-input, 8px) !important;
	padding: 14px !important;
	margin: 0 0 14px !important;
	list-style: none !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
	background: transparent !important;
	padding: 6px 0 !important;
	list-style: none !important;
	border: 0 !important;
	margin: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods li + li {
	margin-top: 6px !important;
	padding-top: 10px !important;
	border-top: 1px solid var(--c-olive-faint, #D9C89A) !important;
}
.woocommerce-checkout #payment ul.payment_methods li label {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	font-weight: 500 !important;
	margin: 0 !important;
	cursor: pointer;
	color: var(--c-ink, #1A1A1A) !important;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
	accent-color: var(--c-olive, #9A7B3D);
	width: 18px;
	height: 18px;
	margin: 0;
}
.woocommerce-checkout #payment .payment_box {
	background: transparent !important;
	padding: 12px 0 0 !important;
	font-size: 0.8125rem !important;
	color: var(--c-muted-custom, #606060) !important;
}
.woocommerce-checkout #payment .payment_box::before {
	display: none !important;
}

/* ---- Terms checkbox ---- */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	background: var(--c-cream-light, #FAF5E9) !important;
	border: 1px solid var(--c-olive-faint, #D9C89A) !important;
	border-radius: var(--r-input, 8px) !important;
	padding: 14px 16px !important;
	margin: 14px 0 !important;
}
.woocommerce-checkout .wc-terms-and-conditions {
	margin: 0 !important;
}
.woocommerce-checkout .wc-terms-and-conditions label,
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	font-size: 0.875rem !important;
	line-height: 1.5 !important;
	cursor: pointer;
	margin: 0;
}
.woocommerce-checkout .wc-terms-and-conditions input[type="checkbox"],
.woocommerce-checkout .woocommerce-form__input-checkbox {
	width: 18px !important;
	height: 18px !important;
	margin-top: 2px !important;
	accent-color: var(--c-olive, #9A7B3D);
	cursor: pointer;
	flex-shrink: 0;
}
.woocommerce-checkout .wc-terms-and-conditions a,
.woocommerce-checkout .woocommerce-privacy-policy-text a {
	color: var(--c-olive-dark, #806530) !important;
	font-weight: 600 !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.woocommerce-checkout .woocommerce-privacy-policy-text {
	background: var(--c-cream-light, #FAF5E9);
	border: 1px solid var(--c-olive-faint, #D9C89A);
	border-radius: var(--r-input, 8px);
	padding: 14px 16px;
	margin: 14px 0;
	font-size: 0.8125rem;
	color: var(--c-muted-custom, #606060);
	line-height: 1.55;
}
.woocommerce-checkout .woocommerce-privacy-policy-text p {
	margin: 0 0 8px;
}
.woocommerce-checkout .woocommerce-privacy-policy-text p:last-child {
	margin-bottom: 0;
}

/* ---- Place order button ---- */
.woocommerce-checkout #place_order,
.woocommerce-checkout .button.alt {
	width: 100% !important;
	height: 56px !important;
	background: var(--c-ink, #1A1A1A) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--r-button, 8px) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.5px !important;
	text-transform: uppercase !important;
	cursor: pointer;
	margin-top: 8px !important;
	transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout .button.alt:hover {
	background: var(--c-olive-dark, #806530) !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 20px rgba(42, 33, 24, 0.1);
}
.woocommerce-checkout #place_order:disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
	transform: none !important;
}

/* SSL trust line below place-order */
.woocommerce-checkout #payment::after,
.woocommerce-checkout-payment::after {
	content: '🔒  SICHERER CHECKOUT  ·  SSL-VERSCHLÜSSELT';
	display: block;
	text-align: center;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--c-olive-faint, #D9C89A);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--c-olive, #9A7B3D);
}

/* States */
.woocommerce-checkout.processing {
	opacity: 0.6;
	pointer-events: none;
}
.blockUI.blockOverlay {
	background: rgba(245, 239, 228, 0.7) !important;
}

.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message {
	border-radius: var(--r-input, 8px) !important;
	border-left: 4px solid var(--c-required, #C8252F) !important;
	padding: 14px 18px !important;
	font-size: 0.875rem !important;
	background: #fef5f4 !important;
	color: var(--c-ink, #1A1A1A) !important;
	list-style: none !important;
	margin-bottom: 16px !important;
}
.woocommerce-checkout .woocommerce-message {
	border-left-color: #27ae60 !important;
	background: #f0faf3 !important;
}


/* ============================================================
 *  MY ACCOUNT — keep cream theme
 * ============================================================ */
body.woocommerce-account {
	background: var(--c-cream, #F5EFE0);
}
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 24px;
	max-width: 1200px;
	margin-inline: auto;
	padding: 32px var(--gutter, 20px) 80px;
}
@media (max-width: 860px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr;
	}
}
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-content {
	background: var(--c-card-bg, #fff);
	border: 1px solid var(--c-olive-faint, #D9C89A);
	border-radius: var(--r-card, 8px);
	padding: 20px 24px;
	box-shadow: 0 2px 12px rgba(42, 33, 24, 0.06);
}
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--c-olive-faint, #D9C89A);
}
.woocommerce-MyAccount-navigation li:last-child {
	border-bottom: 0;
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 0;
	color: var(--c-ink, #1A1A1A);
	text-decoration: none;
	font-size: 0.9375rem;
}
.woocommerce-MyAccount-navigation li.is-active a {
	color: var(--c-olive, #9A7B3D);
	font-weight: 600;
}
.woocommerce-MyAccount-navigation li a:hover {
	color: var(--c-olive-dark, #806530);
}


/* ============================================================
 *  MOBILE — stack to single column
 * ============================================================ */
@media (max-width: 968px) {
	.woocommerce-checkout form.checkout,
	.woocommerce-checkout form.woocommerce-checkout {
		grid-template-columns: 1fr !important;
		grid-template-rows: auto !important;
		gap: 16px !important;
	}
	.woocommerce-checkout #customer_details > .col-1 {
		grid-column: 1 !important;
		grid-row: auto !important;
		order: 2 !important;
	}
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.woocommerce-checkout > #order_review_heading {
		grid-column: 1 !important;
		grid-row: auto !important;
		order: 1 !important;
	}
	.woocommerce-checkout form.checkout > #order_review,
	.woocommerce-checkout form.woocommerce-checkout > #order_review {
		grid-column: 1 !important;
		grid-row: auto !important;
		order: 1 !important;
	}
	.woocommerce-cart .shop_table.cart .cart_item td {
		display: block;
		width: 100% !important;
		padding: 8px 0 !important;
		border-bottom: 0 !important;
	}
	.woocommerce-cart .shop_table.cart .cart_item {
		display: block;
		padding: 20px 0;
		border-bottom: 1px solid var(--c-olive-faint, #D9C89A);
	}
	.woocommerce-cart .cart_item .product-thumbnail {
		width: 80px !important;
		float: left;
	}
	.woocommerce-cart .cart_item .product-name {
		padding-left: 96px !important;
	}
	.woocommerce-cart .cart_item .product-subtotal {
		text-align: left !important;
		padding-left: 96px !important;
	}
	.woocommerce-cart .cart_item .product-remove a.remove {
		margin-top: 0 !important;
	}
}

@media (max-width: 540px) {
	.woocommerce-checkout .woocommerce {
		padding: 16px 12px 40px;
	}
	.woocommerce-checkout #customer_details > .col-1,
	.woocommerce-checkout #order_review,
	.woocommerce-checkout #order_review_heading {
		padding: 18px !important;
	}
	.woocommerce-checkout .woocommerce-billing-fields h3,
	.woocommerce-checkout #order_review_heading {
		font-size: 1.25rem !important;
	}
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr !important;
	}
	.woocommerce-checkout #billing_first_name_field,
	.woocommerce-checkout #billing_last_name_field,
	.woocommerce-checkout #billing_postcode_field,
	.woocommerce-checkout #billing_city_field {
		grid-column: 1 / -1 !important;
	}
	.woocommerce-checkout .form-row input.input-text,
	.woocommerce-checkout .form-row select {
		height: 52px !important;
		font-size: 1rem !important;
	}
	.woocommerce-checkout #place_order {
		height: 60px !important;
		font-size: 1.0625rem !important;
	}
}


/* ============================================================
 *  BLOCK CHECKOUT (wc-block-checkout)
 *  WooCommerce's new block-based checkout uses completely different
 *  markup than the classic shortcode (form.checkout / #order_review).
 *  This section handles the block version.
 *
 *  Layout: 2 columns
 *    Left  : Contact info + Billing address + Payment + Terms + Place order
 *    Right : Order summary card (sticky)
 * ============================================================ */

/* Page wrapper — center the whole checkout on white bg */
body.woocommerce-checkout {
	background: #ffffff;
}

.wp-block-woocommerce-checkout,
.wc-block-checkout {
	max-width: none !important;
	width: 100%;
	margin: 0 auto;
	padding: 24px 24px 80px;
}

/* Page heading (the big "Checkout" title) */
.wp-block-woocommerce-checkout > .wp-block-post-title,
.wp-block-woocommerce-checkout h1.entry-title,
body.woocommerce-checkout .entry-title {
	text-align: center;
	font-size: clamp(32px, 4vw, 48px) !important;
	font-weight: 700 !important;
	margin: 16px 0 32px !important;
	color: #1A1A1A;
	letter-spacing: -0.01em;
}

/* Disable .prose max-width on checkout so the form gets full width */
body.woocommerce-checkout .prose,
body.woocommerce-cart .prose {
	max-width: none !important;
	padding: 0 !important;
}

/* ---- Block checkout: force flex row layout. ---- */
.wc-block-checkout {
	display: flex !important;
	flex-direction: row !important;
	gap: 32px !important;
	align-items: flex-start !important;
	max-width: none !important;
	width: 100%;
	margin-inline: auto;
}

.wc-block-checkout__main {
	flex: 1 1 0 !important;
	min-width: 0 !important;
}

.wc-block-checkout__sidebar {
	flex: 0 0 420px !important;
	min-width: 0 !important;
	position: sticky;
	top: 92px;
	align-self: flex-start;
}

/* Inner main column padding — 2% breathing room on the left */
.wc-block-components-sidebar-layout .wc-block-components-main {
	padding-left: 2% !important;
}

/* Mobile: stack everything */
@media (max-width: 960px) {
	.wc-block-checkout {
		flex-direction: column !important;
		gap: 24px !important;
	}
	.wc-block-checkout__main,
	.wc-block-checkout__sidebar {
		flex: 1 1 auto !important;
		width: 100% !important;
		position: static !important;
	}
	.wc-block-components-sidebar-layout .wc-block-components-main {
		padding-left: 0 !important;
	}
	.wp-block-woocommerce-checkout,
	.wc-block-checkout {
		padding: 16px 16px 60px;
	}
}

/* ---- Hide the mobile collapsed summary at the top when desktop sidebar is visible ---- */
@media (min-width: 961px) {
	.wc-block-components-order-summary.is-mobile,
	.wp-block-woocommerce-checkout-order-summary-block.is-mobile-collapse {
		display: none !important;
	}
}

/* ---- Each section in the main column gets card styling ---- */
.wc-block-checkout__main > [class*="wp-block-woocommerce-checkout-"],
.wc-block-checkout__main .wc-block-components-checkout-step {
	background: #ffffff;
	border: 1px solid #E8E8E8;
	border-radius: 8px;
	padding: 24px 28px;
	margin: 0 0 16px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

/* Section headings (Contact information, Billing address, Payment options) */
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-checkout-step__title,
.wc-block-checkout__main h2,
.wc-block-checkout__main h3 {
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	color: #1A1A1A !important;
	margin: 0 0 16px !important;
	padding-bottom: 10px;
	border-bottom: 1px solid #E8E8E8;
	position: relative;
	font-family: inherit !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.wc-block-components-checkout-step__title::after,
.wc-block-checkout__main h2::after,
.wc-block-checkout__main h3::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 48px;
	height: 2px;
	background: #1A1A1A;
}

/* Description text under headings */
.wc-block-components-checkout-step__description {
	font-size: 0.875rem !important;
	color: #606060 !important;
	margin: -8px 0 16px !important;
}

/* ---- Form fields ---- */
.wc-block-components-text-input,
.wc-block-components-country-input,
.wc-block-components-state-input,
.wc-block-components-address-form,
.wc-block-components-form {
	background: transparent;
}

.wc-block-components-text-input input,
.wc-block-components-text-input .components-base-control__field input,
.wc-block-components-combobox input,
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.wc-block-checkout__main input[type="text"],
.wc-block-checkout__main input[type="email"],
.wc-block-checkout__main input[type="tel"],
.wc-block-checkout__main select {
	width: 100% !important;
	height: 52px !important;
	padding: 16px 14px 4px !important;
	background: #F8F8F8 !important;
	border: 1px solid #E0E0E0 !important;
	border-radius: 6px !important;
	font-size: 0.9375rem !important;
	color: #1A1A1A !important;
	font-family: inherit !important;
	box-shadow: none !important;
	transition: border-color .2s ease, background .2s ease;
}

.wc-block-components-text-input input:focus,
.wc-block-components-country-input select:focus,
.wc-block-components-state-input select:focus,
.wc-block-checkout__main input:focus,
.wc-block-checkout__main select:focus {
	outline: 0 !important;
	border-color: #1A1A1A !important;
	background: #ffffff !important;
}

/* Field labels — the block checkout uses floating labels */
.wc-block-components-text-input label,
.wc-block-components-country-input label,
.wc-block-components-state-input label {
	font-size: 0.8125rem !important;
	color: #606060 !important;
	font-weight: 400 !important;
	padding-left: 14px !important;
}

/* Floating label state */
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input:focus-within label {
	color: #1A1A1A !important;
	font-weight: 500 !important;
}

/* Two-column rows (First name / Last name, ZIP / City etc.) */
.wc-block-components-address-form,
.wc-block-checkout__billing-fields .wc-block-components-address-form {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 12px 16px !important;
}

/* Full-width fields */
.wc-block-components-address-form .wc-block-components-text-input--email,
.wc-block-components-address-form #email,
.wc-block-components-address-form [id*="address_1"],
.wc-block-components-address-form [id*="address_2"],
.wc-block-components-address-form [id*="country"],
.wc-block-components-address-form .wc-block-components-country-input,
.wc-block-checkout__contact-fields .wc-block-components-address-form > * {
	grid-column: 1 / -1 !important;
}

@media (max-width: 600px) {
	.wc-block-components-address-form {
		grid-template-columns: 1fr !important;
	}
	.wc-block-components-address-form > * {
		grid-column: 1 !important;
	}
}

/* "+ Add apartment, suite, etc." link */
.wc-block-components-address-form__address_2-toggle,
button.wc-block-components-address-form__address_2-toggle {
	background: transparent !important;
	border: 0 !important;
	color: #1A1A1A !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	padding: 4px 0 !important;
	margin: 4px 0 8px !important;
	cursor: pointer;
	grid-column: 1 / -1 !important;
}
.wc-block-components-address-form__address_2-toggle:hover {
	color: #606060 !important;
}

/* ---- Payment options ---- */
.wp-block-woocommerce-checkout-payment-block,
.wc-block-checkout__payment-method {
	background: #ffffff !important;
}

.wc-block-components-payment-method-icons {
	margin-top: 12px;
}

/* Payment method radio rows */
.wc-block-components-radio-control__option,
.wc-block-components-checkout-payment-methods .wc-block-components-radio-control__option {
	padding: 14px 16px !important;
	background: #F8F8F8 !important;
	border: 1px solid #E0E0E0 !important;
	border-radius: 6px !important;
	margin-bottom: 8px !important;
}
.wc-block-components-radio-control__option--checked {
	border-color: #1A1A1A !important;
	background: #ffffff !important;
}

/* "No payment methods available" error notice — red box */
.wc-block-checkout__payment-method .wc-block-components-notice-banner,
.is-error.wc-block-components-notice-banner {
	background: #FEF1F1 !important;
	border: 1px solid #F5B5B5 !important;
	border-left: 4px solid #DC2626 !important;
	color: #7F1D1D !important;
	border-radius: 8px !important;
	padding: 14px 18px !important;
	font-size: 0.875rem !important;
}

/* ---- "Add a note to your order" checkbox + textarea ---- */
.wp-block-woocommerce-checkout-order-note-block label,
.wc-block-checkout__order-notes label {
	font-size: 0.875rem !important;
	color: #1A1A1A !important;
	font-weight: 500 !important;
}
.wc-block-checkout__order-notes textarea {
	width: 100% !important;
	min-height: 90px !important;
	padding: 12px 14px !important;
	background: #F8F8F8 !important;
	border: 1px solid #E0E0E0 !important;
	border-radius: 6px !important;
	font-family: inherit !important;
	font-size: 0.9375rem !important;
	margin-top: 8px !important;
}

/* Terms & conditions text */
.wc-block-checkout__terms,
.wp-block-woocommerce-checkout-terms-block {
	font-size: 0.8125rem !important;
	color: #606060 !important;
	line-height: 1.55 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	margin: 8px 0 16px !important;
}
.wc-block-checkout__terms a,
.wp-block-woocommerce-checkout-terms-block a {
	color: #1A1A1A !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
	font-weight: 500;
}

/* ---- Place order button ---- */
.wc-block-checkout__actions,
.wc-block-checkout__actions_row {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin-top: 24px !important;
	padding: 0 !important;
	background: transparent !important;
	gap: 16px;
}

.wc-block-checkout__actions .wc-block-components-checkout-return-to-cart-button,
.wc-block-checkout__actions a {
	color: #1A1A1A !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
}

.wc-block-components-checkout-place-order-button,
button.wc-block-components-checkout-place-order-button {
	min-height: 56px !important;
	min-width: 180px;
	padding: 16px 32px !important;
	background: #1A1A1A !important;
	color: #ffffff !important;
	border: 0 !important;
	border-radius: 6px !important;
	font-family: inherit !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: background .2s ease, transform .15s ease;
}
.wc-block-components-checkout-place-order-button:hover {
	background: #000000 !important;
	transform: translateY(-1px);
}
.wc-block-components-checkout-place-order-button:disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
	transform: none !important;
}

/* ============================================================
 *  Order summary card (right sidebar)
 * ============================================================ */
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout__sidebar > * {
	background: #ffffff !important;
	border: 1px solid #E8E8E8 !important;
	border-radius: 8px !important;
	padding: 24px !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.wc-block-components-checkout-order-summary__title,
.wp-block-woocommerce-checkout-order-summary-block h2,
.wp-block-woocommerce-checkout-order-summary-block h3 {
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	margin: 0 0 16px !important;
	padding-bottom: 10px !important;
	border-bottom: 1px solid #E8E8E8 !important;
	color: #1A1A1A !important;
	position: relative;
}
.wc-block-components-checkout-order-summary__title::after,
.wp-block-woocommerce-checkout-order-summary-block h2::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 48px;
	height: 2px;
	background: #1A1A1A;
}

/* Line items in order summary */
.wc-block-components-order-summary-item {
	display: grid !important;
	grid-template-columns: 56px 1fr auto !important;
	gap: 12px !important;
	padding: 12px 0 !important;
	border-bottom: 1px solid #F0F0F0 !important;
	align-items: flex-start !important;
}
.wc-block-components-order-summary-item:last-of-type {
	border-bottom: 1px solid #E8E8E8 !important;
}

.wc-block-components-order-summary-item__image {
	position: relative !important;
	width: 56px !important;
	height: 56px !important;
}
.wc-block-components-order-summary-item__image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 6px !important;
	background: #F4F2EE !important;
}

/* Quantity badge on image (the "2" in your screenshot) */
.wc-block-components-order-summary-item__quantity,
.wc-block-components-order-summary-item__image .wc-block-components-order-summary-item__quantity {
	position: absolute !important;
	top: -8px !important;
	right: -8px !important;
	width: 22px !important;
	height: 22px !important;
	background: #1A1A1A !important;
	color: #ffffff !important;
	border: 0 !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
}

/* Product title in summary */
.wc-block-components-order-summary-item__description,
.wc-block-components-product-name {
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: #1A1A1A !important;
	line-height: 1.4 !important;
	margin: 0 !important;
}

/* Product price */
.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary-item__price {
	font-size: 0.8125rem !important;
	color: #606060 !important;
	margin-top: 2px !important;
}
.wc-block-components-order-summary-item__total-price,
.wc-block-components-order-summary-item__total-price .wc-block-components-formatted-money-amount {
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	color: #1A1A1A !important;
	white-space: nowrap !important;
}

/* Hide long product descriptions in summary */
.wc-block-components-order-summary-item__description p,
.wc-block-components-product-metadata {
	font-size: 0.75rem !important;
	color: #909090 !important;
	margin: 4px 0 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-height: 1.4 !important;
}

/* Coupon section */
.wc-block-components-totals-coupon,
.wc-block-components-totals-coupon-link {
	padding: 14px 0 !important;
	border-bottom: 1px solid #E8E8E8 !important;
	margin: 0 !important;
}
.wc-block-components-totals-coupon-link {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	color: #1A1A1A !important;
	text-decoration: none !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	cursor: pointer;
}
.wc-block-components-totals-coupon-link::after {
	content: '⌄';
	font-size: 14px;
	color: #606060;
}

/* Totals rows */
.wc-block-components-totals-item {
	display: flex !important;
	justify-content: space-between !important;
	padding: 10px 0 !important;
	font-size: 0.9375rem !important;
	color: #1A1A1A !important;
	margin: 0 !important;
}
.wc-block-components-totals-item__label {
	color: #606060 !important;
}
.wc-block-components-totals-item__value {
	font-weight: 500 !important;
	color: #1A1A1A !important;
}

/* Grand total — bigger and bolder */
.wc-block-components-totals-footer-item,
.wc-block-components-totals-item.wc-block-components-totals-footer-item {
	padding-top: 16px !important;
	border-top: 1px solid #E8E8E8 !important;
	margin-top: 4px !important;
	font-size: 1.125rem !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 700 !important;
	color: #1A1A1A !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
	font-weight: 700 !important;
	color: #1A1A1A !important;
	font-size: 1.25rem !important;
}


/* ============================================================
 *  CONTAINER for Cart / Checkout / Product pages
 *  Cap at 1320px max-width with reasonable side gutters.
 * ============================================================ */
body.woocommerce-cart .container,
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .prose,
body.woocommerce-checkout .container,
body.woocommerce-checkout .woocommerce,
body.woocommerce-checkout .prose,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-checkout .wc-block-checkout,
body.single-product .container,
body.single-product .prose {
	max-width: 1320px !important;
	width: 100% !important;
	margin-inline: auto !important;
	padding-left: 32px !important;
	padding-right: 32px !important;
	box-sizing: border-box;
}

/* Mobile: tighter gutters */
@media (max-width: 720px) {
	body.woocommerce-cart .container,
	body.woocommerce-cart .woocommerce,
	body.woocommerce-cart .prose,
	body.woocommerce-checkout .container,
	body.woocommerce-checkout .woocommerce,
	body.woocommerce-checkout .prose,
	body.woocommerce-checkout .wp-block-woocommerce-checkout,
	body.woocommerce-checkout .wc-block-checkout,
	body.single-product .container,
	body.single-product .prose {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}


/* ============================================================
 *  SHOP PAGE — Editorial layout (video, intro, hero image, grid)
 * ============================================================ */

/* 1. Full-bleed video hero */
.hr-shop-video {
	width: 100%;
	margin: 0;
	padding: 0;
	background: #000;
	overflow: hidden;
	position: relative;
	aspect-ratio: 16 / 9;
	max-height: 100vh;
}
.hr-shop-video__el {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 720px) {
	.hr-shop-video {
		aspect-ratio: 9 / 16;
		max-height: 75vh;
	}
}

/* 2. Editorial intro (centered) */
.hr-shop-intro {
	padding: 96px 24px;
	background: #fff;
}
.hr-shop-intro__inner {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}
.hr-shop-intro__logo {
	margin: 0 auto 32px;
	max-width: 120px;
}
.hr-shop-intro__logo img {
	width: 100%;
	height: auto;
	display: block;
}
.hr-shop-intro__heading {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 0 0 28px;
	color: #1A1A1A;
}
.hr-shop-intro__lead {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.hr-shop-intro__lead p {
	font-size: 0.9375rem;
	line-height: 1.75;
	color: #4A4A4A;
	margin: 0;
}
@media (max-width: 720px) {
	.hr-shop-intro {
		padding: 56px 20px;
	}
}

/* 3. Hero product image (full-bleed) */
.hr-shop-hero-img {
	width: 100%;
	margin: 0;
	padding: 0;
	background: #F4F2EE;
	overflow: hidden;
}
.hr-shop-hero-img img {
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	display: block;
}
.hr-shop-hero-img.hr-shop-hero-img--contain {
	background: #fff;
}
.hr-shop-hero-img.hr-shop-hero-img--contain img {
	object-fit: contain;
}

/* Second intro (after hero image) — tighter top padding for flow */
.hr-shop-intro--two {
	padding-top: 80px;
}
@media (max-width: 720px) {
	.hr-shop-intro--two {
		padding-top: 48px;
	}
}

/* 4. "Discover" heading above product grid */
.hr-shop-grid-head {
	max-width: 1320px;
	margin: 0 auto;
	padding: 80px 32px 32px;
}
.hr-shop-grid-head__heading {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #1A1A1A;
	margin: 0;
}
@media (max-width: 720px) {
	.hr-shop-grid-head {
		padding: 48px 20px 20px;
	}
}

/* Hide the default shop page title since we render our own */
body.woocommerce.post-type-archive-product .page-intro,
body.woocommerce.post-type-archive-product .woocommerce-products-header {
	display: none !important;
}


/* ============================================================
 *  CATEGORY / TAG ARCHIVE — Editorial layout
 *  Full-bleed image + centered title + description, then products
 * ============================================================ */
.hr-cat-hero {
	width: 100%;
	margin: 0;
	padding: 0;
	background: #fff;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	max-height: 80vh;
}
.hr-cat-hero img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
}
/* Optional cover variant: add class="hr-cat-hero hr-cat-hero--cover" via filter */
.hr-cat-hero.hr-cat-hero--cover img {
	object-fit: cover;
}
@media (max-width: 720px) {
	.hr-cat-hero {
		aspect-ratio: 4 / 3;
		max-height: 70vh;
	}
}

.hr-cat-intro {
	padding: 80px 24px 48px;
	background: #fff;
}
.hr-cat-intro__inner {
	max-width: 720px;
	margin: 0 auto;
	text-align: left;
}
.hr-cat-intro__heading {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 0 0 24px;
	color: #1A1A1A;
}
.hr-cat-intro__lead {
	font-size: 0.9375rem;
	line-height: 1.75;
	color: #4A4A4A;
}
.hr-cat-intro__lead p {
	margin: 0 0 1rem;
}
.hr-cat-intro__lead p:last-child {
	margin-bottom: 0;
}
@media (max-width: 720px) {
	.hr-cat-intro {
		padding: 48px 20px 24px;
	}
}
