
/* --- Animação de entrada suave para artigos do blog --- */
.blog-post-container {
  animation: blogFadeIn 0.9s cubic-bezier(0.2,0.8,0.3,1) 0.1s both;
}
@keyframes blogFadeIn {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Corrigir botão de voltar para o blog com contraste garantido */
.back-button a {
  display: inline-block;
  background: #1565C0 !important;
  color: #fff !important;
  padding: 12px 32px !important;
  border-radius: 30px !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  text-decoration: none !important;
  box-shadow: 0 2px 12px rgba(21,101,192,0.08) !important;
  margin-bottom: 24px !important;
  border: none !important;
  letter-spacing: 0.01em;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.back-button a:hover {
  background: #0D47A1 !important;
  color: #fff !important;
  box-shadow: 0 4px 18px rgba(21,101,192,0.18) !important;
}
/* --- Hotfix: Forçar visibilidade do conteúdo dos artigos do blog --- */
.blog-post-container, .blog-post-title, .blog-post-meta, .blog-post-content, .blog-post-footer {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: #fff !important;
}

/* AJUSTE PARA TABLET E MOBILE GRANDE (600px a 900px) */
@media (max-width: 900px) {
  .form-layout, .contact-form, .form-layout .reveal, .form-layout form {
    display: flex !important;
    flex-direction: column !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: #fff !important;
    z-index: 10 !important;
    position: relative;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
  }
  .form-layout img, .form-layout .section-tag, .form-layout .section-title, .form-layout p {
    opacity: 1 !important;
    visibility: visible !important;
  }
}
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* CORRIGE SUMIÇO DE .reveal NO MOBILE E TABLET */
@media (max-width: 1024px) {
  .reveal, .reveal.visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* FORÇA VISIBILIDADE DOS FORMULÁRIOS EM TODAS AS TELAS */
#contato .reveal,
#contato .contact-form,
#contato form,
#form-parceiro .reveal,
#form-parceiro .contact-form,
#form-parceiro form,
.form-layout .reveal,
.form-layout form {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* MOBILE: layout do formulário */
@media (max-width: 600px) {
  .form-layout, .contact-form, .form-layout .reveal, .form-layout form {
    display: flex !important;
    flex-direction: column !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: #fff !important;
    z-index: 10 !important;
    position: relative;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
  }
  .form-layout img, .form-layout .section-tag, .form-layout .section-title, .form-layout p {
    opacity: 1 !important;
    visibility: visible !important;
  }
}
/* CORRIGE SUMIÇO DE .reveal NO MOBILE */
@media (max-width: 600px) {
  .reveal, .reveal.visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* FORÇA VISIBILIDADE DO FORMULÁRIO DE CONTATO NO MOBILE */
@media (max-width: 600px) {
  .form-layout, .contact-form, .form-layout .reveal, .form-layout form {
    display: flex !important;
    flex-direction: column !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: #fff !important;
    z-index: 10 !important;
    position: relative;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
  }
  .form-layout img, .form-layout .section-tag, .form-layout .section-title, .form-layout p {
    opacity: 1 !important;
    visibility: visible !important;
  }
}
/* ══════════════════════════════════════
   HERO TITLE — Solução definitiva
   Grande em telas grandes, menor em notebooks
══════════════════════════════════════ */

/* TELA GRANDE (padrão, acima de 1440px) */
.hero-title {
  font-family: 'Filson Pro', sans-serif;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 30px;
  color: #1565C0;
  font-style: italic;
  text-shadow: none;
  letter-spacing: -0.01em;
  hyphens: manual;
  word-break: keep-all;
}

/* NOTEBOOK (1025px até 1440px) */
@media (max-width: 1440px) and (min-width: 1025px) {
  .hero-title {
    font-size: 1.75rem !important;
  }
}

/* TABLET (1024px e abaixo) */
@media (max-width: 1024px) {
  .hero-title {
    font-size: 1.65rem !important;
  }
}

/* MOBILE */
@media (max-width: 768px) {
  .hero-title {
    font-size: 1.4rem !important;
  }
}

@media (max-width: 600px) {
  .hero-title {
    font-size: 1.2rem !important;
  }

  .highlight-dark {
    padding: 4px 10px;
    margin: 1px 4px;
    font-size: 0.95em;
  }
}

/* Neutraliza QUALQUER outro clamp() residual que possa existir */
@media (max-width: 900px) {
  .hero-title {
    font-size: 1.65rem !important;
  }
}
@media (max-width: 1200px) and (min-width: 1025px) {
  .hero-title {
    font-size: 1.75rem !important;
  }
}



@media (max-width: 1400px) and (min-width: 1000px) {
  .hero-image-wrapper img {
    max-width: 700px;
    min-width: 380px;
    width: 90vw;
  }
}
/* Garante que 'cloud sob medida.' fique sempre junto na hero-title */
/* (Regra removida pois não é mais necessária) */



/* Permite quebra de linha após 'sob medida.' na hero-title */
/* Animação de flutuação para a imagem da hero-image na página inicial */
/* Hero image maior e animada */
.hero-image-wrapper img {
  animation: heroFloat 4s ease-in-out infinite;
  max-width: 900px;
  min-width: 380px;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 0; /* ou -1 se quiser que fique atrás de tudo */
}

@keyframes heroFloat {
  0% { transform: translateY(0); }
  50% { transform: translateY(-18px); }
  100% { transform: translateY(0); }
}
/* ── FILSON PRO FONT ── */
/* 
Para usar a fonte Filson Pro, adicione os arquivos de fonte e descomente:
@font-face {
  font-family: 'Filson Pro';
  src: url('fonts/FilsonPro-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: 'Filson Pro';
  src: url('fonts/FilsonPro-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: 'Filson Pro';
  src: url('fonts/FilsonPro-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: 'Filson Pro';
  src: url('fonts/FilsonPro-Heavy.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
}
*/

:root {
  --orange: #F5631A;
  --blue: #1A6CF5;
  --cyan: #00C2FF;
  --dark: #1A1F35;
  --darker: #ffffff;
  --surface: #f4f6fb;
  --surface2: #e8edf8;
  --text: #0A0E1A;
  --muted: #3d4566;
  --grad: #0F3759;
  --grad2: #0F3759;
  --border: rgba(0,0,0,0.07);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Filson Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  background: var(--darker);
  color: var(--text);
  overflow-x: hidden;
  font-weight: 400;
  line-height: 1.6;
}

/* ── NAV ── */
nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 6%;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--border);
  transition: all 0.3s;
  overflow: hidden;
}

/* Linha fixa de base (apagada) */
nav::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(245, 99, 26, 0.15) 10%,
    rgba(255, 157, 92, 0.2) 50%,
    rgba(245, 99, 26, 0.15) 90%,
    transparent 100%
  );
  box-shadow: 0 0 8px rgba(245, 99, 26, 0.2);
  z-index: 9;
}

/* Feixe de luz animado (mais claro) */
nav::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: -200px;
  width: 200px;
  height: 2px;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(245, 99, 26, 0.4) 20%,
    rgba(245, 99, 26, 0.9) 40%,
    rgba(255, 157, 92, 1) 50%,
    rgba(245, 99, 26, 0.9) 60%,
    rgba(245, 99, 26, 0.4) 80%,
    transparent 100%
  );
  box-shadow: 
    0 0 25px rgba(255, 157, 92, 1),
    0 0 50px rgba(245, 99, 26, 0.7),
    0 -3px 15px rgba(255, 157, 92, 0.6);
  animation: navLightBeam 4s linear infinite;
  z-index: 10;
}

@keyframes navLightBeam {
  0% {
    left: -200px;
    opacity: 0;
  }
  5% {
    opacity: 1;
  }
  95% {
    opacity: 1;
  }
  100% {
    left: calc(100% + 200px);
    opacity: 0;
  }
}

.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.nav-logo-img {
  height: 190px;
  width: auto;
  max-width: 420px;
  object-fit: contain;
  display: block;
  margin: -58px 0;
}

.nav-links {
  display: flex;
  gap: 36px;
  list-style: none;
}

.nav-links a {
  color: var(--muted);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  transition: color 0.2s;
  letter-spacing: 0.01em;
}
.nav-links a:hover { color: var(--text); }

.nav-cta {
  background: #0D47A1;
  color: white !important;
  padding: 10px 24px !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 15px rgba(13, 71, 161, 0.3);
  transition: all 0.3s !important;
}

.nav-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(13, 71, 161, 0.4);
}

.nav-cloud-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0D47A1;
  color: white;
  padding: 10px 24px;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s;
  border-radius: 50px;
  margin: 0 20px;
  box-shadow: 0 4px 15px rgba(13, 71, 161, 0.3);
}

.nav-cloud-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(13, 71, 161, 0.4);
}

.nav-social {
  display: flex;
  gap: 10px;
}

.nav-social a {
  width: 40px;
  height: 40px;
  background: var(--surface2);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.2s;
  overflow: hidden;
}

.nav-social a:hover {
  background: var(--surface);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.nav-social a img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
}

.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; }
.hamburger span { width: 24px; height: 2px; background: var(--text); border-radius: 2px; transition: all 0.3s; }

/* ── HERO ── */
#home {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  padding: 120px 3% 80px;
  overflow: hidden;
  gap: 36px;
  background: #ffffff;
}

.hero-svg-decor {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  z-index: 1;
  pointer-events: none;
  opacity: 0.9;
}



/* ── Circuit Animation ── */
.circuit-line {
  stroke-dasharray: 800;
  stroke-dashoffset: 800;
  animation: circuitFlow 10s linear infinite;
}

@keyframes circuitFlow {
  0% {
    stroke-dashoffset: 800;
    opacity: 0.2;
  }
  50% {
    stroke-dashoffset: 0;
    opacity: 0.8;
  }
  100% {
    stroke-dashoffset: -800;
    opacity: 0.2;
  }
}

.circuit-dot {
  opacity: 0;
  animation: dotAppear 10s ease-in-out infinite;
}

@keyframes dotAppear {
  0% {
    opacity: 0;
    r: 2;
  }
  10% {
    opacity: 0.9;
    r: 5;
  }
  15% {
    opacity: 0.8;
    r: 4;
  }
  50% {
    opacity: 0.9;
    r: 4.5;
  }
  100% {
    opacity: 0;
    r: 2;
  }
}

.puzzle-pieces path {
  animation: puzzleFloat 4s ease-in-out infinite;
}

.puzzle-pieces path:nth-child(1) { animation-delay: 0s; }
.puzzle-pieces path:nth-child(2) { animation-delay: 0.5s; }
.puzzle-pieces path:nth-child(3) { animation-delay: 1s; }
.puzzle-pieces path:nth-child(4) { animation-delay: 1.5s; }
.puzzle-pieces path:nth-child(5) { animation-delay: 2s; }
.puzzle-pieces path:nth-child(6) { animation-delay: 2.5s; }
.puzzle-pieces path:nth-child(7) { animation-delay: 3s; }

