/* Mobile Styles */

/*################################################################
GLOBAL
################################################################*/

body {
	padding-top: 85px;
	font-size: calc(10pt + 1vw);
	overflow-x: hidden;
}

/*################################################################
HEADER &  MENU
################################################################*/

/* Header */

#header.menu_active {
	position: fixed;
}

#header.section .inner {
	height: 85px;
	padding: 15px 25px;
	align-items: center;
	align-content: center;
}

#header.section.minimize:not(.menu_active) .inner {
	padding: 10px 25px;
}

a#logo {
	max-width: 170px;
	z-index: 2;
}

#logo span {
	top: calc(100% - 3px);
	left: 30%;
	height: 35%;
}

#header.section.minimize:not(.menu_active) a#logo {
	width: 32px;
	height: 32px;
}

/* Menu */

#mobile-menu {
	display: block;
	position: absolute;
	top: 50%;
	right: 25px;
	transform: translateY(-50%);
	cursor: pointer;
	z-index: 3;
}

#mobile-menu svg {
	display: block;
	width: 30px;
	height: 28px;
	fill: #ffffff;
	opacity: 0.75;
	transition: opacity .25s ease-in-out;
}

#mobile-menu:hover svg {
	opacity: 1;
}

#header-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	padding: 35px 25px;
	background-color: rgba(35,35,35,0.85);
	box-sizing: border-box;
	transform-origin: 50% 0;
	overflow-x: hidden;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}

#header-menu.active {
	display: block;
	animation: showMobileMenu .2s 1 ease-in-out forwards;
}

#header-menu.inactive {
	animation: hideMobileMenu .2s 1 ease-in-out forwards;
}

#header ul.menu {
	display: flex;
	position: relative;
	flex-direction: column;
	margin-bottom: 65px;
	padding: 15px;
	font-size: calc(11pt + .25vw);
	background-color: #BF363F;
	border-radius: 10px;
	flex: none;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: nowrap;
	z-index: 1;
}

#header.section.minimize:not(.menu_active) ul.menu {
	padding-left: 0;
}

#header .menu li {
	width: 100%;
	padding: 5px 15px;
	text-align: center;
	box-sizing: border-box;
	flex: 1 1 auto;
}

#header .menu > li + li {
	border-top: 1px rgba(35,35,35,0.2) solid;
}

#header .menu > li:last-child {
	padding-right: 15px;
}

#header .menu li a {
	display: inline-block;
	padding: 10px 15px;
	border: none;
}

/* Sub Menus */

#header .sub-menu-wrap {
	display: none;
	position: relative;
	top: auto;
	left: auto;
	width: 100%;
	padding: 10px 0;
	box-sizing: border-box;
	transform-origin: 50% 0;
	transform: scale(0);
}

#header .menu li:hover > .sub-menu-wrap {
	animation: none;
}

#header .menu li.active > .sub-menu-wrap {
	display: block;
	animation: showMobileSubMenu .2s 1 ease-in-out forwards;
}

#header .menu li.inactive > .sub-menu-wrap {
	animation: hideMobileSubMenu .2s 1 ease-in-out forwards;
}

#header .sub-menu {
	box-shadow: none;
}

/* Animations */

@keyframes showMobileMenu {
    0% 		{ opacity: 0; transform: scale(0); }
    100%	{ opacity: 1; transform: scale(1); }
}

@keyframes hideMobileMenu {
    0% 		{ opacity: 1; transform: scale(1); }
    100%	{ opacity: 0; transform: scale(0); }
}

@keyframes showMobileSubMenu {
    0% 		{ opacity: 0; transform: scale(0); }
    100%	{ opacity: 1; transform: scale(1); }
}

@keyframes hideMobileSubMenu {
    0% 		{ opacity: 1; transform: scale(1); }
    100%	{ opacity: 0; transform: scale(0); }
}


/*################################################################
SECTIONS
################################################################*/

.group {
	padding: 35px 25px;
}

.section {
	padding: 35px 25px;
}

.group .outer > .section.full {
	padding: 25px 0;
}

.group .outer > .section.dynamic {
	width: 100%;;
	padding: 35px 0 25px 0;
}

/* Breadcrumbs */

.breadcrumbs {
	flex-wrap: wrap;
	font-size: calc(9pt + 0.25vw);
}

.breadcrumbs > a {
	white-space: nowrap;
}

.breadcrumbs > a:not(:first-child):before {
	font-size: calc(6pt + 0.25vw);
}

/*################################################################
BANNERS
################################################################*/

/* Hero Banner */

.section.banner {
	height: calc(100% - 85px);
}

.section.banner .full_card {
	padding: 35px 25px;
}

.section.banner:not(.page_banner) .card.full_card .content {
	width: 100%;
	max-width: none;
}

.section.banner:not(.page_banner) .card.full_card .content {
	font-size: calc(32pt + 1.25vw);
}

/* Page Banner */

.section.banner.page_banner {
	min-height: calc(100% - 85px);
}

.section.banner .card.full_card .content {
	width: 100%;
	font-size: calc(10pt + 1vw);
}

.section.banner.page_banner .full_card .content h1 {
	font-size: calc(32pt + 1.25vw);
}

