/* blocks and containers */
section {
	position: relative;
	margin-bottom: 60px;
}
section.small-margin {
	margin-bottom: 20px;
}
section.large-margin {
	margin-bottom: 120px;
}
section.no-margin {
	margin-bottom: -1px;
}
section.centered {
	text-align: center;
}
.container {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}
.container.full-width {
	max-width: none;
}
.container.limited-width {
	max-width: 720px;
}
.container.no-padding {
	padding-left: 0;
	padding-right: 0;
}
@media all and (max-width: 800px) {
	section {
		margin-bottom: 40px;
	}
	section.small-margin {
		margin-bottom: 20px;
	}
	section.large-margin {
		margin-bottom: 60px;
	}
	.container {
		padding: 0 20px;
	}
}

/* google map block */
.google-map-container {
	position: relative;
	padding-top: 56.25%;
}
.google-map-container .google-map {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
}

/* html video block */
.html-video {
	position: relative;
	padding-top: 56.25%; /* 16:9 */
	/*padding-top: 42.58%;*/ /* 2.35:1 */
	background-color: #000;
}
.html-video video {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
}

/* background html video */
.background-html-video {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
	background-color: #000;
}
.background-html-video video {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 50%;
	left: 50%;
}
/* no object-fit support */
@media(min-aspect-ratio: 16/9) {
	.background-html-video > video {
		height: 300%;
		top: -100%;
	}
}
@media(max-aspect-ratio: 16/9) {
	.background-html-video > video {
		width: 300%;
		left: -100%;
	}
}
/* 2. object-fit support */
@supports(object-fit: cover) {
	.background-html-video > video {
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		object-fit: cover;
	}
}

/* background vimeo video */
.background-vimeo-video {
	width: 100%;
	height: 56.25vw;
	overflow: hidden;
	background-color: #000;
}

/* block with full background image */
.background-cover {
	background-repeat: no-repeat;
	background-position: center;

	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
}

/* fixed background */
.fixed-background {
	background-attachment: fixed;
}

/* height at least 100vh */
.full-height {
	position: relative;
}
.full-height .container {
	min-height: 100vh;
}

/* maintain aspect ratio */
.aspect-ratio {
	position: relative;
}
.aspect-ratio:before {
	display: block;
	content: "";
	width: 100%;
	padding-top: 100%; /* (height/width)*100 */
}
.aspect-ratio-4-3:before {
	padding-top: 75%;
}
.aspect-ratio-3-2:before {
	padding-top: 66.667%;
}
.aspect-ratio-2-1:before {
	padding-top: 50%;
}
.aspect-ratio-16-9:before {
	padding-top: 56.25%;
}
.aspect-ratio > div {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}
