/**
 * Store foundations — type tokens, accessible greys, focus visibility.
 *
 * inc/woocommerce.php enqueues this file only on WooCommerce pages, so
 * the unscoped :focus-visible rule below reaches the store and nothing
 * else. Keep it that way: if this stylesheet ever loads site-wide, the
 * focus block needs a body-class scope.
 *
 * Fonts: this file used to ask for 'Inter' (89x), 'Sentient' (17x) and
 * 'Calibri' (2x), none of which the theme loads — typography.css only
 * @font-faces Satoshi-Variable and Sentient-Variable. Every store label
 * fell back to the browser default sans and every "Sentient" heading to
 * Times New Roman. The tokens below resolve to the real faces and match
 * the --lcs-font-* pair in shop-skin.css / account-skin.css, which are
 * scoped to body.lc-shop-skin and so can't serve the catalogue.
 */
:root {
	--lc-font-heading: "Sentient-Variable", Georgia, serif;
	--lc-font-body: "Satoshi-Variable", "Helvetica Neue", Helvetica, Arial, sans-serif;

	/* The store's one muted grey, 5.4:1 on white. The rules below still
	   write it as a literal (this file is hex-based; shop-skin.css is
	   the token-driven one), so this declaration documents the value and
	   backfills the pre-existing `var(--lc-muted, #888)` down in the
	   notice styles, which had been falling through to #888 at 3.5:1.
	   Replaced: #77878F (3.7:1), #ADB7BC (2.1:1), #aaa (2.3:1),
	   #999 (2.8:1), #929FA5 (2.7:1) and #8D9EA7 (2.8:1) — all carrying
	   real text below the 4.5:1 AA threshold. */
	--lc-muted: #5F6C72;

	--lc-focus: rgb(var(--red, 149, 49, 18));
}

/* ── Focus visibility ──
 * One ring for the whole store. :focus-visible so pointer users don't
 * see it on click, only keyboard (and other non-pointer) focus. The
 * six `outline: none` declarations this file used to carry have been
 * removed; the border-colour tints they were paired with remain as a
 * secondary cue, but they are not the accessible signal on their own. */
:focus-visible {
	outline: 2px solid var(--lc-focus);
	outline-offset: 2px;
}

/* Controls that hide their real input and draw a substitute (payment
   chips, saved-card selectors): the ring has to move to the element
   the user actually sees, or keyboard selection happens blind. */
li.woocommerce-SavedPaymentMethods-token:has(input:focus-visible),
li.woocommerce-SavedPaymentMethods-new:has(input:focus-visible),
#payment .payment_methods li.payment_method:has(input:focus-visible),
#payment .payment_methods li.wc_payment_method:has(input:focus-visible) {
	outline: 2px solid var(--lc-focus);
	outline-offset: 2px;
}

/* ── WooCommerce Shop Tabs ── */
.woo-tabs__bar {
	display: flex;
	align-items: center;
	border-bottom: 2px solid #e0e0e0;
	margin: 0;
	position: relative; /* anchor for the scroll fades + arrows */
}

.woo-tabs .woo-tabs__nav {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	list-style: none;
	padding: 0;
	margin: 0;
	border-bottom: none;
	gap: 0;
	/* Scroll horizontally when the categories overflow (desktop). The 2px
	   bottom padding keeps overflow-x's forced y-clip from cropping the
	   active tab's -2px underline. */
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: none; /* Firefox */
	scroll-behavior: smooth;
}

.woo-tabs .woo-tabs__nav::-webkit-scrollbar {
	display: none; /* WebKit */
}

/* Edge fades — shown only when there's more to scroll toward */
.woo-tabs__bar::before,
.woo-tabs__bar::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 48px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.15s ease;
	z-index: 2;
}

.woo-tabs__bar::before {
	left: 0;
	background: linear-gradient(to right, #FFFAF1 30%, rgba(255, 250, 241, 0));
}

.woo-tabs__bar::after {
	right: 0;
	background: linear-gradient(to left, #FFFAF1 30%, rgba(255, 250, 241, 0));
}

.woo-tabs__bar--can-scroll-left::before,
.woo-tabs__bar--can-scroll-right::after {
	opacity: 1;
}

/* Prev/next arrow buttons (injected by JS) */
/* Standalone arrow icons — no button chrome, pinned to the very edge so they
   sit over the fade and don't cover tab text. */
.woo-tabs__scroll-btn {
	position: absolute;
	top: 0;
	bottom: 0;
	display: none;
	align-items: center;
	justify-content: center;
	width: 22px;
	padding: 0;
	background: none;
	border: none;
	color: #1a1a1a;
	cursor: pointer;
	z-index: 3;
}

.woo-tabs__scroll-btn:hover {
	color: rgb(var(--red));
}

.woo-tabs__scroll-btn--prev {
	left: 0;
}

.woo-tabs__scroll-btn--next {
	right: 0;
}

.woo-tabs__bar--can-scroll-left .woo-tabs__scroll-btn--prev,
.woo-tabs__bar--can-scroll-right .woo-tabs__scroll-btn--next {
	display: inline-flex;
}

.woo-tabs__bar .shop__icon--cart {
	margin-left: auto;
	display: flex;
	align-items: center;
	padding: 0 12px;
	color: inherit;
}

.woo-tabs .woo-tabs__nav .woo-tabs__nav-item {
	list-style: none;
	list-style-type: none;
	margin: 0;
	padding: 0;
}

.woo-tabs__tab {
	background: none;
	border: none;
	padding: 12px 32px;
	font-size: 1rem;
	font-weight: 600;
	color: #666;
	cursor: pointer;
	position: relative;
	transition: color 0.2s ease;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	white-space: nowrap;
}

.woo-tabs__tab:hover {
	color: #333;
}

.woo-tabs__tab--active {
	color: #1a1a1a;
	border-bottom-color: rgb(var(--red));
}

.woo-tabs__panel {
	display: none;
	/* Fixed top padding absorbs the sub-bar height so the grid never shifts */
	padding-top: 20px;
}

.woo-tabs__panel--active {
	display: block;
}

/* ── Override WC float grid with CSS Grid inside tabs (allows auto-reflow on sub-tab filter) ── */
.woo-tabs__panel ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	float: none !important;
	clear: none !important;
}

.woo-tabs__panel ul.products::before,
.woo-tabs__panel ul.products::after {
	display: none !important;
}

.woo-tabs__panel ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

/* ── Cookware inline sub-bar (slides down on click) ── */
.woo-tabs__sub-bar {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.25s ease;
	/* No border or margin — panel padding-top reserves the space */
}

.woo-tabs__sub-bar--open {
	grid-template-rows: 1fr;
}

.woo-tabs__sub-bar-inner {
	/* overflow-y stays clipped so the grid-rows collapse animation works;
	   overflow-x scrolls as a fallback when a parent has more sub-tabs than
	   fit even after the main row scrolls its parent left. */
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	display: flex;
	gap: 0;
	/* left padding is set dynamically by JS to match the parent tab position */
}

.woo-tabs__sub-bar-inner::-webkit-scrollbar {
	display: none;
}

.woo-tabs__sub-bar--open .woo-tabs__sub-bar-inner {
	padding-bottom: 10px;
}

/* Pill group wrapper — wraps all the sub-buttons in one visual container */
.woo-tabs__sub-bar-inner::after {
	content: none;
}

.woo-tabs__sub-group {
	display: inline-flex;
	flex: 0 0 auto; /* keep content width so it overflows (scrolls) rather than shrinking */
	gap: 0;
	border-bottom: 2px solid #e4e4e4;
}

/* Trailing spacer in the main tab row — width set by JS so any tab (incl. the
   last) can scroll far enough left to reveal its sub-categories. */
.woo-tabs__nav-spacer {
	flex: 0 0 auto;
	list-style: none;
	pointer-events: none;
}

.woo-tabs__sub-btn {
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	padding: 8px 16px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #5F6C72;
	cursor: pointer;
	transition: color 0.18s ease, border-color 0.18s ease;
	white-space: nowrap;
}

.woo-tabs__sub-btn:hover {
	color: #555;
}

.woo-tabs__sub-btn--active {
	color: rgb(var(--red));
	border-bottom-color: rgb(var(--red));
	font-weight: 700;
}

.woo-tabs__sub-btn--active:hover {
	color: rgb(var(--dark-maroon));
	border-bottom-color: rgb(var(--dark-maroon));
}

.woo-tabs__empty {
	padding: 40px 0;
	text-align: center;
	color: #5F6C72;
	font-size: 1rem;
}

/* ── WooCommerce Archive / Shop layout ── */
.woo-archive-wrapper {
	padding: 40px 0;
}

.woo-archive__header {
	margin-bottom: 30px;
}

.woo-archive__title {
	margin: 0 0 10px;
}

/* ── Mobile sticky cart bar (catalog only) ── */
.lacanche-mobile-cart-bar {
	display: none; /* shown on mobile via media query below */
}

@media only screen and (max-width: 768px) {
	.lacanche-mobile-cart-bar {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9000;
		background: #ffffff;
		border-top: 1px solid #e4e7e9;
		box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.08);
		/* extra bottom padding clears the iOS home indicator */
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	}

	.lacanche-mobile-cart-bar__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
	}

	.lacanche-mobile-cart-bar__summary {
		display: flex;
		flex-direction: column;
		line-height: 1.2;
		min-width: 0;
	}

	.lacanche-mobile-cart-bar__count {
		font-family: var(--lc-font-body);
		font-size: 0.75rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: #5f6c72;
	}

	.lacanche-mobile-cart-bar__total,
	.lacanche-mobile-cart-bar__total .woocommerce-Price-amount.amount {
		font-family: var(--lc-font-body);
		font-size: 1.125rem;
		font-weight: 700;
		color: #191c1f;
	}

	/* Selector is prefixed with the bar class so it outranks the theme's global
	   `.public a { color: var(--links); text-decoration: underline }` rule,
	   which would otherwise tint the label into the red background. */
	.lacanche-mobile-cart-bar a.lacanche-mobile-cart-bar__btn {
		flex-shrink: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		height: 46px;
		padding: 0 28px;
		background: rgb(var(--red));
		border-radius: 30px;
		font-family: var(--lc-font-body);
		font-weight: 700;
		font-size: 0.875rem;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: rgb(var(--textLight));
		text-decoration: none;
		transition: background 0.2s;
	}

	.lacanche-mobile-cart-bar a.lacanche-mobile-cart-bar__btn:hover {
		background: rgb(var(--dark-maroon));
		color: rgb(var(--textLight));
	}

	/* Keep page content clear of the fixed bar (catalog + single product) */
	.woo-archive-wrapper,
	.woo-single-product-wrapper {
		padding-bottom: 88px;
	}
}

/* ── Mobile sticky "Proceed to Checkout" bar (cart page only) ── */
.lacanche-cart-checkout-bar {
	display: none; /* shown on mobile via media query below */
}

@media only screen and (max-width: 768px) {
	.lacanche-cart-checkout-bar {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9000;
		background: #ffffff;
		border-top: 1px solid #e4e7e9;
		box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.08);
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		/* slide/fade out when the real totals come into view */
		transform: translateY(0);
		opacity: 1;
		transition: transform 0.3s ease, opacity 0.3s ease;
	}

	.lacanche-cart-checkout-bar--hidden {
		transform: translateY(110%);
		opacity: 0;
		pointer-events: none;
	}

	.lacanche-cart-checkout-bar__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
	}

	.lacanche-cart-checkout-bar__summary {
		display: flex;
		flex-direction: column;
		line-height: 1.2;
		min-width: 0;
	}

	.lacanche-cart-checkout-bar__label {
		font-family: var(--lc-font-body);
		font-size: 0.75rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: #5f6c72;
	}

	.lacanche-cart-checkout-bar__total,
	.lacanche-cart-checkout-bar__total .woocommerce-Price-amount.amount {
		font-family: var(--lc-font-body);
		font-size: 1.125rem;
		font-weight: 700;
		color: #191c1f;
	}

	/* Prefixed with the bar class so it beats the global
	   `.public a { color: var(--links); text-decoration: underline }`. */
	.lacanche-cart-checkout-bar a.lacanche-cart-checkout-bar__btn {
		flex-shrink: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		height: 46px;
		padding: 0 24px;
		background: rgb(var(--red));
		border-radius: 30px;
		font-family: var(--lc-font-body);
		font-weight: 700;
		font-size: 0.8125rem;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: rgb(var(--textLight));
		text-decoration: none;
		text-align: center;
		transition: background 0.2s;
	}

	.lacanche-cart-checkout-bar a.lacanche-cart-checkout-bar__btn:hover {
		background: rgb(var(--dark-maroon));
		color: rgb(var(--textLight));
	}

	/* Keep cart content clear of the fixed bar */
	body.woocommerce-cart .woocommerce-cart-layout {
		padding-bottom: 88px;
	}
}

/* My Account login/register switch links */
.account-form-switch {
	margin-top: 1.5rem;
	font-size: 0.9rem;
	color: #666;
}
.account-form-switch__link {
	background: none;
	border: none;
	padding: 0;
	font-size: inherit;
	color: #c5a44e;
	cursor: pointer;
	text-decoration: underline;
	font-weight: 600;
}
.account-form-switch__link:hover {
	color: #a8893d;
}

