/* Fuentes alojadas en la propia web (sin llamadas a Google) */
@font-face{font-family:"Urbanist";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/urbanist-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/urbanist-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/urbanist-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Urbanist";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/urbanist-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

/* Nakor — tokens y estilos de texto del Design System de Nakor (tokens.json), para los artboards de la landing. */
:root, [data-theme="crudo"] {
  --crudo: #eeebe8; --carbon: #1a1917; --piedra: #c8c2ba; --verde-bosque: #2e5826; --verde-hoja: #638f23; --blanco: #ffffff; --negro: #000000;
  --fondo: var(--crudo); --fondo-contraste: var(--piedra); --tinta: var(--carbon); --tinta-suave: rgba(26, 25, 23, 0.72);
  --reticula: var(--piedra); --filete: var(--piedra); --borde: rgba(26, 25, 23, 0.72); --acento: var(--verde-bosque); --sobre-acento: var(--crudo);
  --font-sans: "Urbanist", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --esp-1: 4px; --esp-2: 8px; --esp-3: 12px; --esp-4: 16px; --esp-5: 24px; --esp-6: 32px; --esp-7: 48px; --esp-8: 64px; --esp-9: 96px; --esp-10: 128px;
  --radio-0: 0px;
  --ret-ancho-max: 1440px; --ret-margen: 48px; --ret-medianil: 24px; --ret-trazo: 1px; --ret-guion: 4px; --ret-hueco: 4px; --ret-cruz: 11px;
}
[data-theme="carbon"] {
  --fondo: var(--carbon); --fondo-contraste: var(--negro); --tinta: var(--crudo); --tinta-suave: var(--piedra);
  --reticula: rgba(200, 194, 186, 0.3); --filete: rgba(200, 194, 186, 0.3); --borde: var(--piedra); --acento: var(--verde-hoja); --sobre-acento: var(--carbon);
}
/* Banda Piedra: la retícula se oscurece un paso para seguir viéndose sobre Piedra. */
.banda { background: var(--piedra); --reticula: rgba(26, 25, 23, 0.28); --filete: rgba(26, 25, 23, 0.28); }

/* Guías de borde en el centro del medianil, como las interiores: el texto queda a la misma distancia de todas las líneas. */
.nk-ret-guia[style*="left: 0px"], .nk-ret-cruz[style*="left: 0px"] { margin-left: calc(var(--ret-medianil) / -2); }
.nk-ret-guia[style*="left: 100%"], .nk-ret-cruz[style*="left: 100%"] { margin-left: calc(var(--ret-medianil) / 2); }

/* Estilos de texto */
.etiqueta { margin: 0; font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--tinta-suave); }
.display { margin: 0; font-size: 64px; line-height: 68px; font-weight: 300; letter-spacing: -0.015em; text-wrap: balance; }
.titulo-1 { margin: 0; font-size: 44px; line-height: 50px; font-weight: 300; letter-spacing: -0.01em; text-wrap: balance; }
.titulo-3 { margin: 0; font-size: 22px; line-height: 30px; font-weight: 500; }
.texto-lg { margin: 0; font-size: 19px; line-height: 30px; max-width: 60ch; }
.texto { margin: 0; font-size: 16px; line-height: 26px; max-width: 65ch; }
.texto-sm { margin: 0; font-size: 14px; line-height: 22px; }
.ref { margin: 0; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tinta-suave); }
.dato-sm { margin: 0; font-family: var(--font-mono); font-size: 12px; line-height: 18px; color: var(--tinta-suave); }
.suave { color: var(--tinta-suave); }
@media (max-width: 720px) {
  .display { font-size: 42px; line-height: 46px; }
  .titulo-1 { font-size: 32px; line-height: 38px; }
}

