
/* Structural, functional and helper styling rules. */

html {
	height: 100%;
}

body {
	height: 100%;
	/* font-family: verdana, serif; */
	font-size: 16px;
	color: #555555;
}

/**
 * Aktivoidaan tyhjän tilan täyttö.
 *
 * Vaatii 2- tai 3-tasoisen rakenteen.
 * HUOM. parentissa täytyy siis jo olla height: 100%
 */
.table-fill-grid,
.table-fill-rows,
.table-fill-cols {
	display: table;
	/*
	height: 100%;
	width: 100%;
	*/
	margin: 0;
}

.table-fill-grid > *,
.table-fill-rows > * {
	display: table-row;
}

.table-fill-grid > * > *,
.table-fill-cols > * {
	display: table-cell;
	vertical-align: top;
	height: 100%;
}

/* Merkataan mikä rivi täyttää ylimääräisen tilan */
.table-fill-grid > .table-row-max,
.table-fill-rows > .table-row-max {
	height: 100%;
}

/* Misc */

.absolute-fill-h {
	position: relative;
	height: 100%;
}

.absolute-fill-w {
	position: relative;
	width: 100%;
}

.absolute-fill {
	position: relative;
	width: 100%;
	height: 100%;
}

.absolute-fill-full {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

.absolute-fill-scroll-y {
	overflow-y: auto;
}

.locate-button {
	display: none;
}

.fullscreen-button {
	display: none;
}

.capitalize {
	text-transform: capitalize;
}

.clickable {
	cursor: pointer;
}

.valign-parent {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.valign {
  position: relative;
  top: 50%;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}

@media (min-width: 768px) {

	.valign-sm-up {
		position: relative;
		top: 50%;
		-webkit-transform: translateY(-50%);
		-ms-transform: translateY(-50%);
		transform: translateY(-50%);
	}

}

/* app content */

#content > * {
	position: absolute;
	width: 100%;
}

/* mobile view mapViewState */

@media (max-width: 767px) {
	/* nollataan table-fill mobiilissa */
	#content {
		display: block;
		position: relative;
	}

	#content > * {
		display: block;
	}
}

/* body.map-view-state-map #content ... */

body.map-view-state-list #content #list {
	z-index: 3;
}


/* areas */

#list {
	z-index: 1;
	height: 40%;
	bottom: 0;
	/* border-radius: 30px 30px 0 0; */
	overflow-y: auto;
}

#map {
	width: 100%;
	height: 60%;
}

#the-item {
	z-index: 2;
	height: 100%;
	bottom: 0;
	/* border-radius: 30px 30px 0 0; */
}

@media (min-width: 768px) {

	#list-control,
	#list {
		width: 375px;
	}

	#list {
		height: auto;
		top: 30px;
		bottom: 30px;
		left: 30px;
		border-radius: 30px;
	}

	#list-inner {
		border-radius: 0 0 30px 30px;
	}

	#map {
		width: 100%;
		height: 100%;
	}

	#the-item {
		width: 375px;
		height: auto;
		top: 30px;
		bottom: 30px;
		left: 30px;
		border-radius: 30px;
	}
}

@media (min-width: 992px) {

	#list-control,
	#list {
		width: 560px;
	}
	
	#the-item {
		width: 560px;
	}
}


.navicon {
	font-size: 21px;
	cursor: pointer;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 70px;
	line-height: 70px;

	background-color: #00aaff;
	vertical-align: middle;
	text-align: center;
}

@media (min-width: 360px) {

	.navicon {
		font-size: 30px;
		width: 90px;
		line-height: 90px;
	}
}


/* 404 */

#e404 {
	padding: 15px;
}

@media (min-width: 992px) {
	#e404 {
		padding-left: 15%;
	}
}

