@charset "UTF-8";

/* CSS Document */


/*Green = #78b637*/


/*Black = #222*/

html,
body {
    height: 100%;
    padding: 0;
    margin: 0;
}

body {
    color: #222;
    width: 100%;
    height: 100%;
    font-family: 'montserrat', "Helvetica Neue", Helvetica, Arial, sans-serif;
    /*  background-color: #fff;*/
    /* background-color: #E4E4E4; */
    background-color: #fff;
    font-size: 16px;
}

* {
    box-sizing: border-box;
}

strong,
b {
    font-weight: bold;
}

p,
h1,
h2,
h3,
h4,
ul,
li {
    padding: 0;
    margin: 0;
    font-weight: normal;
}

img {
    vertical-align: bottom;
    height: auto !important;
    /* Fix for IE */
}

a img {
    border: 0px;
    /* Fix for IE */
}

.img-spacer {
    padding: 1em 0;
}

h1 {
    text-transform: uppercase;
    font-size: 1.2em;
}

h2 {
    text-transform: uppercase;
    font-weight: bold;
    font-size: 1em;
}

h3 {
    text-transform: uppercase;
    font-size: 1em;
    padding-bottom: 0.8em;
}

h4 {
    font-size: 1em;
    font-weight: bold;
}

p {
    padding-bottom: 0.8em;
}

.center {
    text-align: center;
}

.harmony-colour-1 {
    color: #9c8c7e
}

.harmony-colour-2 {
    color: #6a69a6
}

.harmony-colour-3 {
    color: #42b0c3
}

.harmony-colour-4 {
    color: #5fad47
}

.icon {
    width: 1em;
    position: relative;
    top: -0.1em;
}

a {
    color: #78b637;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a.project-link {
    color: #222;
}

a.project-link:hover {
    opacity: 0.6;
    transition: 0.3s;
}

.projects-large {
    width: 100%;
    height: auto;
    padding-bottom: 1em;
}

.back-link {
    font-size: 0.8em;
    color: #222;
    padding-top: 1em;
    display: block;
}

.back-link:hover {
    color: #78b637;
    text-decoration: none;
}

.harmony-img {
    padding: 1em 0;
    max-width: 19em;
}

.no-wrap {
    white-space: nowrap;
}


/*The Nav START-------------------------------------------- */

#nav-bar {
    width: 100%;
    padding: 1.2em;
    background-color: #fff;
    position: fixed;
    top: -100px;
    transition: 0.5s;
}

#nav-bar.scrolled {
    top: 0 !important;
}

#nav-bar div {
    display: inline-block;
}

#nav-bar .div-left {
    float: left;
    padding-left: 1.5em;
}

#nav-bar .div-right {
    float: right;
}

#nav-bar .logo {
    width: 15em;
}

#nav-bar ul li {
    list-style-type: none;
    display: inline-block;
    padding-right: 1.5em;
    padding-top: 1.3em;
    text-transform: uppercase;
    font-size: 0.8em;
}

#nav-bar li a {
    text-decoration: none;
    color: #222;
    padding-bottom: 5px;
    border-bottom: 2px solid transparent;
}

#nav-bar li a:hover,
#nav-bar li a:active,
#nav-bar li a.active {
    border-bottom: 2px solid #78b637;
    text-decoration: none;
}


/*The Nav END-------------------------------------------- */


/* Links START */

.discrete-link {
    text-decoration: none;
    color: #222;
    max-width: 100%;
}

.discrete-link:hover {
    color: #78b637;
}


/* Links END */


/*Columns setup START-------------------------------------------- */

.column {
    float: left;
}

.first {
    width: 25%;
    padding-left: 10%;
}

.second {
    width: 70%;
    padding-right: 5%;
    padding-bottom: 2em;
    max-width: 900px;
}

.second-mid {
    width: 55%;
    padding-right: 5%;
}

.second-mid-extra {
    width: 15%;
    font-size: 0.8em;
    /* padding-right: 5%; */
}

.second-wide {
    width: 75%;
    padding-right: 5%;
    max-width: 1200px;
}

.second-third {
    width: 25%;
    margin-right: 5%;
    font-size: 0.8em;
    padding-top: 2em;
    padding-bottom: 1em;
    /* border-top: 1px #222 solid; */
    display: inline-block;
    max-width: 220px;
}


/* .third {
  width: 30%;
  font-size: 0.8em;
  padding-right: 5%;
} */

.third {
    width: 30%;
    padding-right: 10%;
}

.third img {
    max-width: 60%;
}

