@layer elements {
  .container {
    max-width: 60rem;
    margin-inline: auto;
  }

  /* Buttons */
  .btn {
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    cursor: pointer;
    border: none;
    border-radius: var(--radius-md);
    padding-inline: var(--space-6);
    height: 2.5rem;
    transition:
      background-color 0.2s ease-out,
      color 0.2s ease-out;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
  }

  .btn:disabled {
    cursor: not-allowed;
    opacity: 0.6;
  }

  .btn:focus-visible {
    outline: 2px solid var(--focus-ring-color);
    outline-offset: 2px;
  }

  /* Primary CTA button */
  .btn-primary {
    background-color: var(--color-primary);
    color: var(--color-text-inverse);

    &:focus-visible,
    &:active {
      background-color: var(--color-brand-500);
    }
  }

  .btn-secondary {
    background-color: var(--color-brand-50);
    color: var(--color-primary);

    &:hover {
      background-color: var(--color-brand-100);
      color: var(--color-primary-hover);
    }

    &:focus-visible,
    &:active {
      outline: 2px solid var(--focus-ring-color);
      outline-offset: 2px;
    }
  }

  /* Section heading (reusable block) */
  .section-heading {
    text-transform: uppercase;
    font-weight: 400;
    font-size: 2rem;
    color: var(--color-brand-600);
    margin-bottom: var(--space-2);
  }

  .section-heading::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--color-brand-600);
    margin-top: var(--space-2);
  }
}
