:root {
  --dark-green: #14251C;
  --light-gray: #CDD3CD;
  --accent-blue: #1a6be1;
  --accent-blue-hover: #124d9c;
}

html, body {
  overflow-x: hidden;
  max-width: 100%;
}

body {
  font-family: 'Poppins', sans-serif;
  background-color: var(--dark-green);
  color: #E8EBE9;
}

.font-hero { font-family: 'Plus Jakarta Sans', sans-serif; }
.font-drama { font-family: 'Playfair Display', serif; }

/* Verde Escuro */
.bg-dark-green {
  background-color: var(--dark-green);
  color: #E8EBE9;
}

/* Cinza Claro (não próximo ao branco) */
.bg-light-gray {
  background-color: var(--light-gray);
  color: #14251C;
}

/* Efeito Hover do Drone Background */
@keyframes flyForward {
  0% { transform: scale(1.0) translateY(0); }
  50% { transform: scale(1.15) translateY(3%); }
  100% { transform: scale(1.0) translateY(0); }
}
.bg-fly {
  animation: flyForward 15s ease-in-out infinite;
  transform-origin: center center;
}

/* Carregar fundos nativamente apenas no Desktop (evita dependência de JS e falhas) */
.hero-bg-1, .hero-bg-2 {
  background-image: none;
}
@media (min-width: 768px) {
  .hero-bg-1 {
    background-image: url('images/background-hero.webp?v=1.3');
  }
  .hero-bg-2 {
    background-image: url('images/background-hero2.webp?v=1.3');
  }
}

/* Menu Transparente Frosted */
.nav-scrolled {
  background: rgba(20, 37, 28, 0.85) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 0 4px 30px rgba(0,0,0,0.2);
}

.nav-scrolled-light {
  background: rgba(205, 211, 205, 0.85) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(20, 37, 28, 0.1);
  box-shadow: 0 4px 30px rgba(0,0,0,0.1);
}

/* Text Effects */
.text-neon-green {
  color: #88ff18;
  text-shadow: 0 0 10px rgba(136, 255, 24, 0.4), 0 2px 4px rgba(0,0,0,0.6);
}

@keyframes shineText {
  0% { background-position: 200% center; }
  100% { background-position: -200% center; }
}

.title-gradient-fx {
  background: linear-gradient(
    110deg, 
    #88ff18 0%, 
    #1a6be1 45%, 
    #5cb8ff 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: drop-shadow(0 4px 15px rgba(26,107,225,0.2));
}

/* Glassmorphism Panels */
.glass-panel-dark {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 10px 40px -10px rgba(0,0,0,0.3);
  transition: all 0.4s ease;
}
.glass-panel-dark:hover {
  transform: translateY(-5px) scale(1.01);
  border-color: rgba(136, 255, 24, 0.3);
  box-shadow: 0 20px 50px -15px rgba(136, 255, 24, 0.15);
  background: rgba(255, 255, 255, 0.06);
}

.glass-panel-light {
  background: rgba(20, 37, 28, 0.05);
  border: 1px solid rgba(20, 37, 28, 0.1);
  box-shadow: 0 10px 40px -10px rgba(0,0,0,0.05);
  transition: all 0.4s ease;
}
.glass-panel-light:hover {
  transform: translateY(-5px) scale(1.01);
  border-color: rgba(26, 107, 225, 0.4);
  box-shadow: 0 20px 50px -15px rgba(26, 107, 225, 0.15);
  background: rgba(20, 37, 28, 0.08);
}

.icon-glow {
  filter: drop-shadow(0 0 12px rgba(136, 255, 24, 0.4));
}

/* Pulse verde do WhatsApp (GPU-accelerated, composited) */
.btn-whatsapp {
  isolation: isolate;
}
.btn-whatsapp::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 9999px;
  background: #25D366;
  opacity: 0.6;
  z-index: -1;
  animation: wppPulse 2s cubic-bezier(0.25, 0, 0, 1) infinite;
  pointer-events: none;
}
@keyframes wppPulse {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.45); opacity: 0; }
}

/* Moving Grid Lines */
.tech-grid-dark {
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size: 50px 50px;
}

.tech-grid-light {
  background-image: 
    linear-gradient(rgba(20, 37, 28, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 37, 28, 0.03) 1px, transparent 1px);
  background-size: 50px 50px;
}

/* FAQ animado nativo */
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 10px;
}
::-webkit-scrollbar-track {
  background: var(--dark-green);
}
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* Estilo para logotipos de culturas */
.culture-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: rgba(20, 37, 28, 0.15);
  border: 1px solid rgba(20, 37, 28, 0.2);
  border-radius: 9999px;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--dark-green);
  transition: all 0.3s ease;
}
.bg-dark-green .culture-badge {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #E8EBE9;
}
.culture-badge:hover {
  transform: translateY(-2px);
  background: var(--accent-blue);
  color: white;
  border-color: var(--accent-blue);
}

/* Efeito de Revelação AOS Otimizado (zero-reflow) */
.ds-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, opacity;
}
.ds-active {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* GPU-accelerated float animation for LCP image */
@keyframes floatDrone {
  0% { transform: translateY(0); }
  50% { transform: translateY(12px); }
  100% { transform: translateY(0); }
}
.float-animation {
  animation: floatDrone 4s ease-in-out infinite;
  will-change: transform;
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95) translateY(10px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
.animate-fadeIn {
  animation: fadeIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