/* Desplegables y casillas del formulario, con el mismo trazo que Campo */
.nk-campo select { font-family: var(--font-sans); font-size: 16px; line-height: 26px; color: var(--tinta); background: transparent; border: 0; border-bottom: 1px solid var(--borde); border-radius: 0; padding: var(--esp-2) 0; }
.nk-campo select:focus-visible { outline: 2px solid var(--acento); outline-offset: 3px; border-bottom-color: var(--acento); }
.nk-check { display: flex; gap: var(--esp-3); align-items: flex-start; font-size: 14px; line-height: 22px; color: var(--tinta-suave); }
.nk-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--acento); }
.nk-check a { color: var(--tinta); }

/* Nakor — estilos de componentes. Todos los valores salen de tokens.css. */

body { margin: 0; background: var(--fondo); color: var(--tinta); font-family: var(--font-sans); font-size: 16px; line-height: 26px; -webkit-font-smoothing: antialiased; }
[data-theme] { background: var(--fondo); color: var(--tinta); }
.nk-flecha, .nk-cruz { display: inline-block; flex: none; }

/* Logos por tema: .nk-tema-claro se ve en Crudo, .nk-tema-oscuro en Carbón (admite un nivel de anidación). */
.nk-tema-oscuro { display: none !important; }
[data-theme="carbon"] .nk-tema-claro { display: none !important; }
[data-theme="carbon"] .nk-tema-oscuro { display: block !important; }
[data-theme="carbon"] [data-theme="crudo"] .nk-tema-claro { display: block !important; }
[data-theme="carbon"] [data-theme="crudo"] .nk-tema-oscuro { display: none !important; }

/* ---------- Foco ---------- */
.nk-btn:focus-visible, .nk-cab a:focus-visible, .nk-cab-menu:focus-visible, .nk-campo input:focus-visible, .nk-campo textarea:focus-visible {
  outline: 2px solid var(--acento); outline-offset: 3px;
}

/* ---------- Retícula ---------- */
.nk-ret { position: relative; padding-left: max(var(--ret-margen), env(safe-area-inset-left, 0px)); padding-right: max(var(--ret-margen), env(safe-area-inset-right, 0px)); }
.nk-ret::before, .nk-ret::after { content: ""; position: absolute; left: 0; right: 0; height: var(--ret-trazo); display: none;
  background-image: linear-gradient(to right, var(--reticula) 0 var(--ret-guion), transparent var(--ret-guion));
  background-size: calc(var(--ret-guion) + var(--ret-hueco)) var(--ret-trazo); }
.nk-ret::before { top: 0; }
.nk-ret::after { bottom: 0; }
.nk-ret[data-filete="ambos"]::before, .nk-ret[data-filete="arriba"]::before,
.nk-ret[data-filete="ambos"]::after, .nk-ret[data-filete="abajo"]::after { display: block; }
.nk-ret-marco { position: relative; max-width: var(--ret-ancho-max); margin: 0 auto; padding-block: var(--esp-8); }
.nk-ret[data-relleno="sm"] .nk-ret-marco { padding-block: var(--esp-6); }
.nk-ret[data-relleno="lg"] .nk-ret-marco { padding-block: var(--esp-9); }
.nk-ret[data-relleno="ninguno"] .nk-ret-marco { padding-block: 0; }
.nk-ret-capa { position: absolute; inset: 0; pointer-events: none; }
.nk-ret-guia { position: absolute; top: 0; bottom: 0; width: var(--ret-trazo); transform: translateX(-50%);
  background-image: linear-gradient(to bottom, var(--reticula) 0 var(--ret-guion), transparent var(--ret-guion));
  background-size: var(--ret-trazo) calc(var(--ret-guion) + var(--ret-hueco)); }
.nk-ret-cruz { position: absolute; width: var(--ret-cruz); height: var(--ret-cruz); color: var(--filete); transform: translate(-50%, -50%); }
.nk-ret-rejilla { position: relative; display: grid; grid-template-columns: repeat(var(--nk-cols, 12), minmax(0, 1fr)); column-gap: var(--ret-medianil); row-gap: var(--esp-6); }
.nk-celda { grid-column: var(--nk-desde, 1) / var(--nk-hasta, -1); min-width: 0; }
@media (max-width: 720px) {
  .nk-ret { padding-left: max(var(--esp-4), env(safe-area-inset-left, 0px)); padding-right: max(var(--esp-4), env(safe-area-inset-right, 0px)); }
  .nk-ret-guia[data-interior], .nk-ret-cruz-int { display: none; }
  .nk-celda { grid-column: 1 / -1; }
  .nk-ret-marco { padding-block: var(--esp-7); }
}

