/* Ajustes pontuais solicitados — Grupo Contato Contabilidade */
:root {
  --orbit-background: #0a192b;
  --orbit-background-secondary: #0d2036;
  --orbit-border: rgba(128, 191, 255, 0.22);
  --orbit-line: rgba(128, 191, 255, 0.2);
  --orbit-node-background: #0c1d31;
  --orbit-node-border: rgba(128, 191, 255, 0.32);
  --orbit-icon: #dcecff;
  --orbit-text: #ffffff;
  --cookie-banner-offset: 24px;
}

/* Remove setas decorativas inseridas pelo CSS e recompõe o espaçamento. */
.btn,
.btn-small {
  gap: 0;
  padding: 15px 24px;
}

.btn-small {
  min-height: 44px;
  padding: 11px 18px;
}

.btn::after,
.btn-small::after,
.text-link::after,
.text-link span {
  content: none !important;
  display: none !important;
}

.text-link {
  gap: 0;
  padding: 8px 2px;
}

.text-link:hover,
.text-link:focus-visible {
  color: #69b4f8;
}

/* Controles textuais do carrossel, sem setas ou chevrons. */
.carousel-button {
  width: auto;
  min-width: 92px;
  height: 46px;
  padding: 0 17px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

[data-partners-prev]:hover,
[data-partners-next]:hover,
[data-partners-prev]:focus-visible,
[data-partners-next]:focus-visible {
  transform: translateY(-3px) scale(1.03);
}

/* Painel orbital fixo — mantém o mesmo tom no tema claro e escuro. */
.solution-stage {
  grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.05fr);
  overflow: hidden;
  border: 1px solid var(--line);
}

.solution-visual.solution-orbit-panel,
html[data-theme="light"] .solution-visual.solution-orbit-panel,
html[data-theme="dark"] .solution-visual.solution-orbit-panel {
  min-height: 520px;
  display: grid;
  place-items: center;
  padding: clamp(34px, 5vw, 58px);
  overflow: hidden;
  border-right: 1px solid rgba(128, 191, 255, 0.16);
  background:
    radial-gradient(circle at 50% 48%, rgba(48, 126, 201, 0.12), transparent 42%),
    linear-gradient(145deg, var(--orbit-background), var(--orbit-background-secondary));
  color: var(--orbit-text);
  color-scheme: dark;
  isolation: isolate;
}

.solution-visual.solution-orbit-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(circle at center, #000 20%, transparent 76%);
  pointer-events: none;
}

.solution-orbit-system {
  position: relative;
  width: min(78%, 360px);
  aspect-ratio: 1;
}

.solution-orbit-ring,
.solution-orbit-core,
.solution-orbit-node {
  position: absolute;
  border-radius: 50%;
}

.solution-orbit-ring {
  border: 1px solid var(--orbit-line);
}

.solution-orbit-ring-outer {
  inset: 0;
}

.solution-orbit-ring-inner {
  inset: 20%;
}

.solution-orbit-core {
  inset: 36%;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(77, 164, 246, 0.64);
  background: radial-gradient(circle, #0b3053, #071525 72%);
  box-shadow: 0 0 42px rgba(40, 120, 208, 0.22);
}

.solution-orbit-core img {
  width: 76%;
  height: 76%;
  object-fit: contain;
  filter: none;
  opacity: 0.96;
}

.solution-orbit-node {
  z-index: 2;
  width: clamp(42px, 6vw, 50px);
  height: clamp(42px, 6vw, 50px);
  display: grid;
  place-items: center;
  border: 1px solid var(--orbit-node-border);
  background: var(--orbit-node-background);
  color: var(--orbit-icon);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
}

.solution-orbit-node svg {
  width: 42%;
  height: 42%;
}

.solution-node-top {
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
}

.solution-node-bottom {
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 50%);
}

.solution-node-left {
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
}

.solution-node-right {
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
}

/* Dados institucionais. */
.contact-data {
  gap: 12px;
}

.contact-data a,
.contact-data span,
.contact-data address {
  display: block;
  color: #d8e0ea;
}

.contact-data a:hover,
.contact-data a:focus-visible {
  color: #69b4f8;
}

.contact-data address,
footer address {
  margin: 0;
  font-style: normal;
  line-height: 1.65;
}

footer address {
  color: #8f9cad;
  font-size: 13px;
}

footer strong {
  font-weight: 700;
}

.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 18px;
}

.footer-legal-links a,
.footer-link-button {
  color: #8f9cad;
  font: inherit;
}

.footer-link-button {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.footer-legal-links a:hover,
.footer-legal-links a:focus-visible,
.footer-link-button:hover,
.footer-link-button:focus-visible {
  color: #ffffff;
}

/* Ícone oficial do WhatsApp em SVG. */
.whatsapp {
  bottom: var(--cookie-banner-offset, 24px);
  transition: bottom 0.3s ease, transform 0.35s var(--button-ease), box-shadow 0.35s;
}

.whatsapp svg {
  width: 30px;
  height: 30px;
}

@media (max-width: 980px) {
  .solution-stage {
    grid-template-columns: 1fr;
  }

  .solution-visual.solution-orbit-panel,
  html[data-theme="light"] .solution-visual.solution-orbit-panel,
  html[data-theme="dark"] .solution-visual.solution-orbit-panel {
    min-height: 440px;
    border-right: 0;
    border-bottom: 1px solid rgba(128, 191, 255, 0.16);
  }
}

@media (max-width: 680px) {
  .carousel-controls {
    width: 100%;
    align-self: stretch;
  }

  .carousel-button {
    flex: 1 1 0;
    min-width: 0;
  }

  .solution-visual.solution-orbit-panel,
  html[data-theme="light"] .solution-visual.solution-orbit-panel,
  html[data-theme="dark"] .solution-visual.solution-orbit-panel {
    min-height: 350px;
    padding: 48px;
  }

  .solution-orbit-system {
    width: min(82%, 260px);
  }

  .footer-bottom {
    display: grid;
    gap: 14px;
  }

  .footer-legal-links {
    justify-content: flex-start;
  }
}

@media (max-width: 390px) {
  .solution-visual.solution-orbit-panel,
  html[data-theme="light"] .solution-visual.solution-orbit-panel,
  html[data-theme="dark"] .solution-visual.solution-orbit-panel {
    min-height: 315px;
    padding: 42px;
  }

  .solution-orbit-system {
    width: min(84%, 230px);
  }
}