.third-1,
.third-2 {
    width: 50%;
    padding-right: 10%;
}

.free-width {
    padding-right: calc(30px + 4%);
    padding-bottom: 1em;
}

.row {
    background-color: #fff;
}


/* Clear floats after the columns */

.row:after {
    content: "";
    display: table;
    clear: both;
}


/*Columns setup END-------------------------------------------- */


/*START Masonry for Projects-------------------------------------------- */

.grid {
    max-width: 1000px;
}

.grid:after {
    content: '';
    display: block;
    clear: both;
}

.grid-sizer,
.grid-item {
    width: 30%;
    max-width: 400px;
}

.gutter-sizer {
    width: 3%;
}

.grid-item {
    padding-bottom: 2em;
    float: left;
}


/*.grid-item--width2 { width: 66.666% }*/

.grid-item img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.grid-item .project-name {
    text-transform: uppercase;
    text-align: right;
    font-size: 0.8em;
    padding-top: 0.5em;
}


/* .grid-item .quote { */

.quote {
    font-family: 'libre_baskerville', Georgia, "Times New Roman", Times, serif;
    font-size: 1.2em;
    line-height: 1.4em;
    color: #989898;
    padding-bottom: 0.3em;
}


/* .grid-item .quote-name { */

.quote-name {
    font-size: 0.8em;
}

.inline-quote-block {
    padding-top: 0.8em;
    font-style: italic;
}


/*END   Masonry for Projects-------------------------------------------- */


/* START styling for arrow button overlaying video -------------------------------------------- */

.btn {
    display: inline-block;
    padding: 6px 12px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
    text-transform: uppercase;
    font-family: 'montserratlight', "Helvetica Neue", Helvetica, Arial, sans-serif;
    -webkit-transition: all .3s ease-in-out;
    -moz-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
}

.btn-circle {
    width: 100px;
    height: 100px;
    margin-top: 50px;
    padding: 20px 16px;
    border: 0;
    border-radius: 35px;
    font-size: 40px;
    color: #fff;
    background: 0 0;
    -webkit-transition: background .3s ease-in-out;
    -moz-transition: background .3s ease-in-out;
    transition: background .3s ease-in-out;
}

@media(min-width:767px) {
    .btn-circle {
        margin-top: 115px;
    }
}

.btn-circle:hover,
.btn-circle:focus {
    outline: 0;
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.btn-circle i.animated {
    -webkit-transition-property: -webkit-transform;
    -webkit-transition-duration: 1s;
    -moz-transition-property: -moz-transform;
    -moz-transition-duration: 1s;
}

.btn-circle:hover i.animated {
    -webkit-animation-name: pulse;
    -moz-animation-name: pulse;
    -webkit-animation-duration: 1.5s;
    -moz-animation-duration: 1.5s;
    -webkit-animation-iteration-count: infinite;
    -moz-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -moz-animation-timing-function: linear;
}

.btn i img {
    vertical-align: middle;
}


/* END styling for arrow button overlaying video -------------------------------------------- */


/* START z-index */

#myVideo,
.fixed-video-container {
    z-index: -2;
}

.hero-image {
    z-index: -1;
}

.row {
    z-index: 2;
}

#nav-bar {
    z-index: 3;
}


/* END z-index */

.hero-image {
    /* height: 100%; */
    height: 90%;
}

.no-hero-image {
    padding-top: 3em;
    background-color: #fff;
}


/* .padding-hero {
    padding-top: 3em;
} */


/* .padding-heroless {
    padding-top: 5.5em;
} */


/* .padding-footer {
    padding-bottom: 4em;
} */

.content-padding {
    padding-top: 3em;
    padding-bottom: 4em;
}

.reset-padding-bottom {
    padding-bottom: 0;
}

.avoid-nav-padding {
    padding-top: 5em;
}

.hoz-rule {
    border-top: 1px solid #222;
    padding-bottom: 2em;
    margin-top: 2em;
}


/* video player */

.video-container {
    height: 100%;
}

#myVideo {
    /* position: fixed;
    right: 0;
    top: 0; */
    min-width: 100%;
    min-height: 100vh;
    /* height needs to be 100vh instead of % to avoid jump on iOS devices.*/
}


/* Oct 2021: this is a fix for landing autoplay video not appearing in Mac Sarafi 15: */

.fixed-video-container {
    position: fixed;
    right: 0;
    top: 0;
    min-width: 100%;
    min-height: 100vh;
}


/*.white-background-body {background: #fff !important;}*/


/*.padding-no {padding: 0;}*/


/*.padding-no img {width: 100%;}*/


