/* ========================================================================== 
   SISTEMA DE CTA PRIMARIO
   Uma unica assinatura visual para as acoes de conversao da pagina.
   Controles de interface (video, carrossel, mapa, consentimento e WhatsApp)
   permanecem com seus formatos funcionais proprios.
   ======================================================================= */

:root {
  --site-cta-width: min(100%, 36rem);
  --site-cta-min-height: 5rem;
  --site-cta-gap: clamp(2.5rem, 4.5vw, 3.75rem);
  --site-cta-shadow:
    0 1.15rem 2.7rem rgba(37, 211, 102, 0.24),
    0 0 2.4rem rgba(66, 226, 125, 0.1);
}

.site-cta {
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  width: var(--site-cta-width) !important;
  min-width: 0 !important;
  min-height: var(--site-cta-min-height) !important;
  margin-inline: auto;
  padding: 1.25rem 2rem !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  color: var(--action-green-ink) !important;
  background: var(--action-green-gradient) !important;
  box-shadow: var(--site-cta-shadow) !important;
  font-family: var(--font-display) !important;
  font-size: clamp(1.15rem, 0.96rem + 0.52vw, 1.45rem) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.035em !important;
  text-align: center !important;
  text-wrap: balance;
  transition:
    transform var(--dur-fast) var(--ease-out),
    background var(--dur-base) var(--ease-out),
    box-shadow var(--dur-base) var(--ease-out) !important;
}

/* O texto permanece geometricamente centralizado; setas decorativas antigas
   nao deslocam mais o eixo optico do CTA. */
.site-cta > [aria-hidden='true'] {
  display: none !important;
}

/* A regra de display do componente nao pode tornar o CTA fixo visivel no
   desktop. Ele so existe como acao persistente na versao mobile. */
.mobile-global-cta.site-cta {
  display: none !important;
}

.site-cta:hover {
  color: var(--action-green-ink) !important;
  background: var(--action-green-gradient-hover) !important;
  box-shadow:
    0 1.35rem 3.1rem rgba(37, 211, 102, 0.34),
    0 0 2.8rem rgba(66, 226, 125, 0.16) !important;
  opacity: 1;
  transform: translateY(-2px);
}

.site-cta:active {
  transform: translateY(0) scale(0.99);
}

.site-cta:focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: 4px !important;
  box-shadow:
    0 0 0 7px rgba(3, 40, 25, 0.52),
    var(--site-cta-shadow) !important;
}

/* Mesmo respiro entre argumento e acao em todas as secoes. */
.mecanismo__cta,
.comparativo__cta,
.depoimentos__cta,
.jornada__cta {
  width: 100%;
  max-width: none;
  margin-top: var(--site-cta-gap);
}

.vsl__abaixo {
  margin-top: var(--site-cta-gap);
}

.medic-hero__content > .site-cta,
.catizani-hero__acoes .site-cta {
  margin-top: var(--site-cta-gap);
}

.local__acoes {
  align-items: center;
  margin-top: var(--site-cta-gap);
}

.local__acoes > .site-cta {
  flex: 1 1 100%;
}

@media (max-width: 47.99rem) {
  :root {
    --site-cta-min-height: 4.5rem;
    --site-cta-gap: 2.25rem;
  }

  .site-cta {
    width: 100% !important;
    padding: 1.05rem 1.35rem !important;
    font-size: clamp(1.05rem, 4.6vw, 1.25rem) !important;
  }
}

@media (max-width: 39.99rem) {
  body {
    padding-bottom: calc(5.75rem + env(safe-area-inset-bottom));
  }

  /* A hero mobile usa somente a acao persistente no rodape da tela. */
  .medic-hero__content > .medic-hero__cta.site-cta {
    display: none !important;
  }

  /* O CTA global segue fixo, agora como a mesma capsula usada nas secoes. */
  .mobile-global-cta.site-cta {
    position: fixed;
    z-index: 190;
    inset: auto 1rem max(0.75rem, env(safe-area-inset-bottom)) 1rem;
    width: auto !important;
    display: inline-flex !important;
    min-height: 4.5rem !important;
    margin: 0;
    padding: 1rem 1.35rem !important;
    color: var(--action-green-ink) !important;
    background: var(--action-green-gradient) !important;
    box-shadow:
      0 1rem 2.6rem rgba(0, 72, 54, 0.3),
      0 0 0 1px rgba(255, 255, 255, 0.28) !important;
  }

  .mobile-global-cta.site-cta .mobile-global-cta__arrow {
    display: none !important;
  }

  .vsl__cta.medic-hero__cta.site-cta {
    width: 100% !important;
    min-width: 0;
    min-height: var(--site-cta-min-height);
    padding: 1.05rem 1.35rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-cta {
    transition: none !important;
  }

  .site-cta:hover,
  .site-cta:active {
    transform: none;
  }
}
