/* -------------------------------------------
Author: Wilhelm Meister
This css is hand-made with NO use of templates.
--------------------------------------------*/
/* -------------------------------------------
RESET
--------------------------------------------*/

@charset "utf-8";

* {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
    line-height: 1.2em;
}


/* -------------------------------------------
FORMAT
--------------------------------------------*/

html {
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
}

body {
padding-top: 0px;
padding-bottom: 0px;
font-family: Calibri, sans-serif;
font-size: 16px;
color: white;
background-color: rgb(42, 42, 42);
}

a {
text-decoration: none;
transition: 0.3s ease;
}

li {
  list-style: none;
}

.textlink {
  color: black;
  text-decoration: underline;
}
.textlink:link {
  color: black;
  text-decoration: underline;
}
.textlink:visited {
  color: black;
  text-decoration: underline;
}
.textlink:hover {
  color: black;
  text-decoration: underline;
}

#en {color: black; text-decoration: none;}
#pagetop {color: rgba(255, 255, 255, 0); text-decoration: none;}


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

.header {
width: 100%;
height: 65px;
box-shadow: none;
position: fixed;
overflow: clip;
text-align: center;
top: 0;
z-index: 50;
  background-color: none;
  background: transparent;
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0));
}

@media only screen and (max-width: 768px) {
.header {
  height: 55px;
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0));
  }}
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .header {
  height: 55px;
    background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0));
  }}

.headertitle {
  font-family: Georgia, serif;
font-size: 30px;
padding-top: 13px;
padding-left: 16px;
padding-right: 16px;
color: black;
}
@media only screen and (max-width: 768px) {
.headertitle {
font-size: 24px;
padding-top: 12px;
padding-left: 16px;
padding-right: 16px;
  }}
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .headertitle {
    font-size: 24px;
    padding-top: 12px;
padding-left: 16px;
padding-right: 16px;
}}
.headertitlelink {
color: black;
text-decoration: none;
transition: none;
}
  .headertitlelink:hover {
color: black;
}

.headertopiclink {
color: black;
  font-weight: 600;
text-decoration: none;
transition: none;
}
.headertopiclink:hover {
color: black;
}

#pagetop {color: rgba(255, 255, 255, 0); text-decoration: none;}

.pagetopbtnhover {display: none;}

.pagetopbtn {
  position: fixed;
  z-index: 199;
  top: 12px;
  right: 16px;
  width: 20px;
  height: 16px;
}
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .pagetopbtn {
  width: 20px;
  height: 16px;
  top: 12px;
  }}
@media only screen and (min-width: 769px) {
  .pagetopbtn {
  width: 25px;
  height: 20px;
  }}
@media (hover: hover) {
  .pagetopbtn:hover {
	opacity: 1;
  	transition: 0.3s ease;
  }}


/* -------------------------------------------
ARTICLE
--------------------------------------------*/

.contentwrapper-article {
  position: static;
  width: 100%;
  background-color: rgb(255, 252, 248);
}
@media only screen and (min-height: 540px) and (orientation: portrait) {
.contentwrapper-article {
position: absolute;
top: 0;
height: 100%;
width: 100%;
}}
@media only screen and (min-height: 540px) and (orientation: landscape) {
.contentwrapper-article {
position: absolute;
top: 0;
height: 100%;
width: 100%;
}}

.article {
padding-top: 8em;
padding-left: 4.5em;
padding-right: 4.5em;
padding-bottom: 8em;
font-family: Calibri, sans-serif;
color: black;
background-color: rgb(255, 252, 248);
font-size: 18px;
}

@media only screen and (max-width: 768px) {
.article {
  padding-top: 8em;
  padding-left: 1em;
  padding-right: 1em;
  padding-bottom: 8em;
  font-size: 16px;
  }}

.sectionwide {
  max-width: 1100px;
  margin: 0 auto 0;
  padding-bottom: 6em;
  line-height: 1.6em;
} 
.sectionnarrow {
  max-width: 700px;
  margin: 0 auto 0;
  padding-bottom: 5em;   
} 
.sectioncontact {
  margin: 0 auto 0;
  padding-bottom: 6em;
}
#sectionwideprivacyenglish {
  max-width: 1100px;
  margin: 0 auto 0;
  padding-top: 0em;
  padding-bottom: 8em;
  line-height: 1.6em;
}

