@font-face {
    font-family: 'Barlow';
    src: url('/fonts/Barlow-Medium.woff');
    font-weight: 100 200 300 400 500 600 700 800 900 1000;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Karrik';
    src: url('/fonts/Karrik-Regular.woff');
    font-weight: 100 200 300 400 500 600 700 800 900 1000;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Karrik Italic';
    src: url('/fonts/Karrik-Italic.woff');
    font-weight: 100 200 300 400 500 600 700 800 900 1000;
    font-style: normal;
    font-display: swap;
}

:root {
    --primary-colour:  var(--blue-dark);
    --secondary-colour: #FFC52B;
    --highlight-colour: #cb1d3b;
    --red-colour: #cb1d3b;
    --white-colour: #fff;
    --black-colour:  black;
    --blue-dark: #0b152f;
    --grey-colour: #dee6eb;
    --primary-font: 'Barlow';
    --secondary-font: 'Barlow';
    --border-radius: 10px;
}


html {
    margin: 0;
    max-width: 3000px;
    background-color: var(--grey-colour);
    scroll-behavior: smooth;
}

body  {
    margin: 0;
    font-family: var(--primary-font), sans-serif;
    color: var(--primary-colour);
    margin: 0; padding: 0px;
    background-color: var(--grey-colour);
    overflow-x: hidden;
}

::selection {
    background: var(--secondary-colour);
    color: var(--blue-dark);
  }

.container-full {
    padding: 0;
    margin-right: 0;
    margin-left: 0;
}

input, textarea, button, select, a {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  cursor: pointer;
  color: inherit;
  text-decoration: none;

}

a img {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    text-decoration: none;
}

p {
    font-size: 1.2em;
    line-height: 1em;
    font-weight: 500;
    font-family: var(--primary-font), sans-serif;
}

h1 { font-weight: 800; font-size: 2.4em; line-height: 1.1em;}

h2 {font-weight: 800; font-size: 3em; line-height: 1em; margin-top: .2em; margin-bottom: .2em;}

a h2:hover{
    text-decoration: underline;
    text-decoration-style: wavy ;
    transition: .2s;
}

h3 { font-weight: 500; font-size: 2em;}

.hide-mobile {
    transition: 400ms ease-in-out;
    transform: translate(110%,0);
    height: 100%;
    box-shadow: 3px 4px 8px 3px rgba(0, 0, 0, 0.1);
}

.hide-mobile li {
    opacity: 0;
    transition: 0.2s;
    transform: translateY(50px);
    
} 

header {
    display: flex;
    justify-content: space-between;
    justify-items: space-between;
    margin: 0 auto 0 auto;
    max-width: 2000px;
}

header > .black {
    color: var(--black-colour)!important;
}

.sticky {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 120px;
    background-color: transparent;
    z-index: 5;    
}
.sticky-gradient {background: linear-gradient(180deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,0) 100%);}

.menu {
    width: 25px;
    margin-top: 1em;
    margin-right: 1em;
}

#menuToggle {
    display: flex;
    flex-direction: column;
    position: relative;
    top: 0;
    left: 25px;
    margin-right: 50px;
    margin-top: 30px;
    z-index: 50;
    -webkit-user-select: none;
    user-select: none;
  }
  
  #menuToggle input
  {
    display: flex;
    width: 4em;
    height: 4em;
    position: absolute;
    cursor: pointer;
    opacity: 0;
    z-index: 55;
    margin-right: 10px;
  }
  
  #menuToggle span
  {
    display: block;
    margin-top: -10px;
    font-size: 4em;
    position: relative;
    color: var(--white-colour);
    outline: var(--white-colour);
    z-index: 50;
    transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
                opacity 0.55s ease;
  }

  .black #menuToggle span {
    color: var(--primary-colour);
  }
  
  
  #menuToggle input:checked ~ span
  {
    opacity: 1;
    color: var(--primary-colour);
    transform: rotate(135deg);
  }
  

  #menuToggle input:checked ~ .hide-mobile
  {
    opacity: 1;
    transition: all 1s cubic-bezier(0.23, 1, 0.32, 1); 
    transform: translate(0);
    border-radius: 0;
    height: 100%;
  }

 #menuToggle input:checked ~ .hide-mobile li
  {
    opacity: 1;
    transition: 1s cubic-bezier(0.23, 1, 0.32, 1); 
    transform: translateY(0);
    transition-delay: 1s;
  }

  #menuToggle input:checked ~ .hide-mobile li:nth-child(1) {
    transition-delay: 0.2s;
  }
  #menuToggle input:checked ~ .hide-mobile li:nth-child(2) {
    transition-delay: 0.4s;
  }
  #menuToggle input:checked ~ .hide-mobile li:nth-child(3) {
    transition-delay: 0.6s;
  }
  #menuToggle input:checked ~ .hide-mobile li:nth-child(4) {
    transition-delay: 0.8s;
  }

  #menuToggle input:checked ~ .hide-mobile li:nth-child(5) {
    transition-delay: 1s;
  }

