/** Standard Elements **/

input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"] {
	max-width: 100%;
}

h1, h2, h3, h4, h5, h6 { margin-top: 10px; margin-bottom: 15px; }

h1 {font-size: 34px;}
h2 {font-size: 30px;}
h3 {font-size: 27px;}
h4 {font-size: 24px;}
h5 {font-size: 21px;}
h6 {font-size: 18px;}

table[rules="groups"] > tbody:after {
	content: "";
    display: block;
    height: 15px;
    width: 100%;
}

th {
	background: rgba(0,0,0,0.1);
    padding: 2px;
}

td { border-bottom: 1px solid grey; padding: 2pt; }

td:not(:last-child) { border-right: 1px solid grey; }

tr:last-child td { border-bottom: none; }

table.noBorder td { border: none; }

li {
	margin-bottom: 5px;
}

/** Header **/

#top-bar {
	padding: 10px 0px;
}

#site-logo {
    float: left;
	padding: 6.5px 0px;
}

#site-logo img {
	height: 45px;
	width: auto;
}

#masthead {
	background-attachment: initial !important;
	background-position: center !important;
	border-bottom: 10px solid lightgrey;
}

#masthead .layer {
	background: rgba(0,0,0,0.1);
}

#masthead, #masthead .layer {
	height: 500px;
	min-height: auto;
	box-sizing: content-box;
}

#masthead .site-branding {
	padding: 0px !important;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	padding: 0px 5px;
}

#masthead h1.site-title a, #masthead h2.site-description {
	text-shadow: 0px 0px 15px black;
}

#masthead h2.site-description {
	font-weight: 400;
}

@media screen and (max-width: 767px) {
	#top-bar {
		position: static;
		background: #f7f7f7;
    	box-shadow: 0px 2px 2px 1px rgba(0,0,0,0.3);
	}
	
	#masthead, #masthead .layer {
		height: 450px;
	}
}

@media screen and (max-width: 600px) {

	#masthead {
		padding-top: 55px;
	}
	
	#masthead, #masthead .layer {
		height: 400px;
	}
	
	#masthead .site-branding {
		left: 0px;
		right: 0px;
		transform: translateY(-50%);
	}

	#top-bar {
		position: absolute;
		left: 0;
		right: 0;
		max-height: 100vh;
		padding: 5px 0;
	}
	
	#site-logo {
		float: left;
		padding: 0;
	}
}

/** Navigation **/

#site-navigation {
    float: right;
}

.mobile-toggle {
	float: right;
	width: 45px;
	text-align: center;
	font-size: 30px;
	/* box-shadow: inset 0px 0px 0px 2px #952018; */
	padding: 0;
	display: none;
	color: #952018;
	transition: all 0.3s ease-in-out;
}

li.menu-item { margin-bottom: 0px; }

@media screen and (max-width: 600px) {
	#site-navigation {
		max-height: 100%;
		display: none;
		overflow: auto;
	}

	.main-navigation ul {
		display: block;
	}

	.mobile-toggle {
		display: block;
	}
}

/** Layout Elements **/

.container {
	max-width: 1170px;
}

#content {
    margin-top: 20px;
}

.page #primary-mono h1.entry-title {
	font-weight: normal;
	font-size: 37px;
}

.page #primary-mono h1.entry-title:after {
	background: none;
	content: none;
}

.page #primary-mono h1.entry-title span {
	background: transparent;
}

div.info-box {
	display: block;
	background: #ebebeb;
}

div.info-box .info-box-title {
	display: block;
	padding: 10px;
	background: #c1291f;
	color: white;
	margin: 0px;
}

div.info-box div.info-box-content {
	padding: 10px;
	color: black;
}

div.product-grid {
	display: block;
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	flex-wrap: wrap;
	margin-right: -20px;
}

