/*
	(c)2017 - visuallizard.com

	General styles.
	Template, view, plugin and element specific, etc.
*/

body { color: #0d2c54; }
a { color: #1f9bde }
.controls-group a.button,
a.button,
.button,
button[type="submit"] {
	padding: 0.9em 1.5em 0.95em 1.5em;
	margin-right: 0.5em;
	border: none;
	border-radius: 35px;
	font-family: "brandon-grotesque", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.1rem;
	cursor: pointer;
	background: #ed003c;
	color: #fff;
	transition: all 0.2s ease;
}
.introduction a.button {
	display: block;
	width: 40%;
	margin: 0 auto;
}
.controls-group a.button:hover,
a.button:hover,
.button:hover,
button[type="submit"]:hover {
	background: #f34f97;
}
.controls-group a.button.outline,
a.button.blue,
.button.blue {
	background: #1fc2de;
	color: #0d2c54;
}
.controls-group a.button.outline:hover,
a.button.blue:hover,
.button.blue:hover { background: #1f9bde; }
.center { text-align: center; }
.notice { padding: 0.5em; font-weight: 700; font-style: italic; text-align: center; background: #ffcc00; }

/* ! Content module columns */
.cke {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	width: 100%;
	padding: 0;
	margin: 0 0 1.5em 0;
}
.cke > .c2,
.cke > .c3,
.cke > .c4,
.cke > .c5,
.cke > .c6 { float: none; flex-grow: 1; padding: 1.5em 0; margin: 0 0 0 2%; }

.cke > .c1 { flex-grow: 1; width: auto; flex-basis: 100%;		max-width: 100%;  }
.cke > .c2 { flex-grow: 1; width: auto; flex-basis: 49%;		max-width: 49%;   }
.cke > .c3 { flex-grow: 1; width: auto; flex-basis: 32%;		max-width: 32%;   }
.cke > .c4 { flex-grow: 1; width: auto; flex-basis: 23.5%;	max-width: 23.5%; }
.cke > .c5 { flex-grow: 1; width: auto; flex-basis: 18.4%;	max-width: 18.4%; }
.cke > .c6 { flex-grow: 1; width: auto; flex-basis: 15%;		max-width: 15%;   }

.cke > .c1,
.cke > .c-first {
	clear: none;
	margin-left: 0;
}
.cke:after {
	content: "";
	display: table;
	clear: both;
}

body.default main div.main-region > h2:first-of-type,
body.event main div.main-region > h2:first-of-type,
body.contest main div.main-region > h2:first-of-type { margin-bottom: 1.5rem; text-align: center; font-size: 3rem; }

/* ! images and iframes */
img { max-width: 100%; }
iframe { max-width: 100%; }

/* ! Lists */
ul, ol { padding: 0 0 0 1.25em; margin: 0 0 1em 0; }
li { line-height: 1.25; }

/* ! Tables */
table { font-size: 16px; }

/* ! form styles */
.form-block,
.auth-block,
.subscription-subs,
.subscription-methods { display: block; position: relative; padding: 1.5em; background: #f3f4f4; }
.fm-form,
.auth-form { max-width: 100%; }
.form-block div.g-recaptcha { margin: 0 0 1em 0; }
.form-block form.fm-form p.input-plaintext-label { font-size: 2rem; }
.form-block form.fm-form div.input-text > label,
.form-block form.fm-form div.input-email > label,
.form-block form.fm-form div.input-select > label { font-size: 1.25rem; font-weight: 500; margin-bottom: 0.5em; }
.form-block form.fm-form div.input-check-option > label { font-size: 1rem; }

/* ! Pagination styles */
.pagination-links {
	display: flex;
	position: relative;
	flex-wrap: nowrap;
	justify-content: center;
	width: 100%;
	padding: 0 5%;
	margin: 2em 0;
}
	.pagination-links li {
		display: block;
		position: relative;
		flex-grow: 1;
		text-align: center;
	}





/* !search form styles */
.search-block form.search-form input[type="search"] {
	display: block;
	position: relative;
	flex-grow: 4;
	max-width: 74%;
	padding: 0.35em 1em 0.45em;
}
.search-block form.search-form button[type="submit"] {
	display: block;
	position: relative;
	flex-grow: 1;
	max-width: 24%;
	padding: 0.55em 1em 0.45em;
}



/* !Donation Form */
div.plaque-info ul {
	display: block;
	position: relative;
	padding: 1em;
	list-style: none;
	font-size: 1.5rem;
	background: #f3f4f4;
}
	div.plaque-info ul li {
		display: block;
		position: relative;
		padding: 0.5em;
		border-bottom: 1px dotted #333;
		font-weight: 600;
		letter-spacing: 0.05em;
	}
		div.plaque-info ul li span {
			display: inline-block;
			position: relative;
			width: 10%;
			margin: 0 1em 0 0;
			border-right: 1px dotted #333;
			font-weight: 400;
			letter-spacing: normal;
		}
.form-block form.standard.payment {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	padding: 0;
	margin: 0;
}
	.form-block form.standard.payment div.donation-amount {
		display: block;
		position: relative;
		flex-grow: 3;
		width: 30%;
		padding: 0;
		margin: 0 35% 1rem 35%;
	}
		.form-block form.standard.payment div.donation-amount div.input-text,
		.form-block form.standard.payment div.donation-amount div.input-number {
			max-width: 100%;
		}
			.form-block form.standard.payment div.donation-amount div.input-text input,
			.form-block form.standard.payment div.donation-amount div.input-number input {
				font-size: 2em;
				padding: 0.3rem 0.5rem 0.4rem 0.5rem;
				text-align: center;
			}
	.form-block form.standard.payment label {
		font-size: 1.25rem;
		font-weight: 300;
		text-align: center;
	}
	.form-block form.standard.payment div.input-text,
	.form-block form.standard.payment div.input-select {
		display: block;
		position: relative;
		flex-grow: 1;
		flex-basis: 30%;
		max-width: 30%;
		margin: 0 1% 1rem 1%;
	}
	.form-block form.standard.payment div.input-text input,
	.form-block form.standard.payment div.input-select select {
		width: 100%;
		max-width: none;
	}
	.form-block form.standard.payment div.input-select select {
		height: 34px;
	}
	.form-block form.standard.payment div.input-textarea {
		width: 100%;
		padding: 0 1em;
	}
		.form-block form.standard.payment div.input-textarea textarea {
			display: block;
			position: relative;
			width: 100%;
		}
	.form-block form.standard.payment div.specialized-info {
		display: block;
		position: relative;
		width: 100%;
	}
		.form-block form.standard.payment div.specialized-info div.input-text{
			display: block;
			position: relative;
			width: 100%;
			max-width: none;
		}
			.form-block form.standard.payment div.specialized-info div.input-text label:after {
				content: " - 15 Characters";
			}
			.form-block form.standard.payment div.specialized-info div.input-text input[type="text"] {
				width: 60%;
				max-width: none;
				margin: 0 20%;
				font-size: 2.5rem;
			}
	.form-block form.standard.payment div.dedication-info {
		display: block;
		position: relative;
		width: 100%;
	}
		.form-block form.standard.payment div.dedication-info div.input-texarea,
		.form-block form.standard.payment div.dedication-info div.input-select {
			display: block;
			position: relative;
			width: 100%;
			max-width: none;
		}

	.form-block form.standard.payment div.cc_form {
		display: flex;
		position: relative;
		flex-wrap: nowrap;
		width: 100%;
		max-width: none;
		padding: 0 1em;
		margin: 0 0 1em 0;
	}
		.form-block form.standard.payment div.cc_form div.input-text.card-block {
			display: block;
			position: relative;
			flex-grow: 2;
			width: 40%;
			max-width: none;
			margin: 0;
		}
		.form-block form.standard.payment div.cc_form div.input-text.cvd-block,
		.form-block form.standard.payment div.cc_form div.input-select {
			display: block;
			position: relative;
			flex-grow: 1;
			width: 18%;
			max-width: 18%;
			margin: 0 0 0 2%;
		}
			.form-block form.standard.payment div.cc_form div.input-select select { min-width: 0; }
			.form-block form.standard.payment div.cc_form div.input-text input,
			.form-block form.standard.payment div.cc_form div.input-select select {
				font-size: 1.5rem;
				height: 50px;
			}
	.form-block form.standard.payment button {
		display: block;
		position: relative;
		width: 30%;
		margin: 0 35%;
	}



/* !Subscription/Planned Giving Donation form styles */
.subscription-subs,
.subscription-methods { margin: 0 0 1em 0; }
.subscription-subs > a.button,
.subscription-methods > a.button,
.main-region > a.button { margin: 0 1em 0.5em 0; }
.subscription-subs form,
.subscription-card form {
	display: flex;
	position: relative;
	justify-content: center;
	flex-wrap: wrap;
	width: 100%;
}
	.subscription-subs form div.input-text,
	.subscription-subs form div.input-select {
		display: block;
		flex-basis: 49%;
		max-width: 49%;
		margin: 0 0 1em 2%;
	}
	.subscription-subs form div.input-text { margin: 0 0 1em 0; }
	form div.input-text input[type="text"],
	form div.input-email input[type="email"] { width: 100%; }
	form div.input-select select { width: 100%; height: 32px; }
	form div.submit { flex-basis: 100%; }
.subscription-methods div.credit_card dl {
	display: flex;
	position: relative;
	justify-content: center;
	flex-wrap: wrap;
	width: 100%;
	padding: 0 1em;
	margin: 0 0 1em 0;
	background: #fcfdfd;
}
	.subscription-methods div.credit_card dl dt {
		display: block;
		flex-grow: 1;
		flex-basis: 25%;
		max-width: 25%;
		padding: 1em 0;
		margin: 0;
	}
	.subscription-methods div.credit_card dl dt:first-of-type,
	.subscription-methods div.credit_card dl dd:first-of-type { border-bottom: 1px solid #e3e4e4; }
	.subscription-methods div.credit_card dl dd {
		display: block;
		flex-grow: 2;
		flex-basis: 75%;
		max-width: 75%;
		padding: 1em 0;
		margin: 0;
	}
.subscription-card {}
	.subscription-card form,
	form#stripe-js-card-form {
		padding: 1em;
		background: #f3f4f4;
	}
		form div.StripeElement {
			display: block;
			position: relative;
			flex-basis: 100%;
		}
	form#stripe-js-card-form {
		display: flex;
		position: relative;
		justify-content: center;
		flex-wrap: wrap;
		column-gap: 2%;
		row-gap: 1.25rem;
	}
		form#stripe-js-card-form div.input-email,
		form#stripe-js-card-form div.input-text,
		form#stripe-js-card-form div.input-select {
			display: block;
			position: relative;
			flex-basis: 32%;
			margin: 0;
		}
		form#stripe-js-card-form div.input-email { margin: 0 0 1em 0; }



/* ! Golf Tournament Registration styles */
.form-block#golf-registration div.registration-info {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0 0 1em 0;
}
.form-block#golf-registration form {}
	.form-block#golf-registration form div.golf-group {}
	.form-block#golf-registration form div.golf-individual {}
	.form-block#golf-registration form div.golf-dinner {}
		.form-block#golf-registration form div.input-select {
			display: block;
			position: relative;
			width: 100%;
			padding: 1em;
			margin: 0 0 1em 0;
			border: 1px solid #333;
		}
			.form-block#golf-registration form div.input-select label {
				margin: 0 0 0.25em 0;
				font-size: 1.25rem;
				font-weight: 300;
				line-height: 1.1
			}
			.form-block#golf-registration form div.input-select select {
				display: block;
				position: relative;
				width: 100%;
				height: 40px;
				font-size: 1.25rem;
				font-weight: 400;
			}
		.form-block#golf-registration form div > fieldset {
			display: flex;
			position: relative;
			flex-wrap: wrap;
			padding: 1em;
			margin: 0 0 1em 0;
			background: #fcfdfd;
		}
			.form-block#golf-registration form div > fieldset legend {
				display: block;
				position: relative;
				width: 32%;
				padding: 0.5em 1em;
				border: 1px dotted #333;
				font-size: 1.25rem;
				font-weight: 400;
				line-height: 1.25;
				background: #fcfdfd;
			}
			.form-block#golf-registration form div > fieldset label {
				margin: 0 0 0.25em 0;
				font-size: 1.25rem;
				font-weight: 300;
				line-height: 1.1;
			}
			form div.golf-group > fieldset div,
			form div.golf-dinner > fieldset div {
				display: block;
				position: relative;
				flex-grow: 1;
				flex-basis: 32%;
				max-width: 32%;
				padding: 0;
				margin: 0 0 0 2%;
			}
			form div.golf-group > fieldset div:first-of-type,
			form div.golf-dinner > fieldset div:first-of-type { margin: 0; }
					form div.golf-group > fieldset > div input,
					form div.golf-individual > fieldset > div input,
					form div.golf-dinner > fieldset > div input {
						display: block;
						position: relative;
						width: 100%;
						font-size: 1.25rem;
						font-weight: 400;
					}
			form div.golf-individual > fieldset div.input-text,
			form div.golf-individual > fieldset div.input-email {
				display: block;
				position: relative;
				flex-grow: 1;
				flex-basis: 32%;
				max-width: 32%;
				padding: 0;
				margin: 0 0 0 2%;
			}
			form div.golf-individual > fieldset div.input-radio + div.input-text { margin: 0; }
			form div.golf-individual > fieldset p.input-info,
			form div.golf-individual > fieldset div.input-radio {
				display: block;
				position: relative;
				flex-basis: 100%;
				width: 100%;
			}
			form div.golf-individual > fieldset div.input-radio { display: flex; }
				form div.golf-individual > fieldset div.input-radio div.input-radio-option {
					display: block;
					position: relative;
					flex-basis: 32%;
					max-width: 32%;
					margin: 0 0 0 2%;
				}
				form div.golf-individual > fieldset div.input-radio div.input-radio-option:first-of-type { margin: 0; }
					form div.golf-individual > fieldset div.input-radio div.input-radio-option input {
						display: inline-block;
						width: auto;
					}


