/* ============================================================
   Midwest Armor · New Chrome
   Day + night modes via data-mw-mode="night" on <html>.
   ============================================================ */

/* ── 01. Tokens (day) ────────────────────────────────────── */
:root {
	--mw-ink:           #141416;
	--mw-ink-muted:     rgba(20, 20, 22, 0.58);
	--mw-ink-mute2:     rgba(20, 20, 22, 0.4);
	--mw-border:        rgba(20, 20, 22, 0.10);
	--mw-border-soft:   rgba(20, 20, 22, 0.06);

	--mw-chrome:        #F4F5F6;
	--mw-util:          #E8E9EB;
	--mw-ticker:        #E8E9EB;
	--mw-ticker-fg:     #141416;
	--mw-accent:        #D97A4A;   /* brand orange — consistent across day + night */
	--mw-accent-text:   #FFFFFF;
	--mw-input-bg:      #FFFFFF;
	--mw-menu-shadow:   0 20px 40px rgba(0, 0, 0, 0.08);

	--mw-gutter:        48px;
	--mw-gutter-mob:    16px;

	--mw-font-sans:     'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--mw-font-mono:     'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

	--mw-logo-h:        32px;
	--mw-logo-h-m:      26px;
}

/* ── 01b. Tokens (night) ─────────────────────────────────── */
html[data-mw-mode="night"] {
	--mw-ink:           #EDEEF0;
	--mw-ink-muted:     rgba(237, 238, 240, 0.64);
	--mw-ink-mute2:     rgba(237, 238, 240, 0.42);
	--mw-border:        rgba(237, 238, 240, 0.10);
	--mw-border-soft:   rgba(237, 238, 240, 0.06);

	/* New palette — warmer gray tones, less pure-black */
	--mw-chrome:        #24272A;   /* main bar */
	--mw-util:          #2E3135;   /* utility strip */
	--mw-ticker:        #2E3135;   /* ticker matches strip */
	--mw-ticker-fg:     #EDEEF0;
	--mw-accent:        #D97A4A;   /* brand orange — stays same in both modes */
	--mw-accent-text:   #FFFFFF;
	--mw-input-bg:      #1E2023;   /* recessed vs chrome */
	--mw-menu-shadow:   0 20px 40px rgba(0, 0, 0, 0.45);
}

/*
 * Night mode = dark chrome (header, footer, ticker) with a LIGHT content
 * area. The body background is NOT flipped dark — products, category
 * pages, cart, and checkout all stay on a light surface where photos
 * and price tags read clearly. This is the "chrome dark / page light"
 * model per the mobile design spec (Mist vs Slate palettes).
 *
 * If we ever want a truly dark page, add:
 *   html[data-mw-mode="night"] body { background: #14161A; color: #EEEFF1; }
 * But that affects thousands of WooCommerce templates and should be
 * opt-in, not default.
 */

/* ── 02. Scoped resets ───────────────────────────────────── */
.mw-chrome,
.mw-chrome *,
.mw-chrome-footer,
.mw-chrome-footer *,
.mw-c-drawer,
.mw-c-drawer *,
.mw-c-preview-badge,
.mw-c-preview-badge * {
	box-sizing: border-box;
}
.mw-chrome a,
.mw-chrome-footer a,
.mw-c-drawer a {
	color: inherit;
	text-decoration: none;
}
.mw-chrome button,
.mw-chrome-footer button,
.mw-c-drawer button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

/*
 * Some parent themes / Elementor kits apply an aggressive global
 * `button:hover { background: <kit-accent>; font-family: ... }` rule
 * that overrides our transparent backgrounds on hover/focus/active
 * and even swaps fonts. Nuke it chrome-wide. Scoped to chrome only so
 * we don't affect WooCommerce or page buttons.
 */
/*
 * Parent-theme button defense (extended)
 *
 * Hello Elementor + some common Elementor kits apply button rules that
 * override our transparent backgrounds AND flip text color white on
 * interaction states. We can't rely on `color: inherit` alone because
 * `button:hover { color: #fff; }` beats it on specificity.
 *
 * Reset EVERYTHING visual on chrome-scoped buttons:
 *   - background: transparent (no kit-accent fill)
 *   - color: inherit (respect our .mw-chrome color token)
 *   - box-shadow: none, outline: 0, text-decoration: none
 *
 * Scoped to chrome trees so WooCommerce/page buttons are untouched.
 */
.mw-chrome button,
.mw-chrome button:hover,
.mw-chrome button:focus,
.mw-chrome button:active,
.mw-chrome button[aria-expanded="true"],
.mw-chrome-footer button,
.mw-chrome-footer button:hover,
.mw-chrome-footer button:focus,
.mw-chrome-footer button:active,
.mw-chrome-footer button[aria-expanded="true"],
.mw-c-drawer button,
.mw-c-drawer button:hover,
.mw-c-drawer button:focus,
.mw-c-drawer button:active,
.mw-c-drawer button[aria-expanded="true"] {
	background: transparent !important;
	background-color: transparent !important;
	color: inherit !important;
	box-shadow: none !important;
	outline: 0 !important;
	text-decoration: none !important;
}
.mw-chrome input,
.mw-chrome-footer input,
.mw-c-drawer input {
	font: inherit;
	color: inherit;
}

/* ── 03. Header shell ────────────────────────────────────── */
.mw-chrome {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--mw-chrome);
	color: var(--mw-ink);
	font-family: var(--mw-font-sans);
	container-type: inline-size;
	transition: background-color .2s ease, color .2s ease;
}

