/* Site footer — gradient newsletter card on top, then a 4-column link grid,
   then the bottom copyright row. Sits on the same noisy black surface as the
   header + dark hero so the entire dark band reads continuous. */

.dt-footer {
	position: relative;
	background: var(--dt-bg);
	color: var(--dt-ink);
	padding-block: var(--space-12) var(--space-8);
	border-top: var(--border-thin);
	isolation: isolate;
}

@media (min-width: 768px) {
	.dt-footer { padding-block: var(--space-16) var(--space-10); }
}

/* ---------- Link grid ---------- */

.dt-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: var(--space-8);
	padding-block: 0 var(--space-12);
}

.dt-footer__col { min-width: 0; }

.dt-footer__col--brand {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
	max-width: 360px;
}

.dt-footer__brand {
	display: inline-flex;
	color: var(--dt-ink);
	text-decoration: none;
}

.dt-footer__logo {
	width: auto;
	height: 40px;
	display: block;
}

.dt-footer__tagline {
	margin: 0;
	font-size: var(--fs-sm);
	line-height: var(--lh-normal);
	color: var(--dt-ink-soft);
	max-width: 36ch;
}

/* ----- Social row ----- */

.dt-footer__social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--space-2);
}

.dt-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-pill);
	color: var(--dt-ink-soft);
	background: var(--dt-bg-alt);
	border: var(--border-thin);
	transition: background var(--duration-2) var(--ease-out),
	            color var(--duration-2) var(--ease-out),
	            transform var(--duration-2) var(--ease-out);
}

.dt-footer__social-link:hover {
	background: var(--dt-primary);
	color: var(--dt-on-primary);
	transform: translateY(-1px);
}

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

.dt-footer__title {
	margin: 0 0 var(--space-5);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
	color: var(--dt-ink);
}

.dt-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.dt-footer__link {
	font-size: var(--fs-sm);
	color: var(--dt-ink-soft);
	text-decoration: none;
	transition: color var(--duration-1) var(--ease-out);
}

.dt-footer__link:hover {
	color: var(--dt-ink);
	text-decoration: none;
}

/* ---------- Bottom bar ---------- */

.dt-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-4);
	padding-top: var(--space-6);
	border-top: var(--border-thin);
}

.dt-footer__credit {
	margin: 0;
	font-size: var(--fs-xs);
	color: var(--dt-ink-faint);
}

.dt-footer__legal {
	display: flex;
	gap: var(--space-5);
}

.dt-footer__legal a {
	font-size: var(--fs-xs);
	color: var(--dt-ink-faint);
	text-decoration: none;
	transition: color var(--duration-1) var(--ease-out);
}

.dt-footer__legal a:hover { color: var(--dt-ink); }

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
	.dt-footer-newsletter {
		grid-template-columns: 1fr;
		gap: var(--space-6);
		padding: var(--space-8) var(--space-7);
	}

	.dt-footer-newsletter__heading { font-size: var(--fs-xl); }

	.dt-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-8) var(--space-6);
	}

	.dt-footer__col--brand { grid-column: 1 / -1; max-width: none; }
}

@media (max-width: 600px) {
	.dt-footer-newsletter {
		padding: var(--space-7) var(--space-5);
	}

	.dt-footer-newsletter__row {
		flex-direction: column;
		background: transparent;
		padding: 0;
		gap: var(--space-3);
		box-shadow: none;
	}

	.dt-footer-newsletter__input {
		background: var(--dt-surface);
		border-radius: var(--radius-pill);
		padding: var(--space-3) var(--space-5);
	}

	.dt-footer-newsletter__submit { width: 100%; padding-block: var(--space-3); }

	.dt-footer__grid { grid-template-columns: 1fr; }

	.dt-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}
