@layer layout {
  .site-main {
    background: var(--color-panel);
    margin-inline: 0;
    min-height: calc(100vh - 10.5rem);
    padding: var(--space-4);
  }

  .site-footer {
    align-items: center;
    border-top: var(--border-subtle);
    background: var(--color-chrome);
    color: #c7c7c4;
    display: flex;
    flex-wrap: wrap;
    font-family: var(--font-mono);
    font-size: var(--font-size-xs);
    gap: var(--space-3);
    justify-content: space-between;
    letter-spacing: var(--letter-spacing-wide);
    margin-inline: 0;
    padding: 0.75rem 1rem;
    text-transform: uppercase;
  }

  .site-footer__code {
    color: var(--color-orange);
  }

  .site-footer__credits a {
    color: #fff;
  }

  .page-heading {
    align-items: end;
    border-bottom: var(--border-heavy);
    display: flex;
    gap: var(--space-5);
    justify-content: space-between;
    margin-bottom: var(--space-3);
    padding: var(--space-3);
    background: var(--color-panel-raised);
  }

  .page-heading--detail {
    margin-bottom: 0;
  }

  .page-heading--form {
    max-width: 68rem;
  }

  .page-heading__description {
    color: var(--color-muted);
    font-size: var(--font-size-sm);
    margin-top: var(--space-2);
    max-width: 42rem;
  }

  .page-footer-actions {
    border-top: var(--border-subtle);
    margin-top: var(--space-5);
    padding-top: var(--space-4);
  }

  .section-block {
    margin-top: var(--space-5);
  }

  .section-heading {
    align-items: end;
    border-bottom: var(--border-heavy);
    display: flex;
    gap: var(--space-4);
    justify-content: space-between;
    margin-bottom: 0;
    padding: var(--space-2) var(--space-3);
    background: var(--color-panel-raised);
  }

  .section-heading h2 {
    font-size: var(--font-size-xl);
  }

  @media (min-width: 48.001rem) {
    body {
      display: flex;
      flex-direction: column;
    }

    .site-main {
      flex: 1;
      min-height: 0;
      width: 100%;
    }
  }

  @media (max-width: 48rem) {
    .page-heading,
    .section-heading {
      align-items: stretch;
      flex-direction: column;
    }

    .site-main {
      margin-inline: 0;
      padding: var(--space-2);
    }
  }
}