/* ── 04. Utility strip ───────────────────────────────────── */
.mw-c-util {
	background: var(--mw-util);
	border-bottom: 1px solid var(--mw-border);
	color: var(--mw-ink-muted);
}
.mw-c-util__inner {
	padding: 7px var(--mw-gutter);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	font-family: var(--mw-font-mono);
	font-size: 11px;
	letter-spacing: 1.5px;
}
.mw-c-util__left,
.mw-c-util__right {
	display: flex;
	gap: 24px;
	align-items: center;
	flex-wrap: wrap;
}
.mw-c-util__right { gap: 20px; }
.mw-c-util__right a { transition: color .15s; }
.mw-c-util__right a:hover { color: var(--mw-ink); }

/*
 * Sep for the | character between util text blocks.
 * gap-based spacing puts breathing room on both sides of the sep span.
 */
.mw-c-util__left { gap: 12px; }
.mw-c-util__sep { opacity: .3; }

/* Mode toggle (sun/moon) */
.mw-c-util__mode {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: var(--mw-ink-muted);
	transition: color .15s;
	position: relative;
}
.mw-c-util__mode:hover { color: var(--mw-ink); }
.mw-c-util__mode-ico {
	position: absolute;
	inset: 0;
	margin: auto;
	transition: opacity .2s, transform .25s;
}
.mw-c-util__mode-ico--moon { opacity: 0; transform: rotate(-30deg) scale(0.7); }
.mw-c-util__mode-ico--sun  { opacity: 1; transform: rotate(0)       scale(1);   }
html[data-mw-mode="night"] .mw-c-util__mode-ico--sun  { opacity: 0; transform: rotate(30deg) scale(0.7); }
html[data-mw-mode="night"] .mw-c-util__mode-ico--moon { opacity: 1; transform: rotate(0)      scale(1);   }

/* ── 05. Main bar — grid-template-areas forces single-row ──
 *
 * The previous attempt used `grid-column: N` on each child but was
 * vulnerable to auto-placement putting the logo on its own row. Named
 * grid areas are bulletproof — the browser MUST place each child in its
 * named cell, no auto-flow weirdness.
 *
 * All !importants are defensive against stale/merged CSS overriding.
 */
.mw-c-bar {
	padding: 20px var(--mw-gutter);
	display: grid !important;
	grid-template-columns: 1fr auto 1fr !important;
	grid-template-rows: auto !important;
	grid-template-areas: "nav logo actions" !important;
	align-items: center;
	gap: 40px;
	position: relative;
}
.mw-c-bar__logo--desk {
	grid-area: logo !important;
	justify-self: center !important;
	display: flex;
	align-items: center;
}
.mw-c-nav {
	grid-area: nav !important;
	justify-self: start !important;
}
.mw-c-actions {
	grid-area: actions !important;
	justify-self: end !important;
}

/* ── 06. Desktop nav ─────────────────────────────────────── */
.mw-c-nav {
	display: flex;
	gap: 12px;
	align-items: stretch;
}
.mw-c-nav__item {
	position: relative;
	padding: 12px 14px;
	font-family: var(--mw-font-mono) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 1.4px !important;
	color: var(--mw-ink-muted) !important;
	background: transparent !important;
	text-decoration: none !important;
	display: flex;
	align-items: center;
	gap: 6px;
	transition: color .15s;
}
/*
 * Reassert on all interactive states — parent/Elementor rules tend to
 * target `button:hover` + `a:hover` with kit-accent colors. Force text
 * to ink on hover/open/active and keep bg transparent everywhere.
 */
.mw-c-nav__item:hover,
.mw-c-nav__item:focus,
.mw-c-nav__item:focus-visible,
.mw-c-nav__item.is-open,
.mw-c-nav__item.is-active {
	color: var(--mw-ink) !important;
	background: transparent !important;
}
/*
 * Underline is scoped to the label span (not the full button width) so
 * items with carets (SHOP, CLEARANCE) get underlines just under the text,
 * same as plain items. This is why we target `> span:first-child` — the
 * PHP template always puts the label in the first child span, with the
 * caret SVG as a sibling after it (and the NEW badge as an optional
 * sibling before). Each underline is relative to its own text width.
 */
.mw-c-nav__item > span:first-child {
	position: relative;
	display: inline-block;
	padding-bottom: 4px;
}
.mw-c-nav__item > span:first-child::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--mw-ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s cubic-bezier(.65, .05, .36, 1);
}
.mw-c-nav__item:hover > span:first-child::after,
.mw-c-nav__item.is-open > span:first-child::after,
.mw-c-nav__item.is-active > span:first-child::after { transform: scaleX(1); }

.mw-c-nav__caret {
	opacity: .6;
	transition: opacity .2s, transform .2s;
	flex-shrink: 0;
}
.mw-c-nav__item:hover .mw-c-nav__caret,
.mw-c-nav__item.is-open .mw-c-nav__caret {
	opacity: 1;
	transform: rotate(180deg);
}

.mw-c-badge {
	display: inline-block;
	font-family: var(--mw-font-mono);
	font-size: 8.5px;
	font-weight: 700;
	letter-spacing: 1px;
	background: var(--mw-accent);
	color: var(--mw-accent-text);
	padding: 2px 5px;
	line-height: 1;
}

/* ── 07. Actions — search + account + cart ───────────────── */
.mw-c-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}
.mw-c-search {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--mw-input-bg);
	border: 1px solid var(--mw-border);
	padding: 9px 12px;
	min-width: 220px;
	transition: border-color .15s, background-color .2s;
}
.mw-c-search:hover,
.mw-c-search:focus-within { border-color: var(--mw-ink); }
.mw-c-search__icon { color: var(--mw-ink-muted); flex-shrink: 0; }
.mw-c-search input {
	flex: 1;
	background: transparent;
	border: 0;
	outline: 0;
	font-family: var(--mw-font-mono);
	font-size: 11px;
	letter-spacing: 1.4px;
	width: 100%;
	min-width: 0;
}
.mw-c-search input::placeholder { color: var(--mw-ink-mute2); }
.mw-c-search__kbd {
	font-family: var(--mw-font-mono);
	font-size: 9px;
	border: 1px solid var(--mw-border);
	padding: 2px 5px;
	color: var(--mw-ink-muted);
	flex-shrink: 0;
}
.mw-c-icon-btn {
	width: 38px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mw-ink-muted);
	transition: color .15s;
}
.mw-c-icon-btn:hover { color: var(--mw-ink); }

