.steps-bg-timeline__card-col {
    max-width: 28rem;
}

.steps-bg-timeline__badge-circle {
    width: 4rem;
    height: 4rem;
}

.steps-bg-timeline__timeline-line {
    height: 1px;
}

/* Mobile: label stays in flow under the badge (no overlap between adjacent steps).
   From md up it detaches below the timeline line, centered on the badge. */
.steps-bg-timeline__badge-label {
    max-width: 8rem;
}

@media (min-width: 768px) {
    .steps-bg-timeline__badge-label {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        margin-top: 2rem;
        max-width: none;
        white-space: nowrap;
    }
}

/* Grid + gap: @sem may obfuscate Tailwind grid/gap */
.badge-tower-grid {
    display: grid;
    width: 100%;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 1024px) {
    .badge-tower-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Badge anchor: stable vertical offset (bs had top-0; tw -top-8 was too low vs 5rem circle) */
.philosophy-v3-badge-decor {
    top: -4.25rem;
}

.philosophy-large-badge {
    width: 5rem;
    height: 5rem;
}

.philosophy-bg__img {
    object-fit: cover;
}

/* faq v30 — full-width horizontal index lines */
.faq-index__row:last-child {
  border-bottom-width: 0;
}

.faq-index__headline {
  letter-spacing: -0.03em;
}

.faq-index__line {
  display: grid;
  width: 100%;
  align-items: center;
  column-gap: 1.5rem;
  row-gap: 1rem;
  grid-template-columns: 1fr;
  grid-template-areas:
    'num'
    'question'
    'answer'
    'media';
}

.faq-index__cell--num {
  grid-area: num;
}

.faq-index__cell--question {
  grid-area: question;
  min-width: 0;
}

.faq-index__cell--answer {
  grid-area: answer;
  min-width: 0;
}

.faq-index__cell--media {
  grid-area: media;
  min-width: 0;
}

.faq-index__photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

@media (min-width: 768px) {
  .faq-index__line {
    column-gap: 2rem;
    row-gap: 0;
    grid-template-columns: 4.5rem minmax(0, 1fr) minmax(0, 1.25fr) minmax(12rem, 26%);
    grid-template-areas: 'num question answer media';
  }

  .faq-index__photo {
    min-height: 10rem;
  }
}

@media (min-width: 1200px) {
  .faq-index__line {
    column-gap: 3rem;
    grid-template-columns: 5rem minmax(0, 1fr) minmax(0, 1.35fr) minmax(14rem, 24%);
  }
}

