/* =========================================================
   CNX Projetos e Tecnologia · base
   Fontes, tokens de cor, reset, tipografia, seções, botões e animações de entrada.
   ========================================================= */

/* ---------- Fontes locais (OFL, ver assets/fonts) ---------- */
@font-face {
  font-family: "Sora";
  src: url("../fonts/sora-var.woff2") format("woff2");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Manrope";
  src: url("../fonts/manrope-var.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  /* Paleta naval escolhida */
  --navy-900: #0F1B3D;
  --navy-700: #1E3A5F;
  --steel-500: #3B6FA0;
  --mist-100: #E8EDF3;
  /* Acento: ciano da marca (só sobre fundo escuro ou como fundo de botão com texto navy) */
  --cyan-400: #1BA3D6;
  --cyan-300: #4CC0EA;

  --white: #FFFFFF;
  --ink: #0F1B3D;
  --ink-soft: #3F4C66;          /* texto secundário sobre branco: 8.6:1 */
  --on-dark: #FFFFFF;
  --on-dark-soft: #B9C6DA;      /* texto secundário sobre navy-900: 9.6:1 */
  --line: #D5DDE8;
  --line-dark: rgba(232, 237, 243, 0.12);

  --font-display: "Sora", "Segoe UI", system-ui, sans-serif;
  --font-body: "Manrope", "Segoe UI", system-ui, sans-serif;

  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 16px;

  --shadow-sm: 0 1px 2px rgba(15, 27, 61, 0.06), 0 1px 3px rgba(15, 27, 61, 0.08);
  --shadow: 0 4px 12px rgba(15, 27, 61, 0.06), 0 12px 32px rgba(15, 27, 61, 0.08);

  --container: 1200px;
  --gutter: clamp(16px, 4vw, 32px);
  --section-y: clamp(72px, 10vw, 128px);
  --header-h: 72px;

  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 0.5em;
  font-weight: 600;
}

p { margin: 0 0 1em; }

a { color: var(--steel-500); text-underline-offset: 3px; }
a:hover { color: var(--navy-700); }

:focus-visible {
  outline: 3px solid var(--cyan-400);
  outline-offset: 3px;
  border-radius: 4px;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: 16px; top: -100px; z-index: 200;
  background: var(--cyan-400); color: var(--navy-900);
  padding: 10px 16px; border-radius: var(--radius-sm); font-weight: 700;
  text-decoration: none;
}
.skip-link:focus { top: 12px; }

.container {
  width: 100%;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.section { padding-block: var(--section-y); }
.section--mist { background: var(--mist-100); }
.section--dark { background: var(--navy-900); color: var(--on-dark); }

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-display);
  font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--steel-500);
  margin-bottom: 18px;
}
.eyebrow::before { /* símbolo da CNX embutido (funciona também abrindo o arquivo direto, sem servidor) */
  content: ""; width: 22px; height: 22px; flex: none;
  background: var(--cyan-400); /* fundo claro: azul claro */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%2225 4 50 50%22%3E%3Cpath fill=%22%23000%22 fill-rule=%22evenodd%22 d=%22M46.95,52.99C45.35,52.83 42.49,52.16 41.32,51.66C41.00,51.53 40.43,51.28 40.03,51.12C35.62,49.25 30.91,44.99 28.95,41.10C28.80,40.80 28.57,40.39 28.45,40.20C28.33,40.01 28.11,39.51 27.95,39.10C27.80,38.69 27.57,38.14 27.44,37.89C27.01,37.03 26.22,33.64 26.09,32.13C25.96,30.54 26.03,26.99 26.22,26.38C26.45,25.61 27.32,25.23 27.76,25.71C27.97,25.95 27.97,26.00 27.85,29.00C27.76,31.06 27.97,33.49 28.35,34.89C28.88,36.87 29.20,37.84 29.64,38.79C29.89,39.34 30.10,39.83 30.10,39.88C30.10,39.93 30.39,40.43 30.75,40.98C33.39,45.16 37.53,48.43 42.49,50.25C44.08,50.83 45.47,51.07 48.34,51.26C49.55,51.34 49.83,51.52 49.78,52.22C49.72,53.01 49.06,53.19 46.95,52.99ZM48.17,45.46C47.35,45.23 47.10,44.75 47.53,44.24L47.78,43.95L49.87,43.89C52.08,43.83 52.30,43.79 54.10,43.23C56.13,42.60 58.49,41.24 59.91,39.88C62.46,37.42 64.21,33.57 64.46,29.85C64.54,28.76 64.15,26.29 63.73,25.15C63.34,24.08 63.32,23.58 63.65,23.31C64.33,22.78 64.84,23.13 65.34,24.47C65.90,25.98 66.01,26.63 66.07,28.78C66.13,30.84 66.02,32.16 65.70,33.23C65.46,34.04 64.71,36.11 64.61,36.25C64.56,36.30 64.35,36.69 64.12,37.11C62.84,39.52 60.53,41.90 57.93,43.46C55.80,44.74 53.11,45.47 50.20,45.56C49.08,45.59 48.52,45.56 48.17,45.46ZM48.62,41.69C46.57,41.29 44.31,40.32 42.56,39.10C41.50,38.36 39.93,36.85 39.85,36.51C39.76,36.09 40.02,35.65 40.58,35.27C40.83,35.09 41.25,34.77 41.50,34.54C42.53,33.60 42.74,33.63 44.04,34.88C45.94,36.72 47.43,37.28 50.15,37.17C51.71,37.10 52.36,36.94 53.55,36.34C55.26,35.46 56.38,34.42 57.00,33.15C57.76,31.56 58.09,31.54 59.73,33.01C61.08,34.22 61.10,34.25 61.10,34.74C61.09,35.21 61.06,35.28 60.25,36.35C57.92,39.48 55.16,41.21 51.75,41.70C50.92,41.81 49.23,41.81 48.62,41.69ZM69.94,40.96C69.28,40.75 68.32,40.19 68.14,39.92C67.91,39.58 68.01,39.01 68.39,38.41C68.56,38.14 68.86,37.48 69.04,36.94C69.23,36.39 69.48,35.70 69.60,35.40C69.72,35.10 70.00,33.97 70.22,32.90C70.67,30.65 70.82,28.36 70.61,26.79C70.41,25.27 69.82,22.82 69.46,22.01C69.28,21.59 69.07,21.09 69.01,20.89C68.95,20.69 68.73,20.26 68.54,19.94C68.34,19.61 68.09,19.17 67.98,18.95C66.86,16.77 63.76,13.71 60.83,11.89C59.08,10.80 57.87,10.24 55.40,9.35C53.86,8.79 49.85,8.45 47.83,8.69C46.04,8.91 44.96,9.12 44.38,9.36C44.06,9.49 43.70,9.60 43.56,9.60C43.22,9.60 42.77,9.19 42.41,8.57C41.80,7.50 41.80,6.56 42.42,6.24C42.82,6.03 45.60,5.34 46.56,5.21C47.52,5.07 51.60,5.07 52.66,5.20C53.69,5.33 57.25,6.22 57.76,6.48C57.98,6.59 58.40,6.75 58.70,6.85C59.88,7.22 62.33,8.49 64.00,9.59C67.20,11.70 71.00,16.16 72.06,19.04C72.18,19.38 72.40,19.91 72.54,20.22C72.68,20.54 72.91,21.26 73.05,21.82C73.20,22.39 73.40,23.14 73.51,23.48C74.06,25.29 74.21,29.93 73.80,32.65C73.52,34.50 72.06,39.62 71.58,40.40C71.23,40.98 70.63,41.18 69.94,40.96ZM31.92,34.30C31.35,34.04 31.15,33.58 30.99,32.10C30.68,29.22 30.92,25.69 31.54,23.98C31.72,23.47 31.91,22.89 31.94,22.70C32.06,22.13 33.19,19.93 33.91,18.84C35.23,16.89 36.54,15.60 39.28,13.56C40.48,12.67 40.89,12.73 41.67,13.90C41.90,14.26 42.23,14.73 42.39,14.96C43.01,15.79 42.87,16.39 41.95,16.91C41.65,17.08 40.92,17.63 40.33,18.15C37.88,20.26 36.49,22.41 35.70,25.30C35.02,27.78 35.02,29.95 35.71,32.36C36.06,33.57 36.04,33.97 35.63,34.30C35.25,34.59 32.58,34.60 31.92,34.30ZM48.58,33.36C47.12,32.84 46.27,32.06 45.70,30.74C45.19,29.55 45.17,28.63 45.61,27.50C46.20,26.01 47.00,25.23 48.40,24.76C49.55,24.38 50.28,24.37 51.40,24.75C52.91,25.25 53.69,25.98 54.21,27.40C54.66,28.59 54.66,29.42 54.20,30.65C53.91,31.43 53.78,31.62 53.21,32.20C51.96,33.45 50.10,33.91 48.58,33.36ZM57.80,25.53C57.55,25.44 57.19,25.07 57.00,24.70C56.82,24.35 55.84,23.37 55.01,22.71C54.30,22.15 52.36,21.21 51.67,21.10C49.83,20.80 47.95,21.03 46.42,21.73C45.36,22.21 45.21,22.32 44.24,23.27C43.25,24.24 42.78,24.53 42.50,24.35C42.36,24.26 42.38,23.74 42.54,23.42C42.86,22.79 44.78,21.26 45.69,20.90C45.99,20.79 46.41,20.59 46.64,20.46C47.45,19.99 49.41,19.79 51.25,19.99C52.17,20.09 52.49,20.18 53.20,20.50C53.67,20.71 54.17,20.93 54.32,20.99C55.72,21.52 58.30,24.27 58.30,25.24C58.30,25.42 58.09,25.65 57.97,25.59C57.96,25.59 57.88,25.56 57.80,25.53Z%22/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%2225 4 50 50%22%3E%3Cpath fill=%22%23000%22 fill-rule=%22evenodd%22 d=%22M46.95,52.99C45.35,52.83 42.49,52.16 41.32,51.66C41.00,51.53 40.43,51.28 40.03,51.12C35.62,49.25 30.91,44.99 28.95,41.10C28.80,40.80 28.57,40.39 28.45,40.20C28.33,40.01 28.11,39.51 27.95,39.10C27.80,38.69 27.57,38.14 27.44,37.89C27.01,37.03 26.22,33.64 26.09,32.13C25.96,30.54 26.03,26.99 26.22,26.38C26.45,25.61 27.32,25.23 27.76,25.71C27.97,25.95 27.97,26.00 27.85,29.00C27.76,31.06 27.97,33.49 28.35,34.89C28.88,36.87 29.20,37.84 29.64,38.79C29.89,39.34 30.10,39.83 30.10,39.88C30.10,39.93 30.39,40.43 30.75,40.98C33.39,45.16 37.53,48.43 42.49,50.25C44.08,50.83 45.47,51.07 48.34,51.26C49.55,51.34 49.83,51.52 49.78,52.22C49.72,53.01 49.06,53.19 46.95,52.99ZM48.17,45.46C47.35,45.23 47.10,44.75 47.53,44.24L47.78,43.95L49.87,43.89C52.08,43.83 52.30,43.79 54.10,43.23C56.13,42.60 58.49,41.24 59.91,39.88C62.46,37.42 64.21,33.57 64.46,29.85C64.54,28.76 64.15,26.29 63.73,25.15C63.34,24.08 63.32,23.58 63.65,23.31C64.33,22.78 64.84,23.13 65.34,24.47C65.90,25.98 66.01,26.63 66.07,28.78C66.13,30.84 66.02,32.16 65.70,33.23C65.46,34.04 64.71,36.11 64.61,36.25C64.56,36.30 64.35,36.69 64.12,37.11C62.84,39.52 60.53,41.90 57.93,43.46C55.80,44.74 53.11,45.47 50.20,45.56C49.08,45.59 48.52,45.56 48.17,45.46ZM48.62,41.69C46.57,41.29 44.31,40.32 42.56,39.10C41.50,38.36 39.93,36.85 39.85,36.51C39.76,36.09 40.02,35.65 40.58,35.27C40.83,35.09 41.25,34.77 41.50,34.54C42.53,33.60 42.74,33.63 44.04,34.88C45.94,36.72 47.43,37.28 50.15,37.17C51.71,37.10 52.36,36.94 53.55,36.34C55.26,35.46 56.38,34.42 57.00,33.15C57.76,31.56 58.09,31.54 59.73,33.01C61.08,34.22 61.10,34.25 61.10,34.74C61.09,35.21 61.06,35.28 60.25,36.35C57.92,39.48 55.16,41.21 51.75,41.70C50.92,41.81 49.23,41.81 48.62,41.69ZM69.94,40.96C69.28,40.75 68.32,40.19 68.14,39.92C67.91,39.58 68.01,39.01 68.39,38.41C68.56,38.14 68.86,37.48 69.04,36.94C69.23,36.39 69.48,35.70 69.60,35.40C69.72,35.10 70.00,33.97 70.22,32.90C70.67,30.65 70.82,28.36 70.61,26.79C70.41,25.27 69.82,22.82 69.46,22.01C69.28,21.59 69.07,21.09 69.01,20.89C68.95,20.69 68.73,20.26 68.54,19.94C68.34,19.61 68.09,19.17 67.98,18.95C66.86,16.77 63.76,13.71 60.83,11.89C59.08,10.80 57.87,10.24 55.40,9.35C53.86,8.79 49.85,8.45 47.83,8.69C46.04,8.91 44.96,9.12 44.38,9.36C44.06,9.49 43.70,9.60 43.56,9.60C43.22,9.60 42.77,9.19 42.41,8.57C41.80,7.50 41.80,6.56 42.42,6.24C42.82,6.03 45.60,5.34 46.56,5.21C47.52,5.07 51.60,5.07 52.66,5.20C53.69,5.33 57.25,6.22 57.76,6.48C57.98,6.59 58.40,6.75 58.70,6.85C59.88,7.22 62.33,8.49 64.00,9.59C67.20,11.70 71.00,16.16 72.06,19.04C72.18,19.38 72.40,19.91 72.54,20.22C72.68,20.54 72.91,21.26 73.05,21.82C73.20,22.39 73.40,23.14 73.51,23.48C74.06,25.29 74.21,29.93 73.80,32.65C73.52,34.50 72.06,39.62 71.58,40.40C71.23,40.98 70.63,41.18 69.94,40.96ZM31.92,34.30C31.35,34.04 31.15,33.58 30.99,32.10C30.68,29.22 30.92,25.69 31.54,23.98C31.72,23.47 31.91,22.89 31.94,22.70C32.06,22.13 33.19,19.93 33.91,18.84C35.23,16.89 36.54,15.60 39.28,13.56C40.48,12.67 40.89,12.73 41.67,13.90C41.90,14.26 42.23,14.73 42.39,14.96C43.01,15.79 42.87,16.39 41.95,16.91C41.65,17.08 40.92,17.63 40.33,18.15C37.88,20.26 36.49,22.41 35.70,25.30C35.02,27.78 35.02,29.95 35.71,32.36C36.06,33.57 36.04,33.97 35.63,34.30C35.25,34.59 32.58,34.60 31.92,34.30ZM48.58,33.36C47.12,32.84 46.27,32.06 45.70,30.74C45.19,29.55 45.17,28.63 45.61,27.50C46.20,26.01 47.00,25.23 48.40,24.76C49.55,24.38 50.28,24.37 51.40,24.75C52.91,25.25 53.69,25.98 54.21,27.40C54.66,28.59 54.66,29.42 54.20,30.65C53.91,31.43 53.78,31.62 53.21,32.20C51.96,33.45 50.10,33.91 48.58,33.36ZM57.80,25.53C57.55,25.44 57.19,25.07 57.00,24.70C56.82,24.35 55.84,23.37 55.01,22.71C54.30,22.15 52.36,21.21 51.67,21.10C49.83,20.80 47.95,21.03 46.42,21.73C45.36,22.21 45.21,22.32 44.24,23.27C43.25,24.24 42.78,24.53 42.50,24.35C42.36,24.26 42.38,23.74 42.54,23.42C42.86,22.79 44.78,21.26 45.69,20.90C45.99,20.79 46.41,20.59 46.64,20.46C47.45,19.99 49.41,19.79 51.25,19.99C52.17,20.09 52.49,20.18 53.20,20.50C53.67,20.71 54.17,20.93 54.32,20.99C55.72,21.52 58.30,24.27 58.30,25.24C58.30,25.42 58.09,25.65 57.97,25.59C57.96,25.59 57.88,25.56 57.80,25.53Z%22/%3E%3C/svg%3E") center / contain no-repeat;
}
.section--dark .eyebrow::before, .hero .eyebrow::before, .svc-hero .eyebrow::before, .cta-band .eyebrow::before { background: var(--white); } /* fundo escuro: branco */
.section-head .eyebrow { color: var(--steel-500); }
.section--dark .eyebrow, .section--dark .section-head .eyebrow, .hero .eyebrow, .svc-hero .eyebrow { color: var(--cyan-300); }

