/* =========================================================
   PROCONST — CSS COMPARTILHADO (tema escuro)
   Cole este arquivo em /assets/css/style.css
========================================================= */
:root { color-scheme: dark; }
html { scroll-behavior: smooth; color-scheme: dark; }
body { background:#0B1220; color-scheme: dark; }

/* ---------- Blueprint grid background (assinatura visual) ---------- */
.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 (mantém a página "viva") ---------- */
.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 (escuro) ---------- */
.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);
}

/* ---------- Hero SVG técnico — desenha e reinicia em 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; }
.draw-loop.d4 { animation-delay: 1.5s; }
@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; }
}

/* Palavra de destaque com pulso suave de brilho (loop contínuo) */
.glow-pulse { animation: glowPulse 3.2s ease-in-out infinite; }
@keyframes glowPulse {
  0%,100% { text-shadow: 0 0 14px rgba(184,134,63,0.10); }
  50%     { text-shadow: 0 0 22px rgba(184,134,63,0.45); }
}

/* ---------- Números / mono ---------- */
.tabular { font-variant-numeric: tabular-nums; }

/* ---------- Nav underline hover (fundo claro) ---------- */
.nav-link { position: relative; }
.nav-link::after {
  content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px;
  background:#B8863F; transition:width .35s ease;
}
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.nav-link.active { color:#EAF0FA; }

/* ---------- Nav underline hover (header escuro) ---------- */
.nav-link-dark { position: relative; }
.nav-link-dark::after {
  content:''; position:absolute; left:0; bottom:-6px; width:0; height:1px;
  background:#D9A85C; transition:width .35s ease;
}
.nav-link-dark:hover::after, .nav-link-dark.active::after { width:100%; }

/* ---------- Correção de corte de letras com descendente (g, j, p, q, y, ã) nas
   animações de revelação de texto (overflow:hidden usado para o efeito de slide-up) ---------- */
.hero-line { padding-bottom: 0.2em; margin-bottom: -0.2em; }

/* Dropdown de serviços */
.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown-menu {
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
}

/* ---------- 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 cards ---------- */
.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); }

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

/* ---------- Banner interno de página ---------- */
.page-hero { position:relative; }
.page-hero .vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center, transparent 0%, #0B1220 88%); }

/* ---------- Foto de hero em tela cheia: zoom lento contínuo (Ken Burns) + vinheta escura ---------- */
.hero-photo {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center;
  animation: heroZoom 22s ease-in-out infinite alternate;
}
@keyframes heroZoom { from { transform: scale(1); } to { transform: scale(1.09); } }
.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.82) 38%, rgba(11,18,32,0.35) 68%, rgba(11,18,32,0.15) 100%),
    linear-gradient(0deg, rgba(11,18,32,0.9) 0%, transparent 30%);
}

/* ---------- Line-clamp (fallback, caso o Tailwind CDN não inclua o utilitário) ---------- */
.line-clamp-1 { display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ---------- Cartões de obras em destaque (home) ---------- */
.feature-card { transition: transform .5s ease, box-shadow .5s ease; }
.feature-card:hover { transform: translateY(-6px); }

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