@layer components {
  .stage {
    position: relative;
    background: var(--grad);
    border-bottom: 1px solid var(--line);
    overflow: hidden;
  }
  .stage::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 1px;
    background: var(--grad-line);
  }

  .stage-inner {
    display: grid;
    gap: clamp(2rem, 1rem + 5vw, 4rem);
    align-items: center;
    padding-block: clamp(2.6rem, 1.6rem + 6vw, 5.5rem);
  }

  .stage-title {
    margin-bottom: var(--s-3);
    max-width: 16ch;
  }
  .stage-title .accent {
    background: var(--grad-line);
    -webkit-background-clip: text;
    background-clip: text;
    color: var(--accent);
  }

  .stage-text p {
    margin-bottom: var(--s-3);
  }

  .stage-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-2);
    margin-top: var(--s-4);
  }

  .stage-trust {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-3) var(--s-4);
    margin-top: var(--s-5);
    padding-top: var(--s-4);
    border-top: 1px solid var(--line);
  }
  .stage-trust-item {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
  }
  .stage-trust-num {
    font-family: var(--font-display);
    font-size: 1.7rem;
    font-weight: 700;
    color: var(--accent);
  }
  .stage-trust-label {
    color: var(--muted);
    font-size: 0.88rem;
  }

  .stage-media {
    position: relative;
  }
  .stage-media img {
    width: 100%;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }
  .stage-badge {
    position: absolute;
    right: -0.4rem;
    bottom: -0.9rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 1.05rem;
    background: hsl(202 20% 10% / 0.92);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(2px);
  }
  .stage-badge strong {
    font-family: var(--font-display);
    color: var(--accent);
  }
  .stage-badge span {
    color: var(--muted);
    font-size: 0.85rem;
  }

  @media (min-width: 60rem) {
    .stage-inner {
      grid-template-columns: 1.05fr 0.95fr;
    }
  }
}