/* ! General List module styles - quicklinks */
div.quicklink-set {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	padding: 0;
	margin: 0;
}
	div.quicklink-set div.quicklink {
		display: block;
		position: relative;
		flex-grow: 1;
		flex-basis: 32%;
		max-width: 32%;
		padding: 0;
		margin: 0 0 1.5em 2%;
		border-radius: 7px;
		visibility: hidden;
		background: #f3f4f4;
		overflow: hidden;
		animation: qlfade 2s ease;
		animation-fill-mode: forwards;
	}
	div.quicklink-set div.quicklink:nth-child(3n+1) { margin: 0 0 1.5em 0; }
	div.quicklink-set div.quicklink:nth-child(3n+1) { animation-delay: 0s; }
	div.quicklink-set div.quicklink:nth-child(3n+2) { animation-delay: 0.25s; }
	div.quicklink-set div.quicklink:nth-child(3n+3) { animation-delay: 0.5s; }
	div.quicklink-set div.quicklink:nth-child(3n+4) { animation-delay: 0.75s; }
	div.quicklink-set div.quicklink:nth-child(3n+5) { animation-delay: 1s; }
	div.quicklink-set div.quicklink:nth-child(3n+6) { animation-delay: 1.25s; }
	div.quicklink-set div.quicklink:nth-child(3n+7) { animation-delay: 1.5s; }
	div.quicklink-set div.quicklink:nth-child(3n+8) { animation-delay: 1.75s; }
	div.quicklink-set div.quicklink:nth-child(3n+9) { animation-delay: 2s; }
	div.quicklink-set div.quicklink:before {
		content: "";
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		z-index: 1;
		background-image: linear-gradient(rgba(13,44,85,0) 15%, rgba(13,44,85,0.3) 35%, rgba(13,44,85,0.7) 70%);
	}
		div.quicklink img {
			display: block;
			position: relative;
			z-index: 0;
			padding: 0;
			margin: 0;
			transition: all 0.2s ease;
		}
		div.quicklink:hover img {
			transform: scale(1.1) translate(-10px, -5px);
		}
		div.quicklink div.description {
			display: block;
			position: absolute;
			z-index: 1;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			padding: 40% 1em 1em 1em;
			margin: 0;
			color: #fff;
		}
			div.quicklink div.description h3 {
				display: block;
				position: relative;
				padding: 0;
				margin: 0 0 0.25em 0;
				font-size: 1.125rem;
				font-weight: 500;
				line-height: 1.125;
				transition: all 0.2s ease;
			}
			div.quicklink:hover div.description h3 { letter-spacing: 0.05em; }
			div.quicklink div.description p {
				display: block;
				margin: 0 0 0.25em 0;
			}
			div.quicklink a {
				display: block;
				position: absolute;
				z-index: 2;
				top: 0;
				left: 0;
				bottom: 0;
				right: 0;
			}