.shop__icon--cart {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.shop__cart-count {
	position: absolute;
	top: -6px;
	right: -6px;
	background: #c5a44e;
	color: #fff;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1;
	min-width: 16px;
	height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	padding: 2px;
}

/* ── WooCommerce Product Images ── */

/* Archive/Shop product card images */
.woocommerce ul.products li.product img,
.lacanche-product-card img {
	width: 100%;
	height: 250px;
	object-fit: contain;
	object-position: center;
}

/* Force all product cards to be the same height */
.woocommerce ul.products li.product,
li.lacanche-product-card {
	display: flex;
	flex-direction: column;
}

.woocommerce ul.products li.product a img,
.lacanche-product-card__image {
	width: 100%;
	height: 250px;
	min-height: 250px;
	max-height: 250px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lacanche-product-card__image img {
	width: 100%;
	height: 250px !important;
	min-height: 250px;
	max-height: 250px;
	object-fit: contain;
	object-position: center;
}

/* Force product info section to align at the bottom */
.lacanche-product-card__info {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding-top: 12px;
}

.lacanche-card__price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
	margin-top: 4px;
	padding: 0 12px;
}

.woocommerce-loop-product__title {
	padding-left: 12px !important;
}

.lacanche-card__price,
.lacanche-card__price .woocommerce-Price-amount.amount {
	color: #958e09;
	font-size: 1rem;
	font-family: inherit;
	font-weight: inherit;
}

.lacanche-card__brand {
	font-size: 0.75rem;
	font-weight: 500;
	color: #5f6c72;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

/* Single product gallery - uniform size */
/* Hide hover-zoom overlay but keep lightbox clickable */
.woocommerce-product-gallery .zoomImg {
	display: none !important;
}

/* Hide the gallery-slider plugin's magnifier emoji icon (still tap/click to zoom).
   The plugin only shows it below 991px, so it appeared on mobile only. */
.wpgs-lightbox-icon::before {
	display: none !important;
}

.woocommerce-product-gallery .flex-viewport,
.wpgs-for .slick-list {
	height: 500px !important;
	max-height: 500px;
}

/* woocommerce-product-gallery__image = WC default main slide
   wpgs_image = all slides output by the variation-gallery plugin
   .wpgs-for .slick-slide img = gallery-slider slides, whose imgs carry
   only attachment-shop_single — without this they render at natural
   height, leaving dead space in the 500px slick-list (and the slider
   arrows then center on that dead space instead of the photo). */
.woocommerce-product-gallery__image img,
.wpgs_image img,
.wpgs-for .slick-slide img:not(.zoomImg) {
	width: 100% !important;
	height: 500px !important;
	object-fit: contain;
	object-position: center;
	border-radius: 8px;
}

/* Gallery thumbnails - uniform size */
.flex-control-thumbs li img,
.wpgs-nav img {
	width: 80px !important;
	height: 80px !important;
	object-fit: contain;
	padding: 5px;
	border: 2px solid transparent;
	border-radius: 4px;
	background-color: rgb(var(--gray));
	cursor: pointer;
	box-sizing: border-box;
}

/* ── Gallery slider plugin fixes ──
   Prev/next arrows live outside the photo: on desktop the slider gets
   side gutters and the arrows park in them, always visible against
   the page background instead of overlaying the image. The
   .lacanche-product__gallery prefix out-specifies the plugin's own
   .wpgs-for .slick-arrow positioning regardless of stylesheet order.
   (The slide-image sizing above makes the image fill the slick-list,
   so top: 50% is the photo's true midline.) */
.lacanche-product__gallery .wpgs-for {
	position: relative;
}
@media only screen and (min-width: 769px) {
	.lacanche-product__gallery .wpgs-for {
		padding: 0 56px;
	}
}
.lacanche-product__gallery .wpgs-for .slick-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	margin-top: 0;
	font-size: 1.75rem;
	line-height: 1;
	color: rgb(var(--dark-teal));
	cursor: pointer;
	z-index: 2;
	transition: color 0.15s;
}
.lacanche-product__gallery .wpgs-for .slick-arrow:hover {
	color: rgb(var(--red));
}
.lacanche-product__gallery .wpgs-for .flaticon-back {
	left: 8px;
	margin-left: 0;
}
.lacanche-product__gallery .wpgs-for .flaticon-right-arrow {
	right: 8px;
}

/* Thumbnail strip: the plugin initializes the nav slider with
   variableWidth/centerMode and injects `transform: inherit !important`
   when there are few thumbs, which breaks slick's inline row geometry
   (oversized slide boxes, wrapping, off-center row). Take the row's
   layout away from slick entirely: a centered flex row of
   natural-width slides. Clicks still select (slick binds per slide);
   with many thumbs the row wraps instead of scrolling. */
.wpgs-nav .slick-track {
	width: auto !important;
	transform: none !important;
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
.wpgs-nav .slick-slide {
	width: auto !important;
	float: none !important;
	height: auto;
}
/* The plugin's settings CSS draws the active box on the slide div —
   suppress it and highlight the thumbnail image's own border instead. */
.wpgs-nav .slick-slide,
.wpgs-nav .slick-current {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.wpgs-nav .slick-current img,
.flex-control-thumbs li img.flex-active {
	border-color: rgb(var(--red));
}

/* Woocommerce Shop Buttons */
.button.lacanche-store-product {
	color: rgb(var(--textLight));
	background: rgb(var(--red));
	border-radius: 30px;
	padding: 12px 32px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-block;
	transition: background 0.2s, color 0.2s;
}
.button.lacanche-store-product:hover {
	background: rgb(var(--dark-maroon));
}

.product.lacanche-product-card.type-product {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.product.lacanche-product-card.type-product:hover {
	transform: scale(1.03);
	box-shadow: 0 4px 24px rgba(197, 164, 78, 0.15);
}

/* Cookware gallery hover – swap featured image for first gallery image */
.lacanche-product-card__image.has-gallery-hover {
	position: relative;
	font-size: 0;
}

/* Base image: fades out on hover */
.lacanche-product-card__image.has-gallery-hover .attachment-woocommerce_thumbnail {
	transition: opacity 0.3s ease;
}
.lacanche-product-card.product:hover .lacanche-product-card__image.has-gallery-hover .attachment-woocommerce_thumbnail {
	opacity: 0;
}

/* Hover image: absolutely overlays the container */
.lacanche-product-card__image.has-gallery-hover .product-gallery-hover-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.lacanche-product-card.product:hover .lacanche-product-card__image.has-gallery-hover .product-gallery-hover-img {
	opacity: 1;
}

.button.single_add_to_cart_button {
	color: rgb(var(--textLight));
	background: rgb(var(--red));
	border-radius: 30px;
	padding: 12px 32px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-block;
	transition: background 0.2s, color 0.2s;
}

.button.single_add_to_cart_button:hover {
	background: rgb(var(--dark-maroon));
}

/* Variation attribute button pickers */
.variation-btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 4px;
}
.variation-btn {
	cursor: pointer;
	padding: 6px 16px;
	border-radius: 20px;
	border: 2px solid rgb(var(--brown));
	background: transparent;
	color: rgb(var(--brown));
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	white-space: nowrap;
}
.variation-btn:hover {
	border-color: rgb(var(--red));
	color: rgb(var(--red));
}
.variation-btn.selected {
	background: rgb(var(--red));
	border-color: rgb(var(--red));
	color: #fff;
}

/* Native <select> backing the button pickers. Hidden on desktop (the pill
   buttons are the picker); revealed and styled as the picker on mobile.
   WooCommerce core forces this select visible via
   `.woocommerce div.product form.cart .variations select { display:inline-block }`,
   so we match that specificity to win. */
.woocommerce div.product form.cart .variations select.variation-btn-select {
	display: none;
}

/* Mobile-only product title — duplicate of the summary <h1>, shown above the
   gallery on small screens. Hidden on desktop. */
.lacanche-product__mobile-title {
	display: none;
}

/* ── Quantity stepper (plus / minus buttons inside .quantity pill) ── */

/* form.cart: flex row so stepper pill and Add to Cart sit side by side */
.woocommerce form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* .quantity is the pill container; buttons and input are children */
.woocommerce form.cart .quantity,
.woocommerce .quantity {
	display: inline-flex;
	align-items: center;
	height: 46px;
	flex-shrink: 0;
	border: 2px solid rgb(var(--brown));
	border-radius: 30px;
	overflow: hidden;
	padding: 0;
	background: transparent;
}

/* qty number input — middle of the pill */
.woocommerce .quantity input[type="number"],
.woocommerce .quantity input[type="text"] {
	width: 48px;
	height: 100%;
	text-align: center;
	border: none;
	font-size: 1rem;
	font-weight: 600;
	color: rgb(var(--text));
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
	padding: 0;
}
.woocommerce .quantity input[type="number"]::-webkit-inner-spin-button,
.woocommerce .quantity input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Minus / Plus buttons — inside .quantity, share the pill border */
.woocommerce .quantity .lacanche-qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 100%;
	flex-shrink: 0;
	background: transparent;
	border: none;
	cursor: pointer;
	font-size: 1.3rem;
	font-weight: 700;
	color: rgb(var(--brown));
	transition: background 0.2s, color 0.2s;
	padding: 0;
	line-height: 1;
}
.woocommerce .quantity .lacanche-qty-minus {
	border-right: 1px solid rgb(var(--brown));
}
.woocommerce .quantity .lacanche-qty-plus {
	border-left: 1px solid rgb(var(--brown));
}
.woocommerce .quantity .lacanche-qty-btn:hover {
	background: rgb(var(--red));
	color: #fff;
}

/* Add to Cart button — same height as stepper */
.woocommerce form.cart .button.single_add_to_cart_button {
	height: 46px;
	padding: 0 32px;
	display: flex;
	align-items: center;
	border-radius: 30px;
}

/* Go back to store button */
a.lacanche-back-to-shop {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 16px 0;
	color: rgb(var(--red));
	font-weight: 600;
	text-decoration: none;
	transition: color 0.2s;
}
a.lacanche-back-to-shop:hover {
	color: rgb(var(--dark-maroon));
}

/* ── Single Product layout ── */

/* Hero: contain WooCommerce's floated gallery + summary columns and enforce
   a minimum height so the details section never floats up when there is no
   description or the summary is very short. */
.lacanche-product__hero {
	min-height: 500px;
	overflow: hidden; /* clearfix — contains the floated gallery/summary */
}

/* Flair accent line between hero and details */
.lacanche-product__flair {
	margin-top: 40px;
	text-align: center;
}
.lacanche-product__flair svg,
.lacanche-flair-line {
	width: 100%;
	max-width: 100%;
	height: auto;
	display: block;
}

/* Details (tabs + upsells + related) */
.lacanche-product__details {
	margin-top: 40px;
	padding-top: 0;
}

/* Warranty note under Add to Cart (Falk products) */
.lacanche-warranty-note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	clear: both;
	margin: 16px 0 0;
	font-size: 0.9375rem;
	line-height: 1.4;
}
.lacanche-warranty-note svg {
	flex: 0 0 auto;
	margin-top: 1px;
}
.lacanche-warranty-note__link {
	font-weight: 600;
	text-decoration: underline;
	white-space: nowrap;
}

/* ── Mobile filter trigger bar ── */
.woo-tabs__mobile-trigger-bar {
	display: none; /* shown via media query */
	align-items: center;
	border-bottom: 2px solid #e0e0e0;
	margin: 0;
}

.woo-tabs__mobile-trigger {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: none;
	border: none;
	border-bottom: 3px solid rgb(var(--red));
	margin-bottom: -2px;
	padding: 12px 32px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
	cursor: pointer;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.woo-tabs__mobile-trigger:hover {
	color: rgb(var(--red));
}

/* ── Filter drawer ── */
.woo-filter-drawer {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 99999;
}

.woo-filter-drawer--open {
	display: block;
}

.woo-filter-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	animation: lacanche-fade-in 0.25s ease both;
}

@keyframes lacanche-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.woo-filter-drawer__panel {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 280px;
	max-width: 85vw;
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
	transform: translateX(-100%);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.woo-filter-drawer--open .woo-filter-drawer__panel {
	transform: translateX(0);
}

body.woo-drawer-open {
	overflow: hidden;
}

.woo-filter-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid #e4e7e9;
	flex-shrink: 0;
}

.woo-filter-drawer__title {
	font-family: var(--lc-font-heading);
	font-size: 1.0625rem;
	font-weight: 500;
	color: #191c1f;
}

.woo-filter-drawer__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 50%;
	color: #5F6C72;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}

.woo-filter-drawer__close:hover {
	background: #f2f4f5;
	color: #191c1f;
}

.woo-filter-drawer__list {
	list-style: none;
	margin: 0;
	padding: 8px 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	flex: 1;
}

.woo-filter-drawer__list > li,
.woo-filter-drawer__sub > li {
	list-style: none;
}

.woo-filter-drawer__list > li::marker,
.woo-filter-drawer__sub > li::marker {
	content: '';
}

.woo-filter-drawer__item {
	border-bottom: 1px solid #f2f4f5;
}

.woo-filter-drawer__item:last-child {
	border-bottom: none;
}

.woo-filter-drawer__cat {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 14px 20px;
	background: none;
	border: none;
	font-family: var(--lc-font-body);
	font-size: 0.9375rem;
	font-weight: 500;
	color: #191c1f;
	text-align: left;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}

.woo-filter-drawer__cat:hover {
	background: #f7f8f9;
}

.woo-filter-drawer__item--active > .woo-filter-drawer__cat {
	color: rgb(var(--red));
	font-weight: 700;
}

/* Active dot indicator */
.woo-filter-drawer__item--active > .woo-filter-drawer__cat::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgb(var(--red));
	flex-shrink: 0;
}

.woo-filter-drawer__sub {
	list-style: none;
	margin: 0;
	padding: 4px 0 8px;
	background: #fafbfc;
	border-top: 1px solid #f2f4f5;
}

.woo-filter-drawer__sub-btn {
	display: block;
	width: 100%;
	padding: 10px 20px 10px 36px;
	background: none;
	border: none;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 400;
	color: #5f6c72;
	text-align: left;
	cursor: pointer;
	transition: color 0.15s, background 0.15s;
}

.woo-filter-drawer__sub-btn:hover {
	background: #f2f4f5;
	color: #191c1f;
}

.woo-filter-drawer__sub-btn--active {
	color: rgb(var(--red));
	font-weight: 600;
}

