/* ============================================================
   Footer — rewritten for the 4-column layout with 'Areas we cover'.
   Replaces the older flex-with-fixed-75%-width pattern that
   broke when the areas column was added.
   ============================================================ */

.footer {
	color: white;
	background: black;
	padding: var(--spacing-3) var(--spacing-4);
	/* Breathing room between the page content (especially the rounded
	   service-cta card) and the footer. margin-bottom on inner elements
	   gets absorbed by .content's flex-grow:1 stretch, so we add it here
	   on the flex sibling instead — actually creates a visible gap. */
	margin-top: 40px;
}

.footer-flex {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.6fr;
	gap: var(--spacing-3);
	width: 100%;
	margin-bottom: var(--spacing-2);
}

.footer-flex > div {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	min-width: 0; /* let columns shrink/wrap rather than overflow */
}

/* Section headings — Title Case, small but readable */
.footer-flex h4 {
	font-family: 'Montserrat', 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: white;
	margin: 0 0 1rem;
	white-space: nowrap;
}

/* Links — muted white, brighten on hover */
.footer-flex a {
	color: rgba(255, 255, 255, 0.7);
	font-size: 13px;
	text-decoration: none;
	transition: color 0.2s;
}

.footer-flex a:hover {
	color: white;
}

/* Override the global a:not(.card):hover scale transform — looks weird
   when nav links inflate on hover inside the footer column. */
.footer a:hover {
	transform: none;
}

/* Contact block (left column) */
.footer-flex address {
	font-style: normal;
}

.footer-flex address a,
.footer-flex address p {
	color: rgba(255, 255, 255, 0.7);
	font-size: 13px;
	line-height: 1.6;
	margin: 0;
}

/* Areas we cover — middot-separated list, wraps within column */
.footer-areas p {
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.8;
	margin: 0;
	font-size: 13px;
	max-width: none;
}

/* ---------- Logo strip ---------- */

.footer-image {
	display: flex;
	justify-content: flex-end;
	padding-block: var(--spacing-2);
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.footer-image img {
	max-height: 64px;
	width: auto;
}

/* ---------- Bottom strip ---------- */

.footer-bottom {
	display: flex;
	justify-content: space-between;
	padding-top: var(--spacing-2);
	align-items: center;
	gap: 1rem;
}

.footer-bottom p {
	color: rgba(255, 255, 255, 0.6);
	font-size: 13px;
	margin: 0;
}

.footer-socials {
	display: flex;
	gap: var(--spacing-1);
	align-items: center;
}

.footer-socials img {
	width: var(--title);
}

.byte-studio-signature {
	display: flex;
	justify-content: right;
	margin-top: var(--spacing-1);
}

.byte-studio-signature a {
	color: rgba(255, 255, 255, 0.5);
	font-size: 13px;
}

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

@media (max-width: 991px) {
	.footer-flex {
		grid-template-columns: 1fr 1fr;
		gap: var(--spacing-3);
	}
}

@media (max-width: 767px) {
	.footer {
		padding: var(--spacing-3) var(--spacing-4);
	}
	.footer-flex {
		grid-template-columns: 1fr;
		text-align: left;
		gap: var(--spacing-2);
	}
	.footer-flex > div {
		align-items: flex-start;
	}
	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
	.footer-image {
		justify-content: flex-start;
	}
	.byte-studio-signature {
		justify-content: flex-start;
		margin-top: var(--spacing-2);
	}
}
