:root {
  --zeo-commerce-ink: #302a24;
  --zeo-commerce-muted: #746c62;
  --zeo-commerce-line: rgba(48, 42, 36, .24);
  --zeo-commerce-paper: #f3f0e9;
}

.zeo-new-arrivals,
.zeo-shop-archive,
.zeo-product-detail {
  box-sizing: border-box;
  color: var(--zeo-commerce-ink);
  background-color: var(--zeo-commerce-paper);
  background-image: linear-gradient(118deg, rgba(255, 255, 255, .42), transparent 42%, rgba(138, 105, 70, .08)), url('../images/zeo-commerce-plaster.png');
  background-position: center;
  background-size: cover;
}
.zeo-new-arrivals, .zeo-shop-archive { scroll-margin-top: 68px; }
.zeo-new-arrivals *, .zeo-shop-archive *, .zeo-product-detail * { box-sizing: border-box; }
.zeo-commerce-heading { text-align: center; }
.zeo-commerce-heading h1, .zeo-commerce-heading h2 { margin: 0; font: 400 clamp(46px, 4.2vw, 70px)/.96 var(--zeo-display-font); letter-spacing: .1em; }
.zeo-commerce-heading > span { display: none; }
.zeo-commerce-heading > p, .zeo-commerce-heading > div > p { margin: 0 0 18px; color: var(--zeo-commerce-muted); font: 500 10px/1.25 var(--zeo-body-font); letter-spacing: .18em; text-transform: uppercase; }
.zeo-commerce-heading--carousel { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; text-align: left; }
.zeo-commerce-heading--carousel h2 { font-size: clamp(42px, 4.1vw, 68px); letter-spacing: .045em; }
.zeo-commerce-heading--carousel > a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 11px; padding-bottom: 7px; border-bottom: 1px solid currentColor; color: inherit; font: 600 10px/1 var(--zeo-body-font); letter-spacing: .13em; text-decoration: none; }
.zeo-commerce-heading--carousel svg, .zeo-product-card__cta svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.35; }

.zeo-new-arrivals { position: relative; min-height: 0; padding: clamp(72px, 7vw, 112px) clamp(24px, 4.7vw, 80px) clamp(68px, 6vw, 96px); overflow: hidden; }
.zeo-product-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 66px) / 4); gap: 22px; margin-top: clamp(42px, 5vw, 70px); overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.zeo-product-carousel::-webkit-scrollbar { display: none; }
.zeo-product-carousel .zeo-product-card { width: 100%; }

.zeo-product-card { min-width: 0; scroll-snap-align: start; }
.zeo-product-card__image { position: relative; display: grid; height: clamp(340px, 31vw, 480px); place-items: center; overflow: hidden; border: 1px solid var(--zeo-commerce-line); background: rgba(248, 245, 238, .2); }
.zeo-product-card__media-link { position: absolute; inset: 0; display: block; color: inherit; text-decoration: none; }
.zeo-product-card__media { position: absolute; inset: 0; display: grid; padding: 0; place-items: center; opacity: 0; visibility: hidden; transition: opacity 360ms ease, visibility 360ms ease; }
.zeo-product-card__media.is-active { z-index: 1; opacity: 1; visibility: visible; }
.zeo-product-card__media img { display: block; width: 88% !important; max-width: 88% !important; height: 88% !important; max-height: 88% !important; object-fit: contain; filter: drop-shadow(9px 14px 9px rgba(42, 31, 20, .16)); transform: scale(1); transition: transform 700ms cubic-bezier(.22, .61, .36, 1), filter 500ms ease; }
.zeo-product-card__media--detail img { width: 100% !important; max-width: 100% !important; height: 100% !important; max-height: 100% !important; object-fit: cover; transform: scale(1.035); }
.zeo-product-card:hover .zeo-product-card__media.is-active img, .zeo-product-card:focus-within .zeo-product-card__media.is-active img { filter: drop-shadow(10px 18px 12px rgba(42, 31, 20, .21)); transform: scale(1.018); }
.zeo-product-card__mode { position: absolute; z-index: 4; top: 13px; right: 13px; padding: 6px 8px; background: rgba(243, 240, 233, .84); color: var(--zeo-commerce-ink); font: 600 8px/1 var(--zeo-body-font); letter-spacing: .13em; text-transform: uppercase; backdrop-filter: blur(8px); }
.zeo-product-card__gallery-controls { position: absolute; z-index: 5; right: 12px; bottom: 12px; left: 12px; display: flex; align-items: center; justify-content: space-between; opacity: 0; pointer-events: none; transform: translateY(5px); transition: opacity 220ms ease, transform 220ms ease; }
.zeo-product-card:hover .zeo-product-card__gallery-controls, .zeo-product-card:focus-within .zeo-product-card__gallery-controls { opacity: 1; pointer-events: auto; transform: none; }
.zeo-product-card__gallery-controls button { display: grid; width: 36px; height: 36px; padding: 0; border: 1px solid rgba(48, 42, 36, .28); place-items: center; color: var(--zeo-commerce-ink); background: rgba(243, 240, 233, .88); cursor: pointer; backdrop-filter: blur(8px); }
.zeo-product-card__gallery-controls button:hover { background: rgba(255, 255, 255, .98); }
.zeo-product-card__gallery-controls svg { display: block !important; width: 17px !important; max-width: 17px !important; height: 17px !important; max-height: 17px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.35 !important; }
.zeo-product-card__gallery-controls > span { padding: 6px 8px; color: var(--zeo-commerce-ink); background: rgba(243, 240, 233, .82); font: 500 9px/1 var(--zeo-body-font); letter-spacing: .08em; }

