/* lavtheme — the site footer on every page except the front page.

   The front page's footer (template-parts/home-footer.php, styled in
   assets/css/home.css) is the one the owner asked for everywhere. Inner pages
   used a second, older footer (template-parts/footer-content.php) whose CSS put
   the brand block flush against the panel edge and pushed the "Stay in touch"
   cards past the right edge. footer.php now renders the same template on every
   page; this file is the same rules for pages that do not load home.css.

   Every selector is anchored on `footer.footer` or `.footer …`. Two older
   sources still reach bare `.footer` / `.foot-bottom` on inner pages — the Code
   Studio database CSS (`.footer{padding:48px}`) and the old section stylesheet
   (`.footer{display:flex}`, `.foot-bottom{padding-top:32px}`) — and one extra
   type or class in each selector is what keeps this layout from depending on
   load order. Tokens that only home.css defines get fallbacks here. */

footer.footer {
	--fs-caption: 0.8125rem;
	--fs-label: 0.875rem;
	--fs-body: 1rem;
	display: block;
	border: 0;
	background: none;
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	margin-block-start: 24px;
	padding: 0 0 48px;
}
.footer > .wrap { width: 100%; max-width: var(--home-measure, 1240px); margin-inline: auto; padding-inline: var(--lav-fluid-s, 16px); }
.footer .foot-panel { padding: 40px; }

.footer .foot-top { display: grid; gap: 32px; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr); }

.footer .foot-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer .foot-brand__mark { display: inline-flex; color: var(--lav-text-primary); }
.footer .foot-brand__mark svg { inline-size: 150px; block-size: auto; }
.footer .foot-brand__tag { margin: 0; max-inline-size: 34ch; color: var(--lav-text-secondary); font-size: var(--fs-label); line-height: 1.6; }
.footer .foot-mail { display: inline-flex; align-items: center; gap: 8px; min-block-size: 24px; color: var(--lav-text-primary); text-decoration: none; font-weight: 600; font-size: var(--fs-label); }
.footer .foot-mail svg { inline-size: 17px; block-size: 17px; color: var(--lav-cta); flex: 0 0 auto; }
.footer .foot-mail span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--lav-line-strong); }
.footer .foot-mail:hover span { text-decoration-color: var(--lav-cta); }
.footer .foot-brand__meta { margin: 0; color: var(--lav-text-tertiary); font-size: var(--fs-caption); }

.footer .foot-col { min-inline-size: 0; }
.footer .foot-col > summary { list-style: none; display: flex; align-items: center; min-block-size: 26px; }
.footer .foot-col > summary::-webkit-details-marker { display: none; }
.footer .foot-col__h { margin: 0 0 12px; font-size: var(--fs-caption); font-weight: 700; text-transform: uppercase; letter-spacing: var(--lav-track-wide, .06em); color: var(--lav-text-tertiary); }
.footer .foot-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.footer .foot-col a { display: inline-flex; align-items: center; min-block-size: 28px; padding: 0; color: var(--lav-text-secondary); text-decoration: none; font-size: var(--fs-label); transition: color var(--lav-dur-base, .26s) var(--lav-ease-standard, ease); }
.footer .foot-col a:hover { color: var(--lav-text-primary); padding: 0; }
.footer .foot-col__all { font-weight: 600; }
.footer .foot-col__all span { display: inline-block; margin-inline-start: 4px; transition: transform var(--lav-dur-fast, .16s) var(--lav-ease-spring, ease); }
.footer .foot-col__all:hover span { transform: translateX(3px); }