/* ── 07b. Cart — B2 from cart-states spec ─────────────────
 *
 * Outlined pill with inline orange square count badge.
 * The cart-states spec file marked B2 as "REC · LIVE" (the chosen
 * treatment), not B4. B2 = outline pill + inline orange count square.
 *
 * Padding is asymmetric (8 10 8 14) so the crate icon has breathing
 * room on the left and the count badge hugs the right edge.
 *
 * Empty state (count = 0): badge hidden entirely → just `[crate] CART`
 * Filled state (count > 0): `[crate] CART [orange-square-N]`
 *
 * Hover: inverts to filled ink + chrome text. The badge keeps its
 * orange+white coloring for consistency (and extra pop on hover).
 */
.mw-c-cart {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 8px 10px 8px 14px !important;
	border: 1px solid var(--mw-ink) !important;
	background: transparent !important;
	color: var(--mw-ink) !important;
	font-family: var(--mw-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-decoration: none;
	transition: background-color .15s, color .15s;
	line-height: 1;
	white-space: nowrap;
}
.mw-c-cart:hover {
	background: var(--mw-ink) !important;
	color: var(--mw-chrome) !important;
}
.mw-c-cart__crate {
	display: block;
	flex-shrink: 0;
}
.mw-c-cart__label { line-height: 1; }
.mw-c-cart__badge {
	display: none;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 5px;
	background: var(--mw-accent);
	color: #FFFFFF;
	font-family: var(--mw-font-mono);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
}
.mw-c-cart.is-filled .mw-c-cart__badge { display: inline-flex; }

/* ── 08. Mobile bar (under 900px) ────────────────────────── */
.mw-c-mbar {
	display: none;
	width: 100%;
	align-items: center;
	gap: 10px;
}
.mw-c-mbar__menu,
.mw-c-mbar__icon {
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mw-ink);
	flex-shrink: 0;
}

/*
 * Hamburger icon toggles between ≡ and ✕ based on drawer state.
 * Both SVG icons render in the button; CSS swaps visibility.
 * Body gets .is-mw-drawer-open when drawer is visible (toggled by JS).
 */
.mw-c-mbar__menu { position: relative; }
.mw-c-mbar__menu-ico {
	position: absolute;
	inset: 0;
	margin: auto;
	transition: opacity .15s, transform .2s;
}
.mw-c-mbar__menu-ico--burger { opacity: 1; transform: rotate(0); }
.mw-c-mbar__menu-ico--close  { opacity: 0; transform: rotate(-90deg); }
body.is-mw-drawer-open .mw-c-mbar__menu-ico--burger { opacity: 0; transform: rotate(90deg); }
body.is-mw-drawer-open .mw-c-mbar__menu-ico--close  { opacity: 1; transform: rotate(0); }
.mw-c-mbar__logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.mw-c-search--mobile {
	flex: 1;
	min-width: 0;
	padding: 9px 12px;
}
.mw-c-search--mobile input {
	font-family: var(--mw-font-mono);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}
/* Mobile cart — same B2 treatment, slightly tighter */
.mw-c-cart--mobile { padding: 6px 8px 6px 10px !important; font-size: 9.5px; gap: 6px; letter-spacing: 1px; flex-shrink: 0; }
.mw-c-cart--mobile .mw-c-cart__badge { min-width: 18px; height: 18px; font-size: 9.5px; padding: 0 4px; }

/* ── 09. Mega menus ──────────────────────────────────────── */
.mw-c-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--mw-chrome);
	color: var(--mw-ink);
	border-top: 1px solid var(--mw-border-soft);
	border-bottom: 1px solid var(--mw-border);
	box-shadow: var(--mw-menu-shadow);
	padding: 28px var(--mw-gutter) 32px;
	z-index: 50;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity .22s, transform .22s, visibility 0s linear .22s;
}
.mw-c-mega.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
	transition: opacity .22s, transform .22s, visibility 0s linear 0s;
}

/* Mega head — eyebrow left, view-all link right */
.mw-c-mega__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 18px;
}
.mw-c-mega__head-eyebrow {
	font-family: var(--mw-font-mono);
	font-size: 10px;
	letter-spacing: 2px;
	color: var(--mw-ink-muted);
}
.mw-c-mega__head-viewall {
	font-family: var(--mw-font-mono);
	font-size: 11px;
	letter-spacing: 1.6px;
	font-weight: 700;
	color: var(--mw-ink);
	border-bottom: 1px solid var(--mw-ink);
	padding-bottom: 2px;
	transition: color .15s, border-color .15s;
}
.mw-c-mega__head-viewall:hover {
	color: var(--mw-accent);
	border-color: var(--mw-accent);
}

.mw-c-mega__grid { display: grid; gap: 14px; }
.mw-c-mega__grid--shop { grid-template-columns: repeat(9, 1fr); }
.mw-c-mega__grid--4 { grid-template-columns: repeat(4, 1fr); gap: 12px; }

.mw-c-mega__cell {
	display: block;
	position: relative;
	cursor: pointer;
}
.mw-c-mega__cell-label {
	display: inline-block;
	position: relative;
	margin-top: 10px;
	padding-bottom: 2px;
	font-family: var(--mw-font-mono);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 1.6px;
}
.mw-c-mega__cell-label::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--mw-ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .22s;
}
.mw-c-mega__cell:hover .mw-c-mega__cell-label::after { transform: scaleX(1); }

