@charset "utf-8";

/*
---------------------------------------------------------------------------------------------------- 
	Fonts
----------------------------------------------------------------------------------------------------
*/

@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i|Alegreya:800,800i');

/*
---------------------------------------------------------------------------------------------------- 
	App defaults
----------------------------------------------------------------------------------------------------
*/

.app {
	left: 0;
	color: #404040;
	position: relative;
	transition: left 0.2s;
	font: 400 14px/1.6 "Open Sans", Helvetica, Arial, sans-serif;
}

.app.toggle {
	left: -280px;	
}

.app h1 { font-size: calc((1em - 8px) * 8.0); line-height: 1.1; }
.app h2 { font-size: calc((1em - 8px) * 4.8); line-height: 1.1; }
.app h3 { font-size: calc((1em - 8px) * 3.2); line-height: 1.3; }
.app h4 { font-size: calc((1em - 8px) * 2.4); }

.app h1, .app h2, .app h3, .app h4 {
	font-weight: 700;
	font-family: "Alegreya", Times, "Times New Roman", serif;
}

.app h4 + h2 { 
	margin-top: 0.25em;
}

.app b, 
.app strong {
	font-weight: 700;
}

.app p {
	margin-top: 1em;
	margin-bottom: 1em;
}

.app label {
	display: block;
	line-height: 2em;
	font-weight: 700;
}

.app input, .app textarea {
	width: 100%;
	height: auto;
	border-radius: 0;	
	padding: 0.725em 15px;
	background-color: #f0f0f0;
	border: none;
}

