.store-page { background: var(--cream); }
.store-page .main-nav .is-current { color: var(--gold); }

.store-catalogue {
  padding: clamp(46px, 6vw, 88px) clamp(20px, 5vw, 78px) clamp(70px, 8vw, 118px);
  background: linear-gradient(135deg, var(--cream) 0%, #f7f2e9 70%, #eee3d1 100%);
}

.store-intro,
.store-products {
  width: min(1500px, 100%);
  margin-inline: auto;
}

.store-intro {
  margin-bottom: clamp(58px, 7vw, 100px);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  align-items: end;
  gap: clamp(32px, 6vw, 100px);
}

.store-eyebrow {
  margin: 0 0 25px;
  display: flex;
  align-items: center;
  gap: 17px;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.store-eyebrow span { width: 56px; height: 2px; background: var(--gold); }
.store-intro h1 { margin: 0; font: 400 clamp(5rem, 11vw, 11.5rem)/.76 Georgia, "Times New Roman", serif; letter-spacing: -.055em; }
.store-intro-copy { padding-bottom: 4px; }
.store-intro-copy > p:first-child { max-width: 650px; margin: 0; color: var(--graphite); font-size: clamp(1.08rem, 1.35vw, 1.32rem); line-height: 1.7; }
.store-toolbar { width: 100%; margin-bottom: 34px; }
.store-filter-panel { width: 100%; display: grid; gap: 12px; }
.store-all-filter { width: fit-content; }
.store-filter-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.store-filter-group { padding: 16px; border: 1px solid rgba(31,29,26,.22); background: rgba(255,253,248,.46); }
.store-filter-group h3 { margin: 0 0 13px; color: var(--gold); font: 800 .72rem/1.2 Arial, Helvetica, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.store-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.store-filter-panel button { padding: 10px 14px; border: 1px solid rgba(31,29,26,.28); color: var(--black); background: rgba(255,253,248,.6); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; }
.store-filter-panel button:hover, .store-filter-panel button:focus-visible { border-color: var(--gold); outline: none; }
.store-filter-panel button.is-active { color: var(--white); border-color: var(--black); background: var(--black); box-shadow: 3px 3px 0 var(--gold); }

.store-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.store-product { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid rgba(31,29,26,.25); background: var(--white); }
.store-product[hidden] { display: none; }
.store-product-visual { width: 100%; height: auto; aspect-ratio: 1 / 1; position: relative; overflow: hidden; border-bottom: 1px solid rgba(31,29,26,.25); }
.store-product-visual::before, .store-product-visual::after, .store-product-visual span { content: ""; position: absolute; display: block; }
.store-product-visual span { z-index: 2; }

.product-visual-one { background: #dfc487; }
.product-visual-one::before { width: 58%; height: 70%; left: 21%; top: 15%; background: #72503e; box-shadow: 9px 9px 0 rgba(31,29,26,.18); }
.product-visual-one::after { width: 36%; height: 48%; left: 32%; top: 26%; border: 13px solid #f3ede1; border-radius: 50% 50% 5% 5%; }
.product-visual-one span { width: 11%; aspect-ratio: 1; right: 13%; top: 13%; border-radius: 50%; background: #4f5659; }

.product-visual-two { background: #d9dfcb; }
.product-visual-two::before { width: 42%; height: 67%; left: 29%; bottom: 10%; border-radius: 48% 52% 38% 42%; background: #4f5659; transform: rotate(-5deg); }
.product-visual-two::after { width: 19%; height: 12%; left: 40%; top: 18%; border-radius: 50%; background: #1f1d1a; }
.product-visual-two span { width: 18%; height: 46%; left: 41%; top: 31%; border: 3px solid #c2963b; border-block: 0; transform: rotate(17deg); }

.product-visual-three { background: #d2d8da; }
.product-visual-three::before { width: 46%; aspect-ratio: 1; left: 27%; top: 24%; border: 16px double #4f5659; transform: rotate(45deg); }
.product-visual-three::after { width: 22%; aspect-ratio: 1; left: 39%; top: 36%; background: var(--cream); transform: rotate(45deg); }
.product-visual-three span { width: 8%; aspect-ratio: 1; right: 16%; top: 14%; background: #c2963b; transform: rotate(45deg); }

.product-visual-four { background: #dec0ad; }
.product-visual-four::before { width: 58%; height: 68%; left: 21%; top: 16%; background: #f4eadc; box-shadow: 10px 10px 0 rgba(31,29,26,.16); }
.product-visual-four::after { width: 34%; aspect-ratio: 1; left: 33%; top: 25%; border-radius: 50%; background: #c2963b; }
.product-visual-four span { width: 44%; height: 26%; left: 28%; bottom: 24%; background: #76503d; clip-path: polygon(0 100%, 22% 20%, 43% 82%, 67% 8%, 100% 100%); }

.product-visual-five { background: #efe2c6; }
.product-visual-five::before { width: 48%; aspect-ratio: 1; left: 26%; top: 23%; border: 10px solid #c2963b; background: #73513f; box-shadow: 8px 8px 0 #d8bfad; }
.product-visual-five::after { width: 20%; height: 34%; left: 40%; top: 33%; border: 7px solid var(--cream); border-radius: 50% 50% 0 0; }
.product-visual-five span { width: 7%; aspect-ratio: 1; left: 16%; top: 15%; border-radius: 50%; background: #4f5659; }

.product-visual-six { background: #d8c6ad; }
.product-visual-six::before { width: 40%; height: 68%; left: 30%; bottom: 10%; border-radius: 46% 46% 34% 34%; background: repeating-linear-gradient(112deg,#4f5659 0 9px,#6e7476 9px 18px); }
.product-visual-six::after { width: 18%; height: 10%; left: 41%; top: 17%; border-radius: 50%; background: #252421; }
.product-visual-six span { width: 10%; height: 44%; left: 45%; top: 32%; border: 2px solid #d4ae62; border-block: 0; transform: rotate(-22deg); }

.product-visual-seven { background: #d6ddca; }
.product-visual-seven::before { width: 17%; height: 65%; left: 24%; top: 18%; background: #c2963b; box-shadow: 54px 10px 0 #72503e, 108px -4px 0 #4f5659; transform: rotate(-7deg); }
.product-visual-seven::after { width: 11%; aspect-ratio: 1; left: 27%; top: 13%; border-radius: 50%; background: #f5eee3; box-shadow: 54px 10px 0 #f5eee3,108px -4px 0 #f5eee3; }
.product-visual-seven span { width: 60%; height: 2px; left: 20%; bottom: 16%; background: rgba(31,29,26,.28); }

.product-visual-eight { background: #d2d8da; }
.product-visual-eight::before { width: 60%; height: 66%; left: 20%; top: 17%; border: 8px solid #72503e; background: #f4eee4; box-shadow: 9px 9px 0 rgba(31,29,26,.16); }
.product-visual-eight::after { width: 20%; height: 33%; left: 30%; top: 28%; background: #c2963b; box-shadow: 64px 35px 0 #4f5659; }
.product-visual-eight span { width: 22%; height: 18%; left: 48%; top: 30%; background: #dec0ad; }

.store-product-information { flex: 1; padding: 22px 20px 24px; display: flex; flex-direction: column; }
.store-product-information > p { margin: 0 0 10px; color: var(--gold); font-size: .65rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.store-product-information h3 { min-height: 62px; font-size: clamp(1.55rem, 2.2vw, 2.15rem); }
.store-product-information > .store-product-actions { min-height: 92px; margin-top: auto; padding-top: 14px; display: grid; gap: 12px; border-top: 1px solid rgba(31,29,26,.18); }
.store-product-actions > span { color: #756d64; font-size: .76rem; }
.store-add-cart { width: 100%; min-height: 44px; padding: 11px 15px; border: 1px solid var(--black); color: var(--white); background: var(--black); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.store-add-cart:hover, .store-add-cart:focus-visible { color: var(--black); border-color: var(--gold); background: transparent; box-shadow: 4px 4px 0 var(--gold); outline: none; }
.store-add-cart:disabled { color: #8d8780; border-color: rgba(31,29,26,.18); background: #ebe6de; box-shadow: none; cursor: default; }
.store-add-cart.is-added { color: var(--black); border-color: #8f6727; background: var(--gold); box-shadow: inset 0 0 0 2px rgba(255,253,248,.38); opacity: 1; }
.store-add-cart.is-added:hover, .store-add-cart.is-added:focus-visible { color: var(--white); border-color: var(--black); background: var(--black); box-shadow: 4px 4px 0 var(--gold); }
.store-product-information a { color: var(--black); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.store-product-information a b { display: inline-block; margin-left: 5px; color: var(--gold); transition: transform .16s ease; }
.store-product-information a:hover b, .store-product-information a:focus-visible b { transform: translateX(3px); }

@media (max-width: 1120px) {
  .store-toolbar { flex-direction: column; }
  .store-filter-panel { width: 100%; }
  .store-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .store-intro { grid-template-columns: 1fr; align-items: start; }
  .store-toolbar { align-items: flex-start; flex-direction: column; }
  .store-filter-groups { grid-template-columns: 1fr; }
  .store-filters { justify-content: flex-start; }
}

@media (max-width: 560px) {
  .store-catalogue { padding-inline: 18px; }
  .store-intro h1 { font-size: clamp(4.8rem, 26vw, 7rem); }
  .store-product-grid { grid-template-columns: 1fr; }
  .store-product-information h3 { min-height: auto; }
}
.catalogue-real-visual { display: block; }
.catalogue-real-visual > img, .catalogue-real-visual > video { width: 100%; height: 100%; display: block; object-fit: cover; pointer-events: none; }
.catalogue-video-label { position: absolute; bottom: 16px; left: 16px; color: var(--white); background: var(--black); padding: 8px 10px; font-size: .72rem; }
.catalogue-no-image { display: grid; place-items: center; color: var(--graphite); background: var(--cream-deep); }
.catalogue-no-image > span { position: static; }
.store-product-visual { flex-shrink: 0; }
.catalogue-stock { font-size: .7rem !important; color: #8c3f35 !important; }
.store-filter-groups[hidden] { display: none; }
.store-filter-group:only-child { grid-column: 1 / -1; }
.store-filters button { overflow-wrap: anywhere; }
#store-message { color: var(--graphite); line-height: 1.6; }
.store-product-information h3 { overflow-wrap: anywhere; }
.store-cart-link { display: inline-flex !important; align-items: center; gap: 7px; }
.store-cart-link [data-cart-count] { min-width: 22px; min-height: 22px; padding: 4px 6px; display: inline-grid; place-items: center; border-radius: 50%; color: var(--white); background: var(--gold); font-size: .61rem; line-height: 1; }
.store-cart-link [data-cart-count][hidden] { display: none; }
.page-trail .store-cart-trail-link { min-height: 42px; margin-left: auto; padding: 9px 15px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid rgba(31,29,26,.3); color: var(--black); background: rgba(255,253,248,.62); }
.page-trail .store-cart-trail-link:hover, .page-trail .store-cart-trail-link:focus-visible { color: var(--white); border-color: var(--black); background: var(--black); outline: none; }
.page-trail .store-cart-trail-link [data-cart-count] { min-width: 23px; min-height: 23px; margin: 0; padding: 4px 6px; display: inline-grid; place-items: center; border-radius: 50%; color: var(--white); background: var(--gold); font-size: .62rem; line-height: 1; }
.page-trail .store-cart-trail-link [data-cart-count][hidden] { display: none; }
.floating-cart { width: 64px; height: 64px; position: fixed; right: clamp(16px, 2vw, 28px); bottom: clamp(16px, 2vw, 28px); z-index: 45; display: grid; place-items: center; color: var(--white); border: 2px solid var(--gold); background: var(--black); box-shadow: 6px 6px 0 rgba(184,138,60,.78); transition: transform .16s ease, box-shadow .16s ease; }
.floating-cart:hover, .floating-cart:focus-visible { color: var(--black); background: var(--gold); box-shadow: 3px 3px 0 var(--black); transform: translate(2px, 2px); outline: none; }
.floating-cart svg { width: 30px; height: 30px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.floating-cart svg circle { fill: currentColor; stroke: none; }
.floating-cart [data-cart-count] { min-width: 25px; min-height: 25px; padding: 5px 6px; position: absolute; top: -10px; right: -10px; display: inline-grid; place-items: center; border: 2px solid var(--cream); border-radius: 50%; color: var(--white); background: var(--gold); font-size: .64rem; font-weight: 800; line-height: 1; }
.floating-cart [data-cart-count][hidden] { display: none; }
