/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
/*     background:transparent; */
}

body {
    line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
    display:block;
}

blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
    text-decoration: none;
}

/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

/* change colours to suit your needs */
mark {
    background-color:#ff9;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select, textarea  {
    vertical-align:middle;
    border: 0px solid transparent;
}

input:focus, textarea:focus  {
    border: 0px solid transparent;
    outline-width: 0;
}

ul{
    list-style-type: none;
}

button{
	cursor:pointer;
}

button:disabled,
button[disabled],
input[type=radio]:disabled + label{ 
	opacity: 0.5;   
	pointer-events: none;
}



:root {
   /*
    --theme-standard-colour-dark: blue;
    --theme-standard-colour-dark-off-l: pink; 
    --theme-standard-colour-light: yellow;
*/
    
    /*
    Example of complementary colour scheme
    $hue: 30;
    $saturation: 75;
    $lightness: 50;
    
    
    $primary-color: hsl(30, 75%, 50%);
    $complementary-color: hsl(210, 75%, 50%); // 30 + 180 = 210 
    
    $primary-color: hsl($hue, $saturation, $lightness);
    $second-color: hsl($hue - 25, $saturation - 20, $lightness - 10);
    $third-color: hsl($hue - 15, $saturation - 10, $lightness - 10);
    $fourth-color: hsl($hue + 15, $saturation - 15, $lightness);
    $fifth-color: hsl($hue + 25, $saturation - 35, $lightness - 15);

    */
    
    /*Theme colours */
    --h: 230;
    --s: 10;
    --l: 12;
    
    --theme-standard-colour-dark-off-d: hsla(230,10%,8%,1);
    --theme-standard-colour-dark: hsla(230,10%,10%,1);   
    --theme-standard-colour-dark-off-l: hsla(230,10%,12%,1);
    
    --theme-standard-colour-light-off-d: hsla(50,10%,88%,1);
    --theme-standard-colour-light: hsla(50,10%,90%,1);
    --theme-standard-colour-light-off-l: hsla(50,10%,92%,1);
 
    /*Page sections sizes */
    --secNum: 4;
    --secW: 100vw;
    --secMaxW: 2800px;
    
    /*Cursor sizes*/
    --cursorS: 3vh;
    --cursorMaxS: 70px;
    --cursorL: 12vh;
    --cursorMaxL: 200px;
	--cursorXL: 20vh;
    --cursorMaxXL: 300px;
    
    /*Layering (Z-index)*/
    --zIndex-background: 0;
    --zIndex-foreground: 10;
    --zIndex-header: 30;
    --zIndex-expandableHeader: 50;
    --zIndex-cursor: 80; /*Cursor sizes    */
    --zIndex-coverAll: 90; /*Cover all     */
    
    /*Fonts*/
    /*
    font-family: 'Lato', sans-serif;
    font-family: 'Raleway', sans-serif;
    */
	
	/* 	 */
	--borderThinSolidL: 1px solid var(--theme-standard-colour-light);
	--borderThinSolidD: 1px solid var(--theme-standard-colour-dark);
    
	/*Animations*/
	--mainLogoDrawingAnimationDuration: 6.5s;
	--headerLineDrawingAnimationDuration: 1.5s;
}



/* === TEXT STYLES ===*/
/*Mobile*/
p , span , h1, h2, h3 , label ,a ,button{
    color:var(--theme-standard-colour-light);
    font-family: Tahoma, Verdana, sans-serif;
    font-weight: 300;
    margin: 0;
}

p ,.body-text, span ,a{
    font-family: 'Lato', sans-serif;
    font-weight: 400;
}

h1, h2, h3 , label, button, #scroll2explore{
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    letter-spacing: 0.4;
    word-spacing: 1.5;
}

h3{
    font-size: 16pt;
    line-height: 20pt;
    padding: 2vh 0; 
}

label{
    font-size: 14pt;
    line-height: 20pt;
}

p, .body-text{
    font-size: 12pt;
    line-height: 16pt;
    padding: 1vh 0;
}

.thin{
    font-weight: 300;
}

button{
    font-size: 12pt;
    color: var(--theme-standard-colour-light);
    background: none;
    border: none;
    padding: 0;
    margin: 0;
}

a, ul{
    text-decoration: none;
    list-style-type: none; 
}

.buttonScrollToHome{
    width: 12vw;
    height: 12vw;
    max-width: 50px;
    max-height: 50px;
    background-color: var(--theme-standard-colour-dark);
    box-sizing: border-box;
    border: var(--borderThinSolidL);
    
    position: fixed;
    bottom: 3vw;
    right: 3vw;
    
    display: flex;
    align-items: center;
    justify-content: center;
    
    transition: 1s;
}

.buttonScrollToHome::after{
    content: "\2912";    
/*    flex-basis: 1;*/
    font-size: 8vw;
    color:var(--theme-standard-colour-light);
}

/*Tablet*/
@media only screen and (min-width: 700px){ 
    h3{
        font-size: 28pt;
        line-height: 36pt;
        padding: 2vh 0; 
    }

    label{
        font-size: 14pt;
        line-height: 20pt;
    }

    p, .body-text{
        font-size: 18pt;
        line-height: 24pt;
        padding: 1vh 0;
    }
    
}

