/* =========================================================
   PROCONST — LANDING PAGE (arquivo único de conversão)
   /assets/css/style.css
========================================================= */
:root { color-scheme: dark; }
html { scroll-behavior: smooth; color-scheme: dark; }
body { background:#0B1220; }

/* ---------- Blueprint grid (assinatura visual da marca) ---------- */
.blueprint-grid {
  background-image:
    linear-gradient(rgba(214,167,89,0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(214,167,89,0.09) 1px, transparent 1px),
    linear-gradient(rgba(214,167,89,0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(214,167,89,0.16) 1px, transparent 1px);
  background-size: 20px 20px, 20px 20px, 100px 100px, 100px 100px;
  background-position: -1px -1px, -1px -1px, -1px -1px, -1px -1px;
}

/* ---------- Radar / scan-line ambiente ---------- */
.scan-line { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.scan-line::after {
  content:''; position:absolute; left:0; right:0; height:160px;
  background:linear-gradient(180deg, transparent, rgba(214,167,89,0.14), transparent);
  animation: scanMove 7s linear infinite;
}
@keyframes scanMove { 0% { top:-160px; } 100% { top:100%; } }

/* ---------- Glassmorphism ---------- */
.glass {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.08);
}

/* ---------- Foto de hero: zoom lento contínuo (Ken Burns) ---------- */
.hero-photo {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center;
  animation: heroZoom 24s ease-in-out infinite alternate;
}
@keyframes heroZoom { from { transform: scale(1); } to { transform: scale(1.1); } }
.hero-photo-overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(11,18,32,0.97) 0%, rgba(11,18,32,0.85) 42%, rgba(11,18,32,0.4) 72%, rgba(11,18,32,0.18) 100%),
    linear-gradient(0deg, rgba(11,18,32,0.92) 0%, transparent 32%);
}

/* ---------- Entrada em cascata: anel + partículas técnicas no hero ---------- */
.hero-ring {
  position: absolute; border-radius: 9999px; border: 1px solid rgba(214,167,89,0.25);
  animation: ringPulse 6s ease-in-out infinite;
}
@keyframes ringPulse {
  0%, 100% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.06); opacity: .9; }
}
.hero-dot {
  position:absolute; width:6px; height:6px; border-radius:9999px; background:#D6A759;
  animation: dotFloat 5s ease-in-out infinite;
}
@keyframes dotFloat {
  0%, 100% { transform: translateY(0); opacity:.3; }
  50% { transform: translateY(-14px); opacity:1; }
}

/* ---------- Contagem regressiva de linhas técnicas (loop) ---------- */
.draw-loop {
  stroke-dasharray: 1600;
  animation: drawLoop 7s cubic-bezier(.65,.05,.36,1) infinite;
}
.draw-loop.d2 { animation-delay: .5s; }
.draw-loop.d3 { animation-delay: 1s; }
@keyframes drawLoop {
  0%   { stroke-dashoffset: 1600; opacity:.2; }
  35%  { stroke-dashoffset: 0;    opacity:1;  }
  75%  { stroke-dashoffset: 0;    opacity:1;  }
  100% { stroke-dashoffset: -1600; opacity:.2; }
}

.glow-pulse { animation: glowPulse 3.2s ease-in-out infinite; }
@keyframes glowPulse {
  0%,100% { text-shadow: 0 0 14px rgba(214,167,89,0.15); }
  50%     { text-shadow: 0 0 26px rgba(214,167,89,0.55); }
}

.tabular { font-variant-numeric: tabular-nums; }

/* ---------- Botões ---------- */
.btn-shine { position:relative; overflow:hidden; }
.btn-shine::before {
  content:''; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,0.45), transparent);
  transform:skewX(-20deg);
  transition:left .65s ease;
}
.btn-shine:hover::before { left:130%; }

/* ---------- WhatsApp flutuante ---------- */
.wa-pulse::before {
  content:''; position:absolute; inset:0; border-radius:9999px;
  background:#25D366; opacity:.6;
  animation:pulseWa 2.2s ease-out infinite;
}
@keyframes pulseWa {
  0%   { transform:scale(1);   opacity:.55; }
  70%  { transform:scale(1.9); opacity:0;   }
  100% { transform:scale(1.9); opacity:0;   }
}

/* ---------- Tilt 3D ---------- */
.tilt { transform-style: preserve-3d; transition: transform .25s ease, box-shadow .25s ease; will-change: transform; }

/* ---------- Reveal ao rolar ---------- */
.reveal { opacity: 0; transform: translateY(36px); }

/* ---------- Lightbox ---------- */
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-track { background:#0B1220; }
::-webkit-scrollbar-thumb { background:#2A3B57; border-radius:8px; }

.nav-link-dark { position: relative; }
.nav-link-dark::after {
  content:''; position:absolute; left:0; bottom:-6px; width:0; height:1px;
  background:#EAC888; transition:width .35s ease;
}
.nav-link-dark:hover::after { width:100%; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .draw-loop, .glow-pulse, .scan-line::after, .hero-photo, .hero-ring, .hero-dot { animation:none !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}
