/* v03 · Home del sitio completo */

.home-hero { position:relative; isolation:isolate; min-height:calc(100svh - 48px); margin:24px;
  overflow:hidden; border-radius:32px; color:var(--white); background:#0b0d24;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); }
.home-hero-media { position:absolute; inset:-7%; z-index:-3; overflow:hidden;
  transform:translate3d(var(--home-hero-x,0),var(--home-hero-y,0),0); will-change:transform; }
.home-hero-media img { width:100%; height:114%; object-fit:cover; object-position:22% 52%;
  filter:saturate(1.08) contrast(1.04); transform:scale(1.07); will-change:transform; }
.home-hero-shade { position:absolute; inset:0; z-index:-2; pointer-events:none; background:
  linear-gradient(90deg,rgba(6,8,28,.92) 0%,rgba(8,10,30,.72) 34%,rgba(8,10,30,.26) 66%,rgba(8,10,30,.18) 100%),
  linear-gradient(180deg,rgba(7,9,28,.42) 0%,transparent 35%,rgba(9,11,32,.2) 66%,rgba(9,11,32,.84) 100%),
  radial-gradient(circle at 79% 52%,rgba(221,0,127,.16),transparent 33%); }
.home-hero-inner { position:relative; width:min(1320px,92vw); min-height:calc(100svh - 48px); margin:auto;
  padding:clamp(13rem,26vh,15rem) 0 clamp(2.5rem,5vh,4rem); }
.home-hero-content { display:flex; flex-direction:column; align-items:flex-start; width:min(920px,100%); }
.home-hero-kicker { max-width:none; margin:0 0 1.15rem; opacity:0;
  animation:hero-kicker-reveal .55s ease .04s forwards; }
.home-hero-kicker span { color:rgba(255,255,255,.4); }
.home-hero h1 { max-width:none; margin:0; display:flex; flex-direction:column;
  row-gap:-.045em; font-size:clamp(4.1rem,7.8vw,7.5rem); line-height:.98; letter-spacing:-.045em; }
.hero-title-line { display:block; width:max-content; max-width:none; overflow:hidden;
  box-sizing:content-box; padding:.18em .34em .24em .08em; margin:-.18em -.34em -.1em -.08em; }
.hero-title-line.is-revealed { overflow:visible; }
.hero-title-line > span { display:block; opacity:0;
  white-space:nowrap; will-change:transform,opacity; }
.home-title-outline > span { color:transparent; -webkit-text-stroke:1.35px rgba(255,255,255,.92); }
.home-title-solid { align-self:flex-end; }
.home-title-solid > span { color:#fff; background:none; -webkit-text-fill-color:#fff;
  mix-blend-mode:exclusion; padding-right:.14em; text-shadow:none; }
.home-hero-lead { max-width:42ch; margin:clamp(.4rem,1vh,.75rem) 0 0; color:rgba(255,255,255,.82);
  font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.3; opacity:0;
  animation:hero-actions-reveal .65s cubic-bezier(.22,1,.36,1) .3s forwards; }
.home-hero-lead em { color:var(--magenta); font-weight:600; }
.home-hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:clamp(1.3rem,2.6vh,1.9rem); opacity:0;
  pointer-events:auto; animation:hero-actions-reveal .65s cubic-bezier(.22,1,.36,1) .4s forwards; }
.home-btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.85rem 1.5rem;
  border:1px solid rgba(255,255,255,.28); border-radius:999px; color:var(--white); text-decoration:none;
  font-size:.8rem; font-weight:600; transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease; }
.home-btn-primary { border-color:var(--magenta); background:var(--magenta); }
.home-btn-primary:hover { transform:translateY(-2px); background:var(--cyan); border-color:var(--cyan); color:var(--bg); }
.home-btn-secondary { background:rgba(16,18,42,.38); backdrop-filter:blur(8px); }
.home-btn[aria-disabled="true"] { cursor:default; opacity:.68; }
.hero-scroll-discover { position:absolute; right:0; bottom:clamp(1.4rem,3vh,2.2rem); z-index:2;
  display:flex; align-items:center; gap:1rem; color:rgba(255,255,255,.9); font-size:.7rem;
  font-weight:600; letter-spacing:.1em; text-decoration:none; text-transform:uppercase;
  white-space:nowrap; transition:color .25s ease; }
.home-hero-discover { top:calc(100svh - 94px);
  right:max(4vw,calc((100vw - 1320px)/2)); bottom:auto; z-index:31;
  color:rgba(255,255,255,.9); text-shadow:0 2px 12px rgba(3,5,20,.9); }
.hero-scroll-discover:hover,.hero-scroll-discover:focus-visible { color:var(--white); }
.hero-scroll-discover:hover .hero-scroll-icon,.hero-scroll-discover:focus-visible .hero-scroll-icon {
  transform:scale(1.05); border-color:rgba(255,255,255,.72); background:rgba(255,255,255,.08); }
.hero-scroll-discover:focus-visible { outline:none; }
.hero-scroll-discover:focus-visible .hero-scroll-icon { outline:2px solid var(--cyan); outline-offset:4px; }

/* Barra de clientes — empieza después del hero-tarjeta y deja visible su radio inferior. */
.home-clientes-bar { position:relative; isolation:isolate; overflow:hidden;
  padding:clamp(4.5rem,9vh,7rem) 0 clamp(1.5rem,3vh,2.5rem); background:var(--bg); }
