/* MINIMAL CSS RESET */
* { margin-bottom: 0 }

/* VARIABLES */
:root {
  --font-body: Roboto, sans-serif;
  --font-heading: "PT serif", Georgia, "Nimbus Roman", serif;
  --color-blue: #6391b5;
  --color-blue: oklch(0.6376 0.0739 242.84);
  --color-green: #009c80;
  --color-green: oklch(0.618 0.1176 173.93);
  --color-green-light: #f2fbf8;
  --color-green-light: oklch(0.9811 0.01 173.93);
  --color-grey: #404040;
  --color-grey: oklch(0.3715 0 0)
}

/* GLOBAL */
html { font-family: var(--font-body); font-size: clamp(16px, 2.3vw, 20px); scroll-behavior: smooth }
body { margin: 0; color: var(--color-grey) }
p, ul, ol, aside { line-height: 1.5em; hyphens: auto }
img { width: 100%; height: auto }
h1 { color: var(--color-green); font-size: 2.3rem }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.3em;
  margin-top: 1.3em;
  text-wrap: pretty
}
h4 { font-weight: 700 }
a {
  color: var(--color-green);
  text-decoration: none;
  &:hover { color: var(--color-blue) }
}

.grid-container {
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: 1fr;
  grid-template-areas: "header" "main" "footer";
  height: 100%;
  width: 100%;
  justify-content: center;
  min-height: 100vh;
  align-items: stretch
}

.contain, :where(main>article, main>aside, main>section) {
  display: grid;
  grid-template-columns: minmax(.8rem, 1fr) minmax(0, 42rem) minmax(.8rem, 1fr);
  > * { grid-column: 2 }
}

.escape { grid-column: 1 / -1 !important }

.unescape {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    & * {
        max-width: inherit;
        margin-left: inherit;
        margin-right: inherit;
    }
}

/* HEADER */
header {
  border-bottom: 3px #00000022 solid;
  grid-area: header;
  > div {
    padding-bottom: .2rem;
    display: flex;
    .logo {
      margin-right: .3rem;
      svg {
        width: 7rem;
        height: 100%;
        #symbol { fill: var(--color-blue) }
        #tekst { fill: var(--color-green) }
      }
    }
    nav {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      flex: 1;
      ul {
        display: flex;
        list-style: none;
        flex-wrap: wrap;
        margin-top: .4rem;
        padding: 0;
        justify-content: flex-end;
        a { margin-left: .4rem; margin-top: .4rem }
      }
    }
  }
}

/* MAIN */
main {
  grid-area: main;
  background-color: var(--color-green-light);
  padding-bottom: 2rem;
  aside, form { margin-top: 1.3em }
  article {
    .cover img {
        width: 100%;
        max-height: clamp(250px, 50vh, 550px);
        object-fit: cover;
    }
    .intro { font-size: 1.2rem; line-height: 1.35em }
    .footnotes {
      margin-top: 1rem;
      hr { border: 1px var(--color-grey) dashed }
    }
  }
  .button { margin-top: 1.3rem; justify-self: start }
  
  /* BREADCRUMB */
  .breadcrumb {
    display: grid;
    grid-template-columns: minmax(.8rem, 1fr) minmax(0, 42rem) minmax(.8rem, 1fr);
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-size: 0.85em;
    ol {
      grid-column: 2;
      display: flex;
      flex-wrap: wrap;
      list-style: none;
      margin: 0;
      padding: 0;
      li {
        display: inline-flex;
        align-items: center;
        &:not(:last-child)::after {
          content: '›';
          margin: 0 0.6rem;
          color: var(--color-grey);
          font-size: 1.2em;
        }
        a {
          color: var(--color-green);
          text-decoration: none;
          &:hover { color: var(--color-blue) }
        }
      }
    }
  }
}

table {
  margin-top: 1.3em;
  border-collapse: collapse;
  width: 100%;
  thead {
    tr {
      background-color: var(--color-green);
      color: white;
      th { padding: .6rem; text-align: left; font-weight: 600 }
    }
  }
  tbody {
    tr {
      &:nth-child(odd) { background-color: white }
      &:nth-child(even) { background-color: oklch(0.96 0.005 173.93) }
      td { padding: .5rem .6rem; border-bottom: 1px solid oklch(0.9 0.01 173.93) }
    }
  }
}

/* BUTTONS */
.button {
  display: inline-block;
  text-decoration: none;
  border-radius: 2rem;
  padding: .55rem 1rem;
  background-color: transparent;
  color: var(--color-grey);
  outline: .08rem var(--color-grey) solid;
  border: none;
  cursor: pointer;
  font: inherit;
  &:hover { background-color: var(--color-grey); color: white; outline: none }
  &:active, &.active { background-color: var(--color-green); color: white; outline: none }
  &:focus { background-color: var(--color-green); color: white; outline: none }
  &.inverted {
    background-color: transparent;
    color: white;
    outline: .08rem white solid;
    &:hover { background-color: white; color: var(--color-green); outline: none }
    &:active, &.active { background-color: var(--color-green-light); color: var(--color-green); outline: none }
    &:focus { color: white; background-color: var(--color-grey); outline: none }
  }
  &.bigger { font-size: 1.2em; border-radius: calc(1rem * 1.2) }
  &.huge { font-size: 1.7em; border-radius: calc(2rem * 1.2) }
  &.centered { justify-self: center }
}

/* FOOTER */
footer {
  color: var(--color-green-light);
  a {
    color: var(--color-green-light);
    &:hover { color: white; text-decoration: underline }
  }
  background-color: var(--color-green);
  grid-area: footer;
  > div {
    margin: 1rem 0;
    text-align: center;
    .generated { font-size: .6rem }
  }
}