@keyframes puzzleFloat {
  0%, 100% {
    opacity: 0.25;
    transform: translateY(0);
  }
  50% {
    opacity: 0.4;
    transform: translateY(-8px);
  }
}

/* Geometric Decorations */
.geometric-decor circle {
  animation: geometricPulse 8s ease-in-out infinite;
}

.geometric-decor circle:nth-child(1) { animation-delay: 0s; }
.geometric-decor circle:nth-child(2) { animation-delay: 1s; }
.geometric-decor circle:nth-child(3) { animation-delay: 2s; }
.geometric-decor circle:nth-child(4) { animation-delay: 3s; }

@keyframes geometricPulse {
  0%, 100% {
    opacity: 0.05;
    transform: scale(1);
  }
  50% {
    opacity: 0.12;
    transform: scale(1.05);
  }
}

.hero-content {
  position: relative;
  z-index: 3;
  flex: 1;
  max-width: 60%;
  animation: fadeUp 1s ease 0.3s both;
}

.hero-logo-container {
  margin-bottom: 40px;
}

.hero-logo-main {
  width: 180px;
  height: auto;
  display: block;
  animation: fadeIn 1s ease both;
}

.hero-video-wrapper {
  position: relative;
  z-index: 3;
  flex: 0 0 30%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  animation: fadeUp 1s ease 0.5s both;
}

.hero-video {
  width: 100%;
  max-width: 400px;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(26,108,245,0.2);
}

.hero-visual {
  position: relative;
  z-index: 3;
  flex: 0 0 30%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeUp 1s ease 0.3s both;
}

.hero-image-wrapper {
  position: relative;
  z-index: 5;
  flex: 0 0 39%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  animation: fadeUp 1s ease 0.5s both;
}

.hero-hand-image {
  width: 100%;
  max-width: 700px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 40px rgba(245,99,26,0.2));
  animation: growIn 1s ease-out forwards, floatImage 3s ease-in-out 1s infinite;
}

/* ── HERO: Stack Visual (HTML version) ── */
.hero-stack-visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 660px;
  /* sem float global — só a nuvem flutua */
}

/* ── Zona clicável da nuvem ── */
/* ═══════════════════════════════════════════════════════════
   CLOUD SLOTS SYSTEM - Nuvem com Slots Internos
   ═══════════════════════════════════════════════════════════ */

.cloud-slots-system {
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 950px;
}

/* SVG da nuvem com slots internos */
.cloud-main-svg {
  width: 100%;
  max-width: 950px;
  height: auto;
  position: relative;
  z-index: 1;
}

/* Animação de flutuação */
.cloud-animation {
  animation: cloudFloat 4s ease-in-out infinite;
  transform-origin: center center;
}

@keyframes cloudFloat {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-12px);
  }
}

/* Slots internos com animação sutil */
.internal-slots rect {
  transition: all 0.3s ease;
}

.internal-slots text {
  pointer-events: none;
  user-select: none;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .cloud-main-svg {
    max-width: 700px;
  }
}

/* Responsive - Mobile */
@media (max-width: 768px) {
  .cloud-slots-system {
    padding: 40px 15px;
    min-height: auto;
  }
  
  .cloud-main-svg {
    max-width: 500px;
  }
  
  .internal-slots text:nth-child(2n) {
    font-size: 12px !important;
  }
  
  .internal-slots text:nth-child(2n+1) {
    font-size: 9px !important;
  }
}

/* Responsive - Mobile pequeno */
@media (max-width: 480px) {
  .cloud-main-svg {
    max-width: 100%;
  }
  
  .internal-slots text:nth-child(2n) {
    font-size: 10px !important;
  }
  
  .internal-slots text:nth-child(2n+1) {
    font-size: 7px !important;
  }
}


/* ═══════════════════════════════════════════════════════════
   ANTIGO - Cloud Integrated System (Manter para compatibilidade)
   ═══════════════════════════════════════════════════════════ */

.cloud-integrated-system {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Nuvem SVG principal */
.cloud-with-slots {
  width: 100%;
  max-width: 550px;
  height: auto;
  position: relative;
  z-index: 1;
}

/* Animação de flutuação da nuvem */
.cloud-float {
  animation: cloudFloating 4s ease-in-out infinite;
  transform-origin: center center;
}

@keyframes cloudFloating {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-15px);
  }
}

/* Container dos cards */
.slot-cards-container {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 20px;
  z-index: 2;
  pointer-events: none;
}

/* Card individual */
.slot-card {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  animation: cloudFloating 4s ease-in-out infinite;
  pointer-events: auto;
}

/* Delays escalonados para cada card */
.slot-card-1 {
  animation-delay: 0.1s;
  margin-top: 120px;
}

.slot-card-2 {
  animation-delay: 0.2s;
}

.slot-card-3 {
  animation-delay: 0.3s;
}

.slot-card-4 {
  animation-delay: 0.4s;
}

/* Plug/Conector do card */
.slot-card-plug {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

/* Linha de conexão do plug */
.plug-connector {
  width: 40px;
  height: 3px;
  background: repeating-linear-gradient(
    to right,
    #F5631A 0px,
    #F5631A 6px,
    transparent 6px,
    transparent 12px
  );
  position: relative;
  animation: dataFlow 2s linear infinite;
}

@keyframes dataFlow {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 12px 0;
  }
}

/* Dot pulsante no plug */
.plug-dot {
  width: 8px;
  height: 8px;
  background: #F5631A;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(245,99,26,0.6);
  animation: plugPulse 1.5s ease-in-out infinite;
}

@keyframes plugPulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}

/* Corpo do card */
.slot-card-body {
  flex: 1;
  background: white;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 14px;
  border-left: 4px solid #F5631A;
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
  overflow: hidden;
  max-width: 450px;
}

.slot-card-body:hover {
  box-shadow: 0 8px 28px rgba(245,99,26,0.18);
  transform: translateX(8px);
  border-left-width: 6px;
  border-left-color: #FF9D5C;
}

.slot-card-body:hover .slot-badge {
  transform: scale(1.08);
  background: rgba(245,99,26,0.18);
}

/* Conteúdo do card */
.slot-card-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  gap: 16px;
}

.slot-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 5px;
  font-family: 'Filson Pro', sans-serif;
  line-height: 1.3;
}

.slot-card-sub {
  font-size: 0.82rem;
  color: var(--muted);
  font-weight: 400;
  line-height: 1.4;
}

.slot-badge {
  background: rgba(245,99,26,0.12);
  color: #F5631A;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 20px;
  white-space: nowrap;
  font-family: 'Filson Pro', sans-serif;
  letter-spacing: 0.02em;
  border: 1px solid rgba(245,99,26,0.25);
  flex-shrink: 0;
  transition: all 0.3s ease;
}

/* Responsive - Tablet */
@media (max-width: 900px) {
  .cloud-with-slots {
    max-width: 450px;
  }
  
  .slot-card-1 {
    margin-top: 100px;
  }
  
  .slot-card-body {
    max-width: 380px;
  }
  
  .plug-connector {
    width: 30px;
  }
}

/* Responsive - Mobile */
@media (max-width: 768px) {
  .cloud-integrated-system {
    padding: 20px 10px;
  }
  
  .cloud-with-slots {
    max-width: 350px;
  }
  
  .slot-cards-container {
    padding: 0 10px;
  }
  
  .slot-card-1 {
    margin-top: 80px;
  }
  
  .slot-card {
    margin-bottom: 18px;
  }
  
  .plug-connector {
    width: 25px;
  }
  
  .slot-card-body {
    max-width: 100%;
  }
  
  .slot-card-content {
    padding: 14px 16px;
    gap: 12px;
    flex-direction: column;
    align-items: flex-start;
  }
  
  .slot-badge {
    align-self: flex-start;
    padding: 6px 14px;
  }
  
  .slot-card-title {
    font-size: 0.92rem;
  }
  
  .slot-card-sub {
    font-size: 0.76rem;
  }
}

/* Responsive - Mobile pequeno */
@media (max-width: 480px) {
  .cloud-with-slots {
    max-width: 280px;
  }
  
  .slot-card-1 {
    margin-top: 60px;
  }
  
  .plug-connector {
    width: 20px;
  }
  
  .plug-dot {
    width: 6px;
    height: 6px;
  }
  
  .slot-card-content {
    padding: 12px 14px;
  }
}

/* ═══════════════════════════════════════════════════════════
   ANTIGO - Tech Ecosystem Vertical (Manter para compatibilidade)
   ═══════════════════════════════════════════════════════════ */

.tech-ecosystem-vertical {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 20px;
}

/* Nuvem no topo */
.tech-cloud-top {
  display: flex;
  justify-content: center;
  margin-bottom: 0;
  z-index: 2;
}

.tech-cloud-main {
  width: 320px;
  max-width: 100%;
  height: auto;
  filter: drop-shadow(0 16px 32px rgba(245,99,26,0.25));
  animation: floatImageVertical 4s ease-in-out infinite;
  display: block;
}

/* Animação sincronizada da nuvem e cards */
@keyframes floatImageVertical {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-15px);
  }
}

/* Conector principal da nuvem */
.tech-main-connector {
  width: 3px;
  height: 60px;
  background: linear-gradient(to bottom,
    rgba(245,99,26,0.6) 0%,
    rgba(245,99,26,0.3) 50%,
    rgba(245,99,26,0.1) 100%
  );
  position: relative;
  margin: -10px 0 20px 0;
  animation: floatImageVertical 4s ease-in-out infinite;
}

/* Dot pulsante no conector */
.tech-pulse-dot {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  background: #F5631A;
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(245,99,26,0.6);
  animation: techPulseMove 4s ease-in-out infinite;
}

@keyframes techPulseMove {
  0%, 100% {
    top: 0;
    opacity: 1;
  }
  50% {
    top: 100%;
    opacity: 0.6;
  }
}

/* Lista de cards */
.tech-cards-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  max-width: 650px;
}

/* Item da lista com conector */
.tech-list-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  margin-bottom: 16px;
  animation: floatImageVertical 4s ease-in-out infinite;
}

/* Delay escalonado para cada item */
.tech-list-item[data-delay="0"] {
  animation-delay: 0s;
}
.tech-list-item[data-delay="1"] {
  animation-delay: 0.3s;
}
.tech-list-item[data-delay="2"] {
  animation-delay: 0.6s;
}
.tech-list-item[data-delay="3"] {
  animation-delay: 0.9s;
}

/* Conector lateral de cada item */
.tech-item-connector {
  width: 40px;
  height: 2px;
  background: repeating-linear-gradient(
    to right,
    #F5631A 0px,
    #F5631A 6px,
    transparent 6px,
    transparent 12px
  );
  margin-right: 16px;
  margin-top: 32px;
  flex-shrink: 0;
  position: relative;
  animation: techLineFlow 2s linear infinite;
}

