/*
Author: Cole Thorsen

TABLE OF CONTENTS

ALIGN ............ alignment for blocks and the site in general.
BLOCKS ........... the various blocks for the site
	BLOCK_BLOCK
	BROADCASTS_BLOCK
	CARD_BLOCK
	CLASSES_BLOCK
	COLUMNS_BLOCK
	CONTAINER_BLOCK
	DOWNLOADS_BLOCK
	GALLERY_BLOCK
	HERO_BLOCK
	HTML_BLOCK
	ICON_BLOCK
	ICON_LIST_BLOCK
	IMAGE_BLOCK
	IMAGE_HOTSPOTS_BLOCK
	LOGOS_BLOCK
	SCHEDULE_BLOCK
	PRODUCT_BLOCK
	NEWSLETTER_BLOCK
	TEXT_BLOCK
	VIDEO_BLOCK
*/

/* $ALIGN
____________________________________*/
:root {
	--container-padding: 20px;
	--container-padding-slim: 10px;
	--base-margin: 20px;
	--center-width: 620px;
}

@media only screen and (min-width: 800px) {
	:root {
		--container-padding: 40px;
		--container-padding-slim: 20px;
	}
}
.align_wide,
.align_right,
.align_left {
	box-sizing: border-box;
	position: relative;
}
.align_center > .block_container,
.align_wide > .block_container {
	margin: 0 var(--base-margin);
}

.block_container {
	padding-top: var(--container-padding);
	padding-bottom: var(--container-padding);
}

/**
 * blocks that have the same themes shouldn't
 * be as spaced out.
 */
.matches_prev > .block_container {
	padding-top: var(--container-padding-slim)
}
.matches_next > .block_container {
	padding-bottom: var(--container-padding-slim);
}

/**
 * some blocks allow for the manual removal of
 * padding entirely.
 */
.padding_top_0 > .block_container {
	padding-top: 0;
}
.padding_bottom_0 > .block_container {
	padding-bottom: 0;
}

@media only screen and (min-width: 800px) {
	.align_center > .block_container {
		margin: 0 auto;
		max-width: var(--center-width);
	}

	.align_right {
		float: right;
		clear: right;
		width: 50%;
		margin-left: var(--base-margin);
	}
		.align_right.block_pad {
			padding-right: 0;
		}

	.align_left {
		float: left;
		clear: left;
		width: 50%;
		margin-right: var(--base-margin);
	}
		.align_left.block_pad {
			padding-left: 0;
		}
}

@media only screen and (min-width: 1040px) {
	.wysiwyg_block.align_wide > .block_container {
		margin: 0 80px;
	}

	.wysiwyg_block.align_right .block_container {
		margin: 0 80px 0 0;
	}
	.wysiwyg_block.align_left .block_container {
		margin: 0 0 0 80px;
	}
}

/* remove padding from blocks inside blocks.*/
/*
.block_container .block:first-child > .block_container {
	padding-top: 0;
}
.block_container .block:last-child > .block_container {
	padding-bottom: 0;
}
*/



/* $BLOCKS
____________________________________*/
.block {
	position: relative;
}

/* BLOCK_BLOCK
____________________________________*/

/* BROADCASTS_BLOCK
____________________________________*/
.grid_broadcasts {
	max-width: var(--center-width);
	margin: 0 auto;
}

.grid_broadcasts .grid {
	margin-top: 10px;
}
.broadcast_logo {
    max-width: 120px;
}

/* CARD_BLOCK
____________________________________*/

/* CLASSES_BLOCK
____________________________________*/
.class_plate {
	/*border:1px solid #666;*/
	text-align: center;
	font-weight: bold;
	border-radius: 5px 5px 15px 15px;
	font-size: 1.2em;
	width: 25px;
	box-shadow: 0px 1px 5px rgba(0,0,0,.3);
}
.class_production {
	text-align: center;
	color: #38be31;
}
	.class_production svg {
		fill: #38be31;
	}

/* COLUMNS_BLOCK
____________________________________*/
/**
 * have columns apply the padding to the children
 * as opposed to the main block, so that you can
 * block themes into the columns in a cleaner
 * fashion.
 */
.block_columns > .block_container {
	padding: .1px;
}

.block_columns .block:first-child > .block_container {
	padding-top: var(--container-padding);
}
.block_columns .block:last-child > .block_container {
	padding-bottom: var(--container-padding);
}

/**
 * if the column is the same as the prev or next column,
 * and the first/last child is transparent give it slim
 * padding
 */
.block_columns.matches_prev .block.transparent:first-child > .block_container {
	padding-top: var(--container-padding-slim);
}
.block_columns.matches_next .block.transparent:last-child > .block_container {
	padding-bottom: var(--container-padding-slim);
}

.block_columns .block:not(.transparent):first-child > .block_container {
	padding-top: var(--container-padding);
}
.block_columns .block:last-child > .block_container {
	padding-bottom: var(--container-padding);
}

.block_columns .block:only-child {
	height: 100%;
}

/**
 * text blocks inside columns should always have
 * left/right padding on them when they have a theme
 * or when the columns aren't set to breathe.
 */
.block_columns .grid:not(.grid_breathe) .block_text > .block_container,
.block_columns .block_text:not(.transparent) > .block_container {
	margin: 0 var(--base-margin);
}

/* CONTAINER_BLOCK
____________________________________*/
/**
 * have containers apply the padding to the children
 * as opposed to the main block, so that you can
 * block themes into the container in a cleaner
 * fashion.
 */
.block_container_container > .block_container {
	padding: .1px;
}

