/* Schriften einbinden */

@font-face {
	font-family: 'Avenir';
	src: url('/library/css/fonts/Avenir-Light.ttf') format('truetype');
	font-weight: 200;
}

@font-face {
	font-family: 'Avenir';
	src: url('/library/css/fonts/Avenir-Book.ttf') format('truetype');
	font-weight: 300;
}

@font-face {
	font-family: 'Avenir';
	src: url('/library/css/fonts/Avenir-Roman.ttf') format('truetype');
	font-weight: 400;
}

@font-face {
	font-family: 'Avenir';
	src: url('/library/css/fonts/Avenir-Medium.ttf') format('truetype');
	font-weight: 600;
}

@font-face {
	font-family: 'Avenir';
	src: url('/library/css/fonts/Avenir-Heavy.ttf') format('truetype');
	font-weight: 700;
}

@font-face {
	font-family: 'Avenir';
	src: url('/library/css/fonts/Avenir-Black.ttf') format('truetype');
	font-weight: 800;
}

/* Allgemeine Styles */

html {
	font-size: 20px;
}

body {
	margin: 0;
	font-family: "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 300;
	background: #333;
	color: #f1f1f1;
}

@media screen and (max-width:960px){
	html {
		font-size: 16px;
	}
}

@media screen and (max-width:640px){
	html {
		font-size: 12px;
	}
}

h1 {
	font-family: "Avenir-Light", "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 200;
	font-style: normal;
}

h2 {
	margin: 40px auto 20px;
	font-family: "Avenir-Black", "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 800;
	text-align: center;
	font-size: 4rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	max-width: 920px;
}

a {
	color: #295FCC;
	/*color: #2C467A;
	color: #3B5EA3;
	/*color: #4975CC;*/
	text-decoration: none;
}

::selection {
	background: #444;
	color: white;
}

img {
	user-select: none;
}

p {
	font-size: 20px;
	width: 920px;
	margin: 20px auto;
	text-align: center;
	line-height: 1.5em;
}

@media screen and (max-width:960px) {
	h2 {
		max-width: calc(100vw - 40px);
	}
	p {
		width: calc(100vw - 40px);
	}
	
}

/* Header */

header {
	display: block;
	position: relative;
	width: 100%;
	height: 80px;
	color: white;
	opacity: 1;
	z-index: 10;
	user-select:none;
}
@media screen and (min-width: 961px){
	header.dark {
		color: #1f1f1f;
	}
	
	header.bg {
		background: #333;
	}
}

header h1 {
	float: left;
	margin: 20px;
	height: 40px;
	line-height: 40px;
	font-size: 14px;
	font-family: "Avenir-Light", "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 200;
	text-transform: uppercase;
	font-style: normal;
	letter-spacing: 0.1em;
}