@keyframes qlfade {
	0% { opacity: 0; }
	100% { opacity: 1; visibility: visible; }
}



/* ! General List module styles - media source links */
div.mediasource-set {
	display: flex;
	position: relative;
	justify-content: flex-start;
	flex-wrap: wrap;
	column-gap: 2%;
	row-gap: 1.25rem;
	width: 100%;
	padding: 0;
	margin: 0;
}
	div.media-source {
		display: block;
		position: relative;
		flex-basis: 49%;
		max-width: 49%;
		padding: 0;
		margin: 0;
		border-radius: 7px;
		box-shadow: 0px 0px 5px #ccc;
		overflow: hidden;
	}
		div.media-source > img {
			display: block;
			position: relative;
		}
		div.media-source:nth-child(3n+2) > img { transform: rotate(90deg) scale(1.1); }
		div.media-source:nth-child(5n+3) > img { transform: rotate(45deg) scale(1.4); }
		div.media-source > .source-description {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			z-index: 1;
			padding: 1em;

		}
			div.media-source > .source-description h3 {
				display: block;
				margin: 0 0 0.5em 0;
				font-size: 1.5rem;
				font-weight: 500;
				text-transform: none;
				line-height: 1.1;
				color: #fff;
			}
			div.media-source > .source-description p {
				display: block;
				margin: 0 0 1em 0;
				font-size: 1.125rem;
				font-weight: 400;
				line-height: 1.125;
			}
			div.media-source > .source-description p.actions {
				position: absolute;
				left: 1em;
				bottom: 1em;
				margin: 0;
			}



