:root {
	--gsp-footer-navy: #101a2f;
	--gsp-footer-navy-soft: #17233b;
	--gsp-footer-gold: #f3b82f;
	--gsp-footer-gold-hover: #ffd15a;
	--gsp-footer-white: #ffffff;
	--gsp-footer-muted: #aab2c1;
	--gsp-footer-line: rgba(255, 255, 255, 0.09);
}

body.gsp-premium-footer-replace footer.site-footer:not(#gsp-premium-footer),
body.gsp-premium-footer-replace #colophon:not(#gsp-premium-footer),
body.gsp-premium-footer-replace .site-footer:not(#gsp-premium-footer),
body.gsp-premium-footer-replace .elementor-location-footer,
body.gsp-premium-footer-replace .footer-main,
body.gsp-premium-footer-replace .footer-widgets,
body.gsp-premium-footer-replace .footer-bottom:not(.gsp-footer-bottom),
body.gsp-premium-footer-replace .ast-footer-overlay,
body.gsp-premium-footer-replace .site-primary-footer-wrap,
body.gsp-premium-footer-replace .site-below-footer-wrap {
	display: none !important;
}

#gsp-premium-footer,
#gsp-premium-footer * {
	box-sizing: border-box;
}

#gsp-premium-footer {
	position: relative;
	z-index: 5;
	width: 100%;
	margin: 0;
	background: var(--gsp-footer-navy);
	color: var(--gsp-footer-white);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.65;
}

#gsp-premium-footer a {
	text-decoration: none;
}

.gsp-footer-shell {
	width: min(1240px, calc(100% - 48px));
	margin: 0 auto;
	padding: 72px 0 18px;
}

.gsp-footer-grid {
	display: grid;
	grid-template-columns: minmax(260px, 1.4fr) repeat(2, minmax(150px, .75fr)) minmax(220px, 1fr);
	grid-template-areas:
		"brand explore tools legal"
		"brand explore tools cta";
	gap: 44px 52px;
	align-items: start;
}

.gsp-footer-brand { grid-area: brand; }
.gsp-footer-explore { grid-area: explore; }
.gsp-footer-tools { grid-area: tools; }
.gsp-footer-legal { grid-area: legal; }
.gsp-footer-cta { grid-area: cta; }

.gsp-footer-brand-row {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--gsp-footer-white) !important;
}

.gsp-footer-logo-image,
.gsp-footer-logo-fallback {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 1px solid rgba(243, 184, 47, 0.7);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
	object-fit: cover;
}

.gsp-footer-logo-fallback {
	display: inline-grid;
	place-items: center;
	background: radial-gradient(circle at 30% 25%, #ffe08a, var(--gsp-footer-gold));
	color: var(--gsp-footer-navy);
	font-weight: 800;
	font-size: 22px;
}

.gsp-footer-brand-copy {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.gsp-footer-brand-copy strong {
	font-size: 19px;
	font-weight: 750;
	letter-spacing: -0.01em;
}

.gsp-footer-brand-copy small {
	margin-top: 3px;
	color: var(--gsp-footer-muted);
	font-size: 11px;
}

.gsp-footer-description {
	max-width: 370px;
	margin: 32px 0 17px;
	color: var(--gsp-footer-muted);
	font-size: 13px;
	line-height: 1.8;
}

.gsp-footer-email {
	display: inline-block;
	color: var(--gsp-footer-gold) !important;
	font-size: 13px;
	font-weight: 700;
	transition: color .2s ease;
}

.gsp-footer-email:hover,
.gsp-footer-email:focus-visible {
	color: var(--gsp-footer-gold-hover) !important;
}

.gsp-footer-column h2 {
	margin: 0 0 19px;
	color: var(--gsp-footer-white);
	font-size: 15px;
	font-weight: 750;
	line-height: 1.3;
}

.gsp-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gsp-footer-links li {
	margin: 0 0 9px;
	padding: 0;
}

.gsp-footer-links a {
	position: relative;
	display: inline-block;
	color: var(--gsp-footer-muted) !important;
	font-size: 13px;
	transition: color .2s ease, transform .2s ease;
}

.gsp-footer-links a:hover,
.gsp-footer-links a:focus-visible {
	color: var(--gsp-footer-white) !important;
	transform: translateX(3px);
}

.gsp-footer-cta p {
	max-width: 330px;
	margin: 0 0 23px;
	color: var(--gsp-footer-muted);
	font-size: 13px;
}

.gsp-footer-cta-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 20px;
	border: 1px solid rgba(255, 214, 97, 0.65);
	border-radius: 9px;
	background: linear-gradient(180deg, #ffc94f 0%, var(--gsp-footer-gold) 100%);
	box-shadow: 0 10px 26px rgba(243, 184, 47, 0.22);
	color: #192033 !important;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.gsp-footer-cta-button:hover,
.gsp-footer-cta-button:focus-visible {
	background: linear-gradient(180deg, #ffd76e 0%, #ffc43d 100%);
	box-shadow: 0 14px 32px rgba(243, 184, 47, 0.3);
	transform: translateY(-2px);
}

.gsp-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 62px;
	padding-top: 18px;
	border-top: 1px solid var(--gsp-footer-line);
	color: #7f899b;
	font-size: 11px;
}

#gsp-premium-footer a:focus-visible {
	outline: 2px solid var(--gsp-footer-gold);
	outline-offset: 4px;
}

@media (max-width: 980px) {
	.gsp-footer-shell {
		width: min(100% - 36px, 900px);
		padding-top: 58px;
	}

	.gsp-footer-grid {
		grid-template-columns: 1.25fr 1fr 1fr;
		grid-template-areas:
			"brand explore tools"
			"brand legal cta";
		gap: 42px 34px;
	}
}

@media (max-width: 700px) {
	.gsp-footer-shell {
		width: calc(100% - 32px);
		padding: 48px 0 18px;
	}

	.gsp-footer-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"brand brand"
			"explore tools"
			"legal cta";
		gap: 40px 26px;
	}

	.gsp-footer-description {
		max-width: 100%;
		margin-top: 24px;
	}

	.gsp-footer-bottom {
		align-items: flex-start;
		flex-direction: column;
		margin-top: 48px;
		gap: 7px;
	}
}

@media (max-width: 460px) {
	.gsp-footer-grid {
		grid-template-columns: 1fr;
		grid-template-areas:
			"brand"
			"explore"
			"tools"
			"legal"
			"cta";
		gap: 34px;
	}

	.gsp-footer-links {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 7px 18px;
	}

	.gsp-footer-links li {
		margin: 0;
	}

	.gsp-footer-cta-button {
		width: 100%;
	}
}
