/* Dirección D · Cinética (1/2): marca, cabecera, menú, arranque y capítulos de scroll. */
body.dir-d {
  --bg: #EFECE6;
  --bg-alt: #E4E0D8;
  --header-bg: #EFECE6;
  --muted: #4A4447;
  --head-weight: 800;
  --head-track: -.03em;
  --cond: 72%;
}
.d-condensada, .d-titular, .d-lista-nombre, .d-cabecera h2, .d-metodo h2, .d-panel h3, .d-paso h3,
.d-plataforma h2, .d-casos h2, .d-equipo h2, .d-contacto h2, .d-retos-linea, .d-expande-texto h2 {
  font-stretch: var(--cond); font-weight: 800; letter-spacing: -.02em;
}

/* Cabecera que se esconde al bajar y vuelve al subir */
.cabecera-d { transition: transform .45s var(--ease), background-color .3s, color .3s; }
.cabecera-d.is-oculta { transform: translateY(-100%); }
.dir-d .menu-toggle { display: inline-flex; }
.dir-d .platform-link { color: var(--ink); }
.dir-d .platform-link:hover { background: rgba(25, 21, 23, .07); }
.dir-d .header-cta { --btn-bg: var(--ink); --btn-bg-hover: #000; }
.brand .logo-oscuro { display: none; }
.menu-open .cabecera-d { background: var(--ink); color: #fff; border-color: rgba(255, 255, 255, .12); }
.menu-open .cabecera-d .logo-claro { display: none; }
.menu-open .cabecera-d .logo-oscuro { display: block; }
.menu-open .cabecera-d .platform-link { color: var(--teal-light); }

/* Menú a pantalla completa */
.menu-d {
  position: fixed; inset: 0; z-index: 45; overflow-y: auto; visibility: hidden;
  padding: calc(var(--menu-top, 76px) + 24px) 0 48px; background: var(--ink); color: #fff;
  clip-path: inset(0 0 100% 0); transition: clip-path .7s var(--ease-io), visibility 0s .7s; --focus: var(--yellow);
}
.menu-open .menu-d { visibility: visible; clip-path: inset(0 0 0 0); transition: clip-path .7s var(--ease-io); }
.menu-d-grid { display: grid; gap: 48px; }
.menu-d-principal a {
  display: inline-block; padding: 2px 0; color: #fff; text-decoration: none;
  font: 800 clamp(3rem, 9vw, 7.5rem)/.95 var(--font-head); font-stretch: var(--cond); letter-spacing: -.02em;
  transform: translateY(40px); opacity: 0; transition: transform .7s var(--ease), opacity .7s, color .2s;
}
.menu-open .menu-d-principal a { transform: none; opacity: 1; transition-delay: calc(var(--i) * 60ms + 250ms), calc(var(--i) * 60ms + 250ms), 0s; }
.menu-d-principal a:hover { color: var(--teal-light); }
.menu-d-sol h2 { margin-bottom: 16px; color: var(--teal-light); font: 700 1rem/1.3 var(--font-body); letter-spacing: 0; }
.menu-d-sol ul { margin-bottom: 28px; border-top: 1px solid rgba(255, 255, 255, .2); }
.menu-d-sol a { display: grid; gap: 2px; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, .2); color: #fff; text-decoration: none; }
.menu-d-sol span { color: #CFCACC; font-size: .9375rem; }
.menu-d-sol a:hover strong { color: var(--teal-light); }
@media (min-width: 960px) { .menu-d-grid { grid-template-columns: 1.4fr 1fr; gap: 80px; align-items: start; } }

/* Arranque: titular gigante con imágenes dentro de las líneas */
.d-hero { padding: 32px 0 48px; }
.d-titular { margin: 0 0 36px; font-size: clamp(2.3rem, 9.3vw, 9.6rem); line-height: .9; }
.con-movimiento .d-titular[data-reveal] { opacity: 1; transform: none; }
.d-titular .linea { display: block; overflow: hidden; padding: .03em 0 .07em; margin-bottom: -.06em; }
.d-titular .linea > span { display: block; }
@media (min-width: 720px) { .d-titular .linea > span { white-space: nowrap; } }
.con-movimiento .d-titular .linea > span { transform: translateY(108%); transition: transform 1.1s var(--ease); transition-delay: calc(var(--l) * 110ms + 120ms); }
.con-movimiento .d-titular.is-in .linea > span { transform: none; }
.pildora {
  display: inline-block; width: 1.75em; height: .74em; margin: 0 .04em; vertical-align: -.03em;
  border-radius: 999px; object-fit: cover; object-position: 50% 30%;
}
.pildora-pantalla { object-position: 0 0; background: #fff; }
.con-movimiento .pildora { width: 0; transition: width 1.1s var(--ease) .9s; }
.con-movimiento .is-in .pildora { width: 1.75em; }
.d-hero-pie { display: grid; gap: 24px; align-items: end; }
.d-hero .lead { max-width: 42ch; margin: 0; font-size: clamp(1.1rem, 1.5vw, 1.35rem); line-height: 1.45; }
.d-desliza { display: none; align-items: center; gap: 12px; margin: 0; font-weight: 700; font-size: .875rem; }
.d-desliza span { position: relative; width: 2px; height: 44px; overflow: hidden; background: rgba(25, 21, 23, .15); }
.d-desliza span::after { content: ""; position: absolute; left: 0; top: -50%; width: 100%; height: 50%; background: var(--ink); animation: desliza 1.8s var(--ease-io) infinite; }
@keyframes desliza { to { top: 100%; } }
@media (min-width: 960px) { .d-hero-pie { grid-template-columns: 1.1fr 1fr auto; gap: 48px; } .d-desliza { display: flex; } }

/* Clientes en marquesina */
.d-clientes { padding: 36px 0 44px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.d-clientes h2 { margin-bottom: 24px; font: 700 1rem/1.3 var(--font-body); letter-spacing: 0; }
.d-clientes .marquesina { --dur: 36s; }
.d-clientes .marquesina-pista { gap: 72px; padding-right: 72px; flex-wrap: nowrap; }
.d-clientes .logo-sello { height: 64px; }
html:not(.con-movimiento) .d-clientes .marquesina-pista { flex-wrap: wrap; gap: 24px 40px; padding: 0 var(--gutter); }

/* Foto que se expande hasta ocupar la pantalla */
.d-expande-sticky { position: relative; height: 100vh; overflow: hidden; }
.con-movimiento .d-expande { height: 240vh; }
.con-movimiento .d-expande-sticky { position: sticky; top: 0; }
.d-expande img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  clip-path: inset(calc((1 - min(var(--p) * 1.7, 1)) * 22%) calc((1 - min(var(--p) * 1.7, 1)) * 30%) round calc((1 - min(var(--p) * 1.7, 1)) * 40px));
  transform: scale(calc(1.2 - min(var(--p) * 1.7, 1) * .2));
}
.d-expande-sticky::after { content: ""; position: absolute; inset: 0; background: rgba(25, 21, 23, .42); opacity: clamp(0, calc((var(--p) - .45) * 3), 1); }
.d-expande-texto { position: absolute; left: 0; right: 0; bottom: 9vh; z-index: 2; color: #fff; }
.d-expande-texto h2 {
  max-width: 11ch; font-size: clamp(3rem, 9vw, 9rem); line-height: .9;
  opacity: clamp(0, calc((var(--p) - .5) * 4), 1);
  transform: translateY(calc((1 - clamp(0, calc((var(--p) - .5) * 4), 1)) * 60px));
}

/* Párrafo que se enciende al bajar */
.d-manifiesto-sticky { display: flex; align-items: center; min-height: 100vh; padding: 96px 0; }
.con-movimiento .d-manifiesto { height: 210vh; }
.con-movimiento .d-manifiesto-sticky { position: sticky; top: 0; }
.d-relleno { margin: 0; font: 700 clamp(2rem, 4.6vw, 4.5rem)/1.08 var(--font-head); letter-spacing: -.035em; }

/* Retos que se desplazan con el scroll */
.d-retos { overflow: hidden; padding: 72px 0 64px; background: var(--teal); color: #fff; --focus: #fff; }
.d-retos-linea { margin: 0; white-space: nowrap; font-size: clamp(3rem, 8.4vw, 8.5rem); line-height: 1.02; will-change: transform; }
.d-retos-linea i { font-style: normal; color: var(--yellow); margin: 0 .2em; }
.d-retos-a { transform: translate3d(calc(var(--p) * -42%), 0, 0); }
.d-retos-b { color: var(--ink); transform: translate3d(calc(-42% + var(--p) * 42%), 0, 0); }
.d-retos-b i { color: #fff; }
.d-retos-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; margin-top: 48px; }
.d-retos-cta p { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2.2rem); font-weight: 700; }
