/**
 * Footer Layout: 3 Column
 *
 * All styles for the 3 Column footer (Brand, Contact, Newsletter).
 * Extracted from style.css — Atomic CSS refactor per v7.0 modular architecture.
 *
 * Loaded conditionally via celeste_enqueue_layout_assets() in functions.php —
 * only enqueued when this layout is the active footer for the current page.
 *
 * @package Celeste_Theme
 * @since   2.2.0
 */

/* ==========================================================================
   FOOTER STYLES
   ========================================================================== */

.site-footer {
	background-color: var(--bg-footer);
	color: var(--footer-body-color, #f8f7f2);
	padding-top: 94px;
	padding-bottom: 65px;
}

/* Footer Columns Grid */
.footer-columns {
	display: grid;
	grid-template-columns: 1fr 2fr 2fr;
	gap: 24px;
	margin-bottom: 76px;
}

.footer-column {
	display: flex;
	flex-direction: column;
}

/* Brand Column */
.footer-brand {
	align-items: flex-start;
}

.footer-logo img {
	height: auto;
	width: 100%;
	margin-top: 0.5em;
}
.footer-map-image {
	margin-top: 30px;
	border-radius: 12px;
	overflow: hidden;
	width: 100%;
}

.footer-map-image a {
	display: block;
}

.footer-map-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Contact Column */
.footer-contact {
	display: flex;
	justify-content: center;
	flex-direction: row;
}

.contact-container {
	max-width: 380px;
	text-align: left;
}

.contact-info {
	margin-bottom: 36px;
}

.footer-heading {
	font-family: var(--footer-header-font-family, var(--font-ui)); /* Defaults to UI */
    font-weight: var(--footer-header-font-weight, 700);
    font-size: var(--footer-header-size-mobile, 14px);
    line-height: var(--footer-header-line-height, 1.4);
    text-transform: var(--footer-header-text-transform, uppercase);
    color: var(--footer-header-color, #e30613);
    margin-bottom: 16px;
}
.footer-address,
.footer-phone,
.footer-email,
.copyright,
.legal-links,
.legal-links a,
.copyright-credit a {
    font-family: var(--footer-body-font-family, var(--font-body));
    font-weight: var(--footer-body-font-weight, 400);
    font-size: var(--footer-body-size-mobile, 14px);
    line-height: var(--footer-body-line-height, 1.6);
    text-transform: var(--footer-body-text-transform, none);
    color: var(--footer-body-color, #f8f7f2);
}
@media screen and (min-width: 767px) {
	.footer-heading {
		font-size: var(--footer-header-size-desktop, 18px);
	}

.footer-address,
.footer-phone,
.footer-email,
.copyright,
.legal-links,
.legal-links a,
.copyright-credit a {
    font-size: var(--footer-body-size-desktop, 14px);
}
}

.footer-address,
.footer-phone,
.footer-email {
	margin-bottom: 8px;
}

.footer-address a,
.footer-phone a,
.footer-email a {
	color: var(--color-footer-social, #f8f7f2);
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-address a:hover,
.footer-phone a:hover,
.footer-email a:hover {
	color: var(--color-footer-social-hover, #e30613);
}

/* Social Icons */
.footer-social {
	display: flex;
	gap: 12px;
	align-items: center;
}

.social-icon {
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-footer-social, #f8f7f2);
	transition: color 0.3s ease;
}
@media screen and (min-width: 767px) {
	.social-icon {
	width: 30px;
	height: 30px;
}
}

.social-icon:hover {
	color: var(--color-footer-social-hover, #e30613);
}

.social-icon svg {
	width: 100%;
	height: 100%;
}

/* Newsletter Column */
.footer-newsletter {
	align-items: flex-start;
}

.newsletter-form {
	width: 100%;
}

/* Footer Bottom */
.footer-bottom {
	text-align: center;
	padding-top: 20px;
}

.copyright {
	margin-bottom: 15px;
}

.legal-links {
	display: flex;
	gap: 10px;
	justify-content: center;
	align-items: center;
}

.legal-links a,
.copyright-credit a {
	text-decoration: none;
	transition: color 0.3s ease;
	color: var(--color-footer-social, #f8f7f2);
}

.legal-links a:hover,
.copyright-credit a:hover {
	color: var(--color-footer-social-hover, #e30613);
}

.legal-links .separator {
	color: var(--footer-body-color, #f8f7f2);
	opacity: 0.5;
}

/* Mobile Footer */
@media (max-width: 767px) {
	.site-footer {
		padding-top: 100px;
		padding-bottom: 130px;
	}

	.footer-columns {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 82px;
		margin-bottom: 55px;
	}

	.footer-brand {
		align-items: center;
	}

	.footer-contact {
		justify-content: center;
	}

	.contact-container {
		text-align: center;
	}

	.contact-info {
		margin-bottom: 36px;
	}

	.footer-social {
		justify-content: center;
	}

	.footer-newsletter {
		align-items: center;
	}

	.legal-links {
		flex-wrap: wrap;
	}
}
