/**
 * Footer block front-end styles — Figma footer (205:4003).
 */

footer.wp-block-template-part {
	margin-top: 0;
}

.epoch-footer {
	--epoch-footer-button-size: 50px;
	--epoch-footer-caption-line-height: 1.498;
	--epoch-footer-link-line-height: 1.502;

	background: var( --epoch-footer-bg, var( --wp--preset--color--contrast, #000 ) );
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	overflow: hidden;
	width: 100%;
}

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

.epoch-footer > *,
.epoch-footer .wp-block-group,
.epoch-footer .wp-block-list,
.epoch-footer .wp-block-separator {
	margin-block-end: 0;
	margin-block-start: 0;
}

.epoch-footer__ctas {
	--epoch-footer-button-size: 50px;

	background: var( --epoch-footer-bg, var( --wp--preset--color--contrast, #000 ) );
	border-bottom: 1px solid var( --epoch-footer-divider, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	box-sizing: border-box;
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	margin-block: 0;
	overflow: hidden;
	width: 100%;
}

.epoch-footer__ctas.epoch-footer__ctas {
	margin-block-start: 0;
	margin-top: 0;
}

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

.tassel-cta-rows.is-width-container {
	margin-inline: auto;
	max-width: var( --wp--style--global--content-size, 1253px );
}

.tassel-cta-rows.is-width-full {
	left: 50%;
	margin-inline: 0;
	max-width: none;
	position: relative;
	transform: translateX( -50% );
	width: 100vw;
}

.editor-styles-wrapper .tassel-cta-rows.is-width-full {
	left: auto;
	margin-inline: calc( 50% - 50vw ) !important;
	max-width: none !important;
	transform: none;
	width: 100vw !important;
}

.epoch-footer__cta {
	border-top: 1px solid var( --epoch-footer-divider, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	position: relative;
}

.epoch-footer__cta::before {
	background: var( --wp--preset--color--primary, #19468d );
	content: '';
	inset: 0;
	opacity: 0;
	position: absolute;
	transform: scaleY( 0 );
	transform-origin: bottom center;
	transition: opacity 0.2s ease, transform 0.25s ease;
}

.epoch-footer__cta:hover::before,
.epoch-footer__cta:focus-within::before {
	opacity: 1;
	transform: scaleY( 1 );
	transform-origin: bottom center;
}

.epoch-footer__cta-inner {
	align-items: center;
	display: flex;
	gap: var( --epoch-footer-inner-gap, 22px );
	margin-inline: auto;
	max-width: var(
		--tassel-cta-content-width,
		var( --epoch-footer-width, 1470px )
	);
	min-height: 94px;
	padding: 22px var( --wp--preset--spacing--container-x, 45px );
	position: relative;
	transition: padding-left 0.25s ease, transform 0.25s ease;
	width: 100%;
	z-index: 1;
}

.epoch-footer__cta:hover .epoch-footer__cta-inner,
.epoch-footer__cta:focus-within .epoch-footer__cta-inner {
	padding-left: calc( var( --wp--preset--spacing--container-x, 45px ) + 14px );
	transform: translateX( 4px );
}

.epoch-footer__cta-link {
	color: inherit;
	display: block;
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--h-4, 27.5px );
	font-weight: 700;
	line-height: 1.149;
	margin: 0;
	text-decoration: none;
	width: 100%;
}

.epoch-footer__cta:hover .epoch-footer__cta-link,
.epoch-footer__cta:focus-within .epoch-footer__cta-link,
.epoch-footer__cta-link:hover,
.epoch-footer__cta-link:focus {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
}

.epoch-footer__cta-icon,
.epoch-footer__social-link {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit;
	display: inline-flex;
	flex: 0 0 auto;
	height: var( --epoch-footer-button-size );
	justify-content: center;
	overflow: hidden;
	position: relative;
	width: var( --epoch-footer-button-size );
}

.epoch-footer__cta-icon::before {
	background: currentColor;
	content: '';
	height: 1px;
	left: 50%;
	position: absolute;
	top: calc( 50% + 26px );
	transform: translateX( -50% );
	width: 66px;
}

.epoch-footer__cta-icon-fill {
	background: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	bottom: -3px;
	height: 1px;
	left: 50%;
	position: absolute;
	transform: translateX( -50% );
	transition: height 0.25s ease;
	width: 54px;
	z-index: 0;
}

.epoch-footer__cta:hover .epoch-footer__cta-icon-fill,
.epoch-footer__cta:focus-within .epoch-footer__cta-icon-fill {
	height: 54px;
}

.epoch-footer__cta:hover .epoch-footer__cta-icon,
.epoch-footer__cta:focus-within .epoch-footer__cta-icon {
	border-color: var( --wp--preset--color--base, #fff );
	color: var( --epoch-footer-bg, var( --wp--preset--color--contrast, #000 ) );
}

.epoch-footer__cta-icon-glyph {
	align-items: center;
	display: inline-flex;
	height: 18px;
	justify-content: center;
	margin-left: 2px;
	position: relative;
	width: 10px;
	z-index: 1;
}

.epoch-footer__cta-icon-glyph svg {
	display: block;
	height: 18px;
	width: 10px;
}

.epoch-footer__body {
	background: var( --epoch-footer-bg, var( --wp--preset--color--contrast, #000 ) );
	padding-block: var( --epoch-footer-body-gap, 35px );
	width: 100%;
}

.epoch-footer__shell {
	display: flex;
	flex-direction: column;
	gap: var( --epoch-footer-body-gap, 35px );
	margin-inline: auto;
	max-width: var( --epoch-footer-width, 1470px );
	padding-inline: var( --wp--preset--spacing--container-x, 45px );
	width: 100%;
}

.epoch-footer__columns {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: var( --epoch-footer-column-gap, 35px ) var( --epoch-footer-inner-gap, 22px );
	justify-content: flex-start;
	width: 100%;
}

.epoch-footer__column {
	border-left: 1px solid var( --epoch-footer-divider, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	display: flex;
	flex: 1 0 var( --epoch-footer-column-min-width, 200px );
	flex-direction: column;
	gap: 5px;
	min-width: var( --epoch-footer-column-min-width, 200px );
	padding: 0 15px 5px;
}

.epoch-footer__column--text,
.epoch-footer__column--social {
	min-width: min( 300px, 100% );
}

.epoch-footer__column--contact {
	border-left: 0;
	flex-basis: 100%;
	gap: var( --epoch-footer-inner-gap, 22px );
	padding-inline: 0;
}

.epoch-footer__column--contact > .epoch-footer__column-title {
	padding-inline: 15px;
}

.epoch-footer__column-title,
.epoch-footer .epoch-footer__column-title.wp-block-heading {
	color: var( --epoch-footer-heading, var( --wp--preset--color--primary-light, #7ba6de ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--button, 17px );
	font-weight: 600;
	letter-spacing: 1px;
	line-height: 1.502;
	margin: 0;
	padding-bottom: 0;
	text-transform: none;
}

.epoch-footer__column--social .epoch-footer__column-title {
	padding-bottom: 8px;
}

.epoch-footer__link-list,
.epoch-footer__socials {
	list-style: none;
	margin: 0;
	padding: 0;
}

.epoch-footer__link-list {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.epoch-footer-menu {
	--epoch-footer-menu-color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	--epoch-footer-menu-hover-color: var( --epoch-footer-heading, var( --wp--preset--color--primary-light, #7ba6de ) );

	width: 100%;
}

.epoch-footer-menu__list,
.epoch-footer-menu__list .sub-menu {
	display: flex;
	flex-direction: column;
	gap: var( --epoch-footer-menu-gap, 5px );
	list-style: none;
	margin: 0;
	padding: 0;
}

.epoch-footer-menu__list .sub-menu {
	border-left: 1px solid var( --epoch-footer-divider, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	margin-top: var( --epoch-footer-menu-gap, 5px );
	padding-left: 12px;
}

.epoch-footer-menu a {
	color: var( --epoch-footer-menu-color );
	font-family: var( --epoch-footer-menu-font-family, var( --wp--preset--font-family--body ) );
	font-size: var( --epoch-footer-menu-font-size, var( --wp--preset--font-size--link, 17px ) );
	font-weight: 400;
	letter-spacing: 0;
	line-height: var( --epoch-footer-link-line-height );
	margin: 0;
	text-decoration: none;
}

.epoch-footer-menu.is-uppercase a {
	text-transform: uppercase;
}

.epoch-footer-menu a:hover,
.epoch-footer-menu a:focus {
	color: var( --epoch-footer-menu-hover-color );
}

.epoch-footer__link-list a,
.epoch-footer__link,
.epoch-footer__column-text,
.epoch-footer__column-text p,
.epoch-footer .epoch-footer__column-text.wp-block-paragraph {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--link, 17px );
	font-weight: 400;
	letter-spacing: 0;
	line-height: var( --epoch-footer-link-line-height );
	margin: 0;
	text-decoration: none;
}

.epoch-footer__link-list a:hover,
.epoch-footer__link-list a:focus,
.epoch-footer__link:hover,
.epoch-footer__link:focus {
	color: var( --epoch-footer-heading, var( --wp--preset--color--primary-light, #7ba6de ) );
}

.epoch-footer__column-text {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.epoch-footer__column-text.wp-block-epoch-contact-information {
	gap: 0;
}

.epoch-footer__contact-address {
	white-space: pre-line;
}

.epoch-footer__section-title,
.epoch-footer .epoch-footer__section-title.wp-block-heading {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --epoch-footer-contact-heading-size, 27.535px );
	font-weight: 700;
	letter-spacing: 0;
	line-height: var( --epoch-footer-contact-heading-line-height, 31.666px );
	margin: 0;
}

.epoch-footer__grade-contacts {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: var( --epoch-footer-column-gap, 35px ) var( --epoch-footer-inner-gap, 22px );
	width: 100%;
}

.epoch-footer__grade-contact {
	border-left: 1px solid var( --epoch-footer-divider, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	display: flex;
	flex: 1 0 var( --epoch-footer-column-min-width, 200px );
	flex-direction: column;
	gap: 5px;
	min-width: var( --epoch-footer-column-min-width, 200px );
	padding: 0 15px 5px;
}

.epoch-footer__grade-contact-title,
.epoch-footer .epoch-footer__grade-contact-title {
	color: var( --epoch-footer-heading, var( --wp--preset--color--primary-light, #7ba6de ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--caption, 15px );
	font-weight: 600;
	letter-spacing: 1px;
	line-height: var( --epoch-footer-contact-line-height, 25.5px );
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.epoch-footer__grade-contact a,
.epoch-footer__grade-contact span {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --epoch-footer-contact-font-size, 17px );
	font-weight: 400;
	letter-spacing: 0;
	line-height: var( --epoch-footer-contact-line-height, 25.5px );
	margin: 0;
	text-decoration: none;
}

.epoch-footer__grade-contact a:hover,
.epoch-footer__grade-contact a:focus {
	color: var( --epoch-footer-heading, var( --wp--preset--color--primary-light, #7ba6de ) );
	text-decoration: underline;
	text-underline-position: from-font;
}

.epoch-footer__column-text a {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	margin-bottom: 0;
	text-decoration: underline;
	text-underline-position: from-font;
}

.epoch-footer__column-text a:hover,
.epoch-footer__column-text a:focus {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
}

.epoch-footer__column--text .epoch-global-contact {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	display: block;
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--link, 17px );
	font-weight: 400;
	letter-spacing: 0;
	line-height: var( --epoch-footer-link-line-height );
	margin: 0;
	margin-bottom: 0;
}

.epoch-footer__column--text a.epoch-global-contact {
	text-decoration: underline;
	text-underline-position: from-font;
}

.epoch-footer__socials {
	align-items: center;
	border: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var( --epoch-footer-social-gap, 12px );
	outline-offset: 4px;
}

.epoch-footer__social-link {
	border-color: var( --epoch-footer-social-border-color, var( --epoch-footer-heading, var( --wp--preset--color--primary-light, #7ba6de ) ) );
	color: var( --epoch-footer-social-icon-color, var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) ) );
	height: var( --epoch-footer-social-size, 28px );
	text-decoration: none;
	transition: border-color 0.25s ease, color 0.25s ease;
	width: var( --epoch-footer-social-size, 28px );
}

.epoch-footer__social-link::before {
	background: var( --wp--preset--color--primary-light, #7ba6de );
	bottom: -3px;
	content: '';
	height: 0;
	left: 50%;
	position: absolute;
	transform: translateX( -50% );
	transition: height 0.25s ease;
	width: calc( var( --epoch-footer-social-size, 28px ) + 6px );
	z-index: 0;
}

.epoch-footer__social-link:hover,
.epoch-footer__social-link:focus {
	color: var( --wp--preset--color--base, #fff );
}

.epoch-footer__social-link:hover::before,
.epoch-footer__social-link:focus::before {
	height: calc( var( --epoch-footer-social-size, 28px ) + 6px );
}

.epoch-footer__social-link i,
.epoch-footer__social-link svg {
	display: block;
	font-size: var( --epoch-footer-social-icon-size, 15px );
	height: var( --epoch-footer-social-icon-size, 15px );
	line-height: var( --epoch-footer-social-icon-size, 15px );
	position: relative;
	text-align: center;
	transition: color 0.25s ease;
	width: var( --epoch-footer-social-icon-size, 15px );
	z-index: 1;
}

.epoch-footer__divider {
	background: var( --epoch-footer-divider, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	border: 0;
	height: 1px;
	width: 100%;
}

.epoch-footer__logos {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 30px var( --epoch-footer-inner-gap, 22px );
	justify-content: center;
	overflow: hidden;
	width: 100%;
}

.epoch-footer__logo {
	align-items: center;
	display: flex;
	justify-content: center;
}

.epoch-footer__logo-image {
	display: block;
	height: auto;
	max-height: var( --epoch-footer-logo-max-height, 100px );
	max-width: 220px;
	object-fit: contain;
	width: auto;
}

.epoch-footer__last-row {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: var( --epoch-footer-inner-gap, 22px );
	justify-content: center;
	padding-block: var( --epoch-footer-inner-gap, 22px );
	text-align: center;
	width: 100%;
}

.epoch-footer__school-logo {
	align-items: center;
	display: flex;
	justify-content: center;
	padding-bottom: 12px;
}

.epoch-footer__school-logo .custom-logo-link {
	display: inline-flex;
}

.epoch-footer__school-logo-image,
.epoch-footer__school-logo img {
	display: block;
	height: auto;
	max-height: var( --epoch-footer-school-logo-height, 63px );
	max-width: 240px;
	object-fit: contain;
	width: auto;
}

.epoch-footer__legal {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 100%;
	width: 100%;
}

.epoch-footer__copyright,
.epoch-footer__copyright p,
.epoch-footer__copyright a,
.epoch-footer .epoch-footer__copyright.wp-block-paragraph {
	color: var( --epoch-footer-text, var( --wp--preset--color--base, #fff ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--caption, 15px );
	font-weight: 400;
	line-height: var( --epoch-footer-caption-line-height );
	margin: 0;
}

.epoch-footer__copyright a {
	text-decoration: underline;
	text-underline-position: from-font;
}

.epoch-footer__disclaimer,
.epoch-footer__disclaimer p,
.epoch-footer .epoch-footer__disclaimer.wp-block-paragraph {
	color: var( --epoch-footer-muted, var( --wp--preset--color--secondary-dark, #6c7071 ) );
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--caption, 15px );
	font-weight: 400;
	line-height: var( --epoch-footer-caption-line-height );
	margin: 0;
}

@media ( min-width: 1025px ) {
	.epoch-footer__columns {
		display: grid;
		grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	}

	.epoch-footer__columns > .epoch-footer__column--contact {
		grid-column: 3 / 5;
	}

	.epoch-footer__column--contact .epoch-footer__grade-contacts {
		display: grid;
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}

	.epoch-footer__column--contact .epoch-footer__grade-contact {
		min-width: 0;
	}
}

@media ( min-width: 782px ) and ( max-width: 1024px ) {
	.epoch-footer__grade-contacts {
		display: grid;
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}

	.epoch-footer__grade-contact {
		min-width: 0;
	}
}

@media ( max-width: 781px ) {
	.epoch-footer__cta-inner,
	.epoch-footer__shell {
		padding-inline: var( --wp--preset--spacing--container-x, 22px );
	}

	.epoch-footer__cta-inner {
		min-height: 80px;
	}

	.epoch-footer__cta:hover .epoch-footer__cta-inner,
	.epoch-footer__cta:focus-within .epoch-footer__cta-inner {
		padding-left: calc( var( --wp--preset--spacing--container-x, 22px ) + 10px );
		transform: translateX( 2px );
	}

	.epoch-footer__cta-link {
		font-size: var( --wp--preset--font-size--h-5, 22.6px );
	}

	.epoch-footer__columns {
		flex-direction: column;
	}

	.epoch-footer__column,
	.epoch-footer__grade-contact {
		flex: 0 0 auto;
		min-height: 0;
		width: 100%;
	}

	.epoch-footer__grade-contacts {
		flex-direction: column;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.epoch-footer__cta::before,
	.epoch-footer__cta-inner,
	.epoch-footer__cta-icon-fill {
		transition: none;
	}
}
