/* ===== Section/Steps — header + 3 looping step videos with labelled overlay ===== */
.steps { background:var(--c-1); padding-block:72px; }
.steps__container { display:flex; flex-direction:column; gap:var(--gap-head-content); }

.steps__row { display:flex; gap:var(--sp-2); height:600px; width:100%; }

.steps__tile {
  position:relative; flex:1 0 0; min-width:0; height:600px;
  --tile-radius:var(--radius-2xl);   /* 16 desktop; overridden to 24 on mobile */
  border:var(--border-1) solid var(--c-4); border-radius:var(--tile-radius); overflow:hidden;
  /* A playing <video> gets its own GPU layer that ignores the parent's rounded overflow clip,
     so its square corners poke through. clip-path clips that layer to the rounded rect too. */
  clip-path:inset(0 round var(--tile-radius));
  /* poster fallback while the step videos are absent */
  background:linear-gradient(160deg, var(--c-3), var(--c-2));
}
/* border-radius:inherit so the video is clipped to the tile's rounded corners
   (Chrome bleeds <video> past a rounded overflow:hidden parent — the bottom edge pokes out otherwise) */
.steps__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:inherit; }

/* Bottom overlay (h-225): progressive blur + dark gradient + label, label pinned to the bottom */
.steps__overlay {
  position:absolute; left:0; right:0; bottom:0; height:225px;
  display:flex; align-items:flex-end; padding:8px;
}
.steps__darken {
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,
    rgba(0,0,0,0) 0%, rgba(0,0,0,0.044) 8.9%, rgba(0,0,0,0.101) 16.6%,
    rgba(0,0,0,0.179) 24.4%, rgba(0,0,0,0.286) 33.8%, rgba(0,0,0,0.43) 46.3%,
    rgba(0,0,0,0.618) 63.2%, rgba(0,0,0,0.858) 86%, rgb(0,0,0) 100%);
}

/* Label box (bottom): step name centered, step number pinned left */
.steps__label {
  position:relative; z-index:2; width:100%; min-height:56px;
  display:flex; align-items:center; justify-content:center; gap:10px; padding:8px;
  background:var(--c-2); border:var(--border-1) solid var(--c-3); border-radius:var(--radius-md);
  color:var(--c-12);
}
.steps__num {
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  font-family:var(--font-display); font-weight:600; font-size:20px; line-height:1.2; text-transform:uppercase;
}
.steps__name { font-weight:500; font-size:24px; line-height:1.2; letter-spacing:-0.04em; text-align:center; }

/* footer (dots + arrows) — mobile carousel only */
.steps__footer { display:none; }
.steps__dots { display:flex; align-items:center; gap:var(--sp-2); }
.steps__dot { width:8px; height:8px; border-radius:var(--radius-full); background:var(--c-5); }
.steps__dot.is-active { background:var(--c-11); }
.steps__arrows { display:flex; gap:var(--sp-2); }

/* --- Mobile (Figma 9489:41420): tiles in a rounded-32 carousel viewport --- */
@media (max-width:1023px) {
  .steps { padding-block:48px; }
  .steps__container { gap:var(--gap-content); }
  /* the carousel "rectangle" around the cards: c-3 bg, c-4 border, rounded-32, inset shadow */
  .steps__viewport {
    position:relative; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-inline:var(--sp-2);
    background:var(--c-3); border:var(--border-1) solid var(--c-4); border-radius:32px; padding:var(--sp-2);
    box-shadow:inset 0 0 4px var(--shadow-color); scrollbar-width:none;
  }
  .steps__viewport::-webkit-scrollbar { display:none; }
  .steps__row { height:auto; width:max-content; gap:var(--sp-2); }
  .steps__tile { flex:none; width:286px; height:auto; aspect-ratio:272 / 480; --tile-radius:24px; scroll-snap-align:start; }
  /* mobile label: rounded-16 (not 8), content-height (no 56 min), smaller type — per Figma 9489:41440 */
  .steps__label { border-radius:16px; min-height:0; }
  .steps__name { font-size:20px; }
  .steps__num { font-size:18px; left:18px; }
  .steps__footer { display:flex; align-items:center; justify-content:space-between; width:100%; }
}
