@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;700&display=swap');
@charset "UTF-8";

/*******************************************************************************************************************
*
*  Contents:
*  - CSS RESET
*  - BASE
*     - Colors
*  - TEXT STYLES
*     - Links
*     - Headings
*  - LAYOUT
*     - Header
*     - Content
*     - Footer
*     - Mobile
*  - SPECIAL
*     - Menu
*     - Form elements
*     - Icons
*     - Keyframes
*  - OTHER
*     - Legacy
*  - MEDIA QUERIES
*
*******************************************************************************************************************/
*,:after,:before{box-sizing:border-box;}html,body{position:relative;overflow-y:auto;overflow-x:hidden;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}body,html{min-height:100%;width:100%;}html,body,fieldset,figure,for,h1,h2,h3,h4,h5,h6,p{margin:0;}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block;}audio,canvas,video{display:inline-block;}[hidden],audio:not([controls]),hr{display:none;}a:active{background-color:transparent;}abbr[title]{border-bottom:1pxdotted;}em,i{font-style:italic;}mark{background:#ff0;color:#000;}code{font-family:monospace,serif;font-size:1em;}sub{font-size:75%;line-height:0;vertical-align:baseline;bottom:-.25em;}img{border:0;-ms-interpolation-mode:bicubic;max-width:100%;height:auto;}svg:not(:root){overflow:hidden;}embed,iframe,img,object{vertical-align:middle;}fieldset{border:0;padding:0;min-width:0;}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;}button,input{line-height:normal;background:00;border:0;padding:0;}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}button[disabled],input[disabled]{cursor:default;}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box;}input[type="search"]{-webkit-appearance:textfield;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}textarea{overflow:auto;vertical-align:top;resize:vertical;}th{text-align:left;}address{font-style:normal;}button::-moz-focus-inner{padding:0;border:0;}

/*******************************************************************************************************************
*  BASE
*******************************************************************************************************************/
html {}

.title-hidden {
    position: absolute;
    left: -9999px;
    outline: none;
}

.float-left {
		float: left;
}

.float-right {
 		float: right;
}

.float-wrap:after,
.clean:after {
  content: "";
  display: table;
  clear: both;
}

/*******************************************************************************************************************
*  BASE > Colors
*******************************************************************************************************************/
:root,:root:after,:root:before {
    --main-background-color: pink;
	--main-text-color: rgb(22,22,22); 
	--desaturated-value: grayscale(60%);
}

.greyscale {
	-webkit-filter: grayscale(100%);
	-moz-filter:    grayscale(100%);
	-ms-filter:     grayscale(100%);
	-o-filter:      grayscale(100%);
	filter: 		grayscale(100%);
}	

/*******************************************************************************************************************
*  TEXT STYLES
*******************************************************************************************************************/
body {
    font-family: 'Archivo', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: var(--main-text-color);
}


/*******************************************************************************************************************
*  TEXT STYLES > Links
*******************************************************************************************************************/
a, a * {
    color: inherit;
    outline: none;    
    transition: all 0.2s;    
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    text-decoration: none;
    color: inherit;
}


/*******************************************************************************************************************
*  TEXT STYLES > Headings
*******************************************************************************************************************/


/*******************************************************************************************************************
*  LAYOUT
*******************************************************************************************************************/
.grid-row {
	display: grid;
	grid-template-columns: repeat(12, 1fr );
	grid-template-rows: auto;
	grid-column-gap: 40px;
	grid-auto-flow: dense;
	margin: 0 40px 80px;
}

.grid-col {
	grid-template-rows: 50% 50%;
}

.grid-row-column {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: 0;
	margin: 0;	
	height: 100%;	
	min-height: 100px;
}

.grid-row-column.align-bottom {
	align-items: flex-end;
}

.wide-col-span-2 {grid-column-end: span 2;}
.wide-col-span-3 {grid-column-end: span 3;}
.wide-col-span-4 {grid-column-end: span 4;}
.wide-col-span-5 {grid-column-end: span 5;}
.wide-col-span-6 {grid-column-end: span 6;}
.wide-col-span-7 {grid-column-end: span 7;}
.wide-col-span-8 {grid-column-end: span 8;}
.wide-col-span-9 {grid-column-end: span 9;}
.wide-col-span-10 {grid-column-end: span 10;}
.wide-col-span-11 {grid-column-end: span 11;}
.wide-col-span-12 {grid-column-end: span 12;}

.wide-row-span-2 {grid-row-end: span 2;}

.wide-col-start-1 {grid-column-start: 1;}
.wide-col-start-2 {grid-column-start: 2;}
.wide-col-start-3 {grid-column-start: 3;}
.wide-col-start-4 {grid-column-start: 4;}
.wide-col-start-5 {grid-column-start: 5;}
.wide-col-start-6 {grid-column-start: 6;}
.wide-col-start-7 {grid-column-start: 7;}
.wide-col-start-8 {grid-column-start: 8;}
.wide-col-start-9 {grid-column-start: 9;}
.wide-col-start-10 {grid-column-start: 10;}
.wide-col-start-11 {grid-column-start: 11;}
.wide-col-start-12 {grid-column-start: 12;}

.grid-row-column .grid-row-inside {
	display: block;
	flex: 1 1 100%;
	text-decoration: none;
}

.grid-row-column .grid-row-margin {margin-top: 120px; }
.grid-row-column .grid-row-margin-2x {margin-top: 240px; }

.grid-row-column p {
	margin: 0 0 10px;
	line-height: 16.8px;
}

.grid-row-column .row-item-label {
	margin: 20px 0;
}

.grid-row-column .grid-row-inside .greyscale {
  	animation: desaturate 1s forwards;
}

.grid-row-column .grid-row-inside:hover .greyscale {
  	animation: saturate 1s forwards;
}


/*******************************************************************************************************************
*  LAYOUT > Header
*******************************************************************************************************************/
#header {
	display: flex;
	width: 100%;
	height: 200px;	
}