/*Deskop / Laptop*/
@media only screen and (min-width: 1200px){ 
    h3{
        font-size: 4vh;
        line-height: 5.4vh;
        padding: 1vh 0;  
    }

    label,button{
        font-size: 1.8vh;
    }
    
    label{
        line-height: 2.6vh;
    }

    p, .body-text{
        font-size: 2vh;
        line-height: 2.6vh;
        padding: 1vh 0;
    }
    
    .underline {
        display: block;
        height: 4vh;
        width: 15%;
        border-bottom: var(--borderThinSolidL);
    }
    
    .buttonScrollToHome{
        width: 5vh;
        height: 5vh;
        max-width: none;
        max-height: none;
        right: 3vh;
        top: 8vh;
        bottom: unset;
    }
    
    .buttonScrollToHome::after{
        content: "\21E4";
        font-size: 5vh;
        font-weight: 100;
        font-family: 'Lato';       
    }
}

/* 1080 Wide Desktop */ 
@media only screen and (min-width: 1600px){    
    label{
        font-size: 1.4vh;
        line-height: 2.4vh;
    } 
    
    p, .body-text{
        font-size: 1.6vh;
        line-height: 2.2vh;
    }   
}

/* === Overrides === */
.text-hidden{
    line-height: 0vh;
    color: transparent;
}

.button--invisible{
    opacity: 0;
    pointer-events: none;
}

.button--visible{
    opacity: 1;
    pointer-events: all;
}

.desktopOnly{
    display: none;
}

button{
    color: var(--theme-standard-colour-light);
    background: none;
    border: none;
    padding: 0;
    margin: 0;   
}

/*Deskop*/
@media only screen and (min-width: 1200px){ 
    .desktopOnly{
        display: block;
    }
    
    .mobileOnly{
        display: none;
    }
    
    /* Hide scrollbar for Chrome, Safari and Opera */
    body::-webkit-scrollbar {
        display: none;
    }

    /* Hide scrollbar for IE, Edge and Firefox */
    body {
        -ms-overflow-style: none;
        scrollbar-width: none;    
    }
    
    button , label, a, pointerTrigger{
        cursor:none;
    }
    
    /*Cursor*/
    .cursor-wrapper, .cursor
    {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;

        cursor: none;
        z-index: var(--zIndex-cursor);
    }
    
    .cursor-wrapper {
        position: fixed;
        left: 0%;
        top: 0%;
        right: 0%;
        bottom: 0%;
        z-index: 100;
        margin-right: 0px;
        margin-left: 0px;
    }

    .cursor {
        position: absolute;
        width: var(--cursorL);
        height: var(--cursorL);
        max-width: var(--cursorMaxL);
        max-height: var(--cursorMaxL);

        border-radius: var(--cursorMaxL);
        background: white;
        background: radial-gradient(circle, white 65%, black 100%);
/*        border: 0.1pt dotted black;*/

        will-change: transform; 
        transform-style: preserve-3d;

        animation-duration:250ms;
        animation-timing-function:linear;
        animation-fill-mode: forwards;
        animation-iteration-count: 1;          
    }

    .cursor-center{
        display: block;
        position: absolute;
        width: 0.15vw;
        height: 0.15vw;
        border-radius: 0.15vw;
        max-width: 3px;
        max-height: 3px;
        background-color: black;
    }

    @-webkit-keyframes scaleS2L{
        0% { 
            width: var(--cursorS);
            height: var(--cursorS);
            border-radius: var(--cursorMaxS);
            max-width: var(--cursorMaxS);
            max-height: var(--cursorMaxS);
        }
        100% {
            width: var(--cursorL);
            height: var(--cursorL);
            border-radius: var(--cursorMaxL);
            max-width: var(--cursorMaxL);
            max-height: var(--cursorMaxL);
        }
    }

    @-webkit-keyframes scaleL2S{
        0% { 
            width: var(--cursorL);
            height: var(--cursorL);
            border-radius: var(--cursorMaxL);
            max-width: var(--cursorMaxL);
            max-height: var(--cursorMaxL);
        }
        100% {
            width: var(--cursorS);
            height: var(--cursorS);
            border-radius: var(--cursorMaxS);
            max-width: var(--cursorMaxS);
            max-height: var(--cursorMaxS);
        }
    }
	
	@-webkit-keyframes scaleL2XL{
        0% { 
            width: var(--cursorL);
            height: var(--cursorL);
            border-radius: var(--cursorMaxL);
            max-width: var(--cursorMaxL);
            max-height: var(--cursorMaxL);
        }
        100% {
            width: var(--cursorXL);
            height: var(--cursorXL);
            border-radius: var(--cursorMaxXL);
            max-width: var(--cursorMaxXL);
            max-height: var(--cursorMaxXL);
        }
    }
	
	@-webkit-keyframes scaleXL2L{
        0% { 
            width: var(--cursorXL);
            height: var(--cursorXL);
            border-radius: var(--cursorMaxXL);
            max-width: var(--cursorMaxXL);
            max-height: var(--cursorMaxXL);
        }
        100% {
            width: var(--cursorL);
            height: var(--cursorL);
            border-radius: var(--cursorMaxL);
            max-width: var(--cursorMaxL);
            max-height: var(--cursorMaxL);
        }
    }
}

