/**
 * Site-wide footer styles.
 */

.cft-site-footer {
	color: #fff;
	background-color: #050505;
	background-image: url("../images/footer-pattern.svg");
	background-repeat: repeat;
	background-size: 160px 160px;
	overflow-wrap: anywhere;
}

.cft-footer-main {
	padding-block: clamp(48px, 7vw, 88px) clamp(42px, 6vw, 72px);
}

.cft-footer-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
	gap: var(--cft-footer-column-gap, clamp(32px, 5vw, 76px));
}

.cft-footer-section {
	width: fit-content;
	min-width: 0;
	max-width: 100%;
	justify-self: var(--cft-footer-position, left);
}

.cft-footer-heading {
	margin: 0 0 28px;
	color: #fff;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 700;
	line-height: 1.2;
	text-align: var(--cft-footer-heading-align, left);
}

.cft-footer-section__content {
	text-align: var(--cft-footer-align, left);
}

.cft-footer-logo {
	display: inline-block;
	width: auto;
	max-width: min(100%, 180px);
	height: auto;
	max-height: 96px;
	margin-bottom: 14px;
	object-fit: contain;
}

.cft-footer-business-name,
.cft-footer-business-description {
	margin: 0 0 16px;
}

.cft-footer-business-name {
	font-size: 18px;
	font-weight: 700;
}

.cft-footer-business-description,
.cft-footer-contact__value {
	white-space: pre-line;
}

.cft-footer-contact__item {
	margin-bottom: 23px;
	color: #f5f5f5;
	font-size: 16px;
	line-height: 1.45;
}

.cft-footer-contact__line {
	display: inline-flex;
	gap: 10px;
	align-items: flex-start;
	max-width: 100%;
	vertical-align: top;
}

.cft-footer-contact__line > div {
	min-width: 0;
}

.cft-footer-contact__label {
	display: block;
	margin-bottom: 5px;
	font-weight: 700;
}

.cft-footer-contact__line svg,
.cft-footer-socials svg {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.cft-footer-contact__line svg {
	color: #d9b878;
}

.cft-footer-contact a,
.cft-footer-menu a,
.cft-footer-socials a {
	color: #fff;
	text-decoration: none;
	transition: color 160ms ease;
}

.cft-footer-contact a:hover,
.cft-footer-contact a:focus-visible,
.cft-footer-menu a:hover,
.cft-footer-menu a:focus-visible,
.cft-footer-socials a:hover,
.cft-footer-socials a:focus-visible {
	color: #d9b878;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cft-footer-menu {
	display: grid;
	gap: 18px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.cft-footer-menu a {
	display: inline-block;
	font-size: 16px;
	line-height: 1.35;
}

.cft-footer-socials,
.cft-footer-bottom__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: var(--cft-footer-align, center);
	padding: 0;
	margin: 0;
	list-style: none;
}

.cft-footer-socials {
	gap: 8px;
}

.cft-footer-socials a {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 50%;
}

.cft-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.cft-footer-bottom__inner {
	display: grid;
	align-items: center;
	gap: var(--cft-footer-bottom-gap, 12px);
	padding-block: var(--cft-footer-bottom-padding, 18px);
}

.cft-footer-bottom__inner--row {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

.cft-footer-bottom__group {
	min-width: 0;
	color: #b8b8b8;
	font-size: 13px;
	text-align: var(--cft-footer-align, center);
}

.cft-footer-bottom p {
	margin: 0;
}

.cft-footer-bottom__copy:not(:empty) + .cft-footer-bottom__credit {
	margin-top: 6px;
}

.cft-footer-bottom__copy a,
.cft-footer-bottom__credit a,
.cft-footer-bottom__links a {
	color: #ddd;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cft-footer-bottom__links {
	gap: 8px 20px;
}

.cft-mobile-bottom-nav {
	display: none;
}

@media (max-width: 640px) {
	:root {
		--cft-mobile-nav-height: 64px;
		--cft-mobile-safe-area: env(safe-area-inset-bottom, 0px);
		scroll-padding-bottom: calc(var(--cft-mobile-nav-height) + var(--cft-mobile-safe-area) + 12px);
	}

	body {
		padding-block-end: calc(var(--cft-mobile-nav-height) + var(--cft-mobile-safe-area));
	}

	.cft-mobile-bottom-nav {
		position: fixed;
		z-index: 100;
		inset-inline: 0;
		bottom: 0;
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		height: calc(var(--cft-mobile-nav-height) + var(--cft-mobile-safe-area));
		padding-bottom: var(--cft-mobile-safe-area);
		border-top: 1px solid #dedede;
		background: #fff;
		box-shadow: 0 -3px 16px rgb(0 0 0 / 6%);
	}

	.cft-mobile-bottom-nav > a,
	.cft-mobile-bottom-nav > button {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		min-width: 0;
		padding: 4px 2px;
		border: 0;
		color: #595959;
		background: transparent;
		font: inherit;
		font-size: 11px;
		line-height: 1.2;
		text-align: center;
		text-decoration: none;
		overflow-wrap: anywhere;
	}

	.cft-mobile-bottom-nav svg {
		width: 22px;
		height: 22px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.cft-mobile-bottom-nav .is-active {
		color: #111;
		font-weight: 700;
	}

	.cft-mobile-bottom-nav .is-active::before {
		position: absolute;
		inset: 0 20% auto;
		height: 2px;
		background: #111;
		content: "";
	}

	.cft-mobile-bottom-nav__badge {
		position: absolute;
		top: 3px;
		inset-inline-start: calc(50% + 6px);
		display: grid;
		min-width: 17px;
		height: 17px;
		place-items: center;
		padding-inline: 3px;
		border-radius: 20px;
		color: #fff;
		background: #111;
		font-size: 10px;
		line-height: 1;
	}

	body.cft-drawer-open .cft-mobile-bottom-nav {
		visibility: hidden;
	}
}

@media (max-width: 1000px) {
	.cft-footer-grid {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	}
}

@media (max-width: 640px) {
	.cft-footer-grid,
	.cft-footer-bottom__inner--row {
		grid-template-columns: minmax(0, 1fr);
	}

	.cft-footer-grid {
		gap: var(--cft-footer-column-gap, 40px);
	}
}

@media (max-width: 560px) {
	.cft-footer-main {
		padding-block: 44px 46px;
	}

	.cft-footer-heading {
		margin-bottom: 20px;
	}

	.cft-footer-contact__item {
		margin-bottom: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cft-footer-contact a,
	.cft-footer-menu a,
	.cft-footer-socials a {
		transition: none;
	}
}