/*.force-width {width: 100% !important;}*/


/*.em-spacer  {padding: 0;}*/

.home-video-overlay {
    width: 90%;
    margin: auto;
    text-align: center;
    color: #fff;
    /* following are to posisition content vertically */
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.home-video-logo {
    width: 8em;
    padding-top: 2em;
}

.home-video-title {
    font-size: 3em;
    letter-spacing: 3px;
    padding: 1em 0 0.5em 0;
    /* border-top: 1px solid #fff; */
}

.home-video-strapline {
    font-size: 1.5em;
}


/* START Parallax Script -------------------------------------------- */


/*.hero-image { position: relative; }*/


/*.hero-image img{ visibility: hidden; }*/

.parallax img {
    visibility: inherit;
}

.parallax {
    position: absolute;
    width: 100%;
    /* height: 100%; */
    height: 90%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.white_bg {
    background-color: #fff;
}


/* END   Parallax Script -------------------------------------------- */


/* Dropdown setup START - adapted from https://www.w3schools.com/howto/howto_css_dropdown.asp -------------------------------------------- */


/* The container <div> - needed to position the dropdown content */

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-link {
    /* cursor: default; */
}


/* Dropdown Content (Hidden by Default) */

.dropdown-content {
    display: none;
    position: absolute;
    left: -16px;
    padding-top: 2.2em;
    white-space: nowrap;
    z-index: 1;
}

.dropdown-padding {
    background-color: rgba(255, 255, 255, 0.85);
}

.dropdown-content a {
    margin: 12px 16px;
    display: block;
}


/* Show the dropdown menu on hover */

.dropdown:hover .dropdown-content {
    display: block;
}


/* Dropdown setup END -------------------------------------------- */

.team-photos {
    padding-bottom: 1em;
}

.bike-image {
    text-align: right;
    position: relative;
}

.bike-image img {
    width: 20%;
    position: absolute;
    top: -150px;
    left: 110%;
}

@media only screen and (max-width: 900px) {
    .bike-image img {
        width: 20%;
        position: relative;
        top: 0;
        left: 0;
    }
}


/* for lazy loading: */

.lazy {
    display: inline-block;
    width: 100%;
    height: auto;
    /* ensures item takes up some space even before image loads: */
    /* min-height: 200px; */
    opacity: 0;
    transition: opacity .3s ease-in;
}


/*Responsive adjustents START-------------------------------------------- */

@media only screen and (max-width: 1400px) {
    .third {
        padding-right: 1em;
    }
}

@media only screen and (max-width: 1200px) {
    .home-video-overlay {
        font-size: 0.8em;
    }
    .first {
        width: 30%;
        padding-left: 10%;
    }
    .second {
        /* width: 50%; */
        width: 67%;
    }
    .second-mid,
    .second-wide {
        width: 70%;
    }
    .third,
    .second-mid-extra {
        width: 50%;
        margin-left: 30%;
        padding-right: 0;
    }
    .second-third {
        width: 33%;
    }
    .grid-sizer,
    .grid-item {
        width: 47%;
    }
}

@media only screen and (max-width: 1120px) {
    #nav-bar ul {
        padding: 3em 0 1em 0;
    }
    #nav-bar ul li {
        display: block;
        text-align: right;
        padding-right: 0.5em;
        font-size: 1.2em;
    }
}

@media only screen and (max-width: 900px) {
    .home-video-overlay {
        font-size: 0.8em;
    }
    .first,
    .second,
    .third {
        width: 100%;
        /* font-size: 1em; */
        padding: 0 2em 2em 2em;
        margin: 0;
    }
    .second-mid-extra {
        width: 100%;
        /* font-size: 1em; */
        padding: 0 2.5em 2.5em 2.5em;
        margin: 0;
    }
    .mobile-hide {
        display: none;
    }
    p,
    .grid-item {
        /* font-size: 1.2em; */
    }
    #contact .second-mid-extra p {
        padding-top: 1em;
        /* font-size: 0.8em; */
    }
    /* #nav-bar ul {
        padding: 3em 0 1em 0;
    }
    #nav-bar ul li {
        display: block;
        text-align: right;
        padding-right: 0.5em;
        font-size: 1.2em;
    } */
}

@media only screen and (max-width: 700px) {
    #nav-bar .div-left {
        padding-left: 0.8em;
    }
    #nav-bar .div-right {
        padding-right: 0.5em;
    }
    .second-third {
        width: 100%;
    }
    .third-1,
    .third-2 {
        width: 100%;
        font-size: 1em;
        padding: 0 2em 2em 2em;
        margin: 0;
    }
    .third-1 img {
        max-width: 50%;
    }
    .mobile-hide {
        display: none;
    }
}