@keyframes techLineFlow {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 12px 0;
  }
}

/* Dot no início do conector */
.tech-item-connector::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  background: #F5631A;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(245,99,26,0.5);
  animation: techDotPulse 2s ease-in-out infinite;
}

/* Dot no final do conector */
.tech-item-connector::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  background: #F5631A;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(245,99,26,0.5);
  animation: techDotPulse 2s ease-in-out infinite 0.5s;
}

@keyframes techDotPulse {
  0%, 100% {
    opacity: 0.6;
    transform: translateY(-50%) scale(1);
  }
  50% {
    opacity: 1;
    transform: translateY(-50%) scale(1.3);
  }
}

/* Card vertical */
.tech-card-vertical {
  flex: 1;
  background: white;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 14px;
  border-left: 4px solid #F5631A;
  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
  transition: all 0.3s ease;
  overflow: hidden;
}

.tech-card-vertical:hover {
  box-shadow: 0 8px 28px rgba(245,99,26,0.14);
  transform: translateX(8px);
  border-left-color: #FF9D5C;
}

.tech-card-vertical:hover .tech-badge {
  transform: scale(1.05);
  background: rgba(245,99,26,0.15);
}

.tech-card-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  gap: 16px;
}

.tech-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 5px;
  font-family: 'Filson Pro', sans-serif;
  line-height: 1.3;
}

.tech-card-sub {
  font-size: 0.85rem;
  color: var(--muted);
  font-weight: 400;
  line-height: 1.4;
}

.tech-badge {
  background: rgba(245,99,26,0.1);
  color: #F5631A;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 20px;
  white-space: nowrap;
  font-family: 'Filson Pro', sans-serif;
  letter-spacing: 0.02em;
  border: 1px solid rgba(245,99,26,0.2);
  flex-shrink: 0;
  transition: all 0.3s ease;
}

/* Responsive */
@media (max-width: 768px) {
  .tech-cloud-main {
    width: 240px;
  }
  
  .tech-main-connector {
    height: 40px;
  }
  
  .tech-cards-list {
    max-width: 100%;
  }
  
  .tech-item-connector {
    width: 30px;
    margin-right: 12px;
  }
  
  .tech-card-content {
    padding: 16px 18px;
    gap: 12px;
    flex-direction: column;
    align-items: flex-start;
  }
  
  .tech-badge {
    align-self: flex-start;
  }
  
  .tech-card-title {
    font-size: 0.95rem;
  }
  
  .tech-card-sub {
    font-size: 0.78rem;
  }
}

@media (max-width: 480px) {
  .tech-cloud-main {
    width: 200px;
  }
  
  .tech-item-connector {
    width: 20px;
    margin-right: 8px;
  }
  
  .tech-card-content {
    padding: 14px 16px;
  }
}



/* ═══════════════════════════════════════════════════════════
   ANTIGO - Cloud Click Zone (Manter para compatibilidade)
   ═══════════════════════════════════════════════════════════ */

.cloud-click-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* ── Imagem da nuvem ── */
.hero-cloud-img {
  /* Estado inicial: preenche o espaço à direita do hero */
  width: 620px;
  max-width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 20px 40px rgba(245,99,26,0.3));
  animation: floatImage 4s ease-in-out infinite;
  transition: width 0.75s cubic-bezier(0.4,0,0.2,1),
              filter 0.4s;
  will-change: transform;
}

/* Pulso laranja no hover da nuvem (antes de clicar) */
.cloud-click-zone:hover .hero-cloud-img {
  filter: drop-shadow(0 16px 40px rgba(245,99,26,0.55));
}

/* ── Hint text ── */
.cloud-hint {
  margin-top: 18px;
  text-align: center;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.55;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
  user-select: none;
}
.cloud-hint strong {
  color: #F5631A;
  font-weight: 700;
}

/* Seta animada abaixo do hint */
.cloud-hint::after {
  content: '↑';
  display: block;
  margin-top: 6px;
  font-size: 1rem;
  color: #F5631A;
  opacity: 0.7;
  animation: hintBounce 1.4s ease-in-out infinite;
}

@keyframes hintBounce {
  0%, 100% { transform: translateY(0);   opacity: 0.6; }
  50%       { transform: translateY(-5px); opacity: 1; }
}

/* ── Conector ── */
.stack-connector {
  width: 2px;
  height: 24px;
  background: repeating-linear-gradient(
    to bottom,
    #F5631A 0px, #F5631A 5px,
    transparent 5px, transparent 9px
  );
  flex-shrink: 0;
  /* escondido até reveal — fora do fluxo */
  display: none;
  opacity: 0;
  transition: opacity 0.45s 0.3s ease;
}

/* ── Stack de camadas ── */
.stack-layers {
  display: none; /* fora do fluxo até reveal */
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

/* Estado inicial de cada camada: invisível e deslocada para a direita */
.stack-layer {
  background: white;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 14px;
  border-left: 4px solid #F5631A;
  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
  transition:
    opacity   0.5s ease,
    transform 0.5s cubic-bezier(0.2,0.8,0.3,1),
    box-shadow 0.25s,
    border-color 0.25s;
  opacity: 0;
  transform: translateX(40px);
  pointer-events: none;
}

/* Camada visível (adicionada via JS) */
.stack-layer.layer-visible {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}

.stack-layer.layer-visible:hover {
  box-shadow: 0 8px 28px rgba(245,99,26,0.14);
  transform: translateX(4px);
}

.stack-layer-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  gap: 12px;
}

.stack-layer-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 3px;
  font-family: 'Filson Pro', sans-serif;
}

.stack-layer-sub {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 400;
}

.stack-badge {
  background: rgba(245,99,26,0.1);
  color: #F5631A;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
  white-space: nowrap;
  font-family: 'Filson Pro', sans-serif;
  letter-spacing: 0.02em;
  border: 1px solid rgba(245,99,26,0.2);
  flex-shrink: 0;
}

/* ── Estado REVEALED (classe adicionada no clique) ── */

/* Nuvem retorna ao tamanho do topo do stack */
.hero-stack-visual.revealed .hero-cloud-img {
  width: 280px;
  filter: drop-shadow(0 10px 22px rgba(245,99,26,0.2));
}

/* Hint desaparece */
.hero-stack-visual.revealed .cloud-hint {
  opacity: 0;
  transform: translateY(-8px);
  height: 0;
  margin: 0;
  overflow: hidden;
}

/* Conector aparece */
.hero-stack-visual.revealed .stack-connector {
  display: block;
  opacity: 0.75;
}

/* Layers entram no fluxo */
.hero-stack-visual.revealed .stack-layers {
  display: flex;
}

/* ── HERO: Cloud Image (legacy img fallback) ── */
.hero-cloud-image {
  width: 100%;
  max-width: 600px;
  height: auto;
  display: block;
  animation: floatImage 4s ease-in-out infinite;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));
}

@media (prefers-reduced-motion: reduce) {
  .hero-cloud-image { 
    animation: none; 
  }
}

@keyframes growIn {
  0% {
    transform: scale(0.1) translateY(0px);
    opacity: 0;
  }
  100% {
    transform: scale(1) translateY(0px);
    opacity: 1;
  }
}

@keyframes floatImage {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-15px);
  }
}

.hero-circle-wrap {
  position: relative;
  width: 280px;
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.15);
  animation: ring-pulse 3s ease-in-out infinite;
}
.hero-ring-1 {
  width: 280px; height: 280px;
  border-color: rgba(255,255,255,0.2);
  box-shadow: 0 0 30px rgba(255,255,255,0.08), inset 0 0 30px rgba(255,255,255,0.04);
  animation-delay: 0s;
}
.hero-ring-2 {
  width: 220px; height: 220px;
  border-color: rgba(255,255,255,0.25);
  box-shadow: 0 0 20px rgba(255,255,255,0.1), inset 0 0 20px rgba(255,255,255,0.06);
  animation-delay: 0.5s;
}
.hero-ring-3 {
  width: 160px; height: 160px;
  border-color: rgba(255,255,255,0.35);
  box-shadow: 0 0 40px rgba(180,220,255,0.25), inset 0 0 40px rgba(180,220,255,0.1);
  animation-delay: 1s;
}

@keyframes ring-pulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.025); }
}

.hero-circle-inner {
  width: 135px; height: 135px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.25) 0%, rgba(100,180,255,0.15) 40%, rgba(0,80,160,0.5) 100%);
  border: 2px solid rgba(255,255,255,0.5);
  box-shadow:
    0 0 60px rgba(100,200,255,0.6),
    0 0 120px rgba(100,200,255,0.3),
    inset 0 0 40px rgba(255,255,255,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  animation: glow-pulse 4s ease-in-out infinite;
}

@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 60px rgba(100,200,255,0.6), 0 0 120px rgba(100,200,255,0.3), inset 0 0 40px rgba(255,255,255,0.15); }
  50% { box-shadow: 0 0 80px rgba(100,200,255,0.85), 0 0 160px rgba(100,200,255,0.45), inset 0 0 50px rgba(255,255,255,0.22); }
}

.hero-logo-img {
  width: 110px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(255,255,255,0.5));
}



.gradient-text-orange {
  color: var(--orange);
  font-style: italic;
}