header h1 a {
	display: inline-block;
	background-image: url("/library/img/icons/camera@2x.png");
	background-position: left center;
	background-size: 30px;
	background-repeat: no-repeat;
	padding-left: 45px;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

@media screen and (min-width: 961px){
	header.dark h1 a {
		background-image: url("/library/img/icons/camera_dark@2x.png");	
	}
}

header h1 a:hover {
	background-image: url("/library/img/icons/camera_blue@2x.png");
	color: #0066ff;
}

/* Navigation */

nav {
	font-family: "Avenir-Light", "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 200;
	float: right;
	margin: 20px 10px;
	height: 40px;
	line-height: 40px;
	user-select: none;
	text-transform: uppercase;
}

@media screen and (min-width: 960px){
	header h1 {
		margin-left: calc(50vw - 480px + 20px);
	}
	nav {
		margin-right: calc(50vw - 480px + 20px);
	}
}

nav ul {
	margin: 0;
	padding: 0;	
}

nav ul li {
	float: left;
	margin: 10px 0;
	padding: 0 10px;
	border-left: 0px solid white;
	height: 20px;
	line-height: 20px;
	font-size: 14px;
	letter-spacing: 0.1em;
	list-style: none;
}

nav ul li a {
	text-decoration: none;
	color: inherit;
}

nav ul li a:hover {
	cursor: pointer;
	color: #0066ff;
}

.nav-toggle,
.nav-close {
	display: none;
	width: 30px;
	height: 30px;
	background-image: url('/library/img/icons/menu@2x.png');
	background-repeat: no-repeat;
	background-size: 30px;
	margin: 25px 20px;
	float: right;
}

@media screen and (min-width: 961px){
	.dark .nav-toggle {
		background-image: url('/library/img/icons/menu_dark@2x.png');	
	}
}

.nav-close {
	background-image: url('/library/img/icons/close@2x.png');
}

@media screen and (max-width:640px){
	header {
		text-align: center;
	}
	nav {
		display: block;
		position: fixed;
		width: 100vw;
		height: 100vh;
		background: rgba(250,250,250,0.95);
		margin: 0;
		left: 0;
		top: 0;
		color: #1f1f1f;
		text-align: center;
	}
	
	nav ul {
		margin: 25vh auto;
	}
	
	nav ul li {
		float: inherit;
		font-size: 20px;
		line-height: 2em;
		height: inherit;
	}
	
	.nav-close,
	.nav-toggle {
		display: block;
	}
	nav {
		display: none;
	}
}

/* Footer */

footer {
	font-family: "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 200;
	margin: 20px auto;
	height: 30px;
	line-height: 30px;
	user-select: none;
	text-align: center;
	width: 100%;
}

footer ul {
	display: inline-block;
	margin: 0;
	padding: 0;	
}

footer ul li {
	float: left;
	margin: 10px 0;
	padding: 0 10px;
	border-left: 1px solid #444;
	height: 20px;
	line-height: 20px;
	font-size: 0.7rem;
	list-style: none;
	color: #f1f1f1;
}

footer ul li:first-child {
	border: 0;
}


footer ul li a {
	text-decoration: none;
	color: inherit;
}

footer ul li a:hover {
	text-decoration: underline;
	cursor: pointer;
}

/* Inhalt */

.content {
	position: relative;
	display: block;
	margin: 0px auto;
	width: calc(100vw - 40px);
	min-height: calc(100vh - 80px);
	padding: 20px 20px 0 20px;
}

.detail-fullsize {
	position: relative;
	margin: -100px -20px -20px;
	width: 100vw;
	overflow: auto;
	height: auto;
	z-index: 0;
	color: #f1f1f1;
}

.content-section {
	margin-top: 120px;
}

.image-cover {
	max-width: 100vw;
	height: 540px;
	overflow: hidden;
	margin: 0;
	background-size: cover;
	background-position: center center;
	position: relative;
	z-index: 0;
}

.image-cover div {
	height: 540px !important;
}

.image-cover img {
	display: inline-block;
	width: 100vw;
	max-height: 100vh;
	border: 0;
	object-fit: cover;
}

.image-cover > .jarallax-img {
	position: absolute;
	object-fit: cover;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}
@media screen and (min-width:1260px) {
	.image-cover {
		height: calc(100vw * 9/21);
	}
	.image-cover div {
		height: calc(100vw * 9/21) !important;
	}
}

@media screen and (max-width:960px){
	/*.lightbox {
		margin-top: -20px;
	}*/
	.image-cover {
		margin-top: 80px;
		height: calc(100vw * 9/16);
	}
	.image-cover > div {
		height: calc(100vw * 9/16) !important;
	}
}

/* Portfolio */

.portfolio {
	position: relative;
	margin: -20px -20px 0;
	width: calc(100vw);
	min-height: calc(100vh - 40px);
	opacity: 1;
	padding: 0;
	display: inline-block;
	user-select:none;
}

.portfolio-bgimg {
	background-position: center;
	position: relative;
	width: 100vw;
	background-repeat: no-repeat;
	background-size: cover;
	margin-bottom: 10px;
	height:720px;
}
/* screen and (max-aspect-ratio: 3/2) */
@media screen and (max-width: 1280px),
screen and (max-width: 1680px) and (min-height: 1120px) {
	.portfolio-bgimg {
		height: calc(100vw * 9 / 16);
	}
}
/* screen and (min-aspect-ratio: 16/9)  */
@media screen and (min-width: 1680px),
screen and (min-width: 1280px) and (max-height: 800px) {
	.portfolio-bgimg {
		height: calc(100vw * 9 / 21);
	}
}

.portfolio-text {
	position: absolute;
	left: 0;
	top: 50%;
	width: 100%;
	text-align: center;
	color: #000;
	margin-top: -5rem;
}

.portfolio-text h2 {
	max-width: inherit;
}

.portfolio-text.left {
	left: calc(50vw - 480px + 20px);
	width: auto;
}

.portfolio-text.right {
	left: inherit;
	right: calc(50vw - 480px + 20px);
	width: auto;	
}

@media screen and (max-width:960px){
	.portfolio-text.left {
		left: 20px;		
	}
	.portfolio-text.right {
		right: 20px;
	}
}

.portfolio-title {
	margin: 0;
	font-size: 5rem;
	letter-spacing: 0.15em;
	line-height: 1em;
}

.portfolio-subtitle {
	font-size: 1.2rem;
	font-family: "Avenir-Book", "Avenir", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 300;
	color: #2C467A;
	color: #3B5EA3;
	/*color: #4975CC;*/
}

.portfolio-subtitle:hover{
	color: #0066ff;
}

@media screen and (max-width:640px){
	.portfolio-text {
		margin-top: -4rem;
	}
	.portfolio-title {
		font-size: 4rem;
	}
}

/* Instagram */

.instagram {
	margin: 40px -20px 0;
	display: inline-block;
	width: 100vw;
	display: none;
	overflow: auto;
	user-select:none;
}

.instagram-header {
	width: 920px;
	margin: 0 auto 20px;
	height: 105px;
	text-align: center;
	vertical-align: middle;
	padding: 0;
	user-select:none;
}

.instagram-logo {
	display: inline-block;
	background-image: url("/library/img/assets/instagram-logo@2x.png");
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
	width: 294px;
	height: 105px;
	margin: 0;
	color: transparent;
}

.instagram-icon {
	float: right;
	background-color: transparent;
	background-image: url("/library/img/assets/instagram-icon@2x.png");
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
	width: 40px;
	height: 40px;
	border: 0;
	padding: 0;
	margin: 25px 20px 0 -60px;
	cursor: pointer;
}

@media screen and (max-width:960px){
	.instagram-header {
		height: calc(30vw / 2.8);
		width: 100%;
	}
	
	.instagram-logo {
		width: 30vw;
		height:calc(30vw / 2.8);
	}
	
	.instagram-icon {
		width: 4vw;
		height: 4vw;
		margin: 3vw 20px 0 -60px;
	}

}

.instagram-image {
	display: block;
	float: left;
	width: calc((100vw - 40px) / 5);
	height: calc((100vw - 40px) / 5);
	background: #666;
	margin-right: 10px;
	overflow: hidden;
	position: relative;
}

.instagram-image:last-child{
	margin-right: 0;
}

.instagram-image img {
	width: 100%;
	height: 100%;
	object-fit:cover;
	transition: ease-in 0.2s;
}

.instagram-image img:hover {
	transition: ease-out 0.2s;
	
}

.instagram-overlay {
	position: absolute;
	z-index: 2;
	display: none;
	color: white;
	width: calc((100vw - 40px) / 5);
	height: calc((100vw - 40px) / 5);
	background: rgba(0,0,0,0.8);
	text-align: center;
	vertical-align: center;
	top:0px;
	left: 0px;
	font-family: "Avenir-Light", "Avenir", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 200;
}

.instagram-image:hover .instagram-overlay  {
	display: block;
}

.instagram-likes,
.instagram-comments {
	display: inline-block;
	background: transparent;
	margin: 10px;
	margin-top: calc(50% - 20px);	
	line-height: 30px;
	height: 30px;
	padding: 5px 5px 5px 35px;
	background: url("/library/img/icons/instagram-likes@2x.png");
	background-position: left center;
	background-repeat: no-repeat;
	background-size: 24px;
}

.instagram-likes{
	background-image: url("/library/img/icons/instagram-likes@2x.png");
	
}

.instagram-comments {
	background-image: url("/library/img/icons/instagram-comments@2x.png");

}
/* Lightbox */

.lightbox {

}

.lightbox-text {
	margin: 40px auto;
	max-width: 920px;
	text-align: center;
}

.lightbox-title {
	font-size: 5rem;
}

.lightbox-subtitle {
	font-size: 20px;
	font-family: "Avenir-Light", "Avenir", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 200;
}

.image-container {
	width: 100vw;
	margin-top: 0px;
}

.image-container ul {
	margin: 0 auto;
	padding: 0;
	text-align: center;
	max-width: calc(100vh*(3/2));
	font-size: 0;
	
	/*width: 960px;
	max-width: inherit;*/
}

.image-container ul li {
	list-style: none;
	margin: 5px auto;
	padding: 0;
	max-height: calc(100vh - 15px);
	max-width: calc((100vh) * (4/3) + 0.5px);
	display: inline-block;
	position: relative;
	
	/*max-width: 950px;
	max-height: 710px;*/
}

.image-container ul li img {
	max-width: calc(100% - 10px);
	max-height:calc(100vh - 16px);
	margin: 0px 5px;
	padding: 0;
	display: block;
	
	/*max-height: 697px;*/
}


/*Hochformat und Breitbild Höher als 4:3 -> Bilder randlos anzeigen */
@media screen and (max-aspect-ratio: 4/3){
	.image-container ul li {
		max-height: calc(100vw*(3/4) - 20px);
		max-width: calc(100vw);
	}
	
	.image-container ul li img {
		max-height:calc((100vw - 30px)*(3/4));
		max-width: calc(100vw - 20px);
	}
}

/* Hochformat Bilder im Portrait Modus vollfüllend */
@media only screen and (orientation:portrait) and (max-aspect-ratio: 3/4){
	.image-container ul li {
		max-height: calc(100vw*(3/2) - 10px);
		max-width: calc(100vw);
	}
	
	.image-container ul li img {
		max-height:calc((100vw)*(3/2) - 10px);
		max-width: calc(100vw - 20px);
	}
}

.jarallax-video-mute,
.jarallax-video-unmute {
	width: 40px;
	height: 40px;
	display: block;
	background-color: transparent;
	border: 0;
	-webkit-appearance: none;
	background-image: url("/library/img/icons/unmute.png");
	background-position: left center;
	background-size: 40px;
	background-repeat: no-repeat;
	position: absolute;
	bottom: 20px;
	right: 20px;
}

.jarallax-video-mute {
	background-image: url("/library/img/icons/mute.png");
	
}

/* Über mich */

.about {

}

/*
.about .image-cover {
	height: 600px;
}

.about .image-cover div {
	height: 600px !important;
}
*
@media screen and (max-width:960px) {
	.about {
		margin-top: -20px;
	}
	/*
	.about .image-cover {
		height: calc(100vw * 9/16);
	}
	
	.about .image-cover div {
		height: calc(100vw * 9/16) !important;
	}*
}*/

.about-avatar {
	width: 320px;
	height: 320px;
	margin: 80px auto;
	background: #d8d8d8;
	border-radius: 160px;
	background-image: url('/library/img/assets/avatar@2x.png');
	background-size: cover;
	background-repeat: no-repeat;
}

@media screen and (max-width:640px) {
	.about-avatar {
		width: 160px;
		height: 160px;
		margin: 40px auto;
	}
}

.about p {
	text-align: justify;
}

.landingpage p {
	text-align: justify;
}

/* Projekte */

.projects {

}

.projects p {
	text-align: justify;
}

.project {
	text-align: center;
	width: 920px;
	margin: 0px auto 80px;
	overflow: auto;
}

@media screen and (max-width:960px) {
	.project {
		width: calc(100vw - 40px);
	}
}

.project a {
	display: block;
}

a:hover .project-header{
	color: #fff;
}

.project-header {
	color: #f1f1f1;
	background-size: 5rem 5rem;
	background-position: left center;
	background-repeat: no-repeat;
	padding: 1rem 0 1rem 6rem;
	margin: 0 auto 40px;
	text-align: left;
	display: inline-block;
	vertical-align: middle;
	height: 3rem;
}

.project-header.no-image{
	padding-left: 0;	
}

.project-header.left{
	width: calc(100% - 12rem);	
}

.project-header.left.no-image{
	width: 100%;	
	height: inherit;
}

.project-header h3 {
	font-family: "Avenir-Black", "Avenir", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 800;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	line-height: 1.2em;
	text-transform: uppercase;
	margin: 0;
	display: inline-block;
}

.project-header h4 {
	font-family: "Avenir-Light", "Avenir", Helvetica, Arial, Verdana, sans-serif;
	font-size: 1rem;
	font-weight: 200;
	line-height: 1.2em;
	letter-spacing: 0.1em;
	margin: 0;
	display: inline-block;
}

.project img {
	background: #d8d8d8;
	min-height: 20px;
	display: block;
	float: left;
	margin-right: 20px;	
}

.project img:nth-last-child(2),
.project img:nth-last-child(2) ~ img {
	width: calc((100% - 20px) / 2);
}

.project img:nth-last-child(n+3),
.project img:nth-last-child(n+3) ~ img {
	width: calc((100% - 40.1px) / 3);
}

.project img:nth-child(3n+4),
.project img:last-child {
	margin-right: 0;
}

.project img:nth-child(n+5) {
	margin-top: 20px;
}

.partners {
	text-align: center;
}


.partners .project-header {
	margin: 20px 40px;
}

/* Kontakt */
.contact {
	text-align: center;
}

.contact-action {
	text-align: center;
}
/*
.contact .image-cover {
	height: 400px;
}
@media screen and (max-width:960px) {
	.contact .image-cover {
		
		height: calc(100vw * 9/16);
	}
}*/

.pricing {
	text-align: center;
}

.pricing .project-header {
	padding: 0;
	margin: 10px;
}

.pricing :first-child .project-header {
	text-align: right;
}
.pricing :first-child:last-child .project-header {
	text-align: center;
}
.pricing :first-child:last-child .project-header h4 {
	letter-spacing: 0;
}

@media screen and (max-width:640px){
	.pricing .project-header,
	.pricing :first-child .project-header {
		text-align: center;
	}
}

/* Buch */

.book-gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 20px;
	max-width: 920px;
	margin: 0 auto;	
}