.mw-c-mega__cell-sub {
	display: block;
	margin-top: 3px;
	font-family: var(--mw-font-mono);
	font-size: 9.5px;
	letter-spacing: 1.2px;
	color: var(--mw-ink-muted);
}
.mw-c-mega__cell-sub--accent {
	color: var(--mw-accent);
	font-weight: 700;
}

/* Tag overlay — top-left corner inside thumb */
.mw-c-mega__cell-tag {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	font-family: var(--mw-font-mono);
	font-size: 8.5px;
	letter-spacing: 1.2px;
	font-weight: 700;
	background: var(--mw-chrome);
	border: 1px solid var(--mw-border-soft);
	color: var(--mw-ink);
	padding: 3px 5px;
	line-height: 1;
}

/* Arrow overlay — bottom-right, slides in on hover */
.mw-c-mega__cell-arrow {
	position: absolute;
	right: 8px;
	bottom: 8px;
	z-index: 2;
	width: 22px;
	height: 22px;
	background: var(--mw-ink);
	color: var(--mw-chrome);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--mw-font-mono);
	font-weight: 700;
	font-size: 11px;
	line-height: 1;
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity .22s, transform .22s;
}
.mw-c-mega__cell:hover .mw-c-mega__cell-arrow {
	opacity: 1;
	transform: translateX(0);
}

.mw-c-mega__strip {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--mw-border-soft);
	display: flex;
	gap: 26px;
	align-items: center;
	flex-wrap: wrap;
}
.mw-c-mega__strip-label {
	font-family: var(--mw-font-mono);
	font-size: 9.5px;
	letter-spacing: 2px;
	font-weight: 700;
	color: var(--mw-ink-muted);
}
.mw-c-mega__strip-link {
	position: relative;
	padding-bottom: 2px;
	font-family: var(--mw-font-mono);
	font-size: 10.5px;
	letter-spacing: 1.4px;
	color: var(--mw-ink-muted);
	transition: color .15s;
}
.mw-c-mega__strip-link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--mw-ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s;
}
.mw-c-mega__strip-link:hover { color: var(--mw-ink); }
.mw-c-mega__strip-link:hover::after { transform: scaleX(1); }
.mw-c-mega__strip-link.is-primary {
	color: var(--mw-ink);
	font-weight: 700;
}
.mw-c-mega__strip-link.is-primary::after { transform: scaleX(1); }

.mw-c-mega--clearance {
	display: flex;
	gap: 48px;
	align-items: flex-start;
}
.mw-c-mega__promo { flex: 1; }
.mw-c-mega--clearance .mw-c-mega__grid--4 { flex: 2; }
.mw-c-mega__promo-eyebrow {
	font-family: var(--mw-font-mono);
	font-size: 10px;
	letter-spacing: 2px;
	color: var(--mw-accent);
	font-weight: 700;
	margin-bottom: 10px;
}
.mw-c-mega__promo-title {
	font-size: 28px;
	font-weight: 600;
	letter-spacing: -0.5px;
	line-height: 1.1;
	margin-bottom: 8px;
}
.mw-c-mega__promo-body {
	font-size: 13.5px;
	color: var(--mw-ink-muted);
	max-width: 340px;
	line-height: 1.5;
	margin: 0 0 16px;
}

/* ── 10. Ticker — clickable rotating bar ───────────────────
 *
 * The outer <a class="mw-c-ticker"> wraps the whole stage — entire bar
 * is one click target. Href updates dynamically as messages rotate
 * (see chrome.js setupTicker → applyHrefFor). When the current message
 * has no URL, the outer link gets data-noop and chrome.js blocks clicks.
 *
 * Messages themselves are plain <span>s, so pointer-events on them don't
 * matter — the outer <a> owns all clicks. Only the .is-current span is
 * visually visible; the others are opacity: 0 and below the frame.
 *
 * !importants on position/transform defeat any legacy rule that set
 * .is-current to position:relative, which used to cause a cross-fade jump.
 */