/* ================= HEADER  ================= */
.header,
.header__content{
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
}

/*CHANGING HEIGH OF HEADER CAUSES SCREEN TO FLASH*/
.header{
    width: 100%;
    z-index: var(--zIndex-header);
    
    opacity: 0.4;
    animation: headerFadeIn 5s ease-out forwards;
    animation-delay: 3s;
}

@-webkit-keyframes headerFadeIn{
    0% {
        opacity: 0.4;
    }
    100% {
        opacity: 1;
    }
}

.header--animationPreset{
    animation-duration: 2s;
    animation-fill-mode: forwards;
    animation-iteration-count: 1; 
}

.header--condensed{
    height: 50px;
    background-color: var(--theme-standard-colour-dark);;
/*    animation-name: headerBackgroundColourFadeIn; */
}

@keyframes headerBackgroundColourFadeIn{
    0% { background-color: transparent; }
    100% {background-color: var(--theme-standard-colour-dark); }
}

.header--expanded{
    height: 100vh;
    background-color: transparent;
}

/*Expanded Header Circle Transition*/
.header__background{	
    width: 100%;
    height: 100%;
    background-color: var(--theme-standard-colour-dark-off-d);
    position: absolute;
    top: 0;
    right: 0;
    
    opacity: 0.8;  
	pointer-events:none;
	-webkit-clip-path: circle(0% at 100% 0);
	clip-path: circle(0% at 100% 0);
	-webkit-transition: 1s; /* Chrome, Safari 10.1+ */
    -moz-transition: 1s; /*  Firefox */
    -o-transition: 1s; /*  Opera */
    transition: 1s;
}

.header--expanded .header__background{
    opacity: 1;
	pointer-events:all; 
	-webkit-clip-path: circle(141.4% at 100% 0);
	clip-path: circle(141.4% at 100% 0);
}

/*Header Content*/
.header__content{
    width: 100%;
    height: 100%;
/*
    max-width: 2048px;
    max-width: 600px;  
*/
/*    transition: 1s;*/
    
}

.header--expanded .header__content{ 
/*    max-width: 2048px;*/
}

.navMenu{
}

.header--condensed .navMenu{
/*    width: 22vw;*/
/*    height: 60%;  */
/*    animation-name: opacityTransition; */
}

.header--expanded .navMenu{
    width: 80%;
    height: 80%;
    animation-name: opacityTransition; 
}

@keyframes opacityTransition{
    0% { opacity: 0; }
    100% {opacity: 1; }
}

.navMenu__list,
.navMenu__item{
    display: flex;
}

.navMenu__list{
    height: 100%;
    width: 100%;
    
    position: relative;
    bottom: -5%;
    
    flex-wrap: nowrap; 
}

.header--expanded .navMenu__list{
    flex-direction: column;
}

.navMenu__item{
    flex-grow: 1; 
}

.header--condensed .navMenu__list__item__button{
/*
    width: 100%;
    font-size: 1.6vh;

    z-index: calc(var(--zIndex-header) + 1);
    
    border-bottom: 1px solid transparent;
*/
}

.header--expanded .navMenu__list__item__button{
    font-size: 40pt;
/*    letter-spacing: -5;*/
    text-align: left;
/*    text-transform: uppercase;*/
    
    /* Prefix required. Even Firefox only supports the -webkit- prefix */
    font-weight: 700;
    color: transparent;
    -webkit-text-stroke-width: 0.5pt;
    -webkit-text-stroke-color: var(--theme-standard-colour-light);
}

/*Logo Small*/
.headerLogo{
    display: block;
    height: 40px;
    width: 40px;
    margin: 5px;
    
    position: fixed;
    top: 0;

    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url(../svg/vt-logo-thumbnail.svg);    
    
    z-index: calc(var(--zIndex-header) + 1);
}


/*Hamburger*/
/*Mobile*/
#hamburger-menu-icon {
    display: block;
    width: 20px;
    height: 20px;
    
    position: fixed;
    top: 0;
    right: 0;
    
    z-index: calc(var(--zIndex-header) + 5);
/*    float: left;*/
    margin: 15px;
    -webkit-transform: rotate(0deg); /* Chrome, Safari 10.1+ */
    -moz-transform: rotate(0deg); /*  Firefox */
    -o-transform: rotate(0deg); /*  Opera */
    transform: rotate(0deg);  
}

#hamburger-menu-icon span {
    width: 100%;
    height: 0.3vh;
    background: var(--theme-standard-colour-light);
    
    display: block;
    position: absolute;
    left: 0;
    
    -webkit-transition: .25s ease-in-out; /* Chrome, Safari */
    -moz-transition: .25s ease-in-out; /*  Firefox */
    -o-transition: .25s ease-in-out; /*  Opera */
    transition: .25s ease-in-out; 
    
    pointer-events: none;
}

