/* =========================================================
   KONNECT — Nosotros (Fase 8, rediseño multipágina)
   Recorrido: portada con abanico de fotos que sigue al puntero →
   historia y propósito con año fijo → diferencias en filas editoriales →
   FIRMA: collage informativo (fotos + datos validados) → equipo →
   contacto → cierre. Todo sobre el azul oficial.
========================================================= */

/* ---------- Portada ---------- */
.nos-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: calc(var(--k-header-h) + 40px) 0 calc(var(--k-r-xl) + 88px);
  background:
    radial-gradient(55% 60% at 85% 40%, rgba(94, 237, 242, 0.2), transparent 70%),
    radial-gradient(40% 45% at 70% 100%, rgba(177, 74, 227, 0.22), transparent 70%),
    radial-gradient(35% 40% at 0% 0%, rgba(242, 105, 83, 0.12), transparent 70%),
    var(--k-field);
  color: var(--k-on-dark);
}
.nos-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.nos-hero__title { margin-top: 18px; font-size: clamp(2.6rem, 5.4vw, 5.2rem); line-height: 1.02; letter-spacing: -0.01em; max-width: 14ch; color: var(--k-on-dark); }
.nos-hero__lede { margin-top: 24px; max-width: 50ch; font-size: clamp(1.05rem, 1.25vw, 1.18rem); color: var(--k-on-dark-2); }
.nos-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* Abanico: tres fotografías en arco y dos datos flotantes */
.nos-hero__fan { position: relative; aspect-ratio: 1 / 0.92; min-height: 380px; }
.nos-hero__card {
  position: absolute; margin: 0; overflow: hidden;
  border-radius: 999px 999px var(--k-r-lg) var(--k-r-lg);
  box-shadow: 0 30px 60px -24px rgba(5, 6, 40, 0.8);
  border: 1px solid rgba(245, 247, 255, 0.18);
  transform: translate3d(var(--px, 0px), var(--py, 0px), 0) rotate(var(--rot, 0deg));
}
.nos-hero__card picture { display: block; width: 100%; height: 100%; }
.nos-hero__card img { width: 100%; height: 100%; object-fit: cover; }
.nos-hero__card--a { --rot: -8deg; left: 0; top: 16%; width: 38%; height: 64%; }
.nos-hero__card--b { --rot: 0deg; left: 28%; top: 0; width: 44%; height: 84%; z-index: 2; }
.nos-hero__card--c { --rot: 9deg; right: 0; top: 22%; width: 34%; height: 58%; }
.nos-hero__card--a img { object-position: 30% 50%; }
.nos-hero__card--c img { object-position: 60% 30%; }
.nos-hero__chip {
  position: absolute; z-index: 3;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 18px; border-radius: 999px;
  background: rgba(13, 14, 84, 0.72); border: 1px solid rgba(94, 237, 242, 0.32);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transform: translate3d(var(--px, 0px), var(--py, 0px), 0);
  color: var(--k-on-dark);
}
.nos-hero__chip strong { font-family: var(--k-font-display); font-size: 1.9rem; font-weight: 600; line-height: 1; color: var(--k-aqua); }
.nos-hero__chip span { font-size: 0.82rem; color: var(--k-on-dark-2); max-width: 11ch; line-height: 1.3; }
.nos-hero__chip img { width: 44px; height: 44px; }
.nos-hero__chip--reach { right: 2%; bottom: 14%; }

/* Entrada de la portada: una sola vez, solo con movimiento permitido */
@media (prefers-reduced-motion: no-preference) {
  .nos-hero__card, .nos-hero__chip { animation: nos-fan-in 1100ms var(--k-ease-out) both; }
  .nos-hero__card--a { animation-delay: 120ms; }
  .nos-hero__card--c { animation-delay: 220ms; }
  .nos-hero__chip--reach { animation-delay: 640ms; }
  }
@keyframes nos-fan-in {
  from { opacity: 0; translate: 0 48px; scale: 0.94; }
  to { opacity: 1; translate: 0 0; scale: 1; }
}
@keyframes nos-mark-in {
  from { opacity: 0; translate: 6% 0; }
  to { opacity: 1; translate: 0 0; }
}

/* ---------- Historia y propósito ---------- */

