/* Wrapper - contains all page content */

.wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
}

.wrapper .main-content {
  flex: 1;
}

/* Page Body - main page content */

.page-body {
  margin: 0 auto;
  padding: 3rem var(--page-margin);
  max-width: var(--site-max-width);
}

.page-body>* {
  margin-bottom: 1rem;
}

.page-body--thin {
  max-width: 32.5rem;
  padding-left: 1.875rem;
  padding-right: 1.875rem;
}

.page-body--medium {
  max-width: 48.75rem;
}

.page-legal {
  margin: 0 auto;
  padding: 3rem var(--page-margin);
  max-width: var(--site-max-width);

  & > * {
    margin-bottom: var(--space-md);
  }

  ol, ul {
    padding-left: var(--space-lg);
    list-style-position: inside !important;

    li {
      margin-bottom: var(--space-sm);
    }
  }

  ul {
    list-style: disc;
  }

  ol {
    list-style: decimal;

    &[type="i"] {
      list-style: lower-roman;
    }
  }
}

/* COLUMN LAYOUTS */

/* 1 column until desktop when each child element creates its own column */
.desktop-columns {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

@media (min-width: 1000px) {
  .desktop-columns {
    flex-direction: row;
    gap: var(--grid-gap);
  }
}

/* 2 columns at the desktop viewport with a 33/66 split layout */
.desktop-2-col {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: min-content min-content;
  gap: var(--space-md);
  grid-template-areas:
    "primary"
    "secondary";
}

.desktop-2-col>:first-child {
  grid-area: primary;
}

.desktop-2-col>:last-child {
  grid-area: secondary;
}

@media (min-width: 1000px) {
  .desktop-2-col {
    grid-template-columns: 37% auto;
    grid-template-rows: auto;
    gap: var(--space-xl);
    grid-template-areas:
      "primary secondary";
  }
}

/* 2 columns at the desktop viewport with an aproximate 66/33 split layout */
.desktop-2-col--reverse {
  gap: var(--space-xl);
}


@media (min-width: 1000px) {
  .desktop-2-col--reverse {
    grid-template-columns: auto 37%;
    grid-template-areas:
      "secondary primary";
  }
}

/* Dashboard specific split layout only on the tablet viewport */
.dashboard-split-tablet {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

@media screen and (min-width: 600px) and (max-width: 1000px) {
  .dashboard-split-tablet {
    flex-direction: row;
  }

  .dashboard-split-tablet>.panel {
    flex: 1;
  }
}

@media screen and (min-width: 1000px) {

  /* Move this section down to align with panel to its left */
  .dashboard-split-tablet {
    margin-top: 2.375rem;
  }
}

/* Split layout that's 50/50 on tablet and an aproximate 33/66 on desktop */
.tablet-2-col {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: min-content min-content;
  gap: var(--space-xl);
}

@media (min-width: 600px) {
  .tablet-2-col {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    gap: var(--space-xl);
  }

  .tablet-2-col.tablet-2-col--split {
    align-items: center;
    justify-items: center;
  }
}

@media (min-width: 1000px) {
  .tablet-2-col {
    grid-template-columns: 70% auto;
    grid-template-rows: auto;
    gap: var(--space-xl);
  }

  .tablet-2-col--split {
    grid-template-columns: auto auto;
  }

  .tablet-2-col--30-auto {
    grid-template-columns: 30% auto;
  }
}

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

.grid--desktop-2-col-stacked .grid__cell {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

@media (min-width: 600px) {
  .grid--desktop-2-col-stacked .grid__cell {
    align-items: center;
    flex-direction: row;
  }
}

@media (min-width: 1000px) {
  .grid--desktop-2-col-stacked {
    align-items: flex-start;
    gap: var(--space-xl);
    grid-template-columns: repeat(2, minmax(0,1fr));
    place-items: center;

    .grid__cell {
      align-items: flex-start;
      flex-direction: column;
      max-width: 28rem;
    }
  }
}
