/*
 * Footer (live Elementor footer template 405). Each section nests its padding like the live
 * containers: horizontal padding is a % of the viewport, vertical padding a % of the inner width.
 */

.ew-footer__main { padding-inline: 5%; background-image: linear-gradient(180deg, var(--ew-purple) 0%, var(--ew-black) 100%); }
.ew-footer__inner { display: flex; flex-direction: column; gap: 20px; max-width: 1300px; margin-inline: auto; padding-block: 5%; }

.ew-footer__band { display: flex; gap: 20px; padding: 1%; }
.ew-footer__col { display: flex; flex-direction: column; gap: 20px; flex: 1 1 0; min-width: 0; padding: 1%; }

.ew-footer__title {
	margin-bottom: -20px;
	color: var(--ew-white);
	font-family: var(--ew-font-gibson);
	font-size: 25px;
	font-weight: 700;
	line-height: 1.1em;
	text-align: center;
	text-transform: uppercase;
}
.ew-footer__title p,
.ew-footer__text p,
.ew-footer__blurb p,
.ew-footer__bar-text p { margin-block-end: .9rem; }
.ew-footer__text,
.ew-footer__blurb { color: var(--ew-white); font-family: var(--ew-font-jakarta); font-size: 14px; font-weight: 300; line-height: 1.4em; }
.ew-footer__text { text-align: center; }

/* Newsletter (placeholder until the Forminator form is set) */
.ew-signup { display: flex; flex-wrap: wrap; }
.ew-signup__field { flex: 0 0 66.6666%; }
.ew-signup__submit { display: flex; flex: 0 0 33.3333%; min-width: 0; } /* the button overflows its third, as on live */
.ew-signup input[type="email"] {
	width: 100%;
	min-height: 47px;
	padding: 6px 16px;
	border: 0;
	border-radius: 0;
	background-color: var(--ew-white);
	color: #1f2124;
	font-family: var(--ew-font-jakarta);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.4em;
}
.ew-signup button,
.ew-signup button:hover,
.ew-signup button:focus {
	flex: 1 0 auto;
	min-height: 47px;
	padding: 13px 30px 14px;
	background-color: var(--ew-mustard);
	color: var(--ew-white);
}

/* Social icons */
.ew-footer__social { display: flex; justify-content: center; gap: 0 5px; margin: 0; padding: 0; list-style: none; line-height: 0; }
.ew-footer__social a {
	display: inline-flex;
	padding: .5em;
	border-radius: 3px;
	background-color: var(--ew-off-white);
	color: var(--ew-purple);
	font-size: 29px;
	line-height: 1;
}
.ew-footer__social .ew-icon { width: 1em; height: 1em; }

/* Link columns */
.ew-footer__cols { display: flex; gap: 20px; padding: 1%; border-top: 1px solid var(--ew-off-white); }
.ew-footer__brand-logo { line-height: 0; }
.ew-footer__brand-logo .ew-logo { display: inline-block; }
.ew-footer__brand-logo .ew-logo img { width: 75%; }
.ew-footer__badge img { width: 50%; vertical-align: middle; }
.ew-footer__heading {
	margin: 0;
	color: var(--ew-white);
	font-family: var(--ew-font-gibson);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.1em;
	text-transform: uppercase;
}
.ew-footer__menu { margin: 0; padding: 0; list-style: none; }
.ew-footer__menu a {
	display: block;
	padding: 5px 0;
	color: var(--ew-white);
	font-family: var(--ew-font-jakarta);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.4em;
}
.ew-footer__menu a:hover,
.ew-footer__menu a:focus,
.ew-footer__menu .current-menu-item > a { color: var(--ew-mustard); }

.ew-footer__contact { margin: 0; padding: 0; list-style: none; }
.ew-footer__contact li:not(:last-child) { padding-block-end: 12.5px; }
.ew-footer__contact li:not(:first-child) { margin-block-start: 12.5px; }
.ew-footer__contact li,
.ew-footer__contact a { display: flex; align-items: flex-start; }
.ew-footer__contact-icon { display: flex; padding-inline-end: 5px; color: var(--ew-mustard); }
.ew-footer__contact-icon .ew-icon { width: 25px; height: 25px; margin-right: 6.25px; }
.ew-footer__contact-text { min-width: 0; overflow-wrap: anywhere; padding-left: 5px; color: var(--ew-white); font-family: var(--ew-font-jakarta); font-size: 14px; font-weight: 300; line-height: 1.4em; }

.ew-footer__spacer { display: flex; flex-wrap: nowrap; padding: 1%; }
.ew-footer__spacer span { flex: 1 1 0; padding: 1%; }

/* Copyright bar */
.ew-footer__bar { padding-inline: 1%; background-color: var(--ew-mustard); }
.ew-footer__bar-inner { display: flex; justify-content: space-evenly; gap: 20px; max-width: 1300px; margin-inline: auto; padding-block: 1%; }
.ew-footer__bar-text { color: var(--ew-purple); font-family: var(--ew-font-jakarta); font-size: 14px; font-weight: 300; line-height: 1.4em; text-align: center; }

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	.ew-footer__band { padding: 0 0 5%; }
	.ew-footer__band .ew-footer__col:not(:last-child) .ew-footer__title { font-size: 20px; }
	.ew-footer__social a { font-size: 15px; }
	.ew-footer__cols { flex-wrap: wrap; padding: 5% 0 0; }
	.ew-footer__bar { padding-inline: 2%; }
	.ew-footer__bar-inner { padding-block: 2%; }
	.ew-signup__field { flex-basis: 100%; }
	.ew-signup__submit { flex-basis: 100%; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.ew-footer__cols .ew-footer__col { flex: 0 0 48%; }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.ew-footer__inner { padding-block: 15%; }
	.ew-footer__band { flex-direction: column; padding: 0 0 15%; }
	.ew-footer__cols { flex-direction: column; padding: 16% 0 0; }
	.ew-footer__col--brand { margin-bottom: 75px; }
	/* On the live site this box is squeezed to 38px and the 69px badge image overflows into the
	   space below; reproduced so the columns that follow start at the same height. */
	.ew-footer__col--brand .ew-footer__badge { height: 38px; }
	.ew-footer__bar { padding-inline: 7%; }
	.ew-footer__bar-inner { flex-wrap: wrap; padding-block: 7%; }
}
