/* efecto — footer */
.efx-footer { position: relative; padding-top: var(--space-xl); color: var(--paper); }
.efx-footer__main { display: grid; gap: clamp(3rem, 8vw, 7rem); }
.efx-footer__title { font-size: var(--step-5); margin: .45em 0 .5em; max-width: 14ch; }
.efx-footer__mailrow { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; }
.efx-footer__mail { position: relative; display: inline-flex; align-items: baseline; min-height: 44px; gap: .25em; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.7rem, 1rem + 4.2vw, 4.6rem); letter-spacing: -0.04em; line-height: 1.05; padding-bottom: .1em; word-break: break-all; }
.efx-footer__mail::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: .07em; background: var(--paper); transform-origin: left; transition: transform .8s var(--ease-out), background .3s; }
.efx-footer__mail:hover::after, .efx-footer__mail:focus-visible::after { background: var(--accent); transform: scaleX(1.0); }
.efx-footer__mail-txt { transition: color .4s var(--ease-out); }
.efx-footer__mail:hover .efx-footer__mail-txt { color: var(--accent); }
.efx-footer__mail-arrow { font-size: .6em; transition: transform .6s var(--ease-out); color: var(--accent); }
.efx-footer__mail:hover .efx-footer__mail-arrow { transform: translate(.15em, -.15em); }

.efx-copy { display: inline-flex; align-items: center; gap: .6rem; padding: .7em 1em; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--paper-2); min-height: 44px; box-shadow: inset 0 0 0 1px var(--line-strong); transition: color .3s, background .3s, box-shadow .3s; }
.efx-copy:hover, .efx-copy:focus-visible { background: var(--paper); color: var(--ink); box-shadow: none; }
.efx-copy__ico { position: relative; width: 11px; height: 11px; }
.efx-copy__ico i { position: absolute; width: 7px; height: 7px; background: currentColor; transition: transform .4s var(--ease-out); }
.efx-copy__ico i:first-child { left: 0; top: 0; opacity: .55; } .efx-copy__ico i:last-child { right: 0; bottom: 0; }
.efx-copy:hover .efx-copy__ico i:first-child { transform: translate(-1px, -1px); } .efx-copy:hover .efx-copy__ico i:last-child { transform: translate(1px, 1px); }
.efx-copy.is-done { background: var(--lime); color: var(--ink); box-shadow: none; }
.efx-footer__btns { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: clamp(1.6rem, 3vw, 2.6rem); }

.efx-footer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 4fr); gap: clamp(1.5rem, 3vw, 3rem); padding-top: clamp(1.6rem, 3vw, 2.4rem); border-top: 1px solid var(--line); }
.efx-footer__logo { margin: 0 0 1rem; display: inline-flex; align-items: center; gap: .65rem; }
.efx-footer__logo .display { font-size: 1.9rem; line-height: 1; }
.efx-footer__logo .efx-logo__mark { font-size: 20px; }
.efx-footer__tag { margin: 0; color: var(--paper-2); max-width: 28ch; font-size: var(--step--1); line-height: 1.5; }
.efx-footer__nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.efx-footer__h { margin: 0 0 .6rem; color: var(--muted); font-weight: 400; }
.efx-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; font-size: var(--step-0); }
.efx-footer__col a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; }
.efx-footer [hidden] { display: none !important; }

/* teaser de la huella (sin dibujo todavía) */
.efx-footer__teaser-wrap { padding-top: clamp(1.5rem, 4vw, 2.5rem); }
.efx-footer__teaser { display: inline-flex; align-items: center; gap: .7em; min-height: 44px; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--paper-2); box-shadow: inset 0 -1px 0 var(--line-strong); transition: color .3s, box-shadow .3s; }
.efx-footer__teaser:hover, .efx-footer__teaser:focus-visible { color: var(--lime); box-shadow: inset 0 -1px 0 var(--lime); }
.efx-footer__teaser-dot { width: .6em; height: .6em; background: var(--accent); box-shadow: .6em .6em 0 -.12em var(--cobalt); margin-right: .5em; }
/* tu huella: el dibujo del lab reaparece como figura del pie (solo si existe) */
.efx-footer__huella { position: relative; min-height: 62vh; display: grid; align-items: center; margin-top: clamp(2rem, 5vw, 4rem); }
.efx-footer__huella-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.efx-footer__huella-cv { grid-column: 1; grid-row: 1; justify-self: center; align-self: center; width: min(320px, 70%); height: auto; image-rendering: pixelated; }
.efx-footer__huella-cv[hidden] { display: none; }
.efx-footer__huella-txt { grid-column: 2; grid-row: 1; display: grid; gap: .9rem; justify-items: start; }
.efx-footer__huella-title { margin: 0; font-size: var(--step-4); line-height: .98; }
.efx-footer__huella-p { margin: 0; color: var(--paper-2); max-width: 38ch; }
.efx-footer__huella-btns { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin-top: .6rem; }
.efx-huella-clear { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); min-height: 44px; padding: 0 .2rem; text-decoration: underline; text-underline-offset: .3em; transition: color .3s; }
.efx-huella-clear:hover, .efx-huella-clear:focus-visible { color: var(--accent); }