@-moz-document url-prefix() {
#sectionwideprivacyenglish {
    padding-top: 1em;
  }}

.h2 {
font-family: Calibri, sans-serif;
color: black;
font-size: 26px;
font-weight: 600;
padding-bottom: 1.5em;
}
@media only screen and (max-width: 768px) {
  .h2 {
    font-size: 24px;
    font-weight: 600;
    padding-bottom: 1.5em;
  }}

.h3 {
font-family: Calibri, sans-serif;
color: black;
font-size: 21px;
font-weight: 600;
padding-bottom: 1.5em;
}
@media only screen and (max-width: 768px) {
  .h3 {
    font-size: 19px;
    font-weight: 600;
    padding-bottom: 1.5em;
  }}

.h4 {
font-family: Calibri, sans-serif;
color: black;
font-size: 18px;
font-weight: 600;
padding-bottom: 1em;
}
@media only screen and (max-width: 768px) {
  .h4 {
    font-size: 16px;
    font-weight: 600;
    padding-bottom: 1em;
  }}

h5 {
font-family: Calibri, sans-serif;
color: black;
font-size: 18px;
font-weight: 600;
padding-bottom: 0.25em;
}
@media only screen and (max-width: 768px) {
  h5 {
    font-size: 16px;
    font-weight: 600;
    padding-bottom: 0.25em;
  }}

.src {padding-bottom: 0.5em;}

.textcenter {
text-align: center;
}

.buttonwrapper {
  float: right;
  max-width: 20em;
  text-align: center;
  margin-left: 2em;
}
.buttonlink {
  display: inline-block;
  color: white;
  text-decoration: none;
}
.downloadtitle {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  padding-left: 1em;
  padding-right: 1em;
  margin-top: 0.75em;
  margin-left: 0.5em;
  margin-right: 0.5em;
  color: white;
  text-decoration: none;
  font-weight: normal;
  cursor: pointer;
  border-radius: 3px;
  background-color: rgba(15, 15, 15, 0.5);
  letter-spacing: 1px;
  }
.downloadinfo { 
  margin-top: 0.75em;
  color: black;
  font-weight: 200;
  font-size: 13;
  }
@media only screen and (min-width: 769px) {
  .downloadinfo {font-size: 15px;}
  }
.textlinkconcept {
  list-style: none;
  color: black;
  padding: 0.25em;
  cursor: pointer;
  text-decoration: underline;
}

.articleconcept {
padding-top: 8em;
padding-left: 1em;
padding-right: 1em;
padding-bottom: 8em;
font-family: Calibri, sans-serif;
color: black;
background-color: rgb(255, 252, 248);
font-size: 18px;
line-height: 1.6em;
}
@media only screen and (max-width: 768px) {
.articleconcept {
  padding-top: 8em;
  padding-left: 1em;
  padding-right: 1em;
  padding-bottom: 8em;
  font-size: 16px;
  }}

