/* ============================================================
   EMS footer — scoped to .ems-footer, builds on theme tokens:
   black ground, #c02026 accent, Jost, square buttons, hazard stripe
=============================================================*/
.ems-footer {
	--ems-red: #c02026;
	--ems-red-dark: #900000;
	--ems-ink: #ffffff;
	--ems-muted: rgba(255, 255, 255, 0.62);
	--ems-faint: rgba(255, 255, 255, 0.38);
	--ems-rule: rgba(255, 255, 255, 0.12);
	color: var(--ems-muted);
	font-size: 15px;
	line-height: 1.6;
	margin-top: 5px;
}

.ems-footer p { text-align: left; margin: 0; }
.ems-footer ul { list-style: none; margin: 0; padding: 0; }
.ems-footer a { color: var(--ems-ink); text-decoration: none; transition: color .2s, box-shadow .2s, background-color .2s, border-color .2s; }
.ems-footer a:hover { color: var(--ems-ink); }
.ems-footer a:focus-visible { outline: 2px solid var(--ems-red); outline-offset: 3px; }
.ems-footer .wrap:after { display: none; }

/* ---------- CTA band ---------- */
.ems-footer__cta {
	position: relative;
	border-bottom: 1px solid var(--ems-rule);
	background: url(../images/map-w.webp) no-repeat 92% 100% / 560px auto;
}
.ems-footer__cta-inner {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 48px;
	padding: 90px 0 80px;
}
.ems-footer .ems-footer__eyebrow {
	color: var(--ems-faint);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: 22px;
	padding-left: 34px;
	position: relative;
}
.ems-footer .ems-footer__eyebrow:before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 22px;
	height: 2px;
	background: var(--ems-red);
}
.ems-footer__title {
	color: var(--ems-ink);
	font-size: clamp(34px, 4.6vw, 76px);
	font-weight: 700;
	line-height: .98;
	letter-spacing: -.01em;
	text-transform: uppercase;
	max-width: 14ch;
	margin: 0;
}
.ems-footer__title .is-outline { display: block; }
@supports (-webkit-text-stroke: 1px #fff) {
	.ems-footer__title .is-outline {
		color: transparent;
		-webkit-text-stroke: 1px rgba(255, 255, 255, .85);
	}
}

.ems-footer__cta-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 26px;
	flex-shrink: 0;
}
.ems-footer__label {
	display: block;
	color: var(--ems-faint);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: 6px;
}
.ems-footer__phone-number {
	display: inline-block;
	font-size: clamp(26px, 2.4vw, 38px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: .01em;
	box-shadow: inset 0 -2px 0 0 transparent;
	transition: box-shadow .2s;
}
.ems-footer__phone:hover .ems-footer__phone-number { box-shadow: inset 0 -2px 0 0 var(--ems-red); }

/* square button, outline-on-hover — same behaviour as theme .button */
.ems-footer a.ems-footer__btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: var(--ems-red);
	border: 2px solid var(--ems-red);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 18px 30px 17px;
}
.ems-footer a.ems-footer__btn i { transition: transform .2s; }
.ems-footer a.ems-footer__btn:hover { background: transparent; }
.ems-footer a.ems-footer__btn:hover i { transform: translateX(4px); }

/* ---------- link columns ---------- */
.ems-footer__main {
	display: grid;
	grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(150px, 1fr)) minmax(240px, 1.25fr);
	gap: 48px;
	padding: 72px 0 64px;
}
.ems-footer__heading {
	color: var(--ems-ink);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ems-rule);
	position: relative;
}
.ems-footer__heading:after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 28px;
	height: 1px;
	background: var(--ems-red);
}

.ems-footer__links li + li { margin-top: 10px; }
.ems-footer__links a {
	color: var(--ems-muted);
	font-size: 16px;
	box-shadow: inset 0 -1px 0 0 transparent;
}
.ems-footer__links a:hover {
	color: var(--ems-ink);
	box-shadow: inset 0 -1px 0 0 var(--ems-red);
}
.ems-footer__links a.is-current { color: var(--ems-ink); }
.ems-footer__links a.is-current:before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	background: var(--ems-red);
	margin: 0 10px 2px 0;
	vertical-align: middle;
}

