/*** MIXINS ***/

@function parseInt($n) {
  @return $n / ($n * 0 + 1);
}

@mixin rem($property, $values) {
  $px : ();
  $rem: ();

  @each $value in $values {

    @if $value == 0 or $value == auto {
      $px : append($px , $value);
      $rem: append($rem, $value);
    }

    @else {
      $unit: unit($value); 
      $val: parseInt($value);

      @if $unit == "px" {
        $px : append($px,  $value);
        $rem: append($rem, ($val / 10 + rem));
      }

      @if $unit == "rem" {
        $px : append($px,  ($val * 10 + px));
        $rem: append($rem, $value);
      }
    }
  }

  @if $px == $rem { 
    #{$property}: $px;
  } @else {
    #{$property}: $px; 
    #{$property}: $rem;
  }
}

$retina: "only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)";

@mixin retina-background-image($file, $type, $width, $height) {
  background-image: url($file + '.' + $type);
  @media #{$retina} {
    background-image: url($file + '@2x.' + $type);
    background-size: $width $height;
  }
}

@mixin retina-background-cover($file, $type) {
  background-image: url($file + '.' + $type);
  @media #{$retina} {
    background-image: url($file + '@2x.' + $type);
  }
}


/*** NO GUTTER ***/

@media (min-width: $screen-md) {
	.noGutter {
	    padding-left: 0;
	    padding-right: 0;
	    &.l {
	        padding-left: 0;
	        @include rem('padding-right', 1.5rem);
	    }
	    &.r {
	        padding-right: 0;
	        @include rem('padding-left', 1.5rem);
	    }
	}
}

/*** GLOBAL ***/