.itemsconcept {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.itemboxconcept {
  width: calc(40% - 2em);
  min-width: calc(40% - 2em);
  max-width: calc(40% - 2em);
  margin-bottom: 6em;
  padding-left: 2em;
  padding-right: 2em;
  font-family: Calibri, sans-serif;
  color: black;
  font-size: 18px;
}
@media only screen and (max-width: 768px) {
.itemboxconcept {
  font-size: 16px;
  width: calc(100% - 2em);
  min-width: calc(100% - 2em);
  max-width: calc(100% - 2em);
  }}

.about::first-letter {
    font-size: 1.5rem;
    font-weight: 500;
}


.linkenglishconcept {
  display: inline-block;
  font-family: Calibri, sans-serif;
  color: black;
  font-size: 16px;
  font-weight: normal;
  text-decoration: underline;
  cursor: pointer;
}
@media only screen and (min-width: 769px) and (hover: hover) {
  .linkenglishconcept { 
    display: none;
  }}
@media only screen and (min-width: 769px) and (orientation: landscape) { .linkenglishconcept {display: none;}}

.linkenglishwrapper {
  display: block;
  text-align: right;
  padding-bottom: 2em;
}
@media only screen and (min-width: 769px) and (hover: hover) {
  .linkenglishwrapper { 
    display: none;
  }}
@media only screen and (min-width: 769px) and (orientation: landscape) { .linkenglishwrapper {display: none;}}


/* -------------------------------------------
NAVBOX
--------------------------------------------*/

.sectionnav {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;  
  align-items: center;
  text-align: center;
  margin: 0 auto 0;
  padding-left: 2em;
  padding-right: 2em;
  padding-top: 3em;
  padding-bottom: 4em;
  background-color: rgba(255, 252, 248, 0);
  color: white;
  font-family: Calibri, sans-serif;
  font-size: 22px;
  letter-spacing: 1px;
}
@media only screen and (max-width: 768px) {  
.sectionnav {
  margin: 0 auto 0; 
  font-size: 19px;
}} 
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .sectionnav {font-size: 19px;}
}
.showmobile {display: block; padding-bottom: 2em;}
@media only screen and (min-width: 769px) and (hover: hover) {.showmobile { display: none; }}
@media only screen and (min-width: 769px) and (orientation: landscape) { .showmobile {display: none;}}
.hidemobile {display: none; padding-top: 0em;}
@media only screen and (min-width: 769px) and (hover: hover) {.hidemobile { display: block; }}
@media only screen and (min-width: 769px) and (orientation: landscape) { .hidemobile {display: block;}}
  
.navboxsingle {
  display: inline-block;
  width: 7.5em;
  min-width: 7.5em;  
  max-width: 7.5em;
  background-color: rgba(15, 15, 15, 0.5);
  border-radius: 3px;
  transition: 0.3s ease;   
}
.navboxsingle:hover {
    background-color: rgba(15, 15, 15, 0.9);
  	transition: 0.3s ease;
}

.navitembox {
  width: calc(100%);
  min-width: calc(100%);
  max-width: calc(100%);
  text-align: center;
  padding-top: 0.75em;
  padding-bottom: 0.75em; 
  transition: 0.3s ease;
  color: white;  
}
  .navitembox:hover {
	text-decoration: none;    
}

.navboxtext {
  	padding: 0.75em;  
	text-decoration: none;
  }


/* -------------------------------------------
TWO-COLUMN-LIST VITA
--------------------------------------------*/

dt {
  float: left;
  padding-bottom: 1rem;
  }

dd {
  padding-left: 6rem;
  padding-bottom: 1rem;
}
#education dd {
  padding-left: 10rem;
}


@media screen and (max-width: 539px) {
  dt {
    margin-top: 0;
    line-height: normal;
    padding-bottom: 0.5em;
    float: none;
  }
  dt:first-child {
    margin-top: 0;
  }}
  
@media screen and (max-width: 539px) {
  dd, #education dd {
    padding-left: 0;
    padding-bottom: 1.5em;
    line-height: normal;
  }}


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

.footer {
bottom: 0;
padding-top: 2em;
padding-bottom: 5.25em;
height: calc(86px + 10px);
min-width: 100%;
max-width: 100%;
font-family: Calibri, sans-serif;
color: white;
background-color: rgb(42, 42, 42);
font-size: 18px;
line-height: 1.4em;
}
@media only screen and (max-width: 768px) {
  .footer {
    height: 86px;
    font-size: 16px;
}}
@media only screen and (max-height: 680px) and (orientation: landscape) { .footer { height: 86px; }}
.shortpage {
position: absolute;
top: 100%;
}
@media only screen and (max-height: 539px) and (orientation: portrait) {
  .contentwrapper-article {position: static; height: auto;}
  .shortpage {position: static; height: auto;}
    }
@media only screen and (max-height: 539px) and (orientation: landscape) {
.contentwrapper-article {position: static; height: auto;}
.shortpage {position: static; top: auto;}
}

.ulfooter {}

.lifooter {
padding: 0.75em;
text-align: center;
font-size: 18px;
line-height: 1.4em;
}
@media only screen and (max-width: 768px) {
  .lifooter {
    font-size: 16px;
}}

