:root {
  /* Fundo geral da página (preto, igual ao layout abaixo da barra) */
  --page-bg: #000000;

  /* Degradê escuro da navbar (baseado nas cores do print) */
  --nav-bg-left: #25262c;
  --nav-bg-mid1: #2c2a26;
  --nav-bg-mid2: #2b2c21;
  --nav-bg-mid3: #212b24;
  --nav-bg-right: #2e2423;

  /* Linha colorida inspirada nas cores do print */
  --line-color-1: #163dff;
  /* roxo/azul */
  --line-color-2: #fccc01;
  /* amarelo dourado */
  --line-color-3: #00cd00;
  /* verde */
  --line-color-4: #5e5b2c;
  /* oliva */
  --line-color-5: #fd0200;
  /* vermelho */
}

/* ================= BASE / TIPOGRAFIA ================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  background: var(--page-bg);
}

/* Garante Poppins em elementos de formulário */
button,
input,
textarea,
select {
  font-family: inherit;
}

/* Caso você use classes .h2 / .p no HTML */
.h2,
.p {
  font-family: inherit;
}

/* Wrapper principal abaixo da nav */
main {
  margin: 0;
  padding: 0;
}

/* ================= NAVBAR ================= */

.nav-wrapper {
  padding: 0;
  margin: 0;
}

/* Barra ocupando 100% da largura da tela */
.top-nav {
  width: 100%;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  border-top: none;
  background: linear-gradient(90deg,
      var(--nav-bg-left) 0%,
      var(--nav-bg-mid1) 25%,
      var(--nav-bg-mid2) 50%,
      var(--nav-bg-mid3) 75%,
      var(--nav-bg-right) 100%);
  box-shadow: none;
}

/* Conteúdo interno centralizado (logos) */
.nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Logos esquerda e direita */
.nav-logo {
  max-height: 30px;
  height: auto;
  width: auto;
  object-fit: contain;
}

/* Linha colorida inferior da navbar */
.nav-color-bar {
  height: 4px;
  background: linear-gradient(90deg,
      var(--line-color-1) 0%,
      var(--line-color-2) 30%,
      var(--line-color-3) 55%,
      var(--line-color-4) 80%,
      var(--line-color-5) 100%);
}

/* ================= HERO ================= */

.hero {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 80px 0 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  overflow: hidden;
  min-height: calc(100vh - 70px);

  background:
    radial-gradient(circle at -40% 0%,
      rgba(52, 31, 238, 0.85) 0,
      rgba(66, 91, 255, 0.25) 24%,
      transparent 60%),
    radial-gradient(circle at 140% 100%,
      rgba(52, 31, 238, 0.85) 0,
      rgba(66, 91, 255, 0.25) 24%,
      transparent 60%),
    #141414;
}

/* Conteúdo central da hero */
.hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1120px;
  width: 100%;
  margin: 0 auto;
  padding: 0 32px;
  text-align: center;
}