#header h1 {
	float: left;
	margin: 40px;
	font-size: 18px;
	font-weight: 400; 
}

#header .col {
	flex: 1;
}

#header .col.right {
	text-align: right;
}

#header .header-menu-button {
	display: none;
}

#header nav {
	float: right;
	margin: 40px 0;
	padding: 0;
	list-style: none;
	font-size: 18px;
}

#header nav > li {
	position: relative;
	float: left;
}

#header nav > li > a {
	padding: 40px;
}

#header nav li a {
	text-decoration: none;
}

#header nav li a:hover {
	opacity: 0.7;
}

#header nav > li ul {
	position: absolute;
	padding: 0;
	left: 20px;
	width: 280px;
	max-height: 0;
	overflow: hidden;
	text-align: left;
	background: white;
	opacity: 0;
	transition: opacity .2s .5s, max-height 0s 1s;
	                       
	z-index: 999; 
}

#header nav > li:hover ul {
	max-height: 500px; 	
	opacity: 1;
  	transition: opacity .5s 0s, max-height 0s 0s;	
}

#header nav > li ul li {
	position: relative;
	display: block;
}

#header nav > li ul li .li-list-icon {
	display: none;
}

#header nav > li ul li a {
	display: block;
	padding: 0 20px;
	height: 40px;
	line-height: 40px;
}


/*******************************************************************************************************************
*  LAYOUT > Content
*******************************************************************************************************************/
#page {
	position: relative;
}

#page .page-container .page-container-fullsize {
	display: block;
	margin: 0 40px;
	height: calc(100vh - 300px );
}

#page .page-container .page-container-fullsize img {
	max-height: 100%;
}
  
#page h1 {
	margin: 0 0 40px;
	font-size: 18px;
}

#page .sub-title-rows {
	margin: 0 0 20px;
	font-size: 16px;	
}

#page .sub-title-rows.text-rows {
	font-size: inherit;	
}

#page .sub-title-rows .row {
	margin: 0 0 20px;
}

#page .sub-title-rows .row.low-row,
#page .sub-title-rows .row.low-row p {
	margin: 0 0 5px;
}


#page .sub-title-rows .row-label {
	display: block;
	float: left;
	width: 80px; 
	font-weight: 700;
}

#page .sub-title-rows .thin-row .row-label {
	width: 120px; 
	font-weight: 400;
}

#page .sub-title-rows .row-text {
	margin-left: 80px;
}

#page .sub-title-rows .thin-row .row-text {
	margin-left: 120px;
}

#page .page-main-text {
	font-size: 14px;
}

