.ov-site {
  min-height: 100vh;
}

.ov-skip-link {
  position: fixed;
  inset-block-start: var(--ov-space-2);
  inset-inline-start: var(--ov-space-2);
  z-index: 1100;
  transform: translateY(calc(-100% - var(--ov-space-4)));
  padding: 0.75rem 1rem;
  color: var(--ov-color-surface);
  background: var(--ov-color-heading);
  border-radius: var(--ov-radius-2);
  text-decoration: none;
  transition: transform var(--ov-transition-fast);
}

.ov-skip-link:focus {
  transform: translateY(0);
}

.ov-container {
  width: min(100% - (var(--ov-gutter) * 2), var(--ov-container-standard));
  margin-inline: auto;
}

.ov-container-compact .ov-container {
  --ov-container-standard: var(--ov-container-compact);
}

.ov-container-wide .ov-container {
  --ov-container-standard: var(--ov-container-wide);
}

.ov-main {
  padding-block: var(--ov-space-6) var(--ov-space-8);
}

.ov-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--ov-space-4);
}

.ov-component {
  min-width: 0;
}

.ov-region + .ov-layout,
.ov-layout + .ov-region {
  margin-block-start: var(--ov-space-5);
}

.ov-sidebar {
  min-width: 0;
}

.ov-component-frame {
  width: min(100% - (var(--ov-gutter) * 2), var(--ov-content-width));
  margin-inline: auto;
  padding-block: var(--ov-space-6);
}

.ov-error-shell {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: var(--ov-space-4);
}

.ov-error-card {
  width: min(100%, 36rem);
  padding: var(--ov-space-5);
  background: var(--ov-color-surface);
  border: 1px solid var(--ov-color-border);
  border-radius: var(--ov-radius-3);
  box-shadow: var(--ov-shadow-sm);
}

.ov-prose {
  max-width: var(--ov-content-width);
  color: var(--ov-color-text);
  line-height: var(--ov-line-longform);
}

.ov-prose > * + * {
  margin-block-start: var(--ov-space-3);
}

.ov-prose h1,
.ov-prose h2,
.ov-prose h3 {
  margin-block-start: var(--ov-space-5);
}

.ov-kicker {
  margin-block-end: var(--ov-space-1);
  color: var(--ov-color-accent);
  font-size: var(--ov-step--1);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.ov-lead {
  color: var(--ov-color-text-muted);
  font-size: var(--ov-step-1);
}

@media (min-width: 992px) {
  .ov-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .ov-layout:has(.ov-sidebar-start) {
    grid-template-columns: minmax(14rem, var(--ov-sidebar-width)) minmax(0, 1fr);
  }

  .ov-layout:has(.ov-sidebar-end) {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, var(--ov-sidebar-width));
  }

  .ov-layout:has(.ov-sidebar-start):has(.ov-sidebar-end) {
    grid-template-columns: minmax(14rem, var(--ov-sidebar-width)) minmax(0, 1fr) minmax(14rem, var(--ov-sidebar-width));
  }
}
