/*
 * ZIN™ Academy Tour - the whole stylesheet, hand-maintained.
 *
 * Distilled from the Foundation 5.5.3 + Compass build that used to compile it,
 * keeping only what the page uses. The grid/visibility class names
 * (row, columns, small-11, large-4, show-for-large-up, ...) are kept as-is so
 * markup copied from older versions of index.html still works.
 *
 * Breakpoints (Foundation's): medium >= 48em (768px), large >= 64em (1024px).
 * Content images are not here: they are plain <img>/<picture> elements in
 * index.html (hover states are a CSS filter, not a second image), so the
 * routine content edits never touch this file.
 */

:root {
	/* Hover look of tile and featured photos (was a separate "-on" image). */
	--photo-hover: grayscale(1) brightness(0.55);
	--pink: #e73e5d;
	--pink-link: #ed4c6a;
	--white: #fff;
	--midnight: #1d1d24;
	--darkness-gray: #2c2d37;
	--footer-bg: #2c2c37;
	--mid-gray: #95959a;
	--feature-bg: #e9e9eb;
	--gutter: 0.9375rem;
	--font-reg: "Zandes-Regular", Helvetica, Arial, sans-serif;
	--font-med: "Zandes-Medium", Helvetica, Arial, sans-serif;
	--font-bold: "Zandes-Bold", Helvetica, Arial, sans-serif;
	--font-ui: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
}

/* ---------------------------------------------------------------- fonts */

@font-face {
	font-display: swap;
	font-family: "Zandes-Regular";
	src: url("/fonts/andeszumba-regular-webfont.woff2") format("woff2"), url("/fonts/andeszumba-regular-webfont.woff") format("woff");
}
@font-face {
	font-display: swap;
	font-family: "Zandes-Medium";
	src: url("/fonts/andeszumba-medium-webfont.woff2") format("woff2"), url("/fonts/andeszumba-medium-webfont.woff") format("woff");
}
@font-face {
	font-display: swap;
	font-family: "Zandes-Bold";
	src: url("/fonts/andeszumba-bold-webfont.woff2") format("woff2"), url("/fonts/andeszumba-bold-webfont.woff") format("woff");
}

/* ----------------------------------------------------------------- base */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
	font-size: 100%;
}

body {
	position: relative;
	margin: 0;
	padding: 0;
	background: #fff;
	color: #222;
	font-family: var(--font-ui);
	font-style: normal;
	font-weight: normal;
	line-height: 1.5;
}

