/**
 * Modern site footer — divider, grid, showcase typography.
 */

.garage-site-footer.garage-site-footer--modern {
	position: relative;
	z-index: 1;
	overflow: clip;
	margin-top: clamp(2rem, 4vw, 3.5rem);
	padding-bottom: 0;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.garage-site-footer--modern[data-garage-footer] {
	border-top: 0;
}

/* Animated top line */
.garage-footer__divider {
	position: relative;
	width: min(92%, 72rem);
	height: 1px;
	margin: 0 auto;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(193, 18, 31, 0.15) 18%,
		rgba(245, 245, 245, 0.42) 50%,
		rgba(193, 18, 31, 0.88) 72%,
		rgba(193, 18, 31, 0.15) 88%,
		transparent 100%
	);
	background-size: 220% 100%;
	opacity: 0.85;
	animation: garage-footer-line-shift 9s ease-in-out infinite;
}

.garage-footer__divider::after {
	content: "";
	position: absolute;
	inset: -18px 8% auto;
	height: 36px;
	background: radial-gradient(ellipse at center, rgba(193, 18, 31, 0.28), transparent 72%);
	filter: blur(12px);
	pointer-events: none;
	animation: garage-footer-line-glow 5s ease-in-out infinite alternate;
}

@keyframes garage-footer-line-shift {
	0%,
	100% {
		background-position: 0% 50%;
		opacity: 0.72;
	}

	50% {
		background-position: 100% 50%;
		opacity: 1;
	}
}

@keyframes garage-footer-line-glow {
	from {
		opacity: 0.45;
		transform: scaleX(0.92);
	}

	to {
		opacity: 0.95;
		transform: scaleX(1.04);
	}
}

/* Main grid */
.garage-site-footer--modern .garage-site-footer__inner {
	padding-block: clamp(2.25rem, 5vw, 3.5rem) clamp(1rem, 2.5vw, 1.5rem);
}

.garage-footer__grid {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.5rem);
	align-items: start;
}

@media (min-width: 768px) {
	.garage-footer__grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.75fr) minmax(0, 1fr);
		gap: clamp(1.5rem, 3vw, 2.25rem);
	}
}

.garage-footer__col {
	display: grid;
	gap: var(--space-sm);
}

.garage-footer__col--brand {
	gap: var(--space-md);
}

.garage-footer__logo-link {
	display: inline-flex;
	width: fit-content;
	transition: transform 320ms ease, opacity 320ms ease;
}

.garage-footer__logo-link:hover,
.garage-footer__logo-link:focus-visible {
	transform: translateY(-2px);
	opacity: 0.92;
}

.garage-footer__tagline {
	max-width: 22rem;
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-400);
	line-height: 1.55;
}

.garage-footer__contact {
	display: grid;
	gap: 0.55rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.garage-footer__contact a {
	position: relative;
	display: inline-flex;
	width: fit-content;
	color: var(--text-body);
	font-size: var(--fs-300);
	font-weight: 600;
	text-decoration: none;
	transition: color 220ms ease, transform 220ms ease;
}

.garage-footer__contact a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.12rem;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, var(--clr-primary-500), transparent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 280ms ease;
}

.garage-footer__contact a:hover,
.garage-footer__contact a:focus-visible {
	color: var(--text-strong);
	transform: translateX(3px);
}

.garage-footer__contact a:hover::after,
.garage-footer__contact a:focus-visible::after {
	transform: scaleX(1);
}

.garage-footer__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.garage-site-footer--modern .garage-btn--sm {
	padding: 0.52rem 1.05rem;
	font-size: var(--fs-200);
}

.garage-site-footer--modern .garage-btn--block {
	width: 100%;
}

