/**
 * Site footer — Canva layout
 *
 * @package esto-es-wm
 */

.site-footer {
	margin-top: auto;
}

/* ─── Shared services ticker (home + footer) ─── */
.wm-ticker {
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	overflow-x: hidden;
	overflow-y: hidden;
	margin: 0;
	padding: 0;
	border: 0;
	background-color: var(--color-lime-canva, #c6ff34);
	color: var(--color-black);
	scrollbar-width: none;
	-ms-overflow-style: none;
	box-sizing: border-box;
}

.wm-ticker::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

.wm-ticker__track {
	display: flex;
	width: max-content;
	/* Motion is driven by js/ticker.js (marginLeft) — CSS transform fails on some large Chrome/macOS GPUs. */
	animation: none;
	will-change: auto;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.wm-ticker__track,
	.site-footer__ticker-track {
		animation: none !important;
		margin-left: 0 !important;
	}
}

.wm-ticker__list {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0.85rem 0;
	list-style: none;
}

.wm-ticker__item {
	flex: 0 0 auto;
	padding-inline: 2.5rem;
	font-size: clamp(0.875rem, 1.8vw, 1.125rem);
	font-weight: var(--font-weight-bold);
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.wm-ticker__item::after {
	content: "•";
	margin-left: 2.5rem;
	opacity: 0.65;
}

.wm-ticker__item:last-child::after {
	content: none;
}

@keyframes wm-ticker-scroll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

/* Legacy aliases (footer markup still carries these classes). */
.site-footer__ticker {
	/* styled via .wm-ticker */
}

.site-footer__ticker-track {
	display: flex;
	width: max-content;
	animation: none;
	will-change: auto;
	transform: none;
}

.site-footer__ticker-list {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0.85rem 0;
	list-style: none;
}

.site-footer__ticker-item {
	flex: 0 0 auto;
	padding-inline: 2.5rem;
	font-size: clamp(0.875rem, 1.8vw, 1.125rem);
	font-weight: var(--font-weight-bold);
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.site-footer__ticker-item::after {
	content: "•";
	margin-left: 2.5rem;
	opacity: 0.65;
}

.site-footer__ticker-item:last-child::after {
	content: none;
}

@media (prefers-reduced-motion: reduce) {
	.wm-ticker__track,
	.site-footer__ticker-track {
		animation: none;
	}
}

/* Main footer area */
.site-footer__main {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #000000 0%, #12081f 42%, #4a12a8 78%, #6e24e5 100%);
	color: var(--color-white);
}

.site-footer__glow {
	position: absolute;
	right: -4rem;
	bottom: -3rem;
	z-index: 0;
	width: clamp(12rem, 28vw, 22rem);
	height: clamp(12rem, 28vw, 22rem);
	border-radius: 50%;
	background: radial-gradient(circle, rgb(198 255 52 / 45%) 0%, rgb(198 255 52 / 0%) 72%);
	filter: blur(18px);
	pointer-events: none;
}

.site-footer__glow--image {
	width: clamp(10rem, 26vw, 20rem);
	height: auto;
	background: none;
	filter: none;
}

.site-footer__glow-image {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__decor-ring {
	position: absolute;
	right: clamp(0.5rem, 3vw, 2rem);
	bottom: clamp(1rem, 4vw, 2.5rem);
	z-index: 1;
	pointer-events: none;
	opacity: 0.95;
}

.site-footer__decor-ring--image {
	width: clamp(7rem, 16vw, 11rem);
	height: auto;
}

.site-footer__decor-ring-image {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__decor-ring-text {
	fill: var(--color-lime-canva, #c6ff34);
	font-family: var(--font-family-base);
	text-transform: uppercase;
}

.site-footer__inner {
	position: relative;
	z-index: 2;
	padding-block: clamp(3rem, 8vw, 5rem) clamp(2rem, 5vw, 3rem);
}

.site-footer__grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
}

@media (min-width: 48rem) {
	.site-footer__grid {
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.75fr) minmax(0, 0.85fr) minmax(0, 1fr);
		align-items: start;
	}
}

/* Brand column */
.site-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.site-footer__logo {
	margin-bottom: var(--space-md);
}

.site-footer__logo-image,
.site-footer__logo .custom-logo {
	display: block;
	width: auto;
	height: auto;
	max-height: var(--footer-logo-max-height, 3.5rem);
}

.site-footer__logo-custom .custom-logo-link {
	display: inline-block;
	line-height: 0;
}

.site-footer__logo-custom .custom-logo {
	display: block;
	max-height: var(--footer-logo-max-height, 3.5rem);
	width: auto;
}

.site-footer__brand-graphic {
	margin-bottom: var(--space-md);
	max-width: var(--footer-brand-graphic-max-width, 17.5rem);
}

.site-footer__brand-graphic-image {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__logo-text {
	display: inline-block;
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: var(--font-weight-bold);
	line-height: 1;
	letter-spacing: -0.03em;
}

.site-footer__logo-dot {
	color: var(--color-lime-canva, #c6ff34);
}

.site-footer__intro {
	max-width: 22rem;
	font-size: clamp(0.95rem, 1.6vw, 1.05rem);
	line-height: 1.55;
	color: rgb(255 255 255 / 88%);
}

.site-footer__intro strong {
	color: var(--color-white);
	font-weight: var(--font-weight-bold);
}

/* Headings */
.site-footer__heading {
	margin: 0 0 var(--space-md);
	font-size: clamp(1.125rem, 2vw, 1.35rem);
	font-weight: var(--font-weight-bold);
	line-height: 1.2;
}

/* Navigation */
.site-footer__nav-col {
	position: relative;
}

@media (min-width: 48rem) {
	.site-footer__nav-col {
		padding-right: var(--space-lg);
		border-right: 1px solid rgb(255 255 255 / 18%);
	}
}

.site-footer__menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__menu .menu-item {
	margin: 0 0 0.65rem;
}

.site-footer__menu a {
	font-size: 0.95rem;
	font-weight: 500;
	text-decoration: none;
}

/* Social */
.site-footer__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	color: var(--color-purple, #6e24e5);
	text-decoration: none;
	transition: transform 0.2s ease, color 0.2s ease;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
	transform: translateY(-2px);
	color: var(--color-lime-canva, #c6ff34);
}

.site-footer__icon {
	display: block;
	width: 1.65rem;
	height: 1.65rem;
	fill: currentColor;
}

.site-footer__social-custom-icon {
	display: block;
	width: 1.65rem;
	height: 1.65rem;
	object-fit: contain;
}

/* Contact buttons */
.site-footer__contact-buttons {
	display: grid;
	gap: 0.85rem;
}

.site-footer__contact-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	min-height: 3.25rem;
	padding: 0.35rem 0.35rem 0.35rem 1.35rem;
	border: 1px solid rgb(255 255 255 / 12%);
	border-radius: 999px;
	background: linear-gradient(90deg, rgb(8 0 16 / 95%) 0%, rgb(40 10 90 / 85%) 100%);
	color: var(--color-white);
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 10px 28px rgb(0 0 0 / 28%);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.site-footer__contact-btn:hover,
.site-footer__contact-btn:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 14px 32px rgb(0 0 0 / 34%);
}

.site-footer__contact-btn--whatsapp {
	box-shadow: 0 10px 28px rgb(0 0 0 / 28%), inset -0.35rem 0 1rem rgb(198 255 52 / 18%);
}

.site-footer__contact-btn--mail {
	box-shadow: 0 10px 28px rgb(0 0 0 / 28%), inset 0.35rem 0 1rem rgb(110 36 229 / 22%);
}

.site-footer__contact-btn-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
}

.site-footer__contact-btn-icon--lime {
	background-color: var(--color-lime-canva, #c6ff34);
	color: var(--color-black);
}

.site-footer__contact-btn-icon--purple {
	background-color: var(--color-purple, #6e24e5);
	color: var(--color-white);
}

.site-footer__contact-btn-icon--neutral {
	background-color: rgb(255 255 255 / 12%);
	color: var(--color-white);
}

.site-footer__column-empty {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.45;
	color: rgb(255 255 255 / 55%);
}

.site-footer__contact-btn-icon .site-footer__icon {
	width: 1.25rem;
	height: 1.25rem;
}

/* Copyright */
.site-footer__bottom {
	margin-top: clamp(2rem, 5vw, 3rem);
	padding-top: var(--space-md);
	border-top: 1px solid rgb(255 255 255 / 12%);
}

.site-footer__copyright {
	margin: 0;
	font-size: 0.875rem;
	color: rgb(255 255 255 / 55%);
}

@media (prefers-reduced-motion: reduce) {
	.site-footer__ticker-track {
		animation: none;
	}
}

@media (max-width: 47.99rem) {
	.site-footer__decor-ring {
		opacity: 0.45;
		transform: scale(0.75);
		transform-origin: bottom right;
	}

	.site-footer__brand {
		align-items: center;
		text-align: center;
	}

	.site-footer__logo {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.site-footer__intro {
		max-width: none;
	}

	.site-footer__brand-graphic {
		max-width: var(--footer-brand-graphic-max-width-mobile, 13.75rem);
	}
}