.header--expanded #hamburger-menu-icon span {
    width: 130%; 
    left: -15%; /* -((width in % - 100%) / 2)  */
}

#hamburger-menu-icon span:nth-child(1){ top: 0px; }
#hamburger-menu-icon span:nth-child(2){ top: 9px; }
#hamburger-menu-icon span:nth-child(3){ top: 9px; }
#hamburger-menu-icon span:nth-child(4){ top: 18px; }

.header--expanded #hamburger-menu-icon span:nth-child(1) {
    top: 9px;
    width: 0%;
    left: 50%;
}

.header--expanded #hamburger-menu-icon span:nth-child(2) {
    -webkit-transform: rotate(45deg); /* Chrome, Safari 10.1+ */
    -moz-transform: rotate(45deg); /*  Firefox */
    -o-transform: rotate(45deg); /*  Opera */
    transform: rotate(45deg);
}

.header--expanded #hamburger-menu-icon span:nth-child(3) {
    -webkit-transform: rotate(-45deg); /* Chrome, Safari 10.1+ */
    -moz-transform: rotate(-45deg); /*  Firefox */
    -o-transform: rotate(-45deg); /*  Opera */
    transform: rotate(-45deg);
}

.header--expanded #hamburger-menu-icon span:nth-child(4) {
    top: 9px;
    width: 0%;
    left: 50%;
}


/*Progress Line*/
.progress-line{
    position: absolute;
    left: 0;
    top: 50px;
/*    bottom: 0;*/
    width: 100%;  
    margin: 0;
}

.progress-line span{
    position: absolute;
    height: 1pt;
    width: 0%;
}

.progress-line span:nth-child(1){
    background: grey;  
    width: 0%;
/*     animation: initialProgressLineDraw 1.5s ease-out forwards; */
	animation-name: initialProgressLineDraw;
	animation-duration: var(--headerLineDrawingAnimationDuration);
    animation-timing-function:ease-out;
    animation-fill-mode: forwards;
	
/*     animation-delay: 8.5s; */
	animation-delay: calc(var(--mainLogoDrawingAnimationDuration) - 3s);
}


@-webkit-keyframes initialProgressLineDraw{
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}

.progress-line span:nth-child(2),
.progress-line span:nth-child(2)::after{
    background: var(--theme-standard-colour-light);
}

.progress-line span:nth-child(2){
    width: 0%;
}

.progress-line span:nth-child(2)::after{
    content: "";
    width: 0.3vh;
    height: 0.3vh;
    
    position: absolute;
    right: 0;
    top: -0.15vh;
    border-radius: 1vw;
}

@media only screen and (min-width: 700px){     
    .header--condensed{
        height: 7vw;
    }
    
    .headerLogo{
        height: 5vw;
        width: 5vw;
        margin: 1vw;
    }

    .progress-line{
        top: 7vw;
    }
    
    #hamburger-menu-icon{
        height: 3.5vw;
        width: 3.5vw;
        margin: 1.75vw;
    }
    
    #hamburger-menu-icon span:nth-child(1){ top: 0vw; }
    #hamburger-menu-icon span:nth-child(2){ top: 1.75vw; }
    #hamburger-menu-icon span:nth-child(3){ top: 1.75vw; }
    #hamburger-menu-icon span:nth-child(4){ top: 3.5vw; }
}

/*Desktop*/
@media only screen and (min-width: 1200px){ 
    .header--condensed{
        height: 5vh;
    }
    
    .header--condensed .header__background {
        opacity: 1;
		pointer-events:all; 
		-webkit-clip-path: circle(141.4% at 100% 0);
        clip-path: circle(141.4% at 100% 0);		
    }
    
    .header--condensed .header__content {
        height: 5vh;
    }
    
    .header--condensed .navMenu__list__item__button {
		font-size: 1.2vh;
        padding: 0 1vh;
        /* letter-spacing: -5; */
        text-align: left;
        /* text-transform: uppercase; */
        font-weight: 500;
        color: var(--theme-standard-colour-light);
        -webkit-text-stroke-width: 0;
        -webkit-text-stroke-color: var(--theme-standard-colour-light);
        transition: 400ms;
    }
    
    .header--condensed .navMenu__list__item__button:hover{
        padding-bottom: 1vh;
    }
    
    .headerLogo{
        height: 4vh;
        width: 4vh;
        margin: .25vw;
        left: 35%;
    }

    .progress-line{
        top: 5vh;
    }
    
    #hamburger-menu-icon{        
        height: 3vh;
        width: 3vh;
        margin: 1.0vh;
    }
    
    #hamburger-menu-icon span {
        height: 0.2vh;
    }
    
    #hamburger-menu-icon span:nth-child(1){ top: 0vw; }
    #hamburger-menu-icon span:nth-child(2),
    #hamburger-menu-icon span:nth-child(3){ top: calc(1.5vh - 0.1vh); }
    #hamburger-menu-icon span:nth-child(4){ top: calc(3vh - 0.2vh); }
}


