/* =============================================================================
   SKIN: FINALIST — homepage + static-page treatments only (chrome moved to
   chrome.css when productionized, 2026-08-10). Merges into main.css when the
   skin switcher retires.

   HOMEPAGE v2 (2.1.0): editorial rhythm replaces the uniform glass shells —
   ticker badges / gradient-framed raffles (the one flashy zone) / full-bleed
   review band / narrow editorial about / numbered service dossiers / timeline
   announcements. Gradient stays raffle-advertising-only; no keyframe motion
   (raffle pages keep that exclusive).
   ============================================================================= */

/* legacy Elementor hero stays hidden on the front page */
body.page-id-39225 .elementor-element-1149f936,
body.page-id-39225 .elementor-element-49e42885 { display: none !important; }

/* in-page footer clone (94KB of Jet footer + jet-search inside the body) — the
   native chrome footer replaced it; hide until it's removed from the page
   content for real in the de-Elementor pass */
body.page-id-39225 .elementor-element-4cc27f24 { display: none !important; }

body { background: #05070d !important; }

/* ---------- canvas: one deep-space glow behind everything ---------- */
body.page-id-39225 .elementor.elementor-39225 {
	background: radial-gradient(ellipse 130% 70% at 50% -5%, #101a2c 0%, #05070d 55%) !important;
	padding-bottom: 0;
}

/* ---------- shared section language ---------- */
body.page-id-39225 .elementor-element-3148fc8 h2.elementor-heading-title,
body.page-id-39225 .elementor-element-1693519 h2.elementor-heading-title,
body.page-id-39225 .elementor-element-6006aace h2.elementor-heading-title,
body.page-id-39225 .elementor-element-421a9c9 h2.elementor-heading-title,
body.page-id-39225 .elementor-element-3e22446c h2.elementor-heading-title {
	font-size: clamp(2rem, 4.2vw, 3.1rem) !important;
	font-weight: 900 !important;
	text-transform: uppercase !important;
	letter-spacing: .02em !important;
	line-height: 1.05 !important;
}
/* (the "//" mark stays hero-exclusive — Jake 2026-08-10) */

/* unified CTA voice (red, blue on hover) — raffle section excluded */
body.page-id-39225 .elementor-element-3148fc8 .elementor-button,
body.page-id-39225 .elementor-element-6006aace .elementor-button,
body.page-id-39225 .elementor-element-1693519 .elementor-button,
body.page-id-39225 .elementor-element-421a9c9 .elementor-button {
	background: var(--ccr-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
	font-size: .85rem !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	padding: 13px 26px !important;
	box-shadow: 0 8px 26px rgba(210, 64, 52, .32) !important;
	transition: all .22s ease !important;
}
body.page-id-39225 .elementor-element-3148fc8 .elementor-button:hover,
body.page-id-39225 .elementor-element-6006aace .elementor-button:hover,
body.page-id-39225 .elementor-element-1693519 .elementor-button:hover,
body.page-id-39225 .elementor-element-421a9c9 .elementor-button:hover {
	background: var(--ccr-blue) !important;
	box-shadow: 0 14px 38px rgba(56, 174, 232, .45) !important;
	transform: translateY(-3px);
}

/* (trust badges 6723c8ff sit INSIDE the hidden legacy hero 49e42885 — resurrect
   natively in the de-Elementor pass if wanted) */

/* ---------- 02 · raffles (3e22446c): the flashy zone — gradient frame, internals untouched ---------- */
body.page-id-39225 .elementor-element-3e22446c {
	position: relative;
	/* the frame IS the section boundary: hero runs flush into the top hairline,
	   and the bottom hairline sits directly against the reviews band — no dead
	   space outside the frame (Jake 2026-08-10) */
	margin: 96px auto 0 !important;
	padding: 44px 0 36px !important;
}
body.page-id-39225 .elementor-element-3e22446c::before,
body.page-id-39225 .elementor-element-3e22446c::after {
	content: "";
	position: absolute;
	left: 8%;
	right: 8%;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, #e8503f 25%, #ff8a45 75%, transparent);
	box-shadow: 0 0 14px rgba(255, 100, 55, .4);
}
body.page-id-39225 .elementor-element-3e22446c::before { top: 0; }
body.page-id-39225 .elementor-element-3e22446c::after { bottom: 0; }
/* the View All CTA speaks raffle language (gradient, rounded) and sits evenly
   between the cards and the closing hairline */
body.page-id-39225 .elementor-element-3e22446c .elementor-widget-button { margin: 30px 0 6px !important; }
body.page-id-39225 .elementor-element-3e22446c .elementor-button {
	background: linear-gradient(92deg, #e8503f, #ff8a45) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
	font-size: .85rem !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	padding: 14px 30px !important;
	box-shadow: 0 10px 30px rgba(232, 80, 63, .35) !important;
	transition: all .22s ease !important;
}
body.page-id-39225 .elementor-element-3e22446c .elementor-button:hover {
	filter: brightness(1.12);
	transform: translateY(-3px);
	box-shadow: 0 16px 40px rgba(255, 120, 60, .45) !important;
}
/* gradient headline — the only gradient text on the page, it advertises raffles */
body.page-id-39225 .elementor-element-3e22446c h2.elementor-heading-title {
	background: linear-gradient(92deg, #ff4d3d, #ff9a3d);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	-webkit-text-fill-color: transparent;
}

/* ---------- 03 · reviews (3148fc8): full-bleed quiet band ---------- */
body.page-id-39225 .elementor-element-3148fc8 {
	max-width: none !important;
	margin: 0 !important;
	border-top: 1px solid rgba(255, 255, 255, .06);
	background: rgba(255, 255, 255, .02) !important;
	padding: clamp(48px, 7vw, 84px) clamp(18px, 4vw, 48px) !important;
}
body.page-id-39225 .elementor-element-3148fc8 h2.elementor-heading-title { text-align: center; }
body.page-id-39225 .elementor-element-3148fc8 .grw-row { gap: 20px; }
body.page-id-39225 .elementor-element-3148fc8 .grw-row > div,
body.page-id-39225 .elementor-element-3148fc8 .grw-content-inner {
	background: rgba(10, 15, 28, .65) !important;
	border: 1px solid rgba(255, 255, 255, .08) !important;
	border-radius: 14px !important;
	color: var(--ccr-text) !important;
}
body.page-id-39225 .elementor-element-3148fc8 .grw-content-inner * { color: var(--ccr-text) !important; }
body.page-id-39225 .elementor-element-3148fc8 .grw-header,
body.page-id-39225 .elementor-element-3148fc8 .grw-header-inner { background: transparent !important; color: var(--ccr-text) !important; }

/* ---------- 04 · about (1693519): statement band (kept for local SEO —
   restyled as a manifesto instead of floating text, Jake 2026-08-10) ---------- */
body.page-id-39225 .elementor-element-1693519 {
	max-width: 820px;
	margin: clamp(36px, 5vw, 56px) auto clamp(36px, 5vw, 56px) !important;
	padding: clamp(36px, 5vw, 56px) 22px 0 !important;
	position: relative;
}
body.page-id-39225 .elementor-element-1693519 h2.elementor-heading-title {
	position: relative;
	padding-bottom: 14px;
	margin-bottom: 14px !important;
}
/* the ABOUT US ghost fights the long heading here — let the heading stand alone */
body.page-id-39225 .elementor-element-1693519 .elementor-heading-title[class*="size"]:not(h2),
body.page-id-39225 .elementor-element-1693519 div.elementor-heading-title { opacity: .35; }
/* opening line reads as the statement; the rest settles quiet */
body.page-id-39225 .elementor-element-1693519 p {
	color: var(--ccr-text-dim) !important;
	font-size: 1.05rem;
	line-height: 1.85;
}
body.page-id-39225 .elementor-element-1693519 .elementor-widget-text-editor p:first-of-type {
	color: #eef2f8 !important;
	font-size: clamp(1.15rem, 2vw, 1.45rem);
	line-height: 1.6;
	font-weight: 500;
}

/* ---------- 05 · services (6006aace): numbered dossier cards ---------- */
body.page-id-39225 .elementor-element-6006aace {
	max-width: 1240px;
	margin: 0 auto clamp(36px, 5vw, 56px) !important;
	padding: clamp(36px, 5vw, 56px) 22px 0 !important;
	position: relative;
}
/* quiet structural hairlines between the calm sections — the gradient frame
   stays raffle-exclusive */
body.page-id-39225 .elementor-element-6006aace::before,
body.page-id-39225 .elementor-element-421a9c9::before,
body.page-id-39225 .elementor-element-1693519::before {
	content: "";
	position: absolute;
	top: 0;
	left: 8%;
	right: 8%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12) 25%, rgba(255, 255, 255, .12) 75%, transparent);
}
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) {
	background: rgba(16, 26, 44, .55);
	border: 1px solid rgba(255, 255, 255, .07);
	border-radius: 16px;
	transition: transform .22s ease, border-color .22s ease, background .22s ease;
	position: relative;
}
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) > .elementor-widget-wrap {
	padding: 18px !important;
}
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold):hover {
	transform: translateY(-4px);
	border-color: rgba(56, 174, 232, .45);
	background: rgba(16, 26, 44, .8);
}
/* the original Elementor column paint (dark bg + shadow) reads as a box-in-box
   inside the dossier card — flatten it */
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) > .elementor-widget-wrap {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
}
/* equal card rhythm: 2-line title slot + button row pinned to the bottom */
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) > .elementor-widget-wrap {
	display: flex;
	flex-direction: column;
	height: 100%;
}
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) .elementor-widget-heading .elementor-heading-title {
	min-height: 2.7em;
	display: flex;
	align-items: flex-end;
}
/* the unfold accordion made every card stretch when one expanded — retired.
   Cards are teasers: clamped text, details live behind the section's Learn
   More (Jake 2026-08-10). */
