/* Base Styles */
.blx-footer {
	box-sizing: border-box;
	padding-top: clamp(40px, 6vw, 80px);
	padding-bottom: 30px;
	padding-left: clamp(20px, 5vw, 48px);
	padding-right: clamp(20px, 5vw, 48px);
	position: relative;
	margin: 0;
}
.blx-footer * { box-sizing: border-box; }

body {
	margin: 0;
	padding: 0;
}

html, body {
	margin: 0;
	padding: 0;
}

/* Main Container - Mobile First Approach */
.blx-wrap {
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: start;
}

/* Typography */
.blx-col h4 {
	margin: 0 0 20px 0;
	color: #4C5867;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	opacity: 0.7;
}

.blx-text {
	font-size: clamp(15px, 2.6vw, 17px);
	line-height: 1.6;
	color: #4C5867;
	opacity: 0.85;
}

.blx-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.blx-link {
	color: #4C5867;
	text-decoration: none;
	font-size: clamp(15px, 2.6vw, 17px);
	opacity: 0.85;
	transition: opacity 0.3s ease;
}
.blx-link:hover { opacity: 1; }

/* CTA Button */
.blx-cta {
	display: inline-flex;
	padding: 12px 20px;
	border: 1px solid rgba(76,88,103,0.25);
	border-radius: 10px;
	font-weight: 600;
	text-transform: uppercase;
	font-size: clamp(12px, 3.2vw, 14px);
	transition: all 0.3s ease;
	text-align: center;
	justify-content: center;
}
.blx-cta:hover {
	border-color: rgba(76,88,103,0.5);
	background: rgba(76,88,103,0.05);
}

/* Contact Items */
.blx-contact-item {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	flex-wrap: wrap;
}
.blx-contact-item::before {
	content: '';
	width: 18px;
	height: 18px;
	opacity: 0.5;
	flex-shrink: 0;
}
.blx-contact-item.phone::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234C5867' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.blx-contact-item.email::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234C5867' stroke-width='2'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 5L2 7'/%3E%3C/svg%3E") center/contain no-repeat;
}
.blx-contact-item.address::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234C5867' stroke-width='2'%3E%3Cpath d='M12 21C7.03 16.03 4 12.72 4 9.5a8 8 0 1 1 16 0c0 3.22-3.03 6.53-8 11.5z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Hours */
.blx-hours {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.blx-hours-item {
	display: flex;
	justify-content: space-between;
	font-size: clamp(15px, 2.6vw, 17px);
	color: #4C5867;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(76,88,103,0.08);
	flex-wrap: wrap;
	gap: 10px;
}
.blx-hours-day { font-weight: 600; }
.blx-hours-time { font-weight: 600; }

/* Bottom Bar */
.blx-bottom {
	margin-top: clamp(40px, 6vw, 64px);
	padding-top: 24px;
	border-top: 1px solid rgba(76,88,103,0.1);
	display: flex;
	flex-direction: column; /* mobile: stack */
	gap: 20px;
	font-size: clamp(15px, 2.6vw, 17px);
	color: #3A4654;
	text-align: center;
}
.blx-bottom-links {
	display: flex;
	gap: 20px;
	justify-content: center;
	flex-wrap: wrap;
	order: 1; /* mobile: links first */
}
.blx-copy { order: 2; } /* mobile: © last */

.blx-bottom-link {
	color: #3A4654;
	font-weight: 600;
	transition: text-decoration 0.3s ease;
	text-decoration: none;
	font-size: 16px;
}
.blx-bottom-link:hover { text-decoration: underline; }

/* Logo */
.blx-logo {
	height: 35px;
	margin-bottom: 20px;
	display: block;
}

/* Brand Section Mobile */
.blx-brand {
	text-align: left;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(76,88,103,0.1);
}

.blx-brand .blx-social {
	justify-content: flex-start;
}

/* Tablet Styles (640px and up) */
@media (min-width: 640px) {
	.blx-wrap {
		grid-template-columns: repeat(2, 1fr);
		gap: 40px 30px;
	}
	.blx-brand {
		padding-bottom: 0;
		border-bottom: none;
		grid-column: span 2;
	}
	.blx-bottom {
		flex-direction: row; /* desktop: in a row */
		justify-content: space-between;
		align-items: center;
		text-align: left;
	}
	.blx-bottom-links { justify-content: flex-end; order: 2; }
	.blx-copy { order: 1; }
	.blx-logo {
		height: 40px;
	}
}

/* Desktop Styles (1024px and up) */
@media (min-width: 1024px) {
	.blx-wrap {
		grid-template-columns: 1.5fr 1fr 1fr 1fr;
		gap: clamp(32px, 4vw, 48px);
	}
	.blx-brand {
		grid-column: span 1;
	}
	.blx-col h4 {
		margin-bottom: 16px;
	}
	.blx-list {
		gap: 12px;
	}
	.blx-contact-item {
		margin-bottom: 8px;
	}
	.blx-hours {
		gap: 8px;
	}
	.blx-hours-item {
		padding-bottom: 8px;
	}
}

/* Large Desktop (1440px and up) */
@media (min-width: 1440px) {
	.blx-footer {
		padding-top: 80px;
		padding-bottom: 30px;
		padding-left: 60px;
		padding-right: 60px;
	}
}

/* Social Media Buttons */
.blx-social-link:hover {
	background: rgba(76,88,103,0.15) !important;
	transform: translateY(-2px);
}

/* Touch Device Improvements */
@media (hover: none) and (pointer: coarse) {
	.blx-link, .blx-cta {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
	.blx-contact-item {
		min-height: 44px;
	}
}

/* Print Styles */
@media print {
	.blx-footer {
		background: white !important;
		color: black !important;
		padding: 20px !important;
	}
	.blx-link, .blx-text {
		color: black !important;
	}
}
