/**
 * footer.css
 * 4-column desktop layout; native <details>/<summary> accordion on
 * mobile, driven entirely by the browser (no JS — see site-footer.php).
 */

.site-footer {
	margin-top: var(--space-7);
	border-top: 1px solid var(--color-border);
	background-color: var(--color-surface);
}

.site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--space-5) var(--space-6);
	padding-block: var(--space-6);
}

/*
 * Deliberately flex, not a fixed-column grid: if Appearance → Menus
 * doesn't have all three Footer locations assigned (§29 treats every
 * one of them as optional), a hardcoded grid-template-columns would
 * still reserve empty tracks for the missing menus, leaving a large
 * dead gap between branding and the social icons. Flex-wrap only ever
 * lays out whichever children actually exist.
 */
.site-footer__branding {
	flex: 1 1 240px;
	max-width: 280px;
}

.footer-accordion {
	flex: 1 1 160px;
}

.site-footer__widgets {
	flex: 1 1 200px;
}

.site-footer__social {
	flex: 0 0 auto;
}

.site-footer__logo-text {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: var(--space-2);
}

.site-footer__description {
	color: var(--color-text-muted);
	font-size: var(--font-size-small);
}

.site-footer__heading {
	font-size: var(--font-size-small);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
	margin-bottom: var(--space-3);
}

.site-footer__menu {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.site-footer__menu a {
	font-size: var(--font-size-small);
	color: var(--color-text-secondary);
	transition: color var(--duration-base) var(--ease-standard);
}

.site-footer__menu a:hover {
	color: var(--color-text);
}

.site-footer__social {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.social-links {
	display: flex;
	gap: var(--space-2);
}

.social-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
	color: var(--color-text-secondary);
	transition:
		border-color var(--duration-base) var(--ease-standard),
		color var(--duration-base) var(--ease-standard);
}

.social-links a:hover {
	border-color: var(--color-text);
	color: var(--color-text);
}

.social-links svg {
	width: 16px;
	height: 16px;
}

.site-footer__bottom {
	border-top: 1px solid var(--color-border);
}

.site-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	padding-block: var(--space-3);
}

.site-footer__copyright,
.site-footer__payment-note {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
}

/* ---------------------------------------------------------------
 * Accordion columns (<details>/<summary>)
 * ------------------------------------------------------------- */
.footer-accordion__summary {
	cursor: default;
	list-style: none;
}

.footer-accordion__summary::-webkit-details-marker {
	display: none;
}

/* Desktop: static heading, always expanded, no disclosure triangle,
   not interactive (§29 desktop is a plain 4-column layout). */
@media (min-width: 769px) {
	.footer-accordion__summary {
		pointer-events: none;
	}
}

/* ---------------------------------------------------------------
 * Mobile: collapse to a single column and turn each section into a
 * real accordion using native <details> open/close — no JS involved.
 * ------------------------------------------------------------- */
@media (max-width: 768px) {
	.site-footer__inner {
		flex-direction: column;
		gap: 0;
		padding-block: var(--space-4) var(--space-2);
	}

	.site-footer__branding {
		max-width: none;
		padding-bottom: var(--space-4);
		margin-bottom: var(--space-2);
		border-bottom: 1px solid var(--color-border);
	}

	.footer-accordion {
		border-bottom: 1px solid var(--color-border);
	}

	.footer-accordion__summary {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding-block: var(--space-3);
		margin-bottom: 0;
	}

	.footer-accordion__summary::after {
		content: "";
		width: 10px;
		height: 10px;
		border-right: 1.5px solid var(--color-text-muted);
		border-bottom: 1.5px solid var(--color-text-muted);
		transform: rotate(45deg);
		transition: transform var(--duration-base) var(--ease-standard);
	}

	.footer-accordion[open] .footer-accordion__summary::after {
		transform: rotate(-135deg);
	}

	.footer-accordion nav {
		padding-bottom: var(--space-3);
	}

	.site-footer__social {
		padding-block: var(--space-4);
		align-items: flex-start;
	}

	.site-footer__bottom-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--space-1);
	}
}