.mw-c-ticker {
	background: var(--mw-ticker);
	color: var(--mw-ticker-fg);
	border-bottom: 1px solid var(--mw-border);
	padding: 9px var(--mw-gutter);
	font-family: var(--mw-font-mono);
	font-size: 13px;
	letter-spacing: 1.4px;
	font-weight: 500;
	overflow: hidden;
	position: relative;
	min-height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s;
}
/* Whole-bar hover: subtle bg darken, feels like a pressable surface */
.mw-c-ticker:not([data-noop]):hover {
	background: color-mix(in srgb, var(--mw-ticker) 92%, var(--mw-ink) 8%);
}
/* Unlinked messages: default cursor, no hover feedback */
.mw-c-ticker[data-noop] { cursor: default; }
.mw-c-ticker__stage {
	position: relative;
	width: 100%;
	min-height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mw-c-ticker__msg {
	position: absolute !important;
	left: 50%;
	top: 50%;
	transform: translate(-50%, calc(-50% + 10px));
	white-space: nowrap;
	opacity: 0;
	transition: opacity .42s ease, transform .42s ease;
	pointer-events: none;
	will-change: opacity, transform;
	color: inherit;
	display: inline-flex;
	align-items: center;
}
.mw-c-ticker__msg.is-current {
	opacity: 1 !important;
	transform: translate(-50%, -50%) !important;
}
.mw-c-ticker__msg.is-leaving {
	opacity: 0 !important;
	transform: translate(-50%, calc(-50% - 10px)) !important;
}
.mw-c-ticker__text { display: inline-block; }

/* ── 11. Mobile drawer ───────────────────────────────────── */
/*
 * The drawer is the LAST child of the sticky .mw-chrome header. It's
 * absolutely positioned at top:100% of the header, so it hangs from the
 * bottom edge of the ticker and fills the remaining viewport below.
 *
 * Height is computed at mount-time by chrome.js — `calc(100vh - headerHeight)`
 * so it never extends past the viewport bottom.
 *
 * Hamburger in the mobile bar toggles between ≡ (closed) and ✕ (open).
 * The drawer itself has no duplicate search / close / logo bar since
 * the header (with its hamburger and search) is still visible above.
 */
.mw-c-drawer {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 90;
	background: var(--mw-chrome);
	color: var(--mw-ink);
	font-family: var(--mw-font-sans);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	border-top: 1px solid var(--mw-border);
	box-shadow: var(--mw-menu-shadow);
	/* JS sets explicit height via inline style on open; this is fallback */
	max-height: calc(100vh - 100px);
}
.mw-c-drawer[hidden] { display: none !important; }
/*
 * Drawer body — single scroll region. Nav flows top, foot sits at
 * the bottom using `margin-top: auto` inside the drawer flex column.
 * When content is short, foot drops to bottom of drawer. When content
 * overflows (Shop expanded with full grid), everything scrolls together
 * and the foot sits naturally at the end.
 */
.mw-c-drawer__nav { padding: 4px 0; }
.mw-c-drawer__row { border-bottom: 1px solid var(--mw-border); }
/*
 * Drawer row buttons and links. Max !important lockdown because Hello
 * Elementor + kit CSS were stripping our padding and layout, leaving
 * the chevron flush against the viewport edge so Shop/Clearance rows
 * looked like native <select> dropdowns.
 *
 * Every layout-critical property gets !important:
 *   - width/display/padding/flex  — structural, must win
 *   - font/color/bg/border        — visual, must win
 *   - min-height/line-height      — parent theme adds these on button
 *   - text-transform              — some kits uppercase buttons globally
 */
.mw-c-drawer__btn {
	width: 100% !important;
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 18px 20px !important;
	text-align: left !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	font-family: var(--mw-font-sans) !important;
	letter-spacing: -0.1px !important;
	color: var(--mw-ink) !important;
	background: transparent !important;
	text-decoration: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	cursor: pointer !important;
	min-height: 0 !important;
	line-height: normal !important;
	text-transform: none !important;
	box-shadow: none !important;
}
.mw-c-drawer__btn:hover,
.mw-c-drawer__btn:focus,
.mw-c-drawer__btn:focus-visible,
.mw-c-drawer__btn:active,
.mw-c-drawer__btn[aria-expanded="true"] {
	color: var(--mw-ink) !important;
	background: transparent !important;
	outline: 0 !important;
}

/*
 * Inner label span — also gets flex layout locked down so the parent
 * theme can't inject margin/padding that breaks the row layout and
 * pushes the chevron to the edge.
 */
.mw-c-drawer__btn > span:first-child {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: 1 1 auto !important;
}
.mw-c-drawer__caret {
	flex-shrink: 0 !important;
	margin-left: 12px !important;
	transition: transform .18s !important;
}
.mw-c-drawer__btn[aria-expanded="true"] .mw-c-drawer__caret {
	transform: rotate(180deg) !important;
}
.mw-c-drawer__panel { background: var(--mw-util); }
.mw-c-drawer__panel[hidden] { display: none !important; }
.mw-c-drawer__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding: 14px 20px 0;
}
.mw-c-drawer__cat { display: flex; align-items: center; gap: 10px; padding: 8px 6px; }
.mw-c-drawer__cat-label {
	display: block;
	font-family: var(--mw-font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
}
.mw-c-drawer__cat-sub {
	display: block;
	font-size: 10.5px;
	color: var(--mw-ink-muted);
	margin-top: 2px;
}
.mw-c-drawer__eyebrow {
	padding: 12px 20px 0;
	font-family: var(--mw-font-mono);
	font-size: 10px;
	letter-spacing: 2px;
	color: var(--mw-accent);
	font-weight: 700;
}
.mw-c-drawer__sublink {
	display: block;
	padding: 6px 20px;
	color: var(--mw-ink-muted);
	font-size: 14px;
}
.mw-c-drawer__sublink.is-primary { color: var(--mw-ink); font-weight: 700; }
.mw-c-drawer__panel > *:last-child { padding-bottom: 18px; }
.mw-c-drawer__foot {
	border-top: 1px solid var(--mw-border);
	padding: 14px 20px 18px;
	margin-top: auto;
}
.mw-c-drawer__cta-row { display: flex; gap: 10px; }
.mw-c-drawer__util {
	margin-top: 14px;
	display: flex;
	justify-content: space-between;
	font-size: 10.5px;
	letter-spacing: 1.2px;
	color: var(--mw-ink-muted);
	font-family: var(--mw-font-mono);
}

/* ── 12. CTAs ────────────────────────────────────────────── */
.mw-c-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px;
	font-family: var(--mw-font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.2px;
	transition: opacity .15s;
}
.mw-c-cta:hover { opacity: 0.9; }
.mw-c-cta--accent {
	background: var(--mw-accent) !important;
	color: var(--mw-accent-text) !important;
}
.mw-c-cta--accent:hover,
.mw-c-cta--accent:focus,
.mw-c-cta--accent:active {
	background: var(--mw-accent) !important;
	color: var(--mw-accent-text) !important;
}
.mw-c-cta--outline {
	background: transparent !important;
	color: var(--mw-ink) !important;
	border: 1px solid var(--mw-border);
	flex: 1;
}
.mw-c-cta--outline:hover,
.mw-c-cta--outline:focus,
.mw-c-cta--outline:active {
	background: transparent !important;
	color: var(--mw-ink) !important;
}
.mw-c-drawer__cta-row .mw-c-cta { flex: 1; }
/*
 * .mw-c-cta--invert — black button with light text ("VIEW ALL PRODUCTS").
 * Parent theme overrides `<a>` color back to ink, making the text black
 * on the black button. Lock color with !important on all states.
 */
.mw-c-cta--invert {
	background: var(--mw-ink) !important;
	color: var(--mw-chrome) !important;
	padding: 12px 14px;
	text-align: center;
}
.mw-c-cta--invert:hover,
.mw-c-cta--invert:focus,
.mw-c-cta--invert:active {
	background: var(--mw-ink) !important;
	color: var(--mw-chrome) !important;
}
.mw-c-cta--block { display: block; margin: 14px 20px 18px; }

/* ── 13. Logo (CSS mask, single SVG, inherits color) ─────── */
.mw-c-logo {
	display: block;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-position: center center;
	        mask-position: center center;
	-webkit-mask-size: contain;
	        mask-size: contain;
}
.mw-c-logo--wordmark {
	height: var(--mw-logo-h);
	aspect-ratio: 5 / 1; /* JS corrects to real ratio after SVG loads */
}
.mw-c-logo--shield {
	height: var(--mw-logo-h-m);
	width: var(--mw-logo-h-m);
}

.mw-c-bar__logo,
.mw-c-mbar__logo,
.mw-c-drawer__top,
.mw-cf-brand {
	color: var(--mw-ink);
}

/* ── 14. Thumb placeholders ──────────────────────────────── */
.mw-c-thumb {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	position: relative;
	overflow: hidden;
}
.mw-c-thumb::before {
	content: '';
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(45deg, transparent 0 8px, rgba(0,0,0,0.04) 8px 9px);
	pointer-events: none;
}
.mw-c-thumb__label {
	position: absolute;
	top: 8px;
	left: 8px;
	font-family: var(--mw-font-mono);
	font-size: 8px;
	letter-spacing: 1.2px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.7);
}
.mw-c-thumb--wh .mw-c-thumb__label { color: rgba(0, 0, 0, 0.45); }

