@media (max-width: 640px) {
  /* Native scrolling also keeps every card reachable without JavaScript. */
  .pv-formats,
  .other-formats__grid {
    display: flex;
    gap: var(--space-3);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
  }
  .pv-formats > .pv-format,
  .other-formats__grid > article {
    flex: 0 0 calc(100% - var(--space-6));
    min-width: 0;
    max-width: none;
    margin: 0;
    scroll-snap-align: start;
  }
  .other-formats__grid > article { display: flex; }
  .other-formats__card { width: 100%; }
  .product-mobile { min-width: 0; }
  .product-mobile__track {
    position: relative;
    display: flex;
    gap: var(--space-3);
    max-width: none;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .product-mobile__track::-webkit-scrollbar { display: none; }
  .pv-formats.product-mobile__track::after,
  .other-formats__grid.product-mobile__track::after {
    content: '';
    flex: 0 0 var(--space-3);
  }
  .product-mobile__track > * { scroll-snap-align: start; }
  .product-mobile__sequence {
    display: block;
  }
  .product-mobile__sequence > .pv-flow__node {
    padding: var(--space-6) var(--space-6) var(--space-14);
    border: 1px solid var(--border-subtle);
    border-top: 1px solid var(--border-subtle);
    border-radius: var(--radius-card);
    background: var(--canvas);
  }
  .product-mobile__sequence > .pv-flow__node[hidden] { display: none; }
  .product-mobile__sequence > .pv-flow__node.is-active {
    animation: productMobileStepEnter var(--dur-entrance) var(--ease-out) var(--dur-fast) both;
  }
  .product-mobile__sequence > .pv-flow__node.is-leaving {
    animation: productMobileStepExit var(--dur-moderate) var(--ease-standard) both;
  }
  .product-mobile__sequence > .pv-flow__node:not(:last-child)::after {
    content: '\2192';
    display: block;
    top: auto;
    bottom: var(--space-4);
    left: auto;
    right: var(--space-6);
    line-height: 1;
  }
  .product-mobile__sequence .pv-source__row { padding: var(--space-3) var(--space-2); gap: var(--space-2); }
  .product-mobile__sequence .pv-source__images { flex-basis: 88px; }
  .product-mobile__sequence .pv-source__row > span { overflow-wrap: anywhere; }
  .product-mobile__sequence .pv-script__sheet { padding: var(--space-4); }
  .product-mobile__sequence .pv-flow__caption { flex-wrap: wrap; }
  .product-mobile__controls {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
  }
  .product-mobile--tools .product-mobile__controls { margin: var(--space-4) 0 0; }
  .product-mobile__steps { display: flex; flex: 1; align-items: center; min-width: 0; }
  .product-mobile__steps > button { flex: 1; position: relative; }
  .product-mobile__steps > button::after {
    content: '';
    position: absolute;
    inset: auto var(--space-1) 0;
    height: 2px;
    background: var(--border-subtle);
  }
  .product-mobile__steps > button[aria-current="step"]::after { background: var(--brand-blue-tint); }
  .product-mobile__controls button {
    display: grid;
    place-items: center;
    min-width: 44px;
    min-height: 44px;
    padding: var(--space-2);
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    background: transparent;
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    cursor: pointer;
  }
  .product-mobile__controls button[aria-current="step"] { color: var(--brand-blue-tint); }
  .product-mobile__controls button:is(:hover, :focus-visible) { background: var(--surface-high); color: var(--text-primary); }
  .product-mobile__controls button:focus-visible { outline: 2px solid var(--brand-blue-tint); outline-offset: 2px; }
  .product-mobile__controls button[hidden] { display: none; }
  .product-mobile__controls svg { width: var(--space-4); height: var(--space-4); fill: none; stroke: currentColor; stroke-width: 1.8; }
}

@keyframes productMobileStepEnter {
  from { opacity: 0; transform: translateX(var(--space-4)); }
  to { opacity: 1; transform: none; }
}

@keyframes productMobileStepExit {
  from { opacity: 1; transform: none; }
  to { opacity: 0; transform: translateX(calc(-1 * var(--space-3))); }
}

@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .product-mobile__sequence { display: grid; }
  .product-mobile__sequence > .pv-flow__node:is(.is-active, .is-leaving) { animation: none; }
}
