.store-showcase {
  /* Let the media respond to its own width, independently of header folding. */
  --showcase-shell-edge: clamp(0px, calc((100vw - 767px) * .0720720721), var(--desktop-nav-edge, 24px));
  --showcase-shell-width: min(calc(100cqw - var(--showcase-shell-edge) * 2), var(--desktop-nav-max, 1200px));
  --showcase-image-gap: clamp(8px, calc(var(--showcase-shell-width) / 75), 16px);
  --showcase-corner-radius: 16px;
  --showcase-image-height: calc((var(--showcase-shell-width) - var(--showcase-image-gap)) * 360 / 887);
  --showcase-gap: var(--showcase-image-gap);
  --showcase-aspect-ratio: 16 / 9;
  /* Keep the accepted desktop proportions and a readable phone frame.
     Both limits grow with the container; narrowing never enlarges the media. */
  --showcase-width: min(calc(var(--showcase-shell-width) - 48px), max(342px, calc(var(--showcase-image-height) * 16 / 9)));
  --showcase-height: calc(var(--showcase-width) * 9 / 16);
  --showcase-slot-inset: calc(var(--showcase-width) * .05);
  container-type: inline-size;
  width: 100%;
  padding: 8px 0 clamp(48px, calc(48px + (100vw - 390px) * .0846560847), 80px);
  color: var(--text, #1d1d1f);
}
.store-showcase-gallery { width: var(--showcase-shell-width); margin-inline: auto; }
.store-showcase:has(.store-showcase-gallery:not([hidden]), .store-showcase-feature-images:not([hidden])) {
  padding-top: max(clamp(48px, calc(48px + (100vw - 390px) * .1904761905), 120px), min(12vw, 200px));
  border-top: 1px solid var(--line, #f0f1f2);
}
.store-showcase[hidden],
.store-showcase [hidden] { display: none !important; }
.store-showcase-title {
  width: var(--showcase-width);
  margin: 0 auto 16px;
  font-family: var(--font-ui-display);
  font-size: clamp(24px, calc(24px + (100vw - 390px) * .0211640212), 32px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.store-showcase-track {
  display: flex;
  gap: var(--showcase-gap);
  width: 100%;
  margin-inline: auto;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding: 0 calc((100% - var(--showcase-width)) / 2 + var(--showcase-slot-inset));
  scroll-padding-inline: calc((100% - var(--showcase-width)) / 2);
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  direction: ltr;
  touch-action: pan-y pinch-zoom;
}
.store-showcase-track::-webkit-scrollbar { display: none; }
.store-showcase-track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.store-showcase-slide {
  position: relative;
  flex: 0 0 var(--showcase-width);
  aspect-ratio: var(--showcase-aspect-ratio);
  height: var(--showcase-height);
  margin: 0 calc(0px - var(--showcase-slot-inset));
  overflow: hidden;
  border-radius: calc(var(--showcase-corner-radius) / var(--showcase-scale, .8));
  scroll-snap-align: center;
  scroll-snap-stop: always;
  background: #111114;
  transform: scale(var(--showcase-scale, .8));
  transform-origin: center bottom;
}
.store-showcase-track[data-single="true"] { padding-inline: calc((100% - var(--showcase-width)) / 2); }
.store-showcase-track[data-single="true"] .store-showcase-slide { margin-inline: 0; }
.store-showcase-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #000;
  opacity: var(--showcase-dim, .45);
  pointer-events: none;
}
.store-showcase-slide img,
.store-showcase-slide video { display: block; width: 100%; height: 100%; object-fit: contain; }
.store-showcase-slide video { cursor: auto; }
.store-showcase-feature-images {
  display: grid;
  align-content: start;
  gap: var(--showcase-image-gap);
  width: var(--showcase-shell-width);
  margin: var(--showcase-image-gap) auto 0;
  direction: ltr;
}
.store-showcase-gallery[hidden] + .store-showcase-feature-images { margin-top: 0; }
.store-showcase-feature-row {
  display: grid;
  grid-template-columns: minmax(0, 519fr) minmax(0, 368fr);
  gap: var(--showcase-image-gap);
}
.store-showcase-feature-row[data-reversed="true"] { grid-template-columns: minmax(0, 368fr) minmax(0, 519fr); }
.store-showcase-feature-row[data-single="true"] { grid-template-columns: minmax(0, 1fr); }
.store-showcase-feature-image {
  height: var(--showcase-image-height);
  min-width: 0;
  margin: 0;
  border-radius: var(--showcase-corner-radius);
  overflow: hidden;
  background: #111114;
}
.store-showcase-feature-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.store-showcase-feature-images:focus-visible { outline: 2px solid var(--blue, #0060ef); outline-offset: 4px; }
.store-showcase-track.is-dragging video { pointer-events: none; }
.store-showcase-slide:fullscreen { width: 100vw; height: 100vh; max-width: none; aspect-ratio: auto; border-radius: 0; transform: none; opacity: 1; }
.store-showcase-slide:fullscreen::after { opacity: 0; }
.store-showcase-error {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 24px;
  margin: 0;
  color: #fff;
  text-align: center;
}
.store-showcase-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: var(--showcase-shell-width);
  margin: 8px auto 0;
}
.store-showcase-caption { min-width: 0; width: var(--showcase-width); margin: 0; max-width: 65ch; font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.store-showcase-navigation { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 0 auto 24px; direction: ltr; }
.store-showcase-arrow {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #1d1d1f;
  background: #f0f0f3;
  cursor: pointer;
  transition: background-color 160ms ease-out;
}
.store-showcase-arrow:hover:not(:disabled) { background: #e1e1e6; }
.store-showcase-arrow:disabled { opacity: .35; cursor: default; }
.store-showcase-count { min-width: 48px; color: #515155; font-size: 14px; text-align: center; font-variant-numeric: tabular-nums; direction: ltr; }
.store-showcase-track:focus-visible { outline: 2px solid #0066ff; outline-offset: -2px; }
.store-showcase-arrow:focus-visible,
.store-showcase-slide video:focus-visible { outline: 2px solid #0066ff; outline-offset: 3px; }
.store-showcase-details { display: flex; justify-content: center; flex-shrink: 0; }
.store-showcase-gallery[hidden] + .store-showcase-feature-images[hidden] + .store-showcase-footer { margin-top: 0; }
.store-showcase-details .primary-button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  min-height: 44px;
  padding: 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--blue, #0060ef);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  transition: color 160ms ease-out;
}
.store-showcase-details svg { width: 14px; height: 14px; flex-shrink: 0; }
html[dir="rtl"] .store-showcase-details svg { transform: scaleX(-1); }
.store-showcase-details .primary-button:hover,
.store-showcase-details .primary-button:focus-visible { background: transparent; transform: none; text-decoration: underline; text-underline-offset: 3px; }
.store-showcase-details .primary-button:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
@media (max-width: 767px) {
  .store-showcase {
    --showcase-portrait-width: min(calc(var(--showcase-shell-width) - 48px), 342px);
  }
  .store-showcase-feature-images {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 24px 16px;
    scroll-padding-inline: 24px;
    scroll-snap-type: none;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
    touch-action: auto;
    scrollbar-width: thin;
    scrollbar-color: #85898c #f0f1f2;
  }
  .store-showcase-feature-images::-webkit-scrollbar { height: 4px; }
  .store-showcase-feature-images::-webkit-scrollbar-track { background: #f0f1f2; }
  .store-showcase-feature-images::-webkit-scrollbar-thumb { background: #85898c; border-radius: 4px; }
  .store-showcase-feature-row,
  .store-showcase-feature-row[data-reversed="true"] { display: contents; }
  .store-showcase-feature-image {
    flex: 0 0 var(--showcase-portrait-width);
    height: auto;
    aspect-ratio: 3 / 4;
  }
  .store-showcase-caption { font-size: 14px; }
  .store-showcase-navigation { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .store-showcase-arrow, .store-showcase-details .primary-button { transition: none; }
  .store-showcase-track, .store-showcase-feature-images { scroll-behavior: auto; }
}