/* 3-column grid between 769px and 912px */
@media only screen and (min-width: 769px) and (max-width: 912px) {
	.woo-tabs__panel ul.products {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media only screen and (max-width: 768px) {
	.lacanche-product__hero {
		min-height: 0;
	}
	.lacanche-product__details {
		margin-top: 24px;
	}
	.lacanche-product__flair {
		margin-top: 24px;
	}

	/* Stack gallery above summary on mobile */
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary {
		float: none !important;
		width: 100% !important;
		margin-right: 0 !important;
	}

	.woocommerce div.product div.images {
		margin-bottom: 24px;
	}

	/* Scale gallery image to fit — smaller on mobile so the title + options
	   sit higher up the page */
	.woocommerce-product-gallery .flex-viewport,
	.wpgs-for .slick-list {
		height: 260px !important;
		max-height: 260px;
	}

	.woocommerce-product-gallery__image img,
	.wpgs_image img,
	.wpgs-for .slick-slide img:not(.zoomImg) {
		height: 260px !important;
	}

	/* Show the mobile title above the gallery; hide the summary's <h1>.
	   Font/size/weight come from the theme's .h1-style class so it matches the
	   desktop product title exactly (incl. the theme's responsive sizing). */
	.public .lacanche-product__mobile-title {
		display: block;
		margin: 24px 0 16px;
		/* Kept on one line; the inline fitter (below) scales font-size down to
		   fit. If a title is long enough to hit the size floor, it ellipsizes. */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.lacanche-product__summary .product_title {
		display: none;
	}

	/* ── Simple-product summary reorder (mobile) ──
	   Target order: text → stock → [price + quantity on one row] → add-to-cart
	   full width below. `display:contents` on the cart form dissolves its box so
	   the quantity + button become flex items of the summary, letting the price
	   (a summary child) and quantity (a form child) sit on the same row without
	   moving any DOM nodes. Scoped to simple products so the variable product
	   (variations table / dropdown) layout is left alone. */
	.product-type-simple .lacanche-product__summary {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		column-gap: 12px;
		row-gap: 16px;
	}
	.product-type-simple .lacanche-product__summary form.cart {
		display: contents;
	}
	.product-type-simple .lacanche-product__summary .woocommerce-product-details__short-description {
		order: 1;
		flex: 0 0 100%;
		margin: 0;
	}
	.product-type-simple .lacanche-product__summary .stock {
		order: 2;
		flex: 0 0 100%;
		margin: 0;
	}
	.product-type-simple .lacanche-product__summary .price {
		order: 3;
		margin: 0 0 0 24px; /* inset from the left edge to pull it toward center */
	}
	/* WooCommerce core sets `.woocommerce div.product form.cart div.quantity
	   { margin:0 4px 0 0 }` (specificity 0,4,3) which beat the simpler rule, so
	   the inset was ignored — match higher specificity to win. */
	.woocommerce .product-type-simple .lacanche-product__summary form.cart div.quantity {
		order: 4;
		margin: 0 24px 0 0; /* inset from the right edge to pull it toward center */
	}
	.product-type-simple .lacanche-product__summary .single_add_to_cart_button {
		order: 5;
		flex: 0 0 100%;
		width: 100%;
		justify-content: center;
	}
	.product-type-simple .lacanche-product__summary .lacanche-warranty-note {
		order: 6;
		flex: 0 0 100%;
		margin: 0;
	}

	/* Swap pill buttons for the native dropdown on mobile */
	.variation-btn-group {
		display: none;
	}
	/* Match WooCommerce core's selector specificity so both the reveal and our
	   pill styling win over its `.variations select` rule. */
	.woocommerce div.product form.cart .variations select.variation-btn-select {
		display: block;
		width: 100%;
		min-width: 0;
		max-width: 320px;
		height: 46px;
		margin: 0;
		padding: 0 40px 0 16px;
		border: 2px solid rgb(var(--brown));
		border-radius: 30px;
		background-color: transparent;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23953112' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 16px center;
		background-size: 12px 8px;
		font-size: 1rem;
		font-weight: 600;
		color: rgb(var(--brown));
		cursor: pointer;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
	}
	.variation-btn-select:focus {
		border-color: rgb(var(--red));
	}
	/* Vertically center the "Color" label against the taller pill — WC sets the
	   variation cells to vertical-align:top. */
	.woocommerce div.product form.cart .variations th.label {
		vertical-align: middle;
	}

	/* Shop product grid: 2 columns on tablet */
	.woo-tabs__panel ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	/* Hide desktop tab bar on mobile — drawer replaces it */
	.woo-tabs__bar {
		display: none;
	}

	/* Hide desktop sub-bar on mobile — drawer has accordion */
	.woo-tabs__sub-bar {
		display: none !important;
	}

	/* Show the mobile filter trigger */
	.woo-tabs__mobile-trigger-bar {
		display: flex;
	}
}

@media only screen and (max-width: 500px) {
	/* Shop product grid: 1 column on phone */
	.woo-tabs__panel ul.products {
		grid-template-columns: 1fr !important;
	}

	/* Gallery a bit shorter on small phones */
	.woocommerce-product-gallery .flex-viewport,
	.wpgs-for .slick-list {
		height: 240px !important;
		max-height: 240px;
	}

	.woocommerce-product-gallery__image img,
	.wpgs_image img,
	.wpgs-for .slick-slide img:not(.zoomImg) {
		height: 240px !important;
	}

	/* Thumbnails row smaller */
	.flex-control-thumbs li img,
	.wpgs-nav img {
		width: 56px !important;
		height: 56px !important;
	}
}

/* ── Sub-category bar (desktop) ── */

.lacanche-lid-pairing {
	margin-bottom: 20px;
	width: 100%;
}

.lacanche-lid-item {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.lacanche-lid-item__header {
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.06em;
}

.lacanche-lid-item__img {
	width: 48px;
	height: 48px;
	object-fit: contain;
	flex-shrink: 0;
}

.lacanche-lid-toggle {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-size: 0.875rem;
}

.lacanche-lid-toggle input[type="checkbox"] {
	accent-color: rgb(var(--red));
	width: 18px;
	height: 18px;
	cursor: pointer;
	flex-shrink: 0;
}

.lacanche-lid-toggle:has(input:disabled) {
	opacity: 0.4;
	cursor: not-allowed;
}

.lacanche-lid-item__price {
	color: rgb(var(--brown));
	font-weight: 600;
}

/* WooCommerce login/register forms */

.woocommerce-form.woocommerce-form-login.login,
.woocommerce-form.woocommerce-form-register.register {
	display: flex;
	flex-direction: column;
	width: 50%;
	margin: auto;
	margin-top: 20px;
}

.woocommerce-form.woocommerce-form-login.login .woocommerce-form-row,
.woocommerce-form.woocommerce-form-register.register .woocommerce-form-row,
.woocommerce-form.woocommerce-form-login.login .form-row,
.woocommerce-form.woocommerce-form-register.register .form-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 16px;
	padding: 0;
}

.woocommerce-form.woocommerce-form-login.login input[type="text"],
.woocommerce-form.woocommerce-form-login.login input[type="password"],
.woocommerce-form.woocommerce-form-register.register input[type="email"],
.woocommerce-form.woocommerce-form-register.register input[type="password"] {
	width: 100%;
	box-sizing: border-box;
}

.woocommerce-form-login__submit,
.woocommerce-form-register__submit {
	width: 100%;
}

/* =============================================
   WooCommerce Cart Page
   ============================================= */

/* Page background */
body.woocommerce-cart {
	background-color: #FFFAF1;
}

/* Two-column layout: cart form left, totals right */
body.woocommerce-cart .woocommerce-cart-layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	margin-top: 24px;
	gap: 10%;
	margin-left: 50px;
}

body.woocommerce-cart .woocommerce-cart-form-wrapper {
	flex: 0 0 60%;
	min-width: 0;
}

body.woocommerce-cart .cart-collaterals {
	flex: 0 0 28%;
	min-width: 280px;
	float: none;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
}

/* ---- Free shipping progress bar (above the cart table) ---- */
body.woocommerce-cart .lacanche-free-ship {
	margin: 0 0 16px;
	padding: 14px 20px;
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 4px;
}

body.woocommerce-cart .lacanche-free-ship__msg {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.4;
	color: #5F6C72;
}

body.woocommerce-cart .lacanche-free-ship__msg strong,
body.woocommerce-cart .lacanche-free-ship__msg .woocommerce-Price-amount.amount {
	font-weight: 600;
	color: #191C1F;
}

body.woocommerce-cart .lacanche-free-ship__icon {
	flex: 0 0 auto;
	color: #953112;
}

body.woocommerce-cart .lacanche-free-ship__track {
	height: 6px;
	background: #E4E7E9;
	border-radius: 999px;
	overflow: hidden;
}

body.woocommerce-cart .lacanche-free-ship__fill {
	display: block;
	height: 100%;
	background: #953112;
	border-radius: inherit;
	transition: width 0.3s ease;
}

body.woocommerce-cart .lacanche-free-ship--unlocked .lacanche-free-ship__msg {
	color: #191C1F;
}

body.woocommerce-cart .lacanche-free-ship--unlocked .lacanche-free-ship__fill {
	background: #203B44;
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce-cart .lacanche-free-ship__fill {
		transition: none;
	}
}

/* ---- Cart table card ---- */
body.woocommerce-cart .shop_table.cart {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #E4E7E9;
	border-radius: 4px;
	overflow: hidden;
	background: #FFFFFF;
}

/* Column headers */
body.woocommerce-cart .shop_table.cart thead tr {
	background: #203B44;
}

body.woocommerce-cart .shop_table.cart thead th {
	padding: 10px 16px;
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.5;
	text-transform: uppercase;
	color: #FFFFFF;
	border: none;
}

body.woocommerce-cart .shop_table.cart thead th.product-remove {
	width: 32px;
}

/* Product rows */
body.woocommerce-cart .shop_table.cart tbody tr {
	background: #FFFFFF;
	border-width: 0 1px 1px;
	border-style: solid;
	border-color: #E4E7E9;
}

body.woocommerce-cart .shop_table.cart td {
	padding: 16px;
	vertical-align: middle;
	border: none;
	border-bottom: 1px solid #E4E7E9;
}

/* Remove (×) button */
body.woocommerce-cart .shop_table.cart .product-remove a.remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 1.5px solid #5F6C72;
	border-radius: 50%;
	color: #5F6C72;
	font-size: 1rem;
	text-decoration: none;
	line-height: 1;
}

body.woocommerce-cart .shop_table.cart .product-remove a.remove:hover {
	border-color: #EE1D52;
	color: #EE1D52;
}

/* Product thumbnail */
body.woocommerce-cart .shop_table.cart .product-thumbnail img {
	width: 92px;
	height: 61px;
	object-fit: cover;
	display: block;
}

/* Product name */
body.woocommerce-cart .shop_table.cart .product-name a {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.43;
	color: #191C1F;
	text-decoration: none;
}

body.woocommerce-cart .shop_table.cart .product-name a:hover {
	text-decoration: underline;
}

/* Price & subtotal */
body.woocommerce-cart .shop_table.cart .product-price,
body.woocommerce-cart .shop_table.cart .product-subtotal {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 400;
	color: #191C1F;
}

body.woocommerce-cart .shop_table.cart thead th.product-price,
body.woocommerce-cart .shop_table.cart thead th.product-subtotal {
	color: #FFFFFF;
}

/* Quantity input */
body.woocommerce-cart .shop_table.cart .product-quantity .quantity {
	display: inline-flex;
	align-items: center;
}

body.woocommerce-cart .shop_table.cart .product-quantity input.qty {
	width: 64px;
	height: 38px;
	text-align: center;
	border: 1px solid #E6E6E6;
	border-radius: 0;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #191919;
	box-sizing: border-box;
	-moz-appearance: textfield;
}

body.woocommerce-cart .shop_table.cart .product-quantity input.qty::-webkit-inner-spin-button,
body.woocommerce-cart .shop_table.cart .product-quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
}

/* Actions row — now holds only the hidden update_cart input + nonce
   (quantity changes auto-update via AJAX), so it's visually removed.
   Hidden inputs inside still serialize; visibility doesn't affect that. */
body.woocommerce-cart .shop_table.cart td.actions {
	display: none;
}

/* Steppers are disabled while a cart update is in flight */
body.woocommerce-cart .lacanche-qty-btn:disabled {
	opacity: 0.5;
	cursor: default;
}


/* ---- Cart Totals sidebar ---- */
body.woocommerce-cart .cart_totals {
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.08);
	border-radius: 4px;
	overflow: hidden;
}

body.woocommerce-cart .cart_totals h2 {
	padding: 20px 24px;
	margin: 0;
	font-family: var(--lc-font-heading);
	font-weight: 500;
	font-size: 1.25rem;
	line-height: 1.2;
	color: #191C1F;
	border-bottom: 1px solid #E4E7E9;
}

body.woocommerce-cart .cart_totals .shop_table {
	width: 100%;
	border-collapse: collapse;
	border: none;
}

body.woocommerce-cart .cart_totals .shop_table th,
body.woocommerce-cart .cart_totals .shop_table td {
	padding: 12px 24px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	border: none;
	border-bottom: 1px solid #E4E7E9;
}

body.woocommerce-cart .cart_totals .shop_table th {
	font-weight: 400;
	color: #5F6C72;
	text-align: left;
	width: 50%;
}

body.woocommerce-cart .cart_totals .shop_table td {
	font-weight: 400;
	color: #191C1F;
	text-align: right;
}

/* Order total row */
body.woocommerce-cart .cart_totals .shop_table tr.order-total th,
body.woocommerce-cart .cart_totals .shop_table tr.order-total td {
	font-size: 1rem;
	border-bottom: none;
	padding-top: 16px;
	padding-bottom: 16px;
}

body.woocommerce-cart .cart_totals .shop_table tr.order-total td {
	font-weight: 600;
}

/* Collapsible "Have a coupon?" section */
body.woocommerce-cart .lacanche-cart-coupon {
	border-top: 1px solid #E4E7E9;
	padding: 16px 24px;
}

body.woocommerce-cart .lacanche-cart-coupon__toggle {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #953112;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

/* Hide the native disclosure marker, add our own caret */
body.woocommerce-cart .lacanche-cart-coupon__toggle::-webkit-details-marker {
	display: none;
}

body.woocommerce-cart .lacanche-cart-coupon__toggle::after {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-left: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.15s ease;
}

body.woocommerce-cart .lacanche-cart-coupon[open] .lacanche-cart-coupon__toggle::after {
	transform: translateY(1px) rotate(225deg);
}

body.woocommerce-cart .lacanche-cart-coupon__form {
	display: flex;
	gap: 8px;
	margin-top: 12px;
}

body.woocommerce-cart .lacanche-cart-coupon__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 43px;
	padding: 0 14px;
	border: 1px solid #E4E7E9;
	border-radius: 6px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #191C1F;
	box-sizing: border-box;
}

body.woocommerce-cart .lacanche-cart-coupon__apply {
	flex: 0 0 auto;
	padding: 0 20px;
	height: 43px;
	background: transparent;
	border: 1px solid #203B44;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-weight: 500;
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	color: #203B44;
	cursor: pointer;
	box-sizing: border-box;
}

body.woocommerce-cart .lacanche-cart-coupon__apply:hover {
	background: #203B44;
	color: #FFFFFF;
}

/* Proceed to checkout button */
body.woocommerce-cart .wc-proceed-to-checkout {
	padding: 16px 24px 24px;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	padding: 12px 24px;
	background: #953112;
	border: none;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-weight: 500;
	font-size: 1rem;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #FFFFFF;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: #7a270e;
}

/* Responsive: stack columns on tablet and below */
@media (max-width: 990px) {
	body.woocommerce-cart .woocommerce-cart-layout {
		flex-direction: column;
		gap: 24px;
		margin-left: 0;
	}

	body.woocommerce-cart .woocommerce-cart-form-wrapper,
	body.woocommerce-cart .cart-collaterals {
		flex: 0 0 100%;
		width: 100%;
		min-width: 0;
	}
}

/* Responsive: stacked-card layout on mobile (keeps every value visible) */
@media (max-width: 768px) {
	/* Strip the table chrome — cards provide their own borders */
	body.woocommerce-cart .shop_table.cart {
		border: none;
		background: transparent;
		overflow: visible;
	}

	/* Hide the column header row; each cell carries its own label */
	body.woocommerce-cart .shop_table.cart thead {
		display: none;
	}

	body.woocommerce-cart .shop_table.cart tbody {
		display: block;
	}

	body.woocommerce-cart .shop_table.cart tbody tr {
		display: block;
		width: 100%;
	}

	body.woocommerce-cart .shop_table.cart tbody td {
		display: block;
		width: 100%;
	}

	/* Each product row becomes a card */
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item {
		position: relative;
		width: auto;
		background: #FFFFFF;
		border: 1px solid #E4E7E9;
		border-radius: 8px;
		padding: 16px;
		margin: 0 16px 16px;
	}

	/* Override WooCommerce's smallscreen zebra striping so cards stay solid white */
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td {
		background: transparent;
	}

	/* Price / Quantity / Subtotal become label : value rows */
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-price,
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-quantity,
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 10px 0;
		border-bottom: 1px solid #F2F2F2;
		text-align: right;
	}

	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-price::before,
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-quantity::before,
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal::before {
		content: attr(data-title);
		font-family: var(--lc-font-body);
		font-size: 0.75rem;
		font-weight: 400;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: #5F6C72;
		text-align: left;
	}

	/* Last value row in the card sheds its divider */
	body.woocommerce-cart .shop_table.cart tbody tr.woocommerce-cart-form__cart-item td.product-subtotal {
		border-bottom: none;
		padding-bottom: 0;
	}

	/* Thumbnail: no label, sits at the top of the card */
	body.woocommerce-cart .shop_table.cart tbody tr td.product-thumbnail {
		padding: 0 0 12px;
		border: none;
	}

	body.woocommerce-cart .shop_table.cart .product-thumbnail img {
		width: 96px;
		height: 64px;
	}

	/* Product name: card title, leaves room for the remove button */
	body.woocommerce-cart .shop_table.cart tbody tr td.product-name {
		padding: 0 32px 12px 0;
		border-bottom: 1px solid #F2F2F2;
		margin-bottom: 4px;
		text-align: left !important;
	}

	body.woocommerce-cart .shop_table.cart tbody tr td.product-name a {
		font-size: 0.9375rem;
		font-weight: 500;
	}

	/* Suppress WooCommerce's "data-title:" labels on cells we lay out manually */
	body.woocommerce-cart .shop_table.cart tbody tr td.product-thumbnail::before,
	body.woocommerce-cart .shop_table.cart tbody tr td.product-name::before {
		content: none;
	}

	/* Remove (×) pinned to the card's top-right corner */
	body.woocommerce-cart .shop_table.cart tbody tr td.product-remove {
		position: absolute;
		top: 14px;
		right: 14px;
		width: auto;
		padding: 0;
		border: none;
	}

	/* Quantity widget stays compact on the right side of its row */
	body.woocommerce-cart .shop_table.cart .product-quantity .quantity {
		flex: 0 0 auto;
	}

	/* Inset the totals card (and any collaterals) to match the item cards */
	body.woocommerce-cart .cart-collaterals {
		padding: 0 16px;
		box-sizing: border-box;
	}
}

