/**
 * Global footer (Figma Homepage v2 596:1077, 1449 × 886, #101010).
 *
 * Brand row (logo 278 × 63, tagline 18 #adadb2, CTA 233 × 63) · link columns
 * (headings Averta 20 white, links Avenir 17 #adadb2, 32px pitch) ·
 * accreditation badges · divider · legal row (16 #99999e) + 37.5px social
 * circles. Columns come from the "Footer menu (columns)" menu.
 *
 * @package GagaMuller
 */

.gm-footer {
	padding-block: clamp(3rem, 2rem + 4.3vw, 4.5rem) clamp(2rem, 1.2rem + 3.4vw, 3rem);
}

.gm-footer__inner {
	display: grid;
	gap: clamp(2.5rem, 1.6rem + 3.8vw, 3.75rem);
}

/* ---- Brand row ---------------------------------------------------------- */

.gm-footer__top {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gm-space-24) var(--gm-space-32);
	align-items: flex-start;
	justify-content: space-between;
}

.gm-footer__brand {
	display: grid;
	gap: var(--gm-space-20);
	max-width: 28.75rem; /* 460 */
}

.gm-footer__logo img,
.gm-footer__logo .custom-logo {
	display: block;
	width: auto;
	max-width: 17.375rem; /* 278 */
	height: auto;
	max-height: var(--gm-size-logo-height);
}

.gm-footer__logo a {
	display: inline-block;
}

.gm-footer__tagline {
	margin: 0;
	color: var(--gm-color-on-dark-muted);
	font-size: var(--gm-text-body-md);
}

.gm-footer__cta {
	min-width: 14.5625rem; /* 233 */
}

/* ---- Link columns ---------------------------------------------------------- */

.gm-footer__nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
	gap: var(--gm-space-40) var(--gm-space-24);
}

.gm-footer__col {
	min-width: 0;
}

.gm-footer__heading {
	margin: 0 0 var(--gm-space-16);
	color: var(--gm-color-white);
	font-family: var(--gm-font-heading);
	font-size: var(--gm-text-h4);
	font-weight: var(--gm-weight-bold);
	line-height: 1.25;
}

.gm-footer__heading a,
.gm-footer__heading a:visited {
	color: inherit;
	text-decoration: none;
}

.gm-footer__heading a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.gm-footer__links {
	display: grid;
	gap: var(--gm-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gm-footer .gm-footer__links a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	color: var(--gm-color-on-dark-muted);
	font-size: var(--gm-text-body);
	line-height: 1.3;
	text-decoration: none;
	transition: color 250ms var(--gm-ease);
}

.gm-footer .gm-footer__links a:hover,
.gm-footer .gm-footer__links a:focus-visible {
	color: var(--gm-color-white);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.gm-footer a:focus-visible {
	outline: var(--gm-focus-width) solid var(--gm-focus-color-on-dark);
	outline-offset: 3px;
	border-radius: 4px;
}

.gm-footer__hint {
	margin: 0;
	padding: var(--gm-space-16);
	border: 1px dashed var(--gm-color-nav-pill-border);
	border-radius: var(--gm-radius-panel);
	font-size: var(--gm-text-legal);
}

.gm-footer__hint a {
	color: var(--gm-color-light-purple);
}

/* ---- Badges ----------------------------------------------------------------- */

.gm-footer__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gm-space-32);
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gm-footer__badge {
	display: block;
	width: auto;
	max-width: 10rem;
	height: auto;
	max-height: 3.625rem; /* 58 */
}

/* ---- Bottom row ------------------------------------------------------------- */

.gm-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gm-space-16) var(--gm-space-32);
	align-items: center;
	justify-content: space-between;
	padding-top: var(--gm-space-24);
	border-top: 1px solid var(--gm-color-nav-pill-border);
	color: var(--gm-color-on-dark-subtle);
	font-size: var(--gm-text-sm);
}

.gm-footer__copyright {
	margin: 0;
}

.gm-footer__legal .menu,
.gm-footer__legal-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gm-space-8) var(--gm-space-24);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gm-footer .gm-footer__legal a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	color: var(--gm-color-on-dark-subtle);
	text-decoration: none;
}

.gm-footer .gm-footer__legal a:hover,
.gm-footer .gm-footer__legal a:focus-visible {
	color: var(--gm-color-white);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.gm-footer__social {
	display: flex;
	gap: var(--gm-space-8);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gm-footer .gm-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--gm-touch-target);
	height: var(--gm-touch-target);
	border: 1px solid var(--gm-color-nav-pill-border);
	border-radius: var(--gm-radius-round);
	background: var(--gm-color-nav-pill);
	color: var(--gm-color-white);
	transition: background-color 250ms var(--gm-ease), border-color 250ms var(--gm-ease);
}

.gm-footer__social-link .gm-icon {
	width: 22px;
	height: 22px;
}

.gm-footer .gm-footer__social-link:hover,
.gm-footer .gm-footer__social-link:focus-visible {
	border-color: var(--gm-color-light-purple);
	background: var(--gm-color-purple);
}

@media (min-width: 1100px) {
	/* Figma: copyright left, legal links beside it, social circles right. */
	.gm-footer__bottom {
		flex-wrap: nowrap;
	}

	.gm-footer__social {
		margin-inline-start: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gm-footer a,
	.gm-footer__social-link {
		transition: none !important;
	}
}
