/*
 * Ralify site footer.
 *
 * Four bands: newsletter, link columns, legal + language, popular searches.
 * The newsletter band reuses the shared rail newsletter module in its banner
 * variant, so there is one signup contract on the site; only the surrounding
 * spacing is owned here.
 */

.ralify-site-footer {
	margin-top: clamp(48px, 7vw, 96px);
	border-top: 1px solid var(--ralify-color-border, #273142);
	background:
		radial-gradient(circle at 12% 0%, rgba(136, 92, 246, 0.09), transparent 45%),
		var(--ralify-color-midnight, #0b0f17);
	color: var(--ralify-color-text, #f8fafc);
	font-family: var(--ralify-font, "Sora", sans-serif);
}

.ralify-site-footer > .ralify-shell {
	padding-block: clamp(24px, 4vw, 40px);
}

.ralify-site-footer > .ralify-shell:first-child {
	padding-top: clamp(32px, 5vw, 56px);
}

/* Link columns
   ------------------------------------------------------------------------ */

.ralify-site-footer__main {
	display: grid;
	grid-template-columns: minmax(220px, 1.5fr) repeat(auto-fit, minmax(150px, 1fr));
	gap: clamp(24px, 3vw, 44px);
	align-items: start;
	border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.ralify-site-footer__brand {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.ralify-site-footer__logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.ralify-site-footer__logo img {
	display: block;
	width: auto;
	height: 34px;
}

.ralify-site-footer__logo-fallback {
	color: var(--ralify-color-text, #f8fafc);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: 0.05em;
}

.ralify-site-footer__tagline {
	margin: 0;
	color: var(--ralify-color-purple, #885cf6);
	font-size: 0.8125rem;
	font-weight: 700;
}

.ralify-site-footer__blurb {
	margin: 0;
	max-width: 34ch;
	color: var(--ralify-color-text-muted, #94a3b8);
	font-size: 0.8125rem;
	line-height: 1.65;
	text-wrap: pretty;
}

.ralify-site-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}

.ralify-site-footer__social a {
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	border: 1px solid var(--ralify-color-border, #273142);
	border-radius: 999px;
	color: var(--ralify-color-text-muted, #94a3b8);
	transition:
		border-color var(--ralify-transition, 180ms ease),
		color var(--ralify-transition, 180ms ease);
}

.ralify-site-footer__social a:hover {
	border-color: var(--ralify-color-purple, #885cf6);
	color: var(--ralify-color-text, #f8fafc);
}

.ralify-site-footer__social svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

.ralify-site-footer__column {
	display: grid;
	gap: 12px;
	min-width: 0;
	align-content: start;
}

.ralify-site-footer__column-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 2px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--ralify-color-purple, #885cf6);
	justify-self: start;
	color: var(--ralify-color-text, #f8fafc);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ralify-site-footer__pill {
	padding: 2px 7px;
	border-radius: 999px;
	background: rgba(136, 92, 246, 0.18);
	color: var(--ralify-color-purple, #885cf6);
	font-size: 0.5625rem;
	letter-spacing: 0.08em;
}

.ralify-site-footer__links {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ralify-site-footer__links a {
	color: var(--ralify-color-text-muted, #94a3b8);
	font-size: 0.875rem;
	text-decoration: none;
	transition: color var(--ralify-transition, 180ms ease);
}

.ralify-site-footer__links a:hover,
.ralify-site-footer__links a:focus-visible {
	color: var(--ralify-color-text, #f8fafc);
}

.ralify-site-footer__promo-copy {
	margin: 0;
	max-width: 30ch;
	color: var(--ralify-color-text-muted, #94a3b8);
	font-size: 0.875rem;
	line-height: 1.6;
	text-wrap: pretty;
}

.ralify-site-footer__promo-cta {
	display: inline-grid;
	min-height: 42px;
	align-items: center;
	justify-self: start;
	padding: 0 22px;
	border: 1px solid var(--ralify-color-purple, #885cf6);
	border-radius: var(--ralify-radius-sm, 8px);
	color: var(--ralify-color-purple, #885cf6);
	font-size: 0.8125rem;
	font-weight: 800;
	text-decoration: none;
	transition:
		background-color var(--ralify-transition, 180ms ease),
		color var(--ralify-transition, 180ms ease);
}

.ralify-site-footer__promo-cta:hover {
	background: var(--ralify-color-purple, #885cf6);
	color: #fff;
}

.ralify-site-footer__promo-cta--pending {
	border-color: rgba(148, 163, 184, 0.28);
	color: var(--ralify-color-text-muted, #94a3b8);
	cursor: default;
}

.ralify-site-footer__promo-cta--pending:hover {
	background: none;
	color: var(--ralify-color-text-muted, #94a3b8);
}

/* Legal band
   ------------------------------------------------------------------------ */

.ralify-site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.ralify-site-footer__copyright {
	display: grid;
	gap: 4px;
	margin: 0;
	color: var(--ralify-color-text-muted, #94a3b8);
	font-size: 0.8125rem;
	line-height: 1.5;
}

.ralify-site-footer__languages {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 4px;
	border: 1px solid var(--ralify-color-border, #273142);
	border-radius: 999px;
}

.ralify-site-footer__language {
	padding: 6px 16px;
	border-radius: 999px;
	color: var(--ralify-color-text-muted, #94a3b8);
	font-size: 0.8125rem;
	font-weight: 700;
	text-decoration: none;
	transition:
		background-color var(--ralify-transition, 180ms ease),
		color var(--ralify-transition, 180ms ease);
}

.ralify-site-footer__language:hover {
	color: var(--ralify-color-text, #f8fafc);
}

.ralify-site-footer__language.is-current {
	background: rgba(136, 92, 246, 0.18);
	color: var(--ralify-color-text, #f8fafc);
}

/* Popular searches
   ------------------------------------------------------------------------ */

.ralify-site-footer__searches {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.ralify-site-footer__searches-label {
	color: var(--ralify-color-purple, #885cf6);
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ralify-site-footer__search-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ralify-site-footer__search-list a {
	display: inline-grid;
	min-height: 34px;
	align-items: center;
	padding: 0 16px;
	border: 1px solid var(--ralify-color-border, #273142);
	border-radius: 999px;
	color: var(--ralify-color-text-muted, #94a3b8);
	font-size: 0.8125rem;
	font-weight: 600;
	text-decoration: none;
	transition:
		border-color var(--ralify-transition, 180ms ease),
		color var(--ralify-transition, 180ms ease);
}

.ralify-site-footer__search-list a:hover {
	border-color: var(--ralify-color-purple, #885cf6);
	color: var(--ralify-color-text, #f8fafc);
}

@media (max-width: 860px) {
	.ralify-site-footer__main {
		grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	}

	.ralify-site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.ralify-site-footer__legal {
		justify-content: flex-start;
	}
}