/* ---------- Botón ---------- */
.nk-btn { display: inline-flex; align-items: center; gap: var(--esp-3); height: 44px; padding: 0 var(--esp-5); box-sizing: border-box;
  font-family: var(--font-sans); font-size: 14px; font-weight: 500; letter-spacing: 0.04em; line-height: 1; text-decoration: none; white-space: nowrap;
  border: var(--ret-trazo) solid transparent; border-radius: var(--radio-0); cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.nk-btn-primario { background: var(--tinta); color: var(--fondo); border-color: var(--tinta); }
.nk-btn-primario:hover { background: var(--acento); border-color: var(--acento); color: var(--sobre-acento); }
.nk-btn-secundario { background: transparent; color: var(--tinta); border-color: var(--borde); }
.nk-btn-secundario:hover { border-color: var(--tinta); }
.nk-btn-texto { height: auto; padding: 0 0 var(--esp-1); background: none; color: var(--tinta); border: 0; border-bottom: var(--ret-trazo) solid var(--borde); }
.nk-btn-texto:hover { color: var(--acento); border-bottom-color: var(--acento); }
.nk-btn:disabled { cursor: not-allowed; opacity: .45; }
@media (prefers-reduced-motion: reduce) { .nk-btn { transition: none; } }

/* ---------- Cabecera ---------- */
.nk-cab { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--esp-6); height: 80px; box-sizing: border-box;
  padding-left: max(var(--ret-margen), env(safe-area-inset-left, 0px)); padding-right: max(var(--ret-margen), env(safe-area-inset-right, 0px)); }
.nk-cab::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: var(--ret-trazo);
  background-image: linear-gradient(to right, var(--reticula) 0 var(--ret-guion), transparent var(--ret-guion));
  background-size: calc(var(--ret-guion) + var(--ret-hueco)) var(--ret-trazo); }
.nk-cab-logo { display: block; line-height: 0; }
.nk-cab-logo img { height: 44px; width: auto; }
.nk-cab-nav { display: flex; gap: var(--esp-6); justify-content: center; }
.nk-cab-nav a { font-size: 14px; line-height: 22px; color: var(--tinta-suave); text-decoration: none; padding-block: var(--esp-1); border-bottom: var(--ret-trazo) solid transparent; }
.nk-cab-nav a:hover { color: var(--tinta); }
.nk-cab-nav a[aria-current="page"] { color: var(--tinta); border-bottom-color: var(--acento); }
.nk-cab-acciones { display: flex; align-items: center; gap: var(--esp-5); }
.nk-cab-idioma { display: flex; gap: var(--esp-2); font-family: var(--font-mono); font-size: 12px; line-height: 18px; color: var(--tinta-suave); }
.nk-cab-idioma a { color: var(--tinta-suave); text-decoration: none; }
.nk-cab-idioma a[aria-current="true"] { color: var(--tinta); }
.nk-cab-menu { display: none; background: none; border: var(--ret-trazo) solid var(--borde); border-radius: var(--radio-0); height: 40px; padding: 0 var(--esp-4);
  font: 500 14px/1 var(--font-sans); letter-spacing: .04em; color: var(--tinta); cursor: pointer; }
@media (max-width: 900px) {
  .nk-cab { grid-template-columns: auto 1fr; padding-left: max(var(--esp-4), env(safe-area-inset-left, 0px)); padding-right: max(var(--esp-4), env(safe-area-inset-right, 0px)); height: 64px; }
  .nk-cab-nav, .nk-cab-cta { display: none; }
  .nk-cab-acciones { justify-content: flex-end; }
  .nk-cab-menu { display: inline-block; }
  .nk-cab-logo img { height: 28px; }
}

