/* ==========================================================
   REUSABLE SITE FOOTER
========================================================== */

.site-footer,
.site-footer * {
	box-sizing: border-box;
}

.site-footer {
	width: 100%;
	margin: 0;
	padding: 0;
	border-top: 10px solid
		var(--wp--preset--color--coral, #f57260);
	background-color: var(
		--wp--preset--color--off-white,
		#f2f0ee
	);
	color: var(
		--wp--preset--color--dark-brown,
		#2c1711
	);
}

.site-footer a {
	text-decoration: none;
}

.site-footer > *,
.site-footer__inner,
.site-footer__grid,
.site-footer__contact,
.site-footer__branding,
.site-footer__navigation,
.site-footer__bottom,
.site-footer__legal,
.site-footer .wp-block-shortcode {
	margin-block: 0;
}

.site-footer p {
	margin-top: 0;
	font-weight:400;
	font-size:16px;
}

/* ==========================================================
   INNER CONTAINER
========================================================== */

.site-footer__inner {
	width: min(
		calc(100% - 80px),
		var(--content-wide, 1280px)
	);
	margin-inline: auto;
	padding: clamp(52px, 5vw, 78px) 0 22px;
}

/* ==========================================================
   MAIN THREE-COLUMN GRID
========================================================== */

.site-footer__grid {
	display: grid !important;
	grid-template-columns:
		minmax(210px, 1fr)
		minmax(300px, 1.25fr)
		minmax(190px, 1fr);
	align-items: center;
	width: 100%;
	margin: 0;
	gap: clamp(40px, 7vw, 105px);
}

.site-footer__contact,
.site-footer__branding,
.site-footer__navigation {
	min-width: 0;
	margin: 0 !important;
}

/* ==========================================================
   CONTACT COLUMN
========================================================== */

.site-footer__contact {
	align-self: center;
	color: var(
		--wp--preset--color--dark-brown,
		#2c1711
	);
	font-family: var(
		--wp--preset--font-family--deuterium,
		sans-serif
	);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.1px;
	line-height: 1.65;
	text-align: left;
	text-transform: uppercase;
}

.site-footer__contact p {
	margin: 0 0 10px;
}

.site-footer__contact p:last-child {
	margin-bottom: 0;
}

.site-footer__contact .wp-block-shortcode {
	margin: 0 0 10px;
}

.site-footer__contact .wp-block-shortcode:last-child {
	margin-bottom: 0;
}

.site-footer__contact a,
.site-footer__contact span {
	color: var(
		--wp--preset--color--dark-brown,
		#2c1711
	);
	text-decoration: none;
}

.site-footer__contact a:hover,
.site-footer__contact a:focus-visible {
	color: var(
		--wp--preset--color--coral,
		#f57260
	);
}

.site-address {
	text-transform: uppercase;
}

/* Footer phone overrides */
.site-footer__contact .site-header__phone-link {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-height: auto;
	gap: 6px;
	color: var(
		--wp--preset--color--dark-brown,
		#2c1711
	);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.1px;
	line-height: 1.5;
	text-transform: none;
	white-space: nowrap;
	margin-left:5px;
}

.site-footer__contact
.site-header__phone-link:hover,
.site-footer__contact
.site-header__phone-link:focus-visible {
	color: var(
		--wp--preset--color--coral,
		#f57260
	);
}

/* Keep footer phone icon coral */
.site-footer__contact
.site-header__phone-link::before {
	flex: 0 0 13px;
	width: 13px;
	height: 13px;
	background-color: var(
		--wp--preset--color--coral,
		#f57260
	);
}

/* If shortcode outputs an SVG icon */
.site-footer__contact
.site-header__phone-link
.site-header__icon {
	width: 13px;
	height: 13px;
	color: var(
		--wp--preset--color--coral,
		#f57260
	);
}

/* ==========================================================
   CENTER FOOTER LOGO
========================================================== */

.site-footer__branding {
	display: flex !important;
	align-items: center;
	justify-content: center;
	align-self: center;
	text-align: center;
}

.site-footer__branding .wp-block-shortcode {
	width: 100%;
	margin: 0;
	text-align: center;
}

.site-footer__logo-link {
	display: block;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	margin: 0 auto;
	color: inherit;
	text-decoration: none;
}

.site-footer__logo-image {
	display: block;
	width: min(100%, 506px);
	max-width: 506px;
	max-height: 169px;
	margin: 0 auto;
	object-fit: contain;
}

/* ==========================================================
   RIGHT FOOTER NAVIGATION
========================================================== */

.site-footer__navigation {
	align-self: center;
	text-align: right;
}

.site-footer__menu {
	display: flex;
	justify-content: flex-end;
	margin: 0;
}

/*
 * Footer menu must always show as normal links.
 * It should never become a hamburger menu.
 */
.site-footer__menu
.wp-block-navigation__responsive-container {
	position: static;
	display: flex !important;
	width: auto;
	height: auto;
	padding: 0;
	background: transparent;
}

.site-footer__menu
.wp-block-navigation__responsive-container-open,
.site-footer__menu
.wp-block-navigation__responsive-container-close {
	display: none !important;
}

.site-footer__menu
.wp-block-navigation__responsive-container-content {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	width: 100%;
	padding: 0;
}

.site-footer__menu
.wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	flex-wrap: nowrap;
	width: auto;
	gap: 6px;
}