.gradient-text-blue {
  color: #1a6cf5;
  font-style: italic;
  text-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.highlight-dark {
  background: #F5631A;
  padding: 10px 22px;
  border-radius: 8px;
  color: white;
  font-style: italic;
  display: inline-block;
  line-height: 1.15;
  margin: 2px 8px;
  vertical-align: baseline;
  box-shadow: 0 4px 15px rgba(245,99,26,0.25);
}

.highlight-orange {
  color: #d84315;
  font-style: italic;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.highlight-white {
  color: #F5631A;
  font-style: italic;
  text-shadow: none;
  font-weight: 700;
}

.hero-desc {
  font-size: 1.4rem;
  color: #5a6480;
  line-height: 1.6;
  margin-bottom: 40px;
  font-weight: 400;
  font-style: italic;
  text-shadow: none;
}

.hero-actions {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.btn-primary-hero {
  background: #0D47A1;
  color: white;
  padding: 18px 40px;
  border-radius: 50px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  font-family: 'Filson Pro', sans-serif;
  box-shadow: 0 8px 25px rgba(13,71,161,0.35);
  letter-spacing: 0.01em;
  border: none;
}
.btn-primary-hero:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(13,71,161,0.5);
}

.btn-secondary-hero {
  background: white;
  color: #0D47A1;
  padding: 18px 40px;
  border-radius: 50px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid #0D47A1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
  font-family: 'Filson Pro', sans-serif;
  box-shadow: 0 4px 15px rgba(13,71,161,0.15);
  letter-spacing: 0.01em;
}
.btn-secondary-hero:hover {
  background: #0D47A1;
  color: white;
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(13,71,161,0.35);
}

.hero-bg, .circuit-pattern, .orb, .hero-badge, .hero-card,
.badge-dot, .gradient-text { display: initial; }

/* ── BUTTONS ── */
.btn-primary {
  background: #0D47A1;
  color: white;
  padding: 16px 36px;
  border-radius: 50px;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform 0.2s, box-shadow 0.2s;
  font-family: 'Filson Pro', sans-serif;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(13,71,161,0.3);
}

.btn-secondary {
  background: transparent;
  color: var(--text);
  padding: 16px 36px;
  border-radius: 50px;
  font-size: 0.95rem;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid rgba(0,0,0,0.15);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s;
  font-family: 'Filson Pro', sans-serif;
}
.btn-secondary:hover {
  border-color: rgba(0,0,0,0.3);
  background: rgba(0,0,0,0.03);
}

/* ── IMG PLACEHOLDER ── */
.img-placeholder {
  background: var(--surface2);
  border: 2px dashed rgba(0,0,0,0.1);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  gap: 12px;
  position: relative;
  z-index: 1;
}
.img-placeholder .ph-icon { font-size: 2.5rem; opacity: 0.35; }
.img-placeholder .ph-label { font-size: 0.8rem; font-weight: 500; text-align: center; max-width: 200px; line-height: 1.5; opacity: 0.55; }
.hero-card .img-placeholder { height: 280px; }

/* ── STATS ── */
#stats {
  padding: 80px 6%;
  background: var(--surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.stats-title {
  text-align: center;
  font-size: 0.8rem;
  color: var(--muted);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 56px;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2px;
}

.stat-item {
  text-align: center;
  padding: 40px 24px;
  background: white;
  transition: background 0.3s;
  border: 1px solid var(--border);
}
.stat-item:first-child { border-radius: 20px 0 0 20px; }
.stat-item:last-child { border-radius: 0 20px 20px 0; }
.stat-item:hover { background: var(--surface2); }

.stat-number {
  font-family: 'Filson Pro', sans-serif;
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  font-weight: 700;
  background: var(--grad2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
  line-height: 1.15;
  margin-bottom: 10px;
}

.stat-label {
  font-size: 0.85rem;
  color: var(--muted);
  font-weight: 400;
  line-height: 1.4;
}

/* ── SECTIONS COMMON ── */
section { padding: 100px 6%; }

.section-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--blue);
  margin-bottom: 20px;
}

.section-title {
  font-family: 'Filson Pro', sans-serif;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 24px;
  color: var(--text);
}

/* ── SOLUÇÕES ── */
#solucoes { background: white; }

.solucoes-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.solucoes-intro .section-desc {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 400;
  margin-bottom: 28px;
}

.solucoes-img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 16px 48px rgba(26,108,245,0.12);
  margin-bottom: 32px;
  display: block;
}

/* ── MULTI-CLOUD 3D ── */
.multicloud-section {
  background: linear-gradient(160deg, #eef2fc 0%, #f4f6fb 55%, #eaf0fa 100%);
  padding: 80px 4% 100px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
}

.multicloud-header {
  text-align: center;
  margin-bottom: 56px;
}

.multicloud-subtitle {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  margin-top: 12px;
}

/* ── 3D SCENE ── */
.mc3d-scene {
  position: relative;
  width: 100%;
  max-width: 1100px;
  aspect-ratio: 820 / 560;
  margin: 0 auto;
}

/* SVG connection lines */
.mc3d-svg {
  display: none;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

.mc3d-conn {
  stroke-dasharray: 520;
  stroke-dashoffset: 0;
  animation: connFlow 3s linear infinite;
}
.mc3d-conn--d1 { animation-delay: 0.6s; }
.mc3d-conn--d2 { animation-delay: 1.2s; }
.mc3d-conn--d3 { animation-delay: 1.8s; }
.mc3d-conn--d4 { animation-delay: 2.4s; }

@keyframes connFlow {
  0%   { stroke-opacity: 0.3; stroke-dashoffset: 0; }
  50%  { stroke-opacity: 1; }
  100% { stroke-opacity: 0.3; stroke-dashoffset: -520; }
}

/* ── CENTRAL NODE ── */
.mc3d-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mc3d-center-ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid rgba(242,121,33,0.35);
  animation: centerRingPulse 3s ease-in-out infinite;
}
.mc3d-center-ring--1 { width: 200px; height: 200px; animation-delay: 0s; }
.mc3d-center-ring--2 { width: 270px; height: 270px; animation-delay: 0.8s; opacity: 0.5; }

@keyframes centerRingPulse {
  0%, 100% { transform: scale(1); opacity: 0.35; }
  50%  { transform: scale(1.08); opacity: 0.8; }
}

.mc3d-center-glow {
  position: absolute;
  width: 175px;
  height: 175px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(242,121,33,0.18) 0%, transparent 70%);
  animation: centerGlow 2.5s ease-in-out infinite;
}
@keyframes centerGlow {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.25); opacity: 1; }
}

.mc3d-center-card {
  position: relative;
  z-index: 2;
  background: white;
  border-radius: 32px;
  border: 2.5px solid rgba(242,121,33,0.6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 26px 44px;
  box-shadow: 0 12px 48px rgba(242,121,33,0.28), 0 0 0 8px rgba(242,121,33,0.07);
  animation: centerFloat 4s ease-in-out infinite;
}
@keyframes centerFloat {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-7px); }
}
.mc3d-center-card img {
  height: auto;
  max-height: 110px;
  max-width: 240px;
  width: auto;
  object-fit: contain;
  display: block;
}

/* ── PARTNER NODES (absolute pentagon positions) ── */
.mc3d-node {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 5;
  transform: translate(-50%, -50%);
}

/* Pentagon — 5 nodes at 72° intervals, wider spread */
/* top         */ .mc3d-n1 { top:  5%;  left: 50%;   }
/* top-right   */ .mc3d-n2 { top: 28%;  left: 82%; }
/* bottom-right*/ .mc3d-n3 { top: 77%;  left: 72%; }
/* bottom-left */ .mc3d-n4 { top: 77%;  left: 28%;   }
/* top-left    */ .mc3d-n5 { top: 28%;  left: 18%; }

/* Body wrapper — float animation + hover scale, logo e pilar juntos */
.mc3d-node-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  animation: dbFloat 3.6s ease-in-out infinite;
  transition: scale 0.4s cubic-bezier(0.34,1.56,0.64,1),
              translate 0.4s cubic-bezier(0.34,1.56,0.64,1);
  will-change: scale, translate;
}
.mc3d-node:hover .mc3d-node-body {
  scale: 1.18;
  translate: 0 -6px;
}

/* Partner logo */
.mc3d-partner {
  height: 42px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.12));
  position: relative;
  z-index: 2;
}

/* ── DATABASE IMAGE ── */
.mc3d-db {
  width: 120px;
  height: auto;
  object-fit: contain;
  display: block;
  filter:
    drop-shadow(0 10px 20px rgba(180,70,0,0.45))
    drop-shadow(0 3px 6px rgba(0,0,0,0.18));
}

@keyframes dbFloat {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}

/* ── PULSE RINGS ── */
.mc3d-pulse {
  position: absolute;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 1.5px solid rgba(242,121,33,0.5);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: pulseSpin 3s ease-out infinite;
  pointer-events: none;
}
.mc3d-pulse--2 {
  width: 136px;
  height: 136px;
  border-color: rgba(26,108,245,0.3);
  animation-delay: 0.7s;
}
@keyframes pulseSpin {
  0%   { transform: translate(-50%,-50%) scale(0.85); opacity: 0.9; }
  80%  { transform: translate(-50%,-50%) scale(1.6);  opacity: 0; }
  100% { transform: translate(-50%,-50%) scale(1.6);  opacity: 0; }
}

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  .mc3d-scene {
    aspect-ratio: unset;
    height: 520px;
  }
  .mc3d-center-card { border-radius: 22px; padding: 16px 26px; }
  .mc3d-center-card img { max-height: 70px; max-width: 150px; }
  .mc3d-center-ring--1 { width: 130px; height: 130px; }
  .mc3d-center-ring--2 { width: 180px; height: 180px; }
  .mc3d-db { width: 80px; }
  .mc3d-partner { height: 30px; }
  .mc3d-pulse  { width: 68px; height: 68px; }
  .mc3d-pulse--2 { width: 96px; height: 96px; }
}

@media (max-width: 480px) {
  .mc3d-n1 { top: 6%;  left: 50%; }
  .mc3d-n2 { top: 20%; left: 84%; }
  .mc3d-n3 { top: 70%; left: 84%; }
  .mc3d-n4 { top: 90%; left: 50%; }
  .mc3d-n5 { top: 20%; left: 16%; }
}

.features-list { list-style: none; display: flex; flex-direction: column; gap: 20px; }

.feature-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 24px;
  background: var(--surface);
  border-radius: 16px;
  border: 1px solid var(--border);
  transition: all 0.3s;
  cursor: default;
}
.feature-item:hover {
  border-color: rgba(26,108,245,0.25);
  transform: translateX(6px);
  box-shadow: 0 8px 30px rgba(26,108,245,0.06);
}

.feature-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--grad2);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  flex-shrink: 0;
}

.feature-text h4 {
  font-family: 'Filson Pro', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--text);
}
.feature-text p {
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.6;
  font-weight: 400;
}

/* ── VIDEO CASE ── */
#case {
  background: var(--surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.case-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.case-visual .video-placeholder {
  background: #0A0A0A;
  border-radius: 20px;
  height: 340px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,0.15);
}
.case-visual .video-placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(26,108,245,0.08), rgba(245,99,26,0.05));
}
.play-btn {
  width: 72px; height: 72px;
  background: var(--grad);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.8rem;
  cursor: pointer;
  transition: transform 0.3s;
  position: relative; z-index: 1;
}
.play-btn:hover { transform: scale(1.1); }
.case-visual .video-placeholder span {
  color: rgba(255,255,255,0.5);
  font-size: 0.85rem;
  position: relative; z-index: 1;
}

/* ── SOBRE ── */
#sobre { background: white; }

.mvv-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 80px;
}

.mvv-card {
  height: 260px;
  cursor: default;
  perspective: 1000px;
  background: transparent;
  border: none;
}

.mvv-card-inner {
  position: relative;
  width: 100%; height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.7s cubic-bezier(0.4, 0.2, 0.2, 1);
}

.mvv-card:hover .mvv-card-inner {
  transform: rotateY(180deg);
}

.mvv-front,
.mvv-back {
  position: absolute; inset: 0;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 36px;
  text-align: center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.mvv-front {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}

.mvv-front .mvv-title-layer {
  font-family: 'Filson Pro', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--text);
}

.mvv-back {
  background: var(--grad2);
  transform: rotateY(180deg);
  box-shadow: 0 8px 40px rgba(26,108,245,0.2);
}