@media only screen and (max-width: 600px) {
    .home-video-title {
        font-size: 2em !important;
    }
    .grid-sizer,
    .grid-item {
        width: 100%;
        max-width: 100%;
    }
    .gutter-sizer {
        width: 0%;
    }
}


/*Responsive adjustents END-------------------------------------------- */


/* START Hamburger Responsive Nav --------------------------------------------------------------------- */


/*!
    * Hamburgers
    * @description Tasty CSS-animated hamburgers
    * @author Jonathan Suh @jonsuh
    * @site https://jonsuh.com/hamburgers
    * @link https://github.com/jonsuh/hamburgers
    */


/* .hamburger {    display: inline-block;  cursor: pointer;  transition-property: opacity, filter;  transition-duration: 0.15s;  transition-timing-function: linear;  font: inherit;  color: inherit;  text-transform: none;  background-color: transparent;  border: 0;  margin: 0;  overflow: visible; } */

.hamburger {
    position: absolute;
    top: 1.7em;
    right: 1.5em;
    /*fixing the posistion to compliment logo position*/
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible;
}

.hamburger:hover {
    opacity: 0.7;
}


/* .hamburger-box {  width: 30px;  height: 24px;  display: inline-block;  position: relative; top:0.625em; right: 1em} */

.hamburger-box {
    width: 30px;
    height: 24px;
    display: inline-block;
    position: relative;
}

.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -2px;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
    width: 30px;
    height: 2px;
    background-color: #000;
    border-radius: 2px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
}

.hamburger-inner::before,
.hamburger-inner::after {
    content: "";
    display: block;
}

.hamburger-inner::before {
    top: -10px;
}

.hamburger-inner::after {
    bottom: -10px;
}

.hamburger--spin .hamburger-inner {
    transition-duration: 0.3s;
    transition-timing-function: cubic-bezier(.55, .055, .675, .19)
}

.hamburger--spin .hamburger-inner::before {
    transition: top 0.1s 0.34s ease-in, opacity 0.1s ease-in
}

.hamburger--spin .hamburger-inner::after {
    transition: bottom 0.1s 0.34s ease-in, -webkit-transform 0.3s cubic-bezier(.55, .055, .675, .19);
    transition: bottom 0.1s 0.34s ease-in, transform 0.3s cubic-bezier(.55, .055, .675, .19);
    transition: bottom 0.1s 0.34s ease-in, transform 0.3s cubic-bezier(.55, .055, .675, .19), -webkit-transform 0.3s cubic-bezier(.55, .055, .675, .19)
}

.hamburger--spin.is-active .hamburger-inner {
    -webkit-transform: rotate(225deg);
    transform: rotate(225deg);
    transition-delay: 0.14s;
    transition-timing-function: cubic-bezier(.215, .61, .355, 1)
}

.hamburger--spin.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    transition: top 0.1s ease-out, opacity 0.1s 0.14s ease-out
}

.hamburger--spin.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    transition: bottom 0.1s ease-out, -webkit-transform 0.3s 0.14s cubic-bezier(.215, .61, .355, 1);
    transition: bottom 0.1s ease-out, transform 0.3s 0.14s cubic-bezier(.215, .61, .355, 1);
    transition: bottom 0.1s ease-out, transform 0.3s 0.14s cubic-bezier(.215, .61, .355, 1), -webkit-transform 0.3s 0.14s cubic-bezier(.215, .61, .355, 1)
}


/* bolt ons to create a top right overlaying nav - uncomment to activate
    .nav-hide{display:none}
    .nav-menu{z-index:100;display:inline-block;position:absolute;top:0;right:0;background:#3F3F55}
    #nav{font-size:20px;text-transform:uppercase;padding-top:65px;height:210px;width:200px}
    .hamburger-float{position:absolute;background-color:rgba(78,90,82,.9);top:0;right:0}
  */

.hamburger {
    transform: scale(0.75, 0.75);
}

.hamburger--spin.is-active {
    /* apply whatever here for active state */
}

.hamburger {
    display: none;
}

@media only screen and (min-width: 1121px) {
    nav {
        display: block !important;
        overflow: initial !important;
        /* added to stop flicker when mouse is clicked */
    }
}

@media only screen and (max-width: 1120px) {
    .hamburger {
        display: inline-block;
    }
    nav {
        display: none;
    }
}


/* END   Hamburger Responsive Nav --------------------------------------------------------------------- */