/* ============================================================
   Estilos extras — site do empreiteiro
   Tailwind via CDN faz o grosso. Aqui ficam só print + tweaks.
   ============================================================ */

/* ============================================================
   ACESSIBILIDADE & UX BASE
   ============================================================ */

/* Scroll suave + offset pra âncoras não sumirem atrás do header sticky */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

/* Reduz delay de toque em mobile (300ms double-tap zoom) */
a, button, [role="button"], input[type="submit"], input[type="button"] {
  touch-action: manipulation;
}

/* Foco visível pra teclado em qualquer elemento interativo
   (substitui o outline padrão por um anel laranja consistente com a marca) */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2px solid #ea580c;
  outline-offset: 2px;
  border-radius: 6px;
}

/* Skip-link — aparece só quando focado por Tab */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: #1c1917;
  color: #fff;
  padding: 8px 16px;
  font-weight: 600;
  font-size: 14px;
  z-index: 100;
  border-radius: 0 0 8px 0;
  transition: top 0.15s;
}
.skip-link:focus {
  top: 0;
}

/* Garante tap target de 44px nos botões pequenos do header e do orçamento */
header a[data-wa],
header.no-print button {
  min-height: 44px;
}

/* Honra preferência do usuário por menos movimento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   ORÇAMENTO — inputs "editáveis" parecem texto comum até clicar
   ============================================================ */
.editable {
  border: none;
  background: transparent;
  outline: none;
  resize: none;
  font: inherit;
  color: inherit;
  padding: 2px 4px;
  border-radius: 4px;
  transition: background 0.15s;
}
.editable:hover {
  background: #f5f5f4;
}
.editable:focus-visible {
  background: #fff7ed;
  outline: 2px solid #ea580c;
  outline-offset: 1px;
}
.editable::placeholder {
  color: #a8a29e;
  font-style: italic;
}

/* ============================================================
   PRINT — quando o usuário imprimir/salvar PDF
   ============================================================ */
@media print {
  .no-print,
  .no-print * {
    display: none !important;
  }

  body {
    background: white !important;
    color: black !important;
  }

  .shadow-lg,
  .shadow-md,
  .shadow {
    box-shadow: none !important;
  }

  @page {
    size: A4;
    margin: 18mm 14mm;
  }

  main {
    padding: 0 !important;
    max-width: 100% !important;
  }

  article {
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .editable {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
  }

  .editable::placeholder {
    color: transparent !important;
  }

  table {
    page-break-inside: avoid;
  }

  section,
  footer {
    page-break-inside: avoid;
  }
}

/* ============================================================
   Botão WhatsApp flutuante: animação ao carregar (1x)
   ============================================================ */
@keyframes pulse-once {
  0% { transform: scale(0.8); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
.fixed.bottom-5 {
  animation: pulse-once 0.3s ease 1s backwards;
}

/* ============================================================
   Headings — evita linhas órfãs/viúvas em quebra natural
   ============================================================ */
h1, h2, h3 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