/* ---------- Diferencias: filas editoriales ---------- */
.nos-values {
  padding: var(--k-section) 0;
  background: linear-gradient(180deg, var(--k-night) 0%, var(--k-field-ink) 100%);
  color: var(--k-on-dark);
}
.nos-values__head { display: grid; gap: 16px; }
.nos-values__head .k-h2 { max-width: 20ch; }
.nos-values__lede { max-width: 60ch; font-size: 1.1rem; color: var(--k-on-dark-2); }
.nos-values__list { margin-top: clamp(40px, 6vw, 72px); border-top: 1px solid var(--k-line-dark); }
.nos-value {
  position: relative; isolation: isolate;
  display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) 110px; gap: clamp(16px, 3vw, 40px); align-items: center;
  padding: clamp(26px, 3.4vw, 44px) clamp(8px, 2vw, 24px);
  border-bottom: 1px solid var(--k-line-dark);
  border-radius: var(--k-r-md);
}
/* Barrido aqua al pasar el puntero o enfocar */
.nos-value::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: linear-gradient(90deg, rgba(94, 237, 242, 0.14), rgba(94, 237, 242, 0));
  transform: scaleX(0); transform-origin: left;
  transition: transform 520ms var(--k-ease-out);
}
.nos-value:hover::before { transform: scaleX(1); }
.nos-value h3 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); line-height: 1.04; color: var(--k-on-dark); }
.nos-value p { font-size: 1.06rem; color: var(--k-on-dark-2); max-width: 46ch; }
.nos-value__icon { width: 96px; height: auto; justify-self: end; transition: transform 520ms var(--k-ease-out); }
.nos-value:hover .nos-value__icon { transform: translateY(-6px) rotate(-6deg) scale(1.06); }

/* ---------- Collage informativo (firma) ---------- */
.nos-collage { padding: var(--k-section) 0; }
.nos-collage__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: clamp(84px, 8.4vw, 124px);
  gap: clamp(10px, 1.2vw, 18px);
}
.nos-collage__copy { grid-column: 1 / span 5; grid-row: 1 / span 3; align-self: center; padding-right: 12px; }
.nos-collage__copy .k-h2 { margin-top: 16px; font-size: clamp(2rem, 3.6vw, 3.2rem); }
.nos-collage__copy > p { margin-top: 18px; color: var(--k-on-light-2); max-width: 46ch; }
.nos-tile { position: relative; margin: 0; overflow: hidden; border-radius: var(--k-r-lg); border: 1px solid var(--k-card-line); }
.nos-tile picture, .nos-tile img { display: block; width: 100%; height: 100%; }
figure.nos-tile img { object-fit: cover; transition: transform 900ms var(--k-ease-out); }
figure.nos-tile:hover img { transform: scale(1.05); }
.nos-tile--a { grid-column: 6 / span 5; grid-row: 1 / span 3; border-radius: 999px 999px var(--k-r-lg) var(--k-r-lg); }
.nos-tile--stat { grid-column: 11 / span 2; grid-row: 1 / span 2; }
.nos-tile--b { grid-column: 11 / span 2; grid-row: 3 / span 3; }
.nos-tile--c { grid-column: 1 / span 5; grid-row: 4 / span 3; }
.nos-tile--icon { grid-column: 6 / span 2; grid-row: 4 / span 2; }
.nos-tile--d { grid-column: 8 / span 3; grid-row: 4 / span 2; }
.nos-tile--ops { grid-column: 6 / span 3; grid-row: 6 / span 2; }
.nos-tile--e { grid-column: 9 / span 4; grid-row: 6 / span 3; border-radius: var(--k-r-lg) var(--k-r-lg) 999px 999px; }
.nos-tile--f { grid-column: 1 / span 5; grid-row: 7 / span 2; }
.nos-tile--reach { grid-column: 6 / span 3; grid-row: 8 / span 1; padding-block: 12px; }
.nos-tile--reach img { grid-row: span 2; width: 52px !important; height: 52px !important; }
.nos-tile--reach .nos-tile__big { font-size: clamp(1.8rem, 2.6vw, 2.4rem); }