nav {
    display: block;
}

nav ul {
    position: fixed;
    width: 100%;
    right: 0;
    top: 0;
    bottom: 0;
    background: var(--grey-colour);
    color: var(--blue-dark);
    z-index: 7;
    text-align: left;
    padding-top: 100px;
    height: 100%; 
    font-family: var(--primary-font), sans-serif;
    list-style-type: none;
    margin-top: 0;
}

nav ul li {
    width: 100%;
    margin-left: 20px;
    text-decoration: none;
}

nav ul li a {
    text-decoration: none;
    display: block;
    padding: .8em 10px;
    text-align: left;
    font-weight: 500;
    font-size: 2rem;
    text-transform: uppercase;
    border-radius: 4px;
}

nav ul li a:hover {
   text-decoration: underline;
   text-decoration-style: wavy;
}

.logo-box {
    position: absolute;
    top: 40px;
    left: 2em;
     margin-left: 0.2em;  
    width: 300px;
    z-index: 7;
    color: var(--primary-colour);
    padding: 0;
    margin: 0;
    transition: all cubic-bezier(0.075, 0.82, 0.165, 1) 1s;
}

.logo-box-PNG {
    position: absolute;
    top: 20px;
    left: 20px;
    width: 50%;
    max-width: 180px;
    height: 90px;
    z-index: 7;
    color: var(--primary-colour);
    padding: 0;
    margin: 0;
    transition: all cubic-bezier(0.075, 0.82, 0.165, 1) 1s;
    overflow: hidden;
}
    .logo-box-PNG::before {
    background-image: url('/images/logo-transparent-white.webp');
    background-size: cover;
    display: block;
    width: 100%; 
    height: 100%;
    content:"";
    cursor: pointer;
    z-index: 10;
    transition: all 1s;
}

.logo-box::before {
    content: url(/images/logo-white.svg);
    font-family: var(--primary-font);
    font-size: 3rem;
    line-height: 2.4rem;
    font-weight: 600;
    display: block;
    width: 200px;
    cursor: pointer;
    z-index: 10;
    transition: all 1s;
    max-width: 50%;
}

.black.logo-box::before{content: url(/images/logo-colour.svg);}
.black.logo-box-PNG::before{background-image: url('/images/logo-transparent.webp');}

a > .logo-box:hover {
    opacity: .5;
    transition: all cubic-bezier(0.075, 0.82, 0.165, 1) 1s;
}

.logo-box.logo-footer {
    content: url(/images/logo-transparent.webp);
    display: block;
    position: relative;
    width: 100px;
    text-align: left;
    top: 0;
    left: 0;
    margin-top: 0;
}

.logo-footer.logo-box::before {
    font-family: var(--primary-font);
    font-size: 2rem;
    line-height: 1.8rem;
    font-weight: 800;
    display: block;
    width: 200px;
    cursor: pointer;
    z-index: 10;
    transition: all 1s;
    text-align: left;
}

.container {
    padding: 0 1.2em;
    margin-right: 0.2em;
    margin-left: 0.2em;    
}

.container-short {
        max-width: 800px;
        padding: 0 1.2em;
        margin: 0 auto 0 auto
}

.container-flex {
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        flex-wrap: wrap;
}

.container-flex.home {
    width: 100%;
    height: 50%;
    max-width: 100vw;
    position: absolute;
    left: 0;
    top: 0em;
    padding: .2em;
    transition: all 1s;
}

.container-flex.home2{
    width: 100%;
    height: 100%;
    max-width: 100vw;
    position: absolute;
    right: 0;
    bottom: 0;
    padding: .2em;
    transition: all 1s;
}

.container-flex-between {
    justify-content: space-between;
}

.block-full {
    min-height: 100vh;
    margin: 0;
    align-items: center;
    text-align: left;
    justify-content: center;
    position: relative;
}

.block-half {
    min-height: 50vh;
    margin: auto;
    align-items: center;
    text-align: left;
    justify-content: center;
}

.block-half img {width: 100%;height: 100%;}

.block-half-basic {
    min-height: 50vh;
    padding: 2em 0 2em 0;
}

.rounded {
    border-radius: var(--border-radius);
}