/* ---------- Etiqueta ---------- */
.nk-etq { display: inline-block; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--tinta-suave); padding: 3px var(--esp-2); border: var(--ret-trazo) solid var(--filete); border-radius: var(--radio-0); }
.nk-etq-acento { color: var(--acento); border-color: var(--acento); }

/* ---------- Indicador ---------- */
.nk-ind { display: flex; flex-direction: column; gap: var(--esp-3); }
.nk-ind p { margin: 0; }
.nk-ind-cifra { font-family: var(--font-mono); font-size: 56px; line-height: 56px; font-weight: 300; letter-spacing: -0.02em; color: var(--tinta); font-variant-numeric: tabular-nums; }
.nk-ind-unidad { font-size: 20px; letter-spacing: 0; margin-left: var(--esp-2); color: var(--tinta-suave); }
.nk-ind-texto { font-size: 14px; line-height: 22px; color: var(--tinta-suave); max-width: 24ch; }

/* ---------- Proceso ---------- */
.nk-proc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--esp-6) var(--ret-medianil); }
.nk-proc-paso { position: relative; padding-top: var(--esp-5); min-width: 0; }
.nk-proc-paso::before { content: ""; position: absolute; left: 0; right: calc(var(--ret-medianil) * -1); top: 0; height: var(--ret-trazo);
  background-image: linear-gradient(to right, var(--reticula) 0 var(--ret-guion), transparent var(--ret-guion));
  background-size: calc(var(--ret-guion) + var(--ret-hueco)) var(--ret-trazo); }
.nk-proc-cruz { position: absolute; top: 0; left: 0; transform: translate(-50%, -50%); color: var(--filete); }
.nk-proc-num { display: block; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .08em; color: var(--tinta-suave); margin-bottom: var(--esp-3); }
.nk-proc-titulo { margin: 0 0 var(--esp-2); font-size: 22px; line-height: 30px; font-weight: 500; color: var(--tinta); }
.nk-proc-texto { margin: 0; font-size: 14px; line-height: 22px; color: var(--tinta-suave); }
.nk-proc-actual .nk-proc-cruz, .nk-proc-actual .nk-proc-num { color: var(--acento); }

/* ---------- Imagen ---------- */
.nk-img { margin: 0; display: flex; flex-direction: column; gap: var(--esp-2); min-width: 0; }
.nk-img-marco { position: relative; width: 100%; max-width: 100%; overflow: hidden; background: var(--fondo); border-radius: var(--radio-0); }
.nk-img-marco img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nk-img-vacia { position: absolute; inset: 0; box-shadow: inset 0 0 0 var(--ret-trazo) var(--reticula); display: flex; align-items: flex-end; padding: var(--esp-3);
  background-image: repeating-linear-gradient(135deg, var(--reticula) 0 1px, transparent 1px 9px); }
.nk-img-vacia span { font-family: var(--font-mono); font-size: 11px; line-height: 16px; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-suave); background: var(--fondo); padding: 2px var(--esp-2); }
.nk-img figcaption { display: flex; gap: var(--esp-3); font-family: var(--font-mono); font-size: 12px; line-height: 18px; color: var(--tinta-suave); }
.nk-img-ref { color: var(--tinta); }

/* ---------- Tarjeta de proyecto ---------- */
.nk-proy { display: flex; flex-direction: column; gap: var(--esp-4); min-width: 0; }
.nk-proy-media { position: relative; }
.nk-proy-indice { position: absolute; top: 0; right: 0; background: var(--tinta); color: var(--fondo); font-family: var(--font-mono); font-weight: 300; font-size: 28px; line-height: 28px; padding: var(--esp-3); }
.nk-proy-indice small { display: block; font-size: 11px; line-height: 16px; font-weight: 400; margin-top: var(--esp-1); }
.nk-proy-cuerpo { display: flex; flex-direction: column; align-items: flex-start; gap: var(--esp-2); }
.nk-proy-titulo { margin: var(--esp-1) 0 0; font-size: 22px; line-height: 30px; font-weight: 500; color: var(--tinta); text-wrap: balance; }
.nk-proy-meta { margin: 0; font-family: var(--font-mono); font-size: 12px; line-height: 18px; color: var(--tinta-suave); }
.nk-proy .nk-tabla { align-self: stretch; margin-block: var(--esp-2); }

