/* ==========================================================================
   Footer — premium navy with green accents
   ========================================================================== */

.site-footer {
	position: relative;
	background: var(--navy);
	color: rgba(255, 255, 255, 0.68);
	margin-top: auto;
	overflow: hidden;
}

/* Soft concentric rings drifting off the top-right corner. */
.site-footer::after {
	content: "";
	position: absolute;
	right: -140px;
	top: -160px;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	border: 44px solid rgba(255, 255, 255, 0.03);
	box-shadow: 0 0 0 44px rgba(255, 255, 255, 0.02);
	pointer-events: none;
}

.site-footer > .container,
.site-footer__bottom { position: relative; z-index: 1; }

.site-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 0.9fr 1.25fr 1.25fr;
	gap: clamp(2rem, 5vw, 4rem);
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}

/* Brand */
.brand--footer { gap: 0.7rem; }
.brand--footer .brand__mark { width: 2.4rem; height: 2.4rem; }
.brand--footer .brand__mark svg { width: 100%; height: 100%; }
.brand--footer .brand__name { color: #fff; font-size: 1.25rem; font-weight: 800; }
.site-footer__desc {
	margin-top: 1.15rem;
	max-width: 40ch;
	font-size: 0.95rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.62);
}

/* Social icons */
/* Company identity under the logo (round 8) — plain text, not interactive. */
.site-footer__company {
	margin: 1.5rem 0 0;
	font-size: 0.92rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.72);
}
.site-footer__company-name {
	margin-bottom: 0.35rem;
	font-weight: 700;
	color: #fff;
}
.site-footer__company dd { margin: 0; }
.site-footer__company dd span { color: rgba(255, 255, 255, 0.5); }

.site-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-top: 1.75rem;
}
.site-footer__social-link {
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.16);
	background: rgba(255, 255, 255, 0.04);
	color: rgba(255, 255, 255, 0.85);
}
.site-footer__social-link svg { width: 1.15rem; height: 1.15rem; }
.site-footer__social-link:hover {
	background: var(--primary);
	border-color: var(--primary);
	color: #fff;
}

/* Column headings — green eyebrow with a short accent bar */
.site-footer__title {
	position: relative;
	color: #fff;
	font-size: 0.8rem;
	letter-spacing: 0.03em;
	/* No capitalize: Czech uses sentence case (client req 2026-07-08). */
	font-weight: 700;
	margin-bottom: 1.4rem;
	padding-bottom: 0.7rem;
}
.site-footer__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 2rem;
	height: 2px;
	background: var(--primary);
}

/* Nav list */
.site-footer__list { display: flex; flex-direction: column; gap: 0.85rem; }
.site-footer__list a {
	display: inline-flex;
	align-items: center;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.96rem;
}
.site-footer__list a:hover { color: #fff; padding-left: 0.35rem; }

/* Contact list — small green icon tiles */
.site-footer__contact { display: flex; flex-direction: column; gap: 1.1rem; }
.site-footer__contact li {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	font-size: 0.96rem;
	color: rgba(255, 255, 255, 0.72);
}
.site-footer__ico {
	flex: none;
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: rgba(70, 163, 255, 0.14);
	color: var(--primary);
}
.site-footer__ico svg { width: 1.1rem; height: 1.1rem; }
.site-footer__contact a { color: rgba(255, 255, 255, 0.72); }
.site-footer__contact a:hover { color: #fff; }

/* Bottom bar */
.site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-block: 1.5rem;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.5);
}
.site-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.site-footer__made { color: rgba(255, 255, 255, 0.4); }
.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.35rem;
	justify-content: flex-end;
}
.site-footer__legal a { color: rgba(255, 255, 255, 0.55); }
.site-footer__legal a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 820px) {
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
	.site-footer__grid { grid-template-columns: 1fr; gap: 2.25rem; }
	.site-footer__bottom-inner { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
	.site-footer__legal { justify-content: flex-start; flex-direction: column; align-items: flex-start; gap: 0.6rem; }
}

/* Naše centra column — city on top, specialisation as a quiet second line. */
.site-footer__list--centra { gap: 0.95rem; }
.site-footer__list--centra a {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.1rem;
	line-height: 1.35;
	color: #fff;
}
.site-footer__centrum-spec {
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.55);
}
.site-footer__list--centra a:hover .site-footer__centrum-spec { color: rgba(255, 255, 255, 0.8); }

/* The footer prints the menu at depth 2 so the pages grouped under the
   header's "Informace a kontakty" dropdown are reachable here too: that
   parent is only a label, so it is dropped and its children sit inline with
   the rest of the list. The centres keep their own footer column, so their
   sub-menu is hidden here instead of duplicated. */
.site-footer__list .menu-item-90 { display: contents; } /* else its children lose the list gap */
.site-footer__list .menu-item-90 > a { display: none; }
.site-footer__list .menu-item-90 > .sub-menu { display: contents; }
.site-footer__list .menu-item-30 > .sub-menu { display: none; }

/* Complianz banner close icon ships as an unsized SVG; cap it so it can never
   paint screen-wide if the banner stylesheet is late (see inc/enqueue.php). */
.cmplz-cookiebanner .cmplz-close svg { width: 1.1rem; height: 1.1rem; }

.brand--footer .brand__logo { height: 52px; }
