/*
 * Wariant stopki `kolumny` (chrome.json → "footer": "kolumny"): marka z
 * kontaktem i social, trzy grupy linków (akordeon na telefonie), dopisek,
 * pasek prawny. Markup: parts/footer/kolumny.php. Kolejkowany przez
 * agency_enqueue_chrome() (inc/assets.php) po base.css i po arkuszu
 * wariantu nagłówka — tylko na stronie, która ten wariant wybrała.
 *
 * Skąd: reguła po regule z sites/planmax/css/chrome.css (fokus z §1, §9 bez
 * wiersza „Realizujemy” `.s-ftr__kind*`, części stopki §10–11) — ten sam
 * selektor, ten sam @media, ta sama kolejność (spec chrome-wspolny §8).
 * Wiersz „Realizujemy” jest dodatkiem PlanMax (hak agency_footer_before_bottom)
 * i jego wygląd zostaje w skórze.
 *
 * Bez :where() — jak header-mega.css (spec D3): selektory zachowują
 * specyficzność źródła; skóra nadpisuje selektorem o specyficzności co
 * najmniej równej, bo stoi później w kaskadzie.
 *
 * Pismo (font-*, line-height, letter-spacing, text-transform) zostaje w
 * skórze pod tym samym selektorem (spec D1, lint noBrandValues).
 *
 * Kolor stoi w tokenie `--s-chrome-*` (nieprzezroczysty, docs/tokens.md §2
 * „Tokeny chrome”), krycie w tym arkuszu: color-mix(in srgb, var(--s-…) N%,
 * transparent) — piksel w piksel to samo co dawny zapis z kanałem alfa. Krycia tekstu
 * podniesione względem designu PlanMax dla kontrastu ≥ 4,5 : 1 (bramka axe
 * color-contrast) — komentarze przy regułach. Geometria i ruch literałem
 * (spec D4).
 */

/* Fokus z klawiatury — obrys w kolorze hovera linków (--s-chrome-accent). */

.s-ftr :focus-visible {
	outline: 2px solid var(--s-chrome-accent);
	outline-offset: 2px;
}

/* ==========================================================================
 * 9. Stopka (AC §3)
 * ========================================================================== */

.s-ftr {
	position: relative;
	z-index: 1;
	padding: 48px 24px 0;
	background: var(--s-chrome-surface);
	color: var(--s-chrome-ink);
}

.s-ftr__inner {
	max-width: 1180px;
	margin: 0 auto;
}

.s-ftr__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
	gap: 28px 32px;
}

.s-ftr__brand {
	display: flex;
	flex-direction: column;
	gap: 9px;
	max-width: 300px;
}

.s-ftr__about {
	margin: 0;
	color: color-mix(in srgb, var(--s-chrome-ink) 55%, transparent);
}

.s-ftr__tel {
	margin-top: 4px;
	color: var(--s-chrome-ink);
	transition: color 0.2s ease;
}

.s-ftr__mail {
	color: color-mix(in srgb, var(--s-chrome-ink) 78%, transparent);
	transition: color 0.2s ease;
}

.s-ftr__tel:hover,
.s-ftr__mail:hover {
	color: var(--s-chrome-accent);
}

.s-ftr__where {
	color: color-mix(in srgb, var(--s-chrome-ink) 55%, transparent);
}

.s-ftr__socials {
	display: flex;
	gap: 10px;
	margin-top: 6px;
}

.s-ftr__socials.is-empty {
	min-height: 42px;
}

.s-ftr__social {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 14px;
	border: 1px solid color-mix(in srgb, var(--s-chrome-ink) 16%, transparent);
	background: color-mix(in srgb, var(--s-chrome-ink) 6%, transparent);
	color: var(--s-chrome-icon);
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.s-ftr__social:hover {
	background: color-mix(in srgb, var(--s-accent) 28%, transparent);
	border-color: color-mix(in srgb, var(--s-chrome-accent) 60%, transparent);
	color: var(--s-chrome-ink);
	transform: translateY(-2px);
}

/* Nagłówek grupy: design .4 → .46 (kontrast 4,65 : 1 na tle stopki; .4 daje
   3,8 : 1 — axe color-contrast, serious). */

.s-ftr__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	color: color-mix(in srgb, var(--s-chrome-ink) 46%, transparent);
}

