.gcw-premium-partners {
	--gcw-partner-ink: #173b2d;
	--gcw-partner-muted: #627068;
	--gcw-partner-line: rgba(23, 59, 45, 0.14);
	background:
		radial-gradient(circle at 12% 20%, rgba(116, 151, 83, 0.09), transparent 32%),
		#f7f8f4;
	border-top: 1px solid var(--gcw-partner-line);
}

/* The theme reserves space above its original footer. The partner rail is now
 * the first footer element, so keeping that gap would double the transition. */
.site-footer:has(.gcw-premium-partners) {
	padding-top: 0 !important;
}

/* Tighten the final homepage section so the app badges and partner rail read
 * as two consecutive footer-adjacent modules instead of separate screens. */
.home .elementor-element-346cc8e {
	padding-bottom: 32px !important;
}

.home .elementor-element-346cc8e .elementor-element-547203c .elementor-widget {
	margin-bottom: 0;
}

/* Several content pages end with a 90px outer margin on their final Elementor
 * section. Since the partner rail follows immediately, that margin appears as
 * an empty grey footer band. Keep the section's own breathing room and remove
 * only this trailing outer gap. */
body:not(.home) .site-main .page-content > .elementor > .elementor-top-section:last-child {
	margin-bottom: 0 !important;
}

.gcw-premium-partners > .elementor-container {
	max-width: none !important;
}

.gcw-premium-partners + .elementor-section {
	padding-top: 36px !important;
}

.gcw-premium-partners__content {
	box-sizing: border-box;
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(28px, 3vw, 38px) 24px clamp(32px, 3.4vw, 44px);
	text-align: center;
}

.gcw-premium-partners__eyebrow {
	margin: 0 0 7px;
	color: #6f8d57;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.gcw-premium-partners__content h2 {
	margin: 0;
	color: var(--gcw-partner-ink);
	font-size: clamp(22px, 2.4vw, 31px);
	font-weight: 650;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

.gcw-premium-partners__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(10px, 1.5vw, 18px);
	margin-top: clamp(20px, 2.2vw, 26px);
}

.gcw-premium-partners__link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 104px;
	padding: 18px 22px;
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid var(--gcw-partner-line);
	border-radius: 4px;
	box-shadow: 0 7px 24px rgba(21, 50, 38, 0.035);
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.gcw-premium-partners__link:hover,
.gcw-premium-partners__link:focus-visible {
	border-color: rgba(91, 132, 64, 0.42);
	box-shadow: 0 10px 28px rgba(21, 50, 38, 0.08);
	transform: translateY(-2px);
}

.gcw-premium-partners__link:focus-visible {
	outline: 3px solid rgba(111, 141, 87, 0.34);
	outline-offset: 3px;
}

.gcw-premium-partners__link img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 58px;
	object-fit: contain;
}

@media (max-width: 820px) {
	.gcw-premium-partners__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.gcw-premium-partners + .elementor-section {
		padding-top: 28px !important;
	}

	.gcw-premium-partners__content {
		padding-inline: 18px;
	}

	.gcw-premium-partners__grid {
		grid-template-columns: 1fr;
	}

	.gcw-premium-partners__link {
		min-height: 92px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gcw-premium-partners__link {
		transition: none;
	}
}