.container-home {
   height: 90vh;
   display: flex;
   justify-content: center;
   align-items: center;
   position: relative;
}

.container-home.black {
    background-color: var(--black-colour);
}

.block-half.black , .block-full.black {
    background-color: var(--black-colour);
    color: var(--white-colour);
}

.container-hero {
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: var(--border-radius);
    position: relative;
}

.container-hero-inside {
    position: absolute;
    left: 3%;
    top: 3%;
    width: 94%;
    height: 94%;
    border-style: solid;
    border-width: 2px;
    border-color: var(--white-colour);
    border-radius: var(--border-radius);
    z-index: 100;
    padding: 0;
}

.hero-image {
    width: 90vw;
    height: 90vh;
    object-fit: contain;
    border-radius: var(--border-radius);
    position: relative;
}

.hero-image img {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.hero-image-logo img {
    height: 90%;
    width: 90%;
}

.hero-image-frame::before {
    content: "";
    display: inline-block;
    background: linear-gradient(180deg, rgba(0,0,0,.0) 0%, rgba(255,255,255,0) 50%);
    position: absolute;
    width: 100%;
    height: 100%;
}

.hero-image-template {
    display: block;
    background-size: cover;
    background-repeat: no-repeat;
    width: 100%;
    min-height: 100vh;
    background-position: center;
    text-align: center;
    top: 0;
    max-width: 100%;
    background-color: var(--white-colour);
    overflow: hidden;
    z-index: -10;
}

.hero-image-template.bg-white {
    background-color: var(--white-colour);
    color: var(--primary-colour);
}

.hero-button {
    z-index: 10;
    position: absolute;
    right: 4%;
    bottom: 4%;
}

.tall-image {
    max-height: 500px;
    }


* {
    box-sizing: border-box;
}

.footer {
    width: 100%;
    height: auto;
    background-color: var(--grey-colour);
    color: var(--primary-colour);
    padding: 1em 0 4em 0;
}

.footer a {
    color: inherit;
}

.footer-container {
    margin: 0 5% 0 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.footer-grid {
    padding: 1em 2em 1em 2em;
    display: grid;
    gap: 30px;
    -webkit-box-flex: 1;
    flex-grow: 1;
    max-width: 54em;
    grid-template-columns: repeat(2, 1fr);

}

.footer a:hover {
    text-decoration: underline;
}

.copyright {
    text-align: center;
    font-weight: 600;
    font-size: .8em;
}

.copyright a {text-decoration: underline;}

.copyright a:hover {
   text-decoration-style: wavy !important;
   transition: all ease-in-out 2s;
}

.gradient-T-B {
    background: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(255,255,255,0) 30%);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
}

.gradient-B-T {
    background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(255,255,255,0) 30%);
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0;
}

.grid-two {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(1, 1fr);
    height: 100%;
    width: 100%;
    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
}

.grid-two img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.popup-gallery {
    display: grid;
    column-gap: 1em;
    row-gap: 1em;
    -webkit-box-flex: 1;
    flex-grow: 1;
    grid-template-columns: repeat(1fr);
    min-height: 0;  /* NEW */
  min-width: 0;   /* NEW; needed for Firefox */
  margin: 2em auto 2em auto;
  justify-content: center;
  width: 100%;
  max-width: 90%;
  transition: all 1s;
}

.popup-gallery-item {
    width: 100%;
    height: 100%;
    max-width: 100%;
    aspect-ratio: 1/1;
    padding: 10px;
    cursor: pointer;
}

.popup-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.4s ease-in-out;
    border-radius: var(--border-radius);
}

.popup-gallery img:hover {
    opacity: 50%;
}

.card-description {font-family: var(--primary-font); font-weight: 600;}
.card-description span {font-weight: 400;}

.button-holder {
    text-align: center;
    cursor: pointer;
}

.button {
    text-align: center;
    text-decoration: none;
    color: var(--primary-colour);
    background-color: transparent;
    padding: 8px 28px;
    border-radius: var(--border-radius);
    margin: 0 auto auto auto;
    display: inline-block;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  text-shadow:  none;
  font-weight: 600;
  border-color: var(--primary-colour);
  border-width: 2px;
  border-style: solid;
  cursor: pointer;
  font-size: 1.2em;
}

.button:hover{
    /*transform: translateY(-5px); */
  -webkit-transition: 0.2s;
  transition: 0.2s;
  background-color: var(--primary-colour);
  color: var(--white-colour);
  border-color: var(--primary-colour);
}

.button.button-white {
    background-color: transparent;
  color: var(--white-colour);
  border-color: var(--white-colour);
}