.s-ftr__chev {
	flex: none;
	transition: transform 0.25s ease;
}

.s-ftr__nav {
	margin-top: 12px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.s-ftr__link {
	color: color-mix(in srgb, var(--s-chrome-ink) 78%, transparent);
	transition: color 0.2s ease, transform 0.2s ease;
}

.s-ftr__link:hover {
	color: var(--s-chrome-accent);
	transform: translateX(3px);
}

/* Dopisek do gwiazdki: design .34 → .46 (3,0 : 1 → 4,65 : 1, axe). */

.s-ftr__disclaimer {
	margin: 26px 0 0;
	text-wrap: pretty;
	color: color-mix(in srgb, var(--s-chrome-ink) 46%, transparent);
}

.s-ftr__bottom {
	margin-top: 22px;
	padding: 18px 0 22px;
	border-top: 1px solid color-mix(in srgb, var(--s-chrome-ink) 10%, transparent);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px 20px;
	flex-wrap: wrap;
}

/* Linia prawna: design .45 — 4,52 : 1, próg przechodzi, wartość 1:1. */

.s-ftr__legal {
	color: color-mix(in srgb, var(--s-chrome-ink) 45%, transparent);
}

.s-ftr__prices {
	display: block;
}

.s-ftr__legal-nav {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
}

.s-ftr__legal-link {
	padding: 0;
	border: 0;
	background: none;
	color: color-mix(in srgb, var(--s-chrome-ink) 55%, transparent);
	cursor: pointer;
	transition: color 0.2s ease;
}

.s-ftr__legal-link:hover {
	color: var(--s-chrome-ink);
}

/* Akordeon tylko na telefonie: ≥ 641 px nagłówek grupy nie reaguje na
   kliknięcie i nie ma strzałki (SG L145). */

@media (min-width: 641px) {
	.s-ftr__summary {
		pointer-events: none;
	}

	.s-ftr__chev {
		display: none;
	}
}

/* ==========================================================================
 * 10. Punkty załamania stopki (AC §1.5 blok 2 i 3)
 * ========================================================================== */

@media (max-width: 640px) {
	.s-ftr {
		padding-top: 52px;
		padding-left: 20px;
		padding-right: 20px;
	}

	.s-ftr__grid {
		gap: 0;
	}

	.s-ftr__brand {
		margin-bottom: 28px;
	}

	.s-ftr__brand > a {
		display: flex;
		align-items: center;
		min-height: 44px;
	}

	.s-ftr__group {
		border-top: 1px solid color-mix(in srgb, var(--s-chrome-ink) 10%, transparent);
	}

	.s-ftr__summary {
		min-height: 52px;
		cursor: pointer;
	}

	.s-ftr__group[open] .s-ftr__chev {
		transform: rotate(180deg);
	}

	.s-ftr__nav {
		margin-top: 2px;
		padding-bottom: 18px;
		gap: 0;
	}

	.s-ftr__link {
		padding: 11px 0;
	}

	.s-ftr__legal-nav {
		gap: 4px 22px;
	}

	.s-ftr__legal-nav > * {
		padding: 10px 0;
	}
}

/* ==========================================================================
 * 11. Cele dotyku stopki (AC §1.5 blok 4): każdy link i przycisk ma
 *     niewidoczny obszar trafienia co najmniej 44 × 44 (::after).
 * ========================================================================== */

@media (max-width: 1024px), (pointer: coarse) {
	.s-ftr a,
	.s-ftr button {
		position: relative;
	}

	.s-ftr a::after,
	.s-ftr button::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: max(100%, 44px);
		height: max(100%, 44px);
		transform: translate(-50%, -50%);
	}
}

@media (max-width: 900px), (pointer: coarse) {
	.s-ftr__social {
		width: 44px;
		height: 44px;
	}

	.s-ftr__socials.is-empty {
		min-height: 44px;
	}

	.s-ftr__nav {
		gap: 0;
	}

	.s-ftr__link {
		padding: 12.5px 0;
	}
}

@media (max-width: 640px) {
	.s-ftr__legal-nav > * {
		padding: 13.5px 0;
	}
}
