/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/app/(shop)/category/[slug]/page.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.page_hero__paF0w {
  background: var(--c-surface-2);
  border-bottom: 1px solid var(--c-rule);
  padding: var(--s-8) var(--gutter);
}

.page_heroInner__xirah {
  max-width: var(--container);
  margin: 0 auto;
}

.page_crumbs__Awh4V {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-1);
  margin-bottom: var(--s-3);
  font-size: var(--fz-sm);
  color: var(--c-ink-500);
}

.page_crumbs__Awh4V a { color: var(--c-ink-700); }
.page_crumbs__Awh4V a:hover { color: var(--c-primary); }
.page_crumbs__Awh4V span[aria-hidden] { color: var(--c-ink-300); }

.page_h1__ySeKb {
  margin: 0 0 var(--s-2);
  font-family: var(--f-display);
  font-size: var(--fz-3xl);
  font-weight: var(--fw-black);
  letter-spacing: -0.01em;
  line-height: var(--lh-tight);
}

.page_blurb__T4kgO {
  margin: 0;
  color: var(--c-ink-500);
  font-size: var(--fz-base);
  max-width: 72ch;
}

@media (max-width: 768px) {
  .page_hero__paF0w { padding: var(--s-4) var(--s-3); }
  .page_h1__ySeKb { font-size: var(--fz-2xl); }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/features/catalog/FilterRail.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
.FilterRail_rail__nYoIb {
  width: 100%;
}

.FilterRail_heading__c0fSH {
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: var(--s-4);
  color: var(--c-ink-900);
}

.FilterRail_group__k_FC3 {
  border-top: 1px solid var(--c-rule);
  padding: var(--s-4) 0;
}

.FilterRail_groupTitle__1XEb7 {
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-ink-500);
  margin-bottom: var(--s-3);
}

.FilterRail_check___Xkpe {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  min-height: 32px;
  font-size: var(--fz-sm);
  color: var(--c-ink-700);
  cursor: pointer;
  margin-bottom: var(--s-2);
  line-height: var(--lh-snug);
}

.FilterRail_check___Xkpe input[type="checkbox"] {
  accent-color: var(--c-primary);
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.FilterRail_count__gqfN2 {
  margin-left: auto;
  color: var(--c-ink-500);
  font-size: var(--fz-xs);
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/features/catalog/Pager.module.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************/
.Pager_pager__dFGYH {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-1);
  margin-top: var(--s-8);
}

.Pager_chip__QsYR_ {
  min-width: 32px;
  height: 32px;
  padding: 0 var(--s-2);
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink-700);
  background: transparent;
  border: 1px solid var(--c-rule);
  border-radius: var(--r-md);
  cursor: pointer;
}

.Pager_chip__QsYR_:hover:not(:disabled) {
  border-color: var(--c-ink-900);
  color: var(--c-ink-900);
}

.Pager_chip__QsYR_:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.Pager_active__fa0eH {
  border-color: var(--c-ink-900);
  color: var(--c-ink-900);
  background: var(--c-surface-2);
}