/* === Other === */
body,
main,
.horizontal-scroller-container,
.viewport,
.horizontal-object,
.horizontal-card{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body{
   background-color: var(--theme-standard-colour-light-off-l);
}

.horizontal-object{
    justify-content: center;
}

.horizontal-card {
    display: block;
    margin: 0;
    min-height: calc(100vh);
    position: relative;
    
    width: 100%;
    display: flex;
    flex-direction: column;
}

.horizontal-card > *{
    flex-grow: 1;
}

.infoTab{
    width: 90%;
    padding: 0 5%;
    padding-top: 7.5vh; 
    background-color: var(--theme-standard-colour-dark); 
}

/*
.horizontal-card:nth-child(1){ background: grey; }
.horizontal-card:nth-child(2){ background: purple; }
.horizontal-card:nth-child(3){ background: slategray; }
.horizontal-card:nth-child(4){ background: navy; }
*/

/*Tablet*/
@media only screen and (min-width: 700px){ 
    .infoTab {
        width: 80%;
        padding: 0 10%;
    }
}

/*Desktop*/
@media only screen and (min-width: 1200px){ 
    
    /*Controll scrolling height from here*/
    /*height = 100vh + (N-1) * SectionWidth (where N = number of sections*/
    .horizontal-scroller-container {
        height: calc(100vh + (var(--secNum) - 1) * var(--secW));
        
        max-height: calc(100vh + (var(--secNum) - 1) * var(--secMaxW));
    }

    .viewport {
        height: 100vh;
        width: 100%;
        max-width: var(--secMaxW);

        position: -webkit-sticky;
        position: sticky;
        top: 0;  
        overflow: hidden;

        transition: top 0.5s;
    /*        border: 1px solid blue;*/
    }

    /*width = N * 100vw where N= number of cards/slides*/
    .horizontal-object {
        display: flex;
        height: 100%;
        width: calc(var(--secNum) * var(--secW));
        max-width: calc(var(--secNum) * var(--secMaxW));

        position: relative;
    }

    .horizontal-card {
        height: 100%;
        width: calc(100% / var(--secNum));

        flex-grow: 1;

        flex-direction: row;
        min-height: inherit;       
        
/*        border-right: 1px solid var(--theme-standard-colour-light);*/
    }
       
    .infoTab {
        width: initial;
        max-width: 50%;
        padding: 0;
        z-index: calc(var(--zIndex-foreground));
    }   
}

/*Ultra Wide*/
@media only screen and (min-width: 2800px){
    .horizontal-scroller-container {
        display: flex;
        justify-content: center;
/*        background-color: black;*/
    }   
    
    .viewport::before,
    .viewport::after{
        content: "";
        height: 100vh;
        width: calc((100vw - var(--secMaxW)) / 2);
        background: var(--theme-standard-colour-dark);

        position: fixed;
        top: 0;
    }
    
    .viewport::before{
        left: 0; 
        background: linear-gradient(90deg, var(--theme-standard-colour-dark-off-d) 0%, var(--theme-standard-colour-dark) 100%);
    }
    
    .viewport::after{
        right: 0;
        background: linear-gradient(-90deg, var(--theme-standard-colour-dark-off-d) 0%, var(--theme-standard-colour-dark) 100%);
    }
    
}



/*FEATURE IMAGES PRESETS*/
.feature-image,
.container{
    width: 100%;    
}

@media only screen and (min-width: 1200px){
    .feature-image{
        z-index: calc(var(--zIndex-background) + 2);
    }
    
    .container{
        width: initial;
    }
}

/*height = 50vh - .horizontal-card padding top (7.5vh)*/
.feature-image{
    min-height: calc(50vh - 7.5vh);
	max-height: calc(50vh - 7.5vh);
	display: flex;
    justify-content: center;
    align-items: center;
/*     background-color: var(--theme-standard-colour-light-off-l); */
}

/*Tablet*/
@media only screen and (min-width: 700px){ 
    .feature-image{
        min-height: calc(55vh);
		max-height: calc(55vh);
    }
}


/*Desktop*/
@media only screen and (min-width: 1200px){
    section{
        position: relative;
    }

    section > div{
        flex-grow: 1; 
    }
    
    .feature-image{
        position: inherit;
		min-height: initial;
		max-height: initial;
/* 		background-color: initial; */
    }
}


/*HERO*/
#hero{
    background-color: var(--theme-standard-colour-dark);
    display: block;
}

/*SVG WRAPPER 1 - MAIN TEXT LOGO*/
#svg-wrapper-01{
    position: relative;
    top:35vh;
    height: 30vh;
}

@media only screen and (min-width: 1600px){ 
    #svg-wrapper-01{
        top:40vh;
        height: 20vh;
    }
}

#svg-wrapper-01 svg,
#svg-wrapper-01 embed{
    width: 100%;
    height: 100%;
}

#svg-wrapper-01{
    animation-name: mainLogoBreath;
    animation-duration: 5s;
    animation-timing-function:ease-in;
    animation-fill-mode: forwards;
    animation-iteration-count: infinite;
    animation-delay: var(--mainLogoDrawingAnimationDuration);
}

@-webkit-keyframes mainLogoBreath{
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.75;
    }
    100% {
        opacity: 1;
    }
}

.vanguard-svg, .technologists-svg{
    stroke:hsl(51deg 100% 97%);
}