/* DOWNLOADS_BLOCK
____________________________________*/
.block_downloads_list {
	list-style: none;
	margin: 0;
	padding: 0;
}
	.block_downloads_list > li {
		border-bottom: 1px solid rgba(0,0,0,.2);
	}
		.block_downloads_list > li > a {
			color: var(--base);
			display: block;
			position: relative;
			padding: 10px 0 10px 70px;
			min-height: 64px;
		}
			.block_downloads_list .icon {
				position: absolute;
				top: 20px;
				left: 5px;
				height: 50px;
				width: 50px;
			}
			.block_downloads_list .link_title {
				display: block;
				font-size: 1.1em;
				color: var(--link-color);
			}


/* FAQS_BLOCK
____________________________________*/
.block_text + .block_faq.matches_prev > .block_container {
	padding-top: 0;
}

.faqs {
	padding: 0;
	margin-top: 0;
	list-style: none;
}
	.faqs > li {
		border-bottom: 1px solid #f1f1f1;
	}
	.faq_question {
		position: relative;
		font-size: 16px;
		font-weight: bold;
		padding: 15px 25px 15px 0;
		cursor: pointer;
	}
		.faq_question:hover {
			background: #f1f1f1;
		}
		.faq_question:after {
			content: '+';
			position: absolute;
			right: 10px;
			top: 14px;
			opacity: .5;
		}
		.faq_active .faq_question:after {
			content: '–';
		}
	.faq_answer {
		display: none;
		padding: 10px 0 20px;
	}

@media only screen and (min-width: 600px) {
	.faq_question {
		padding-left: 25px;
	}
		.faq_question:before {
			position: absolute;
			top: 21px;
			left: 5px;
			width: 7px;
			height: 7px;
			border-radius: 50%;
			background-color: #333;
			content: "";
		}
}

/* GALLERY_BLOCK
____________________________________*/
.block_gallery .img_wrap {
	padding-bottom: 66.6%;
	overflow: hidden;
}
	.block_gallery .img_wrap img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: .5s;
	}

.gallery_square .img_wrap {
	padding-bottom: 100%;
}

.gallery_portrait .img_wrap {
	padding-bottom: 150%;
}

/* HERO_BLOCK
____________________________________*/
.block_hero {
}

/* HTML_BLOCK
____________________________________*/

/* ICON_BLOCK
____________________________________*/
.block_icon .block_container i {
	display: block;
	margin: 0 auto;
	position: relative;
	width: 80px;
	height: 80px;
}
.block_icon.matches_next > .block_container {
	padding-bottom: 0;
}
.block_icon + .block_text.matches_prev > .block_container {
	padding-top: 0;
}

/* ICON_LIST_BLOCK
____________________________________*/
.block_icon_list .block_container {
	display: flex;
}
	.icon_list {
		list-style: none;
		padding: 0;
		margin: 10px auto;
	}
		.icon_list_item {
			margin-top: 16px;
		}
		.icon_list_item i {
			display: block;
			position: absolute;
			background-color: var(--red);
			border-radius: 50%;
			width: 50px;
			height: 50px;
		}
			.icon_list_item svg {
				fill: #fff;
				width: 30px;
				top: 0;
				left: 10px;
			}
		.icon_list_content {
			min-height: 50px;
			margin: 0 0 0 70px;
		}

/* IMAGE_BLOCK
____________________________________*/
.block_image figure {
	margin: 0;
	font-size: 16px;
}
	.block_image_wrap {
		margin: 0 auto;
	}

	.block_image figcaption {
		padding-top: 5px;
	}
	.block_image .credit {
		color: #c4c4c4;
		display: block;
		width: 100%;
		text-align: right;
		font-style: italic;
		padding: 10px 0 0;
		font-size: 16px;
		line-height: 20px;
		padding: 0;
		margin: 0;
	}
	.block_image .credit:before {
		content: '— ';
	}

/**
 * images that are the first or last in a column that
 * don't have much spacing should be tight to the edge.
 */
.block_columns .grid:not(.grid_breathe) .block_image:first-child .block_container {
	padding-top: 0;
}
.block_columns .grid:not(.grid_breathe) .block_image:last-child .block_container {
	padding-bottom: 0;
}

/* $IMAGE_HOTSPOTS_BLOCK
____________________________________*/

/* LOGOS_BLOCK
____________________________________*/
.block_logos .grid {
	align-items: center;
	justify-content: center;
}

/* MAPS_BLOCK
____________________________________*/
.block_map .block_container {
	padding-top: 0;
	padding-bottom: 0;
}

.map {
	height: 300px;
}

/* SCHEDULE_BLOCK
___________________________________*/
.block_schedule h2:first-child {
	margin-top: 0;
}

/* PRODUCT_BLOCK
____________________________________*/
/* NEWSLETTER_BLOCK
____________________________________*/

/* TEXT_BLOCK
____________________________________*/
.block_text {
	font-size: 16px;
	line-height: 28px;
}
	.text_content > *:first-child {
		margin-top: 0;
	}
	.text_content > *:last-child {
		margin-bottom: 0;
	}

/* VIDEO_BLOCK
____________________________________*/
/*
more info on this: http://alistapart.com/article/creating-intrinsic-ratios-for-video
*/
.video_wrap {
	max-width: 1280px;
	margin: 1px auto;
}
	.video_wrap > div {
		position: relative;
		padding-bottom: 56.25%;
		height: 0; /* IE5 and IE6 need “layout.” */
	}

	* html .video_wrap > div { /* makes this work in ie5 and 6 */
		margin-bottom: 45px;
		margin-bot\tom: 0;
	}
		.video_wrap > div > div,
		.video_wrap embed,
		.video_wrap object,
		.video_wrap iframe {
			position:absolute;
			width:100%;
			height:100%;
			left:0;
			top:0;
		}
