/*
 * NL Toolkit: utilidades de marca. Se activan escribiendo la clase en
 * Elementor > Avanzado > Clases CSS. Medidas en rem; colores del design system.
 */

/* Botón con la flecha dentro de un círculo (V2). Icono a la derecha del texto. */
.nlt-btn-arrow .elementor-button {
	display: inline-flex;
	align-items: center;
}
.nlt-btn-arrow .elementor-button-content-wrapper {
	align-items: center;
	gap: .75rem;
}
.nlt-btn-arrow .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.25rem;
	height: 2.25rem;
	margin: 0;
	border-radius: 999px;
	background-color: var(--e-global-color-nlink, #0B1213);
	color: var(--e-global-color-nlbtn, #00CCA9);
	fill: currentColor;
	transition: transform .45s cubic-bezier(.16, 1, .3, 1), background-color .35s ease, color .35s ease;
}
.nlt-btn-arrow .elementor-button-icon svg {
	width: .875rem;
	height: .875rem;
	fill: currentColor;
}
.nlt-btn-arrow .elementor-button-icon i { font-size: .875rem; }
.nlt-btn-arrow .elementor-button:hover .elementor-button-icon,
.nlt-btn-arrow .elementor-button:focus-visible .elementor-button-icon {
	transform: rotate(-45deg);
	background-color: var(--e-global-color-nlbtn, #00CCA9);
	color: var(--e-global-color-nlink, #0B1213);
}
.nlt-btn-arrow .elementor-button:active { transform: scale(.98); }

/* Subrayado que crece al pasar el ratón por los enlaces principales del NL Menú (escritorio). */
.nlt-nav-underline .nlt-menu:not(.nlt-menu--mobile) .nlt-menu__list > .nlt-menu__item > .nlt-menu__link {
	position: relative;
}
.nlt-nav-underline .nlt-menu:not(.nlt-menu--mobile) .nlt-menu__list > .nlt-menu__item > .nlt-menu__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: .625rem;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .45s cubic-bezier(.16, 1, .3, 1);
}
.nlt-nav-underline .nlt-menu:not(.nlt-menu--mobile) .nlt-menu__list > .nlt-menu__item > .nlt-menu__link:hover::after,
.nlt-nav-underline .nlt-menu:not(.nlt-menu--mobile) .nlt-menu__list > .nlt-menu__item > .nlt-menu__link:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Punto o palabra en color de acento dentro de un titular: <span class="nlt-accent">.</span> */
.nlt-accent { color: var(--e-global-color-accent, #00CCA9); }

@media (prefers-reduced-motion: reduce) {
	.nlt-btn-arrow .elementor-button-icon,
	.nlt-nav-underline .nlt-menu__link::after { transition: none; }
	.nlt-btn-arrow .elementor-button:hover .elementor-button-icon { transform: none; }
}

/* Franja de clientes: logos (o nombres provisionales) en gris que se encienden al pasar el ratón */
.nlt-logos .nlt-logo-wm,
.nlt-logos .elementor-widget-image { opacity: .62; transition: opacity .3s ease; }
.nlt-logos .nlt-logo-wm:hover,
.nlt-logos .elementor-widget-image:hover { opacity: 1; }
.nlt-logos .elementor-widget-image img { max-height: 2.25rem; width: auto; filter: grayscale(1); }
:root[data-theme="dark"] .nlt-logos .elementor-widget-image img { filter: grayscale(1) invert(1) brightness(1.6); }

/* ------------------------------------------------------------------ */
/* Bento de servicios V2 ("Lo que hago por tu negocio").               */
/* Clase nlt-bx en la sección; cada tarjeta con nlt-tile + su clase.   */
/* ------------------------------------------------------------------ */
.nlt-bx {
	--bx-accent: var(--e-global-color-nlbtn, #00CCA9);
	--bx-accent-ink: var(--e-global-color-accent, #00735F);
	--bx-text: var(--e-global-color-primary, #101415);
	--bx-muted: var(--e-global-color-text, #4A5558);
	--bx-line: var(--e-global-color-nlline, #D6DAD7);
	--bx-surface: var(--e-global-color-secondary, #FFFFFF);
	--bx-surface-2: var(--e-global-color-nlsurf2, #E9EBE8);
	--bx-ink: #0B1213;
	--bx-halo: 20%;
}
:root[data-theme="dark"] .nlt-bx { --bx-halo: 16%; }
.nlt-bx .nlt-tile {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--bx-line);
	border-radius: 1.25rem;
	background-color: var(--bx-surface);
	transition: transform .5s cubic-bezier(.16, 1, .3, 1), box-shadow .5s ease, border-color .35s ease;
}
.nlt-bx .nlt-tile:hover { transform: translateY(-4px); box-shadow: 0 1.875rem 3.75rem -2.25rem rgba(16, 30, 32, .3); }
.nlt-bx .nlt-tile .elementor-heading-title { color: var(--bx-text); }
.nlt-bx .nlt-tile h3.elementor-heading-title { font-size: 1.875rem; font-weight: 500; letter-spacing: -.025em; line-height: 1.12; }
.nlt-bx .nlt-tile .elementor-widget-text-editor { color: var(--bx-muted); font-size: 1.0625rem; line-height: 1.6; }
.nlt-bx .nlt-tile .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Enlace de texto con flecha ("Ver planes") */
.nlt-bx .nlt-bx-go .elementor-heading-title,
.nlt-bx .nlt-bx-go .elementor-heading-title a { display: inline-flex; align-items: center; gap: .625rem; font-size: .9375rem; font-weight: 500; color: var(--bx-text); text-decoration: none; }
.nlt-bx .nlt-bx-go .elementor-heading-title a::after {
	content: ""; width: 1rem; height: 1rem; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .45s cubic-bezier(.16, 1, .3, 1);
}
.nlt-bx .nlt-tile:hover .nlt-bx-go .elementor-heading-title a::after { transform: translateX(5px); }

/* Diseño y desarrollo web: teal de marca con trama de puntos */
.nlt-bx .nlt-bx-web {
	background-color: var(--bx-accent);
	background-image: radial-gradient(rgba(11, 18, 19, .16) 1.3px, transparent 1.3px);
	background-size: 22px 22px;
	border-color: var(--bx-accent);
}
.nlt-bx .nlt-bx-web .elementor-heading-title { color: var(--bx-ink); }
.nlt-bx .nlt-bx-web h3.elementor-heading-title { font-size: 3.25rem; line-height: 1.02; letter-spacing: -.04em; max-width: 11ch; }
.nlt-bx .nlt-bx-web .elementor-widget-text-editor { color: rgba(11, 18, 19, .8); font-size: 1.125rem; }
.nlt-bx .nlt-bx-web .elementor-widget-text-editor:last-child { flex: 1 1 auto; display: flex; flex-direction: column; }
.nlt-bx .nlt-bx-web .elementor-widget-text-editor:last-child > .elementor-widget-container { flex: 1 1 auto; display: flex; flex-direction: column; }
.nlt-bx .nlt-bx-list { flex: 1 1 auto; display: flex; flex-direction: column; margin: .5rem 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(11, 18, 19, .25); }
.nlt-bx .nlt-bx-list li { flex: 1 1 0; display: flex; margin: 0; }
.nlt-bx .nlt-bx-list a {
	position: relative; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: .25rem;
	min-height: 5.25rem; padding: 1rem 3.5rem 1rem 0; border-bottom: 1px solid rgba(11, 18, 19, .25);
	color: var(--bx-ink); text-decoration: none; transition: padding .45s cubic-bezier(.16, 1, .3, 1);
}
.nlt-bx .nlt-bx-list a:hover { padding-left: .75rem; color: var(--bx-ink); }
.nlt-bx .nlt-bx-list .t { font-size: 1.3125rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.3; }
.nlt-bx .nlt-bx-list .d { font-size: .9375rem; line-height: 1.5; color: rgba(11, 18, 19, .74); }
.nlt-bx .nlt-bx-list a::after {
	content: ""; position: absolute; right: 0; top: 50%; width: 2.5rem; height: 2.5rem; margin-top: -1.25rem;
	border-radius: 999px; border: 1px solid rgba(11, 18, 19, .3);
	background: no-repeat center / 1rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1213' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	transition: transform .45s cubic-bezier(.16, 1, .3, 1), background-color .3s ease;
}
.nlt-bx .nlt-bx-list a:hover::after { transform: rotate(-45deg); background-color: rgba(255, 255, 255, .35); }

/* SEO y conversión: degradado de marca, gráfica y accesos */
.nlt-bx .nlt-bx-seo {
	background-image: linear-gradient(135deg, color-mix(in srgb, var(--bx-accent) 20%, var(--bx-surface)) 0%, var(--bx-surface) 70%);
	border-color: color-mix(in srgb, var(--bx-accent) 38%, var(--bx-line));
}
.nlt-bx .nlt-bx-seo-head { max-width: 54%; position: relative; z-index: 1; }
.nlt-bx .nlt-bx-chip .elementor-heading-title {
	display: inline-flex; align-items: center; min-height: 1.875rem; padding: 0 .75rem; border-radius: 999px;
	border: 1px solid currentColor; font-size: .8125rem; font-weight: 400; color: var(--bx-accent-ink); opacity: .9;
}
.nlt-bx .nlt-bx-chart { position: absolute !important; right: 1.875rem; top: 2.5rem; width: 36%; pointer-events: none; z-index: 0; }
.nlt-bx .nlt-bx-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.nlt-bx .nlt-bx-chart .gr path { stroke: color-mix(in srgb, var(--bx-text) 12%, transparent); stroke-width: 1; stroke-dasharray: 3 5; }
.nlt-bx .nlt-bx-chart .ln { fill: none; stroke: var(--bx-accent-ink); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: nltBxLn 1.8s cubic-bezier(.65, 0, .35, 1) .3s forwards; }
:root[data-theme="dark"] .nlt-bx .nlt-bx-chart .ln { stroke: var(--bx-accent); }
.nlt-bx .nlt-bx-chart .ar { opacity: 0; animation: nltBxFade .8s ease 1.4s forwards; }
.nlt-bx .nlt-bx-chart .pt { fill: var(--bx-accent); stroke: var(--bx-surface); stroke-width: 2; opacity: 0; animation: nltBxFade .4s ease 1.9s forwards; }
.nlt-bx .nlt-bx-chart .pr { fill: none; stroke: var(--bx-accent); stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; animation: nltBxPulse 2.4s cubic-bezier(.16, 1, .3, 1) 2.1s infinite; }
@keyframes nltBxLn { to { stroke-dashoffset: 0; } }
@keyframes nltBxFade { to { opacity: 1; } }
@keyframes nltBxPulse { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(1.8); opacity: 0; } }
.nlt-bx .nlt-bx-scs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; margin: 0; padding: 0; list-style: none; position: relative; z-index: 1; }
.nlt-bx .nlt-bx-scs li { margin: 0; }
.nlt-bx .nlt-bx-scs a {
	display: flex; flex-direction: column; gap: .1875rem; padding: .875rem 1rem; border-radius: .875rem;
	background: var(--bx-surface); border: 1px solid var(--bx-line); color: var(--bx-text); text-decoration: none;
	transition: border-color .25s ease, transform .35s cubic-bezier(.16, 1, .3, 1), box-shadow .35s ease;
}
.nlt-bx .nlt-bx-scs a:hover { border-color: var(--bx-accent); transform: translateY(-2px); box-shadow: 0 .875rem 1.75rem -1.25rem rgba(16, 30, 32, .3); color: var(--bx-text); }
.nlt-bx .nlt-bx-scs .t { font-size: 1rem; font-weight: 600; letter-spacing: -.01em; }
.nlt-bx .nlt-bx-scs .d { font-size: .875rem; line-height: 1.4; color: var(--bx-muted); }

/* Bolsa de horas: retícula que se desvanece */
.nlt-bx .nlt-bx-grid {
	background-image: linear-gradient(100deg, var(--bx-surface) 38%, color-mix(in srgb, var(--bx-surface) 40%, transparent)),
		linear-gradient(var(--bx-line) 1px, transparent 1px), linear-gradient(90deg, var(--bx-line) 1px, transparent 1px);
	background-size: auto, 44px 44px, 44px 44px;
	background-position: 0 0, -1px -1px, -1px -1px;
}

/* Urgencias: tarjeta invertida con halo y rayo con pulso */
.nlt-bx .nlt-bx-urg {
	background-color: var(--bx-text);
	border-color: var(--bx-text);
	background-image: radial-gradient(closest-side at 6% 104%, color-mix(in srgb, var(--bx-accent) calc(var(--bx-halo) + 6%), transparent), transparent 100%);
	background-size: 140% 160%; background-position: 0 100%; background-repeat: no-repeat;
}
.nlt-bx .nlt-bx-urg .elementor-heading-title,
.nlt-bx .nlt-bx-urg .elementor-widget-text-editor { color: var(--e-global-color-nlbg, #F3F4F2); }
.nlt-bx .nlt-bx-urg .elementor-widget-text-editor { opacity: .82; }
.nlt-bx .nlt-bx-kicker .elementor-heading-title { font-size: .9375rem; font-weight: 600; color: var(--bx-accent) !important; }
:root[data-theme="dark"] .nlt-bx .nlt-bx-kicker .elementor-heading-title { color: #00735F !important; }
.nlt-bx .nlt-bx-urg-ic { position: relative; display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 1rem; background: var(--bx-accent); color: var(--bx-ink); }
.nlt-bx .nlt-bx-urg-ic::after { content: ""; position: absolute; inset: -6px; border-radius: 1.25rem; border: 1px solid color-mix(in srgb, var(--bx-accent) 55%, transparent); animation: nltBxUrg 2.4s cubic-bezier(.16, 1, .3, 1) infinite; }
@keyframes nltBxUrg { 0% { transform: scale(.9); opacity: 1; } 100% { transform: scale(1.25); opacity: 0; } }
.nlt-bx .nlt-bx-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; }
.nlt-bx .nlt-bx-tags li { margin: 0; padding: .4375rem .875rem; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--e-global-color-nlbg, #F3F4F2) 24%, transparent); font-size: .875rem; color: var(--e-global-color-nlbg, #F3F4F2); }

/* Diagnóstico: halo arriba a la derecha y lista separada con check */
.nlt-bx .nlt-bx-diag {
	background-image: radial-gradient(closest-side, color-mix(in srgb, var(--bx-accent) var(--bx-halo), transparent), transparent);
	background-size: 27.5rem 27.5rem; background-position: calc(100% + 9.375rem) -13.125rem; background-repeat: no-repeat;
}
.nlt-bx .nlt-bx-checks { list-style: none; margin: .375rem 0 0; padding: 0; border-top: 1px solid var(--bx-line); }
.nlt-bx .nlt-bx-checks li { position: relative; display: flex; align-items: center; min-height: 3.5rem; margin: 0; padding: .625rem 0 .625rem 2.125rem; border-bottom: 1px solid var(--bx-line); font-size: 1rem; line-height: 1.5; color: var(--bx-text); }
.nlt-bx .nlt-bx-checks li::before { content: ""; position: absolute; left: 1px; top: 50%; margin-top: -10px; width: 20px; height: 20px; border-radius: 50%; background: color-mix(in srgb, var(--bx-accent) 16%, transparent); box-shadow: inset 0 0 0 1px var(--bx-accent); }
.nlt-bx .nlt-bx-checks li::after { content: ""; position: absolute; left: 8px; top: 50%; margin-top: -4px; width: 6px; height: 4px; border-left: 2px solid var(--bx-accent-ink); border-bottom: 2px solid var(--bx-accent-ink); transform: rotate(-45deg); }

@media (max-width: 767px) {
	.nlt-bx .nlt-bx-web h3.elementor-heading-title { font-size: 2.375rem; }
	.nlt-bx .nlt-tile h3.elementor-heading-title { font-size: 1.625rem; }
	.nlt-bx .nlt-bx-seo-head { max-width: 100%; }
	.nlt-bx .nlt-bx-chart { position: relative !important; right: auto; top: auto; width: 100%; max-width: 15rem; order: 2; }
	.nlt-bx .nlt-bx-scs { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.nlt-bx .nlt-tile, .nlt-bx .nlt-bx-list a { transition: none; }
	.nlt-bx .nlt-bx-chart .ln, .nlt-bx .nlt-bx-chart .ar, .nlt-bx .nlt-bx-chart .pt { animation: none; stroke-dashoffset: 0; opacity: 1; }
	.nlt-bx .nlt-bx-chart .pr, .nlt-bx .nlt-bx-urg-ic::after { animation: none; display: none; }
}
/* Listas del bento a todo el ancho de la tarjeta aunque el contenedor alinee al inicio */
.nlt-bx .nlt-bx-full { align-self: stretch; width: 100%; max-width: 100%; }
/* Urgencias: el icono del rayo conserva su ancho junto al texto (evita que se monte encima) */
.nlt-bx .nlt-bx-urg > .elementor-widget-html { flex: 0 0 3.5rem !important; width: 3.5rem !important; max-width: 3.5rem; }
.nlt-bx .nlt-bx-urg > .e-con { flex: 1 1 0% !important; min-width: 0; }
@media (max-width: 767px) { .nlt-bx .nlt-bx-urg > .e-con { flex: 0 0 auto !important; width: 100%; } }

/* ------------------------------------------------------------------ */
/* Secciones V2: Sin intermediarios, Cómo trabajo, Preguntas, Contacto  */
/* y pie. Clases en Elementor > Avanzado > Clases CSS.                  */
/* ------------------------------------------------------------------ */
.nlt-v2s {
	--s-text: var(--e-global-color-primary, #101415);
	--s-muted: var(--e-global-color-text, #4A5558);
	--s-faint: var(--e-global-color-nlfaint, #5C686B);
	--s-line: var(--e-global-color-nlline, #D6DAD7);
	--s-surface: var(--e-global-color-secondary, #FFFFFF);
	--s-surface-2: var(--e-global-color-nlsurf2, #E9EBE8);
	--s-accent: var(--e-global-color-nlbtn, #00CCA9);
	--s-accent-ink: var(--e-global-color-accent, #00735F);
	--s-halo: 18%;
}
:root[data-theme="dark"] .nlt-v2s { --s-halo: 14%; }

/* Sin intermediarios: franja con puntos y halo */
.nlt-about { position: relative; overflow: hidden; background-color: var(--s-surface-2); border-top: 1px solid var(--s-line); border-bottom: 1px solid var(--s-line); }
.nlt-about .nlt-about-bg { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; pointer-events: none; width: auto !important; max-width: none !important; }
.nlt-about .nlt-about-bg .elementor-widget-container,
.nlt-about .nlt-about-bg > * { position: absolute; inset: 0; }
.nlt-about-dots { position: absolute; inset: 0; background-image: radial-gradient(color-mix(in srgb, var(--s-text) 22%, transparent) 1.3px, transparent 1.3px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(70% 80% at 50% 45%, #000 0%, transparent 78%); mask-image: radial-gradient(70% 80% at 50% 45%, #000 0%, transparent 78%); }
.nlt-about-glow { position: absolute; left: 50%; top: 38%; width: 56.25rem; height: 32.5rem; margin: -16.25rem 0 0 -28.125rem; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--s-accent) var(--s-halo), transparent), transparent); animation: nltAboutGlow 18s ease-in-out infinite alternate; }
@keyframes nltAboutGlow { to { transform: translate3d(4%, 6%, 0) scale(1.1); } }
.nlt-about > *:not(.nlt-about-bg), .nlt-about > .e-con-inner > *:not(.nlt-about-bg) { position: relative; z-index: 1; }
.nlt-about .nlt-about-h .elementor-heading-title { text-align: center; max-width: 22ch; margin: 0 auto; font-size: 3.75rem; font-weight: 500; letter-spacing: -.04em; line-height: 1.08; color: var(--s-text); }
.nlt-about .nlt-about-h .elementor-heading-title span { color: var(--s-faint); }
.nlt-about .nlt-about-t { text-align: center; margin-left: auto; margin-right: auto; max-width: 58ch; color: var(--s-muted); font-size: 1.125rem; line-height: 1.65; }
.nlt-guarantees { border-top: 1px solid color-mix(in srgb, var(--s-text) 14%, transparent); }
.nlt-guarantees > .e-con { padding: 2rem 1.75rem 0 !important; }
.nlt-guarantees > .e-con:first-child { padding-left: 0 !important; }
.nlt-guarantees > .e-con:last-child { padding-right: 0 !important; }
.nlt-guarantees > .e-con + .e-con { border-left: 1px solid color-mix(in srgb, var(--s-text) 14%, transparent); }
.nlt-guarantees .elementor-heading-title { font-size: 1.1875rem; font-weight: 600; color: var(--s-text); }
.nlt-guarantees .elementor-widget-text-editor { font-size: 1rem; line-height: 1.6; color: var(--s-muted); }

/* Cómo trabajo: título fijo y pasos con línea */
.nlt-sticky { position: sticky !important; top: 7.5rem; align-self: flex-start; }
.nlt-steps { position: relative; list-style: none; margin: 0; padding: 0; counter-reset: nltstep; }
.nlt-steps::before { content: ""; position: absolute; left: 2.25rem; top: 2.25rem; bottom: 4rem; width: 1px; background: linear-gradient(var(--s-accent), var(--s-line)); }
.nlt-steps li { position: relative; display: grid; grid-template-columns: 4.5rem 1fr; gap: 1.75rem; margin: 0; padding: 0 0 4rem; counter-increment: nltstep; }
.nlt-steps li:last-child { padding-bottom: 0; }
.nlt-steps li::before { content: counter(nltstep, decimal-leading-zero); position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 4.5rem; height: 4.5rem; border-radius: 999px; border: 1px solid var(--s-line); background: var(--e-global-color-nlbg, #F3F4F2); font-size: .875rem; font-variant-numeric: tabular-nums; color: var(--s-accent-ink); }
.nlt-steps .t { display: block; padding-top: .875rem; font-size: 1.75rem; font-weight: 500; letter-spacing: -.025em; line-height: 1.2; color: var(--s-text); }
.nlt-steps .d { display: block; margin-top: .75rem; max-width: 46ch; font-size: 1.0625rem; line-height: 1.65; color: var(--s-muted); }

/* Preguntas frecuentes: <details> nativos */
.nlt-faq-list { border-top: 1px solid var(--s-line); }
.nlt-faq-list details { border-bottom: 1px solid var(--s-line); }
.nlt-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 2.75rem; padding: 1.75rem 0; list-style: none; cursor: pointer; font-size: 1.3125rem; font-weight: 500; letter-spacing: -.01em; line-height: 1.35; color: var(--s-text); }
.nlt-faq-list summary::-webkit-details-marker { display: none; }
.nlt-faq-list summary:hover { color: var(--s-accent-ink); }
.nlt-faq-list summary::after { content: ""; flex: none; width: 2.5rem; height: 2.5rem; border-radius: 999px; border: 1px solid var(--s-line); background: no-repeat center / 1rem; background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor); background-size: 1rem 2px, 2px 1rem; transition: transform .45s cubic-bezier(.16, 1, .3, 1); }
.nlt-faq-list details[open] summary::after { transform: rotate(45deg); }
.nlt-faq-list details p { margin: 0 0 1.75rem; max-width: 60ch; font-size: 1.0625rem; line-height: 1.7; color: var(--s-muted); }

/* Contacto: panel con halo */
.nlt-contact-panel { position: relative; overflow: hidden; border: 1px solid var(--s-line); border-radius: 1.25rem; background-color: var(--s-surface); background-image: radial-gradient(closest-side, color-mix(in srgb, var(--s-accent) 20%, transparent), transparent); background-size: 32.5rem 32.5rem; background-position: calc(100% + 11.25rem) -13.75rem; background-repeat: no-repeat; }
.nlt-contact-panel .nlt-contact-note { color: var(--s-faint); font-size: 1rem; }

/* Pie */
.nlt-foot { border-top: 0; }
.nlt-foot .nlt-foot-name p { margin: 0; font-size: 10.5rem; font-weight: 600; letter-spacing: -.06em; line-height: .9; white-space: nowrap; overflow: hidden; color: var(--s-text); opacity: .08; }
.nlt-foot-cols { border-top: 1px solid var(--s-line); }
.nlt-foot .nlt-foot-desc { color: var(--s-muted); font-size: .9375rem; line-height: 1.6; max-width: 30ch; }
.nlt-foot-links { list-style: none; margin: 0; padding: 0; }
.nlt-foot-links li { margin: 0; }
.nlt-foot .nlt-foot-links a, .nlt-foot .nlt-foot-links a:visited { display: inline-flex; align-items: center; min-height: 2rem; font-size: .9375rem; color: var(--s-muted); text-decoration: none; }
.nlt-foot .nlt-foot-links a:hover { color: var(--s-text); }
.nlt-foot .nlt-foot-label .elementor-heading-title { font-size: .8125rem; font-weight: 500; color: var(--s-faint); }
.nlt-foot .nlt-foot-copy { font-size: .875rem; color: var(--s-faint); }

@media (max-width: 1024px) {
	.nlt-about .nlt-about-h .elementor-heading-title { font-size: 3rem; }
	.nlt-foot .nlt-foot-name p { font-size: 7rem; }
}
@media (max-width: 767px) {
	.nlt-about .nlt-about-h .elementor-heading-title { font-size: 2.25rem; }
	.nlt-guarantees > .e-con, .nlt-guarantees > .e-con:first-child, .nlt-guarantees > .e-con:last-child { padding: 1.5rem 0 0 !important; }
	.nlt-guarantees > .e-con + .e-con { border-left: 0; border-top: 1px solid color-mix(in srgb, var(--s-text) 14%, transparent); }
	.nlt-sticky { position: relative !important; top: auto; }
	.nlt-steps li { grid-template-columns: 3.5rem 1fr; gap: 1rem; padding-bottom: 2.5rem; }
	.nlt-steps li::before { width: 3.5rem; height: 3.5rem; }
	.nlt-steps::before { left: 1.75rem; top: 1.75rem; }
	.nlt-steps .t { padding-top: .625rem; font-size: 1.375rem; }
	.nlt-faq-list summary { font-size: 1.125rem; padding: 1.25rem 0; }
	.nlt-foot .nlt-foot-name p { font-size: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
	.nlt-about-glow { animation: none; }
	.nlt-faq-list summary::after { transition: none; }
}
/* Pasos: título y texto siempre en la segunda columna, junto al número */
.nlt-steps li::before { grid-column: 1; grid-row: 1 / span 2; }
.nlt-steps .t, .nlt-steps .d { grid-column: 2; }
.nlt-steps li { row-gap: 0; align-content: start; }
