/* /Features/AboutUs.razor.rz.scp.css */
.about-hero [slot="media"][b-tgqaj8lxyr] {
    block-size: clamp(16rem, 34vw, 24rem);
    object-fit: cover;
}

.about-metrics[b-tgqaj8lxyr] {
    --min-column-size: 30ch;
    text-align: center;
}

.about-metrics .wa-heading-xl[b-tgqaj8lxyr] {
    color: var(--wa-color-brand-on-normal);
}

.about-pillars[b-tgqaj8lxyr] {
    --min-column-size: 30ch;
}

.about-pillar wa-icon[b-tgqaj8lxyr] {
    color: var(--wa-color-brand-on-normal);
    font-size: var(--wa-font-size-xl);
}

.about-values[b-tgqaj8lxyr] {
    color: var(--wa-color-neutral-on-loud);
}

.about-values wa-callout[b-tgqaj8lxyr] {
    color: var(--wa-color-neutral-on-loud);
}
/* /Features/Carts/Items/List.razor.rz.scp.css */
.htmx-request wa-number-input[b-qu3d3tbs95] {
	pointer-events: none;
}
/* /Features/Catalog/CatalogFacetFilters.razor.rz.scp.css */
/* Web Awesome's flank utility allows the flank child to grow; keep the desktop
   filter column locked to the page's --flank-size so long facet values wrap
   instead of widening the sidebar. */
.cj-plp-filter-sidebar.cj-plp-filter-sidebar[b-f2ts8qhxye] {
	inline-size: var(--flank-size, 14rem);
	max-inline-size: var(--flank-size, 14rem);
	flex-basis: var(--flank-size, 14rem);
}

/* Checkbox labels live inside the Web Awesome shadow DOM, so we need parts to
   make long facet values wrap within the fixed desktop sidebar width. */
.cj-plp-filter-sidebar wa-checkbox[b-f2ts8qhxye] {
	inline-size: 100%;
}

.cj-plp-filter-sidebar wa-checkbox[b-f2ts8qhxye]::part(base) {
	align-items: center;
	inline-size: 100%;
}

.cj-plp-filter-sidebar wa-checkbox[b-f2ts8qhxye]::part(label) {
	white-space: normal;
	overflow-wrap: anywhere;
}

.cj-facet-filter-skeleton-panel[b-f2ts8qhxye] {
	inline-size: 100%;
	block-size: 100px;
}

/* The wa-details summary slot now contains both text and a badge. Keep those
   pieces aligned with Web Awesome spacing while still letting the summary
   shrink inside the fixed desktop sidebar and mobile filter rail. */
.cj-facet-filter-summary[b-f2ts8qhxye] {
	display: inline-flex;
	align-items: center;
	gap: var(--wa-space-2xs);
}

/* Long facet names should wrap before they force the details header wider than
   the 14rem desktop sidebar or mobile viewport-constrained filter chip. */
.cj-facet-filter-summary__label[b-f2ts8qhxye] {
	overflow-wrap: anywhere;
}

/* Desktop keeps the old stacked sidebar behavior: row wrappers and details fill
   the 14rem flank. Mobile overrides this below for the horizontal rail. */
.cj-facet-filter-rail[b-f2ts8qhxye],
.cj-facet-filter-row[b-f2ts8qhxye],
.cj-facet-filter-group[b-f2ts8qhxye] {
	inline-size: 100%;
}

