*,
*::after,
*::before {
	-webkit-box-sizing:							border-box;
	box-sizing:									border-box;
}

.clearfix::before,
.clearfix::after {
	content:									'';
	display:									table;
}

.clearfix::after {
	clear:										both;
}

body {
	font-family:								'Avenir Next', Avenir, 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color:										#515158;
	background:									#f0f0f0;
	-webkit-font-smoothing:						antialiased;
	-moz-osx-font-smoothing:					grayscale;
}

a {
	text-decoration:							none;
	color:										#aaa;
	outline:									none;
}

a:hover,
button:hover {
	color:										white;
	outline:									none;
}

a:focus,
button:focus {
	outline:									none;
}

.hidden {
	position: absolute;
	overflow: hidden;
	width: 0;
	height: 0;
	pointer-events: none;
}

/* Icons */
.icon {
	display: block;
	width: 1em;
	height: 1em;
	margin: 0 auto;
	fill: currentColor;
}

.house-container {
	position: relative;
	width: 100vw;
	height: 100vh;
}

/* Header */

.main {
	position: fixed;
	top: 0;
	left: 0;
	overflow: hidden;
	/*width: calc(100vw - 300px);*/
	width:										100vw;
	height: 100vh;
}

.house {
	position: relative;
	width: 100%;
	height: 100%;
	pointer-events: none;
	-webkit-perspective: 3500px;
	perspective: 3500px;
	-webkit-perspective-origin: 0% 50%;
	perspective-origin: 0% 50%;
	-webkit-transition: -webkit-transform 0.8s;
	transition: transform 0.8s;
	-webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
	transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.house.house--content-open {
	-webkit-transform:							translate3d(0,-25%,0) scale3d(0.8,0.8,1);
	transform:									translate3d(0,-25%,0) scale3d(0.8,0.8,1);
}

.surroundings,
.levels {
	position: absolute;
	top: 50%;
	left: 50%;
}

.surroundings {
	width: 192vmin;
	/* double of mall map */
	height: 128vmin;
	margin: -64vmin 0 0 -96vmin;
	pointer-events: none;
	-webkit-transition: opacity 0.8s;
	transition: opacity 0.8s;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.surroundings__map {
	opacity: 0.3;
	max-width: 100%;
	display: block;
}

.surroundings--hidden {
	opacity: 0;
}

.levels {
	width: 96vmin;
	height: 64vmin;
	/*margin:										-32vmin 0 0 -48vmin;*/
	margin:										-32vmin 0 0 -48vmin;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

/* Defines the rotation and vertical positioning of the individual layers */
.surroundings,
.levels {
	-webkit-transform:							rotateX(70deg) rotateZ(-45deg) translateZ(-20vmin);
	transform:									rotateX(70deg) rotateZ(-45deg) translateZ(-20vmin);
}

.level {
	position: relative;
	width: 100%;
	height: 100%;
	cursor: pointer;
	pointer-events: auto;
	-webkit-transition: opacity 1s, -webkit-transform 1s;
	transition: opacity 1s, transform 1s;
	-webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
	transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.level::after {
	font-size: 2.5vmin;
	line-height: 0;
	position: absolute;
	z-index: 100;
	top: -2em;
    left: 3.5em;
	white-space: nowrap;
	color:										#ddd;
	-webkit-transform: rotateZ(45deg) rotateX(-70deg) translateZ(5vmin);
	transform: rotateZ(45deg) rotateX(-70deg) translateZ(5vmin);
	-webkit-transition: -webkit-transform 1s, color 0.3s;
	transition: transform 1s, color 0.3s;
	-webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
	transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}

.level:hover::after,
.level--current::after {
	color:										white;
}

.level--current::after {
	-webkit-transform:							rotateZ(-20deg) rotateZ(45deg) rotateX(-70deg) translateZ(5vmin) translateX(5vmin) translateY(-10vmin);
	transform:									rotateZ(-20deg) rotateZ(45deg) rotateX(-70deg) translateZ(5vmin) translateX(5vmin) translateY(-10vmin);
}

.level--1::after {
	content: 'UG';
}

.level--2::after {
	content: 'EG';
}

.level--3::after {
	content: '1.OG';
}

.level--4::after {
	content: '2.OG';
}

.level:not(:first-child) {
	position: absolute;
	top: 0;
	left: 0;
}

.level--2 {
	-webkit-transform: translateZ(10vmin);
	transform: translateZ(10vmin);
}

.level--3 {
	-webkit-transform: translateZ(20vmin);
	transform: translateZ(20vmin);
}

.level--4 {
	-webkit-transform: translateZ(30vmin);
	transform: translateZ(30vmin);
}


/* Selection transitions */

.levels--selected-1 .level:not(.level--1),
.levels--selected-2 .level:not(.level--2),
.levels--selected-3 .level:not(.level--3),
.levels--selected-4 .level:not(.level--4) {
	opacity: 0;
	/* fade out all others */
}

/* Other levels */

.level--current ~ .level {
	-webkit-transform: translateZ(90vmin);
	transform: translateZ(90vmin);
}

.levels--selected-2 .level--1,
.levels--selected-3 .level--1,
.levels--selected-4 .level--1,
.levels--selected-3 .level--2,
.levels--selected-4 .level--2,
.levels--selected-4 .level--3 {
	-webkit-transform: translateZ(-60vmin);
	transform: translateZ(-60vmin);
}

/* Delays */
/* 1 */

.levels--selected-1 .level--3,
.levels--selected-2 .level--3,
.levels--selected-3 .level--2,
.levels--selected-4 .level--2 {
	-webkit-transition-delay: 0.1s;
	transition-delay: 0.1s;
}

.levels--selected-1 .level--2,
.levels--selected-2 .level--current,
.levels--selected-2 .level--current::after,
.levels--selected-3 .level--current,
.levels--selected-3 .level--current::after,
.levels--selected-4 .level--3 {
	-webkit-transition-delay: 0.25s;
	transition-delay: 0.25s;
}

.levels--selected-1 .level--current,
.levels--selected-1 .level--current::after,
.levels--selected-4 .level--current,
.levels--selected-4 .level--current::after {
	-webkit-transition-delay: 0.45s;
	transition-delay: 0.45s;
}

/* Current level */

/* The currently open layer - defines the rotation and vertical position of the layer */
.level.level--current {
	-webkit-transform:							translateZ(5vmin) rotate3d(0, 0, 1, 20deg);
	transform:									translateZ(5vmin) rotate3d(0, 0, 1, 20deg);
}

/* Navigation classes */
.levels--open .level,
.levels--open .level::after {
	-webkit-transition: -webkit-transform 1s, opacity 1s;
	transition: transform 1s, opacity 1s;
	-webkit-transition-delay: 0s;
	transition-delay: 0s;
}

.levels--open .level.level--current {
	opacity: 1;
}

.levels--open .level.level--moveOutUp,
.levels--open .level.level--moveOutDown {
	opacity: 0;
}

.levels--open .level.level--moveOutUp {
	-webkit-transform: translateZ(90vmin);
	transform: translateZ(90vmin);
}

.levels--open .level.level--moveOutDown {
	-webkit-transform: translateZ(-60vmin);
	transform: translateZ(-60vmin);
}


/* Level nav */
.housenav {
	position: absolute;
	top: 160px;
	right: 0;
	text-align: center;
	-webkit-transition: opacity 0.8s;
	transition: opacity 0.8s;
}

.housenav--hidden {
	pointer-events: none;
	opacity: 0;
}

/* Box button */
.boxbutton {
	font-size:									2em;
	display:									block;
	width:										2em;
	height:										2em;
	margin:										0;
	padding:									0;
	color:										#ddd;
	border:										0;
	/*background:									rgba(33,66,99,0.6);*/
	background:									rgba(227,234,242,0.6);
}
.boxbutton--dark {
	background:									#9DB6D2;
}

.boxbutton--darker {
	background:									#456990;
}

.boxbutton--alt {
	background: #3d1975;
}

.boxbutton--disabled,
.boxbutton--disabled:focus,
.boxbutton--disabled:hover {
	cursor: default;
	pointer-events: none;
	opacity: 0.2;
}

/* Level map */

.map__ground {
	fill: #d7d7dc;
}

.map__outline {
	-webkit-transition: fill 0.3s;
	transition: fill 0.3s;
	fill: #bbb;
}

.level:hover .map__outline,
.level--current .map__outline {
	fill: #a6a3a8;
}

.map__tree {
	fill: #7bad7f;
}

.map__lake {
	fill: #a2bbdd;
}

.map__space {
	-webkit-transition: fill-opacity 0.8s;
	transition: fill-opacity 0.8s;
	fill: #bdbdbd;
	fill-opacity: 0.6;
}

.level--current .map__space {
	fill-opacity: 1;
}

 .map__space--selected {
 	fill: #A4A4A4;
 }

/* Content */
.content {
	position:									absolute;
	top:										100%;
	width:										100%;
	height:										40vh;
}
@media only screen (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
	.content {
		height:									40vh;
	}
}
@media only screen (min-width: @screen-md-min) and (max-width: @screen-md-max) {
	.content {
		height:									40vh;
	}
}
@media only screen (min-width: @screen-lg-min) {
	.content {
		height:									32vh;
	}
}

.content__item {
	position:									absolute;
	top:										0;
	width:										100%;
	height:										100%;
	/*padding: 								2em;*/
	text-align:									center;
	background:									#373F51;
	color:										#D8DBE2;
	-webkit-transition:							-webkit-transform 0.8s;
	transition:									transform 0.8s;
	-webkit-transition-timing-function:			cubic-bezier(0.2, 1, 0.3, 1);
	transition-timing-function:					cubic-bezier(0.2, 1, 0.3, 1);
}

.content--open .content__item {
	-webkit-transition: none;
	transition: none;
}

.content__item--current {
	-webkit-transform: translate3d(0,-100%,0);
	transform: translate3d(0,-100%,0);
}

.content__item-title {
	/*font-size: 1.85em;*/
	margin: 0;
	padding: 0 0 0.75em 0;
	pointer-events: none;
	font-weight: normal;
	opacity: 0;
	-webkit-transform:							translate3d(0,-3em,0) translate3d(0,-100%,0);
	transform:									translate3d(0,-3em,0) translate3d(0,-100%,0);
	text-transform:								uppercase;
	color:										white;
}
/*
.content__item[data-category='1'] .content__item-title {
	color: #7cbf7f;
}

.content__item[data-category='2'] .content__item-title {
	color: #6584c7;
}

.content__item[data-category='3'] .content__item-title {
	color: #dc4b7c;
}

.content__item[data-category='4'] .content__item-title {
	color: #8d65e0;
}
*/
.content__item--hover .content__item-title {
	opacity: 1;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
}

.content__item--current .content__item-title {
	opacity: 1;
	-webkit-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
}

.content__item-details {
	opacity: 0;
	margin: 0 auto;
	/*max-width:								90vmax;*/
	height:										100%;
	font-size:									1.1em;
}
.content__item-details h3 {
	font-size:									1.6em;
	margin-top:									25px;
}
.content__item-details p {
	padding-right:								40px;
}
.content__item-details ul {
	-webkit-padding-start:						1em;
}

.content__item--current .content__item-details {
	opacity: 1;
}

.content__meta {
	margin: 0;
	font-size: 0.85em;
	line-height: 1.5;
}

.content__meta-item {
	display: inline-block;
	padding: 0 0.25em;
	color: ;
}

.content__meta .icon {
	display: inline-block;
	vertical-align: middle;
}

.content__desc {
	text-align: left;
	margin: 7vmin 0 0 0;
}

.content__button {
	position: absolute;
	top: -100%;
	right: 0;
	-webkit-transition: opacity 0.3s 0.7s;
	transition: opacity 0.3s 0.7s;
	margin:										7px;
}

.content__button--hidden {
	pointer-events: none;
	opacity: 0;
	-webkit-transition: none;
	transition: none;
}

/* Spaces and list (sidebar) */
.spaces-list {
	display:									none;
	position:									absolute;
	top:										0;
	right:										0;
	width:										300px;
	min-height:									100vh;
	padding:									0;
	/*background: #fefefe;*/
	border:										1px solid #555;
	background:									rgba(0,0,0,0.6);
	color:										white;
}

.search {
	position: fixed;
	z-index: 100;
	top: 0;
	right: 0;
	left: calc(100vw - 300px);
}

.search__input {
	width: 100%;
	padding: 1.315em 2em;
	color: #fff;
	border: 0;
	background: #515158;
	border-radius: 0;
}

.search__input:focus {
	outline: none;
}

.label {
	position: absolute;
	top: 4em;
	right: 0;
}

.label__text {
	font-size: 0.85em;
	line-height: 1;
	display: block;
	padding: 1em;
	color: #e4e4e4;
}

.label__checkbox {
	position: absolute;
	z-index: 10;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
	opacity: 0;
}

.label__checkbox:checked + .label__text {
	color: #515158;
}

.list {
	margin: 0 0 2em;
	padding: 0 1em 1em 2em;
	list-style: none;
}

.list__item {
	font-size: 1.05em;
	line-height: 1;
	position: relative;
	display: block;
}

.list__item:first-child {
	margin-top: 2em;
}

.grouped-by-category [data-category='1']:first-child,
.grouped-by-category :not([data-category='1']) + [data-category='1'],
.grouped-by-category [data-category='2']:first-child,
.grouped-by-category :not([data-category='2']) + [data-category='2'],
.grouped-by-category [data-category='3']:first-child,
.grouped-by-category :not([data-category='3']) + [data-category='3'],
.grouped-by-category [data-category='4']:first-child,
.grouped-by-category :not([data-category='4']) + [data-category='4'] {
	margin-top: 4em;
}

.grouped-by-category [data-category='1']:first-child::before,
.grouped-by-category :not([data-category='1']) + [data-category='1']::before,
.grouped-by-category [data-category='2']:first-child::before,
.grouped-by-category :not([data-category='2']) + [data-category='2']::before,
.grouped-by-category [data-category='3']:first-child::before,
.grouped-by-category :not([data-category='3']) + [data-category='3']::before,
.grouped-by-category [data-category='4']:first-child::before,
.grouped-by-category :not([data-category='4']) + [data-category='4']::before {
	font-size: 1.25em;
	position: absolute;
	top: -1.75em;
	left: 0;
	color: #c7c7c9;
}

.grouped-by-category [data-category='1']:first-child::before,
.grouped-by-category :not([data-category='1']) + [data-category='1']::before {
	content: 'UG';
	/*color: #7cbf7f;*/
}

.grouped-by-category [data-category='2']:first-child::before,
.grouped-by-category :not([data-category='2']) + [data-category='2']::before {
	content: 'EG';
	/*color: #6584c7;*/
}

.grouped-by-category [data-category='3']:first-child::before,
.grouped-by-category :not([data-category='3']) + [data-category='3']::before {
	content: '1.0G';
	/*color: #dc4b7c;*/
}

.grouped-by-category [data-category='4']:first-child::before,
.grouped-by-category :not([data-category='4']) + [data-category='4']::before {
	content: '2.0G';
	/*color:										#8d65e0;*/
}

.list__item::after {
	content:									'L' attr(data-level) ' / ' attr(data-space);
	font-size:									0.65em;
	line-height:								3;
	position:									absolute;
	top:										0;
	right:										0;
	padding:									0 0.5em;
	pointer-events:								none;
	color:										#888;
}

.list__link {
	font-size:									0.85em;
	display:									block;
	padding:									0.5em 0.5em 0.5em 0;
	color:										#ccc;
}

.list__item--active .list__link,
.list__link:hover {
	color:										white;
}

/* Pins */
.level__pins {
	position:									absolute;
	top:										0;
	left:										0;
	width:										100%;
	height:										100%;
	pointer-events:								none;
	-webkit-transform-style:					preserve-3d;
	transform-style:							preserve-3d;
}

.level__pins--active {
	pointer-events:								auto;
}

.pin {
	position:									absolute;
	width:										5.5vmin;
	height:										8.25vmin;
	margin:										-8.25vmin 0 0 -2.25vmin; /* let the bottom tip be the reference point for individual coordinates */
	-webkit-transform:							rotateZ(-20deg) rotateZ(45deg) rotateX(-70deg);
	transform:									rotateZ(-20deg) rotateZ(45deg) rotateX(-70deg);
	-webkit-transform-origin:					50% 100%;
	transform-origin:							50% 100%;
	-webkit-transform-style:					preserve-3d;
	transform-style:							preserve-3d;
}

.pin__icon {
	position:									relative;
	display:									block;
	width:										100%;
	height:										100%;
	opacity:									0;
	-webkit-transform:							translate3d(0,-100px,0);
	transform:									translate3d(0,-100px,0);
	-webkit-transition:							opacity 0.3s, -webkit-transform 0.3s;
	transition:									opacity 0.3s, transform 0.3s;
	-webkit-transition-timing-function:			cubic-bezier(0.2,1,0.3,1);
	transition-timing-function:					cubic-bezier(0.2,1,0.3,1);
}

.level__pins--active .pin__icon {
	opacity:									1;
	-webkit-transform:							translate3d(0,0,0);
	transform:									translate3d(0,0,0);
}

.pin:nth-child(2) .pin__icon {
	-webkit-transition-delay:					0.05s;
	transition-delay:							0.05s;
}
.pin:nth-child(3) .pin__icon {
	-webkit-transition-delay:					0.1s;
	transition-delay:							0.1s;
}
.pin:nth-child(4) .pin__icon {
	-webkit-transition-delay:					0.15s;
	transition-delay:							0.15s;
}
.pin:nth-child(5) .pin__icon {
	-webkit-transition-delay:					0.2s;
	transition-delay:							0.2s;
}
.pin:nth-child(6) .pin__icon {
	-webkit-transition-delay:					0.25s;
	transition-delay:							0.25s;
}
.pin:nth-child(7) .pin__icon {
	-webkit-transition-delay:					0.3s;
	transition-delay:							0.3s;
}
.pin:nth-child(8) .pin__icon {
	-webkit-transition-delay:					0.35s;
	transition-delay:							0.35s;
}
.pin:nth-child(9) .pin__icon {
	-webkit-transition-delay:					0.4s;
	transition-delay:							0.4s;
}

.pin .icon--pin {
	fill:										#6584c7;
}
/*
.pin[data-category='1'] .icon--pin {
	fill:										#7cbf7f;
}
.pin[data-category='2'] .icon--pin {
	fill:										#6584c7;
}
.pin[data-category='3'] .icon--pin {
	fill:										#dc4b7c;
}
.pin[data-category='4'] .icon--pin {
	fill:										#8d65e0;
}
*/
.pin--active .icon--pin {
	stroke:										#515158;
	stroke-width:								15px;
}

.icon--pin {
	width:										100%;
	height:										100%;
}

.icon--logo {
	position:									absolute;
	top:										11%;
	left:										25%;
	width:										50%;
	height:										50%;
	fill:										white;
	fill-opacity:								0.6;
	-webkit-transition:							fill-opacity 0.3s;
	transition:									fill-opacity 0.3s;
}

.pin--active .icon--logo,
.pin:hover .icon--logo {
	fill-opacity:								1;
}

/* Pins for floor 1 */
.pin--1-1 { top: 26vmin; left: 50vmin; }
.pin--1-2 { top: 20vmin; left: 10vmin; }
.pin--1-3 { top: 37vmin; left: 10vmin; }
.pin--1-4 { top: 60vmin; left: 10vmin; }
.pin--1-5 { top: 30vmin; left: 51vmin; }

/* Pins for floor 2 */
.pin--2-1 { top: 45vmin; left: 80vmin; }
.pin--2-2 { top: 11vmin; left: 77vmin; }
.pin--2-3 { top: 11vmin; left: 43vmin; }
.pin--2-4 { top: 31vmin; left: 43vmin; }

/* Pins for floor 3 */
.pin--3-1 { top: 12vmin; left: 77vmin; }
.pin--3-2 { top: 30vmin; left: 77vmin; }
.pin--3-3 { top: 9vmin; left: 45vmin; }
.pin--3-4 { top: 10vmin; left: 14vmin; }
.pin--3-5 { top: 33vmin; left: 14vmin; }
.pin--3-6 { top: 33vmin; left: 45vmin; }
.pin--3-7 { top: 55vmin; left: 77vmin; }

/* Pins for Apartment */
.pin--4-1 { top: 20vmin; left: 20vmin; }
.pin--4-2 { top: 45vmin; left: 55vmin; }
.pin--4-3 { top: 53vmin; left: 12vmin; }
.pin--4-4 { top: 20vmin; left: 55vmin; }
.pin--4-5 { top: 32vmin; left: 88vmin; }

/* Mobile compatability */
.open-search,
.close-search {
	display:									none;
}

@media screen and (max-width: 65.625em), screen and (max-height: 40.625em) {
	.main {
		width:									100vw;
	}
	.spaces-list,
	.search {
		width:									100vw;
		right:									100%;
		left:									auto;
	}
	.spaces-list--open,
	.spaces-list--open .search {
		right:									0;
	}
	.open-search,
	.close-search {
		position:								absolute;
		display:								block;
		top:									0;
		right:									0;
		z-index:								1000;
	}
	.housenav {
		top:									4em;
	}
	.house-container {
		overflow:								hidden;
	}
	.house-container--overflow {
		overflow:								auto;
	}
	.content__item {
		overflow:								auto;
	}
}