.footerlink {
color: white;
text-decoration: none;
}
.footerlink:hover {
color: white;
  text-decoration: none;
}


/* -------------------------------------------
PAGETOP BUTTON + CONTACT BUTTON
--------------------------------------------*/

.pagetopandcontactbtn {
  position: fixed;
  z-index: 199;
  background-color: rgba(255, 255, 255, 0);
  bottom: 0;
}

.contactbtn {
  position: fixed;
  bottom: 1rem;
  right: 1.5rem;
  width: 50px;
  opacity: 1;
  z-index: 199;
  cursor: pointer;
  transition: 0.3s ease;  
  }
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .contactbtn {
      bottom: 0.5rem;
      width: 40px;    
  }}
@media only screen and (max-width: 768px) {
  .contactbtn {
      width: 40px;
  }}
@media (hover: hover) {
  .contactbtn:hover {
	opacity: 0;
  }}

.contactbtnhover {
  position: fixed;
  bottom: 1rem;
  right: 1.5rem;
  width: 50px;
  opacity: 0;
  z-index: 199;
  cursor: pointer;
  transition: 0.3s ease;  
  }
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .contactbtnhover {
      bottom: 0.5rem;
      width: 40px;    
  }}
@media only screen and (max-width: 768px) {
  .contactbtnhover {
      width: 40px;
  }}
@media (hover: hover) {
  .contactbtnhover:hover {
	opacity: 1;
  }}


/* -------------------------------------------
NAV/MENU BUTTON IMAGES
--------------------------------------------*/

.navopenhover {
    width: 50px;
    height: 50px;
 	position: fixed;
    bottom: 1rem;
  	left: calc(50% - 25px);
  	cursor: pointer;
  	transition: 0.3s;
  	z-index: 300;
  	opacity: 0;
}

@media (hover: hover) {
.navopenhover:hover {
opacity: 0.9;
}
.navopenpart1:hover {
    opacity: 0;
}}

.navopenpart1 {
    width: 50px;
    height: 50px;
   	position: fixed;
    bottom: 1rem;
  	left: calc(50% - 25px);
  	z-index: 290;
    opacity: 0.5;
}

.navopenpart2 {
    width: 50px;
    height: 50px;
   	position: fixed;
    bottom: 1rem;
  	left: calc(50% - 25px);
  	z-index: 292;
  	opacity: 1;
}

.navclosepart2 {
    width: 50px;
    height: 50px;
 	position: fixed;
    bottom: 1rem;
  	left: calc(50% - 25px);
  	cursor: pointer;
  	z-index: 300;
  	opacity: 0.9;
}

@media only screen and (max-width: 768px) {
.navclosepart2 {
  opacity: 0;
  }}

.navclosepart1 {
    width: 50px;
    height: 50px;
   	position: fixed;
    bottom: 1rem;
  	left: calc(50% - 25px);
  	z-index: 299;
  	opacity: 1;
}

@media only screen and (min-width: 769px) {
  .navopenhover, .navopenpart1, .navopenpart2, .navclosepart1, .navclosepart2 {
    bottom: 1rem;
    left: calc(50% - 30px);
    width: 60px;
    height: 60px;
  }}
@media only screen and (min-width: 769px) {
  .navopenpart1 {opacity: 0.5;}}

@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .navopenhover, .navopenpart1, .navopenpart2, .navclosepart1, .navclosepart2 {
      bottom: 0.5rem;
    left: calc(50% - 25px);      
      width: 50px;
      height: 50px;
  }}


/* -------------------------------------------
NAV/MENU
--------------------------------------------*/

#menuicon {}

#openmenuicon {
z-index: 295;
}

#closemenuicon {
display: none;
z-index: 305;
}

@media only screen and (min-width: 769px) {
  #sidebar {
  display: none;
  position: fixed;
  width: 345px;
  height: 100%;
  right: 0px;
  padding-top: 0px;
  background-color: rgba(15, 15, 15, 0.9);
  overflow: auto;
  z-index: 200;
    animation-name: sidebarmoveleft;
    animation-duration: 0.3s;
}}
  
