/*
	© Daniel Fernandes
	Version 1.5
	2018
	www.daniel-fernandes.pt
*/

/* ---------------------------------------------------------------------- */
/*	RESET
/* ---------------------------------------------------------------------- */

* {
	/* IMPEDE OBJECTOS DE AUMENTAR COM O PADING */
	-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
	-moz-box-sizing: border-box;    /* Firefox, other Gecko */
	box-sizing: border-box;         /* Opera/IE 8+ */
}

html, body, header, footer, p {
	padding: 0;
	margin: 0;
}

a:link, a:visited {
	text-decoration: none;
	color: rgb(255, 33, 46);
}

h1 {
	padding: 0;
	margin: 0;
}

button, input, textarea {
    border: none;
    margin: 0;
    padding: 0;
    width: auto;
    overflow: visible;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: normal;
    -webkit-font-smoothing: inherit;
    -moz-osx-font-smoothing: inherit;
    -webkit-appearance: none;
    outline: none;
    cursor: pointer;
    border-radius: 0;
    opacity: 1;
	-webkit-box-shadow: none;
	box-shadow: none;
}



ul {
	list-style-type: none;
	margin: 0;
	padding-left: 0;
}

.grid {
    overflow: initial;
}

.col-1-1 {
	padding-right: 0px;
}

/* Remover padding da grid when mobile */
@media handheld, only screen and (max-width: 767px) {
	.grid {
		padding: 0;
	}
}


/* ---------------------------------------------------------------------- */
/*	BASE
/* ---------------------------------------------------------------------- */

* {
    -webkit-transition: 0.4s cubic-bezier(0.01, 0.38, 0.32, 1);
    -moz-transition: 0.4s cubic-bezier(0.01, 0.38, 0.32, 1);
    -ms-transition: 0.4s cubic-bezier(0.01, 0.38, 0.32, 1);
    -o-transition: 0.4s cubic-bezier(0.01, 0.38, 0.32, 1);
    transition: 0.4s cubic-bezier(0.01, 0.38, 0.32, 1);
}

body {
	font-family: 'Montserrat', 'Helvetica', sans-serif;
	font-weight: 400;
	color: #fff;
	width: 100vw;
    overflow-x: hidden;
}

/* MUDAR COR QUANDO SELECIONAR */
::-moz-selection { /* Code for Firefox */
    background: #ff3333;
}

::selection {
    background: #ff3333;
}

a {

}

a:hover, a:active {
	color: rgb(255, 33, 46);
}

a.no_style:link, a.no_style:visited {
	color: #fff;
}

input, textarea {
	border-width: 0px 0px 1px 0px;
	padding: 0 0 10px 0;
    border-style: solid;
    border-color: #0a0c23;
    margin-bottom: 30px;
    width: 100%;
}

textarea {
	max-width: 100%;
	min-height: 50px;
}

/* MOBILE */
@media only screen and (max-width: 375px) {
	body {
		font-weight: 400;
	}
}

/* ---------------------------------------------------------------------- */
/*	COMUN ELEMTENTS
/* ---------------------------------------------------------------------- */

/*
	--- COLORS ---
	RED: color: rgb(255, 33, 46);
	BLUE: #001b44;
*/

body.v-100 {
	height: 100vh;
	width: 100vw;
	overflow: hidden;
}

.none {
	display: none!important;
}

/* forçar mudança de linha se não caber no ecrã */
.inline-block {
	display: inline-block;
}

.link {
	color: rgb(255, 33, 46);
}

.link:hover, .link:active {
	color: #fff;
}

.bg_is_red {
	color: #001b44;
}

.bg_is_red a {
	color: #001b44; 
}

.bg_is_red a:hover {
	border-bottom: 3px solid #001b44;
}

.no-link a:hover, .no-link a:active {
	border: 0px;
}

.rev-link {
	color: #001b44!important;
}

.rev-link:hover, .no-link:active {
	color: rgb(255, 33, 46)!important;
}