.section-head { max-width: 680px; margin-bottom: clamp(40px, 6vw, 64px); }
.section-head h2 { font-size: clamp(1.875rem, 3.6vw, 2.75rem); }
.section-head p { color: var(--ink-soft); font-size: 1.125rem; margin: 0; }
.section--dark .section-head p { color: var(--on-dark-soft); }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 24px;
  font-family: var(--font-display); font-size: 0.975rem; font-weight: 600;
  border-radius: var(--radius-sm); border: 2px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.btn svg { width: 20px; height: 20px; flex: none; }
.btn:active { transform: translateY(1px); }

.btn--primary { background: var(--cyan-400); color: var(--navy-900); }
.btn--primary:hover { background: var(--cyan-300); color: var(--navy-900); }

.btn--ghost { border-color: rgba(232, 237, 243, 0.35); color: var(--on-dark); }
.btn--ghost:hover { border-color: var(--on-dark); color: var(--on-dark); background: rgba(255,255,255,.06); }

.btn--dark { background: var(--navy-900); color: var(--white); }
.btn--dark:hover { background: var(--navy-700); color: var(--white); }

.btn--whatsapp { background: #177A41; color: var(--white); } /* 5.4:1 com branco */
.btn--whatsapp:hover { background: #12693A; color: var(--white); }

/* ---------- Utilitário ---------- */
[hidden] { display: none !important; }

/* ---------- Animações de entrada ---------- */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }

.scan { animation: scan 4.5s var(--ease) infinite; }
.pulse { animation: pulse 2.4s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes scan { 0%, 100% { transform: translateY(0); opacity: .0; } 10% { opacity: .9; } 50% { transform: translateY(150px); opacity: .9; } 60% { opacity: 0; } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}