/* Empty Cart */
.lacanche-cart-empty {
	text-align: center;
	padding: 80px 24px;
	border-radius: 4px;
	margin-top: 24px;
}

.lacanche-cart-empty__heading {
	font-family: var(--lc-font-heading);
	font-size: 1.75rem;
	font-weight: 500;
	color: #191C1F;
	margin: 0 0 12px;
}

.lacanche-cart-empty__sub {
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #5F6C72;
	margin: 0 0 32px;
}

.lacanche-cart-empty__cta {
	display: inline-block;
	padding: 12px 32px;
	background: #953112;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-weight: 500;
	font-size: 1rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #FFFFFF !important;
	text-decoration: none !important;
	transition: background 0.2s;
}

.lacanche-cart-empty__cta:hover {
	background: #7a270e;
}

/* ════════════════════════════════════════════════════════
   CHECKOUT PAGE
   ════════════════════════════════════════════════════════ */

/* Page background */
body.woocommerce-checkout {
	background-color: #FFFAF1;
}

/* Back to shop link (checkout) */
.lacanche-back-to-shop--checkout {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	color: #953112;
	text-decoration: none;
	margin: 28px 0 12px;
}

.lacanche-back-to-shop--checkout:hover {
	color: #7a270e;
}

.lacanche-back-to-shop--checkout svg {
	stroke: #953112;
	flex-shrink: 0;
}

/* Checkout */

/* ── Single-column stacked layout ── */
form.checkout.woocommerce-checkout {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 0 0 80px;
	margin-top: 0 !important;
}

/* ── Card base ── */
.lc-co-card {
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.08);
	border-radius: 4px;
	overflow: hidden;
}

.lc-co-card__header {
	padding: 16px 20px;
	border-bottom: 1px solid #E4E7E9;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.lc-co-card__header h3 {
	font-family: var(--lc-font-heading);
	font-size: 1.25rem;
	font-weight: 500;
	color: #191C1F;
	margin: 0;
	padding: 0;
	border: none;
}

/* ── Billing edit trigger button ── */
.lc-billing-edit-trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	background: transparent;
	border: 1px solid #C9CFD2;
	border-radius: 20px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	color: #5F6C72 !important;
	cursor: pointer;
	transition: border-color 0.15s, color 0.15s;
	flex-shrink: 0;
	text-decoration: none !important;
	line-height: 1 !important;
	box-shadow: none !important;
}

.lc-billing-edit-trigger:hover,
a.lc-billing-edit-trigger:hover {
	border-color: #953112;
	color: #953112 !important;
	text-decoration: none !important;
}

/* ── Two-section address layout (Card 1) ── */
.lc-addr-sections {
	position: relative;
	overflow: hidden;
	border-top: 1px solid #E4E7E9;
}

.lc-addr-section {
	padding: 0;
}

/* Billing: full width, transitions to half when shipping is active.
   Box-sizing ensures padding/border don't overflow. */
.lc-addr-sections > .lc-addr-section:not(.lc-addr-section--shipping) {
	box-sizing: border-box;
	width: 100%;
	transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.lc-addr-sections--shipping-active > .lc-addr-section:not(.lc-addr-section--shipping) {
	width: 50%;
}

/* Shipping: absolutely positioned so it never affects the container's height.
   Slides in from the right edge at zero width. */
.lc-addr-section--shipping {
	position: absolute;
	top: 0;
	right: 0;
	box-sizing: border-box;
	width: 0;
	height: 100%;
	overflow: hidden;
	transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.lc-addr-sections--shipping-active .lc-addr-section--shipping {
	width: 50%;
	border-left: 1px solid #E4E7E9;
}

/* Shipping content fades + slides in after the column opens */
.lc-addr-section--shipping .lc-addr-section__header,
.lc-addr-section--shipping .lc-addr-section__body,
.lc-addr-section--shipping .lc-addr-summary {
	transform: translateX(24px);
	opacity: 0;
	transition: transform 0.28s ease 0.15s, opacity 0.28s ease 0.15s;
}

.lc-addr-sections--shipping-active .lc-addr-section--shipping .lc-addr-section__header,
.lc-addr-sections--shipping-active .lc-addr-section--shipping .lc-addr-section__body,
.lc-addr-sections--shipping-active .lc-addr-section--shipping .lc-addr-summary {
	transform: translateX(0);
	opacity: 1;
}

.lc-addr-section__header {
	display: flex;
	align-items: center;
	padding: 12px 20px;
	border-bottom: 1px solid #F2F4F5;
}

.lc-addr-section__title {
	font-family: var(--lc-font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #5F6C72;
}

.lc-addr-section__header .lc-billing-edit-trigger {
	margin-left: 10px;
	padding: 4px 10px;
	font-size: 0.75rem;
}

.lc-addr-section__none {
	font-style: italic;
	color: #5F6C72 !important;
}

.lc-addr-section__body {
	padding: 16px 20px;
}

/* ── Ship-to-different-address toggle ── */
.lc-addr-toggle {
	padding: 14px 20px;
	border-top: 1px solid #F2F4F5;
}

.lc-addr-toggle__label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	color: #5F6C72;
}

.lc-addr-toggle__input {
	width: 15px;
	height: 15px;
	accent-color: #953112;
	cursor: pointer;
	flex-shrink: 0;
}

.lc-addr-toggle__text {
	user-select: none;
}

/* ── Create account (guest checkout) ──
   Direct child of #lc-addr-options, so the button carries its own row
   spacing; 20px gutter matches .lc-addr-toggle. Outlined pill = secondary
   action next to the Edit triggers (filled red is reserved for Save / Place Order). */
.lc-create-account-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 14px 20px 18px;
	padding: 10px 20px;
	background: transparent;
	border: 1px solid #C9CFD2;
	border-radius: 999px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1;
	color: #191C1F;
	cursor: pointer;
	transition: border-color 0.15s, color 0.15s, background 0.15s;
	box-shadow: none;
	text-decoration: none;
}

.lc-create-account-btn:hover {
	border-color: #953112;
	color: #953112;
}

.lc-create-account-btn:focus-visible {
	outline: 2px solid #953112;
	outline-offset: 2px;
}

/* Hide WC's native ship-to-different-address checkbox (replaced by our toggle) */
body.woocommerce-checkout #ship-to-different-address {
	display: none !important;
}

/* ── Order notes (below address sections in Card 1) ── */
.lc-order-notes {
	border-top: 1px solid #F2F4F5;
	padding: 20px 20px 24px;
}

.lc-order-notes__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.lc-order-notes p.form-row {
	float: none !important;
	margin: 0 !important;
	padding: 0;
	clear: none !important;
	width: 100%;
}

.lc-order-notes textarea {
	width: 100%;
	min-height: 120px;
	padding: 12px 16px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #191C1F;
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 2px;
	box-sizing: border-box;
	resize: vertical;
	transition: border-color 0.2s;
	line-height: 1.5;
}

.lc-order-notes textarea:focus {
	border-color: #8C6F4D;
}

.lc-order-notes textarea::placeholder {
	color: #5F6C72;
}

/* Always show shipping fields inside our modal and inline section */
.lc-billing-modal .shipping_address,
.lc-addr-section--shipping .shipping_address {
	display: block !important;
}

@media (max-width: 600px) {
	/* On mobile, shipping stacks below billing instead of side-by-side.
	   Switch from absolute positioning back to block flow with max-height reveal. */
	.lc-addr-sections > .lc-addr-section:not(.lc-addr-section--shipping) {
		width: 100% !important;
		transition: none;
	}

	.lc-addr-section--shipping {
		position: static;
		width: 100% !important;
		height: auto;
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		transition: max-height 0.35s ease, opacity 0.3s ease;
	}

	.lc-addr-sections--shipping-active .lc-addr-section--shipping {
		max-height: 600px;
		opacity: 1;
		border-left: none;
		border-top: 1px solid #E4E7E9;
	}

	/* Reset desktop slide-in transforms on mobile */
	.lc-addr-section--shipping .lc-addr-section__header,
	.lc-addr-section--shipping .lc-addr-section__body,
	.lc-addr-section--shipping .lc-addr-summary {
		transform: none;
		opacity: 1;
		transition: none;
	}
}

/* ── Compact address summary section ── */
.lc-addr-summary {
	padding-left: 16px;
	padding-bottom: 20px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.lc-addr-summary p {
	margin: 0;
}

.lc-addr-summary__name {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 600;
	color: #191C1F;
	margin: 0;
}

.lc-addr-summary__line {
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 400;
	color: #5F6C72;
	margin: 0;
}

.lc-addr-summary__contact {
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	color: #5F6C72;
	margin: 4px 0 0;
}

/* ── Billing edit modal ── */
.lc-billing-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.lc-billing-modal[aria-hidden="true"] {
	display: none;
}

.lc-billing-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.lc-billing-modal__dialog {
	position: relative;
	background: #fff;
	border-radius: 8px;
	width: 100%;
	max-width: 560px;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
	overflow: hidden;
}

.lc-billing-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 24px;
	border-bottom: 1px solid #E4E7E9;
	flex-shrink: 0;
}

.lc-billing-modal__head h2 {
	font-family: var(--lc-font-heading);
	font-size: 1.25rem;
	font-weight: 500;
	color: #191C1F;
	margin: 0;
}

.lc-billing-modal__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 50%;
	color: #5F6C72;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}

.lc-billing-modal__close:hover {
	background: #F2F4F5;
	color: #191C1F;
}

.lc-billing-modal__body {
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	flex: 1;
	padding: 24px;
}

/* WC billing fields inside modal inherit checkout field styles */
.lc-billing-modal .woocommerce-billing-fields > h3,
.lc-billing-modal .woocommerce-shipping-fields > h3:not(#ship-to-different-address),
.lc-billing-modal .woocommerce-additional-fields > h3 {
	display: none;
}

.lc-billing-modal .woocommerce-billing-fields__field-wrapper,
.lc-billing-modal .woocommerce-shipping-fields__field-wrapper,
.lc-billing-modal .woocommerce-additional-fields__field-wrapper,
.lc-billing-modal .woocommerce-address-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.lc-billing-modal p.form-row {
	float: none !important;
	margin: 0 !important;
	padding: 0;
	clear: none !important;
}

.lc-billing-modal p.form-row-first,
.lc-billing-modal p.form-row-last {
	width: calc(50% - 8px);
}

.lc-billing-modal p.form-row-wide {
	width: 100%;
}

/* ── Show/hide password toggle inside modals ──
   WC's own rules are scoped to `.woocommerce form`, but the account modal is
   moved to <body> when it opens, so they stop matching. Re-pin the toggle
   inside the input's right edge and supply the eye icons via mask-image so
   the skin can recolor them with `color`. */
.lc-billing-modal .password-input {
	display: block;
	position: relative;
}

.lc-billing-modal .password-input input[type="password"],
.lc-billing-modal .password-input input[type="text"] {
	padding-right: 48px !important;
}

.lc-billing-modal .password-input input::-ms-reveal {
	display: none;
}

.lc-billing-modal .show-password-input {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: #5F6C72;
	cursor: pointer;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	transition: color 0.15s, background 0.15s;
}

.lc-billing-modal .show-password-input:hover {
	color: #191C1F;
	background: #F2F4F5;
}

.lc-billing-modal .show-password-input:focus-visible {
	outline: 2px solid #953112;
	outline-offset: 2px;
}

.lc-billing-modal .show-password-input::before {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>') center / contain no-repeat;
}

.lc-billing-modal .show-password-input.display-password::before {
	-webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>') center / contain no-repeat;
}

.lc-billing-modal__footer {
	display: flex;
	justify-content: flex-end;
	padding: 16px 24px;
	border-top: 1px solid #E4E7E9;
	flex-shrink: 0;
}

.lc-billing-modal__save {
	display: inline-flex;
	align-items: center;
	padding: 11px 28px;
	background: #953112;
	color: #fff;
	border: none;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: background 0.15s;
}

.lc-billing-modal__save:hover {
	background: #7a270e;
}

/* !important: style.css sets `body { overflow: auto !important }`, which
   would otherwise win and let the page scroll behind an open modal. */
body.lc-modal-open {
	overflow: hidden !important;
}
/* Reaching the end of the modal's own scroll shouldn't hand the wheel to the page. */
.lc-billing-modal__body {
	overscroll-behavior: contain;
}

/* ── Warranty modal (product page) ──
   Same shell as the billing modal; the content is page text, so the theme's
   .public type scale (1.125rem, 1.5rem after every p AND li) is pulled in to
   a compact policy block. Selectors carry .public to match that specificity. */
.lc-billing-modal--warranty .lc-billing-modal__dialog {
	max-width: 640px;
}
.lc-billing-modal--warranty .lc-billing-modal__body {
	padding: 20px 24px 24px;
}
.public .lc-warranty-modal__content p,
.public .lc-warranty-modal__content li {
	font-size: 0.9375rem;
	line-height: 1.45;
	margin: 0 0 10px;
}
.public .lc-warranty-modal__content li {
	margin-bottom: 4px;
}
.public .lc-warranty-modal__content ul,
.public .lc-warranty-modal__content ol {
	margin: 0 0 12px;
	padding-left: 20px;
}
.public .lc-warranty-modal__content h2,
.public .lc-warranty-modal__content h3,
.public .lc-warranty-modal__content h4 {
	font-family: "Satoshi-Variable", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	margin: 18px 0 6px;
}
.public .lc-warranty-modal__content > :first-child {
	margin-top: 0;
}
.public .lc-warranty-modal__content > :last-child {
	margin-bottom: 0;
}

.lc-co-card__body {
	padding: 24px 20px;
}

/* Hide the default "Your order" h3 */
h3#order_review_heading {
	display: none;
}

/* #order_review: single merged card — summary on top, payment seamlessly below */
#order_review.woocommerce-checkout-review-order {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: 0;
	position: static;
	animation: lacanche-fade-in 0.3s ease;
}