.Pager_ellipsis__KV3uS {
  padding: 0 var(--s-1);
  color: var(--c-ink-300);
  font-size: var(--fz-sm);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/components/shop/ShopProductCard.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.ShopProductCard_card__GKlxl {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  height: 100%;
  min-width: 0;
  padding: var(--s-3);
  background: var(--c-surface);
  border: 1px solid transparent;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

.ShopProductCard_card__GKlxl:hover {
  border-color: var(--c-rule);
  box-shadow: var(--sh-2);
}

.ShopProductCard_body__EzG0Y {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: var(--s-2);
  min-width: 0;
  color: var(--c-ink-900);
  text-decoration: none;
}

.ShopProductCard_body__EzG0Y:hover {
  color: var(--c-ink-900);
  text-decoration: none;
}

.ShopProductCard_media__7XuMj {
  position: relative;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--r-sm);
  background: repeating-linear-gradient(135deg, #f1f1f1 0 8px, #e9e9e9 8px 16px);
}

.ShopProductCard_productImage__FY4JQ {
  object-fit: contain;
  padding: var(--s-2);
  background: #ffffff;
}

.ShopProductCard_media__7XuMj span {
  color: rgba(26, 26, 26, 0.3);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--fz-xl);
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
}

.ShopProductCard_pen__B_Ns8 {
  background: linear-gradient(135deg, #f6f6f6 0%, #ffffff 45%, #e6dde0 100%);
}

.ShopProductCard_textile__aaEDn {
  background: linear-gradient(135deg, #eeeeee 0%, #ffffff 42%, #e0eadf 100%);
}

.ShopProductCard_mug__bBmBK {
  background: linear-gradient(135deg, #f8f8f8 0%, #ffffff 45%, #f6e6b9 100%);
}

.ShopProductCard_expo__XInJf {
  background: linear-gradient(135deg, #efefef 0%, #ffffff 42%, #d8e1f5 100%);
}

.ShopProductCard_badge__SQi_z {
  position: absolute;
  top: var(--s-2);
  left: var(--s-2);
  z-index: 1;
  padding: 2px var(--s-2);
  color: #ffffff;
  background: var(--c-primary);
  border-radius: var(--r-sm);
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ShopProductCard_brand__Zlr9D {
  color: var(--c-ink-500);
  font-size: var(--fz-xs);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ShopProductCard_devSupplier__3z0oo {
  width: fit-content;
  max-width: 100%;
  padding: 2px var(--s-1);
  overflow: hidden;
  color: #5d3b00;
  background: #fff0bf;
  border: 1px solid #f2cf72;
  border-radius: var(--r-sm);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: var(--fw-bold);
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ShopProductCard_card__GKlxl h3 {
  min-height: 2.5em;
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--c-ink-900);
  font-size: var(--fz-sm);
  font-weight: var(--fw-regular);
  line-height: var(--lh-snug);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.ShopProductCard_rating__x6ncX {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: var(--c-ink-500);
  font-size: var(--fz-xs);
}

.ShopProductCard_rating__x6ncX svg {
  width: 12px;
  height: 12px;
  color: var(--c-primary);
  fill: currentColor;
}

.ShopProductCard_save__eb4Qk {
  min-height: 1.2em;
  color: var(--c-deal-text);
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ShopProductCard_save__eb4Qk[data-empty="true"] {
  visibility: hidden;
}

.ShopProductCard_price__vx9ez {
  color: var(--c-ink-900);
  font-size: var(--fz-xl);
  font-weight: var(--fw-bold);
}

.ShopProductCard_price__vx9ez span {
  margin-left: var(--s-2);
  color: var(--c-ink-500);
  font-size: var(--fz-xs);
  font-weight: var(--fw-regular);
  text-decoration: line-through;
}

.ShopProductCard_ctaWrap__2vipW {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  margin-top: auto;
}

.ShopProductCard_cta__3wklp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  height: 40px;
  margin-top: var(--s-2);
  padding: 0 var(--s-2);
  color: var(--c-ink-900);
  background: transparent;
  border: 1px solid var(--c-ink-900);
  border-radius: var(--r-md);
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
  transition: background 120ms ease, color 120ms ease;
}

.ShopProductCard_cta__3wklp[data-kind="details"] {
  color: var(--c-ink-700);
  border-color: var(--c-rule);
}

.ShopProductCard_cta__3wklp:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.ShopProductCard_addError__E8YPW {
  margin: 0;
  color: var(--c-deal-text, #c0392b);
  font-size: var(--fz-xs);
  text-align: center;
}

.ShopProductCard_cta__3wklp:hover {
  color: var(--c-surface);
  background: var(--c-ink-900);
  text-decoration: none;
}

@media (max-width: 768px) {
  .ShopProductCard_card__GKlxl {
    padding: var(--s-2);
    gap: var(--s-1);
  }

  .ShopProductCard_card__GKlxl h3 {
    font-size: var(--fz-xs);
  }

  .ShopProductCard_brand__Zlr9D {
    font-size: 10px;
  }

  .ShopProductCard_price__vx9ez {
    font-size: var(--fz-lg);
  }

  .ShopProductCard_cta__3wklp {
    height: 38px;
    margin-top: var(--s-1);
    font-size: var(--fz-xs);
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/features/catalog/ProductGrid.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.ProductGrid_grid__gMBTB {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s-3);
}

.ProductGrid_empty__DrYtJ {
  padding: var(--s-12) var(--s-6);
  text-align: center;
  color: var(--c-ink-500);
  font-size: var(--fz-base);
}

@media (max-width: 1024px) {
  .ProductGrid_grid__gMBTB { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .ProductGrid_grid__gMBTB { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/features/catalog/SortBar.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
.SortBar_bar__k_KJB {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  flex-wrap: wrap;
  margin-bottom: var(--s-4);
}

.SortBar_left__ospzX {
  display: flex;
  align-items: center;
  gap: var(--s-4);
  flex-wrap: wrap;
}

.SortBar_right__sdjdy {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--s-4);
  flex-wrap: wrap;
}

.SortBar_count__XDXwp {
  font-size: var(--fz-sm);
  color: var(--c-ink-700);
}

.SortBar_sortLabel__yb6Sz {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fz-sm);
  color: var(--c-ink-700);
}

.SortBar_select__qeOk1 {
  appearance: none;
  border: 1px solid var(--c-rule);
  border-radius: var(--r-md);
  padding: var(--s-1) var(--s-6) var(--s-1) var(--s-3);
  min-height: 32px;
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink-900);
  background:
    url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
      right var(--s-3) center / 16px 16px no-repeat,
    var(--c-surface);
  cursor: pointer;
  min-width: 160px;
}

.SortBar_pageSizeLabel__Kstys {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fz-sm);
  color: var(--c-ink-700);
}

.SortBar_pageSizeSelect__Q187v {
  appearance: none;
  border: 1px solid var(--c-rule);
  border-radius: var(--r-md);
  padding: var(--s-1) var(--s-6) var(--s-1) var(--s-3);
  min-height: 32px;
  min-width: 72px;
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink-900);
  background:
    url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
      right var(--s-3) center / 16px 16px no-repeat,
    var(--c-surface);
  cursor: pointer;
}

@media (max-width: 768px) {
  .SortBar_bar__k_KJB,
  .SortBar_left__ospzX,
  .SortBar_right__sdjdy {
    align-items: stretch;
  }

  .SortBar_right__sdjdy {
    width: 100%;
    justify-content: space-between;
  }
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/components/ScrollRail.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************/
/* Positioning context the chevrons anchor to - owned by ScrollRail so the
   consumer's outer frame is free to be sticky / relative / unpositioned. */
.ScrollRail_viewport__x05sW {
  position: relative;
}

.ScrollRail_strip__CXnon {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  /* Per-side edge fade, toggled by .fadeStart / .fadeEnd. #000 here is a mask
     alpha (opaque = shown), not a paint color, so it is not a theme token. */
  --fade-start: 0px;
  --fade-end: 0px;
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 var(--fade-start),
    #000 calc(100% - var(--fade-end)),
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 var(--fade-start),
    #000 calc(100% - var(--fade-end)),
    transparent 100%
  );
}

.ScrollRail_strip__CXnon::-webkit-scrollbar {
  display: none;
}

.ScrollRail_fadeStart__6H6l_ {
  --fade-start: var(--s-8);
}

.ScrollRail_fadeEnd__i0nUD {
  --fade-end: var(--s-8);
}

@media (prefers-reduced-motion: no-preference) {
  .ScrollRail_strip__CXnon {
    scroll-behavior: smooth;
  }
}

.ScrollRail_nav__VqnSy {
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  color: var(--c-ink-900);
  background: var(--c-surface);
  border: 1px solid var(--c-rule);
  border-radius: var(--r-pill);
  box-shadow: var(--sh-2);
  cursor: pointer;
  transition: color 140ms ease;
}

.ScrollRail_nav__VqnSy svg {
  width: 20px;
  height: 20px;
}

.ScrollRail_nav__VqnSy:hover {
  color: var(--c-primary);
}

.ScrollRail_nav__VqnSy:disabled {
  color: var(--c-ink-300);
  box-shadow: var(--sh-1);
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}

.ScrollRail_prev__QSJbC {
  left: var(--s-1);
}

.ScrollRail_next__jUauq {
  right: var(--s-1);
}

/* Pointer (desktop) devices only - touch relies on swipe + the edge fade. */
@media (hover: hover) and (pointer: fine) {
  .ScrollRail_nav__VqnSy {
    display: inline-flex;
  }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/features/catalog/SubcatRing.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
.SubcatRing_ring__8s4ll {
  position: sticky;
  top: var(--shop-header-h, 0px);
  z-index: 5;
  padding: var(--s-4) 0;
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-rule);
}

.SubcatRing_strip__c630h {
  gap: var(--s-3);
}

.SubcatRing_item__lIPo1 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s-2);
  flex-shrink: 0;
  width: 80px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  text-decoration: none;
  color: inherit;
}

.SubcatRing_item__lIPo1:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.SubcatRing_media__JPMGi {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--c-surface-2);
  border: 2px solid var(--c-rule);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink-500);
  transition: border-color 0.12s;
}

.SubcatRing_active__dm_9c .SubcatRing_media__JPMGi {
  border-color: var(--c-primary);
  background: var(--c-surface-3);
}

.SubcatRing_label__oaaDt {
  font-size: var(--fz-xs);
  color: var(--c-ink-700);
  text-align: center;
  line-height: var(--lh-snug);
}

.SubcatRing_active__dm_9c .SubcatRing_label__oaaDt {
  color: var(--c-primary);
  font-weight: var(--fw-bold);
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!./src/shop/features/catalog/CategoryPage.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
.CategoryPage_wrapper__CBAmv {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--s-8) var(--gutter) var(--s-12);
}

.CategoryPage_body__8gl2t {
  width: 100%;
}

.CategoryPage_bodyAfterRing__PMLj8 {
  margin-top: var(--s-5);
}

.CategoryPage_mainCol__05uky { flex: 1 1; min-width: 0; }

.CategoryPage_filtersToggle__F4MmY {
  display: none;
  align-items: center;
  gap: var(--s-2);
  height: 36px;
  padding: 0 var(--s-4);
  margin-bottom: var(--s-4);
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  border: 1px solid var(--c-ink-900);
  border-radius: var(--r-md);
  background: transparent;
  cursor: pointer;
}

.CategoryPage_overlay__3dyCI {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 100;
  display: flex;
  align-items: flex-end;
}

.CategoryPage_drawer__A6nuZ {
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  background: var(--c-surface);
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  padding: var(--s-4) var(--s-4) var(--s-8);
}

.CategoryPage_drawerClose__Rm3JN {
  display: block;
  margin-left: auto;
  margin-bottom: var(--s-4);
  font-size: var(--fz-sm);
  font-weight: var(--fw-bold);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--c-ink-700);
}

@media (max-width: 768px) {
  .CategoryPage_filtersToggle__F4MmY { display: inline-flex; }
  .CategoryPage_wrapper__CBAmv { padding: var(--s-5) var(--s-3) var(--s-8); }
}

