/* Refinamentos finais de interface */

/* O ambiente deve usar somente bolinhas, sem eixos ou cruzes decorativas. */
.site-ambient-line {
  display: none !important;
}

/* Mais respiro entre a navegacao fixa e o selo inicial da home. */
.home-page-v2 .home-hero-v2__eyebrow {
  margin-top: clamp(18px, 2vw, 28px);
}

/* A coluna de texto sempre fica visualmente limpa. */
.home-page-v2 .home-hero-v2__content {
  position: relative;
  z-index: 3;
}

/* Foto maior e composicao orbital mais presente. */
.home-page-v2 .home-hero-v2__profile {
  min-height: 650px;
}

.home-page-v2 .home-hero-v2__photo {
  width: 350px;
  height: 490px;
  border-radius: 175px 175px 40px 40px;
}

.home-page-v2 .home-hero-v2__profile::after {
  width: 410px;
  height: 138px;
  bottom: 58px;
}

.home-page-v2 .home-hero-v2__orbit--one {
  width: 505px;
  height: 315px;
}

.home-page-v2 .home-hero-v2__orbit--two {
  width: 425px;
  height: 425px;
}

.home-page-v2 .home-hero-v2__orbit--three {
  width: 580px;
  height: 245px;
}

/* Os cards de dominio flutuam de forma independente para reforcar a orbita. */
.home-page-v2 .home-hero-v2__domain {
  min-width: 178px;
  will-change: translate;
}

.home-page-v2 .home-hero-v2__domain--software {
  left: -20px;
  top: 34px;
  animation: lsDomainFloatA 7.2s ease-in-out infinite;
}

.home-page-v2 .home-hero-v2__domain--data {
  right: -22px;
  top: 92px;
  animation: lsDomainFloatB 8.1s ease-in-out -1.8s infinite;
}

.home-page-v2 .home-hero-v2__domain--engineering {
  left: -26px;
  bottom: 136px;
  animation: lsDomainFloatC 7.7s ease-in-out -3.2s infinite;
}

.home-page-v2 .home-hero-v2__domain--process {
  right: -10px;
  bottom: 92px;
  animation: lsDomainFloatD 8.5s ease-in-out -4.3s infinite;
}

.home-page-v2 .home-hero-v2__profile-label {
  bottom: 22px;
}

@keyframes lsDomainFloatA {
  0%, 100% { translate: 0 0; }
  30% { translate: 12px -10px; }
  62% { translate: 18px 4px; }
  82% { translate: 7px 11px; }
}

@keyframes lsDomainFloatB {
  0%, 100% { translate: 0 0; }
  28% { translate: -10px -12px; }
  60% { translate: -17px 2px; }
  84% { translate: -6px 10px; }
}

@keyframes lsDomainFloatC {
  0%, 100% { translate: 0 0; }
  24% { translate: 9px -7px; }
  58% { translate: 16px 4px; }
  80% { translate: 5px 10px; }
}

@keyframes lsDomainFloatD {
  0%, 100% { translate: 0 0; }
  26% { translate: -11px -8px; }
  62% { translate: -17px 3px; }
  83% { translate: -7px 11px; }
}

/* ---------------------------------------------------------
   Divisores oficiais
   Linha fina, fria, centralizada e com fade nas extremidades.
   --------------------------------------------------------- */
:root {
  --ls-divider-line: rgba(91, 100, 116, .22);
  --ls-divider-width: min(1180px, calc(100% - 48px));
}

html[data-theme="dark"] {
  --ls-divider-line: rgba(199, 207, 218, .18);
}

hr,
.rule,
.section-divider,
.content-divider,
.divider {
  display: block !important;
  width: var(--ls-divider-width) !important;
  height: 1px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border: 0 !important;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--ls-divider-line) 7%,
    var(--ls-divider-line) 93%,
    transparent 100%
  ) !important;
  opacity: 1 !important;
}

/* A faixa tecnica usa o mesmo divisor, em vez de borda de ponta a ponta. */
.home-tech-ribbon {
  position: relative;
  border-top: 0 !important;
  border-bottom: 0 !important;
}

.home-tech-ribbon::before,
.home-tech-ribbon::after {
  content: "";
  position: absolute;
  left: 50%;
  z-index: 3;
  width: var(--ls-divider-width);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--ls-divider-line) 7%,
    var(--ls-divider-line) 93%,
    transparent 100%
  );
  pointer-events: none;
}

.home-tech-ribbon::before { top: 0; }
.home-tech-ribbon::after { bottom: 0; }

/* Divisores imediatamente antes de grupos de filtro recebem respiro consistente. */
.featured-filters,
.featured-filters--custom,
.showcase-filters,
.filters {
  position: relative;
}

.featured-filters::before,
.featured-filters--custom::before,
.showcase-filters::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -24px;
  width: 100%;
  max-width: 1180px;
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--ls-divider-line) 5%,
    var(--ls-divider-line) 95%,
    transparent 100%
  );
  pointer-events: none;
}

@media (max-width: 1120px) {
  .home-page-v2 .home-hero-v2__profile {
    min-height: 590px;
  }

  .home-page-v2 .home-hero-v2__photo {
    width: 320px;
    height: 450px;
    border-radius: 160px 160px 36px 36px;
  }

  .home-page-v2 .home-hero-v2__orbit--one {
    width: 460px;
    height: 286px;
  }

  .home-page-v2 .home-hero-v2__orbit--two {
    width: 390px;
    height: 390px;
  }

  .home-page-v2 .home-hero-v2__orbit--three {
    width: 515px;
    height: 220px;
  }
}

@media (max-width: 920px) {
  .home-page-v2 .home-hero-v2__eyebrow {
    margin-top: 10px;
  }

  .home-page-v2 .home-hero-v2__profile {
    min-height: 550px;
  }

  .home-page-v2 .home-hero-v2__photo {
    width: 292px;
    height: 410px;
    border-radius: 146px 146px 34px 34px;
  }

  :root {
    --ls-divider-width: calc(100% - 32px);
  }
}

@media (max-width: 640px) {
  .home-page-v2 .home-hero-v2__profile {
    min-height: 500px;
  }

  .home-page-v2 .home-hero-v2__photo {
    width: 248px;
    height: 350px;
    border-radius: 124px 124px 30px 30px;
  }

  .home-page-v2 .home-hero-v2__domain {
    min-width: 128px;
  }

  .featured-filters::before,
  .featured-filters--custom::before,
  .showcase-filters::before {
    top: -18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page-v2 .home-hero-v2__domain {
    animation: none !important;
    translate: none !important;
  }
}
