.promesa {
  display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1rem 1.6rem;
  padding: 1rem 1.3rem; background: var(--papel); border: 1px solid var(--linea); border-radius: 16px;
}
.promesa__tit {
  margin: 0; max-width: 7.5rem; font-family: var(--mono); font-size: .72rem; font-weight: 500; letter-spacing: .12em;
  text-transform: uppercase; color: var(--morado); line-height: 1.5;
}
.promesa .valores { margin: 0; gap: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.promesa .valor {
  gap: .7rem; padding: .35rem 1rem; background: none; border: 0; border-radius: 0;
  border-left: 1px solid var(--linea); font-weight: 600; font-size: .9rem; line-height: 1.35;
}
.promesa .valor:hover { transform: none; box-shadow: none; }
.promesa .valor .ico { width: 30px; height: 30px; }
.problemas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
@supports (grid-template-rows: subgrid) {
  @media (min-width: 861px) {
    .problemas { grid-template-rows: auto auto; }
    .problema { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
  }
}
.problema { padding: 0; overflow: hidden; border-radius: 18px; background: var(--nieve); }
.problema.ficha--lleva:hover, .problema.ficha--lleva:focus-visible { background: var(--nieve); }
.problema__rot {
  margin: 0; font-family: var(--mono); font-size: .68rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase;
}
.problema__hoy { padding: 1.35rem 1.5rem 1.7rem; background: var(--niebla); }
.problema__hoy .problema__rot { color: var(--tinta-media); }
.problema__hoy h3 {
  margin: .35rem 0 0; font-size: clamp(1.2rem, 1rem + .6vw, 1.45rem); line-height: 1.2;
  letter-spacing: -.02em; color: var(--tinta); text-wrap: balance;
}
.problema__con { position: relative; flex: 1; display: flex; flex-direction: column; gap: .5rem; padding: 1.8rem 1.5rem 1.2rem; }
.problema__con::before {
  content: "\2193"; position: absolute; top: -1.15rem; left: 1.4rem;
  display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%;
  background: var(--lazo); color: #fff; font-weight: 600; box-shadow: 0 8px 18px -8px rgba(155, 46, 140, .7);
}
.problema__con .problema__rot { color: var(--morado); }
.problema__gana { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--tinta); }
.problema__dato { margin: .15rem 0 0; font-size: .9rem; line-height: 1.5; color: var(--tinta-media); }
.problema__dato b {
  margin-right: .35rem; white-space: nowrap; font-family: var(--mono); font-weight: 500;
  font-size: 1.1rem; color: var(--morado-hondo);
}
.problema .ficha__pista {
  margin-top: auto; padding-top: .75rem; min-height: 44px; display: inline-flex; align-items: center; gap: .45rem;
  font-size: .95rem;
}
.problema .ficha__pista::after { content: "\2192"; transition: transform .25s ease; }
.problema:hover .ficha__pista::after, .problema:focus-visible .ficha__pista::after { transform: translateX(5px); }
@media (max-width: 960px) {
  .promesa { grid-template-columns: minmax(0, 1fr); }
  .promesa .valores { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: .6rem; }
  .promesa .valor:nth-child(odd) { border-left: 0; padding-left: 0; }
}
@media (max-width: 860px) {
  .problemas { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .promesa .valores { grid-template-columns: minmax(0, 1fr); }
  .promesa .valor { border-left: 0; padding-left: 0; }
}
.arranque__cabeza {
  display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap;
  gap: 1rem 2rem; margin-bottom: clamp(1.6rem, 3vw, 2.2rem);
}
.arranque__cabeza .cabeza-seccion { margin-bottom: 0; }
.arranque { position: relative; }
.arranque__foto { position: relative; margin: 0; border-radius: 20px; overflow: hidden; box-shadow: var(--sombra-alta); }
.arranque__foto img { display: block; width: 100%; height: clamp(15rem, 27vw, 21rem); object-fit: cover; object-position: 50% 28%; }
.arranque__nota {
  position: absolute; top: 1rem; right: 1rem; display: flex; align-items: center; gap: .65rem;
  padding: .6rem .95rem .6rem .7rem; border-radius: 14px; background: var(--nieve); box-shadow: var(--sombra);
  font-size: .86rem; color: var(--tinta-media); line-height: 1.3;
}
.arranque__nota .ico { width: 34px; height: 34px; }
.arranque__nota b { display: block; font-size: .95rem; color: var(--tinta); }
@media (min-width: 761px) {
  .arranque .pasos {
    position: relative; z-index: 1; margin: -4.5rem 1.6rem 0; padding: 1.4rem 1.6rem 1.5rem;
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6rem;
    background: var(--nieve); border-radius: 18px; box-shadow: var(--sombra-alta);
  }
  .arranque .pasos::before {
    content: ""; position: absolute; left: calc(1.95rem + 20px); right: calc((100% - 8rem) / 4 + 1.25rem - 20px);
    top: calc(1.4rem + 20px); height: 2px;
    border-radius: 999px; background: var(--linea);
  }
  .arranque .paso { position: relative; display: block; padding: 0; border: 0; }
  .arranque .paso:last-child { border-bottom: 0; }
  .arranque .paso__ico {
    position: relative; z-index: 1; display: inline-block; margin-bottom: .55rem; padding: 0 .35rem;
    background: var(--nieve);
  }
  .arranque .paso__n { display: block; }
  .arranque .paso h3 { font-size: 1.08rem; line-height: 1.25; margin: .15rem 0 .35rem; }
  .arranque .paso p { font-size: .92rem; line-height: 1.5; }
}
@media (max-width: 760px) {
  .arranque__cabeza .boton { width: 100%; justify-content: center; }
  .arranque__foto img { height: 15rem; object-position: 56% 18%; }
  .arranque__nota { display: none; }
  .arranque .pasos {
    position: relative; z-index: 1; margin: -2rem .7rem 0; padding: .4rem 1.1rem;
    background: var(--nieve); border-radius: 16px; box-shadow: var(--sombra-alta);
  }
  .arranque .paso:first-child { border-top: 0; }
  .arranque .paso:last-child { border-bottom: 0; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .arranque .pasos { view-timeline: --pasos block; }
    .arranque .paso__ico .ico { animation: paso-enciende cubic-bezier(.2, .8, .3, 1.3) both; animation-timeline: --pasos; }
    .arranque .paso:nth-child(1) .paso__ico .ico { animation-range: entry 40% cover 22%; }
    .arranque .paso:nth-child(2) .paso__ico .ico { animation-range: entry 60% cover 28%; }
    .arranque .paso:nth-child(3) .paso__ico .ico { animation-range: entry 80% cover 34%; }
    .arranque .paso:nth-child(4) .paso__ico .ico { animation-range: entry 100% cover 40%; }
  }
}
@keyframes paso-enciende { from { opacity: .25; transform: scale(.55); filter: grayscale(1); } }
.sectores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.sector {
  display: flex; flex-direction: column; gap: .55rem; padding: 1.5rem 1.6rem 1.3rem;
  background: var(--papel); border: 1px solid var(--linea); border-radius: 18px;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.sector:hover { border-color: var(--morado-claro); box-shadow: var(--sombra); transform: translateY(-3px); }
.sector__cab { display: flex; align-items: center; gap: .85rem; }
.sector__cab .ico { width: 40px; height: 40px; padding: 7px; border-radius: 14px; background: var(--niebla); }
.sector__cab h3 { margin: 0; font-size: clamp(1.3rem, 1rem + .8vw, 1.6rem); line-height: 1.15; letter-spacing: -.02em; }
.sector__texto { margin: 0; color: var(--tinta-media); font-size: .98rem; line-height: 1.55; }
.sector__rot {
  margin: .45rem 0 0; font-family: var(--mono); font-size: .68rem; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase; color: var(--morado);
}
.sector__cuida { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.sector__cuida li { position: relative; padding-left: 1.3rem; font-size: .95rem; font-weight: 600; color: var(--tinta); }
.sector__cuida li::before {
  content: ""; position: absolute; left: .2rem; top: .3rem; width: .32rem; height: .62rem;
  border: solid var(--morado); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.sector__prueba { margin-top: auto; padding-top: .9rem; border-top: 1px dashed var(--linea-fuerte); }
.sector__logos { list-style: none; margin: .55rem 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.1rem; }
.sector__logos li { display: flex; align-items: center; justify-content: center; width: 6rem; height: 2.9rem; }
.sector__logos img {
  display: block; max-width: 100%; max-height: 100%; width: auto; height: auto;
  filter: grayscale(1); opacity: .72; transition: filter .3s ease, opacity .3s ease;
}
.sector:hover .sector__logos img, .sectores__mas:hover .sector__logos img { filter: none; opacity: 1; }
.sectores__mas {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 2rem;
  margin-top: 1.4rem; padding: 1rem 1.4rem; border-radius: 16px; background: var(--papel); border: 1px solid var(--linea);
}
.sectores__mas p { margin: 0; color: var(--tinta-media); font-size: .98rem; }
.sectores__mas b { color: var(--tinta); }
.sectores__mas .sector__logos { margin: 0; }
@media (max-width: 760px) {
  .sectores { grid-template-columns: minmax(0, 1fr); }
  .sector { padding: 1.25rem 1.2rem 1.1rem; }
  .sector__logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem .7rem; }
  .sector__logos li { width: auto; height: 2.5rem; }
  .sectores__mas .sector__logos { width: 100%; grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.vitrina {
  position: relative; isolation: isolate; overflow: clip;
  background: var(--morado-noche); color: var(--sobre-oscuro-vivo);
}
.vitrina::before {
  content: ""; position: absolute; inset: -25% -15%; z-index: -1; pointer-events: none;
  background:
    radial-gradient(38rem 26rem at 14% 10%, rgba(155, 46, 140, .45), transparent 62%),
    radial-gradient(36rem 28rem at 88% 90%, rgba(49, 87, 167, .40), transparent 62%),
    radial-gradient(22rem 16rem at 72% 14%, rgba(177, 58, 161, .20), transparent 66%);
}
.vitrina::after {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--lazo);
}
.vitrina h2 { color: #fff; }
.vitrina .entradilla { color: var(--sobre-oscuro); }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .vitrina h2 em { background-image: var(--lazo-claro); }
}
.vitrina__malla {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.25rem;
}
.vitrina__servicio {
  position: relative; grid-column: span 6; display: flex; flex-direction: column;
  background: var(--nieve); color: var(--tinta); border-radius: 18px; overflow: hidden;
  border: 1px solid var(--linea);
  box-shadow: var(--sombra);
  transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease, border-color .35s ease;
}
.vitrina .vitrina__servicio {
  border-color: rgba(255, 255, 255, .08);
  box-shadow: 0 34px 60px -32px rgba(0, 0, 0, .6);
}
@media (min-width: 901px) {
  .vitrina__servicio:nth-child(4n + 1), .vitrina__servicio:nth-child(4n) { grid-column: span 7; }
  .vitrina__servicio:nth-child(4n + 2), .vitrina__servicio:nth-child(4n + 3) { grid-column: span 5; }
}
.vitrina__servicio:hover, .vitrina__servicio:focus-within {
  transform: translateY(-6px); border-color: var(--morado-claro);
  box-shadow: 0 40px 70px -30px rgba(36, 16, 43, .55), 0 0 0 1px var(--morado-claro);
}
.vitrina__servicio:has(.vitrina__ir:focus-visible) { outline: 3px solid var(--acero-hondo); outline-offset: 3px; }
.vitrina .vitrina__servicio:has(.vitrina__ir:focus-visible) { outline-color: var(--sobre-oscuro-vivo); }
.vitrina__escena {
  position: relative; display: grid; place-items: center; height: 17rem; padding: 1.1rem;
  background: linear-gradient(160deg, var(--niebla) 0%, var(--ops-mesa) 100%);
  border-bottom: 1px solid var(--linea); overflow: hidden;
}
.vitrina__escena::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(92, 24, 95, .12) 1px, transparent 1.2px);
  background-size: 14px 14px;
}
.vitrina__cuerpo { flex: 1; display: flex; flex-direction: column; gap: .5rem; padding: 1.35rem 1.5rem 1.1rem; }
.vitrina__para {
  margin: 0; font-family: var(--mono); font-size: .7rem; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase; color: var(--morado);
}
.vitrina__nombre {
  display: flex; align-items: center; gap: .85rem; margin: .15rem 0 .2rem;
  font-size: clamp(1.5rem, 1.05rem + 1.1vw, 2rem); font-weight: 600; line-height: 1.12;
  letter-spacing: -.025em; color: var(--tinta); text-wrap: balance; transition: color .25s ease;
}
.vitrina__nombre .ico { width: 40px; height: 40px; padding: 7px; border-radius: 14px; background: var(--niebla); }
.vitrina__servicio:hover .vitrina__nombre, .vitrina__servicio:focus-within .vitrina__nombre { color: var(--morado-hondo); }
.vitrina__resumen { margin: 0; color: var(--tinta-media); font-size: .96rem; line-height: 1.55; }
.vitrina__incluye { list-style: none; margin: .25rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem 1.2rem; }
.vitrina__incluye li { position: relative; padding-left: 1.15rem; font-size: .88rem; font-weight: 600; color: var(--tinta); }
.vitrina__incluye li::before {
  content: ""; position: absolute; left: .15rem; top: .3rem; width: .3rem; height: .58rem;
  border: solid var(--morado); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.vitrina__ir {
  margin-top: auto; padding-top: .7rem; min-height: 44px; align-self: flex-start;
  display: inline-flex; align-items: center; gap: .45rem;
  font-weight: 600; font-size: .95rem; color: var(--morado-hondo); text-decoration: none;
}
.vitrina__ir::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.vitrina__ir::after { content: "\2192"; transition: transform .25s ease; }
.vitrina__servicio:hover .vitrina__ir::after, .vitrina__servicio:focus-within .vitrina__ir::after { transform: translateX(5px); }
.vitrina .vitrina__servicio.resaltado { animation-name: resaltar-claro; }
@keyframes resaltar-claro {
  0%, 70% { outline-color: var(--sobre-oscuro-vivo); }
  100% { outline-color: transparent; }
}
.vitrina__remate {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem;
  margin-top: 2.2rem; padding: 1.3rem 1.5rem; border-radius: 16px;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14);
}
.vitrina__remate p { margin: 0; max-width: 46ch; color: var(--sobre-oscuro); font-size: 1.02rem; }
.vitrina__remate b { color: #fff; }
@media (min-width: 620px) and (max-width: 900px) {
  .vitrina__servicio { grid-column: 1 / -1; flex-direction: row; }
  .vitrina__escena { width: 44%; flex: none; height: auto; min-height: 15rem; border-bottom: 0; border-right: 1px solid var(--linea); }
}
@media (max-width: 619px) {
  .vitrina__servicio { grid-column: 1 / -1; }
  .vitrina__escena { height: auto; padding: 1.4rem 1rem; }
  .vitrina__cuerpo { padding: 1.2rem 1.2rem 1rem; }
}
.vv {
  position: relative; width: min(100%, 21rem); padding: .8rem .9rem .85rem;
  background: var(--nieve); border: 1px solid var(--ops-borde); border-radius: 12px;
  box-shadow: 0 18px 36px -22px rgba(64, 17, 66, .5);
  font-size: .74rem; color: var(--tinta);
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.vitrina__servicio:hover .vv, .vitrina__servicio:focus-within .vv { transform: translateY(-4px) rotate(-.8deg) scale(1.02); }
.vv p { margin: 0; }
.vv-cab { display: flex; justify-content: space-between; align-items: center; gap: .6rem; margin-bottom: .55rem; }
.vv-tit { font-weight: 600; font-size: .8rem; }
.vv-estado {
  display: inline-flex; align-items: center; gap: .35rem; padding: .14rem .55rem; border-radius: 999px;
  font-size: .66rem; font-weight: 600; white-space: nowrap;
}
.vv-estado::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.vv-estado--ok { background: var(--ops-ok-suave); color: var(--ops-ok); }
.vv-estado--marca { background: var(--niebla); color: var(--morado-hondo); }
.vv-fila {
  display: flex; justify-content: space-between; gap: .8rem; padding: .3rem 0;
  border-top: 1px solid var(--ops-borde); color: var(--ops-tenue);
}
.vv-fila b { color: var(--tinta); font-weight: 600; }
.vv-fila--total { margin-top: .15rem; padding-top: .45rem; border-top: 1.5px solid var(--linea-fuerte); }
.vv-fila--total b { color: var(--morado-hondo); }
.vv-fila--num { display: grid; grid-template-columns: minmax(0, 1fr) auto 4.6rem; font-variant-numeric: tabular-nums; }
.vv-fila--num span + span, .vv-fila--num b { text-align: right; font-family: var(--mono); font-size: .7rem; }
.vv-fila--num b { color: var(--morado-hondo); font-weight: 500; }
.vv-fila--rot { font-size: .6rem; letter-spacing: .06em; text-transform: uppercase; border-top: 0; }
.vv-fila--rot span + span { font-family: var(--sans); font-size: .6rem; }
.vv-fila--rot span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vv .vv-sello {
  display: flex; align-items: center; gap: .45rem; margin-top: .5rem; padding: .4rem .6rem;
  border-radius: 8px; background: var(--ops-ok-suave); color: var(--ops-ok); font-weight: 600; font-size: .72rem;
}
.vv-sello::before {
  content: ""; width: .28rem; height: .52rem; margin: -.15rem .1rem 0 .15rem;
  border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.vv .vv-equipo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-bottom: .55rem; }
.vv-equipo i { width: 1rem; height: 1rem; border-radius: 50%; background: var(--acero-claro); }
.vv-equipo i:nth-child(3n + 1) { background: var(--morado-claro); }
.vv-equipo i:nth-child(3n + 2) { background: var(--linea-fuerte); }
.vv-equipo span { margin-left: .4rem; font-weight: 600; color: var(--tinta-media); }
.vv .vv-quien { font-family: var(--mono); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ops-tenue); margin-bottom: .15rem; }
.vv-rank { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) 1.6rem; gap: .55rem; align-items: center; padding: .28rem 0; }
.vv-ini {
  display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
  background: var(--niebla); color: var(--morado-hondo); font-weight: 600; font-size: .72rem;
}
.vv-rank b { font-family: var(--mono); font-weight: 500; text-align: right; }
.vv-barra { position: relative; height: .45rem; border-radius: 999px; background: var(--ops-mesa); overflow: hidden; }
.vv-barra::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: 0; border-radius: inherit;
  background: var(--lazo); transform-origin: left center;
}
.vv-barra--1::after { width: 92%; }
.vv-barra--2::after { width: 87%; }
.vv-barra--3::after { width: 81%; }
.vv .vv-cita { margin-top: .45rem; font-style: italic; color: var(--ops-tenue); }
.vv-curva { display: block; width: 100%; height: auto; overflow: visible; }
.vv-curva path { fill: none; stroke-linecap: round; }
.vv-curva__base { stroke: var(--linea); stroke-width: 10; }
.vv-curva__trazo { stroke: var(--morado); stroke-width: 10; }
.vv-punto { transform-box: fill-box; transform-origin: center; fill: var(--nieve); stroke: var(--acero); stroke-width: 6; }
.vv-punto--fin { fill: var(--morado); stroke: var(--nieve); stroke-width: 7; }
.vv .vv-etapas { display: flex; justify-content: space-between; gap: .3rem; margin-top: .35rem; font-size: .62rem; color: var(--ops-tenue); }
.vv-etapas b { color: var(--morado-hondo); }
@media (prefers-reduced-motion: no-preference) {
  .vitrina::before { animation: vitrina-luz 26s ease-in-out infinite alternate; }
  .vitrina:hover::before, .vitrina:focus-within::before { animation-play-state: paused; }
  @supports (animation-timeline: view()) {
    .vitrina__servicio { view-timeline: --tarjeta block; }
    .vitrina__servicio {
      animation: vitrina-sube linear both; animation-timeline: view();
      animation-range: entry 0% entry 35%;
    }
    .vv { animation: vv-entra linear both; animation-timeline: --tarjeta; animation-range: entry 10% entry 60%; }
    .vv-fila, .vv-rank, .vv-sello, .vv-cita, .vv-etapas, .vv-quien {
      animation: vv-fila linear both; animation-timeline: --tarjeta; animation-range: entry 35% entry 75%;
    }
    .vv-fila:nth-of-type(n + 4), .vv-rank:nth-of-type(n + 3) { animation-range: entry 45% entry 85%; }
    .vv-sello, .vv-cita, .vv-fila--total, .vv-etapas { animation-range: entry 60% entry 100%; }
    .vv-equipo i { animation: vv-pop linear both; animation-timeline: --tarjeta; animation-range: entry 25% entry 60%; }
    .vv-equipo i:nth-child(n + 5) { animation-range: entry 30% entry 65%; }
    .vv-equipo i:nth-child(n + 9) { animation-range: entry 35% entry 70%; }
    .vv-barra::after { animation: vv-llena linear both; animation-timeline: --tarjeta; animation-range: entry 40% entry 90%; }
    .vv-curva__trazo { stroke-dasharray: 1; animation: vv-traza linear both; animation-timeline: --tarjeta; animation-range: entry 25% entry 90%; }
    .vv-punto { animation: vv-pop linear both; animation-timeline: --tarjeta; animation-range: entry 55% entry 95%; }
  }
}
@keyframes vitrina-luz { to { transform: translate3d(5%, -4%, 0) scale(1.1); } }
@keyframes vitrina-sube { from { opacity: 0; translate: 0 40px; } }
@keyframes vv-entra { from { opacity: 0; translate: 0 22px; scale: .96; } }
@keyframes vv-fila { from { opacity: 0; transform: translateY(8px); } }
@keyframes vv-pop { from { opacity: 0; transform: scale(.3); } }
@keyframes vv-llena { from { transform: scaleX(0); } }
@keyframes vv-traza { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.portada { padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(2.25rem, 4vw, 3.5rem); }
.portada h1 { font-size: clamp(2.4rem, 1.2rem + 3.8vw, 4.1rem); line-height: 1.02; text-wrap: balance; }
.portada h1 em { display: block; }
.portada .cifras {
  margin: clamp(1.8rem, 3vw, 2.4rem) 0 0; gap: 1rem 1.6rem;
  grid-template-columns: repeat(4, minmax(0, max-content));
}
.portada .cifra { gap: .25rem; padding-top: .7rem; border-image: var(--lazo-claro) 1; }
.portada .cifra__n { font-size: clamp(1.7rem, 1.1rem + 1.4vw, 2.3rem); color: #fff; }
.portada .cifra__que { font-size: .78rem; line-height: 1.35; color: var(--sobre-oscuro); }
@media (max-width: 560px) {
  .portada .cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.escena__estado {
  position: absolute; z-index: 2; top: 1.4rem; left: -1.6rem; width: min(17.5rem, 70%);
  padding: .8rem .95rem .85rem; border-radius: 14px; background: var(--nieve);
  box-shadow: 0 24px 44px -22px rgba(20, 6, 22, .7); font-size: .8rem; color: var(--tinta);
}
.escena__estado-cab {
  margin: 0 0 .5rem; display: flex; justify-content: space-between; align-items: center; gap: .6rem;
  font-weight: 600; font-size: .82rem;
}
.escena__estado ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.escena__estado li { position: relative; padding-left: 1.35rem; color: var(--tinta-media); }
.escena__estado li::before {
  content: ""; position: absolute; left: .25rem; top: .22rem; width: .28rem; height: .55rem;
  border: solid var(--ops-ok); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
@media (max-width: 939px) { .escena__estado { left: .8rem; top: .8rem; } }
@media (max-width: 560px) { .escena__estado { width: min(15rem, 78%); font-size: .74rem; padding: .65rem .75rem; } }
.clientes--oscura {
  background: var(--morado-noche); padding-block: 1.1rem clamp(2.2rem, 4vw, 3rem);
  border-top: 1px solid rgba(255, 255, 255, .08);
}
.clientes--oscura .rotulo { color: var(--sobre-oscuro); margin-bottom: 1.4rem; }
.clientes--oscura .cliente { background: var(--nieve); border-color: transparent; box-shadow: 0 10px 24px -16px rgba(0, 0, 0, .6); }
.clientes--oscura .promesa {
  margin-top: clamp(1.6rem, 3vw, 2.2rem);
  background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .14);
}
.clientes--oscura .promesa__tit { color: var(--sobre-oscuro); }
.clientes--oscura .promesa .valor { color: #fff; border-left-color: rgba(255, 255, 255, .16); }
.clientes--oscura .promesa .valor .ico__t { stroke: var(--acero-claro); }
.clientes--oscura .promesa .valor .ico__cinta { stroke: var(--morado-claro); }
@media (prefers-reduced-motion: no-preference) {
  .escena__estado { animation: flotar 6s ease-in-out .4s infinite alternate-reverse; }
  .escena:hover .escena__estado { animation-play-state: paused; }
}
.presencia {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  gap: clamp(2rem, 5vw, 4rem); align-items: center;
}
.presencia__mapa {
  padding: 1.2rem 1.3rem 1.3rem; border-radius: 22px; border: 1px solid var(--linea);
  background: linear-gradient(160deg, var(--niebla) 0%, var(--nieve) 72%); box-shadow: var(--sombra);
}
.presencia .mapa { padding: .6rem 0 1.1rem; }
.presencia .mapa__svg { max-width: 19rem; }
.presencia .mapa__base { fill: rgba(155, 46, 140, .06); }
.mapa__onda { fill: none; stroke: var(--morado); stroke-width: 2; transform: scale(0); transform-box: fill-box; transform-origin: center; }
.presencia__oficinas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.presencia__oficinas li {
  display: flex; flex-direction: column; gap: .2rem; padding: .75rem .85rem;
  background: var(--nieve); border: 1px solid var(--linea); border-radius: 12px;
}
.presencia__oficinas b { font-size: .98rem; color: var(--tinta); }
.presencia__oficinas li > span { font-size: .8rem; line-height: 1.35; color: var(--tinta-media); }
.presencia__oficinas a {
  margin-top: auto; padding-top: .3rem; display: inline-flex; align-items: center; gap: .35rem;
  font-size: .84rem; font-weight: 600; color: var(--morado-hondo); text-decoration: none;
}
.presencia__oficinas a::after { content: "\2192"; transition: transform .2s ease; }
.presencia__oficinas a:hover { text-decoration: underline; }
.presencia__oficinas a:hover::after { transform: translateX(3px); }
@media (pointer: coarse) { .presencia__oficinas a { min-height: 44px; } }
@media (max-width: 860px) {
  .presencia { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .presencia__oficinas { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .presencia__oficinas li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .8rem; align-items: center; }
  .presencia__oficinas b, .presencia__oficinas li > span { grid-column: 1; }
  .presencia__oficinas a { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; }
}
.premios__hitos { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: .5rem; max-width: 30rem; }
.premios__hito {
  display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: .8rem; align-items: baseline;
  padding: .65rem .9rem; border-radius: 12px; border: 1px solid var(--linea);
  background: var(--papel); color: var(--tinta-media);
}
.premios__hito b { font-family: var(--mono); font-weight: 500; font-size: 1rem; color: inherit; }
.premios__hito span { display: grid; gap: .05rem; }
.premios__hito strong { font-size: .95rem; font-weight: 600; color: inherit; line-height: 1.3; }
.premios__hito small { font-size: .82rem; color: inherit; opacity: .9; }
@media (prefers-reduced-motion: no-preference) {
  .mapa__onda { animation: onda-ciudad 2.8s ease-out infinite; }
  .mapa__ciudades .mapa__onda:nth-child(4) { animation-delay: .9s; }
  .mapa__ciudades .mapa__onda:nth-child(7) { animation-delay: 1.8s; }
  .presencia:focus-within .mapa__onda { animation-play-state: paused; }
  .premios__hitos--2 .premios__hito { animation: hito-2 10s linear infinite; }
  .premios__hitos--2 .premios__hito:nth-child(2) { animation-delay: -5s; }
  .premios__hitos--3 .premios__hito { animation: hito-3 15s linear infinite; }
  .premios__hitos--3 .premios__hito:nth-child(2) { animation-delay: -10s; }
  .premios__hitos--3 .premios__hito:nth-child(3) { animation-delay: -5s; }
  .premios__hitos--4 .premios__hito { animation: hito-4 20s linear infinite; }
  .premios__hitos--4 .premios__hito:nth-child(2) { animation-delay: -15s; }
  .premios__hitos--4 .premios__hito:nth-child(3) { animation-delay: -10s; }
  .premios__hitos--4 .premios__hito:nth-child(4) { animation-delay: -5s; }
  .premios__hitos--5 .premios__hito { animation: hito-5 25s linear infinite; }
  .premios__hitos--5 .premios__hito:nth-child(2) { animation-delay: -20s; }
  .premios__hitos--5 .premios__hito:nth-child(3) { animation-delay: -15s; }
  .premios__hitos--5 .premios__hito:nth-child(4) { animation-delay: -10s; }
  .premios__hitos--5 .premios__hito:nth-child(5) { animation-delay: -5s; }
  .premios__hitos--6 .premios__hito { animation: hito-6 30s linear infinite; }
  .premios__hitos--6 .premios__hito:nth-child(2) { animation-delay: -25s; }
  .premios__hitos--6 .premios__hito:nth-child(3) { animation-delay: -20s; }
  .premios__hitos--6 .premios__hito:nth-child(4) { animation-delay: -15s; }
  .premios__hitos--6 .premios__hito:nth-child(5) { animation-delay: -10s; }
  .premios__hitos--6 .premios__hito:nth-child(6) { animation-delay: -5s; }
  .premios__duo:hover .premios__hitos--2 .premios__hito,
  .premios__duo:hover .premios__hitos--3 .premios__hito,
  .premios__duo:hover .premios__hitos--4 .premios__hito,
  .premios__duo:hover .premios__hitos--5 .premios__hito,
  .premios__duo:hover .premios__hitos--6 .premios__hito,
  .premios__duo:hover .relevo .relevo__pieza,
  .premios__duo:focus-within .relevo .relevo__pieza { animation-play-state: paused; }
}
@keyframes onda-ciudad {
  0% { transform: scale(1); opacity: .7; }
  100% { transform: scale(3.4); opacity: 0; }
}
@keyframes hito-2 {
  0%, 44% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
  50%, 94% { background-color: var(--papel); border-color: var(--linea); color: var(--tinta-media); }
  100% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
}
@keyframes hito-3 {
  0%, 29.33% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
  33.33%, 96% { background-color: var(--papel); border-color: var(--linea); color: var(--tinta-media); }
  100% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
}
@keyframes hito-4 {
  0%, 22% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
  25%, 97% { background-color: var(--papel); border-color: var(--linea); color: var(--tinta-media); }
  100% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
}
@keyframes hito-5 {
  0%, 17.6% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
  20%, 97.6% { background-color: var(--papel); border-color: var(--linea); color: var(--tinta-media); }
  100% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
}
@keyframes hito-6 {
  0%, 14.67% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
  16.67%, 98% { background-color: var(--papel); border-color: var(--linea); color: var(--tinta-media); }
  100% { background-color: var(--niebla); border-color: var(--morado-claro); color: var(--morado-hondo); }
}
