.entrada {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 300;
  height: 100vh;
  height: 100dvh;
  place-items: center;
  background: #ffffff;
}
.con-intro .entrada { display: grid; }
.con-intro .marca-logo { opacity: 0; }

.entrada-centro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 0 24px;
  text-align: center;
  transform: translateY(-9vh);
}
.entrada-logo {
  width: min(420px, 60vw, 36vh);
  height: auto;
  will-change: transform;
}
.entrada-linea {
  display: block;
  width: min(260px, 50vw);
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--dorado), transparent);
}
.entrada-texto {
  margin: 0;
  max-width: none;
  font-family: var(--fuente-titulos);
  font-weight: 700;
  font-size: clamp(1.4rem, 3.8vw, 2.5rem);
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.25;
  color: var(--azul);
  perspective: 600px;
}
.entrada-texto .w { display: inline-block; white-space: nowrap; }
.entrada-texto .l { display: inline-block; }

.pal {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: .06em 0 .12em;
  margin-bottom: -.12em;
}
.pal-in { display: inline-block; will-change: transform; }

.seccion::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--dorado-claro), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.4s cubic-bezier(.2, .8, .2, 1);
}
.seccion.en-vista::after { transform: scaleX(1); }

.bloque, .servicio { position: relative; overflow: hidden; }
.bloque.brilla::after,
.servicio.brilla::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -70%;
  width: 45%;
  pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(246, 233, 171, .22), transparent);
  transform: skewX(-18deg);
  animation: barrido 1.3s ease-out 1;
}
@keyframes barrido {
  from { left: -70%; }
  to   { left: 140%; }
}

@media (prefers-reduced-motion: reduce) {
  .entrada { display: none !important; }
  .con-intro .marca-logo { opacity: 1; }
  .seccion::after { transform: scaleX(1); transition: none; }
}