.vanguard-svg{  
    stroke-width:0.25;
    fill:hsl(51deg 100% 97%);
    fill-opacity:1.0;
/* 	fill-opacity:0; */
}

.technologists-svg{ 
    stroke-width:1;
    fill:none;
    fill-opacity:1.0;
}

.vanguard-svg, .technologists-svg{
    opacity: 0;
}

.vanguard-svg,
.technologists-svg{
	animation-duration: var(--mainLogoDrawingAnimationDuration);
/*     animation-timing-function:ease-out; */
    animation-fill-mode: forwards;
}

.vanguard-svg{
    stroke-dasharray: 275;
	animation-name: vanguard-svg;
/* 	animation-timing-function:ease-in-out; */
	cubic-bezier(0.43, 0.62, 0.99, 0.4);
/* 	animation-iteration-count: infinite; */
}

@-webkit-keyframes vanguard-svg{
    0% {
        opacity: 0;
        stroke-dashoffset: 275;
        fill-opacity:0;
    }
    40% {opacity: 1;}
    50% {
        fill-opacity:0;
    }
    60% {
        fill-opacity:0.7;
    }
	70% {
        fill-opacity:1.0;
    }	
    100% {
        opacity: 1;
        stroke-dashoffset: 0;
        fill-opacity:1.0;
    }
}

.technologists-svg{
	animation-name: technologists-svg;
	animation-timing-function:ease-out;
}

/* @-webkit-keyframes technologists-svg{
    0% {opacity: 0}
    70%{opacity: 0}
    85%{opacity: 0.7;}
    100% {opacity: 1.0}
} */

@-webkit-keyframes technologists-svg{
    0% {opacity: 0}
    50%{opacity: 0}
    85%{opacity: 0.7;}
    100% {opacity: 1.0}
}

svg path, svg rect{
    pointer-events: none;
}

#scroll2explore{
    position: absolute;
    bottom: 17.5vw;
    left: 25%;
    width: 50%;
    text-align: center;
    
    /*    animation: pulse 5s ease-out forwards infinite;*/
    animation-name: breath;
    animation-duration: 5s;
    animation-timing-function:ease-in;
    animation-fill-mode: forwards;
    animation-iteration-count: infinite;
/*     animation-delay: 9s; */
	animation-delay: calc(var(--mainLogoDrawingAnimationDuration) + var(--headerLineDrawingAnimationDuration) - 4s);
    
    opacity: 0;
}

@keyframes breath{
    0% { 
        opacity: 0;
    }
    50% {
        opacity: 0.9;
    }
    100% {
        opacity: 0;
    }
}

/*Tablet*/
@media only screen and (min-width: 700px){ 
    #scroll2explore{
        font-size: 1.5rem;
		bottom: 10vw;
    }
}

/*Desktop*/
@media only screen and (min-width: 1200px){ 
    #hero{
        z-index: calc(var(--zIndex-foreground));
    }
    
    #scroll2explore {
        font-size: 1.6vh;
        font-weight: 500;
        height: 2.5vw;
        width: 10vw;
        left: auto;
        bottom: auto;
        top: 7.5vw;
        right: -2.5vw;
        transform: rotate(90deg);
    }
}

/* ABOUT SECTION*/
#about .feature-image .image-content{
	width: 85%;
	height:85%;
}

@media only screen and (max-width: 699px){ 
    #about h3{
        font-size: 12pt;
    }
}

@media only screen and (max-width: 1199px){ 
	#about::after{
		content: "";
		width: 30%;
		position: absolute;
		bottom: 0;
		left: 35%;
		height: 2.5%;
		border-top: var(--borderThinSolidL);
	}
}


/*Desktop*/
@media only screen and (min-width: 1200px){ 
    .horizontal-card .container {
        height: auto;
        margin: 25vh 5vw 0;
    }

    #about-info .container p{
        width: 65%;
    }
    
    #about .feature-image{
/*        background-color: transparent;*/
    }
     
    #about .feature-image .image-content{
        width: 90vh;
		height: 90vh;
        overflow: hidden;

        position: relative;
        top: 3vh;
        z-index: 1;
        content: '';
/* 		border: 1px solid black; */
    /*
        background-size: cover;
        background-size: 100%;
        background-repeat: no-repeat;
        background-position: center;
        z-index: 1;

        background-image: url(/Assets/SVGs/AxoHouse-1-cleaned.svg); 
    */
    }

    .svg-mask-group2{
    /*
        animation-name: move;
        animation-duration: 25s;
        animation-fill-mode: forwards;
        animation-iteration-count: infinite; 
    */

        /*    animation-timing-function:ease-in;*/
    }
}

/* SERVICES*/
/* Mobile */
@media only screen and (max-width: 1199px){ 
    #services .feature-image{
        bottom: 0;
    }
}

#services-info{
}

#services-info .container input[type="radio"] {
    display: none;
}

#services-info .container label{
    display: inline-block;
    position: relative;
}

#services-info .container label,
#services-info .container label>*{
    transition: 1s;
}

#services-info .container label h3,
#services-info .container label p,
#services-info .container label span{
    position: relative;
    z-index: 4;
}