/* ! General List module styles - promolinks */
div.promotions,
div.festival-promotions {
	display: block;
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: 1440px;
	padding: 0;
	margin: -120px auto 3rem auto;
}
	div.promolink-set {
		display: flex;
		position: relative;
		flex-wrap: nowrap;
		width: 100%;
		padding: 0;
		margin: 0;
	}
		div.promolink-set div.promolink {
			display: block;
			position: relative;
			flex-grow: 1;
			max-width: 32%;
			padding: 0;
			margin: 0 0 0 2%;
			overflow: hidden;
			border-radius: 7px;
		}
		div.promolink-set div.promolink:first-child {
			margin: 0;
		}
			div.promolink-set div.promolink a {
				display: block;
				position: relative;
				padding: 0;
				margin: 0;
				color: #fff;
			}
			div.promotions div.promolink-set div.promolink:nth-child(1) a:before {
				background: url("../../img/button-festival-hover.png") no-repeat center center;
				background-size: cover;
			}
			div.promotions div.promolink-set div.promolink:nth-child(2) a:before {
				background: url("../../img/button-donate-hover.png") no-repeat center center;
				background-size: cover;
			}
			div.promotions div.promolink-set div.promolink:nth-child(3) a:before {
				background: url("../../img/button-volunteer-hover.png") no-repeat center center;
				background-size: cover;
			}

			div.festival-promotions div.promolink-set div.promolink:nth-child(1) a:before {
				background: url("../../img/button-map-hover.png") no-repeat center center;
				background-size: cover;
			}
			div.festival-promotions div.promolink-set div.promolink:nth-child(2) a:before {
				background: url("../../img/button-events-hover.png") no-repeat center center;
				background-size: cover;
			}
			div.festival-promotions div.promolink-set div.promolink:nth-child(3) a:before {
				background: url("../../img/button-volunteer2-hover.png") no-repeat center center;
				background-size: cover;
			}
			div.promolink-set div.promolink a:before {
				content: "";
				display: block;
				position: absolute;
				z-index: 0;
				top: 0;
				left: 0;
				bottom: 0;
				right: 0;
				opacity: 0;
				transition: all 0.5s ease;
			}
				div.promolink-set div.promolink a img {
					display: block;
					position: relative;
					z-index: -1;
				}
				div.promolink-set div.promolink a:hover:before { opacity: 1; transform: scale(1.1) translateX(-5px); }
				div.promolink-set div.promolink a h3,
				div.promolink-set div.promolink a p {
					display: block;
					position: absolute;
					left: 0;
					padding: 0 15px;
					z-index: 2;
					font-weight: 500;
					text-transform: uppercase;
				}
				div.promolink-set div.promolink a h3 {
					bottom: 1rem;
					font-size: 1.25rem;
					margin: 0;
				}
				div.promolink-set div.promolink a p {
					bottom: 2.75rem;
					font-size: 0.875rem;
					margin: 0;
				}



/* ! event module styles */
div.main-region div.introduction {
	padding: 0 0 2em 0;
	border-bottom: 1px solid #ddd;
}
	div.main-region div.introduction > h2 {
		text-align: center;
	}