.zeo-product-card__meta { padding-top: 17px; }
.zeo-product-card__title { margin: 0 0 5px; font: 400 23px/1.12 var(--zeo-display-font); }
.zeo-product-card__title a { color: inherit; text-decoration: none; }
.zeo-product-card__artist, .zeo-product-card__material, .zeo-product-card__dimensions, .zeo-product-card__price { margin: 4px 0; color: var(--zeo-commerce-muted); font: 400 11px/1.35 var(--zeo-body-font); letter-spacing: .02em; }
.zeo-product-card__artist { color: var(--zeo-commerce-ink); font-weight: 500; }
.zeo-product-card__material { min-height: 15px; }
.zeo-product-card__price { min-height: 16px; margin-top: 10px; }
.zeo-product-card__cta { display: inline-flex; align-items: center; gap: 9px; margin-top: 12px; padding-bottom: 6px; border-bottom: 1px solid currentColor; color: inherit; font: 600 9px/1 var(--zeo-body-font); letter-spacing: .13em; text-decoration: none; }

.zeo-product-carousel__controls button { position: absolute; z-index: 7; top: 53%; display: grid; width: 46px; height: 64px; padding: 0; border: 0; place-items: center; color: inherit; background: rgba(243, 240, 233, .76); cursor: pointer; backdrop-filter: blur(7px); transition: opacity 180ms ease, background-color 180ms ease; }
.zeo-product-carousel__controls button:hover { background: rgba(255, 255, 255, .94); }
.zeo-product-carousel__controls button:disabled { opacity: .22; cursor: default; }
.zeo-product-carousel__controls svg { display: block !important; width: 26px !important; max-width: 26px !important; height: 26px !important; max-height: 26px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.15 !important; }
.zeo-product-carousel__controls [data-product-prev] { left: 8px; }
.zeo-product-carousel__controls [data-product-next] { right: 8px; }
.zeo-carousel-progress { display: flex; width: min(480px, 46vw); justify-content: center; gap: 7px; margin: clamp(42px, 5vw, 68px) auto 0; }
.zeo-carousel-progress button { position: relative; flex: 1 1 0; height: 16px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.zeo-carousel-progress button::before { content: ''; position: absolute; inset: 7px 0 auto; height: 1px; background: rgba(49, 43, 36, .2); transition: height 180ms ease, background-color 180ms ease; }
.zeo-carousel-progress button:hover::before, .zeo-carousel-progress button:focus-visible::before { background: rgba(49, 43, 36, .48); }
.zeo-carousel-progress button.is-active::before { height: 2px; background: currentColor; }

.zeo-commerce-empty { padding: 80px 24px; text-align: center; }
.zeo-commerce-button, .zeo-product-primary-cta { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 26px; border: 1px solid currentColor; color: inherit; font: 600 11px/1 var(--zeo-body-font); letter-spacing: .14em; text-decoration: none; }
.zeo-shop-archive { min-height: 100vh; padding: 0 clamp(24px, 4.7vw, 80px) 100px; }
.zeo-shop-archive__hero { padding: clamp(75px, 8vw, 125px) 20px 38px; }
.zeo-shop-tools { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; border-top: 1px solid var(--zeo-commerce-line); padding: 20px 0; }
.zeo-shop-tabs { display: flex; gap: 34px; overflow-x: auto; }
.zeo-shop-tabs a { white-space: nowrap; color: inherit; font: 500 10px/1 var(--zeo-body-font); letter-spacing: .11em; text-decoration: none; }
.zeo-shop-tabs a.is-active { font-weight: 800; }
.zeo-shop-toolbar { display: flex; gap: 30px; align-items: center; font: 500 10px/1 var(--zeo-body-font); letter-spacing: .1em; }
.zeo-shop-toolbar select { border: 0; background: transparent; color: inherit; font: inherit; }
.zeo-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 22px; }
.zeo-product-grid .zeo-product-card__image { height: clamp(300px, 27vw, 430px); }
.zeo-shop-pagination { padding: 60px 0; text-align: center; }
.zeo-shop-pagination a, .zeo-shop-pagination span { display: inline-grid; width: 36px; height: 36px; place-items: center; color: inherit; text-decoration: none; }

