/* ==========================================================================
   BAR3AM — #steps · 4-step registration stepper
   Figma node 2475:2325 "Steps Section" — 1280 × 294.

   Every desktop number below is read straight off the Figma node:
     section padding-block 30 / 40 · eyebrow row 15 · head gaps 14 · row pt 24
     stepper row 954 = 4 × 180 + 3 × 78 · circle group 76 · circle 66
     icon 26 · num badge 26 (x = 52 inside the 76 group) · chevron 26
     eyebrow 14px #424242 + 24×2 rule in #135BB0 · title 26px · label 15px
   ========================================================================== */

.steps {
  padding-block: 30px 40px;
  background: var(--c-card);
}

/* ---- Section head ------------------------------------------------------- */
/* Figma-exact overrides of the shared head pattern — scoped to .steps so the
   base.css definitions stay untouched for the other sections. */
.steps .sec-head { margin-bottom: 14px; }

.steps .eyebrow {
  /* Block-level so the row is exactly 15px tall: as an inline-flex it would sit
     on a line box governed by the parent's strut and push the title ~9px down. */
  display: flex;
  width: fit-content;
  margin-inline: auto;
  gap: 14px;
  line-height: 15px; /* Figma row is exactly 15px tall */
  margin-bottom: 14px;
  /* Figma paints this label #424242 — a neutral grey that has no token of its
     own, so it is derived rather than hardcoded. */
  color: color-mix(in srgb, black 74%, white);
}

/* Figma puts the 24×2 rule at the START of the line (the right edge in RTL)
   and paints it with the primary blue, not the shared green. */
.steps .eyebrow::after {
  order: -1;
  height: 2px;
  background: var(--c-primary);
}

.steps .sec-title {
  font-size: 26px;   /* not --fs-h2 (24px) — Figma text is 26px */
  line-height: 1.2;  /* Figma text box: 26px type → 31px box */
}

.steps__title-accent { color: var(--c-primary); }

/* ---- Stepper row -------------------------------------------------------- */
/* 4 × 180px step columns separated by 26 + 26 (chevron) + 26 = 78px → 954px. */
.steps__row {
  display: grid;
  grid-template-columns: repeat(4, 180px);
  column-gap: 78px;
  justify-content: center;
  padding-block-start: 24px;
}

.steps__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* ---- Circle + number badge ---------------------------------------------- */
.steps__circle-group {
  position: relative;
  width: 76px;
  height: 76px;
  flex: none;
}

.steps__circle {
  position: absolute;
  inset-block-start: 5px;
  inset-inline-start: 5px;
  width: 66px;
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-pill);
  background: var(--step-accent);
  color: var(--c-text-on-dark);
  box-shadow: 0 8px 16px color-mix(in srgb, var(--step-accent) 35%, transparent);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.steps__icon {
  width: 26px;
  height: 26px;
  flex: none;
}

/* Figma: x = 52 inside the 76px group, i.e. 2px past its trailing edge. */
.steps__num {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: -2px;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-pill);
  background: var(--c-card);
  border: 2px solid var(--step-accent);
  color: var(--step-accent);
  font-size: 13px;
  font-weight: var(--fw-bold);
  line-height: 1;
  transition: transform var(--dur) var(--ease);
}

/* ---- Label -------------------------------------------------------------- */
.steps__label {
  margin-block-start: 14px;
  width: 100%;
  max-width: 180px;
  font-size: 15px;  /* not --fs-sm (14px) — Figma text is 15px */
  font-weight: var(--fw-bold);
  line-height: 1.2; /* Figma line box: 15px type → 18px */
  color: var(--c-text);
}

/* ---- Chevron separator --------------------------------------------------
   26px glyph centred in the 78px gap (39px out, minus half its width) and
   vertically centred on the 76px circle group. RTL: it sits on the item's
   inline-end side, pointing at the next step. Colour is the Figma fill
   #ADC6E4 = the primary blue at 35% over white. */
.steps__chev {
  position: absolute;
  inset-block-start: 38px;
  inset-inline-end: -52px;
  width: 26px;
  height: 26px;
  transform: translateY(-50%);
  color: color-mix(in srgb, var(--c-primary) 35%, transparent);
  pointer-events: none;
}

.steps__chev svg { width: 100%; height: 100%; }

/* ---- Hover -------------------------------------------------------------- */
.steps__item:hover .steps__circle {
  transform: scale(1.08);
  box-shadow: 0 8px 16px color-mix(in srgb, var(--step-accent) 35%, transparent),
              0 0 0 6px color-mix(in srgb, var(--step-accent) 16%, transparent);
}

.steps__item:hover .steps__num { transform: scale(1.06); }

/* ---- Responsive ---------------------------------------------------------
   Figma has no breakpoints; the 954px row is the desktop target and still
   fits at 1024. Below that: 4 → 2 → 1 columns, chevrons dropped as soon as
   they no longer join anything horizontally. */
@media (max-width: 1000px) {
  .steps__row {
    grid-template-columns: repeat(2, 180px);
    column-gap: 56px;
    row-gap: 36px;
  }
  .steps__chev { display: none; }
}

@media (max-width: 520px) {
  .steps {
    padding-block: 24px 32px;
  }
  .steps__row {
    grid-template-columns: 180px;
    row-gap: 28px;
  }
}
