/* Font definitions */
@font-face {
	font-display: swap;
	font-family: 'Proza Libre';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/proza-libre-v9-latin-regular.woff2') format('woff2');
}
@font-face {
	font-display: swap;
	font-family: 'Proza Libre';
	font-style: normal;
	font-weight: 600;
	src: url('../fonts/proza-libre-v9-latin-600.woff2') format('woff2');
}
@font-face {
	font-display: swap;
	font-family: 'Proza Libre';
	font-style: normal;
	font-weight: 700;
	src: url('../fonts/proza-libre-v9-latin-700.woff2') format('woff2');
}
  
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2') format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2') format('woff2');
	unicode-range: U+1F00-1FFF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2') format('woff2');
	unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2') format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Basic styles */
body, html {
	height: 100%;
	width: 100%;
}
body {
	font-size: 1rem;
	font-family: 'Source Sans Pro', sans-serif;
}
nav {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
::selection {
	background: #b47f40;
}
h1, h2, h3, h4 {
	position: relative;
	font-family: 'Proza Libre', sans-serif;
}
h2 {
	font-weight: 700;
	font-size: 2.8rem;
}
.subheadline {
	margin-top: 0.8rem !important;
	margin-bottom: 1.5rem !important;
}
.bg-primary {
	background-color: #d19320!important;
}
.bg-dark {
	background-color: #0f0a05!important;
}
.bg-white {
	background-color: #fff;
}
.text-primary {
	color: #d19320!important;
}
a.text-primary {
	color: #d19320;
}
a.text-primary:hover {
	color: #d19320!important;
	text-decoration: none;
}
.btn {
	font-family: 'Proza Libre', sans-serif;
	font-size: 1rem;
	font-weight: 600;
	padding: 0.7rem 1.3rem;
}
.btn-primary {
	background-color: #d19320;
	border-color: #d19320;
}
.btn-primary:hover,
.btn-primary:focus {
	background-color: #b47f40;
	border-color: #b47f40;
}
.bg-service {
	background:url("../img/services-bg.webp?81384");
	background-repeat: no-repeat;
	background-position: center right;
}
.parallax {
	background-attachment: fixed !important;
}
@supports (-webkit-touch-callout: none) {
	@media (max-width: 767px) {
		.parallax {
			background-attachment: scroll !important;
		}
	}
}
.font-proza-libre {
	font-family: 'Proza Libre', cursive;
}

/* Animations */
.fade-in-on-scroll {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in-on-scroll.visible {
	opacity: 1;
	transform: translateY(0);
}

/* Page loader */
@-webkit-keyframes scale {
	0% {
	  -webkit-transform: scale(1);
			  transform: scale(1);
	  opacity: 1; }
	45% {
	  -webkit-transform: scale(0.1);
			  transform: scale(0.1);
	  opacity: 0.7; }
	80% {
	  -webkit-transform: scale(1);
			  transform: scale(1);
	  opacity: 1; }
}
@keyframes scale {
	0% {
	  -webkit-transform: scale(1);
			  transform: scale(1);
	  opacity: 1; }
	45% {
	  -webkit-transform: scale(0.1);
			  transform: scale(0.1);
	  opacity: 0.7; }
	80% {
	  -webkit-transform: scale(1);
			  transform: scale(1);
	  opacity: 1; }
}
.loader {
	display: table;
    height: 100%;
    position: fixed;
    width: 100%;
    z-index: 1200;
}
.loader-bg {
  background: #0F0A06;
}
.loader-inner {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
.loader-inner > div:nth-child(1) {
	-webkit-animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
			animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
}
.loader-inner > div:nth-child(2) {
	-webkit-animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
			animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
}
.loader-inner > div:nth-child(3) {
	-webkit-animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
			animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08);
}
.loader-inner > div {
	background-color: #d19320;
	width: 15px;
	height: 15px;
	border-radius: 100%;
	margin: 2px;
	-webkit-animation-fill-mode: both;
			animation-fill-mode: both;
	display: inline-block;
}

/* Navbar */
.top-nav {
    height: 80px;
    transition: 0.2s ease-in;
	-webkit-transition: 0.2s ease-in;
	-moz-transition: 0.2s ease-in;
}
.top-nav .navbar-nav li .nav-link {
    color: #fff;
    font-size: 14px;
    padding:6px 26px;
    margin:6px 5px 0;
    font-weight: 400;
    text-transform: uppercase;
    transition: 0.2s ease-in;
	-webkit-transition: 0.2s ease-in;
	-moz-transition: 0.2s ease-in;
}
.top-nav li a.nav-link:hover,
.top-nav .nav-item.active a.nav-link {
    color: #fff;
    background-color: #d19320;
	border-color: #d19320;
	border-radius: 50px;
    transition: 0.5s ease-in;
	-webkit-transition: 0.5s ease-in;
	-moz-transition: 0.5s ease-in;
}
.top-nav .navbar-brand {
	font-size: 28px;
	color: #fff;
	font-family: 'Proza Libre', sans-serif;
	margin-left: 20px;
}
.navbar-brand img {
	height: 50px;
}
.top-nav {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 60px;
	z-index: 9999;
	background: transparent;
	transition: background 0.5s ease-in;
}
.top-nav::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.18);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: -1;
}
.top-nav.light-header .navbar-brand {
	color: #fff;
}