/* Título hero com gradiente */
.hero-title {
  margin: 0 0 16px;
  font-weight: 600;
  letter-spacing: 0.03em;
  font-size: clamp(2.4rem, 3.2vw + 0.8rem, 3.6rem);
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .hero-title {
    background: linear-gradient(90deg, #2f2abc, #4769ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

/* Botão principal hero */
.hero-cta {
  text-decoration: none;
  /* remove sublinhado */
  display: inline-flex;
  /* vira “bloco de botão” */
  align-items: center;
  justify-content: center;
  border: none;
  outline: none;
  padding: 10px 32px;
  border-radius: 999px;
  margin-bottom: 32px;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  background: linear-gradient(90deg, #4769ff, #3853ca);
  color: #ffffff;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.6);
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.hero-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.8);
  opacity: 0.95;
}

/* Variação de botão para "Solicitar demonstração" */
.hero-cta.hero-cta-demo {
  margin-top: 16px;
  margin-bottom: 28px;
  background: transparent;
  border: 1px solid #5da4dd;
  color: #5da4dd;
  box-shadow: none;
}

.hero-cta.hero-cta-demo:hover {
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
  color: #ffffff;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.7);
}

/* Vídeo da hero */
.hero-video-wrapper {
  max-width: 860px;
  margin: 0 auto 28px;
}

.hero-video-embed {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9 */
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.8);
  background: #000;
}

.hero-video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Textos abaixo do vídeo */
.hero-caption h2 {
  margin: 0 0 4px;
  font-size: 1.35rem;
  color: #5da4dd;
  font-weight: 600;
}

.hero-caption p {
  margin: 0;
  font-size: 0.98rem;
  opacity: 0.85;
}

/* Overlay de ondas na hero */
.hero::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 5%;
  bottom: -25%;
  pointer-events: none;
  z-index: 0;
  background-image: url("img/waves.png");
  background-repeat: no-repeat;
  background-size: 130% auto;
  background-position: center top;
  opacity: 0.15;
}

/* Responsivo hero */
@media (max-width: 768px) {
  .hero {
    min-height: auto;
    padding: 64px 0 72px;
  }

  .hero-inner {
    padding: 0 20px;
  }

  .hero-title {
    font-size: 2rem;
  }

  .hero-video-wrapper {
    max-width: 100%;
  }
}

/* ================= CENTRALIZAR IMAGENS ABAIXO DO HERO ================= */

/* Todas as imagens das seções abaixo da hero ficarão centralizadas */
.section-challenges img,
.section-solutions img,
.section-cubo img,
.section-operation img,
.section-modernity img,
.section-specialists img {
  display: block;
  margin-inline: auto;
}

/* ================= TICKER ================= */

.ticker {
  position: relative;
  overflow: hidden;
  padding: 8px 0;
  background: linear-gradient(90deg,
      var(--line-color-1) 0%,
      var(--line-color-2) 30%,
      var(--line-color-3) 55%,
      var(--line-color-4) 80%,
      var(--line-color-5) 100%);
}

/* Variação azul/roxa da faixa dinâmica */
.ticker-blue {
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
}

.ticker-inner {
  max-width: 100%;
  white-space: nowrap;
}

.ticker-track {
  display: inline-block;
  animation: ticker-scroll 35s linear infinite;
}

.ticker-track span {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #ffffff;
  padding-right: 4rem;
}

.hero-video-embed video.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

/* animação do texto rolando para a esquerda */
@keyframes ticker-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

/* =============== SEÇÃO SEUS DESAFIOS =============== */

.section-challenges,
.section-solutions {
  position: relative;
  padding: 96px 0 80px;
  background: #111111;
  color: #ffffff;
  overflow: hidden;
}


.challenges-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}

