/**
 * Site footer. Columns appear only when they have content, so the grid uses
 * auto-fit instead of a fixed column count.
 */

/* A rounded sheet that mirrors the hero's rounded lower edge. */
.site-footer {
	position: relative;
	padding-block: var(--nscb-space-7) var(--nscb-space-5);
	border-top: 1px solid var(--nscb-edge);
	border-radius: var(--nscb-radius-xl) var(--nscb-radius-xl) 0 0;
	background-color: var(--nscb-color-bg-secondary);
	box-shadow: var(--nscb-edge-light);
	color: var(--nscb-color-text-secondary);
	font-size: var(--nscb-text-sm);
}

/* A short line of highlight light on the top edge. */
.site-footer::before {
	content: "";
	position: absolute;
	top: -1px;
	left: max(var(--nscb-gutter), var(--nscb-radius-xl));
	width: 4rem;
	height: 2px;
	border-radius: 2px;
	background-color: var(--nscb-color-highlight);
}

/* The saved logo is a photo with its own black background: frame it as a
   badge so it reads as intentional on the charcoal sheet. */
.site-footer__logo {
	justify-self: start;
}

.site-footer__logo .nscb-logo__img {
	max-width: 16rem;
	max-height: 3.5rem;
}

.site-footer__logo:has(img) {
	padding: var(--nscb-space-2) var(--nscb-space-3);
	border: 1px solid var(--nscb-edge);
	border-radius: var(--nscb-radius-md);
	background-color: #000;
	line-height: 0;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: var(--nscb-space-6) var(--nscb-space-7);
}

.site-footer__brand {
	display: grid;
	align-content: start;
	gap: var(--nscb-space-4);
}

.site-footer__description {
	max-width: 32ch;
	line-height: var(--nscb-leading-normal);
}

.site-footer__heading {
	margin-bottom: var(--nscb-space-4);
	color: var(--nscb-color-text);
	font-family: var(--nscb-font-body);
	font-size: var(--nscb-text-xs);
	font-weight: 600;
	letter-spacing: var(--nscb-tracking-wide);
	text-transform: uppercase;
}

.site-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer a {
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--nscb-color-highlight);
}

/* Menu links: two columns on phones to keep the footer short. */
.site-footer__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nscb-space-1) var(--nscb-space-4);
	max-width: 22rem;
}

.site-footer__links a {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
}

.site-footer__contact-list {
	display: grid;
	gap: var(--nscb-space-3);
}

.site-footer__contact-list li {
	display: grid;
	grid-template-columns: 2.75rem 1fr;
	align-items: center;
	gap: var(--nscb-space-3);
}

/* 3D icon tiles (inc/icons-3d.php) lift when their row's link is hovered. */
.site-footer__contact-list .nscb-icon3d--tile {
	width: 2.75rem;
}

/* Multi-line rows (address, hours) start level with the chip's top. */
.site-footer__contact-list li:has(address),
.site-footer__contact-list li:has(br) {
	align-items: start;
}

.site-footer__contact-list li:has(address) > :last-child,
.site-footer__contact-list li:has(br) > :last-child {
	padding-top: 0.75rem;
}

.site-footer__contact-list address {
	font-style: normal;
}

.site-footer__contact .nscb-btn--text {
	margin-top: var(--nscb-space-2);
}

.site-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nscb-space-3);
}

/* Each link is a 3D icon tile (inc/icons-3d.php). */
.site-footer__social a {
	display: block;
	border-radius: 0.875rem;
}

.site-footer__social .nscb-icon3d--tile {
	width: 2.75rem;
}

.site-footer__bottom {
	margin-top: var(--nscb-space-7);
	padding-top: var(--nscb-space-5);
	border-top: 1px solid var(--nscb-color-border);
	font-size: var(--nscb-text-xs);
}

@media (min-width: 64rem) {
	.site-footer {
		padding-block: var(--nscb-space-9) var(--nscb-space-6);
	}

	.site-footer__grid {
		grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	}

	.site-footer__brand {
		grid-column: span 1;
	}
}