#services-info h3{
    padding: 0;
    padding-left: 5%;
}

#services .feature-image .image-content .BIC_colour{	
	-webkit-clip-path: circle(22% at 58% 48%);
	clip-path: circle(22% at 58% 48%);
	
	-webkit-transition: 2s ease-in-out; /* Chrome, Safari */
    -moz-transition: 2s ease-in-out; /*  Firefox */
    -o-transition: 2s ease-in-out; /*  Opera */
    transition: 2s ease-in-out;	
}

#services .feature-image:hover .image-content .BIC_colour{
	-webkit-clip-path: circle(141.4% at 58% 48%);
	clip-path: circle(141.4% at 58% 48%);	
}


/*Mobile Only*/
@media only screen and (max-width: 1199px){ 
    #services-info h3::before{
        content: "";
        width: 2vw;
        height: 2vw;
    /*    background-color: red;*/
        position: absolute;
        top: calc(25% + 0.5vw);
        left: 0;
        border-right: 2pt solid white;
        border-bottom: 2pt solid white;

        transform-origin: center;
        transform: rotate(-45deg);
		-webkit-transition: 1s; /* Chrome, Safari */
		-moz-transition: 1s; /*  Firefox */
		-o-transition: 1s; /*  Opera */
		transition: 1s;
    }
}

#services-info .container label .text-hidden{
    padding-left: 2.75%;
    margin-left: 1.25%;
    width: 96%;
    
	-webkit-transition: .85s; /* Chrome, Safari */
    -moz-transition: .85s; /*  Firefox */
    -o-transition: .85s; /*  Opera */
    transition: .85s;
	
    transition-delay: 0.9s;   
}

#services-info .container input[type="radio"]:checked+label .text-hidden{
    color: var(--theme-standard-colour-light);
    border-left: var(--borderThinSolidL);
}

#services-info .container input[type="radio"]:checked+label h3::before{
    transform: rotate(45deg);
}
#services-info .container input[type="radio"]:checked+label .text-hidden{ 
    line-height: 16pt;
}
    
/*Tablet*/
@media only screen and (min-width: 700px){ 
    #services-info .container input[type="radio"]:checked+label .text-hidden{ 
        line-height: 24pt;
    }   
}   
    
/*Desktop*/
@media only screen and (min-width: 1200px){ 
    #services-info {
        max-width: 33%;
    }
    
    #services-info h3{
       padding: 1vh 0; 
    }
    
    
    #services-info .container label .text-hidden{
        padding: 1vh 0;
        margin: 0;
        width: 100%;

        transition: 1s;
        transition-delay: 0.9s;   
    }
    
    #services-info .container label .service-highlight{
        width: 0%;
        height: 100%;
        background: var(--theme-standard-colour-light);  
        background: linear-gradient(60deg, var(--theme-standard-colour-light-off-d), var(--theme-standard-colour-light-off-l));
        border: 0px solid transparent;

        position: absolute;
        z-index: 3;
        top: 0;
    /*    left: -3vw;*/

        padding: 0 ;
        transition: 1s;    
    }

    #services-info .container input[type="radio"]:checked+label h3,
    #services-info .container input[type="radio"]:checked+label p,
    #services-info .container input[type="radio"]:checked+label span,
    #services-info .container input[type="radio"]:checked+label .text-hidden{
        color: var(--theme-standard-colour-dark);  
    }
    
    #services-info .container input[type="radio"]:checked+label .underline {
        width: 120%;
        border-bottom: var(--borderThinSolidD);
    }
    
    #services-info .container input[type="radio"]:checked+label .text-hidden{ 
        line-height: 2.6vh;
        border: none;
    }  
    
    #services-info .container label .service-highlight{
        width: 0%;
        height: 100%;
        background: var(--theme-standard-colour-light);  
        background: linear-gradient(60deg, var(--theme-standard-colour-light-off-d), var(--theme-standard-colour-light-off-l));
        border: 0px solid transparent;

        position: absolute;
        z-index: 3;
        top: 0;
        left: -3vw;

        padding: 0 ;
        transition: 1s;    
    }

    #services-info .container input[type="radio"]:checked+label .service-highlight{   
        width: 100%;
        width: calc(100% + 4vw);
        padding: 0 3vw; 
        border: var(--borderThinSolidD);
    }
}
    
/*    Contact   */
.wpforms-container{
    box-sizing: border-box;
    padding-bottom: 10vw;
    border-bottom: var(--borderThinSolidL);
}

.wpforms-field{
    margin-top: 5vw;
}

.wpforms-field > *{
    display: block;
}

.wpforms-field label{
    font-size: 12pt;
    text-transform: uppercase;
}

.wpforms-required-label{
    text-transform: capitalize;
}

.wpforms-field input,
.wpforms-field textarea,
.wpforms-submit{
	box-sizing: border-box;
    padding: .5vh;
    min-width: 100%;
    border-radius: 0;
    transition: 0.15s ease-in-out;
}

.wpforms-field input:focus-visible,
.wpforms-field textarea:focus-visible{
    border-radius: 0;
    outline: -webkit-focus-ring-color auto 0;
/*    background: hsla(225,15%,25%,1);*/
    background: var(--theme-standard-colour-dark-off-l);
    
}

