/* ==========================================================================
   Bloque: Footer — referencia Ohio demo 1, versión clara y minimalista.
   CTA grande + 4 columnas + barra inferior.
   ========================================================================== */

.ko-footer {
	--ko-footer-soft: color-mix(in srgb, currentColor 62%, transparent);
	--ko-footer-line: color-mix(in srgb, currentColor 10%, transparent);
	padding-top: clamp(80px, 9vw, 140px);
	border-top: 1px solid var(--ko-footer-line);
	background: var(--ko-footer-bg, var(--ko-paper));
	color: var(--ko-footer-text, var(--ko-ink));
	font-size: 15px;
	line-height: 1.65;
}

.ko-footer a {
	color: inherit;
}

/* CTA --------------------------------------------------------------------- */

.ko-footer__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px 64px;
	padding-bottom: clamp(64px, 7vw, 112px);
	margin-bottom: clamp(56px, 6vw, 88px);
	border-bottom: 1px solid var(--ko-footer-line);
}

.ko-footer__label {
	margin: 0 0 12px;
	font-size: 13px;
	font-style: italic;
	color: var(--ko-footer-soft);
}

.ko-footer__cta-title {
	margin: 0;
	font-size: clamp(44px, 6.4vw, 96px);
	line-height: 0.95;
}

.ko-footer__cta-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding-block: 8px;
	font-family: var(--ko-font-display);
	font-weight: 700;
	font-size: 15px;
	text-transform: uppercase;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}

.ko-footer__cta-link .ko-icon {
	transition: transform 0.4s var(--ko-ease);
}

.ko-footer__cta-link:hover .ko-icon,
.ko-footer__cta-link:focus-visible .ko-icon {
	transform: translateX(6px);
}

/* Columnas ---------------------------------------------------------------- */

.ko-footer__cols {
	display: grid;
	gap: 48px 32px;
}

@media (min-width: 600px) {
	.ko-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.ko-footer__cols {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.ko-footer__brand {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
	text-decoration: none;
}

.ko-footer__brand .ko-monogram {
	width: auto;
	height: 56px;
}

.ko-footer__wordmark {
	font-family: var(--ko-font-display);
	font-weight: 700;
	font-size: 22px;
	line-height: 1;
	text-transform: uppercase;
}

.ko-footer__item + .ko-footer__item,
.ko-footer__form {
	margin-top: 36px;
}

.ko-footer__heading {
	margin: 0 0 8px;
	font-size: 15px;
	letter-spacing: 0.02em;
	line-height: 1.5;
}

.ko-footer__text {
	margin: 0 0 6px;
	color: var(--ko-footer-soft);
}

.ko-footer__link,
.ko-footer__socials a {
	font-weight: 700;
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size 0.4s var(--ko-ease);
}

.ko-footer__link:hover,
.ko-footer__link:focus-visible,
.ko-footer__socials a:hover,
.ko-footer__socials a:focus-visible {
	background-size: 100% 1px;
}

/* Redes en texto: "Ig. / Tk. / Wa." */
.ko-footer__socials {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
}

.ko-footer__socials li + li::before {
	content: "/";
	margin-inline: 10px;
	color: var(--ko-footer-soft);
}

/* Barra inferior ---------------------------------------------------------- */

.ko-footer__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 32px;
	margin-top: clamp(72px, 8vw, 120px);
	padding-block: 28px 32px;
	border-top: 1px solid var(--ko-footer-line);
	font-size: 13px;
	color: var(--ko-footer-soft);
}

.ko-footer__copy {
	margin: 0;
}

.ko-footer__sep {
	margin-inline: 10px;
}

.ko-footer__bar a {
	text-decoration: none;
}

.ko-footer__bar a:hover,
.ko-footer__bar a:focus-visible {
	color: var(--ko-footer-text, var(--ko-ink));
	text-decoration: underline;
	text-underline-offset: 4px;
}

.ko-footer__bar-right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 32px;
}

.ko-footer__legal {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ko-footer__legal li + li::before {
	content: "|";
	margin-inline: 10px;
}

.ko-footer .ko-footer__top {
	font-family: var(--ko-font-display);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--ko-footer-text, var(--ko-ink));
}

@media (prefers-reduced-motion: reduce) {
	.ko-footer * {
		transition-duration: 0.01ms !important;
	}
}