body.page-id-39225 .elementor-element-6006aace .jet-unfold__mask {
	height: auto !important;
	max-height: none !important;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
body.page-id-39225 .elementor-element-6006aace .jet-unfold__separator,
body.page-id-39225 .elementor-element-6006aace .jet-unfold__trigger {
	display: none !important;
}
body.page-id-39225 .elementor-element-6006aace .jet-unfold__button,
body.page-id-39225 .elementor-element-6006aace .jet-unfold__button-wrap,
body.page-id-39225 .elementor-element-6006aace .jet-unfold__button-wrapper {
	display: none !important;
}

body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) img {
	border-radius: 10px;
	filter: saturate(.88);
}
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) h3,
body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) .elementor-heading-title {
	font-size: 1.05rem !important;
	font-weight: 800 !important;
}
body.page-id-39225 .elementor-element-6006aace p,
body.page-id-39225 .elementor-element-6006aace .jet-listing-dynamic-field__content {
	color: var(--ccr-text-dim) !important;
	line-height: 1.7;
}
body.page-id-39225 .jet-unfold__button,
body.page-id-39225 .jet-unfold__button * { color: #fff !important; }

/* ---------- 06 · announcements (421a9c9): timeline ---------- */
body.page-id-39225 .elementor-element-421a9c9 {
	max-width: 1080px;
	margin: 0 auto 0 !important;
	padding: clamp(36px, 5vw, 56px) 22px 0 !important;
	position: relative;
}
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-grid__items { gap: 18px; }
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-grid__item {
	position: relative;
	background: rgba(255, 255, 255, .03);
	border: 1px solid rgba(255, 255, 255, .07);
	border-left: 0;
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 18px;
	transition: background .2s ease, transform .2s ease;
}
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-grid__item .elementor-section {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-grid__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: linear-gradient(180deg, var(--ccr-blue), rgba(56, 174, 232, .15));
}
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-grid__item:hover {
	background: rgba(255, 255, 255, .05);
	transform: translateY(-2px);
}
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-dynamic-field__content {
	font-family: 'DM Mono', monospace;
}
body.page-id-39225 .elementor-element-421a9c9 .jet-listing-grid__item h2.elementor-heading-title {
	font-size: clamp(1.35rem, 2.6vw, 1.9rem) !important;
}
body.page-id-39225 .elementor-element-421a9c9 p {
	color: var(--ccr-text-dim) !important;
	line-height: 1.7;
}

/* ---------- responsive ---------- */
@media (max-width: 767px) {
	body.page-id-39225 .elementor-element-3e22446c { margin: 64px auto !important; padding: 28px 0 !important; }
	body.page-id-39225 .elementor-element-6006aace .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-jet-unfold) { margin-bottom: 14px; }
}