.clientes-velo { position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,transparent 18%,rgba(16,18,42,.16) 58%,transparent 100%); }
.home-clientes-bar > .container, .clientes-marquesina { position:relative; z-index:1; }
.clientes-heading { max-width:1050px; margin:0 auto; color:var(--white); text-align:center;
  font-size:clamp(2rem,4.35vw,3.9rem); font-weight:400; line-height:1.04; letter-spacing:-.03em; }
.clientes-heading em { color:var(--magenta); }
.clientes-title-line { display:block; overflow:hidden; padding:.04em 0 .08em; margin:-.04em 0 -.08em; }
.clientes-title-line > span { display:block; animation:clientes-title-reveal .75s cubic-bezier(.22,1,.36,1) both; }
.clientes-title-line:nth-child(2) > span { animation-delay:.08s; }
@keyframes clientes-title-reveal { from { opacity:0; transform:translateY(105%); } }

.clientes-marquesina { position:relative; width:100%; overflow:hidden; margin-top:clamp(2rem,4vw,3.2rem); padding:1rem 0;
  cursor:grab; touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.clientes-marquesina.is-dragging { cursor:grabbing; }
/* Desvanecido lateral: las tarjetas entran y salen sin borde duro. */
.clientes-marquesina::before, .clientes-marquesina::after { content:''; position:absolute; top:0; bottom:0;
  z-index:2; width:min(12vw,150px); pointer-events:none; }
.clientes-marquesina::before { left:0; background:linear-gradient(90deg, var(--bg), transparent); }
.clientes-marquesina::after { right:0; background:linear-gradient(-90deg, var(--bg), transparent); }
.clientes-pista { display:flex; width:max-content; will-change:transform; }
.clientes-grupo { display:flex; flex-shrink:0; align-items:center; gap:1rem; list-style:none; padding-right:1rem; }
.cliente-marca { min-width:clamp(170px,15vw,220px); height:112px; display:flex; align-items:center;
  justify-content:center; padding:1.4rem 1.6rem; border:1px solid rgba(255,255,255,.09);
  border-radius:22px; background:rgba(255,255,255,.025);
  transition:border-color .3s ease, background .3s ease, transform .3s ease; }
.cliente-marca img { max-width:156px; height:38px; object-fit:contain;
  filter:grayscale(1) brightness(1.8); opacity:.62; transition:filter .3s ease, opacity .3s ease; }
/* Los archivos de marca tienen proporciones y márgenes internos muy distintos. Estas medidas igualan
   el peso óptico dentro de una misma tarjeta, sin estirar ni recortar los logotipos. */
.cliente-marca img[alt="Itaú"] { max-width:48px; height:48px; }
.cliente-marca img[alt="Bupa"] { max-width:98px; height:42px; }
.cliente-marca img[alt="FEMSA"] { max-width:156px; height:36px; }
.cliente-marca img[alt="AFP Habitat"] { max-width:154px; height:60px; }
.cliente-marca img[alt="Entel"] { max-width:155px; height:47px; }
.cliente-marca img[alt="Hortifrut"] { max-width:64px; height:64px; }
.cliente-marca img[alt="DHL"] { max-width:154px; height:40px; }
.cliente-marca img[alt="Kimberly-Clark"] { max-width:164px; height:56px; }
.cliente-marca img[alt="Sodimac"] { max-width:70px; height:50px; }
.cliente-marca img[alt="Derco"] { max-width:155px; height:39px; }
.cliente-marca img[alt="Aguas Andinas"] { max-width:141px; height:40px; }
.cliente-marca:hover { border-color:color-mix(in srgb, var(--cyan) 38%, transparent);
  background:rgba(255,255,255,.065); transform:translateY(-4px); }
.cliente-marca:hover img { filter:grayscale(0); opacity:1; }
.home-section-head { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(240px,.55fr);
  gap:clamp(2rem,7vw,7rem); align-items:end; margin-bottom:clamp(2.8rem,6vw,5rem); }
.home-section-head .kicker { grid-column:1/-1; }
.home-section-head .kicker,
.home-cta-final .kicker { color:var(--cyan); font-size:var(--section-indicator-size); font-weight:600;
  line-height:var(--section-indicator-leading); letter-spacing:var(--section-indicator-tracking);
  text-transform:uppercase; }
/* line-height propio: el 1.15 de base.css está calibrado para h2 de 2,8rem y aquí el h2 llega a 4,2rem,
   donde descendentes y tildes de una línea alcanzan la siguiente. */
.home-section-head h2 { max-width:760px; font-size:clamp(2rem,4.4vw,4.1rem); letter-spacing:-.03em;
  line-height:1.22; }
.home-section-head > p { color:var(--muted); line-height:1.75; }
.home-section-head.home-editorial-head { position:relative; grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);
  gap:clamp(2rem,8vw,8rem); align-items:start; overflow-x:clip; }
.home-editorial-head > .kicker { grid-column:1; margin:0; }
.home-editorial-copy { grid-column:2; min-width:0; }
.home-editorial-head .home-editorial-title { max-width:760px; margin:0; font-size:clamp(2.15rem,3.25vw,3.45rem);
  font-weight:400; line-height:1.12; letter-spacing:-.03em; }
.home-editorial-description { max-width:620px; margin:1.35rem 0 0; color:var(--muted);
  font-size:clamp(.88rem,1vw,1rem); line-height:1.7; }