/* Summary card keeps its full styling */
#order_review .lc-co-card--summary {
	order: 1;
}

/* Payment card attaches flush below summary — no gap, no top radius */
#order_review .lc-co-card--payment {
	order: 2;
	border-top: none;
	border-radius: 0 0 4px 4px;
	box-shadow: none;
}

/* ── Section headings: hide WC-generated ones (card header replaces them) ── */
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3:not(#ship-to-different-address) {
	display: none;
}

/* ── Field wrappers as flex row ── */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

/* Inside two-section layout, give form fields the section body padding */
.lc-addr-section__body .woocommerce-billing-fields,
.lc-addr-section__body .woocommerce-shipping-fields,
.lc-addr-section__body .woocommerce-additional-fields {
	padding: 0;
}

/* Reset WooCommerce float layout on form rows */
body.woocommerce-checkout p.form-row {
	float: none !important;
	margin: 0 !important;
	padding: 0;
	clear: none !important;
}

body.woocommerce-checkout p.form-row-first,
body.woocommerce-checkout p.form-row-last {
	width: calc(50% - 8px);
}

body.woocommerce-checkout p.form-row-wide {
	width: 100%;
}

/* ── Labels ── */
/* Smaller than the value it labels. The inputs below are 1rem (raised
   from 14px so iOS Safari stops auto-zooming the address form on every
   field); at 1rem the label would tie with them, and it read larger
   than its own value before that. */
body.woocommerce-checkout .form-row label {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.1875;
	color: #191C1F;
	margin: 0 0 8px;
	display: block;
}

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

body.woocommerce-checkout .form-row label .optional {
	font-weight: 400;
	color: #5F6C72;
	font-size: 0.875rem;
}

/* ── Text inputs ── */
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row input[type="text"],
body.woocommerce-checkout .form-row input[type="email"],
body.woocommerce-checkout .form-row input[type="tel"],
body.woocommerce-checkout .form-row input[type="number"],
body.woocommerce-checkout .form-row input[type="password"] {
	height: 44px;
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 2px;
	padding: 0 16px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	font-weight: 400;
	color: #191C1F;
	width: 100%;
	box-sizing: border-box;
	transition: border-color 0.2s;
	box-shadow: none;
}

body.woocommerce-checkout .form-row input.input-text:focus {
	border-color: #8C6F4D;
}

body.woocommerce-checkout .form-row input.input-text::placeholder {
	color: #5F6C72;
}

/* ── Select2 dropdowns ── */
body.woocommerce-checkout .form-row .select2-container {
	width: 100% !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single {
	height: 44px;
	background: #FFFFFF;
	border: 1px solid #E4E7E9 !important;
	border-radius: 2px !important;
	box-shadow: none !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	height: 44px;
	line-height: 3.1429;
	padding: 0 40px 0 16px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	font-weight: 400;
	color: #191C1F;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__placeholder {
	color: #5F6C72;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px;
	width: 36px;
	right: 6px;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: #5F6C72 transparent transparent transparent;
	border-width: 5px 4px 0 4px;
	margin-top: -2px;
}

body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
	border-color: #8C6F4D !important;
}

/* Native select fallback */
body.woocommerce-checkout .form-row select {
	height: 44px;
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 2px;
	padding: 0 40px 0 16px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #191C1F;
	width: 100%;
	box-sizing: border-box;
	appearance: none;
	-webkit-appearance: none;
}

/* ── "Ship to a different address?" heading ── */
body.woocommerce-checkout h3#ship-to-different-address {
	font-family: var(--lc-font-heading);
	font-size: 1.5rem;
	font-weight: 500;
	color: #191C1F;
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
	margin: 0 0 36px;
	border: none;
	padding: 0;
}

body.woocommerce-checkout h3#ship-to-different-address label {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
	cursor: pointer;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 12px;
}

body.woocommerce-checkout h3#ship-to-different-address input[type="checkbox"] {
	width: 20px;
	height: 20px;
	border: 1px solid #C9CFD2;
	border-radius: 2px;
	accent-color: #953112;
	cursor: pointer;
	flex-shrink: 0;
}

/* ── Order Summary: horizontal items ── */
.lc-order-summary__items {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid #E4E7E9;
}

/* Header + item rows share the same 4-column grid */
.lc-osi-header,
.lc-osi-row {
	display: grid;
	grid-template-columns: 1fr 48px 90px 90px;
	align-items: center;
}

/* Column header labels */
.lc-osi-header {
	background: #FAFAFA;
	border-bottom: 1px solid #E4E7E9;
}

.lc-osi-header > span {
	padding: 8px 12px;
	font-family: var(--lc-font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #5F6C72;
}

/* Item rows */
.lc-osi-row {
	border-bottom: 1px solid #F2F4F5;
}

.lc-osi-row:last-child {
	border-bottom: none;
}

/* Product column: thumbnail + name side by side */
.lc-osi__product {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px;
}

.lc-osi__thumb img {
	width: 80px;
	height: 80px;
	object-fit: contain;
	object-position: center;
	border-radius: 2px;
	flex-shrink: 0;
}

.lc-osi__name {
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	color: #191C1F;
	line-height: 1.4;
}

.lc-osi__name .variation {
	font-size: 0.75rem;
	font-weight: 400;
	color: #5F6C72;
	margin: 2px 0 0;
}

/* Qty, Price, Total columns */
.lc-osi__qty,
.lc-osi__price,
.lc-osi__total {
	padding: 12px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	color: #191C1F;
	text-align: right;
}

.lc-osi__qty {
	text-align: center;
	color: #5F6C72;
}

.lc-osi__total {
	font-weight: 600;
	padding-right: 20px;
}

/* Align header labels to match cell alignment */
.lc-osi-header .lc-osi__qty  { text-align: center; }
.lc-osi-header .lc-osi__price,
.lc-osi-header .lc-osi__total { text-align: right; }
.lc-osi-header .lc-osi__total { padding-right: 20px; }

/* ── Order Summary: totals ── */
.lc-order-summary__totals {
	padding: 4px 20px 16px;
}

.lc-order-summary__total-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 0;
	border-bottom: 1px solid #F2F4F5;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
}

.lc-order-summary__total-row:last-child {
	border-bottom: none;
}

.lc-order-summary__total-label {
	color: #5F6C72;
	font-weight: 400;
}

.lc-order-summary__total-value {
	font-weight: 500;
	color: #191C1F;
	text-align: right;
}

.lc-order-summary__total-row--order-total {
	margin-top: 4px;
	padding-top: 12px;
	border-top: 2px solid #E4E7E9;
	border-bottom: none;
}

.lc-order-summary__total-row--order-total .lc-order-summary__total-label {
	font-family: var(--lc-font-heading);
	font-size: 0.9375rem;
	font-weight: 500;
	color: #191C1F;
}

.lc-order-summary__total-row--order-total .lc-order-summary__total-value {
	font-family: var(--lc-font-heading);
	font-size: 0.9375rem;
	font-weight: 600;
	color: #191C1F;
}

/* ── Order summary items: stacked-card layout on mobile ──
   The 4-column grid (product / qty / price / total) crushes the product name on
   narrow screens, so below 768px each row becomes a card: thumbnail + name on
   top, then qty/price/total as label:value rows (the header row hides; labels
   come from ::before). Shared by the checkout review and account view-order. */
@media (max-width: 768px) {
	.lc-osi-header {
		display: none;
	}

	.lc-osi-row {
		display: block;
		padding: 14px 16px;
	}

	.lc-osi__product {
		padding: 0 0 10px;
	}

	.lc-osi__thumb img {
		width: 56px;
		height: 56px;
	}

	.lc-osi__qty,
	.lc-osi__price,
	.lc-osi__total {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 7px 0;
		text-align: right;
		border-top: 1px solid #F2F4F5;
	}

	.lc-osi__qty::before,
	.lc-osi__price::before,
	.lc-osi__total::before {
		font-family: var(--lc-font-body);
		font-size: 0.6875rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.06em;
		color: #5F6C72;
	}

	.lc-osi__qty::before {
		content: "Qty";
	}

	.lc-osi__price::before {
		content: "Price";
	}

	.lc-osi__total::before {
		content: "Total";
	}

	/* Reset desktop padding/alignment now that these are label:value rows */
	.lc-osi__total {
		padding-right: 0;
	}
}

/* ── Payment card — override WooCommerce defaults on #payment ── */
#payment.woocommerce-checkout-payment {
	background: #FFFFFF !important;
	padding: 0 !important;
	margin: 0 !important;
}

ul.wc_payment_methods.payment_methods.methods,
#payment .payment_methods {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 20px !important;
	border: none !important;
}

#payment .payment_methods li.payment_method {
	list-style: none !important;
	padding: 12px 0;
	border-bottom: 1px solid #E4E7E9 !important;
	background: none !important;
}

#payment .payment_methods li.payment_method:last-child {
	border-bottom: none !important;
}

body.woocommerce-checkout #payment .payment_methods li.payment_method label {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #191C1F;
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	margin: 0;
}

#payment .payment_methods li.payment_method input[type="radio"] {
	accent-color: #953112;
	cursor: pointer;
	flex-shrink: 0;
}

#payment .payment_box {
	background: #FFFAF1 !important;
	border-radius: 4px;
	padding: 12px 16px;
	margin-top: 8px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	color: #5F6C72;
	border: 1px solid #E4E7E9;
}

/* Privacy policy text above place order */
#payment .woocommerce-terms-and-conditions-wrapper {
	padding: 0 20px;
	margin-bottom: 4px;
}

#payment .woocommerce-privacy-policy-text {
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	color: #5F6C72;
	margin: 0;
}

#payment .woocommerce-privacy-policy-text p {
	margin: 0;
}

/* ── Saved payment method chips (Stripe tokens) ── */

/* Hide the outer gateway radio when Stripe is the only gateway or has saved methods */
#payment .payment_methods li.wc_payment_method {
	list-style: none !important;
	padding: 0 !important;
	border-bottom: none !important;
}

/* Gateway label (top-level "Credit / Debit Card") — hide when only one gateway */
#payment .payment_methods li.wc_payment_method > label {
	display: none;
}

/* Show gateway label only when multiple gateways exist */
#payment .payment_methods li.wc_payment_method:not(:only-child) > label {
	display: flex;
	padding: 12px 0 8px;
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: #5F6C72;
}

/* The chip's <label> is the visible control, but the radio still has to
   be reachable: display:none drops it out of the tab order entirely, so
   a keyboard user cannot choose a payment method at all. Hide it
   visually instead and let the :has(input:focus-visible) rule at the top
   of this file put the ring on the chip. */
#payment .payment_methods li.wc_payment_method > input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Payment box — the container for saved cards + UPE form */
#payment .payment_methods li.wc_payment_method .payment_box {
	background: transparent !important;
	border: none !important;
	padding: 0 20px 8px !important;
	margin: 0 !important;
}

/* Saved payment tokens list */
ul.woocommerce-SavedPaymentMethods {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* Each saved token */
li.woocommerce-SavedPaymentMethods-token,
li.woocommerce-SavedPaymentMethods-new {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border: 1.5px solid #E4E7E9;
	border-radius: 6px;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}

li.woocommerce-SavedPaymentMethods-token:hover,
li.woocommerce-SavedPaymentMethods-new:hover {
	border-color: #C9CFD2;
	background: #FAFBFC;
}

/* Highlighted state when radio inside is checked */
li.woocommerce-SavedPaymentMethods-token:has(input:checked) {
	border-color: #953112;
	background: #FEF9F6;
}

li.woocommerce-SavedPaymentMethods-new:has(input:checked) {
	border-color: #953112;
	background: #FEF9F6;
}

/* Hide the raw radio button — clicking the whole chip selects it */
li.woocommerce-SavedPaymentMethods-token input[type="radio"],
li.woocommerce-SavedPaymentMethods-new input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

/* Custom radio dot */
li.woocommerce-SavedPaymentMethods-token label::before,
li.woocommerce-SavedPaymentMethods-new label::before {
	content: '';
	display: inline-flex;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid #C9CFD2;
	flex-shrink: 0;
	transition: border-color 0.15s;
}

li.woocommerce-SavedPaymentMethods-token:has(input:checked) label::before,
li.woocommerce-SavedPaymentMethods-new:has(input:checked) label::before {
	border-color: #953112;
	background: radial-gradient(circle, #953112 40%, transparent 42%);
}

li.woocommerce-SavedPaymentMethods-token label,
li.woocommerce-SavedPaymentMethods-new label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #191C1F;
	cursor: pointer;
	margin: 0;
	width: 100%;
}

/* Card icon before the label text */
li.woocommerce-SavedPaymentMethods-token label {
	gap: 10px;
}

/* "Use a new payment method" — slightly different treatment */
li.woocommerce-SavedPaymentMethods-new label {
	color: #5F6C72;
	font-weight: 400;
}

li.woocommerce-SavedPaymentMethods-new:has(input:checked) label {
	color: #953112;
	font-weight: 500;
}

/* Stripe UPE form — outer fieldset wrapping the card entry iframe */
#wc-stripe-upe-form.wc-upe-form {
	padding: 12px 16px;
	border: 1px solid #E4E7E9;
	border-radius: 8px;
	background: #fff;
	transition: border-color 0.15s;
	margin-bottom: 8px;
}

/*
 * Hidden input that Stripe UPE reads via getComputedStyle to build its
 * Appearance API object. Properties set here map directly to the iframe styles.
 */
#wc-stripe-hidden-style-input {
	color: #191C1F !important;
	background-color: #ffffff !important;
	font-family: var(--lc-font-body) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	border: 1px solid #E4E7E9 !important;
	border-radius: 8px !important;
	padding: 10px 14px !important;
	box-shadow: none !important;
}

/* Inner UPE element — no extra border, fieldset handles the container */
.wc-stripe-upe-element {
	border: none;
	background: transparent;
}

/* Classic Stripe card fields — outer iframe wrappers */
.wc-stripe-elements-field,
#stripe-card-element,
#stripe-exp-element,
#stripe-cvc-element {
	border: 1px solid #E4E7E9;
	border-radius: 8px;
	padding: 10px 14px;
	background: #fff;
	transition: border-color 0.15s;
}

.wc-stripe-elements-field.focused,
#stripe-card-element.focused,
#stripe-exp-element.focused,
#stripe-cvc-element.focused {
	border-color: #953112;
}

.wc-stripe-elements-field.invalid,
#stripe-card-element.invalid,
#stripe-exp-element.invalid,
#stripe-cvc-element.invalid {
	border-color: #EE1D52;
}

/* Check payment method — keep as a simple radio row */
li.payment_method_cheque .payment_box {
	display: none;
}

/* Stripe test mode info */
.testmode-info {
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	color: #5F6C72;
	background: #FFFAF1;
	border: 1px solid #E4E7E9;
	border-radius: 4px;
	padding: 10px 12px;
	margin: 0 0 12px;
}

/* Save new payment method checkbox */
.payment_box fieldset:not([class]):not([id]) {
	display: none;
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}

/* Pre-hide save-new checkbox so it doesn't flash before the payment JS runs.
   Shown (via body.lc-show-save-card) only for logged-in users while a new card
   is the active choice — see the save-card helper in checkout/payment.php.
   !important overrides Stripe's inline display toggling, which otherwise hides
   it inconsistently. */