.button.button-filled {
    background-color: var(--white-colour);
    color: var(--primary-colour);
    border: var(--primary-colour);
}

.button-filled:hover {
    -webkit-transition: 0.4s ease;
    transition: 0.4s ease;
    background-color: var(--primary-colour);
    color: var(--white-colour);
    border-color: var(--primary-colour);
}

.button-white:hover {
    -webkit-transition: 0.4s ease;
    transition: 0.4s ease;
    background-color: var(--white-colour);
    color: var(--primary-colour);
    border-color: var(--white-colour);
}

.button-arrow {
    -webkit-transition: 0.4s ease;
    transition: 0.4s ease;
}

.button-arrow::after{
    content: '';
    -webkit-mask: url(/images/arrow-small-light.svg) no-repeat 50% 50%;
    mask: url(/images/arrow-small-light.svg) no-repeat 50% 50%;
    background-color: var(--primary-colour);
      display: inline-block;
      width: 14px;
      height: 14px;
      cursor: pointer;
      text-decoration: none;
      padding: none;
      margin: 0 0 0 8px;
      align-items: center;  
    -webkit-transition: 0.4s ease;
    transition: 0.4s ease;
    mask-size: cover;
    overflow: hidden;
  }
  .button-arrow:hover:after {
  -webkit-transition: 0.4s ease;
  transition: 0.4s ease;
  transform: translateX(6px);
  background-color: var(--white-colour);
}

.white.button-arrow::after {background-color: var(--white-colour);}
.button-white.button-arrow::after{background-color: var(--white-colour);} 
.button-white.button-arrow:hover::after {background-color: var(--primary-colour);}


.center {
    text-align: center;
}

.image-link:hover {opacity: 70%;}

.iframe-container {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}

.responsive-iframe {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

.pageTitle {
    margin-top: 100px;
}

.hero-carousel {
    position: absolute;
    left: auto;
    right: auto;
    bottom: 1em;
    width: 90%;
    height: 60%;
    z-index: 0;
    border-radius: var(--border-radius);
    overflow: hidden;
}

.hero-carousel img {
    display: block;
    width: 100%;
    height: 100%;
}

.carousel-cell {
    height: 100%;
}

.carousel-main {
    max-width: 90vw;
    width: 100%;
    height: 100%;
}

.carousel {
    background: transparent;
    height: 100%;
    width: 100%;
    border-radius: var(--border-radius);
  }
  
  .carousel img {
    display: block;
    object-fit: cover;
    overflow: hidden;
    height: 100%;
    width: auto;
    border-radius: var(--border-radius);
}

.form-full {
    margin: 0 auto 0 auto;
    padding: 1em;
  }

  .form-container {
    width: 100%;
    max-width: 700px;
      /*margin-top:90px;
    margin-bottom: 30px;*/
    display: block;
  }
  .form-row label{
    font-family: var(--primary-font);
    font-weight: 500;
    margin-bottom: 2em;
    font-size: 1.4em;
  }
    .input-field {
        border-style: solid;
        border-color: var(--white-colour);
        border-radius: var(--border-radius);
        border-width: .1px;
        padding: 0.2em;
        margin-left: 4em;
        margin-bottom: 2em;
        font-family: var(--secondary-font);
        font-size: 2em;
        background-color: transparent;
    }

    ::placeholder {
        font-family: var(--primary-font);
        font-size: 1.2em;
        color: var(--white-colour);
    }

    .project {
        width: 100%;
        max-width: 1000px;
        height: 300px;
        vertical-align: top;
        max-width: 100%;
        margin-left: 0;
        margin-top: 1em;
        padding: 1em;
    }

    .place {
        font-family: 'DM Sans';
        font-size: 1.2em;
    }

    #about {
        text-align: justify;
        padding: 2em;
    }

    .logo {
        height: 40px;
        width: 40px;
        margin: auto;
    }

    .logo img {
        width: 100%;
        height: 100%;
        text-align: center;
    }

    .icon::after {
        width: 32px;
        height: 32px;
        display: inline-block;
        content: '';
        -webkit-mask-size: cover;
        mask-size: cover;
        overflow: visible;
    }
    
    .icon-heart::after { -webkit-mask: url(/images/icon-heart.svg) no-repeat 50% 50%;
        mask: url(/images/icon-heart.svg) no-repeat 50% 50%;}

    .icon-insta::after { -webkit-mask: url(/images/icon-instagram.svg) no-repeat 50% 50%;
    mask: url(/images/icon-instagram.svg) no-repeat 50% 50%;}

        .icon-black::after {
            background-color: var(--primary-colour);
        }
        .icon-clear::after {
            background-color: none;
        }
        
        .icon-white::after {
            background-color: var(--white-colour);
            transition: all 2s;
            transition-delay: 2s;
        }
        
        .icon-footer::after {
            height: 1em !important;
            width:  1em !important;
        }

        .showreel {
            padding-bottom: 10em;
            text-align: center;
            padding-top:7em;
            
        
        }
        