.mvv-back p, .mvv-back ul {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.96);
  line-height: 1.35;
  font-weight: 400;
  margin: 0;
  padding: 0;
}
.mvv-back ul {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-left: 0;
  margin: 0;
}
.mvv-back li {
  margin-bottom: 12px;
  text-align: left;
  font-size: 1.05rem;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.01em;
  padding-left: 0;
  position: relative;
  list-style: none;
}
.mvv-back li strong {
  font-weight: 600;
}

.quem-somos-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.quem-somos-text .section-desc {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.9;
  font-weight: 400;
}
.quem-somos-img .img-placeholder { height: 340px; border-radius: 20px; }

/* ── ONDE ATENDEMOS ── */
.onde-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* ── CERTIFICAÇÕES ── */
.cert-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* On desktop, reverse layout: video appears on the left, text on the right */
.cert-layout--reverse .cert-video {
  order: -1;
}

.cert-intro {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 400;
  margin-bottom: 24px;
}

.cert-subtitle {
  font-family: 'Filson Pro', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text);
  margin: 32px 0 12px;
}

.cert-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 8px;
}

.cert-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  background: white;
  border-radius: 14px;
  border: 1px solid var(--border);
  transition: all 0.3s;
}

/* Items inside the white-bg ESG section use a surface card feel */
.cert-layout--reverse .cert-item {
  background: var(--surface);
}

.cert-item:hover {
  border-color: rgba(26,108,245,0.25);
  transform: translateX(4px);
  box-shadow: 0 6px 24px rgba(26,108,245,0.06);
}

.cert-item p {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.7;
  font-weight: 400;
  margin: 0;
}

.cert-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: white;
  background: var(--blue);
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 3px;
}

.cert-badge--green {
  background: var(--orange);
}

.cert-badge--teal {
  background: var(--grad);
}

/* ── PARCEIROS ── */
#parceiros { background: var(--surface); }

.parceiros-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.puzzle-visual {
  display: flex; align-items: center; justify-content: center;
  flex: 1;
}
.puzzle-icon { width: 200px; height: 200px; opacity: 0.25; animation: float 6s ease-in-out infinite; }
.puzzle-video { 
  width: 100%; 
  max-width: 100%; 
  height: auto; 
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  animation: float 6s ease-in-out infinite;
}

.parceiros-points { display: flex; flex-direction: column; gap: 20px; margin-top: 32px; }
.parceiros-point { display: flex; gap: 14px; align-items: flex-start; }
.point-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #0F3759;
  flex-shrink: 0;
  margin-top: 8px;
}
.parceiros-point p { font-size: 0.95rem; color: var(--muted); line-height: 1.7; font-weight: 400; }

/* ── BLOG ── */
#blog { background: white; border-top: 1px solid var(--border); }

.blog-search {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 50px;
  padding: 14px 24px;
  max-width: 420px;
  margin-bottom: 50px;
}
.blog-search input {
  background: none; border: none; outline: none;
  color: var(--text);
  font-family: 'Filson Pro', sans-serif;
  font-size: 0.95rem;
  width: 100%;
}
.blog-search input::placeholder { color: var(--muted); }

.blog-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

.blog-card {
  background: var(--surface);
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  cursor: pointer;
  display: block;
  text-decoration: none; 
  color: inherit;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  transform: translateY(0);
}
.blog-card:hover {
  transform: translateY(-10px) scale(1.02);
  border-color: rgba(26,108,245,0.3);
  box-shadow: 0 16px 45px rgba(26,108,245,0.18), 0 8px 25px rgba(0,0,0,0.12);
}

.blog-img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  background: none;
  border-bottom: 1px solid var(--border);
  display: block;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border-radius: 0 !important;
  padding: 0;
}
.blog-img .ph-icon { font-size: 2rem; opacity: 0.2; }
.blog-img .ph-label { font-size: 0.75rem; opacity: 0.4; }

.blog-footer {
  padding: 20px 24px;
  background: white;
  display: flex; align-items: center; justify-content: space-between;
  border-top: 1px solid var(--border);
}
.blog-footer span { font-family: 'Filson Pro', sans-serif; font-size: 0.9rem; font-weight: 700; color: var(--text); }
.blog-footer a { color: var(--blue); font-size: 1.2rem; text-decoration: none; transition: transform 0.2s; }
.blog-footer a:hover { transform: translateX(4px); }

/* ── FORMS ── */
.form-section { background: var(--surface); }


.form-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

@media (max-width: 900px) {
  .form-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 600px) {
  .form-layout {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0;
  }
  .form-layout .reveal,
  .form-layout form {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0;
  }
  .contact-form {
    padding: 0;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .form-group input,
  .form-group textarea,
  .form-group select {
    font-size: 1rem;
    padding: 12px 12px;
  }
  .form-submit {
    width: 100%;
    padding: 14px 0;
    font-size: 1.05rem;
  }
}

.contact-form { display: flex; flex-direction: column; gap: 16px; }
.form-group { display: flex; flex-direction: column; gap: 8px; }
.form-group label { font-size: 0.85rem; color: var(--muted); font-weight: 500; }

.form-group input,
.form-group textarea,
.form-group select {
  background: white;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 18px;
  color: var(--text);
  font-family: 'Filson Pro', sans-serif;
  font-size: 0.95rem;
  outline: none;
  transition: border-color 0.2s;
  resize: none;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus { border-color: rgba(26,108,245,0.4); box-shadow: 0 0 0 3px rgba(26,108,245,0.06); }
.form-group textarea { height: 120px; }
.form-group select { appearance: none; }

.form-submit {
  background: var(--grad);
  color: white;
  border: none;
  padding: 16px 32px;
  border-radius: 50px;
  font-size: 0.95rem;
  font-weight: 600;
  font-family: 'Filson Pro', sans-serif;
  cursor: pointer;
  transition: all 0.2s;
  align-self: flex-start;
}
.form-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(245,99,26,0.25);
}

/* ── FOOTER ── */
footer {
  background: var(--text);
  padding: 48px 6%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
footer .logo { color: rgba(255,255,255,0.9); }
footer p { font-size: 0.8rem; color: rgba(255,255,255,0.4); }
footer .footer-links { display: flex; gap: 24px; }
footer .footer-links a { font-size: 0.8rem; color: rgba(255,255,255,0.4); text-decoration: none; transition: color 0.2s; }
footer .footer-links a:hover { color: rgba(255,255,255,0.9); }

/* ── WHATSAPP FLOAT ── */
.whatsapp-float { position: fixed; bottom: 30px; right: 30px; z-index: 200; }

.whatsapp-btn {
  width: 60px; height: 60px;
  background: #25D366;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 30px rgba(37,211,102,0.45);
  transition: all 0.3s;
  overflow: hidden;
}
.whatsapp-btn:hover { transform: scale(1.1); }
.whatsapp-btn img { width: 34px; height: 34px; object-fit: contain; }

.whatsapp-popup {
  position: absolute;
  bottom: 75px; right: 0;
  width: 260px;
  background: white;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: all 0.3s;
  box-shadow: 0 20px 60px rgba(0,0,0,0.12);
}
.whatsapp-popup.open { opacity: 1; pointer-events: all; transform: translateY(0); }

.whatsapp-popup h4 {
  font-family: 'Filson Pro', sans-serif;
  font-size: 0.95rem;
  margin-bottom: 16px;
  color: var(--text);
}

.whatsapp-option {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--surface);
  cursor: pointer;
  transition: background 0.2s;
  text-decoration: none;
  margin-bottom: 8px;
}
.whatsapp-option:last-of-type { margin-bottom: 0; }
.whatsapp-option:hover { background: rgba(37,211,102,0.1); }

.wo-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #25D366;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.wo-text strong { display: block; font-size: 0.85rem; font-weight: 600; color: var(--text); margin-bottom: 2px; }
.wo-text span { font-size: 0.75rem; color: var(--muted); }

/* ── EXIT INTENT ── */
.exit-popup-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 500;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.4s;
}
.exit-popup-overlay.show { opacity: 1; pointer-events: all; }

.exit-popup {
  background: white;
  border: 1px solid var(--border);
  border-radius: 28px;
  padding: 56px;
  max-width: 480px;
  width: 90%;
  text-align: center;
  transform: scale(0.9);
  transition: transform 0.4s;
  position: relative;
  box-shadow: 0 40px 100px rgba(0,0,0,0.15);
}
.exit-popup-overlay.show .exit-popup { transform: scale(1); }

.exit-popup-close {
  position: absolute; top: 20px; right: 24px;
  background: none; border: none;
  color: var(--muted); font-size: 1.4rem;
  cursor: pointer; transition: color 0.2s;
}
.exit-popup-close:hover { color: var(--text); }

.exit-popup h2 {
  font-family: 'Filson Pro', sans-serif;
  font-size: 1.6rem; font-weight: 700;
  margin-bottom: 12px; line-height: 1.3;
  color: var(--text);
}
.exit-popup p { color: var(--muted); font-size: 0.95rem; line-height: 1.6; margin-bottom: 32px; }

/* ── ANIMATIONS ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── RESPONSIVE ── */
@media (max-width: 1600px) {
  .hero-content {
    max-width: 58%;
  }
  .hero-hand-image {
    max-width: 650px;
  }
  .hero-cloud-puzzle { max-width: 650px; }
}

@media (max-width: 1400px) {
  #home { 
    gap: 50px; 
    padding: 120px 3% 80px;
  }
  .hero-content {
    max-width: 56%;
  }
  .hero-image-wrapper {
    flex: 0 0 40%;
  }
  .hero-hand-image {
    max-width: 600px; 
  }
  .hero-cloud-puzzle { max-width: 600px; }
  .hero-visual {
    flex: 0 0 28%;
  }
  .hero-circle-wrap { width: 240px; height: 240px; }
  .hero-ring-1 { width: 240px; height: 240px; }
  .hero-ring-2 { width: 190px; height: 190px; }
  .hero-ring-3 { width: 140px; height: 140px; }
  .hero-circle-inner { width: 115px; height: 115px; }
  .hero-logo-img { width: 90px; }
}

@media (max-width: 1200px) {
  #home { 
    gap: 40px; 
    padding: 120px 3% 70px;
  }
  .hero-content {
    max-width: 54%;
  }
  .hero-image-wrapper {
    flex: 0 0 45%;
  }
  .hero-hand-image {
    max-width: 550px;
  }
  .hero-cloud-puzzle { max-width: 550px; }
  .hero-visual {
    flex: 0 0 32%;
  }

}