@media (max-width: 768px) {
	/* The mobile rail must stay inside the page gutter while its contents can
	   scroll horizontally; Web Awesome scroller does not infer that gutter. */
	.cj-facet-filter-scroller[b-f2ts8qhxye] {
		max-inline-size: calc(100vw - (var(--cj-main-inline-padding, 16px) * 2));
	}

	/* The rail width comes from its two rows of facets, which gives wa-scroller
	   real overflow content instead of stretching every item to the viewport. */
	.cj-facet-filter-rail[b-f2ts8qhxye] {
		min-inline-size: max-content;
	}

	/* Markup stays a wa-stack on desktop, then becomes two horizontal rows only
	   on mobile. Web Awesome does not provide responsive direction utilities. */
	.cj-facet-filter-row[b-f2ts8qhxye] {
		flex-direction: row;
	}

	.cj-facet-filter-skeleton-chip[b-f2ts8qhxye] {
		inline-size: clamp(7rem, 34vw, 10rem);
		block-size: 2.75rem;
		flex: 0 0 auto;
	}

	/* Mobile filter chips should size to their summary text and use Web
	   Awesome's compact details spacing; opened panels cap at the viewport. */
	.cj-facet-filter-group[b-f2ts8qhxye] {
		--spacing: var(--wa-space-xs);

		inline-size: max-content;
		max-inline-size: calc(100vw - (var(--cj-main-inline-padding, 16px) * 2));
		flex: 0 0 auto;
	}

	.cj-facet-filter-group[open][b-f2ts8qhxye] {
		inline-size: min(14rem, calc(100vw - (var(--cj-main-inline-padding, 16px) * 2)));
	}

	/* Once the flank layout stacks on mobile, the filter area should span the
	   content column instead of retaining the fixed desktop sidebar width. */
	.cj-plp-filter-sidebar.cj-plp-filter-sidebar[b-f2ts8qhxye] {
		inline-size: 100%;
		max-inline-size: 100%;
		flex: 0 1 auto;
	}
}
/* /Features/Catalog/CatalogSearch.razor.rz.scp.css */
.catalog-search[b-vs17pkbxt5] {
    position:relative;
    overflow:visible;
}

[b-vs17pkbxt5] .catalog-search-options {
    background-color: var(--wa-color-surface-default);
    border: 1px solid var(--wa-form-control-border-color);
    border-radius: var(--wa-border-radius-m);
    box-shadow: var(--wa-shadow-l);
}

.catalog-search-options-container[b-vs17pkbxt5] {
    position:absolute;
    left:0; right:0;
    z-index: 2147483647;
    overflow: hidden;
}

.catalog-search[b-vs17pkbxt5]::part(input)
{
    border-color: var(--wa-color-on-quiet);
}

wa-input[b-vs17pkbxt5]::part(base)
{
    border-color: var(--wa-color-on-quiet);
}

wa-icon[b-vs17pkbxt5]
{
    color: var(--wa-color-on-quiet);
}
/* /Features/Catalog/FeaturedCategoriesSection.razor.rz.scp.css */
.category-section-heading[b-7t9rorgwsh] {
	text-shadow:
			0 1px 2px rgb(0 0 0 / 0.9),
			0 4px 12px rgb(0 0 0 / 0.55);
	color: var(--wa-color-neutral-fill-quiet);
}
/* /Features/Catalog/List.razor.rz.scp.css */
/* Keep the HTMX loading wrapper from becoming a separate flex item; the child
   sidebar owns the PLP flank/mobile layout before the outerHTML swap. */
#facet-filter-sidebar[b-x6cjjfvhrf] {
	display: contents;
}

@media (max-width: 768px) {
	/* wa-flank preserves the desktop sidebar layout, but the mobile PLP needs
	   filters above results instead of a wrapped flank column beside them. */
	.cj-plp-layout[b-x6cjjfvhrf] {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}
}
/* /Features/Catalog/Products/DetailImageCarousel.razor.rz.scp.css */
.carousel-thumbnails[b-p8t0tuzd8d] {
	--slide-aspect-ratio: 3 / 2;
	--aspect-ratio: 1 / 1;
}

wa-carousel-item[b-p8t0tuzd8d] {
	position: relative;
}

.thumbnails[b-p8t0tuzd8d] {
	display: flex;
	justify-content: center;
}

