@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@200..800&display=swap');

*,
:after,
:before {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	width:100%;
	scroll-behavior: smooth;
}


body {
	display:block;
	padding:0;
	margin:0;
	font-family: "Plus Jakarta Sans", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-size:20px;
	line-height: 1.38;
	font-weight: 260;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
	tap-highlight-color: transparent;
}

h1 {
	display:flex;
	font-weight: 200;
	text-transform: uppercase;
	line-height: 1;
	margin:0;
	padding:0;
}
h2 {
	display:flex;
	font-weight: 200;
	line-height: 1;
	margin:0;
	padding:0;
	margin-bottom:30px;
}



.content {
	margin-left:auto;
	margin-right:auto;
	width:80%;
	max-width: 1300px;
	padding:0 10px;
}



.menu {
	height: 120px;
	background: white;
	display:flex;
	flex-direction: row;
	align-items: center;
	border-bottom:1px solid #bbb;
	& .content {
		display:flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
	& .logo {
		aspect-ratio: 70/13;
		display:flex;
		height: 70px;
		background-image: url('wirtualnyskansen.png');
		background-size: contain;
		background-repeat: no-repeat;
	}
	& .buttons {
		display:flex;
		flex-direction: row;
		font-weight:500;
		align-items:center;
		text-align:center;
		& a {
			text-decoration: none;
			color:inherit;
			padding:20px 30px;
			display:block;
		}
	}
}

.mobilemenu {
	z-index:10;
	transition:.2s;
	pointer-events: none;
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:100%;
	opacity:0;
	&.on {
		pointer-events: auto;
		opacity: 1;
		& .whitebox {
			top:0;
			left:0;
		}
	}
	& .overlay {
		position: absolute;
		left:0;
		top:0;
		width:100%;
		height:100%;
		background:rgba(0,0,0,0.5);
	}
	.whitebox {
		display:flex;
		flex-direction: column;
		transition:.4s;
		position:absolute;
		left:0;
		top:-120px;
		width:100%;
		background:white;
		padding-top:120px;
		box-shadow:0 6px 8px rgba(0,0,0,0.2);
		& a {
			width:100%;
			padding:20px;
			border-top:1px solid #eee;
			color:inherit;
			text-decoration: none;
		}
	}
}



#panorama {
	width:100%;
	aspect-ratio: 6/1;
	min-height: 300px;
}

#panorama:after {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	content: '';
	backdrop-filter: blur(3px) brightness(110%);
	mask: linear-gradient(to right,
		rgba(0, 0, 0, 1) 0%,
		rgba(0, 0, 0, 0) 30%,
		rgba(0, 0, 0, 0) 70%,
		rgba(0, 0, 0, 1) 100%
	);
	-webkit-mask: linear-gradient(to right,
		rgba(0, 0, 0, 1) 0%,
		rgba(0, 0, 0, 0) 30%,
		rgba(0, 0, 0, 0) 70%,
		rgba(0, 0, 0, 1) 100%
	);
}





.maintitle {
	padding:40px 0;
	& .content {
		display:flex;
		flex-direction: row;
		align-items: center;
	}
	& img {
		width:160px;
		margin-right: 40px;
	}
}

.demo {
	opacity: 0.24;
/*  pointer-events: none;*/
}



.objectpicker {
	user-select: none;
	width:100%;
	background-image:url('graybg.png');
	padding:40px 0;
	z-index:2;
	position:relative;
	& .content {
		display:flex;
		flex-direction: row;
		min-height:480px;
	}
	& .list {
		display:flex;
		flex-direction: column;
		width:45%;
		& .object {
			cursor: pointer;
			display:flex;
			flex-direction: row;
			margin-bottom:30px;
			align-items:center;
			& .info {
				display:flex;
				flex-direction: column;
				& .name {
					font-size:1.3em;
				}
			}
		}
		& .marker {
			width:30px;
			height:40px;
			background-image: url('marker.png');
			background-size: contain;
			background-repeat: no-repeat;
			margin-right: 15px;
			display:flex;
			flex-shrink: 0;
		}
	}
	& .mapholder {
		display:flex;
		justify-content: flex-end;
		position: relative;
		width:55%;
		& .map {
			position: relative;
			margin-top:-100px;
			height:calc(100% + 260px);
			width:100%;
			display:flex;
			flex-direction: column;
			justify-content: center;
		}
		& .base {
			aspect-ratio: 912/1272;
			position: absolute;
			left:0;
			width:100%;
		}
		& .geo {
			width:100%;
			position: absolute;
			aspect-ratio: 912/1272;
		}
		& img {
			max-width: 100%;
			max-height: 100%;
		}
		& .marker {
			width:0;
			height:0;
			position:absolute;
			cursor:pointer;
			&:before {
				content: '';
				width:30px;
				height:40px;
				position: relative;
				left:-15px;
				top:-40px;
				background-image: url('marker.png');
				background-size: contain;
				background-repeat: no-repeat;
				margin-right: 15px;
				display:flex;
				flex-shrink: 0;
			}
			&.on {
				& .details {
					transform:scale(1) rotate(0);
					opacity: 1;
				}
			}
		}
		& .details {
			cursor: pointer;
			transition: .2s;
			position: absolute;
			background-image: url('pomnik.jpg');
			background-size: cover;
			border-radius:300px;
			width:120px;
			height:120px;
			border:5px solid white;
			left:-60px;
			top:-60px;
			box-shadow:0 6px 8px #00000077;
			transform:scale(0) rotate(20deg);
			z-index:4;
			&:after {
				content: '';
				position: absolute;
				left:25%;
				top:25%;
				width:50%;
				height: 50%;
				background-image: url('loupe.png');
				background-size:contain;
			}
		}
	}
}