div.main-region form.event-filter {
	padding: 0 0 2em 0;
	margin: 0;
	text-align: center;
}
	div.main-region form.event-filter fieldset {
		display: flex;
		position: relative;
		justify-content: center;
		flex-wrap: wrap;
		align-content: stretch;
		width: 100%;
		padding: 0;
		margin: 0 0 0.25rem 0;
		border: none;
		text-align: center;
	}
		div.main-region form.event-filter fieldset div.input-datepicker,
		div.main-region form.event-filter fieldset div.input-select {
			display: block;
			position: relative;
			flex-grow: 1;
			width: 23%;
			margin: 0 0 0.5em 2%;
		}
		div.main-region form.event-filter fieldset div.input-datepicker:first-child,
		div.main-region form.event-filter fieldset div.input-select:first-child {
			margin: 0 0 0.5em 0;
		}
			div.main-region form.event-filter fieldset div.input-datepicker > label {
				display: inline-block;
				width: 20%;
				font-size: 1rem;
				line-height: 2;
				text-align: left;
			}
			div.main-region form.event-filter fieldset div.input-datepicker > input {
				display: inline-block;
				width: 80%;
				height: 40px;
				border: 1px solid #1f9bde;
				border-radius: 7px;
			}
			div.main-region form.event-filter fieldset div.input-select > select {
				display: block;
				width: 100%;
				height: 40px;
				min-width: inherit;
				border: 1px solid #1f9bde;
				border-radius: 7px;
			}
		div.main-region form.event-filter fieldset button[type="submit"] {
			display: block;
			position: relative;
			width: 20%;
			padding: 0.95em 1.5em 0.85em 1.5em;
			margin: 1.5em auto 0 auto;
			line-height: 1;
		}

h3.event-date-header {
	font-weight: 500;
	text-transform: none;
	color: #1f9bde;
}
div.event-set,
div.festival-set {
	display: flex;
	position: relative;
	justify-content: flex-start;
	flex-wrap: wrap;
	padding: 1em 0;
	margin: 0 0 0.5em 0;
	border-top: 1px solid #ddd;
}
div.festival-set { border: none; }
	div.event-set div.event-listing,
	div.festival-set div.event-listing {
		display: flex;
		position: relative;
		align-items: flex-end;
		align-content: flex-end;
		flex-grow: 1;
		flex-basis: 49%;
		max-width: 49%;
		padding: 0;
		margin: 0 0 1em 2%;
		border: 1px solid #ccc;
		border-radius: 7px;
		overflow: hidden;
	}
	div.event-set div.event-listing:nth-child(2n+1),
	div.festival-set div.event-listing:nth-child(2n+1) { margin: 0 0 1em 0; }
		div.event-set div.event-listing img,
		div.festival-set div.event-listing img {
			display: block;
			position: relative;
			z-index: 0;
		}
		div.event-set div.event-listing div.event-desc,
		div.festival-set div.event-listing div.event-desc {
			display: block;
			position: absolute;
			align-self: flex-end;
			z-index: 1;
			width: 100%;
			padding: 2em 1em 1em 1em;
			background-image: linear-gradient(rgba(13,44,85,0) 2%, rgba(13,44,85,0.5) 25%, rgba(13,44,85,0.9) 70%);
			color: #fff;
		}
			div.event-set div.event-listing div.event-desc p.dates,
			div.festival-set div.event-listing div.event-desc p.dates {
				display: block;
				margin: 0 0 0.5em 0;
				font-size: 0.875rem;
				font-weight: 400;
				text-transform: uppercase;
				text-shadow: 1px 1px 1px #000;
			}
			div.event-set div.event-listing div.event-desc h3,
			div.festival-set div.event-listing div.event-desc h3 {
				display: block;
				margin: 0 0 0.5em 0;
				font-size: 1.25rem;
				font-weight: 500;
				text-shadow: 1px 1px 1px #000;
				transition: all 0.2s ease;
			}
			div.event-set div.event-listing:hover div.event-desc h3,
			div.festival-set div.event-listing:hover div.event-desc h3 {
				letter-spacing: 0.05em;
			}
			div.event-set div.event-listing div.event-desc span.location,
			div.festival-set div.event-listing div.event-desc span.location,
			div.event-set div.event-listing div.event-desc span.categories,
			div.festival-set div.event-listing div.event-desc span.categories,
			div.event-set div.event-listing div.event-desc span.time,
			div.festival-set div.event-listing div.event-desc span.time {
				display: block;
				margin: 0 0 0.25em 0;
				font-size: 0.875rem;
				font-weight: 400;
				text-shadow: 1px 1px 1px #000;
			}
		div.event-set div.event-listing a,
		div.festival-set div.event-listing a {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
		}

div.main-region.event {
	padding: 1em 0 2em 0;
}
	div.main-region.event > h2 {
		text-align: center;
	}
	div.main-region.event > p.dates {
		text-align: center;
		font-weight: 600;
		color: #1f9bde;
	}
	div.main-region.event > p.hours {
		text-align: center;
		font-size: 1.25rem;
		font-weight: 400;
	}
	div.main-region.event > p.locations {
		width: 100%;
		padding: 1em 0;
		margin: 0 0 2em 0;
		border-top: 1px solid #e3e4e4;
		border-bottom: 1px solid #e3e4e4;
		text-align: center;
		font-size: 1rem;
		font-weight: 400;
	}
		div.main-region.event > p.locations span {
			display: inline-block;
			padding: 0 20px;
			color: #1f9bde;
		}
			div.main-region.event > p.locations span strong {
				text-transform: uppercase;
				color: #0d2c54;
			}
	div.main-region.event > img {
		display: block;
		position: relative;
		width: 100%;
		margin: 0 0 1em 0;
	}
	div.main-region.event > div.body {
		width: 80%;
		margin: 0 auto;
	}
		div.main-region.event > div.body h3 {
			text-transform: none;
			font-weight: 400;
			color: #1f9bde;
		}