.scroller[b-p8t0tuzd8d] {
	display: flex;
	gap: var(--wa-space-s);
	overflow-x: auto;
	scrollbar-width: none;
	scroll-behavior: smooth;
	scroll-padding: var(--wa-space-s);
}

.scroller[b-p8t0tuzd8d]::-webkit-scrollbar {
	display: none;
}

.image[b-p8t0tuzd8d] {
	width: 64px;
	height: 64px;
	object-fit: cover;
	opacity: 0.3;
	will-change: opacity;
	transition: 250ms opacity;
	cursor: pointer;
}

.image.active[b-p8t0tuzd8d] {
	opacity: 1;
}
/* /Features/Catalog/Products/DetailPreview.razor.rz.scp.css */
.detail-preview-readonly[b-rv2uxs6rna] {
    border: 0;
    margin: 0;
    min-inline-size: 0;
    padding: 0;
}
/* /Features/Catalog/Products/ProductImageZoomButton.razor.rz.scp.css */
.product-image-zoom-button[b-0dvr3ekccc] {
  position: absolute;
  right: var(--wa-space-s);
  bottom: var(--wa-space-s);
  z-index: 1;
}

.product-image-zoom-button > wa-button[b-0dvr3ekccc] {
  width: 3rem;
  height: 3rem;
}
/* /Features/Catalog/Products/ProductPartsSection.razor.rz.scp.css */
.parts-diagram-figure[b-vbsveavby7] {
  position: relative;
  display: flex;
  justify-content: center;
  inline-size: 100%;
  overflow: hidden;
}

.parts-diagram-image[b-vbsveavby7] {
  max-block-size: 100%;
  object-fit: contain;
}
/* /Features/Catalog/Products/ProductPurchasePanel.razor.rz.scp.css */
.product-variant-option-incompatible[b-a1vpc75lw9] {
	opacity: 0.55;
}

#product-purchase-panel.htmx-request .product-variant-options wa-radio[b-a1vpc75lw9] {
	opacity: 0.65;
	pointer-events: none;
}

#product-purchase-panel.htmx-request[b-a1vpc75lw9]  form {
	opacity: 0.65;
	pointer-events: none;
}
/* /Features/Catalog/Shared/CategoryCard.razor.rz.scp.css */
wa-card[b-shaub3npas]::part(body) {
	color: var(--wa-color-brand);
	text-transform: uppercase;
}

.category-heading[b-shaub3npas] {
	display: flex; 
	border-left: 5px solid var(--wa-color-warning); 
	padding-left: .5rem;
}
/* /Features/Catalog/Shared/CategoryHorizontalCard.razor.rz.scp.css */
a[b-r29gbiumw4] {
	max-width: 400px;
	width: 100%;
}

wa-card[b-r29gbiumw4]::part(body) {
	color: var(--wa-color-brand);
	text-transform: uppercase;
}

wa-card[b-r29gbiumw4]::part(media)
{
	max-width: 50px;
	object-fit: cover;
	object-position: center;
}

.category-heading[b-r29gbiumw4] {
	display: flex;
	border-left: 5px solid var(--wa-color-warning);
	padding-left: .5rem;
}
/* /Features/Catalog/Shared/ProductCard.razor.rz.scp.css */
wa-card[b-0tpbldtrxe]::part(footer)
{
	padding-top: 0;
	border-top: 0;
}
/* /Features/Checkout/Checkout.razor.rz.scp.css */
.checkout-container[b-h1u3a0mmoz] {
    margin-inline: auto;
    max-inline-size: 140ch;
}
/* /Features/Checkout/CheckoutPaymentSession.razor.rz.scp.css */
#checkout-payment-session-pending[b-6xqp1hksbg] {
    display: none;
}

#checkout-payment-session-pending.htmx-request[b-6xqp1hksbg],
.htmx-request #checkout-payment-session-pending[b-6xqp1hksbg] {
    display: flex;
}

