/* Featured product pages and dot navigation. */
.zen-featured {
  --featured-gap: clamp(16px, 2vw, 32px);
  --featured-section-space: clamp(32px, 3vw, 48px);
  --featured-title-space: 32px;
  --featured-name-space: 12px;
  --featured-name-size: 16px;
  --featured-price-space: 4px;
  --featured-title-size: var(--zen-home-section-title-size);
  --featured-price-size: 16px;
  --featured-columns: 5;
  --featured-dots-space: 24px;
  --featured-dot-size: 8px;
  --featured-dot-target: 44px;
  --featured-dot-active-width: 24px;
  --featured-dot-duration: 150ms;
  padding-top: 0;
  padding-bottom: var(--featured-section-space);
}
.zen-featured__title {
  margin: 0 0 var(--featured-title-space);
  color: var(--zen-and-tao-muted);
  font: 500 var(--featured-title-size)/1.15 "Jost", Arial, sans-serif;
  text-align: center;
}
.zen-featured__products {
  display: grid;
  grid-template-columns: repeat(var(--featured-columns), minmax(0, 1fr));
  gap: var(--featured-gap);
  padding: 0;
  margin: 0;
  list-style: none;
}
.zen-featured__action { display: flex; justify-content: center; margin-bottom: var(--featured-title-space); }
.zen-featured__product { min-width: 0; margin: 0; }
.zen-featured[data-ready] .zen-featured__products {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--featured-columns) - 1) * var(--featured-gap)) / var(--featured-columns));
  overflow-x: auto;
  overflow-y: hidden;
  touch-action: pinch-zoom;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.zen-featured[data-ready] .zen-featured__products::-webkit-scrollbar { display: none; }
.zen-featured__product[data-page-start] { scroll-snap-align: start; }
.zen-featured[data-ready] .zen-featured__products[data-dragging] { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.zen-featured__products:focus-visible { outline: 2px solid var(--zen-and-tao-ink); outline-offset: 4px; }
.zen-featured__dots {
  display: flex;
  justify-content: center;
  margin-top: var(--featured-dots-space);
}
.zen-featured__dots[hidden] { display: none; }
.zen-featured__dot {
  position: relative;
  display: grid;
  place-items: center;
  width: var(--featured-dot-target);
  height: var(--featured-dot-target);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--zen-and-tao-muted);
  cursor: pointer;
  appearance: none;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.zen-featured__dot::before,
.zen-featured__dot::after {
  content: "";
  position: absolute;
  width: var(--featured-dot-size);
  height: var(--featured-dot-size);
  border: 0;
  border-radius: var(--featured-dot-size);
  background: currentColor;
  opacity: .35;
  transition: opacity var(--featured-dot-duration) ease-out;
}
.zen-featured__dot::after { width: var(--featured-dot-active-width); opacity: 0; }
.zen-featured__dot[aria-current="true"] { color: var(--zen-and-tao-ink); }
.zen-featured__dot[aria-current="true"]::before { opacity: 0; }
.zen-featured__dot[aria-current="true"]::after { opacity: 1; }
.zen-featured__dot:hover { color: var(--zen-and-tao-ink); background: transparent; }
.zen-featured__dot:hover::before { opacity: 1; }
.zen-featured__dot:focus:not(:focus-visible) { outline: none; }
.zen-featured__dot:active::before { opacity: 1; }
.zen-featured__dot:focus-visible { outline: 2px solid var(--zen-and-tao-ink); outline-offset: -4px; }
.zen-featured__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--zen-and-tao-line);
  border-radius: 8px;
  background: #fff;
  color: var(--zen-and-tao-ink);
  text-decoration: none;
  transition: none;
}
.zen-featured__card:hover { color: var(--zen-and-tao-ink); text-decoration: none; }
.zen-featured__media { display: block; flex: none; aspect-ratio: 4 / 5; overflow: hidden; background: var(--zen-and-tao-soft); }
.zen-featured__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.zen-featured[data-ready] .zen-featured__media img { -webkit-user-drag: none; }
.zen-featured__name {
  display: -webkit-box;
  flex: none;
  height: 3em;
  margin: var(--featured-name-space) 12px 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--zen-and-tao-ink);
  font: 400 var(--featured-name-size)/1.5 "Jost", Arial, sans-serif;
  text-align: center;
  overflow-wrap: anywhere;
}
.zen-featured__price {
  display: block;
  min-height: 1.5em;
  margin: var(--featured-price-space) 12px 16px;
  padding: 0;
  background: transparent;
  font: 500 var(--featured-price-size)/1.5 "Jost", Arial, sans-serif;
  text-align: center;
}
.zen-featured__price ins { color: inherit; text-decoration: none; }
.zen-featured__card:focus-visible { outline: 2px solid var(--zen-and-tao-ink); outline-offset: 4px; }
@media (max-width: 782px) {
  .zen-featured { --featured-columns: 2; }
  .zen-featured__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .zen-featured__dot::before, .zen-featured__dot::after { transition: none; }
}