.garage-footer__heading {
	margin: 0 0 0.35rem;
	color: var(--text-strong);
	font-family: var(--ff-heading);
	font-size: var(--fs-500);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.garage-footer-nav--column {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.45rem;
}

.garage-footer-nav--column .garage-footer-nav__link,
.garage-footer-nav--column a {
	padding: 0.15rem 0;
	min-height: auto;
}

.garage-footer-nav--column .garage-footer-nav__link::before,
.garage-footer-nav--column a::before {
	content: "";
	display: inline-block;
	width: 0.35rem;
	height: 0.35rem;
	margin-right: 0.55rem;
	border-radius: 50%;
	background: rgba(193, 18, 31, 0.45);
	transform: scale(0);
	transition: transform 220ms ease, background 220ms ease;
}

.garage-footer-nav--column .garage-footer-nav__link:hover::before,
.garage-footer-nav--column .garage-footer-nav__link:focus-visible::before,
.garage-footer-nav--column a:hover::before,
.garage-footer-nav--column a:focus-visible::before {
	transform: scale(1);
	background: var(--clr-primary-500);
}

.garage-footer__col--newsletter {
	padding: clamp(1.1rem, 2.5vw, 1.45rem);
	border-color: rgba(193, 18, 31, 0.28);
	background:
		linear-gradient(155deg, rgba(193, 18, 31, 0.16) 0%, rgba(12, 12, 12, 0.55) 48%, rgba(0, 0, 0, 0.72) 100%);
	box-shadow:
		inset 0 1px 0 rgba(245, 245, 245, 0.06),
		0 18px 40px rgba(0, 0, 0, 0.28);
	transition: border-color 320ms ease, transform 320ms ease, box-shadow 320ms ease;
}

.garage-footer__col--newsletter:hover {
	border-color: rgba(193, 18, 31, 0.42);
	transform: translateY(-2px);
	box-shadow:
		inset 0 1px 0 rgba(245, 245, 245, 0.08),
		0 22px 48px rgba(0, 0, 0, 0.34);
}

.garage-footer__lead {
	margin: 0 0 0.35rem;
	color: var(--text-muted);
	font-size: var(--fs-300);
	line-height: 1.55;
}

.garage-footer__newsletter-form {
	display: grid;
	gap: 0.75rem;
}

/* Meta row — finishing line below marquee */
.garage-footer__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
	align-items: center;
	justify-content: space-between;
	padding-block: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.75rem, 2vw, 1rem);
	border-top: 1px solid rgba(193, 18, 31, 0.32);
	background: linear-gradient(180deg, rgba(193, 18, 31, 0.06) 0%, transparent 100%);
}

.garage-footer__meta-right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem 1.25rem;
	text-align: right;
}

.garage-footer__copy,
.garage-footer__distance,
.garage-footer__credit {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--fs-300);
}

.garage-footer__distance {
	color: rgba(245, 245, 245, 0.62);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.garage-footer__credit-link {
	color: rgba(245, 245, 245, 0.55);
	font-size: var(--fs-300);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.garage-footer__credit-link:hover,
.garage-footer__credit-link:focus-visible {
	color: var(--clr-primary-400, #ff4d57);
}

/* Premium marquee — single row above copyright */
.garage-site-footer--marquee {
	--garage-footer-marquee-duration: 88s;
}

.garage-footer__marquee-stage {
	position: relative;
	overflow: hidden;
	padding: clamp(1.75rem, 4vw, 2.75rem) 0 clamp(0.75rem, 2vw, 1.25rem);
	border: 0;
	background: transparent;
	mask-image: linear-gradient(
		90deg,
		transparent 0%,
		#000 6%,
		#000 94%,
		transparent 100%
	);
	-webkit-mask-image: linear-gradient(
		90deg,
		transparent 0%,
		#000 6%,
		#000 94%,
		transparent 100%
	);
}

.garage-footer__marquee-glow {
	position: absolute;
	inset: 10% 0;
	background: radial-gradient(ellipse 70% 55% at 50% 50%, rgba(207, 37, 62, 0.12), transparent 72%);
	filter: blur(28px);
	opacity: 0.65;
	animation: garage-footer-marquee-glow 8s ease-in-out infinite alternate;
	pointer-events: none;
}

.garage-footer__marquee-shine {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		105deg,
		transparent 0%,
		transparent 42%,
		rgba(245, 245, 245, 0.03) 50%,
		transparent 58%,
		transparent 100%
	);
	background-size: 220% 100%;
	animation: garage-footer-marquee-shine 12s ease-in-out infinite;
	pointer-events: none;
}

@keyframes garage-footer-marquee-glow {
	from {
		opacity: 0.7;
		transform: scale(0.98);
	}

	to {
		opacity: 1;
		transform: scale(1.02);
	}
}

@keyframes garage-footer-marquee-shine {
	0%,
	100% {
		background-position: 0% 50%;
	}

	50% {
		background-position: 100% 50%;
	}
}

.garage-footer__marquee-row {
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 100%;
	line-height: 0.88;
}

.garage-footer__marquee-track {
	display: flex;
	width: max-content;
	will-change: transform;
	animation: garage-footer-marquee-scroll var(--garage-footer-marquee-duration) linear infinite;
}

.garage-footer__marquee-group {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3rem);
	padding-inline: clamp(1rem, 2.5vw, 2rem);
	white-space: nowrap;
}

.garage-footer__marquee-word {
	display: inline-block;
	font-family: var(--ff-heading);
	font-size: clamp(3.5rem, 14vw, 10rem);
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 0.92;
}

.garage-footer__marquee-word--outline {
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(245, 245, 245, 0.22);
	text-shadow:
		0 0 48px rgba(193, 18, 31, 0.15),
		0 0 2px rgba(207, 37, 62, 0.25);
}

.garage-footer__marquee-word--fill {
	background: linear-gradient(
		115deg,
		#ffffff 0%,
		#f5f5f5 18%,
		#cf253e 42%,
		#c1121f 58%,
		#6b0f1a 78%,
		#1a0208 100%
	);
	background-size: 220% 220%;
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 0 40px rgba(207, 37, 62, 0.28));
	animation: garage-footer-marquee-gradient 14s ease-in-out infinite;
}

