/* Isolado do restante da home. Contrato de extensão: docs/carrossel-topo.md. */
.home-hero { position: relative; overflow: hidden; --hero-direction: 1; }
.home-hero__viewport { display: grid; overflow: hidden; }
.home-hero__slide { grid-area: 1 / 1; min-width: 0; position: relative; visibility: hidden; pointer-events: none; }
.home-hero__slide.is-active { visibility: visible; pointer-events: auto; z-index: 2; }
.home-hero[data-hero-ready] .home-hero__slide { transition: transform 950ms cubic-bezier(.22,.7,.2,1); }
.home-hero__slide.is-before { transform: translateX(-100%); }
.home-hero__slide.is-after { transform: translateX(100%); }
.home-hero__slide.is-active { transform: translateX(0); }
.home-hero__slide.is-leaving { visibility: visible; z-index: 1; }
.home-hero[data-hero-ready] .home-hero__slide.is-preparing { transition: none; }
.home-hero__slide.is-entering [data-hero-layer] { animation: hero-layer-arrive 850ms cubic-bezier(.2,.75,.2,1) both; animation-delay: calc(var(--hero-layer, 0) * 65ms); }
@keyframes hero-layer-arrive {
    from { opacity: 0; translate: calc(var(--hero-direction) * 65px) 0; }
    to { opacity: 1; translate: 0 0; }
}
.home-hero__slide:not(.is-active) .hero-word,
.home-hero__slide:not(.is-active) .hero-profession-track { animation-play-state: paused; }
.home-hero__controls { position: absolute; bottom: 18px; left: 50%; translate: -50% 0; z-index: 5; display: flex; align-items: center; gap: 7px; border: 1px solid #d6e3fa; border-radius: 99px; padding: 5px 9px; background: rgba(255,255,255,.92); color: #2854a4; box-shadow: 0 6px 22px #123c7710; }
.home-hero__controls[hidden] { display: none; }
.home-hero__controls [hidden] { display: none; }
.home-hero__controls button { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.home-hero__controls button:hover { background: #eaf0ff; }
.home-hero__controls button:focus-visible { outline: 2px solid #5b62da; outline-offset: 2px; }
.home-hero__controls .fa-angle-left, .home-hero__controls .fa-angle-right { font-size: 23px; }
.home-hero__dots { display: flex; align-items: center; }
.home-hero__dots button { width: 27px; }
.home-hero__dots span { width: 7px; height: 7px; border-radius: 20px; background: #b4c7e7; transition: width .25s, background .25s; }
.home-hero__dots [aria-pressed="true"] span { width: 21px; background: linear-gradient(100deg, #1698ed, #775be6); }
.home-hero__count { padding: 0 8px; font-size: 11px; font-weight: 800; letter-spacing: .05em; white-space: nowrap; }
.home-hero[data-hero-theme="dark"] .home-hero__controls { background: #123b80; border-color: #ffffff35; color: #fff; }
.home-hero[data-hero-theme="dark"] .home-hero__controls button:hover { background: #ffffff18; }

/* Rota visual: o desenho completa o percurso no mesmo tempo da troca automática. */
.hero-route-stage { position: relative; isolation: isolate; }
.hero-route-stage > .container { position: relative; z-index: 2; }
.hero-connection-route {
    position: absolute;
    inset: 72px 0 0;
    z-index: 1;
    width: 100%;
    height: calc(100% - 72px);
    overflow: visible;
    pointer-events: none;
}
.hero-connection-route__base,
.hero-connection-route__progress {
    vector-effect: non-scaling-stroke;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-dasharray: 5 9;
}
.hero-connection-route__base { stroke: #859de1; opacity: .16; }
.hero-connection-route--dark .hero-connection-route__base {
    stroke: #8cdff3;
    stroke-width: 2;
    opacity: .3;
    filter: drop-shadow(0 0 3px #5bcaf744);
}
.hero-connection-route__progress { opacity: .9; stroke-dashoffset: 0; }
.hero-connection-route--dark .hero-connection-route__progress {
    stroke-width: 2.25;
    opacity: 1;
    filter: drop-shadow(0 0 4px #74dbf466);
}
.hero-connection-route__stacked { display: none; }
.hero-connection-route__reveal {
    stroke-dasharray: 1 1;
    stroke-dashoffset: 1;
}
.hero-connection-route__points { fill: #fff; stroke: #8c9ff1; stroke-width: 2; opacity: .26; }
.hero-connection-route--dark .hero-connection-route__points { fill: #80e3ed; stroke: #d9e5ff; }
.home-hero__slide.is-route-running .hero-connection-route__reveal {
    animation: hero-route-reveal var(--hero-route-duration, 15000ms) linear both;
}
.home-hero__slide.is-route-running .hero-connection-route__progress {
    animation: hero-route-dashes 2600ms linear infinite;
}
.home-hero__slide.is-route-running .hero-connection-route__points {
    animation: hero-route-points 2600ms ease-in-out infinite;
}
.home-hero__slide.is-route-paused .hero-connection-route__reveal,
.home-hero__slide.is-route-paused .hero-connection-route__base,
.home-hero__slide.is-route-paused .hero-connection-route__progress,
.home-hero__slide.is-route-paused .hero-connection-route__points {
    animation-play-state: paused;
}
@media (min-width: 992px) {
    .hero-connection-route__stacked * { animation: none !important; }
}
@keyframes hero-route-reveal {
    from { stroke-dashoffset: 1; }
    to { stroke-dashoffset: 0; }
}
@keyframes hero-route-dashes {
    to { stroke-dashoffset: -56; }
}
@keyframes hero-route-points {
    0%, 100% { opacity: .22; }
    50% { opacity: .62; }
}

/* Apresentação existente: mantém seus objetos e suas regras de posicionamento. */
.home-hero__slide--plataforma { background: #103e85; }
.home-hero__slide--plataforma .hero-section { height: 100%; padding: 150px 0 86px; }
.home-hero__slide--plataforma .platform-hero-title { margin: 0 0 26px; color: white; font-family: 'Space Grotesk', sans-serif; font-size: clamp(40px, 4.2vw, 60px); line-height: 1.05; letter-spacing: -.04em; }
.home-hero__slide--plataforma .hero-word-cycle { font-size: .82em; }
.home-hero__slide--plataforma .hero-word--first,
.home-hero__slide--plataforma .hero-word--second,
.home-hero__slide--plataforma .hero-word--third {
    color: #27dc7d;
    background: repeating-linear-gradient(
        180deg,
        #32e98b 0 4px,
        #26dc7c 4px 7px,
        #16c969 7px 10px
    );
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 700;
    filter: drop-shadow(0 7px 10px rgba(15, 162, 89, .18));
}
.home-hero__slide--plataforma .hero-copy > p { font-size: 16px; line-height: 1.8; }
.home-hero__slide--plataforma .hero-actions { gap: 12px; flex-wrap: wrap; }
.home-hero__slide--plataforma .hero-actions a { padding: 0 22px; }

/* Elementos periféricos flutuam; a tela principal permanece estável. */
.platform-hero-float {
    --platform-cloud-distance: 1;
    animation: platform-cloud-drift var(--platform-cloud-duration, 15s) ease-in-out infinite;
    animation-delay: var(--platform-cloud-phase, -3s);
    animation-play-state: paused;
    will-change: auto;
}
.home-hero.is-in-view .home-hero__slide.is-active .platform-hero-float {
    animation-play-state: running;
    will-change: transform;
}
.platform-hero-float--banner { --platform-cloud-x: 13px; --platform-cloud-y: -9px; --platform-cloud-duration: 22s; --platform-cloud-phase: -6s; }
.platform-hero-float--left { --platform-cloud-x: -16px; --platform-cloud-y: -14px; --platform-cloud-duration: 19s; --platform-cloud-phase: -2s; }
.platform-hero-float--bottom { --platform-cloud-x: 14px; --platform-cloud-y: -13px; --platform-cloud-duration: 24s; --platform-cloud-phase: -11s; }
.platform-hero-float--orbit { --platform-cloud-x: -12px; --platform-cloud-y: -17px; --platform-cloud-duration: 18s; --platform-cloud-phase: -8s; }
.platform-hero-float--note { --platform-cloud-x: 14px; --platform-cloud-y: -12px; --platform-cloud-duration: 21s; --platform-cloud-phase: -4s; }
@keyframes platform-cloud-drift {
    0%, 100% { transform: translate3d(0, 0, 0); }
    29% { transform: translate3d(calc(var(--platform-cloud-x, 12px) * var(--platform-cloud-distance)), calc(var(--platform-cloud-y, -12px) * var(--platform-cloud-distance)), 0); }
    61% { transform: translate3d(calc(var(--platform-cloud-x, 12px) * var(--platform-cloud-distance) * -.72), calc(var(--platform-cloud-y, -12px) * var(--platform-cloud-distance) * .38), 0); }
    82% { transform: translate3d(calc(var(--platform-cloud-x, 12px) * var(--platform-cloud-distance) * .30), calc(var(--platform-cloud-y, -12px) * var(--platform-cloud-distance) * -.55), 0); }
}

/* Rede: composição em camadas usando os assets de public/img/panel/web. */
.home-hero__slide--rede { background: #f6faff; }
.network-hero { height: 100%; padding: 144px 0 86px; overflow: hidden; background: radial-gradient(ellipse at 80% 30%, #b8eeed88, transparent 44%), radial-gradient(ellipse at 80% 80%, #d8d4fa99, transparent 44%), linear-gradient(115deg, #fff, #f3f8ff 60%, #f9fbff); }
.network-hero__layout { display: grid; grid-template-columns: 48% 52%; grid-template-rows: auto auto; align-items: center; position: relative; }
.network-hero__layout::before, .network-hero__layout::after { content: none; }
.network-hero__copy { position: relative; z-index: 2; padding: 0 14px 12px 0; }
.network-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; margin-bottom: 20px; border: 1px solid #dce8fc; border-radius: 99px; padding: 7px 12px; background: #f0f6ffb3; color: #365f9c; font-size: 10px; line-height: 1.5; }
.network-hero__eyebrow > span { flex-shrink: 0; text-transform: uppercase; font-weight: 800; color: #0969ef; }
.network-hero__title { color: #10204e; font-family: 'Space Grotesk', sans-serif; font-size: clamp(38px, 4.2vw, 58px); line-height: 1.06; letter-spacing: -.045em; font-weight: 700; margin: 0 0 20px; }
.network-hero__title > span {
    display: block;
    color: #1479f4;
    background: repeating-linear-gradient(
        180deg,
        #278bff 0 4px,
        #1479f4 4px 7px,
        #0764df 7px 10px
    );
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 7px 10px rgba(7, 92, 206, .16));
}
.network-hero__description { max-width: 490px; color: #637294; font-size: 16px; line-height: 1.8; margin: 0 0 24px; }
.network-hero__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.network-hero__actions .btn-primary-hero { min-height: 48px; padding: 0 22px; color: #fff; font-size: 13px; gap: 16px; }
.network-hero__actions .btn-primary-hero .fa { margin: 0; font-size: 20px; }
.network-hero__secondary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 19px; border: 1px solid #bcd2ff; border-radius: 99px; color: #195bd0; background: #ffffff70; font-size: 12px; font-weight: 800; }
.network-hero__secondary:hover { background: #fff; color: #334cba; text-decoration: none; }
.network-hero__secondary:focus-visible { outline: 3px solid #775be6; outline-offset: 3px; }
.network-hero__scene { grid-column: 2; grid-row: 1 / 3; position: relative; align-self: center; aspect-ratio: 1 / 1.02; width: 108%; margin-left: -4%; }
.network-hero__halo { position: absolute; inset: 7% 4% 9% 2%; border-radius: 45% 55% 42% 58%; background: radial-gradient(ellipse at 65% 35%, #bceef1, #cbdfff88 58%, #d2cff320); }
.network-hero__person { position: absolute; z-index: 2; height: 79%; width: auto; max-width: 74%; object-fit: contain; bottom: 0; left: 18%; filter: drop-shadow(0 18px 22px #416aa126); }
.network-hero__widget { position: absolute; z-index: 3; object-fit: contain; height: auto; filter: drop-shadow(0 12px 20px #365b8820); }
.network-hero__widget--agenda { width: 29%; left: 0; top: 20%; }
.network-hero__widget--chamada { width: 28%; left: 0; top: 44%; }
.network-hero__widget--jogos { width: 28%; right: 0; top: 35%; }
.network-hero__widget--relatorios { width: 28%; right: 0; top: 51%; }
.network-hero__widget--documentos { width: 28%; right: 0; top: 66%; }
.network-hero__avatar { display: flex; align-items: center; gap: 6px; position: absolute; z-index: 3; }
.network-hero__avatar img { width: 100%; height: auto; border: 3px solid white; border-radius: 50%; box-shadow: 0 8px 24px #4479c321; }
.network-hero__avatar span { flex-shrink: 0; border-radius: 10px; background: #ffffffdf; padding: 9px 10px; color: #244273; font-size: 10px; line-height: 1.4; }
.network-hero__avatar--one { width: 11%; top: 4%; left: 16%; }
.network-hero__avatar--two { width: 10%; top: 10%; right: 18%; }
.network-hero__avatar--three { width: 8%; top: 24%; right: 15%; }
.network-hero__signature { position: absolute; right: 0; top: 0; color: #3c71c8; font-style: italic; font-family: 'Space Grotesk', sans-serif; font-size: 14px; line-height: 1.1; transform: rotate(-8deg); text-align: center; }
.network-hero__note-position { position: absolute; z-index: 4; bottom: 4%; left: 31%; width: 40%; }
.network-hero__connection-note { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid white; border-radius: 14px; background: #fffffff0; color: #314985; box-shadow: 0 10px 25px #18326c16; font-size: 10px; }
.network-hero__connection-note .fa { font-size: 25px; color: #7763e7; }
.network-hero__connection-note strong { display: block; margin-bottom: 3px; font-size: 11px; }
.network-hero__benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; grid-column: 1; position: relative; z-index: 3; width: 115%; margin-top: 20px; }
.network-hero__benefits article { display: flex; gap: 10px; padding: 17px 12px; border: 1px solid #ffffffee; border-radius: 18px; background: #ffffffd9; box-shadow: 0 10px 25px #57729e09; }
.network-hero__benefits h3 { font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 800; color: #183971; line-height: 1.3; margin: 0 0 7px; }
.network-hero__benefits p { font-size: 10px; line-height: 1.5; color: #657298; margin: 0; }
.network-hero__benefit-icon { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 38px; border-radius: 12px; background: #e4f0ff; color: #1876ec; font-size: 18px; }
.network-hero__benefits article:nth-child(2) .network-hero__benefit-icon { color: #8043e7; background: #eee6ff; }
.network-hero__benefits article:nth-child(3) .network-hero__benefit-icon { color: #159c64; background: #e0f7e9; }

/* A entrada pertence ao invólucro; a flutuação contínua, ao conteúdo interno. */
.network-hero__drift {
    --cloud-distance: 1;
    animation: network-cloud-drift var(--cloud-duration, 14s) ease-in-out infinite;
    animation-delay: var(--cloud-phase, -3s);
    animation-play-state: paused;
}
.home-hero.is-in-view .home-hero__slide.is-active .network-hero__drift { animation-play-state: running; }
.network-hero__widget > img { display: block; width: 100%; height: auto; }
.network-hero__avatar > .network-hero__drift { display: flex; align-items: center; gap: 6px; width: 100%; }
.network-hero__widget--agenda { --cloud-x: 15px; --cloud-y: -17px; --cloud-duration: 19s; --cloud-phase: -2s; }
.network-hero__widget--chamada { --cloud-x: -14px; --cloud-y: -15px; --cloud-duration: 23s; --cloud-phase: -8s; }
.network-hero__widget--jogos { --cloud-x: -16px; --cloud-y: -12px; --cloud-duration: 18s; --cloud-phase: -5s; }
.network-hero__widget--relatorios { --cloud-x: 14px; --cloud-y: -15px; --cloud-duration: 21s; --cloud-phase: -10s; }
.network-hero__widget--documentos { --cloud-x: -12px; --cloud-y: -14px; --cloud-duration: 24s; --cloud-phase: -4s; }
.network-hero__avatar--one { --cloud-x: -14px; --cloud-y: -16px; --cloud-duration: 21s; --cloud-phase: -6s; }
.network-hero__avatar--two { --cloud-x: 13px; --cloud-y: -18px; --cloud-duration: 18s; --cloud-phase: -9s; }
.network-hero__avatar--three { --cloud-x: -12px; --cloud-y: -14px; --cloud-duration: 20s; --cloud-phase: -1s; }
.network-hero__note-position { --cloud-x: 12px; --cloud-y: -12px; --cloud-duration: 24s; --cloud-phase: -11s; }
@keyframes network-cloud-drift {
    0%, 100% { transform: translate3d(0, 0, 0); }
    28% { transform: translate3d(calc(var(--cloud-x, 13px) * var(--cloud-distance)), calc(var(--cloud-y, -14px) * var(--cloud-distance)), 0); }
    59% { transform: translate3d(calc(var(--cloud-x, 13px) * var(--cloud-distance) * -.74), calc(var(--cloud-y, -14px) * var(--cloud-distance) * .36), 0); }
    83% { transform: translate3d(calc(var(--cloud-x, 13px) * var(--cloud-distance) * .32), calc(var(--cloud-y, -14px) * var(--cloud-distance) * -.52), 0); }
}

@media (max-width: 1199px) and (min-width: 992px) {
    .network-hero__title { font-size: 47px; }
    .network-hero__benefits article { flex-direction: column; }
    .home-hero__slide--plataforma .platform-hero-title { font-size: 49px; }
    .home-hero__slide--plataforma .hero-copy > p { font-size: 15px; }
}
@media (max-width: 991px) {
    .hero-connection-route__wide * { animation: none !important; }
    .hero-connection-route__wide { display: none; }
    .hero-connection-route__stacked { display: inline; }
    .network-hero, .home-hero__slide--plataforma .hero-section { padding: 150px 0 86px; }
    .network-hero__layout { grid-template-columns: 1fr; }
    .network-hero__copy { padding: 0; }
    .network-hero__title { max-width: 650px; font-size: clamp(36px, 6.5vw, 54px); }
    .network-hero__description { max-width: 650px; }
    .network-hero__scene { grid-column: 1; grid-row: 2; width: 100%; max-width: 570px; margin: 24px auto 0; }
    .network-hero__benefits { grid-row: 3; width: 100%; margin-top: 12px; }
    .home-hero__slide--plataforma .platform-hero-title { font-size: 52px; }
}
@media (max-width: 767px) {
    .platform-hero-float { --platform-cloud-distance: .6; }
    .network-hero__drift { --cloud-distance: .6; }
    .network-hero, .home-hero__slide--plataforma .hero-section { padding: 108px 0 84px; }
    .network-hero__eyebrow { font-size: 9px; gap: 7px; padding: 7px 9px; border-radius: 14px; }
    .network-hero__title { font-size: clamp(34px, 9vw, 52px); }
    .network-hero__description { font-size: 14px; line-height: 1.75; }
    .network-hero__actions { align-items: stretch; }
    .network-hero__actions a { flex: 1 1 auto; }
    .network-hero__scene { max-width: 510px; }
    .network-hero__avatar span { padding: 5px; font-size: 7px; }
    .network-hero__signature { font-size: 10px; }
    .network-hero__connection-note { padding: 8px; font-size: 7px; gap: 6px; }
    .network-hero__connection-note strong { font-size: 8px; }
    .network-hero__connection-note .fa { font-size: 18px; }
    .network-hero__benefits { gap: 7px; }
    .network-hero__benefits article { flex-direction: column; padding: 12px 10px; }
    .network-hero__benefits h3 { font-size: 11px; }
    .network-hero__benefits p { font-size: 10px; }
    .hero-connection-route { inset: 64px 0 0; height: calc(100% - 64px); }
    .hero-connection-route__base,
    .hero-connection-route__progress { stroke-width: 1.35; stroke-dasharray: 3 7; }
    .hero-connection-route--dark .hero-connection-route__base {
        stroke-width: 1.55;
        opacity: .38;
    }
    .hero-connection-route--dark .hero-connection-route__progress { stroke-width: 1.75; }
    .home-hero__slide--plataforma .platform-hero-title { max-width: 100%; font-size: clamp(30px, 9vw, 48px); }
    .home-hero__slide--plataforma .hero-copy > p { font-size: 14px; line-height: 1.7; }
}
@media (prefers-reduced-motion: reduce) {
    .platform-hero-float { animation: none; }
    .network-hero__drift { animation: none; }
    .home-hero[data-hero-ready] .home-hero__slide { transition: none; }
    .home-hero__slide.is-entering [data-hero-layer] { animation: none; }
    .hero-connection-route__progress { display: none; }
    .hero-connection-route__base { animation: none !important; opacity: .22; }
    .hero-connection-route__points { animation: none !important; }
}