/* escenario del wordmark voxel */
.efx-footer__stage { position: relative; height: clamp(260px, calc(50vh - 40px), 520px); margin-top: 0;   /* alto suficiente para que cruce el centro del viewport al final del scroll (activa la figura) */ display: grid; place-items: end center; overflow: hidden; }
.efx-footer__word { display: none; font-family: var(--font-display); font-weight: 800; font-size: 26vw; line-height: .78; letter-spacing: -0.07em; color: var(--paper); padding-bottom: .05em; white-space: nowrap; user-select: none; }
.no-webgl .efx-footer__word { display: block; padding-inline: var(--gutter); background: linear-gradient(90deg, var(--accent) 0 50.4%, var(--cobalt) 50.4% 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }

.efx-footer__bar { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: .8rem 2rem; padding: 1.1rem 0 calc(1.3rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); color: var(--muted); }
.efx-footer__bar p { margin: 0; }
.efx-footer__made { color: var(--paper-2); }
.efx-footer__made [data-cubes] { color: var(--accent); font-variant-numeric: tabular-nums; }
.efx-top { display: inline-flex; align-items: center; gap: .7rem; min-height: 44px; font: inherit; text-transform: uppercase; letter-spacing: inherit; color: var(--paper); padding: .5rem 0; }
.efx-top__ico { position: relative; width: 26px; height: 26px; display: grid; place-items: center; overflow: hidden; box-shadow: inset 0 0 0 1px var(--line-strong); transition: background .4s var(--ease-out), box-shadow .4s; }
.efx-top__ico i { position: relative; width: 8px; height: 8px; border-left: 2px solid currentColor; border-top: 2px solid currentColor; transform: translateY(2px) rotate(45deg); transition: transform .5s var(--ease-out); }
.efx-top:hover .efx-top__ico, .efx-top:focus-visible .efx-top__ico { background: var(--accent); box-shadow: none; color: var(--ink); }
.efx-top:hover .efx-top__ico i { transform: translateY(-1px) rotate(45deg); }

@media (max-width: 1100px) { .efx-footer__grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .efx-footer__title { font-size: clamp(2.6rem, 12vw, 4rem); }
  .efx-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.6rem; }
  .efx-footer__stage { height: 34vh; min-height: 200px; }
  .efx-footer__huella { min-height: 78vh; align-items: end; padding-bottom: clamp(1.5rem, 6vw, 3rem); }
  .efx-footer__huella-in { grid-template-columns: 1fr; }
  .efx-footer__huella-cv { grid-column: 1; grid-row: 1; align-self: start; width: min(220px, 60%); }
  .efx-footer__huella-txt { grid-column: 1; grid-row: 2; padding: 1rem 1rem 1.1rem; margin-inline: -1rem; border-radius: 18px; background: color-mix(in srgb, var(--ink) 78%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }   /* si la figura (fija al viewport) cruza el texto al scrollear, sigue legible */
  .efx-footer__huella-title { font-size: clamp(2.2rem, 10vw, 3.2rem); }
  .efx-footer__word { font-size: 28vw; }
  .efx-footer__bar { grid-template-columns: 1fr auto; }
  .efx-footer__copy, .efx-footer__made { grid-column: 1 / -1; }
  .efx-footer__bar .efx-legal { justify-self: start; }
  .efx-footer__btns .btn { flex: 1 1 100%; justify-content: center; }
}

/* objetivo táctil ≥44 px para el link legal (la barra inferior es mono chico) */
.efx-footer__bar .efx-legal { display: inline-flex; align-items: center; min-height: 44px; padding-inline: .4rem; margin-inline: -.4rem; }
