.hero {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 92vh;
    padding-top: calc(var(--navbar-altura) + 24px);
    overflow: hidden;
    isolation: isolate;
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        radial-gradient(72% 90% at -12% 45%, rgba(94, 124, 184, .30), rgba(94, 124, 184, .10) 45%, rgba(94, 124, 184, 0) 80%),
        radial-gradient(64% 82% at 112% 58%, rgba(94, 124, 184, .17), rgba(94, 124, 184, .06) 46%, rgba(94, 124, 184, 0) 80%),
        radial-gradient(40% 34% at 104% 6%, rgba(94, 124, 184, .08), rgba(94, 124, 184, 0) 64%);
    pointer-events: none;
}

.hero-atmosfera { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.hero-deco { position: absolute; inset: 0; width: 100%; height: 100%; }
.hd-movil { display: none; }

.hd-marcos rect {
    fill: none;
    stroke: var(--texto);
    stroke-width: 1.2;
    opacity: .12;
    transform-box: fill-box;
    animation: hd-flotar 11s ease-in-out infinite alternate;
}
.hd-marcos rect:nth-child(2) { animation-delay: -3s; animation-duration: 13s; }
.hd-marcos rect:nth-child(3) { animation-delay: -6s; }
.hd-marcos rect:nth-child(4) { animation-delay: -9s; animation-duration: 9s; }

.hd-solidos rect { fill: var(--texto); opacity: .07; }
.hd-solidos .hd-acento { fill: var(--acento); opacity: .9; filter: drop-shadow(0 0 6px rgba(94, 124, 184, .9)); }

.hd-trazos polyline { fill: none; stroke: var(--texto); stroke-width: 1; opacity: .08; }

.hd-flujos polyline {
    fill: none;
    stroke: var(--acento);
    stroke-width: 1.6;
    stroke-linecap: round;
    opacity: .85;
    stroke-dasharray: 52 640;
    filter: drop-shadow(0 0 4px rgba(94, 124, 184, .8));
    animation: hd-fluir 8s linear infinite;
}
.hd-flujos polyline:nth-child(2) { animation-duration: 10s; animation-delay: -4s; }
.hd-flujos polyline:nth-child(3) { animation-duration: 7s; animation-delay: -2s; }
.hd-flujos polyline:nth-child(4) { animation-duration: 12s; animation-delay: -7s; }

@keyframes hd-fluir { from { stroke-dashoffset: 692; } to { stroke-dashoffset: 0; } }
@keyframes hd-flotar { from { transform: translateY(-7px); } to { transform: translateY(7px); } }

.hero-inner { margin: auto; max-width: 780px; padding-inline: 22px; text-align: center; }

.hero-titulo {
    font-size: clamp(2.2rem, 5vw, 3.8rem);
    line-height: 1.06;
    letter-spacing: -.03em;
    color: var(--texto);
}
.hero-titulo .ht-suave { color: var(--texto-suave); }

.hero-bajada {
    margin: 1.4rem auto 0;
    max-width: 600px;
    font-size: clamp(1rem, 1.5vw, 1.12rem);
    color: var(--texto-suave);
}

.hero-cta { margin-top: 2.1rem; display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }

@media (max-width: 767.98px) {
    .hero { min-height: 80vh; }
    .hero-cta .boton { flex: 1 1 auto; }
    .hd-escritorio { display: none; }
    .hd-movil { display: inline; }
}

@media (prefers-reduced-motion: reduce) {
    .hd-marcos rect, .hd-flujos polyline { animation: none; }
    .hd-flujos polyline { stroke-dasharray: none; opacity: .25; filter: none; }
}
