/* ===== SCROLLBAR ===== */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0F172A; }
::-webkit-scrollbar-thumb { background: #2563EB; border-radius: 4px; }

/* ===== HEADER (transparente no topo, escuro ao rolar) ===== */
#header.header-scrolled {
  background: rgba(2, 6, 23, 0.9);
  backdrop-filter: blur(16px);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

/* ===== HERO ===== */
.hero-gradient {
  background: linear-gradient(135deg, #020617 0%, #0F172A 50%, #1E293B 100%);
}
.hero-glow {
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 9999px;
  filter: blur(120px);
  opacity: 0.15;
  pointer-events: none;
}
.hero-glow-1 { top: -100px; right: -100px; background: #2563EB; }
.hero-glow-2 { bottom: -100px; left: -100px; background: #06B6D4; }

/* ===== FLOAT ===== */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}
@keyframes float-delay {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}
.float-animation { animation: float 6s ease-in-out infinite; }
.float-animation-delay { animation: float-delay 5s ease-in-out infinite 1s; }

/* ===== PULSE GLOW (CTA) ===== */
@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4); }
  50% { box-shadow: 0 0 0 15px rgba(37, 99, 235, 0); }
}
.pulse-glow { animation: pulse-glow 2.2s infinite; }

/* ===== SERVICE CARD HOVER ===== */
.service-card { transition: all 0.4s ease; }
.service-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 25px 50px rgba(37, 99, 235, 0.15);
}
.service-card:hover .service-icon {
  background: linear-gradient(135deg, #2563EB, #06B6D4);
  color: white;
}

/* ===== COUNTER SHIMMER ===== */
.counter-box { position: relative; overflow: hidden; }
.counter-box::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(45deg, transparent, rgba(37, 99, 235, 0.06), transparent);
  animation: shimmer 3s infinite;
}
@keyframes shimmer {
  0% { transform: translateX(-100%) rotate(45deg); }
  100% { transform: translateX(100%) rotate(45deg); }
}

/* ===== IMAGE PLACEHOLDER ===== */
.img-placeholder {
  color: #94A3B8;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 14px;
  padding: 24px;
}

/* ===== FORM STATUS ===== */
.form-error { color: #F87171; }
.form-status[data-tipo="erro"] { color: #F87171; }
.form-status[data-tipo="sucesso"] { color: #06B6D4; }

/* ===== TYPING EFFECT (titulo do hero) ===== */
.typing-cursor {
  display: inline-block;
  width: 3px;
  height: 0.85em;
  background: #06B6D4;
  margin-left: 2px;
  vertical-align: text-bottom;
  animation: typing-blink 0.9s step-end infinite;
}
@keyframes typing-blink {
  50% { opacity: 0; }
}

/* ===== GRADIENT TEXT / DIVIDER ===== */
.gradient-text {
  background: linear-gradient(135deg, #2563EB, #06B6D4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.section-divider {
  width: 60px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(135deg, #2563EB, #06B6D4);
}

/* ===== LOGOS MARQUEE ===== */
.marquee-track {
  animation: marquee 30s linear infinite;
  width: max-content;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ===== ABOUT: ZOOM NAS FOTOS ===== */
.img-zoom { overflow: hidden; }
.img-zoom img { transition: transform 0.5s ease; }
.img-zoom:hover img { transform: scale(1.08); }

/* ===== PORTFOLIO: OVERLAY NO HOVER ===== */
.portfolio-overlay {
  opacity: 0;
  transition: opacity 0.35s ease;
}
.portfolio-item:hover .portfolio-overlay { opacity: 1; }
.portfolio-item img { transition: transform 0.5s ease; }
.portfolio-item:hover img { transform: scale(1.08); }

/* ===== BLOG: ZOOM NA CAPA ===== */
.blog-image img { transition: transform 0.5s ease; }
.blog-card:hover .blog-image img { transform: scale(1.08); }

/* ===== TESTEMUNHOS: SLIDER ===== */
.testimonial-slider { transition: transform 0.5s ease; }

/* ===== RECAPTCHA: esconde o selo flutuante (o texto de aviso no form ja cobre a exigencia) ===== */
.grecaptcha-badge { visibility: hidden; }