/*################################################################
IMPACT BAR
################################################################*/

#impact-bar {
	font-size: calc(9pt + 1vw);
}

/*################################################################
CARDS
################################################################*/

.card {
	width: 50%;
}

@media screen and (max-width: 500px) {
	
	.card {
		width: 100%;
	}		
	
}

/* Full Card */

.full_card .wrapper,
.full_card.halves .wrapper {
	display: flex;
	flex-direction: column;
}

.full_card .wrapper > div {
	padding: 25px;
	flex: 1 1 auto;
}

.full_card .wrapper .left,
.full_card.halves .wrapper .left {
	width: 100%;
	padding-top: 55%;
}

.full_card.alternate:nth-child(even) .wrapper .left {
	order: 1;
}

.full_card .wrapper .right {
	width: 100%;
}

.full_card .wrapper .right .content {
	font-size: calc(10pt + 1vw);
}

.full_card.halves .wrapper .right {
	width: 100%;
	padding: 25px 0 0 0;
}

.full_card.alternate:nth-child(even) .wrapper .right {
	order: 2;
}

.full_card.content_wrapper .wrapper .left,
.full_card.content_wrapper .wrapper .right {
	width: 100%;
}

/* Program Card */

#browse-programs .program_card .thumb {
	height: auto;
	padding-top: 75%;
}

#browse-programs .section:first-child .program_card .thumb {
	height: auto;
}

/* Profile Card */

.card.profile_card {
	width: 50%;
	padding: 7px;
}

.card.profile_card .wrapper {
	box-shadow: 0 0 2px rgba(0,0,0,0.15);
}

.card.profile_card.our-family,
.card.profile_card.executive,
.card.profile_card.grants-and-foundations {
	width: 100%;
}

.card.profile_card.producer {
	width: 50%;
}

.card.profile_card.stage-manager {
	width: 33.33%;
}

.card.profile_card.engineering {
	width: 50%;
	flex: 0 1 auto;
}

.card.profile_card.engineering .wrapper {
	box-shadow: none;
}

.card.profile_card.engineering .name {
	font-size: calc(8pt + .25vw);
	white-space: normal;
}

.card.profile_card.modalized .wrapper {
	padding: 15px 15px 65px 15px;
	flex-direction: column;
	flex-wrap: nowrap;
}

.card.profile_card.modalized .thumb {
	width: 100%;
	height: auto;
	padding-top: 100%;
}

.card.profile_card.modalized .content {
	padding-left: 0;
}

#our-family-section .card.profile_card .thumb,
#industry-partners-section .card.profile_card .thumb,
#foundations-section .card.profile_card .thumb  {
	padding-top: 65%;
}

#corporate-partners-section .shortcode + .shortcode {
	margin-top: 35px;
}

/*################################################################
ACTION TABS
################################################################*/

#action-tabs {
	right: auto;
	left: 50%;
	transform: translateX(-50%);
}

#action-tabs .tab {
	margin: 0 3px;
}

#action-tabs .tab a {
	padding: 15px;
	font-size: calc(7pt + 1vw);
}

/*################################################################
CAROUSEL
################################################################*/



/*################################################################
FOOTER
################################################################*/

#footer.section .container {
	flex-direction: column;
	justify-content: center;
}

#footer.section .container > div {
	width: 100%;
	text-align: center;
	flex: 1 1 auto;
}

#footer .center {
	padding: 0;
}

#footer.section .container:first-child .left {
	order: 2;
}

#footer.section .container:first-child .center {
	order: 1;
}

#footer.section .container:first-child .right {
	order: 0;
}

a#footer-logo {
	margin: 15px auto;
	padding-top: 25%;
	box-sizing: border-box;
}

#footer .social_icons {
	margin: 15px auto;
	justify-content: center;
}

#footer .social_icons a {
	width: 30px;
	height: 30px;
}

#footer ul.menu {
	justify-content: center;
}

#footer .menu li {
	padding: 5px;
}

#footer-subscribe {
	margin: 0 auto;
}

#footer-subscribe label {
	text-align: center;
}

#footer .inner + .inner {
	text-align: center;
}

#footer .address.center {
	padding: 15px 0;
}

/*################################################################
BUTTONS
################################################################*/

button, input[type=button], input[type=submit], a.button, .button {
	font-size: calc(10pt + 1vw);
}

.section .inner > .content p a.button {
	font-size: calc(10pt + 1vw);
}

/*################################################################
FOORMS
################################################################*/

.emma_form .form_item input {
	max-width: 140px;
}

/*################################################################
HEADERS
################################################################*/

h1 {
	font-size: calc(26pt + 1vw);
}

.section.full .inner > h2,
.section.full .inner > .content > h2 {
	font-size: calc(24pt + 1vw);
}

/*################################################################
MODALS
################################################################*/

.modal {
	overflow-x: hidden;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}

/* Profile Modal */

#profile-modal .modal_content {
	padding: 20px;
}

/*################################################################
IFRAMES
################################################################*/

.content > .aspect_ratio.align_left {
	float: none;
	width: 100%;
	padding-bottom: 51%;
	margin: 0 0 25px 0;
}