/* MOBILE */
@media only screen and (max-width: 500px) {
	.page-title {
		font-size: 20vw;
	    top: 65px;
	    height: fit-content;
	    margin-bottom: 20px;
	}
}

/* ---------------------------------------------------------------------- */
/*	ANIMATIONS
/* ---------------------------------------------------------------------- */

/* rotating */
@keyframes rotating {
	from {
		transform: rotate(0deg);
		-o-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-webkit-transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
		-o-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-webkit-transform: rotate(360deg);
	}
}
@-webkit-keyframes rotating {
	from {
		transform: rotate(0deg);
		-webkit-transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
		-webkit-transform: rotate(360deg);
	}
}

/* rev-rotating */
@keyframes rev-rotating {
	from {
		transform: rotate(360deg);
		-o-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-webkit-transform: rotate(360deg);
	}
	to {
		transform: rotate(0deg);
		-o-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-webkit-transform: rotate(0deg);
	}
}
@-webkit-keyframes rev-rotating {
	from {
		transform: rotate(360deg);
		-webkit-transform: rotate(360deg);
	}
	to {
		transform: rotate(0deg);
		-webkit-transform: rotate(0deg);
	}
}

/* no-animation */
.no-animation {
	-webkit-transition: all 0s linear;
    -moz-transition: all 0s linear;
    -ms-transition: all 0s linear;
    -o-transition: all 0s linear;
    transition: all 0s linear;
    transition-delay: 0s;
}


/* ---------------------------------------------------------------------- */
/*	HEADER
/* ---------------------------------------------------------------------- */

.loading-page {
	width: 100vw;
	height: 100vh;
	position: fixed;
	background-color: #ff212e;
	z-index: 300;
	overflow: hidden;
	opacity: 1;
	visibility: visible;
	text-align: center;
	display: flex;
	vertical-align: middle;
	top: 0;
	left: 0;
}

.loading-page img {
	margin: auto;
	width: 50px;
}

.loading-page.hide {
	opacity: 0;
	visibility: hidden;
}

.logo {
	position: fixed;
	left: 50px;
	top: 50px;
	z-index: 200;
	visibility: hidden;
	opacity: 0;
	-webkit-transition: all 0.4s ease-in-out;
    -moz-transition: all 0.4s ease-in-out;
    -ms-transition: all 0.4s ease-in-out;
    -o-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;
    transition-delay: .1s;
}

.logo img {
	width: 30px;
}

.logo.show {
	visibility: visible;
	opacity: 1;
}

.center-logo {
	position: absolute;
	top: 50px;
	text-align: center;
	width: 100vw;
	visibility: hidden;
	opacity: 0;
	z-index: 5;
}
.center-logo.show {
	visibility: visible;
	opacity: 1;
}

.center-logo img {
	width: 110px;
}

/* BOTAO MENU */

#menu-toggle {
	width: 30px;
	height: 30px;
	cursor: pointer;
	position: fixed;
	right: 50px;
	top: 50px;
	z-index: 200;
}

.menu-line {
  display: block;
  background-color: #ff212e;
}

.menu-line.white {
	background-color: #fff;
}

.menu-line.blue {
	background-color: #001b44;
}

.menu-line.hide {
	background-color: inherit;
}

#menu-toggle #hamburger {
  position: absolute;
  height: 100%;
  width: 100%;
  text-align: -webkit-right;
  z-index: 201;
}

#menu-toggle #hamburger span {
  width: 23px;
  height: 3px;
  position: relative;
  top: 0px;
  left: 0px;
  margin: 5px 0;
}

#menu-toggle #hamburger span:nth-child(1) {
  width: 35%;
  transition-delay: .5s;
}

#menu-toggle #hamburger span:nth-child(2) {
  transition-delay: .625s;
}

#menu-toggle #hamburger span:nth-child(3) {
  transition-delay: .75s;
}

#menu-toggle #cross {
  position: absolute;
  height: 100%;
  width: 100%;
  transform: rotate(45deg);
  top: -8px;
  right: -6px;
}

