/* Animações e transições lentas sofisticadas */
.slow-motion-transition {
  transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-bg-transition {
  transition: filter 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s ease-out;
}

/* Linha fina e suave no hover/foco da Navbar */
.nav-link {
  position: relative;
  padding-top: 4px;
  padding-bottom: 4px;
  transition: color 0.3s ease;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1.5px;
  background: #C5A880; /* Dourado Champagne */
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-link.active::after {
  width: 100%;
}

/* Hover de Botão Minimalista & Sutil (Sem elevação / salto vertical) */
.btn-minimal {
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

.btn-minimal:hover {
  box-shadow: 0 4px 15px -3px rgba(197, 168, 128, 0.25);
}

.btn-minimal:active {
  opacity: 0.92;
}

/* Efeito de Card Lift exclusivo para cards de conteúdo, pilares, atuação e metodologia */
.card-lift {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease !important;
}

.card-lift:hover {
  transform: translateY(-7px) !important;
  box-shadow: 0 20px 30px -10px rgba(0, 0, 0, 0.12), 0 10px 15px -5px rgba(197, 168, 128, 0.2) !important;
  transition-delay: 0s !important;
  --reveal-delay: 0ms !important;
}

.card-lift-dark {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease !important;
}

.card-lift-dark:hover {
  transform: translateY(-7px) !important;
  box-shadow: 0 20px 35px -10px rgba(0, 0, 0, 0.6), 0 0 20px 0 rgba(197, 168, 128, 0.25) !important;
  transition-delay: 0s !important;
  --reveal-delay: 0ms !important;
}

/* Preservação Integral de Destaques em Gradiente Ouro (Sem separação e sem cortes) */
.gold-gradient-text {
  background: linear-gradient(135deg, #FFFFFF 20%, #E5D5C5 60%, #C5A880 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: inline-block;
  line-height: 1.25;
  padding: 0.05em 0;
}

/* Controle dinâmico da imagem Hero: Zoom Out Bidirecional no Scroll + Cor no Hover Direito */
.hero-image-target {
  filter: grayscale(100%);
  opacity: 0.45;
  transform: scale(1.14);
  transition: filter 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
              transform 2.4s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: filter, opacity, transform;
}

/* Scroll Bidirecional: Ao entrar na visualização executa o zoom out suave para scale(1) */
.is-revealed .hero-image-target,
.hero-image-target.is-revealed {
  transform: scale(1);
  opacity: 0.65;
}

/* Foco do Mouse: Exclusivamente adiciona cor e nitidez, sem alterar a escala */
.hero-image-target.hero-colored {
  filter: grayscale(0%);
  opacity: 0.95;
}

/* Animação de Texto Palavra por Palavra (Sem cortes e com queda suave) */
.word-drop-item {
  display: inline-block;
  opacity: 0;
  transform: translateY(-16px);
  filter: blur(3px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms),
              filter 0.8s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
  margin-right: 0.22em;
}

.is-revealed .word-drop-item {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Efeito Cascata Dominó para Elementos Estruturais */
.cascade-item {
  opacity: 0;
  transform: translateY(22px);
  filter: blur(3px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms),
              filter 0.85s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

.is-revealed .cascade-item,
.cascade-item.is-revealed {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  .word-drop-item,
  .cascade-item {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* Transições Suaves entre Páginas (Entrada e Saída) */
body {
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

body.page-loaded {
  opacity: 1;
}

body.page-leaving {
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==================== BOTÃO FLUTUANTE WHATSAPP ==================== */
#whatsapp-trigger-btn {
  position: fixed !important;
  bottom: 1.5rem !important;
  right: 1.5rem !important;
  z-index: 9999 !important;
}

/* ==================== FAQ ACCORDION PREMIUM ==================== */
.faq-item {
  border: 1px solid #E2E8F0;
  background-color: #FFFFFF;
  border-radius: 0.75rem;
  transition: border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: border-color, box-shadow;
}

.faq-item:hover {
  border-color: rgba(197, 168, 128, 0.5);
  box-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.05);
}

.faq-item.is-open,
.faq-item[open] {
  border-color: rgba(197, 168, 128, 0.75);
  box-shadow: 0 8px 24px -4px rgba(15, 23, 42, 0.06), 0 0 0 1px rgba(197, 168, 128, 0.15);
}

.faq-item summary {
  list-style: none;
  user-select: none;
  cursor: pointer;
}

.faq-item summary::-webkit-details-marker,
.faq-item summary::marker {
  display: none;
}

.faq-icon-badge {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              background-color 0.3s ease,
              color 0.3s ease;
  will-change: transform;
}

.faq-item.is-open .faq-icon-badge,
.faq-item[open] .faq-icon-badge {
  transform: rotate(180deg);
  background-color: #0F172A;
  color: #C5A880;
}

.faq-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: grid-template-rows;
}

.faq-item.is-open .faq-content,
.faq-item[open] .faq-content {
  grid-template-rows: 1fr;
}

.faq-content-inner {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.25s ease, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.faq-item.is-open .faq-content-inner,
.faq-item[open] .faq-content-inner {
  opacity: 1;
  transform: translateY(0);
}

/* Menu Mobile Fullscreen Overlay 100% Opaco */
#mobile-menu {
  background-color: #050608 !important;
  background: #050608 !important;
  z-index: 99999 !important;
}

#mobile-menu:not(.hidden) {
  animation: mobileMenuFadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes mobileMenuFadeIn {
  from {
    opacity: 0;
    transform: scale(0.98);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Ocultação garantida do WhatsApp flutuante quando o menu mobile está aberto */
body.mobile-menu-open #whatsapp-trigger-btn,
body.overflow-hidden #whatsapp-trigger-btn {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}

/* Transição de Cores Automática para Fotos no Mobile */
@media (max-width: 1023px) {
  #hero-justica-img,
  .photo-auto-color,
  img[src*="fotoadv"],
  #galeria img,
  img.grayscale {
    transition: filter 1.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s ease, transform 0.7s ease !important;
  }

  .photo-auto-color.is-colored,
  img.is-colored,
  #hero-justica-img.is-colored {
    filter: grayscale(0%) !important;
    opacity: 0.75 !important;
  }
}