.wpforms-field textarea{
    height: 30vh;
    resize: none;
    overflow: auto;
}

.wpforms-field input,
.wpforms-field textarea{
    color:var(--theme-standard-colour-light);
    
    position: relative;
    
    background-color: transparent;
    border: var(--borderThinSolidL);
}

.wpforms-submit{
    background:var(--theme-standard-colour-light);
    color: black;

    margin-top: 1.5vh;
}

.wpforms-submit:hover{
/*    cursor: pointer;*/
/*    background: radial-gradient(circle, hsl(0deg 0% 100%) 0%, hsl(230deg 5% 80%) 100%);*/
    background: hsla(225,15%,85%,1);
}

.wpforms-submit:visited,
.wpforms-submit:focus{
    background: hsla(225,15%,25%,1);
    color: var(--theme-standard-colour-light);
}

.grecaptcha-badge{
	display:none;
}

#footer-tab .container{
/*
    width: 80%;
    margin-top: 25vh;
*/
}

#footer-tab .container > *{
    font-size: 10pt;
    line-height: 14pt;
    margin-bottom: 2vw;
}

#confidentiality{
    opacity: 0.65;
}

#confidentiality a{
    font-weight: bold;
    text-decoration:underline; 
}

/*Desktop*/
@media only screen and (min-width: 1200px){
    #contact {
        display: grid;
        grid-template-columns: 2fr 1fr;
    }

    #contact > * {
        max-width: initial;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
    }
    
    #contact-form-tab {
        border-right: var(--borderThinSolidL);
    }
    
    #contact-form-tab h3 {
        margin-top: 5vh;
        width: 40%;
        text-align: center;
        margin-left: 7vw;
    }
    
    .wpforms-container {
        padding:0 ;
        border: none;
    }
      
    .wpforms-form{
        position: relative;
        width: 30vw;
        max-width: 30vw;
    }

    .wpforms-field-container{

    }

    .wpforms-field{
        display: flex;
        position: relative;
        width: 100%;
        margin-top: 4vh;
		min-height: 5vh;
    }

    .wpforms-field > *{
        display: inline-block;
    }

    .wpforms-field label{
        flex-grow: 1;  
        font-weight: bold;
        font-size: 1.6vh;
        line-height: 2.2vh;
    }

    .wpforms-required-label{
        display: initial;
        font-weight: lighter;
    }

    .wpforms-field input:focus-visible,
    .wpforms-field textarea:focus-visible{
        border-radius: 0;
        outline: -webkit-focus-ring-color auto 0;
    /*    background: hsla(225,15%,25%,1);*/
        background: var(--theme-standard-colour-dark-off-l);
    }    

    .wpforms-field input,
    .wpforms-field textarea,
    .wpforms-submit{
        min-width: 75%;
    }
	
    .wpforms-field textarea{
        height: 20vh;
    }

    .wpforms-field input,
    .wpforms-field textarea{
        margin-left: 1vw;
		font-size: 1.3vh;
    }

    .wpforms-submit{
        position: absolute;
        right: 0;  
    }

    .wpforms-submit:hover{
    /*    cursor: pointer;*/
    /*    background: radial-gradient(circle, hsl(0deg 0% 100%) 0%, hsl(230deg 5% 80%) 100%);*/
        background: hsla(225,15%,85%,1);
    }

    .wpforms-submit:visited,
    .wpforms-submit:focus{
        background: hsla(225,15%,25%,1);
        color: var(--theme-standard-colour-light);
    }
	
	.wpforms-field label.wpforms-error{
		display: block;
		position: absolute;
		left: 7.5vw;
		top: 5vh;
		font-size: 1.2vh;
		text-transform: none;
		font-weight: 300;
		font-style: italic;
	}
    
    /* Lets Talk */
    #letstalk{ 
        height: 20vh;
        letter-spacing: -7;
        transform-origin: center;
        transform: rotate(-90deg);

        position: relative;
        top: -24%;
		right: -41%;
    }

    #letstalk span{
        font-family: 'Raleway', sans-serif;
        font-weight: 200;
        font-size: 13vh;
        text-transform: uppercase;
    }

    #letstalk span:nth-child(1){
    /* Prefix required. Even Firefox only supports the -webkit- prefix */
        font-weight: 700;
        color: transparent;
        -webkit-text-stroke-width: 1px;
        -webkit-text-stroke-color: var(--theme-standard-colour-light);
    }

    #letstalk span:nth-child(2){
        letter-spacing: -13;   
    }
    
    /*Footer*/
    #footer-tab .container {
		width: 55%;
		margin-top: 1vh;
		margin-right: 10vw;
    }
    
    #footer-tab .container > * {
        font-size: 1.3vh;
        line-height: 2vh;
        margin-bottom: 1vh;
    }
  
} 

/* 1080 Wide Desktop */ 
/*
@media only screen and (min-width: 1600px){ 
    #footer-tab .container > *{
        font-size: 1.4vh;
        line-height: 2.4vh;
    }
}
*/