#stripe-payment-element:has(> :not(#stripe-payment-loading)) #stripe-payment-loading[b-6xqp1hksbg] {
    display: none;
}
/* /Features/Home.razor.rz.scp.css */
.home-page > .home-hero-shell[b-qwc82f8ncs] {
    position: relative;
    margin-top: calc(var(--wa-space-3xl) * -1);
}

.home-hero[b-qwc82f8ncs] {
    position: relative;
    margin-left: calc(var(--cj-main-inline-padding, var(--wa-space-3xl)) * -1);
    margin-right: calc(var(--cj-main-inline-padding, var(--wa-space-3xl)) * -1);
    block-size: clamp(15rem, 28vw, 24rem);
}

.home-hero[b-qwc82f8ncs]::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 0.30);
    z-index: 0;
    pointer-events: none;
}

[b-qwc82f8ncs] .home-hero__content {
    text-shadow:
            0 1px 2px rgb(0 0 0 / 0.9),
            0 4px 12px rgb(0 0 0 / 0.55);
}

.home-hero__image[b-qwc82f8ncs] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
}

.home-hero__fade[b-qwc82f8ncs] {
    position: absolute;
    inset-inline: 0;
    inset-block-end: 0;
    block-size: 3.5rem;
    background: linear-gradient(
            180deg,
            transparent 0%,
            color-mix(in oklab, var(--cj-page-background-color) 12%, transparent) 78%,
            var(--cj-page-background-color) 100%
    );
}

.home-featured-categories[b-qwc82f8ncs] {
    position: relative;
    z-index: 1;
    margin-top: calc(clamp(4rem, 9vw, 6rem) * -1);
}

.home-why__icon[b-qwc82f8ncs] {
    color: var(--wa-color-brand-on-normal);
    font-size: var(--wa-font-size-2xl);
}
/* /Features/Shared/Components/CartAddButton.razor.rz.scp.css */
.cart-add-button-content[b-d41e4nu3uj] {
    position: relative;
}

.cart-add-button-default[b-d41e4nu3uj] {
    visibility: visible;
    transition: visibility 0s linear 1s;
}

.cart-add-button-request[b-d41e4nu3uj] {
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    visibility: hidden;
    transition: visibility 0s linear 1s;
}

form.htmx-request .cart-add-button-default[b-d41e4nu3uj] {
    transition-delay: 0s;
    visibility: hidden;
}

form.htmx-request .cart-add-button-request[b-d41e4nu3uj] {
    pointer-events: auto;
    transition-delay: 0s;
    visibility: visible;
}
/* /Features/Shared/Components/CartButton.razor.rz.scp.css */
/* Cart button styling */
.cart-icon-wrapper[b-fwtktlae0l] {
    position: relative;
}

.cart-icon-wrapper wa-badge[b-fwtktlae0l] {
    position: absolute;
    top: -20px;
    right: -14px;
    font-size: 0.65rem;
}

.cart-button-badge[attention="pulse"][b-fwtktlae0l] {
    animation-iteration-count: 1;
}

@media (prefers-reduced-motion: reduce) {
    .cart-button-badge[attention="pulse"][b-fwtktlae0l] {
        animation: none !important;
    }
}
/* /Features/Shared/Components/SectionEyebrow.razor.rz.scp.css */
.section-eyebrow[b-gtk11adue4] {
    margin: 0;
    font-size: var(--wa-font-size-l);
    font-weight: var(--wa-font-weight-bold);
    letter-spacing: 0.08em;
    line-height: var(--wa-line-height-condensed);
    text-transform: uppercase;
}

.section-eyebrow--brand[b-gtk11adue4] {
    color: var(--wa-color-brand-on-quiet);
}

.section-eyebrow--brand-dark[b-gtk11adue4] {
    color: var(--wa-color-brand-fill-loud);
}

.section-eyebrow--neutral[b-gtk11adue4] {
    color: var(--wa-color-neutral-on-quiet);
}

