@tailwind base;
@tailwind components;
@tailwind utilities;

@font-face {
  font-family: "BDO Grotesk";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: font-url(/BDOGrotesk-VF.ttf);
}

html,
body {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  font-size: 16px;
}

main {
  flex-grow: 1;
}

body {
  font-family: "BDO Grotesk", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeSpeed;
  font-style: normal;
  font-weight: 400;
  color: #000;
}

* {
  font-size: 18px;
  line-height: 27px;
  letter-spacing: -0.36px;
}

h1, .h1 {
  font-size: 36.49px;
  line-height: 43.79px;
  letter-spacing: -0.73px;
}

h2, .h2 {
  font-size: 32.44px;
  line-height: 38.93px;
  letter-spacing: -0.649px;
}

h3, .h3 {
  font-size: 25.63px;
  line-height: 30.76px;
  letter-spacing: -0.513px;
}

h4, .h4 {
  font-size: 22.78px;
  line-height: 27.34px;
  letter-spacing: -0.456px;
}

h5, .h5 {
  font-size: 20.25px;
  line-height: 24.3px;
  letter-spacing: -0.405px;
}

h6, .h6 {
  font-size: 18px;
  line-height: 21.6px;
  letter-spacing: -0.36px;
}

.massive {
  font-size: 22.78px;
  line-height: 34.17px;
  letter-spacing: -0.456px;
}

.large {
  font-size: 20.25px;
  line-height: 30.38px;
  letter-spacing: -0.405px;
}

.small {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.32px;
}

.link, .bolded {
  font-size: 18px;
  font-weight: 700;
  line-height: 27px;
  letter-spacing: -0.36px;
}

a:hover {
  opacity: 0.5;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 250ms;
}

.work--main-photo {
  height: 600px;
}

ul {
  margin: 0;
}

ul.dashed > li { margin: 1rem 0; }

ul.dashed > li:before {
  content: "\2014";
  margin-right: .5rem;
}

.article--content {
  p, ul { margin-bottom: 1rem; }

  ul, ol {
    display: grid;
    gap: 1rem;
  }

  ul > li:before {
    content: "\2014";
    margin-right: .5rem;
  }

  h2, h3, h4 {
    margin-top: 3rem;
    margin-bottom: 1rem;
  }

  h5 {
    position: relative;
    padding-left: 2.5rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 25px;
    line-height: 37.5px;
    letter-spacing: -0.5px;
  }

  h5:before {
    content: '\201c';
    position: absolute;
    top: 1.25rem;
    left: 0;
    font-size: 5rem;
  }

  h6 {
    padding-left: 2.5rem;
    margin-bottom: 2rem;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.32px;
    font-weight: 700;
  }
}

.article--content,
.policy--content {
  h2, h3, h4, p { margin-bottom: 1rem; }

  h2 {
    font-size: 39.06px;
    line-height: 46.87px;
    letter-spacing: -0.781px;
  }
}

.case-studies-squares {
  font-size: 25px;
  line-height: 37.5px;
  letter-spacing: -0.5px;
}

.mobile-nav__buttons {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: calc((28px * 3) /4);
  cursor: pointer;

  &.active {
    transition: transform 800ms 200ms cubic-bezier(0.5, 0, 0.2, 1);
    transform: translateY(-50%) rotateZ(135deg);
  }
}

.mobile-nav__button {
  background-color: black;

  position: absolute;
  width: 28px;
  height: 3px;
  border-radius: 3px;

  &:nth-child(1) {
    top: 0;
  }
  &:nth-child(2) {
    top: 50%;
  }
  &:nth-child(3) {
    top: 100%;
  }
}

.section--cover {
  max-width: 1488px;
  height: 800px;
  background-size: cover;
  background-position: 50%;
  margin: auto;
}

.error--wrapper {
  min-height: calc(100vh - 78px);
  height: 100%;
}

.article--content {
  ol {
    list-style: auto;
    margin: revert;
    padding-left: 1.5rem;
  }

  ol > li::marker {
    margin-left: -1.5rem;
  }

  ul {
    padding-left: 1.5rem;
  }

  ul > li:before {
    margin-right: 0.5.rem;
    margin-left: -1.5rem;
  }
}

@media (min-width: 1024px) {
  * {
    font-size: 20px;
    line-height: 30px;
    letter-spacing: -0.4px;
  }

  h1, .h1 {
    font-size: 76.29px;
    line-height: 91.56px;
    letter-spacing: -1.526px;
  }

  h2, .h2 {
    font-size: 61.04px;
    line-height: 73.25px;
    letter-spacing: -1.221px;
  }

  h3, .h3 {
    font-size: 48.83px;
    line-height: 58.6px;
    letter-spacing: -0.977px;
  }

  h4, .h4 {
    font-size: 39.06px;
    line-height: 46.87px;
    letter-spacing: -0.781px;
  }

  h5, .h5 {
    font-size: 31.25px;
    line-height: 37.5px;
    letter-spacing: -0.625px;
  }

  h6, .h6 {
    font-size: 25px;
    line-height: 30px;
    letter-spacing: -0.5px;
  }

  .massive {
    font-size: 39.06px;
    line-height: 58.6px;
    letter-spacing: -0.781px;
  }

  .large {
    font-size: 25px;
    line-height: 37.5px;
    letter-spacing: -0.5px;
  }

  .small {
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.32px;
  }

  .link, .bolded {
    font-size: 20px;
    font-weight: 700;
    line-height: 30px;
    letter-spacing: -0.4px;
  }

  .work--main-photo {
    height: 1000px;
  }

  .article--content,
  .policy--content {
    p { margin-bottom: 1rem; }

    h2 {
      font-size: 39.06px;
      line-height: 46.87px;
      letter-spacing: -0.781px;
    }

    h3 {
      font-size: 31.25px;
      line-height: 37.5px;
      letter-spacing: -0.625px;
    }

    h4 {
      font-size: 25.63px;
      line-height: 30.76px;
      letter-spacing: -0.513px;
    }
  }

  .case-studies-squares {
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.32px;
  }

  .section--cover {
    height: 1000px;
  }
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */
