/* Footer shell, local tokens, and shared footer layout primitives. */
.bhs-site-footer {
	--bhs-footer-bg: #f7f8fa;
	--bhs-footer-line: #e8edf2;
	--bhs-footer-ink: #111827;
	--bhs-footer-text: #475569;
	--bhs-footer-muted: #66758a;
	--bhs-footer-blue: var(--bhs-blue-deep, #155b94);
	--bhs-footer-blue-strong: var(--bhs-blue, #2f7bbb);
	--bhs-footer-whatsapp: #177a52;
	border-top: 1px solid var(--bhs-footer-line);
	background: var(--bhs-footer-bg);
	color: var(--bhs-footer-text);
}

.bhs-site-footer *,
.bhs-site-footer *::before,
.bhs-site-footer *::after {
	box-sizing: border-box;
}

.bhs-site-footer__inner {
	width: min(100% - 24px, 1180px);
	margin-inline: auto;
	padding: 22px 0 18px;
	display: grid;
	gap: 13px;
}

.bhs-site-footer__primary,
.bhs-site-footer__secondary {
	display: grid;
	gap: 12px;
}

/* Brand, trust signals, and inline WhatsApp contact affordance. */
.bhs-site-footer__brand {
	display: grid;
	gap: 3px;
}

.bhs-site-footer__wordmark {
	color: var(--bhs-footer-blue);
	font-size: 1.12rem;
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: 0;
}

.bhs-site-footer__brand span {
	max-width: 34rem;
	color: var(--bhs-footer-text);
	font-size: 0.9rem;
	font-weight: 560;
	line-height: 1.38;
}

.bhs-site-footer__trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 8px 11px;
}

.bhs-site-footer .bhs-site-footer__signals {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 7px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bhs-site-footer__signals li,
.bhs-site-footer__secure {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	min-width: 0;
	color: var(--bhs-footer-text);
	font-size: 0.81rem;
	font-weight: 650;
	line-height: 1.35;
}

.bhs-site-footer__signals li:not(:last-child)::after {
	content: "";
	width: 3px;
	height: 3px;
	margin-left: 3px;
	border-radius: 999px;
	background: #b9c5d2;
}

.bhs-site-footer .bhs-icon {
	width: 15px;
	height: 15px;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.bhs-site-footer__signals .bhs-icon {
	color: var(--bhs-footer-blue);
	opacity: 0.84;
}

.bhs-site-footer__whatsapp {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: fit-content;
	min-height: 30px;
	border: 1px solid rgba(23, 122, 82, 0.18);
	border-radius: 999px;
	padding: 0 10px;
	background: rgba(22, 163, 74, 0.065);
	color: var(--bhs-footer-whatsapp, #177a52);
	font-size: 0.8rem;
	font-weight: 760;
	line-height: 1;
	text-decoration: none;
	transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.bhs-site-footer__whatsapp:hover,
.bhs-site-footer__whatsapp:focus-visible {
	transform: translateY(-1px);
	border-color: rgba(23, 122, 82, 0.34);
	background: rgba(22, 163, 74, 0.11);
	color: #0f6849;
	text-decoration: none;
}

.bhs-site-footer__secondary {
	border-top: 1px solid var(--bhs-footer-line);
	padding-top: 12px;
}

/* Secondary navigation and shared focus treatment. */
.bhs-site-footer__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 13px;
	align-items: center;
	justify-content: flex-start;
}

.bhs-site-footer__nav a {
	color: var(--bhs-footer-muted);
	font-size: 0.79rem;
	font-weight: 570;
	line-height: 1.35;
	text-decoration: none;
	text-underline-offset: 4px;
	transition: color 160ms ease, text-decoration-color 160ms ease;
}

.bhs-site-footer__nav a:hover,
.bhs-site-footer__nav a:focus-visible {
	color: var(--bhs-footer-blue-strong);
	text-decoration: underline;
}

.bhs-site-footer__whatsapp:focus-visible,
.bhs-site-footer__nav a:focus-visible {
	outline: 2px solid rgba(47, 123, 187, 0.28);
	outline-offset: 4px;
}

/* Floating WhatsApp action and body-state visibility guards. */
a.bhs-whatsapp-float {
	position: fixed;
	right: max(18px, env(safe-area-inset-right));
	bottom: max(18px, env(safe-area-inset-bottom));
	z-index: 95;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border: 1px solid rgba(23, 122, 82, 0.18);
	border-radius: 999px;
	background: #ffffff;
	color: var(--bhs-footer-whatsapp, #177a52);
	box-shadow: 0 12px 26px rgba(15, 42, 72, 0.14);
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease, color 180ms ease, opacity 180ms ease;
}

.bhs-whatsapp-float::before {
	display: none;
}

.bhs-whatsapp-float .bhs-icon {
	width: 25px;
	height: 25px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.1;
}

a.bhs-whatsapp-float:hover,
a.bhs-whatsapp-float:focus-visible {
	border-color: rgba(23, 122, 82, 0.34);
	background: #f3fbf6;
	color: #0f6849;
	transform: translateY(-1px);
	box-shadow: 0 14px 30px rgba(15, 42, 72, 0.18);
}

.bhs-whatsapp-float:focus-visible {
	outline: 2px solid rgba(47, 123, 187, 0.32);
	outline-offset: 4px;
}

.bhs-whatsapp-float:active {
	transform: translateY(0);
}

body.bhs-whatsapp-float-footer-hidden .bhs-whatsapp-float,
body.bhs-whatsapp-float-ui-hidden .bhs-whatsapp-float {
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
}

.bhs-site-footer__copyright {
	color: var(--bhs-footer-muted);
	font-size: 0.76rem;
	font-weight: 600;
	line-height: 1.35;
	white-space: nowrap;
}

/* Compact footer variant used by checkout surfaces. */
.bhs-site-footer--checkout .bhs-site-footer__inner {
	padding: 13px 0;
}

.bhs-site-footer__checkout-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px 12px;
}

.bhs-site-footer__secure {
	color: var(--bhs-footer-blue);
	font-weight: 730;
}

.bhs-site-footer__nav--checkout {
	display: contents;
}

/* Responsive footer layout, including compact checkout and mobile trust grids. */
@media (prefers-reduced-motion: reduce) {
	a.bhs-whatsapp-float {
		transition: none;
	}
}

@media (min-width: 960px) {
	.bhs-site-footer__inner {
		width: min(100% - 32px, 1180px);
		padding: 25px 0 18px;
		gap: 14px;
	}

	.bhs-site-footer__primary {
		grid-template-columns: minmax(240px, 1fr) minmax(0, auto);
		align-items: start;
		gap: 24px;
	}

	.bhs-site-footer__trust {
		justify-content: flex-end;
		gap: 8px 13px;
	}

	.bhs-site-footer__signals {
		justify-content: flex-end;
		gap: 7px 14px;
	}

	.bhs-site-footer__secondary {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 16px;
	}

	.bhs-site-footer__nav {
		gap: 7px 16px;
	}
}

@media (min-width: 760px) and (max-width: 959px) {
	.bhs-site-footer__inner {
		width: min(100% - 32px, 1180px);
		padding: 24px 0 18px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__primary,
	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__secondary {
		justify-items: start;
	}
}

@media (min-width: 760px) {
	.bhs-site-footer__checkout-line {
		justify-content: space-between;
		gap: 9px 16px;
	}
}

@media (max-width: 959px) {
	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__trust,
	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals,
	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__nav {
		width: 100%;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals li::after {
		display: none;
	}
}

@media (max-width: 700px) {
	a.bhs-whatsapp-float {
		right: max(14px, env(safe-area-inset-right));
		bottom: max(14px, env(safe-area-inset-bottom));
		width: 48px;
		height: 48px;
		border-width: 1px;
	}

	.bhs-whatsapp-float .bhs-icon {
		width: 23px;
		height: 23px;
	}

	.bhs-site-footer--checkout {
		border-top-color: rgba(102, 117, 138, 0.12);
		background: transparent;
	}

	.bhs-site-footer--checkout .bhs-site-footer__inner {
		padding: 7px 0 6px;
	}

	.bhs-site-footer--checkout .bhs-site-footer__checkout-line {
		gap: 5px 10px;
	}

	.bhs-site-footer--checkout .bhs-site-footer__secure,
	.bhs-site-footer--checkout .bhs-site-footer__copyright,
	.bhs-site-footer--checkout .bhs-site-footer__nav a {
		color: #65748a;
		font-size: 0.72rem;
		font-weight: 560;
		line-height: 1.25;
	}

	.bhs-site-footer--checkout .bhs-site-footer__secure {
		color: #0f5f9b;
		font-weight: 650;
	}

	.bhs-site-footer--checkout .bhs-site-footer__secure .bhs-icon {
		width: 12px;
		height: 12px;
		stroke-width: 1.9;
		opacity: 0.86;
	}
}

@media (max-width: 520px) {
	.bhs-site-footer__inner {
		width: min(100% - 20px, 1180px);
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		align-items: stretch;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals li {
		align-items: center;
		justify-self: stretch;
		gap: 5px;
		width: 100%;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals .bhs-icon {
		width: 14px;
		height: 14px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signal-action {
		display: flex;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__whatsapp {
		width: 100%;
		min-height: 30px;
	}

	.bhs-site-footer__nav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px 12px;
	}

	.bhs-site-footer--checkout .bhs-site-footer__nav {
		display: contents;
	}

	.bhs-site-footer__copyright {
		white-space: normal;
	}
}

@media (max-width: 420px) {
	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__inner {
		padding-top: 20px;
		padding-bottom: 16px;
		gap: 12px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__primary,
	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__secondary {
		gap: 10px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals {
		gap: 7px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals li {
		gap: 4px;
		font-size: 0.76rem;
		line-height: 1.25;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__signals .bhs-icon {
		width: 13px;
		height: 13px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__whatsapp {
		min-height: 30px;
		font-size: 0.76rem;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__nav {
		gap: 7px 10px;
	}

	.bhs-site-footer:not(.bhs-site-footer--checkout) .bhs-site-footer__nav a {
		font-size: 0.76rem;
	}
}
