/**
 * Site footer. Values below were read directly out of the live site's
 * generated Elementor CSS for template 381 (see migration/reference-css/,
 * search for ".elementor-381"). A few sub-values that map to Elementor's own
 * internal "additional typography" IDs (not part of the Kit's 4 named global
 * styles) are approximated against the closest matching body/heading token —
 * flagged inline below for a follow-up visual check.
 */

.site-footer {
	background-color: var(--plf-color-secondary);
	/* Navy overlay over the photo so the footer stays dark/readable, matching
	   the original (photo faintly visible behind the columns). */
	background-image: linear-gradient( rgba( 28, 58, 89, 0.85 ), rgba( 28, 58, 89, 0.85 ) ), var(--plf-footer-bg-image, none);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* Gutter pair — see the ".container" comment in base.css. */
.site-footer__contact-row {
	width: calc(100% - (var(--plf-gutter) * 2));
	max-width: var(--plf-container-width);
	margin: 0 auto;
	background-color: var(--plf-color-primary);
	padding: 50px 100px;
}

@media (max-width: 1024px) {
	.site-footer__contact-row {
		padding: 0 20px 20px;
	}
}

/* The top blue contact bar is hidden on mobile. */
@media (max-width: 767px) {
	.site-footer__contact-row {
		display: none;
	}
}

.site-footer__contact-row-inner {
	max-width: var(--plf-container-width);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
}

/* Not three equal thirds: the email and phone are one short line each, while
   the address runs to three or four words more. Splitting evenly left the first
   two columns half empty and wrapped the address onto three lines, so the space
   is dealt out to match the content instead. */
.site-footer__contact-item {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 0 30px;
}

.site-footer__contact-item:first-child {
	flex-grow: 1.05;
	padding-left: 0;
	border-right: 1px solid var(--plf-color-accent);
}

.site-footer__contact-item:nth-child(2) {
	flex-grow: 0.8;
}

.site-footer__contact-item:last-child {
	flex-grow: 1.35;
	padding-right: 0;
	border-left: 1px solid var(--plf-color-accent);
}

/* The address is the one item that needs to wrap, so it reads better set a
   little tighter than the two single-line values beside it. */
.site-footer__contact-item:last-child .site-footer__contact-item-desc {
	font-size: 22px;
	line-height: 1.25em;
}

@media (max-width: 767px) {
	.site-footer__contact-item {
		width: 100%;
		border: none !important;
		padding: 15px 0;
	}
}

.site-footer__contact-item i {
	font-size: 30px;
	color: var(--plf-color-accent);
}

.site-footer__contact-item-title {
	margin: 0 0 4px;
	color: var(--plf-color-accent);
	font-family: var(--plf-font-body);
	font-size: var(--plf-body-size);
	line-height: var(--plf-body-line-height);
}

.site-footer__contact-item-desc,
.site-footer__contact-item-desc a {
	color: var(--plf-color-accent);
	font-family: var(--plf-font-display); /* Cormorant Garamond — Elementor typography "539d5d7" */
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3em;
	text-decoration: none;
}

/* Gutter pair — see the ".container" comment in base.css. */
.site-footer__columns {
	width: calc(100% - (var(--plf-gutter) * 2));
	max-width: var(--plf-container-width);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	padding: 50px 0;
}

@media (max-width: 767px) {
	.site-footer__columns {
		padding: 50px 0 40px;
	}
}

.site-footer__col {
	width: 25%;
}

@media (max-width: 1024px) {
	.site-footer__col {
		width: 50%;
		padding-top: 30px;
	}
}

@media (max-width: 767px) {
	.site-footer__col {
		width: 100%;
	}
}

.site-footer__col--brand {
	padding-right: 30px;
}

.site-footer__col--pages,
.site-footer__col--practice,
.site-footer__col--locations {
	padding-left: 40px;
}

@media (max-width: 1024px) {
	.site-footer__col--pages,
	.site-footer__col--practice,
	.site-footer__col--locations {
		padding-left: 0;
	}
}

.site-footer__logo img {
	height: 70px;
	width: auto;
	object-fit: contain;
	margin-bottom: 20px;
}

.site-footer__tagline {
	color: var(--plf-color-accent);
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: var(--plf-body-size);
	line-height: var(--plf-body-line-height);
	margin: 0 0 20px;
}

.site-footer__socials {
	display: flex;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__socials a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	background: var(--plf-color-primary);
	border: 1px solid var(--plf-color-primary);
	color: var(--plf-color-accent);
	font-size: 14px;
	text-decoration: none;
}

@media (max-width: 1024px) {
	.site-footer__socials a {
		width: 35px;
		height: 35px;
	}
}

.site-footer__socials a:hover {
	background: var(--plf-color-accent);
	color: var(--plf-color-primary);
	border-color: var(--plf-color-accent);
}

.site-footer__col-title {
	color: var(--plf-color-accent);
	font-family: var(--plf-font-display);
	font-size: 35px;
	line-height: 46px;
	font-weight: 700;
	margin: 0 0 18px;
}

@media (max-width: 767px) {
	.site-footer__col-title {
		font-size: 30px;
		line-height: 39px;
	}
}

.site-footer__link-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.site-footer__link-list a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--plf-color-accent);
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: var(--plf-body-size);
	line-height: var(--plf-body-line-height);
	text-decoration: none;
}

.site-footer__link-list a:hover,
.site-footer__link-list a:hover i {
	color: var(--plf-color-text);
}

/* Gutter pair — see the ".container" comment in base.css. */
.site-footer__bottom {
	border-top: 1px solid var(--plf-color-border);
	width: calc(100% - (var(--plf-gutter) * 2));
	max-width: var(--plf-container-width);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	padding: 20px 0;
	gap: 15px;
}

@media (max-width: 767px) {
	.site-footer__bottom {
		justify-content: center;
		text-align: center;
	}
}

.site-footer__copyright {
	margin: 0;
	color: var(--plf-color-accent);
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: var(--plf-body-size);
	line-height: var(--plf-body-line-height);
}

.site-footer__legal-list {
	display: flex;
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__legal-list li:not(:last-child) {
	border-right: 1px solid rgba(255, 255, 255, 0.6);
	padding-right: 20px;
}

.site-footer__legal-list a {
	color: var(--plf-color-accent);
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: var(--plf-body-size);
	line-height: var(--plf-body-line-height);
	text-decoration: none;
}

.site-footer__legal-list a:hover {
	color: var(--plf-color-text);
}

/* Footer body text (tagline, links, copyright, legal) is 16px/22px on mobile only. */
@media (max-width: 767px) {
	.site-footer__tagline,
	.site-footer__link-list a,
	.site-footer__copyright,
	.site-footer__legal-list a {
		font-size: 16px;
		line-height: 22px;
	}
}