@media (max-width: 1024px) {
  #home { flex-direction: column; padding-top: 110px; gap: 40px; }
  .hero-content {
    max-width: 100%;
  }
  .hero-image-wrapper {
    flex: none;
    width: 100%;
    justify-content: center;
    margin-top: 20px;
  }
  .hero-hand-image {
    max-width: 500px;
  }
  .hero-cloud-puzzle { max-width: 500px; }
  .hero-visual { flex: none; }
  .hero-circle-wrap { width: 220px; height: 220px; }
  .hero-ring-1 { width: 220px; height: 220px; }
  .hero-ring-2 { width: 170px; height: 170px; }
  .hero-ring-3 { width: 125px; height: 125px; }
  .hero-circle-inner { width: 100px; height: 100px; }
  .hero-logo-img { width: 70px; }
  .highlight-dark { padding: 6px 14px; margin: 1px 5px; }
  .stats-grid { grid-template-columns: repeat(3, 1fr); }
  .stat-item { border-radius: 12px !important; }
  .solucoes-layout, .case-layout, .parceiros-layout, .onde-layout, .form-layout, .quem-somos-layout, .cert-layout { grid-template-columns: 1fr; gap: 48px; }
  .cert-layout--reverse .cert-video { order: 0; }
  .mvv-grid { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  nav { padding: 16px 5%; overflow: visible; }
  .nav-links { display: none; }
  .nav-social { display: none; }
  .hamburger { display: flex; }
  section { padding: 64px 5%; }
  .hero-hand-image {
    max-width: 400px;
  }
  .hero-cloud-puzzle { max-width: 400px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-grid { grid-template-columns: 1fr; }
  footer { flex-direction: column; text-align: center; }
  .highlight-dark { padding: 4px 12px; margin: 1px 4px; font-size: 0.95em; }
  .multicloud-diagram { flex-direction: column; gap: 24px; }
  .mc-lines { flex-direction: row; width: 100%; height: 2px; align-self: auto; max-width: 100%; }
  .mc-lines--left, .mc-lines--right { gap: 12px; justify-content: center; }
  .mc-line { width: 50px; height: 2px; }
  .mc-side { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 14px; max-width: 100%; }
  .mc-side--left, .mc-side--right { align-items: center; }
  .mc-node { min-width: 110px; }
  .mc-vline { height: 40px; }
  .hero-circle-wrap { width: 200px; height: 200px; }
  .hero-ring-1 { width: 200px; height: 200px; }
  .hero-ring-2 { width: 160px; height: 160px; }
  .hero-ring-3 { width: 125px; height: 125px; }
  .hero-circle-inner { width: 98px; height: 98px; }
  .hero-logo-img { width: 65px; }
}

/* ── Nav active state ── */
.nav-links a.nav-active {
  color: var(--blue);
  font-weight: 600;
}

/* ── BLOG POST PAGE ── */
.back-button {
  max-width: 1200px;
  margin: 40px auto 0 auto;
  padding: 0 64px;
}

.back-button a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #0D47A1;
  color: white;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  padding: 12px 24px;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(13, 71, 161, 0.25);
}

.back-button a:hover {
  background: #0B3D8A;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(13, 71, 161, 0.35);
}

.back-button a::before {
  content: '←';
  font-size: 1.2rem;
  font-weight: 700;
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.back-button a:hover::before {
  transform: translateX(-3px);
}

.blog-post-container {
  max-width: 650px;
  margin: 48px auto 48px auto;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 8px 40px rgba(15,55,89,0.10);
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: auto;
}

.blog-post-title {
  font-family: 'Filson Pro', sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
  color: #0F3759;
  line-height: 1.25;
  margin-bottom: 8px;
}

.blog-post-meta {
  font-size: 1rem;
  color: #4297D3;
  margin-bottom: 24px;
  font-weight: 500;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--surface);
}

.blog-post-content {
  font-size: 1.05rem;
  line-height: 1.75;
  color: #0A0E1A;
  font-weight: 400;
}

.blog-post-content p {
  margin-bottom: 18px;
}

.blog-post-content h2 {
  font-family: 'Filson Pro', sans-serif;
  color: #F1BA1B;
  font-size: 1.75rem;
  margin-top: 32px;
  margin-bottom: 16px;
  font-weight: 700;
}

.blog-post-content h3 {
  font-family: 'Filson Pro', sans-serif;
  color: #4297D3;
  font-size: 1.35rem;
  margin-top: 24px;
  margin-bottom: 12px;
  font-weight: 600;
}

.blog-post-content ul, .blog-post-content ol {
  margin: 20px 0;
  padding-left: 32px;
}

.blog-post-content li {
  margin-bottom: 10px;
  color: #0F3759;
  font-weight: 500;
  line-height: 1.65;
}

.blog-post-content strong {
  font-weight: 600;
  color: #0F3759;
}

.blog-post-footer {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 2px solid var(--surface);
  text-align: center;
  color: #4297D3;
  font-size: 1rem;
  font-weight: 500;
}

@media (max-width: 900px) {
  .blog-post-container {
    max-width: 98vw;
    padding: 32px 10vw;
    margin: 32px 0;
  }
}

@media (max-width: 1024px) {
  .reveal, .reveal.visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
 
/* FORÇA VISIBILIDADE DO FORMULÁRIO DE CONTATO EM TODAS AS TELAS */
#contato .reveal,
#contato .contact-form,
#contato form,
.form-layout .reveal,
.form-layout form {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}
 
/* FORÇA VISIBILIDADE DO FORMULÁRIO DE CONTATO NO MOBILE */
@media (max-width: 600px) {
  .form-layout, .contact-form, .form-layout .reveal, .form-layout form {
    display: flex !important;
    flex-direction: column !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: #fff !important;
    z-index: 10 !important;
    position: relative;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
  }
  .form-layout img, .form-layout .section-tag, .form-layout .section-title, .form-layout p {
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* ── BLOG ANIMATIONS ── */

/* Initial state - hidden and positioned */

/* Fallback: mostra conteúdo se JS não rodar */
.blog-post-container,
.back-button,
.blog-post-meta,
.blog-post-content,
.blog-post-footer {
  opacity: 1 !important;
  transform: none !important;
}

.blog-post-container {
  /* Remove fallback se blog-loaded estiver presente */
  opacity: 0;
  transform: translateY(30px);
}

.back-button {
  opacity: 0;
  transform: translateX(-20px);
}

/* Loaded state - visible with animations */
.blog-loaded .blog-post-container {
  animation: blogFadeInUp 0.8s ease-out forwards;
}

.blog-loaded .back-button {
  animation: blogSlideInLeft 0.6s ease-out 0.2s forwards;
}

.blog-loaded .blog-post-meta {
  animation: blogFadeIn 0.6s ease-out 0.4s forwards;
  opacity: 0;
}

.blog-loaded .blog-post-content {
  animation: blogFadeIn 0.8s ease-out 0.6s forwards;
  opacity: 0;
}

.blog-loaded .blog-post-footer {
  animation: blogFadeIn 0.6s ease-out 0.9s forwards;
  opacity: 0;
}

/* Typewriter effect for title */
.blog-post-title {
  position: relative;
  overflow: hidden;
}

.blog-post-title.typing {
  border-right: 3px solid #F5631A;
  animation: blinkCursor 0.8s step-end infinite;
}

.blog-post-title.typing-complete {
  border-right: none;
}
/* ── Cloud Slots System atualizado ── */
.cloud-slots-system {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 20px 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 900px;
}
 
.cloud-main-svg {
  width: 100%;
  max-width: 940px;
  height: auto;
  position: relative;
  z-index: 1;
}
 
/* Animação de flutuação — mantida igual ao original */
.cloud-animation {
  animation: cloudFloat 4s ease-in-out infinite;
  transform-origin: 500px 200px;
}
 
@keyframes cloudFloat {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-14px); }
}
 
/* Responsive */
@media (max-width: 1200px) {
  .cloud-slots-system { min-height: 780px; }
  .cloud-main-svg { max-width: 820px; }
}
@media (max-width: 1024px) {
  .cloud-slots-system { min-height: auto; padding: 10px 0 20px; }
  .cloud-main-svg { max-width: 700px; }
}
@media (max-width: 768px) {
  .cloud-main-svg { max-width: 520px; }
}
@media (max-width: 480px) {
  .cloud-main-svg { max-width: 100%; }
}

/* ══════════════════════════════════════════════════════════
   NIBLO — Hero direito: nuvem + conector + datacenter
   Substitui qualquer bloco ndc-* anterior no style.css
   ══════════════════════════════════════════════════════════ */

/* ── Wrapper do lado direito ── */
.hero-image-wrapper {
  position: relative;
  z-index: 5;
  flex: 0 0 44%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeUp 1s ease 0.5s both;
}

/* ── Coluna única: tudo empilhado e centralizado ── */
.ndc-hero-col {
  display: flex;
  flex-direction: column;
  align-items: center;       /* centraliza tudo horizontalmente */
  width: 100%;
  max-width: 480px;
  position: relative;
}

/* ══════════════════════════════════════
   NUVEM
══════════════════════════════════════ */
.ndc-cloud-img-wrap {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  animation: cloudFloat 4s ease-in-out infinite,
             ndcFadeUp 0.7s cubic-bezier(0.22,1,0.36,1) 0.2s both;
  /* desloca para a direita o mesmo offset que os slots (52px de padding-left) */
  padding-left: 52px;
  box-sizing: border-box;
}
@keyframes cloudFloat {
  0%,100% { transform: translateY(0px); }
  50%     { transform: translateY(-10px); }
}
@keyframes ndcFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ndc-cloud-img {
  width: 200px;
  height: auto;
  display: block;
  mix-blend-mode: multiply;
  filter: drop-shadow(0 8px 24px rgba(245,99,26,0.3))
          drop-shadow(0 2px 8px rgba(245,99,26,0.2));
  position: relative;
  z-index: 1;
}

.ndc-cloud-glow {
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(245,99,26,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: glowPulse 3s ease-in-out infinite;
  z-index: 0;
}
@keyframes glowPulse {
  0%,100% { opacity: 0.5; transform: translateX(-50%) scaleX(1); }
  50%     { opacity: 1;   transform: translateX(-50%) scaleX(1.2); }
}

/* ══════════════════════════════════════
   CONECTOR — SVG que vai do centro da
   nuvem até o topo do primeiro slot
══════════════════════════════════════ */
.ndc-connector {
  /* alinha o SVG com o eixo do primeiro slot (que tem padding-left:52px) */
  width: 100%;
  height: 56px;
  padding-left: 52px;
  box-sizing: border-box;
  position: relative;
  flex-shrink: 0;
}

.ndc-connector-svg {
  /* ocupa a largura da área depois do padding */
  width: calc(100% - 52px);
  height: 100%;
  overflow: visible;
  display: block;
}

/* Trilho fixo */
.ndc-conn-track {
  stroke: rgba(245,99,26,0.18);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

/* Pulso animado */
.ndc-conn-pulse {
  stroke: #F5631A;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
  animation: connFlow 2s cubic-bezier(0.4,0,0.6,1) infinite;
  filter: drop-shadow(0 0 4px rgba(245,99,26,0.9));
}
@keyframes connFlow {
  0%   { stroke-dashoffset: 120; opacity: 0; }
  8%   { opacity: 1; }
  65%  { stroke-dashoffset: 0;   opacity: 1; }
  100% { stroke-dashoffset: 0;   opacity: 0; }
}

/* Nós nas pontas */
.ndc-conn-node {
  fill: #F5631A;
  filter: drop-shadow(0 0 5px rgba(245,99,26,0.9));
  animation: nodePulse 2s ease-in-out infinite;
}
.ndc-conn-node--bot { animation-delay: 1.6s; }
@keyframes nodePulse {
  0%,100% { opacity: 0.35; }
  50%     { opacity: 1; }
}

/* ══════════════════════════════════════
   DATACENTER WRAPPER
══════════════════════════════════════ */
.ndc-wrap {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 16px 32px 52px;   /* 52px = espaço dos pontos laterais */
  animation: ndcFadeUp 0.8s cubic-bezier(0.22,1,0.36,1) 0.4s both;
}

/* Oculta elementos não usados */
.ndc-binary, .ndc-metrics, .ndc-scanlines,
.ndc-rack-header, .ndc-status { display: none; }

.ndc-rack {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  background: none;
  border: none;
  box-shadow: none;
  overflow: visible;
}
.ndc-rack::before { display: none; }

/* ══════════════════════════════════════
   SLOTS — CAMADAS EMPILHADAS
══════════════════════════════════════ */
.ndc-slot {
  position: relative;
  display: block;
  width: calc(100% - var(--depth, 0px));
  margin-bottom: 10px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  will-change: transform;
  transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
  z-index: 1;
  isolation: isolate;
  animation: layerIn 0.6s cubic-bezier(0.22,1,0.36,1) both;
}
.ndc-slot--1 { animation-delay: 0.30s; --idx: 1; --depth: 0px;  z-index: 4; }
.ndc-slot--2 { animation-delay: 0.42s; --idx: 2; --depth: 12px; z-index: 3; }
.ndc-slot--3 { animation-delay: 0.54s; --idx: 3; --depth: 24px; z-index: 2; }
.ndc-slot--4 { animation-delay: 0.66s; --idx: 4; --depth: 36px; z-index: 1; }
@keyframes layerIn {
  from { opacity: 0; transform: translateX(28px); }
  to   { opacity: 1; transform: translateX(0); }
}

.ndc-slot:hover {
  transform: translateY(-8px) translateX(-6px);
  z-index: 10;
}

/* Face principal */
.ndc-slot-body {
  position: relative;
  z-index: 2;
  border-radius: 8px 8px 5px 5px;
  padding: 12px 18px 11px 20px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  will-change: box-shadow;
  background: linear-gradient(135deg, #FF9A4D 0%, #F5631A 55%, #E04E0A 100%);
  border-top:    1px solid rgba(255,255,255,0.32);
  border-left:   1px solid rgba(255,255,255,0.18);
  border-right:  1px solid rgba(0,0,0,0.07);
  border-bottom: 1px solid rgba(0,0,0,0.10);
  box-shadow: 0 1px 0 rgba(255,255,255,0.16) inset;
  transition: box-shadow 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.ndc-slot:hover .ndc-slot-body {
  box-shadow:
    0 1px 0 rgba(255,255,255,0.22) inset,
    0 20px 48px rgba(245,99,26,0.28),
    0 6px 16px rgba(0,0,0,0.10);
}

/* Face lateral */
.ndc-slot-body::before {
  content: '';
  position: absolute;
  right: -9px; top: 5px; bottom: -5px;
  width: 9px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, #C4410C 0%, #A03009 100%);
  z-index: -1;
  will-change: right, bottom;
  transition: right 0.4s cubic-bezier(0.34,1.56,0.64,1),
              bottom 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.ndc-slot:hover .ndc-slot-body::before { right: -13px; bottom: -7px; }

/* Face inferior */
.ndc-slot-body::after {
  content: '';
  position: absolute;
  left: 5px; right: -3px; bottom: -7px;
  height: 7px;
  border-radius: 0 0 5px 5px;
  background: linear-gradient(90deg, #B83D0C 0%, #9E3009 100%);
  z-index: -1;
  will-change: bottom, height;
  transition: bottom 0.4s cubic-bezier(0.34,1.56,0.64,1),
              height 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.ndc-slot:hover .ndc-slot-body::after { bottom: -10px; height: 10px; }

/* Cores por slot */
.ndc-slot--2 .ndc-slot-body {
  background: linear-gradient(135deg, #4A90D9 0%, #1A6CF5 55%, #0D47A1 100%);
  border-top-color: rgba(255,255,255,0.28);
}
.ndc-slot--2 .ndc-slot-body::before { background: linear-gradient(180deg, #0A3585 0%, #072870 100%); }
.ndc-slot--2 .ndc-slot-body::after  { background: linear-gradient(90deg,  #083278 0%, #062568 100%); }
.ndc-slot--2:hover .ndc-slot-body { box-shadow: 0 1px 0 rgba(255,255,255,0.22) inset, 0 20px 48px rgba(26,108,245,0.28), 0 6px 16px rgba(0,0,0,0.10); }

.ndc-slot--3 .ndc-slot-body {
  background: linear-gradient(135deg, #5BB8E8 0%, #1A6CF5 45%, #0D5CE0 100%);
  border-top-color: rgba(255,255,255,0.32);
}
.ndc-slot--3 .ndc-slot-body::before { background: linear-gradient(180deg, #0948B8 0%, #073898 100%); }
.ndc-slot--3 .ndc-slot-body::after  { background: linear-gradient(90deg,  #0844A8 0%, #063490 100%); }
.ndc-slot--3:hover .ndc-slot-body { box-shadow: 0 1px 0 rgba(255,255,255,0.22) inset, 0 20px 48px rgba(26,108,245,0.22), 0 6px 16px rgba(0,0,0,0.10); }

.ndc-slot--4 .ndc-slot-body {
  background: linear-gradient(135deg, #3D82D4 0%, #1458C8 55%, #0D47A1 100%);
  border-top-color: rgba(255,255,255,0.25);
}
.ndc-slot--4 .ndc-slot-body::before { background: linear-gradient(180deg, #093888 0%, #072C70 100%); }
.ndc-slot--4 .ndc-slot-body::after  { background: linear-gradient(90deg,  #083480 0%, #062868 100%); }
.ndc-slot--4:hover .ndc-slot-body { box-shadow: 0 1px 0 rgba(255,255,255,0.22) inset, 0 20px 48px rgba(13,71,161,0.28), 0 6px 16px rgba(0,0,0,0.10); }

/* Conteúdo dos slots */
.ndc-slot-rail, .ndc-slot-leds, .ndc-slot-bar { display: none; }

.ndc-slot-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1px;
}
.ndc-slot-num {
  font-family: 'DM Mono', 'Courier New', monospace;
  font-size: 8px;
  color: rgba(255,255,255,0.4);
  letter-spacing: 2px;
}
.ndc-slot-tag {
  font-family: 'Filson Pro', sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 2px;
  color: rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.13);
  border: 1px solid rgba(255,255,255,0.22);
  padding: 2px 7px;
  border-radius: 3px;
}
.ndc-slot-tag--b,
.ndc-slot-tag--c {
  color: rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.13);
  border-color: rgba(255,255,255,0.22);
}
.ndc-slot-title {
  font-family: 'Filson Pro', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.15;
  text-shadow: 0 1px 3px rgba(0,0,0,0.15);
  transition: letter-spacing 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.ndc-slot:hover .ndc-slot-title { letter-spacing: 0.035em; }
.ndc-slot-sub {
  font-size: 11px;
  color: rgba(255,255,255,0.58);
  font-weight: 400;
}

/* Ponto de luz lateral */
.ndc-slot::before {
  content: '';
  position: absolute;
  left: -22px; top: 50%;
  transform: translateY(-50%);
  width: 9px; height: 9px;
  border-radius: 50%;
  background: #F5631A;
  box-shadow: 0 0 0 3px rgba(245,99,26,0.12),
              0 0 10px rgba(245,99,26,0.55),
              0 0 22px rgba(245,99,26,0.25);
  animation: dotPulse 2.2s ease-in-out infinite;
  animation-delay: calc(var(--idx, 1) * 0.22s);
  z-index: 5;
  will-change: transform, opacity;
}
@keyframes dotPulse {
  0%,100% { opacity: 0.55; transform: translateY(-50%) scale(1); }
  50%     { opacity: 1;    transform: translateY(-50%) scale(1.35); }
}

/* Linha vertical entre pontos */
.ndc-slot::after {
  content: '';
  position: absolute;
  left: -18px; top: 50%; bottom: -100%;
  width: 2px;
  background: linear-gradient(180deg, rgba(245,99,26,0.4) 0%, rgba(245,99,26,0.05) 100%);
  z-index: 4;
}
.ndc-slot--4::after { display: none; }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .hero-image-wrapper { flex: none; width: 100%; justify-content: center; }
  .ndc-hero-col       { max-width: 100%; }
  .ndc-wrap           { padding: 0 10px 20px 40px; }
  .ndc-cloud-img-wrap { padding-left: 40px; }
  .ndc-connector      { padding-left: 40px; }
  .ndc-cloud-img      { width: 170px; }
  .ndc-slot--2 { --depth: 8px; }
  .ndc-slot--3 { --depth: 16px; }
  .ndc-slot--4 { --depth: 24px; }
}
@media (max-width: 768px) {
  .ndc-wrap           { padding: 0 8px 14px 32px; }
  .ndc-cloud-img-wrap { padding-left: 32px; }
  .ndc-connector      { padding-left: 32px; }
  .ndc-cloud-img      { width: 140px; }
  .ndc-slot-title     { font-size: 13px; }
  .ndc-slot-sub       { font-size: 10px; }
  .ndc-slot-body      { padding: 11px 14px 10px 16px; }
}


/* ── BLOG CARDS ANIMATION (versão minimalista) ── */

.blog-card {
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform: translateY(0);
}

.blog-card:hover {
  transform: translateY(-8px);
  border-color: rgba(245, 99, 26, 0.4);
  box-shadow: 0 20px 40px rgba(245, 99, 26, 0.2);
}

.blog-img {
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.blog-card:hover .blog-img {
  transform: scale(1.03);
}

.blog-footer {
  transition: all 0.3s ease;
}

.blog-card:hover .blog-footer {
  background: linear-gradient(135deg, #fff 0%, #fef9f5 100%);
  border-top-color: rgba(245, 99, 26, 0.2);
}

.blog-footer span:last-child {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.blog-card:hover .blog-footer span:last-child {
  transform: translateX(8px);
}

/* ═══════════════════════════════════════════════════════
   CSP HARDENING — classes that replace inline styles
   ═══════════════════════════════════════════════════════ */

/* ── Cookie banner ── */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #222;
  color: #fff;
  padding: 18px 12px;
  z-index: 9999;
  text-align: center;
  font-size: 1rem;
}
.cookie-link {
  color: #ffd700;
  text-decoration: underline;
}
.cookie-accept-btn {
  margin-left: 18px;
  background: #ffd700;
  color: #222;
  border: none;
  padding: 8px 18px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 600;
}

/* ── Navbar scrolled state ── */
nav.nav-scrolled {
  background: rgba(255,255,255,0.98) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.06) !important;
}

/* ── Mobile nav open ── */
@media (max-width: 768px) {
  .nav-links.nav-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 70px;
    left: 0;
    right: 0;
    background: rgba(255,255,255,0.97);
    padding: 24px;
    gap: 20px;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    z-index: 150;
  }
}

/* ── Footer logo images ── */
.footer-logo-img {
  height: 80px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.85;
  margin: 0;
}

/* ── Exit popup elements ── */
.exit-popup-logo {
  width: 80px;
  height: auto;
  margin: 0 auto 16px;
  display: block;
}
.exit-highlight {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.exit-popup-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.btn-dismiss {
  border: 1px solid rgba(0,0,0,0.12);
  cursor: pointer;
  background: transparent;
  color: var(--muted);
  padding: 16px 24px;
  border-radius: 50px;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9rem;
}

/* ── Section utility classes ── */
.section-hero {
  padding: 140px 6% 80px;
  background: white;
}
.section-hero-surface {
  padding: 140px 6% 110px;
  background: var(--surface);
}
.section-secondary {
  background: var(--surface);
  padding: 80px 6%;
  border-top: 1px solid var(--border);
}
.section-alt {
  background: white;
  padding: 80px 6%;
  border-top: 1px solid var(--border);
}
.section-header-center {
  text-align: center;
  margin-bottom: 48px;
}
.mt-32 { margin-top: 32px; }
.section-header-center-lg {
  text-align: center;
  margin-bottom: 60px;
}

/* ── Blog card images via data attribute ── */
.blog-img[data-bg="blog1"] { background-image: url('images/blog1.png'); }
.blog-img[data-bg="blog2"] { background-image: url('images/blog2.png'); }
.blog-img[data-bg="blog3"] { background-image: url('images/blog3.png'); }
.blog-img[data-bg="blog4"] { background-image: url('images/blog4.png'); }
.blog-img[data-bg="blog5"] { background-image: url('images/blog5.png'); }
.blog-img[data-bg="blog6"] { background-image: url('images/blog6.png'); }
.blog-img[data-bg="blog7"] { background-image: url('images/blog7.png'); }
.blog-img[data-bg="blog8"] { background-image: url('images/blog8.png'); }

/* ── Blog footer arrow ── */
.arrow-icon {
  font-weight: 700;
  font-size: 1.2em;
  margin-left: 8px;
}

/* ── SVG circuit animation delays (index.html) ── */
/* polylines: first has no delay, subsequent have 0.3s steps */
.circuit-lines polyline.circuit-line:nth-of-type(2)  { animation-delay: 0.3s; }
.circuit-lines polyline.circuit-line:nth-of-type(3)  { animation-delay: 0.6s; }
.circuit-lines polyline.circuit-line:nth-of-type(4)  { animation-delay: 0.9s; }
.circuit-lines polyline.circuit-line:nth-of-type(5)  { animation-delay: 1.2s; }
.circuit-lines polyline.circuit-line:nth-of-type(6)  { animation-delay: 1.5s; }
.circuit-lines polyline.circuit-line:nth-of-type(7)  { animation-delay: 1.8s; }
.circuit-lines polyline.circuit-line:nth-of-type(8)  { animation-delay: 2.1s; }
.circuit-lines polyline.circuit-line:nth-of-type(9)  { animation-delay: 2.4s; }
.circuit-lines polyline.circuit-line:nth-of-type(10) { animation-delay: 2.7s; }
.circuit-lines polyline.circuit-line:nth-of-type(11) { animation-delay: 3s;   }
/* circles */
.circuit-dots circle.circuit-dot:nth-of-type(1)  { animation-delay: 0.1s; }
.circuit-dots circle.circuit-dot:nth-of-type(2)  { animation-delay: 0.15s; }
.circuit-dots circle.circuit-dot:nth-of-type(3)  { animation-delay: 0.2s; }
.circuit-dots circle.circuit-dot:nth-of-type(4)  { animation-delay: 0.5s; }
.circuit-dots circle.circuit-dot:nth-of-type(5)  { animation-delay: 0.7s; }
.circuit-dots circle.circuit-dot:nth-of-type(6)  { animation-delay: 0.8s; }
.circuit-dots circle.circuit-dot:nth-of-type(7)  { animation-delay: 1.0s; }
.circuit-dots circle.circuit-dot:nth-of-type(8)  { animation-delay: 1.1s; }
.circuit-dots circle.circuit-dot:nth-of-type(9)  { animation-delay: 1.3s; }
.circuit-dots circle.circuit-dot:nth-of-type(10) { animation-delay: 1.4s; }
.circuit-dots circle.circuit-dot:nth-of-type(11) { animation-delay: 1.6s; }
.circuit-dots circle.circuit-dot:nth-of-type(12) { animation-delay: 1.9s; }
.circuit-dots circle.circuit-dot:nth-of-type(13) { animation-delay: 2.0s; }
.circuit-dots circle.circuit-dot:nth-of-type(14) { animation-delay: 2.2s; }
.circuit-dots circle.circuit-dot:nth-of-type(15) { animation-delay: 2.25s; }
.circuit-dots circle.circuit-dot:nth-of-type(16) { animation-delay: 2.5s; }
.circuit-dots circle.circuit-dot:nth-of-type(17) { animation-delay: 2.6s; }
.circuit-dots circle.circuit-dot:nth-of-type(18) { animation-delay: 2.8s; }
.circuit-dots circle.circuit-dot:nth-of-type(19) { animation-delay: 2.9s; }
.circuit-dots circle.circuit-dot:nth-of-type(20) { animation-delay: 3.1s; }

/* ── sobre.html content classes ── */
.sobre-intro-text {
  color: var(--muted);
  max-width: 500px;
  margin: 0 auto;
  line-height: 1.7;
  font-weight: 300;
}
.mvv-list {
  list-style: none;
  padding: 0;
  font-size: 0.85rem;
  line-height: 1.5;
  color: white;
}
.mvv-list li {
  margin-bottom: 10px;
}
.section-desc-text {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 300;
}
.coverage-map-img {
  width: 100%;
  height: auto;
  border-radius: 20px;
}

/* ── parceiros.html content classes ── */
.parceiros-img {
  width: 100%;
  height: auto;
  margin-top: 32px;
  border-radius: 12px;
}
.parceiro-intro-text {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 300;
  margin-top: 16px;
}

/* ── inline text link accents ── */
.inline-link-blue {
  color: #1A6CF5;
  font-weight: 600;
}

/* ── Contact page section ── */
#contato {
  padding: 140px 6% 110px;
  background: white;
  min-height: 100vh;
}

#contato .form-layout {
  max-width: 1400px;
  margin: 0 auto;
}

#contato .form-layout p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 300;
  margin-top: 16px;
}

#contato .form-layout img {
  width: 100%;
  height: auto;
  margin-top: 32px;
  border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.08);
}

@media (max-width: 1024px) {
  #contato {
    padding: 110px 5% 80px;
  }
}

@media (max-width: 768px) {
  #contato {
    padding: 100px 5% 60px;
  }
}

@media (max-width: 480px) {
  #contato {
    padding: 90px 4% 40px;
  }
}

/* ── Moved from parceiros.html <style> block ── */
.gform-embed {
  position: sticky;
  top: 100px;
  background: white;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 48px rgba(0,0,0,0.08);
  max-height: calc(100vh - 120px);
  display: flex;
  flex-direction: column;
}
.gform-embed iframe {
  width: 100%;
  flex: 1;
  min-height: 640px;
  border: none;
  display: block;
}
@media (max-width: 1024px) {
  .gform-embed { position: static; max-height: none; }
  .gform-embed iframe { min-height: 580px; }
}
@media (max-width: 480px) {
  .gform-embed iframe { min-height: 520px; }
}

/* ── Moved from mapa.html <style> block (scoped with body id) ── */
body#page-mapa {
  margin: 0;
  background: #0b132b;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
body#page-mapa .mapa-container {
  width: 95%;
  max-width: 1200px;
}
body#page-mapa .mapa-container img,
body#page-mapa .mapa-container video {
  width: 100%;
  height: auto;
  display: block;
}

/* ── Moved from blog-post.html <style> block ── */
body.blog-post-page {
  background: var(--surface);
  color: var(--text);
  font-family: 'Segoe UI', Arial, sans-serif;
  margin: 0;
  padding: 0;
}
.blog-post-container {
  max-width: 800px;
  margin: 48px auto 0 auto;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 8px 32px rgba(15,55,89,0.08);
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.blog-post-title {
  font-size: 2.2rem;
  font-weight: 700;
  color: #0F3759;
  margin-bottom: 12px;
}
.blog-post-meta {
  font-size: 1rem;
  color: #4297D3;
  margin-bottom: 24px;
  font-weight: 500;
}
.blog-post-content {
  font-size: 1.15rem;
  line-height: 1.8;
  color: #0A0E1A;
  font-weight: 400;
}
.blog-post-content h2,
.blog-post-content h3 {
  color: #F1BA1B;
  margin-top: 32px;
  margin-bottom: 12px;
}
.blog-post-content ul,
.blog-post-content ol {
  margin: 24px 0;
  padding-left: 24px;
}
.blog-post-content li {
  margin-bottom: 10px;
  color: #0F3759;
  font-weight: 500;
}
.blog-post-footer {
  margin-top: 32px;
  text-align: center;
  color: #4297D3;
  font-size: 1rem;
}
@media (max-width: 600px) {
  .blog-post-container { padding: 18px 8px; }
  .blog-post-title { font-size: 1.3rem; }
}

/* ========== MULTI-CLOUD CSS LINES (solucoes.html) ========== */
.mc3d-lines-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}

.mc3d-line {
  position: absolute;
  height: 2px;
  transform-origin: 0 50%;
  background: linear-gradient(90deg,
    rgba(26,108,245,0.6) 0%,
    rgba(242,121,33,0.9) 50%,
    rgba(26,108,245,0.6) 100%
  );
  border-radius: 2px;
  animation: mcLineFlow 3s linear infinite;
  box-shadow: 0 0 6px rgba(242,121,33,0.4);
}

@keyframes mcLineFlow {
  0%   { opacity: 0.3; }
  50%  { opacity: 1;   }
  100% { opacity: 0.3; }
}

.mc3d-line:nth-child(1) { animation-delay: 0.0s; }
.mc3d-line:nth-child(2) { animation-delay: 0.6s; }
.mc3d-line:nth-child(3) { animation-delay: 1.2s; }
.mc3d-line:nth-child(4) { animation-delay: 1.8s; }
.mc3d-line:nth-child(5) { animation-delay: 2.4s; }


