.site-shell {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.site-container,
.container {
  width: min(100% - 2rem, var(--max-content));
  margin-inline: auto;
}

.site-section {
  padding-block: var(--space-7);
}

.site-section--tight {
  padding-block: var(--space-6);
}

.site-section--flush-top {
  padding-top: var(--space-5);
}

.site-section--alt {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.015), rgba(255, 255, 255, 0));
}

.site-stack {
  display: grid;
  gap: var(--space-5);
}

.site-stack--sm {
  gap: var(--space-4);
}

.site-stack--lg {
  gap: var(--space-7);
}

.site-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.site-split {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-5);
}

.site-grid {
  display: grid;
  gap: var(--space-5);
}

.site-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.site-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.site-sidebar {
  display: grid;
  gap: var(--space-5);
  grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.8fr);
  align-items: start;
}

.site-hero {
  position: relative;
  overflow: clip;
  padding-block: clamp(4rem, 8vw, 7rem);
}

.site-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(8, 12, 8, 0.92), rgba(8, 12, 8, 0.62)),
    radial-gradient(circle at top right, rgba(45, 184, 75, 0.12), transparent 30%);
  pointer-events: none;
}

.site-hero > * {
  position: relative;
  z-index: 1;
}

.site-hero__content {
  display: grid;
  gap: var(--space-5);
  max-width: 48rem;
}

.site-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.site-rail {
  display: grid;
  gap: var(--space-4);
}

@media (max-width: 70rem) {
  .site-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-sidebar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 48rem) {
  .site-section {
    padding-block: var(--space-6);
  }

  .site-grid--2,
  .site-grid--3,
  .site-grid--4 {
    grid-template-columns: 1fr;
  }

  .site-container,
  .container {
    width: min(100% - 1.25rem, var(--max-content));
  }
}
