/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
	background: var(--cwv-navy);
	color: rgba(255, 255, 255, 0.7);
	padding: 0;
}

/* ----- Footer Top: Logo + Tagline ----- */
.footer-top {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 60px;
	align-items: center;
	padding: 80px 0 60px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-top-logo .footer-logo {
	font-family: var(--font-heading);
	font-size: 2.9rem;
	font-weight: 600;
	color: var(--cwv-white);
	display: block;
}

.footer-top-logo .footer-logo img {
	max-height: 40px;
	width: auto;
}

.footer-top-tagline h2 {
	font-family: var(--font-heading);
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	font-weight: 400;
	color: var(--cwv-white);
	line-height: 1.2;
	margin: 0;
}

/* ----- Footer Middle: 4-column grid ----- */
.footer-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 150px;
	padding: 60px 0 20px;
}

.footer-col h4 {
	font-family: var(--font-body);
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--cwv-white);
	margin-bottom: 24px;
	letter-spacing: 0.5px;
}

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

.footer-col ul li {
	margin-bottom: 14px;
}

.footer-col ul li a {
	color: rgba(255, 255, 255, 0.5);
	font-size: 1rem;
	transition: color var(--transition);
}

.footer-col ul li a:hover {
	color: var(--cwv-white);
}

.footer-location {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.9rem;
}

/* Calendly column */
.footer-col-calendly {
	display: flex;
	flex-direction: column;
}

.footer-col-calendly .calendly-desc {
	font-size: 0.9rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.45);
	margin-bottom: 24px;
}

/* Social icons */
.footer-social {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 80px;
}

.footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.5);
	transition: all var(--transition);
}

.footer-social a:hover {
	border-color: var(--cwv-gold);
	color: var(--cwv-gold);
}

.footer-social a svg {
	width: 16px;
	height: 16px;
}

/* ----- Footer Bottom Bar ----- */
.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 24px 0 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-bottom .copyright {
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.35);
}

.footer-bottom .copyright-brand {
	color: rgba(255, 255, 255, 0.5);
	font-weight: 600;
}

.back-to-top {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.4);
	transition: all var(--transition);
}

.back-to-top:hover {
	border-color: var(--cwv-gold);
	color: var(--cwv-gold);
}

/* ----- Responsive ----- */
@media screen and (max-width: 1024px) {
	.footer-top {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px;
	}
}

@media screen and (max-width: 768px) {
	.footer-top {
		padding: 50px 0 40px;
	}

	.footer-top-tagline h2 {
		font-size: 1.6rem;
	}

	.footer-grid {
		gap: 32px;
	}
}

@media screen and (max-width: 480px) {
	.footer-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.footer-bottom {
		flex-direction: column;
		gap: 16px;
		text-align: center;
	}
}