/*
 * Militra site frame — header (utility bar + main nav + mega + drawer +
 * search overlay) and dark footer (4 columns + seal + legal). Ported from
 * docs/militra-design-system/project/ui_kits/website/site.css with literal
 * design-system vars rewritten to var(--boltpress-*, <fallback>) — fallbacks
 * mirror the JSON token so the page still renders if the compiled tokens
 * file is momentarily absent. Enqueued globally; depends on `militra-main`.
 */

/* ========== Skip link ========== */
.skip-link { position: absolute; left: -9999px; top: -9999px; }
.skip-link:focus { left: 8px; top: 8px; z-index: 200; padding: 8px 12px; background: #fff; color: var(--boltpress-colors-headings-general, #0F172A); border-radius: 8px; box-shadow: 0 2px 8px rgba(15,23,42,0.18); }

/* ========== Header root ========== */
.header-root { position: sticky; top: 0; z-index: 50; background: var(--boltpress-colors-neutral-0, #fff); }

/* ========== Utility bar ========== */
.util-bar { background: var(--boltpress-colors-neutral-50, #F8FAFC); border-bottom: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9); }
.util-inner {
	display: flex; justify-content: space-between; align-items: center;
	height: 36px; font-size: 12px; color: var(--boltpress-colors-neutral-500, #64748B);
}
.util-contacts { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.util-contacts a, .util-contacts span {
	display: inline-flex; align-items: center; gap: 6px; color: var(--boltpress-colors-neutral-500, #64748B);
}
.util-contacts a:hover { color: var(--boltpress-colors-primary, #E8501E); }

.util-right { display: flex; gap: 4px; align-items: center; }
.util-link {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 5px 10px; border-radius: 8px;
	font-size: 12px; font-weight: 700; letter-spacing: .04em;
	color: var(--boltpress-colors-neutral-700, #334155);
	transition: all .15s ease;
}
.util-link:hover { color: var(--boltpress-colors-primary, #E8501E); background: var(--boltpress-colors-neutral-0, #fff); }
.util-link-accent { color: var(--boltpress-colors-primary, #E8501E); text-transform: uppercase; }
.util-link-accent:hover { color: var(--boltpress-colors-orange-600, #D14318); }
/* Header cart button — icon-only chip with a count bubble that pops above. */
.util-cart-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 30px;
	padding: 0; margin: 0 2px;
	background: transparent; border: 0; border-radius: 8px;
	color: var(--boltpress-colors-neutral-700, #334155);
	cursor: pointer;
	font-family: inherit;
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.util-cart-btn:hover { background: var(--boltpress-colors-neutral-0, #fff); color: var(--boltpress-colors-primary, #E8501E); }
.util-cart-btn:focus-visible { outline: 2px solid var(--boltpress-colors-primary, #E8501E); outline-offset: 2px; }
.util-cart-icon { display: inline-flex; align-items: center; justify-content: center; }
.util-cart-icon svg { display: block; }

/* Count bubble — orange dot top-right, hides when empty. */
.militra-cart-bubble {
	position: absolute;
	top: -2px; right: -4px;
	min-width: 18px; height: 18px;
	padding: 0 5px;
	border-radius: 8px;
	background: var(--boltpress-colors-primary, #E8501E);
	color: #fff;
	font-size: 10px; font-weight: 800; line-height: 18px;
	text-align: center;
	letter-spacing: 0;
	box-shadow: 0 0 0 2px var(--boltpress-colors-neutral-50, #F8FAFC);
	font-variant-numeric: tabular-nums;
	transform: scale(0);
	transform-origin: center;
	transition: transform .22s cubic-bezier(.18,.89,.32,1.28);
	pointer-events: none;
}
.util-cart-btn.has-items .militra-cart-bubble { transform: scale(1); }

/* Bump animation triggered by JS when a fragment refresh signals an add. */
@keyframes militra-cart-bump {
	0%   { transform: scale(1) rotate(0deg); }
	15%  { transform: scale(1.18) rotate(-8deg); }
	35%  { transform: scale(0.92) rotate(6deg); }
	55%  { transform: scale(1.08) rotate(-3deg); }
	75%  { transform: scale(0.97) rotate(1deg); }
	100% { transform: scale(1) rotate(0deg); }
}
@keyframes militra-bubble-pop {
	0%   { transform: scale(1); }
	35%  { transform: scale(1.55); }
	70%  { transform: scale(0.85); }
	100% { transform: scale(1); }
}
.util-cart-btn.is-bumped .util-cart-icon { animation: militra-cart-bump .55s cubic-bezier(.36,.07,.19,.97) both; }
.util-cart-btn.is-bumped.has-items .militra-cart-bubble { animation: militra-bubble-pop .55s ease both; }

@media (prefers-reduced-motion: reduce) {
	.util-cart-btn.is-bumped .util-cart-icon,
	.util-cart-btn.is-bumped.has-items .militra-cart-bubble { animation: none; }
}

/* ========== Minicart drawer (slide-out from right) ========== */
.militra-minicart {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: min(420px, 92vw);
	background: var(--boltpress-colors-neutral-0, #fff);
	box-shadow: -16px 0 48px rgba(15, 23, 42, 0.18);
	z-index: 95;
	display: flex; flex-direction: column;
	transform: translateX(100%);
	transition: transform .26s cubic-bezier(.22,.61,.36,1);
}
.militra-minicart[hidden] { display: none; }
.militra-minicart.is-open { transform: translateX(0); }

.militra-minicart-head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
}
.militra-minicart-title {
	display: inline-flex; align-items: center; gap: 10px;
	font-weight: 700; color: var(--boltpress-colors-headings-general, #0F172A);
	font-size: 16px; letter-spacing: -0.01em;
}
.militra-minicart-title svg { color: var(--boltpress-colors-primary, #E8501E); }
.militra-minicart-close {
	width: 36px; height: 36px;
	border: 0; border-radius: 8px; background: transparent; cursor: pointer;
	color: var(--boltpress-colors-neutral-600, #475569);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: inherit;
	transition: background .15s ease, color .15s ease;
}
.militra-minicart-close:hover { background: var(--boltpress-colors-neutral-100, #F1F5F9); color: var(--boltpress-colors-headings-general, #0F172A); }
.militra-minicart-close:focus-visible { outline: 2px solid var(--boltpress-colors-primary, #E8501E); outline-offset: 2px; }

.militra-minicart-body {
	flex: 1; overflow-y: auto;
	padding: 18px 22px 22px;
	font-size: 14px;
	color: var(--boltpress-colors-text, #334155);
}

/* WC core mini-cart markup — sub-elements styled to match brand. */
.militra-minicart-body .woocommerce-mini-cart {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 14px;
}
.militra-minicart-body .woocommerce-mini-cart__empty-message {
	margin: 24px 0;
	padding: 28px 18px;
	text-align: center;
	border: 1px dashed var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	color: var(--boltpress-colors-neutral-500, #64748B);
	font-size: 14px;
}
.militra-minicart-body .woocommerce-mini-cart__empty-message::before {
	content: '';
	display: block;
	width: 48px; height: 48px; margin: 0 auto 12px;
	border-radius: 50%;
	background: var(--boltpress-colors-accent, #FCE6D9);
	background-image: 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='%23E8501E' stroke-width='1.7' 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-repeat: no-repeat;
	background-position: center;
}

/* Item row — WC's mini-cart.php emits this DOM inside <li.mini_cart_item.woocommerce-mini-cart-item>:
     1. <a class="remove remove_from_cart_button">×</a>  (rendered first)
     2. <a href="..."><img …> Product Name text</a>     (image AND name in ONE anchor)
     3. <span class="quantity">N × €X</span>
   The product anchor wraps both image and name text as siblings. We turn THAT
   anchor into a 2-col grid (64px thumbnail | 1fr name) so the name flows to
   the right of the image. The LI is block flow with the quantity chip
   appearing below the anchor, indented to align under the name; the remove
   pill is pinned absolute at top-right. */
.militra-minicart-body .woocommerce-mini-cart-item,
.militra-minicart-body .mini_cart_item,
.militra-minicart-body li.cart_item {
	display: block;
	padding: 14px;
	padding-right: 44px; /* room for the absolute remove pill */
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-0, #fff);
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
	position: relative;
	list-style: none;
	margin: 0;
}
.militra-minicart-body .woocommerce-mini-cart-item:hover,
.militra-minicart-body .mini_cart_item:hover {
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1);
	box-shadow: 0 8px 22px -14px rgba(15, 23, 42, 0.18);
}
/* Product anchor — the one with the image + name text inside. Use a 2-col
   grid; <img> auto-flows into col 1, the trailing text node into col 2. */
.militra-minicart-body .woocommerce-mini-cart-item > a:not(.remove):not(.remove_from_cart_button),
.militra-minicart-body .mini_cart_item > a:not(.remove):not(.remove_from_cart_button) {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 14px;
	align-items: center;
	min-width: 0;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 700;
	font-size: 14.5px;
	line-height: 1.35;
	letter-spacing: -0.01em;
	text-decoration: none;
	overflow-wrap: anywhere;
}
.militra-minicart-body .woocommerce-mini-cart-item > a:not(.remove):not(.remove_from_cart_button):hover,
.militra-minicart-body .mini_cart_item > a:not(.remove):not(.remove_from_cart_button):hover {
	color: var(--boltpress-colors-primary, #E8501E);
}
.militra-minicart-body .woocommerce-mini-cart-item > a:not(.remove) img,
.militra-minicart-body .mini_cart_item > a:not(.remove) img {
	width: 64px !important;
	max-width: 64px;
	height: 64px;
	border-radius: 8px;
	object-fit: cover;
	margin: 0 !important;
	float: none !important;
	display: block;
}
/* Quantity chip — direct child of the LI, flows below the anchor. Indent so
   it visually aligns under the product name (past the 64px thumbnail). */
.militra-minicart-body .woocommerce-mini-cart-item > .quantity,
.militra-minicart-body .mini_cart_item > .quantity,
.militra-minicart-body .woocommerce-mini-cart-item .quantity,
.militra-minicart-body .mini_cart_item .quantity {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	margin: 10px 0 0 78px;
	padding: 4px 10px;
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	border: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	font-size: 12.5px;
	color: var(--boltpress-colors-neutral-600, #475569);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.militra-minicart-body .woocommerce-mini-cart-item .quantity .amount,
.militra-minicart-body .woocommerce-mini-cart-item .quantity bdi,
.militra-minicart-body .mini_cart_item .quantity .amount,
.militra-minicart-body .mini_cart_item .quantity bdi {
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 800;
}
.militra-minicart-body .woocommerce-mini-cart-item .remove,
.militra-minicart-body .woocommerce-mini-cart-item .remove_from_cart_button,
.militra-minicart-body .mini_cart_item .remove,
.militra-minicart-body .mini_cart_item .remove_from_cart_button {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 24px;
	height: 24px;
	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: 14px !important;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, transform .15s ease;
	float: none !important;
	margin: 0 !important;
}
.militra-minicart-body .woocommerce-mini-cart-item .remove:hover,
.militra-minicart-body .mini_cart_item .remove:hover,
.militra-minicart-body .mini_cart_item .remove_from_cart_button:hover {
	background: var(--boltpress-colors-primary, #E8501E) !important;
	color: #fff !important;
	transform: rotate(90deg);
}
/* Variation table (if the item has chosen attributes). */
.militra-minicart-body .woocommerce-mini-cart-item .variation,
.militra-minicart-body .mini_cart_item .variation {
	margin: 4px 0 0 78px;
	font-size: 12px;
	color: var(--boltpress-colors-neutral-500, #64748B);
}
.militra-minicart-body .woocommerce-mini-cart-item .variation dt,
.militra-minicart-body .woocommerce-mini-cart-item .variation dd,
.militra-minicart-body .mini_cart_item .variation dt,
.militra-minicart-body .mini_cart_item .variation dd {
	display: inline;
	margin: 0;
}

/* Subtotal row — sits between the items and the action buttons. */
.militra-minicart-body .woocommerce-mini-cart__total,
.militra-minicart-body p.total,
.militra-minicart-body .total {
	margin: 18px 0 14px;
	padding: 16px 18px;
	border-radius: 8px;
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	border: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
	color: var(--boltpress-colors-neutral-600, #475569);
}
.militra-minicart-body .woocommerce-mini-cart__total strong,
.militra-minicart-body p.total strong {
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.militra-minicart-body .woocommerce-mini-cart__total .amount,
.militra-minicart-body p.total .amount {
	/* Slate, not orange — the minicart already sparks orange via the icon in
	   the header, the cart-bubble on the trigger, and the checkout CTA below.
	   A 22px orange amount would be a fourth spark on one small surface.
	   Brand restraint: keep this slate; the order-total on /cart owns the
	   orange amount, which IS the climax for that page. */
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-weight: 800;
	font-size: 22px;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.01em;
}

/* Action buttons row — scoped to `.militra-minicart` (outer aside) so it works
   regardless of how WC's mini-cart wraps content inside; also covers both
   `.buttons` and `.woocommerce-mini-cart__buttons` class variants. */
.militra-minicart .woocommerce-mini-cart__buttons,
.militra-minicart p.woocommerce-mini-cart__buttons.buttons,
.militra-minicart .buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
}
.militra-minicart .woocommerce-mini-cart__buttons .button,
.militra-minicart .woocommerce-mini-cart__buttons a,
.militra-minicart .woocommerce-mini-cart__buttons button,
.militra-minicart .buttons .button,
.militra-minicart .buttons a,
.militra-minicart .buttons button {
	width: 100%;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 22px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 15px;
	font-family: inherit;
	letter-spacing: 0;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .15s ease, box-shadow .18s ease;
	border: 1px solid transparent;
	box-shadow: none;
	text-transform: none;
	line-height: 1.2;
	min-height: 46px;
	box-sizing: border-box;
}
/* Default (non-CTA) button — quiet ghost: View cart links etc. */
.militra-minicart .buttons .button:not(.checkout):not(.wc-forward-checkout):not(.alt),
.militra-minicart .woocommerce-mini-cart__buttons .button:not(.checkout):not(.alt),
.militra-minicart .buttons a:not(.checkout):not(.wc-forward-checkout):not(.alt),
.militra-minicart .woocommerce-mini-cart__buttons a:not(.checkout):not(.alt) {
	background: var(--boltpress-colors-neutral-0, #fff) !important;
	color: var(--boltpress-colors-headings-general, #0F172A) !important;
	border-color: var(--boltpress-colors-neutral-200, #E2E8F0) !important;
}
.militra-minicart .buttons .button:not(.checkout):not(.alt):hover,
.militra-minicart .woocommerce-mini-cart__buttons .button:not(.checkout):not(.alt):hover {
	background: var(--boltpress-colors-neutral-50, #F8FAFC) !important;
	border-color: var(--boltpress-colors-neutral-300, #CBD5E1) !important;
	color: var(--boltpress-colors-headings-general, #0F172A) !important;
}
/* Primary CTA — checkout button. Covers every flavor WC / blocks / extensions
   have used: .checkout, .checkout-button, .wc-forward-checkout, .button.alt,
   .wc-block-mini-cart__footer-checkout. !important is necessary to win against
   WC core's plugin CSS and the design-tokens.css `button { ... }` fallback. */
.militra-minicart .buttons .button.checkout,
.militra-minicart .woocommerce-mini-cart__buttons .button.checkout,
.militra-minicart .buttons .checkout,
.militra-minicart .buttons .checkout-button,
.militra-minicart .woocommerce-mini-cart__buttons .checkout,
.militra-minicart .buttons .wc-forward-checkout,
.militra-minicart .woocommerce-mini-cart__buttons .wc-forward-checkout,
.militra-minicart .buttons .button.alt,
.militra-minicart .woocommerce-mini-cart__buttons .button.alt,
.militra-minicart a.wc-block-mini-cart__footer-checkout,
.militra-minicart .wc-block-mini-cart__footer-checkout {
	background: var(--boltpress-colors-primary, #E8501E) !important;
	color: #fff !important;
	border-color: var(--boltpress-colors-primary, #E8501E) !important;
	box-shadow: 0 8px 20px -8px rgba(232, 80, 30, 0.55);
}
.militra-minicart .buttons .button.checkout:hover,
.militra-minicart .woocommerce-mini-cart__buttons .button.checkout:hover,
.militra-minicart .buttons .checkout:hover,
.militra-minicart .buttons .checkout-button:hover,
.militra-minicart .buttons .wc-forward-checkout:hover,
.militra-minicart .buttons .button.alt:hover,
.militra-minicart .wc-block-mini-cart__footer-checkout:hover {
	background: var(--boltpress-colors-orange-600, #D14318) !important;
	border-color: var(--boltpress-colors-orange-600, #D14318) !important;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 12px 24px -8px rgba(232, 80, 30, 0.65);
}

/* Backdrop shared with drawer pattern. */
.militra-minicart-backdrop {
	position: fixed; inset: 0; z-index: 90;
	background: rgba(15, 23, 42, 0.44);
	opacity: 0; visibility: hidden;
	transition: opacity .2s ease, visibility 0s linear .2s;
}
.militra-minicart-backdrop.is-open {
	opacity: 1; visibility: visible;
	transition: opacity .2s ease, visibility 0s;
}

/* Item enter/leave animations driven by the mini-cart's natural fragment rerender. */
@keyframes militra-mini-enter {
	from { opacity: 0; transform: translateX(12px); }
	to   { opacity: 1; transform: translateX(0); }
}
.militra-minicart-body .mini_cart_item,
.militra-minicart-body .woocommerce-mini-cart-item { animation: militra-mini-enter .28s ease both; }

@media (prefers-reduced-motion: reduce) {
	.militra-minicart { transition: none; }
	.militra-minicart-body .mini_cart_item,
	.militra-minicart-body .woocommerce-mini-cart-item { animation: none; }
}

.util-sep {
	width: 1px; height: 16px; background: var(--boltpress-colors-neutral-200, #E2E8F0);
	display: inline-block; margin: 0 2px;
}
.lang {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 5px 10px; border-radius: 8px; background: transparent;
	border: 1px solid transparent; font-size: 12px; font-weight: 600;
	color: var(--boltpress-colors-neutral-700, #334155);
}
.util-iconbtn {
	width: 28px; height: 28px; border-radius: 8px; border: 0; background: transparent;
	color: var(--boltpress-colors-neutral-500, #64748B);
	display: flex; align-items: center; justify-content: center; cursor: pointer;
	transition: all .15s ease;
	font-family: inherit;
}
.util-iconbtn:hover { background: var(--boltpress-colors-neutral-0, #fff); color: var(--boltpress-colors-primary, #E8501E); }
.util-iconbtn:focus-visible { outline: 2px solid var(--boltpress-colors-primary, #E8501E); outline-offset: 2px; }

/* ========== Main nav ========== */
.nav-bar {
	background: rgba(255,255,255,.92); backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
	transition: padding .15s ease, box-shadow .15s ease;
}
.nav-inner { display: flex; align-items: center; gap: 28px; height: 72px; transition: height .15s ease; }
.is-stuck .nav-inner { height: 60px; }
.is-stuck .nav-bar { box-shadow: 0 4px 12px rgba(15,23,42,0.08); }

/* .custom-logo-link is the wrapper the_custom_logo() emits — style it like .logo. */
.logo, .nav-inner .custom-logo-link { display: inline-flex; align-items: center; }
.logo img, .custom-logo { height: 67px; width: auto; display: block; transition: height .15s ease; }
.is-stuck .logo img, .is-stuck .custom-logo { height: 58px; }
/* Higher-specificity defensive override — selectors with three classes + element
   beat any plugin or parent-theme `.custom-logo { ... }` rule that may slip in
   (the original `.custom-logo` rule above lost on the live shop archive page;
   adding the nav-inner ancestor + img element forces our height to win). */
.header-root .nav-bar .nav-inner img.custom-logo { height: 67px; width: auto; max-height: 67px; max-width: none; }
.header-root.is-stuck .nav-bar .nav-inner img.custom-logo { height: 58px; max-height: 58px; }
.nav-main { display: flex; align-items: center; gap: 4px; flex: 1; }
.nav-link {
	position: relative;
	display: inline-flex; align-items: center; gap: 5px;
	padding: 10px 14px; border-radius: 8px;
	font-size: 14px; font-weight: 500; color: var(--boltpress-colors-neutral-700, #334155);
	background: transparent; border: 0; cursor: pointer;
	transition: all .15s ease;
	font-family: inherit;
}
.nav-link:hover { color: var(--boltpress-colors-headings-general, #0F172A); background: var(--boltpress-colors-neutral-50, #F8FAFC); }
.nav-dropdown { position: relative; }
.nav-dropdown.is-open > .nav-link,
.nav-dropdown:hover > .nav-link { color: var(--boltpress-colors-orange-600, #D14318); background: var(--boltpress-colors-orange-50, #FEF4EE); }
.nav-dropdown.is-open > .nav-link svg { transform: rotate(180deg); }
.nav-dropdown > .nav-link svg { transition: transform .18s ease; }

.nav-cta { display: flex; gap: 10px; align-items: center; }
.nav-burger {
	display: none; background: none; border: 0; padding: 6px;
	color: var(--boltpress-colors-headings-general, #0F172A); cursor: pointer;
	font-family: inherit;
}
.nav-burger:focus-visible { outline: 2px solid var(--boltpress-colors-primary, #E8501E); outline-offset: 2px; }

/* Mobile action cluster — cart trigger + burger, pinned to the right edge via
   margin-left:auto. Hidden on desktop (the cart lives in the utility bar there);
   revealed at ≤1024px by the collapse block at the foot of this file. The cart
   button keeps the base .util-cart-btn class so it shares the minicart wiring,
   the fragment-driven count bubble, and the add-to-cart bump animation. */
.nav-mobile { display: none; align-items: center; gap: 4px; margin-left: auto; }
.nav-mobile .nav-burger,
.nav-mobile .nav-cart-btn {
	width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0; border-radius: 8px;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
.nav-mobile .nav-burger:hover,
.nav-mobile .nav-cart-btn:hover {
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	color: var(--boltpress-colors-primary, #E8501E);
}
/* Nav bar is white, so the bubble's contrast ring is white here (the util-bar
   variant rings in neutral-50 to match its own background). */
.nav-mobile .nav-cart-btn .militra-cart-bubble { box-shadow: 0 0 0 2px var(--boltpress-colors-neutral-0, #fff); }

/* ========== Mega menu ========== */
/* The walker emits <div class="mega" role="region"> inline as part of the menu
   markup; CSS hides it by default and reveals it via hover + .is-open (JS). */
.mega {
	position: absolute; top: calc(100% + 8px); left: -16px;
	width: 720px; background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0); border-radius: 8px;
	box-shadow: 0 24px 48px rgba(15,23,42,0.14);
	z-index: 60; overflow: hidden;
	opacity: 0; visibility: hidden; transform: translateY(-4px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.nav-dropdown:hover > .mega,
.nav-dropdown.is-open > .mega {
	opacity: 1; visibility: visible; transform: translateY(0);
	transition: opacity .18s ease, transform .18s ease, visibility 0s;
}
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 18px; }
.mega-col { padding: 6px 14px; }
.mega-col + .mega-col { border-left: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9); }
.mega-col-h {
	font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
	color: var(--boltpress-colors-neutral-500, #64748B); padding: 0 10px 8px;
}
.mega-list { display: flex; flex-direction: column; gap: 2px; }
.mega-item {
	display: flex; gap: 12px; padding: 10px; border-radius: 8px;
	transition: background .12s ease;
	align-items: flex-start; text-decoration: none;
}
.mega-item:hover { background: var(--boltpress-colors-neutral-50, #F8FAFC); }
.mega-icon {
	width: 34px; height: 34px; border-radius: 8px; flex-shrink: 0;
	background: var(--boltpress-colors-orange-50, #FEF4EE); color: var(--boltpress-colors-primary, #E8501E);
	display: flex; align-items: center; justify-content: center;
	transition: all .15s ease;
}
.mega-item:hover .mega-icon { background: var(--boltpress-colors-primary, #E8501E); color: #fff; }
.mega-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mega-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.mega-t { font-size: 14px; font-weight: 700; color: var(--boltpress-colors-headings-general, #0F172A); }
.mega-code {
	font-size: 10px; font-weight: 700; letter-spacing: .04em;
	color: var(--boltpress-colors-neutral-500, #64748B);
	background: var(--boltpress-colors-neutral-100, #F1F5F9);
	padding: 2px 6px; border-radius: 8px; white-space: nowrap;
}
.mega-d { font-size: 12.5px; color: var(--boltpress-colors-neutral-500, #64748B); line-height: 1.45; }
.mega-foot {
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 24px;
	background: var(--boltpress-colors-neutral-50, #F8FAFC);
	border-top: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9);
}

/* ========== Mobile drawer ========== */
.militra-drawer {
	position: fixed; top: 0; right: 0; bottom: 0;
	width: min(360px, 86vw);
	background: var(--boltpress-colors-neutral-0, #fff);
	box-shadow: -16px 0 40px rgba(15,23,42,0.18);
	z-index: 90; overflow-y: auto;
	transform: translateX(100%); transition: transform .22s ease;
	display: flex; flex-direction: column; padding: 16px 18px 24px;
}
.militra-drawer[hidden] { display: none; } /* progressive enhancement */
.militra-drawer.is-open { transform: translateX(0); }
/* JS adds this when the drawer or search overlay is open, so background page
   doesn't scroll behind the modal on touch devices. */
body.militra-no-scroll { overflow: hidden; }
.militra-drawer-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.militra-drawer-close {
	background: transparent; border: 0; padding: 6px; cursor: pointer;
	color: var(--boltpress-colors-headings-general, #0F172A);
	font-family: inherit;
}
.militra-drawer-close:focus-visible,
.militra-search-submit:focus-visible,
.militra-search-close:focus-visible { outline: 2px solid var(--boltpress-colors-primary, #E8501E); outline-offset: 2px; }
.militra-drawer nav { display: flex; flex-direction: column; gap: 4px; }
.militra-drawer .nav-link {
	width: 100%; justify-content: flex-start; padding: 12px 10px;
	font-size: 15px;
}
/* In the drawer, the mega should NOT float — it becomes an inline accordion. */
.militra-drawer .nav-dropdown { position: static; }
.militra-drawer .mega {
	position: static; width: auto; left: auto; top: auto;
	border: 0; box-shadow: none; border-radius: 0;
	opacity: 1; visibility: visible; transform: none; transition: none;
	max-height: 0; overflow: hidden;
}
.militra-drawer .nav-dropdown.is-open .mega { max-height: none; }
.militra-drawer .mega-grid { grid-template-columns: 1fr; padding: 0 0 8px; }
.militra-drawer .mega-col + .mega-col { border-left: 0; border-top: 1px solid var(--boltpress-colors-neutral-100, #F1F5F9); margin-top: 8px; padding-top: 8px; }
.militra-drawer-cta { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }

.militra-drawer-backdrop {
	position: fixed; inset: 0; z-index: 80;
	background: rgba(15,23,42,0.44);
	opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility 0s linear .18s;
}
.militra-drawer-backdrop.is-open {
	opacity: 1; visibility: visible; transition: opacity .18s ease, visibility 0s;
}

/* ========== Search overlay ========== */
.militra-search-overlay {
	position: fixed; inset: 0; z-index: 100;
	background: rgba(255,255,255,0.96); backdrop-filter: blur(6px);
	display: flex; align-items: flex-start; justify-content: center;
	padding-top: clamp(60px, 12vh, 140px);
}
.militra-search-overlay[hidden] { display: none; }
.militra-search-overlay form {
	display: flex; gap: 12px; width: min(720px, 92vw);
	background: var(--boltpress-colors-neutral-0, #fff);
	border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	border-radius: 8px; padding: 14px 18px;
	box-shadow: 0 24px 48px rgba(15,23,42,0.14);
}
.militra-search-overlay input[type=search] {
	flex: 1; border: 0; outline: 0; background: transparent;
	font-family: inherit; font-size: 18px; color: var(--boltpress-colors-headings-general, #0F172A);
}
.militra-search-overlay .militra-search-submit,
.militra-search-overlay .militra-search-close {
	background: transparent; border: 0; cursor: pointer; padding: 6px;
	color: var(--boltpress-colors-neutral-500, #64748B);
	font-family: inherit;
}
.militra-search-overlay .militra-search-submit:hover,
.militra-search-overlay .militra-search-close:hover { color: var(--boltpress-colors-primary, #E8501E); }

/* ========== Footer ========== */
.footer {
	background: var(--boltpress-colors-neutral-900, #0F172A);
	color: var(--boltpress-colors-neutral-400, #94A3B8);
	padding: 64px 0 24px;
}
.footer a { color: inherit; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 48px; }
/* White logo (militra-logo-white.svg) sits directly on the dark footer — no
   white pill: a white logo on a white background renders as an empty box. */
.footer-logo { display: inline-block; margin-bottom: 14px; }
.footer-logo img, .footer-logo .custom-logo { height: 67px; width: auto; display: block; }
.footer-about { font-size: 13px; line-height: 1.6; margin: 0 0 16px; color: var(--boltpress-colors-neutral-400, #94A3B8); }
.footer-social { display: flex; gap: 8px; }
.footer-social a {
	width: 32px; height: 32px; border-radius: 8px;
	background: rgba(255,255,255,.06);
	display: flex; align-items: center; justify-content: center;
	color: #fff; transition: all .15s ease;
}
.footer-social a:hover { background: var(--boltpress-colors-primary, #E8501E); color: #fff; }
.footer-col h4 { font-size: 13px; font-weight: 800; color: #fff; margin: 0 0 14px; letter-spacing: .03em; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col ul li { margin-bottom: 9px; font-size: 13px; }
.footer-col ul a { color: var(--boltpress-colors-neutral-400, #94A3B8); transition: color .15s ease; }
.footer-col ul a:hover { color: var(--boltpress-colors-primary, #E8501E); }
.footer-contact a, .footer-contact span {
	display: inline-flex; align-items: center; gap: 7px;
	color: var(--boltpress-colors-neutral-400, #94A3B8);
}

/* Trust badges — gold "Stipriausi Lietuvoje 2023" medallion (animated GIF, with
   transparent corners) beside a Google review circle, same diameter, side by side. */
.footer-badges { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
.footer-medal {
	width: 80px; height: 80px; display: block; flex: none;
	filter: drop-shadow(0 4px 12px rgba(180,83,9,0.35));
}
.footer-google {
	width: 80px; height: 80px; flex: none; border-radius: 50%; padding: 6px;
	background: #fff; border: 1px solid var(--boltpress-colors-neutral-200, #E2E8F0);
	box-shadow: 0 4px 12px rgba(15,23,42,0.25);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	text-align: center; transition: transform .15s ease, box-shadow .15s ease;
}
.footer-google:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(15,23,42,0.3); }
.footer-google-g { line-height: 0; }
.footer-google-rating {
	font-size: 15px; font-weight: 800; line-height: 1;
	color: var(--boltpress-colors-headings-general, #0F172A);
}
.footer-google-stars { display: inline-flex; gap: 1px; color: #F59E0B; line-height: 0; }
.footer-google-stars svg { fill: currentColor; }

.footer-bottom {
	display: flex; justify-content: space-between; align-items: center;
	padding-top: 24px; margin-top: 36px; border-top: 1px solid rgba(255,255,255,.08);
	font-size: 12px; color: var(--boltpress-colors-neutral-500, #64748B);
	flex-wrap: wrap; gap: 12px;
}
.footer-legal { display: flex; gap: 20px; }
.footer-legal a:hover { color: var(--boltpress-colors-primary, #E8501E); }
/* If the legal menu is wrapped in a <nav> by wp_nav_menu, kill default list styling. */
.footer-legal ul { display: flex; gap: 20px; list-style: none; padding: 0; margin: 0; }

/* ========== Collapse to mobile ========== */
@media (max-width: 1024px) {
	.util-bar, .nav-main, .nav-cta { display: none; }
	.nav-mobile { display: flex; }
}
@media (max-width: 900px) {
	.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
	.footer-grid { grid-template-columns: 1fr; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.mega, .militra-drawer, .militra-drawer-backdrop, .nav-bar, .nav-inner { transition: none; }
}

/* Header social icons (now in the left util-contacts cluster) */
.util-social { display: inline-flex; align-items: center; gap: 8px; }
.util-social-link { display: inline-flex; color: var(--boltpress-colors-neutral-500, #64748B); transition: color .15s ease; }
/* On hover each icon reverts to its native brand colour. The compound
   selectors out-specify `.util-contacts a:hover` (the orange contacts rule). */
.util-social .util-social-link--facebook:hover { color: #1877F2; }
.util-social .util-social-link--instagram:hover { color: #E4405F; }

/* GTranslate switcher — match the slate utility bar */
.util-lang { display: inline-flex; align-items: center; }
.util-lang .gtranslate_wrapper { display: inline-flex; align-items: center; }
.util-lang .gt_selector,
.util-lang select.notranslate {
	font: inherit;
	color: var(--boltpress-colors-neutral-600, #475569);
	background: transparent;
	border: 0;
	padding: 2px 4px;
	cursor: pointer;
}
.util-lang a.gflag { vertical-align: middle; }

/* GTranslate "dropdown with flags" (dwf) widget. dwf.js builds
   .gt_switcher_wrapper > .gt_switcher > (.gt_selected, .gt_option) — note the
   SINGULAR class names (.gt_switcher / .gt_option). The float widget's
   .gt_float_switcher / .gt_options never exist here, so targeting them did
   nothing. By default dwf renders .gt_option IN FLOW inside .gt_switcher, which
   has overflow:hidden — in the 32px utility bar the list grows upward and is
   clipped. Pin the switcher to its pill height, let it overflow, and float the
   option list downward as an overlay. position:relative is REQUIRED: dwf leaves
   .gt_switcher static on some pages, so without it the absolute .gt_option
   escapes to the sticky .header-root and floats to the wrong place. */
.util-lang .gt_switcher {
	position: relative !important;
	overflow: visible !important;
	height: auto !important;
	width: auto !important;
}
.util-lang .gt_selected { position: relative; z-index: 1001; }
.util-lang .gt_option {
	position: absolute !important;
	top: 100% !important;
	bottom: auto !important;
	left: auto !important;
	right: 0 !important;
	margin-top: 6px !important;
	width: 190px !important;
	height: auto !important;
	max-height: 60vh !important;
	overflow-y: auto !important;
	background: var(--boltpress-colors-neutral-0, #fff) !important; /* override dwf's injected #eee */
	border-radius: 8px;
	border: 1px solid rgba(15, 23, 42, 0.08);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
	z-index: 1000 !important;
}
/* Closing animation. dwf collapses height to 0 but then waits 500ms before
   setting display:none, so the panel lingers fully visible and pops away — looks
   laggy. Instead fade/slide the panel out (which also hides its border+shadow,
   leaving no sliver). dwf toggles `.open` on the selected <a> on open/close, so
   :has() gives us the open-state hook. Guarded by @supports: browsers without
   :has() fall back to dwf's plain show/hide (no hidden-panel risk). Open stays
   instant (display:none→block can't transition); only the close fades. */
@supports selector(:has(*)) {
	.util-lang .gt_option {
		opacity: 0;
		transform: translateY(-6px);
		pointer-events: none;
		transition: opacity 0.18s ease, transform 0.18s ease !important;
	}
	.util-lang .gt_switcher:has(.gt_selected a.open) .gt_option {
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}
}