/* ---------- Tabla técnica ---------- */
.nk-tabla { min-width: 0; }
.nk-tabla-titulo { margin: 0; padding-bottom: var(--esp-3); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--tinta); border-bottom: var(--ret-trazo) solid var(--tinta); }
.nk-tabla dl { margin: 0; }
.nk-tabla-fila { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--esp-4); padding: var(--esp-3) 0; border-bottom: var(--ret-trazo) solid var(--filete); }
.nk-tabla dt { font-size: 14px; line-height: 22px; color: var(--tinta-suave); }
.nk-tabla dd { margin: 0; font-family: var(--font-mono); font-size: 14px; line-height: 22px; color: var(--tinta); overflow-wrap: anywhere; }
.nk-tabla-nota { display: block; font-size: 12px; line-height: 18px; color: var(--tinta-suave); margin-top: 2px; }
.nk-tabla-compacta .nk-tabla-fila { padding: var(--esp-2) 0; }
.nk-tabla-compacta dt, .nk-tabla-compacta dd { font-size: 12px; line-height: 18px; }

/* ---------- Cotas ---------- */
.nk-cotas { margin: 0; display: flex; flex-direction: column; gap: var(--esp-3); }
.nk-cotas-fila { display: flex; flex-wrap: wrap; gap: var(--esp-2) var(--esp-6); }
.nk-cota { font-family: var(--font-mono); font-size: 56px; line-height: 56px; font-weight: 300; letter-spacing: -0.02em; color: var(--tinta); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nk-cota sup { font-size: 12px; line-height: 1; font-weight: 500; letter-spacing: .08em; vertical-align: top; position: relative; top: 6px; margin-left: var(--esp-1); color: var(--tinta-suave); }
.nk-cotas figcaption { font-family: var(--font-mono); font-size: 12px; line-height: 18px; color: var(--tinta-suave); }

/* ---------- Cajetín ---------- */
.nk-caj { display: flex; border: var(--ret-trazo) solid var(--tinta); background: var(--fondo); min-width: 0; }
.nk-caj-marca { display: flex; align-items: center; justify-content: center; padding: var(--esp-3) var(--esp-4); border-right: var(--ret-trazo) solid var(--tinta); }
.nk-caj-marca img { height: 40px; width: auto; display: block; }
.nk-caj-campos { flex: 1; margin: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); min-width: 0; }
.nk-caj-celda { padding: var(--esp-2) var(--esp-3); border-right: var(--ret-trazo) solid var(--filete); border-bottom: var(--ret-trazo) solid var(--filete); min-width: 0; }
.nk-caj dt { font-family: var(--font-mono); font-size: 10px; line-height: 14px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-suave); }
.nk-caj dd { margin: 2px 0 0; font-family: var(--font-mono); font-size: 13px; line-height: 20px; color: var(--tinta); overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .nk-caj { flex-direction: column; }
  .nk-caj-marca { border-right: 0; border-bottom: var(--ret-trazo) solid var(--tinta); justify-content: flex-start; }
  .nk-caj-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nk-caj-celda { grid-column: auto !important; }
}

/* ---------- Campo ---------- */
.nk-campo { display: flex; flex-direction: column; gap: var(--esp-2); min-width: 0; }
.nk-campo label { font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-suave); }
.nk-campo-opc { letter-spacing: .04em; text-transform: none; font-weight: 400; }
.nk-campo input, .nk-campo textarea { font-family: var(--font-sans); font-size: 16px; line-height: 26px; color: var(--tinta); background: transparent;
  border: 0; border-bottom: var(--ret-trazo) solid var(--borde); border-radius: var(--radio-0); padding: var(--esp-2) 0; resize: vertical; }