img {
	display: inline-block;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

div, ul, li, h1, h2, h3, h4, h5, h6, p {
	margin: 0;
	padding: 0;
}

a {
	color: #008cba;
	line-height: inherit;
	text-decoration: none;
}
a:hover,
a:focus {
	color: #0078a0;
}
a:hover {
	cursor: pointer;
}

p {
	margin-bottom: 1.25rem;
	font-family: var(--font-reg);
	font-size: 18px;
	font-weight: normal;
	line-height: 1.6;
	text-rendering: optimizeLegibility;
}

/* .h3-.h6 give any element a heading's look, so tags can follow the document
   outline (e.g. <h2 class="h3">, <p class="h6">) without changing the design. */
h1, h2, h3, h4, h5, h6,
.h3, .h4, .h5, .h6 {
	margin-top: 0.2rem;
	margin-bottom: 0.5rem;
	color: #222;
	font-style: normal;
	font-weight: normal;
	line-height: 1.4;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5,
.h3, .h4, .h5 {
	text-transform: uppercase;
}
h1 {
	margin: 50px 0 0;
	font-family: var(--font-bold);
	font-size: 42px;
}
@media (min-width: 64em) {
	h1 {
		font-size: 48px;
	}
}
h2 {
	font-family: var(--font-bold);
	font-size: 48px;
}
h3, .h3 {
	margin: 10px 0 30px;
	font-family: var(--font-bold);
	font-size: 32px;
}
h4, .h4 {
	font-family: var(--font-med);
	font-size: 40px;
}
h5, .h5 {
	margin-top: 25px;
	font-family: var(--font-bold);
	font-size: 24px;
}
h6, .h6 {
	font-family: var(--font-reg);
	font-size: 24px;
}

b {
	font-family: var(--font-bold);
	font-weight: bold;
	line-height: inherit;
}

sup {
	position: relative;
	top: 0.1em;
	padding-right: 0.2em;
	font-size: 70%;
	line-height: 0;
}

ul {
	margin-bottom: 1.25rem;
	margin-left: 1.1rem;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.6;
	list-style-position: outside;
}

/* -------------------------------------------- grid (Foundation 5 subset) */

.row {
	width: 100%;
	max-width: 75.625rem;
	margin: 0 auto;
}
.row::before,
.row::after {
	content: " ";
	display: table;
}
.row::after {
	clear: both;
}

.columns {
	position: relative;
	float: left;
	width: 100%;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
.columns + .columns:last-child {
	float: right;
}

.small-3 { width: 25%; }
.small-9 { width: 75%; }
.small-11 { width: 91.66667%; }
.small-12 { width: 100%; }
.small-push-1 {
	position: relative;
	left: 8.33333%;
	right: auto;
}

@media (min-width: 48em) {
	.medium-2 { width: 16.66667%; }
	.medium-10 { width: 83.33333%; }
}

@media (min-width: 64em) {
	.large-4 { width: 33.33333%; }
	.large-6 { width: 50%; }
	.large-12 { width: 100%; }
	.large-push-0 {
		position: relative;
		left: 0;
		right: auto;
	}
	.columns.large-centered,
	.columns.large-centered:last-child {
		float: none;
		margin-left: auto;
		margin-right: auto;
	}
}

.right {
	float: right !important;
}
.text-center {
	text-align: center !important;
}

/* Swap whole blocks at the large breakpoint. */
.hide-for-large-up {
	display: inherit !important;
}
.show-for-large-up {
	display: none !important;
}
@media (min-width: 64em) {
	.show-for-large-up {
		display: inherit !important;
	}
	.hide-for-large-up {
		display: none !important;
	}
}

/* Page wrapper: contains the floated header/footer columns. */
.page {
	position: relative;
	/* Keeps text antialiasing identical to the original off-canvas wrapper. */
	backface-visibility: hidden;
	clear: both;
	width: 100%;
	overflow: hidden;
}

/* -------------------------------------------------------------- buttons */

button,
.button {
	position: relative;
	display: inline-block;
	margin: 0 0 1.25rem;
	padding: 1rem 2rem 1.0625rem 2rem;
	border-style: solid;
	border-width: 0;
	border-color: #007095;
	border-radius: 0;
	appearance: none;
	background-color: #008cba;
	color: var(--white);
	cursor: pointer;
	font-family: var(--font-ui);
	font-size: 1rem;
	font-weight: normal;
	line-height: normal;
	text-align: center;
	text-decoration: none;
	transition: background-color 300ms ease-out;
}
button:hover,
button:focus,
.button:hover,
.button:focus {
	background-color: #007095;
	color: var(--white);
}

.button {
	margin: 0;
	padding-bottom: 0.77em;
	border-radius: 0.2em;
	background: var(--pink);
	font-family: var(--font-bold);
	font-size: 0.9375rem;
	font-style: normal;
	font-weight: normal;
	text-transform: uppercase;
	transition: background 200ms ease-out;
}
button:hover,
button:focus,
.button:hover,
.button:focus {
	background: none;
}

.is-outlined-white {
	border: 1px solid var(--white);
	border-radius: 0.3em;
	background: none;
	transition: all 200ms ease;
}
.is-outlined-white:hover {
	background: none;
}

/* COMING SOON links: shown, but not clickable. */
.soldout {
	pointer-events: none;
}

/* --------------------------------------------------------------- header */

.social-item {
	display: inline-block;
	min-width: 54px;
	min-height: 46px;
	margin-right: -3px;
	background: var(--pink) url("/images/social-icons.png") no-repeat;
	text-indent: -999em;
}
.social-item:hover {
	background-color: #353541;
}
.icon-tw {
	background-position: 0 0;
}
.icon-fb {
	background-position: -54px 0;
}

@media (max-width: 63.9375em) {
	.main-logo {
		margin: 10px 0 10px 55px;
	}
}

.header-bar {
	padding: 18px 35px;
}
.header-bar a {
	margin-top: 16px;
	color: #2c2c37;
	font-family: "BrandonText-Bold", Helvetica, Arial, sans-serif;
	text-transform: uppercase;
}
.header-bar a:hover {
	color: var(--pink);
}

.light-gray-separator {
	border-top: solid 1px #ddd;
}

/* ----------------------------------------------------------------- hero */

/* The banner photo is a <picture> behind the text, cropped to fill like a cover background. */
.main-banner {
	position: relative;
	min-height: 496px;
	padding-top: 240px;
}
@media (min-width: 48em) {
	.main-banner {
		min-height: 500px;
		padding-top: 180px;
	}
}
.main-banner-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}
.main-banner h1,
.main-banner .h6 {
	color: var(--white);
}

.vjs-big-play-button {
	position: relative;
	display: block;
	width: 6.25em;
	height: 6.25em;
	margin: 0 auto;
	border: 0.15em solid var(--white);
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.2s;
}
.vjs-big-play-button:hover {
	background: rgba(255, 255, 255, 0.25);
}
.vjs-big-play-button:focus {
	outline: 0;
}
.vjs-big-play-button:focus-visible {
	outline: 2px solid var(--white);
	outline-offset: 4px;
}
.vjs-big-play-button::before {
	content: "";
	position: absolute;
	top: 2.2em;
	left: 2.6em;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 13px 0 13px 20px;
	border-color: transparent transparent transparent var(--white);
}

.p-intro {
	margin: 45px 0;
}
@media (min-width: 64em) {
	.p-intro {
		margin: 45px 80px;
	}
}

/* ------------------------------------------------------ featured academy */

/* Below large the item is a full-width float, exactly like the old .columns
   copy it replaces (that float/positioning also keeps text rendering identical). */
@media (max-width: 63.9375em) {
	.featured-item-wrapper {
		display: flow-root;
	}
	.featured-item {
		position: relative;
		z-index: 0;
	}
}
.featured-item {
	float: left;
	width: 100%;
	height: 387px;
	padding: 0 var(--gutter);
	text-align: center;
}
/* The photo fills the item, anchored top-left; text sits above it. */
.featured-image {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	object-position: 0 0;
}
.featured-item h2 {
	margin: 52px 0 50px;
	font-size: 42px;
}
.featured-item h2,
.featured-item a {
	color: var(--white);
}

@media (min-width: 64em) {
	.featured-item-wrapper {
		height: 399px;
		background: var(--feature-bg);
	}
	.featured-item {
		position: relative;
		z-index: 0;
		width: 629px;
		height: 399px;
		padding: 0;
	}
	.featured-item h2 {
		margin: 105px 0 25px;
		font-size: 48px;
	}
	.featured-item h2,
	.featured-item a,
	.featured-item a:focus {
		color: transparent;
	}
	.featured-item .button {
		border-color: transparent;
	}
	.featured-item:hover .featured-image {
		filter: var(--photo-hover);
	}
	.featured-item:hover h2,
	.featured-item:hover a {
		color: var(--white);
	}
	.featured-item:hover .button {
		border-color: var(--white);
	}
}

.featured-item-desc {
	padding: 32px 0 40px 35px;
	background-color: var(--feature-bg);
}
.featured-item-desc .subtitle {
	color: #9d9da3;
	text-transform: uppercase;
}
.featured-item-desc h3 {
	margin: 10px 0;
}
.featured-item-desc b {
	padding-top: 10px;
}
.featured-item-desc .button {
	background: var(--pink);
}
.featured-item-desc .button:hover {
	background: var(--darkness-gray);
}

/* A featured block pushes the "upcoming academies" heading further down. */
.featured-item-wrapper + .row > .h3 {
	margin-top: 70px;
}

/* -------------------------------------------------------- academy cards */
/* One .academy per event; cards wrap three per row on large screens. */

.academies {
	display: flex;
	flex-wrap: wrap;
}
.academies::before,
.academies::after {
	content: none;
}

/* The large-screen image tile on top of each card. */
.showcase-item {
	position: relative;
	z-index: 0;
	display: none;
	height: 236px;
	margin: 0 calc(-1 * var(--gutter));
	padding: 0 var(--gutter);
	overflow: hidden;
}
/* Always 390x226 at the top-left: the white strip it leaves to the right and
   below is the gap between neighbouring tiles and above the city line. */
.showcase-item img {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 390px;
	max-width: none;
	height: 226px;
	object-fit: cover;
}
@media (min-width: 64em) {
	.showcase-item {
		display: flow-root;
	}
}
.showcase-item:hover img {
	filter: var(--photo-hover);
}
.showcase-item .h4 {
	margin-top: 30px;
}
.showcase-item .h4,
.showcase-item a {
	color: transparent;
}
.showcase-item a {
	font-family: "BrandonText-Medium", Helvetica, Arial, sans-serif;
	font-size: 18px;
	text-transform: uppercase;
}
.showcase-item .button {
	padding-bottom: 0.65em;
	border-color: transparent;
}
.showcase-item:hover .h4,
.showcase-item:hover a {
	color: var(--white);
}
.showcase-item:hover .button {
	border-color: var(--white);
}

.cta-callout {
	padding-bottom: 25px;
	border-bottom: solid 2px #eff0f6;
	color: #808080;
	font-family: "BrandonText-Bold", Helvetica, Arial, sans-serif;
	text-transform: uppercase;
}
.cta-callout a {
	color: var(--pink-link);
}
.cta-callout .soldout {
	color: #808080;
}
@media (min-width: 64em) {
	.cta-callout {
		border-bottom: none;
	}
}

/* ---------------------------------------------------------- video modal */
/* A native <dialog> opened with showModal(), styled like Foundation's reveal. */

.reveal-modal {
	position: fixed;
	top: 0;
	right: auto;
	bottom: auto;
	left: 0;
	z-index: 1005;
	width: 100%;
	height: auto;
	max-width: none;
	max-height: none;
	min-height: 100vh;
	padding: 1.875rem;
	overflow: visible;
	border: solid 1px #666;
	border-radius: 3px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
	background-color: #fff;
	color: inherit;
}
.reveal-modal::backdrop {
	background: rgba(0, 0, 0, 0.45);
}
@media (min-width: 48em) {
	.reveal-modal {
		top: 6.25rem;
		right: 0;
		width: 80%;
		max-width: 75.625rem;
		min-height: 0;
		margin: 0 auto;
	}
	.reveal-modal.medium {
		width: 60%;
	}
}

.video-modal {
	padding: 0;
	background: #000;
}
@media (max-width: 47.9375em) {
	.video-modal {
		width: 90%;
		height: auto;
		min-height: inherit;
		margin: 1em 1em 0 1em;
	}
}

.flex-video {
	position: relative;
	height: 0;
	margin-bottom: 1rem;
	padding-top: 1.5625rem;
	padding-bottom: 67.5%;
	overflow: hidden;
}
.flex-video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.close-reveal-modal,
.close-reveal-modal:hover,
.close-reveal-modal:focus {
	position: absolute;
	top: -0.8em;
	right: -0.7em;
	z-index: 10000;
	width: 1em;
	height: 1em;
	margin: 0;
	padding: 0 0 0.2em;
	border-radius: 50%;
	background: var(--pink);
	color: var(--white);
	cursor: pointer;
	font-family: inherit;
	font-size: 2.5rem;
	font-weight: bold;
	line-height: 0.8em;
	text-align: center;
}
@media (max-width: 47.9375em) {
	.close-reveal-modal {
		display: none;
	}
}

/* --------------------------------------------------------------- footer */

.gf-bottom {
	padding: 2em 0 0;
	overflow: auto;
	background-color: var(--footer-bg);
}
@media (min-width: 64em) {
	.gf-bottom {
		padding: 2em 0;
	}
}

.gf-footer-nav-title {
	margin: 1em 0;
	color: var(--mid-gray);
	font-family: var(--font-reg);
	font-size: 1.375rem;
	font-weight: bold;
	text-transform: uppercase;
}

.gf-social {
	margin-bottom: 2em;
}
.gf-social-icon {
	display: inline-block;
	width: 25px;
	height: 27px;
	margin: 0 0.3em;
	overflow: hidden;
	background: url("/images/social-sprite.svg") transparent no-repeat;
	text-indent: -999em;
}
.gf-social-facebook { background-position: -3px 0; }
.gf-social-twitter { background-position: -42px 0; }
.gf-social-pinterest { background-position: -81px 0; }
.gf-social-youtube { background-position: -156px 0; }
.gf-social-instagram { background-position: -197px 0; }

.gf-footer-nav-list {
	margin: 0 -2em;
	padding: 0;
	background: var(--midnight);
	font-size: 1rem;
	list-style-type: none;
}
.gf-footer-nav-link {
	display: block;
	margin-bottom: 0.5em;
	padding: 1em 1em 1em 2em;
	border-bottom: solid 1px var(--darkness-gray);
	color: var(--white);
	text-transform: uppercase;
}
.gf-footer-nav-link:hover {
	color: var(--mid-gray);
}

@media (max-width: 63.9375em) {
	.gf-utility-copyright {
		margin-top: -1em;
		padding: 2em 0;
		background: var(--midnight);
	}
}

.gf-utility,
.gf-copyright {
	font-family: var(--font-reg);
	font-weight: normal;
}
@media (min-width: 52em) {
	.gf-utility,
	.gf-copyright {
		margin-top: 0.6em;
	}
	.gf-utility {
		float: left;
		width: 53%;
		margin-right: 0.8em;
	}
	.gf-copyright {
		float: right;
		width: 44%;
		padding-right: 3.5em;
		text-align: right;
	}
}
@media (min-width: 64em) {
	.gf-utility {
		width: 62%;
		margin-right: 0;
	}
	.gf-copyright {
		width: 36%;
	}
}
@media (min-width: 68em) {
	.gf-utility { width: 65%; }
	.gf-copyright { width: 33%; }
}
@media (min-width: 74em) {
	.gf-utility { width: 67%; }
	.gf-copyright { width: 32%; }
}

.gf-legal,
.gf-copyright-info {
	font-size: 0.875rem;
	text-align: right;
}
.gf-legal {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
.gf-legal-item {
	display: inline;
}
.gf-legal-item::after {
	content: "|";
	color: var(--mid-gray);
}
.gf-legal-item:last-child::after {
	content: "";
}
.gf-legal-link {
	display: inline-block;
	margin: 0 0.25em;
	color: var(--mid-gray);
}
.gf-legal-link:hover {
	color: var(--white);
}
.gf-copyright-info {
	margin: 0;
	color: var(--mid-gray);
}
