/*
  Author: Tiago Capulo
  E-Mail: tcapulo@ideasoft.com.br
  Ideasoft Soluções em Tecnologia Ltda.
  https://www.ideasoft.com.br
  Created: 05.08.2026
  Last Update: 05.08.2026
*/
/* ==========================================================================
   Ideasoft — Estilos específicos de páginas
   ========================================================================== */

/* Página inicial: hero com rede de conectividade animada em SVG + CSS (original) */
.home-hero { --hero-pattern: none; }
.hero-visual { position: absolute; right: -10%; top: 10%; width: 60%; max-width: 640px; opacity: 0.5; z-index: -1; }
@media (max-width: 1023px) { .hero-visual { display: none; } }

.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.6;
  pointer-events: none;
}
.home-hero .container { position: relative; z-index: 1; }
.hero-network { width: 100%; height: 100%; }
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  mix-blend-mode: screen;
}
@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
}
.net-line {
  opacity: 0.35;
  stroke-dasharray: 6 6;
  animation: net-flow 6s linear infinite;
}
.net-node { animation: net-pulse 4s ease-in-out infinite; transform-origin: center; }
.net-node-1 { animation-delay: 0s; }
.net-node-2 { animation-delay: 0.6s; }
.net-node-3 { animation-delay: 1.2s; }
.net-node-4 { animation-delay: 1.8s; }

@keyframes net-flow {
  to { stroke-dashoffset: -120; }
}
@keyframes net-pulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.35); }
}

.value-prop { max-width: 820px; }

.logo-strip { display: flex; flex-wrap: wrap; gap: var(--space-6); align-items: center; justify-content: center; opacity: 0.75; }

/* Logos de clientes (página de Casos): opacidade total, cartão com nome do
   cliente como rótulo visível e link para o site institucional. */
.client-logo-strip { opacity: 1; gap: var(--space-5); }
.client-logo-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-6);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  min-width: 160px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.client-logo-item:hover,
.client-logo-item:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.client-logo-item img { max-width: 120px; max-height: 60px; width: auto; height: auto; object-fit: contain; }
.client-logo-name { font-size: var(--fs-100); color: var(--color-text-muted); font-weight: 600; text-align: center; }

.methodology-band { position: relative; }

.insight-card .insight-meta { font-size: var(--fs-100); color: var(--color-text-muted); display: flex; gap: var(--space-3); }
.insight-card time { font-weight: 600; }

/* Página de listagem de soluções / setores / tecnologias */
.overview-grid .card .card-icon { background: var(--gradient-accent); color: #fff; }

/* Fotografias reais (picture/img responsivos) usadas em algumas páginas */
.photo-frame {
  display: block;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  line-height: 0;
}
.photo-frame img { width: 100%; height: auto; display: block; }

/* Página de artigo (insights) */
.article-header { max-width: 820px; }
.article-body { max-width: 760px; }
.article-body h2 { margin-top: var(--space-7); margin-bottom: var(--space-4); }
.article-body h3 { margin-top: var(--space-6); margin-bottom: var(--space-3); }
.article-body p { margin-bottom: var(--space-4); }
.article-body ul, .article-body ol { margin: 0 0 var(--space-5) 0; padding-left: 1.4rem; list-style: disc; color: var(--color-text-muted); }
.article-body ol { list-style: decimal; }
.article-body li { margin-bottom: var(--space-2); line-height: var(--lh-relaxed); }
.article-meta { display: flex; flex-wrap: wrap; gap: var(--space-4); color: var(--color-text-muted); font-size: var(--fs-200); margin-bottom: var(--space-5); }
.related-articles { border-top: 1px solid var(--color-border); padding-top: var(--space-6); margin-top: var(--space-8); }

/* Página de contato */
.contact-info-card { background: var(--color-surface); border-radius: var(--radius-md); padding: var(--space-6); }
.contact-info-item { display: flex; gap: var(--space-3); margin-bottom: var(--space-5); }
.contact-info-item .icon { color: var(--color-primary); flex-shrink: 0; }

/* Página de carreiras */
.culture-grid .card { text-align: left; }
.job-placeholder { border: 1.5px dashed var(--color-border); border-radius: var(--radius-md); padding: var(--space-6); text-align: center; color: var(--color-text-muted); }

/* Página 404 */
.error-page { min-height: 70vh; display: flex; align-items: center; justify-content: center; text-align: center; padding-block: var(--space-9); }
.error-code { font-family: var(--font-heading); font-size: 7rem; color: var(--color-primary); line-height: 1; }

/* Páginas legais */
.legal-content { max-width: 820px; }
.legal-content h2 { margin-top: var(--space-7); margin-bottom: var(--space-3); }
.legal-content h3 { margin-top: var(--space-5); margin-bottom: var(--space-2); }
.legal-content p { margin-bottom: var(--space-4); }
.legal-content ul { list-style: disc; padding-left: 1.4rem; color: var(--color-text-muted); margin-bottom: var(--space-4); }
.legal-content li { margin-bottom: 0.4rem; }
.legal-updated { color: var(--color-text-muted); font-size: var(--fs-200); margin-bottom: var(--space-6); }
/* Tabela de finalidades (LGPD): container com rolagem horizontal em telas
   estreitas, já que a tabela tem várias colunas de texto longo. */
.legal-table-wrap { overflow-x: auto; margin-bottom: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.legal-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: var(--fs-200); }
.legal-table th, .legal-table td { padding: var(--space-3) var(--space-4); text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-border); }
.legal-table th { background: var(--color-surface); font-family: var(--font-heading); color: var(--color-graphite); white-space: nowrap; }
.legal-table tbody tr:last-child td { border-bottom: none; }
.legal-table tbody tr:hover { background: var(--color-surface); }

/* Setores / Casos */
.sector-challenge-list { display: grid; gap: var(--space-4); }
.sector-challenge-list li { display: flex; gap: 0.75rem; padding: var(--space-4); background: var(--color-surface); border-radius: var(--radius-sm); }
.sector-challenge-list .icon { color: var(--color-accent); flex-shrink: 0; }

.case-card .case-tags { margin-bottom: var(--space-3); }
.case-result { background: var(--color-surface); border-radius: var(--radius-sm); padding: var(--space-4); margin-top: var(--space-3); }