#page .page-main-text h2,
#page .page-main-text h3 {
	margin: 20px 0 10px;
	font-size: 14px;
	font-weight: 700;
}

#page .page-main-text h3 {
	font-weight: 400;
}

#page .page-main-text p {
	margin: 0 0 10px;
}

#page .contact-body-mapa {
	position: relative;
	padding-bottom: 100%;
}

#page .contact-body-mapa-frame {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

#page-gallery {
	
}

#page-gallery .page-gallery-items-large .page-gallery-item {
	margin: 0 0 40px;
}

#page-gallery .page-gallery-items-small .page-gallery-item {
	float: left;
	margin: 0 40px 40px 0;
	max-height: 200px;
	
	/*border: 1px solid #f5f5f5;*/
}

#page-gallery .page-gallery-items-small .page-gallery-item img {
	max-height: 160px;
}

#page-gallery .page-gallery-item .page-gallery-item-overlay {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,.2);
	opacity: 0;
	transition: opacity .5s .2s;
	z-index: 9;
}

#page-gallery .page-gallery-item:hover .page-gallery-item-overlay {
	opacity: 1;
	transition: opacity .5s 0s;
} 

#page-gallery .page-gallery-item .page-gallery-item-overlay .page-gallery-item-overlay-btn {
	display: block;
	width: 50px;
	height: 50px;
	background: transparent url('./assets/lupa.svg') no-repeat center center;
}


/*******************************************************************************************************************
*  LAYOUT > Footer
*******************************************************************************************************************/
#footer .footer-container {
	margin: 0 40px 40px;
	padding: 40px 0 0;
	font-size: 12px;
	text-align: right;
}


/*******************************************************************************************************************
*  LAYOUT > Mobile
*******************************************************************************************************************/


/*******************************************************************************************************************
*  SPECIAL
*******************************************************************************************************************/


/*******************************************************************************************************************
*  SPECIAL > Menu
*******************************************************************************************************************/


/*******************************************************************************************************************
*  SPECIAL > Form elements
*******************************************************************************************************************/


/*******************************************************************************************************************
*  SPECIAL > Icons
*******************************************************************************************************************/
.menu-hamburger-icon {
    position: absolute;
    display: inline-block;
    top: 31px;
    right: 40px;
    width: 30px;
    height: 20px;
    color: inherit;
    outline: none;
    z-index: 9999;
} 

.menu-hamburger-icon .menu-hamburger-icon-inner {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    border-top: 2px solid;
    border-bottom: 2px solid;
    color: inherit;   
    transition: .1s;
    transition-delay: .8s;   
}

.menu-hamburger-icon .menu-hamburger-icon-inner::before,
.menu-hamburger-icon .menu-hamburger-icon-inner::after {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    border-top: 2px solid;
    /*background: var(--main-text-color);*/
    top: calc(50% - 1px);
    transition: .2s;  
    transition-delay: .8s;  
}

body.main-menu-active .menu-hamburger-icon .menu-hamburger-icon-inner {
    border-color: transparent;
}

body.main-menu-active .menu-hamburger-icon .menu-hamburger-icon-inner::before {
    transform: rotateZ(45deg);
} 

body.main-menu-active .menu-hamburger-icon .menu-hamburger-icon-inner::after {
    transform: rotateZ(-45deg);
}


/*******************************************************************************************************************
*  SPECIAL > Form elements
*******************************************************************************************************************/


/*******************************************************************************************************************
*  SPECIAL > Keyframes
*******************************************************************************************************************/
@keyframes saturate {
  from {
	-webkit-filter: greyscale(100%);
	-moz-filter:    greyscale(100%);
	-ms-filter:     greyscale(100%);
	-o-filter:      greyscale(100%);
	filter: 		greyscale(100%);
  }
  to {
	-webkit-filter: var(--desaturated-value);
	-moz-filter:    var(--desaturated-value);
	-ms-filter:     var(--desaturated-value);
	-o-filter:      var(--desaturated-value);
	filter: 		var(--desaturated-value);    
  }
}