/* Piezas de datos */
.nos-tile--stat, .nos-tile--icon, .nos-tile--ops, .nos-tile--reach {
  display: flex; flex-direction: column; justify-content: flex-end; gap: 6px;
  padding: clamp(16px, 1.8vw, 26px);
  color: var(--k-on-light);
}
.nos-tile--stat { background: radial-gradient(90% 70% at 100% 0%, rgba(94, 237, 242, 0.35), transparent 65%), var(--k-deep); }
.nos-tile--icon { background: linear-gradient(160deg, #8E36BC 0%, #4B2186 100%); } /* V4: texto blanco ≥ 4.5:1 */
.nos-tile--ops { background-color: #5EEDF2; background-image: linear-gradient(135deg, rgba(94, 237, 242, 0.95) 0%, #2BB6C2 100%); color: #06224A; }
.nos-tile--reach { display: grid; grid-template-columns: auto 1fr; align-content: center; column-gap: 14px; row-gap: 2px; background: radial-gradient(60% 140% at 0% 50%, rgba(125, 227, 74, 0.28), transparent 70%), var(--k-deep); }
.nos-tile__big { font-family: var(--k-font-display); font-weight: 700; font-size: clamp(2.2rem, 3.6vw, 3.4rem); line-height: 0.95; letter-spacing: -0.01em; color: var(--k-aqua); }
.nos-tile--ops .nos-tile__big { color: #06224A; }
.nos-tile--stat p:not(.nos-tile__big), .nos-tile--reach p:not(.nos-tile__big) { font-weight: 600; font-size: 0.95rem; }
.nos-tile--ops p:not(.nos-tile__big) { font-weight: 600; font-size: 0.95rem; }
.nos-tile--icon img { width: 64px; height: 64px; margin-bottom: auto; }
.nos-tile--icon p { font-size: 0.92rem; font-weight: 600; line-height: 1.35; color: #fff; }
.nos-tile--reach img { width: 72px; height: 72px; }
.nos-tile--reach .nos-tile__big { color: #C9F7A8; }
.nos-tile figcaption {
  position: absolute; left: 14px; right: 14px; bottom: 14px;
  display: grid; gap: 4px; padding: 14px 16px;
  border-radius: var(--k-r-md); background: rgba(8, 9, 40, 0.84);
  font-size: 0.86rem; color: #F5F7FF;
}
.nos-tile__caption-title { font-family: var(--k-font-display); font-size: 1.25rem; font-weight: 600; color: var(--k-aqua); }
.nos-collage__note { margin-top: 28px; }

/* ---------- Equipo ---------- */
.nos-team {
  padding: var(--k-section) 0;
  background:
    radial-gradient(50% 60% at 100% 0%, rgba(94, 237, 242, 0.12), transparent 70%),
    var(--k-field);
  color: var(--k-on-dark);
}
.nos-team__head { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 48px; align-items: end; }
.nos-team__head .k-h2 { max-width: 16ch; }
.nos-team__head > p:last-child { color: var(--k-on-dark-2); max-width: 44ch; }
.nos-team__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 22px); margin-top: clamp(40px, 5vw, 64px); }
.nos-person {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 20px; align-items: center;
  padding: clamp(20px, 2.4vw, 30px);
  border-radius: var(--k-r-lg);
  background: rgba(8, 10, 60, 0.45); border: 1px solid rgba(245, 247, 255, 0.12);
  transition: border-color var(--k-dur-state) var(--k-ease-out), transform var(--k-dur-state) var(--k-ease-out);
}
.nos-person:hover { border-color: color-mix(in srgb, var(--hue) 60%, transparent); transform: translateY(-4px); }
.nos-person__mono {
  grid-row: 1 / span 2;
  display: grid; place-items: center;
  width: 76px; height: 76px; border-radius: 50%;
  font-family: var(--k-font-display); font-size: 1.7rem; font-weight: 600; color: var(--k-on-dark);
  background:
    radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.22), transparent 55%),
    color-mix(in srgb, var(--hue) 34%, #0D0E54);
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--hue) 70%, transparent), 0 12px 30px -14px var(--hue);
}
.nos-person h3 { align-self: end; font-size: clamp(1.4rem, 2vw, 1.8rem); line-height: 1.05; color: var(--k-on-dark); }
.nos-person p { align-self: start; margin-top: 6px; font-size: 0.95rem; color: var(--k-on-dark-2); }

/* ---------- Contacto ---------- */
.nos-contact { padding: var(--k-section) 0; scroll-margin-top: calc(var(--k-header-h) + 16px); }
.nos-contact__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.nos-contact__intro .k-h2 { margin-top: 16px; }
.nos-contact__intro > p { margin-top: 20px; color: var(--k-on-light-2); max-width: 46ch; }
.nos-contact__channels { margin-top: 36px; border-top: 1px solid var(--k-line-light); }
.nos-contact__channels li { display: grid; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--k-line-light); }
.nos-contact__label { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--k-on-light-3); }
.nos-contact__channels a {
  display: inline-flex; align-items: center; min-height: 44px; width: fit-content;
  font-family: var(--k-font-display); font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 500; color: var(--k-on-light);
  background: linear-gradient(currentColor, currentColor) 0 88% / 0 2px no-repeat;
  transition: color var(--k-dur-hover) ease, background-size 420ms var(--k-ease-out);
}
.nos-contact__channels a:hover { color: var(--k-aqua); background-size: 100% 2px; }
.nos-contact__social { display: flex; flex-wrap: wrap; gap: 4px 26px; }
.nos-contact__form[hidden] { display: none; }
.nos-contact__booking { min-width: 0; overflow: hidden; border: 1px solid rgba(94, 237, 242, 0.3); border-radius: var(--k-r-lg); background: #fff; box-shadow: 0 24px 60px -32px rgba(11, 12, 62, 0.45); }
.nos-contact__booking[hidden] { display: none; }
.nos-contact__booking-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; background: var(--k-field); color: var(--k-on-dark); }
.nos-contact__booking-head h3 { margin: 0; font-size: clamp(1.2rem, 2vw, 1.55rem); color: inherit; }
.nos-contact__booking-head p { margin: 5px 0 0; color: var(--k-on-dark-2); }
.nos-contact__booking-head .k-btn { flex: none; min-height: 44px; }
.nos-contact__calendly { min-width: 320px; height: min(760px, 78vh); }
.nos-contact__calendly iframe { min-height: 100%; }
.nos-contact__booking-fallback { padding: 20px 22px; color: var(--k-on-light-2); }
.nos-contact__booking-fallback a { color: var(--k-field); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.nos-social { gap: 10px; }
.nos-social__icon { flex: none; width: 26px; height: 26px; color: var(--k-aqua); transition: transform var(--k-dur-hover) var(--k-ease-out); }
.nos-social:hover .nos-social__icon { transform: translateY(-2px) scale(1.06); }

/* ---------- Cierre ---------- */
.nos-final {
  position: relative;
  padding: clamp(104px, 13vw, 200px) 0;
  text-align: center;
  background:
    radial-gradient(50% 70% at 50% 110%, rgba(94, 237, 242, 0.28), transparent 70%),
    radial-gradient(40% 50% at 90% 0%, rgba(125, 227, 74, 0.12), transparent 70%),
    var(--k-field);
  color: var(--k-on-dark);
}
.nos-final__inner { display: flex; flex-direction: column; align-items: center; }
.nos-final__title { margin-top: 18px; font-size: clamp(2.3rem, 5vw, 4.6rem); line-height: 1.04; letter-spacing: -0.01em; max-width: 18ch; color: var(--k-on-dark); }
.nos-final__inner > p:not(.k-kicker) { margin: 26px 0 36px; max-width: 54ch; font-size: 1.12rem; color: var(--k-on-dark-2); }
.nos-final__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  .nos-hero__grid { grid-template-columns: 1fr; }
  .nos-hero__fan { max-width: 620px; width: 100%; margin-inline: auto; min-height: 0; }
  .nos-value { grid-template-columns: minmax(0, 1fr) 80px; }
  .nos-value p { grid-column: 1 / -1; grid-row: 2; }
  .nos-value__icon { grid-column: 2; grid-row: 1; width: 72px; }
  .nos-collage__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: auto; grid-auto-rows: 110px; }
  .nos-collage__copy { grid-column: 1 / -1; grid-row: 1; padding: 0 0 12px; }
  .nos-tile--a { grid-column: 1 / span 4; grid-row: auto / span 3; }
  .nos-tile--stat { grid-column: 5 / span 2; grid-row: auto / span 2; }
  .nos-tile--b { grid-column: 5 / span 2; grid-row: auto / span 1; }
  .nos-tile--c { grid-column: 1 / -1; grid-row: auto / span 3; }
  .nos-tile--icon { grid-column: 1 / span 2; grid-row: auto / span 2; }
  .nos-tile--d { grid-column: 3 / span 4; grid-row: auto / span 2; }
  .nos-tile--ops { grid-column: 1 / span 3; grid-row: auto / span 2; }
  .nos-tile--e { grid-column: 4 / span 3; grid-row: auto / span 2; border-radius: var(--k-r-lg); }
  .nos-tile--f { grid-column: 1 / -1; grid-row: auto / span 2; }
  .nos-tile--reach { grid-column: 1 / -1; grid-row: auto / span 1; }
  .nos-team__head { grid-template-columns: 1fr; }
  .nos-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nos-contact__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .nos-contact__booking-head { align-items: stretch; flex-direction: column; }
  .nos-contact__calendly { min-width: 0; height: 720px; }
  .nos-hero__actions, .nos-final__actions { flex-direction: column; align-items: stretch; }
  .nos-hero__fan { aspect-ratio: 1 / 1; }
  .nos-hero__chip { padding: 8px 12px; }
  .nos-hero__chip strong { font-size: 1.4rem; }
  .nos-hero__chip img { width: 32px; height: 32px; }
  .nos-value { grid-template-columns: minmax(0, 1fr); }
  .nos-value__icon { display: none; }
  .nos-value p { grid-column: 1 / -1; }
  .nos-collage__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 120px; }
  .nos-tile--a, .nos-tile--c, .nos-tile--d, .nos-tile--f, .nos-tile--reach { grid-column: 1 / -1; }
  .nos-tile--a { grid-row: auto / span 3; }
  .nos-tile--stat, .nos-tile--b, .nos-tile--icon, .nos-tile--ops, .nos-tile--e { grid-column: auto / span 1; grid-row: auto / span 2; }
  .nos-tile--c { grid-row: auto / span 2; }
  .nos-tile--c figcaption { position: static; border-radius: 0; }
  .nos-tile--c { display: flex; flex-direction: column; grid-row: auto / span 3; }
  .nos-tile--c picture { flex: 1; min-height: 0; }
  .nos-tile--reach { grid-row: auto / span 1; }
  .nos-team__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .nos-value::before, .nos-value__icon, figure.nos-tile img, .nos-person { transition: none; }
  .nos-person:hover { transform: none; }
}