#menu-toggle #cross span:nth-child(1) {
  height: 0%;
  width: 3px;
  position: absolute;
  top: 26%;
  left: 19px;
  transition-delay: 0s;
}

#menu-toggle #cross span:nth-child(2) {
  width: 0%;
  height: 3px;
  position: absolute;
  left: 26%;
  top: 19px;
  transition-delay: .25s;
}

#menu-toggle.open #hamburger span {
  width: 0%;
}

#menu-toggle.open #hamburger span:nth-child(1) {
  transition-delay: 0s;
}

#menu-toggle.open #hamburger span:nth-child(2) {
  transition-delay: .125s;
}

#menu-toggle.open #hamburger span:nth-child(3) {
  transition-delay: .25s;
}

#menu-toggle.open #cross span:nth-child(1) {
  height: 80%;
  transition-delay: .625s;
}

#menu-toggle.open #cross span:nth-child(2) {
  width: 80%;
  transition-delay: .375s;
}

/* FIM BOTAO MENU */

/* MOBILE */
@media only screen and (max-width: 500px) {
	#menu-toggle {
		right: 20px;
		top: 20px;
	}

	.logo {
		left: 20px;
		top: 20px;
	}

	.center-logo {
		top: 20px;
	}
}

/* ---------------------------------------------------------------------- */
/*	FOOTER
/* ---------------------------------------------------------------------- */

footer {
	color: rgb(255, 33, 46);
	padding: 40px;
	display: flex;
    align-items: center;
    justify-content: flex-end;
}

.footer-copyright {
    width: 100%;
}

.footer-social-networks {
	width: fit-content;
	text-overflow: ellipsis;
  	white-space: nowrap;
}

.footer-social-networks a {
	margin-left: 10px;
}

.footer-social-networks a:hover {
	color: #fff;
}

footer.bg_is_white {
	background-color: #fff;
}

footer.bg_is_white .footer-social-networks a:hover {
	color: #001b44;
}


/* MOBILE */
@media only screen and (max-width: 767px) {
	footer {
		display: block;
		_padding: 20px;
		text-align: center;
	}
	.footer-social-networks a {
		margin-left: 0px;
		margin-right: 10px;
	}
	.footer-social-networks {
		margin-bottom: 20px;
	}
}

/* ---------------------------------------------------------------------- */
/*	MENU PAGE
/* ---------------------------------------------------------------------- */

.menu-page {
	margin: 0;
	z-index: 101;
	position: fixed;
	height: 100vh;
	width: 100vw;
	top: 0;
	left: 0;
	background-color: rgb(255, 33, 46);
	padding: 50px;
	overflow: hidden;
	visibility: hidden;
	opacity: 0;
	-webkit-transition: all 0.5s ease-in-out;
    -moz-transition: all 0.5s ease-in-out;
    -ms-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
}

.menu-page.open {
	visibility: visible;
	opacity: 1;
}

.logo-menu-page {
	position: absolute;
	top: 50px;
	text-align: center;
	width: calc(100vw - 100px);
}
.logo-menu-page img {
	width: 110px;
}