/* brand */
.ems-footer__logo { display: inline-block; margin-bottom: 22px; }
.ems-footer__logo img { width: 260px; max-width: 100%; height: auto; display: block; }
.ems-footer .ems-footer__brand p { max-width: 34ch; margin-bottom: 26px; }
.ems-footer__social {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: 14px;
	font-weight: 500;
}
.ems-footer__social i {
	width: 40px;
	height: 40px;
	line-height: 38px;
	text-align: center;
	border: 1px solid var(--ems-rule);
	font-size: 16px;
	transition: background-color .2s, border-color .2s;
}
.ems-footer__social:hover i { background: var(--ems-red); border-color: var(--ems-red); }
.ems-footer__social span { box-shadow: inset 0 -1px 0 0 transparent; transition: box-shadow .2s; }
.ems-footer__social:hover span { box-shadow: inset 0 -1px 0 0 var(--ems-red); }

/* contact */
.ems-footer__contact address { font-style: normal; color: var(--ems-muted); margin: 0 0 10px; }
.ems-footer a.ems-footer__directions {
	display: inline-block;
	color: var(--ems-ink);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	box-shadow: inset 0 -1px 0 0 var(--ems-red);
	margin-bottom: 24px;
}
.ems-footer a.ems-footer__directions:hover { color: var(--ems-red); }
.ems-footer__reach li { display: flex; align-items: center; gap: 12px; }
.ems-footer__reach li + li { margin-top: 10px; }
.ems-footer__reach i { color: var(--ems-red); width: 16px; text-align: center; font-size: 14px; }
.ems-footer__reach a { box-shadow: inset 0 -1px 0 0 transparent; }
.ems-footer__reach a:hover { box-shadow: inset 0 -1px 0 0 var(--ems-red); }

/* ---------- bottom bar ---------- */
.ems-footer__bar { border-top: 1px solid var(--ems-rule); font-size: 13px; color: var(--ems-faint); }
.ems-footer__bar-inner {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 26px 0;
}
.ems-footer .ems-footer__legal { display: flex; gap: 24px; margin-right: auto; }
.ems-footer__legal a { color: var(--ems-faint); }
.ems-footer__legal a:hover { color: var(--ems-ink); }

/* go-to-top: keeps theme class for its scroll JS, own look */
.ems-footer .go-to-top { margin: 0; }
.ems-footer .go-to-top a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	color: var(--ems-muted);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ems-footer .go-to-top a:before { display: none; }
.ems-footer .go-to-top a i {
	width: 36px;
	height: 36px;
	line-height: 34px;
	text-align: center;
	border: 1px solid var(--ems-rule);
	color: var(--ems-ink);
	transition: background-color .2s, border-color .2s, transform .2s;
}
.ems-footer .go-to-top a:hover { color: var(--ems-ink); }
.ems-footer .go-to-top a:hover i { background: var(--ems-red); border-color: var(--ems-red); transform: translateY(-2px); }

/* ---------- responsive ---------- */
@media (max-width: 1279px) {
	.ems-footer__main { grid-template-columns: repeat(3, 1fr); row-gap: 56px; }
	.ems-footer__brand { grid-column: 1 / 3; }
	.ems-footer__contact { grid-column: 3; grid-row: 1; }
}

@media (max-width: 900px) {
	.ems-footer__cta-inner { flex-direction: column; align-items: flex-start; padding: 64px 0 56px; }
	.ems-footer__cta { background-size: 380px auto; background-position: 100% 100%; }
	.ems-footer__main { grid-template-columns: 1fr 1fr; gap: 44px 32px; padding: 56px 0 48px; }
	.ems-footer__brand { grid-column: 1 / -1; }
	.ems-footer__contact { grid-column: auto; grid-row: auto; }
	.ems-footer__bar-inner { flex-wrap: wrap; gap: 14px 24px; }
	.ems-footer__bar-inner > p { flex-basis: 100%; }
}

@media (max-width: 480px) {
	.ems-footer__cta-actions, .ems-footer a.ems-footer__btn { width: 100%; }
	.ems-footer a.ems-footer__btn { justify-content: space-between; }
	.ems-footer__main { gap: 40px 20px; }
	.ems-footer__contact { grid-column: 1 / -1; }
	.ems-footer__links a { font-size: 15px; }
	.ems-footer .go-to-top a span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.ems-footer *, .ems-footer *:before { transition: none !important; }
}