.woocommerce-SavedPaymentMethods-saveNew {
	display: none;
}

/* When shown, lay out as a tight single row — regardless of whether visibility
   came from body.lc-show-save-card or Stripe's inline display:block toggle (the
   UPE renderer emits a bare <p> and sets style="display: block" on it directly). */
body.lc-show-save-card .woocommerce-SavedPaymentMethods-saveNew,
.woocommerce-SavedPaymentMethods-saveNew[style*="display: block"],
.woocommerce-SavedPaymentMethods-saveNew[style*="display:block"] {
	display: flex !important;
	align-items: center;
	gap: 6px;
	margin: 10px 0 0;
	padding: 0;
}

/* The abstract-gateway renderer wraps the checkbox in an unclassed <fieldset>,
   which .payment_box fieldset:not([class]):not([id]) hides. Re-show that wrapper
   when the save option is revealed. (UPE renderer has no fieldset.) */
body.lc-show-save-card .payment_box fieldset:has(.woocommerce-SavedPaymentMethods-saveNew) {
	display: block !important;
}

fieldset.woocommerce-SavedPaymentMethods-saveNew {
	border: none;
	padding: 4px 0 0;
	margin: 4px 0 0;
}

.woocommerce-SavedPaymentMethods-saveNew label {
	font-family: var(--lc-font-body);
	/* Override body.woocommerce-checkout .form-row label (margin/size/weight). */
	font-size: 0.8125rem !important;
	font-weight: 400 !important;
	color: #5F6C72;
	cursor: pointer;
	display: inline;
	margin: 0 !important;
	padding: 0;
	line-height: 1.3;
	vertical-align: middle;
}

.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
	accent-color: #953112;
	cursor: pointer;
	width: 16px !important;
	height: 16px;
	margin: 0 !important;
	flex: 0 0 auto;
	vertical-align: middle;
}

/* ── Place Order button ── */
body.woocommerce-checkout .place-order {
	padding: 16px 20px 20px;
	margin: 0;
}

body.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	padding: 15px 24px;
	background: #953112;
	border: none;
	border-radius: 4px;
	font-family: var(--lc-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #FFFFFF;
	cursor: pointer;
	transition: background 0.2s;
	box-sizing: border-box;
}

body.woocommerce-checkout #place_order:hover {
	background: #7a270e;
}

body.woocommerce-checkout #place_order:hover {
	background: #7a270e;
}

/* ── My Account: Add payment method modal (iframe) ── */
.lc-apm-modal__body {
	padding: 0;
	overflow: hidden;
	position: relative;
}

/* Loading overlay — hides the iframe's intermediate page render on success
   (and through the parent reload) so it doesn't flash the payment-methods page. */
.lc-apm-modal__loader {
	position: absolute;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	background: #fff;
	z-index: 2;
}

.lc-apm-modal--loading .lc-apm-modal__loader {
	display: flex;
}

.lc-apm-modal__spinner {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 3px solid #E4E7E9;
	border-top-color: #953112;
	animation: lc-apm-spin 0.8s linear infinite;
}

@keyframes lc-apm-spin {
	to {
		transform: rotate(360deg);
	}
}

.lc-apm-modal__iframe {
	display: block;
	width: 100%;
	height: 480px;
	border: 0;
	overflow: hidden;
}

/* Bare add-payment-method document rendered inside the iframe */
body.lc-apm-bare {
	background: #FFFAF1;
	margin: 0;
	padding: 0;
}

body.lc-apm-bare .lc-apm-bare__wrap {
	max-width: 100%;
}

/* The iframe already supplies the card chrome; drop the inner card shadow/border
   so it doesn't double up inside the modal. */
body.lc-apm-bare #payment.lc-co-card {
	box-shadow: none;
	border: none;
}

/* The modal already shows an "Add Payment Method" header, so hide the form's. */
body.lc-apm-bare #payment.lc-co-card .lc-co-card__header {
	display: none;
}

/* Bare modal: collapse the single-gateway chrome (radio, label, pointer, and the
   payment-box background/border) so it shows as just the card form, flush under
   the modal head. Scoped with #payment so it beats the generic `#payment
   .payment_box` rule (which carries an id and otherwise wins). */
body.lc-apm-bare #add_payment_method .payment_methods {
	margin: 0 !important;
	padding: 12px 4px 0 !important;
	list-style: none !important;
}

body.lc-apm-bare #payment .payment_methods > li {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	list-style: none !important;
}

body.lc-apm-bare #payment .payment_methods > li > input[type="radio"],
body.lc-apm-bare #payment .payment_methods > li > label {
	display: none !important;
}

body.lc-apm-bare #payment .payment_box {
	margin: 0 !important;
	padding: 0 16px !important;
	background: transparent !important;
	border: none !important;
}

body.lc-apm-bare #payment .payment_box::before {
	display: none !important;
	content: none !important;
}

/* ── My Account: Add payment method page (mirrors checkout card) ── */
#add_payment_method .payment_methods {
	margin: 0;
	padding: 20px;
	list-style: none;
	border: none;
}

#add_payment_method .payment_methods li {
	list-style: none;
}

#add_payment_method .place-order {
	margin: 0;
	padding: 16px 20px 20px;
	border-top: 1px solid #E4E7E9;
}

#add_payment_method #place_order {
	display: block;
	width: 100%;
	padding: 15px 24px;
	background: #953112;
	border: none;
	border-radius: 4px;
	font-family: var(--lc-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #FFFFFF;
	cursor: pointer;
	transition: background 0.2s;
	box-sizing: border-box;
}

#add_payment_method #place_order:hover {
	background: #7a270e;
}

/* ── Inline validation ── */
body.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection--single {
	border-color: #c0392b !important;
}

body.woocommerce-checkout .form-row.woocommerce-validated input.input-text {
	border-color: #27ae60 !important;
}

/* ── Checkout notices (span full grid width) ──
   Visual treatment comes from the site-wide notice block further down. */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info {
	grid-column: 1 / -1;
	margin: 0 0 24px;
}

/* ── Coupon form ── */
body.woocommerce-checkout .checkout_coupon {
	grid-column: 1 / -1;
	border: 1px solid #E4E7E9;
	border-radius: 4px;
	padding: 20px;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
	/* Single-column layout is already the default; no grid to collapse. */
}

@media (max-width: 600px) {
	body.woocommerce-checkout p.form-row-first,
	body.woocommerce-checkout p.form-row-last {
		width: 100%;
	}
}

/* ════════════════════════════════════════════════════════
   THANK YOU PAGE
   ════════════════════════════════════════════════════════ */

.lacanche-thankyou {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 60px 24px 48px;
	max-width: 560px;
	margin: 0 auto;
}

.lacanche-thankyou__icon {
	width: 64px;
	height: 64px;
	color: #203B44;
	margin-bottom: 24px;
}

.lacanche-thankyou__heading {
	font-family: var(--lc-font-heading);
	font-size: 2rem;
	color: #203B44;
	margin: 0 0 16px;
}

.lacanche-thankyou__sub {
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #5a5a5a;
	line-height: 1.6;
	margin: 0 0 36px;
}

.lacanche-thankyou__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.lacanche-thankyou__details-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 28px;
	background: #203B44;
	color: #fff;
	font-family: var(--lc-font-body);
	font-size: 0.9rem;
	font-weight: 600;
	border: none;
	border-radius: 30px;
	cursor: pointer;
	transition: background 0.2s;
}

.lacanche-thankyou__details-btn:hover {
	background: #16292f;
}

.lacanche-thankyou__details-btn svg {
	flex-shrink: 0;
	transition: transform 0.2s;
}

.lacanche-thankyou__shop-btn {
	display: inline-flex;
	align-items: center;
	padding: 12px 28px;
	background: transparent;
	color: #203B44;
	font-family: var(--lc-font-body);
	font-size: 0.9rem;
	font-weight: 600;
	border: 2px solid #203B44;
	border-radius: 30px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.lacanche-thankyou__shop-btn:hover {
	background: #203B44;
	color: #fff;
}

/* Order details panel */
.lacanche-thankyou__order-details {
	max-width: 760px;
	margin: 0 auto 60px;
	padding: 0 24px;
}

.lacanche-thankyou__order-details table.woocommerce-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--lc-font-body);
	font-size: 0.9rem;
}

.lacanche-thankyou__order-details table.woocommerce-table th,
.lacanche-thankyou__order-details table.woocommerce-table td {
	padding: 12px 16px;
	border-bottom: 1px solid #e8e0d4;
	text-align: left;
	vertical-align: top;
}

.lacanche-thankyou__order-details table.woocommerce-table thead th {
	background: #203B44;
	color: #fff;
	font-weight: 600;
}

.lacanche-thankyou__order-details table.woocommerce-table tfoot tr:last-child td,
.lacanche-thankyou__order-details table.woocommerce-table tfoot tr:last-child th {
	font-weight: 700;
	color: #203B44;
}

/* ── Address cards ── */
.lacanche-thankyou__order-details .woocommerce-customer-details {
	margin-top: 32px;
}

.lacanche-thankyou__order-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.lacanche-thankyou__order-details .woocommerce-columns--addresses::before,
.lacanche-thankyou__order-details .woocommerce-columns--addresses::after {
	display: none;
}

.lacanche-thankyou__order-details .woocommerce-columns--addresses .col-1,
.lacanche-thankyou__order-details .woocommerce-columns--addresses .col-2 {
	float: none;
	width: auto;
}

.lacanche-thankyou__order-details .woocommerce-column--billing-address,
.lacanche-thankyou__order-details .woocommerce-column--shipping-address {
	background: #FFFAF1;
	border: 1px solid #e8e0d4;
	border-radius: 6px;
	padding: 20px 24px;
}

.lacanche-thankyou__order-details .woocommerce-column__title {
	font-family: var(--lc-font-heading);
	font-size: 0.95rem;
	font-weight: 600;
	color: #203B44;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 12px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e8e0d4;
}

.lacanche-thankyou__order-details address {
	font-family: var(--lc-font-body);
	font-size: 0.9rem;
	line-height: 1.7;
	color: #444;
	font-style: normal;
}

.lacanche-thankyou__order-details .woocommerce-customer-details--phone {
	margin: 6px 0 0;
	color: #666;
}

.lacanche-thankyou__order-details .woocommerce-customer-details--email {
	display: none;
}

/* If only billing (no shipping), let it span full width */
.lacanche-thankyou__order-details .woocommerce-customer-details > h2,
.lacanche-thankyou__order-details .woocommerce-customer-details > address {
	background: #FFFAF1;
	border: 1px solid #e8e0d4;
	border-radius: 6px;
	padding: 20px 24px;
	max-width: 420px;
}

.lacanche-thankyou__order-details .woocommerce-customer-details > h2 {
	font-family: var(--lc-font-heading);
	font-size: 0.95rem;
	font-weight: 600;
	color: #203B44;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0;
	border-bottom: none;
	border-radius: 6px 6px 0 0;
	border-bottom: 0;
	padding-bottom: 0;
}

@media (max-width: 600px) {
	.lacanche-thankyou__order-details .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.lacanche-thankyou__heading {
		font-size: 1.5rem;
	}
	.lacanche-thankyou__actions {
		flex-direction: column;
		align-items: stretch;
	}
	.lacanche-thankyou__details-btn,
	.lacanche-thankyou__shop-btn {
		justify-content: center;
	}
}

/* ════════════════════════════════════════════════════════
   MY ACCOUNT — LOGGED IN DASHBOARD TODO: FINALIZE DESIGN
   ════════════════════════════════════════════════════════ */

/* ── Page layout: sidebar + content ── */
/* ════════════════════════════════════════════════════════
   MY ACCOUNT — horizontal tab layout
   ════════════════════════════════════════════════════════ */

.lacanche-account {
	display: flex;
	flex-direction: column;
	padding: 40px 0 80px;
	gap: 0;
}

/* ── Header + nav card ── */
.lacanche-account__card {
	background: #fff;
	border: 1px solid #E4E7E9;
	border-radius: 10px;
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
	margin-bottom: 32px;
	overflow: hidden;
}

/* ── User header strip ── */
.lacanche-account__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid #E4E7E9;
	margin-bottom: 0;
}

.lacanche-account__header-user {
	display: flex;
	align-items: center;
	gap: 12px;
}

.lacanche-account__header-avatar img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #E4E7E9;
	display: block;
}

.lacanche-account__header-user-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.lacanche-account__header-name {
	font-family: var(--lc-font-heading);
	font-size: 0.9375rem;
	font-weight: 500;
	color: #191C1F;
}

.lacanche-account__header-email {
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	color: #5F6C72;
}

.lacanche-account__logout {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	color: #5F6C72;
	text-decoration: none;
	transition: color 0.15s;
}

.lacanche-account__logout:hover {
	color: #953112;
}

/* ── Horizontal tab bar ── */
.lacanche-account__nav {
	border-bottom: 2px solid #E4E7E9;
	margin-bottom: 0;
	background: none;
	border-radius: 0;
	border-left: none;
	border-right: none;
	border-top: none;
	overflow: visible;
	position: static;
	padding: 0 8px;
}

.lacanche-account__nav-list {
	display: flex;
	flex-direction: row;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
}

.lacanche-account__nav-item {
	margin: 0;
	list-style: none;
}

.lacanche-account__nav-item::marker {
	display: none;
	content: '';
}

.lacanche-account__nav-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 14px 20px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #5F6C72;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: color 0.15s, border-color 0.15s;
	white-space: nowrap;
	border-left: none;
	background: none;
}

.lacanche-account__nav-link:hover {
	color: #191C1F;
	background: none;
}

.lacanche-account__nav-link--active,
.lacanche-account__nav-item.woocommerce-MyAccount-navigation-link--is-active .lacanche-account__nav-link {
	color: rgb(var(--red));
	border-bottom-color: rgb(var(--red));
	font-weight: 600;
	background: none;
}

.lacanche-account__nav-icon {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	color: inherit;
}

/* ── Content area ── */
.lacanche-account__content {
	min-width: 0;
	padding: 24px;
}

.woocommerce-MyAccount-content {
	padding: 0;
}

/* Header actions (logout + hamburger). Hamburger + off-canvas chrome are
   desktop-hidden; revealed at <=768px. */
.lacanche-account__header-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.lacanche-account__menu-toggle,
.lacanche-account__nav-head,
.lacanche-account__nav-close,
.lacanche-account__nav-item--logout,
.lacanche-account__nav-backdrop {
	display: none;
}