.site-footer__menu
.wp-block-navigation-item {
	display: block;
	width: auto;
	margin: 0;
}

.site-footer__menu
.wp-block-navigation-item__content {
	display: inline-block;
	padding: 3px 0;
	color: var(
		--wp--preset--color--dark-brown,
		#2c1711
	);
	font-family: var(
		--wp--preset--font-family--deuterium,
		sans-serif
	);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.2px;
	line-height: 1.35;
	text-align: right;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.25s ease;
}

.site-footer__menu
.wp-block-navigation-item:last-child
.wp-block-navigation-item__content {
	color: var(
		--wp--preset--color--coral,
		#f57260
	);
	font-weight: 500;
}

.site-footer__menu
.wp-block-navigation-item__content:hover,
.site-footer__menu
.wp-block-navigation-item__content:focus-visible {
	color: var(
		--wp--preset--color--coral,
		#f57260
	);
}

/* ==========================================================
   SOCIAL LINKS
========================================================== */

.site-social-links {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 7px;
	margin: 10px 0 0;
	padding: 10px 0 0;
	list-style: none;
}

.site-social-links__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-social-links__item a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	color: #fff;
	background-color: var(
		--wp--preset--color--dark-brown,
		#2c1711
	);
	font-size: 0;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 0.25s ease,
		transform 0.25s ease;
}

.site-social-links__item a:hover,
.site-social-links__item a:focus-visible {
	background-color: var(
		--wp--preset--color--coral,
		#f57260
	);
	transform: translateY(-2px);
}

.site-social-links__item a::before {
	color: #fff;
	font-family: Arial, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
}

.site-social-links__item--facebook a::before {
	content: "f";
}

.site-social-links__item--instagram a::before {
	content: "◎";
	font-size: 17px;
	font-weight: 400;
}

.site-social-links__item--twitter a::before {
	content: "X";
	font-size: 13px;
	font-weight: 400;
}

.site-social-links__item--youtube a::before {
	content: "▶";
	font-size: 8px;
}

/* ==========================================================
   FOOTER BOTTOM ROW
========================================================== */

.site-footer__bottom {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	width: 100%;
	margin-top: clamp(42px, 5vw, 68px);
	padding-top: 16px;
	gap: 18px 30px;
	color: rgba(44, 23, 17, 0.58);
	font-family: var(
		--wp--preset--font-family--deuterium,
		sans-serif
	);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.4;
}

.site-footer__legal {
	display: flex !important;
	flex: 1 1 auto;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 5px;
	margin: 0 !important;
}

.site-footer__bottom .wp-block-shortcode,
.site-footer__legal .wp-block-shortcode {
	margin: 0;
}

.site-footer__bottom p,
.site-footer__legal p {
	margin: 0;
}

.site-footer .site-copyright,
.site-footer .site-privacy-link,
.site-footer__bottom a {
	font-size: 14px;
}

.site-footer__bottom a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.site-footer__bottom a:hover,
.site-footer__bottom a:focus-visible {
	color: var(
		--wp--preset--color--coral,
		#f57260
	);
}

/* ==========================================================
   AGENCY CREDIT
========================================================== */

.site-footer .site-agency-credit {
	display: inline-flex;
	flex: 0 0 auto;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: nowrap;
	gap: 6px;
	margin: 0;
	text-align: right;
}

.site-agency-credit__text {
	display: inline-block;
	white-space: nowrap;
	font-size:14px;
	font-weight:400;
}

.site-agency-credit__logo-link {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	line-height: 0;
	text-decoration: none;
}

.site-agency-credit__logo {
	display: block;
	width: auto;
	max-width: 100px;
	max-height: 32px;
	height: auto;
	object-fit: contain;
}

/* ==========================================================
   KEYBOARD ACCESSIBILITY
========================================================== */