.nk-campo input::placeholder, .nk-campo textarea::placeholder { color: var(--tinta-suave); }
.nk-campo input:focus, .nk-campo textarea:focus { border-bottom-color: var(--acento); }
.nk-campo-ayuda { margin: 0; font-size: 13px; line-height: 20px; color: var(--tinta-suave); }
.nk-campo-error input, .nk-campo-error textarea { border-bottom: 2px solid var(--tinta); padding-bottom: calc(var(--esp-2) - 1px); }
.nk-campo-error .nk-campo-ayuda { color: var(--tinta); }
.nk-campo-ayuda strong { font-weight: 600; margin-right: var(--esp-1); }

/* Landing */
body{margin:0;background:#EEEBE8;color:#1A1917;font-family:"Urbanist","Helvetica Neue",Arial,sans-serif}
a{color:#1A1917}a:hover{color:#2E5826}
html{scroll-padding-top:96px}
.menu-fijo{position:sticky;top:0;z-index:50;background:#EEEBE8}
.menu-movil-btn,.menu-movil{display:none}
@keyframes menu-entra{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (max-width:900px){html{scroll-padding-top:72px}.menu-fijo .nk-cab-menu{display:none !important}.menu-fijo .nk-cab-acciones{margin-right:88px}.menu-movil-btn{display:inline-flex;align-items:center;position:absolute;top:12px;right:16px;z-index:2;height:40px;padding:0 16px;background:none;border:1px solid rgba(26,25,23,.72);color:#1A1917;font:500 14px/1 "Urbanist","Helvetica Neue",Arial,sans-serif;letter-spacing:.04em;cursor:pointer}.menu-movil{display:flex;flex-direction:column;padding:8px 16px 24px;background:#EEEBE8;border-bottom:1px solid #C8C2BA;animation:menu-entra .25s ease both}.menu-movil-enlace{display:block;padding:14px 0;font-size:20px;line-height:28px;font-weight:300;color:#1A1917;text-decoration:none;border-bottom:1px dashed #C8C2BA}}
.menu-movil-btn:focus-visible,.menu-movil-enlace:focus-visible{outline:2px solid #2E5826;outline-offset:3px}
.gal-pista{position:relative;overflow:hidden;padding-top:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.gal-pista{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.gal-pista.arrastrando{cursor:grabbing}
.gal-tren{display:flex;gap:24px;width:max-content;will-change:transform}
.gal-foto img{-webkit-user-drag:none;pointer-events:none}
.gal-item{margin:0;flex:none;display:flex;flex-direction:column;gap:12px}
.gal-foto{height:360px;overflow:hidden;background:#C8C2BA}
.gal-foto img{display:block;height:360px;width:auto;filter:saturate(.9);transition:transform 1.2s cubic-bezier(.2,.6,.3,1),filter .6s ease}
.gal-item:hover .gal-foto img{transform:scale(1.05);filter:saturate(1)}
.gal-item figcaption{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:rgba(26,25,23,.72)}
.ciclo{position:relative;width:100%;max-width:440px;aspect-ratio:1/1;margin:40px auto}
.ciclo-aro{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.ciclo-base{fill:none;stroke:rgba(26,25,23,.35);stroke-width:1;stroke-dasharray:3 6}
.ciclo-avance{fill:none;stroke:#2E5826;stroke-width:2;transition:stroke-dasharray 1s cubic-bezier(.2,.6,.3,1)}
.ciclo-nodo{position:absolute;width:56px;height:56px;margin:-28px 0 0 -28px;padding:0;border-radius:50%;border:1px solid rgba(26,25,23,.72);background:#EEEBE8;color:#1A1917;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;font-weight:500;letter-spacing:.08em;cursor:pointer;transition:background .4s ease,color .4s ease,border-color .4s ease,transform .4s ease}
.ciclo-nodo:hover{transform:scale(1.08)}
.ciclo-nodo.hecho{background:#1A1917;border-color:#1A1917;color:#EEEBE8}
.ciclo-nodo.activo{background:#2E5826;border-color:#2E5826;color:#EEEBE8;transform:scale(1.18)}
.ciclo-nodo:focus-visible,.flecha-btn:focus-visible{outline:2px solid #2E5826;outline-offset:3px}
.ciclo-t{position:absolute;inset:0;pointer-events:none}
.ciclo-nodo.activo .ciclo-t{animation:ciclo-tiempo 8s linear forwards}
#proceso:hover .ciclo-t,#process:hover .ciclo-t,.ciclo:not(.en-vista) .ciclo-t{animation-play-state:paused}
@keyframes ciclo-tiempo{from{opacity:1}to{opacity:1}}
.ciclo-centro{position:absolute;inset:24%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
.ciclo-num{margin:0;font-size:96px;line-height:96px;font-weight:300;letter-spacing:-.03em}
.flecha-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid rgba(26,25,23,.72);background:transparent;color:#1A1917;cursor:pointer;transition:background .25s ease,color .25s ease}
.flecha-btn:hover{background:#1A1917;color:#EEEBE8}
.resp-cifra{margin:0;display:flex;align-items:flex-start;gap:16px;font-size:240px;line-height:.82;font-weight:300;letter-spacing:-.05em}
.resp-unidad{padding-top:20px;font-size:14px;line-height:20px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#C8C2BA}
.cadena{list-style:none;margin:56px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:40px 24px}
.cadena li{position:relative;flex:1 1 220px;display:flex;flex-direction:column;gap:12px;padding-top:24px;border-top:1px solid rgba(200,194,186,.3)}
.cadena li::before{content:"";position:absolute;top:-1px;left:0;width:32px;height:1px;background:#638F23;transition:width .8s cubic-bezier(.2,.6,.3,1)}
.cadena li:hover::before{width:100%}
@media (max-width:720px){.gal-foto,.gal-foto img{height:240px}.resp-cifra{font-size:140px}.ciclo-num{font-size:64px;line-height:64px}}
@media (prefers-reduced-motion: reduce){.gal-foto img,.ciclo-avance,.ciclo-nodo,.cadena li::before{transition:none}.ciclo-nodo.activo .ciclo-t{animation:none}}

/* Web publicada: extras */
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%}
.saltar{position:absolute;left:-9999px;top:0;z-index:100;background:#1A1917;color:#EEEBE8;padding:12px 16px}
.saltar:focus{left:16px;top:16px}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-estado{margin:0;font-size:14px;line-height:22px;min-height:22px}
.form-estado.error{color:#8A1F11}
.form-ok{display:flex;flex-direction:column;gap:16px;padding:32px 0}
.nk-campo select{width:100%}
.nk-campo input:invalid:not(:placeholder-shown){border-bottom-color:#8A1F11}
.rgpd{font-size:12px;line-height:18px;color:rgba(26,25,23,.72)}
.rgpd summary{cursor:pointer;font-weight:500;color:#1A1917;padding:8px 0}
.rgpd dl{margin:8px 0 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:6px 16px}
.rgpd dt{font-weight:500}.rgpd dd{margin:0}
.nk-btn[disabled]{opacity:.5;cursor:wait}
.legal{max-width:760px;margin:0 auto;padding:64px 16px}
.legal h1{font-weight:300;font-size:44px;line-height:50px}
.legal h2{font-weight:500;font-size:22px;line-height:30px;margin-top:40px}

[hidden]{display:none !important}
@media (max-width:720px){.ciclo{max-width:calc(100% - 72px)}}
/* Galería: cada foto con su proporción fija; el pie no ensancha la foto */
.gal-foto{aspect-ratio:var(--r);height:360px;width:auto}
.gal-foto img{max-width:none;width:100%;height:100%;object-fit:cover}
.gal-item figcaption{width:0;min-width:100%}
@media (max-width:720px){.gal-foto{height:240px}.gal-foto img{height:100%}}