.app .error-red 	{ color: #ff2020; }
.app .success-green { color: #20f020; }

/*
---------------------------------------------------------------------------------------------------- 
	Custom defaults
----------------------------------------------------------------------------------------------------
*/

.container {
    padding-left: calc(50% - 720px);
    padding-right: calc(50% - 720px);
}

/* Fonts */

.font-xl { font-size: 1.334em; }
.font-lg { font-size: 1.15em; }

.font-xl .app-button { font-size: 0.70em; }
.font-lg .app-button { font-size: 0.870em; }


.font-sans {
	font-family: "Open Sans", Helvetica, Arial, sans-serif;
}

/* Lists */

.list-ruled h3, .list-ruled h4 {
	margin-bottom: 1em;
}

.list-ruled li a {
	padding-top: 0.75em;
	padding-bottom: 0.75em;	
}

/* Boxes */

.app-box {
	border-width: 4px;
	border-style: solid;
}

/* Gallery */

.app a[data-func] { 
	display: block;
}

.app a[data-func] img {
	pointer-events: none;	
}

/*
---------------------------------------------------------------------------------------------------- 
	Buttons / Icons / Links
----------------------------------------------------------------------------------------------------
*/

.app-button {
	border-radius: 0;
	border-width: 3px;
	border-style: solid;
	padding: 0.725em 3em;
	display: inline-block;
	transition: color 0.2s, background-color 0.2s, border-color 0.2s;
}

.app-button:hover {
	text-decoration: none;
}

/* Icons */

.app-icon {
	padding: 0;
	border: none;
	color: inherit;
	position: relative;
	display: inline-block;
	transition: color 0.5s;
	background-color: transparent;
}

.app-icon:after {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: " ";
	display: block;
	position: absolute;
}

.app-icon-text {
	line-height: 30px;
	margin-right: 0.5em;	
}

.app-icon svg {
	float: left;	
}

/* Links */

.app-link {
	display: block;
	margin-top: 2em;
}

.app-link:hover {
	text-decoration: underline;
}

/* Social Icons */

.app-socicon {
	width: 1em;
	height: 1em;
	display: inline-block;
}

/*
---------------------------------------------------------------------------------------------------- 
	Dialog
----------------------------------------------------------------------------------------------------
*/

.app dialog {
	display: none;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 15px;
	position: fixed;
	align-items: center;
	justify-content: center;
	background-color: rgba(0,0,0,0.0);
	color: #ffffff;
	border: none;
	z-index: 20;
}

.app dialog .dialog-content {
	padding: 1.5em;
	pointer-events: none;
	border-style: solid;
	border-width: 4px;
}

.app dialog .dialog-content:before {
	content: "X";
	float: right;
	cursor: pointer;
	padding-left: 15px;
}

.app dialog.error:not(.hidden) {
	display: flex;
}

.app dialog.error .dialog-content {
	border-color: rgba(240,0,32,1);
	background-color: rgba(240,0,32,0.75);
}

.app dialog.success:not(.hidden) {
	display: flex;
}

.app dialog.success .dialog-content {
	border-color: rgba(0,240,32,1);
	background-color: rgba(0,240,32,0.75);
}

/*
---------------------------------------------------------------------------------------------------- 
	Header
----------------------------------------------------------------------------------------------------
*/

.app.toggle .app-header {
	left: -280px;	
}

.app-header {
	top: 0;
	left: 0;
	z-index: 3;
	width: 100%;
	height: 60px;
	position: fixed;
	background-color: #fff;
	transition: left 0.2s;
}

.app-header:after {
	left: 0;
	width: 100%;
	height: 2px;
	bottom: -2px;
	content: " ";
	display: block;
	position: absolute;
	background: rgba(0,0,0,0.075);
}

.app-header-icons {
	right: 15px;
	height: 30px;
	position: absolute;
	font-family: "Open Sans", Helvetica, Arial, sans-serif;
	font-weight: 700;
}

.app-header-icons button {
}

.app-logo {
	display: block;
}

.app-logo-image {
	height: 30px;
	display: block;	
}

.app-logo-text {
	width: 80%;
	background: url(graphics/logo-text.svg) no-repeat center;
}

.app-nav {
	top: 0;
	right: 0;
	z-index: 0;
	width: 280px;
	height: 100vh;
	position: fixed;
	font-weight: 700;
	padding: 0 30px 0;
	color: #fff;
}

.app-nav ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.app-nav li + li {
	border-top: solid 1px rgba(255,255,255,0.15);
}

.app-nav li a {
	display: block;
	padding: 0.75em 0;	
}

.app-nav li.app-nav-button {
	display: none;
}

.app-nav li.app-nav-button + li {
	border-top: none;
}

.app-nav .app-socicon {
	float: left;
	width: 25px;
	height: 25px;
	display: block;
}

.app-nav-emblem {
	display: block;
	max-height: 125px;
	margin: 4.5vh auto;
}

.app-nav-footer {
	left: 0;
	right: 0;
	bottom: 1.6em;
	display: block;
	position: absolute;
	text-align: center;
}

/*
---------------------------------------------------------------------------------------------------- 
	Main
----------------------------------------------------------------------------------------------------
*/

.app-main {
	z-index: 1;
	padding-top: 60px;
	position: relative;
	background-color: #fff;
}

.app-main .app-button {
	margin-top: 1.5vh;
}

/* Banner */

.app-banner {
	display: flex;
	min-height: 100vh;
	position: relative;
	align-items: stretch;
	flex-direction: column;
	justify-content: center;
	background-position: center;
	background-size: cover;	
}

.app-banner h1 + h2 {
	margin-top: 0.5em;
}

.app-banner-75 { min-height: 75vh; }
.app-banner-65 { min-height: 65vh; }
.app-banner-50 { min-height: 50vh; }
.app-banner-25 { min-height: 25vh; }

/* Overlay */

.app-overlay {
	position: relative;
}

.app-overlay:before {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: " ";
	position: absolute;
	background-color: rgba(0,0,0,0.4);
}

/* Cards */

.app-card {
	margin-bottom: 12vh;
}

.app-card p {
	margin-top: 0;
	margin-bottom: 1.75em;	
}

.app-card a {
	color: inherit;	
}

.app-card a:hover {
	text-decoration: none;	
}

.app-card a:hover .app-card-image {
	 filter: grayscale(100%);
}

.app-card a:hover p {
	text-decoration: underline;	
}

.app-card-image {
	display: block;
	transition: filter 0.25s;
}

.app-card-meta {
	color: #a0a0a0;
	font-weight: 400;
	margin-top: 0.75em;
	margin-bottom: 0.75em;
	text-transform: uppercase;
}

/* Aside */

.app-aside .list + .list {
	margin-top: 6vh;	
}

/* Pagination */

.app-pagination {
	display: table;
	font-size: 1.15em;
}

.app-pagination div {
	text-align: center;
	display: table-cell;
}

.app-pagination div:nth-child(2) {
	width: 100%;
}

.app-pagination a {
	width: 2.4em;
	height: 2.4em;
	display: inline-block;
}

.app-pagination a.selected {
	color: #fff;
}

.app-pagination a:hover {
	color: #fff;
	text-decoration: none;
}

.app-pagination-nav a {
	border-width: 3px;
	border-style: solid;
	line-height: calc(2.4em - 6px);
}

.app-pagination-nums a {
	line-height: 2.4em;
}

/* Article */

.app-article-meta {
	color: #a0a0a0;
	margin-top: 0.75em;
	margin-bottom: 0.75em;
	text-transform: uppercase;
}

.app-article-tags {
	margin-top: 6vh;
}

/* Form */

.app-form label {
	display: none;	
}

.app-form .mb {
	margin-bottom: 30px;	
}

.app-form .app-button {
	margin-top: 0;
}	

/* Stacks */

.app-stack {
	position: relative;	
}

.app-stack:before {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;	
	content: " ";
	display: block;
	position: absolute;
	background-color: rgba(0,0,0,0);
	transition: background-color 0.5s;
}

.app-stack h1:after,
.app-stack h2:after,
.app-stack h3:after {
	height: 3px;
	width: 1.5em;	
	content: " ";
	display: block;
	margin: 0.5em auto;
	background-color: #fff;
}

/* Adding app-main means do not appy style within the CMS */

.app-main .app-stack > * {
	z-index: 2;
	opacity: 0;
	position: relative;
	transition: opacity 0.5s;
}

.app-main .app-stack:hover:before {
	background-color: rgba(82,200,0,1);
}

.app-main .app-stack:hover > * {
	opacity: 1;
}

/* Focus for mobile devices */

.app-main .app-stack:focus {
	cursor: pointer;
}

.app-main .app-stack:focus:before {
	background-color: rgba(48,48,48,1);
}

.app-main .app-stack:focus > * {
	opacity: 1;
}

/*
---------------------------------------------------------------------------------------------------- 
	Footer
----------------------------------------------------------------------------------------------------
*/

.app-footer {
	z-index: 1;
	position: relative;
}

.app-footer-logo {
	width: 182px;
	display: block;	
}

.app-footer hr {
	margin-left: 15px;
	margin-right: 15px;
}	

/*
---------------------------------------------------------------------------------------------------- 
	App Lightbox
----------------------------------------------------------------------------------------------------
*/

.app-lightbox {
	top: 0; 
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10;
	display: none;
	position: fixed;
	padding-left: 15px;
	padding-right: 15px;
	background-color: rgba(0,0,0,0.65);	
}

.app-lightbox:after {
	top: 15px;
	right: 15px;
	width: 30px;
	height: 30px;	
	display: block;
	position: absolute;
	background: url(graphics/nav-x.svg) center no-repeat ;
	background-size: 100%;
	cursor: pointer;
	content: " ";
}

.app-lightbox.visible {
	display: flex;
	align-items: center;
	justify-content: center;
}

.app-lightbox .scrolls {
	transition: margin-top 0.3s;	
}

.app-lightbox-container {
	max-width: 80vw;
	max-height: 80vh;
	overflow: hidden;
}

/*
---------------------------------------------------------------------------------------------------- 
	Media queries
----------------------------------------------------------------------------------------------------
*/

@media (min-width: 414px) {
	
}

@media (min-width: 768px) {

	.app {
		font-size: calc(14px + ((100vw - 768px) / 168)); /* 1440 - 768 / 4 */
	}
	
	.app-header {
		height: 110px;
	}
		
	.app-header .app-button {
		height: auto;
	}
	
	.app-header-icons {
		display: none;
	}	
		
	.app-logo-image {
		height: 70px;
	}
		
	.app-nav {
		left: 0;
		top: 110px;
		width: 100%;
		height: 50px;
		padding-left: calc(50% - 720px);
		padding-right: calc(50% - 720px);
		z-index: 2;
	}
	
	.app-nav ul {
		float: left;
		height: 50px;
		display: flex;
		padding: 0 15px;
		align-items: center;
	}
	
	.app-nav li + li {
		border: none;
		margin-left: 1.5em;
	}

	.app-nav li.app-nav-button {
		display: block;	
	}
	
	.app-nav li.app-nav-button a {
		padding-left: 1em;
		padding-right: 1em;
		border: solid 4px #fff;		
	}
	
	.app-nav-emblem,
	.app-nav-footer {
		display: none;	
	}		
		
	.app-main {
		padding-top: 160px;	
	}
}

@media (max-width: 991.999px) {
	
	.app-footer {
		text-align: center;	
	}
	
	.app-footer-logo {
		margin-left: auto;
		margin-right: auto;
	}
}

@media (min-width: 1440px) { 

	.app {
		font-size: 18px;	
	}	
	
	.app-header {
		height: 140px;
	}
	
	.app-logo-image {
		height: 90px;
	}	
	
	.app-nav {
		top: 140px;
		height: 60px;
	}
	
	.app-nav ul {
		height: 60px;
	}	
	
	.app-nav .app-socicon {
		width: 30px;
		height: 30px;
	}
	
	.app-main {
		padding-top: 200px;	
	}
}