.home-split-word { display:inline-block; white-space:nowrap; }
.home-split-char { display:inline-block; will-change:transform,opacity; }
.home-text-link { display:inline-block; margin-top:2rem; color:var(--cyan); text-decoration:none;
  font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.home-text-link[aria-disabled="true"] { cursor:default; }

.home-texture-stage { position:relative; isolation:isolate; overflow:hidden; background:var(--bg-deep); }
#home-ambient-canvas { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%;
  pointer-events:none; opacity:.92; }
.home-texture-veil { position:absolute; inset:0; z-index:0; pointer-events:none; background:
  linear-gradient(180deg,var(--bg) 0%,rgba(9,11,32,.08) 12%,transparent 30%,transparent 76%,var(--bg-deep) 100%),
  radial-gradient(ellipse at 50% 48%,transparent 12%,rgba(9,11,32,.12) 58%,rgba(9,11,32,.58) 100%); }
.home-texture-stage > .home-desafios,.home-texture-stage > .home-resultados {
  position:relative; z-index:1; background:transparent; }
.home-desafios { position:relative; isolation:isolate; overflow:hidden;
  padding:clamp(6rem,12vh,10rem) 0 clamp(3rem,6vh,5rem); background:var(--bg-deep); }
.home-desafios > .container { position:relative; z-index:2; }

/* "Lo que vemos hoy" — bento fotográfico aprobado en laboratorio: dos piezas horizontales,
   una vertical dominante, dos módulos secundarios y un cierre panorámico. La fotografía ocupa
   la superficie y el texto se concentra abajo para reducir ruido visual. */
.home-desafios .desafios-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:clamp(118px,9.2vw,142px); gap:clamp(14px,1.35vw,20px); }
.desafio-signal { position:relative; isolation:isolate; overflow:hidden; display:block; min-width:0;
  border:1px solid rgba(255,255,255,.15); border-radius:20px; color:var(--white);
  text-decoration:none; background:#15172d; }
.desafio-signal:nth-child(1) { grid-column:1/9; grid-row:1/3; }
.desafio-signal:nth-child(2) { grid-column:9/13; grid-row:1/5; }
.desafio-signal:nth-child(3) { grid-column:1/9; grid-row:3/5; }
.desafio-signal:nth-child(4) { grid-column:1/5; grid-row:5/7; }
.desafio-signal:nth-child(5) { grid-column:5/13; grid-row:5/7; }
.desafio-signal:nth-child(6) { grid-column:1/13; grid-row:7/9; }
.desafio-signal-photo { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover;
  filter:none; transform:scale(1.015);
  transition:transform .75s cubic-bezier(.2,.8,.2,1); }
/* La serie propia del bento mezcla encuadres panorámicos y verticales. Cada señal declara la altura
   de su franja de interés para conservar los rostros al adaptarse a las cards apaisadas; la card 2
   es la única vertical y no necesita corrección de altura. */
.desafio-signal:nth-child(1) .desafio-signal-photo { object-position:center 35%; }
.desafio-signal:nth-child(2) .desafio-signal-photo { object-position:58% center; }
.desafio-signal:nth-child(3) .desafio-signal-photo { object-position:center 35%; }
.desafio-signal:nth-child(4) .desafio-signal-photo { object-position:center 25%; }
.desafio-signal:nth-child(5) .desafio-signal-photo { object-position:center 25%; }
.desafio-signal:nth-child(6) .desafio-signal-photo { object-position:center 35%; }
.desafio-signal:hover .desafio-signal-photo,
.desafio-signal:focus-visible .desafio-signal-photo { transform:scale(1.06); }
.desafio-signal::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(145deg,rgba(105,52,183,.32),rgba(105,52,183,.08) 42%,rgba(221,0,127,.13) 73%,rgba(82,206,191,.14)),
    radial-gradient(circle at 78% 18%,rgba(82,206,191,.12),transparent 34%),
    linear-gradient(0deg,rgba(45,46,62,.22),transparent 48%);
  mix-blend-mode:normal; opacity:.22; }
.desafio-signal-veil { position:absolute; inset:0; z-index:2; background:
  linear-gradient(180deg,rgba(7,9,28,.02) 0%,transparent 48%,rgba(7,9,28,.18) 64%,rgba(7,9,28,.92) 100%),
  linear-gradient(90deg,color-mix(in srgb,var(--ds-tint) 9%,transparent),transparent 52%); }
