*,
*::after,
*::before {
  box-sizing: border-box;
}

:root {
  font-size: 16px;
}

body {
  background: #f4f4f4 url("../img/header.jpg") no-repeat top right scroll;
}

body {
  margin: 0;

  --color-text: #111;

  --color-bg: #f4f4f4;

  --color-link: #f45454;

  --color-link-hover: #aaa;

  --aspect-ratio: 32/17;

  --imgwidthmax: 500px;

  --size-title: 15vw;

  --font-weight-title: 400;

  color: var(--color-text);

  background-color: var(--color-bg);

  font-size: 1rem;

  font-family: "Roboto", sans-serif;

  font-weight: 300;

  -webkit-font-smoothing: antialiased;

  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
h2.content__item-title,
.content__item-number {
  font-family: "Roboto Condensed", sans-serif;

  font-weight: 700;
}

/* Page Loader */

.js .loading::before {
  content: "";

  position: fixed;

  z-index: 100000;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background: var(--color-bg);
}

.js .loading::after {
  content: "";

  position: fixed;

  z-index: 100000;

  top: 50%;

  left: 50%;

  width: 60px;

  height: 60px;

  margin: -30px 0 0 -30px;

  pointer-events: none;

  border-radius: 50%;

  opacity: 0.4;

  background: var(--color-link);

  animation: loaderAnim 0.7s linear infinite alternate forwards;
}

@keyframes loaderAnim {
  to {
    opacity: 1;

    transform: scale3d(0.5, 0.5, 1);
  }
}

a {
  text-decoration: none;

  color: var(--color-link);

  outline: none;
}

a:hover,
a:focus {
  color: var(--color-link-hover);

  outline: none;
}

.page {
  display: grid;

  padding: 5vw;

  max-width: 1400px;

  margin: 0 auto;

  grid-template-columns: 100%;

  grid-template-areas: "header" "meta" "grid";

  will-change: transform;
}

.page__title {
  grid-area: header;

  margin: 0 0 1rem;

  font-size: inherit;
}

.credits {
  text-align: center;

  max-width: 800px;

  margin: 0 auto;

  padding: 10vh 1rem 1rem 1rem;

  border-top: 1px solid #f45454;
}

.credits strong {
  font-size: 2em;
}

.credits img {
  width: 100%;

  height: auto;

  display: block;
}

.credits i {
  font-size: 0.7rem;

  font-style: normal;
}

.credits--fixed {
  position: fixed;

  bottom: 5vw;

  margin: 0;

  left: 5vw;

  width: 90vw;

  text-align: right;
}

.credits--fixed::before {
  content: "";

  background: currentColor;

  position: absolute;

  left: 0;

  bottom: 0;

  height: 5rem;

  width: 1px;
}

.meta {
  grid-area: meta;
}

.meta--center {
  justify-self: center;

  padding-top: 20vh;
}

.meta__links {
  display: flex;

  flex-wrap: wrap;

  line-height: 1.5;
}

.meta__links--column {
  flex-direction: column;
}

.meta__links a {
  margin: 0;
}

.meta__demos {
  margin-top: 1rem;
}

.meta__demo {
  display: inline-block;

  margin-right: 0.75rem;
}

.meta__demo--current {
  color: var(--color-link-hover);

  pointer-events: none;
}

.content {
  grid-area: grid;

  margin: 25vh 0 30vh;
}

.content--offset {
  display: grid;

  grid-template-columns: repeat(2, minmax(100px, 1fr));

  grid-gap: 30vh 10vw;
}

.content--full {
  width: 100vw;

  justify-self: center;
}

.content--padded {
  padding: 0 10vw;
}

.content__item {
  --imgwidth: calc(var(--imgwidthmax) * var(--aspect-ratio));

  width: var(--imgwidth);

  max-width: 100%;

  position: relative;

  will-change: transform;

  margin-bottom: 30vh;

  display: grid;

  grid-template-columns: 50% 50%;
}

.content__item--wide {
  grid-template-columns: 20% 80%;
}

.content__item--wide:nth-child(even) {
  grid-template-columns: 80% 20%;
}

.content--center .content__item {
  margin: 0 auto 60vh;
}

.content__item--expand {
  width: 100%;

  grid-template-columns: minmax(0, var(--imgwidth)) 1fr;
}

.content__item--expand:nth-child(even) {
  grid-template-columns: 1fr minmax(0, var(--imgwidth));
}

.content--alternate .content__item {
  max-width: 90vw;
}

.content--offset .content__item {
  margin: 0 auto 15vh;
}

.content--offset .content__item:nth-child(even) {
  align-self: end;

  margin-bottom: -20vh;
}

.content--alternate .content__item:nth-child(even) {
  margin-left: auto;
}

.content__item-imgwrap {
  position: relative;

  --imgwidth: 100%;

  margin: 0 auto;

  grid-area: 1 / 1 / 3 / 3;

  overflow: hidden;

  width: var(--imgwidth);

  padding-bottom: calc(var(--imgwidth) / (var(--aspect-ratio)));

  will-change: transform;
}

.demo-2 .content__item-imgwrap {
  outline: 1px solid transparent;
}

.content__item--expand .content__item-imgwrap {
  grid-area: 1 / 1 / 3 / 2;
}

.content__item--expand:nth-child(even) .content__item-imgwrap {
  grid-area: 1 / 2 / 3 / 3;

  justify-self: end;
}

.content__item-img {
  --overflow: 40px;

  height: calc(100% + (2 * var(--overflow)));

  top: calc(-1 * var(--overflow));

  width: 100%;

  position: absolute;

  background-size: cover;

  background-position: 50% 0%;

  will-change: transform;

  opacity: 0.8;
}

.content__item-video {
  --overflow: 40px;
  /* top: calc(-1 * var(--overflow)); */
  width: 100%;
  /* height: auto; */
  height: 100%;
  position: absolute;
  will-change: transform;
  opacity: 0.8;
  transition: .9s all;
  -webkit-transition: .9s all;
  -moz-transition: .9s all;
  -ms-transition: .9s all;
  -o-transition: .9s all;
}

.content__item-video:hover {
  opacity: 1;

  cursor: pointer;

  /* scale: .9; */

  /* position: relative; */
}

.content__item-img--t1 {
  --overflow: 60px;
}

.content__item-img--t2 {
  --overflow: 80px;
}

.content__item-img--t3 {
  --overflow: 120px;
}

.content__item-number {
  opacity: 0.2;

  font-size: 25vw;

  position: absolute;

  top: -7vw;

  right: -10vw;

  line-height: 1;
}

.content__item:nth-child(even) .content__item-number {
  right: auto;

  left: -7vw;
}

.content__item-title {
  position: relative;

  font-size: var(--size-title);

  padding: 0 3vw;

  margin: calc(var(--size-title) * -1 / 2) 0 0 0;

  align-self: start;

  line-height: 1;

  font-family: var(--font-title);

  font-weight: var(--font-weight-title);

  color: var(--color-title);

  will-change: transform;

  mix-blend-mode: var(--blendmode-title);

  font-weight: 700;
}

.content--center .content__item-title {
  grid-area: 1 / 1 / 3 / 3;

  margin: auto;
}

.content__item-title--layer {
  padding: 0;

  z-index: 10;

  grid-area: 1 / 1 / 2 / 3;

  width: 100%;

  text-align: center;
}

.content__item-description {
  grid-area: 3 / 1 / 3 / 3;

  width: 70%;

  position: relative;

  margin: 0;

  padding: 1rem 0 0 0;

  color: var(--color-description);
}

.content--alternate .content__item-title,
.content__item--wide:nth-child(even) .content__item-description {
  grid-area: 3 / 1 / 4 / 2;

  justify-self: start;
}

.content--alternate .content__item:nth-child(even) .content__item-title,
.content__item--wide .content__item-description {
  grid-area: 3 / 2 / 4 / 3;

  justify-self: end;

  width: auto;
}

.content__item--expand .content__item-description {
  grid-area: 1 / 2 / 3 / 3;

  justify-self: start;

  align-self: start;

  padding: 0 2rem;

  width: 250px;

  font-size: 0.9rem;
}

.content__item--expand:nth-child(even) .content__item-description {
  grid-area: 1 / 1 / 3 / 2;

  justify-self: end;

  text-align: right;
}

.content__item-deco {
  position: absolute;

  top: 2rem;

  left: 10vw;

  height: 30%;

  width: 1px;

  background: #f45454;
}

.content__item-decobar {
  width: 140%;

  height: 25%;

  top: 20%;

  left: -20%;

  position: absolute;

  background: #dd525a;

  mix-blend-mode: color-burn;
}

@media screen and (min-width: 53em) {
  .page--layout-1 {
    grid-template-columns: 30% 70%;

    grid-template-areas: "header header" "...  meta" "grid grid";
  }

  .page--layout-2 {
    grid-template-columns: 1fr 1fr;

    grid-template-areas: "header meta" "...  meta" "grid grid";
  }

  .credits-partner img {
    max-height: 25px;
  }
}

@media screen and (max-width: 40em) {
  .content__item--expand .content__item-imgwrap,
  .content__item--expand:nth-child(even) .content__item-imgwrap {
    grid-area: 1 / 1 / 3 / 3;
  }

  .content__item--expand .content__item-description,
  .content__item--expand:nth-child(even) .content__item-description,
  .content__item--wide .content__item-description,
  .content__item--wide:nth-child(even) .content__item-description {
    grid-area: 3 / 1 / 4 / 3;

    padding: 1rem 0;

    width: 100%;

    text-align: left;
  }

  .content__item--wide .content__item-description {
    padding: 1rem;
  }

  .content--alternate .content__item-title,
  .content--alternate .content__item:nth-child(even) .content__item-title {
    grid-area: 1 / 1 / 4 / 2;
  }
}

/* Custom */

.content__item-description strong {
  font-size: 2rem;
}

.content__item-description i {
  font-style: normal;

  text-transform: uppercase;

  font-size: 0.7rem;

  color: #aaa;
}

.content__item-title,
.content__item-number {
  color: #f45454;

  font-weight: 700;
}

br {
  content: "";

  height: 10px;

  display: block;
}

.clear {
  clear: both;
}

.page__title h3 {
  color: #f45454;

  text-transform: uppercase;

  font-weight: 700;
}

.page__title h1 {
  font-weight: 700;
}

.button {
  padding: 10px 15px;

  margin: 0;

  transition: 0.5s;

  color: #fff;

  background-color: #f45454;

  opacity: 0.6;

  font-style: normal;

  text-transform: uppercase;

  font-size: 0.7rem;

  border-radius: 3px;
}

.button:hover {
  opacity: 1;

  color: #fff;
}

@media screen and (max-width: 700px) {
  .credits-partner img {
    max-height: 25px !important;
  }
}

/* Counter */

.stats {
  margin: 2em 0;

  font-size: 2em;

  font-family: "Roboto Condensed", sans-serif;
}

.counting {
  padding: 10px 15px;

  margin: 0;

  transition: 0.5s;

  color: #fff;

  background-color: #f45454;

  opacity: 1;

  font-style: normal;

  text-transform: uppercase;

  border-radius: 3px;

  cursor: pointer;
}

.counting:hover {
  opacity: 0.6;

  color: #fff;
}