/* ! event registration form */
div.event-registration {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0 0 1em 0;
	border-top: 1px solid #ddd;
}
	div.event-registration div.registration-open {
		padding: 0.5em 0;
		font-size: 1.75rem;
		text-align: center;
	}div.event-registration div.registration-full {
		padding: 0.5em;
		font-size: 1.75rem;
		text-align: center;
		background: #ffe045;
	}
	div.event-registration form#payment-form div.contact-info {
		display: flex;
		position: relative;
		justify-content: center;
		flex-wrap: wrap;
		column-gap: 2%;
		row-gap: 1.25rem;
		width: 100%;
		padding: 1em;
		margin: 0;
		background: #f3f4f4;
	}
		div.event-registration form#payment-form div.contact-info div {
			display: block;
			position: relative;
			flex-basis: 32%;
			flex-grow: 1;
			padding: 1rem 0;
			margin: 0;
			text-align: center;
		}
		div.event-registration form#payment-form div.contact-info div.input-textarea {
			width: 100%;
			margin-left: 0;
		}
			div.event-registration form#payment-form div.input-text label,
			div.event-registration form#payment-form div.input-email label,
			div.event-registration form#payment-form div.input-tel label,
			div.event-registration form#payment-form div.input-textarea label {
				padding: 0.25em 0;
				font-size: 1.25rem;
				line-height: 1.1;
			}
			div.event-registration form#payment-form div.input-text input[type="text"],
			div.event-registration form#payment-form div.input-email input[type="email"],
			div.event-registration form#payment-form div.input-tel input[type="tel"],
			div.event-registration form#payment-form div.input-textarea textarea {
				display: block;
				position: relative;
				width: 100%;
				height: 2.5rem;
				padding: 0.5em;
			}
			div.event-registration form#payment-form div.input-textarea textarea {
				height: auto;
			}
			div.event-registration form#payment-form div.contact-info div.input-checkbox {
				display: flex;
				position: relative;
				justify-content: flex-start;
				align-items: center;
				flex-wrap: nowrap;
				width: 100%;
				padding: 0;
			}
				div.event-registration form#payment-form div.contact-info div.input-checkbox input[type="checkbox"] {
					display: block;
					position: relative;
					flex-basis: 5%;
					max-width: 5%;
					padding: 0;
					margin: 0 0.5em 0 0;
					transform: scale(1.5);
				}
				div.event-registration form#payment-form div.contact-info div.input-checkbox label {
					display: block;
					position: relative;
					flex-basis: 95%;
					max-width: 95%;
					padding: 0;
					margin: 0;
					text-align: left;
				}
			div.event-registration form#payment-form h3 {
				display: block;
				position: relative;
				width: 100%;
				padding: 0.25em 0;
				margin: 0 0 0.5em 0;
				text-align: center;
			}
			div.event-registration form#payment-form h3 + div.input-text {
				display: block;
				position: relative;
				width: 100%;
				padding: 0.5em;
				margin: 0 0 1em 0;
				background: #fff;
			}
		div.event-registration form#payment-form button[type="submit"] {
			display: block;
			flex-grow: 1;
			width: 32%;
			margin: 0 auto;
			font-size: 1rem;
			text-transform: uppercase;
		}



/* ! bulletin module styles */
div.article-set {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	width: 100%;
	padding: 0;
	margin: 0;
}
	div.article-set article {
		display: block;
		position: relative;
		flex-grow: 1;
		flex-basis: 32%;
		max-width: 32%;
		padding: 180px 1em 1em 1em;
		margin: 0 0 1.5em 2%;
		border-radius: 7px;
		overflow: hidden;
		background-repeat: no-repeat;
		background-size: cover;
	}
	div.article-set article:nth-child(3n+1) {
		margin: 0 0 1.5em 0;
	}
	div.article-set > article:before {
		content: "";
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		z-index: 0;
		background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.3),rgba(0,0,0,0.7));
	}
		div.article-set article > div.article-body {
			display: block;
			position: relative;
			z-index: 10;
		}
		div.article-set article h3 {
			padding: 0;
			margin: 0 0 0.25em 0;
			font-size: 1.375rem;
			font-weight: 500;
			line-height: 1.125;
			color: #fff;
		}
		div.article-set article p {
			font-size: 1rem;
			line-height: 1.25;
			margin: 0 0 0.75em 0;
			font-weight: 500;
			color: #fff;
		}
		div.article-set article p.readmore {
			font-size: 1.25rem;
			transition: all 0.2s ease;
		}
		div.article-set article:hover p.readmore { letter-spacing: 0.05em; }
		div.article-set article a {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			z-index: 10;
		}