@keyframes garage-footer-marquee-gradient {
	0%,
	100% {
		background-position: 0% 50%;
	}

	50% {
		background-position: 100% 50%;
	}
}

.garage-footer__marquee-sep {
	display: inline-block;
	width: clamp(0.5rem, 1.4vw, 0.7rem);
	height: clamp(0.5rem, 1.4vw, 0.7rem);
	border-radius: 50%;
	background: linear-gradient(135deg, #ffffff 0%, #cf253e 55%, #c1121f 100%);
	box-shadow:
		0 0 20px rgba(207, 37, 62, 0.55),
		0 0 40px rgba(193, 18, 31, 0.2);
	transform: translateY(0.06em);
	animation: garage-footer-marquee-pulse 3.5s ease-in-out infinite;
}

@keyframes garage-footer-marquee-pulse {
	0%,
	100% {
		transform: translateY(0.06em) scale(1);
		opacity: 0.85;
	}

	50% {
		transform: translateY(0.06em) scale(1.15);
		opacity: 1;
	}
}

.garage-footer__marquee-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.garage-footer__marquee-stage.is-paused .garage-footer__marquee-track,
.garage-footer__marquee-stage.is-hover-paused .garage-footer__marquee-track {
	animation-play-state: paused;
}

.garage-footer__marquee-stage.is-static .garage-footer__marquee-track {
	animation: none;
	transform: none;
	justify-content: center;
	width: 100%;
	flex-wrap: wrap;
}

.garage-footer__marquee-stage.is-static .garage-footer__marquee-group + .garage-footer__marquee-group {
	display: none;
}

.garage-footer__marquee-stage.is-static .garage-footer__marquee-word--fill {
	animation: none;
}

@keyframes garage-footer-marquee-scroll {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-50%, 0, 0);
	}
}

/* Back to top — footer skin */
.garage-site-footer--modern .garage-footer__top[data-back-to-top] {
	border: 1px solid rgba(193, 18, 31, 0.38);
	background:
		linear-gradient(160deg, rgba(193, 18, 31, 0.22), rgba(0, 0, 0, 0.88));
	color: var(--text-strong);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition:
		opacity 280ms ease,
		transform 280ms ease,
		border-color 280ms ease,
		box-shadow 280ms ease;
}

.garage-site-footer--modern .garage-footer__top[data-back-to-top]:hover,
.garage-site-footer--modern .garage-footer__top[data-back-to-top]:focus-visible {
	border-color: rgba(193, 18, 31, 0.62);
	box-shadow: 0 16px 34px rgba(193, 18, 31, 0.18);
	transform: translate3d(0, -2px, 0);
}

.garage-site-footer--modern .garage-footer__top[data-back-to-top] [data-scroll-progress] circle {
	stroke: rgba(193, 18, 31, 0.75);
}

.garage-site-footer--modern .garage-footer__top[data-back-to-top] span {
	position: relative;
	z-index: 1;
	font-size: 1.1rem;
	font-weight: 700;
}

/* Scroll-in for footer columns */
.garage-site-footer--modern [data-scroll-animate="fade-up"]:not(.is-visible) {
	opacity: 0;
	transform: translate3d(0, 1.35rem, 0);
}

.garage-site-footer--modern [data-scroll-animate="fade-up"].is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	transition:
		opacity 520ms ease,
		transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.garage-site-footer--modern [data-scroll-animate="fade-up"]:nth-child(2) {
	transition-delay: 80ms;
}

.garage-site-footer--modern [data-scroll-animate="fade-up"]:nth-child(3) {
	transition-delay: 140ms;
}

@media (max-width: 767px) {
	.garage-footer__marquee-word {
		font-size: clamp(2.5rem, 16vw, 4.5rem);
		letter-spacing: 0.03em;
	}

	.garage-footer__meta {
		flex-direction: column;
		align-items: flex-start;
	}

	.garage-footer__meta-right {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.garage-footer__divider,
	.garage-footer__divider::after,
	.garage-footer__marquee-glow,
	.garage-footer__marquee-shine,
	.garage-footer__marquee-track,
	.garage-footer__marquee-word--fill,
	.garage-footer__marquee-sep {
		animation: none !important;
	}

	.garage-site-footer--modern [data-scroll-animate="fade-up"]:not(.is-visible) {
		opacity: 1;
		transform: none;
	}
}
