/**
 * Global footer + mobile bottom navigation.
 * Redesigned in the approved-v1 language: navy surface, soft rounding,
 * white license cards. Mobile link groups are accordions, not tiny
 * multi-column text.
 */

.nbf-footer {
	margin-block-start: var(--nbf-section-gap);
	color: var(--nbf-color-text-inverse);
}

/* Support strip */
.nbf-footer__support {
	background: var(--nbf-color-primary-600);
}

.nbf-footer__support-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nbf-space-2) var(--nbf-space-6);
	padding-block: var(--nbf-space-3);
}

.nbf-footer__support-text {
	display: inline-flex;
	align-items: center;
	gap: var(--nbf-space-2);
	margin: 0;
	font-size: var(--nbf-fs-sm);
	font-weight: var(--nbf-fw-medium);
}

.nbf-footer__support-text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

/* Main navy area */
.nbf-footer__main {
	background: var(--nbf-color-navy-900);
	padding-block: var(--nbf-space-10) var(--nbf-space-8);
}

.nbf-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.4fr;
	gap: var(--nbf-space-8);
	align-items: start;
}

.nbf-footer__title {
	color: var(--nbf-color-text-inverse);
	font-size: var(--nbf-fs-lg);
	margin-block-end: var(--nbf-space-3);
}

.nbf-footer__col-title {
	color: var(--nbf-color-text-inverse);
	font-size: var(--nbf-fs-md);
	font-weight: var(--nbf-fw-bold);
	margin-block-end: var(--nbf-space-3);
}

.nbf-footer__text {
	color: rgb(255 255 255 / 0.75);
	font-size: var(--nbf-fs-sm);
}

.nbf-footer__text--muted {
	color: rgb(255 255 255 / 0.65);
}

.nbf-footer__contact {
	display: grid;
	gap: var(--nbf-space-2);
	font-style: normal;
	font-size: var(--nbf-fs-sm);
	color: rgb(255 255 255 / 0.75);
	margin-block-end: var(--nbf-space-4);
}

.nbf-footer__contact-row {
	display: flex;
	align-items: center;
	gap: var(--nbf-space-2);
}

.nbf-footer__contact-row .nbf-icon {
	color: var(--nbf-color-primary-300);
	flex-shrink: 0;
}

.nbf-footer__contact a {
	color: inherit;
}

.nbf-footer__contact a:hover {
	color: var(--nbf-color-text-inverse);
}

.nbf-footer__socials {
	display: flex;
	gap: var(--nbf-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nbf-footer__social {
	background: rgb(255 255 255 / 0.08);
	border-color: transparent;
	color: var(--nbf-color-text-inverse);
}

.nbf-footer__social:hover {
	background: var(--nbf-color-primary-600);
	border-color: transparent;
	color: var(--nbf-color-text-inverse);
}

/* Link groups (desktop columns / mobile accordions) */
.nbf-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--nbf-space-2);
}

.nbf-footer__links a {
	color: rgb(255 255 255 / 0.75);
	font-size: var(--nbf-fs-sm);
}

.nbf-footer__links a:hover {
	color: var(--nbf-color-text-inverse);
	text-decoration: none;
}

.nbf-footer__group-summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nbf-space-2);
	cursor: default;
}

.nbf-footer__group-summary::-webkit-details-marker {
	display: none;
}

.nbf-footer__group-chevron {
	display: none;
	transition: transform var(--nbf-duration) var(--nbf-ease);
}

/* Licenses */
.nbf-footer__licenses {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nbf-space-3);
}

.nbf-footer__license {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 5.5rem;
	block-size: 5.5rem;
	padding: var(--nbf-space-2);
	background: var(--nbf-color-surface);
	border-radius: var(--nbf-radius-md);
}

.nbf-footer__license-img {
	max-inline-size: 100%;
	max-block-size: 100%;
	object-fit: contain;
}

/* Legal row */
.nbf-footer__legal {
	background: var(--nbf-color-navy-900);
	border-block-start: 1px solid rgb(255 255 255 / 0.08);
}

.nbf-footer__legal-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nbf-space-2) var(--nbf-space-6);
	padding-block: var(--nbf-space-4);
}

.nbf-footer__copyright {
	margin: 0;
	font-size: var(--nbf-fs-xs);
	color: rgb(255 255 255 / 0.7);
}

.nbf-footer__legal-links {
	display: flex;
	gap: var(--nbf-space-4);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nbf-footer__legal-links a {
	font-size: var(--nbf-fs-xs);
	color: rgb(255 255 255 / 0.7);
}

.nbf-footer__legal-links a:hover {
	color: var(--nbf-color-text-inverse);
}

/* ------------------------------------------------------------------
 * Mobile: accordion groups, stacked layout
 * ---------------------------------------------------------------- */
@media (max-width: 767px) {
	.nbf-footer__grid {
		grid-template-columns: 1fr;
		gap: var(--nbf-space-5);
	}

	.nbf-footer__group {
		border-block-end: 1px solid rgb(255 255 255 / 0.1);
		padding-block-end: var(--nbf-space-3);
	}

	.nbf-footer__group-summary {
		cursor: pointer;
		min-block-size: var(--nbf-tap-target);
		align-items: center;
		margin: 0;
	}

	.nbf-footer__group-summary:focus-visible {
		outline: 2px solid var(--nbf-color-focus-ring);
		outline-offset: 2px;
		border-radius: var(--nbf-radius-xs);
	}

	.nbf-footer__group-chevron {
		display: inline-flex;
		color: rgb(255 255 255 / 0.55);
	}

	.nbf-footer__group[open] .nbf-footer__group-chevron {
		transform: rotate(180deg);
	}

	.nbf-footer__group-body {
		padding-block-start: var(--nbf-space-2);
	}
}

/* ------------------------------------------------------------------
 * Bottom navigation (mobile only)
 * ---------------------------------------------------------------- */
.nbf-bottom-nav {
	position: fixed;
	inset-block-end: 0;
	inset-inline: 0;
	z-index: var(--nbf-z-sticky);
	background: var(--nbf-color-surface);
	border-block-start: 1px solid var(--nbf-color-border);
	box-shadow: 0 -4px 16px rgb(16 44 84 / 0.08);
	padding-block-end: env(safe-area-inset-bottom, 0);
	display: none;
}

.nbf-bottom-nav__list {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nbf-bottom-nav__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.125rem;
	min-block-size: 3.5rem;
	color: var(--nbf-color-text-3);
	font-size: var(--nbf-fs-2xs);
	font-weight: var(--nbf-fw-medium);
}

.nbf-bottom-nav__item:hover {
	text-decoration: none;
	color: var(--nbf-color-primary-600);
}

.nbf-bottom-nav__item--active {
	color: var(--nbf-color-primary-600);
	font-weight: var(--nbf-fw-bold);
}

.nbf-bottom-nav__icon {
	position: relative;
	display: inline-flex;
}

.nbf-bottom-nav__icon .nbf-cart-count {
	position: absolute;
	inset-block-start: -0.375rem;
	inset-inline-end: -0.5rem;
	background: var(--nbf-color-error);
}

@media (max-width: 1023px) {
	.nbf-bottom-nav {
		display: block;
	}

	/* Reserve space so fixed nav never covers content or the footer. */
	body:has(.nbf-bottom-nav) {
		padding-block-end: calc(3.5rem + env(safe-area-inset-bottom, 0px));
	}
}
