.lf-site-footer {
	margin-top: var(--lf-section-gap);
}

.lf-site-footer--dark {
	background: var(--lf-secondary);
	color: #EDE7E1;
}

.lf-site-footer--light {
	background: var(--lf-card-background);
	color: var(--lf-text);
	border-top: 1px solid var(--lf-border);
}

/* ---- Top area: brand column + widget columns + newsletter ----
   Flexbox rather than a fixed grid-template-columns: some footer-1..4
   widget areas may be empty on a given site (only the ones the admin
   populated render at all — see site-footer.php's is_active_sidebar()
   check), and a fixed N-column grid still reserves space for every
   column track whether or not a child actually lands in it, leaving a
   large dead empty gap on one side. Flex-wrap only ever allocates space
   for children that actually exist. */

.lf-footer-top {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	padding-block: var(--lf-section-gap);
}

.lf-footer-brand {
	flex: 1 1 240px;
}

.lf-footer-column {
	flex: 1 1 160px;
}

.lf-footer-newsletter {
	flex: 1.4 1 260px;
}

.lf-footer-brand .lf-logo-text {
	color: inherit;
}

.lf-site-footer--dark .lf-footer-brand .lf-logo-text {
	color: #fff;
}

.lf-footer-tagline {
	margin: 0.75rem 0;
	font-size: 0.85rem;
	opacity: 0.75;
	max-width: 30ch;
}

.lf-footer-socials {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
}

.lf-footer-socials a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lf-site-footer--dark .lf-footer-socials a {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}

.lf-site-footer--light .lf-footer-socials a {
	background: var(--lf-accent);
	color: var(--lf-primary-dark, var(--lf-primary));
}

.lf-footer-socials a:hover {
	background: var(--lf-primary);
	color: #fff;
}

.lf-footer-top .lf-widget-title {
	font-size: 1rem;
	margin-bottom: 1rem;
}

.lf-site-footer--dark .lf-widget-title {
	color: #fff;
}

.lf-footer-column ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.lf-footer-top a {
	font-size: 0.9rem;
}

.lf-site-footer--dark .lf-footer-top a {
	color: #C9C1B8;
}

.lf-site-footer--light .lf-footer-top a {
	color: var(--lf-muted);
}

.lf-footer-top a:hover {
	color: var(--lf-primary);
}

/* ---- Newsletter box ---- */

.lf-footer-newsletter__form {
	display: flex;
	border-radius: var(--lf-radius-sm);
	overflow: hidden;
}

.lf-footer-newsletter__form input[type="email"] {
	flex: 1;
	min-width: 0;
	border: none;
	padding: 0.75rem 1rem;
	font-size: 0.9rem;
}

.lf-footer-newsletter__form button {
	border: none;
	background: var(--lf-primary);
	color: #fff;
	padding: 0 1.1rem;
	cursor: pointer;
}

.lf-footer-newsletter__form.is-submitting {
	opacity: 0.6;
	pointer-events: none;
}

.lf-footer-newsletter__note {
	font-size: 0.75rem;
	opacity: 0.65;
	margin: 0.6rem 0 0;
	max-width: 32ch;
}

/* ---- Contact + payment bar ---- */

.lf-footer-contact-bar {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.lf-site-footer--light .lf-footer-contact-bar {
	border-top-color: var(--lf-border);
}

.lf-footer-contact-bar__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1rem;
	font-size: 0.85rem;
}

.lf-footer-contact-bar__text {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	margin: 0;
	opacity: 0.85;
}

.lf-footer-contact-bar__text a {
	color: inherit;
	text-decoration: underline;
}

.lf-footer-payments {
	display: flex;
	gap: 0.5rem;
}

.lf-footer-payment-badge {
	background: rgba(255, 255, 255, 0.1);
	border-radius: var(--lf-radius-sm);
	padding: 0.3rem 0.6rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.lf-site-footer--light .lf-footer-payment-badge {
	background: var(--lf-accent);
	color: var(--lf-primary-dark, var(--lf-primary));
}

/* ---- Bottom bar ---- */

.lf-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-block: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.85rem;
	opacity: 0.75;
}

.lf-site-footer--light .lf-footer-bottom {
	border-top-color: var(--lf-border);
}

.lf-footer-bottom .lf-nav-menu {
	gap: 1.25rem;
}

.lf-footer-bottom .lf-nav-menu a {
	font-size: 0.85rem;
	border: none;
	color: inherit;
}

@media (max-width: 1024px) {
	.lf-footer-brand,
	.lf-footer-column,
	.lf-footer-newsletter {
		flex-basis: calc(50% - 1rem);
	}
}

@media (max-width: 640px) {
	.lf-footer-brand,
	.lf-footer-column,
	.lf-footer-newsletter {
		flex-basis: 100%;
	}

	.lf-footer-contact-bar__row,
	.lf-footer-bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}