div.product-grid div.product-item {
    display: inline-block;
    margin: 0px 20px 30px 0px;
    background: white;
    width: calc(33.33333333% - 20px);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
	border-radius: 4px;
    overflow: hidden;
	transition-property: transform, box-shadow;
	transition-duration: 0.2s;
	transition-timing-function: ease-in-out;
}

div.product-grid div.product-item:hover {
	transform: scale(1.05);
    z-index: 1;
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

div.product-grid div.product-item > a {
	display: block;
    background: white;
	height: 100%;
	text-decoration: none;
}

div.product-grid div.product-item div.product-image {
	position: relative;
    width: 100%;
    padding-top: 56.25%;
    background-color: rgba(0,0,0,0.3);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

div.product-grid div.product-item div.product-text {
    text-align: center;
    padding: 15px 20px 20px;
    font-size: 25px;
    color: black;
    line-height: 25px;
}

div.product-grid div.product-item div.product-subtext {
	color: black;
    padding: 0px 30px 30px;
}

@media screen and (max-width: 995px) {
	div.product-grid div.product-item {
		width: calc(50% - 20px);
	}
}

@media screen and (max-width: 650px) {
	div.product-grid div.product-item {
		width: 100%;
	}
}

div.preview-grid {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	padding: 20px 20px 0px;
}

div.preview-grid div.preview-item {
	width: 33%;
    padding: 25px;
	position: relative;
	background: transparent !important;
	color: white !important;
	border: 1px solid white;
	margin-bottom: 20px;
}

div.preview-grid div.preview-item div.preview-background {
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 0px;
	right: 0px;
	overflow: hidden;
	z-index: -1;
	width: 100%;
	height: 100%;
}

div.preview-grid div.preview-item div.preview-background div.preview-overlay {
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 0px;
	right: 0px;
	overflow: hidden;
	background: grey;
	opacity: 0.5;
	z-index: 1;
}

div.preview-grid div.preview-item div.preview-background div.preview-image {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 0px;
	right: 0px;
	overflow: hidden;
	opacity: 1;
	 background-color: #ededed;
	z-index: 0;
}

div.preview-grid div.preview-item h3.preview-title {
	margin-bottom: 10px;
	font-size: 25px;
	text-align: center;
	min-height: 50px;
}

div.preview-grid div.preview-item div.preview-excerpt {
	text-align: center;
}

div.preview-grid div.preview-item div.preview-footer {
	padding-top: 20px;
	text-align: center;
}

div.preview-grid div.preview-item div.preview-footer a.preview-button {
	background: transparent;
	color: white;
	text-decoration: none;
	border: 2px solid white;
	border-radius: 5px;
	padding: 7px;
	font-weight: bold;
}

@media screen and (max-width: 995px) {
	div.preview-grid div.preview-item {
		width: 50%;
	}
}

@media screen and (max-width: 650px) {
	div.preview-grid div.preview-item {
		width: 100%;
	}
	
	div.preview-grid {
		padding: 0px;
	}
}

/** Footer **/

#footer-sidebar {
	background: #5d5d5d;
    border-top: none;
}

#footer-sidebar .footer-column .widget {
	border: none;
	background: transparent;
	color: white;
	padding: 10px;
	border-radius: 0px;
    font-size: 15px;
}

#footer-sidebar .footer-column h1.widget-title {
	color: white;
	font-size: 17px;
	margin-bottom: 15px;
}

#footer-sidebar .footer-column .widget a {
	color: white;
	font-weight: bold;
}

#footer-sidebar .footer-column .widget ul li {
	border-bottom: none;
	padding: 3px 5px;
}

.site-footer {
	background: #444;
	padding: 10px;
	color: white;
	font-size: 12px;
}

.site-footer .site-info, .footer-menu {
	display: inline-block;
	vertical-align: bottom;
}

.footer-menu ul {
	list-style-type: none;
	margin: 0px;
}

.footer-menu > ul > li {
	float: left;
	margin: 0px 2px;
	padding: 2px;
	line-height: 14px;
}

