/* -------------------------------------------------------------------------- */
/* Scrollbar institucional da landing page e fallback do modal                */
/* -------------------------------------------------------------------------- */

/* Firefox recebe uma barra fina com contraste coerente com a identidade. */
:root {
  scrollbar-color: var(--color-ink) var(--color-paper);
  scrollbar-width: thin;
}

/* A largura mantém o controle visível sem disputar espaço com o conteúdo. */
::-webkit-scrollbar {
  width: 1rem;
  height: 1rem;
}

/* Setas nativas quebram a linguagem minimalista e variam entre sistemas operacionais. */
::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
  -webkit-appearance: none;
}

/* Alguns motores mantêm botões direcionais apesar da regra genérica. */
::-webkit-scrollbar-button:single-button,
::-webkit-scrollbar-button:vertical:decrement,
::-webkit-scrollbar-button:vertical:increment {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
}

/* O trilho acompanha o fundo editorial predominante da landing page. */
::-webkit-scrollbar-track {
  background: var(--color-paper);
}

/* O polegar azul usa uma borda do próprio trilho para parecer mais leve. */
::-webkit-scrollbar-thumb {
  min-height: 5rem;
  border: 0.24rem solid var(--color-paper);
  border-radius: 999px;
  background: var(--color-ink);
}

/* O hover usa o azul secundário sem alterar tamanho ou posição. */
::-webkit-scrollbar-thumb:hover {
  background: var(--color-accent);
}

/* O modal não possui rolagem interna em viewports com altura confortável. */
.lead-modal__scroll {
  scrollbar-color: var(--color-accent) transparent;
  scrollbar-width: thin;
}

/* A barra interna, quando necessária, é mais estreita que a barra da página. */
.lead-modal__scroll::-webkit-scrollbar {
  width: 6px;
}

.lead-modal__scroll::-webkit-scrollbar-track {
  margin-block: 12px;
  background: transparent;
}

.lead-modal__scroll::-webkit-scrollbar-thumb {
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--color-accent);
  background-clip: padding-box;
}

/* Viewports baixos usam uma área interna recuada para preservar os cantos do painel. */
@media (max-height: 780px) {
  .lead-modal__panel {
    height: calc(100svh - clamp(24px, 6vw, 60px));
    overflow: hidden;
  }

  .lead-modal__body {
    height: 100%;
  }

  /* As tampas cobrem artefatos direcionais que alguns sistemas desenham sobre o trilho. */
  .lead-modal__body::before,
  .lead-modal__body::after {
    position: absolute;
    z-index: 1;
    right: 8px;
    width: 10px;
    height: 20px;
    background: var(--color-paper);
    content: "";
    pointer-events: none;
  }

  .lead-modal__body::before {
    top: 8px;
  }

  .lead-modal__body::after {
    bottom: 8px;
  }

  .lead-modal__scroll {
    width: calc(100% - 8px);
    height: calc(100% - 16px);
    margin: 8px 8px 8px 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

/* No mobile, a altura acompanha exatamente o respiro externo definido pelo modal. */
@media (max-width: 767px) and (max-height: 780px) {
  .lead-modal__panel {
    height: auto;
  }

  .lead-modal__body {
    height: auto;
  }

  .lead-modal__body::before {
    top: 6px;
  }

  .lead-modal__body::after {
    bottom: 6px;
  }

  .lead-modal__scroll {
    height: auto;
    max-height: calc(100svh - clamp(30px, 3rem, 40px));
    margin-block: 6px;
  }
}

/* Em dispositivos touch, o trilho interno não ocupa uma faixa visual permanente. */
@media (pointer: coarse) {
  .lead-modal__scroll {
    scrollbar-gutter: auto;
  }
}