@font-face {
    font-family: 'Letters';
    src: url('../fonts/letters.ttf');
    font-weight: 400;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Swis';
    src: url('../fonts/Swis721PL-Roman.ttf');
    font-weight: 400;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Swis';
    src: url('../fonts/Swis721PL-Italic.ttf');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Swis';
    src: url('../fonts/Swis721PL-Bold.ttf');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Swis';
    src: url('../fonts/Swis721PL-BoldItalic.ttf');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

html, body {
	height: auto;
}


html {
	font-size: 62.5%;
}

body {
	font-family: 'Swis', sans-serif;
	-webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    @include rem('font-size', 1.6rem);
	@include rem('line-height', 2.5rem);
	color: #000;
	overflow-x: hidden;
	&.transition-opacity {
		opacity: 0;
	}
}

h1, .h1 {
	@include rem('font-size', 3.4rem);
	@include rem('line-height', 3.8rem);
	font-weight: bold;
	@media (min-width: $screen-md) {
		@include rem('font-size', 4.5rem);
		@include rem('line-height', 5.4rem);
	}
	@media (min-width: $screen-lg) {
		@include rem('font-size', 5.5rem);
		@include rem('line-height', 7.2rem);
	}
}

h2, .h2 {
	@include rem('font-size', 3.4rem);
	@include rem('line-height', 3.8rem);
	font-weight: bold;
	@media (min-width: $screen-md) {
		@include rem('font-size', 4.9rem);
		@include rem('line-height', 5.7rem);
	}
}

h3, .h3, .section-sitemap h2 {
	@include rem('font-size', 2.4rem);
	@include rem('line-height', 3rem);
	font-weight: bold;
	@media (min-width: $screen-md) {
		@include rem('font-size', 3.6rem);
		@include rem('line-height', 4.4rem);
	}
}

h4, .h4 {
	@include rem('font-size', 2.2rem);
	@include rem('line-height', 2.8rem);
	font-weight: 400;
	@media (min-width: $screen-md) {
		@include rem('font-size', 3.4rem);
		@include rem('line-height', 4.2rem);	
	}
}

h5, .h5 {
	@include rem('font-size', 2rem);
	@include rem('line-height', 2.6rem);
	font-weight: 400;
	@media (min-width: $screen-md) {
		@include rem('font-size', 2.4rem);
		@include rem('line-height', 3rem);	
	}
}

h6, .h6 {
	@include rem('font-size', 1.8rem);
	@include rem('line-height', 2.4rem);
	font-weight: 400;
	@media (min-width: $screen-md) {
		@include rem('font-size', 2rem);
		@include rem('line-height', 2.6rem);		
	}
}


.main {
	overflow: hidden;
	.error404 & {
		height: 100%;
	}
}

.container {
	position: relative;
	
	@media (min-width: $screen-sm) and (max-width: $screen-xl) {
		width: 90% !important;
	}
	
}



a {
	color: #000;
	transition: all .3s ease-in-out;
	&:hover, &:focus {
		text-decoration: none;
		color: #000;
	}
}


.wow {
	@media (min-width: $screen-sm) {
		visibility: hidden;
	}
}


.img-center {
	margin: 0 auto;
}

.row-flex {
	display: block;
	@media (min-width: $screen-sm-max) {
		display: flex;
	}
}

.column-flex {
	display: block;
	@media (min-width: $screen-sm-max) {
		display: flex;
	}
}

.row-justify-center {
	@media (min-width: $screen-sm-max) {
		justify-content: center;
	}
}

.row-center {
	align-items: center;
}

button, input, textarea, a {
	&:focus, &:hover {
		outline: none;
	}
}

section ul {
	padding: 0;
	padding-left: 12px;
	margin: 0;
	list-style: none;
	position: relative;
	li {
		&:before {
			content: '\2022';
			vertical-align: middle;
		    padding-right: 5px;
			font-size: 0.3em;
			position: absolute;
			left: 0;
		}
	}
}

.btn-custom {
	display: inline-block;
	padding: 7px 18px;
	@include rem('font-size', 1.6rem);
	background-color: transparent;
	text-align: center;
	&.btn-aqua-bg {
		background-color: $aqua;
		color: #000;
		border: 2px solid transparent;
		transition: all 0.3s ease-in-out;
		&:hover {
			background-color: transparent;
			color: #000;
			border: 2px solid $aqua;
		}
	}
	&.btn-border-aqua {
		border: 2px solid $aqua;
		background-color: transparent;
		color: #000;
		transition: all 0.3s ease-in-out;
		&:hover {
			background-color: $aqua;
			color: #fff;
		}
	}
	&.btn-block {
		display: block;	
		width: 240px;
		margin-left: auto;
		margin-right: auto;
		@media (min-width: $screen-md) {
			width: auto;
		}	
	}
	&.btn-round {
		border-radius: 5px;
	}
	&.btn-big-padding {
		padding: 13px 30px;
	}
	&.btn-mega-padding {
		padding: 13px 50px;
	}
	&.btn-bolded {
		font-weight: bold;
	}
	&.btn-fixed-width {
		width: 240px;
	}
}

.button-with-dash {
	display: inline-block;
	@include rem('font-size', 1.4rem);
	font-weight: bold;
	&:before {
		content: '';
//		width: 14px;
		width: 30px;
		height: 2px;
		margin-right: 11px;
		background-color: #000;
		display: inline-block;
		vertical-align: middle;
	}
	& + .button-with-dash {
		margin-left: 15px;
	}
}

.aqua {
	color: $aqua;
}

.line-header {
	position: relative;
	margin-top: 0;
	margin-bottom: 90px;
	&:after {
		content: '';
		display: block;
		width: 50px;
		height: 6px;
		background-color: $aqua;
		position: absolute;
		left: 0;
		bottom: -40px;
		
	}
	&.line-center:after {
		left: 50%;
		transform: translateX(-50%);
	}
}

.btn-arrow {
	display: inline-block;
	color: $aqua;
	@include rem('font-size', 2rem);
	@include rem('line-height', 2rem);
	position: relative;
	&:hover, &:focus {
		color: $aqua;
	}
	&:before {
		content: '';
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 6.5px 0 6.5px 12px;
		border-color: transparent transparent transparent $aqua;
		display: inline-block;
		margin-right: 10px;
	}
}

.letter {
	font-family: 'Letters';
	position: absolute;
	font-size: 300px;
	line-height: 230px;
	color: $aqua;
	mix-blend-mode: multiply;
	opacity: 0.7 !important; //Fix for IE
	pointer-events: none;
	z-index: 500;
	font-weight: bold;
	@media (min-width: $screen-sm) {
		font-size: 700px;
		line-height: 530px;
	}
	@media (min-width: $screen-md) {
		font-size: 900px;
		line-height: 660px;
	}
	@media (min-width: $screen-lg) {
		font-size: 1100px;
		line-height: 830px;
	}
	&.opacity-fix {
		opacity: 1 !important;
	}


	&-wrapper {
		.chrome & {
			position: relative;	
		}
	}
	
	&.main-five {
	    top: -80px;
		left: 20px;
		@media (min-width: $screen-sm) {
			top: -190px;	
			left: 30px;
		}
		@media (min-width: $screen-md) {
			top: -210px;	
		}
	}
	&.main-two {
		top: -210px;
		right: 0;
		@media (min-width: $screen-sm) {
			top: -370px;
			right: 0;
		}
		@media (min-width: $screen-md) {
			top: -370px;
		}
		@media (min-width: $screen-xl) {
			top: -310px;
		}
	}
	&.main-b {
	    top: -180px;
		left: 5px;		
		@media (min-width: $screen-sm) {
			top: -80px;
			left: 30px;
		}
	}
	
	&.main-quote {
		top: 400px;
		left: 0px;	
		opacity: .2 !important;	
	}
	
	&.ref-quote {
		top: 100px;
		right: 0px;
	}
	
	&.agency-a {
		top: -60px;
		right: 0;	
/*
		@media (min-width: $screen-sm) {
			top: -90px;
		}
		@media (min-width: $screen-md) {
			top: 0;
		}
		@media (min-width: $screen-lg) {
			top: 0;
		}
*/
	}
	&.footer-G {
		right: 0;
		bottom: 0;
// 		bottom: -100px;
		@media (min-width: $screen-sm) {
// 			bottom: -270px;
		}
		@media (min-width: $screen-lg) {
// 			bottom: -470px;
		}
	}
	&.offer-o {
		right: 0;
		top: -60px;
	    @media (min-width: $screen-sm) {
		    right: 15px;
			top: -210px;;
		}
	}
	&.offer-two {
		left: 0;
		bottom: 60px;
	    @media (min-width: $screen-sm) {
		    left: -59px;
			bottom: 60px;
		}
	}
	&.footer-b {
		right: 0;
		top: 100px;
/*
	    @media (min-width: $screen-sm) {
		    right: 0;
		    bottom: inherit;
			top: -30px;
		}
*/
	}
	&.contact-b {
		top: 40px;
		right: 0;
		@media (min-width: $screen-sm) {
		    top: 40px;
		}
	}
	&.contact-w {
		bottom: 210px;
		left: 0;
/*
		@media (min-width: $screen-sm) {
		    top: 20px;
		    bottom: inherit;
		}
*/

	&.letter-n {
		top: -60px;
		right: 0;
	}

	}
	&.main-zero {
		top: -410px;
		right: 0;
		@media (min-width: $screen-sm) {
			top: -240px;
		}
		@media (min-width: $screen-md) {
			top: -470px;
			right: 15px;
		}
	}
	
	&.studio-s {
		top: -140px;
		right: 0;
	}
	&.error-4 {
		top: 3vh;
		left: 0;
		@media (max-width: $screen-xs-max) {
			top: 32vh;
		}
	}
	&.error-0 {
		top: 25vh;
		right: 0;
		@media (max-width: $screen-xs-max) {
			top: 50vh;
		}
	}
}

.portfolio-reference .letter.main-quote {
	top: 500px;
}

.chrome { //CHROME FIX FOR LETTERS. BUG CAUSED BY FONT WEIGHT BOLD
	.letter {
		&.offer-o {
			right: 20px;
			top: -60px;
		    @media (min-width: $screen-sm) {
			    right: 32px;
				top: -210px;;
			}
		}
		&.offer-two {
			left: 0;
			bottom: 60px;
		    @media (min-width: $screen-sm) {
			    left: -42px;
				bottom: 60px;
			}
		}
	}
}


.visible-xl {
	display: none;
	@media (min-width: $screen-xl) {
		display: block;
	}
}

.floating-element {
	position: fixed;
	color: #000;
	border: 0;
	background-color: transparent;
	display: none;
	z-index: 1234;
	font-weight: normal;
	@include rem('font-size', 1.8rem);
	@media (max-width: $screen-md) {
		display: none !important;
	}
	
	
	&:hover,
	&:focus {
		color: $brand-primary;
		&:before {
			background-color: $brand-primary;
		}
	}
	
	&:before {
		content: '';
		display: inline-block;
		width: 36px;
		height: 2px;
		background-color: #000;
		margin-right: 11px;
		vertical-align: middle;
	}
	&.right {
		bottom: 200px;
		right: 0;
		transform: translateX(30px) rotate(90deg);
	}
	&.left {
		top: 200px;
		left: 20px;
		transform: translateX(-60px) rotate(-90deg);
	}
}



input:not(.wpcf7-acceptance) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.wpcf7-list-item label {
	line-height: 1.1;
}

.wpcf7-list-item-label {
	font-weight: 400;
	small {
		a {
			font-weight: 700;
			&:hover, &:focus {
				color: #00e9fb;
			}
		}
	}
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item input[type="checkbox"] {
	border: 2px solid #ececec;
	border-radius: 0;
    width: 14px;
    height: 14px;
    position: relative;
    top: 3px;
    right: 4px;
    outline: none;
    transition: all 200ms ease-in-out;
    margin: 0;
    margin-top: 4px;
    padding: 0;
    font-size: 16px;
    
    
    &:checked {
	    background: #00e9fb;
	    border-color: #00e9fb;
	    
	    &::before {
		    content: url('../images/tick-32.svg');
		    position: absolute;
			top: -5px;
			left: -1px;
	    }
    }
}


.video-wrapper {
	position: relative;
	height: 0;
	
	&--16-9 {
		padding-top: 56.25%;
		.plyr__video-wrapper {
			position: relative;
			height: 0;
			padding-top: 56.25%;
		}
	}
	&--1-1 {
		padding-top: 100%;
		.plyr__video-wrapper {
			position: relative;
			height: 0;
			padding-top: 100%;
		}
	}
	&--4-3 {
		padding-top: 75%;
		.plyr__video-wrapper {
			position: relative;
			height: 0;
			padding-top: 75%;
		}
	}
	
	.play-video {
		background: $brand-primary;
		position: absolute;
		left: 50%;
		top: 50%;
		width: 40px;
		height: 40px;
		border-radius: 100%;
		border: 0;
		box-shadow: none;
		z-index: 5;
		transform: translateX(-50%) translateY(-50%);
		&::after {
			content: '';
			display: block;
			border-top: 7px solid transparent;
			border-bottom: 7px solid transparent;
			border-left: 10px solid #fff;
			transform: translateX(33.333%);
		}
	}
	
	
	video {
	    position: absolute;
	    left: 0; right: 0;
	    top: 0; bottom: 0;
	    width: 100%;
	    height: auto;
	}
}

.video-wrapper-plyr {
	&--16-9 {
		.plyr__video-wrapper {
			position: relative;
			height: 0;
			padding-top: 56.25%;
		}
	}
	&--1-1 {
		.plyr__video-wrapper {
			position: relative;
			height: 0;
			padding-top: 100%;
		}
	}
	&--4-3 {
		.plyr__video-wrapper {
			position: relative;
			height: 0;
			padding-top: 75%;
		}
	}
	
	.play-video {
		background: $brand-primary;
		position: absolute;
		left: 50%;
		top: 50%;
		width: 40px;
		height: 40px;
		border-radius: 100%;
		border: 0;
		box-shadow: none;
		z-index: 5;
		transform: translateX(-50%) translateY(-50%);
		&::after {
			content: '';
			display: block;
			border-top: 7px solid transparent;
			border-bottom: 7px solid transparent;
			border-left: 10px solid #fff;
			transform: translateX(33.333%);
		}
	}
	
	video {
		position: absolute;
	    left: 0; right: 0;
	    top: 0; bottom: 0;
	    width: 100%;
	    height: auto;
	}
}



.slick-slider {
	
	.slick-arrow {
		opacity: 0;
	}
	
	&:hover {
		.slick-arrow {
			opacity: 1;
		}
	}
}

.grecaptcha-badge {
	display: none;
}