.sv-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  /* Do NOT clip overflow on .sv-page — it pairs with overflow-y and clips
     absolutely positioned mega panels that extend below the sticky header. */
}

.sv-page__main {
  flex: 1 0 auto;
  display: grid;
  gap: var(--sv-space-6);
  /* No bottom padding: the footer panel supplies its own generous top
     padding, and a trailing gap here exposed a strip of page background
     between a full-bleed closing section and the footer. */
  padding-block: var(--sv-space-6) 0;
  /* Contain rare subpixel bleed from full-width marketing sections. */
  overflow-x: clip;
  min-width: 0;
}

.sv-region--hero,
.sv-region--content-above,
.sv-region--content-below,
.sv-main {
  min-width: 0;
}

@media (min-width: 1024px) {
  .sv-page__main:has(.sv-sidebar) {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  }
}

.sv-main:focus {
  outline: none;
}

.sv-main:focus-visible {
  outline: 2px solid var(--sv-color-gold);
  outline-offset: 4px;
}
