.cyclein-page {
  min-height: 100vh;
}

.cyclein-page__inner,
.cyclein-region__inner {
  inline-size: min(100% - (var(--layout-edge-padding) * 2), var(--layout-max-width));
  margin-inline: auto;
}

.cyclein-page__main {
  padding-block: var(--space-48);
}

.cyclein-page__main-inner {
  display: grid;
  gap: var(--layout-gutter);
  grid-template-columns: repeat(var(--layout-columns), minmax(0, 1fr));
  inline-size: min(100% - (var(--layout-edge-padding) * 2), var(--layout-max-width));
  margin-inline: auto;
}

.cyclein-page__content {
  grid-column: 1 / -1;
  min-width: 0;
}

.cyclein-page--with-sidebar .cyclein-page__content {
  grid-column: 1 / span 8;
}

.cyclein-page__sidebar {
  grid-column: 9 / -1;
  min-width: 0;
}

.cyclein-region {
  min-width: 0;
}

.cyclein-region--header,
.cyclein-region--footer {
  background: var(--color-brand-black);
  color: var(--color-brand-white);
}

.cyclein-region--header .cyclein-region__inner,
.cyclein-region--footer .cyclein-region__inner {
  padding-block: var(--space-24);
}

.cyclein-region--highlighted {
  background: var(--color-brand-yellow-tint);
}

.cyclein-region--pre-footer {
  background: var(--color-green-light);
  padding-block: var(--space-48);
}

@media (max-width: 1199px) {
  .cyclein-page__inner,
  .cyclein-region__inner,
  .cyclein-page__main-inner {
    inline-size: min(100% - var(--space-32), var(--layout-max-width));
  }

  .cyclein-page--with-sidebar .cyclein-page__content,
  .cyclein-page__sidebar {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1440px) {
  .cyclein-page__inner,
  .cyclein-region__inner,
  .cyclein-page__main-inner {
    inline-size: var(--layout-max-width);
  }
}