/* Home */
.home {
	float: left;
	width: 100vw;
	display: flex;
	align-items: center;
	height: 100vh;
	min-height: 100vh;
	position: relative;
	z-index: 1;
}
.home-bg {
	background: url("../img/home-bg.webp?81384");
	background-repeat: no-repeat;
}
.caption-home-main-panel {
	display: flex;
	align-items: center;
}
.home h1 {
	font-weight: 700;
	font-family: 'Proza Libre', cursive;
	font-size: 3.3rem;
	margin-bottom: 2rem !important;
}
.home-caption .btn {
	cursor: pointer;
}
.home-caption .btn:focus,
.home-caption .btn:active {
	box-shadow: none;
}

/* Services */
.services-section {
	float: left;
	width:100%;
	padding:5rem 0;
	position: relative;
	z-index: 1;
}
.services-section h3 {
	font-size: 1.4rem;
}
.services-section p {
    font-size: 1rem;
    line-height: 1.3rem;
}
.services-section .icon-box {
    line-height: 1.2;
    width:70px;
}
.services-section .service-block i img {
	width:50px;
}
.services-panel-main-block {
	float: left;
	width: 100%;
}
.services-panel-main-block i {
	font-size: 1.5rem;
	margin-bottom: 15px;
}

/* About me */
.about-bg {
	background: url("../img/about-bg.webp?81384");
	background-repeat: repeat;
	background-position: left top;
}

/* Contact */
.contact-link {
	text-decoration: none;
	transition: color 0.3s ease;
	line-height: 1;
	font-size: 1.25rem;
	display: inline-block;
	vertical-align: middle;
}
.contact-link:hover,
.contact-link:focus,
.contact-link:active {
	color: #d19320 !important;
}
.contact-logo {
	width: 320px;
	max-width: 100%;
}
.contact-icons {
	width: 42px;
	height: 42px;
	display: block;
	margin-top: 2px;
}
.contact-rows {
	margin-bottom: 1.2rem;
}
.contact-rows:first-child {
	margin-bottom: 1.8rem;
}
.contact-details {
	padding-left: 1rem;
}

/* Imprint */
#imprint h1 {
	font-weight: 700;
	font-family: 'Proza Libre', cursive;
	font-size: 3.3rem;
	margin-bottom: 2rem !important;
}
.imprint-link {
	text-decoration: none;
	transition: color 0.3s ease;
}
.imprint-link:hover,
.imprint-link:focus,
.imprint-link:active {
	color: #d19320 !important;
}

/* Footer */
.main-footer {
	float: left;
	width: 100%;
	font-size: 16px;
	background: #111;
}
.main-footer a {
	color: #fff;
	text-decoration: none;
}
.main-footer a:hover {
	text-decoration: underline;
}

/* Container styles */
.main-container {
	float: left;
	width:100%;
	padding: 5rem 0;
	position: relative;
	z-index: 1;
}
@media (min-width: 768px) {
	.main-container {
		padding: 7rem 0;
	}
}
.sub-container {
	float: left;
	width: 100%;
}

/* Responsiveness */
@media (max-width: 991px){
	.container {
		width: 100%;
	}  
	#navbar {
		background: rgba(0, 0, 0, 0.18);
		padding: 30px 0;
		-webkit-backdrop-filter: blur(8px) !important;
		backdrop-filter: blur(8px) !important;
	}
	#navbar li {
		text-align: center;
	}
	.navbar .container-fluid {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.navbar-brand {
		padding-left: 0.75rem;
	}
	.navbar-toggler {
		padding-right: 0.75rem;
		visibility: hidden;
		opacity: 0;
		box-shadow: none !important;
		transition: visibility 0s, opacity 0.3s linear;
	}
	.navbar-toggler-visible {
		visibility: visible;
		opacity: 1;
	}
}

@media (max-width: 767px){
	.home h1 {
		font-size: 2.4rem;
	}
	h2 {
		font-weight: 700;
		font-size: 2.4rem;
	}
	.container {
		width:100%;
		padding-left: 24px;
		padding-right: 24px;
	}
	.bg-service {
		background-position: center left;
	}
	@supports (-webkit-touch-callout: none) {
		.bg-service {
			background-position: top left;
		}
	}
	#about-me-img {
		max-width: 74%;
		margin-left: 13%;
	}
}

@media (min-width: 400px) {
	.home h1 {
		font-size: 2.8rem;
	}
	h2 {
		font-size: 2.6rem;
	}
	.contact-details {
		padding-left: 2rem;
	}
}

@media (min-width: 500px) {
	.contact-details {
		padding-left: 5rem;
	}
}

@media (min-width: 600px) {
	.contact-details {
		padding-left: 6rem;
	}
	.home-bg {
		background-size: auto 100vh;
	}
}

@media (min-width: 768px) {
	.contact-details {
		padding-left: 3rem;
	}
}

@media (min-width: 992px) {
	.contact-details {
		padding-left: 10rem;
	}
	@supports not (-webkit-touch-callout: none) {
		.home-bg {
			background-repeat: no-repeat;
			background-position: left center;
			background-size: cover;
		}
	}
}

@media (max-width: 420px){
	#about-me-img {
		max-width: 82%;
		margin-left: 9%;
	}
}

@media (max-width: 390px){
	.navbar-brand img {
		height: 42px;
	}
}