@media screen and (max-width:640px){
	.book-gallery {
		grid-template-columns: 1fr;
	}
}

.book-gallery img {
	display: block;
	max-width: 100%;
}

.book-properties {
	border: 1px solid #FAFAFA;
	max-width: 600px;
	margin: 20px auto;
	padding: 20px;
}

.book-properties h3 {
	margin: 0;
	font-family: "Avenir-Black", "Avenir", "Helvetiva Neue", Helvetica, Arial, Verdana, sans-serif;
	font-weight: 800;
	text-align: left;
	font-size: 2rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.book-properties ul {
	margin: 0;
	font-size: 20px;
	padding: 0 20px;
}

.book-properties ul li {
	line-height: 1.5;
}
.legal-notes {
	font-size: 16px;
}


.book-faq h3 {
	font-size: 24px;
	text-align: center;
	text-transform: uppercase;
}

a.shop-button {
	-webkit-appearance: none;
	border: 1px solid #fafafa;
	padding: 10px 20px;
	margin: 10px auto;
	font-size: 24px;
	font-weight: 900;
	text-transform: uppercase;
	color: white;
	text-decoration: none;
	display: block;
	width: min-content;
}

a.shop-button:hover {
	background: #fafafa;
	color: #333;
}


.shop {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 40px;
	max-width: 920px;
	margin: 40px auto;	
}

@media screen and (max-width:640px){
	.shop {
		grid-template-columns: 1fr;
	}
}

.product {
	display: flex;
	flex-direction: column;
	background: #eee;
	color: #333;
}

.product .product-image {
	display: block;
	width: 100%;
	height: 300px;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.product p {
	width: inherit;
	font-size: inherit;
	margin: 0;
}

h3.product-title {
	display: block;
	text-align: center;
	margin: 0;
	font-size: 32px;
	padding: 20px 20px 5px 20px;
	background: #555;
	color: #fafafa;
	flex-grow: 0;
}

h4.product-subtitle {
	display: block;
	text-align: center;
	font-size: 24px;
	font-weight: 200;
	margin: 0;
	padding: 5px 20px 20px 20px;
	background: #555;
	color: #fafafa;
	flex-grow: 0;
}

.product-description {
	font-size: 16px;
	padding: 10px 20px;
	flex-grow: 1;
}

.product-description ul,
.product-shipping ul {
	padding: 10px 20px;
	margin: 0;
}

.product-description ul li,
.product-shipping ul li {
	list-style-type: square;
	margin: 0;
}

.product-price {
	border: 1px solid #1f1f1f;
	margin: 20px;
	padding: 10px 20px;
	width: auto;
	flex-grow: 0;
}

.product-price p {
	font-weight: 900;
	margin: 0;
}

.product-price p.notice {
	font-size: 12px;
	font-weight: 200;
}

.product-shipping {
	font-size: 14px;
	padding: 10px 20px;
	flex-grow: 0;
}

.product-action a {
	background: #295FCC;
	height: 60px;
	text-align: center;
	line-height: 60px;
	color: #fafafa;
	display: block;
	margin: 0 -1px -1px -1px;
	border-top: 1px solid #fafafa;
	flex-grow: 0;
}

/* AGB / Impressum */

.agb,
.impressum {
	text-align: left;
	width: 920px;
	margin: 0 auto;
}

.agb p,
.impressum p {
	text-align: left;
}

@media screen and (max-width:960px){
	.agb,
	.impressum {
		width: calc(100vw - 40px);
		margin: 0 auto;
	}
}

/* Welcome */

.welcome {
	
}

.welcome h2 {
	font-size: 3rem;
}

.welcome-guests {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-gap: 20px;
}

@media screen and (max-width:960px){
	.welcome-guests {
		grid-template-columns: 1fr 1fr;
	}
}

@media screen and (max-width:640px){
	.welcome-guests {
		grid-template-columns: 1fr;
	}
}

.welcome-guest {
	
}

.welcome-guest h3 {
	text-transform: uppercase;
	font-size: 32px;
	text-align: center;
	margin: 10px 0;
}

.welcome-guest img {
	width: 100%;
}