.mw-c-thumb--mc {
	background:
		radial-gradient(ellipse at 30% 30%, #8b8a5a 0 18px, transparent 19px),
		radial-gradient(ellipse at 70% 60%, #4a4a32 0 14px, transparent 15px),
		radial-gradient(ellipse at 50% 80%, #2d2e1e 0 12px, transparent 13px),
		linear-gradient(135deg, #6b6a48 0%, #5a5b3e 100%);
	background-size: 40px 40px, 30px 30px, 50px 50px, 100% 100%;
}
.mw-c-thumb--blk { background: linear-gradient(135deg, #2a2c30 0%, #1a1c1f 100%); }
.mw-c-thumb--cy  { background: linear-gradient(135deg, #8a7d5c 0%, #6e624a 100%); }
.mw-c-thumb--wh  { background: linear-gradient(135deg, #e8e6df 0%, #d0cfc8 100%); }

/*
 * Mini thumb — used in the mobile drawer's Shop grid.
 * 64px with `object-fit: cover` instead of `contain` — source PNGs have
 * baked-in top whitespace from studio shots (products on plain background
 * with padding). `cover` crops to fill the box, removing the whitespace
 * and centering the product visually. Risk: tall products get top/bottom
 * edges cropped, but at 64px any loss is acceptable for a thumbnail.
 *
 * Border uses explicit rgba (not --mw-border at 10% opacity) so the 2px
 * frame is actually visible against the light drawer panel. Padding
 * removed entirely — `cover` fills the whole box.
 */
.mw-c-thumb--mini {
	width: 64px;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
}
.mw-c-thumb--mini.mw-c-thumb--photo {
	padding: 0 !important;
	border: 2px solid rgba(20, 20, 22, 0.18) !important;
}
.mw-c-thumb--mini.mw-c-thumb--photo img {
	object-fit: cover !important;
	object-position: center center !important;
}
.mw-c-thumb--mini .mw-c-thumb__label { display: none; }

/* ── 14b. Photo thumbs — real category images in mega cells ──
 *
 * Structure: the .mw-c-thumb--photo outer frame stays full cell width.
 * Inside, 16px padding pushes the image inward so it floats in whitespace
 * (white bg), while overlays (tag top-left, arrow bottom-right) are
 * positioned against the OUTER frame (position: absolute; top/left/right
 * measured from the padding-box edge, but since the padding is inside
 * the outer border, visually the overlays still sit at the frame corners).
 *
 * object-fit: contain keeps product proportions inside the padded area.
 * On hover, border flips to ink, image scales up subtly inside its frame.
 *
 * Background is white (not util-gray) so products pop on a clean surface,
 * like a product-shot lightbox.
 */
.mw-c-thumb--photo {
	background: #FFFFFF;
	border: 1px solid var(--mw-border-soft);
	overflow: hidden;
	transition: border-color .2s;
	padding: 16px;
}
/* Night mode: keep a clean surface, just a bit darker than pure white */
html[data-mw-mode="night"] .mw-c-thumb--photo {
	background: #F4F5F6;
}
.mw-c-thumb--photo::before { display: none; }
.mw-c-thumb--photo .mw-c-thumb__label { display: none; }
.mw-c-thumb--photo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center 40%;
	display: block;
	transition: transform .4s cubic-bezier(.65, .05, .36, 1);
}
.mw-c-mega__cell:hover .mw-c-thumb--photo { border-color: var(--mw-ink); }
/*
 * No scale-on-hover — image now sits in a padded white frame, so scaling
 * causes it to spill into the padding (looks like the photo is breaking
 * out of the tile). Border flip + arrow slide-in are enough feedback.
 */

/* ══════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════ */

.mw-chrome-footer {
	background: var(--mw-chrome);
	color: var(--mw-ink);
	font-family: var(--mw-font-sans);
	font-size: 14px;
	container-type: inline-size;
	transition: background-color .2s ease, color .2s ease;
}
.mw-cf-main {
	max-width: 1600px;
	margin: 0 auto;
	padding: 64px var(--mw-gutter) 48px;
}
.mw-cf-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr 1.6fr;
	gap: 56px;
	align-items: start;
}

.mw-cf-brand__logo { height: var(--mw-logo-h); margin: 0 0 22px -2px; color: var(--mw-ink); }
.mw-cf-brand__tag {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--mw-ink-muted);
	margin: 0 0 24px;
	max-width: 320px;
}
.mw-cf-brand__contact {
	font-size: 11.5px;
	line-height: 1.9;
	color: var(--mw-ink-muted);
	font-family: var(--mw-font-mono);
	letter-spacing: 0.6px;
}
.mw-cf-brand__contact .mw-cf-k { color: var(--mw-ink); }
.mw-cf-brand__contact a { transition: color .15s; }
.mw-cf-brand__contact a:hover { color: var(--mw-ink); }

.mw-cf-socials { margin-top: 24px; display: flex; gap: 10px; }
.mw-cf-social {
	width: 36px;
	height: 36px;
	border-radius: 18px;
	border: 1px solid var(--mw-border);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mw-ink-muted);
	transition: border-color .15s, color .15s;
}
.mw-cf-social:hover { border-color: var(--mw-ink); color: var(--mw-ink); }

/*
 * Column heading — semantic <h3> wrapping a <button> so the heading is
 * a proper landmark AND the mobile accordion toggle is a real button.
 * Plain-case in source ("Shop") uppercased in CSS so Google reads the
 * semantic form, not the display form.
 */
.mw-cf-col__head {
	margin: 0 0 20px;
	font-family: var(--mw-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	color: var(--mw-ink);
	text-transform: uppercase;
}
.mw-cf-col__head button {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	cursor: default;
	text-align: left;
}
.mw-cf-col__caret { display: none; }

/* Newsletter heading — also a real <h2> in plain case */
.mw-cf-dispatch__label {
	margin: 0 0 20px;
	font-family: var(--mw-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	color: var(--mw-ink);
	text-transform: uppercase;
}

/* Screen-reader-only label helper (for the email input) */
.mw-cf-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Brand logo link — remove underline/inline spacing */
.mw-cf-brand__logolink {
	display: flex;
	margin: 0 0 22px -2px;
}
/* <address> defaults italic in some UAs; reset it */
.mw-cf-brand__contact { font-style: normal; }

/* Nav landmark wrapping the 3 columns — display:contents so it doesn't
 * disturb the parent grid's column placement */
.mw-cf-nav { display: contents; }

/* Payment chips are now <li> — reset list defaults */
.mw-cf-legal__pays {
	list-style: none;
	padding: 0;
	margin: 0;
}
.mw-cf-socials {
	list-style: none;
	padding: 0;
}

/* <small> inside legal bar — UA shrinks <small> by default; restore */
.mw-cf-legal__copy { font-size: inherit; }
.mw-cf-col__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 11px;
}
.mw-cf-col__list a {
	font-size: 13.5px;
	color: var(--mw-ink-muted);
	transition: color .15s;
}
.mw-cf-col__list a:hover { color: var(--mw-ink); }

.mw-cf-dispatch__body { font-size: 13.5px; line-height: 1.55; color: var(--mw-ink-muted); margin: 0 0 18px; }
.mw-cf-dispatch__form { position: relative; }
.mw-cf-dispatch__form input {
	width: 100%;
	background: var(--mw-util);
	border: 1px solid var(--mw-border);
	padding: 14px 110px 14px 14px;
	color: var(--mw-ink);
	font-size: 13.5px;
	outline: 0;
	transition: border-color .15s, background-color .2s;
}
.mw-cf-dispatch__form input:focus { border-color: var(--mw-ink); }
.mw-cf-dispatch__form button {
	position: absolute;
	right: 4px;
	top: 4px;
	bottom: 4px;
	background: var(--mw-accent);
	color: var(--mw-accent-text);
	padding: 0 18px;
	font-family: var(--mw-font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.2px;
	transition: opacity .15s;
}
.mw-cf-dispatch__form button:hover { opacity: 0.9; }
.mw-cf-dispatch__fine { margin-top: 22px; font-size: 11px; color: var(--mw-ink-muted); line-height: 1.5; }
.mw-cf-dispatch__fine a { color: var(--mw-ink); }

/*
 * Klaviyo submit status — inline below the form. Success = accent green-ish
 * reserved for positive feedback, Error = neutral red we don't otherwise use.
 */
.mw-cf-dispatch__status {
	margin-top: 12px;
	padding: 10px 12px;
	font-size: 12.5px;
	line-height: 1.45;
	border-left: 2px solid var(--mw-border);
	background: var(--mw-util);
	color: var(--mw-ink);
}
.mw-cf-dispatch__status.is-success { border-left-color: #3E8E41; }
.mw-cf-dispatch__status.is-error   { border-left-color: #C24242; }
.mw-cf-dispatch__form button[disabled] { opacity: .6; cursor: not-allowed; }

/*
 * Klaviyo form when rendered inside the dark navy blog newsletter CTA
 * (.ma-newsletter-cta background: #0a1828). Chrome defaults use dark ink
 * on light bg, so inside this panel everything reads dark-on-dark. This
 * block flips type + form elements to light treatments scoped ONLY to
 * that container — the same form in the footer (light chrome) is unaffected.
 */
.ma-newsletter-cta .mw-cf-dispatch__label,
.ma-newsletter-cta .mw-cf-dispatch__body {
	color: #FFFFFF !important;
}
.ma-newsletter-cta .mw-cf-dispatch__body {
	opacity: 0.85;
}
.ma-newsletter-cta .mw-cf-dispatch__fine,
.ma-newsletter-cta .mw-cf-dispatch__fine a {
	color: rgba(255, 255, 255, 0.7) !important;
}
.ma-newsletter-cta .mw-cf-dispatch__form input[type="email"] {
	background: rgba(255, 255, 255, 0.06) !important;
	border-color: rgba(255, 255, 255, 0.18) !important;
	color: #FFFFFF !important;
}
.ma-newsletter-cta .mw-cf-dispatch__form input[type="email"]::placeholder {
	color: rgba(255, 255, 255, 0.5) !important;
}
/*
 * Status message on success — neutral light block against the dark panel
 * instead of the light-gray util tone which would disappear on navy.
 */
.ma-newsletter-cta .mw-cf-dispatch__status {
	background: rgba(255, 255, 255, 0.06) !important;
	color: #FFFFFF !important;
	border-left-color: rgba(255, 255, 255, 0.4) !important;
}
.ma-newsletter-cta .mw-cf-dispatch__status.is-success {
	border-left-color: #6BC06E !important;
}
.ma-newsletter-cta .mw-cf-dispatch__status.is-error {
	border-left-color: #E87E7E !important;
}

/*
 * Post-submit success state — when .is-subscribed is set on the wrap,
 * the form + body blurb hide and the status message occupies the full
 * dispatch box, visually replacing the input. Heading (Dispatch) stays
 * as anchor context so the user still sees where they are.
 */
.mw-cf-dispatch.is-subscribed .mw-cf-dispatch__body,
.mw-cf-dispatch.is-subscribed .mw-cf-dispatch__form,
.mw-cf-dispatch.is-subscribed .mw-cf-dispatch__fine {
	display: none;
}
.mw-cf-dispatch.is-subscribed .mw-cf-dispatch__status {
	margin-top: 0;
	padding: 18px 16px;
	font-size: 14px;
	border-left: 2px solid var(--mw-accent);
	background: var(--mw-util);
}

.mw-cf-legal { border-top: 1px solid var(--mw-border); }
.mw-cf-legal__inner {
	max-width: 1600px;
	margin: 0 auto;
	padding: 20px var(--mw-gutter);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	font-size: 11.5px;
	color: var(--mw-ink-muted);
	font-family: var(--mw-font-mono);
	letter-spacing: 0.5px;
	flex-wrap: wrap;
}
.mw-cf-legal__links { display: flex; gap: 24px; }
.mw-cf-legal__links a { transition: color .15s; }
.mw-cf-legal__links a:hover { color: var(--mw-ink); }
.mw-cf-legal__pays { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.mw-cf-pay {
	padding: 4px 8px;
	background: #FFFFFF;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 3px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 26px;
}
/*
 * Payment brand marks are real PNGs from media library (2024/01 set).
 * Let them render at natural height, capped so they always fit the chip.
 */
.mw-cf-pay img {
	display: block;
	height: auto;
	max-height: 16px;
	width: auto;
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════ */

@container (max-width: 1100px) {
	.mw-cf-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}

@container (max-width: 1000px) {
	.mw-c-nav { gap: 6px; }
	.mw-c-nav__item { padding: 10px 8px; }
	.mw-c-search { min-width: 170px; }
	.mw-c-mega__grid--shop { grid-template-columns: repeat(5, 1fr); }
}

@container (max-width: 900px) {
	.mw-c-util__inner { padding: 7px var(--mw-gutter-mob); font-size: 10px; gap: 10px; }
	.mw-c-util__left { gap: 10px; }
	.mw-c-util__right a:nth-child(n+2):not(.mw-c-util__mode) { display: none; }
	.mw-c-util__right { gap: 12px; }

	.mw-c-bar {
		padding: 10px 14px;
		grid-template-columns: 1fr !important;
		grid-template-areas: "mobile" !important;
		gap: 0;
	}
	.mw-c-nav,
	.mw-c-actions,
	.mw-c-bar__logo--desk { display: none !important; }
	.mw-c-mbar { display: flex; grid-area: mobile; }

	.mw-c-mega { display: none !important; }
	.mw-c-ticker { padding: 9px var(--mw-gutter-mob); font-size: 10.5px; }
}

@container (max-width: 700px) {
	.mw-c-util__left span:nth-child(n+2) { display: none; }

	.mw-cf-main { padding: 48px 24px 36px; }
	.mw-cf-grid { grid-template-columns: 1fr; gap: 0; }
	.mw-cf-brand { padding-bottom: 32px; border-bottom: 1px solid var(--mw-border); }
	.mw-cf-dispatch { padding-top: 32px; border-top: 1px solid var(--mw-border); margin-top: 0; }
	.mw-cf-col { border-bottom: 1px solid var(--mw-border); }
	.mw-cf-col__head { margin: 0; }
	.mw-cf-col__head button { padding: 18px 0; cursor: pointer; }
	.mw-cf-col__caret { display: block; transition: transform .18s; }
	.mw-cf-col__head button[aria-expanded="true"] .mw-cf-col__caret { transform: rotate(180deg); }
	.mw-cf-col__list { display: none; padding-bottom: 14px; }
	.mw-cf-col[data-mw-acc="open"] .mw-cf-col__list { display: flex; }

	.mw-cf-legal__inner { padding: 18px 24px; flex-direction: column; align-items: flex-start; }
}

/* ══════════════════════════════════════════════════════════════
   PREVIEW BADGE — admin-only
   ══════════════════════════════════════════════════════════════ */

.mw-c-preview-badge {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	background: #141517;
	color: #EEEFF1;
	font-family: var(--mw-font-mono);
	font-size: 10.5px;
	letter-spacing: 1.5px;
	font-weight: 700;
	border: 1px solid rgba(255,255,255,0.12);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
	pointer-events: auto;
}
.mw-c-preview-badge__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #39d98a;
	box-shadow: 0 0 8px rgba(57, 217, 138, 0.6);
	animation: mw-pulse 2s ease-in-out infinite;
}
.mw-c-preview-badge__exit {
	color: #8ccfff;
	transition: color .15s;
	padding-left: 8px;
	border-left: 1px solid rgba(255,255,255,0.15);
}
.mw-c-preview-badge__exit:hover { color: #fff; }
@keyframes mw-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

.mw-chrome .skip-link,
.mw-chrome-footer .skip-link { display: none; }