.highlight-box {
    display: block;
    position: relative;
    width: 400px;
    height: 400px;
    max-width: 90vw;
    margin: auto;
    background-color: var(--black-colour);
    overflow: hidden;
}

.highlight-box img {object-fit: cover;opacity: 50%; width: 100%; height: 100%;}

.highlight-box-text {
    position: absolute;
    bottom: 12%;
    left: 5%;
    padding: 1em;
}

.home-text {
    position: absolute;
    bottom: 10%;
    max-width: 800px;  	
    text-shadow: 2px 2px 8px rgba(0,0,0,.4);
}
.photo-credit {position: absolute; bottom: 10px; right: 10px; font-size: 10px; font-weight: 200; font-style: italic; text-align: right;}
.red {background-color: var(--red-colour)!important; color: var(--white-colour);}
.blue {background-color: var(--blue-dark)!important; color: var(--white-colour);}
.underline {text-decoration: underline;}

@media only screen and (min-width: 650px) { 
    .hide-desktop {
        display: none;
    }
    .show-mobile {
        display: block;
    }

    .hero-button {
        right: 1%;
    }

    .logo-box::before {
        width: 300px;
        transition: all 1s;
        font-size: 4rem;
        line-height: 3rem;
    }
}

@media only screen and (min-width: 900px) {
    p { font-size: 1.4em;
        line-height: 1em;}
    nav {
        margin: 0;
        margin-right: 4%;
        display: block;
    }
    nav ul {
        position: relative;
        background: none;
        height: 0em;
        display: inline-block;
        object-position: right;
        padding-top: 0;
        padding-right: 0;
        margin: 0 0 20px 0;
        width: 100%;
    }
    
    nav ul li {
        text-align: center;
        display: inline-block;
        margin: 0;
        width: auto;
    }

    nav ul li a {
        color: var(--white-colour);
        background-color: inherit;
        text-align: center;
        margin-bottom: 0;
        font-weight: 500;
        font-size: 1.2rem;
        padding: 0 25px 0 25px;
    }

    nav.black ul li a {
        color: var(--primary-colour);
        border-color: var(--primary-colour);
    }

    nav ul li a:hover {
        background-color: var(--white-colour);
        color: var(--blue-dark);
        text-decoration: none;
        border-color: var(--primary-colour);
    }

    nav.black ul li a:hover{
        background-color: var(--primary-colour);
        color: var(--white-colour);
        text-decoration: none;
        border-color: var(--primary-colour);
    }

    #menuToggle {
        margin-right: 20px;
    }

    #menuToggle span{
        display: none;
    }

   #menuToggle input ~ .hide-mobile li
    {
      opacity: 1;
      transform: translateY(0);
    } 

    .hide-mobile {
        display: flex;
        box-shadow: none;
    }

    .show-desktop {
        display: block;
        opacity: 1;
        transform: translate(0);
        transition: cubic-bezier(0.075, 0.82, 0.165, 1);
    }

    h1 {font-size: 4rem; line-height: 4rem;}
    h2 {font-size: 3.75em; line-height: 1em;}
    h3 { font-size: 2em;}

    .popup-gallery {
        max-width: 70%;
        grid-template-columns: repeat(3, 1fr);
    }

    .popup-gallery.two{
        grid-template-columns: repeat(2, 1fr);
        transition: all 1s;
    }
    .grid-two {
        grid-template-columns: repeat(2, 1fr);
    } 

    .hero-carousel {
        position: absolute;
        width: 50%;
        height: 80%;
        z-index: 0;
        right: 1em;
        left: auto;
        bottom: auto;
        top: auto;
        border-radius: var(--border-radius);
    }

    .carousel img {
        display: block;
        object-fit: cover;
        overflow: hidden;
        height: 100%;
        width: auto;
      }

      .container-hero-inside {
        left: 3%;
        top: 5%;
        width: 94%;
        height: 90%;
    }

    .container-flex.home {
        width: 50%;
        height: 100%;
        left: 0;
        transition: all 1s;
    }

    .container-flex.home2 {
        width: 100%;
        height: 100%;
        right: 0;
        transition: all 1s;
    }

    .showreel {
        padding-bottom: 10em;
        text-align: center;
        padding-top: 6em;
        padding-left: 20%;
        padding-right: 20%;    
    }
}