/* ! Featured News styles */
div.featured-news {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0 0 2rem 0;
}
	div.featured-news h2 {
		margin: 0 0 1em 0;
		font-size: 1.875rem;
		font-weight: 500;
		letter-spacing: 0.05em;
		color: #0d2c54;
	}
	div.featured-news a.read-all {
		display: block;
		position: absolute;
		top: 0.5em;
		right: 0;
		font-size: 1rem;
		font-weight: 500;
		text-transform: uppercase;
		color: #ed003c;
		transition: all 0.2s ease;
	}
	div.featured-news a.read-all:hover {
		text-decoration: underline;
		letter-spacing: 0.05em;
	}
	div.featured-news a.button {
		width: 20%;
		margin: 0 40%;
	}
	div.featured-news div.article-set {
		display: flex;
		position: relative;
		flex-wrap: wrap;
		width: 100%;
		padding: 0;
		margin: 0 auto 1em auto;
	}
		div.featured-news div.article-set article,
		div.featured-news div.article-set div.mini-set {
			display: block;
			position: relative;
			flex-grow: 1;
			max-width: 49.5%;
			margin: 0 0 0.5em 1%;
			overflow: hidden;
			border-radius: 7px;
		}
		div.featured-news div.article-set article:first-child,
		div.featured-news div.article-set div.mini-set {
			margin-left: 0;
		}
		div.featured-news div.article-set > article {
			padding: 220px 1em 1.75em 1em;
			background-repeat: no-repeat;
			background-size: cover;
		}
		div.featured-news div.article-set > article:before {
			content: "";
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			z-index: 0;
			background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.3),rgba(0,0,0,0.7));
		}
			div.featured-news div.article-set article > div.article-body {
				display: block;
				position: relative;
				z-index: 10;
			}
			div.featured-news div.article-set div.mini-set {
				display: flex;
				flex-direction: column;
				align-content: stretch;
			}
			div.featured-news div.article-set div.mini-set article {
				display: flex;
				position: relative;
				flex-wrap: nowrap;
				max-width: 100%;
				padding: 0;
				margin: 0.5em 0 0 0;
				background: #f34f97;
			}
			div.featured-news div.article-set div.mini-set article:first-child {
				margin: 0;
				background: #ed003c;
			}
				div.featured-news div.article-set div.mini-set article > div.article-image {
					display: block;
					position: relative;
					flex-grow: 1;
					max-width: 30%;
					background-repeat: no-repeat;
					background-position: center center;
					background-size: cover;
				}
				div.featured-news div.article-set div.mini-set article > div.article-body {
					display: block;
					position: relative;
					flex-grow: 3;
					max-width: 70%;
					padding: 2.5em 1em 1.5em 1em;
				}
			div.featured-news div.article-set article h3 {
				display: block;
				position: relative;
				padding: 0;
				margin: 0 0 0.5em 0;
				font-size: 1.375rem;
				font-weight: 500;
				line-height: 1.125;

			}
			div.featured-news div.article-set div.mini-set article h3 { text-transform: none; color: #0d2c54; }
			div.featured-news div.article-set div.mini-set article:first-child h3 { color: #fff; }
			div.featured-news div.article-set article p {
				display: block;
				position: relative;
				font-size: 1rem;
				line-height: 1.25;
				margin: 0 0 0.5em 0;
				font-weight: 500;
			}
			div.featured-news div.article-set article p.readmore { font-size: 1.25rem; text-transform: uppercase; }
			div.featured-news div.article-set div.mini-set article p { color: #0d2c54; }
			div.featured-news div.article-set div.mini-set article:first-child p { color: #fff; }
			div.featured-news div.article-set article a,
			div.featured-news div.article-set div.mini-set article > a {
				display: block;
				position: absolute;
				top: 0;
				left: 0;
				bottom: 0;
				right: 0;
				z-index: 10;
			}



/* ! Home Section general styles */
div.home-section h2 {
	padding: 2rem 0 0 0;
	margin: 0 0 1rem 0;
	font-size: 2.5rem;
	font-weight: 500;
	line-height: 1.125;
	letter-spacing: 0.05rem;
	text-transform: none;
}

/* ! Featured Video styles */
div.video-display {
	display: block;
	position: relative;
	grid-area: content;
	z-index: 1;
	width: 100%;
	max-width: 1200px;
	padding: 4em 0;
	margin: 0 auto;
	color: #fff;
}
#video-festival div.video-display {
	padding: 5.5em 0;
	text-align: center;
}
	div.video-display .cke { align-items: center; }
	div.video-display .c2.c-first {
		padding: 0 2em 0 0;
	}
	div.video-display .c2.c-last {
		padding: 0 0 0 2em;
	}
	div.video-display h2 {
		padding: 0;
	}



/* ! Featured Merchandise styles */
div.merch-display {
	display: flex;
	position: relative;
	flex-wrap: nowrap;
	align-items: center;
	z-index: 1;
	width: 100%;
	max-width: 1200px;
	padding: 0;
	margin: 0 auto;
	color: #0d2c54;
}
	div.merch-display div.merch-description {
		display: block;
		position: relative;
		flex-grow: 1;
		max-width: 50%;
		padding: 4em;
		margin: 0;
	}
	div.merch-display div.merch-image {
		display: block;
		position: relative;
		flex-grow: 1;
		max-width: 50%;
		padding: 2em 0;
		margin: 0;
	}



/* ! President's Message styles */
div.message-display {
	display: block;
	position: relative;
	grid-area: content;
	width: 100%;
	padding: 4em 7em;
}
	div.message-display > img {
		display: block;
		position: relative;
		width: 200px;
		height: auto;
		margin: 0 auto;
		border-radius: 100%;
	}
	div.message-display > .cke {
		max-width: 70%;
		margin: 0 auto;
	}
	div.message-display > a {
		font-size: 0.875rem;
		font-weight: 500;
		text-transform: uppercase;
		color: #ed003c;
	}
	div.message-display > a:hover {
		text-decoration: underline;
	}



/* ! Staff module styles */
div.staff-set {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	padding: 0 3em;
	margin: 0;
}
div.staff-set.executive {
	padding: 0;
}
	div.staff {
		display: block;
		position: relative;
		flex-grow: 1;
		max-width: 32%;
		padding: 1.5em 1em;
		margin: 0 0 1em 2%;
		border-radius: 7px;
		box-shadow: 0px 0px 5px #ccc;
		overflow: hidden;
	}
	div.staff:after {
		content: "";
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		z-index: 0;
		width: 25%;
	}
	div.staff-set.executive div.staff:nth-child(3n+1):after {
		background: url("../../img/intersection-pink.svg") no-repeat right top;
		background-size: 80%;
	}
	div.staff-set.executive div.staff:nth-child(3n+2):after {
		background: url("../../img/intersection-orange.svg") no-repeat right top;
		background-size: 80%;
	}
	div.staff-set.executive div.staff:nth-child(3n+3):after {
		background: url("../../img/intersection-teal.svg") no-repeat right top;
		background-size: 80%;
	}
	div.staff-set.executive div.staff {
		padding: 1.5em;
	}
	div.staff.president {
		max-width: 45%;
		padding: 1.5em;
		margin: 0 0 1em 0;
	}
	div.staff.president:after {
		background: url("../../img/intersection-orange.svg") no-repeat right top;
		background-size: 80%;
	}
	div.staff.president-message {
		max-width: 45%;
		padding: 25% 2.5em 1.5em 1.5em;
		margin: 0 0 1em 2%;
		background: #0d2c54;
		color: #fff;
	}
	div.staff.president-message:after {
		background: url("../../img/intersection-teal.svg") no-repeat right top;
		background-size: 80%;
	}
		div.staff.president-message h3 {
			padding: 0 25% 0 0;
			margin: 0 0 0.5em 0;
			font-size: 1.75rem;
			font-weight: 400;
			line-height: 1.1;
			text-transform: none;
			color: #1fc2de;
		}
		div.staff.president-message p {
			font-size: 1rem;
			font-weight: 400;
			line-height: 1.125;
		}
		div.staff.president-message a {
			font-size: 0.875rem;
			font-weight: 700;
			text-transform: uppercase;
			color: #f34f97;
		}
	div.staff:nth-child(3n+1) {
		margin: 0 0 1em 0;
	}
	div.staff .staff-img {
		display: block;
		position: relative;
		width: 50%;
		height: auto;
		padding: 0;
		margin: 0 25% 0.5rem 25%;
		overflow: hidden;
	}
		div.staff .staff-img img {
			display: block;
			position: relative;
			width: 100%;
			height: auto;
			border: none;
			border-radius: 100%;
		}
	div.staff .staff-copy {
		display: block;
		position: relative;
		z-index: 1;
		width: 100%;
		padding: 0;
		margin: 0;
		text-align: center;
	}
		div.staff .staff-copy h3 {
			margin: 0 0 0.25rem 0;
			font-size: 1.125rem;
			font-weight: 600;
			line-height: 1.1;
			text-transform: none;
			letter-spacing: 0.05rem;
		}
		.executive div.staff .staff-copy h3 {
			font-size: 1.325rem;
		}
		div.staff .staff-copy h4 {
			margin: 0 0 0.5rem 0;
			font-size: 1rem;
			text-transform: uppercase;
			letter-spacing: 0.05em;
			color: #1f9bde;
		}
		div.staff .staff-copy p {
			font-size: 1rem;
			line-height: 1.25;
		}
		div.staff .staff-copy p {
			margin: 0 0 0.5rem 0;
		}



/* ! form styles */
div#mc_embed_signup {
	display: block;
	position: relative;
}
	div#mc_embed_signup div.form-block {
		display: block;
		position: relative;
		width: 100%;
		padding: 1.5em;
		margin: 0 0 1.5em 0;
		background: #f3f4f4;
	}
		div#mc_embed_signup div.form-block > form {
			margin: 0;
		}
			div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll {
				display: flex;
				position: relative;
				justify-content: space-between;
				flex-wrap: wrap;
				width: 100%;
				padding: 0;
				margin: 0;
			}
				div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.indicates-required,
				div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div#mce-responses,
				div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.submit {
					display: block;
					position: relative;
					width: 100%;
					padding: 0;
					margin: 0 0 1em 0;
				}
				div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.mc-field-group {
					display: block;
					position: relative;
					flex-grow: 1;
					max-width: 32%;
					padding: 0;
					margin: 0 0 1em 0;
				}
					div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.mc-field-group label {
						font-size: 1.25rem;
					}
					div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.mc-field-group input[type="email"],
					div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.mc-field-group input[type="text"] {
						width: 100%;
						max-width: none;
					}
				div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div#mce-responses,
				div#mc_embed_signup div.form-block > form div#mc_embed_signup_scroll div.submit { margin: 0; }


/* ! search results styles */
ul.search-results {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0;
	border-top: 1px solid #000;
	list-style: none;
}
	ul.search-results li {
		display: block;
		position: relative;
		width: 100%;
		padding: 1em;
		margin: 0;
		border-bottom: 1px solid #000;
	}
		ul.search-results li h3 {
			margin: 0 0 0.25em 0;
		}