.footer-menu > ul > li a {
	color: #c7c7c7;
}

.footer-menu {
	margin-top: 1rem;
}

.footer-menu * {
	display: flex; 
	gap: 0 1rem;
	flex-wrap: wrap;
}

/** Google Maps **/

#maps-masthead {
	height: 450px;
}

#maps-masthead #riemer-gmaps-container {
	width: 100%;
	max-width: 100%;
	height: 100%;
}

#maps-masthead > #maps-info-widget {
	display: none;
}

#maps-masthead #maps-info-widget {
	max-width: 300px;
	width: 100%;
	box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px;
	background-color: white;
	padding: 10px;
	font-family: Roboto, Arial;
	font-size: 13px;
	margin: 15px;
	max-height: calc(100% - 30px);
    overflow: auto;
}

#maps-masthead #maps-info-widget .maps-info-content {
	height: auto;
    overflow: auto;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 15px;
}

#maps-masthead #maps-info-widget #maps-info-expand {
	position: absolute;
	right: 0px;
	width: 15px;
	top: 0px;
	bottom: 0px;
	background: white;
	box-shadow: rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px;
	display: none;
}

#maps-masthead #maps-info-widget #maps-info-expand:before {
	content: "";
    width: 4px;
    background: #bfbfbf;
    min-height: 30px;
    height: 40%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    border-radius: 25px;
}

@media screen and (max-width: 767px) {
	#maps-masthead {
		height: 400px;
	}
}

@media screen and (max-width: 600px) {
	#maps-masthead {
		height: 350px;
		padding-top: 55px;
	}
	
	#maps-masthead #maps-info-widget {
		width: calc(100vw - 20px);
    	height: calc(100% - 30px);
    	overflow: hidden;
    	margin-left: 0px;
		left: 0px;
		top: 0px;
		transition: left 200ms cubic-bezier(0.0,0.0,0.2,1);
		padding-right: 15px;
		max-width: 100%;
	}

	#maps-masthead #maps-info-widget:not(.maps-info-show) {
		left: calc(-100vw + 35px) !important;
	}

	#maps-masthead #maps-info-widget .maps-info-content {
		padding: 10px;
		position: absolute;
	}

	#maps-masthead #maps-info-widget.maps-info-show {
		left: 0px;
	}

	#maps-masthead #maps-info-widget #maps-info-expand {
		display: block;
	}
}

.gm-style-cc {
	display: none;
}

#maps-masthead .gm-style-cc {
	display: inherit;
}

.gm-style-iw a {
	color: #4285F4 !important;
}

/* Custom */

.flex {
	display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
	display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
	display: -ms-flexbox;      /* TWEENER - IE 10 */
	display: -webkit-flex;     /* NEW - Chrome */
	display: flex;             /* NEW, Spec - Opera 12.1, Firefox 20+ */
}

.flex.justify {
	justify-content: center;
}

ul.ib-container {
	margin-left: 0px;
	list-style-type: none;
}

.icon-box {
	margin-bottom: 10px;
}

.icon-box:after {
	 content: " ";
    clear: both;
    display: block;
    visibility: hidden;
    height: 0px;
}

.icon-box .ib-icon {
	float: left;
    font-size: 50px;
    height: 70px;
    width: 70px;
    margin: 10px 10px 10px 0px;
    box-sizing: content-box;
    text-align: center;
    border-radius: 100%;
    background: white;
    box-shadow: 0 1px 2px 0 rgba(0,0,0,0.4);
}

.icon-box .ib-icon > i.fa {
	padding: 10px;
}

.icon-box .ib-content {
	margin-left: 80px;
    padding: 10px 10px 10px 0px;
}

.icon-box .ib-content > .ib-content-title {
	font-size: 23px;
    font-weight: bold;
    margin-bottom: 5px;
}

.icon-box .ib-content > .ib-content-text {
	
}