/* título central com gradiente */
.challenges-title {
  margin: 0 0 46px;
  text-align: center;
  font-size: clamp(2.2rem, 2.7vw + 1rem, 2.8rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .challenges-title {
    background: linear-gradient(90deg, #5da4dd, #8c52ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

/* GRID 3 x 3 */
.challenges-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 48px;
}

/* CARD base */
.challenge-card {
  background: #1a1b20;
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 22px 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 112px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.85);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease,
    background 0.25s ease;
}

/* texto à esquerda */
.challenge-text p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  font-weight: 600;
  max-width: 230px;
}

/* ícone à direita */
.challenge-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.challenge-icon img,
.challenge-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

/* CARD CTA "Ver na Prática" */
.challenge-card-cta {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* remove “colchetes” laterais */
.challenge-card-cta::before,
.challenge-card-cta::after {
  content: none;
}

/* botão interno */
.challenge-cta-text {
  text-decoration: none;
  /* remove sublinhado do <a> */
  padding: 14px 48px;
  border-radius: 999px;
  background: #02060c;
  border: 1px solid #5da4dd;
  color: #5da4dd;
  font-weight: 600;
  font-size: 0.98rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.challenge-cta-text:hover {
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
  color: #ffffff;
  box-shadow: 0 0 18px rgba(93, 164, 221, 0.7);
}

/* frase de rodapé */
.challenges-footnote {
  margin: 0;
  text-align: center;
  font-size: 0.95rem;
  max-width: 820px;
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.85);
}

.challenges-footnote span {
  color: #5da4dd;
  font-weight: 600;
}

/* Hover cards desafios */
.challenge-card:hover:not(.challenge-card-cta) {
  transform: translateY(-6px);
  border-color: rgba(79, 138, 185, 0.65);
  box-shadow: 0 26px 60px rgba(0, 0, 0, 0.95);
  background:
    radial-gradient(circle at top left, rgba(93, 164, 221, 0.14), transparent 55%),
    radial-gradient(circle at bottom right, rgba(82, 151, 255, 0.12), transparent 55%),
    #1a1b20;
}

.challenge-card:hover:not(.challenge-card-cta) .challenge-icon img,
.challenge-card:hover:not(.challenge-card-cta) .challenge-icon svg {
  filter: drop-shadow(0 0 6px rgba(79, 138, 185, 0.65));
}

/* RESPONSIVO desafios */
@media (max-width: 900px) {
  .challenges-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .section-challenges {
    padding: 72px 0 64px;
  }

  .challenges-inner {
    padding: 0 20px;
  }

  .challenges-grid {
    grid-template-columns: 1fr;
  }

  .challenge-card {
    min-height: 104px;
  }
}

/* =============== SEÇÃO NOSSAS SOLUÇÕES =============== */

.solutions-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}

.solutions-title {
  margin: 0 0 46px;
  text-align: center;
  font-size: clamp(2.2rem, 2.7vw + 1rem, 2.8rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .solutions-title {
    background: linear-gradient(90deg, #8659fa, #9b69ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

/* subtítulo */
.solutions-subtitle {
  margin: 0 0 40px;
  text-align: center;
  font-size: 0.98rem;
  opacity: 0.88;
}

.solutions-subtitle span {
  color: #8659fa;
  font-weight: 600;
}

/* Carrossel */
.solutions-carousel {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 26px;
}

.solutions-track-wrapper {
  overflow: hidden;
  flex: 1;
}

.solutions-track {
  display: flex;
  transition: transform 0.5s ease;
}

/* slide com grid 3x2 */
.solutions-slide {
  min-width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  padding: 10px 0;
}

/* cards de solução */
.solution-card {
  background: #18171f;
  border-radius: 22px;
  border: 1px solid rgba(212, 212, 255, 0.16);
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: 150px;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease,
    background 0.25s ease;
}

.solution-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.solution-icon img,
.solution-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.solution-card p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  font-weight: 500;
}

/* hover suave nos cards */
.solution-card:hover {
  transform: translateY(-6px);
  border-color: #8659fa;
  background:
    radial-gradient(circle at top, rgba(110, 231, 255, 0.11), transparent 55%),
    radial-gradient(circle at bottom, rgba(192, 132, 252, 0.1), transparent 60%),
    #18171f;
}

/* setas do carrossel */
.solutions-arrow {
  border: none;
  background: transparent;
  color: #8659fa;
  font-size: 1.8rem;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.solutions-arrow:hover {
  background: rgba(110, 231, 255, 0.12);
  transform: translateY(-2px);
}

/* bolinhas de paginação */
.solutions-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 32px;
}

.solutions-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  border: 1px solid #8659fa;
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.solutions-dot.is-active {
  background: #8659fa;
  border-color: transparent;
  transform: scale(1.1);
}

/* CTA inferior da seção */
.solutions-cta-wrapper {
  display: flex;
  justify-content: center;
}

.solutions-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  /* tira o sublinhado do <a> */
  padding: 13px 46px;
  border-radius: 999px;
  background: #050816;
  border: 1px solid #c084fc;
  color: #c084fc;
  font-weight: 600;
  font-size: 0.96rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.solutions-cta:hover {
  background: linear-gradient(90deg, #6ee7ff, #c084fc);
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 0 20px rgba(110, 231, 255, 0.7);
}

/* RESPONSIVO soluções */
@media (max-width: 900px) {
  .solutions-slide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .solutions-inner {
    padding: 0 20px;
  }

  .solutions-carousel {
    gap: 10px;
  }

  .solutions-arrow {
    display: none;
  }

  .solutions-slide {
    grid-template-columns: 1fr;
  }
}

/* =============== SEÇÃO CUBO (TECNOLOGIA) =============== */

.section-cubo {
  position: relative;
  padding: 96px 0 96px;
  background: #111111;
  color: #ffffff;
  overflow: hidden;
}

/* waves de fundo */
.section-cubo::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("img/waves.png");
  background-repeat: no-repeat;
  background-size: 140% auto;
  background-position: center 40%;
  opacity: 0.14;
}

/* transição PNAB da seção anterior */
.section-cubo::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 48px;
  background:
    linear-gradient(to bottom, rgba(17, 17, 17, 0) 0%, #111111 85%),
    linear-gradient(90deg,
      var(--line-color-1) 0%,
      var(--line-color-2) 30%,
      var(--line-color-3) 55%,
      var(--line-color-4) 80%,
      var(--line-color-5) 100%);
  pointer-events: none;
  z-index: 0;
  opacity: 0.8;
}

.cubo-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}

/* layout 2 colunas: texto à esquerda, cubo à direita */
.cubo-content {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
  margin-bottom: 56px;
}

/* título "Tecnologia" */
.cubo-title {
  margin: 40px 0 28px;
  font-size: clamp(2.1rem, 2.6vw + 0.8rem, 2.6rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .cubo-title {
    background: linear-gradient(90deg, #5da4dd, #8c52ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

/* card com lista */
.cubo-card {
  background: #15161d;
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 26px 30px;
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.85);
}

.cubo-list {
  margin: 0;
  padding-left: 22px;
  list-style: disc;
}

.cubo-list li {
  margin-bottom: 8px;
  font-size: 0.94rem;
  line-height: 1.6;
  font-weight: 500;
}

.cubo-list li::marker {
  color: #5da4dd;
}

.cubo-list li:last-child {
  margin-bottom: 0;
}

/* CTA "Ver na prática" */
.cubo-cta-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 32px;
}

.cubo-cta {
  text-decoration: none;
  /* tira o sublinhado do <a> */
  padding: 13px 44px;
  border-radius: 999px;
  background: #050816;
  border: 1px solid #5da4dd;
  color: #5da4dd;
  font-weight: 600;
  font-size: 0.96rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.cubo-cta:hover {
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 0 20px rgba(93, 164, 221, 0.9);
}

/* coluna direita: cubo */
.cubo-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cubo-glow {
  position: absolute;
  width: 320px;
  height: 320px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(80, 176, 255, 0.9), transparent 60%);
  filter: blur(50px);
  opacity: 0.8;
}

.cubo-gif {
  position: relative;
  max-width: 320px;
  width: 100%;
  height: auto;
  display: block;
}

/* rodapé da seção */
.cubo-footnote {
  margin: 0;
  text-align: center;
  font-size: 0.94rem;
  color: rgba(255, 255, 255, 0.9);
  max-width: 760px;
  margin-inline: auto;
}

.cubo-footnote span {
  color: #5da4dd;
  font-weight: 600;
}

/* RESPONSIVO cubo */
@media (max-width: 900px) {
  .cubo-content {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .cubo-visual {
    order: -1;
  }

  .cubo-inner {
    padding: 0 20px;
  }
}

@media (max-width: 600px) {
  .section-cubo {
    padding: 72px 0 72px;
  }

  .cubo-card {
    padding: 22px 20px;
  }

  .cubo-gif {
    max-width: 260px;
  }
}

/* =============== SEÇÃO MODO DE OPERAÇÃO =============== */

.section-operation {
  position: relative;
  padding: 96px 0 96px;
  background: #111111;
  color: #ffffff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 18px;
}


/* transição topo */
.section-operation::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 48px;
  background: linear-gradient(to bottom,
      rgba(17, 17, 17, 0) 0%,
      #111111 90%);
  pointer-events: none;
  z-index: 0;
  opacity: 1;
}

.operation-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}

.operation-title {
  margin: 0 0 0;
  text-align: left;
  font-size: clamp(2.1rem, 2.6vw + 0.8rem, 2.6rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .operation-title {
    background: linear-gradient(90deg, #5da4dd, #8c52ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

.operation-subtitle {
  margin: 0 0 12px;
  font-size: 1rem;
  font-weight: 600;
}

/* layout com imagem + card */
.operation-content {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  margin-bottom: 40px;
}

.operation-media {
  display: flex;
  align-items: center;
  justify-content: center;
}

.operation-mockup {
  max-width: 560px;
  width: 100%;
  height: auto;
  display: block;
}

/* card com lista */
.operation-card {
  background: #15161d;
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 26px 30px;
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.85);
}

.operation-list {
  margin: 0;
  padding-left: 22px;
  list-style: disc;
}

.operation-list li {
  margin-bottom: 8px;
  font-size: 0.94rem;
  line-height: 1.6;
  font-weight: 500;
}

.operation-list li:last-child {
  margin-bottom: 0;
}

/* bolinhas azuis */
.operation-list li::marker {
  color: #5da4dd;
}

/* botão "Solicitar apresentação institucional" */
.operation-cta-wrapper {
  display: flex;
  justify-content: center;
}

.operation-cta {
  text-decoration: none;
  /* remove sublinhado do <a> */
  padding: 13px 44px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
  color: #ffffff;
  font-weight: 600;
  font-size: 0.96rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.7);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.operation-cta:hover {
  transform: translateY(-2px);
  opacity: 0.95;
  box-shadow: 0 14px 45px rgba(0, 0, 0, 0.9);
}

/* responsivo operação */
@media (max-width: 900px) {
  .operation-content {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .operation-title,
  .operation-subtitle {
    text-align: center;
  }

  .operation-card {
    text-align: left;
  }
}

@media (max-width: 600px) {
  .section-operation {
    padding: 72px 0 72px;
  }

  .operation-inner {
    padding: 0 20px;
  }

  .operation-mockup {
    max-width: 360px;
  }
}

/* =============== SEÇÃO MODERNIDADE =============== */

.section-modernity {
  position: relative;
  padding: 96px 0 96px;
  background: #111111;
  color: #ffffff;
  overflow: hidden;
}


/* transição suave topo */
.section-modernity::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 48px;
  background: linear-gradient(to bottom,
      rgba(17, 17, 17, 0) 0%,
      #111111 90%);
  pointer-events: none;
  z-index: 0;
}

.modernity-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  text-align: center;
}

.modernity-title {
  margin: 0 0 12px;
  font-size: clamp(2.1rem, 2.6vw + 0.8rem, 2.6rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .modernity-title {
    background: linear-gradient(90deg, #5da4dd, #8c52ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

.modernity-subtitle {
  margin: 0 0 40px;
  font-size: 0.98rem;
  opacity: 0.9;
}

.modernity-subtitle span {
  color: #5da4dd;
  font-weight: 600;
}

/* grid com 4 cards */
.modernity-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 36px;
}

.modernity-card {
  background: #18171f;
  border-radius: 22px;
  border: 1px solid rgba(212, 212, 255, 0.16);
  padding: 24px 20px 22px;
  min-height: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease,
    background 0.25s ease;
}

.modernity-icon {
  width: 38px;
  height: 38px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modernity-icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

/* texto do card */
.modernity-card p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  font-weight: 500;
}

/* hover nos cards */
.modernity-card:hover {
  transform: translateY(-6px);
  border-color: #6097db;
  background:
    radial-gradient(circle at top, rgba(110, 231, 255, 0.11), transparent 55%),
    radial-gradient(circle at bottom, rgba(192, 132, 252, 0.1), transparent 60%),
    #18171f;
}

/* CTA final */
.modernity-cta-wrapper {
  display: flex;
  justify-content: center;
}

.modernity-cta {
  text-decoration: none;
  /* tira o sublinhado do <a> */
  padding: 13px 46px;
  border-radius: 999px;
  background: #050816;
  border: 1px solid #5da4dd;
  color: #5da4dd;
  font-weight: 600;
  font-size: 0.96rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease,
    box-shadow 0.25s ease, border-color 0.25s ease;
}

.modernity-cta:hover {
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 0 20px rgba(93, 164, 221, 0.9);
}

/* responsivo Modernidade */
@media (max-width: 900px) {
  .modernity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .section-modernity {
    padding: 72px 0 72px;
  }

  .modernity-inner {
    padding: 0 20px;
  }

  .modernity-grid {
    grid-template-columns: 1fr;
  }
}

/* =============== SEÇÃO ESPECIALISTAS =============== */

.section-specialists {
  position: relative;
  padding: 96px 0 80px;
  background: #111111;
  color: #ffffff;
  overflow: hidden;
}

/* waves de fundo */
.section-specialists::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("img/waves.png");
  background-repeat: no-repeat;
  background-size: 140% auto;
  background-position: center 40%;
  opacity: 0.14;
}

.specialists-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  text-align: center;
}

/* título especialistas */
.specialists-title {
  margin: 0 0 40px;
  font-size: clamp(2.2rem, 2.7vw + 1rem, 2.8rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .specialists-title {
    background: linear-gradient(90deg, #5da4dd, #8c52ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

/* duas colunas lado a lado */
.specialists-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  align-items: flex-start;
  margin-bottom: 48px;
}

.specialist-card {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.specialist-photo-wrapper {
  margin-bottom: 18px;
}

/* sem anel, imagem livre */
.specialist-photo-ring {
  width: auto;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  display: inline-block;
  overflow: visible;
}

.specialist-photo {
  display: block;
  max-width: 260px;
  width: 100%;
  height: auto;
  border-radius: 0;
  object-fit: contain;
}

/* nome abaixo da foto */
.specialist-name {
  margin: 0 0 14px;
  font-size: 1.1rem;
  font-weight: 600;
  color: #5da4dd;
}

/* bio */
.specialist-bio {
  max-width: 480px;
  text-align: left;
  font-size: 0.9rem;
  line-height: 1.6;
}

.specialist-bio p {
  margin: 0 0 10px;
}

.specialist-bio p:last-child {
  margin-bottom: 0;
}

/* frase final */
.specialists-footline {
  margin: 24px auto 0;
  font-size: 1.02rem;
  max-width: 800px;
}

.specialists-footline span {
  display: inline-block;
  font-weight: 700;
  color: #5da4dd;
}

/* RESPONSIVO especialistas */
@media (max-width: 900px) {
  .specialists-grid {
    grid-template-columns: 1fr;
    gap: 56px;
  }
}

@media (max-width: 640px) {
  .section-specialists {
    padding: 72px 0 72px;
  }

  .specialists-inner {
    padding: 0 20px;
  }

  .specialist-photo-ring {
    width: 200px;
    height: 200px;
  }
}

/* =============== CTA FINAL =============== */

.section-final-cta {
  position: relative;
  padding: 80px 0 72px;
  background: #111111;
  color: #ffffff;
  overflow: hidden;
}


.final-cta-inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  text-align: center;
}

.final-cta-title {
  margin: 0 0 32px;
  font-size: clamp(2rem, 2.4vw + 1rem, 2.6rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #5da4dd;
  /* fallback */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .final-cta-title {
    background: linear-gradient(90deg, #5da4dd, #8c52ff);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}

.final-cta-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  max-width: 680px;
  margin: 24px auto 0;
}

.final-cta-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  text-align: left;
  line-height: 1.5;
  flex: 0 0 260px;
}

/* botão principal CTA final */
.final-cta-button {
  flex: 0 0 auto;
  text-decoration: none;
  /* tira o sublinhado do <a> */
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 34px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.98rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: linear-gradient(90deg, #5da4dd, #8c52ff);
  color: #ffffff;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.7);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.final-cta-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.9);
  opacity: 0.95;
}

.final-cta-button-icon {
  width: 22px;
  height: 22px;
  display: block;
}

/* responsivo CTA final */
@media (max-width: 768px) {
  .final-cta-row {
    flex-direction: column;
    max-width: 420px;
    gap: 20px;
  }

  .final-cta-text {
    text-align: center;
    flex: none;
  }
}

/* =============== FOOTER =============== */

.site-footer {
  margin: 0;
  padding: 0;
}

/* parte principal com gradiente azul/roxo */
.footer-main {
  background: linear-gradient(120deg, #5595ca 0%, #683fba 100%);
  padding: 38px 0;
  color: #ffffff;
}

.footer-inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.6fr) minmax(0, 1.2fr);
  column-gap: 32px;
  row-gap: 24px;
  align-items: center;
}

/* colunas */
.footer-col {
  flex: 0 0 auto;
}

/* logo */
.footer-logo {
  max-width: 190px;
  height: auto;
  display: block;
  margin-bottom: 18px;
}

/* redes sociais */
.footer-social {
  display: flex;
  gap: 12px;
}

.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.footer-social img {
  width: 26px;
  height: 26px;
  display: block;
}

/* endereço */
.footer-col-address {
  display: flex;
  justify-content: center;
}

.footer-whats-button span {
  white-space: nowrap;
  /* evita quebrar em duas linhas */
}

.footer-address {
  display: flex;
  align-items: center;
  /* antes estava flex-start */
  gap: 10px;
  max-width: 360px;
  font-size: 0.9rem;
  line-height: 1.5;
  text-align: left;
}

.footer-address-icon {
  width: 20px;
  height: 20px;
}

/* botão whatsapp do footer */
.footer-col-whats {
  display: flex;
  justify-content: flex-end;
}

.footer-whats-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 32px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.96rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: #ffffff;
  color: #2563eb;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
  transition: transform 0.2s ease, box-shadow 0.2s ease,
    background 0.2s ease, color 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* centraliza ícone + texto dentro do bg */
  gap: 8px;
  /* um pouco menos de espaço entre ícone e texto */
  padding: 14px 40px;
  /* deixa o pill mais alto e equilibrado */
  text-decoration: none;
}

.footer-whats-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.85);
  background: #e0f2ff;
  color: #1d4ed8;
}

.footer-whats-icon {
  width: 18px;
  height: 18px;
}

/* barra de baixo */
.footer-bottom {
  background: #8c52ff;
  padding: 10px 16px;
  text-align: center;
}

.footer-bottom p {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: #ffffff;
}

/* responsivo footer */
@media (max-width: 900px) {
  .footer-inner {
    padding: 0 20px;
  }
}

@media (max-width: 640px) {
  .footer-inner {
    grid-template-columns: 1fr;
    align-items: flex-start;
  }

  .footer-col {
    flex: 1 1 auto;
  }

  .footer-col-brand,
  .footer-col-address,
  .footer-col-whats {
    justify-self: start;
  }

  .footer-whats-button {
    width: 100%;
    justify-content: center;
  }
}

.img-hover-soft {
  display: block;
  margin-inline: auto;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease;
  transform-origin: center center;
}

.img-hover-soft:hover {
  transform: scale(1.03);
  filter: brightness(1.03);
}