/* Typograpghy */

body {
  color: #212931;
  font-family: 'PT Mono', monospace;
}

h1, .h-1 { font-size: ; }
h2, .h-2 { font-size: ; }
h3, .h-3 { font-size: ; }
h4, .h-4 { font-size: ; }
h5, .h-5 { font-size: 1.6rem; }
h6, .h-6 { font-size: 1.2rem; }

p, .p { font-size: 1.2rem; }

.meta { font-size: 1.1rem; }

.font-style-sans { font-family: 'Muli', sans-serif; }

.uppercase { text-transform: uppercase; }

.align-right { text-align: right; }

.vertical-text {
  font-size: 13.5vh;
  letter-spacing: -0.35em;
  line-height: 1;
  margin: 0;
  position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-58%); /* Letter-spacing moves text down a bit below center. Compensate here. */
  text-orientation: upright;
  writing-mode: vertical-lr;
}

hr {
  margin-top: 0;
  margin-bottom: 5px;
  border: 0;
  border-top: 2px solid #707070;
}

/* Colours */

.col-primary { color: #0b0feb; } /* Scotch Egg primary branding blue */
.col-primary-light { color: #6c6ef4; } /* Scotch Egg primary branding light blue */
.col-secondary { color: #ff9825; } /* Scotch Egg primary branding orange */
.col-secondary-light { color: #fde8d0; } /* Scotch Egg primary branding light orrange */
.col-lightest { color: #fff; }
.col-grey-light { color: #f2f2f2; }
.col-grey { color: #707070; }
.col-darkest { color: #212931; }

/* Transparent Colours */

.col-primary-light-trans { /* Scotch Egg primary branding light blue transparent */
  color: rgb(108, 110, 244); /* fallback for older browsers */
  color: rgba(108, 110, 244, 0.5);
}

/* Background Colours */

.col-bg-primary { background-color: #0b0feb; } /* Scotch Egg primary branding blue */
.col-bg-primary-light { background-color: #6c6ef4; } /* Scotch Egg primary branding light blue */
.col-bg-secondary { background-color: #ff9825; } /* Scotch Egg primary branding orange */
.col-bg-secondary-light { background-color: #fde8d0; } /* Scotch Egg primary branding light orrange */
.col-bg-lightest { background-color: #fff; }
.col-bg-grey-light { background-color: #f2f2f2; }
.col-bg-grey { background-color: #707070; }
.col-bg-grey-dark { background-color: #4b4e53; }
.col-bg-darkest { background-color: #212931; }

/* Links */

a, a:visited, a:active {
	transition: color 0.20s ease-in-out;
}

.inline-arrow span { display: none; }

.inline-arrow {
  display: inline-block;
  height: 1em; /* 'em' units to keep arrow in proportion to <p> it sits next to. */
  margin-left: 0.2em;
  width: 1em;
}

/* Buttons */

.button-plain {
  background: transparent;
  border: none;
  margin: 0;
  padding: 0;
  width: auto;
  overflow: visible;

  /* inherit font & color from ancestor */
  color: inherit;
  font: inherit;

  /* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
  line-height: normal;

  /* Corrects font smoothing for webkit */
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;

  /* Corrects inability to style clickable `input` types in iOS */
  -webkit-appearance: none;
}

/* Remove excess padding and border in Firefox 4+ */
.button-plain::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/* Icons */

.fa-chevron-double-down:before {
  font-size: 4vw;
}

/* General */

menu {
  margin: 0;
  padding: 0;
}

/* Layout */

.full-screen {
  min-height: 100vh;
  position: relative;
}

.vertical-center-outer {
	display: table;
	height: 100%;
	position: relative;
  width: 100%;
}

.vertical-center-inner {
	display: table-cell;
	vertical-align: middle;
}

/* Spacing */

.flush-bottom { margin-bottom: 0; padding-bottom: 0; }

.pad-med { padding: 30px; }
.pad-horiz-med { padding-left: 30px; padding-right: 30px; }

.pad-horiz-lrg { padding-left: 60px; padding-right: 60px; }
.pad-top-lrg { padding-top: 60px; }
.pad-bot-lrg { padding-bottom: 60px; }

.pad-bot-xlrg { padding-bottom: 120px; }
.pad-top-xlrg { padding-top: 10vh; }

.pad-horiz-fluid { padding-left: 5%; padding-right: 5%; }
.pad-left-fluid { padding-left: 5%; }

.margin-bot-med { margin-bottom: 30px; }

.margin-bot-lrg { margin-bottom: 60px; }

/* Horizontal Navigation */

ul.horiz-menu {
  font-size: 1.9vw;
  list-style: none;
  margin: 0 0 5px auto;
  padding: 0;
  text-transform: uppercase;
}

ul.horiz-menu li {
  float: left;
  margin: 0 0.6em 0 0;
  padding: 0;
}

ul.horiz-menu a,
ul.horiz-menu a:active,
ul.horiz-menu a:visited {
  color: #6c6ef4;
  text-decoration: none;
}

ul.horiz-menu a::after {
  content: '>';
  padding-left: 0.7em;
}

/* Vertical Navigation */

ul.vert-menu {
  font-size: 1.6rem;
  line-height: 1.2;
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.vert-menu a,
ul.vert-menu a:active,
ul.vert-menu a:visited {
  color: #fff;
}

ul.vert-menu a::after {
  content: '.';
}

ul.vert-menu a:hover {
  color: #fff;
  text-decoration: none;
}

ul.vert-menu a:hover::after {
  content: '. >'; /* Replace with image. */
}

/* Vertical Navigation sub-menu */

ul.vert-menu ul a::before {
  content: '>';
  margin-left: 0.5em;
  padding-right: 0.7em;
}

/* Mobile Navigation */

.mobile-menu-container {
  position: absolute;
  right: 0;
  top: 0;
  width: 800px;
  z-index: 9999;
}

.mobile-menu-container.hidden {
  display: none;
}

ul.vert-menu.mobile-menu {
  font-size: 4.8vh;
}

/* Sections */

.section-title-right {
  float: right;
  font-size: 13.5vh;
  line-height: 0.87;
  margin: 0;
  padding: 0;
}

.down-arrow {
  margin-right: 15px; /* To match col padding. */
  position: absolute;
    bottom: 50px;
    right: 0; /* To match .container-fluid width. */
  width: 4vw;
}

/* Animate arrow */

.bounce {
  -moz-animation: bounce 3s infinite;
  -webkit-animation: bounce 3s infinite;
  animation: bounce 3s infinite;
}

@-moz-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -moz-transform: translateY(-1vw);
    transform: translateY(-1vw);
  }
  60% {
    -moz-transform: translateY(-0.5vw);
    transform: translateY(-0.5vw);
  }
}

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-1vw);
    transform: translateY(-1vw);
  }
  60% {
    -webkit-transform: translateY(-0.5vw);
    transform: translateY(-0.5vw);
  }
}
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -moz-transform: translateY(-1vw);
    -ms-transform: translateY(-1vw);
    -webkit-transform: translateY(-1vw);
    transform: translateY(-1vw);
  }
  60% {
    -moz-transform: translateY(-0.5vw);
    -ms-transform: translateY(-0.5vw);
    -webkit-transform: translateY(-0.5vw);
    transform: translateY(-0.5vw);
  }
}

.bounce-x {
  -moz-animation: bounce-x 3s infinite;
  -webkit-animation: bounce-x 3s infinite;
  animation: bounce-x 3s infinite;
}

@-moz-keyframes bounce-x {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateX(0);
    transform: translateX(0);
  }
  40% {
    -moz-transform: translateX(-1vw);
    transform: translateX(-1vw);
  }
  60% {
    -moz-transform: translateX(-0.5vw);
    transform: translateX(-0.5vw);
  }
}

@-webkit-keyframes bounce-x {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  40% {
    -webkit-transform: translateX(-1vw);
    transform: translateX(-1vw);
  }
  60% {
    -webkit-transform: translateX(-0.5vw);
    transform: translateX(-0.5vw);
  }
}
@keyframes bounce-x {
  0%, 20%, 50%, 80%, 100% {
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  40% {
    -moz-transform: translateX(-1vw);
    -ms-transform: translateX(-1vw);
    -webkit-transform: translateX(-1vw);
    transform: translateX(-1vw);
  }
  60% {
    -moz-transform: translateX(-0.5vw);
    -ms-transform: translateX(-0.5vw);
    -webkit-transform: translateX(-0.5vw);
    transform: translateX(-0.5vw);
  }
}

/* Home Page Header */

.section-header {
  position: relative; /* Needed form mobile menu z-index */
}

.header-main-wrapper {
  height: calc(100vh - 110px); /* Full screen minus height of logo / nav div */
  position: relative;
}

.header-title {
  font-size: 8vw;
  position: absolute;
    top: 20%;
}

.pixel-logo {
  height: 88px;
  margin-top: 22px;
  width: 82px;
}

a.menu-toggle:hover {
  cursor: pointer;
}

.menu-icon {
  float: right;
  height: 33px;
  margin-top: 50px;
  width: 46px;
}

/* Fade in header on load */

.header-title {
  opacity: 0;
  -webkit-transition: opacity 1s ease-in;
     -moz-transition: opacity 1s ease-in;
      -ms-transition: opacity 1s ease-in;
       -o-transition: opacity 1s ease-in;
          transition: opacity 1s ease-in;
}

.header-title.load {
  opacity: 1;
}

/* Home Page Intro Section */

.section-intro p {
  font-size: 10vh;
  line-height: 1.2;
  margin-bottom: 1.3em; /* Scales with font size. */
}

.section-intro p:last-of-type {
  position: relative;
}

/* Home Page Code Section */

.section-code {
  height: 3vw; /* Adapt with ul.horiz-menu font-size, which is also set in vw. */
  margin: 0;
}

.code-screen-container {
  min-height: calc( 100vh - 3vw ); /* Fullscreen minus height of .horiz-menu */
}

.code-tab p {
  line-height: 3;
}

.code-tab {
  border-bottom: 2px solid #010101;
  border-left: 2px solid #010101;
}

.code-tab:nth-child(2) {
  border-right: 2px solid #010101;
}

.code-container p,
.type-wrap {
  font-size: 1.2rem;
  line-height: 2;
  margin-bottom: 0;
}

.type-wrap {
  margin-left: 2rem;
}

.indent {
  margin-left: 2rem;
}

/* Indent list items */
#code div:nth-of-type(5),
#code div:nth-of-type(6),
#code div:nth-of-type(7),
#code div:nth-of-type(8),
#code div:nth-of-type(9) {
  margin-left: 30px;
}

/* Home Page Design Section */

.section-design {
  overflow: hidden;
}

.section-design .main-content {
  margin-top: 32%;
}

.slidein-title {
  position: relative;
}

.slidein-title .background-text {
  font-size: 25vw;
  letter-spacing: -0.05em;
  line-height: 1;
  position: absolute;
    left: -10.5vw; /* Align to edge of .container-fluid. */
    bottom: -3.3vw;
  z-index: 10;
}

.slidein-title .foreground-text {
  font-size: 6.2vw;
  line-height: 1;
  position: relative;
  z-index: 9999;
}

.section-design h4 {
  font-size: 2.2vw;
  margin-bottom: 0.5em;
}

.section-design p {
  font-size: 1.67vw;
  line-height: 1.3;
}

.right-arrow {
  font-size: 7vh;
  margin-left: 2vh;
  margin-top: 10vh;
}

.slide-title-2 {
  transform: translateX(-500%);
  -webkit-transform: translateX(-500%);
}

#slide-2,
#slide-3,
#slide-4 {
  position: absolute;
    top: 22.6vw;
    left: 1000%;
}

#slide-2.slide-visible,
#slide-3.slide-visible,
#slide-4.slide-visible {
  left: 0;
}

.slide-title-2.foreground-text.slideInLeft,
.slide-title-3.foreground-text.slideInLeft,
.slide-title-4.foreground-text.slideInLeft {
  position: absolute;
  top: -6vw;
}

.slide-content-2,
.slide-content-3,
.slide-content-4 {
  transform: translateX(500%);
  -webkit-transform: translateX(500%);
}

#software-link.hidden {
  display: none;
}

/* Animation */

#reveal3.visible.slideOutLeft,
.slide-title-2.foreground-text.slideOutLeft,
.slide-title-3.foreground-text.slideOutLeft,
.slide-content-2.slideOutLeft,
.slide-content-3.slideOutLeft {
  animation: slide-out-left 2s forwards;
  -webkit-animation: slide-out-left 2s forwards;
  transform: translateX(-500%);
  -webkit-transform: translateX(-500%);
}

@keyframes slide-out-left {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-500%); }
}

@-webkit-keyframes slide-out-left {
    0% { -webkit-transform: translateX(0%); }
    100% { -webkit-transform: translateX(-500%); }
}

.slide-title-2.foreground-text.slideInRight,
.slide-content-2.slideInRight,
.slide-title-3.foreground-text.slideInRight,
.slide-content-3.slideInRight,
.slide-title-4.foreground-text.slideInRight,
.slide-content-4.slideInRight {
  animation: slide-in-right .75s forwards;
  -webkit-animation: slide-in-right .75s forwards;
  transform: translateX(500%);
  -webkit-transform: translateX(500%);
}

@keyframes slide-in-right {
    0% { transform: translateX(0%); }
    100% { transform: translateX(500%); }
}

@-webkit-keyframes slide-in-right {
    0% { -webkit-transform: translateX(0%); }
    100% { -webkit-transform: translateX(500%); }
}

/* Animate text from left. */

#reveal1,
.slide-title-3.background-text,
.slide-title-4.background-text {
  animation: slide-out-left 2s forwards;
  -webkit-animation: slide-out-left 2s forwards;
  transform: translateX(-500%);
  -webkit-transform: translateX(-500%);
}

#reveal1.visible,
.slide-title-2.background-text.slideInLeft,
.slide-title-3.background-text.slideInLeft,
.slide-title-4.background-text.slideInLeft {
  animation: slide-in-left 0.75s forwards;
  -webkit-animation: slide-in-left 0.75s forwards;
}

@keyframes slide-in-left {
    100% { transform: translateX(0%); }
}

@-webkit-keyframes slide-in-left {
    100% { -webkit-transform: translateX(0%); }
}

@keyframes slide-out-left {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-500%); }
}

@-webkit-keyframes slide-out-left {
    0% { -webkit-transform: translateX(0%); }
    100% { -webkit-transform: translateX(-500%); }
}

/* Animate text from right. */

#reveal2,
#reveal3,
.slide-title-2.background-text.slideOutRight,
.slide-title-3.background-text.slideOutRight {
  animation: slide-out-right 2s forwards;
  -webkit-animation: slide-out-right 2s forwards;
  transform: translateX(500%);
  -webkit-transform: translateX(500%);
}

#reveal2.visible,
#reveal3.visible {
  animation: slide-in-right 0.75s forwards;
  -webkit-animation: slide-in-right 0.75s forwards;
}

@keyframes slide-in-right {
    100% { transform: translateX(0%); }
}

@-webkit-keyframes slide-in-right {
    100% { -webkit-transform: translateX(0%); }
}

@keyframes slide-out-right {
    0% { transform: translateX(0%); }
    100% { transform: translateX(500%); }
}

@-webkit-keyframes slide-out-right {
    0% { -webkit-transform: translateX(0%); }
    100% { -webkit-transform: translateX(500%); }
}

/* Home Page Software Section */

ul.software-menu {
  font-size: 3.7vw;
  list-style: none;
  margin: 0;
  padding: 10vh 0 6vh 0;
  text-transform: uppercase;
}

ul.software-menu li {
  line-height: 1;
  margin: 0;
  padding: 0;
}

ul.software-menu a,
ul.software-menu a:hover,
ul.software-menu a:active,
ul.software-menu a:visited {
  color: #fff;
  text-decoration: none;
}

ul.software-menu a::after {
  content: "\f324";
  display: inline-block;
  font-family: "Font Awesome 5 Pro";
  font-size: 0.9em;
  font-style: normal;
  font-variant: normal;
  font-weight: 300;
  margin: 0 0 0 0.2em;
  padding: 0;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}

.section-software p {
  font-size: 2.2vw;
  line-height: 1.4;
}

/* Home Page Contact Section */

.section-contact {
  padding-bottom: 7vh;
  padding-top: 7vh;
}

.section-contact h2 {
  font-size: 4vw;
}

.form-intro {
  margin: 3vw 0;
}

.section-contact .contact-form p {
  border-bottom: 1px solid #ababab;
  font-size: 2.6vw;
}

.contact-form input[type="text"] {
  background-color: #f2f2f2;
  border: none;
  border-bottom: 1px solid #ababab;
  color: #ababab;
  font-size: 1.6rem;
  padding-top: 1.4rem;
  width: 100%;
}

.contact-form input[type="checkbox"] {
  margin-top: 1rem;
}

.contact-form input[type="submit"] {
  background-color: #212931;
  border: none;
  color: #f2f2f2;
  font-size: 2rem;
  line-height: 1;
  margin-top: 1.6rem;
  padding: 1rem 0 0.9rem;
  text-transform: uppercase;
  width: 100%;
}

/* Footer  */

.footer-credits {
  margin-top: 43px;
}

/* Media Queries */

@media (min-width: 1920px) {

  /* Containers */

  .container-fluid {
    max-width: 1770px;
    width: 93%;
  }

  /* Sections */

  .down-arrow {
    right: 3.5%; /* To match .container-fluid width. */
  }

}

@media (min-width: 1430px) {

  /* Containers */

  .container-fluid.container-narrow {
    width: 1400px;
  }

}