/* Stacked and full-width: the column is too narrow for field and button side by side (see home.css). */
.footer .foot-news .foot-col__h { margin-block-end: 8px; }
.footer .foot-news__note { margin: 0 0 16px; color: var(--lav-text-tertiary); font-size: var(--fs-label); line-height: 1.55; max-inline-size: 36ch; }
.footer .news { display: flex; flex-direction: column; align-items: stretch; gap: 8px; max-width: none; }
.footer .news__input { inline-size: 100%; min-inline-size: 0; font: inherit; font-size: var(--fs-label); color: var(--lav-text-primary); block-size: 44px; padding-inline: 16px; border-radius: var(--lav-radius-pill, 999px); background: var(--surf-1); border: 1px solid var(--glass-line); }
.footer .news__ok, .footer .news__err { margin: 8px 0 0; font-size: var(--fs-caption); line-height: 1.5; }
.footer .news__input::placeholder { color: var(--lav-text-tertiary); }
.footer .news__input:focus-visible { outline: 2px solid var(--lav-focus); outline-offset: 2px; }
.footer .btn-solid { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font: inherit; font-size: var(--fs-body); font-weight: 600; text-decoration: none; white-space: nowrap; block-size: 40px; padding-inline: 24px; border-radius: var(--lav-radius-pill, 999px); background: var(--lav-cta); color: var(--lav-cta-ink); border: 1px solid var(--lav-cta); transition: transform var(--lav-dur-fast, .16s) var(--lav-ease-spring, ease); }
.footer .btn-solid:hover { transform: scale(1.03); }
.footer .btn-solid:active { transform: scale(.97); }
.footer .news__btn { inline-size: 100%; block-size: 44px; padding-inline: 20px; }

.footer .foot-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-block-start: 32px; padding: 24px 0 0; border-block-start: 1px solid var(--glass-line); }
.footer .foot-bottom__copy { margin: 0; color: var(--lav-text-tertiary); font-size: var(--fs-caption); letter-spacing: var(--lav-track-wide, .06em); }
.footer .foot-bottom__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.footer .foot-bottom__legal a { display: inline-flex; align-items: center; min-block-size: 24px; color: var(--lav-text-tertiary); text-decoration: none; font-size: var(--fs-caption); }
.footer .foot-bottom__legal a:hover { color: var(--lav-text-primary); }

@media (max-width: 1100px) {
	.footer .foot-top { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); }
	.footer .foot-news { grid-column: 2 / -1; }
}

@media (max-width: 640px) {
	footer.footer { padding: 0 0 24px; }
	.footer > .wrap { padding-inline: 0; }
	.footer .foot-panel { padding: 20px 16px; }
	.footer .foot-top { grid-template-columns: 1fr; gap: 4px; }
	.footer .foot-news { grid-column: auto; }
	.footer .foot-brand { gap: 10px; margin-block-end: 16px; }
	.footer .foot-brand__mark svg { inline-size: 128px; }
	.footer .foot-col { border-block-start: 1px solid var(--glass-line); }
	.footer .foot-col > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-block-size: 48px; -webkit-tap-highlight-color: transparent; }
	.footer .foot-col > summary::after { content: ""; inline-size: 9px; block-size: 9px; flex: 0 0 auto; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; color: var(--lav-text-tertiary); transform: rotate(45deg) translate(-2px, -2px); transition: transform var(--lav-dur-base, .26s) var(--lav-ease-standard, ease); }
	.footer .foot-col[open] > summary::after { transform: rotate(225deg) translate(-2px, -2px); }
	.footer .foot-col__h { margin: 0; font-size: 0.82rem; color: var(--lav-text-primary); }
	.footer .foot-col ul { padding-block: 0 12px; gap: 0; }
	.footer .foot-col a { min-block-size: 38px; }
	.footer .foot-news { margin-block-start: 20px; padding-block-start: 20px; border-block-start: 1px solid var(--glass-line); }
	.footer .foot-news__note { max-inline-size: none; }
	.footer .foot-bottom { margin-block-start: 20px; padding-block-start: 16px; flex-direction: column; align-items: flex-start; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.footer .foot-col a, .footer .foot-col__all span, .footer .foot-col > summary::after, .footer .btn-solid { transition: none; }
}