@media only screen and (max-width: 768px) {
#sidebar {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  right: 0px;
  bottom: 0;
  background-color: rgba(15, 15, 15, 0.9);
  overflow: auto;
  z-index: 200;
    animation-name: sidebarmoveup;
  animation-duration: 0.3s;
}}

@keyframes sidebarmoveleft {
  from {left: 100%}
  to {left: calc(100% - 346px)}
  }

@keyframes sidebarmoveup {
  from {top: 100%}
  to {top: calc(100% - 100%)}
}

.navitems {
  text-align: center;
  margin: 0;
  padding-top: 1.2em;
  padding-bottom: 0;  
  font-size: 24px;
  }
@media only screen and (max-width: 768px) {
  .navitems {
  position: absolute;
  top: calc(50% - 7.6em);
  left: calc(50% - 3.4em);
}}

.linav {
  	list-style: none;
	font-family: Calibri, sans-serif;
	color: white;
	font-size: 24px;
  	padding: 1.2em;
  	text-align: center;
  	letter-spacing: 1px;
  }
@media only screen and (max-width: 768px) {
  .linav, .navitems {
    font-size: 20px;
}}
@media only screen and (max-device-height: 640px) and (orientation: landscape) {
  .linav, .navitems {
    font-size: 20px;
}}

.navlink {
 	color: white;
	text-decoration: none;
	transition: 0.3s ease;
  }

@media (hover: hover) {
  .navlink:hover {
    animation-name: navlinkhover;
    animation-duration: 0.3s;
  -webkit-text-stroke-width: 0.5px;
-webkit-text-stroke-color: white;
  	transition: 0.3s ease;
  }}

@keyframes navlinkhover {
  from {opacity: 0.8}
  to {opacity: 1}
  }


/* -------------------------------------------
CONCEPT, GALLERY
--------------------------------------------*/

.itemsconceptgallery {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  flex-direction: row;
}

.itemboxconceptgallery {
  width: calc(33.333% - 3.5em);
  margin-bottom: 2.5em;
  margin-left: 1em;
  margin-right: 1em;
}

@media only screen and (min-width: 1501px) {
.itemboxconceptgallery {
    width: calc(25% - 4em);
}}
@media only screen and (min-width: 1025px) and (max-width: 1500px) {
.itemboxconceptgallery {
    width: calc(33.333% - 3.5em);
}}
@media only screen and (min-width: 641px) and (max-width: 1024px) {
.itemboxconceptgallery {
    width: calc(50% - 3em);
}}
@media only screen and (max-width:640px) {
.itemboxconceptgallery {
    width: calc(100% - 2em);
}}

.itemboxconceptgallery, .imglinkconceptgallery, .imgconceptgallery {
  display: block;
}

.imglinkconceptgallery {
  font-size: 16px;
  margin-bottom: 1em;
  padding-bottom: 100%;
  overflow: hidden;
  position: relative;
  transition: none;
}
@media only screen and (max-width: 768px) {
  .imglinkconceptgallery {font-size: 14px}
}

.imgconceptgallery {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  object-fit: cover;
  object-position: 50% 50%;
  transform: translate(-50%,-50%);
  transition: 0.3s;
}
@media (hover: hover) {
.imgconceptgallery:hover {
  width: 102%;
  height: 102%;
}}

.texttitleconceptgallery {
  font-size: 16px; 
  font-family: Calibri, sans-serif; 
  font-weight: 300; 
  text-decoration: underline;
  text-decoration-thickness: 0.5px;
  padding-bottom: 0.75em; 
  text-align: center;}
.textinfoconceptgallery {
  display: none; /*DISPLAY NONE*/
  font-size: 14px; 
  font-family: Calibri, sans-serif; 
  font-weight: 300; 
  text-decoration: underline;
  text-decoration-thickness: 0.5px;
  text-align: center;}
@media only screen and (max-width: 768px) {
  .texttitleconceptgallery {font-size: 15px;} .textinfo {font-size: 13px;}
}

.infolinkconceptgallery {
  transition: none;
  text-decoration: none;
  font-family: Calibri, sans-serif;
  color: black;
}


/* -------------------------------------------
END OF STYLESHEET
--------------------------------------------*/