/* ── Responsive ── */
@media (max-width: 768px) {
	/* Swap the header logout link for a hamburger toggle */
	.lacanche-account__logout {
		display: none;
	}

	.lacanche-account__menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		padding: 0;
		background: none;
		border: 1px solid #E4E7E9;
		border-radius: 8px;
		color: #191C1F;
		cursor: pointer;
	}

	/* Off-canvas panel */
	.lacanche-account__nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: 82%;
		max-width: 320px;
		margin: 0;
		padding: 0;
		background: #fff;
		border: none;
		box-shadow: -6px 0 30px rgba(0, 0, 0, 0.18);
		transform: translateX(100%);
		/* Keep the closed panel non-painting. Without this it flashes
		   on-screen when the breakpoint applies the transform during an
		   orientation change / resize (the transform animates from the
		   desktop state). visibility is delayed so the close slide still
		   plays, then hides. */
		visibility: hidden;
		transition: transform 0.25s ease, visibility 0s linear 0.25s;
		overflow-y: auto;
		z-index: 1000;
	}

	.lacanche-account__nav.is-open {
		transform: translateX(0);
		visibility: visible;
		transition: transform 0.25s ease, visibility 0s;
	}

	/* While the viewport is being resized (e.g. rotating the device across
	   the breakpoint), kill the transition so the panel snaps to its closed
	   state instead of animating on-screen. The resize guard class is toggled
	   by the nav script. */
	html.lc-resizing .lacanche-account__nav {
		transition: none !important;
	}

	.lacanche-account__nav-backdrop:not([hidden]) {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.4);
		z-index: 999;
	}

	.lacanche-account__nav-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 18px 20px;
		border-bottom: 1px solid #E4E7E9;
	}

	.lacanche-account__nav-head-title {
		font-family: var(--lc-font-heading);
		font-size: 1.125rem;
		font-weight: 500;
		color: #191C1F;
	}

	.lacanche-account__nav-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		padding: 0;
		background: none;
		border: none;
		border-radius: 50%;
		color: #5F6C72;
		cursor: pointer;
	}

	.lacanche-account__nav-close:hover {
		background: #F2F4F5;
		color: #191C1F;
	}

	/* Stack nav items vertically */
	.lacanche-account__nav-list {
		flex-direction: column;
	}

	.lacanche-account__nav-link {
		display: flex;
		width: 100%;
		padding: 15px 20px;
		font-size: 0.9375rem;
		border-bottom: 1px solid #F2F4F5;
		border-left: 3px solid transparent;
		margin-bottom: 0;
	}

	/* Active item: left accent instead of the desktop bottom border */
	.lacanche-account__nav-link--active,
	.lacanche-account__nav-item.woocommerce-MyAccount-navigation-link--is-active .lacanche-account__nav-link {
		border-bottom-color: #F2F4F5;
		border-left-color: rgb(var(--red));
		background: #FFFAF1;
	}

	/* Reveal the in-panel logout, set apart from the page links */
	.lacanche-account__nav-item--logout {
		display: block;
		margin-top: 8px;
		border-top: 1px solid #E4E7E9;
	}

	.lacanche-account__nav-item--logout .lacanche-account__nav-link {
		color: #953112;
	}

	.lacanche-account__header {
		gap: 12px;
	}
}

/* ── Dashboard 2-column grid ── */
.lacanche-dashboard__grid {
	display: grid;
	grid-template-columns: 13fr 7fr;
	gap: 24px;
	align-items: start;
}

/* Let grid columns shrink below their content's intrinsic width so cards
   don't blow past the viewport's right edge on narrow screens. */
.lacanche-dashboard__col {
	min-width: 0;
}

/* ── Dashboard welcome + cards ── */
.lacanche-dashboard__welcome {
	margin-bottom: 32px;
}

.lacanche-dashboard__heading {
	font-family: var(--lc-font-heading);
	font-size: 1.75rem;
	font-weight: 500;
	color: #191C1F;
	margin: 0 0 8px;
	line-height: 1.2;
}

.lacanche-dashboard__heading span {
	color: #953112;
}

.lacanche-dashboard__subheading {
	font-family: var(--lc-font-body);
	font-size: 0.9375rem;
	color: #5F6C72;
	margin: 0;
}

.lacanche-dashboard__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.lacanche-dashboard__card {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px;
	box-sizing: border-box;
	max-width: 100%;
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 8px;
	text-decoration: none;
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.lacanche-dashboard__card:hover {
	border-color: #c5a44e;
	box-shadow: 0 4px 16px rgba(197,164,78,0.12);
	transform: translateY(-2px);
}

.lacanche-dashboard__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #FFFAF1;
	color: #953112;
	flex-shrink: 0;
}

.lacanche-dashboard__card:hover .lacanche-dashboard__card-icon {
	background: #203B44;
	color: #FFFFFF;
}

.lacanche-dashboard__card-info {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.lacanche-dashboard__card-label {
	font-family: var(--lc-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	color: #191C1F;
}

.lacanche-dashboard__card-meta {
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	color: #5F6C72;
}

.lacanche-dashboard__card-arrow {
	display: flex;
	align-items: center;
	color: #5F6C72;
	flex-shrink: 0;
	transition: color 0.2s, transform 0.2s;
}

.lacanche-dashboard__card:hover .lacanche-dashboard__card-arrow {
	color: #c5a44e;
	transform: translateX(3px);
}

/* button reset so <button> cards look like <a> cards */
button.lacanche-dashboard__card {
	cursor: pointer;
	font: inherit;
	text-align: left;
	width: 100%;
}

/* ── Dashboard: Recent Orders section ── */
.lacanche-dashboard__section {
	margin-bottom: 28px;
}

.lacanche-dashboard__section-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 12px;
}

.lacanche-dashboard__section-title {
	font-family: var(--lc-font-heading);
	font-size: 1.0625rem;
	font-weight: 500;
	color: #191C1F;
	margin: 0;
}

.lacanche-dashboard__view-all {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	color: rgb(var(--red));
	text-decoration: none;
	transition: opacity 0.15s;
}

.lacanche-dashboard__view-all:hover {
	opacity: 0.75;
}

.lacanche-dashboard__orders-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 32px 0;
	color: #5F6C72;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
}

.lacanche-dashboard__orders-empty p {
	margin: 0;
}

.lacanche-dashboard__orders-list {
	border: 1px solid #E4E7E9;
	border-radius: 8px;
	overflow: hidden;
}

.lacanche-dashboard__order-row {
	display: grid;
	grid-template-columns: 90px 1fr 1fr 1fr 72px;
	align-items: center;
	gap: 12px;
	padding: 14px 20px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	color: #191C1F;
	border-bottom: 1px solid #F2F4F5;
}

.lacanche-dashboard__order-row--header {
	background: #203B44;
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 11px 20px;
}

.lacanche-dashboard__order-row--header:first-child {
	border-bottom: none;
}

.lacanche-dashboard__order-row:last-child {
	border-bottom: none;
}

.lacanche-dashboard__order-row:not(.lacanche-dashboard__order-row--header):nth-child(even) {
	background: #FAFBFC;
}

.lacanche-dashboard__order-link {
	font-weight: 600;
	color: rgb(var(--red));
	text-decoration: none;
}

.lacanche-dashboard__order-link:hover {
	text-decoration: underline;
}

.lacanche-dashboard__order-date {
	color: #5F6C72;
	font-size: 0.8125rem;
}

.lacanche-dashboard__order-total {
	font-weight: 500;
}

.lacanche-dashboard__order-view {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 5px 14px;
	border: 1px solid rgb(var(--red));
	border-radius: 20px;
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 500;
	color: rgb(var(--red));
	text-decoration: none;
	transition: background 0.15s, color 0.15s;
	white-space: nowrap;
}

.lacanche-dashboard__order-view:hover {
	background: rgb(var(--red));
	color: #fff;
}

/* Status badges in dashboard order rows */
.lacanche-dash-status {
	font-size: 0.75rem;
	font-weight: 500;
}

.lacanche-dash-status--completed   { color: #1e7e34; }
.lacanche-dash-status--processing  { color: #1a56b0; }
.lacanche-dash-status--on-hold     { color: #b45309; }
.lacanche-dash-status--cancelled,
.lacanche-dash-status--failed      { color: #c0392b; }
.lacanche-dash-status--pending     { color: #6b21a8; }
.lacanche-dash-status--refunded    { color: #5F6C72; }

/* ── Dashboard / Orders table: stacked card layout on mobile ──
   Reflows the 5-column order rows into a self-explanatory card so dates and
   statuses stop bunching up on narrow screens. Shared by dashboard.php and
   orders.php (same markup). */
@media (max-width: 600px) {
	.lacanche-dashboard__order-row--header {
		display: none;
	}

	.lacanche-dashboard__order-row {
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"num    status"
			"date   date"
			"total  action";
		gap: 8px 12px;
		padding: 16px;
	}

	.lacanche-dashboard__order-num    { grid-area: num; }
	.lacanche-dashboard__order-status { grid-area: status; justify-self: end; }
	.lacanche-dashboard__order-date   { grid-area: date; }
	.lacanche-dashboard__order-total  { grid-area: total; align-self: center; font-size: 0.9375rem; }
	.lacanche-dashboard__order-action { grid-area: action; justify-self: end; }

	.lacanche-dashboard__order-view {
		padding: 8px 18px;
	}
}

/* ── Address Modal ── */
body.lacanche-modal-open {
	overflow: hidden;
}

.lacanche-address-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.lacanche-address-modal[hidden] {
	display: none;
}

.lacanche-address-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.lacanche-address-modal__dialog {
	position: relative;
	background: #fff;
	border-radius: 12px;
	width: 100%;
	max-width: 640px;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
	overflow: hidden;
}

.lacanche-address-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid #E4E7E9;
	flex-shrink: 0;
}

.lacanche-address-modal__title {
	font-family: var(--lc-font-heading);
	font-size: 1.25rem;
	font-weight: 500;
	color: #191C1F;
	margin: 0;
}

.lacanche-address-modal__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 50%;
	color: #5F6C72;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}

.lacanche-address-modal__close:hover {
	background: #F2F4F5;
	color: #191C1F;
}

.lacanche-address-modal__tabs {
	display: flex;
	border-bottom: 2px solid #E4E7E9;
	padding: 0 24px;
	flex-shrink: 0;
}

.lacanche-address-modal__tab {
	padding: 12px 20px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #5F6C72;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	cursor: pointer;
	transition: color 0.15s, border-color 0.15s;
}

.lacanche-address-modal__tab:hover {
	color: #191C1F;
}

.lacanche-address-modal__tab--active {
	color: rgb(var(--red));
	border-bottom-color: rgb(var(--red));
}

.lacanche-address-modal__body {
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	flex: 1;
	padding: 24px;
}

.lacanche-address-modal__panel--hidden {
	display: none;
}

/* WC address form fields inside modal */
.lacanche-address-modal .woocommerce-address-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 0 16px;
}

.lacanche-address-modal .form-row {
	flex: 1 1 100%;
	margin: 0 0 12px;
	padding: 0;
}

.lacanche-address-modal .form-row-first,
.lacanche-address-modal .form-row-last {
	flex: 1 1 calc(50% - 8px);
}

.lacanche-address-modal .form-row label {
	display: block;
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #5F6C72;
	margin-bottom: 6px;
}

.lacanche-address-modal .form-row label .required {
	color: rgb(var(--red));
}

.lacanche-address-modal .form-row .input-text,
.lacanche-address-modal .form-row select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #E4E7E9;
	border-radius: 6px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #191C1F;
	background: #fff;
	box-sizing: border-box;
	transition: border-color 0.15s;
}

.lacanche-address-modal .form-row .input-text:focus,
.lacanche-address-modal .form-row select:focus {
	border-color: rgb(var(--red));
	box-shadow: 0 0 0 3px rgba(149, 49, 18, 0.08);
}

/* Single allowed country (store sells to US only): WooCommerce renders a
   one-option select styled as bold text. Show it as a read-only field. */
.lacanche-address-modal .form-row select.country_to_state--single {
	width: 100%;
	padding: 10px 12px;
	font-weight: 400;
	background: #F7F8F9;
	cursor: default;
}

.lacanche-address-modal__footer {
	display: flex;
	justify-content: flex-end;
	padding-top: 8px;
	border-top: 1px solid #E4E7E9;
	margin-top: 8px;
}

.lacanche-address-modal__save {
	display: inline-flex;
	align-items: center;
	padding: 11px 28px;
	background: rgb(var(--red));
	color: #fff;
	border: none;
	border-radius: 6px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s;
}

.lacanche-address-modal__save:hover {
	background: rgb(var(--dark-maroon));
}
.lacanche-account__content h2,
.lacanche-account__content h3 {
	font-family: var(--lc-font-heading);
	font-weight: 500;
	color: #191C1F;
	margin: 0 0 24px;
}

.lacanche-account__content h2 { font-size: 1.5rem; }
.lacanche-account__content h3 { font-size: 1.25rem; }

/* ── Orders table ── */
.woocommerce-account .woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	border: 1px solid #E4E7E9;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.woocommerce-account .woocommerce-orders-table thead tr {
	background: #203B44;
}

.woocommerce-account .woocommerce-orders-table th {
	font-size: 0.6875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.75);
	padding: 12px 18px;
	border: none;
	text-align: left;
	white-space: nowrap;
}

.woocommerce-account .woocommerce-orders-table tbody tr {
	background: #FFFFFF;
	transition: background 0.15s;
}

.woocommerce-account .woocommerce-orders-table tbody tr:nth-child(even) {
	background: #FAFAFA;
}

.woocommerce-account .woocommerce-orders-table td {
	padding: 14px 18px;
	border-bottom: 1px solid #E4E7E9;
	color: #191C1F;
	vertical-align: middle;
}

.woocommerce-account .woocommerce-orders-table tbody tr:last-child td {
	border-bottom: none;
}

/* Order number link */
.woocommerce-account .woocommerce-orders-table__cell-order-number a {
	font-weight: 600;
	color: #953112;
	text-decoration: none;
}

.woocommerce-account .woocommerce-orders-table__cell-order-number a:hover {
	color: #7a270e;
	text-decoration: underline;
}

/* Order date — muted */
.woocommerce-account .woocommerce-orders-table__cell-order-date {
	color: #5F6C72;
	font-size: 0.8125rem;
}

/* Order total */
.woocommerce-account .woocommerce-orders-table__cell-order-total {
	font-weight: 600;
}

/* Status badges */
.woocommerce-account .woocommerce-orders-table__cell-order-status .woocommerce-order-status,
/* Status cell — base style */
.woocommerce-account .woocommerce-orders-table__cell-order-status {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: capitalize;
	white-space: nowrap;
}

/* Per-status text colour via the tr's status class */
.woocommerce-account .woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status {
	color: #1e7e34;
}

.woocommerce-account .woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status {
	color: #1a56b0;
}

.woocommerce-account .woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status {
	color: #b45309;
}

.woocommerce-account .woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.woocommerce-account .woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status {
	color: #c0392b;
}

.woocommerce-account .woocommerce-orders-table__row--status-pending .woocommerce-orders-table__cell-order-status {
	color: #6b21a8;
}

.woocommerce-account .woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status {
	color: #5F6C72;
}

/* View order / actions button */
.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button {
	padding: 6px 16px;
	background: transparent;
	border: 1px solid #953112;
	border-radius: 20px;
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #953112;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	white-space: nowrap;
}

.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button:hover {
	background: #953112;
	color: #FFFFFF;
}

/* Empty state */
.woocommerce-account .woocommerce-orders-table tbody td[colspan] {
	text-align: center;
	padding: 48px 24px;
	color: #5F6C72;
	font-size: 0.9375rem;
}

/* ── Address boxes ── */
.woocommerce-account address {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	line-height: 1.6;
	color: #475156;
	font-style: normal;
}

/* ── Account / address forms ── */
.woocommerce-account .woocommerce-EditAccountForm .form-row,
.woocommerce-account .woocommerce-address-fields .form-row {
	margin-bottom: 16px;
}

.woocommerce-account .woocommerce-EditAccountForm label,
.woocommerce-account .woocommerce-address-fields label {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #191C1F;
	display: block;
	margin-bottom: 6px;
}

.woocommerce-account .woocommerce-EditAccountForm input,
.woocommerce-account .woocommerce-address-fields input,
.woocommerce-account .woocommerce-EditAccountForm select,
.woocommerce-account .woocommerce-address-fields select {
	height: 44px;
	width: 100%;
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 2px;
	padding: 0 14px;
	font-family: var(--lc-font-body);
	font-size: 1rem;
	color: #191C1F;
	box-sizing: border-box;
	transition: border-color 0.2s;
}

.woocommerce-account .woocommerce-EditAccountForm input:focus,
.woocommerce-account .woocommerce-address-fields input:focus {
	border-color: #8C6F4D;
}

/* Save / submit buttons */
.woocommerce-account .woocommerce-EditAccountForm .button,
.woocommerce-account .woocommerce-address-fields .button,
.woocommerce-account .woocommerce-MyAccount-content .button {
	display: inline-block;
	padding: 11px 28px;
	background: #953112;
	border: none;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #FFFFFF;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.2s;
}

.woocommerce-account .woocommerce-EditAccountForm .button:hover,
.woocommerce-account .woocommerce-address-fields .button:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover {
	background: #7a270e;
}

/* ── My Account: Addresses listing ── */
.lacanche-addresses__intro {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	color: #5F6C72;
	margin: 0 0 20px;
}

.lacanche-addresses {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

/* Card shell — reuses the checkout .lc-addr-section__header / .lc-addr-summary
   look for visual parity with the checkout address summary. */
.lacanche-addr-card {
	background: #FFFFFF;
	border: 1px solid #E4E7E9;
	border-radius: 8px;
	overflow: hidden;
}

.lacanche-addr-card .lc-addr-section__header {
	justify-content: space-between;
}

.lacanche-addr-card .lc-addr-summary {
	padding: 16px 20px;
}

.lacanche-addr-card .lc-addr-summary address {
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-style: normal;
	line-height: 1.6;
	color: #5F6C72;
	margin: 0;
}

/* Inline error inside the edit modal */
.lacanche-addr-form__error {
	margin: 4px 0 0;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	color: #EE1D52;
}

/* ── My Account: Edit address form ── */
.lacanche-edit-address__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}

.lacanche-edit-address__field-wrapper .form-row {
	grid-column: 1 / -1;
}

.lacanche-edit-address__field-wrapper .form-row-first {
	grid-column: 1 / 2;
}

.lacanche-edit-address__field-wrapper .form-row-last {
	grid-column: 2 / -1;
}

.lacanche-edit-address__actions {
	margin: 8px 0 0;
}

/* ── My Account: Account details (edit account) ── */
.lacanche-edit-account__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}