.section-eyebrow--warning[b-gtk11adue4] {
    color: var(--wa-color-warning);
}
/* /Features/Shared/Footer.razor.rz.scp.css */
.cj-footer[b-bbrujaobd4] {
    background-color: var(--wa-color-brand);
    color: var(--wa-color-brand-on);
    border-top: 1px solid color-mix(in oklab, var(--wa-color-brand-on) 28%, transparent);
    gap: var(--wa-space-xl);
    padding: clamp(var(--wa-space-l), 3vw, var(--wa-space-2xl)) clamp(var(--wa-space-m), 5vw, var(--wa-space-3xl));
}

.cj-footer__grid[b-bbrujaobd4] {
    --min-column-size: 16rem;
    gap: var(--wa-space-xl);
}

.cj-footer h2[b-bbrujaobd4],
.cj-footer p[b-bbrujaobd4],
.cj-footer i[b-bbrujaobd4],
.cj-footer address[b-bbrujaobd4] {
    color: var(--wa-color-brand-on);
}

.cj-footer a[b-bbrujaobd4] {
    color: var(--wa-color-brand-on);
    text-decoration-color: color-mix(in oklab, var(--wa-color-brand-on) 72%, transparent);
    text-underline-offset: 0.15em;
}

.cj-footer a:hover[b-bbrujaobd4] {
    color: var(--wa-color-warning-80);
}

.cj-footer a:focus-visible[b-bbrujaobd4] {
    outline: 2px solid var(--wa-color-warning-80);
    outline-offset: 2px;
}

.cj-footer wa-button[appearance="plain"][b-bbrujaobd4] {
    --wa-color-border-normal: color-mix(in oklab, var(--wa-color-brand-on) 32%, transparent);
    --wa-color-border-quiet: transparent;
    --wa-color-fill-normal: color-mix(in oklab, var(--wa-color-brand-on) 20%, transparent);
    --wa-color-fill-quiet: color-mix(in oklab, var(--wa-color-brand-on) 12%, transparent);
    --wa-color-on-loud: var(--wa-color-brand-on);
    --wa-color-on-normal: var(--wa-color-brand-on);
    --wa-color-on-quiet: var(--wa-color-brand-on);
}

.cj-footer__logo img[b-bbrujaobd4] {
    filter: brightness(0) invert(1);
}
/* /Features/Shared/MainLayout.razor.rz.scp.css */
wa-page[b-mo2ndah3br]::part(navigation-toggle) {
    display: none !important; /* Hide the normal nav menu */
}

.cj-header[b-mo2ndah3br] {
    padding-bottom: var(--wa-space-xs);
    background-color: var(--wa-color-on-loud);
}

.cj-header img[b-mo2ndah3br] {
    filter: brightness(0) invert(1);
}

.cj-header__grid[b-mo2ndah3br] {
    display: grid;
    align-items: center;
    gap: var(--wa-space-3xs);
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "left search right";
}

.cj-header__left[b-mo2ndah3br]  { grid-area: left; }
.cj-header__search[b-mo2ndah3br] { grid-area: search; }
.cj-header__right[b-mo2ndah3br] { grid-area: right; }

main[b-mo2ndah3br] {
    --cj-main-inline-padding: var(--wa-space-3xl);
}

@media (max-width: 768px) {
    .cj-header__grid[b-mo2ndah3br] {
        grid-template-columns: 1fr auto;
        grid-template-areas:
      "left right"
      "search search";
    }
}

@media (min-width: 769px) {
    .cj-header__search[b-mo2ndah3br] {
        width: 100%;
        max-width: 800px;
        justify-self: center;
    }
}

@media (max-width: 768px) {
    main[b-mo2ndah3br] {
        --cj-main-inline-padding: 16px;
        padding-left: var(--cj-main-inline-padding);
        padding-right: var(--cj-main-inline-padding);
    }
}