/* ---------- Línea del tiempo 2024 → 2025 → 2026 ---------- */
.nos-timeline { padding: var(--k-section) 0; }
.nos-timeline__head { display: grid; gap: 16px; }
.nos-timeline__head .k-h2 { max-width: 20ch; }
.nos-timeline__lede { max-width: 62ch; font-size: 1.1rem; color: var(--k-on-light-2); }
/* V4 · Ruta de crecimiento: los hitos suben un escalón por año y la ruta
   se dibuja al entrar (data-growth + .is-in, ver nosotros.js). */
.nos-growth { position: relative; margin-top: clamp(48px, 6vw, 88px); }
.nos-growth__route { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 140px; overflow: visible; pointer-events: none; }
.nos-growth__base, .nos-growth__line { fill: none; vector-effect: non-scaling-stroke; }
.nos-growth__base { stroke: rgba(245, 247, 255, 0.16); stroke-width: 2; }
.nos-growth__line { stroke: var(--k-aqua); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
[data-growth].is-armed .nos-growth__line { stroke-dashoffset: 1; }
[data-growth].is-in .nos-growth__line { stroke-dashoffset: 0; transition: stroke-dashoffset 1800ms cubic-bezier(0.77, 0, 0.175, 1); }
.nos-timeline__list { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.nos-milestone { position: relative; padding-top: 34px; }
.nos-milestone:nth-child(1) { margin-top: 120px; }
.nos-milestone:nth-child(2) { margin-top: 60px; }
.nos-milestone__node { position: absolute; left: 0; top: 0; width: 16px; height: 16px; border-radius: 50%; background: #0E0F3C; border: 3px solid var(--k-aqua); box-shadow: 0 0 0 6px rgba(94, 237, 242, 0.12); }
.nos-milestone:last-child .nos-milestone__node { background: var(--k-aqua); }
.nos-milestone__photo {
  position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--k-r-lg);
  background: radial-gradient(80% 90% at 100% 0%, rgba(94, 237, 242, 0.22), transparent 65%), linear-gradient(150deg, #1A1C78 0%, #0E0F3C 60%, #0B0B16 100%);
  box-shadow: inset 0 0 0 1px rgba(245, 247, 255, 0.12), 0 30px 60px -36px rgba(0, 0, 0, 0.8);
}
.nos-milestone__photo svg, .nos-milestone__photo picture, .nos-milestone__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nos-slot__dots circle { fill: rgba(245, 247, 255, 0.82); }
.nos-slot__dots circle:nth-child(5n + 1) { fill: var(--k-aqua); }
.nos-slot__links line { stroke: rgba(94, 237, 242, 0.32); stroke-width: 1.4; }
.nos-milestone__year {
  position: absolute; left: 18px; bottom: 12px;
  font-family: var(--k-font-display); font-size: clamp(2.6rem, 4vw, 3.6rem); font-weight: 700; line-height: 1; color: var(--k-on-dark);
  text-shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
}
.nos-milestone__title { margin-top: 22px; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.05; color: var(--k-ink); }
.nos-milestone p { margin-top: 10px; max-width: 36ch; color: var(--k-on-light-2); }
@media (prefers-reduced-motion: no-preference) {
  [data-growth].is-armed .nos-milestone { opacity: 0; transform: translateY(24px); }
  [data-growth].is-in .nos-milestone { opacity: 1; transform: none; transition: opacity 600ms var(--k-ease-out), transform 800ms var(--k-ease-out); }
  [data-growth].is-in .nos-milestone:nth-child(1) { transition-delay: 150ms; }
  [data-growth].is-in .nos-milestone:nth-child(2) { transition-delay: 650ms; }
  [data-growth].is-in .nos-milestone:nth-child(3) { transition-delay: 1150ms; }
  [data-growth].is-in .nos-milestone__photo svg { animation: nos-slot-in 1400ms var(--k-ease-out) both; animation-delay: inherit; }
}
@keyframes nos-slot-in { from { transform: scale(1.08); } to { transform: none; } }

/* La ruta llega a "Capacitación y encuentros": mismo trazo, nodo receptor. */
.nos-route-in { display: flex; align-items: center; width: clamp(80px, 12vw, 160px); height: 16px; margin-bottom: 4px; }
.nos-route-in::before { content: ""; flex: 1; height: 3px; border-radius: 3px; background: linear-gradient(90deg, rgba(94, 237, 242, 0), var(--k-aqua)); }
.nos-route-in::after { content: ""; flex: none; width: 16px; height: 16px; border-radius: 50%; background: var(--k-aqua); box-shadow: 0 0 0 6px rgba(94, 237, 242, 0.14); }

@media (max-width: 860px) {
  .nos-growth__route { display: none; }
  .nos-timeline__list { grid-template-columns: 1fr; gap: 40px; padding-left: 30px; }
  .nos-timeline__list::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--k-aqua), rgba(94, 237, 242, 0.2)); }
  .nos-milestone, .nos-milestone:nth-child(1), .nos-milestone:nth-child(2) { margin-top: 0; padding-top: 0; }
  .nos-milestone__node { left: -30px; top: 6px; }
}
.nos-milestone .nos-milestone__fact { margin-top: 14px; display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(94, 237, 242, 0.1); color: var(--k-on-light); font-weight: 600; }
.nos-milestone__fact strong { font-family: var(--k-font-display); font-size: 1.4rem; color: var(--k-aqua); }
.nos-collage__link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; font-weight: 700; color: var(--k-aqua); }
.nos-collage__link::after { content: "→"; margin-left: 8px; transition: transform var(--k-dur-hover) var(--k-ease-out); }
@media (hover: hover) and (pointer: fine) { .nos-collage__link:hover::after { transform: translateX(4px); } }