@keyframes desaturate {
  from {
	-webkit-filter: var(--desaturated-value);
	-moz-filter:    var(--desaturated-value);
	-ms-filter:     var(--desaturated-value);
	-o-filter:      var(--desaturated-value);
	filter: 		var(--desaturated-value);  
  }
  to {
	-webkit-filter: greyscale(100%);
	-moz-filter:    greyscale(100%);
	-ms-filter:     greyscale(100%);
	-o-filter:      greyscale(100%);
	filter: 		greyscale(100%); 
  }
}


/*******************************************************************************************************************
*  OTHER
*******************************************************************************************************************/


/*******************************************************************************************************************
*  OTHER > Legacy
*******************************************************************************************************************/


/*******************************************************************************************************************
*  MEDIA QUERIES
*******************************************************************************************************************/
@media only screen and (max-width: 1720px) {
.mid-col-span-1 {grid-column-end: span 1;}
.mid-col-span-2 {grid-column-end: span 2;}
.mid-col-span-3 {grid-column-end: span 3;}
.mid-col-span-4 {grid-column-end: span 4;}
.mid-col-span-5 {grid-column-end: span 5;}
.mid-col-span-6 {grid-column-end: span 6;}
.mid-col-span-7 {grid-column-end: span 7;}
.mid-col-span-8 {grid-column-end: span 8;}
.mid-col-span-9 {grid-column-end: span 9;}
.mid-col-span-10 {grid-column-end: span 10;}
.mid-col-span-11 {grid-column-end: span 11;}
.mid-col-span-12 {grid-column-end: span 12;}

.mid-col-start-1 {grid-column-start: 1;}
.mid-col-start-2 {grid-column-start: 2;}
.mid-col-start-3 {grid-column-start: 3;}
.mid-col-start-4 {grid-column-start: 4;}
.mid-col-start-5 {grid-column-start: 5;}
.mid-col-start-6 {grid-column-start: 6;}
.mid-col-start-7 {grid-column-start: 7;}
.mid-col-start-8 {grid-column-start: 8;}
.mid-col-start-9 {grid-column-start: 9;}
.mid-col-start-10 {grid-column-start: 10;}
.mid-col-start-11 {grid-column-start: 11;}
.mid-col-start-12 {grid-column-start: 12;}
}

@media only screen and (max-width: 1070px) {
#header nav > li > a {
	padding: 40px 35px;
}

}

@media only screen and (max-width: 990px) {
.grid-row {
	display: block;
}

.grid-row {
	margin-bottom: 40px;
}

.grid-row-column {
	width: 100%;
	margin-bottom: 40px;
}

.grid-row-column.small-col-width {
	width: 50%;
}

.grid-row-column .grid-row-margin,
.grid-row-column .grid-row-margin-2x {margin-top: 0; }

#header .col.right {
	position: absolute;
	width: 100%;
	top: 0;
	left: 0;
	height: 0;
	flex: none;
	text-align: center;
	z-index: 9998;
	transition: height 0s 1s;
}

#header .header-menu-button {
	display: block;
}

#header nav {
	float: none;
	position: relative;
	margin: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 0;	
	background: white;
	overflow: hidden;
	transition: height 1s ease-in-out;
}

body {
	height: auto;
	overflow: auto;
}

body.main-menu-active {
	height: 100vh;
	overflow: hidden;
}

body.main-menu-active #header .col.right {
	height: 100vh;
	transition: height 0s 0s;
}

body.main-menu-active #header nav {
	height: 100%;
	overflow: auto;
}

#header nav > li {
	float: none;
	display: block;
}

#header nav > li a {
	display: block;
	padding: 20px;
}

#header nav > li ul {
    position: static;
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
    max-height: initial;
    overflow: initial;
    text-align: center;
    opacity: 1;
    font-size: 80%;    
}

#header nav > li ul li .li-list-icon {
	display: inline;
}    

#header nav > li ul li a {
	display: inline-block;
}

#header nav > li:first-child a {
	padding-top: 120px;
}

#header nav > li:last-child a {
	padding-bottom: 200px;
}

}


@media only screen and (max-width: 640px) {
#page .page-container .page-container-fullsize {
	margin: 0 20px;
}

.grid-row {
	margin: 0 20px 20px;
}

.grid-row-column {
	margin-bottom: 20px;
}

.hide-supernarrow {
	display: none;
}

#header h1 {
	margin: 20px;
}

.menu-hamburger-icon {
    top: 11px;
    right: 20px;
}

}