/*
 * GPIPL site footer (global). Dark section via .is-dark on the footer,
 * so text colours come from the dark role tokens.
 * Theme 0.15.0: contact tiles, balanced link columns, decorative grid/glow, wordmark.
 */
@layer components {
	.site-footer {
		position: relative;
		isolation: isolate;
		overflow: hidden;
		padding-block: var(--section-pad) var(--space-l);
		font-size: var(--step--1);
		background: linear-gradient(180deg, var(--palette-slate) 0%, color-mix(in srgb, var(--palette-slate) 88%, #000) 100%);
	}

	/* ------------------------------------------------------------ Decoration */
	.site-footer::before {
		content: "";
		position: absolute;
		inset: 0 0 auto;
		height: 3px;
		background: linear-gradient(90deg, transparent, var(--palette-green) 20%, color-mix(in srgb, var(--palette-green) 40%, var(--accent-light)) 50%, var(--palette-green) 80%, transparent);
		background-size: 200% 100%;
		animation: gpipl-footer-line 8s linear infinite;
	}
	.site-footer__deco { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
	.site-footer__grid {
		position: absolute;
		inset: 0;
		background-image:
			linear-gradient(rgb(255 255 255 / 0.035) 1px, transparent 1px),
			linear-gradient(90deg, rgb(255 255 255 / 0.035) 1px, transparent 1px);
		background-size: 48px 48px;
		mask-image: radial-gradient(ellipse 80% 70% at 70% 0%, #000 20%, transparent 75%);
	}
	.site-footer__glow {
		position: absolute;
		top: -12rem;
		right: -8rem;
		width: 36rem;
		height: 36rem;
		border-radius: 50%;
		background: radial-gradient(circle, color-mix(in srgb, var(--palette-green) 35%, transparent), transparent 65%);
		filter: blur(10px);
		animation: gpipl-float 14s ease-in-out infinite;
	}

	/* ------------------------------------------------------------ Brand + contact */
	.site-footer__top {
		display: grid;
		gap: var(--space-xl);
		padding-bottom: var(--space-xl);
	}
	@media (min-width: 64em) {
		.site-footer__top { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.25fr); column-gap: var(--space-2xl); align-items: start; }
	}

	.site-footer__brand { display: grid; justify-items: start; gap: var(--space-m); align-content: start; }
	.site-footer .site-logo { margin: 0; }
	.site-footer .site-logo__name { display: block; }
	.site-footer .site-logo__image { height: 3rem; }
	.site-footer__about {
		max-width: 44ch;
		font-size: var(--step-0);
		line-height: var(--lh-body);
		color: var(--color-text-muted);
	}
	.site-footer .button--primary { background: var(--palette-green); border-color: var(--palette-green); color: var(--on-brand); }
	.site-footer .button--primary:hover { background: color-mix(in srgb, var(--palette-green) 85%, #fff); }
	.site-footer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-s); }
	.site-footer__call {
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		min-height: var(--tap);
		padding-inline: var(--space-s);
		border: 1px solid rgb(255 255 255 / 0.18);
		border-radius: 999px;
		color: var(--color-text);
		font-weight: var(--wght-semibold);
		text-decoration: none;
		transition: background-color 250ms var(--ease-out), border-color 250ms var(--ease-out);
	}
	.site-footer__call .icon { width: 1rem; height: 1rem; color: var(--color-accent); }
	.site-footer__call:hover { background: rgb(255 255 255 / 0.06); border-color: var(--color-accent); }

	.site-footer__social { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin: 0; padding: 0; list-style: none; }
	.site-footer__social a {
		display: inline-flex;
		align-items: center;
		gap: 0.35rem;
		min-height: var(--tap);
		padding-inline: 0.9rem;
		border-radius: 999px;
		background: rgb(255 255 255 / 0.06);
		color: var(--color-text);
		font-weight: var(--wght-medium);
		text-decoration: none;
		transition: background-color 250ms var(--ease-out), transform 250ms var(--ease-out);
	}
	.site-footer__social .icon { width: 0.9rem; height: 0.9rem; opacity: 0.7; }
	.site-footer__social a:hover { background: var(--palette-green); color: var(--on-brand); transform: translateY(-2px); }

	/* Contact tiles */
	.site-footer__contact {
		display: grid;
		gap: var(--space-s);
		font-style: normal;
	}
	@media (min-width: 40em) {
		.site-footer__contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
		.site-footer__tile--address { grid-row: span 2; }
		.site-footer__tile--hours { grid-column: 1 / -1; }
		/* Two addresses (main + corporate): side by side, phone and email below them. */
		.site-footer__contact--two .site-footer__tile--address { grid-row: auto; }
		.site-footer__tile--hours .site-footer__hours { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); column-gap: var(--space-l); width: 100%; }
		.site-footer__tile--hours .site-footer__hours > div { justify-content: flex-start; }
	}
	.site-footer__tile--compact { grid-template-columns: auto minmax(0, 1fr); column-gap: var(--space-s); align-items: center; }
	.site-footer__tile--compact .site-footer__tile-icon { grid-row: span 2; margin: 0; }
	.site-footer__tile {
		position: relative;
		display: grid;
		align-content: start;
		justify-items: start;
		gap: 0.3rem;
		padding: var(--space-m);
		border: 1px solid rgb(255 255 255 / 0.09);
		border-radius: var(--radius-m);
		background: linear-gradient(160deg, rgb(255 255 255 / 0.06), rgb(255 255 255 / 0.015));
		color: var(--color-text);
		line-height: 1.5;
		transition: border-color 300ms var(--ease-out), transform 300ms var(--ease-out), background-color 300ms var(--ease-out);
	}
	.site-footer__tile:hover { border-color: color-mix(in srgb, var(--palette-green) 60%, transparent); transform: translateY(-3px); }
	.site-footer__tile-icon {
		display: grid;
		place-items: center;
		width: 2.5rem;
		height: 2.5rem;
		margin-bottom: var(--space-2xs);
		border-radius: 0.75rem;
		background: color-mix(in srgb, var(--palette-green) 22%, transparent);
		color: color-mix(in srgb, var(--palette-green) 45%, #fff);
		transition: background-color 300ms var(--ease-out), color 300ms var(--ease-out);
	}
	.site-footer__tile:hover .site-footer__tile-icon { background: var(--palette-green); color: var(--on-brand); }
	.site-footer__tile-label {
		font-size: var(--step--2);
		font-weight: var(--wght-semibold);
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--color-text-muted);
	}
	.site-footer__address { margin: 0; color: var(--color-text); }
	.site-footer__tile-link {
		display: inline-flex;
		align-items: center;
		min-height: var(--tap);
		color: var(--color-text);
		font-size: var(--step-0);
		font-weight: var(--wght-semibold);
		text-decoration: none;
		overflow-wrap: anywhere;
	}
	.site-footer__tile-link:hover { color: color-mix(in srgb, var(--palette-green) 40%, #fff); text-decoration: underline; text-underline-offset: 0.2em; }
	.site-footer__small-link {
		display: inline-flex;
		align-items: center;
		gap: 0.3rem;
		min-height: var(--tap);
		color: color-mix(in srgb, var(--palette-green) 45%, #fff);
		font-weight: var(--wght-semibold);
		text-decoration: none;
	}
	.site-footer__small-link .icon { width: 0.95rem; height: 0.95rem; transition: transform 250ms var(--ease-out); }
	.site-footer__small-link:hover .icon { transform: translate(2px, -2px); }

	.site-footer__hours { display: grid; gap: 0.25rem; margin: 0; }
	.site-footer__hours > div { display: flex; flex-wrap: wrap; justify-content: space-between; column-gap: var(--space-xs); }
	.site-footer__hours dt { font-weight: var(--wght-semibold); }
	.site-footer__hours dd { margin: 0; color: var(--color-text-muted); }

	/* ------------------------------------------------------------ Footer navigation */
	.site-footer__nav {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
		gap: var(--space-l) var(--space-xl);
		padding-block: var(--space-xl);
		border-top: 1px solid rgb(255 255 255 / 0.1);
	}
	@media (max-width: 63.99em) {
		.site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-m); }
		.site-footer__col--products, .site-footer__col--solutions, .site-footer__col--long { grid-column: 1 / -1; }
		.site-footer__col--solutions .site-footer__links, .site-footer__col--products .site-footer__links { columns: 2; column-gap: var(--space-m); }
		.site-footer__links li { break-inside: avoid; }
		.site-footer .site-footer__wordmark { margin-bottom: var(--space-2xs); }
	}
	@media (max-width: 24em) {
		.site-footer__col--solutions .site-footer__links, .site-footer__col--products .site-footer__links { columns: 1; }
	}
	@media (min-width: 64em) {
		.site-footer__nav { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
		.site-footer__col--long { grid-column: span 2; }
		.site-footer__col--long .site-footer__links { columns: 2; column-gap: var(--space-l); }
		.site-footer__col--long .site-footer__links li { break-inside: avoid; }
	}
	.site-footer__heading {
		position: relative;
		margin-bottom: var(--space-s);
		padding-bottom: var(--space-2xs);
		font-size: var(--step--1);
		font-weight: var(--wght-semibold);
		font-stretch: var(--wdth-ui);
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--color-heading);
	}
	.site-footer__heading::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 1.75rem;
		height: 2px;
		border-radius: 2px;
		background: var(--palette-green);
	}
	.site-footer__links { margin: 0; padding: 0; }
	.site-footer__links a {
		position: relative;
		display: flex;
		align-items: center;
		min-height: 2.75rem;
		padding-block: 0.2rem;
		color: var(--color-text-muted);
		line-height: 1.3;
		text-decoration: none;
		transition: color 250ms var(--ease-out);
	}
	.site-footer__links a span { transition: transform 250ms var(--ease-out); }
	.site-footer__links a::before {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		width: 0.55rem;
		height: 2px;
		border-radius: 2px;
		background: var(--palette-green);
		opacity: 0;
		transform: translateX(-6px);
		transition: opacity 250ms var(--ease-out), transform 250ms var(--ease-out);
	}
	.site-footer__links a:hover,
	.site-footer__links a:focus-visible { color: var(--color-text); }
	.site-footer__links a:hover span,
	.site-footer__links a:focus-visible span { transform: translateX(0.9rem); }
	.site-footer__links a:hover::before,
	.site-footer__links a:focus-visible::before { opacity: 1; transform: none; }
	.site-footer__links a[aria-current="page"] { color: var(--color-text); font-weight: var(--wght-semibold); }

	/* ------------------------------------------------------------ Wordmark */
	.site-footer__wordmark {
		margin: 0 0 calc(var(--space-m) * -1);
		font-size: clamp(4rem, 15vw, 12rem);
		font-weight: var(--wght-bold, 700);
		line-height: 0.85;
		letter-spacing: -0.04em;
		text-align: center;
		color: transparent;
		-webkit-text-stroke: 1px rgb(255 255 255 / 0.08);
		background: linear-gradient(180deg, rgb(255 255 255 / 0.05), transparent 80%);
		-webkit-background-clip: text;
		background-clip: text;
		user-select: none;
		pointer-events: none;
	}

	/* ------------------------------------------------------------ Bottom bar */
	.site-footer__bottom {
		position: relative;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-2xs) var(--space-l);
		padding-top: var(--space-m);
		border-top: 1px solid rgb(255 255 255 / 0.1);
		color: var(--color-text-muted);
		font-size: var(--step--2);
	}
	.site-footer__legal { display: flex; flex-wrap: wrap; gap: 0 var(--space-m); margin: 0; }
	.site-footer__bottom-end { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--space-m); }
	.site-footer__meta { display: flex; flex-wrap: wrap; gap: 0 var(--space-m); margin: 0; padding: 0; list-style: none; }
	.site-footer__meta a,
	.site-footer__top-link {
		display: inline-flex;
		align-items: center;
		gap: 0.35rem;
		min-height: var(--tap);
		color: var(--color-text-muted);
		text-decoration: none;
	}
	.site-footer__meta a:hover { color: var(--color-text); text-decoration: underline; }
	.site-footer__top-link { color: var(--color-text); font-weight: var(--wght-semibold); }
	.site-footer__top-link .icon {
		width: 1.9rem;
		height: 1.9rem;
		padding: 0.45rem;
		border-radius: 50%;
		background: rgb(255 255 255 / 0.08);
		transform: rotate(-90deg);
		transition: background-color 250ms var(--ease-out), transform 250ms var(--ease-out);
	}
	.site-footer__top-link:hover .icon { background: var(--palette-green); color: var(--on-brand); transform: rotate(-90deg) translateX(3px); }

	@keyframes gpipl-footer-line { to { background-position: -200% 0; } }

	@media (prefers-reduced-motion: reduce) {
		.site-footer::before, .site-footer__glow { animation: none; }
		.site-footer__tile:hover, .site-footer__social a:hover { transform: none; }
	}
	@media (forced-colors: active) {
		.site-footer { border-top: 1px solid CanvasText; }
		.site-footer__deco, .site-footer__wordmark, .site-footer__links a::before { display: none; }
		.site-footer__tile { border: 1px solid CanvasText; }
	}
	@media print {
		.site-footer__deco, .site-footer__wordmark, .site-footer__top-link { display: none; }
	}
}