nav {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.menu {
    width: fit-content;
    height: fit-content;
    text-align: center;
}

.contact-menu {
	position: absolute;
	bottom: 50px;
	left: 50px;
}

nav ul li {
	font-size: 3vmax;
	line-height: 2.5em;
	text-transform: lowercase;
}

nav ul li:nth-child(1) {
	transition-delay: 0s;
}
nav ul li:nth-child(2) {
	transition-delay: .2s;
}
nav ul li:nth-child(3) {
	transition-delay: .4s;
}
nav ul li:nth-child(4) {
	transition-delay: .6s;
}

.social-networks {
	position: absolute;
	right: 50px;
	bottom: 50px;
}

.social-networks a {
	margin-right: 10px;
	font-size: 23px;
}

.lang {
	position: absolute;
	top: 50px;
	right: 50px;
	display: grid;
	visibility: hidden;
	opacity: 0;
}

.lang.open {
	top: 100px;
	visibility: visible;
	opacity: 1;
}

.lang a {
	margin-bottom: 10px;
}

.lang-line {
	position: relative;
	margin-bottom: 0px;
	width: 3px;
	height: 15px;
	background-color: #001b44;
	right: -30px;
}

.lang-line-1 {
    top: -54px;
}

.lang-line-2 {
    top: -26px;
}

/* HOVER */
.lang a:nth-child(1):hover ~ .lang-line {
	top: -54px;
}

.lang a:nth-child(2):hover ~ .lang-line {
	top: -26px;
}

/* MOBILE */
@media only screen and (max-width: 500px) {	
	.contact-menu {
		right: inherit;
		left: 0;
		bottom: 100px;
		text-align: center;
	    width: 100%;
	}

	.social-networks {
		right: inherit;
		text-align: center;
		width: 100%; 
		left: 0;
	}

	.lang {
		right: 20px;
	}

	.lang.open {
		top: 70px;
	}

	.logo-menu-page {
		top: 20px;
	}

	nav ul li {
		font-size: 5vmax;
		line-height: 2.5em;
	}
}

/* ---------------------------------------------------------------------- */
/*	HOME PAGE
/* ---------------------------------------------------------------------- */

.home-page {
	height: 100vh;
	width: 100vw;
	overflow: hidden;
	transition: height 1s ease;
}

/* DEL */
.home-page.closed {
	height: 0px;
}

.home-content {
	/*height: 100vh;
	position: absolute;
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: fit-content;
    height: fit-content;
    text-align: center;*/
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
}

.home-content img {
	-webkit-animation: rev-rotating 10s linear infinite;
	-moz-animation: rev-rotating 10s linear infinite;
	-ms-animation: rev-rotating 10s linear infinite;
	-o-animation: rev-rotating 10s linear infinite;
	animation: rev-rotating 10s linear infinite;
}

.home-content img:hover {
    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    -o-animation-play-state: paused;
    animation-play-state: paused;
}

/* DEL */
.border {
	position: relative;
	left: -18px;
	top: -44px;
	border: solid white;
	border-width: 0 2px 2px 0;
	display: inline-block;
	padding: 100%;
}

/* TAMANHO DA IMAGEM DE ACORDO A ORIENTAÇÃO DO SCREEN */
@media screen and (orientation: portrait) {
  	.home-content img {
		width:60vw;
	}
}

@media screen and (orientation: landscape) {
  	.home-content img {
		height:60vh;
	}
}

/* MOBILE */
@media only screen and (max-width: 500px) {
	
	
}

/* ---------------------------------------------------------------------- */
/*	WORK PAGE
/* ---------------------------------------------------------------------- */

.work-page {
	width: calc(100vw - 50px);
	vertical-align: middle;
	padding-bottom: 50px;
	display: block;
	padding-top: 90px;
	margin: 25px;
}

.work-page.none {
	display: none;
}

.case img {
	width: 100%;
}

.col-case-work {
	padding-right: 0px;
	padding: 20px 25px;
}

.case-title {
	font-size: 18px;
    padding-top: 4px;
}

.case-arrow {
	position: relative;
	width: 10px;
	bottom: 0;
	font-size: 30px;
}

/* HOVER */
.case:hover {
	opacity: .8;
}

.case:hover .case-title {
	color: rgb(255, 33, 46);
}


/* TABLET */
@media only screen and (max-width: 1125px) {
	.col-case-work {
		width: 50%;
	}
}

/* MOBILE */
@media only screen and (max-width: 767px) {
	.col-case-work {
		width: 100%;
	}
}

@media only screen and (max-width: 500px) {
	.col-case-work {
		padding: 0;
		padding-bottom: 25px; 
	}
	.case-title {
		/*font-size: 10vw;*/
	}

}

/* ---------------------------------------------------------------------- */
/*	CASE PAGE
/* ---------------------------------------------------------------------- */

.case-page {
	min-height: 100vh;
	width: 100vw;
	overflow-x: hidden;
	background-color: #fff;
	color: #001b44;
}

.cover-case {
	width: 100vw;
	position: relative;
	overflow: hidden;
	-webkit-transition: all 0.5s cubic-bezier(.7,0,0,1);
    -moz-transition: all 0.5s cubic-bezier(.7,0,0,1);
    -ms-transition: all 0.5s cubic-bezier(.7,0,0,1);
    -o-transition: all 0.5s cubic-bezier(.7,0,0,1);
    transition: all 0.6s cubic-bezier(.7,0,0,1);
    height: 0vh;
    margin-top: 100vh;
}

.cover-case.open {
	height: 100vh;
	margin-top: 0vh;
}

.cover-img-case {
	height: 100%;
	background: no-repeat;
	background-position: center center;
	background-size: cover;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.cover-img-filter {
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.2);
}

.title-case {
	position: absolute;
	bottom: 50px;
	left: 50px;
	font-size: 50px;
	width: 500px;
	color: #fff;
}

.about-case {
	margin: 100px 50px;
	width: calc(100vw - 100px);
	height: fit-content;
	display: flex;
	overflow: visible;
} 

.case-description {
	font-size: 4vw;
	margin-top: -10px;
}

.item-about {
	margin-bottom: 30px;
	margin-right: 20px; 
	font-size: 14px;
    line-height: 15px;
	padding-right: 25px;
}

.item-about:last-child {
	margin-bottom: 0px;
}

.item-title {
	font-weight: 700
}

.grid-case {
	padding: 40px;
    width: 80%;
}

.grid-case img {
	width: 100%;
}

.col-case {
	/* APENAS PARA DECLARAR */
	margin-bottom: 30px; 
}

.col-case-cycle {
	background-color: #0a0c23;
}

.credits-case {
	font-size: 12px;
	text-align: center;
	color: #737373;
	padding-bottom: 40px;
}
.credits-case a {
	color: #737373;
}

.text-grid-case {
	text-align: center;
}

.featured-text-grid-case {
	left: 50%;
	position: relative;
	font-size: 2vw;
	width: calc(50vw - 3vw);
	line-height: 2.5vw;
}

.case-arrow-slideshow-prev {
    width: 50%;
    z-index: 100;
    position: absolute;
    height: 100%;
}

.case-arrow-slideshow-next {
    width: 50%;
    z-index: 100;
    position: absolute;
    height: 100%;
    left: 50%;
}


/* MOBILE */
@media only screen and (max-width: 767px) {
	.title-case {
		width: calc(100vw - 100px);
	}

	.item-about {
		margin-bottom: 10px;
	}

	.about-case {
		display: block;
		margin: 50px 50px;
	}

	.case-description {
		padding-bottom: 25px;
	}

	.grid-case {
		margin-left: auto;
		margin-right: auto;
		width: 100%;
		padding: 0px;
	}

	.col-case {
		padding-right: 0px;
	}

	.featured-text-grid-case {
		left: inherit; 
		position: inherit;
	    font-size: 3vw;
	    width: 100%;
	    line-height: 3.5vw;
	    padding: 50px;
	    text-align: center;
	}
	
}

@media only screen and (max-width: 500px) {
	.title-case {
		width: calc(100vw - 40px);
		left: 20px;
		font-size: 39px;
	}

	.case-description {
		font-size: 6vw;
	}

	.about-case {
		margin: 20px;
    	width: calc(100vw - 40px);
	}

	.featured-text-grid-case {
	    padding: 25px;

	}

}

/* ---------------------------------------------------------------------- */
/*	ABOUT PAGE
/* ---------------------------------------------------------------------- */

.about-page {
	margin-top: 130px;
}

.grid-about {
	width: 80vw;
}

.grid-about > [class*='col-']{
	padding-right: 0px; 
}

.about-foto {
	margin-right: 25px;
	width: calc(50% - 25px); 
}

.about-foto img {
	width: 100%;
}

.about-text {
	font-size: 2vw;
	line-height: 1.3em;
	width: calc(50% - 25px);
	margin-left: 25px; 
}

.about-skils {
	background-color: rgb(255, 33, 46);
	padding: 50px;
	margin-top: 50px;
	width: calc(100vh + 50px);
	font-size: 1.5vw;
	line-height: 1.2em;
	color: #001b44;
}

.about-title {
	font-weight: 700;
	margin-bottom: 10px; 
}

a.btn-cv {
	color: #001b44;
}

a.btn-cv:hover {
	color: #fff;
}

/* FULL SCREEN */
@media only screen and (max-width: 1125px) {
	.grid-about {
		width: 100vw;
		width: calc(100vw - 100px);
   		margin-left: 50px;
   		margin-right: 50px;
	}
}

/* MOBILE */
@media only screen and (max-width: 767px) {
	.grid-about {
		overflow: visible;
		
	}


	.about-foto {
		margin-right: 0px;
		width: 100%;
	}

	.about-text {
		margin-top: 40px;
		font-size: 4vw;
		line-height: 1.3em;
		width: 100%;
		margin-left: 0px; 
	}

	.about-skils {
		position: relative;
		padding: 50px;
		left: -50px;
		width: 100vw;
		font-size: 2.6vw;
		line-height: 1.3em;
	}
}

@media only screen and (max-width: 500px) {
	.about-page {
		margin-top: 90px;
	}

	.grid-about {
		width: calc(100vw - 40px);
   		margin-left: 20px;
   		margin-right: 20px;
	}

	.about-text {
		margin-top: 40px;
    	font-size: 22px;
		line-height: unset;
		width: 100%;
		margin-left: 0px; 
	}

	.about-skils {
		font-size: 17px;
		padding: 25px;
		left: -20px;
	}
}

/* ---------------------------------------------------------------------- */
/*	CONTACT PAGE
/* ---------------------------------------------------------------------- */

.contact-page {
	display: block;
	margin-top: 80px;
	width: 80vw;
	margin-left: auto;
	margin-right: auto;
}

.contact-page a {
	color: #fff;
}

.contact-page a:hover {
	color: rgb(255, 33, 46);
}

.contact-grid {
	padding: 50px;
}

.img-pattern {
	line-height: 0px;
	padding-right: 25px; 
}

.img-pattern img {
	width: 100%;
}

.contact-text {
	padding-right: 0px;
	padding-left: 25px;
}

.contact-title {
	font-weight: 700;
}

.contact-message {
	font-size: 4vw;
	margin-bottom: 40px; 
}

.contact-social-networks {
	margin-top: 5px;
}

.contact-social-networks a {
	margin-right: 5px;
}

.contact-social-networks a:hover {
	color: #ff212e;
}

/* FULL SCREEN */
@media only screen and (max-width: 1125px) {
	.contact-page {
		width: 100vw;
	}
}

/* MOBILE */
@media only screen and (max-width: 767px) {
	.contact-grid {
		width: 100vw;
	}

	.img-pattern {
	    padding-right: 0px;
	    transform: rotate(90deg);
	    margin-top: -45px;
	    margin-bottom: -25vw;
	}

	.img-pattern img {
    	height: 100vw;
    	width: unset;
	}

	.contact-text {
		padding-right: 0px;
		padding-left: 0px;
	}

	.contact-message {
		font-size: 5vw;
	}
}

@media only screen and (max-width: 500px) {
	.img-pattern {
	    margin-top: 2vw;
	        margin-top: -30px;
	}

	.contact-grid {
		padding: 20px;
	}

	.contact-message {
		font-size: 9vw;

	}
}


/* ---------------------------------------------------------------------- */
/*	MOBILE REORDER (colocar no fim por questões de importancia)
/* ---------------------------------------------------------------------- */

.m-reorder {
	/* APENAS PARA DECLARAR */
}

/* MOBILE */
@media only screen and (max-width: 767px) {
	.m-reorder {display: flex; flex-direction: column;}
	.m-w-100 {width: 100%;}
	.m-order-1 {order: 1;}
	.m-order-2 {order: 2;}
}