.site-footer a:focus-visible {
	outline: 2px solid
		var(--wp--preset--color--teal, #00929f);
	outline-offset: 4px;
}

/* ==========================================================
   MEDIUM DESKTOP: 1200PX AND BELOW
========================================================== */

@media (max-width: 1200px) {
	.site-footer__inner {
		width: min(calc(100% - 64px), 1120px);
	}

	.site-footer__grid {
		grid-template-columns:
			minmax(190px, 1fr)
			minmax(260px, 1.15fr)
			minmax(170px, 1fr);
		gap: clamp(30px, 4vw, 60px);
	}

	.site-footer__logo-image {
		max-width: 390px;
		max-height: 150px;
	}

	.site-footer__contact,
	.site-footer__contact
	.site-header__phone-link,
	.site-footer__menu
	.wp-block-navigation-item__content {
		font-size: 15px;
	}
}

/* ==========================================================
   TABLET: 900PX AND BELOW
========================================================== */

@media (max-width: 900px) {
	.site-footer {
		border-top-width: 7px;
	}

	.site-footer__inner {
		width: min(calc(100% - 48px), 720px);
		padding: 50px 0 22px;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
		align-items: center;
		gap: 38px;
		text-align: center;
	}

	/* Logo first on tablet/mobile */
	.site-footer__branding {
		order: 1;
	}

	.site-footer__contact {
		order: 2;
	}

	.site-footer__navigation {
		order: 3;
	}

	.site-footer__contact,
	.site-footer__branding,
	.site-footer__navigation {
		width: 100%;
		text-align: center;
	}

	.site-footer__contact
	.site-header__phone-link {
		justify-content: center;
	}

	.site-footer__logo-image {
		max-width: min(100%, 340px);
		max-height: 130px;
	}

	.site-footer__menu {
		justify-content: center;
	}

	.site-footer__menu
	.wp-block-navigation__responsive-container-content {
		align-items: center;
		justify-content: center;
	}

	.site-footer__menu
	.wp-block-navigation__container {
		align-items: center;
	}

	.site-footer__menu
	.wp-block-navigation-item__content {
		text-align: center;
	}

	.site-social-links {
		justify-content: center;
	}

	.site-footer__bottom {
		flex-direction: column;
		justify-content: center;
		margin-top: 42px;
		gap: 12px;
		text-align: center;
	}

	.site-footer__legal {
		justify-content: center;
	}

	.site-footer .site-agency-credit {
		justify-content: center;
		text-align: center;
	}
}

/* ==========================================================
   MOBILE: 600PX AND BELOW
========================================================== */

@media (max-width: 600px) {
	.site-footer {
		border-top-width: 4px;
	}

	.site-footer__inner {
		width: calc(100% - 40px);
		padding: 42px 0 20px;
	}

	.site-footer__grid {
		gap: 30px;
	}

	.site-footer__contact {
		font-size: 13px;
		line-height: 1.6;
	}

	.site-footer__contact
	.site-header__phone-link {
		font-size: 13px;
	}

	.site-footer__logo-image {
		max-width: min(100%, 270px);
		max-height: 115px;
	}

	.site-footer__menu
	.wp-block-navigation__container {
		gap: 4px;
	}

	.site-footer__menu
	.wp-block-navigation-item__content {
		padding: 4px 0;
		font-size: 13px;
	}

	.site-footer__bottom {
		flex-direction: column;
		margin-top: 34px;
		padding-top: 14px;
		gap: 10px;
		font-size: 12px;
	}

	.site-footer__legal {
		flex-direction: column;
		justify-content: center;
		gap: 4px;
	}

	.site-footer .site-copyright,
	.site-footer .site-privacy-link,
	.site-footer__bottom a {
		font-size: 12px;
	}

	.site-footer .site-agency-credit {
		justify-content: center;
		gap: 5px;
		font-size: 12px;
	}

	.site-agency-credit__logo {
		max-width: 82px;
		max-height: 26px;
	}

	.site-social-links {
		margin-top: 8px;
		padding-top: 6px;
	}

	.site-social-links__item a {
		width: 28px;
		height: 28px;
	}
}

/* ==========================================================
   SMALL MOBILE: 380PX AND BELOW
========================================================== */

@media (max-width: 380px) {
	.site-footer__inner {
		width: calc(100% - 28px);
		padding-top: 36px;
	}

	.site-footer__logo-image {
		max-width: 230px;
	}

	.site-footer .site-agency-credit {
		flex-wrap: wrap;
	}

	.site-agency-credit__text {
		white-space: normal;
	}

	.site-footer__menu
	.wp-block-navigation-item__content {
		font-size: 12px;
	}
}

/* ==========================================================
   REDUCED MOTION
========================================================== */

@media (prefers-reduced-motion: reduce) {
	.site-footer *,
	.site-footer *::before,
	.site-footer *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}