.desafio-signal[data-accent="creativo"] { --ds-tint:#ff6d86; }
.desafio-signal[data-accent="estratega"] { --ds-tint:#52cebf; }
.desafio-signal[data-accent="humano"] { --ds-tint:#a77aea; }
.desafio-signal-content { position:absolute; left:clamp(1.25rem,2.2vw,1.9rem);
  right:clamp(1.25rem,2.2vw,1.9rem); bottom:clamp(1.25rem,2.2vw,1.8rem); z-index:2; display:block; }
.desafio-signal-meta { display:flex; align-items:center; gap:.6rem; margin-bottom:.7rem; }
.desafio-signal-meta b { color:var(--ds-tint); font-size:.92rem; font-weight:800; letter-spacing:-.02em;
  text-shadow:0 2px 12px rgba(0,0,0,.68); }
.desafio-signal-meta span { color:rgba(255,255,255,.78); font-size:.58rem; font-weight:600;
  letter-spacing:.15em; text-shadow:0 2px 12px rgba(0,0,0,.68); }
.desafio-signal h3 { margin:0; max-width:31ch; font-size:clamp(1.15rem,1.75vw,1.65rem);
  font-weight:400; line-height:1.2; letter-spacing:-.025em; text-wrap:balance;
  text-shadow:0 2px 18px rgba(0,0,0,.78); }
.desafio-signal:nth-child(1) h3,.desafio-signal:nth-child(3) h3,.desafio-signal:nth-child(6) h3 {
  max-width:42ch; font-size:clamp(1.3rem,2vw,1.85rem); }
.desafio-signal-plus { position:absolute; z-index:3; right:1.25rem; top:1.25rem; width:40px; height:40px;
  border-radius:50%; background:var(--white); opacity:0; transform:scale(.72); rotate:0deg;
  transition:opacity .3s linear,transform .3s linear,rotate .3s linear; }
.desafio-signal-plus::before,.desafio-signal-plus::after { content:''; position:absolute; top:50%; left:50%;
  background:var(--ds-tint); transform:translate(-50%,-50%); }
.desafio-signal-plus::before { width:14px; height:2px; }
.desafio-signal-plus::after { width:2px; height:14px; }
.desafio-signal:hover .desafio-signal-plus,
.desafio-signal:focus-visible .desafio-signal-plus { opacity:1; transform:scale(1); rotate:90deg; }
.desafio-signal:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }

/* El bloque de cifras (.stats-*, .stat*) vive en base.css: lo comparten el Home y Experiencia. */
.home-resultados { padding:clamp(2.5rem,5vw,4rem) 0 clamp(5rem,10vw,8rem); background:var(--bg-deep); }

.home-capacidades.cap-carousel { position:relative; isolation:isolate; display:block; min-height:0;
  overflow:hidden; padding:clamp(8rem,15vh,11rem) 0; background:#0b0d24; }
.home-capacidades > .container { position:relative; z-index:2; width:100%; }
.cap-pin-stage { position:relative; }
.home-capacidades .home-section-head { width:min(1320px,92vw); margin:0 auto clamp(4.75rem,7.5vw,7rem); }
.cap-carousel-backdrop { position:absolute; z-index:0; inset:-22% -10%; overflow:hidden; pointer-events:none;
  transform-origin:50% 50%; will-change:transform; }
.cap-carousel-backdrop img { width:100%; height:100%; object-fit:cover; object-position:center 48%;
  filter:saturate(1.18) contrast(1.16) brightness(.58); transform:scale(1.16); will-change:transform; }
.cap-carousel-veil { position:absolute; z-index:1; inset:-4% 0; pointer-events:none; background:
  linear-gradient(90deg,rgba(8,10,34,.62) 0%,rgba(19,14,58,.26) 46%,rgba(7,9,31,.64) 100%),
  radial-gradient(circle at 78% 18%,rgba(82,206,191,.15),transparent 31%),
  radial-gradient(circle at 24% 84%,rgba(221,0,127,.2),transparent 38%); will-change:transform; }
.cap-carousel-noise { position:absolute; z-index:1; inset:0; opacity:1; pointer-events:none;
  background:url('../assets/brand/noise.png') center/cover no-repeat; }
.cap-carousel-controls { position:absolute; right:0; bottom:0; display:flex; gap:.55rem; }
.cap-carousel-control { width:42px; height:42px; display:grid; place-items:center; padding:0;
  border:1px solid rgba(255,255,255,.24); border-radius:50%; color:#fff; background:rgba(9,11,32,.22);
  font-size:1rem; cursor:pointer; backdrop-filter:blur(8px);
  transition:color .25s ease,border-color .25s ease,background .25s ease,opacity .25s ease; }
.cap-carousel-control:not(:disabled):hover,.cap-carousel-control:not(:disabled):focus-visible {
  color:#0b0d24; border-color:var(--cyan); background:var(--cyan); }
.cap-carousel-control:disabled { opacity:.28; cursor:default; }
.cap-carousel-control:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
.cap-carousel-viewport { position:relative; width:100%; overflow:hidden; cursor:grab;
  touch-action:pan-y pinch-zoom; overscroll-behavior-inline:contain; }
.cap-carousel-viewport.is-dragging { cursor:grabbing; }
.cap-carousel-viewport.is-dragging * { user-select:none; }
.cap-carousel-track { position:relative; width:max-content; height:auto; display:flex;
  gap:clamp(14px,1.5vw,22px); overflow:visible; padding:4px max(4vw,calc((100vw - 1320px)/2));
  will-change:transform; transform:translate3d(0,0,0); }
.cap-case-sticky { position:relative; flex:0 0 clamp(315px,28vw,390px); width:auto;
  height:clamp(410px,31vw,460px); min-height:0; display:block; transform-origin:center bottom; }
.cap-case-card { position:relative; width:100%; height:100%; min-height:0; display:block; padding:0;
  overflow:hidden; border:1px solid rgba(255,255,255,.16); border-radius:22px; color:#fff;
  background:#171932; box-shadow:none; isolation:isolate; }
.cap-case-card::before { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; background:
  linear-gradient(180deg,rgba(7,9,28,.08) 8%,transparent 38%,rgba(7,9,28,.94) 100%),
  linear-gradient(135deg,color-mix(in srgb,var(--cap-tint) 18%,transparent),transparent 52%); }
.cap-case-card::after { content:''; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:var(--cap-tint); opacity:0; mix-blend-mode:screen; transition:opacity .4s ease; }
.cap-case-card:hover::after,.cap-case-card:focus-within::after { opacity:.12; }
.cap-case-photo { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%;
  overflow:hidden; border-radius:0; color:#fff; text-decoration:none; background:#171932; }
.cap-case-photo::after,.cap-case-photo > span { display:none; }
.cap-case-photo img { position:absolute; left:0; top:-7%; width:100%; height:114%; object-fit:cover;
  filter:none; scale:1 !important; transition:scale .65s cubic-bezier(.2,.8,.2,1);
  will-change:transform; -webkit-user-drag:none; user-select:none; }
.cap-case-card:hover .cap-case-photo img,.cap-case-card:focus-within .cap-case-photo img {
  scale:1.045 !important; }
.cap-case-top { position:absolute; inset:clamp(1.25rem,2vw,1.65rem); z-index:4; display:block;
  padding:0; pointer-events:none; }
.cap-case-num { display:none; }
.cap-case-heading { position:absolute; left:0; right:0; bottom:4.4rem; min-width:0; }
.cap-case-heading p { margin:0 0 .65rem; color:var(--cyan); font-size:.66rem; font-weight:600;
  line-height:1.45; letter-spacing:.18em; text-transform:uppercase; }
.cap-case-heading h3 { margin:0; color:#fff; font-size:clamp(1.65rem,2.35vw,2.35rem);
  font-weight:400; line-height:1; letter-spacing:-.035em; }
.cap-case-description { position:absolute; left:clamp(1.25rem,2vw,1.65rem); right:4.9rem;
  bottom:clamp(1.25rem,2vw,1.65rem); z-index:4; max-width:46ch; margin:0;
  color:rgba(255,255,255,.72); font-size:clamp(.76rem,.88vw,.86rem); line-height:1.5; }
.cap-case-button { position:absolute; right:0; bottom:0; z-index:5; width:40px; height:40px;
  display:block; padding:0; border:0; border-radius:50%; color:transparent; background:#fff;
  font-size:0; pointer-events:auto; opacity:0; transform:scale(.7); rotate:0deg;
  transition:opacity .3s linear,transform .3s linear,rotate .3s linear; }
.cap-case-button::before,.cap-case-button::after { content:''; position:absolute; top:50%; left:50%;
  background:var(--cap-tint); transform:translate(-50%,-50%); }
.cap-case-button::before { width:14px; height:2px; }
.cap-case-button::after { width:2px; height:14px; }
.cap-case-card:hover .cap-case-button,.cap-case-card:focus-within .cap-case-button {
  opacity:1; transform:scale(1); }
.cap-case-button:hover,.cap-case-button:focus-visible { rotate:90deg; }
.cap-case-photo:focus-visible,.cap-case-button:focus-visible { outline:2px solid var(--cyan); outline-offset:-4px; }

.home-caso-destacado { position:relative; overflow:hidden; outline:none; background:#0b0d24; }
.home-caso-destacado:focus-visible { outline:2px solid var(--cyan); outline-offset:-2px; }
.home-cases-viewport { position:relative; height:clamp(650px,82vh,860px); overflow:hidden; touch-action:pan-y; background:#0b0d24; }
@media (min-width:1200px) {
  .home-caso-destacado.case-pin-active .home-cases-viewport { height:calc(100vh - 104px); min-height:560px; }
}
.home-case-slide { position:absolute; inset:0; isolation:isolate; display:flex; align-items:center; opacity:0; visibility:hidden;
  pointer-events:none; clip-path:inset(0 0 0 100%); }
.home-case-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; clip-path:inset(0); }
/* El encuadre lateral viaja en la propiedad `translate`, no dentro de `transform`: GSAP lee el
   `transform` calculado como `x` y le sumaba encima el `xPercent` de la transición, duplicando el
   desplazamiento en cada wipe del único slide que usaba shift. */
.home-case-slide > img,.home-case-media > img { position:absolute; inset:-3%; z-index:-3; width:106%; height:106%; object-fit:cover;
  object-position:var(--case-position,center); translate:var(--case-image-shift,0) 0;
  transform:scale(var(--case-image-scale,1.035)); will-change:transform; }
.home-case-media { position:absolute; inset:0; z-index:-3; overflow:hidden; will-change:transform; }
.home-case-overlay { position:absolute; inset:0; z-index:-2; background:
  linear-gradient(90deg,rgba(7,9,28,.97) 0%,rgba(7,9,28,.86) 38%,rgba(7,9,28,.48) 68%,rgba(7,9,28,.22) 100%),
  linear-gradient(0deg,rgba(7,9,28,.84) 0%,transparent 50%,rgba(7,9,28,.26) 100%); }
.home-case-overlay::after { content:''; position:absolute; inset:0; opacity:.18; background:
  radial-gradient(circle at 31% 66%,var(--case-accent) 0,transparent 34%); mix-blend-mode:screen; }
.home-case-copy { position:relative; z-index:1; width:min(1100px,88vw); margin-inline:auto; padding-top:clamp(4.5rem,8vh,6.5rem); }
.home-case-copy .kicker { color:var(--cyan); }
.home-case-copy h2 { max-width:17ch; margin-top:1.1rem; font-size:clamp(2.4rem,4.7vw,4.85rem); line-height:1;
  text-transform:uppercase; letter-spacing:-.035em; text-wrap:balance; }
/* Mismo zoom base que el resto de los casos. El shift se limita a lo que la sobreescala permite
   cubrir (4,5% de 106% de ancho): más que eso destapaba una franja del fondo en el borde izquierdo. */
.home-case-slide-itau { --case-image-shift:4.5%; }
.home-caso-result { display:flex; align-items:flex-end; gap:1rem; margin-top:2rem; }
.home-caso-result strong { color:var(--case-accent,var(--cyan)); font-size:clamp(4rem,8vw,7rem); line-height:.75; letter-spacing:-.08em; }
.home-caso-result span { color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; }
.home-case-copy .home-text-link { width:max-content; margin-top:2.6rem; }
.home-case-controls { position:relative; z-index:8; border-top:1px solid rgba(255,255,255,.12); background:#101229; }
.home-case-controls-inner { min-height:104px; display:grid; grid-template-columns:minmax(260px,1fr) auto minmax(260px,1fr);
  align-items:center; gap:2rem; }
.home-case-status { display:flex; align-items:baseline; gap:.45rem; color:var(--white); font-variant-numeric:tabular-nums; }
.home-case-current { min-width:2ch; font-size:1.45rem; font-weight:700; }
.home-case-total { color:var(--muted); font-size:.72rem; letter-spacing:.1em; }
.home-case-progress { position:relative; width:min(220px,18vw); height:1px; margin-left:1rem; overflow:hidden; background:rgba(255,255,255,.18); }
.home-case-progress > span { position:absolute; inset:0; transform:scaleX(calc(1 / 6)); transform-origin:left; background:var(--cyan);
  transition:transform .65s cubic-bezier(.2,.8,.2,1); }
.home-case-arrows { display:flex; gap:.7rem; }
.home-case-arrow { width:52px; aspect-ratio:1; display:grid; place-items:center; border:1px solid rgba(255,255,255,.42);
  border-radius:50%; color:var(--white); background:transparent; cursor:pointer;
  transition:color .3s ease,background .3s ease,border-color .3s ease,transform .3s ease; }
.home-case-arrow svg { width:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-case-arrow:hover,.home-case-arrow:focus-visible { color:#090b20; border-color:var(--cyan); background:var(--cyan); transform:scale(1.055); }
.home-case-arrow:focus-visible { outline:2px solid var(--white); outline-offset:3px; }
.home-case-all { justify-self:end; color:var(--cyan); text-decoration:none; font-size:.66rem; font-weight:600;
  letter-spacing:.13em; text-transform:uppercase; }
.home-case-all:hover,.home-case-all:focus-visible { text-decoration:underline; text-underline-offset:.4em; }

.home-perspectivas { padding:clamp(6rem,12vh,10rem) 0; }
.perspectivas-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,1.5vw,1.35rem); }
.perspectiva-card { position:relative; isolation:isolate; display:flex; min-height:460px; flex-direction:column;
  overflow:hidden; border:1px solid rgba(255,255,255,.11); border-radius:15px; color:var(--white);
  text-decoration:none; background:#13162f; box-shadow:0 24px 55px -36px rgba(0,0,0,.9);
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .35s ease,box-shadow .45s ease; }
.perspectiva-card::after { content:''; position:absolute; inset:0; z-index:3; border-radius:inherit; pointer-events:none;
  box-shadow:inset 0 0 0 1px transparent; transition:box-shadow .35s ease; }
.perspectiva-visual { position:relative; display:block; flex:0 0 215px; overflow:hidden;
  background-color:#090b20; transform:translateZ(0); }
.perspectiva-visual::before { content:''; position:absolute; width:118%; aspect-ratio:1; left:-62%; bottom:-92%;
  border:1px solid rgba(198,158,255,.34); border-radius:50%; box-shadow:0 0 70px rgba(174,76,255,.16),inset 0 0 55px rgba(221,0,127,.08);
  transition:transform .7s cubic-bezier(.2,.8,.2,1),border-color .4s ease; }
.perspectiva-visual::after { content:''; position:absolute; inset:0; opacity:.55; background:
  linear-gradient(115deg,transparent 0 48%,rgba(255,255,255,.035) 48.2% 48.5%,transparent 48.7%),
  radial-gradient(circle at 86% 18%,rgba(255,255,255,.16) 0 1px,transparent 2px),
  radial-gradient(circle at 75% 32%,rgba(255,255,255,.08) 0 1px,transparent 2px); background-size:auto,36px 36px,54px 54px; }
.perspectiva-visual-a { background:
  radial-gradient(circle at 88% 13%,rgba(221,0,127,.52),transparent 30%),
  radial-gradient(circle at 8% 110%,rgba(111,48,198,.45),transparent 42%),
  linear-gradient(145deg,#080a20 8%,#171034 58%,#290b3d 100%); }
.perspectiva-visual-b { background:
  radial-gradient(circle at 82% 14%,rgba(92,75,230,.58),transparent 32%),
  radial-gradient(circle at 4% 105%,rgba(221,0,127,.38),transparent 43%),
  linear-gradient(145deg,#080a20 4%,#111643 55%,#30104c 100%); }
.perspectiva-visual-c { background:
  radial-gradient(circle at 88% 12%,rgba(143,45,214,.58),transparent 31%),
  radial-gradient(circle at 6% 105%,rgba(34,190,200,.24),transparent 42%),
  linear-gradient(145deg,#080a20 5%,#19113e 56%,#3b0b43 100%); }
.perspectiva-visual--image::before,.perspectiva-visual--image::after { display:none; }
.perspectiva-visual--image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center;
  transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.perspectiva-card:hover .perspectiva-visual--image img,.perspectiva-card:focus-visible .perspectiva-visual--image img { transform:scale(1.045); }
.perspectiva-content { position:relative; z-index:2; display:flex; flex:1; flex-direction:column; padding:clamp(1.35rem,2vw,1.75rem); }
.perspectiva-meta { color:var(--cyan); font-size:.58rem; font-weight:600; letter-spacing:.16em; }
.perspectiva-card h3 { margin-top:1rem; font-size:clamp(1.15rem,1.45vw,1.42rem); line-height:1.25; letter-spacing:-.025em; }
.perspectiva-summary { margin-top:.85rem; color:var(--muted); font-size:.76rem; line-height:1.65; }
.perspectiva-cta { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:auto; padding-top:1.6rem;
  border-top:1px solid rgba(255,255,255,.1); color:var(--white); font-size:.62rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; }
.perspectiva-cta > span { color:var(--cyan); font-size:1rem; transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.perspectiva-card:hover,.perspectiva-card:focus-visible { transform:translateY(-8px) scale(1.012); border-color:rgba(158,113,255,.48);
  box-shadow:0 32px 65px -34px rgba(74,34,153,.72); }
.perspectiva-card:hover::after,.perspectiva-card:focus-visible::after { box-shadow:inset 0 0 0 1px rgba(221,0,127,.2); }
.perspectiva-card:hover .perspectiva-visual::before,.perspectiva-card:focus-visible .perspectiva-visual::before {
  transform:translate3d(5%,-4%,0) scale(1.08); border-color:rgba(221,0,127,.46); }
.perspectiva-card:hover .perspectiva-cta > span,.perspectiva-card:focus-visible .perspectiva-cta > span { transform:translate(3px,-3px); }
.perspectiva-card:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }

.home-cta-final { min-height:70vh; text-align:center; background:
  linear-gradient(180deg,rgba(18,18,54,.08),rgba(31,22,78,.7)),
  url('../assets/brand/textura-fondo-glow.jpg') center/cover; }
.home-cta-final .container { max-width:950px; }
.home-cta-final h2 { margin:0 auto 2.2rem; font-size:clamp(2.3rem,5.05vw,4.85rem); letter-spacing:-.035em; }
.site-footer { padding:clamp(4rem,8vh,7rem) 0 2rem; overflow:hidden; background:var(--bg-deep); }


@media (max-width:980px) {
  .home-hero-media img { object-position:45% 52%; }
  .home-hero h1 { font-size:clamp(3.8rem,9.2vw,6rem); }
  .home-hero-content { width:100%; }
  .home-section-head { grid-template-columns:1fr; }
  .home-section-head.home-editorial-head { grid-template-columns:1fr; gap:1.35rem; }
  .home-editorial-head > .kicker,.home-editorial-copy { grid-column:1; }
  .cap-carousel-controls { position:static; margin-top:1.5rem; }
  .cap-case-sticky { flex-basis:clamp(300px,48vw,390px); }
  .cliente-marca { min-width:150px; height:92px; padding:1rem 1.2rem; border-radius:18px; }
  .home-section-head .kicker { grid-column:auto; }
  .perspectivas-grid { grid-template-columns:1fr; }
  .perspectiva-card { display:grid; grid-template-columns:minmax(240px,38%) 1fr; min-height:310px; }
  .perspectiva-visual { min-height:100%; }
  .home-desafios .desafios-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:auto; }
  .desafio-signal:nth-child(n) { grid-column:auto; grid-row:auto; min-height:380px; }
  .desafio-signal:nth-child(1),.desafio-signal:nth-child(3),.desafio-signal:nth-child(6) {
    grid-column:1/-1; min-height:430px; }
}

@media (max-width:760px) {
  .home-cases-viewport { height:clamp(700px,88svh,820px); }
  .home-case-slide { align-items:flex-end; }
  .home-case-slide > img,.home-case-media > img { inset:-2%; width:104%; height:104%; object-position:center; }
  /* En vertical la foto sobra de ancho, así que el encuadre se resuelve con `object-position` —
     igual que en los otros cinco casos— y no hace falta desplazar la capa. El selector antiguo
     (`> img`) nunca alcanzaba a Itaú, cuya imagen cuelga de `.home-case-media`. */
  .home-case-slide-itau { --case-image-shift:0; }
  .home-case-slide-itau img { object-position:47% 50%; }
  .home-case-overlay { background:linear-gradient(0deg,rgba(7,9,28,.98) 0%,rgba(7,9,28,.86) 48%,rgba(7,9,28,.38) 78%,rgba(7,9,28,.2) 100%); }
  .home-case-copy { width:88vw; padding:5rem 0 3.6rem; }
  .home-case-copy h2 { max-width:15ch; font-size:clamp(2.1rem,8vw,3.3rem); }
  .home-case-controls-inner { min-height:164px; grid-template-columns:auto 1fr; gap:.9rem 1.25rem; padding-block:1.15rem; }
  .home-case-status { grid-column:1/-1; }
  .home-case-progress { width:min(130px,30vw); margin-left:.5rem; }
  .home-case-arrows { grid-column:1; justify-self:start; }
  .home-case-all { grid-column:2; justify-self:start; }
}

@media (max-width:640px) {
  .home-hero { min-height:max(calc(100svh - 24px),760px); margin:12px; border-radius:22px; }
  .home-hero-inner { width:88vw; min-height:max(calc(100svh - 24px),760px); padding:10rem 0 5.5rem; }
  .home-hero-media { inset:-4% -36%; }
  .home-hero-media img { height:108%; object-position:50% 50%; }
  .home-hero-shade { background:
    linear-gradient(180deg,rgba(7,9,28,.7) 0%,rgba(7,9,28,.3) 42%,rgba(9,11,32,.82) 100%),
    linear-gradient(90deg,rgba(6,8,28,.82),rgba(8,10,30,.22)); }
  .home-hero-kicker { max-width:30ch; line-height:1.8; }
  .home-hero-content { width:100%; }
  .home-hero h1 { font-size:clamp(3.15rem,14vw,4.25rem); line-height:1.02; row-gap:.04em; }
  .hero-title-line { width:100%; max-width:100%; box-sizing:border-box;
    padding:.18em .08em .24em 0; margin:-.18em -.08em -.1em 0; }
  .hero-title-line > span { white-space:normal; }
  .home-title-solid { align-self:flex-start; }
  .home-hero-lead { max-width:19ch; margin-top:.55rem; font-size:1.5rem; line-height:1.3; }
  .home-hero-actions { margin-top:1.35rem; }
  .clientes-heading { font-size:clamp(2rem,10vw,2.7rem); line-height:1.04; }
  .home-hero-discover { top:calc(12px + max(calc(100svh - 24px),760px) - 72px); right:6vw;
    font-size:.6rem; }
  .home-clientes-logos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
  .home-clientes-logos img { height:32px; }
  .home-caso-result { align-items:center; }
  .perspectiva-card { display:flex; min-height:440px; }
  .perspectiva-visual { flex-basis:180px; min-height:0; }
  .perspectiva-content { padding:1.2rem; }
  .home-cta-final { min-height:75vh; }
  .home-desafios .desafios-grid { grid-template-columns:1fr; gap:14px; }
  .desafio-signal:nth-child(n) { grid-column:1; min-height:400px; }
  .desafio-signal:nth-child(1),.desafio-signal:nth-child(6) { min-height:450px; }
  /* Sin hover en táctil: el botón "+" queda siempre visible para que la afordancia no se pierda. */
  .desafio-signal-plus { opacity:1; transform:scale(1); }
  .home-capacidades.cap-carousel { padding:6.5rem 0 6.25rem; }
  .home-capacidades .home-section-head { width:88vw; margin-bottom:4.25rem; }
  .cap-carousel-track { padding-left:6vw; padding-right:12vw; gap:14px; }
  .cap-case-sticky { flex-basis:82vw; height:455px; }
  .cap-case-heading h3 { font-size:clamp(1.75rem,8vw,2.2rem); }
  .cap-case-button { opacity:1; transform:scale(1); }
  .cap-carousel-backdrop { inset:-18% -26%; }
  .cap-carousel-backdrop img { filter:saturate(1.15) contrast(1.13) brightness(.56); }
}

@media (prefers-reduced-motion:reduce) {
  /* La marquesina deja de desfilar y pasa a arrastrarse a mano; el grupo duplicado
     sobra y se oculta, para que un lector de pantalla no lea las marcas dos veces. */
  .clientes-pista { animation:none; }
  .clientes-marquesina { overflow-x:auto; scrollbar-width:none; }
  .clientes-marquesina::-webkit-scrollbar { display:none; }
  .clientes-grupo[aria-hidden="true"] { display:none; }
  .clientes-title-line > span { animation:none; }
  .hero-title-line { overflow:visible; }
  .cliente-marca { transition:none; }
  .hero-title-line > span { transform:none; opacity:1; }
  .home-hero-kicker,.home-hero-lead,.home-hero-actions { opacity:1; animation:none; }
  .hero-scroll-icon::before { animation:none; opacity:1; }
  .cap-case-card::after,.cap-case-photo img,.cap-case-button,.cap-carousel-control,.home-btn { transition:none; }
  .cap-case-photo img { top:0; height:100%; scale:1 !important; }
  .cap-case-button { opacity:1; transform:scale(1); rotate:0deg; }
  .cap-carousel-backdrop,.cap-carousel-backdrop img,.cap-carousel-veil { will-change:auto; transform:none !important; }
  .home-split-char { transition:none; transform:none !important; opacity:1 !important; }
  .desafio-signal-photo,.desafio-signal-plus { transition:none; }
  .desafio-signal-plus { opacity:1; transform:scale(1); rotate:0deg; }
  .perspectiva-card,.perspectiva-card::after,.perspectiva-visual::before,.perspectiva-visual--image img,.perspectiva-cta > span { transition:none; }
  .perspectiva-card:hover,.perspectiva-card:focus-visible { transform:none; }
  .perspectiva-card:hover .perspectiva-visual--image img,.perspectiva-card:focus-visible .perspectiva-visual--image img { transform:none; }
  .home-case-slide,.home-case-slide > img,.home-case-progress > span,.home-case-arrow { transition:none; }
}
