/**
 * Gili Studio – Footer CTA banner widget.
 */

.gili-cta {
	--gili-paper: #E8E9E4;
	--gili-ink: #16183F;
	--gili-blue: #2B35D6;
	--gili-pink: #F5459B;
	--gili-muted: rgba(22, 24, 63, 0.72);
	--gili-hairline: rgba(22, 24, 63, 0.25);
	--gili-ring-speed: 60s;

	position: relative;
	overflow: hidden;
	background: var(--gili-paper);
	color: var(--gili-ink);
	font-family: "Space Grotesk", system-ui, sans-serif;
	padding: clamp(72px, 11vw, 168px) clamp(24px, 7vw, 128px) 0;
}

.gili-cta *,
.gili-cta *::before,
.gili-cta *::after {
	box-sizing: border-box;
}

/* ---------- decorative rings ---------- */
.gili-cta__rings {
	position: absolute;
	top: 46%;
	inset-inline-end: -14vw;
	width: clamp(340px, 52vw, 860px);
	height: clamp(340px, 52vw, 860px);
	transform: translateY(-50%);
	pointer-events: none;
}

.gili-cta__ring {
	position: absolute;
	border-radius: 50%;
}

.gili-cta__ring--1 {
	inset: 0;
	border: 1px solid var(--gili-ring-1, rgba(22, 24, 63, 0.16));
}

.gili-cta__ring--2 {
	inset: 9%;
	border: 1px dotted var(--gili-ring-2, rgba(22, 24, 63, 0.30));
}

.gili-cta__ring--3 {
	inset: 21%;
	border: 1px solid var(--gili-ring-3, rgba(43, 53, 214, 0.28));
}

.gili-cta__ring--4 {
	inset: 34%;
	border: 1px dotted var(--gili-ring-4, rgba(22, 24, 63, 0.22));
}

.gili-cta__ring--5 {
	inset: 49%;
	border: 1px solid var(--gili-ring-5, rgba(245, 69, 155, 0.45));
}

.gili-cta__ring.is-drifting {
	animation: gili-cta-drift var(--gili-ring-speed) linear infinite;
}

/* ---------- grid ---------- */
.gili-cta__inner {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	column-gap: clamp(16px, 2vw, 32px);
}

.gili-cta__eyebrow {
	grid-column: 1 / -1;
	margin: 0 0 clamp(28px, 4vw, 48px);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gili-blue);
}

.gili-cta__headline {
	grid-column: 1 / 8;
	margin: 0;
	font-size: clamp(2.6rem, 6.6vw, 6rem);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.035em;
	text-wrap: pretty;
}

.gili-cta__headline em,
.gili-cta__mark {
	position: relative;
	font-style: normal;
	color: var(--gili-blue);
	white-space: nowrap;
}

.gili-cta__headline em::after,
.gili-cta__mark::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.06em;
	height: 3px;
	background: var(--gili-pink);
}

.gili-cta__text {
	grid-column: 1 / 6;
	max-width: 65ch;
	margin: clamp(24px, 3vw, 40px) 0 0;
	font-size: clamp(1rem, 1.15vw, 1.125rem);
	line-height: 1.5;
	color: var(--gili-muted);
}

.gili-cta__actions {
	grid-column: 1 / 9;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(20px, 3vw, 40px);
	margin: clamp(36px, 5vw, 64px) 0 clamp(72px, 10vw, 128px);
}

/* ---------- primary button ---------- */
.gili-cta__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: var(--gili-btn-gap, 16px);
	padding: 20px 32px;
	border: 1px solid var(--gili-btn-border, var(--gili-ink));
	color: var(--gili-btn-color, var(--gili-ink));
	background: var(--gili-btn-bg, transparent);
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition:
		gap 350ms cubic-bezier(0.2, 0.8, 0.2, 1),
		background-color 350ms cubic-bezier(0.2, 0.8, 0.2, 1),
		color 350ms cubic-bezier(0.2, 0.8, 0.2, 1),
		border-color 350ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gili-cta__button::after {
	content: "";
	position: absolute;
	inset-inline-start: 7px;
	inset-inline-end: -7px;
	top: 100%;
	height: 3px;
	background: var(--gili-btn-shadow, var(--gili-pink));
}

.gili-cta__button--flat::after {
	display: none;
}

.gili-cta__button:hover,
.gili-cta__button:focus-visible {
	gap: var(--gili-btn-gap-hover, 28px);
	background: var(--gili-btn-bg-hover, var(--gili-ink));
	color: var(--gili-btn-color-hover, var(--gili-paper));
	border-color: var(--gili-btn-border-hover, var(--gili-ink));
}

.gili-cta__button:focus-visible {
	outline: 2px solid var(--gili-blue);
	outline-offset: 4px;
}

.gili-cta__button-arrow {
	line-height: 1;
}

/* The site's global link/button styling must not repaint the CTA button —
 * every value here comes from the widget's own custom properties. */
.gili-cta a.gili-cta__button,
.gili-cta span.gili-cta__button {
	background-image: none !important;
	text-shadow: none !important;
	text-decoration: none !important;
	font-family: inherit;
}

/* ---------- secondary button ---------- */
.gili-cta__button--secondary {
	border-color: var(--gili-btn2-border, transparent);
	color: var(--gili-btn2-color, var(--gili-ink));
	background: var(--gili-btn2-bg, transparent);
	padding: 20px 8px;
}

.gili-cta__button--secondary::after {
	background: var(--gili-btn2-shadow, transparent);
}

.gili-cta__button--secondary:hover,
.gili-cta__button--secondary:focus-visible {
	background: var(--gili-btn2-bg-hover, transparent);
	color: var(--gili-btn2-color-hover, var(--gili-blue));
	border-color: var(--gili-btn2-border-hover, transparent);
}

/* ---------- bottom bar ---------- */
.gili-cta__bar {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	border-top: 1px solid var(--gili-hairline);
}

.gili-cta__bar-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: clamp(20px, 3vw, 40px);
	padding: 28px 0 clamp(40px, 5vw, 64px);
}

.gili-cta__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(20px, 2.5vw, 36px);
}

.gili-cta__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.9375rem;
	color: var(--gili-link-color, var(--gili-ink));
	text-decoration: none;
	transition: color 300ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gili-cta__link:hover,
.gili-cta__link:focus-visible {
	color: var(--gili-link-hover, var(--gili-blue));
}

.gili-cta__link:focus-visible {
	outline: 2px solid var(--gili-blue);
	outline-offset: 4px;
}

.gili-cta__link svg,
.gili-cta__link i {
	width: var(--gili-icon-size, 18px);
	height: var(--gili-icon-size, 18px);
	font-size: var(--gili-icon-size, 18px);
	flex: none;
}

.gili-cta__copyright {
	margin: 0;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	color: var(--gili-copyright-color, rgba(22, 24, 63, 0.72));
}

/* ---------- animation ---------- */
@keyframes gili-cta-rise {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes gili-cta-drift {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 1024px) {
	.gili-cta__headline {
		grid-column: 1 / 11;
	}

	.gili-cta__text,
	.gili-cta__actions {
		grid-column: 1 / 11;
	}
}

@media (max-width: 767px) {
	.gili-cta__headline,
	.gili-cta__text,
	.gili-cta__actions {
		grid-column: 1 / -1;
	}

	.gili-cta__bar-inner {
		justify-content: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gili-cta [data-rise] {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}

	.gili-cta__ring.is-drifting {
		animation: none !important;
	}

	.gili-cta * {
		transition-duration: 0.01ms !important;
	}
}