.notice {
	width:100%;
	background:white;
	min-height:500px;
	padding:120px 0;
	justify-content: center;
	align-items: center;
	display:flex;
	& .text {
		padding:10px;
		max-width:700px;
		text-align: left;
	}
	& span {
		font-size:1.5em;
		margin-bottom: 20px;
		width:100%;
		display:block;
	}
	& b {
		font-weight: 600;
	}
}



.footer {
	background-image: url('bg-light.svg');
	width:100%;
	min-height: 400px;
	padding:40px 0;
	background-position: fixed;
	background-position: bottom center;
	background-size: 70%;
	display:flex;
	flex-direction:column;
	justify-content:center;
	box-shadow:inset 0 10px 20px #00000014;
	& .content {
		display:flex;
		flex-direction:row;
		justify-content: space-between;
	}
	& .box {
		display:flex;
		flex-direction: column;
		flex-shrink: 1;

		margin-right:10px;
		&:last-child {
			margin-right: 0;
		}
	}
	& a {
		color: inherit;
		text-decoration: none;
		line-height: 1.7;
	}
	& b {
		margin-bottom:30px;
	}
}

.end {
	height:40px;
	width:100%;
	background:black;
	text-align: right;
	display:flex;
	justify-content: flex-end;
	align-items: center;
	padding:0 30px;
	color:#777;
	font-size:12px;
	pointer-events: none;
	user-select: none;
}


.openmenu {
	display:none;
	position: fixed;
	width: 60px;
	height: 60px;
	top: 28px;
	right: 20px;
	transition-duration: 0.5s;
	transform: scale(0.5);
	z-index:20;
	&:before {
		content: '';
		position: absolute;
		left:-20px;
		top:-15px;
		width:100px;
		height:100px;
		background:white;
	}
	& .icon {
		transition-duration: 0.5s;
		position: absolute;
		height: 8px;
		width: 60px;
		top: 30px;
		background-color: black;
	}
	& .icon:before {
		transition-duration: 0.5s;
		position: absolute;
		width: 60px;
		height: 8px;
		background-color: black;
		content: "";
		top: -20px;
	}
	& .icon:after {
		transition-duration: 0.5s;
		position: absolute;
		width: 60px;
		height: 8px;
		background-color: black;
		content: "";
		top: 20px;
	}
	&.open .icon {
		transition-duration: 0.5s;
		transform: rotateZ(180deg);
	}
	&.open .icon:before {
		transform: rotateZ(45deg) scaleX(0.75) translate(20px, -6px);
	}
	&.open .icon:after {
		transform: rotateZ(-45deg) scaleX(0.75) translate(20px, 6px);
	}
	&:hover {
		cursor: pointer;
	}

}





.anim {
	width:100%;
	height:550px;
	& .content {
		height:100%;
		width:100%;
		padding:0;
		position: relative;
	}
	& video {
		width:100%;
		height: 100%;
		object-fit: cover;
	}
}

.headline {
	& .content {
		padding:30px 10px;
		display:flex;
		flex-direction: column;
	}
	& p {
		margin:0 ;
	}
}
.photos {
	padding:30px 0 0 0;
	&.black {
		background-color: black;
		color:#eee;
	}
	&.gray {
		background-image:url('graybg.png');
	}
	& h2 {
		width:100%;
	}
	& .content {
		display:flex;
		flex-direction: row;
		justify-content: space-between;
		flex-wrap: wrap;
	}
	& .pic {
		width:22%;
		display:flex;
		flex-direction: column;
		margin-bottom:30px;
		& a {
			width:100%;
			color:inherit;
			text-decoration: none;
			line-height: 1;
		}
		& img {
			width:100%;
		}
		& span {
			font-size:14px;
			font-weight: 450;
			padding:3px 0;
		}
	}
}
.model3d {
	& iframe {
		width: 100%;
		border: none;
		height:80vh;
	}
}

.osm {
	margin:0;
	padding:0;
	& iframe {
		width: 100%;
		border: none;
		margin:0;
		padding:0;
		height:40vh;
		display:block;
	}
}


.article {
	padding:30px 0;
	font-size:17px;
}








@media only screen and (max-width: 700px) {
	.content {
		width:100%;
		padding:20px;
	}
	.headline {
		& .content {
			padding:30px 20px;
		}
	}
	.menu {
		& .buttons {display: none;}
	}
	.objectpicker {
		padding:20px 0;
		& .content {
			flex-direction: column;
			align-items:center;
			& .list {
				width: 90%;
			}
		}
		& .mapholder {
			aspect-ratio: 912/1272;
			width:100%;
			& .map {
				margin-top:0;
				height:auto;
			}
		}
	}
	.maintitle {
		& .content {
			display:flex;
			flex-direction: column;
			align-items: center;
			text-align: center;
		}
		& img {
			width:80px;
			margin:0 0 20px 0;
		}
		& h1 {
			font-size: 30px;
		}

	}
	.notice {
		padding: 60px 0;
		& .text {
			padding:30px;
		}
	}
	.footer {
		background-size: 150%;
		& .content {
			flex-direction: column;
		}
		& .box {
			margin-bottom:30px;
			margin-left: 30px;
			padding-left: 30px;
			border-left:1px solid black;
		}
		& b {
			margin-bottom:0;
		}
	}
	.openmenu {
		display:block;
	}
	.model3d {
		& iframe {
			aspect-ratio: 10/14;
		}
	}
	.photos {
		& .pic {
			width:100%;
		}
	}

}