/*!
 * Militra — WooCommerce styling (Phase 5A: catalog half).
 *
 * All rules scoped under body.militra-woocommerce so they cannot leak to
 * non-WC pages. Selectors that would otherwise be too generic
 * (.shop_table, #order_review, .cart_totals) are always prefixed.
 *
 * Brand colors via var(--boltpress-colors-*). Bare brand hex is a regression
 * (test-woocommerce-css.php asserts against it).
 */

body.militra-woocommerce {
	/* Section anchors filled in by archive + single-product tasks. */
}

/* ---------- Archive shell ---------- */

body.militra-woocommerce .shop-hero {
	padding: clamp(48px, 8vw, 88px) 0 24px;
	background: var(--boltpress-colors-neutral-0, #fff);
	border-bottom: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
}
body.militra-woocommerce .shop-hero .eyebrow {
	display: inline-block;
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce .shop-h1 {
	margin: 0 0 8px;
	font-size: clamp(28px, 4vw, 44px);
	line-height: 1.15;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce .shop-lead {
	margin: 0;
	color: var(--boltpress-colors-secondary, #475569);
	max-width: 620px;
}

/* ---------- Filter row ---------- */

body.militra-woocommerce .shop-filter-row {
	padding: 18px 0 0;
}
body.militra-woocommerce .shop-filter-row .container {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
body.militra-woocommerce .shop-search {
	display: flex;
	gap: 8px;
	align-items: stretch;
}
body.militra-woocommerce .shop-search-field {
	flex: 1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0 12px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
}
body.militra-woocommerce .shop-search-field input {
	flex: 1;
	border: 0;
	outline: 0;
	padding: 10px 0;
	font: inherit;
	color: var(--boltpress-colors-text, #334155);
	background: transparent;
}
body.militra-woocommerce .shop-search-icon { color: var(--boltpress-colors-secondary, #475569); }
body.militra-woocommerce .shop-search-cta {
	padding: 12px 22px;
	border: 1px solid var(--boltpress-colors-primary, #E8501E);
	border-radius: 8px;
	background-color: var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease;
}
body.militra-woocommerce .shop-search-cta:hover {
	background-color: var(--boltpress-colors-orange-600, #D14318);
	border-color: var(--boltpress-colors-orange-600, #D14318);
	color: #fff;
}
body.militra-woocommerce .shop-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
body.militra-woocommerce .shop-chip {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 8px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	color: var(--boltpress-colors-secondary, #475569);
	background: var(--boltpress-colors-neutral-0, #fff);
	font-size: 14px;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
body.militra-woocommerce .shop-chip:hover {
	color: var(--boltpress-colors-headings-general, #0F172A);
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1);
}
body.militra-woocommerce .shop-chip.is-active {
	background: var(--boltpress-colors-headings-general, #0F172A);
	border-color: var(--boltpress-colors-headings-general, #0F172A);
	color: #fff;
}
body.militra-woocommerce .shop-active-filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 10px;
	border-radius: 8px;
	background: var(--boltpress-colors-accent, #FCE6D9);
	color: var(--boltpress-colors-primary, #E8501E);
	font-size: 13px;
	font-weight: 600;
}
body.militra-woocommerce .shop-active-filter-x {
	text-decoration: none;
	color: inherit;
	font-size: 16px;
	line-height: 1;
}

/* ---------- Product grid ---------- */

body.militra-woocommerce .shop-grid-section { padding: 32px 0 64px; }

body.militra-woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* WC core's `ul.products::before,::after { content:" "; display:table }` is a clearfix
   hack for the legacy float layout. In CSS Grid those pseudo-elements are full grid
   items — they consume the first and last grid cells, pushing the first product to
   slot 2 (the "missing 1st card" symptom). Suppress them under our scope. */
body.militra-woocommerce ul.products::before,
body.militra-woocommerce ul.products::after {
	content: none;
	display: none;
}
/* Override WC core's `.woocommerce ul.products li.product { float:left; width:22.05%;
   margin:0 3.8% 2.992em 0 }` — float breaks the CSS grid above, and width pins items
   to a tiny column. Reset to grid-friendly auto/none and clear any inherited columns-N
   widths from .woocommerce-page ul.products. */
body.militra-woocommerce ul.products li.product,
body.militra-woocommerce.woocommerce-page ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	position: relative;
	/* WC core also adds `li.first { clear: both }` and `li.last { … }` from the
	   columns-N classes. In CSS grid, `clear: both` is supposed to be a no-op,
	   but at least one browser combo (depending on container width / minmax)
	   was leaving the first row offset — explicit `clear: none` removes any
	   ambiguity so grid items pack from row 1 column 1 unconditionally. */
	clear: none;
}
body.militra-woocommerce ul.products li.product.first,
body.militra-woocommerce ul.products li.product.last {
	clear: none;
	float: none;
}
/* WC core also forces `ul.products li.product a img { height: auto; margin: 0 0 1em }`,
   which beats `.course-cover img` on specificity and breaks the `.course-cover` aspect
   ratio + cover crop. Mirror WC's selector path (with the body. prefix) to win the cascade. */
body.militra-woocommerce ul.products li.product a img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
	display: block;
}

/* .woo-product-card piggybacks on global .course-card rules from main.css/home.css.
   Use this modifier only for archive-specific tweaks. */
body.militra-woocommerce .woo-product-card {
	background: var(--boltpress-colors-neutral-0, #fff);
}

/* ---------- Empty state ---------- */

body.militra-woocommerce .shop-empty {
	text-align: center;
	padding: 48px 16px;
}
body.militra-woocommerce .shop-empty-h {
	margin: 0 0 8px;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce .shop-empty-lead {
	margin: 0 0 16px;
	color: var(--boltpress-colors-secondary, #475569);
}

/* ---------- Pagination ---------- */

body.militra-woocommerce .woocommerce-pagination {
	margin-top: 32px;
	text-align: center;
}
body.militra-woocommerce .woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	gap: 6px;
	padding: 0;
	margin: 0;
	list-style: none;
	border: 0;
}
/* WC core also clearfixes ul.page-numbers with ::before/::after pseudos that
   become flex items inside our inline-flex container — they push the buttons
   off-center. Same pattern as ul.products fix above. */
body.militra-woocommerce .woocommerce-pagination ul.page-numbers::before,
body.militra-woocommerce .woocommerce-pagination ul.page-numbers::after {
	content: none;
	display: none;
}
/* WC core also floats li elements (`ul.page-numbers li { float: left }`); not
   visible damage with inline-flex parent, but defensive reset for safety. */
body.militra-woocommerce .woocommerce-pagination ul.page-numbers li {
	float: none;
	display: inline-flex;
	margin: 0;
	padding: 0;
	border: 0;
}
body.militra-woocommerce .woocommerce-pagination ul.page-numbers a,
body.militra-woocommerce .woocommerce-pagination ul.page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border-radius: 8px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	color: var(--boltpress-colors-secondary, #475569);
	text-decoration: none;
}
body.militra-woocommerce .woocommerce-pagination ul.page-numbers .current {
	background: var(--boltpress-colors-headings-general, #0F172A);
	border-color: var(--boltpress-colors-headings-general, #0F172A);
	color: #fff;
}

/* ---------- Single product ---------- */

body.militra-woocommerce .course-detail {
	padding: clamp(32px, 6vw, 56px) 0 0;
}

body.militra-woocommerce .course-hero { padding-bottom: 32px; }

body.militra-woocommerce .course-hero-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
@media (min-width: 900px) {
	body.militra-woocommerce .course-hero-grid {
		grid-template-columns: 1.2fr 1fr;
		gap: 40px;
		align-items: start;
	}
}

body.militra-woocommerce .course-eyebrow {
	display: inline-flex;
	align-items: center;
	margin-bottom: 14px;
	padding: 6px 12px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1;
	color: var(--boltpress-colors-primary, #E8501E);
	text-transform: uppercase;
	background: var(--boltpress-colors-orange-50, #FEF4EE);
	border: 1px solid var(--boltpress-colors-orange-100, #FCE6D9);
	border-radius: 8px;
}
body.militra-woocommerce .course-h1 {
	margin: 0 0 12px;
	font-size: clamp(28px, 4vw, 44px);
	line-height: 1.15;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce .course-cities {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}
body.militra-woocommerce .course-chip {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 8px;
	background: var(--boltpress-colors-accent, #FCE6D9);
	color: var(--boltpress-colors-primary, #E8501E);
	font-size: 12px;
	font-weight: 600;
}
body.militra-woocommerce .course-gallery img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

body.militra-woocommerce .course-buy {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 20px;
	position: sticky;
	top: 96px;
}
body.militra-woocommerce .course-price-big {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 10px;
	font-size: 28px;
	font-weight: 800;
	line-height: 1.1;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin-bottom: 14px;
}
/* WC emits <del>regular</del><ins>sale</ins> inside .price for sale items.
   Make the sale price the visual anchor (orange, large) and demote the
   regular price to a muted strikethrough beside it. */
body.militra-woocommerce .course-price-big del {
	display: inline-block;
	font-size: 18px;
	font-weight: 500;
	color: var(--boltpress-colors-neutral-500, #64748B);
	text-decoration: line-through;
	opacity: .9;
}
body.militra-woocommerce .course-price-big del bdi { color: inherit; }
body.militra-woocommerce .course-price-big ins {
	background: transparent;
	color: var(--boltpress-colors-primary, #E8501E);
	font-size: 32px;
	font-weight: 800;
	text-decoration: none;
}
body.militra-woocommerce .course-price-big .woocommerce-Price-amount {
	white-space: nowrap;
}
/* Drop the "su PVM" (incl. VAT) suffix from the single-product hero price and
   mobile sticky bar. The PHP `woocommerce_get_price_suffix` filter normally
   removes it from the markup; this is the guaranteed visual fallback. */
body.single-product .course-price-big .woocommerce-price-suffix,
body.single-product .course-mobile-sticky-price .woocommerce-price-suffix {
	display: none;
}

/* Facts box */
body.militra-woocommerce .course-facts {
	margin: 8px 0 16px;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
body.militra-woocommerce .course-fact {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 10px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
}
body.militra-woocommerce .course-fact dt {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--boltpress-colors-secondary, #475569);
	margin: 0;
}
body.militra-woocommerce .course-fact dd {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce .course-fact-icon {
	color: var(--boltpress-colors-primary, #E8501E);
	display: inline-flex;
}

/* Hand-written single-add-to-cart styling — Task 5 Path B fallback.
   Token compiler hardcodes the .bp-btn-primary alias group and can't be
   extended via JSON, so we cover WC's classic CTA class explicitly here.
   Specificity chain matches/beats WC's purple `.woocommerce ... button.button.alt`
   rule (specificity 0,3,1). The single-product template does NOT wrap its form
   in a `.woocommerce` div — body.militra-woocommerce alone is the only safe scope. */
body.militra-woocommerce button.single_add_to_cart_button,
body.militra-woocommerce button.single_add_to_cart_button.button.alt {
	width: 100%;
	margin-top: 4px;
	padding: 12px 20px;
	border: 0;
	border-radius: 8px;
	background-color: var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.18s ease, transform 0.15s ease, box-shadow 0.18s ease;
	min-height: 48px;
	font-size: 16px;
	letter-spacing: 0;
}
body.militra-woocommerce button.single_add_to_cart_button:hover,
body.militra-woocommerce button.single_add_to_cart_button.button.alt:hover {
	background-color: var(--boltpress-colors-orange-600, #D14318);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px -10px rgba(232, 80, 30, 0.55);
}
body.militra-woocommerce button.single_add_to_cart_button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px var(--boltpress-colors-headings-general, #0F172A);
}

/* Single-product cart form: qty pill + primary CTA side-by-side. WC emits
   `<form class="cart">` containing `<div class="quantity"><input class="qty"></div>`
   followed by the add-to-cart button. Without styling, the qty input renders as
   a native browser stepper — visually jarring next to the brand button. */
body.militra-woocommerce .course-buy form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 4px 0 0;
}
/* Quantity removed site-wide — every product is sold individually (one
   registration per person), so there is never a quantity to pick. WC still
   emits a (hidden) `.quantity` element inside `form.cart`; hide it outright and
   let the Registruotis CTA span the full row. */
body.militra-woocommerce .course-buy form.cart .quantity {
	display: none;
}
body.militra-woocommerce .course-buy form.cart button.single_add_to_cart_button,
body.militra-woocommerce .course-buy form.cart button.single_add_to_cart_button.button.alt {
	flex: 1 1 100%;
	width: 100%;
	margin-top: 0;
	min-height: 48px;
}

/* ---------- Tabs ---------- */

body.militra-woocommerce .course-tabs {
	margin-top: 24px;
}
body.militra-woocommerce .tab-strip {
	display: flex;
	gap: 4px;
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
	border-bottom: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	overflow-x: auto;
}
body.militra-woocommerce [role="tab"] {
	border: 0;
	background: transparent;
	padding: 10px 14px;
	font: inherit;
	font-weight: 600;
	color: var(--boltpress-colors-secondary, #475569);
	cursor: pointer;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}
body.militra-woocommerce [role="tab"][aria-selected="true"] {
	color: var(--boltpress-colors-primary, #E8501E);
	border-bottom-color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce [role="tab"]:focus-visible {
	outline: 2px solid var(--boltpress-colors-primary, #E8501E);
	outline-offset: 2px;
}
body.militra-woocommerce [role="tabpanel"] {
	padding: 8px 0 24px;
	color: var(--boltpress-colors-text, #334155);
	line-height: 1.65;
}

/* ---------- Related ---------- */

body.militra-woocommerce .course-related {
	padding: 32px 0 64px;
}

/* ---------- Mobile sticky CTA ---------- */

body.militra-woocommerce .course-mobile-sticky {
	display: none; /* shown only on mobile */
}
@media (max-width: 768px) {
	body.militra-woocommerce .course-buy {
		position: static;
	}
	body.militra-woocommerce .course-mobile-sticky {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 50;
		padding: 10px 14px;
		background: var(--boltpress-colors-neutral-0, #fff);
		border-top: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
		box-shadow: 0 -6px 16px rgba(15, 23, 42, 0.08);
	}
	body.militra-woocommerce .course-mobile-sticky-price {
		font-weight: 700;
		color: var(--boltpress-colors-headings-general, #0F172A);
	}
	body.militra-woocommerce .course-mobile-sticky-cta {
		flex: 1;
		max-width: 200px;
		padding: 10px 16px;
		border: 0;
		border-radius: 8px;
		background: var(--boltpress-colors-primary, #E8501E);
		color: #fff;
		font-weight: 700;
		cursor: pointer;
	}
}

/* ============================================================
   Unified WooCommerce button system — matches homepage brand
   ============================================================
   Strategy: every WC button (link, input, button element) gets a
   single base treatment, then primary / ghost variants by context.
   Scoped to body.militra-woocommerce (sole hook) — the previous
   `.woocommerce` descendant requirement did NOT match the single-
   product page, which has no `<div class="woocommerce">` wrapper
   around its form. body.militra-woocommerce is added by us to every
   WC public surface, so it's the only safe global scope. */

body.militra-woocommerce a.button,
body.militra-woocommerce button.button,
body.militra-woocommerce input.button,
body.militra-woocommerce a.button.alt,
body.militra-woocommerce button.button.alt,
body.militra-woocommerce input.button.alt,
body.militra-woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 8px;
	border: 1px solid transparent;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	text-shadow: none;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .15s ease, box-shadow .18s ease;
	box-shadow: none;
	min-height: 44px;
}

/* Primary (default) — orange filled. Covers .button (no modifier), .alt, and CTAs. */
body.militra-woocommerce a.button,
body.militra-woocommerce button.button,
body.militra-woocommerce input.button,
body.militra-woocommerce a.button.alt,
body.militra-woocommerce button.button.alt,
body.militra-woocommerce input.button.alt {
	background-color: var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	border-color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce a.button:hover,
body.militra-woocommerce button.button:hover,
body.militra-woocommerce input.button:hover,
body.militra-woocommerce a.button.alt:hover,
body.militra-woocommerce button.button.alt:hover,
body.militra-woocommerce input.button.alt:hover {
	background-color: var(--boltpress-colors-orange-600, #D14318);
	border-color: var(--boltpress-colors-orange-600, #D14318);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px -8px rgba(232, 80, 30, 0.45);
}

/* Disabled state — both [disabled] and the `.disabled` class WC slaps on Update Cart. */
body.militra-woocommerce a.button[disabled],
body.militra-woocommerce button.button[disabled],
body.militra-woocommerce input.button[disabled],
body.militra-woocommerce .button.disabled,
body.militra-woocommerce .button:disabled,
body.militra-woocommerce .button:disabled[disabled] {
	background-color: var(--boltpress-colors-neutral-200, #E2E8F0);
	border-color: var(--boltpress-colors-neutral-200, #E2E8F0);
	color: var(--boltpress-colors-neutral-500, #64748B);
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
	opacity: 1;
}

/* Ghost / secondary — Update cart, Apply coupon (these are quieter actions). */
body.militra-woocommerce button[name="update_cart"],
body.militra-woocommerce input[name="update_cart"],
body.militra-woocommerce button[name="apply_coupon"],
body.militra-woocommerce input[name="apply_coupon"],
body.militra-woocommerce a.button.wc-backward,
body.militra-woocommerce.woocommerce-cart .return-to-shop .button.wc-backward {
	background-color: var(--boltpress-colors-neutral-0, #fff);
	color: var(--boltpress-colors-headings-general, #0F172A);
	border-color: var(--boltpress-colors-neutral-200, #E2E8F0);
	box-shadow: none;
}
body.militra-woocommerce button[name="update_cart"]:hover,
body.militra-woocommerce input[name="update_cart"]:hover,
body.militra-woocommerce button[name="apply_coupon"]:hover,
body.militra-woocommerce input[name="apply_coupon"]:hover,
body.militra-woocommerce a.button.wc-backward:hover {
	background-color: var(--boltpress-colors-neutral-50, #F8FAFC);
	color: var(--boltpress-colors-headings-general, #0F172A);
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1);
	box-shadow: 0 4px 12px -6px rgba(15, 23, 42, 0.12);
}

/* Secondary canonical button on WC surfaces — keep `.bp-btn-secondary` (the
   shared white/bordered CTA style) intact here too, beating WC's default
   `.button` styling via the body scope. */
body.militra-woocommerce .bp-btn-secondary {
	background-color: var(--boltpress-colors-neutral-0, #fff);
	color: var(--boltpress-colors-headings-general, #0F172A);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
}
body.militra-woocommerce .bp-btn-secondary:hover {
	background-color: var(--boltpress-colors-neutral-50, #F8FAFC);
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1);
}

/* Checkout / place order — large primary. */
body.militra-woocommerce.woocommerce-checkout #place_order,
body.militra-woocommerce a.checkout-button,
body.militra-woocommerce button.checkout-button,
body.militra-woocommerce.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background-color: var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	border-color: var(--boltpress-colors-primary, #E8501E);
	padding: 14px 28px;
	font-size: 16px;
	font-weight: 700;
	box-shadow: 0 10px 24px -10px rgba(232, 80, 30, 0.55);
	min-height: 52px;
}
body.militra-woocommerce.woocommerce-checkout #place_order:hover,
body.militra-woocommerce a.checkout-button:hover,
body.militra-woocommerce.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background-color: var(--boltpress-colors-orange-600, #D14318);
	border-color: var(--boltpress-colors-orange-600, #D14318);
	transform: translateY(-1px);
	box-shadow: 0 14px 28px -10px rgba(232, 80, 30, 0.65);
}

/* Focus ring for ALL CTAs — white inner + slate-dark outer so it reads
   against both the orange primary button background AND the white page
   background (WCAG 2.4.7 wants 3:1 contrast against ADJACENT colours, not
   just the page). The outline+box-shadow trick gives us a two-stop ring
   without depending on outline-offset rendering. */
body.militra-woocommerce a.button:focus-visible,
body.militra-woocommerce button.button:focus-visible,
body.militra-woocommerce input.button:focus-visible,
body.militra-woocommerce.woocommerce-checkout #place_order:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px var(--boltpress-colors-headings-general, #0F172A);
}

/* ============================================================
   Cart page (/cart) — branded layout
   ============================================================ */

/* Hero banner — same eyebrow / title style the shop archive uses, so the
   chrome reads as a single family of pages. */
body.militra-woocommerce.woocommerce-cart .entry-content,
body.militra-woocommerce.woocommerce-checkout .entry-content {
	max-width: var(--mil-maxw, 1280px);
	margin: 0 auto;
	padding: 0 24px;
}
body.militra-woocommerce.woocommerce-cart .entry-content > :where(p, h2, h3, h4, ul, ol, blockquote),
body.militra-woocommerce.woocommerce-checkout .entry-content > :where(p, h2, h3, h4, ul, ol, blockquote) {
	max-width: none;
}

body.militra-woocommerce.woocommerce-cart::before,
body.militra-woocommerce.woocommerce-checkout::before {
	content: '';
	display: block;
	height: 0;
}

/* Wrap the cart form + collaterals in a 2-col layout once they exist. WC
   emits `<form class="woocommerce-cart-form">` and `<div class="cart-collaterals">`
   as siblings inside `.woocommerce`; the grid below targets the parent. */
body.militra-woocommerce.woocommerce-cart .woocommerce {
	display: block;
	padding: clamp(28px, 5vw, 56px) 0 64px;
}

/* The page title from WP is suppressed; we render a hero strip via ::before
   on the .woocommerce wrapper so existing markup needs no PHP changes. */
body.militra-woocommerce.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:first-child + form.woocommerce-cart-form,
body.militra-woocommerce.woocommerce-cart .woocommerce > form.woocommerce-cart-form {
	margin-top: 0;
}
/* Hero banner injected via woocommerce_before_cart / before_checkout_form.
   Higher specificity + explicit display so the parent's .entry-title rules
   can't bring it back into conflict.

   Cart hero copy swap: PHP renders ONE <h1> with two inner <span>s and ONE
   <p> with two inner <span>s — one for the populated state, one for empty.
   CSS picks which span is visible by reading `:has(.cart-empty)` on the
   body itself (more durable than `.woocommerce` descendant because plugins
   sometimes replace the wrapper class but never rename WC's empty markers).

   Why this approach: at `woocommerce_before_cart` fire time WC()->cart->is_empty()
   was observed to return false even on a verifiably empty cart. Reading the
   DOM at paint time sidesteps that timing bug. And keeping a single H1 (text
   swapped via spans) avoids both duplicate-H1 outline warnings and the
   inverted-aria-hidden trap a two-header design would have hit. */
body.militra-woocommerce .militra-cart-hero {
	display: block;
	margin: 0 0 32px;
	max-width: 820px;
}
/* Default (populated state): show the populated span, hide the empty span.
   The hidden span is removed from the accessibility tree by `display:none`
   — no explicit aria-hidden needed. */
body.militra-woocommerce .militra-cart-hero-h--empty,
body.militra-woocommerce .militra-cart-hero-lead--empty {
	display: none;
}
body.militra-woocommerce .militra-cart-hero-h--populated,
body.militra-woocommerce .militra-cart-hero-lead--populated {
	display: inline;
}
/* If the cart-empty notice exists on the page, swap which span shows.
   Scoped to `body.woocommerce-cart` rather than an inner .woocommerce
   div so it survives a plugin renaming the wrapper class. */
body.militra-woocommerce.woocommerce-cart:has(.cart-empty.woocommerce-info) .militra-cart-hero-h--populated,
body.militra-woocommerce.woocommerce-cart:has(.cart-empty.woocommerce-info) .militra-cart-hero-lead--populated,
body.militra-woocommerce.woocommerce-cart:has(.wc-empty-cart-message) .militra-cart-hero-h--populated,
body.militra-woocommerce.woocommerce-cart:has(.wc-empty-cart-message) .militra-cart-hero-lead--populated {
	display: none;
}
body.militra-woocommerce.woocommerce-cart:has(.cart-empty.woocommerce-info) .militra-cart-hero-h--empty,
body.militra-woocommerce.woocommerce-cart:has(.cart-empty.woocommerce-info) .militra-cart-hero-lead--empty,
body.militra-woocommerce.woocommerce-cart:has(.wc-empty-cart-message) .militra-cart-hero-h--empty,
body.militra-woocommerce.woocommerce-cart:has(.wc-empty-cart-message) .militra-cart-hero-lead--empty {
	display: inline;
}
body.militra-woocommerce .militra-cart-hero .eyebrow {
	margin: 0 0 10px;
}
body.militra-woocommerce h1.militra-cart-hero-h,
body.militra-woocommerce .militra-cart-hero-h {
	display: block;
	font-family: var(--boltpress-typography-font-family-heading, 'DM Sans', system-ui, sans-serif);
	font-size: clamp(30px, 4.4vw, 48px);
	font-weight: 800;
	line-height: 1.1;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0 0 10px;
	padding: 0;
	letter-spacing: -0.025em;
	text-transform: none;
	visibility: visible;
	opacity: 1;
}
body.militra-woocommerce .militra-cart-hero-lead {
	margin: 0;
	max-width: 620px;
	color: var(--boltpress-colors-neutral-500, #64748B);
	font-size: 16px;
	line-height: 1.55;
}
/* Suppress ONLY the parent template's now-empty title H1. The_title filter
   in inc/woocommerce.php returns '' for cart/checkout in the main loop, so
   the parent's `<h1 class="entry-title"><?php the_title(); ?></h1>` renders
   as `<h1 class="entry-title"></h1>` — matched by `:empty`. Custom blocks,
   plugin H1s, or any H1 with real content survives untouched. */
body.militra-woocommerce.woocommerce-cart h1.page-title:empty,
body.militra-woocommerce.woocommerce-checkout h1.page-title:empty,
body.militra-woocommerce.woocommerce-cart h1.entry-title:empty,
body.militra-woocommerce.woocommerce-checkout h1.entry-title:empty {
	display: none;
}
/* WC cart table → cards. We re-skin the .shop_table.cart so it reads as a
   stack of cards on every viewport — the legacy table never looks good. */
body.militra-woocommerce .woocommerce-cart-form {
	background: transparent;
}
body.militra-woocommerce table.shop_table.cart {
	width: 100%;
	/* Fixed layout is essential: with the default `auto` algorithm the browser
	   ignores our column widths on a wide table and dumps the surplus into a
	   phantom gap (it surfaced between the remove × and the thumbnail), while
	   the product-name column stayed starved. Fixed layout makes the explicit
	   widths below authoritative and hands ALL leftover space to the single
	   auto-width column (product-name). It also lets the colspan coupon/actions
	   cell span the full table width. */
	table-layout: fixed;
	border: 0;
	border-collapse: separate;
	border-spacing: 0 12px;
	background: transparent;
	margin: 0 0 20px;
}
body.militra-woocommerce table.shop_table.cart thead {
	display: none; /* cards don't need a header row */
}
body.militra-woocommerce table.shop_table.cart tr.cart_item {
	background: var(--boltpress-colors-neutral-0, #fff);
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
body.militra-woocommerce table.shop_table.cart tr.cart_item:hover {
	box-shadow: 0 12px 28px -16px rgba(15, 23, 42, 0.18);
	transform: translateY(-1px);
}
body.militra-woocommerce table.shop_table.cart tr.cart_item td {
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-left: 0; border-right: 0;
	padding: 18px 10px;
	background: var(--boltpress-colors-neutral-0, #fff);
	vertical-align: middle;
	font-size: 14px;
}
body.militra-woocommerce table.shop_table.cart tr.cart_item td:first-child {
	border-left: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px 0 0 8px;
	padding-left: 18px;
}
body.militra-woocommerce table.shop_table.cart tr.cart_item td:last-child,
body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-subtotal {
	border-right: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 0 8px 8px 0;
	padding-right: 18px;
}
body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-remove {
	width: 48px;
	padding-left: 14px;
	padding-right: 2px;
}
body.militra-woocommerce table.shop_table.cart .product-remove a.remove {
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--boltpress-colors-neutral-100, #F1F5F9) !important;
	color: var(--boltpress-colors-neutral-600, #475569) !important;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px !important; font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
body.militra-woocommerce table.shop_table.cart .product-remove a.remove:hover {
	background: var(--boltpress-colors-primary, #E8501E) !important;
	color: #fff !important;
	transform: rotate(90deg);
}
body.militra-woocommerce table.shop_table.cart .product-thumbnail {
	width: 88px;
}
body.militra-woocommerce table.shop_table.cart .product-thumbnail img {
	width: 64px !important;
	height: 64px;
	border-radius: 8px;
	object-fit: cover;
	display: block;
}
/* Name is the elastic column — it absorbs whatever the fixed columns leave.
   min-width:0 lets the long course title wrap instead of forcing the table
   wider than the (narrow) form grid column. */
body.militra-woocommerce table.shop_table.cart .product-name {
	min-width: 0;
	width: auto;
	padding-right: 12px;
}
body.militra-woocommerce table.shop_table.cart .product-price,
body.militra-woocommerce table.shop_table.cart .product-subtotal {
	/* Border-box width (global box-sizing reset in main.css). The subtotal is
	   the last cell (extra 18px right padding + 1px border), so its content box
	   is ~75px here — comfortable for this catalogue's amounts ("500,00 €").
	   Bump higher only if 4-digit totals ("1 250,00 €") become possible. */
	width: 104px;
	text-align: right;
}
body.militra-woocommerce table.shop_table.cart .product-name a {
	font-size: 16px;
	font-weight: 700;
	color: var(--boltpress-colors-headings-general, #0F172A);
	text-decoration: none;
	letter-spacing: -0.01em;
	line-height: 1.35;
	transition: color .15s ease;
}
body.militra-woocommerce table.shop_table.cart .product-name a:hover {
	color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce table.shop_table.cart .product-name .variation {
	margin-top: 6px;
	color: var(--boltpress-colors-neutral-500, #64748B);
	font-size: 13px;
}
body.militra-woocommerce table.shop_table.cart .product-name .variation dt,
body.militra-woocommerce table.shop_table.cart .product-name .variation dd { display: inline; margin: 0; }
body.militra-woocommerce table.shop_table.cart .product-price,
body.militra-woocommerce table.shop_table.cart .product-subtotal {
	font-weight: 700;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.militra-woocommerce table.shop_table.cart .product-subtotal .amount {
	/* Slate, not orange — the brand reserves orange for one spark per view
	   (the order-total amount + the checkout CTA). Per-line subtotals are
	   informational and should read as such. */
	color: var(--boltpress-colors-headings-general, #0F172A);
}

/* Quantity column is hidden entirely (see the column-hide rule further down) —
   products are sold individually, so the cart never shows a quantity. No pill
   styling needed here. */

/* Coupon row — WC's last cart row has td.actions containing:
     <div class="coupon"><label>…<input class="input-text"><button name=apply_coupon></div>
     <button name=update_cart>
   We lay the coupon group out on the left (claiming the lion's share of
   width) and the Update Cart button on the right via floats. Both stack
   full-width on mobile so neither truncates. */
body.militra-woocommerce table.shop_table.cart tr:last-of-type td.actions {
	/* MUST stay a real table-cell. `display:flex/block` drops this colspan=6
	   cell out of table layout; under table-layout:fixed its anonymous
	   replacement then spans only ONE column (~48px) and the panel collapses
	   to a sliver. As a table-cell the colspan correctly fills the whole row,
	   so we lay the children out with floats (we can't flex the cell itself
	   without a template wrapper). */
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	border-radius: 8px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	padding: 16px 18px;
}
body.militra-woocommerce table.shop_table.cart tr:last-of-type td.actions::after {
	content: '';
	display: block;
	clear: both;
}
body.militra-woocommerce table.shop_table.cart .coupon {
	float: left;
	display: flex;
	gap: 8px;
	align-items: stretch;
	/* Fill the row, reserving space on the right for the Update-cart button.
	   min-width forces the button to drop below on narrow columns instead of
	   crushing the input. */
	width: calc(100% - 200px);
	min-width: 240px;
}
body.militra-woocommerce table.shop_table.cart .coupon label {
	display: none;
}
body.militra-woocommerce table.shop_table.cart .coupon input.input-text,
body.militra-woocommerce table.shop_table.cart .coupon #coupon_code {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	padding: 10px 16px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
	color: var(--boltpress-colors-headings-general, #0F172A);
	font: inherit;
	font-size: 14px;
	min-height: 44px;
	max-width: none;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.militra-woocommerce table.shop_table.cart .coupon input.input-text::placeholder {
	color: var(--boltpress-colors-neutral-400, #94A3B8);
}
body.militra-woocommerce table.shop_table.cart .coupon input.input-text:focus {
	border-color: var(--boltpress-colors-primary, #E8501E);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(232, 80, 30, 0.15);
}
body.militra-woocommerce table.shop_table.cart .coupon button,
body.militra-woocommerce table.shop_table.cart .coupon .button {
	flex: 0 0 auto;
	white-space: nowrap;
}
body.militra-woocommerce table.shop_table.cart td.actions > button[name="update_cart"],
body.militra-woocommerce table.shop_table.cart td.actions > input[name="update_cart"] {
	float: right;
	white-space: nowrap;
}

@media (max-width: 640px) {
	/* Block flow on phones so the cell fills width even outside table layout
	   (the table itself becomes display:block below), and the floated children
	   stack full-width. */
	body.militra-woocommerce table.shop_table.cart tr:last-of-type {
		display: block;
	}
	body.militra-woocommerce table.shop_table.cart tr:last-of-type td.actions {
		display: block;
	}
	body.militra-woocommerce table.shop_table.cart .coupon {
		float: none;
		width: 100%;
		min-width: 0;
		margin-bottom: 12px;
	}
	body.militra-woocommerce table.shop_table.cart td.actions > button[name="update_cart"],
	body.militra-woocommerce table.shop_table.cart td.actions > input[name="update_cart"] {
		float: none;
		width: 100%;
	}

	/* Phone layout: a 6-column table can't fit a ~360–414px screen, and
	   table-layout:fixed would force horizontal overflow. Collapse the line
	   items into stacked cards. `display:block` on the row turns it into a
	   normal block box so it CAN carry the border + radius (table-rows can't
	   in the separate-border model), and each cell becomes a labeled row using
	   WC's own `data-title` attributes. */
	body.militra-woocommerce table.shop_table.cart,
	body.militra-woocommerce table.shop_table.cart tbody {
		display: block;
		width: 100%;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item {
		display: block;
		position: relative;
		border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
		border-radius: 8px;
		padding: 16px 16px 10px;
		margin: 0 0 12px;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		width: auto !important;
		border: 0 !important;
		border-radius: 0 !important;
		padding: 9px 0;
		text-align: right;
	}
	/* data-title labels (Price / Quantity / Subtotal), left-aligned. */
	body.militra-woocommerce table.shop_table.cart tr.cart_item td::before {
		content: attr(data-title);
		font-weight: 600;
		font-size: 13px;
		color: var(--boltpress-colors-neutral-600, #475569);
		text-align: left;
		white-space: nowrap;
	}
	/* Title spans full width as a heading — no redundant "Product" label. */
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-name {
		display: block;
		text-align: left;
		padding-top: 2px;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-name::before {
		content: none;
	}
	/* Thumbnail: block, left-aligned, no label. */
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-thumbnail {
		display: block;
		padding: 0 0 10px;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-thumbnail::before {
		content: none;
	}
	/* Remove × pinned to the card's top-right corner. */
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-remove {
		position: absolute;
		top: 12px;
		right: 12px;
		padding: 0 !important;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-remove::before {
		content: none;
	}
}

/* Cart collaterals — totals card on the right. Float by default in WC; we
   give it explicit width + sticky position so it visually anchors the page. */
body.militra-woocommerce .cart-collaterals {
	display: block;
	margin-top: 8px;
}
body.militra-woocommerce .cart-collaterals .cart_totals {
	width: 100%;
	float: none;
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 22px 24px;
	box-shadow: 0 12px 32px -20px rgba(15, 23, 42, 0.2);
}
body.militra-woocommerce .cart-collaterals .cart_totals > h2 {
	font-size: 18px;
	font-weight: 800;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0 0 16px;
	letter-spacing: -0.01em;
	display: flex;
	align-items: center;
	gap: 10px;
}
body.militra-woocommerce .cart-collaterals .cart_totals > h2::before {
	content: '';
	display: inline-block;
	width: 4px; height: 22px;
	background: var(--boltpress-colors-primary, #E8501E);
	border-radius: 8px;
}
body.militra-woocommerce .cart-collaterals table.shop_table {
	width: 100%;
	border: 0;
	margin: 0 0 18px;
	border-collapse: collapse;
}
body.militra-woocommerce .cart-collaterals table.shop_table tr {
	border-bottom: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
}
body.militra-woocommerce .cart-collaterals table.shop_table tr:last-child {
	border-bottom: 0;
}
body.militra-woocommerce .cart-collaterals table.shop_table th,
body.militra-woocommerce .cart-collaterals table.shop_table td {
	background: transparent;
	border: 0;
	padding: 14px 0;
	font-size: 14px;
	color: var(--boltpress-colors-neutral-600, #475569);
	font-weight: 500;
}
body.militra-woocommerce .cart-collaterals table.shop_table th {
	font-weight: 600;
	color: var(--boltpress-colors-neutral-700, #334155);
	text-align: left;
}
body.militra-woocommerce .cart-collaterals table.shop_table td {
	text-align: right;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
body.militra-woocommerce .cart-collaterals .order-total th,
body.militra-woocommerce .cart-collaterals .order-total td {
	padding-top: 16px;
	font-size: 16px;
	font-weight: 800;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce .cart-collaterals .order-total td .amount {
	color: var(--boltpress-colors-primary, #E8501E);
	font-size: 22px;
	font-weight: 800;
}
body.militra-woocommerce .cart-collaterals .wc-proceed-to-checkout {
	padding: 0;
	margin: 0;
}
body.militra-woocommerce .cart-collaterals .wc-proceed-to-checkout > a.checkout-button {
	width: 100%;
	display: inline-flex;
}

/* Trust strip rendered by militra_cart_trust_strip — sits inside .cart_totals
   below the proceed-to-checkout button. */
body.militra-woocommerce .militra-cart-trust {
	list-style: none;
	margin: 18px 0 0;
	padding: 16px 0 0;
	border-top: 1px dashed var(--boltpress-colors-neutral-200, #E2E8F0);
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 13px;
	color: var(--boltpress-colors-neutral-600, #475569);
}
body.militra-woocommerce .militra-cart-trust li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0;
	margin: 0;
	list-style: none;
}
body.militra-woocommerce .militra-cart-trust-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px; height: 28px;
	border-radius: 8px;
	background: var(--boltpress-colors-accent, #FCE6D9);
	color: var(--boltpress-colors-primary, #E8501E);
	flex: 0 0 28px;
}

/* Cart 2-col grid: items + totals side by side on wide. ONLY when there's
   actually a cart form to align against — empty-cart pages stay block flow
   so the empty-state card and return-to-shop button can center cleanly. */
@media (min-width: 1024px) {
	body.militra-woocommerce.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) {
		display: grid;
		grid-template-columns: 1fr 380px;
		gap: 32px;
		align-items: start;
	}
	body.militra-woocommerce.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .woocommerce-notices-wrapper,
	body.militra-woocommerce.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .militra-cart-hero {
		grid-column: 1 / -1;
	}
	body.militra-woocommerce.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > form.woocommerce-cart-form { grid-column: 1; }
	body.militra-woocommerce.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .cart-collaterals { grid-column: 2; }
	body.militra-woocommerce.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) .cart-collaterals .cart_totals {
		position: sticky;
		top: 96px;
	}
}

/* Empty-cart panel — WC emits two siblings: <p class="cart-empty woocommerce-info">
   and <p class="return-to-shop"> with a button inside. We style them as ONE
   hero block (icon above headline above lead above CTA) by stacking them via
   block flow and centering. The CTA is rendered by WC's own template — we
   only style it via the unified-button system. */
body.militra-woocommerce .cart-empty.woocommerce-info,
body.militra-woocommerce p.cart-empty {
	display: block;
	background: linear-gradient(180deg, var(--boltpress-colors-orange-50, #FEF4EE) 0%, var(--boltpress-colors-neutral-0, #fff) 240px);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 64px 32px 84px;
	text-align: center;
	font-size: clamp(22px, 3.2vw, 30px);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0 auto;
	max-width: 640px;
	position: relative;
	box-shadow: 0 18px 48px -28px rgba(15, 23, 42, 0.22);
	border-left-width: 1px;
	list-style: none;
}
/* Friendly lead under the headline — adds a second line of context so the
   card doesn't read as a terse one-liner. */
body.militra-woocommerce .cart-empty.woocommerce-info::after {
	content: 'Pasirinkite mokymus iš katalogo ir tęskite registraciją.';
	display: block;
	margin: 14px auto 0;
	max-width: 380px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0;
	color: var(--boltpress-colors-neutral-500, #64748B);
}
/* CTA row — pull it up so it visually anchors the bottom edge of the same card. */
body.militra-woocommerce .return-to-shop {
	text-align: center;
	margin: -32px auto 56px;
	max-width: 640px;
	position: relative;
	z-index: 1;
}
body.militra-woocommerce .return-to-shop .button {
	min-width: min(240px, 100%);
}
/* Override the ghost wc-backward variant from the unified button rules above —
   in the empty-cart context this is the page's primary action, so it should
   read as the brand orange CTA, not as a quiet secondary. */
body.militra-woocommerce.woocommerce-cart .return-to-shop .button.wc-backward {
	background-color: var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	border-color: var(--boltpress-colors-primary, #E8501E);
	padding: 14px 28px;
	font-size: 16px;
	font-weight: 700;
	min-height: 52px;
	box-shadow: 0 14px 28px -10px rgba(232, 80, 30, 0.55);
}
body.militra-woocommerce.woocommerce-cart .return-to-shop .button.wc-backward:hover {
	background-color: var(--boltpress-colors-orange-600, #D14318);
	border-color: var(--boltpress-colors-orange-600, #D14318);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 18px 32px -10px rgba(232, 80, 30, 0.65);
}

/* ============================================================
   Checkout page (/checkout) — branded form layout
   ============================================================ */

body.militra-woocommerce.woocommerce-checkout .woocommerce {
	padding: clamp(28px, 5vw, 56px) 0 80px;
}

body.militra-woocommerce.woocommerce-checkout form.checkout {
	display: block;
	margin-top: 8px;
}
body.militra-woocommerce.woocommerce-checkout #customer_details {
	margin-bottom: 24px;
}

/* Two-col grid wrap: customer details + order review side by side on wide.
   Row 1 (auto) is a full-width band reserved for the checkout validation
   notice — WC's checkout.js prepends `.woocommerce-NoticeGroup-checkout` into
   form.checkout on a failed submit; as an unplaced grid item it would otherwise
   auto-flow into an implicit row at the BOTTOM of the grid. The band collapses
   to 0 height when no notice is present. Rows 2–3 hold the two columns:
   #customer_details spans both so the right column's heading + summary box
   stack tightly at the top instead of the box sliding down to the bottom of
   the tall customer-details card. */
@media (min-width: 1024px) {
	body.militra-woocommerce.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: 1fr 420px;
		grid-template-rows: auto auto 1fr;
		column-gap: 36px;
		row-gap: 0;
		align-items: start;
	}
	/* Validation / status notices: full-width top band, above both columns. */
	body.militra-woocommerce.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
	body.militra-woocommerce.woocommerce-checkout form.checkout > .woocommerce-error,
	body.militra-woocommerce.woocommerce-checkout form.checkout > .woocommerce-message,
	body.militra-woocommerce.woocommerce-checkout form.checkout > .woocommerce-info {
		grid-column: 1 / -1;
		grid-row: 1;
		margin-bottom: 18px;
	}
	body.militra-woocommerce.woocommerce-checkout form.checkout > #customer_details {
		grid-column: 1;
		grid-row: 2 / -1;
		margin-bottom: 0;
	}
	body.militra-woocommerce.woocommerce-checkout form.checkout > h3#order_review_heading {
		grid-column: 2;
		grid-row: 2;
	}
	body.militra-woocommerce.woocommerce-checkout form.checkout > #order_review {
		grid-column: 2;
		grid-row: 3;
		position: sticky;
		top: 96px;
	}
}

/* Customer details panels — each (billing / shipping / additional info) gets
   its own card. WC wraps them in <div class="woocommerce-billing-fields"> etc. */
body.militra-woocommerce.woocommerce-checkout #customer_details .col-1,
body.militra-woocommerce.woocommerce-checkout #customer_details .col-2,
body.militra-woocommerce.woocommerce-checkout .woocommerce-additional-fields {
	width: 100%;
	float: none;
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 22px 24px;
	margin-bottom: 18px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
body.militra-woocommerce.woocommerce-checkout #customer_details h3,
body.militra-woocommerce.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-size: 18px;
	font-weight: 800;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0 0 18px;
	display: flex; align-items: center; gap: 10px;
	letter-spacing: -0.01em;
}
body.militra-woocommerce.woocommerce-checkout #customer_details h3::before,
body.militra-woocommerce.woocommerce-checkout .woocommerce-additional-fields h3::before {
	content: '';
	display: inline-block;
	width: 4px; height: 20px;
	background: var(--boltpress-colors-primary, #E8501E);
	border-radius: 8px;
}

/* Form fields — brand inputs (matching site search field treatment). */
body.militra-woocommerce.woocommerce-checkout .form-row {
	margin: 0 0 14px;
	padding: 0;
}
body.militra-woocommerce.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--boltpress-colors-neutral-700, #334155);
}
body.militra-woocommerce.woocommerce-checkout .form-row label .required,
body.militra-woocommerce.woocommerce-checkout .form-row label abbr[title="required"] {
	color: var(--boltpress-colors-primary, #E8501E);
	margin-left: 2px;
	text-decoration: none;
	border: 0;
}
body.militra-woocommerce.woocommerce-checkout .form-row .input-text,
body.militra-woocommerce.woocommerce-checkout .form-row .select2-container--default .select2-selection--single,
body.militra-woocommerce.woocommerce-checkout .form-row select,
body.militra-woocommerce.woocommerce-checkout .form-row textarea {
	width: 100%;
	min-height: 46px;
	padding: 11px 14px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
	color: var(--boltpress-colors-headings-general, #0F172A);
	font: inherit;
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.militra-woocommerce.woocommerce-checkout .form-row textarea {
	min-height: 96px;
	resize: vertical;
}
body.militra-woocommerce.woocommerce-checkout .form-row .input-text:focus,
body.militra-woocommerce.woocommerce-checkout .form-row select:focus,
body.militra-woocommerce.woocommerce-checkout .form-row textarea:focus {
	outline: 0;
	border-color: var(--boltpress-colors-primary, #E8501E);
	box-shadow: 0 0 0 3px rgba(232, 80, 30, 0.15);
}
body.militra-woocommerce.woocommerce-checkout .select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
}
body.militra-woocommerce.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.3;
	color: var(--boltpress-colors-headings-general, #0F172A);
	padding-left: 0;
}
body.militra-woocommerce.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 8px;
}

/* Inline validation styling (WC adds .woocommerce-invalid / .woocommerce-validated). */
body.militra-woocommerce.woocommerce-checkout .form-row.woocommerce-invalid .input-text,
body.militra-woocommerce.woocommerce-checkout .form-row.woocommerce-invalid select {
	border-color: var(--boltpress-colors-error, #DC2626);
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}
body.militra-woocommerce.woocommerce-checkout .form-row.woocommerce-validated .input-text,
body.militra-woocommerce.woocommerce-checkout .form-row.woocommerce-validated select {
	border-color: var(--boltpress-colors-success, #16A34A);
}

/* Login + coupon reveal toggle bars above the checkout form.

   WC markup is NESTED — `<div class="woocommerce-form-*-toggle">` wraps a
   `<div class="woocommerce-info">…</div>`. We neutralize the outer wrapper
   so it contributes no chrome, then style the INNER `.woocommerce-info` as
   the visible prompt. Without this, both elements got their own border and
   left edge, producing a "double card" look in the live render.

   The dual-class selector also matches the flat markup (both classes on the
   same element) that older WC templates emit, so we cover both shapes. */
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login-toggle {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0 0 12px;
	color: inherit;
	font: inherit;
	box-shadow: none;
	min-height: 0;
}
/* The inner notice (or the same element in flat markup) is the prompt. */
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
body.militra-woocommerce.woocommerce-checkout .woocommerce-info.woocommerce-form-coupon-toggle,
body.militra-woocommerce.woocommerce-checkout .woocommerce-info.woocommerce-form-login-toggle {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-left: 3px solid var(--boltpress-colors-primary, #E8501E);
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-size: 14px;
	font-weight: 500;
	margin: 0;
}
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon-toggle a,
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login-toggle a,
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a,
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a {
	color: var(--boltpress-colors-primary, #E8501E);
	font-weight: 700;
}
/* Contextual stroke icons — replace the generic "i" from the base info rule.
   Targets both the nested-inner notice and the flat dual-class element. */
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
body.militra-woocommerce.woocommerce-checkout .woocommerce-info.woocommerce-form-login-toggle::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23E8501E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>");
}
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
body.militra-woocommerce.woocommerce-checkout .woocommerce-info.woocommerce-form-coupon-toggle::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23E8501E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20.59 13.41 13.42 20.58a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/><circle cx='7' cy='7' r='1.5' fill='%23E8501E'/></svg>");
}
/* Strip the gray border-left from the base info rule when this notice is the
   prompt-inside-toggle — orange wins. (Selector specificity is the same, but
   declaration order needs explicit reset because WC may merge styles.) */
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info:not(.cart-empty),
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info:not(.cart-empty) {
	border-left: 3px solid var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-coupon,
body.militra-woocommerce.woocommerce-checkout .woocommerce-form-login {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 18px;
	margin-bottom: 18px;
}

/* Order review card — sticky right column. Heading sits in its own grid row
   (row 1) and #order_review in row 2; we paint both with the same card chrome
   and shave the seam between them so they read as one continuous card. */
body.militra-woocommerce.woocommerce-checkout h3#order_review_heading {
	font-size: 18px;
	font-weight: 800;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0;
	padding: 22px 24px 14px;
	letter-spacing: -0.01em;
	display: flex; align-items: center; gap: 10px;
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	box-shadow: 0 12px 32px -20px rgba(15, 23, 42, 0.2);
}
body.militra-woocommerce.woocommerce-checkout h3#order_review_heading::before {
	content: '';
	display: inline-block;
	width: 4px; height: 20px;
	background: var(--boltpress-colors-primary, #E8501E);
	border-radius: 8px;
}
body.militra-woocommerce.woocommerce-checkout #order_review {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-top: 0;
	border-radius: 0 0 8px 8px;
	padding: 4px 24px 22px;
	box-shadow: 0 12px 32px -20px rgba(15, 23, 42, 0.2);
}
body.militra-woocommerce.woocommerce-checkout #order_review table.shop_table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	margin: 0 0 14px;
}
body.militra-woocommerce.woocommerce-checkout #order_review table.shop_table thead {
	display: none;
}
body.militra-woocommerce.woocommerce-checkout #order_review table.shop_table tr {
	border-bottom: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
}
body.militra-woocommerce.woocommerce-checkout #order_review table.shop_table tr:last-child {
	border-bottom: 0;
}
body.militra-woocommerce.woocommerce-checkout #order_review table.shop_table th,
body.militra-woocommerce.woocommerce-checkout #order_review table.shop_table td {
	background: transparent;
	border: 0;
	padding: 12px 0;
	font-size: 14px;
}
body.militra-woocommerce.woocommerce-checkout #order_review tr.cart_item td.product-name {
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 600;
}
/* Quantity removed — sold individually, always 1 — so the "× 1" badge beside
   the product name in the order review carries no information. Hide it. */
body.militra-woocommerce.woocommerce-checkout #order_review tr.cart_item td.product-name strong.product-quantity {
	display: none;
}
body.militra-woocommerce.woocommerce-checkout #order_review tr.cart_item td.product-total {
	text-align: right;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.militra-woocommerce.woocommerce-checkout #order_review tfoot th {
	font-weight: 600;
	color: var(--boltpress-colors-neutral-600, #475569);
}
body.militra-woocommerce.woocommerce-checkout #order_review tfoot td {
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 700;
}
body.militra-woocommerce.woocommerce-checkout #order_review tfoot tr.order-total th,
body.militra-woocommerce.woocommerce-checkout #order_review tfoot tr.order-total td {
	font-size: 16px;
	font-weight: 800;
	padding-top: 14px;
}
body.militra-woocommerce.woocommerce-checkout #order_review tfoot tr.order-total td > .amount {
	color: var(--boltpress-colors-primary, #E8501E);
	font-size: 22px;
	font-weight: 800;
}
/* (įskaičiuota X € PVM) — the inline tax-inclusive note. WC nests another
   .amount inside <small class="includes_tax">; without this it would pick up
   the big-orange total style above. Direct-child > on the total amount
   confines the spotlight to that one number; this rule normalises the rest. */
body.militra-woocommerce.woocommerce-checkout #order_review tfoot tr.order-total td .includes_tax {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	font-weight: 400;
	color: var(--boltpress-colors-neutral-500, #64748B);
}
body.militra-woocommerce.woocommerce-checkout #order_review tfoot tr.order-total td .includes_tax .amount {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

/* Payment methods box — replace WC's boxy default with a clean radio list. */
body.militra-woocommerce.woocommerce-checkout #payment {
	background: transparent;
	margin-top: 18px;
	border-radius: 0;
}
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	border: 0;
}
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods li {
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 14px 16px;
	transition: border-color .15s ease, background .15s ease;
	list-style: none;
}
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods li:hover {
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1);
}
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods li:has(input[type="radio"]:checked),
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods li.is-selected {
	border-color: var(--boltpress-colors-primary, #E8501E);
	background: var(--boltpress-colors-orange-50, #FEF4EE);
}
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods label {
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 600;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
body.militra-woocommerce.woocommerce-checkout #payment ul.payment_methods input[type="radio"] {
	accent-color: var(--boltpress-colors-primary, #E8501E);
	width: 18px; height: 18px;
}
body.militra-woocommerce.woocommerce-checkout #payment .payment_box {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	border-radius: 8px;
	padding: 14px 16px;
	margin-top: 10px;
	font-size: 13px;
	color: var(--boltpress-colors-neutral-600, #475569);
	line-height: 1.6;
}
body.militra-woocommerce.woocommerce-checkout #payment .payment_box::before {
	display: none;
}

/* Terms + place-order area. */
body.militra-woocommerce.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 14px 0 12px;
	font-size: 13px;
	color: var(--boltpress-colors-neutral-600, #475569);
}
body.militra-woocommerce.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	cursor: pointer;
}
body.militra-woocommerce.woocommerce-checkout .woocommerce-form__input-checkbox {
	margin-top: 3px;
	width: 16px; height: 16px;
	accent-color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce.woocommerce-checkout .place-order {
	padding: 14px 0 0;
	margin: 0;
	border-top: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
}
body.militra-woocommerce.woocommerce-checkout #place_order {
	width: 100%;
	margin: 0;
}

/* Order received / thank-you page — same card vocabulary so the journey reads as one. */
body.militra-woocommerce.woocommerce-order-received .woocommerce-order {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 32px;
	margin: 32px auto;
	box-shadow: 0 12px 32px -20px rgba(15, 23, 42, 0.2);
	max-width: 760px;
}
body.militra-woocommerce.woocommerce-order-received p.woocommerce-thankyou-order-received {
	font-size: 18px;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 700;
	margin: 0 0 18px;
	padding-left: 36px;
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2316A34A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='m9 12 2 2 4-4'/></svg>") no-repeat 0 center;
}
body.militra-woocommerce.woocommerce-order-received .woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 14px;
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}
/* WooCommerce clearfixes ul.order_details (::before/::after, content:" ") for
   its normally-floated <li>s. Once the list becomes a grid those pseudo-
   elements turn into empty grid items — ::before takes cell 1, shoving every
   meta box one column over and orphaning the total onto its own row. Remove
   them so the four meta items fill the grid from the first cell. */
body.militra-woocommerce.woocommerce-order-received .woocommerce-order-overview::before,
body.militra-woocommerce.woocommerce-order-received .woocommerce-order-overview::after {
	content: none;
}
body.militra-woocommerce.woocommerce-order-received .woocommerce-order-overview li {
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	border: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	border-radius: 8px;
	padding: 14px;
	border-bottom: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--boltpress-colors-neutral-500, #64748B);
	font-weight: 700;
}
body.militra-woocommerce.woocommerce-order-received .woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-size: 15px;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 700;
}

/* CertFlow "Add to calendar" buttons. CertFlow's own public.css is gated to its
   shortcode pages and never loads on the WooCommerce order-received page, so the
   buttons render unstyled there — the theme brands them to the secondary button
   vocabulary (white, bordered, slate text, orange on hover). */
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-actions-wrap {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
}
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-heading {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 700;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
	color: var(--boltpress-colors-neutral-700, #334155);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-btn:hover,
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-btn:focus {
	color: var(--boltpress-colors-primary, #E8501E);
	border-color: var(--boltpress-colors-primary, #E8501E);
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	text-decoration: none;
}
/* Size the glyphs; leave fills alone so multicolour brand marks (Google/Outlook)
   keep their native colours while the monochrome .ics icon inherits currentColor. */
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-btn .cf-icon,
body.militra-woocommerce.woocommerce-order-received .certflow-booking-calendar-btn svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* "Go to my account" CTA (militra_thankyou_account_button) — replaces the
   former auto-redirect with an explicit, user-initiated step. */
body.militra-woocommerce.woocommerce-order-received .militra-thankyou-account {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	display: flex;
	justify-content: center;
}

/* Notices — minimal but crispy. Thin border, no drop shadow, no background
   tint. A small inline-style icon stroke sits left of the message text; the
   left edge carries a 3px brand-status border so the status reads instantly
   even at a glance. */
body.militra-woocommerce .woocommerce-message,
body.militra-woocommerce .woocommerce-error,
body.militra-woocommerce .woocommerce-info {
	border-radius: 8px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	padding: 12px 16px 12px 44px;
	background: var(--boltpress-colors-neutral-0, #fff);
	font-size: 14px;
	font-weight: 500;
	color: var(--boltpress-colors-headings-general, #0F172A);
	box-shadow: none;
	margin: 0 0 14px;
	position: relative;
	list-style: none;
	line-height: 1.5;
	min-height: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
body.militra-woocommerce .woocommerce-message::before,
body.militra-woocommerce .woocommerce-error::before,
body.militra-woocommerce .woocommerce-info::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 14px;
	transform: translateY(-50%);
	width: 18px; height: 18px;
	border-radius: 0;
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 18px 18px;
	box-shadow: none;
}

body.militra-woocommerce .woocommerce-message {
	border-left: 3px solid var(--boltpress-colors-success, #16A34A);
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 600;
}
body.militra-woocommerce .woocommerce-message::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2316A34A' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");
}

body.militra-woocommerce .woocommerce-error {
	border-left: 3px solid var(--boltpress-colors-error, #DC2626);
	font-weight: 600;
}
body.militra-woocommerce .woocommerce-error::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23DC2626' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 8v4'/><path d='M12 16h.01'/></svg>");
}

body.militra-woocommerce .woocommerce-info:not(.cart-empty) {
	border-left: 3px solid var(--boltpress-colors-neutral-400, #94A3B8);
}
body.militra-woocommerce .woocommerce-info:not(.cart-empty)::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>");
}

/* WC normally floats the action button right; with our flex layout we push
   it to the end of the row instead so it works on every flex/RTL combo. */
body.militra-woocommerce .woocommerce-message .button,
body.militra-woocommerce .woocommerce-error .button,
body.militra-woocommerce .woocommerce-info .button {
	margin-left: auto;
	float: none;
}

body.militra-woocommerce ul.woocommerce-error,
body.militra-woocommerce ul.woocommerce-message,
body.militra-woocommerce ul.woocommerce-info {
	margin-left: 0;
}
/* Multi-message notice lists — WC renders one <li> per validation error
   inside `<ul class="woocommerce-error">`. The notice box itself is
   `display:flex; flex-wrap:wrap` (so a single-line notice can align icon +
   text + button on one row); but that makes each <li> a flex item, so several
   errors pack inline and wrap mid-row — running separate messages together.
   Force every list item onto its own full-width line so each error reads as a
   distinct entry, each on the next line. */
body.militra-woocommerce ul.woocommerce-error li,
body.militra-woocommerce ul.woocommerce-message li,
body.militra-woocommerce ul.woocommerce-info li {
	flex: 0 0 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Anchor the status icon to the first line rather than the vertical centre of
   the (now multi-line) box. Only the `ul` notice lists — single-row notices
   (e.g. the add-to-cart `<div class="woocommerce-message">` with a View-cart
   button) stay centred via the rule above. */
body.militra-woocommerce ul.woocommerce-error::before,
body.militra-woocommerce ul.woocommerce-message::before,
body.militra-woocommerce ul.woocommerce-info::before {
	top: 15px;
	transform: none;
}

/* WC adds `tabindex="-1"` on the notices wrapper AND (on some flows) on the
   individual notice so JS can programmatically focus it after add-to-cart /
   AJAX updates (so screen readers announce the new notice). The browser's
   default focus ring then draws a thick blue rectangle around the whole notice
   — visually distracting and redundant with the notice's own styling. Suppress
   it on both the wrapper and the notices themselves; the notice is the visual
   focus. (Keyboard users still get focus styling on the inner button/link.) */
body.militra-woocommerce .woocommerce-notices-wrapper:focus,
body.militra-woocommerce .woocommerce-notices-wrapper:focus-visible,
body.militra-woocommerce .woocommerce-message:focus,
body.militra-woocommerce .woocommerce-message:focus-visible,
body.militra-woocommerce .woocommerce-error:focus,
body.militra-woocommerce .woocommerce-error:focus-visible,
body.militra-woocommerce .woocommerce-info:focus,
body.militra-woocommerce .woocommerce-info:focus-visible {
	outline: none;
	box-shadow: none;
}

/* The cart-empty info is a hero card — opt out of the inline-flex notice
   layout above so its centered icon + headline stack vertically. */
body.militra-woocommerce .cart-empty.woocommerce-info {
	min-height: 0;
	gap: 0;
}
/* Icon as a centered peach disc above the headline. `display: block` is
   required — without it, the ::before stays inline (default for pseudos)
   and width/height are ignored on inline non-replaced boxes. */
body.militra-woocommerce .cart-empty.woocommerce-info::before {
	content: '';
	display: block;
	position: static;
	transform: none;
	width: 112px;
	height: 112px;
	margin: 0 auto 24px;
	border-radius: 50%;
	background-color: var(--boltpress-colors-accent, #FCE6D9);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='52' height='52' viewBox='0 0 24 24' fill='none' stroke='%23E8501E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='8' cy='21' r='1'/><circle cx='19' cy='21' r='1'/><path d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/></svg>");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 52px 52px;
	box-shadow:
		0 18px 36px -16px rgba(232, 80, 30, 0.45),
		0 0 0 8px rgba(252, 230, 217, 0.55);
}

/* Mobile refinements — stack columns; keep totals visible above the fold. */
@media (max-width: 768px) {
	body.militra-woocommerce table.shop_table.cart,
	body.militra-woocommerce table.shop_table.cart tbody,
	body.militra-woocommerce table.shop_table.cart tr.cart_item,
	body.militra-woocommerce table.shop_table.cart tr.cart_item td {
		display: block;
		width: 100%;
		text-align: left;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item {
		border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
		border-radius: 8px;
		margin-bottom: 12px;
		padding: 16px;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td {
		border: 0 !important;
		padding: 6px 0;
		border-radius: 0 !important;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-thumbnail { display: inline-block; width: 88px; vertical-align: top; }
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-name {
		display: inline-block;
		width: calc(100% - 92px);
		padding-left: 8px;
		vertical-align: top;
	}
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-remove { text-align: right; padding: 0 0 6px; }
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-price::before { content: 'Kaina: '; color: var(--boltpress-colors-neutral-500, #64748B); margin-right: 6px; font-weight: 500; }
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-subtotal::before { content: 'Iš viso: '; color: var(--boltpress-colors-neutral-500, #64748B); margin-right: 6px; font-weight: 500; }
	body.militra-woocommerce table.shop_table.cart tr:last-of-type td.actions {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}
	body.militra-woocommerce table.shop_table.cart .coupon { width: 100%; }
}

/* ============================================================
   Audit-driven polish (2026-05-26 WooCommerce audit)
   ============================================================
   Targeted overrides for issues found during the live design audit.
   All scoped to body.militra-woocommerce so non-WC pages are unaffected. */

/* ── Hide LearnDash/legacy yellow <mark> highlight on category counts ── */
body.militra-woocommerce .product-category mark,
body.militra-woocommerce .woocommerce-loop-category__title mark,
body.militra-woocommerce h2.woocommerce-loop-category__title mark {
	background: transparent;
	color: var(--boltpress-colors-neutral-500, #64748B);
	font-weight: 500;
	padding: 0;
}

/* ── Shop archive subcategory cards — give them brand chrome since the
   default WC subcategory loop is barely styled ── */
body.militra-woocommerce ul.products li.product-category {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	padding: 0 !important;
}
body.militra-woocommerce ul.products li.product-category:hover {
	transform: translateY(-2px);
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1);
	box-shadow: 0 12px 28px -16px rgba(15, 23, 42, 0.18);
}
body.militra-woocommerce ul.products li.product-category > a {
	display: block;
	text-decoration: none;
	color: inherit;
}
body.militra-woocommerce ul.products li.product-category img {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
	background: var(--boltpress-colors-orange-50, #FEF4EE);
}
/* (The brand placeholder fallback for category cards is owned by the PHP
   filter on `woocommerce_placeholder_img_src` in inc/woocommerce.php. WC
   asks for the placeholder URL through that filter on every code path
   that needs it, so the IMG `src` is already the brand SVG by the time
   it reaches the browser — no CSS swap needed.) */
body.militra-woocommerce ul.products li.product-category h2,
body.militra-woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	padding: 14px 16px 16px;
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--boltpress-colors-headings-general, #0F172A);
	line-height: 1.35;
}
body.militra-woocommerce ul.products li.product-category .count {
	display: inline-block;
	margin-left: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--boltpress-colors-secondary, #475569);
}

/* ── Quantity AND unit-price columns removed from the cart line. Products are sold
   individually (qty always 1), so the unit price (`product-price`) and the line
   total (`product-subtotal`) are ALWAYS identical — showing both is redundant. We
   keep only the subtotal (the line total that sums to the cart total, and which
   carries the card's right edge) and collapse quantity + price to zero-width,
   borderless, invisible columns.
   Why collapse rather than `display:none`: the cart is a FIXED-LAYOUT table, where
   a display:none cell becomes an auto-width phantom column that splits the leftover
   space with the elastic name column — leaving the card short on the right. Pinning
   the hidden columns to width:0 sends ALL freed width to the name column so the card
   fills the row, and `border:0 !important` guarantees a collapsed cell can't leave a
   stray vertical hairline (and keeps the subtotal flush to the card's right edge).
   The headers live in a display:none thead, so their own widths never matter.
   Mobile overrides these to display:none below, where cells are flex rows. ── */
body.militra-woocommerce table.shop_table.cart th.product-quantity,
body.militra-woocommerce table.shop_table.cart th.product-price,
body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-quantity,
body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-price {
	width: 0 !important;
	max-width: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden;
	visibility: hidden;
}
/* Phones: cells are flex rows (not table columns), so drop the collapsed cells
   outright instead of leaving zero-size invisible rows. */
@media (max-width: 640px) {
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-quantity,
	body.militra-woocommerce table.shop_table.cart tr.cart_item td.product-price {
		display: none;
	}
}

/* ── Checkout: hide the empty "Papildoma informacija" card. The wrapper
   renders even when no field is registered, leaving an orphan card with
   only an H3 header. Hide if the inner wrapper has no children. ── */
body.militra-woocommerce.woocommerce-checkout .woocommerce-additional-fields:not(:has(.form-row)):not(:has(.notes)):not(:has(textarea)):not(:has(input:not([type="hidden"]))) {
	display: none;
}

/* ── …and drop the whole .col-2 column with it. Shipping is disabled site-wide
   (wc_shipping_enabled → false, so .woocommerce-shipping-fields is empty) and
   order notes are off, so .col-2 is just an empty bordered card sitting under
   the billing panel. The .col-2 div is hard-coded in WC's form-checkout.php,
   not in any theme file — hide it here instead of shipping a template override.
   Same predicate as above: collapse only when it holds no real field, so it
   reappears automatically if shipping/notes are re-enabled in WC settings. ── */
body.militra-woocommerce.woocommerce-checkout #customer_details .col-2:not(:has(.form-row)):not(:has(.notes)):not(:has(textarea)):not(:has(input:not([type="hidden"]))) {
	display: none;
}

/* ── Coupon row: belt-and-suspenders sizing so the input never collapses
   to a sliver when other flex siblings (Update Cart button) consume the
   row. Combined with the existing flex:1 1 360px on .coupon. ── */
body.militra-woocommerce table.shop_table.cart .coupon input.input-text,
body.militra-woocommerce table.shop_table.cart .coupon #coupon_code {
	min-width: 200px;
	flex: 1 1 200px;
}
@media (min-width: 481px) {
	body.militra-woocommerce table.shop_table.cart tr:last-of-type td.actions {
		gap: 14px;
	}
	body.militra-woocommerce table.shop_table.cart .coupon {
		min-width: 320px;
	}
}

/* ── Single product: drop the related-products "Kiti produktai" heading
   margin so the section reads as part of the same scroll context. ── */
body.militra-woocommerce .course-related > h2,
body.militra-woocommerce .course-related .related > h2,
body.militra-woocommerce section.related > h2 {
	font-size: clamp(20px, 2.6vw, 28px);
	font-weight: 800;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0 0 18px;
	letter-spacing: -0.01em;
	display: flex;
	align-items: center;
	gap: 10px;
}
body.militra-woocommerce .course-related > h2::before,
body.militra-woocommerce section.related > h2::before {
	content: '';
	display: inline-block;
	width: 4px; height: 22px;
	background: var(--boltpress-colors-primary, #E8501E);
	border-radius: 8px;
}

/* ── Search results page polish — search-archive uses the same chrome
   as the shop archive; ensure the active-filter pill reads cleanly when
   the user-typed query contains characters that the existing pill style
   doesn't account for (very long, with diacritics, etc.) ── */
body.militra-woocommerce.search-results .shop-active-filter,
body.militra-woocommerce.search .shop-active-filter {
	max-width: 100%;
	word-break: break-word;
}

/* ── Cart populated: tighten the line-item card padding on desktop so
   the layout reads as a tighter card rather than a sparse table. ── */
@media (min-width: 769px) {
	body.militra-woocommerce table.shop_table.cart tr.cart_item td {
		padding-top: 16px;
		padding-bottom: 16px;
	}
}

/* (Toggle-bar icons are owned by the rule block in the checkout section
   above — user / tag SVGs in peach discs. Don't override here.) */

/* ── Wider cart hero on mobile so the title doesn't wrap awkwardly ── */
@media (max-width: 480px) {
	body.militra-woocommerce h1.militra-cart-hero-h {
		font-size: clamp(26px, 7vw, 34px);
		letter-spacing: -0.02em;
	}
}

/* ============================================================
   Account page (/mano-paskyra) — login + dashboard
   ============================================================
   The page title "Prisijungti" comes from WP page.php (entry-title H1).
   The form below is rendered by the [woocommerce_my_account] shortcode,
   which emits the WC default form-login.php template. With registration
   disabled the H2 "Login" inside the form is the only duplicate header —
   we hide it because the page H1 already names the page.

   Scoped to body.militra-woocommerce.woocommerce-account so styles only
   apply on /mano-paskyra/ and not on cart/checkout. */

body.militra-woocommerce.woocommerce-account .site-main {
	padding: clamp(28px, 5vw, 56px) 0 80px;
}

/* Constrain the article so the hero + form sit centered on a clean canvas. */
body.militra-woocommerce.woocommerce-account .site-main > article {
	max-width: 560px;
	margin: 0 auto;
	padding: 0 24px;
}

/* Hero: eyebrow injected via ::before, title styled, lead via ::after.
   Lithuanian copy lives in CSS only for this page — a single fixed string
   per locale; the theme is not currently translated to other languages. */
body.militra-woocommerce.woocommerce-account .entry-header {
	margin: 0 0 24px;
	text-align: left;
	padding: 0;
	border: 0;
	background: transparent;
}
body.militra-woocommerce.woocommerce-account .entry-header::before {
	content: 'Mano paskyra';
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce.woocommerce-account h1.entry-title,
body.militra-woocommerce.woocommerce-account .entry-header .entry-title {
	display: block;
	font-family: var(--boltpress-typography-font-family-heading, 'DM Sans', system-ui, sans-serif);
	font-size: clamp(30px, 4.4vw, 44px);
	font-weight: 800;
	line-height: 1.1;
	color: var(--boltpress-colors-headings-general, #0F172A);
	margin: 0 0 10px;
	padding: 0;
	letter-spacing: -0.025em;
	text-transform: none;
}

/* Lead text under the H1 — only show on the logged-out (login) state.
   `:has(.woocommerce-form-login)` scopes to the page state without PHP. */
body.militra-woocommerce.woocommerce-account .site-main:has(.woocommerce-form-login) .entry-header::after {
	content: 'Prisijunkite, kad galėtumėte tvarkyti savo registracijas ir mokymus.';
	display: block;
	margin-top: 6px;
	max-width: 520px;
	font-size: 16px;
	line-height: 1.55;
	color: var(--boltpress-colors-neutral-500, #64748B);
}

/* Drop the inner form H2 ("Prisijungti" again) — the page H1 already names it. */
body.militra-woocommerce.woocommerce-account #customer_login > h2,
body.militra-woocommerce.woocommerce-account .entry-content > .woocommerce > h2 {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Two-col customer_login (when registration is enabled). Single-col handles
   itself via block flow. */
body.militra-woocommerce.woocommerce-account #customer_login.u-columns {
	display: block;
}
body.militra-woocommerce.woocommerce-account #customer_login .u-column1,
body.militra-woocommerce.woocommerce-account #customer_login .u-column2 {
	width: 100%;
	float: none;
	margin: 0 0 24px;
}
@media (min-width: 900px) {
	body.militra-woocommerce.woocommerce-account #customer_login.u-columns:has(.u-column2) {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 24px;
		align-items: start;
	}
	body.militra-woocommerce.woocommerce-account #customer_login.u-columns:has(.u-column2) .u-column1,
	body.militra-woocommerce.woocommerce-account #customer_login.u-columns:has(.u-column2) .u-column2 {
		margin: 0;
	}
}

/* The form card. */
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register,
body.militra-woocommerce.woocommerce-account form.woocommerce-ResetPassword,
body.militra-woocommerce.woocommerce-account form.lost_reset_password {
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	padding: 28px;
	box-shadow: 0 12px 32px -20px rgba(15, 23, 42, 0.18);
	margin: 0;
}

/* Form rows / labels. */
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .form-row,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .form-row,
body.militra-woocommerce.woocommerce-account form.lost_reset_password .form-row {
	margin: 0 0 16px;
	padding: 0;
	display: block;
	width: 100%;
}
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .form-row label,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .form-row label,
body.militra-woocommerce.woocommerce-account form.lost_reset_password .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--boltpress-colors-neutral-700, #334155);
	text-transform: none;
	letter-spacing: 0;
}
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .form-row label .required,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .form-row label .required,
body.militra-woocommerce.woocommerce-account form.lost_reset_password .form-row label .required,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .form-row label abbr[title="required"],
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .form-row label abbr[title="required"] {
	color: var(--boltpress-colors-primary, #E8501E);
	margin-left: 2px;
	text-decoration: none;
	border: 0;
}

/* Inputs — match the checkout / coupon-field treatment. */
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .input-text,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .input-text,
body.militra-woocommerce.woocommerce-account form.lost_reset_password .input-text,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login input[type="text"],
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login input[type="email"],
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login input[type="password"],
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register input[type="text"],
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register input[type="email"],
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register input[type="password"] {
	width: 100%;
	min-height: 48px;
	padding: 12px 16px;
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
	color: var(--boltpress-colors-headings-general, #0F172A);
	font: inherit;
	font-size: 15px;
	line-height: 1.4;
	box-sizing: border-box;
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .input-text::placeholder,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .input-text::placeholder,
body.militra-woocommerce.woocommerce-account form.lost_reset_password .input-text::placeholder {
	color: var(--boltpress-colors-neutral-400, #94A3B8);
}
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .input-text:focus,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-register .input-text:focus,
body.militra-woocommerce.woocommerce-account form.lost_reset_password .input-text:focus,
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login input[type="password"]:focus {
	border-color: var(--boltpress-colors-primary, #E8501E);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(232, 80, 30, 0.15);
}

/* Password show/hide eye — WC wraps password input in <span class="password-input">
   with <span class="show-password-input"> overlay. Make sure overlay aligns and
   the input padding-right leaves room. */
body.militra-woocommerce.woocommerce-account .password-input {
	position: relative;
	display: block;
	width: 100%;
}
body.militra-woocommerce.woocommerce-account .password-input input.input-text {
	padding-right: 44px;
}
body.militra-woocommerce.woocommerce-account .show-password-input {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--boltpress-colors-neutral-500, #64748B);
	cursor: pointer;
	width: 20px;
	height: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
body.militra-woocommerce.woocommerce-account .show-password-input.display-password {
	color: var(--boltpress-colors-primary, #E8501E);
}

/* Submit + remember-me row. WC puts both inside one .form-row; we lay them out
   as: button on top (full width), remember-me checkbox below. */
body.militra-woocommerce.woocommerce-account form.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: stretch;
	margin-top: 4px;
}
body.militra-woocommerce.woocommerce-account button.woocommerce-form-login__submit,
body.militra-woocommerce.woocommerce-account button.woocommerce-form-register__submit,
body.militra-woocommerce.woocommerce-account button.woocommerce-Button {
	width: 100%;
	min-height: 50px;
	padding: 14px 22px;
	font-size: 16px;
	font-weight: 700;
	border-radius: 8px;
	background-color: var(--boltpress-colors-primary, #E8501E);
	border: 1px solid var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, transform .15s ease, box-shadow .18s ease;
	box-shadow: 0 10px 24px -10px rgba(232, 80, 30, 0.55);
	letter-spacing: 0;
	text-transform: none;
}
body.militra-woocommerce.woocommerce-account button.woocommerce-form-login__submit:hover,
body.militra-woocommerce.woocommerce-account button.woocommerce-form-register__submit:hover,
body.militra-woocommerce.woocommerce-account button.woocommerce-Button:hover {
	background-color: var(--boltpress-colors-orange-600, #D14318);
	border-color: var(--boltpress-colors-orange-600, #D14318);
	transform: translateY(-1px);
	box-shadow: 0 14px 28px -10px rgba(232, 80, 30, 0.65);
}
body.militra-woocommerce.woocommerce-account button.woocommerce-form-login__submit:focus-visible,
body.militra-woocommerce.woocommerce-account button.woocommerce-form-register__submit:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px var(--boltpress-colors-headings-general, #0F172A);
}

/* Remember-me checkbox + label. */
body.militra-woocommerce.woocommerce-account .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	font-size: 14px;
	line-height: 1;
	font-weight: 500;
	color: var(--boltpress-colors-neutral-700, #334155);
	cursor: pointer;
	text-transform: none;
	letter-spacing: 0;
}
body.militra-woocommerce.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"],
body.militra-woocommerce.woocommerce-account .woocommerce-form__input-checkbox {
	appearance: none;
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 1.5px solid var(--boltpress-colors-neutral-300, #CBD5E1);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
	cursor: pointer;
	flex: 0 0 18px;
	transition: background-color .15s ease, border-color .15s ease;
	position: relative;
}
body.militra-woocommerce.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:checked,
body.militra-woocommerce.woocommerce-account .woocommerce-form__input-checkbox:checked {
	background: var(--boltpress-colors-primary, #E8501E);
	border-color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:checked::after,
body.militra-woocommerce.woocommerce-account .woocommerce-form__input-checkbox:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 1px;
	width: 5px;
	height: 10px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
body.militra-woocommerce.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:focus-visible,
body.militra-woocommerce.woocommerce-account .woocommerce-form__input-checkbox:focus-visible {
	outline: 2px solid var(--boltpress-colors-primary, #E8501E);
	outline-offset: 2px;
}
body.militra-woocommerce.woocommerce-account .woocommerce-form-login__rememberme span {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	text-transform: none;
	letter-spacing: 0;
}

/* Lost-password link below the form. */
body.militra-woocommerce.woocommerce-account p.lost_password,
body.militra-woocommerce.woocommerce-account .woocommerce-LostPassword {
	margin: 18px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	font-size: 14px;
	text-align: left;
}
body.militra-woocommerce.woocommerce-account p.lost_password a,
body.militra-woocommerce.woocommerce-account .woocommerce-LostPassword a {
	color: var(--boltpress-colors-primary, #E8501E);
	font-weight: 600;
	text-decoration: none;
	transition: color .15s ease;
}
body.militra-woocommerce.woocommerce-account p.lost_password a:hover,
body.militra-woocommerce.woocommerce-account .woocommerce-LostPassword a:hover {
	color: var(--boltpress-colors-orange-600, #D14318);
	text-decoration: underline;
}

/* Notices on the account page — let the unified notice rules above handle
   appearance, just ensure they sit above the form card. */
body.militra-woocommerce.woocommerce-account .woocommerce-notices-wrapper:not(:empty) {
	margin: 0 0 20px;
}

/* ── Logged-in dashboard: minimal polish so the nav + content read cleanly.
   The screenshot only covers the login state; these rules keep the dashboard
   from looking broken under the new account scope without redesigning it. ── */
body.militra-woocommerce.woocommerce-account.logged-in .site-main > article {
	max-width: 1080px;
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: 100%;
	margin-bottom: 24px;
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	border-bottom: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
	padding: 0;
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: inline-block;
	padding: 10px 14px;
	border-bottom: 2px solid transparent;
	color: var(--boltpress-colors-secondary, #475569);
	font-weight: 600;
	text-decoration: none;
	transition: color .15s ease, border-color .15s ease;
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	color: var(--boltpress-colors-headings-general, #0F172A);
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--boltpress-colors-primary, #E8501E);
	border-bottom-color: var(--boltpress-colors-primary, #E8501E);
}
body.militra-woocommerce.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	color: var(--boltpress-colors-text, #334155);
	line-height: 1.65;
}
@media (min-width: 900px) {
	body.militra-woocommerce.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
		float: left;
		width: 240px;
		margin-right: 32px;
		margin-bottom: 0;
	}
	body.militra-woocommerce.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		border-bottom: 0;
		gap: 2px;
	}
	body.militra-woocommerce.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li a {
		padding: 10px 14px;
		border: 1px solid transparent;
		border-radius: 8px;
	}
	body.militra-woocommerce.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li.is-active a {
		background: var(--boltpress-colors-orange-50, #FEF4EE);
		border-color: var(--boltpress-colors-accent, #FCE6D9);
		color: var(--boltpress-colors-primary, #E8501E);
	}
	body.militra-woocommerce.woocommerce-account.logged-in .woocommerce-MyAccount-content {
		margin-left: 272px;
	}
}

/* Tighten the form card on small screens. */
@media (max-width: 480px) {
	body.militra-woocommerce.woocommerce-account form.woocommerce-form-login,
	body.militra-woocommerce.woocommerce-account form.woocommerce-form-register,
	body.militra-woocommerce.woocommerce-account form.lost_reset_password {
		padding: 22px;
		border-radius: 8px;
	}
}

/* ============================================================================
   Single-product category notice ("Prekės pranešimas")
   Rendered between the price and the Registruotis button in
   woocommerce/content-single-product.php. A soft tinted banner: accent
   left-border + Lucide icon + text. The accent and its soft tint are driven by
   --mpn-accent / --mpn-bg, set per colour modifier; the custom modifier takes
   --mpn-accent inline (from the chosen hex) and derives the tint with
   color-mix. On-brand: the orange preset is the only brand-spark colour and
   resolves through the primary token; the rest are status colours used
   sparingly.
   ========================================================================== */
body.militra-woocommerce .militra-product-notice {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 14px 0;
	padding: 12px 14px;
	border-radius: 8px;
	border-left: 3px solid var(--mpn-accent, #475569);
	background: var(--mpn-bg, #F1F5F9);
	font-size: 14px;
	line-height: 1.4;
	color: var(--boltpress-colors-headings-general, #0F172A);
}

body.militra-woocommerce .militra-product-notice__icon {
	display: inline-flex;
	flex: 0 0 auto;
	color: var(--mpn-accent, #475569);
}

body.militra-woocommerce .militra-product-notice__icon svg {
	display: block;
}

body.militra-woocommerce .militra-product-notice__text {
	font-weight: 600;
}

/* Colour presets — accent + a soft tint. Orange is the brand spark (token). */
body.militra-woocommerce .militra-product-notice--orange { --mpn-accent: var(--boltpress-colors-primary, #E8501E); --mpn-bg: #FEF4EE; }
body.militra-woocommerce .militra-product-notice--green  { --mpn-accent: #16A34A; --mpn-bg: #DCFCE7; }
body.militra-woocommerce .militra-product-notice--blue   { --mpn-accent: #2563EB; --mpn-bg: #EFF4FF; }
body.militra-woocommerce .militra-product-notice--amber  { --mpn-accent: #F59E0B; --mpn-bg: #FEF3C7; }
body.militra-woocommerce .militra-product-notice--red    { --mpn-accent: #DC2626; --mpn-bg: #FEE2E2; }
body.militra-woocommerce .militra-product-notice--slate  { --mpn-accent: #475569; --mpn-bg: #F1F5F9; }

/* Custom colour — accent comes inline from the chosen hex; tint is derived with
   color-mix where supported, falling back to a neutral tint otherwise (the
   accent still shows on the left border + icon). */
body.militra-woocommerce .militra-product-notice--custom {
	--mpn-bg: #F1F5F9;
}

@supports (background: color-mix(in srgb, red 50%, white)) {
	body.militra-woocommerce .militra-product-notice--custom {
		--mpn-bg: color-mix(in srgb, var(--mpn-accent, #475569) 12%, #fff);
	}
}
