/* ============================================================
   Container — shared responsive layout constraint
   Provides 1024px max content width with responsive side padding.
   Import this in any component that uses the .container class.
   ============================================================ */

.container {
  position:   relative;
  width:      100%;
  max-width:  calc(1024px + 160px); /* 1024px content + 80px × 2 */
  padding:    0 80px;
  margin:     0 auto;
  box-sizing: border-box;
}

/* Tablet (≤991px): 60px sides */
@media (max-width: 991px) {
  .container {
    padding: 0 60px;
  }
}

/* Landscape mobile (≤767px): 2rem sides */
@media (max-width: 767px) {
  .container {
    padding: 0 2rem;
  }
}



/* ============================================================
   Wide container — 1360px content + 48px side padding
   Used for full-bleed section content blocks (slider, big cards)
   that need to be wider than the standard 1024px text container.
   ============================================================ */

.container-wide {
  width:      100%;
  max-width:  calc(1384px + 96px);   /* 1384px content + 48px × 2 */
  padding:    0 3rem;                /* 48px sides */
  margin:     0 auto;
  box-sizing: border-box;
}

/* Tablet (≤991px): 16px less than .container (60px → 44px) */
@media (max-width: 991px) {
  .container-wide {
    padding: 0 44px;
  }
}

/* Landscape mobile (≤767px): 16px less than .container (2rem → 1rem) */
@media (max-width: 767px) {
  .container-wide {
    padding: 0 1rem;
  }
}


/* ============================================================
   VrHowItWorksSection — "Set your intake standards" (Figma 6237:3176)
   Section-header + sticky badge convention over a 3×2 icon-card grid.
   ============================================================ */

.vr-how-it-works {
  background: var(--background);
}

/* Header + cards as one group; owns the 64px rhythm between them.
   .hp-rail stays bounded by the outer .container. */
.vr-hiw__content {
  display:        flex;
  flex-direction: column;
  gap:            4rem;   /* 64px between header and cards */
}


/* ---- Cards grid ------------------------------------------- */

.vr-hiw__cards {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   var(--spacing-3);   /* 12px */
  width:                 100%;
}

/* Card = shared .card-secondary shell + layout. */
.vr-hiw__card {
  display:        flex;
  flex-direction: column;
  gap:            2rem;          /* 32px — icon → text */
  padding:        1.75rem;       /* 28px — Figma p-28 */
  overflow:       hidden;
}

.vr-hiw__icon {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  width:           48px;
  height:          48px;
  flex-shrink:     0;
  border-radius:   var(--radius-full);
  background:      var(--card);
  color:           var(--foreground);
}

.vr-hiw__card-text {
  display:        flex;
  flex-direction: column;
  gap:            var(--spacing-2);   /* 8px — title → body */
}

.vr-hiw__card-title {
  margin:      0;
  font-size:   var(--font-size-base);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-base);
  color:       var(--popover-foreground);
}

.vr-hiw__card-body {
  margin:      0;
  font-size:   var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  color:       var(--muted-foreground);
}


/* ============================================================
   Tablet (≤991px) — 2-column grid
   ============================================================ */

@media (max-width: 991px) {
  .vr-hiw__cards {
    grid-template-columns: repeat(2, 1fr);
  }
}


/* ============================================================
   Mobile (≤767px) — single column
   ============================================================ */

@media (max-width: 767px) {
  .vr-hiw__cards {
    grid-template-columns: 1fr;
  }
}