.lacanche-edit-account__fields .form-row {
	grid-column: 1 / -1;
}

.lacanche-edit-account__fields .form-row-first {
	grid-column: 1 / 2;
}

.lacanche-edit-account__fields .form-row-last {
	grid-column: 2 / -1;
}

.lacanche-edit-account__fields #account_display_name_description {
	display: block;
	margin-top: 6px;
	font-size: 0.75rem;
	color: #5F6C72;
}

.lacanche-edit-account__section {
	margin: 8px 0 0;
	padding: 20px 0 0;
	border: none;
	border-top: 1px solid #E4E7E9;
}

.lacanche-edit-account__section legend {
	font-family: var(--lc-font-body);
	font-size: 1rem;
	font-weight: 600;
	color: #191C1F;
	padding: 0;
	margin: 0 0 16px;
}

.lacanche-edit-account__actions {
	margin: 20px 0 0;
}

@media (max-width: 600px) {
	.lacanche-addresses {
		grid-template-columns: 1fr;
	}

	.lacanche-edit-address__field-wrapper,
	.lacanche-edit-account__fields {
		grid-template-columns: 1fr;
	}

	.lacanche-edit-address__field-wrapper .form-row-first,
	.lacanche-edit-address__field-wrapper .form-row-last,
	.lacanche-edit-account__fields .form-row-first,
	.lacanche-edit-account__fields .form-row-last {
		grid-column: 1 / -1;
	}
}

/* ── Payment Methods ── */
.lacanche-pm-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.lacanche-pm-item {
	display: flex;
	flex-direction: column;
	gap: 10px;
	text-decoration: none;
}

/* Credit card visual */
.lacanche-pm-card {
	position: relative;
	aspect-ratio: 1.586 / 1;
	border-radius: 16px;
	background: linear-gradient(135deg, #162830 0%, #203B44 60%, #2d5260 100%);
	color: #fff;
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	transition: transform 0.2s, box-shadow 0.2s;
}

.lacanche-pm-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* Decorative background circles */
.lacanche-pm-card__deco {
	position: absolute;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.05);
	bottom: -70px;
	right: -50px;
	pointer-events: none;
}

.lacanche-pm-card__deco::after {
	content: '';
	position: absolute;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.04);
	top: -55px;
	right: 25px;
}

.lacanche-pm-card__default-badge {
	position: absolute;
	top: 14px;
	right: 14px;
	padding: 3px 10px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.18);
	font-family: var(--lc-font-body);
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #fff;
}

.lacanche-pm-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.lacanche-pm-card__brand {
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.8);
	text-align: right;
}

.lacanche-pm-card__number {
	display: flex;
	gap: 10px;
	font-family: 'Courier New', monospace;
	font-size: 1.0625rem;
	letter-spacing: 0.1em;
	color: #fff;
}

.lacanche-pm-card__bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.lacanche-pm-card__expiry {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.lacanche-pm-card__expiry-label {
	font-family: var(--lc-font-body);
	font-size: 0.5625rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.55);
}

.lacanche-pm-card__expiry-value {
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #fff;
}

/* Action links below each card */
.lacanche-pm-item__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.lacanche-pm-item__action {
	font-family: var(--lc-font-body);
	font-size: 0.75rem;
	font-weight: 500;
	text-decoration: none;
	padding: 4px 14px;
	border-radius: 12px;
	transition: background 0.15s, color 0.15s;
}

.lacanche-pm-item__action--delete {
	border: 1px solid #c0392b;
	color: #c0392b;
}

.lacanche-pm-item__action--delete:hover {
	background: #c0392b;
	color: #fff;
}

[class*="lacanche-pm-item__action--"]:not(.lacanche-pm-item__action--delete) {
	border: 1px solid #203B44;
	color: #203B44;
}

[class*="lacanche-pm-item__action--"]:not(.lacanche-pm-item__action--delete):hover {
	background: #203B44;
	color: #fff;
}

/* Add new card */
.lacanche-pm-item--add {
	text-decoration: none;
}

.lacanche-pm-card--add {
	background: transparent;
	border: 2px dashed #C9CFD2;
	box-shadow: none;
	align-items: center;
	justify-content: center;
	color: #5F6C72;
	transition: border-color 0.2s, color 0.2s, transform 0.2s;
}

.lacanche-pm-card--add:hover {
	border-color: rgb(var(--red));
	color: rgb(var(--red));
	transform: translateY(-3px);
	box-shadow: none;
}

.lacanche-pm-card__add-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.lacanche-pm-card__add-label {
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
}

/* ── Responsive ── */
@media (max-width: 900px) {
	.lacanche-dashboard__grid {
		grid-template-columns: 1fr;
	}

	.lacanche-pm-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.lacanche-dashboard__grid {
		grid-template-columns: 1fr;
	}

	/* Tighten the Manage Details cards so content fits comfortably
	   within the viewport on narrow screens. */
	.lacanche-dashboard__card {
		padding: 16px;
		gap: 12px;
	}

	.lacanche-pm-grid {
		grid-template-columns: 1fr;
	}

	.lacanche-pm-card__number {
		font-size: 0.9375rem;
		gap: 7px;
	}
}

/* ── My Account orders pagination ── */
.lacanche-orders-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 24px;
}

.lacanche-orders-pagination__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 20px;
	border: 1.5px solid #203B44;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: #203B44;
	text-decoration: none;
	background: transparent;
	transition: background 0.2s, color 0.2s;
	cursor: pointer;
	white-space: nowrap;
}

.lacanche-orders-pagination__btn:hover {
	background: #203B44;
	color: #fff;
}

.lacanche-orders-pagination__btn--disabled {
	border-color: #C9CFD2;
	color: #C9CFD2;
	cursor: default;
	pointer-events: none;
}

.lacanche-orders-pagination__info {
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	color: #5F6C72;
}

/* ── Shop tab pagination ── */
.woo-tabs__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 40px 0 16px;
	flex-wrap: wrap;
}

.woo-tabs__page-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	border: 1px solid #d4c9b5;
	background: #fff;
	color: rgb(var(--dark-maroon));
	font-family: var(--lc-font-body);
	font-size: 0.85rem;
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
	border-radius: 3px;
}

.woo-tabs__page-btn:hover:not(:disabled) {
	background: rgb(var(--dark-maroon));
	color: #fff;
	border-color: rgb(var(--dark-maroon));
}

.woo-tabs__page-btn--active {
	background: #953112;
	color: #fff;
	border-color: #953112;
	font-weight: 600;
	pointer-events: none;
}

.woo-tabs__page-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

/* ════════════════════════════════════════════════════════
   WOOCOMMERCE NOTICES — toast overlay inside page content
   ════════════════════════════════════════════════════════ */

/* Establish a positioning context on the content wrappers so
   the absolute notice sits at the top of the page content,
   not above the mega menu. */
.woo-archive-wrapper,
.woocommerce:not(.widget_shopping_cart),
.woocommerce-page .entry-content {
	position: relative;
}

/* Overlay the notice at the top of the content area, centred. */
.woocommerce-notices-wrapper {
	position: absolute;
	top: 16px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9999;
	width: 100%;
	max-width: 560px;
	padding: 0 16px;
	pointer-events: none; /* let clicks through the empty wrapper */
	margin: 0;
	box-sizing: border-box;
}

/* Toast-only behaviour: slide-in animation, dismiss transition, tighter
   stacking gap. The visual treatment lives in the site-wide block below so
   inline notices (checkout login/coupon prompts, payment notices, account
   messages, AJAX validation errors) look identical. */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info {
	pointer-events: auto;
	animation: lacanche-notice-in 0.3s ease both;
	transition: opacity 0.4s ease, transform 0.4s ease;
	margin: 0 0 12px;
}

/* ============================================================
   WooCommerce notices — site-wide
   ============================================================
   WC core paints these grey with a 3px coloured top border and a
   WooCommerce-font icon. Reset all of that and use a left accent
   instead. `body` prefix keeps these one level above WC's bare
   .woocommerce-* selectors regardless of stylesheet order.
   `display: flow-root` contains WC's float:right .button without
   `overflow: hidden`, so focus rings aren't clipped. */
body .woocommerce-message,
body .woocommerce-error,
body .woocommerce-info {
	display: flow-root;
	position: relative;
	box-sizing: border-box;
	width: auto;
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 20px;
	border: 0;
	border-left: 4px solid transparent;
	border-radius: 6px;
	font-family: var(--lc-font-body);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.6;
	word-wrap: break-word;
}

/* Suppress WC's WooCommerce-font icon — left-border accent replaces it */
body .woocommerce-message::before,
body .woocommerce-error::before,
body .woocommerce-info::before {
	display: none !important;
}

/* Success / message — green-tinted */
body .woocommerce-message {
	background: #f0faf3;
	border-left-color: #1e7e34;
	color: #1a5c2a;
}

/* Error — red-tinted */
body .woocommerce-error {
	background: #fdf2f0;
	border-left-color: #953112;
	color: #7a270e;
}

/* Info — warm neutral matching FFFAF1 palette */
body .woocommerce-info {
	background: #FFFAF1;
	border-left-color: #c5a44e;
	color: #5F6C72;
}

/* Error is a <ul> — strip extra list chrome */
body .woocommerce-error li {
	list-style: none;
	margin: 0;
	padding: 0;
}

body .woocommerce-error li + li {
	margin-top: 6px;
}

/* Inline text links ("Click here to login", "Click here to enter your code") */
body .woocommerce-message a:not(.button),
body .woocommerce-error a:not(.button),
body .woocommerce-info a:not(.button) {
	color: inherit;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.15s;
}

body .woocommerce-message a:not(.button):hover,
body .woocommerce-error a:not(.button):hover,
body .woocommerce-info a:not(.button):hover {
	color: #953112;
}

/* "View cart" / action buttons — float right so text wraps naturally to the left */
body .woocommerce-message .button,
body .woocommerce-error .button,
body .woocommerce-info .button {
	float: right;
	margin: 0 0 4px 16px;
	display: inline-flex;
	align-items: center;
	padding: 7px 20px;
	background: rgb(var(--red));
	color: #fff;
	border: none;
	border-radius: 24px;
	font-family: var(--lc-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s;
}

body .woocommerce-message .button:hover,
body .woocommerce-error .button:hover,
body .woocommerce-info .button:hover {
	background: rgb(var(--dark-maroon));
	color: #fff;
}

/* ============================================================
   Order meta bar (view-order page: Order / Date / Status)
   ============================================================ */

.lc-order-meta {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	padding: 16px 20px;
	margin-bottom: 24px;
	background: var(--lc-surface, #f9f9f9);
	border: 1px solid var(--lc-border, #e5e5e5);
	border-radius: 6px;
}

.lc-order-meta__item {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.lc-order-meta__label {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--lc-muted, #888);
}

.lc-order-meta__value {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--lc-text, #1a1a1a);
}

/* Status badge */
.lc-order-status {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 20px;
	font-size: 0.8rem;
	font-weight: 600;
	background: var(--lc-border, #e5e5e5);
	color: var(--lc-text, #1a1a1a);
}

.lc-order-status--processing  { background: #dbeafe; color: #1d4ed8; }
.lc-order-status--completed   { background: #dcfce7; color: #15803d; }
.lc-order-status--on-hold     { background: #fef9c3; color: #a16207; }
.lc-order-status--cancelled,
.lc-order-status--failed      { background: #fee2e2; color: #b91c1c; }
.lc-order-status--refunded    { background: #f3e8ff; color: #7e22ce; }
.lc-order-status--pending     { background: #ffedd5; color: #c2410c; }

/* ============================================================ */

/* Dismiss (×) button injected by JS */
.lacanche-notice-close {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	padding: 0;
	background: none;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	color: inherit;
	opacity: 0.5;
	line-height: 1;
	font-size: 1rem;
	transition: opacity 0.15s;
}
.lacanche-notice-close:hover {
	opacity: 1;
}

/* Fade/slide-out state added by JS */
.lacanche-notice-dismissing {
	opacity: 0 !important;
	transform: translateY(-10px) !important;
	pointer-events: none;
}

/* Slide-in keyframe */
@keyframes lacanche-notice-in {
	from {
		opacity: 0;
		transform: translateY(-12px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 600px) {
	.woocommerce-notices-wrapper {
		top: 12px;
	}
}