.zeo-product-detail { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(350px, .8fr); gap: clamp(40px, 6vw, 100px); padding: clamp(42px, 6vw, 96px); }
.zeo-product-detail__stage { display: grid; min-height: 70vh; place-items: center; padding: 30px; border: 1px solid var(--zeo-commerce-line); }
.zeo-product-detail__stage img { width: auto; max-width: 100%; height: auto; max-height: 72vh; object-fit: contain; }
.zeo-product-detail__thumbs { display: flex; gap: 10px; margin-top: 12px; }
.zeo-product-detail__thumbs button { width: 76px; height: 76px; padding: 5px; border: 1px solid var(--zeo-commerce-line); background: transparent; }
.zeo-product-detail__thumbs img { width: 100%; height: 100%; object-fit: contain; }
.zeo-product-detail__summary { position: sticky; top: 120px; align-self: start; }
.zeo-product-detail__artist, .zeo-product-detail__medium, .zeo-product-detail__mode { font: 500 11px/1.4 var(--zeo-body-font); letter-spacing: .14em; text-transform: uppercase; }
.zeo-product-detail h1 { margin: 10px 0; font: 400 clamp(54px, 5vw, 82px)/.95 var(--zeo-display-font); }
.zeo-product-detail__price { margin: 24px 0; font-size: 18px; }
.zeo-product-detail__description { font: 400 17px/1.65 var(--zeo-display-font); }
.zeo-product-detail__purchase { margin: 28px 0; }
.zeo-product-detail__purchase button { min-height: 52px; padding: 0 28px; border: 1px solid currentColor; background: var(--zeo-commerce-ink); color: #fff; }
.zeo-product-detail__facts { margin-top: 34px; border-top: 1px solid var(--zeo-commerce-line); }
.zeo-product-detail__facts > div { display: grid; grid-template-columns: 125px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(56, 48, 39, .2); font-size: 12px; line-height: 1.45; }
.zeo-product-detail__facts dt { font-weight: 700; }
.zeo-mobile-product-cta { display: none; }

@media (hover: none), (pointer: coarse) { .zeo-product-card__gallery-controls { opacity: 1; pointer-events: auto; transform: none; } }
@media (max-width: 1120px) {
  .zeo-product-carousel { grid-auto-columns: calc((100% - 22px) / 2); }
  .zeo-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zeo-shop-tools { grid-template-columns: 1fr; }
  .zeo-shop-toolbar { justify-content: space-between; }
}
@media (max-width: 767px) {
  /* Small viewports must never depend on hover-capability detection. Some
     tablets and browser emulators report a fine pointer even though the UI is
     operated by touch. */
  .zeo-product-card__gallery-controls {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .zeo-commerce-heading h1, .zeo-commerce-heading h2 { font-size: clamp(39px, 12vw, 54px); letter-spacing: .055em; }
  .zeo-commerce-heading--carousel { align-items: flex-start; }
  .zeo-commerce-heading--carousel > a { margin-top: 8px; font-size: 9px; }
  .zeo-commerce-heading > p, .zeo-commerce-heading > div > p { max-width: 230px; margin-bottom: 12px; font-size: 8px; line-height: 1.45; }
  .zeo-new-arrivals { padding: 62px 18px 58px; }
  .zeo-product-carousel { grid-auto-columns: 84%; gap: 14px; margin-top: 38px; scroll-padding-inline: 0; }
  .zeo-product-card__image { height: 410px; }
  .zeo-product-card__media img { width: 86% !important; max-width: 86% !important; height: 86% !important; max-height: 86% !important; }
  .zeo-product-card__media--detail img { width: 100% !important; max-width: 100% !important; height: 100% !important; max-height: 100% !important; }
  .zeo-product-carousel__controls { display: none; }
  .zeo-carousel-progress { width: 76vw; margin-top: 36px; }
  .zeo-product-card__title { font-size: 22px; }
  .zeo-product-card__gallery-controls > span { display: none; }
  .zeo-shop-archive { padding: 0 15px 85px; }
  .zeo-shop-tabs { gap: 22px; }
  .zeo-shop-toolbar { gap: 15px; }
  .zeo-shop-toolbar > span:first-child { display: none; }
  .zeo-product-grid { grid-template-columns: 1fr; gap: 44px; }
  .zeo-product-grid .zeo-product-card__image { height: 440px; }
  .zeo-product-detail { display: block; padding: 20px 18px 100px; }
  .zeo-product-detail__stage { min-height: 56vh; }
  .zeo-product-detail__summary { position: static; padding-top: 34px; }
  .zeo-mobile-product-cta { position: fixed; z-index: 999; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(242, 238, 230, .96); box-shadow: 0 -12px 30px rgba(37, 30, 22, .12); backdrop-filter: blur(12px); font-size: 12px; }
  .zeo-mobile-product-cta a { display: grid; min-width: 145px; min-height: 48px; place-items: center; background: var(--zeo-commerce-ink); color: #fff; font: 600 11px/1 var(--zeo-body-font); letter-spacing: .12em; text-decoration: none; }
}
@media (prefers-reduced-motion: reduce) { .zeo-product-card__media, .zeo-product-card__media img { transition: none; } }