/* ---------- static pages (sd-page): glass over deep space ---------- */
.sd-page { background: radial-gradient(ellipse 130% 80% at 50% -10%, #101a2c 0%, #05070d 60%) !important; }
.sd-page__card {
	background: rgba(16, 26, 44, .6) !important;
	border-color: rgba(255, 255, 255, .09) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: 0 18px 60px rgba(0, 0, 0, .5) !important;
	border-radius: 18px !important;
}
.sd-page__title { text-transform: uppercase; letter-spacing: .02em; }
/* legal pages open with an exact duplicate of their title — hide there ONLY
   (other native pages keep their distinct lead headings) */
body.page-id-39210 .sd-page__card > :is(h1, h2):first-child,
body.page-id-39214 .sd-page__card > :is(h1, h2):first-child,
body.page-id-361338 .sd-page__card > :is(h1, h2):first-child,
body.page-id-527513 .sd-page__card > :is(h1, h2):first-child,
body.page-id-260164 .sd-page__card > :is(h1, h2):first-child,
body.page-id-39210 .sd-page__card > :is(h1, h2):first-child + hr,
body.page-id-39214 .sd-page__card > :is(h1, h2):first-child + hr,
body.page-id-361338 .sd-page__card > :is(h1, h2):first-child + hr,
body.page-id-527513 .sd-page__card > :is(h1, h2):first-child + hr,
body.page-id-260164 .sd-page__card > :is(h1, h2):first-child + hr { display: none; }

/* native static-page content vocabulary */
.sd-page .sd-page__kicker,
.sd-page .sd-page__card .sd-page__kicker {
	font-family: 'DM Mono', monospace !important;
	font-size: .78rem !important;
	font-weight: 500 !important;
	letter-spacing: .2em !important;
	text-transform: uppercase !important;
	color: var(--ccr-blue) !important;
	/* generic card-paragraph rules zero this out at lower specificity — the
	   52px above is what separates a kicker from the PREVIOUS section */
	margin: 52px 0 0 !important;
}
/* whatever sits above a kicker contributes its own bottom margin, making the
   gaps uneven — zero it so every kicker gap is exactly the 52px */
.sd-page__card :has(+ .sd-page__kicker) { margin-bottom: 0 !important; }
/* the kicker belongs to the heading beneath it — kill the heading's own top
   margin so the pair reads as one unit */
.sd-page .sd-page__kicker + h2,
.sd-page .sd-page__kicker + h3 {
	margin-top: 8px !important;
}
/* figure directly above a kicker: trim the figure's bottom so the section
   block (image → kicker → heading) reads as one unit */
.sd-page .sd-page__figure + .sd-page__kicker { margin-top: 6px; }
.sd-btn-inline {
	display: inline-block;
	background: var(--ccr-accent);
	color: #fff !important;
	border-radius: 10px;
	font-weight: 800;
	font-size: .85rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none !important;
	padding: 12px 24px;
	box-shadow: 0 8px 26px rgba(210, 64, 52, .32);
	transition: all .22s ease;
}
.sd-btn-inline:hover {
	background: var(--ccr-blue);
	color: #fff !important;
	box-shadow: 0 14px 38px rgba(56, 174, 232, .45);
	transform: translateY(-2px);
}
.sd-page__figure { margin: 26px 0; }
.sd-page__figure img { border-radius: 14px; max-width: 100%; height: auto; }
.sd-page__list { list-style: none; margin: 18px 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sd-page__list a { color: var(--ccr-blue); text-decoration: none; }
.sd-page__sep {
	border: 0;
	height: 1px;
	margin: 44px 8%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12) 25%, rgba(255, 255, 255, .12) 75%, transparent);
}
.sd-page__map { margin: 26px 0 0; }

/* contact form (WPForms) in the finalist voice: unified dark fields, red submit */
.sd-page .wpforms-form .wpforms-field label.wpforms-field-label {
	color: #eef2f8;
	font-size: .92rem;
	font-weight: 700;
	margin-bottom: 6px;
}
html body .sd-page .wpforms-form .wpforms-field input,
html body .sd-page .wpforms-form .wpforms-field textarea,
.sd-page form[id^="wpforms-form"] .wpforms-field input,
#wpforms-form-2048 .wpforms-field input,
#wpforms-form-2048 .wpforms-field textarea {
	background: rgba(255, 255, 255, .05) !important;
	border: 1px solid rgba(255, 255, 255, .16) !important;
	border-radius: 10px !important;
	color: #eef2f8 !important;
	padding: 12px 14px !important;
	max-width: 100% !important;
	width: 100% !important;
	box-shadow: none !important;
	transition: border-color .2s ease;
}
html body .sd-page .wpforms-form .wpforms-field input:focus,
html body .sd-page .wpforms-form .wpforms-field textarea:focus,
#wpforms-form-2048 .wpforms-field input:focus,
#wpforms-form-2048 .wpforms-field textarea:focus {
	border-color: rgba(56, 174, 232, .65) !important;
	outline: none !important;
}
.sd-page .wpforms-form textarea { min-height: 150px; }
.sd-page .wpforms-form button[type="submit"],
.sd-page .wpforms-form .wpforms-submit {
	background: var(--ccr-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
	font-size: .85rem !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	padding: 13px 30px !important;
	box-shadow: 0 8px 26px rgba(210, 64, 52, .32) !important;
	transition: all .22s ease !important;
	cursor: pointer;
}
.sd-page .wpforms-form button[type="submit"]:hover,
.sd-page .wpforms-form .wpforms-submit:hover {
	background: var(--ccr-blue) !important;
	box-shadow: 0 14px 38px rgba(56, 174, 232, .45) !important;
	transform: translateY(-2px);
}
.sd-page__map iframe { border-radius: 14px; }

/* ---------- hub pages (Store Policies, Guides): intro + child card grid ---------- */
.sd-hub__intro {
	max-width: 760px;
	margin: 0 auto 40px;
	padding: 0 22px;
	color: var(--ccr-text-dim);
	font-size: 1.08rem;
	line-height: 1.8;
	text-align: center;
}
.sd-hub__grid {
	max-width: 1080px;
	margin: 0 auto 80px;
	padding: 0 22px;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 18px;
}
.sd-hub__card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 24px;
	border-radius: 16px;
	background: rgba(16, 26, 44, .55);
	border: 1px solid rgba(255, 255, 255, .07);
	text-decoration: none;
	transition: transform .22s ease, border-color .22s ease, background .22s ease;
}
.sd-hub__card:hover {
	transform: translateY(-4px);
	border-color: rgba(56, 174, 232, .45);
	background: rgba(16, 26, 44, .8);
}
.sd-hub__chip {
	align-self: flex-start;
	font-family: 'DM Mono', monospace;
	font-size: .68rem;
	font-weight: 500;
	letter-spacing: .18em;
	padding: 4px 10px;
	border-radius: 99px;
	border: 1px solid rgba(255, 255, 255, .18);
	color: #dbe3f0;
}
.sd-hub__chip--start-here { border-color: rgba(56, 174, 232, .5); color: var(--ccr-blue); }
.sd-hub__chip--live-data { border-color: rgba(255, 138, 69, .55); color: #ff9a5a; }
.sd-hub__card-title { font-size: 1.12rem; font-weight: 800; color: #fff; margin: 0; line-height: 1.35; }
.sd-hub__card-desc { color: var(--ccr-text-dim); font-size: .92rem; line-height: 1.65; margin: 0; }
.sd-hub__card-cta { margin-top: auto; color: var(--ccr-blue); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* =============================================================================
   CART PASS v2 (Phase 4b #1) — STRUCTURAL overhaul, homepage-grade.
   Watermark hero · item rows as grid cards (table look erased) · sticky totals
   sidebar · loadout module rebuilt dark and moved to the bottom.
   Scope: body.woocommerce-cart. Functionality untouched.
   ============================================================================= */
body.woocommerce-cart { background: radial-gradient(ellipse 130% 70% at 50% -5%, #101a2c 0%, #05070d 55%) !important; }

/* ---------- reorder inside the jet cart TEMPLATE (39354): title → cart → loadout ---------- */
body.woocommerce-cart .elementor-39354 { display: flex !important; flex-direction: column; }
body.woocommerce-cart .elementor-39354 > .elementor-element-21689043 { order: 1; }
body.woocommerce-cart .elementor-39354 > .elementor-element-7c7966a { order: 2; }
body.woocommerce-cart .elementor-39354 > .elementor-element-697ac95a { order: 3; }

/* ---------- hero: big title over a CART watermark ---------- */
body.woocommerce-cart .elementor-39354 > .elementor-element-21689043 {
	position: relative;
	text-align: center;
	padding: clamp(40px, 6vw, 70px) 20px clamp(10px, 2vw, 24px) !important;
}
body.woocommerce-cart .elementor-39354 > .elementor-element-21689043::before {
	content: "CART";
	position: absolute;
	left: 0;
	right: 0;
	top: clamp(18px, 3vw, 36px);
	font-size: clamp(4rem, 12vw, 8.5rem);
	font-weight: 900;
	letter-spacing: .04em;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .12);
	pointer-events: none;
	line-height: 1;
}
body.woocommerce-cart .elementor-element-21689043 h1.elementor-heading-title,
body.woocommerce-cart .elementor-element-21689043 h2.elementor-heading-title {
	position: relative;
	font-size: clamp(2.2rem, 4.6vw, 3.4rem) !important;
	font-weight: 900 !important;
	text-transform: uppercase !important;
	letter-spacing: .02em !important;
	color: #fff !important;
}
/* breadcrumbs settle into mono */
body.woocommerce-cart .jet-breadcrumbs,
body.woocommerce-cart .jet-breadcrumbs * {
	font-family: 'DM Mono', monospace !important;
	font-size: .74rem !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--ccr-text-dim) !important;
}

/* ---------- cart area: items left, sticky totals right ---------- */
body.woocommerce-cart .elementor-element-697ac95a > .elementor-container {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 26px !important;
	align-items: start !important;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
}
body.woocommerce-cart .elementor-element-697ac95a .elementor-column {
	width: 100% !important;
	min-width: 0;
}
body.woocommerce-cart .elementor-element-697ac95a .elementor-element-2e921d33 {
	position: sticky;
	top: 110px;
	margin-top: 0 !important;
}
/* "Cart Items" heading quiets to a kicker-style label */
body.woocommerce-cart .elementor-element-697ac95a h2.elementor-heading-title,
body.woocommerce-cart .elementor-element-697ac95a h3.elementor-heading-title {
	font-family: 'DM Mono', monospace !important;
	font-size: .78rem !important;
	font-weight: 500 !important;
	letter-spacing: .2em !important;
	text-transform: uppercase !important;
	color: var(--ccr-blue) !important;
	margin-bottom: 14px !important;
}

/* ---------- items: the table dissolves into cards ---------- */
body.woocommerce-cart table.shop_table.cart,
body.woocommerce-cart table.shop_table.cart tbody {
	display: block !important;
	background: transparent !important;
	border: 0 !important;
}
html body.woocommerce-cart table.shop_table.cart tr.cart_item td,
html body.woocommerce-cart table.shop_table.cart tr.cart_item th,
html body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-name,
html body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail,
html body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-quantity,
html body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-subtotal,
html body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-remove {
	border: 0 !important;
	box-shadow: none !important;
	background-image: none !important;
}
body.woocommerce-cart table.shop_table.cart thead { display: none !important; }
body.woocommerce-cart table.shop_table.cart tbody { display: flex !important; flex-direction: column; gap: 14px; }
body.woocommerce-cart table.shop_table.cart tr { display: block; width: 100%; }
body.woocommerce-cart table.shop_table.cart tr td { display: block; }

@media (min-width: 768px) {
	body.woocommerce-cart table.shop_table.cart tr.cart_item {
		display: grid !important;
		grid-template-columns: 84px minmax(0, 1fr) 96px 108px 44px;
		align-items: center;
		gap: 16px;
		background: rgba(255, 255, 255, .035);
		border: 1px solid rgba(255, 255, 255, .08);
		border-radius: 16px;
		padding: 14px 16px;
		transition: border-color .2s ease, transform .2s ease;
	}
	body.woocommerce-cart table.shop_table.cart tr.cart_item:hover {
		border-color: rgba(56, 174, 232, .35);
	}
	body.woocommerce-cart table.shop_table.cart tr.cart_item td {
		display: block !important;
		background: transparent !important;
		border: 0 !important;
		padding: 0 !important;
	}
	/* single-line card: thumb · name+unit-price · qty · subtotal · remove */
	body.woocommerce-cart tr.cart_item td.product-thumbnail { grid-column: 1; grid-row: 1; }
	body.woocommerce-cart tr.cart_item td.product-name { grid-column: 2; grid-row: 1; }
	html body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-price { display: none !important; visibility: hidden; height: 0 !important; overflow: hidden; }
	body.woocommerce-cart tr.cart_item td.product-quantity { grid-column: 3; grid-row: 1; }
	body.woocommerce-cart tr.cart_item td.product-subtotal { grid-column: 4; grid-row: 1; text-align: right; }
	body.woocommerce-cart tr.cart_item td.product-remove { grid-column: 5; grid-row: 1; justify-self: end; }
}
body.woocommerce-cart td.product-thumbnail img {
	width: 84px !important;
	height: 84px !important;
	object-fit: cover;
	border-radius: 12px !important;
	border: 1px solid rgba(255, 255, 255, .08);
	background: #fff;
}
body.woocommerce-cart td.product-name,
body.woocommerce-cart td.product-name a {
	color: #eef2f8 !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	line-height: 1.45;
}
body.woocommerce-cart td.product-name a:hover { color: var(--ccr-blue) !important; }
body.woocommerce-cart td.product-subtotal .woocommerce-Price-amount {
	font-family: 'DM Mono', monospace !important;
	font-weight: 700;
	font-size: 1.05rem;
	color: #fff !important;
}
body.woocommerce-cart td.product-remove a.remove {
	width: 36px !important;
	height: 36px !important;
	line-height: 34px !important;
	border-radius: 10px !important;
	color: var(--ccr-text-dim) !important;
	background: rgba(255, 255, 255, .04) !important;
	border: 1px solid rgba(255, 255, 255, .1) !important;
	font-size: 1.15rem !important;
	text-align: center;
	transition: all .2s ease;
}
body.woocommerce-cart td.product-remove a.remove:hover {
	color: #fff !important;
	background: var(--ccr-accent) !important;
	border-color: var(--ccr-accent) !important;
}
body.woocommerce-cart .quantity .qty {
	background: rgba(255, 255, 255, .05) !important;
	border: 1px solid rgba(255, 255, 255, .16) !important;
	border-radius: 10px !important;
	color: #eef2f8 !important;
	padding: 10px 6px !important;
	font-family: 'DM Mono', monospace !important;
	width: 72px !important;
	text-align: center;
}
body.woocommerce-cart .quantity .qty:focus { border-color: rgba(56, 174, 232, .65) !important; outline: none !important; }

/* qty stepper: native spinners are unstylable — hide them, custom -/+ buttons take over */
body.woocommerce-cart .quantity input[type="number"]::-webkit-outer-spin-button,
body.woocommerce-cart .quantity input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0 !important; }
body.woocommerce-cart .quantity input[type="number"] { -moz-appearance: textfield !important; appearance: textfield !important; }
body.woocommerce-cart .sd-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 10px;
	overflow: hidden;
	background: rgba(255, 255, 255, .04);
}
body.woocommerce-cart .sd-qty:focus-within { border-color: rgba(56, 174, 232, .65); }
/* de-hammered (two-reds pass): sd-* is excluded from the slimmed global
   button rule in main.css, so ordinary selectors are enough now */
body.woocommerce-cart .sd-qty .sd-qty__btn {
	background: transparent !important;
	background-color: transparent !important;
	color: #dbe3f0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	width: 30px !important;
	min-height: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	cursor: pointer;
	transition: all .15s ease !important;
}
body.woocommerce-cart .sd-qty .sd-qty__btn:hover {
	color: var(--ccr-blue) !important;
	background: rgba(56, 174, 232, .08) !important;
	background-color: rgba(56, 174, 232, .08) !important;
}
html body.woocommerce-cart .sd-qty .qty,
html body.woocommerce-cart .sd-qty .qty:focus {
	border: 0 !important;
	background: transparent !important;
	width: 42px !important;
	min-height: 42px !important;
	margin: 0 !important;
	border-radius: 0 !important;
}


/* coupon / update row becomes a quiet toolbar under the cards */
html body.woocommerce-cart td.actions,
body.woocommerce-cart table.shop_table.cart td.actions {
	width: 100% !important;
	min-width: 100% !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: row !important;
	justify-content: flex-start !important;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	padding: 8px 0 0 !important;
}
body.woocommerce-cart td.actions .coupon {
	display: flex !important;
	gap: 10px;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
html body.woocommerce-cart td.actions .coupon .input-text {
	margin: 0 !important;
	float: none !important;
	position: static !important;
	background: rgba(255, 255, 255, .05) !important;
	border: 1px solid rgba(255, 255, 255, .16) !important;
	border-radius: 10px !important;
	color: #eef2f8 !important;
	padding: 11px 14px !important;
	width: 180px !important;
}
body.woocommerce-cart td.actions .coupon button,
body.woocommerce-cart table.shop_table td.actions > button,
body.woocommerce-cart td.actions button[name="update_cart"] {
	background: transparent !important;
	color: #dbe3f0 !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
	font-size: .78rem !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	padding: 11px 18px !important;
	transition: all .2s ease !important;
	cursor: pointer;
}
body.woocommerce-cart td.actions .coupon button:hover,
body.woocommerce-cart table.shop_table td.actions > button:hover,
body.woocommerce-cart td.actions button[name="update_cart"]:hover {
	border-color: var(--ccr-blue) !important;
	color: var(--ccr-blue) !important;
}
/* wpautop wraps the update button in a bare <p>; flatten it into the flex row */
body.woocommerce-cart td.actions > p { display: contents; }

/* legacy rule stretches .coupon full-width + centers it, forcing update-cart to wrap */
html body.woocommerce-cart table.shop_table td.actions .coupon {
	width: auto !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	justify-content: flex-start !important;
}

/* coupon/update buttons: ghost toolbar look (out-ranks the slimmed global rule) */
body.woocommerce-cart td.actions .coupon button,
body.woocommerce-cart table.shop_table td.actions > button {
	background: transparent !important;
	background-color: transparent !important;
	color: #dbe3f0 !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 10px !important;
}
body.woocommerce-cart td.actions .coupon button:hover,
body.woocommerce-cart table.shop_table td.actions > button:hover {
	background: transparent !important;
	background-color: transparent !important;
	border-color: var(--ccr-blue) !important;
	color: var(--ccr-blue) !important;
}
body.woocommerce-cart table.shop_table td.actions > button:disabled,
body.woocommerce-cart td.actions button[name="update_cart"]:disabled {
	opacity: .4 !important;
	color: #dbe3f0 !important;
	background: transparent !important;
	background-color: transparent !important;
}

/* remove link ships a Font Awesome <i> whose font no longer loads (Jet asset) —
   it renders as a tofu box next to our CSS "x"; kill the vestige */
body.woocommerce-cart .woocommerce-cart-form a.remove i { display: none !important; }

/* checkout CTA: full-width in the totals card (was inline-block hugging the right edge) */
html body.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: block !important;
	width: 100% !important;
	text-align: center !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* return-to-shop under the cards, ghost voice (checkout owns the red) */
html body.woocommerce-cart .elementor-widget-jet-cart-return-to-shop .elementor-widget-container a,
body.woocommerce-cart .elementor-widget-jet-cart-return-to-shop a {
	display: inline-block !important;
	background: transparent !important;
	color: #dbe3f0 !important;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
	font-size: .8rem !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	padding: 12px 24px !important;
	box-shadow: none !important;
	text-decoration: none !important;
	transition: all .22s ease !important;
	margin-top: 14px;
}
html body.woocommerce-cart .elementor-widget-jet-cart-return-to-shop .elementor-widget-container a:hover,
body.woocommerce-cart .elementor-widget-jet-cart-return-to-shop a:hover {
	border-color: var(--ccr-blue) !important;
	color: var(--ccr-blue) !important;
}

/* ---------- totals: the sticky command card ---------- */
body.woocommerce-cart .cart_totals {
	background: rgba(16, 26, 44, .78) !important;
	border: 1px solid rgba(255, 255, 255, .1) !important;
	border-radius: 18px !important;
	padding: 26px !important;
	box-shadow: 0 18px 60px rgba(0, 0, 0, .5);
	width: 100% !important;
	float: none !important;
}
body.woocommerce-cart .cart_totals h2 {
	font-size: 1rem !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: .12em !important;
	color: #fff !important;
	margin: 0 0 16px !important;
}
body.woocommerce-cart .cart_totals table.shop_table { background: transparent !important; border: 0 !important; margin: 0; }
body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
	color: var(--ccr-text-dim) !important;
	padding: 12px 4px !important;
	font-size: .92rem;
}
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td {
	border-bottom: 0 !important;
	color: #fff !important;
	font-weight: 800 !important;
	padding-top: 16px !important;
}
body.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount {
	font-family: 'DM Mono', monospace !important;
	font-size: 1.45rem !important;
	color: #fff !important;
}
body.woocommerce-cart .wc-proceed-to-checkout { padding: 14px 0 0 !important; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block !important;
	width: 100% !important;
	background: var(--ccr-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 12px !important;
	font-weight: 800 !important;
	font-size: 1rem !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	text-align: center;
	padding: 17px 20px !important;
	box-shadow: 0 10px 34px rgba(210, 64, 52, .4) !important;
	transition: all .22s ease !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--ccr-blue) !important;
	color: #fff !important;
	box-shadow: 0 16px 44px rgba(56, 174, 232, .5) !important;
	transform: translateY(-2px);
}

/* ---------- loadout module: dark cards at the journey's end ---------- */
body.woocommerce-cart .elementor-element-7c7966a {
	position: relative;
	margin: 0 0 clamp(28px, 4vw, 44px) !important;
	padding: 0 !important;
}
/* compact tiles: advertise without burying the cart */
body.woocommerce-cart .elementor-element-7c7966a .jet-woo-builder-archive-product-thumbnail img,
body.woocommerce-cart .elementor-element-7c7966a img {
	max-height: 110px !important;
	object-fit: contain !important;
}
body.woocommerce-cart .elementor-element-7c7966a h2.elementor-heading-title,
body.woocommerce-cart .elementor-element-7c7966a h3.elementor-heading-title {
	font-size: 1.05rem !important;
	margin-bottom: 10px !important;
}
body.woocommerce-cart .elementor-element-7c7966a .jet-listing-grid__item {
	background: rgba(16, 26, 44, .6);
	border: 1px solid rgba(255, 255, 255, .07);
	border-radius: 16px;
	overflow: hidden;
	transition: transform .22s ease, border-color .22s ease;
}
body.woocommerce-cart .elementor-element-7c7966a .jet-listing-grid__item:hover {
	transform: translateY(-4px);
	border-color: rgba(56, 174, 232, .4);
}
body.woocommerce-cart .elementor-element-7c7966a .jet-listing-grid__item .jet-listing-grid__item,
body.woocommerce-cart .elementor-element-7c7966a .jet-listing-grid__item .elementor-section,
body.woocommerce-cart .elementor-element-7c7966a .jet-listing-grid__item .elementor-widget-wrap,
body.woocommerce-cart .elementor-element-7c7966a .jet-listing-grid__item [class*="elementor-element"] {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
body.woocommerce-cart .jet-woo-builder-archive-product-title,
body.woocommerce-cart .jet-woo-builder-archive-product-title a { color: #eef2f8 !important; font-weight: 700 !important; text-decoration: none !important; }
body.woocommerce-cart .jet-woo-builder-archive-product-title a:hover { color: var(--ccr-blue) !important; }
body.woocommerce-cart .jet-woo-product-price { font-family: 'DM Mono', monospace !important; color: #fff !important; }

/* ---------- empty cart ---------- */
body.woocommerce-cart .elementor-jet-cart-empty-message { text-align: center !important; }
body.woocommerce-cart .elementor-jet-cart-empty-message .cart-empty::before,
body.woocommerce-cart .cart-empty i { display: none !important; }
body.woocommerce-cart .wc-empty-cart-message .cart-empty,
body.woocommerce-cart .woocommerce-info.cart-empty {
	background: transparent !important;
	border: 0 !important;
	color: #eef2f8 !important;
	font-size: clamp(1.4rem, 3vw, 2rem) !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: .02em !important;
	padding: 40px 0 10px !important;
}

/* ---------- woo notices in the dark voice (site-wide) ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error li,
.woocommerce-error {
	background: rgba(16, 26, 44, .92) !important;
	color: #eef2f8 !important;
	border-top-color: var(--ccr-blue) !important;
	border-radius: 0 0 12px 12px;
}
.woocommerce-message a,
.woocommerce-info a { color: var(--ccr-blue) !important; }
.woocommerce-error,
.woocommerce-error li { border-top-color: var(--ccr-accent) !important; }
.woocommerce-message::before { color: var(--ccr-blue) !important; }
.woocommerce-error::before,
.woocommerce-error li::before { color: var(--ccr-accent) !important; }

/* ---------- mobile ---------- */
@media (max-width: 991px) {
	body.woocommerce-cart .elementor-element-697ac95a > .elementor-container {
		grid-template-columns: 1fr;
	}
	body.woocommerce-cart .elementor-element-697ac95a .elementor-element-2e921d33 { position: static; }
}
@media (max-width: 767px) {
	body.woocommerce-cart table.shop_table_responsive tr.cart_item {
		display: block;
		position: relative;
		background: rgba(255, 255, 255, .035);
		border: 1px solid rgba(255, 255, 255, .08);
		border-radius: 14px;
		margin-bottom: 14px;
		padding: 10px;
	}
	body.woocommerce-cart table.shop_table.cart td {
		background: transparent !important;
		border: 0 !important;
	}
	/* mobile remove: clean dark square, no legacy red circle, no broken glyph */
	html body.woocommerce-cart tr.cart_item td.product-remove {
		position: absolute !important;
		top: 10px !important;
		right: 10px !important;
		width: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
	}
	html body.woocommerce-cart tr.cart_item td.product-remove::before,
	html body.woocommerce-cart tr.cart_item a.remove::before,
	html body.woocommerce-cart tr.cart_item a.remove i {
		display: none !important;
		content: none !important;
	}
	html body.woocommerce-cart tr.cart_item a.remove {
		display: inline-block !important;
		width: 34px !important;
		height: 34px !important;
		line-height: 32px !important;
		border-radius: 10px !important;
		color: var(--ccr-text-dim) !important;
		background: rgba(255, 255, 255, .06) !important;
		border: 1px solid rgba(255, 255, 255, .12) !important;
		font-size: 1.15rem !important;
		font-weight: 400 !important;
		text-align: center !important;
		text-indent: 0 !important;
		box-shadow: none !important;
	}
}


/* =============================================================================
   PRODUCT TILES (global) — the shared jet-woo listing card, redesigned in the
   finalist voice. Applies wherever product tiles render: cart loadout, shop
   archive, category pages, related products. (Kicks off the shop-card look.)
   ============================================================================= */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) {
	background: rgba(255, 255, 255, .03);
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 16px;
	overflow: hidden;
	transition: transform .22s ease, border-color .22s ease;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart):hover {
	transform: translateY(-4px);
	border-color: rgba(56, 174, 232, .4);
	z-index: 2; /* lift paints above neighbors */
}
/* the jet grid ships grid-collapse-gap — row spacing so the hover lift
   never overlaps the row above (Jake 2026-08-11). The listing is FLEX
   (items sized flex-basis: 100%/var(--columns)), so adding column-gap
   alone makes rows wrap one short — re-derive the item basis from jet's
   own --columns minus the gap share. One rule, every breakpoint. */
.jet-listing-grid__items:has(.jet-woo-builder-archive-add-to-cart) {
	row-gap: 18px !important;
	column-gap: 12px !important;
}
.jet-listing-grid__items:has(.jet-woo-builder-archive-add-to-cart) > .jet-listing-grid__item {
	flex-basis: calc(100% / var(--columns) - 12px * (var(--columns) - 1) / var(--columns)) !important;
	max-width: calc(100% / var(--columns) - 12px * (var(--columns) - 1) / var(--columns)) !important;
}
/* desktop runs 4-up (Jake 2026-08-11: 5-up made the photos too small) —
   override the --columns var; the basis rule above follows automatically.
   !important: the Elementor template CSS (post-39372) sets --columns:5 at
   (0,4,0) widget-scope specificity. Media-scoped so tablet-2/mobile-1 keep
   their own counts. */
@media (min-width: 1025px) {
	.jet-listing-grid__items.grid-col-desk-5:has(.jet-woo-builder-archive-add-to-cart) { --columns: 4 !important; }
}
/* one paint layer: inner template sections go transparent */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-section,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-wrap,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-column {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
/* product photo: white framed tile, inset from the card edge. 5:4 frame —
   the original square was ~half the card height and product shots are almost
   all wider than tall, so the cap trims pure white letterbox (Jake 2026-08-11:
   tiles too tall) */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-image img,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-thumbnail img {
	background: #fff;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, .06);
	object-fit: contain;
	width: 100%;
	/* !important: the listing template's Elementor CSS (post-39820,
	   .elementor-element-94a81a8 img) pins height:240px */
	height: auto !important;
	aspect-ratio: 5 / 4 !important;
}
/* title */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-text,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-text a,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-title,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-title a {
	color: #eef2f8 !important;
	font-weight: 700 !important;
	font-size: .95rem !important;
	line-height: 1.32 !important;
	text-decoration: none !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-text a:hover,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-title a:hover {
	color: var(--ccr-blue) !important;
}
/* "Online Inventory" / "In Store" chip: quiet mono badge, not a red alarm.
   (Plain declarations — the loop markup is ours now, class-only, via
   inc/catalog-labels.php; the labeler's inline styles no longer reach it.) */
.jet-listing-grid__item span.bcm-loop-prefix {
	display: inline-block;
	background: transparent;
	border: 1px solid rgba(56, 174, 232, .45);
	color: var(--ccr-blue);
	font-family: 'DM Mono', monospace;
	font-size: .6rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 99px;
	margin-top: 4px;
	white-space: nowrap;
}
/* price in the mono voice */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-product-price,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price .woocommerce-Price-amount {
	font-family: 'DM Mono', monospace !important;
	color: #fff !important;
	font-size: 1.02rem !important;
	font-weight: 700 !important;
}
/* stock status: mono caps, keep the state colors. One line ALWAYS — the
   longest state ("Only 4 left in stock") was wrapping, which gave Only-X and
   out-of-stock cards extra height that In-stock cards didn't have. Tighter
   tracking + full-width widget (the template pins it narrower) make it fit. */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-stock-status,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-stock-status *,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-stock-status,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-stock-status * {
	font-family: 'DM Mono', monospace !important;
	font-size: .68rem !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	white-space: nowrap !important;
	/* explicit line box: an inherited sub-1 line-height + any overflow clip
	   was slicing the glyphs horizontally mid-height */
	line-height: 1.5 !important;
	height: auto !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-stock-status {
	width: 100% !important;
	max-width: 100% !important;
	overflow: visible;
	height: auto !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-stock-status p.stock,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-stock-status p.stock { margin: 0 !important; }
/* add to cart: the family red */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .add_to_cart_button,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-jet-woo-builder-archive-add-to-cart .button {
	background: var(--ccr-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-weight: 800 !important;
	font-size: .78rem !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	padding: 11px 12px !important;
	box-shadow: none !important;
	transition: all .2s ease !important;
	white-space: nowrap !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .add_to_cart_button:hover {
	background: var(--ccr-blue) !important;
	color: #fff !important;
	transform: translateY(-2px);
}
/* desktop: sale badge + wishlist/compare circles read oversized in the
   4-up grid (Jake 2026-08-12) — compact them */
@media (min-width: 768px) {
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-product-badge {
		font-size: .68rem !important;
		padding: 4px 8px !important;
		margin: 10px 0 0 10px !important;
		border-radius: 6px !important;
	}
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-wishlist-button__link,
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-compare-button__link {
		width: 38px !important;
		height: 38px !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
	}
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-wishlist-button__link svg,
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-compare-button__link svg {
		width: 17px !important;
		height: 17px !important;
	}
}

/* wishlist / compare affordances: quiet ghost circles */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-wishlist-button__link,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-compare-button__link {
	background: rgba(10, 15, 28, .75) !important;
	border: 1px solid rgba(255, 255, 255, .15) !important;
	color: #dbe3f0 !important;
	border-radius: 99px !important;
	transition: all .2s ease !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-wishlist-button__link:hover,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-compare-button__link:hover {
	border-color: var(--ccr-blue) !important;
	color: var(--ccr-blue) !important;
}


/* desktop: the template pins the image WIDGET to ~80% width — let the photo
   fill the tile (Jake 2026-08-11: images too small on desktop; mobile is
   sized separately and stays as-is) */
@media (min-width: 768px) {
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-image,
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-product-thumbnail {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* every content widget spans the full card width, text flush left with the
   image edge — the template centered ~80%-wide widgets, which read as random
   mid-card alignment and wasted fitting room (Jake 2026-08-11). The absolute
   overlays (wishlist/compare circles, sale badge) keep their own geometry. */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-wrap > .elementor-widget:not(.elementor-widget-jet-wishlist-button):not(.elementor-widget-jet-compare-button):not(.elementor-widget-jet-woo-builder-archive-sale-badge) {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	text-align: left;
}

/* ---------- tile internals normalized: fixed slots, ledger alignment ---------- */
.jet-listing-grid__items { align-items: stretch; }
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) { height: 100%; display: flex; flex-direction: column; }
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) > div { display: flex; flex-direction: column; flex: 1; }
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-wrap {
	display: flex !important;
	flex-direction: column;
	flex: 1;
}
/* title: three-line slot, clamped (slot height follows the 1.32 line-height;
   the 3-line clamp itself stays — DB-backed, 54% of titles need it).
   The loop markup is class-only now (inc/catalog-labels.php) — no inline
   styles to fight. */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-text {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 3.96em;
}
/* chip line: constant height whether or not a chip renders */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-wrap { min-height: 1.5em; }
/* price + stock: single fixed lines */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-product-price { min-height: 1.75em; margin-top: 2px !important; }
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-stock-status { min-height: 1.4em; }
/* button pinned to the card floor */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-add-to-cart {
	margin-top: auto !important;
	padding-top: 8px;
}


/* sale prices: Woo renders <del>old</del> <ins>new</ins>, which was wrapping
   to two lines and making sale tiles taller than the row. One fixed line:
   old price small/dim inline, sale price keeps the mono voice (the SALE
   badge widget already flags the deal). When a del is present BOTH prices
   size down so the pair fits the tile instead of clipping at its edge. */
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-product-price {
	width: 100% !important;
	max-width: 100% !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-product-price,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price {
	white-space: nowrap;
	overflow: hidden;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price:has(del) .woocommerce-Price-amount {
	font-size: .85rem !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price del,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price del .woocommerce-Price-amount,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price del .woocommerce-Price-currencySymbol {
	display: inline !important;
	font-size: .72rem !important;
	color: #9aa7bd !important;
	font-weight: 500 !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price ins,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price ins .woocommerce-Price-amount,
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price ins .woocommerce-Price-currencySymbol {
	text-decoration: none !important;
	color: #fff !important;
}
.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-price ins { margin-left: 4px; }

/* mobile: single-column grid — no cross-card alignment to preserve, so the
   fixed slots collapse and the card hugs its content (Jake 2026-08-11: too
   much dead space). Flatter image, tighter widget gaps and inset. */
@media (max-width: 767px) {
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-text { min-height: 0; }
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .bcm-loop-title-wrap { min-height: 0; }
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-product-price { min-height: 0; }
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-stock-status { min-height: 0; }
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-image img,
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .jet-woo-builder-archive-product-thumbnail img {
		aspect-ratio: 16 / 10 !important;
	}
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget:not(:last-child) { margin-bottom: 8px !important; }
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-section { padding: 14px 16px !important; }
	/* breathing room around the title — the collapse round left it sitting
	   directly on the photo (Jake 2026-08-11 mobile screenshots) */
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-shortcode,
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-product-title {
		margin-top: 10px !important;
	}
	.jet-listing-grid__item:has(.jet-woo-builder-archive-add-to-cart) .elementor-widget-jet-woo-builder-archive-add-to-cart {
		margin-top: 10px !important;
		padding-top: 0;
	}
}


/* the DM Mono dollar sign is too spindly — solid DM Sans symbol, mono digits
   (applies everywhere prices went mono: tiles, cart rows, totals) */
.jet-listing-grid__item .woocommerce-Price-currencySymbol,
body.woocommerce-cart .woocommerce-Price-currencySymbol,
.cart_totals .woocommerce-Price-currencySymbol {
	font-family: 'DM Sans', sans-serif !important;
	font-weight: 800 !important;
	font-size: .9em;
	margin-right: 1px;
}


/* add-to-cart AJAX feedback: spinner rides inside the button, right edge */
.jet-listing-grid__item .add_to_cart_button { position: relative !important; }
.jet-listing-grid__item .add_to_cart_button.loading { opacity: .75; }
.jet-listing-grid__item .add_to_cart_button.loading::after {
	position: absolute !important;
	top: 50% !important;
	right: 10px !important;
	left: auto !important;
	bottom: auto !important;
	margin: -.5em 0 0 !important;
}
.jet-listing-grid__item .add_to_cart_button.added::after {
	position: absolute !important;
	top: 50% !important;
	right: 10px !important;
	left: auto !important;
	margin: -.5em 0 0 !important;
}
/* the "View cart" link that appears after adding: quiet blue, centered */
.jet-listing-grid__item .added_to_cart.wc-forward {
	display: block !important;
	text-align: center;
	color: var(--ccr-blue) !important;
	font-size: .78rem !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	margin-top: 8px;
}

/* =============================================================================
   SHOP PASS (Phase 4b #2) — native filter sidebar + toolbar + pagination over
   the JetEngine grid. JSF retired: markup comes from inc/shop-filters.php
   ([sd_shop_filters] / [sd_shop_toolbar] / [sd_shop_pagination] on the Shop
   template 39372, shared by category archives). Tiles already carry the global
   card system from the cart pass. Calm register: flat fills, no motion.
   ============================================================================= */

body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
	background: radial-gradient(ellipse 130% 70% at 50% -5%, #101a2c 0%, #05070d 55%) #05070d !important;
}

/* ---------- layout: the filters+grid section becomes a real 2-col grid ---------- */
@media (min-width: 1025px) {
	.elementor-element-188223b5 > .elementor-container {
		display: grid !important;
		grid-template-columns: 330px minmax(0, 1fr);
		gap: 28px;
		align-items: start;
		max-width: 1440px;
		margin: 0 auto;
		padding: 0 20px;
	}
	.elementor-element-188223b5 > .elementor-container > .elementor-column {
		width: 100% !important;
		min-width: 0;
	}
}
@media (max-width: 1024px) {
	/* mobile stack order: DOM puts the sidebar column first, which rendered
	   FILTERS above the SHOP heading (Jake: "doesn't make sense"). Flatten
	   the structural wrappers and order the pieces: title/sort toolbar →
	   filters → grid → pagination. */
	.elementor-element-188223b5 > .elementor-container {
		padding: 0 14px;
		display: flex;
		flex-direction: column;
	}
	.elementor-element-188223b5 > .elementor-container > .elementor-column,
	.elementor-element-188223b5 > .elementor-container > .elementor-column > .elementor-widget-wrap,
	.elementor-element-188223b5 .elementor-element-25db2a8,
	.elementor-element-188223b5 .elementor-element-25db2a8 > .elementor-container,
	.elementor-element-188223b5 .elementor-element-fcb048d,
	.elementor-element-188223b5 .elementor-element-fcb048d > .elementor-widget-wrap {
		display: contents;
	}
	/* the toolbar chain flattens too so its chips can slot BELOW the filter
	   control (Jake 2026-08-12): title/sort → filters → chips → grid */
	.elementor-element-188223b5 .elementor-element-d5fd7a3,
	.elementor-element-188223b5 .elementor-element-d5fd7a3 > .elementor-container,
	.elementor-element-188223b5 .elementor-element-d5fd7a3 .elementor-column,
	.elementor-element-188223b5 .elementor-element-d5fd7a3 .elementor-widget-wrap,
	.elementor-element-188223b5 .elementor-element-sdf10002,
	.elementor-element-188223b5 .elementor-element-sdf10002 .elementor-widget-container,
	.elementor-element-188223b5 .elementor-element-sdf10002 .elementor-shortcode,
	.elementor-element-188223b5 .sd-shopt {
		display: contents;
	}
	.elementor-element-188223b5 .sd-shopt__row { order: 1; margin-bottom: 14px; }
	.elementor-element-188223b5 .elementor-element-sdf10001 { order: 2; }
	.elementor-element-188223b5 .sd-shopt__chips { order: 3; margin: 0 0 6px; }
	.elementor-element-188223b5 .elementor-element-125f429 { order: 4; }
	.elementor-element-188223b5 .elementor-element-sdf10003 { order: 5; }
}

/* ---------- sidebar shell ---------- */
.sd-shopf { font-family: 'DM Sans', sans-serif; }
.sd-shopf__shell {
	background: rgba(255, 255, 255, .035);
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 16px;
}
.sd-shopf__mtoggle {
	display: none; /* desktop: shell always open, toggle hidden */
	list-style: none;
	cursor: pointer;
	padding: 14px 18px;
	font-family: 'DM Mono', monospace;
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #eef2f8;
}
.sd-shopf__mtoggle::-webkit-details-marker { display: none; }
.sd-shopf__mcount {
	display: inline-block;
	min-width: 20px;
	padding: 1px 6px;
	margin-left: 8px;
	border-radius: 999px;
	background: var(--ccr-accent);
	color: #fff;
	font-size: .7rem;
	text-align: center;
}
.sd-shopf__body { padding: 18px; }
.sd-shopf__kicker {
	font-family: 'DM Mono', monospace;
	font-size: .74rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ccr-blue);
	margin: 0 0 12px;
}
@media (max-width: 1024px) {
	.sd-shopf { margin-bottom: 18px; }
	.sd-shopf__mtoggle { display: flex; align-items: center; }
	.sd-shopf__mtoggle::after {
		content: "";
		margin-left: auto;
		border: solid #9aa7bd;
		border-width: 0 2px 2px 0;
		padding: 3.5px;
		transform: rotate(45deg);
		transition: transform .2s ease;
	}
	.sd-shopf__shell[open] > .sd-shopf__mtoggle::after { transform: rotate(-135deg); }
	.sd-shopf__body { padding-top: 4px; }
	.sd-shopf__kicker { display: none; }
}

/* ---------- keyword search ---------- */
.sd-shopf__search {
	display: flex;
	gap: 8px;
	margin-bottom: 14px;
}
.sd-shopf__search input[type="search"] {
	flex: 1;
	min-width: 0;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 10px;
	color: #eef2f8;
	padding: 10px 12px;
	font-size: .88rem;
}
.sd-shopf__search input[type="search"]::placeholder { color: #9aa7bd; }
.sd-shopf__search input[type="search"]:focus {
	border-color: rgba(56, 174, 232, .65);
	outline: none;
}
.sd-shopf .sd-shopf__search button {
	background: var(--ccr-accent);
	color: #fff;
	border: 0;
	border-radius: 10px;
	width: 42px;
	flex: none;
	/* the KIT button rule injects padding:15px 35px — restate the box so the
	   arrow centers in the fixed 42px square */
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	font-size: 1rem;
	cursor: pointer;
	transition: background .2s ease;
}
.sd-shopf .sd-shopf__search button:hover { background: var(--ccr-blue); color: #fff; border-radius: 10px; }

/* ---------- collapsible sections ---------- */
.sd-shopf__sec { border-top: 1px solid rgba(255, 255, 255, .07); }
.sd-shopf__sec > summary {
	display: flex;
	align-items: center;
	list-style: none;
	cursor: pointer;
	padding: 12px 2px;
	font-family: 'DM Mono', monospace;
	font-size: .76rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #dbe3f0;
	user-select: none;
}
.sd-shopf__sec > summary::-webkit-details-marker { display: none; }
.sd-shopf__sec > summary::after {
	content: "";
	margin-left: auto;
	border: solid #9aa7bd;
	border-width: 0 2px 2px 0;
	padding: 3px;
	transform: rotate(45deg);
	transition: transform .2s ease;
}
.sd-shopf__sec[open] > summary::after { transform: rotate(-135deg); }
.sd-shopf__sec > summary:hover { color: var(--ccr-blue); }
.sd-shopf__badge {
	display: inline-block;
	min-width: 18px;
	padding: 0 5px;
	margin-left: 8px;
	border-radius: 999px;
	background: var(--ccr-accent);
	color: #fff;
	font-size: .68rem;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0;
}
.sd-shopf__opts { padding: 2px 2px 12px; }
/* the list scrolls; the minisearch above it stays pinned */
.sd-shopf__list {
	max-height: 280px;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .18) transparent;
}
.sd-shopf__opt {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 5px 2px;
	cursor: pointer;
	border-radius: 8px;
}
.sd-shopf__opt:hover { background: rgba(56, 174, 232, .07); }
.sd-shopf__opt input[type="checkbox"] {
	accent-color: var(--ccr-accent);
	width: 15px;
	height: 15px;
	flex: none;
	cursor: pointer;
}
.sd-shopf__opt-name {
	flex: 1;
	min-width: 0;
	font-size: .86rem;
	color: #dbe3f0;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.sd-shopf__opt-count {
	font-family: 'DM Mono', monospace;
	font-size: .7rem;
	color: #9aa7bd;
}
/* sd button rules ride at (0,2,0)+: the Elementor KIT's own stylesheet paints
   every `.elementor-kit-39208 button` with the kit accent (#a51f1c — a THIRD
   red, not in our CSS at all) at (0,1,1). Single-class component selectors
   lose to it; scoping under .sd-shopf out-ranks it without !important. */
.sd-shopf .sd-shopf__more,
.sd-shopf .sd-shopf__apply {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 8px 10px;
	background: transparent;
	border: 1px dashed rgba(56, 174, 232, .4);
	border-radius: 10px;
	color: var(--ccr-blue);
	font-family: 'DM Mono', monospace;
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: all .2s ease;
}
/* hover redeclares radius+color: the KIT's button:hover (0,2,1) forces
   border-radius:0 + its own colors onto anything our hover doesn't restate */
.sd-shopf .sd-shopf__more:hover {
	border-style: solid;
	background: rgba(56, 174, 232, .08);
	border-radius: 10px;
	color: var(--ccr-blue);
}
.sd-shopf__minisearch {
	width: 100%;
	margin-bottom: 8px;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 8px;
	color: #eef2f8;
	padding: 7px 10px;
	font-size: .82rem;
}
.sd-shopf__minisearch:focus { border-color: rgba(56, 174, 232, .65); outline: none; }
.sd-shopf__empty {
	color: #9aa7bd;
	font-size: .8rem;
	margin: 6px 2px;
}

/* ---------- comboboxes ---------- */
/* the combo section must not clip its dropdown (opts default to overflow:auto) */
.sd-shopf__sec--combo .sd-shopf__opts { overflow: visible; max-height: none; }
.sd-shopf__combo { position: relative; margin-bottom: 8px; }
.sd-shopf__combo input[type="text"] {
	width: 100%;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 10px;
	color: #eef2f8;
	padding: 9px 12px;
	font-size: .86rem;
}
.sd-shopf__combo input[type="text"]::placeholder { color: #9aa7bd; }
.sd-shopf__combo input[type="text"]:focus { border-color: rgba(56, 174, 232, .65); outline: none; }
.sd-shopf__combo[data-disabled] input[type="text"] { opacity: .45; }
.sd-shopf__combo-list {
	position: absolute;
	z-index: 40;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	max-height: 280px;
	overflow-y: auto;
	background: var(--ccr-card-bg);
	border: 1px solid var(--ccr-card-border);
	border-radius: 12px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .5);
	scrollbar-width: thin;
}
.sd-shopf .sd-shopf__combo-list button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	background: transparent;
	border: 0;
	color: #dbe3f0;
	text-align: left;
	padding: 8px 12px;
	font-size: .84rem;
	cursor: pointer;
}
.sd-shopf .sd-shopf__combo-list button:hover { background: rgba(56, 174, 232, .1); color: #fff; }
.sd-shopf .sd-shopf__combo-list button i {
	font-style: normal;
	font-family: 'DM Mono', monospace;
	font-size: .68rem;
	color: #9aa7bd;
}

/* ---------- toolbar ---------- */
.sd-shopt { margin-bottom: 16px; }
.sd-shopt__row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.sd-shopt__kicker {
	display: block;
	font-family: 'DM Mono', monospace;
	font-size: .74rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ccr-blue);
	margin-bottom: 4px;
}
.sd-shopt__title h2 {
	display: inline-block;
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: #fff;
	margin: 0;
	line-height: 1.1;
}
.sd-shopt__results {
	display: inline-block;
	margin-left: 12px;
	font-family: 'DM Mono', monospace;
	font-size: .74rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #9aa7bd;
}
.sd-shopt__sort select {
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 10px;
	color: #eef2f8;
	padding: 9px 34px 9px 12px;
	font-size: .84rem;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239aa7bd' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}
.sd-shopt__sort select:focus { border-color: rgba(56, 174, 232, .65); outline: none; }
.sd-shopt__sort option { background: #101a2c; color: #eef2f8; }

/* ---------- active chips ---------- */
.sd-shopt__chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
}
.sd-shopt__chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 4px 11px;
	border: 1px solid rgba(56, 174, 232, .4);
	border-radius: 999px;
	color: #9fd8f5;
	font-family: 'DM Mono', monospace;
	font-size: .72rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	transition: all .2s ease;
}
.sd-shopt__chip span { color: #9aa7bd; font-size: .85rem; line-height: 1; }
.sd-shopt__chip:hover {
	border-color: var(--ccr-accent);
	color: #fff;
}
.sd-shopt__chip:hover span { color: var(--ccr-accent); }
.sd-shopt__clear {
	font-family: 'DM Mono', monospace;
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ccr-accent);
	text-decoration: none;
}
.sd-shopt__clear:hover { color: var(--ccr-accent-hover); text-decoration: underline; }

/* ---------- back to top (mobile only): glass circle, chevron SVG ----------
   body button.sd-backtop = (0,1,2): the KIT's `button` rule at (0,1,1) forces
   border-radius:0 / padding:15px 35px / its red background onto any weaker
   selector (the runbook rule applies to OUR buttons too) */
body button.sd-backtop {
	display: none;
	position: fixed;
	right: 16px;
	bottom: 18px;
	z-index: 90;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background: rgba(13, 20, 36, .72);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(56, 174, 232, .5);
	color: #9fd8f5;
	padding: 0;
	background-color: rgba(13, 20, 36, .72);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transform: translateY(10px) scale(.9);
	transition: opacity .25s ease, transform .25s ease, border-color .2s ease, color .2s ease;
}
@media (max-width: 1024px) {
	body button.sd-backtop { display: flex; align-items: center; justify-content: center; }
}
body button.sd-backtop.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: none;
}
/* tap leaves :focus stuck on mobile and the KIT's button:focus (0,2,1)
   re-squares it — restate the face on every interactive state */
body button.sd-backtop:hover,
body button.sd-backtop:focus,
body button.sd-backtop:active {
	border-radius: 999px;
	padding: 0;
	background: rgba(13, 20, 36, .8);
	background-color: rgba(13, 20, 36, .8);
	border-color: var(--ccr-blue);
	color: #fff;
	outline: none;
}
body button.sd-backtop:active {
	transform: scale(.9);
}

/* ---------- pagination ---------- */
.sd-shopp {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 26px 0 8px;
	font-family: 'DM Mono', monospace;
}
.sd-shopp__pages { display: inline-flex; gap: 8px; }
.sd-shopp__link,
.sd-shopp__num {
	display: inline-block;
	padding: 7px 13px;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 10px;
	color: #dbe3f0;
	font-size: .8rem;
	text-decoration: none;
	transition: all .2s ease;
}
.sd-shopp__link:hover,
.sd-shopp__num:hover {
	border-color: rgba(56, 174, 232, .55);
	color: var(--ccr-blue);
}
.sd-shopp__num.is-current {
	background: var(--ccr-accent);
	border-color: var(--ccr-accent);
	color: #fff;
}
.sd-shopp__gap { color: #9aa7bd; align-self: center; }
