/* =========================================================
   ESTILOS DAS PÁGINAS INTERNAS DE SOLUÇÃO
   Complementa critical.css + rest.css — não substitui.
   Depende dos tokens :root definidos em critical.css.
   ========================================================= */

/* ----- Hero interno ----- */
.sol-hero {
  padding: 140px 0 80px;
  background:
    radial-gradient(circle at 80% 20%, rgba(242, 107, 74, 0.1) 0%, transparent 50%),
    var(--azul-profundo);
  position: relative;
  overflow: hidden;
}

.sol-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}

.sol-breadcrumb {
  font-size: 13px;
  color: var(--texto-sec-claro);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sol-breadcrumb a { color: var(--texto-sec-claro); }
.sol-breadcrumb span { opacity: 0.4; }

.sol-hero-icon {
  width: 64px;
  height: 64px;
  background: rgba(242, 107, 74, 0.12);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--coral);
  margin-bottom: 24px;
}

.sol-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: white;
  margin-bottom: 20px;
}

.sol-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-claro);
  max-width: 600px;
}

/* ----- Visão geral ----- */
.sol-overview {
  background: var(--offwhite);
  padding: 100px 0;
}

.sol-overview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.sol-overview-text .eyebrow { color: var(--azul-medio); }

.sol-overview-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--azul-profundo);
  margin-bottom: 16px;
}

.sol-overview-p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--texto-sec-escuro);
}

.sol-overview-visual {
  background: linear-gradient(135deg, var(--azul-medio), var(--azul-profundo));
  border-radius: 20px;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.15);
  font-family: var(--font-display);
  font-size: 56px;
  font-weight: 800;
}

/* ----- Como funciona ----- */
.sol-how {
  background: var(--azul-profundo);
  padding: 100px 0;
}

.sol-how .section-h2 { color: white; }
.sol-how .section-sub { color: var(--texto-sec-claro); }

.sol-how-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.sol-how-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 32px;
  transition: all 0.3s var(--ease-out-expo);
}
.sol-how-card:hover {
  background: rgba(255,255,255,0.07);
  border-color: var(--coral);
  transform: translateY(-4px);
}

.sol-how-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 28px;
  color: var(--coral);
  opacity: 0.5;
  margin-bottom: 12px;
  line-height: 1;
}

.sol-how-h3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 18px;
  color: white;
  margin-bottom: 10px;
}

.sol-how-p {
  font-size: 14px;
  line-height: 1.65;
  color: var(--texto-sec-claro);
}

/* ----- Benefícios ----- */
.sol-benefits {
  background: var(--offwhite);
  padding: 100px 0;
}

.sol-benefits-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  max-width: 800px;
  margin: 0 auto;
}

.sol-benefit-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 24px;
  background: white;
  border: 1px solid var(--cinza-suave);
  border-radius: 12px;
  font-size: 15px;
  color: var(--azul-profundo);
  font-weight: 500;
  transition: all 0.3s;
}
.sol-benefit-item:hover {
  border-color: var(--coral);
  box-shadow: var(--shadow-md);
}
.sol-benefit-item .check-icon { flex-shrink: 0; }

/* ----- Parceiros relevantes ----- */
.sol-partners {
  background: var(--azul-medio);
  padding: 80px 0;
}

.sol-partners .section-h2 {
  color: white;
}

.sol-partners-grid {
  display: grid;
  gap: 1px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  overflow: hidden;
  max-width: 720px;
  margin: 0 auto;
}

/* ----- CTA final ----- */
.sol-cta {
  background: var(--offwhite);
  padding: 60px 0 100px;
  text-align: center;
}

/* Textos claros em seções escuras (multicloud) */
.sol-challenges .section-h2 { color: var(--texto-claro); }
.sol-challenges .section-sub { color: var(--texto-sec-claro); }
.sol-providers .section-h2 { color: var(--texto-claro); }
.sol-providers .section-sub { color: var(--texto-sec-claro); }

.sol-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  color: var(--azul-profundo);
  margin-bottom: 16px;
  letter-spacing: -0.02em;
}

.sol-cta-sub {
  font-size: 15px;
  color: var(--texto-sec-escuro);
  margin-bottom: 32px;
}

/* ----- Hero CTAs ----- */
.sol-hero-ctas {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 36px;
}

/* ----- Painel de monitoramento (overview visual) ----- */
.sol-panel {
  background: linear-gradient(135deg, #0856B1 0%, #082764 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: 28px;
  box-shadow: var(--shadow-xl);
  width: calc(100% - 48px);
}

.sol-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.sol-panel-title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  color: white;
}

.sol-panel-stats {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Segundo parágrafo na visão geral */
.sol-overview-p + .sol-overview-p { margin-top: 16px; }

/* Grid de 2 parceiros */
.sol-partners-grid--2 { grid-template-columns: repeat(2, 1fr); max-width: 480px; }

/* Ícone teal destacado (IA no mobile menu) */
.dropdown-item-icon--teal {
  background: rgba(0, 151, 178, 0.18);
  border-color: rgba(0, 151, 178, 0.3);
  color: var(--coral);
}

/* ----- Parceiro item (reutiliza estilo da home) ----- */
.sol-parceiro {
  background: var(--azul-medio);
  padding: 28px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: -0.01em;
  transition: all 0.3s;
}
.sol-parceiro:hover {
  color: white;
  background: rgba(255, 255, 255, 0.04);
}

.sol-parceiro-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  color: white;
}
.sol-parceiro-badge svg { color: var(--coral); }

.sol-parceiro-badges {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  flex-wrap: wrap;
}

/* =========================================================
   MULTICLOUD — VARIANTES DE LAYOUT
   ========================================================= */

/* ----- Hero centralizado ----- */
.sol-hero--centered { text-align: center; }
.sol-hero--centered .sol-breadcrumb { justify-content: center; }
.sol-hero--centered .sol-hero-icon { margin: 0 auto 24px; }
.sol-hero--centered .sol-hero-sub { max-width: 680px; margin: 0 auto; }
.sol-hero--centered .sol-hero-ctas { justify-content: center; }

.sol-cloud-pills {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-cloud-pill {
  padding: 6px 18px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font-display);
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.02em;
  transition: all 0.2s;
}
.sol-cloud-pill:hover {
  background: rgba(0, 151, 178, 0.1);
  border-color: rgba(0, 151, 178, 0.3);
  color: var(--azul-claro);
}

/* ----- Strip de métricas ----- */
.sol-metrics-strip {
  background: var(--offwhite);
  padding: 64px 0;
  border-bottom: 1px solid var(--cinza-suave);
}
.sol-metrics-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.sol-metric-item {
  text-align: center;
  padding: 0 32px;
  position: relative;
}
.sol-metric-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 56px;
  background: var(--cinza-suave);
}
.sol-metric-value {
  font-family: var(--font-display);
  font-size: var(--fs-display);
  font-weight: 800;
  color: var(--azul-profundo);
  line-height: 1;
  margin-bottom: 10px;
  letter-spacing: -0.03em;
}
.sol-metric-accent { color: var(--coral); }
.sol-metric-desc {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--texto-sec-escuro);
  max-width: 200px;
  margin: 0 auto;
  line-height: 1.5;
}

/* ----- Cards de desafio (4 colunas) ----- */
.sol-challenges {
  background: var(--azul-profundo);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}
.sol-challenges-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.sol-challenge-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-top: 3px solid var(--coral);
  border-radius: 16px;
  padding: 28px 24px;
  transition: all 0.3s var(--ease-out-expo);
}
.sol-challenge-card:hover {
  background: rgba(255, 255, 255, 0.07);
  transform: translateY(-4px);
}
.sol-challenge-icon {
  width: 40px;
  height: 40px;
  background: rgba(0, 151, 178, 0.1);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--coral);
  margin-bottom: 16px;
}
.sol-challenge-title {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  color: white;
  margin-bottom: 10px;
}
.sol-challenge-text {
  font-size: 13px;
  line-height: 1.65;
  color: var(--texto-sec-claro);
}

/* ----- Seções alternadas (features) ----- */
.sol-features { background: var(--offwhite); padding: 80px 0; }
.sol-feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  padding: 64px 0;
}
.sol-feature-row:not(:last-child) { border-bottom: 1px solid var(--cinza-suave); }
.sol-feature-row--reverse .sol-feature-text { order: 2; }
.sol-feature-row--reverse .sol-feature-visual { order: 1; }

.sol-feature-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  background: rgba(0, 151, 178, 0.1);
  border: 1px solid rgba(0, 151, 178, 0.2);
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--coral-text);
  margin-bottom: 16px;
}
.sol-feature-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  margin-bottom: 16px;
  line-height: 1.25;
}
.sol-feature-p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--texto-sec-escuro);
  margin-bottom: 20px;
}
.sol-feature-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sol-feature-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 500;
  color: var(--azul-profundo);
}
.sol-feature-list-dot {
  width: 6px;
  height: 6px;
  background: var(--coral);
  border-radius: 50%;
  flex-shrink: 0;
}

/* ----- Provedores cloud ----- */
.sol-providers { background: var(--azul-medio); padding: 80px 0; }
.sol-providers-list {
  display: flex;
  align-items: stretch;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  overflow: hidden;
  max-width: 900px;
  margin: 0 auto;
}
.sol-provider-item {
  flex: 1;
  padding: 36px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.3s;
}
.sol-provider-item:last-child { border-right: none; }
.sol-provider-item:hover { background: rgba(255, 255, 255, 0.05); }
.sol-provider-name {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: color 0.3s;
}
.sol-provider-item:hover .sol-provider-name { color: white; }
a.sol-provider-name:hover { color: #fff; }
.sol-provider-sub {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sol-section-sub--light { color: rgba(255, 255, 255, 0.6); }

/* ----- Cards de benefício 3 colunas ----- */
.sol-benefits-3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.sol-benefit-card {
  background: white;
  border: 1px solid var(--cinza-suave);
  border-radius: 16px;
  padding: 32px 28px;
  transition: all 0.3s var(--ease-out-expo);
}
.sol-benefit-card:hover {
  border-color: var(--coral);
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}
.sol-benefit-card-icon {
  width: 48px;
  height: 48px;
  background: rgba(0, 151, 178, 0.1);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--coral);
  margin-bottom: 20px;
}
.sol-benefit-card-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--azul-profundo);
  margin-bottom: 10px;
}
.sol-benefit-card-text {
  font-size: 14px;
  line-height: 1.65;
  color: var(--texto-sec-escuro);
}

/* =========================================================
   MONITORAMENTO — LAYOUT ÚNICO
   ========================================================= */

/* Hero 2-col com console */
.sol-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

/* Quick stats abaixo dos CTAs */
.sol-hero-quick-stats {
  display: flex;
  gap: 12px;
  margin-top: 32px;
  flex-wrap: wrap;
}
.sol-hero-quick-stat {
  display: flex;
  flex-direction: column;
  padding: 12px 18px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  min-width: 90px;
}
.sol-hero-quick-stat-value {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--coral);
  line-height: 1;
  margin-bottom: 4px;
}
.sol-hero-quick-stat-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

/* Console de monitoramento (hero visual) */
.sol-console {
  background: linear-gradient(145deg, #0856B1 0%, #082764 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-xl);
}
.sol-console-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-console-title {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.sol-console-body { padding: 20px 24px; }
.sol-console-mini-row {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.sol-console-badge {
  flex: 1;
  padding: 8px 12px;
  border-radius: 8px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.sol-console-badge--ok {
  background: rgba(74, 222, 128, 0.12);
  color: #4ADE80;
  border: 1px solid rgba(74, 222, 128, 0.2);
}
.sol-console-badge--warn {
  background: rgba(251, 191, 36, 0.1);
  color: #FBBF24;
  border: 1px solid rgba(251, 191, 36, 0.15);
}
.sol-console-badge--ok-num,
.sol-console-badge--warn-num { font-size: 20px; display: block; margin-bottom: 2px; }

.sol-console-events {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-console-event {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  font-size: 12px;
  gap: 8px;
}
.sol-console-event-info {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--texto-claro);
  font-weight: 500;
  flex: 1;
  min-width: 0;
}
.sol-console-event-info span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sol-console-event-time {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.3);
  white-space: nowrap;
  flex-shrink: 0;
}

/* O que monitoramos — grid 4x2 */
.sol-monitor-layers {
  background: var(--azul-profundo);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}
.sol-monitor-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.sol-monitor-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: all 0.3s var(--ease-out-expo);
}
.sol-monitor-item:hover {
  background: rgba(0, 151, 178, 0.07);
  border-color: rgba(0, 151, 178, 0.22);
  transform: translateY(-4px);
}
.sol-monitor-icon {
  width: 40px;
  height: 40px;
  background: rgba(0, 151, 178, 0.1);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--coral);
}
.sol-monitor-label {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 600;
  color: var(--texto-claro);
}
.sol-monitor-desc {
  font-size: 12px;
  color: var(--texto-sec-claro);
  line-height: 1.5;
}

/* Comparação: Reativo vs Proativo */
.sol-comparison { background: var(--offwhite); padding: 100px 0; }
.sol-comparison-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  max-width: 960px;
  margin: 0 auto;
}
.sol-comparison-col { padding: 44px 40px; }
.sol-comparison-col--bad {
  background: white;
  border: 1px solid var(--cinza-suave);
  border-right: none;
  border-radius: 20px 0 0 20px;
}
.sol-comparison-col--good {
  background: var(--azul-profundo);
  border-radius: 0 20px 20px 0;
}
.sol-comparison-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 20px;
}
.sol-comparison-label--bad {
  background: rgba(100, 100, 100, 0.1);
  color: var(--texto-sec-escuro);
}
.sol-comparison-label--good {
  background: rgba(0, 151, 178, 0.15);
  color: var(--coral-text);
}
.sol-comparison-h3 {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 24px;
  line-height: 1.2;
}
.sol-comparison-col--bad .sol-comparison-h3 { color: var(--azul-profundo); }
.sol-comparison-col--good .sol-comparison-h3 { color: var(--texto-claro); }
.sol-comparison-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.sol-comparison-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
}
.sol-comparison-col--bad .sol-comparison-item { color: var(--texto-sec-escuro); }
.sol-comparison-col--good .sol-comparison-item { color: rgba(240, 244, 248, 0.85); }
.sol-comparison-icon--bad {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(120, 120, 120, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--texto-sec-escuro);
  font-size: 11px;
  font-weight: 700;
}
.sol-comparison-icon--good {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(0, 151, 178, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--coral);
  font-size: 11px;
  font-weight: 700;
}

/* Fluxo de resposta — horizontal 5 etapas */
.sol-flow { background: var(--azul-profundo); padding: 100px 0; }
/* Wrapper vertical das duas linhas */
.sol-flow-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 56px;
}

/* Linha 1: círculos + conectores — todos alinhados ao centro vertical */
.sol-flow-circles {
  display: flex;
  align-items: center;
}

/* Linha 2: labels abaixo de cada círculo */
.sol-flow-labels {
  display: flex;
  align-items: flex-start;
}

/* Coluna que envolve cada círculo — mesma proporção dos labels */
.sol-flow-col {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Coluna de texto — mesma proporção que sol-flow-col */
.sol-flow-col--label {
  flex: 1;
  text-align: center;
  padding: 0 8px;
}

/* Espaçador que substitui o conector na linha de labels */
.sol-flow-gap {
  flex-shrink: 0;
  width: 40px;
}

/* Stub para compatibilidade — não usado mais no layout principal */
.sol-flow-step { display: none; }
.sol-flow-num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(0, 151, 178, 0.15);
  border: 2px solid rgba(0, 151, 178, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  color: var(--azul-claro);
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.sol-flow-title {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 600;
  color: var(--texto-claro);
  margin-bottom: 8px;
}
.sol-flow-text {
  font-size: 12px;
  line-height: 1.5;
  color: var(--texto-sec-claro);
}
.sol-flow-connector {
  flex-shrink: 0;
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(0, 151, 178, 0.4);
}
.sol-flow-connector svg { width: 20px; height: 20px; }

/* Textos claros em seções escuras — monitoramento */
.sol-monitor-layers .section-h2 { color: var(--texto-claro); }
.sol-monitor-layers .section-sub { color: var(--texto-sec-claro); }
.sol-flow .section-h2 { color: var(--texto-claro); }
.sol-flow .section-sub { color: var(--texto-sec-claro); }

/* Stats grid (benefícios com números) */
.sol-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.sol-stat-card {
  background: white;
  border: 1px solid var(--cinza-suave);
  border-radius: 16px;
  padding: 32px 28px;
  transition: all 0.3s var(--ease-out-expo);
}
.sol-stat-card:hover {
  border-color: var(--coral);
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}
.sol-stat-num {
  font-family: var(--font-display);
  font-size: var(--fs-h2);
  font-weight: 800;
  color: var(--azul-profundo);
  line-height: 1;
  margin-bottom: 8px;
  letter-spacing: -0.03em;
}
.sol-stat-accent { color: var(--coral); }
.sol-stat-label {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  color: var(--azul-profundo);
  margin-bottom: 10px;
}
.sol-stat-text {
  font-size: 13px;
  line-height: 1.6;
  color: var(--texto-sec-escuro);
}

/* ----- Responsividade ----- */
@media (max-width: 1024px) {
  .sol-overview-grid { grid-template-columns: 1fr; gap: 40px; }
  .sol-how-grid { grid-template-columns: repeat(2, 1fr); }
  .sol-metrics-grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }
  .sol-metric-item:not(:last-child)::after { display: none; }
  .sol-challenges-grid { grid-template-columns: repeat(2, 1fr); }
  .sol-feature-row { grid-template-columns: 1fr; gap: 40px; }
  .sol-feature-row--reverse .sol-feature-text { order: 0; }
  .sol-feature-row--reverse .sol-feature-visual { order: 0; }
  .sol-benefits-3col { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .sol-hero { padding: 120px 0 60px; }
  .sol-how-grid { grid-template-columns: 1fr; }
  .sol-benefits-grid { grid-template-columns: 1fr; }
  .sol-challenges-grid { grid-template-columns: 1fr; }
  .sol-benefits-3col { grid-template-columns: 1fr; }
  .sol-providers-list { flex-direction: column; }
  .sol-provider-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .sol-provider-item:last-child { border-bottom: none; }
  .sol-monitor-grid { grid-template-columns: repeat(2, 1fr); }
  .sol-hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .sol-comparison-grid { grid-template-columns: 1fr; }
  .sol-comparison-col--bad { border-radius: 16px 16px 0 0; }
  .sol-comparison-col--good { border-radius: 0 0 16px 16px; }
  .sol-flow-circles { flex-wrap: wrap; justify-content: center; gap: 8px; }
  .sol-flow-labels { flex-wrap: wrap; }
  .sol-flow-col { flex: 0 0 calc(33% - 16px); }
  .sol-flow-col--label { flex: 0 0 calc(33% - 16px); margin-bottom: 16px; }
  .sol-flow-gap { display: none; }
  .sol-flow-connector { display: none; }
  .sol-stat-grid { grid-template-columns: 1fr; }
}
/* Override for mobile - remove the extra closing brace from above */

/* ===================================================================
   SOLUÇÃO: BANCO DE DADOS (.sol-page--bd)
   Identidade própria: ciano elétrico como acento técnico,
   mockups inspirados em ferramentas de DBA reais,
   layouts split (foto+texto) e seções imersivas com bg-foto.
   =================================================================== */

.sol-page--bd {
  --bd-cyan: #0096ff;
  --bd-cyan-bright: #33adff;
  --bd-cyan-soft: rgba(0, 150, 255, 0.12);
  --bd-cyan-border: rgba(0, 150, 255, 0.32);
  --bd-mono: var(--font-display);
  --bd-ink: #051536;
  --bd-ink-2: #0b1f4d;
  --bd-text-sec: rgba(255, 255, 255, 0.72);
  --bd-text-mute: rgba(255, 255, 255, 0.5);
  --bd-card-bg: rgba(255, 255, 255, 0.04);
  --bd-card-border: rgba(255, 255, 255, 0.08);
  --bd-line: rgba(8, 39, 100, 0.08);
}

/* ---------- Primitivos ---------- */
.sol-page--bd .bd-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bd-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--bd .bd-eyebrow--dark { color: var(--bd-cyan); }

.sol-page--bd .bd-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bd-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: bd-pulse 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite;
  flex-shrink: 0;
}
@keyframes bd-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--bd .bd-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--bd .bd-h2--center { text-align: center; }
.sol-page--bd .bd-h2--light { color: #fff; }
.sol-page--bd .bd-accent {
  background: linear-gradient(135deg, var(--bd-cyan-bright), var(--bd-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--bd .bd-accent-dark {
  background: linear-gradient(135deg, var(--bd-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sol-page--bd .bd-p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 18px;
}
.sol-page--bd .bd-p:last-child { margin-bottom: 0; }

.sol-page--bd .bd-section-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--bd .bd-section-sub--light { color: var(--bd-text-sec); }
.sol-page--bd .bd-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}

.sol-page--bd .bd-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--bd .bd-btn--primary {
  background: linear-gradient(135deg, var(--bd-cyan), var(--bd-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--bd .bd-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.7);
}
.sol-page--bd .bd-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--bd .bd-btn--ghost:hover {
  border-color: var(--bd-cyan-bright);
  color: var(--bd-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--bd .bd-btn--lg { padding: 16px 36px; font-size: 16px; }

/* ---------- HERO IMERSIVO ---------- */
.sol-page--bd .bd-hero {
  position: relative;
  padding: 140px 0 90px;
  background: var(--bd-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--bd .bd-hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--bd .bd-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.sol-page--bd .bd-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(115deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.82) 45%, rgba(11, 31, 77, 0.7) 100%),
    radial-gradient(circle at 80% 25%, rgba(0, 150, 255, 0.22), transparent 50%);
}
.sol-page--bd .bd-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
}
.sol-page--bd .bd-hero-inner {
  position: relative;
  z-index: 3;
}
.sol-page--bd .bd-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--bd-text-mute);
  margin-bottom: 36px;
}
.sol-page--bd .bd-breadcrumb a {
  color: var(--bd-cyan-bright);
  text-decoration: none;
}
.sol-page--bd .bd-breadcrumb a:hover { text-decoration: underline; }
.sol-page--bd .bd-breadcrumb span { opacity: 0.5; }
.sol-page--bd .bd-breadcrumb [aria-current] { opacity: 1; }

.sol-page--bd .bd-hero-content {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  gap: 80px;
  align-items: center;
}
.sol-page--bd .bd-hero-text { max-width: 640px; }
.sol-page--bd .bd-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
.sol-page--bd .bd-hero-h1 .bd-accent { display: inline; }
.sol-page--bd .bd-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--bd-text-sec);
  margin: 0 0 36px;
  text-wrap: pretty;
}
.sol-page--bd .bd-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Hero mini card */
.sol-page--bd .bd-hero-mock { display: flex; justify-content: flex-end; }
.sol-page--bd .bd-mini-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.6);
  color: #fff;
}
.sol-page--bd .bd-mini-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--bd .bd-mini-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
}
.sol-page--bd .bd-mini-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bd-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--bd .bd-mini-card-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
}
.sol-page--bd .bd-mini-card-row:first-of-type { border-top: none; padding-top: 0; }
.sol-page--bd .bd-mini-label { color: var(--bd-text-sec); }
.sol-page--bd .bd-mini-val {
  font-family: var(--bd-mono);
  font-weight: 600;
  color: #fff;
  font-size: 13px;
}
.sol-page--bd .bd-mini-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--bd .bd-mini-dot--green {
  background: #34d399;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}
.sol-page--bd .bd-mini-dot--amber {
  background: #fbbf24;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.18);
}
.sol-page--bd .bd-mini-card-spark {
  margin-top: 14px;
  color: var(--bd-cyan-bright);
  height: 40px;
}
.sol-page--bd .bd-mini-card-spark svg { width: 100%; height: 100%; display: block; }

/* ---------- SPLIT GENÉRICO ---------- */
.sol-page--bd .bd-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sol-page--bd .bd-split--text-left .bd-split-text { order: 0; }
.sol-page--bd .bd-split--text-left .bd-split-visual { order: 1; }
.sol-page--bd .bd-split--photo-left .bd-split-photo-wrap { order: 0; }
.sol-page--bd .bd-split--photo-left .bd-split-text { order: 1; }

/* ---------- OVERVIEW ---------- */
.sol-page--bd .bd-overview {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--bd .bd-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(0, 150, 255, 0.08), transparent 40%);
  pointer-events: none;
}
.sol-page--bd .bd-overview .container { position: relative; z-index: 1; }

.sol-page--bd .bd-stat-row {
  display: flex;
  gap: 32px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}
.sol-page--bd .bd-stat-row li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 18px;
  border-left: 2px solid var(--bd-cyan);
  min-width: 120px;
}
.sol-page--bd .bd-stat-row strong {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  line-height: 1;
}
.sol-page--bd .bd-stat-row > li > span {
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
  line-height: 1.4;
}

/* Mosaico de mockups */
.sol-page--bd .bd-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
  position: relative;
}
.sol-page--bd .bd-mosaic-card--big {
  grid-column: 1 / -1;
}
.sol-page--bd .bd-mosaic-card {
  background: var(--bd-ink);
  color: #fff;
  border-radius: 18px;
  padding: 20px 22px;
  border: 1px solid var(--bd-card-border);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.35);
  position: relative;
  overflow: hidden;
}
.sol-page--bd .bd-mosaic-card--query {
  background: linear-gradient(160deg, #061d3f 0%, var(--bd-ink) 100%);
}
.sol-page--bd .bd-mosaic-card--spark {
  background: linear-gradient(160deg, var(--bd-ink-2) 0%, var(--bd-ink) 100%);
}

.sol-page--bd .bd-mock-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--bd-card-border);
}
.sol-page--bd .bd-mock-dots { display: flex; gap: 5px; }
.sol-page--bd .bd-mock-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--bd .bd-mock-dots span:nth-child(1) { background: #f87171; }
.sol-page--bd .bd-mock-dots span:nth-child(2) { background: #fbbf24; }
.sol-page--bd .bd-mock-dots span:nth-child(3) { background: #34d399; }
.sol-page--bd .bd-mock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.005em;
  flex: 1;
}
.sol-page--bd .bd-mock-title--mono { font-family: var(--bd-mono); font-weight: 500; }
.sol-page--bd .bd-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bd-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--bd .bd-mock-tag {
  font-family: var(--bd-mono);
  font-size: 11px;
  color: var(--bd-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 3px 8px;
  border-radius: 6px;
}
.sol-page--bd .bd-mock-body { display: flex; flex-direction: column; }
.sol-page--bd .bd-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--bd-card-border);
  font-size: 13px;
}
.sol-page--bd .bd-mock-row:first-of-type { border-top: none; padding-top: 0; }

/* SQL code blocks */
.sol-page--bd .bd-mock-code {
  font-family: var(--bd-mono);
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-x: auto;
}
.sol-page--bd .bd-mock-code--lg { font-size: 13px; line-height: 1.8; }
.sol-page--bd .bd-tk-kw { color: var(--bd-cyan-bright); font-weight: 600; }
.sol-page--bd .bd-tk-fn { color: #fbbf24; }
.sol-page--bd .bd-tk-str { color: #34d399; }
.sol-page--bd .bd-tk-cm { color: rgba(255, 255, 255, 0.4); font-style: italic; }

.sol-page--bd .bd-mock-compare {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--bd-card-border);
  flex-wrap: wrap;
}
.sol-page--bd .bd-mock-compare-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}
.sol-page--bd .bd-mock-compare-item--before { color: #f87171; }
.sol-page--bd .bd-mock-compare-item--after { color: var(--bd-cyan-bright); }
.sol-page--bd .bd-mock-compare-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}
.sol-page--bd .bd-mock-compare-val {
  font-family: var(--bd-mono);
  font-weight: 700;
  font-size: 16px;
}
.sol-page--bd .bd-mock-compare-arrow { color: rgba(255, 255, 255, 0.4); }
.sol-page--bd .bd-mock-compare-gain {
  margin-left: auto;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--bd-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 6px 12px;
  border-radius: 100px;
}
.sol-page--bd .bd-mock-compare--lg .bd-mock-compare-val { font-size: 22px; }

/* spark mosaic */
.sol-page--bd .bd-mock-spark-title {
  font-family: var(--bd-mono);
  font-size: 11px;
  color: var(--bd-text-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 8px;
}
.sol-page--bd .bd-mock-spark {
  width: 100%;
  height: 70px;
  display: block;
  color: var(--bd-cyan-bright);
}
.sol-page--bd .bd-mock-spark-val {
  font-family: var(--bd-mono);
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  display: block;
  margin-top: 6px;
}
.sol-page--bd .bd-mock-spark-trend {
  font-size: 12px;
  color: #34d399;
  margin-left: 6px;
  font-weight: 600;
}

/* ---------- FRENTES (3 splits alternados) ---------- */
.sol-page--bd .bd-frentes {
  background: #fff;
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--bd .bd-frente {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  margin-top: 88px;
}
.sol-page--bd .bd-frente:first-of-type { margin-top: 0; }
.sol-page--bd .bd-frente--reverse .bd-frente-content { order: 0; }
.sol-page--bd .bd-frente--reverse .bd-frente-visual { order: 1; }

.sol-page--bd .bd-frente-num {
  display: inline-flex;
  align-items: center;
  font-family: var(--bd-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bd-cyan);
  margin-bottom: 16px;
}
.sol-page--bd .bd-frente-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--bd .bd-frente-p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 22px;
}
.sol-page--bd .bd-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--bd .bd-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--azul-profundo);
}
.sol-page--bd .bd-checklist svg {
  flex-shrink: 0;
  margin-top: 4px;
  padding: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--bd-cyan-soft);
  color: var(--bd-cyan);
}

/* Frente visual (photo + blob + floating card) */
.sol-page--bd .bd-frente-visual {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--bd .bd-frente-blob {
  position: absolute;
  inset: -6% -8%;
  background: url('/assets/img/solucoes/forma-frente.svg') no-repeat center / contain;
  opacity: 0.9;
  z-index: 0;
  transform: translate(-7%, -3%) rotate(-3deg);
  pointer-events: none;
}
.sol-page--bd .bd-frente-blob--alt {
  transform: translate(7%, -3%) rotate(2.5deg);
}
.sol-page--bd .bd-frente-blob--time {
  transform: translate(-6%, 4%) rotate(-2deg);
}
.sol-page--bd .bd-frente-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.45);
  transform: rotate(0deg);
  transition: transform 0.6s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--bd .bd-frente-photo:hover { transform: rotate(-1deg) scale(1.02); }
.sol-page--bd .bd-frente-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sol-page--bd .bd-frente-floating-card {
  position: absolute;
  z-index: 2;
  bottom: -18px;
  right: -22px;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  box-shadow: 0 24px 50px -10px rgba(8, 39, 100, 0.3), 0 0 0 1px rgba(8, 39, 100, 0.05);
  min-width: 240px;
  font-family: var(--font-display);
}
.sol-page--bd .bd-frente-floating-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
}
.sol-page--bd .bd-frente-floating-row--bold {
  font-family: var(--bd-mono);
  font-weight: 600;
  color: var(--azul-profundo);
  font-size: 15px;
  margin-top: 4px;
  justify-content: space-between;
}
.sol-page--bd .bd-frente-floating-time {
  color: #f87171;
  font-weight: 700;
}
.sol-page--bd .bd-frente-floating-action {
  margin-top: 6px;
  font-size: 11px;
  color: var(--bd-cyan);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sol-page--bd .bd-frente-floating-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bd-cyan);
  font-weight: 600;
}

/* Mockups dentro de bd-frente-visual--mock */
.sol-page--bd .bd-frente-visual--mock { aspect-ratio: auto; }
.sol-page--bd .bd-frente-visual--mock .bd-mock {
  position: relative;
  z-index: 1;
  background: var(--bd-ink);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 28px 70px -20px rgba(8, 39, 100, 0.4);
  color: #fff;
  border: 1px solid var(--bd-card-border);
}

/* Replication topology */
.sol-page--bd .bd-mock--topo .bd-topo {
  padding: 24px 0 10px;
}
.sol-page--bd .bd-topo {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.sol-page--bd .bd-topo-node {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--bd-cyan-border);
  background: rgba(0, 150, 255, 0.06);
  min-width: 160px;
  position: relative;
}
.sol-page--bd .bd-topo-node--primary {
  border-color: var(--bd-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.08);
}
.sol-page--bd .bd-topo-tag {
  font-family: var(--bd-mono);
  font-size: 10px;
  color: var(--bd-cyan-bright);
  letter-spacing: 0.12em;
  font-weight: 600;
}
.sol-page--bd .bd-topo-tag--replica { color: rgba(255, 255, 255, 0.55); }
.sol-page--bd .bd-topo-name {
  font-family: var(--bd-mono);
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}
.sol-page--bd .bd-topo-meta {
  font-family: var(--bd-mono);
  font-size: 11px;
  color: var(--bd-text-mute);
}
.sol-page--bd .bd-topo-node--replica .bd-mini-dot {
  position: absolute;
  top: 14px;
  right: 14px;
}
.sol-page--bd .bd-topo-lines {
  width: 100%;
  height: 100px;
  display: block;
}
.sol-page--bd .bd-topo-flow {
  animation: bd-flow 1.6s linear infinite;
}
@keyframes bd-flow {
  to { stroke-dashoffset: -20; }
}
.sol-page--bd .bd-topo-replicas {
  display: flex;
  gap: 18px;
  justify-content: center;
  width: 100%;
  flex-wrap: wrap;
}
.sol-page--bd .bd-topo-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  margin-top: 16px;
  border-top: 1px solid var(--bd-card-border);
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--bd-text-sec);
  flex-wrap: wrap;
}

/* ---------- POR TRÁS DA OPERAÇÃO ---------- */
.sol-page--bd .bd-time {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--bd .bd-split-photo-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--bd .bd-split-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.5);
}
.sol-page--bd .bd-split-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--bd .bd-time-stat {
  position: absolute;
  z-index: 2;
  bottom: -22px;
  left: -22px;
  background: var(--bd-ink);
  color: #fff;
  border-radius: 18px;
  padding: 22px 28px;
  box-shadow: 0 24px 60px -16px rgba(8, 39, 100, 0.45);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--bd-cyan-border);
}
.sol-page--bd .bd-time-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 36px;
  letter-spacing: -0.02em;
  color: var(--bd-cyan-bright);
  line-height: 1;
}
.sol-page--bd .bd-time-stat-sm { font-size: 22px; opacity: 0.55; margin: 0 2px; }
.sol-page--bd .bd-time-stat-lbl {
  font-family: var(--bd-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bd-text-sec);
  margin-top: 6px;
}

.sol-page--bd .bd-time-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.sol-page--bd .bd-time-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
}
.sol-page--bd .bd-time-list-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--bd-cyan-soft);
  color: var(--bd-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sol-page--bd .bd-time-list strong {
  display: block;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin-bottom: 4px;
}
.sol-page--bd .bd-time-list span {
  display: block;
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
}

/* ---------- BENEFITS (tema claro) ---------- */
.sol-page--bd .bd-benefits {
  position: relative;
  padding: 120px 0;
  background: var(--offwhite, #f8fcff);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--bd .bd-benefits-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--bd .bd-benefits-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.08;
  filter: saturate(0.5);
}
.sol-page--bd .bd-benefits-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(248, 252, 255, 0.85) 0%, rgba(248, 252, 255, 0.96) 100%),
    radial-gradient(circle at 20% 80%, rgba(0, 151, 178, 0.06), transparent 55%);
}
.sol-page--bd .bd-benefits-inner { position: relative; z-index: 2; }

/* Overrides para títulos --light dentro da seção clara */
.sol-page--bd .bd-benefits .bd-h2--light { color: var(--azul-profundo); }
.sol-page--bd .bd-benefits .bd-section-sub--light { color: var(--texto-sec-escuro, #4A5568); }

.sol-page--bd .bd-benefits-grid {
  list-style: none;
  padding: 0;
  margin: 56px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.sol-page--bd .bd-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid var(--cinza-suave, #e6edf6);
  border-radius: 14px;
  color: var(--azul-profundo);
  font-size: 15px;
  line-height: 1.55;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--bd .bd-benefit:hover {
  background: #fff;
  border-color: rgba(0, 151, 178, 0.4);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.25);
  transform: translateY(-3px);
}
.sol-page--bd .bd-benefit-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(0, 151, 178, 0.14);
  color: var(--coral);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* ---------- CASES (editorial proof, light, 2x2 grid) ---------- */
.sol-page--bd .bd-cases {
  position: relative;
  padding: 96px 0 108px;
  background: #ffffff;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--bd .bd-cases-grid-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  pointer-events: none;
}
.sol-page--bd .bd-cases-glow {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 540px;
  height: 540px;
  background: radial-gradient(circle, rgba(0, 150, 255, 0.08) 0%, transparent 65%);
  filter: blur(40px);
  z-index: 0;
  pointer-events: none;
}
.sol-page--bd .bd-cases-inner {
  position: relative;
  z-index: 2;
}
.sol-page--bd .bd-cases-viewport {
  position: relative;
  margin: 60px 0 0;
  overflow: hidden;
}
.sol-page--bd .bd-cases-list {
  list-style: none;
  padding: 4px 4px 8px;
  margin: -4px -4px 0;
  display: flex;
  gap: 26px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.sol-page--bd .bd-cases-list::-webkit-scrollbar { display: none; }
.sol-page--bd .bd-case {
  flex: 0 0 calc((100% - 52px) / 3);
  min-width: 0;
  scroll-snap-align: start;
}
.sol-page--bd .bd-cases-nav {
  margin-top: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
}
.sol-page--bd .bd-cases-arrow {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid rgba(8, 39, 100, 0.16);
  color: var(--azul-profundo);
  cursor: pointer;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
  box-shadow: 0 4px 10px -4px rgba(8, 39, 100, 0.12);
}
.sol-page--bd .bd-cases-arrow:hover:not(:disabled) {
  background: var(--bd-cyan);
  border-color: var(--bd-cyan);
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px -8px rgba(0, 150, 255, 0.45);
}
.sol-page--bd .bd-cases-arrow:focus-visible {
  outline: 2px solid var(--bd-cyan);
  outline-offset: 3px;
}
.sol-page--bd .bd-cases-arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.sol-page--bd .bd-cases-arrow svg { display: block; }
.sol-page--bd .bd-case-card {
  position: relative;
  height: 100%;
  padding: 34px 30px 32px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
  border: 1px solid rgba(8, 39, 100, 0.08);
  box-shadow: 0 10px 28px -16px rgba(8, 39, 100, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s var(--ease, cubic-bezier(0.16, 1, 0.3, 1)), border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--bd .bd-case-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 30px;
  right: 30px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--bd-cyan), transparent);
  opacity: 0.5;
  pointer-events: none;
}
.sol-page--bd .bd-case-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 150, 255, 0.32);
  box-shadow: 0 18px 40px -16px rgba(8, 39, 100, 0.22);
}
.sol-page--bd .bd-case-head {
  display: flex;
  align-items: center;
  gap: 10px 12px;
  padding-bottom: 18px;
  margin-bottom: 26px;
  border-bottom: 1px dashed rgba(8, 39, 100, 0.12);
  flex-wrap: wrap;
}
.sol-page--bd .bd-case-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: -0.02em;
  color: var(--bd-cyan);
  line-height: 1;
  padding-right: 10px;
  border-right: 1px solid rgba(8, 39, 100, 0.16);
}
.sol-page--bd .bd-case-chip {
  font-family: var(--bd-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--bd-cyan);
  background: rgba(0, 150, 255, 0.08);
  border: 1px solid rgba(0, 150, 255, 0.18);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--bd .bd-case-where {
  flex-basis: 100%;
  font-family: var(--bd-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.72);
  margin-top: 2px;
  line-height: 1.3;
}
.sol-page--bd .bd-case-body {
  display: flex;
  flex-direction: column;
  gap: 28px;
  flex: 1;
}
.sol-page--bd .bd-case-aside {
  display: flex;
  align-items: center;
  gap: 22px;
}
.sol-page--bd .bd-case-logo-plate {
  position: relative;
  padding: 12px 14px;
  background: #f8f5ed;
  border-radius: 12px;
  border: 1px solid rgba(8, 39, 100, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 112px;
  height: 60px;
}
.sol-page--bd .bd-case-logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sol-page--bd .bd-case-logo--invert {
  filter: brightness(0) saturate(100%) invert(13%) sepia(72%) saturate(2300%) hue-rotate(214deg) brightness(93%) contrast(99%);
}
.sol-page--bd .bd-case-logo-plate--mono {
  background: linear-gradient(135deg, #f1f4fa 0%, #e6ecf6 100%);
  border-color: rgba(8, 39, 100, 0.1);
  gap: 8px;
  padding: 10px 14px;
}
.sol-page--bd .bd-case-mono-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: rgba(0, 150, 255, 0.12);
  color: var(--bd-cyan);
  flex-shrink: 0;
}
.sol-page--bd .bd-case-mono-name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--azul-profundo);
  line-height: 1;
}
.sol-page--bd .bd-case-mono-dot {
  color: var(--bd-cyan);
  margin: 0 1px;
  font-weight: 600;
}
.sol-page--bd .bd-case-kpi {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.sol-page--bd .bd-case-kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 42px);
  letter-spacing: -0.035em;
  line-height: 0.95;
  background: linear-gradient(135deg, var(--azul-profundo) 0%, var(--bd-cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--bd .bd-case-kpi-unit {
  font-size: 0.55em;
  font-weight: 700;
  margin-left: 1px;
}
.sol-page--bd .bd-case-kpi-lbl {
  font-family: var(--bd-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.78);
  line-height: 1.55;
  max-width: 220px;
}
.sol-page--bd .bd-case-main { position: relative; }
.sol-page--bd .bd-case-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  line-height: 1.22;
}
.sol-page--bd .bd-case-quote {
  position: relative;
  margin: 0 0 22px;
  padding: 4px 0 0 22px;
}
.sol-page--bd .bd-case-quote-mark {
  position: absolute;
  top: -12px;
  left: -2px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  color: var(--bd-cyan);
  opacity: 0.3;
}
.sol-page--bd .bd-case-quote p {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  font-style: italic;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.86);
  margin: 0 0 16px;
}
.sol-page--bd .bd-case-cite {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--bd .bd-case-cite cite {
  font-family: var(--bd-mono);
  font-size: 9.5px;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bd-cyan);
}
.sol-page--bd .bd-case-cite span {
  font-family: var(--font-body);
  font-size: 12.5px;
  color: rgba(8, 39, 100, 0.72);
}
.sol-page--bd .bd-case-stack {
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
}
.sol-page--bd .bd-case-stack-lbl {
  display: block;
  font-family: var(--bd-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--bd-cyan);
  margin-bottom: 14px;
}
.sol-page--bd .bd-case-stack-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--bd .bd-case-stack-list li {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(8, 39, 100, 0.82);
  padding: 6px 12px;
  background: rgba(0, 150, 255, 0.05);
  border: 1px solid rgba(0, 150, 255, 0.14);
  border-radius: 7px;
  max-width: 100%;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.sol-page--bd .bd-case-card:hover .bd-case-stack-list li {
  background: rgba(0, 150, 255, 0.09);
  border-color: rgba(0, 150, 255, 0.26);
  color: var(--azul-profundo);
}
.sol-page--bd .bd-cases-foot {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sol-page--bd .bd-btn--ghost-dark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.005em;
  padding: 10px 22px;
  border-radius: 100px;
  background: transparent;
  color: var(--azul-profundo);
  border: 1.5px solid rgba(8, 39, 100, 0.22);
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  text-decoration: none;
}
.sol-page--bd .bd-btn--ghost-dark:hover {
  background: rgba(0, 150, 255, 0.06);
  border-color: var(--bd-cyan);
  color: var(--bd-cyan);
  transform: translateY(-1px);
}

@media (max-width: 980px) {
  .sol-page--bd .bd-cases { padding: 78px 0 86px; }
  .sol-page--bd .bd-case { flex: 0 0 calc((100% - 20px) / 2); }
  .sol-page--bd .bd-cases-list { gap: 20px; }
  .sol-page--bd .bd-case-card { padding: 30px 26px 28px; }
  .sol-page--bd .bd-case-kpi-num { font-size: clamp(28px, 6vw, 36px); }
}
@media (max-width: 640px) {
  .sol-page--bd .bd-cases { padding: 56px 0 64px; }
  .sol-page--bd .bd-case { flex: 0 0 100%; }
  .sol-page--bd .bd-case-head { gap: 8px; }
  .sol-page--bd .bd-cases-arrow { width: 38px; height: 38px; }
}

/* ---------- PARTNERS ---------- */
.sol-page--bd .bd-partners {
  background: #fff;
  padding: 110px 0;
}
.sol-page--bd .bd-partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
}
/* ===== Logos de parceiros (substituem o nome em texto) - global p/ todas as solucoes ===== */
.sol-partner-pic { display: contents; }
/* Sem o paragrafo de descricao, o badge vira o ultimo item do card: tira a margem extra */
[class*="-partner-badge"]:last-child { margin-bottom: 0; }
/* Cards de provedor/stack so com logo (sem o sub): centraliza a logo verticalmente */
.sol-page--gc .gc-provider,
.sol-page--noc .noc-stack-card { justify-content: center; }
/* Logos nas barras de provedores/stack (FinOps, CloudOps, NOC) - mais compactas */
.sol-provider-pic { display: contents; }
.sol-provider-logo {
  display: block;
  height: 38px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
}
.sol-partner-logo {
  display: block;
  height: 48px;
  width: auto;
  max-width: 190px;
  margin: 0 auto;
  object-fit: contain;
}
/* Logos com muito respiro interno na arte: altura extra p/ igualar as demais */
.sol-partner-logo[src*="databricks"],
.sol-partner-logo[src*="commvault"],
.sol-partner-logo[src*="dell-technologies"] { height: 54px; }
/* NVIDIA: logo empilhado (simbolo + wordmark), precisa de mais altura p/ igualar os wordmarks de uma linha */
.sol-partner-logo[src*="nvidia"] { height: 64px; }
/* Card de parceiro: centraliza o conteudo (logo + badge opcional) na vertical e horizontal.
   Logos sem badge (ex.: AWS, Microsoft) ficam no centro do card em vez de no topo.
   O espacamento logo->badge vai p/ o gap (margin-bottom do -name zerado abaixo). Global p/ todas as solucoes. */
.sol-page--bd .bd-partner-card,
.sol-page--cs .cs-partner-card,
.sol-page--ia .ia-partner-card,
.sol-page--gv .gv-partner-card,
.sol-page--it .it-partner-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.sol-page--bd .bd-partner-name,
.sol-page--cs .cs-partner-name,
.sol-page--ia .ia-partner-name,
.sol-page--gv .gv-partner-name,
.sol-page--it .it-partner-name {
  margin-bottom: 0;
}

.sol-page--bd .bd-partner-card {
  background: var(--offwhite);
  border: 1px solid var(--bd-line);
  border-radius: 20px;
  padding: 36px 32px;
  text-align: center;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--bd .bd-partner-card:hover {
  border-color: var(--bd-cyan-border);
  box-shadow: 0 18px 40px -16px rgba(0, 150, 255, 0.25);
  transform: translateY(-4px);
}
.sol-page--bd .bd-partner-name {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  color: var(--azul-profundo);
  letter-spacing: -0.04em;
  margin-bottom: 14px;
}
.sol-page--bd .bd-partner-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--bd-cyan);
  background: var(--bd-cyan-soft);
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 18px;
}
.sol-page--bd .bd-partner-badge svg { color: var(--bd-cyan); }
.sol-page--bd .bd-partner-desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0;
}

/* ---------- CTA com bg-foto ---------- */
.sol-page--bd .bd-cta {
  position: relative;
  padding: 130px 0;
  background: var(--bd-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--bd .bd-cta-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--bd .bd-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--bd .bd-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(5, 21, 54, 0.95) 0%, rgba(11, 31, 77, 0.85) 60%, rgba(0, 150, 255, 0.35) 130%),
    radial-gradient(circle at 70% 30%, rgba(51, 173, 255, 0.18), transparent 55%);
}
.sol-page--bd .bd-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  color: #fff;
}
.sol-page--bd .bd-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--bd .bd-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--bd-text-sec);
  margin: 0 0 32px;
  text-wrap: pretty;
}

/* Mini CTA form: estilos compartilhados estão no final do arquivo (.cta-form-mini). */

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .sol-page--bd .bd-hero { min-height: auto; padding: 130px 0 80px; }
  .sol-page--bd .bd-hero-content { grid-template-columns: 1fr; gap: 56px; }
  .sol-page--bd .bd-hero-mock { justify-content: flex-start; }
  .sol-page--bd .bd-mini-card { max-width: 100%; }
  .sol-page--bd .bd-split,
  .sol-page--bd .bd-frente,
  .sol-page--bd .bd-frente--reverse { grid-template-columns: 1fr; gap: 48px; }
  .sol-page--bd .bd-split--photo-left .bd-split-photo-wrap,
  .sol-page--bd .bd-frente--reverse .bd-frente-visual,
  .sol-page--bd .bd-frente-visual { order: 0; }
  .sol-page--bd .bd-split--photo-left .bd-split-text,
  .sol-page--bd .bd-frente--reverse .bd-frente-content,
  .sol-page--bd .bd-frente-content { order: 1; }
  .sol-page--bd .bd-mosaic { grid-template-columns: 1fr; }
  .sol-page--bd .bd-mosaic-card--big { grid-column: 1; }
  .sol-page--bd .bd-benefits-grid { grid-template-columns: 1fr; }
  .sol-page--bd .bd-partners-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .sol-page--bd .bd-hero { padding: 110px 0 70px; }
  .sol-page--bd .bd-hero-h1 { font-size: clamp(26px, 7vw, 34px);}
  .sol-page--bd .bd-hero-ctas .bd-btn { width: 100%; justify-content: center; }
  .sol-page--bd .bd-overview,
  .sol-page--bd .bd-frentes,
  .sol-page--bd .bd-time,
  .sol-page--bd .bd-benefits,
  .sol-page--bd .bd-partners,
  .sol-page--bd .bd-cta { padding: 80px 0; }
  .sol-page--bd .bd-frente { margin-top: 64px; }
  .sol-page--bd .bd-stat-row { gap: 18px; }
  .sol-page--bd .bd-stat-row li { min-width: 100%; }
  .sol-page--bd .bd-frente-floating-card { right: 0; bottom: -10px; min-width: 0; max-width: 90%; }
  .sol-page--bd .bd-mock-compare { gap: 8px; }
  .sol-page--bd .bd-mock-compare-gain { margin-left: 0; }
  .sol-page--bd .bd-time-stat { left: -10px; bottom: -14px; padding: 16px 20px; }
  .sol-page--bd .bd-time-stat-num { font-size: 28px; }
  .sol-page--bd .bd-topo-replicas { flex-direction: column; align-items: center; }
}

/* ===================================================================
   SOLUÇÃO: CIBERSEGURANÇA (.sol-page--cs)
   Identidade: violet/intel como acento de vigilância,
   mockups inspirados em consoles SOC e FortiGate CLI,
   layouts split (foto+texto) e seções imersivas com bg-foto.
   =================================================================== */

.sol-page--cs {
  --cs-cyan: #0096ff;
  --cs-cyan-bright: #33adff;
  --cs-cyan-soft: rgba(0, 150, 255, 0.12);
  --cs-cyan-border: rgba(0, 150, 255, 0.32);
  --cs-mono: var(--font-display);
  --cs-ink: #051536;
  --cs-ink-2: #0b1f4d;
  --cs-text-sec: rgba(255, 255, 255, 0.72);
  --cs-text-mute: rgba(255, 255, 255, 0.5);
  --cs-card-bg: rgba(255, 255, 255, 0.04);
  --cs-card-border: rgba(255, 255, 255, 0.08);
  --cs-line: rgba(8, 39, 100, 0.08);
  --cs-deny: #ef4444;
  --cs-deny-soft: rgba(239, 68, 68, 0.18);
}

/* ---------- Primitivos ---------- */
.sol-page--cs .cs-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cs-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--cs .cs-eyebrow--dark { color: var(--cs-cyan); }

.sol-page--cs .cs-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--cs-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.28);
  animation: cs-pulse 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite;
  flex-shrink: 0;
}
@keyframes cs-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.28); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--cs .cs-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--cs .cs-h2--center { text-align: center; }
.sol-page--cs .cs-h2--light { color: #fff; }
.sol-page--cs .cs-accent {
  background: linear-gradient(135deg, var(--cs-cyan-bright), var(--cs-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--cs .cs-accent-dark {
  background: linear-gradient(135deg, var(--cs-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sol-page--cs .cs-p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 18px;
}
.sol-page--cs .cs-p:last-child { margin-bottom: 0; }

.sol-page--cs .cs-section-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--cs .cs-section-sub--light { color: var(--cs-text-sec); }
.sol-page--cs .cs-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}

.sol-page--cs .cs-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--cs .cs-btn--primary {
  background: linear-gradient(135deg, var(--cs-cyan), var(--cs-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--cs .cs-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.7);
}
.sol-page--cs .cs-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--cs .cs-btn--ghost:hover {
  border-color: var(--cs-cyan-bright);
  color: var(--cs-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--cs .cs-btn--lg { padding: 16px 36px; font-size: 16px; }

/* ---------- HERO IMERSIVO ---------- */
.sol-page--cs .cs-hero {
  position: relative;
  padding: 140px 0 90px;
  background: var(--cs-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--cs .cs-hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--cs .cs-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.sol-page--cs .cs-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(115deg, rgba(5, 21, 54, 0.95) 0%, rgba(5, 21, 54, 0.85) 45%, rgba(11, 31, 77, 0.75) 100%),
    radial-gradient(circle at 80% 25%, rgba(0, 150, 255, 0.28), transparent 50%);
}
.sol-page--cs .cs-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
}
.sol-page--cs .cs-hero-inner {
  position: relative;
  z-index: 3;
}
.sol-page--cs .cs-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--cs-text-mute);
  margin-bottom: 36px;
}
.sol-page--cs .cs-breadcrumb a {
  color: var(--cs-cyan-bright);
  text-decoration: none;
}
.sol-page--cs .cs-breadcrumb a:hover { text-decoration: underline; }
.sol-page--cs .cs-breadcrumb span { opacity: 0.5; }
.sol-page--cs .cs-breadcrumb [aria-current] { opacity: 1; }

.sol-page--cs .cs-hero-content {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  gap: 80px;
  align-items: center;
}
.sol-page--cs .cs-hero-text { max-width: 640px; }
.sol-page--cs .cs-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
.sol-page--cs .cs-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--cs-text-sec);
  margin: 0 0 36px;
  text-wrap: pretty;
}
.sol-page--cs .cs-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Hero mini card */
.sol-page--cs .cs-hero-mock { display: flex; justify-content: flex-end; }
.sol-page--cs .cs-mini-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.7);
  border: 1px solid rgba(51, 173, 255, 0.22);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.6);
  color: #fff;
}
.sol-page--cs .cs-mini-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--cs .cs-mini-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
}
.sol-page--cs .cs-mini-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cs-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--cs .cs-mini-card-tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 14px 16px 4px;
  margin-bottom: 0;
}
.sol-page--cs .cs-mini-tile {
  background: rgba(0, 150, 255, 0.18);
  border: 1px solid var(--cs-cyan-border);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
}
.sol-page--cs .cs-mini-tile-num {
  font-family: var(--cs-mono);
  font-weight: 700;
  font-size: 22px;
  color: var(--cs-cyan-bright);
  line-height: 1;
}
.sol-page--cs .cs-mini-tile-lbl {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cs-text-mute);
  margin-top: 6px;
}
.sol-page--cs .cs-mini-card-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
}
.sol-page--cs .cs-mini-card-row:first-of-type { border-top: none; padding-top: 0; }
.sol-page--cs .cs-mini-label { color: var(--cs-text-sec); }
.sol-page--cs .cs-mini-val {
  font-family: var(--cs-mono);
  font-weight: 600;
  color: #fff;
  font-size: 12px;
}
.sol-page--cs .cs-mini-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--cs .cs-mini-dot--green {
  background: #34d399;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}
.sol-page--cs .cs-mini-dot--amber {
  background: #fbbf24;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.18);
}
.sol-page--cs .cs-mini-dot--red {
  background: var(--cs-deny);
  box-shadow: 0 0 0 3px var(--cs-deny-soft);
}

/* ---------- SPLIT GENÉRICO ---------- */
.sol-page--cs .cs-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sol-page--cs .cs-split--text-left .cs-split-text { order: 0; }
.sol-page--cs .cs-split--text-left .cs-split-visual { order: 1; }
.sol-page--cs .cs-split--photo-left .cs-split-photo-wrap { order: 0; }
.sol-page--cs .cs-split--photo-left .cs-split-text { order: 1; }

/* ---------- OVERVIEW ---------- */
.sol-page--cs .cs-overview {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--cs .cs-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(0, 150, 255, 0.08), transparent 40%);
  pointer-events: none;
}
.sol-page--cs .cs-overview .container { position: relative; z-index: 1; }

.sol-page--cs .cs-stat-row {
  display: flex;
  gap: 32px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}
.sol-page--cs .cs-stat-row li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 18px;
  border-left: 2px solid var(--cs-cyan);
  min-width: 120px;
}
.sol-page--cs .cs-stat-row > li > strong {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  line-height: 1;
}
.sol-page--cs .cs-stat-row > li > span {
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
  line-height: 1.4;
}

/* Mosaico de mockups */
.sol-page--cs .cs-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
  position: relative;
}
.sol-page--cs .cs-mosaic-card--big {
  grid-column: 1 / -1;
}
.sol-page--cs .cs-mosaic-card {
  background: var(--cs-ink);
  color: #fff;
  border-radius: 18px;
  padding: 20px 22px;
  border: 1px solid var(--cs-card-border);
  box-shadow: 0 24px 60px -28px rgba(5, 21, 54, 0.45);
  position: relative;
  overflow: hidden;
}
.sol-page--cs .cs-mosaic-card--wide { grid-column: 1 / -1; }
.sol-page--cs .cs-mosaic-card--log {
  background: linear-gradient(160deg, #0b1f4d 0%, var(--cs-ink) 100%);
}
.sol-page--cs .cs-mosaic-log-body {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 24px;
  align-items: center;
}
.sol-page--cs .cs-mock-compare--stacked {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}
.sol-page--cs .cs-mock-compare--stacked .cs-mock-compare-gain {
  margin-left: 0;
  width: 100%;
  text-align: center;
}

.sol-page--cs .cs-mock-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--cs-card-border);
}
.sol-page--cs .cs-mock-dots { display: flex; gap: 5px; }
.sol-page--cs .cs-mock-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--cs .cs-mock-dots span:nth-child(1) { background: #f87171; }
.sol-page--cs .cs-mock-dots span:nth-child(2) { background: #fbbf24; }
.sol-page--cs .cs-mock-dots span:nth-child(3) { background: #34d399; }
.sol-page--cs .cs-mock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.005em;
  flex: 1;
}
.sol-page--cs .cs-mock-title--mono { font-family: var(--cs-mono); font-weight: 500; }
.sol-page--cs .cs-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cs-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--cs .cs-mock-tag {
  font-family: var(--cs-mono);
  font-size: 11px;
  color: var(--cs-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 3px 8px;
  border-radius: 6px;
}

/* Tiles SOC */
.sol-page--cs .cs-mock-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.sol-page--cs .cs-mock-tile {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(0, 150, 255, 0.16);
  border: 1px solid var(--cs-cyan-border);
  display: flex;
  flex-direction: column;
}
.sol-page--cs .cs-mock-tile-num {
  font-family: var(--cs-mono);
  font-weight: 700;
  font-size: 24px;
  color: var(--cs-cyan-bright);
  line-height: 1;
}
.sol-page--cs .cs-mock-tile-lbl {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cs-text-mute);
  margin-top: 6px;
}

/* Events feed */
.sol-page--cs .cs-mock-events {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sol-page--cs .cs-mock-event {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid var(--cs-card-border);
  font-size: 12px;
  color: var(--cs-text-sec);
}
.sol-page--cs .cs-mock-event:first-of-type { border-top: none; }
.sol-page--cs .cs-mock-event-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sol-page--cs .cs-mock-event-time {
  font-family: var(--cs-mono);
  font-size: 11px;
  color: var(--cs-text-mute);
}

/* Code blocks */
.sol-page--cs .cs-mock-code {
  font-family: var(--cs-mono);
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-x: auto;
}
.sol-page--cs .cs-mock-code--lg { font-size: 13px; line-height: 1.8; }
.sol-page--cs .cs-tk-kw { color: var(--cs-cyan-bright); font-weight: 600; }
.sol-page--cs .cs-tk-fn { color: #fbbf24; }
.sol-page--cs .cs-tk-str { color: #34d399; }
.sol-page--cs .cs-tk-cm { color: rgba(255, 255, 255, 0.4); font-style: italic; }
.sol-page--cs .cs-tk-val { color: #fbbf24; }
.sol-page--cs .cs-tk-deny { color: var(--cs-deny); font-weight: 700; }

.sol-page--cs .cs-mock-compare {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--cs-card-border);
  flex-wrap: wrap;
}
.sol-page--cs .cs-mock-compare-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}
.sol-page--cs .cs-mock-compare-item--bad { color: var(--cs-deny); }
.sol-page--cs .cs-mock-compare-item--good { color: var(--cs-cyan-bright); }
.sol-page--cs .cs-mock-compare-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}
.sol-page--cs .cs-mock-compare-val {
  font-family: var(--cs-mono);
  font-weight: 700;
  font-size: 16px;
}
.sol-page--cs .cs-mock-compare-arrow { color: rgba(255, 255, 255, 0.4); }
.sol-page--cs .cs-mock-compare-gain {
  margin-left: auto;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--cs-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 6px 12px;
  border-radius: 100px;
}
.sol-page--cs .cs-mock-compare--lg .cs-mock-compare-val { font-size: 22px; }

/* Sparkline */
.sol-page--cs .cs-mock-spark-title {
  font-family: var(--cs-mono);
  font-size: 11px;
  color: var(--cs-text-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 8px;
}
.sol-page--cs .cs-mock-spark {
  width: 100%;
  height: 70px;
  display: block;
  color: var(--cs-cyan-bright);
}
.sol-page--cs .cs-mock-spark-val {
  font-family: var(--cs-mono);
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  display: block;
  margin-top: 6px;
}
.sol-page--cs .cs-mock-spark-trend {
  font-size: 12px;
  color: var(--cs-deny);
  margin-left: 6px;
  font-weight: 600;
}

/* ---------- FRENTES (3 splits alternados) ---------- */
.sol-page--cs .cs-frentes {
  background: #fff;
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--cs .cs-frente {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  margin-top: 88px;
}
.sol-page--cs .cs-frente:first-of-type { margin-top: 0; }
.sol-page--cs .cs-frente--reverse .cs-frente-content { order: 0; }
.sol-page--cs .cs-frente--reverse .cs-frente-visual { order: 1; }

.sol-page--cs .cs-frente-num {
  display: inline-flex;
  align-items: center;
  font-family: var(--cs-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cs-cyan);
  margin-bottom: 16px;
}
.sol-page--cs .cs-frente-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--cs .cs-frente-p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 22px;
}
.sol-page--cs .cs-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--cs .cs-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--azul-profundo);
}
.sol-page--cs .cs-checklist svg {
  flex-shrink: 0;
  margin-top: 4px;
  padding: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--cs-cyan-soft);
  color: var(--cs-cyan);
}

.sol-page--cs .cs-frente-visual {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--cs .cs-frente-blob {
  position: absolute;
  inset: -6% -8%;
  background: url('/assets/img/solucoes/forma-frente.svg') no-repeat center / contain;
  opacity: 0.9;
  z-index: 0;
  transform: translate(-7%, -3%) rotate(-3deg);
  pointer-events: none;
}
.sol-page--cs .cs-frente-blob--alt {
  transform: translate(7%, -3%) rotate(2.5deg);
}
.sol-page--cs .cs-frente-blob--time {
  transform: translate(-6%, 4%) rotate(-2deg);
}
.sol-page--cs .cs-frente-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(5, 21, 54, 0.5);
  transform: rotate(0deg);
  transition: transform 0.6s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--cs .cs-frente-photo:hover { transform: rotate(-1deg) scale(1.02); }
.sol-page--cs .cs-frente-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sol-page--cs .cs-frente-floating-card {
  position: absolute;
  z-index: 2;
  bottom: -18px;
  right: -22px;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  box-shadow: 0 24px 50px -10px rgba(5, 21, 54, 0.35), 0 0 0 1px rgba(5, 21, 54, 0.05);
  min-width: 240px;
  font-family: var(--font-display);
}
.sol-page--cs .cs-frente-floating-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
}
.sol-page--cs .cs-frente-floating-row--bold {
  font-family: var(--cs-mono);
  font-weight: 600;
  color: var(--azul-profundo);
  font-size: 15px;
  margin-top: 4px;
  justify-content: space-between;
}
.sol-page--cs .cs-frente-floating-country {
  font-family: var(--cs-mono);
  font-size: 11px;
  color: var(--cs-deny);
  background: var(--cs-deny-soft);
  padding: 2px 8px;
  border-radius: 6px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.sol-page--cs .cs-frente-floating-action {
  margin-top: 6px;
  font-size: 11px;
  color: var(--cs-cyan);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sol-page--cs .cs-frente-floating-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cs-deny);
  font-weight: 700;
}

/* Mockups dentro de cs-frente-visual--mock */
.sol-page--cs .cs-frente-visual--mock { aspect-ratio: auto; }
.sol-page--cs .cs-frente-visual--mock .cs-mock {
  position: relative;
  z-index: 1;
  background: var(--cs-ink);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 28px 70px -20px rgba(5, 21, 54, 0.45);
  color: #fff;
  border: 1px solid var(--cs-card-border);
}

/* Network segmentation topology */
.sol-page--cs .cs-mock--topo .cs-topo {
  padding: 20px 0 10px;
}
.sol-page--cs .cs-topo {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.sol-page--cs .cs-topo-row {
  display: flex;
  justify-content: center;
  width: 100%;
}
.sol-page--cs .cs-topo-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 100px;
  border: 1px solid var(--cs-card-border);
  background: rgba(255, 255, 255, 0.04);
  font-family: var(--cs-mono);
  font-size: 12px;
  color: var(--cs-text-sec);
}
.sol-page--cs .cs-topo-pill--threat {
  border-color: var(--cs-deny);
  background: var(--cs-deny-soft);
  color: #fff;
}
.sol-page--cs .cs-topo-pill--zone {
  border-color: var(--cs-cyan-border);
  background: rgba(0, 150, 255, 0.1);
  color: #fff;
}
.sol-page--cs .cs-topo-node {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 18px;
  border-radius: 12px;
  border: 1px solid var(--cs-cyan-bright);
  background: rgba(51, 173, 255, 0.12);
  min-width: 180px;
  position: relative;
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.08);
}
.sol-page--cs .cs-topo-node--firewall { align-items: center; }
.sol-page--cs .cs-topo-tag {
  font-family: var(--cs-mono);
  font-size: 10px;
  color: var(--cs-cyan-bright);
  letter-spacing: 0.12em;
  font-weight: 600;
}
.sol-page--cs .cs-topo-name {
  font-family: var(--cs-mono);
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}
.sol-page--cs .cs-topo-meta {
  font-family: var(--cs-mono);
  font-size: 11px;
  color: var(--cs-text-mute);
}
.sol-page--cs .cs-topo-lines {
  width: 60%;
  height: 60px;
  display: block;
}
.sol-page--cs .cs-topo-lines--top { height: 40px; }
.sol-page--cs .cs-topo-flow {
  animation: cs-flow 1.6s linear infinite;
}
@keyframes cs-flow {
  to { stroke-dashoffset: -20; }
}
.sol-page--cs .cs-topo-zones {
  display: flex;
  gap: 14px;
  justify-content: center;
  width: 100%;
  flex-wrap: wrap;
}
.sol-page--cs .cs-topo-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  margin-top: 20px;
  border-top: 1px solid var(--cs-card-border);
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--cs-text-sec);
  flex-wrap: wrap;
}

/* ---------- POR TRÁS DA OPERAÇÃO ---------- */
.sol-page--cs .cs-time {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--cs .cs-split-photo-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--cs .cs-split-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(5, 21, 54, 0.55);
}
.sol-page--cs .cs-split-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--cs .cs-time-stat {
  position: absolute;
  z-index: 2;
  bottom: -22px;
  left: -22px;
  background: var(--cs-ink);
  color: #fff;
  border-radius: 18px;
  padding: 22px 28px;
  box-shadow: 0 24px 60px -16px rgba(5, 21, 54, 0.55);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--cs-cyan-border);
}
.sol-page--cs .cs-time-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 36px;
  letter-spacing: -0.02em;
  color: var(--cs-cyan-bright);
  line-height: 1;
}
.sol-page--cs .cs-time-stat-sm { font-size: 22px; opacity: 0.55; margin: 0 2px; }
.sol-page--cs .cs-time-stat-lbl {
  font-family: var(--cs-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cs-text-sec);
  margin-top: 6px;
}

.sol-page--cs .cs-time-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.sol-page--cs .cs-time-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
}
.sol-page--cs .cs-time-list-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--cs-cyan-soft);
  color: var(--cs-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sol-page--cs .cs-time-list strong {
  display: block;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin-bottom: 4px;
}
.sol-page--cs .cs-time-list span {
  display: block;
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
}

/* ---------- BENEFITS (sobre bg-foto) ---------- */
.sol-page--cs .cs-benefits {
  position: relative;
  padding: 120px 0;
  background: var(--cs-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--cs .cs-benefits-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--cs .cs-benefits-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.65);
}
.sol-page--cs .cs-benefits-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 21, 54, 0.95) 0%, rgba(5, 21, 54, 0.88) 100%),
    radial-gradient(circle at 20% 80%, rgba(0, 150, 255, 0.22), transparent 50%);
}
.sol-page--cs .cs-benefits-inner { position: relative; z-index: 2; }
.sol-page--cs .cs-benefits-grid {
  list-style: none;
  padding: 0;
  margin: 56px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.sol-page--cs .cs-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(51, 173, 255, 0.18);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 14px;
  color: #fff;
  font-size: 15px;
  line-height: 1.55;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--cs .cs-benefit:hover {
  background: rgba(51, 173, 255, 0.1);
  border-color: var(--cs-cyan-border);
  transform: translateY(-3px);
}
.sol-page--cs .cs-benefit-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(51, 173, 255, 0.22);
  color: var(--cs-cyan-bright);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* ---------- CASES (editorial proof, light, 2 cards centered) ---------- */
.sol-page--cs .cs-cases {
  position: relative;
  padding: 96px 0 108px;
  background: #ffffff;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--cs .cs-cases-grid-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  pointer-events: none;
}
.sol-page--cs .cs-cases-glow {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 540px;
  height: 540px;
  background: radial-gradient(circle, rgba(0, 150, 255, 0.08) 0%, transparent 65%);
  filter: blur(40px);
  z-index: 0;
  pointer-events: none;
}
.sol-page--cs .cs-cases-inner {
  position: relative;
  z-index: 2;
}
.sol-page--cs .cs-cases-list {
  list-style: none;
  padding: 0;
  margin: 60px auto 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px;
  max-width: 920px;
}
.sol-page--cs .cs-case-card {
  position: relative;
  height: 100%;
  padding: 34px 30px 32px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
  border: 1px solid rgba(8, 39, 100, 0.08);
  box-shadow: 0 10px 28px -16px rgba(8, 39, 100, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s var(--ease, cubic-bezier(0.16, 1, 0.3, 1)), border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--cs .cs-case-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 30px;
  right: 30px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--cs-cyan), transparent);
  opacity: 0.5;
  pointer-events: none;
}
.sol-page--cs .cs-case-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 150, 255, 0.32);
  box-shadow: 0 18px 40px -16px rgba(8, 39, 100, 0.22);
}
.sol-page--cs .cs-case-head {
  display: flex;
  align-items: center;
  gap: 10px 12px;
  padding-bottom: 18px;
  margin-bottom: 26px;
  border-bottom: 1px dashed rgba(8, 39, 100, 0.12);
  flex-wrap: wrap;
}
.sol-page--cs .cs-case-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: -0.02em;
  color: var(--cs-cyan);
  line-height: 1;
  padding-right: 10px;
  border-right: 1px solid rgba(8, 39, 100, 0.16);
}
.sol-page--cs .cs-case-chip {
  font-family: var(--cs-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cs-cyan);
  background: rgba(0, 150, 255, 0.08);
  border: 1px solid rgba(0, 150, 255, 0.18);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--cs .cs-case-where {
  flex-basis: 100%;
  font-family: var(--cs-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.72);
  margin-top: 2px;
  line-height: 1.3;
}
.sol-page--cs .cs-case-body {
  display: flex;
  flex-direction: column;
  gap: 28px;
  flex: 1;
}
.sol-page--cs .cs-case-aside {
  display: flex;
  align-items: center;
  gap: 22px;
}
.sol-page--cs .cs-case-logo-plate {
  position: relative;
  padding: 12px 14px;
  background: #f8f5ed;
  border-radius: 12px;
  border: 1px solid rgba(8, 39, 100, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 112px;
  height: 60px;
}
.sol-page--cs .cs-case-logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sol-page--cs .cs-case-kpi {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.sol-page--cs .cs-case-kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 42px);
  letter-spacing: -0.035em;
  line-height: 0.95;
  background: linear-gradient(135deg, var(--azul-profundo) 0%, var(--cs-cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--cs .cs-case-kpi-unit {
  font-size: 0.55em;
  font-weight: 700;
  margin-left: 1px;
}
.sol-page--cs .cs-case-kpi-lbl {
  font-family: var(--cs-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.78);
  line-height: 1.55;
  max-width: 220px;
}
.sol-page--cs .cs-case-main { position: relative; }
.sol-page--cs .cs-case-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  line-height: 1.22;
}
.sol-page--cs .cs-case-quote {
  position: relative;
  margin: 0 0 22px;
  padding: 4px 0 0 22px;
}
.sol-page--cs .cs-case-quote-mark {
  position: absolute;
  top: -12px;
  left: -2px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  color: var(--cs-cyan);
  opacity: 0.3;
}
.sol-page--cs .cs-case-quote p {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  font-style: italic;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.86);
  margin: 0 0 16px;
}
.sol-page--cs .cs-case-cite {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--cs .cs-case-cite cite {
  font-family: var(--cs-mono);
  font-size: 9.5px;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cs-cyan);
}
.sol-page--cs .cs-case-cite span {
  font-family: var(--font-body);
  font-size: 12.5px;
  color: rgba(8, 39, 100, 0.72);
}
.sol-page--cs .cs-case-stack {
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
}
.sol-page--cs .cs-case-stack-lbl {
  display: block;
  font-family: var(--cs-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cs-cyan);
  margin-bottom: 14px;
}
.sol-page--cs .cs-case-stack-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--cs .cs-case-stack-list li {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(8, 39, 100, 0.82);
  padding: 6px 12px;
  background: rgba(0, 150, 255, 0.05);
  border: 1px solid rgba(0, 150, 255, 0.14);
  border-radius: 7px;
  max-width: 100%;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.sol-page--cs .cs-case-card:hover .cs-case-stack-list li {
  background: rgba(0, 150, 255, 0.09);
  border-color: rgba(0, 150, 255, 0.26);
  color: var(--azul-profundo);
}
.sol-page--cs .cs-cases-foot {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sol-page--cs .cs-btn--ghost-dark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.005em;
  padding: 10px 22px;
  border-radius: 100px;
  background: transparent;
  color: var(--azul-profundo);
  border: 1.5px solid rgba(8, 39, 100, 0.22);
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  text-decoration: none;
}
.sol-page--cs .cs-btn--ghost-dark:hover {
  background: rgba(0, 150, 255, 0.06);
  border-color: var(--cs-cyan);
  color: var(--cs-cyan);
  transform: translateY(-1px);
}

@media (max-width: 980px) {
  .sol-page--cs .cs-cases { padding: 78px 0 86px; }
  .sol-page--cs .cs-cases-list {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 580px;
  }
  .sol-page--cs .cs-case-card { padding: 30px 26px 28px; }
  .sol-page--cs .cs-case-kpi-num { font-size: clamp(28px, 6vw, 36px); }
}
@media (max-width: 640px) {
  .sol-page--cs .cs-cases { padding: 56px 0 64px; }
  .sol-page--cs .cs-case-head { gap: 8px; }
}

/* ---------- PARTNERS ---------- */
.sol-page--cs .cs-partners {
  background: #fff;
  padding: 110px 0;
}
.sol-page--cs .cs-partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
}
.sol-page--cs .cs-partner-card {
  background: var(--offwhite);
  border: 1px solid var(--cs-line);
  border-radius: 20px;
  padding: 36px 32px;
  text-align: center;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--cs .cs-partner-card:hover {
  border-color: var(--cs-cyan-border);
  box-shadow: 0 18px 40px -16px rgba(0, 150, 255, 0.25);
  transform: translateY(-4px);
}
.sol-page--cs .cs-partner-name {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  color: var(--azul-profundo);
  letter-spacing: -0.04em;
  margin-bottom: 14px;
}
.sol-page--cs .cs-partner-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--cs-cyan);
  background: var(--cs-cyan-soft);
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 18px;
}
.sol-page--cs .cs-partner-badge svg { color: var(--cs-cyan); }
.sol-page--cs .cs-partner-desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0;
}

/* ---------- CTA com bg-foto ---------- */
.sol-page--cs .cs-cta {
  position: relative;
  padding: 130px 0;
  background: var(--cs-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--cs .cs-cta-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--cs .cs-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--cs .cs-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(5, 21, 54, 0.95) 0%, rgba(11, 31, 77, 0.85) 60%, rgba(0, 150, 255, 0.4) 130%),
    radial-gradient(circle at 70% 30%, rgba(51, 173, 255, 0.22), transparent 55%);
}
.sol-page--cs .cs-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  color: #fff;
}
.sol-page--cs .cs-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--cs .cs-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--cs-text-sec);
  margin: 0 0 32px;
  text-wrap: pretty;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .sol-page--cs .cs-hero { min-height: auto; padding: 130px 0 80px; }
  .sol-page--cs .cs-hero-content { grid-template-columns: 1fr; gap: 56px; }
  .sol-page--cs .cs-hero-mock { justify-content: flex-start; }
  .sol-page--cs .cs-mini-card { max-width: 100%; }
  .sol-page--cs .cs-split,
  .sol-page--cs .cs-frente,
  .sol-page--cs .cs-frente--reverse { grid-template-columns: 1fr; gap: 48px; }
  .sol-page--cs .cs-split--photo-left .cs-split-photo-wrap,
  .sol-page--cs .cs-frente--reverse .cs-frente-visual,
  .sol-page--cs .cs-frente-visual { order: 0; }
  .sol-page--cs .cs-split--photo-left .cs-split-text,
  .sol-page--cs .cs-frente--reverse .cs-frente-content,
  .sol-page--cs .cs-frente-content { order: 1; }
  .sol-page--cs .cs-mosaic { grid-template-columns: 1fr; }
  .sol-page--cs .cs-mosaic-card--big,
  .sol-page--cs .cs-mosaic-card--wide { grid-column: 1; }
  .sol-page--cs .cs-mosaic-log-body { grid-template-columns: 1fr; gap: 16px; }
  .sol-page--cs .cs-mock-tiles { grid-template-columns: repeat(3, 1fr); }
  .sol-page--cs .cs-benefits-grid { grid-template-columns: 1fr; }
  .sol-page--cs .cs-partners-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .sol-page--cs .cs-hero { padding: 110px 0 70px; }
  .sol-page--cs .cs-hero-h1 { font-size: clamp(26px, 7vw, 34px); }
  .sol-page--cs .cs-hero-ctas .cs-btn { width: 100%; justify-content: center; }
  .sol-page--cs .cs-overview,
  .sol-page--cs .cs-frentes,
  .sol-page--cs .cs-time,
  .sol-page--cs .cs-benefits,
  .sol-page--cs .cs-partners,
  .sol-page--cs .cs-cta { padding: 80px 0; }
  .sol-page--cs .cs-frente { margin-top: 64px; }
  .sol-page--cs .cs-stat-row { gap: 18px; }
  .sol-page--cs .cs-stat-row li { min-width: 100%; }
  .sol-page--cs .cs-frente-floating-card { right: 0; bottom: -10px; min-width: 0; max-width: 90%; }
  .sol-page--cs .cs-mock-compare { gap: 8px; }
  .sol-page--cs .cs-mock-compare-gain { margin-left: 0; }
  .sol-page--cs .cs-mock-tiles { grid-template-columns: 1fr; }
  .sol-page--cs .cs-time-stat { left: -10px; bottom: -14px; padding: 16px 20px; }
  .sol-page--cs .cs-time-stat-num { font-size: 28px; }
  .sol-page--cs .cs-topo-zones { flex-direction: column; align-items: center; }
}



/* ===================================================================
   SOLUÇÃO: IA PARA EMPRESAS PRIVADAS (.sol-page--ia)
   Identidade própria: ciano elétrico como acento técnico,
   mockups inspirados em ferramentas de DBA reais,
   layouts split (foto+texto) e seções imersivas com bg-foto.
   =================================================================== */

.sol-page--ia {
  --ia-cyan: #0096ff;
  --ia-cyan-bright: #33adff;
  --ia-cyan-soft: rgba(0, 150, 255, 0.12);
  --ia-cyan-border: rgba(0, 150, 255, 0.32);
  --ia-mono: var(--font-display);
  --ia-ink: #051536;
  --ia-ink-2: #0b1f4d;
  --ia-text-sec: rgba(255, 255, 255, 0.72);
  --ia-text-mute: rgba(255, 255, 255, 0.5);
  --ia-card-bg: rgba(255, 255, 255, 0.04);
  --ia-card-border: rgba(255, 255, 255, 0.08);
  --ia-line: rgba(8, 39, 100, 0.08);
}

/* ---------- Primitivos ---------- */
.sol-page--ia .ia-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ia-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--ia .ia-eyebrow--dark { color: var(--ia-cyan); }

.sol-page--ia .ia-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ia-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: ia-pulse 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite;
  flex-shrink: 0;
}
@keyframes ia-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--ia .ia-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--ia .ia-h2--center { text-align: center; }
.sol-page--ia .ia-h2--light { color: #fff; }
.sol-page--ia .ia-accent {
  background: linear-gradient(135deg, var(--ia-cyan-bright), var(--ia-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--ia .ia-accent-dark {
  background: linear-gradient(135deg, var(--ia-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sol-page--ia .ia-p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 18px;
}
.sol-page--ia .ia-p:last-child { margin-bottom: 0; }

.sol-page--ia .ia-section-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--ia .ia-section-sub--light { color: var(--ia-text-sec); }
.sol-page--ia .ia-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}

.sol-page--ia .ia-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--ia .ia-btn--primary {
  background: linear-gradient(135deg, var(--ia-cyan), var(--ia-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--ia .ia-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.7);
}
.sol-page--ia .ia-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--ia .ia-btn--ghost:hover {
  border-color: var(--ia-cyan-bright);
  color: var(--ia-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--ia .ia-btn--lg { padding: 16px 36px; font-size: 16px; }

/* ---------- HERO IMERSIVO ---------- */
.sol-page--ia .ia-hero {
  position: relative;
  padding: 140px 0 90px;
  background: var(--ia-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--ia .ia-hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--ia .ia-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.sol-page--ia .ia-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(115deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.82) 45%, rgba(11, 31, 77, 0.7) 100%),
    radial-gradient(circle at 80% 25%, rgba(0, 150, 255, 0.22), transparent 50%);
}
.sol-page--ia .ia-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
}
.sol-page--ia .ia-hero-inner {
  position: relative;
  z-index: 3;
}
.sol-page--ia .ia-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ia-text-mute);
  margin-bottom: 36px;
}
.sol-page--ia .ia-breadcrumb a {
  color: var(--ia-cyan-bright);
  text-decoration: none;
}
.sol-page--ia .ia-breadcrumb a:hover { text-decoration: underline; }
.sol-page--ia .ia-breadcrumb span { opacity: 0.5; }
.sol-page--ia .ia-breadcrumb [aria-current] { opacity: 1; }

.sol-page--ia .ia-hero-content {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  gap: 80px;
  align-items: center;
}
.sol-page--ia .ia-hero-text { max-width: 640px; }
.sol-page--ia .ia-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
.sol-page--ia .ia-hero-h1 .ia-accent { display: inline; }
.sol-page--ia .ia-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ia-text-sec);
  margin: 0 0 36px;
  text-wrap: pretty;
}
.sol-page--ia .ia-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Hero mini card */
.sol-page--ia .ia-hero-mock { display: flex; justify-content: flex-end; }
.sol-page--ia .ia-mini-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.6);
  color: #fff;
  transform: rotate(-2deg);
  transition: transform 0.5s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--ia .ia-mini-card:hover { transform: rotate(0deg) translateY(-4px); }
.sol-page--ia .ia-mini-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.sol-page--ia .ia-mini-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
}
.sol-page--ia .ia-mini-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ia-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--ia .ia-mini-card-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
}
.sol-page--ia .ia-mini-card-row:first-of-type { border-top: none; padding-top: 0; }
.sol-page--ia .ia-mini-label { color: var(--ia-text-sec); }
.sol-page--ia .ia-mini-val {
  font-family: var(--ia-mono);
  font-weight: 600;
  color: #fff;
  font-size: 13px;
}
.sol-page--ia .ia-mini-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--ia .ia-mini-dot--green {
  background: #34d399;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}
.sol-page--ia .ia-mini-dot--amber {
  background: #fbbf24;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.18);
}
.sol-page--ia .ia-mini-card-spark {
  margin-top: 14px;
  color: var(--ia-cyan-bright);
  height: 40px;
}
.sol-page--ia .ia-mini-card-spark svg { width: 100%; height: 100%; display: block; }

/* ---------- SPLIT GENÉRICO ---------- */
.sol-page--ia .ia-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sol-page--ia .ia-split--text-left .ia-split-text { order: 0; }
.sol-page--ia .ia-split--text-left .ia-split-visual { order: 1; }
.sol-page--ia .ia-split--photo-left .ia-split-photo-wrap { order: 0; }
.sol-page--ia .ia-split--photo-left .ia-split-text { order: 1; }

/* ---------- OVERVIEW ---------- */
.sol-page--ia .ia-overview {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(0, 150, 255, 0.08), transparent 40%);
  pointer-events: none;
}
.sol-page--ia .ia-overview .container { position: relative; z-index: 1; }

.sol-page--ia .ia-stat-row {
  display: flex;
  gap: 32px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}
.sol-page--ia .ia-stat-row li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 18px;
  border-left: 2px solid var(--ia-cyan);
  min-width: 120px;
}
.sol-page--ia .ia-stat-row strong {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  line-height: 1;
}
.sol-page--ia .ia-stat-row > li > span {
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
  line-height: 1.4;
}

/* Mosaico de mockups */
.sol-page--ia .ia-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
  position: relative;
}
.sol-page--ia .ia-mosaic-card--big {
  grid-column: 1 / -1;
}
.sol-page--ia .ia-mosaic-card {
  background: var(--ia-ink);
  color: #fff;
  border-radius: 18px;
  padding: 20px 22px;
  border: 1px solid var(--ia-card-border);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.35);
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-mosaic-card--query {
  background: linear-gradient(160deg, #061d3f 0%, var(--ia-ink) 100%);
}
.sol-page--ia .ia-mosaic-card--spark {
  background: linear-gradient(160deg, var(--ia-ink-2) 0%, var(--ia-ink) 100%);
}

.sol-page--ia .ia-mock-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--ia-card-border);
}
.sol-page--ia .ia-mock-dots { display: flex; gap: 5px; }
.sol-page--ia .ia-mock-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--ia .ia-mock-dots span:nth-child(1) { background: #f87171; }
.sol-page--ia .ia-mock-dots span:nth-child(2) { background: #fbbf24; }
.sol-page--ia .ia-mock-dots span:nth-child(3) { background: #34d399; }
.sol-page--ia .ia-mock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.005em;
  flex: 1;
}
.sol-page--ia .ia-mock-title--mono { font-family: var(--ia-mono); font-weight: 500; }
.sol-page--ia .ia-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ia-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--ia .ia-mock-tag {
  font-family: var(--ia-mono);
  font-size: 11px;
  color: var(--ia-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 3px 8px;
  border-radius: 6px;
}
.sol-page--ia .ia-mock-body { display: flex; flex-direction: column; }
.sol-page--ia .ia-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--ia-card-border);
  font-size: 13px;
}
.sol-page--ia .ia-mock-row:first-of-type { border-top: none; padding-top: 0; }

/* SQL code blocks */
.sol-page--ia .ia-mock-code {
  font-family: var(--ia-mono);
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-x: auto;
}
.sol-page--ia .ia-mock-code--lg { font-size: 13px; line-height: 1.8; }
.sol-page--ia .ia-tk-kw { color: var(--ia-cyan-bright); font-weight: 600; }
.sol-page--ia .ia-tk-fn { color: #fbbf24; }
.sol-page--ia .ia-tk-str { color: #34d399; }
.sol-page--ia .ia-tk-cm { color: rgba(255, 255, 255, 0.4); font-style: italic; }

.sol-page--ia .ia-mock-compare {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--ia-card-border);
  flex-wrap: wrap;
}
.sol-page--ia .ia-mock-compare-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}
.sol-page--ia .ia-mock-compare-item--before { color: #f87171; }
.sol-page--ia .ia-mock-compare-item--after { color: var(--ia-cyan-bright); }
.sol-page--ia .ia-mock-compare-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}
.sol-page--ia .ia-mock-compare-val {
  font-family: var(--ia-mono);
  font-weight: 700;
  font-size: 16px;
}
.sol-page--ia .ia-mock-compare-arrow { color: rgba(255, 255, 255, 0.4); }
.sol-page--ia .ia-mock-compare-gain {
  margin-left: auto;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--ia-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 6px 12px;
  border-radius: 100px;
}
.sol-page--ia .ia-mock-compare--lg .ia-mock-compare-val { font-size: 22px; }

/* spark mosaic */
.sol-page--ia .ia-mock-spark-title {
  font-family: var(--ia-mono);
  font-size: 11px;
  color: var(--ia-text-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 8px;
}
.sol-page--ia .ia-mock-spark {
  width: 100%;
  height: 70px;
  display: block;
  color: var(--ia-cyan-bright);
}
.sol-page--ia .ia-mock-spark-val {
  font-family: var(--ia-mono);
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  display: block;
  margin-top: 6px;
}
.sol-page--ia .ia-mock-spark-trend {
  font-size: 12px;
  color: #34d399;
  margin-left: 6px;
  font-weight: 600;
}

/* ---------- FRENTES (3 splits alternados) ---------- */
.sol-page--ia .ia-frentes {
  background: #fff;
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-frente {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  margin-top: 88px;
}
.sol-page--ia .ia-frente:first-of-type { margin-top: 0; }
.sol-page--ia .ia-frente--reverse .ia-frente-content { order: 0; }
.sol-page--ia .ia-frente--reverse .ia-frente-visual { order: 1; }

.sol-page--ia .ia-frente-num {
  display: inline-flex;
  align-items: center;
  font-family: var(--ia-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ia-cyan);
  margin-bottom: 16px;
}
.sol-page--ia .ia-frente-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--ia .ia-frente-p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 22px;
}
.sol-page--ia .ia-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--ia .ia-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--azul-profundo);
}
.sol-page--ia .ia-checklist svg {
  flex-shrink: 0;
  margin-top: 4px;
  padding: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ia-cyan-soft);
  color: var(--ia-cyan);
}

/* Frente visual (photo + blob + floating card) */
.sol-page--ia .ia-frente-visual {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--ia .ia-frente-blob {
  position: absolute;
  inset: -10% -8% -10% -8%;
  background: linear-gradient(135deg, var(--ia-cyan) 0%, var(--azul-medio) 100%);
  border-radius: 62% 38% 47% 53% / 56% 44% 56% 44%;
  filter: blur(0px);
  opacity: 0.88;
  z-index: 0;
  transform: rotate(-3deg);
}
.sol-page--ia .ia-frente-blob--alt {
  background: linear-gradient(135deg, var(--azul-medio) 0%, var(--ia-cyan-bright) 100%);
  border-radius: 48% 52% 36% 64% / 50% 60% 40% 50%;
  transform: rotate(4deg);
}
.sol-page--ia .ia-frente-blob--time {
  background: linear-gradient(160deg, var(--ia-cyan-bright) 0%, var(--azul-medio) 100%);
  border-radius: 56% 44% 60% 40% / 44% 56% 44% 56%;
  transform: rotate(-5deg);
}
.sol-page--ia .ia-frente-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.45);
  transform: rotate(0deg);
  transition: transform 0.6s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--ia .ia-frente-photo:hover { transform: rotate(-1deg) scale(1.02); }
.sol-page--ia .ia-frente-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sol-page--ia .ia-frente-floating-card {
  position: absolute;
  z-index: 2;
  bottom: -18px;
  right: -22px;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  box-shadow: 0 24px 50px -10px rgba(8, 39, 100, 0.3), 0 0 0 1px rgba(8, 39, 100, 0.05);
  min-width: 240px;
  font-family: var(--font-display);
}
.sol-page--ia .ia-frente-floating-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
}
.sol-page--ia .ia-frente-floating-row--bold {
  font-family: var(--ia-mono);
  font-weight: 600;
  color: var(--azul-profundo);
  font-size: 15px;
  margin-top: 4px;
  justify-content: space-between;
}
.sol-page--ia .ia-frente-floating-time {
  color: #f87171;
  font-weight: 700;
}
.sol-page--ia .ia-frente-floating-action {
  margin-top: 6px;
  font-size: 11px;
  color: var(--ia-cyan);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sol-page--ia .ia-frente-floating-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ia-cyan);
  font-weight: 600;
}

/* Mockups dentro de bd-frente-visual--mock */
.sol-page--ia .ia-frente-visual--mock { aspect-ratio: auto; }
.sol-page--ia .ia-frente-visual--mock .ia-mock {
  position: relative;
  z-index: 1;
  background: var(--ia-ink);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 28px 70px -20px rgba(8, 39, 100, 0.4);
  color: #fff;
  border: 1px solid var(--ia-card-border);
}

/* Replication topology */
.sol-page--ia .ia-mock--topo .ia-topo {
  padding: 24px 0 10px;
}
.sol-page--ia .ia-topo {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.sol-page--ia .ia-topo-node {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--ia-cyan-border);
  background: rgba(0, 150, 255, 0.06);
  min-width: 160px;
  position: relative;
}
.sol-page--ia .ia-topo-node--primary {
  border-color: var(--ia-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.08);
}
.sol-page--ia .ia-topo-tag {
  font-family: var(--ia-mono);
  font-size: 10px;
  color: var(--ia-cyan-bright);
  letter-spacing: 0.12em;
  font-weight: 600;
}
.sol-page--ia .ia-topo-tag--replica { color: rgba(255, 255, 255, 0.55); }
.sol-page--ia .ia-topo-name {
  font-family: var(--ia-mono);
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}
.sol-page--ia .ia-topo-meta {
  font-family: var(--ia-mono);
  font-size: 11px;
  color: var(--ia-text-mute);
}
.sol-page--ia .ia-topo-node--replica .ia-mini-dot {
  position: absolute;
  top: 14px;
  right: 14px;
}
.sol-page--ia .ia-topo-lines {
  width: 100%;
  height: 100px;
  display: block;
}
.sol-page--ia .ia-topo-flow {
  animation: ia-flow 1.6s linear infinite;
}
@keyframes ia-flow {
  to { stroke-dashoffset: -20; }
}
.sol-page--ia .ia-topo-replicas {
  display: flex;
  gap: 18px;
  justify-content: center;
  width: 100%;
  flex-wrap: wrap;
}
.sol-page--ia .ia-topo-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  margin-top: 16px;
  border-top: 1px solid var(--ia-card-border);
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--ia-text-sec);
  flex-wrap: wrap;
}

/* ---------- POR TRÁS DA OPERAÇÃO ---------- */
.sol-page--ia .ia-time {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-split-photo-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--ia .ia-split-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.5);
}
.sol-page--ia .ia-split-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--ia .ia-time-stat {
  position: absolute;
  z-index: 2;
  bottom: -22px;
  left: -22px;
  background: var(--ia-ink);
  color: #fff;
  border-radius: 18px;
  padding: 22px 28px;
  box-shadow: 0 24px 60px -16px rgba(8, 39, 100, 0.45);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--ia-cyan-border);
}
.sol-page--ia .ia-time-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 36px;
  letter-spacing: -0.02em;
  color: var(--ia-cyan-bright);
  line-height: 1;
}
.sol-page--ia .ia-time-stat-sm { font-size: 22px; opacity: 0.55; margin: 0 2px; }
.sol-page--ia .ia-time-stat-lbl {
  font-family: var(--ia-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ia-text-sec);
  margin-top: 6px;
}

.sol-page--ia .ia-time-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.sol-page--ia .ia-time-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
}
.sol-page--ia .ia-time-list-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--ia-cyan-soft);
  color: var(--ia-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sol-page--ia .ia-time-list strong {
  display: block;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin-bottom: 4px;
}
.sol-page--ia .ia-time-list span {
  display: block;
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
}

/* ---------- BENEFITS (sobre bg-foto) ---------- */
.sol-page--ia .ia-benefits {
  position: relative;
  padding: 120px 0;
  background: var(--ia-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--ia .ia-benefits-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--ia .ia-benefits-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.7);
}
.sol-page--ia .ia-benefits-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.88) 100%),
    radial-gradient(circle at 20% 80%, rgba(0, 150, 255, 0.2), transparent 50%);
}
.sol-page--ia .ia-benefits-inner { position: relative; z-index: 2; }
.sol-page--ia .ia-benefits-grid {
  list-style: none;
  padding: 0;
  margin: 56px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.sol-page--ia .ia-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(51, 173, 255, 0.15);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 14px;
  color: #fff;
  font-size: 15px;
  line-height: 1.55;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--ia .ia-benefit:hover {
  background: rgba(51, 173, 255, 0.08);
  border-color: var(--ia-cyan-border);
  transform: translateY(-3px);
}
.sol-page--ia .ia-benefit-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(51, 173, 255, 0.18);
  color: var(--ia-cyan-bright);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* ---------- PARTNERS ---------- */
.sol-page--ia .ia-partners {
  background: #fff;
  padding: 110px 0;
}
.sol-page--ia .ia-partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
}
.sol-page--ia .ia-partner-card {
  background: var(--offwhite);
  border: 1px solid var(--ia-line);
  border-radius: 20px;
  padding: 36px 32px;
  text-align: center;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--ia .ia-partner-card:hover {
  border-color: var(--ia-cyan-border);
  box-shadow: 0 18px 40px -16px rgba(0, 150, 255, 0.25);
  transform: translateY(-4px);
}
.sol-page--ia .ia-partner-name {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  color: var(--azul-profundo);
  letter-spacing: -0.04em;
  margin-bottom: 14px;
}
.sol-page--ia .ia-partner-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ia-cyan);
  background: var(--ia-cyan-soft);
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 18px;
}
.sol-page--ia .ia-partner-badge svg { color: var(--ia-cyan); }
.sol-page--ia .ia-partner-desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0;
}

/* ---------- CTA com bg-foto ---------- */
.sol-page--ia .ia-cta {
  position: relative;
  padding: 130px 0;
  background: var(--ia-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--ia .ia-cta-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--ia .ia-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--ia .ia-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(5, 21, 54, 0.95) 0%, rgba(11, 31, 77, 0.85) 60%, rgba(0, 150, 255, 0.35) 130%),
    radial-gradient(circle at 70% 30%, rgba(51, 173, 255, 0.18), transparent 55%);
}
.sol-page--ia .ia-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  color: #fff;
}
.sol-page--ia .ia-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--ia .ia-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ia-text-sec);
  margin: 0 0 32px;
  text-wrap: pretty;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .sol-page--ia .ia-hero { min-height: auto; padding: 130px 0 80px; }
  .sol-page--ia .ia-hero-content { grid-template-columns: 1fr; gap: 56px; }
  .sol-page--ia .ia-hero-mock { justify-content: flex-start; }
  .sol-page--ia .ia-mini-card { max-width: 100%; }
  .sol-page--ia .ia-split,
  .sol-page--ia .ia-frente,
  .sol-page--ia .ia-frente--reverse { grid-template-columns: 1fr; gap: 48px; }
  .sol-page--ia .ia-split--photo-left .ia-split-photo-wrap,
  .sol-page--ia .ia-frente--reverse .ia-frente-visual,
  .sol-page--ia .ia-frente-visual { order: 0; }
  .sol-page--ia .ia-split--photo-left .ia-split-text,
  .sol-page--ia .ia-frente--reverse .ia-frente-content,
  .sol-page--ia .ia-frente-content { order: 1; }
  .sol-page--ia .ia-mosaic { grid-template-columns: 1fr; }
  .sol-page--ia .ia-mosaic-card--big { grid-column: 1; }
  .sol-page--ia .ia-benefits-grid { grid-template-columns: 1fr; }
  .sol-page--ia .ia-partners-grid { grid-template-columns: repeat(2, 1fr); max-width: 760px; }
}
@media (max-width: 640px) {
  .sol-page--ia .ia-partners-grid { grid-template-columns: 1fr; }
  .sol-page--ia .ia-hero { padding: 110px 0 70px; }
  .sol-page--ia .ia-hero-h1 { font-size: clamp(26px, 7vw, 34px);}
  .sol-page--ia .ia-hero-ctas .ia-btn { width: 100%; justify-content: center; }
  .sol-page--ia .ia-overview,
  .sol-page--ia .ia-frentes,
  .sol-page--ia .ia-time,
  .sol-page--ia .ia-benefits,
  .sol-page--ia .ia-partners,
  .sol-page--ia .ia-cta { padding: 80px 0; }
  .sol-page--ia .ia-frente { margin-top: 64px; }
  .sol-page--ia .ia-stat-row { gap: 18px; }
  .sol-page--ia .ia-stat-row li { min-width: 100%; }
  .sol-page--ia .ia-frente-floating-card { right: 0; bottom: -10px; min-width: 0; max-width: 90%; }
  .sol-page--ia .ia-mock-compare { gap: 8px; }
  .sol-page--ia .ia-mock-compare-gain { margin-left: 0; }
  .sol-page--ia .ia-time-stat { left: -10px; bottom: -14px; padding: 16px 20px; }
  .sol-page--ia .ia-time-stat-num { font-size: 28px; }
  .sol-page--ia .ia-topo-replicas { flex-direction: column; align-items: center; }
}


/* ================================================================ */
/* BD + CS — BRIDGE CTA (após as 3 frentes) + BENEFITS INLINE CTA   */
/* ================================================================ */

/* ---------- BRIDGE CTA: IA para Empresas Privadas ---------- */
.sol-page--ia .ia-bridge {
  padding: 50px 0 90px;
  position: relative;
  background: #fff;
}
.sol-page--ia .ia-bridge-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  padding: 44px 48px;
  border-radius: 28px;
  background: linear-gradient(135deg, #082764 0%, #051536 100%);
  border: 1px solid rgba(51, 173, 255, 0.22);
  box-shadow: 0 30px 70px -30px rgba(8, 39, 100, 0.55);
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-bridge-inner::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -8%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(51, 173, 255, 0.28) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--ia .ia-bridge-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(51, 173, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(51, 173, 255, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events: none;
}
.sol-page--ia .ia-bridge-text {
  position: relative;
  z-index: 2;
  max-width: 680px;
}
.sol-page--ia .ia-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  color: #fff;
  margin: 14px 0 10px;
  line-height: 1.22;
  letter-spacing: -0.01em;
}
.sol-page--ia .ia-bridge-p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
  margin: 0;
}
.sol-page--ia .ia-bridge-inner .ia-btn {
  position: relative;
  z-index: 2;
}

/* ---------- BENEFITS INLINE CTA: IA para Empresas Privadas ---------- */
.sol-page--ia .ia-benefits-cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.sol-page--ia .ia-benefits-cta-text {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 600;
  color: #fff;
  margin: 0;
  letter-spacing: -0.005em;
  max-width: 640px;
}

/* ---------- Responsivo: bridge CTA IA ---------- */
@media (max-width: 820px) {
  .sol-page--ia .ia-bridge { padding: 30px 0 60px; }
  .sol-page--ia .ia-bridge-inner {
    grid-template-columns: 1fr;
    padding: 32px 24px;
    gap: 28px;
    border-radius: 22px;
  }
  .sol-page--ia .ia-bridge-inner .ia-btn { width: 100%; justify-content: center; }
  .sol-page--ia .ia-benefits-cta { margin-top: 40px; gap: 16px; }
  .sol-page--ia .ia-benefits-cta .ia-btn { width: 100%; justify-content: center; }
}



/* ===================================================================
   IA-PRIVADO — VARIAÇÕES sobre o template BD
   Sobrescritas e adições que diferenciam o layout das demais soluções
   sem quebrar a paleta, fontes e regras de contraste.
   =================================================================== */

/* ---------- HERO MOCK: card de inferência ao vivo (substitui mini-card) ---------- */
.sol-page--ia .ia-infer-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 20px;
  color: #fff;
}
.sol-page--ia .ia-infer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--ia .ia-infer-title {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}
.sol-page--ia .ia-infer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid rgba(51, 173, 255, 0.32);
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ia-cyan-bright);
}
.sol-page--ia .ia-infer-block {
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  position: relative;
}
.sol-page--ia .ia-infer-block-label {
  display: block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 8px;
}
.sol-page--ia .ia-infer-block-text {
  font-family: var(--font-display);
  font-size: 12.5px;
  color: #fff;
  line-height: 1.4;
  font-weight: 500;
}
.sol-page--ia .ia-infer-block-text strong { color: var(--ia-cyan-bright); font-weight: 600; }
.sol-page--ia .ia-infer-arrow {
  display: flex;
  justify-content: center;
  padding: 8px 0;
  color: var(--ia-cyan-bright);
  opacity: 0.5;
  font-size: 14px;
  line-height: 1;
}
.sol-page--ia .ia-infer-arrow span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: lowercase;
  color: rgba(51, 173, 255, 0.55);
}
.sol-page--ia .ia-infer-arrow span::before,
.sol-page--ia .ia-infer-arrow span::after {
  content: "";
  display: inline-block;
  height: 1px;
  width: 22px;
  background: rgba(51, 173, 255, 0.3);
}
.sol-page--ia .ia-infer-model {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: rgba(51, 173, 255, 0.10);
  border: 1px solid var(--ia-cyan-border);
  border-radius: 12px;
}
.sol-page--ia .ia-infer-model-name {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  color: var(--ia-cyan-bright);
  letter-spacing: 0.02em;
}
.sol-page--ia .ia-infer-model-meta {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.04em;
}
.sol-page--ia .ia-infer-output { margin-top: 12px; }
.sol-page--ia .ia-infer-output-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.sol-page--ia .ia-infer-output-lbl {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
}
.sol-page--ia .ia-infer-output-val {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1;
}
.sol-page--ia .ia-infer-output-val span { font-size: 0.6em; color: var(--ia-cyan-bright); margin-left: 2px; }
.sol-page--ia .ia-infer-bar {
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
  margin-bottom: 10px;
}
.sol-page--ia .ia-infer-bar-fill {
  position: absolute;
  inset: 0 13% 0 0;
  background: linear-gradient(90deg, var(--ia-cyan), var(--ia-cyan-bright));
  border-radius: 3px;
  box-shadow: 0 0 12px rgba(51, 173, 255, 0.5);
}
.sol-page--ia .ia-infer-factors {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
  margin: 0;
  padding: 8px 0 0;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
}
.sol-page--ia .ia-infer-factors strong { color: rgba(255, 255, 255, 0.78); font-weight: 600; }

/* ---------- MANIFESTO DIAGNÓSTICO (substitui overview) ---------- */
.sol-page--ia .ia-manifesto-section {
  padding: 100px 0 80px;
  background: var(--offwhite, #fafbfc);
  position: relative;
}
.sol-page--ia .ia-manifesto-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.sol-page--ia .ia-manifesto-section .container { position: relative; z-index: 1; }
.sol-page--ia .ia-manifesto-head {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: end;
  margin-bottom: 56px;
}
.sol-page--ia .ia-manifesto-head .ia-h2 { margin: 0; }
.sol-page--ia .ia-manifesto-head-aside {
  font-size: 15px;
  line-height: 1.65;
  color: var(--azul-profundo);
  opacity: 0.72;
  margin: 0;
  max-width: 540px;
}
.sol-page--ia .ia-manifesto-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.sol-page--ia .ia-manifesto-item {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  padding: 28px 32px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 16px;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--ia .ia-manifesto-item:hover {
  border-color: rgba(51, 173, 255, 0.32);
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.18);
}
.sol-page--ia .ia-manifesto-tag {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 4px;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--ia-cyan);
  text-transform: uppercase;
}
.sol-page--ia .ia-manifesto-tag::before {
  content: "";
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(51, 173, 255, 0.12);
  border: 1px solid var(--ia-cyan-border);
  margin-bottom: 10px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2306b6d4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='9' x2='12' y2='13'/><line x1='12' y1='17' x2='12.01' y2='17'/><path d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/></svg>");
  background-position: center;
  background-repeat: no-repeat;
}
.sol-page--ia .ia-manifesto-title {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 0 0 8px;
  line-height: 1.25;
  letter-spacing: -0.012em;
}
.sol-page--ia .ia-manifesto-text {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(8, 39, 100, 0.68);
  margin: 0;
}

/* ---------- PIPELINE: 3 frentes stacked com conector ---------- */
.sol-page--ia .ia-pipeline {
  padding: 100px 0;
  position: relative;
  background: #fff;
}
.sol-page--ia .ia-pipeline::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.sol-page--ia .ia-pipeline .container { position: relative; z-index: 1; }
.sol-page--ia .ia-pipeline-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 56px;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
.sol-page--ia .ia-step {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 28px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 50px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  z-index: 1;
  transition: transform 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--ia .ia-step:hover { transform: translateY(-3px); }
.sol-page--ia .ia-step + .ia-step { margin-top: 36px; }
.sol-page--ia .ia-step::before {
  /* connector vertical entre steps */
  content: "";
  position: absolute;
  top: -36px;
  left: 40px;
  height: 36px;
  width: 2px;
  background: linear-gradient(180deg, transparent 0%, var(--ia-cyan) 50%, transparent 100%);
  z-index: 0;
}
.sol-page--ia .ia-step:first-of-type::before { display: none; }
.sol-page--ia .ia-step-num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #082764 0%, #051536 100%);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 800;
  padding: 36px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-step-num::before {
  content: "";
  position: absolute;
  top: -20%;
  left: -30%;
  width: 200%;
  height: 80%;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.35) 0%, transparent 60%);
  pointer-events: none;
}
.sol-page--ia .ia-step-num-val {
  font-size: 44px;
  letter-spacing: -0.04em;
  line-height: 1;
  background: linear-gradient(135deg, var(--ia-cyan-bright), var(--ia-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  position: relative;
  z-index: 1;
}
.sol-page--ia .ia-step-num-lbl {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  margin-top: 6px;
  position: relative;
  z-index: 1;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  padding: 6px 0;
}
.sol-page--ia .ia-step-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
}
.sol-page--ia .ia-step-content {
  padding: 32px 36px 32px 0;
}
.sol-page--ia .ia-step-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ia-cyan);
  margin-bottom: 14px;
}
.sol-page--ia .ia-step-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h4);
  line-height: 1.18;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 14px;
  text-wrap: balance;
}
.sol-page--ia .ia-step-p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.65);
  margin: 0 0 18px;
}
.sol-page--ia .ia-step-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--ia .ia-step-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--azul-profundo);
}
.sol-page--ia .ia-step-list svg {
  flex-shrink: 0;
  margin-top: 3px;
  width: 18px;
  height: 18px;
  padding: 3px;
  background: rgba(51, 173, 255, 0.12);
  color: var(--ia-cyan);
  border-radius: 50%;
}
.sol-page--ia .ia-step-visual {
  background: linear-gradient(135deg, #082764 0%, #051536 100%);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-step-visual::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 80%;
  height: 80%;
  background: radial-gradient(circle, rgba(51, 173, 255, 0.18) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--ia .ia-step-visual > * { position: relative; z-index: 1; }
.sol-page--ia .ia-step-visual--photo { padding: 0; background: var(--ia-ink); }
.sol-page--ia .ia-step-visual--photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  min-height: 300px;
}
.sol-page--ia .ia-step-visual--photo .ia-step-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 21, 54, 0.05) 0%, rgba(5, 21, 54, 0.4) 100%);
  z-index: 1;
}
.sol-page--ia .ia-step-visual--photo .ia-step-photo-tag {
  position: absolute;
  bottom: 18px;
  left: 18px;
  z-index: 2;
  font-family: var(--font-display);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ia-cyan-bright);
  background: rgba(10, 18, 40, 0.7);
  padding: 6px 12px;
  border-radius: 4px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* Mock-specific inside step */
.sol-page--ia .ia-step-mock-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--ia .ia-step-mock-title {
  font-family: var(--font-display);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sol-page--ia .ia-step-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid var(--ia-cyan-border);
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ia-cyan-bright);
}
.sol-page--ia .ia-step-mock-stat {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 6px 0 14px;
}
.sol-page--ia .ia-step-mock-stat-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 36px;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
}
.sol-page--ia .ia-step-mock-stat-unit {
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--ia-cyan-bright);
  font-weight: 600;
}
.sol-page--ia .ia-step-mock-stat-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.sol-page--ia .ia-step-mock-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}
.sol-page--ia .ia-step-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 11px;
}
.sol-page--ia .ia-step-mock-row-lbl { color: rgba(255, 255, 255, 0.65); }
.sol-page--ia .ia-step-mock-row-val { color: #fff; font-weight: 600; }
.sol-page--ia .ia-step-mock-row .ia-mini-dot { width: 7px; height: 7px; }
.sol-page--ia .ia-step-mock-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}
.sol-page--ia .ia-step-mock-foot strong { color: var(--ia-cyan-bright); font-weight: 600; }

/* SVG chart variant */
.sol-page--ia .ia-step-mock-chart-svg {
  width: 100%;
  height: 110px;
  display: block;
  margin: 10px 0;
}
.sol-page--ia .ia-step-mock-legend {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
}
.sol-page--ia .ia-step-mock-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sol-page--ia .ia-step-mock-legend-dot {
  display: inline-block;
  width: 10px;
  height: 2px;
}

/* Governance pipeline visualization */
.sol-page--ia .ia-step-gov-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin: 10px 0 14px;
}
.sol-page--ia .ia-step-gov-stage {
  padding: 10px 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 9px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  position: relative;
}
.sol-page--ia .ia-step-gov-stage--active {
  background: rgba(51, 173, 255, 0.12);
  border-color: var(--ia-cyan-border);
  color: var(--ia-cyan-bright);
  font-weight: 700;
}
.sol-page--ia .ia-step-gov-stage span {
  display: block;
  font-family: var(--font-display);
  font-size: 14px;
  color: #fff;
  margin-top: 4px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.sol-page--ia .ia-step-gov-stage--active span { color: var(--ia-cyan-bright); }
.sol-page--ia .ia-step-gov-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.sol-page--ia .ia-step-gov-check {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.04em;
}
.sol-page--ia .ia-step-gov-check svg { color: var(--ia-ok, #34d399); flex-shrink: 0; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 900px) {
  .sol-page--ia .ia-manifesto-head {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
  }
  .sol-page--ia .ia-manifesto-grid { grid-template-columns: 1fr; }
  .sol-page--ia .ia-step { grid-template-columns: 64px 1fr; }
  .sol-page--ia .ia-step-num { padding: 20px 0; }
  .sol-page--ia .ia-step-num-val { font-size: 32px; }
  .sol-page--ia .ia-step-body { grid-template-columns: 1fr; }
  .sol-page--ia .ia-step-content { padding: 24px 24px 28px; order: 2; }
  .sol-page--ia .ia-step-visual { padding: 20px; min-height: 220px; order: 1; }
  .sol-page--ia .ia-step-visual--photo { min-height: 220px; }
  .sol-page--ia .ia-step-visual--photo img { min-height: 220px; }
  .sol-page--ia .ia-step::before { left: 32px; }
}

@media (max-width: 600px) {
  .sol-page--ia .ia-manifesto-section { padding: 70px 0 60px; }
  .sol-page--ia .ia-manifesto-item { padding: 22px 22px; grid-template-columns: 48px 1fr; gap: 14px; }
  .sol-page--ia .ia-manifesto-tag { font-size: 10px; padding-top: 2px; }
  .sol-page--ia .ia-manifesto-tag::before { width: 24px; height: 24px; margin-bottom: 8px; }
  .sol-page--ia .ia-pipeline { padding: 70px 0; }
  .sol-page--ia .ia-step { grid-template-columns: 48px 1fr; }
  .sol-page--ia .ia-step-num-val { font-size: 26px; }
  .sol-page--ia .ia-step-num-lbl { font-size: 9px; }
  .sol-page--ia .ia-step::before { left: 24px; }
  .sol-page--ia .ia-step + .ia-step { margin-top: 28px; }
  .sol-page--ia .ia-step::before { top: -28px; height: 28px; }
  .sol-page--ia .ia-infer-card { padding: 16px; max-width: 100%; }
  .sol-page--ia .ia-infer-output-val { font-size: 18px; }
}



/* ===================================================================
   IA-PRIVADO — MOCKUPS REPAGINADOS + ANIMAÇÕES
   3 mockups (hero inference card, predictive chart, governance lifecycle)
   ganham animações sutis para dar dinamismo. Tudo respeita
   prefers-reduced-motion.
   =================================================================== */

/* ============ KEYFRAMES COMPARTILHADAS ============ */
@keyframes ia-scan {
  0% { transform: translateX(-110%); }
  60% { transform: translateX(110%); }
  100% { transform: translateX(110%); }
}
@keyframes ia-flow-dash {
  to { stroke-dashoffset: -16; }
}
@keyframes ia-soft-pulse {
  0%, 100% { opacity: 0.92; }
  50% { opacity: 0.55; }
}
@keyframes ia-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(51, 173, 255, 0.42); }
  50% { box-shadow: 0 0 0 6px rgba(51, 173, 255, 0); }
}
@keyframes ia-count-tick {
  0%, 95%, 100% { opacity: 1; }
  96%, 99% { opacity: 0.6; }
}

/* ============ HERO INFER CARD — repaginação ============ */
.sol-page--ia .ia-infer-block {
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-infer-block::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(51, 173, 255, 0.12) 45%,
    rgba(51, 173, 255, 0.22) 50%,
    rgba(51, 173, 255, 0.12) 55%,
    transparent 100%);
  animation: ia-scan 3s ease-in-out infinite;
  animation-delay: 0.4s;
  pointer-events: none;
}
.sol-page--ia .ia-infer-arrow {
  position: relative;
}
.sol-page--ia .ia-infer-arrow span::before,
.sol-page--ia .ia-infer-arrow span::after {
  background: repeating-linear-gradient(90deg,
    var(--ia-cyan-bright) 0,
    var(--ia-cyan-bright) 4px,
    transparent 4px,
    transparent 8px);
  background-size: 200% 100%;
  animation: ia-arrow-march 1.4s linear infinite;
  height: 1.5px;
}
@keyframes ia-arrow-march {
  0% { background-position: 0 0; }
  100% { background-position: -16px 0; }
}

.sol-page--ia .ia-infer-model {
  position: relative;
  overflow: hidden;
}
.sol-page--ia .ia-infer-model::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(51, 173, 255, 0.10) 45%,
    rgba(51, 173, 255, 0.18) 50%,
    rgba(51, 173, 255, 0.10) 55%,
    transparent 100%);
  animation: ia-scan 2.6s ease-in-out infinite;
  pointer-events: none;
}
.sol-page--ia .ia-infer-model-meta { position: relative; z-index: 1; }
.sol-page--ia .ia-infer-model-name { position: relative; z-index: 1; }

/* Bar fill animation (triggered on .in-view) */
.sol-page--ia .ia-infer-bar { overflow: hidden; }
.sol-page--ia .ia-infer-bar-fill {
  inset: 0 100% 0 0;  /* start collapsed */
  transition: inset 1.6s 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}
.sol-page--ia .ia-infer-bar-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
  animation: ia-scan 2.4s ease-in-out infinite;
  animation-delay: 2s;
}
.sol-page--ia .reveal.in-view .ia-infer-bar-fill[data-fill="87"] { inset: 0 13% 0 0; }
.sol-page--ia .reveal.in-view .ia-infer-bar-fill[data-fill="94"] { inset: 0 6% 0 0; }

.sol-page--ia .ia-infer-output-val { position: relative; }
.sol-page--ia .ia-infer-output-val::after {
  content: "";
  position: absolute;
  inset: -6px -8px;
  border-radius: 8px;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.18), transparent 70%);
  filter: blur(8px);
  z-index: -1;
  animation: ia-soft-pulse 3s ease-in-out infinite;
}

.sol-page--ia .ia-infer-conf {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  margin-bottom: 12px;
  padding: 3px 9px;
  background: rgba(52, 211, 153, 0.10);
  border: 1px solid rgba(52, 211, 153, 0.30);
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #34d399;
}
.sol-page--ia .ia-infer-conf-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
  animation: ia-glow 2s ease-in-out infinite;
}

/* ============ STEP 02 — PREDICTIVE CHART ============ */
.sol-page--ia .ia-step-mock-stat-num {
  position: relative;
  display: inline-block;
}
.sol-page--ia .ia-step-mock-stat-num::after {
  content: "";
  position: absolute;
  inset: -8px -12px;
  border-radius: 12px;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.16), transparent 70%);
  filter: blur(10px);
  z-index: -1;
  animation: ia-soft-pulse 3s ease-in-out infinite;
}

.sol-page--ia .ia-step-mock-chart-svg .ia-chart-hist {
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  transition: stroke-dashoffset 1.8s 0.2s cubic-bezier(0.65, 0, 0.35, 1);
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-line {
  stroke-dasharray: 4 4;
  stroke-dashoffset: 0;
  opacity: 0;
  transition: opacity 0.5s 1.6s ease-out;
  animation: ia-flow-dash 1.4s linear infinite;
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-area {
  opacity: 0;
  transition: opacity 0.8s 1.8s ease-out;
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-line {
  opacity: 0;
  transition: opacity 0.4s 1.4s ease-out;
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-dot {
  opacity: 0;
  transition: opacity 0.4s 1.5s ease-out;
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-dot circle:first-child {
  transform-origin: center;
  transform-box: fill-box;
  animation: ia-dot-pulse 2.4s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes ia-dot-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(2.4); opacity: 0; }
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-label {
  opacity: 0;
  transition: opacity 0.4s 1.7s ease-out;
}
.sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-end-pill {
  opacity: 0;
  transition: opacity 0.5s 2.1s ease-out;
}

.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-hist {
  stroke-dashoffset: 0;
}
.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-pred-line,
.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-pred-area,
.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-today-line,
.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-today-dot,
.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-today-label,
.sol-page--ia .reveal.in-view .ia-step-mock-chart-svg .ia-chart-pred-end-pill {
  opacity: 1;
}

/* ============ STEP 03 — GOVERNANCE LIFECYCLE ============ */
.sol-page--ia .ia-step-gov-flow {
  position: relative;
  grid-template-columns: 1fr 18px 1fr 18px 1fr 18px 1fr;
  gap: 0;
  align-items: stretch;
}
.sol-page--ia .ia-step-gov-stage {
  padding: 12px 8px;
  position: relative;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  opacity: 0;
  transform: translateY(6px);
}
.sol-page--ia .ia-step-gov-stage span {
  font-size: 16px;
  margin-top: 6px;
}
.sol-page--ia .ia-step-gov-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(51, 173, 255, 0.42);
  font-size: 14px;
  line-height: 1;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--ia .ia-step-gov-stage::after {
  content: "✓";
  position: absolute;
  top: -6px;
  right: -6px;
  width: 16px;
  height: 16px;
  background: #34d399;
  color: var(--ia-ink);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s 0.3s ease-out;
  border: 2px solid var(--ia-ink);
}
.sol-page--ia .ia-step-gov-stage--active::after {
  background: var(--ia-cyan-bright);
  content: "▶";
  animation: ia-glow 2s ease-in-out infinite;
}
.sol-page--ia .reveal.in-view .ia-step-gov-stage { opacity: 1; transform: translateY(0); }
.sol-page--ia .reveal.in-view .ia-step-gov-stage:nth-child(1) { transition-delay: 0.2s; }
.sol-page--ia .reveal.in-view .ia-step-gov-stage:nth-child(3) { transition-delay: 0.45s; }
.sol-page--ia .reveal.in-view .ia-step-gov-stage:nth-child(5) { transition-delay: 0.7s; }
.sol-page--ia .reveal.in-view .ia-step-gov-stage:nth-child(7) { transition-delay: 0.95s; }
.sol-page--ia .reveal.in-view .ia-step-gov-stage::after { opacity: 1; }
.sol-page--ia .reveal.in-view .ia-step-gov-arrow { opacity: 1; }
.sol-page--ia .reveal.in-view .ia-step-gov-arrow:nth-child(2) { transition-delay: 0.35s; }
.sol-page--ia .reveal.in-view .ia-step-gov-arrow:nth-child(4) { transition-delay: 0.6s; }
.sol-page--ia .reveal.in-view .ia-step-gov-arrow:nth-child(6) { transition-delay: 0.85s; }

.sol-page--ia .ia-step-gov-check {
  opacity: 0;
  transform: translateY(6px);
  transition: all 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--ia .reveal.in-view .ia-step-gov-check { opacity: 1; transform: translateY(0); }
.sol-page--ia .reveal.in-view .ia-step-gov-check:nth-child(1) { transition-delay: 1.2s; }
.sol-page--ia .reveal.in-view .ia-step-gov-check:nth-child(2) { transition-delay: 1.35s; }
.sol-page--ia .reveal.in-view .ia-step-gov-check:nth-child(3) { transition-delay: 1.5s; }
.sol-page--ia .reveal.in-view .ia-step-gov-check:nth-child(4) { transition-delay: 1.65s; }

.sol-page--ia .ia-step-gov-check svg {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--ia .ia-step-gov-check:hover svg { transform: scale(1.15); }

.sol-page--ia .ia-step-mock-foot {
  opacity: 0;
  transform: translateY(4px);
  transition: all 0.5s 1.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--ia .reveal.in-view .ia-step-mock-foot { opacity: 1; transform: translateY(0); }

.sol-page--ia .ia-step-mock-foot strong { position: relative; }
.sol-page--ia .ia-step-mock-foot .ia-foot-live::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ia-cyan-bright);
  margin-right: 6px;
  vertical-align: 1px;
  box-shadow: 0 0 0 0 rgba(51, 173, 255, 0.6);
  animation: ia-glow 2s ease-in-out infinite;
}

/* ============ PREFERS-REDUCED-MOTION ============ */
@media (prefers-reduced-motion: reduce) {
  .sol-page--ia .ia-infer-block::after,
  .sol-page--ia .ia-infer-model::after,
  .sol-page--ia .ia-infer-arrow span::before,
  .sol-page--ia .ia-infer-arrow span::after,
  .sol-page--ia .ia-infer-bar-fill::after,
  .sol-page--ia .ia-infer-output-val::after,
  .sol-page--ia .ia-infer-conf-dot,
  .sol-page--ia .ia-step-mock-stat-num::after,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-line,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-dot circle:first-child,
  .sol-page--ia .ia-step-gov-stage--active::after,
  .sol-page--ia .ia-step-mock-foot .ia-foot-live::before {
    animation: none !important;
  }
  .sol-page--ia .ia-infer-bar-fill,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-hist,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-line,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-area,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-line,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-dot,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-today-label,
  .sol-page--ia .ia-step-mock-chart-svg .ia-chart-pred-end-pill,
  .sol-page--ia .ia-step-gov-stage,
  .sol-page--ia .ia-step-gov-arrow,
  .sol-page--ia .ia-step-gov-check,
  .sol-page--ia .ia-step-mock-foot {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
  .sol-page--ia .ia-infer-bar-fill[data-fill="87"] { inset: 0 13% 0 0 !important; }
}

/* ===================================================================
   SOLUÇÃO: IA PARA GOVERNO (.sol-page--gv)
   Identidade própria: ciano elétrico como acento técnico,
   mockups inspirados em ferramentas de DBA reais,
   layouts split (foto+texto) e seções imersivas com bg-foto.
   =================================================================== */

.sol-page--gv {
  --gv-cyan: #0096ff;
  --gv-cyan-bright: #33adff;
  --gv-cyan-soft: rgba(0, 150, 255, 0.12);
  --gv-cyan-border: rgba(0, 150, 255, 0.32);
  --gv-mono: var(--font-display);
  --gv-ink: #051536;
  --gv-ink-2: #0b1f4d;
  --gv-text-sec: rgba(255, 255, 255, 0.72);
  --gv-text-mute: rgba(255, 255, 255, 0.5);
  --gv-card-bg: rgba(255, 255, 255, 0.04);
  --gv-card-border: rgba(255, 255, 255, 0.08);
  --gv-line: rgba(8, 39, 100, 0.08);
}

/* ---------- Primitivos ---------- */
.sol-page--gv .gv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gv-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--gv .gv-eyebrow--dark { color: var(--gv-cyan); }

.sol-page--gv .gv-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gv-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: gv-pulse 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite;
  flex-shrink: 0;
}
@keyframes gv-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--gv .gv-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--gv .gv-h2--center { text-align: center; }
.sol-page--gv .gv-h2--light { color: #fff; }
.sol-page--gv .gv-accent {
  background: linear-gradient(135deg, var(--gv-cyan-bright), var(--gv-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--gv .gv-accent-dark {
  background: linear-gradient(135deg, var(--gv-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sol-page--gv .gv-p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 18px;
}
.sol-page--gv .gv-p:last-child { margin-bottom: 0; }

.sol-page--gv .gv-section-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--gv .gv-section-sub--light { color: var(--gv-text-sec); }
.sol-page--gv .gv-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}

.sol-page--gv .gv-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--gv .gv-btn--primary {
  background: linear-gradient(135deg, var(--gv-cyan), var(--gv-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--gv .gv-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.7);
}
.sol-page--gv .gv-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--gv .gv-btn--ghost:hover {
  border-color: var(--gv-cyan-bright);
  color: var(--gv-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--gv .gv-btn--lg { padding: 16px 36px; font-size: 16px; }

/* ---------- HERO IMERSIVO ---------- */
.sol-page--gv .gv-hero {
  position: relative;
  padding: 140px 0 90px;
  background: var(--gv-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gv .gv-hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--gv .gv-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.sol-page--gv .gv-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(115deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.82) 45%, rgba(11, 31, 77, 0.7) 100%),
    radial-gradient(circle at 80% 25%, rgba(0, 150, 255, 0.22), transparent 50%);
}
.sol-page--gv .gv-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
}
.sol-page--gv .gv-hero-inner {
  position: relative;
  z-index: 3;
}
.sol-page--gv .gv-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--gv-text-mute);
  margin-bottom: 36px;
}
.sol-page--gv .gv-breadcrumb a {
  color: var(--gv-cyan-bright);
  text-decoration: none;
}
.sol-page--gv .gv-breadcrumb a:hover { text-decoration: underline; }
.sol-page--gv .gv-breadcrumb span { opacity: 0.5; }
.sol-page--gv .gv-breadcrumb [aria-current] { opacity: 1; }

.sol-page--gv .gv-hero-content {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  gap: 80px;
  align-items: center;
}
.sol-page--gv .gv-hero-text { max-width: 640px; }
.sol-page--gv .gv-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
.sol-page--gv .gv-hero-h1 .gv-accent { display: inline; }
.sol-page--gv .gv-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--gv-text-sec);
  margin: 0 0 36px;
  text-wrap: pretty;
}
.sol-page--gv .gv-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Hero mini card */
.sol-page--gv .gv-hero-mock { display: flex; justify-content: flex-end; }
.sol-page--gv .gv-mini-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.6);
  color: #fff;
  transform: rotate(-2deg);
  transition: transform 0.5s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--gv .gv-mini-card:hover { transform: rotate(0deg) translateY(-4px); }
.sol-page--gv .gv-mini-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.sol-page--gv .gv-mini-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
}
.sol-page--gv .gv-mini-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gv-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--gv .gv-mini-card-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
}
.sol-page--gv .gv-mini-card-row:first-of-type { border-top: none; padding-top: 0; }
.sol-page--gv .gv-mini-label { color: var(--gv-text-sec); }
.sol-page--gv .gv-mini-val {
  font-family: var(--gv-mono);
  font-weight: 600;
  color: #fff;
  font-size: 13px;
}
.sol-page--gv .gv-mini-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--gv .gv-mini-dot--green {
  background: #34d399;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}
.sol-page--gv .gv-mini-dot--amber {
  background: #fbbf24;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.18);
}
.sol-page--gv .gv-mini-card-spark {
  margin-top: 14px;
  color: var(--gv-cyan-bright);
  height: 40px;
}
.sol-page--gv .gv-mini-card-spark svg { width: 100%; height: 100%; display: block; }

/* ---------- SPLIT GENÉRICO ---------- */
.sol-page--gv .gv-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sol-page--gv .gv-split--text-left .gv-split-text { order: 0; }
.sol-page--gv .gv-split--text-left .gv-split-visual { order: 1; }
.sol-page--gv .gv-split--photo-left .gv-split-photo-wrap { order: 0; }
.sol-page--gv .gv-split--photo-left .gv-split-text { order: 1; }

/* ---------- OVERVIEW ---------- */
.sol-page--gv .gv-overview {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(0, 150, 255, 0.08), transparent 40%);
  pointer-events: none;
}
.sol-page--gv .gv-overview .container { position: relative; z-index: 1; }

.sol-page--gv .gv-stat-row {
  display: flex;
  gap: 32px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}
.sol-page--gv .gv-stat-row li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 18px;
  border-left: 2px solid var(--gv-cyan);
  min-width: 120px;
}
.sol-page--gv .gv-stat-row strong {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  line-height: 1;
}
.sol-page--gv .gv-stat-row > li > span {
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
  line-height: 1.4;
}

/* Mosaico de mockups */
.sol-page--gv .gv-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
  position: relative;
}
.sol-page--gv .gv-mosaic-card--big {
  grid-column: 1 / -1;
}
.sol-page--gv .gv-mosaic-card {
  background: var(--gv-ink);
  color: #fff;
  border-radius: 18px;
  padding: 20px 22px;
  border: 1px solid var(--gv-card-border);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.35);
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-mosaic-card--query {
  background: linear-gradient(160deg, #061d3f 0%, var(--gv-ink) 100%);
}
.sol-page--gv .gv-mosaic-card--spark {
  background: linear-gradient(160deg, var(--gv-ink-2) 0%, var(--gv-ink) 100%);
}

.sol-page--gv .gv-mock-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--gv-card-border);
}
.sol-page--gv .gv-mock-dots { display: flex; gap: 5px; }
.sol-page--gv .gv-mock-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--gv .gv-mock-dots span:nth-child(1) { background: #f87171; }
.sol-page--gv .gv-mock-dots span:nth-child(2) { background: #fbbf24; }
.sol-page--gv .gv-mock-dots span:nth-child(3) { background: #34d399; }
.sol-page--gv .gv-mock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.005em;
  flex: 1;
}
.sol-page--gv .gv-mock-title--mono { font-family: var(--gv-mono); font-weight: 500; }
.sol-page--gv .gv-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gv-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--gv .gv-mock-tag {
  font-family: var(--gv-mono);
  font-size: 11px;
  color: var(--gv-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 3px 8px;
  border-radius: 6px;
}
.sol-page--gv .gv-mock-body { display: flex; flex-direction: column; }
.sol-page--gv .gv-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--gv-card-border);
  font-size: 13px;
}
.sol-page--gv .gv-mock-row:first-of-type { border-top: none; padding-top: 0; }

/* SQL code blocks */
.sol-page--gv .gv-mock-code {
  font-family: var(--gv-mono);
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-x: auto;
}
.sol-page--gv .gv-mock-code--lg { font-size: 13px; line-height: 1.8; }
.sol-page--gv .gv-tk-kw { color: var(--gv-cyan-bright); font-weight: 600; }
.sol-page--gv .gv-tk-fn { color: #fbbf24; }
.sol-page--gv .gv-tk-str { color: #34d399; }
.sol-page--gv .gv-tk-cm { color: rgba(255, 255, 255, 0.4); font-style: italic; }

.sol-page--gv .gv-mock-compare {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--gv-card-border);
  flex-wrap: wrap;
}
.sol-page--gv .gv-mock-compare-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}
.sol-page--gv .gv-mock-compare-item--before { color: #f87171; }
.sol-page--gv .gv-mock-compare-item--after { color: var(--gv-cyan-bright); }
.sol-page--gv .gv-mock-compare-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}
.sol-page--gv .gv-mock-compare-val {
  font-family: var(--gv-mono);
  font-weight: 700;
  font-size: 16px;
}
.sol-page--gv .gv-mock-compare-arrow { color: rgba(255, 255, 255, 0.4); }
.sol-page--gv .gv-mock-compare-gain {
  margin-left: auto;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--gv-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 6px 12px;
  border-radius: 100px;
}
.sol-page--gv .gv-mock-compare--lg .gv-mock-compare-val { font-size: 22px; }

/* spark mosaic */
.sol-page--gv .gv-mock-spark-title {
  font-family: var(--gv-mono);
  font-size: 11px;
  color: var(--gv-text-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 8px;
}
.sol-page--gv .gv-mock-spark {
  width: 100%;
  height: 70px;
  display: block;
  color: var(--gv-cyan-bright);
}
.sol-page--gv .gv-mock-spark-val {
  font-family: var(--gv-mono);
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  display: block;
  margin-top: 6px;
}
.sol-page--gv .gv-mock-spark-trend {
  font-size: 12px;
  color: #34d399;
  margin-left: 6px;
  font-weight: 600;
}

/* ---------- FRENTES (3 splits alternados) ---------- */
.sol-page--gv .gv-frentes {
  background: #fff;
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-frente {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  margin-top: 88px;
}
.sol-page--gv .gv-frente:first-of-type { margin-top: 0; }
.sol-page--gv .gv-frente--reverse .gv-frente-content { order: 0; }
.sol-page--gv .gv-frente--reverse .gv-frente-visual { order: 1; }

.sol-page--gv .gv-frente-num {
  display: inline-flex;
  align-items: center;
  font-family: var(--gv-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gv-cyan);
  margin-bottom: 16px;
}
.sol-page--gv .gv-frente-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--gv .gv-frente-p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 22px;
}
.sol-page--gv .gv-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--gv .gv-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--azul-profundo);
}
.sol-page--gv .gv-checklist svg {
  flex-shrink: 0;
  margin-top: 4px;
  padding: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gv-cyan-soft);
  color: var(--gv-cyan);
}

/* Frente visual (photo + blob + floating card) */
.sol-page--gv .gv-frente-visual {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--gv .gv-frente-blob {
  position: absolute;
  inset: -10% -8% -10% -8%;
  background: linear-gradient(135deg, var(--gv-cyan) 0%, var(--azul-medio) 100%);
  border-radius: 62% 38% 47% 53% / 56% 44% 56% 44%;
  filter: blur(0px);
  opacity: 0.88;
  z-index: 0;
  transform: rotate(-3deg);
}
.sol-page--gv .gv-frente-blob--alt {
  background: linear-gradient(135deg, var(--azul-medio) 0%, var(--gv-cyan-bright) 100%);
  border-radius: 48% 52% 36% 64% / 50% 60% 40% 50%;
  transform: rotate(4deg);
}
.sol-page--gv .gv-frente-blob--time {
  background: linear-gradient(160deg, var(--gv-cyan-bright) 0%, var(--azul-medio) 100%);
  border-radius: 56% 44% 60% 40% / 44% 56% 44% 56%;
  transform: rotate(-5deg);
}
.sol-page--gv .gv-frente-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.45);
  transform: rotate(0deg);
  transition: transform 0.6s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--gv .gv-frente-photo:hover { transform: rotate(-1deg) scale(1.02); }
.sol-page--gv .gv-frente-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sol-page--gv .gv-frente-floating-card {
  position: absolute;
  z-index: 2;
  bottom: -18px;
  right: -22px;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  box-shadow: 0 24px 50px -10px rgba(8, 39, 100, 0.3), 0 0 0 1px rgba(8, 39, 100, 0.05);
  min-width: 240px;
  font-family: var(--font-display);
}
.sol-page--gv .gv-frente-floating-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
}
.sol-page--gv .gv-frente-floating-row--bold {
  font-family: var(--gv-mono);
  font-weight: 600;
  color: var(--azul-profundo);
  font-size: 15px;
  margin-top: 4px;
  justify-content: space-between;
}
.sol-page--gv .gv-frente-floating-time {
  color: #f87171;
  font-weight: 700;
}
.sol-page--gv .gv-frente-floating-action {
  margin-top: 6px;
  font-size: 11px;
  color: var(--gv-cyan);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sol-page--gv .gv-frente-floating-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gv-cyan);
  font-weight: 600;
}

/* Mockups dentro de bd-frente-visual--mock */
.sol-page--gv .gv-frente-visual--mock { aspect-ratio: auto; }
.sol-page--gv .gv-frente-visual--mock .gv-mock {
  position: relative;
  z-index: 1;
  background: var(--gv-ink);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 28px 70px -20px rgba(8, 39, 100, 0.4);
  color: #fff;
  border: 1px solid var(--gv-card-border);
}

/* Replication topology */
.sol-page--gv .gv-mock--topo .gv-topo {
  padding: 24px 0 10px;
}
.sol-page--gv .gv-topo {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.sol-page--gv .gv-topo-node {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--gv-cyan-border);
  background: rgba(0, 150, 255, 0.06);
  min-width: 160px;
  position: relative;
}
.sol-page--gv .gv-topo-node--primary {
  border-color: var(--gv-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.08);
}
.sol-page--gv .gv-topo-tag {
  font-family: var(--gv-mono);
  font-size: 10px;
  color: var(--gv-cyan-bright);
  letter-spacing: 0.12em;
  font-weight: 600;
}
.sol-page--gv .gv-topo-tag--replica { color: rgba(255, 255, 255, 0.55); }
.sol-page--gv .gv-topo-name {
  font-family: var(--gv-mono);
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}
.sol-page--gv .gv-topo-meta {
  font-family: var(--gv-mono);
  font-size: 11px;
  color: var(--gv-text-mute);
}
.sol-page--gv .gv-topo-node--replica .gv-mini-dot {
  position: absolute;
  top: 14px;
  right: 14px;
}
.sol-page--gv .gv-topo-lines {
  width: 100%;
  height: 100px;
  display: block;
}
.sol-page--gv .gv-topo-flow {
  animation: ia-flow 1.6s linear infinite;
}
@keyframes ia-flow {
  to { stroke-dashoffset: -20; }
}
.sol-page--gv .gv-topo-replicas {
  display: flex;
  gap: 18px;
  justify-content: center;
  width: 100%;
  flex-wrap: wrap;
}
.sol-page--gv .gv-topo-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  margin-top: 16px;
  border-top: 1px solid var(--gv-card-border);
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--gv-text-sec);
  flex-wrap: wrap;
}

/* ---------- POR TRÁS DA OPERAÇÃO ---------- */
.sol-page--gv .gv-time {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-split-photo-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--gv .gv-split-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.5);
}
.sol-page--gv .gv-split-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--gv .gv-time-stat {
  position: absolute;
  z-index: 2;
  bottom: -22px;
  left: -22px;
  background: var(--gv-ink);
  color: #fff;
  border-radius: 18px;
  padding: 22px 28px;
  box-shadow: 0 24px 60px -16px rgba(8, 39, 100, 0.45);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--gv-cyan-border);
}
.sol-page--gv .gv-time-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 36px;
  letter-spacing: -0.02em;
  color: var(--gv-cyan-bright);
  line-height: 1;
}
.sol-page--gv .gv-time-stat-sm { font-size: 22px; opacity: 0.55; margin: 0 2px; }
.sol-page--gv .gv-time-stat-lbl {
  font-family: var(--gv-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gv-text-sec);
  margin-top: 6px;
}

.sol-page--gv .gv-time-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.sol-page--gv .gv-time-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
}
.sol-page--gv .gv-time-list-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--gv-cyan-soft);
  color: var(--gv-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sol-page--gv .gv-time-list strong {
  display: block;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin-bottom: 4px;
}
.sol-page--gv .gv-time-list span {
  display: block;
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
}

/* ---------- BENEFITS (sobre bg-foto) ---------- */
.sol-page--gv .gv-benefits {
  position: relative;
  padding: 120px 0;
  background: var(--gv-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gv .gv-benefits-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--gv .gv-benefits-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.7);
}
.sol-page--gv .gv-benefits-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.88) 100%),
    radial-gradient(circle at 20% 80%, rgba(0, 150, 255, 0.2), transparent 50%);
}
.sol-page--gv .gv-benefits-inner { position: relative; z-index: 2; }
.sol-page--gv .gv-benefits-grid {
  list-style: none;
  padding: 0;
  margin: 56px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.sol-page--gv .gv-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(51, 173, 255, 0.15);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 14px;
  color: #fff;
  font-size: 15px;
  line-height: 1.55;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--gv .gv-benefit:hover {
  background: rgba(51, 173, 255, 0.08);
  border-color: var(--gv-cyan-border);
  transform: translateY(-3px);
}
.sol-page--gv .gv-benefit-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(51, 173, 255, 0.18);
  color: var(--gv-cyan-bright);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* ---------- PARTNERS ---------- */
.sol-page--gv .gv-partners {
  background: #fff;
  padding: 110px 0;
}
.sol-page--gv .gv-partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
}
.sol-page--gv .gv-partner-card {
  background: var(--offwhite);
  border: 1px solid var(--gv-line);
  border-radius: 20px;
  padding: 36px 32px;
  text-align: center;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--gv .gv-partner-card:hover {
  border-color: var(--gv-cyan-border);
  box-shadow: 0 18px 40px -16px rgba(0, 150, 255, 0.25);
  transform: translateY(-4px);
}
.sol-page--gv .gv-partner-name {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  color: var(--azul-profundo);
  letter-spacing: -0.04em;
  margin-bottom: 14px;
}
.sol-page--gv .gv-partner-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gv-cyan);
  background: var(--gv-cyan-soft);
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 18px;
}
.sol-page--gv .gv-partner-badge svg { color: var(--gv-cyan); }
.sol-page--gv .gv-partner-desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0;
}

/* ---------- CTA com bg-foto ---------- */
.sol-page--gv .gv-cta {
  position: relative;
  padding: 130px 0;
  background: var(--gv-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gv .gv-cta-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--gv .gv-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--gv .gv-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(5, 21, 54, 0.95) 0%, rgba(11, 31, 77, 0.85) 60%, rgba(0, 150, 255, 0.35) 130%),
    radial-gradient(circle at 70% 30%, rgba(51, 173, 255, 0.18), transparent 55%);
}
.sol-page--gv .gv-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  color: #fff;
}
.sol-page--gv .gv-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--gv .gv-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--gv-text-sec);
  margin: 0 0 32px;
  text-wrap: pretty;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .sol-page--gv .gv-hero { min-height: auto; padding: 130px 0 80px; }
  .sol-page--gv .gv-hero-content { grid-template-columns: 1fr; gap: 56px; }
  .sol-page--gv .gv-hero-mock { justify-content: flex-start; }
  .sol-page--gv .gv-mini-card { max-width: 100%; }
  .sol-page--gv .gv-split,
  .sol-page--gv .gv-frente,
  .sol-page--gv .gv-frente--reverse { grid-template-columns: 1fr; gap: 48px; }
  .sol-page--gv .gv-split--photo-left .gv-split-photo-wrap,
  .sol-page--gv .gv-frente--reverse .gv-frente-visual,
  .sol-page--gv .gv-frente-visual { order: 0; }
  .sol-page--gv .gv-split--photo-left .gv-split-text,
  .sol-page--gv .gv-frente--reverse .gv-frente-content,
  .sol-page--gv .gv-frente-content { order: 1; }
  .sol-page--gv .gv-mosaic { grid-template-columns: 1fr; }
  .sol-page--gv .gv-mosaic-card--big { grid-column: 1; }
  .sol-page--gv .gv-benefits-grid { grid-template-columns: 1fr; }
  .sol-page--gv .gv-partners-grid { grid-template-columns: repeat(2, 1fr); max-width: 760px; }
}
@media (max-width: 640px) {
  .sol-page--gv .gv-partners-grid { grid-template-columns: 1fr; }
  .sol-page--gv .gv-hero { padding: 110px 0 70px; }
  .sol-page--gv .gv-hero-h1 { font-size: clamp(26px, 7vw, 34px);}
  .sol-page--gv .gv-hero-ctas .gv-btn { width: 100%; justify-content: center; }
  .sol-page--gv .gv-overview,
  .sol-page--gv .gv-frentes,
  .sol-page--gv .gv-time,
  .sol-page--gv .gv-benefits,
  .sol-page--gv .gv-partners,
  .sol-page--gv .gv-cta { padding: 80px 0; }
  .sol-page--gv .gv-frente { margin-top: 64px; }
  .sol-page--gv .gv-stat-row { gap: 18px; }
  .sol-page--gv .gv-stat-row li { min-width: 100%; }
  .sol-page--gv .gv-frente-floating-card { right: 0; bottom: -10px; min-width: 0; max-width: 90%; }
  .sol-page--gv .gv-mock-compare { gap: 8px; }
  .sol-page--gv .gv-mock-compare-gain { margin-left: 0; }
  .sol-page--gv .gv-time-stat { left: -10px; bottom: -14px; padding: 16px 20px; }
  .sol-page--gv .gv-time-stat-num { font-size: 28px; }
  .sol-page--gv .gv-topo-replicas { flex-direction: column; align-items: center; }
}


/* ================================================================ */
/* BD + CS — BRIDGE CTA (após as 3 frentes) + BENEFITS INLINE CTA   */
/* ================================================================ */

/* ---------- BRIDGE CTA: IA para Empresas Privadas ---------- */
.sol-page--gv .gv-bridge {
  padding: 50px 0 90px;
  position: relative;
  background: #fff;
}
.sol-page--gv .gv-bridge-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  padding: 44px 48px;
  border-radius: 28px;
  background: linear-gradient(135deg, #082764 0%, #051536 100%);
  border: 1px solid rgba(51, 173, 255, 0.22);
  box-shadow: 0 30px 70px -30px rgba(8, 39, 100, 0.55);
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-bridge-inner::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -8%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(51, 173, 255, 0.28) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--gv .gv-bridge-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(51, 173, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(51, 173, 255, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events: none;
}
.sol-page--gv .gv-bridge-text {
  position: relative;
  z-index: 2;
  max-width: 680px;
}
.sol-page--gv .gv-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  color: #fff;
  margin: 14px 0 10px;
  line-height: 1.22;
  letter-spacing: -0.01em;
}
.sol-page--gv .gv-bridge-p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
  margin: 0;
}
.sol-page--gv .gv-bridge-inner .gv-btn {
  position: relative;
  z-index: 2;
}

/* ---------- BENEFITS INLINE CTA: IA para Empresas Privadas ---------- */
.sol-page--gv .gv-benefits-cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.sol-page--gv .gv-benefits-cta-text {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 600;
  color: #fff;
  margin: 0;
  letter-spacing: -0.005em;
  max-width: 640px;
}

/* ---------- Responsivo: bridge CTA IA ---------- */
@media (max-width: 820px) {
  .sol-page--gv .gv-bridge { padding: 30px 0 60px; }
  .sol-page--gv .gv-bridge-inner {
    grid-template-columns: 1fr;
    padding: 32px 24px;
    gap: 28px;
    border-radius: 22px;
  }
  .sol-page--gv .gv-bridge-inner .gv-btn { width: 100%; justify-content: center; }
  .sol-page--gv .gv-benefits-cta { margin-top: 40px; gap: 16px; }
  .sol-page--gv .gv-benefits-cta .gv-btn { width: 100%; justify-content: center; }
}



/* ===================================================================
   IA-GOVERNO — VARIAÇÕES sobre o template BD
   Sobrescritas e adições que diferenciam o layout das demais soluções
   sem quebrar a paleta, fontes e regras de contraste.
   =================================================================== */

/* ---------- HERO MOCK: card de inferência ao vivo (substitui mini-card) ---------- */
.sol-page--gv .gv-infer-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 20px;
  color: #fff;
}
.sol-page--gv .gv-infer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--gv .gv-infer-title {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}
.sol-page--gv .gv-infer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid rgba(51, 173, 255, 0.32);
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gv-cyan-bright);
}
.sol-page--gv .gv-infer-block {
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  position: relative;
}
.sol-page--gv .gv-infer-block-label {
  display: block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 8px;
}
.sol-page--gv .gv-infer-block-text {
  font-family: var(--font-display);
  font-size: 12.5px;
  color: #fff;
  line-height: 1.4;
  font-weight: 500;
}
.sol-page--gv .gv-infer-block-text strong { color: var(--gv-cyan-bright); font-weight: 600; }
.sol-page--gv .gv-infer-arrow {
  display: flex;
  justify-content: center;
  padding: 8px 0;
  color: var(--gv-cyan-bright);
  opacity: 0.5;
  font-size: 14px;
  line-height: 1;
}
.sol-page--gv .gv-infer-arrow span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: lowercase;
  color: rgba(51, 173, 255, 0.55);
}
.sol-page--gv .gv-infer-arrow span::before,
.sol-page--gv .gv-infer-arrow span::after {
  content: "";
  display: inline-block;
  height: 1px;
  width: 22px;
  background: rgba(51, 173, 255, 0.3);
}
.sol-page--gv .gv-infer-model {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: rgba(51, 173, 255, 0.10);
  border: 1px solid var(--gv-cyan-border);
  border-radius: 12px;
}
.sol-page--gv .gv-infer-model-name {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  color: var(--gv-cyan-bright);
  letter-spacing: 0.02em;
}
.sol-page--gv .gv-infer-model-meta {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.04em;
}
.sol-page--gv .gv-infer-output { margin-top: 12px; }
.sol-page--gv .gv-infer-output-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.sol-page--gv .gv-infer-output-lbl {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
}
.sol-page--gv .gv-infer-output-val {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1;
}
.sol-page--gv .gv-infer-output-val span { font-size: 0.6em; color: var(--gv-cyan-bright); margin-left: 2px; }
.sol-page--gv .gv-infer-bar {
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
  margin-bottom: 10px;
}
.sol-page--gv .gv-infer-bar-fill {
  position: absolute;
  inset: 0 13% 0 0;
  background: linear-gradient(90deg, var(--gv-cyan), var(--gv-cyan-bright));
  border-radius: 3px;
  box-shadow: 0 0 12px rgba(51, 173, 255, 0.5);
}
.sol-page--gv .gv-infer-factors {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
  margin: 0;
  padding: 8px 0 0;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
}
.sol-page--gv .gv-infer-factors strong { color: rgba(255, 255, 255, 0.78); font-weight: 600; }

/* ---------- MANIFESTO DIAGNÓSTICO (substitui overview) ---------- */
.sol-page--gv .gv-manifesto-section {
  padding: 100px 0 80px;
  background: var(--offwhite, #fafbfc);
  position: relative;
}
.sol-page--gv .gv-manifesto-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.sol-page--gv .gv-manifesto-section .container { position: relative; z-index: 1; }
.sol-page--gv .gv-manifesto-head {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: end;
  margin-bottom: 56px;
}
.sol-page--gv .gv-manifesto-head .gv-h2 { margin: 0; }
.sol-page--gv .gv-manifesto-head-aside {
  font-size: 15px;
  line-height: 1.65;
  color: var(--azul-profundo);
  opacity: 0.72;
  margin: 0;
  max-width: 540px;
}
.sol-page--gv .gv-manifesto-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.sol-page--gv .gv-manifesto-item {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  padding: 28px 32px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 16px;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--gv .gv-manifesto-item:hover {
  border-color: rgba(51, 173, 255, 0.32);
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.18);
}
.sol-page--gv .gv-manifesto-tag {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 4px;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--gv-cyan);
  text-transform: uppercase;
}
.sol-page--gv .gv-manifesto-tag::before {
  content: "";
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(51, 173, 255, 0.12);
  border: 1px solid var(--gv-cyan-border);
  margin-bottom: 10px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2306b6d4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='9' x2='12' y2='13'/><line x1='12' y1='17' x2='12.01' y2='17'/><path d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/></svg>");
  background-position: center;
  background-repeat: no-repeat;
}
.sol-page--gv .gv-manifesto-title {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 0 0 8px;
  line-height: 1.25;
  letter-spacing: -0.012em;
}
.sol-page--gv .gv-manifesto-text {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(8, 39, 100, 0.68);
  margin: 0;
}

/* ---------- PIPELINE: 3 frentes stacked com conector ---------- */
.sol-page--gv .gv-pipeline {
  padding: 100px 0;
  position: relative;
  background: #fff;
}
.sol-page--gv .gv-pipeline::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.sol-page--gv .gv-pipeline .container { position: relative; z-index: 1; }
.sol-page--gv .gv-pipeline-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 56px;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
.sol-page--gv .gv-step {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 28px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 50px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  z-index: 1;
  transition: transform 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--gv .gv-step:hover { transform: translateY(-3px); }
.sol-page--gv .gv-step + .gv-step { margin-top: 36px; }
.sol-page--gv .gv-step::before {
  /* connector vertical entre steps */
  content: "";
  position: absolute;
  top: -36px;
  left: 40px;
  height: 36px;
  width: 2px;
  background: linear-gradient(180deg, transparent 0%, var(--gv-cyan) 50%, transparent 100%);
  z-index: 0;
}
.sol-page--gv .gv-step:first-of-type::before { display: none; }
.sol-page--gv .gv-step-num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #082764 0%, #051536 100%);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 800;
  padding: 36px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-step-num::before {
  content: "";
  position: absolute;
  top: -20%;
  left: -30%;
  width: 200%;
  height: 80%;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.35) 0%, transparent 60%);
  pointer-events: none;
}
.sol-page--gv .gv-step-num-val {
  font-size: 44px;
  letter-spacing: -0.04em;
  line-height: 1;
  background: linear-gradient(135deg, var(--gv-cyan-bright), var(--gv-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  position: relative;
  z-index: 1;
}
.sol-page--gv .gv-step-num-lbl {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  margin-top: 6px;
  position: relative;
  z-index: 1;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  padding: 6px 0;
}
.sol-page--gv .gv-step-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
}
.sol-page--gv .gv-step-content {
  padding: 32px 36px 32px 0;
}
.sol-page--gv .gv-step-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gv-cyan);
  margin-bottom: 14px;
}
.sol-page--gv .gv-step-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h4);
  line-height: 1.18;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 14px;
  text-wrap: balance;
}
.sol-page--gv .gv-step-p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.65);
  margin: 0 0 18px;
}
.sol-page--gv .gv-step-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--gv .gv-step-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--azul-profundo);
}
.sol-page--gv .gv-step-list svg {
  flex-shrink: 0;
  margin-top: 3px;
  width: 18px;
  height: 18px;
  padding: 3px;
  background: rgba(51, 173, 255, 0.12);
  color: var(--gv-cyan);
  border-radius: 50%;
}
.sol-page--gv .gv-step-visual {
  background: linear-gradient(135deg, #082764 0%, #051536 100%);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-step-visual::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 80%;
  height: 80%;
  background: radial-gradient(circle, rgba(51, 173, 255, 0.18) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--gv .gv-step-visual > * { position: relative; z-index: 1; }
.sol-page--gv .gv-step-visual--photo { padding: 0; background: var(--gv-ink); }
.sol-page--gv .gv-step-visual--photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  min-height: 300px;
}
.sol-page--gv .gv-step-visual--photo .gv-step-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 21, 54, 0.05) 0%, rgba(5, 21, 54, 0.4) 100%);
  z-index: 1;
}
.sol-page--gv .gv-step-visual--photo .gv-step-photo-tag {
  position: absolute;
  bottom: 18px;
  left: 18px;
  z-index: 2;
  font-family: var(--font-display);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gv-cyan-bright);
  background: rgba(10, 18, 40, 0.7);
  padding: 6px 12px;
  border-radius: 4px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* Mock-specific inside step */
.sol-page--gv .gv-step-mock-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--gv .gv-step-mock-title {
  font-family: var(--font-display);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sol-page--gv .gv-step-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid var(--gv-cyan-border);
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gv-cyan-bright);
}
.sol-page--gv .gv-step-mock-stat {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 6px 0 14px;
}
.sol-page--gv .gv-step-mock-stat-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 36px;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
}
.sol-page--gv .gv-step-mock-stat-unit {
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--gv-cyan-bright);
  font-weight: 600;
}
.sol-page--gv .gv-step-mock-stat-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.sol-page--gv .gv-step-mock-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}
.sol-page--gv .gv-step-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 11px;
}
.sol-page--gv .gv-step-mock-row-lbl { color: rgba(255, 255, 255, 0.65); }
.sol-page--gv .gv-step-mock-row-val { color: #fff; font-weight: 600; }
.sol-page--gv .gv-step-mock-row .gv-mini-dot { width: 7px; height: 7px; }
.sol-page--gv .gv-step-mock-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}
.sol-page--gv .gv-step-mock-foot strong { color: var(--gv-cyan-bright); font-weight: 600; }

/* SVG chart variant */
.sol-page--gv .gv-step-mock-chart-svg {
  width: 100%;
  height: 110px;
  display: block;
  margin: 10px 0;
}
.sol-page--gv .gv-step-mock-legend {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
}
.sol-page--gv .gv-step-mock-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sol-page--gv .gv-step-mock-legend-dot {
  display: inline-block;
  width: 10px;
  height: 2px;
}

/* Governance pipeline visualization */
.sol-page--gv .gv-step-gov-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin: 10px 0 14px;
}
.sol-page--gv .gv-step-gov-stage {
  padding: 10px 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 9px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  position: relative;
}
.sol-page--gv .gv-step-gov-stage--active {
  background: rgba(51, 173, 255, 0.12);
  border-color: var(--gv-cyan-border);
  color: var(--gv-cyan-bright);
  font-weight: 700;
}
.sol-page--gv .gv-step-gov-stage span {
  display: block;
  font-family: var(--font-display);
  font-size: 14px;
  color: #fff;
  margin-top: 4px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.sol-page--gv .gv-step-gov-stage--active span { color: var(--gv-cyan-bright); }
.sol-page--gv .gv-step-gov-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.sol-page--gv .gv-step-gov-check {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.04em;
}
.sol-page--gv .gv-step-gov-check svg { color: var(--gv-ok, #34d399); flex-shrink: 0; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 900px) {
  .sol-page--gv .gv-manifesto-head {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
  }
  .sol-page--gv .gv-manifesto-grid { grid-template-columns: 1fr; }
  .sol-page--gv .gv-step { grid-template-columns: 64px 1fr; }
  .sol-page--gv .gv-step-num { padding: 20px 0; }
  .sol-page--gv .gv-step-num-val { font-size: 32px; }
  .sol-page--gv .gv-step-body { grid-template-columns: 1fr; }
  .sol-page--gv .gv-step-content { padding: 24px 24px 28px; order: 2; }
  .sol-page--gv .gv-step-visual { padding: 20px; min-height: 220px; order: 1; }
  .sol-page--gv .gv-step-visual--photo { min-height: 220px; }
  .sol-page--gv .gv-step-visual--photo img { min-height: 220px; }
  .sol-page--gv .gv-step::before { left: 32px; }
}

@media (max-width: 600px) {
  .sol-page--gv .gv-manifesto-section { padding: 70px 0 60px; }
  .sol-page--gv .gv-manifesto-item { padding: 22px 22px; grid-template-columns: 48px 1fr; gap: 14px; }
  .sol-page--gv .gv-manifesto-tag { font-size: 10px; padding-top: 2px; }
  .sol-page--gv .gv-manifesto-tag::before { width: 24px; height: 24px; margin-bottom: 8px; }
  .sol-page--gv .gv-pipeline { padding: 70px 0; }
  .sol-page--gv .gv-step { grid-template-columns: 48px 1fr; }
  .sol-page--gv .gv-step-num-val { font-size: 26px; }
  .sol-page--gv .gv-step-num-lbl { font-size: 9px; }
  .sol-page--gv .gv-step::before { left: 24px; }
  .sol-page--gv .gv-step + .gv-step { margin-top: 28px; }
  .sol-page--gv .gv-step::before { top: -28px; height: 28px; }
  .sol-page--gv .gv-infer-card { padding: 16px; max-width: 100%; }
  .sol-page--gv .gv-infer-output-val { font-size: 18px; }
}



/* ===================================================================
   IA-GOVERNO — MOCKUPS REPAGINADOS + ANIMAÇÕES
   3 mockups (hero inference card, predictive chart, governance lifecycle)
   ganham animações sutis para dar dinamismo. Tudo respeita
   prefers-reduced-motion.
   =================================================================== */

/* ============ KEYFRAMES COMPARTILHADAS ============ */
@keyframes gv-scan {
  0% { transform: translateX(-110%); }
  60% { transform: translateX(110%); }
  100% { transform: translateX(110%); }
}
@keyframes gv-flow-dash {
  to { stroke-dashoffset: -16; }
}
@keyframes gv-soft-pulse {
  0%, 100% { opacity: 0.92; }
  50% { opacity: 0.55; }
}
@keyframes gv-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(51, 173, 255, 0.42); }
  50% { box-shadow: 0 0 0 6px rgba(51, 173, 255, 0); }
}
@keyframes gv-count-tick {
  0%, 95%, 100% { opacity: 1; }
  96%, 99% { opacity: 0.6; }
}

/* ============ HERO INFER CARD — repaginação ============ */
.sol-page--gv .gv-infer-block {
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-infer-block::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(51, 173, 255, 0.12) 45%,
    rgba(51, 173, 255, 0.22) 50%,
    rgba(51, 173, 255, 0.12) 55%,
    transparent 100%);
  animation: gv-scan 3s ease-in-out infinite;
  animation-delay: 0.4s;
  pointer-events: none;
}
.sol-page--gv .gv-infer-arrow {
  position: relative;
}
.sol-page--gv .gv-infer-arrow span::before,
.sol-page--gv .gv-infer-arrow span::after {
  background: repeating-linear-gradient(90deg,
    var(--gv-cyan-bright) 0,
    var(--gv-cyan-bright) 4px,
    transparent 4px,
    transparent 8px);
  background-size: 200% 100%;
  animation: gv-arrow-march 1.4s linear infinite;
  height: 1.5px;
}
@keyframes gv-arrow-march {
  0% { background-position: 0 0; }
  100% { background-position: -16px 0; }
}

.sol-page--gv .gv-infer-model {
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-infer-model::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(51, 173, 255, 0.10) 45%,
    rgba(51, 173, 255, 0.18) 50%,
    rgba(51, 173, 255, 0.10) 55%,
    transparent 100%);
  animation: gv-scan 2.6s ease-in-out infinite;
  pointer-events: none;
}
.sol-page--gv .gv-infer-model-meta { position: relative; z-index: 1; }
.sol-page--gv .gv-infer-model-name { position: relative; z-index: 1; }

/* Bar fill animation (triggered on .in-view) */
.sol-page--gv .gv-infer-bar { overflow: hidden; }
.sol-page--gv .gv-infer-bar-fill {
  inset: 0 100% 0 0;  /* start collapsed */
  transition: inset 1.6s 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}
.sol-page--gv .gv-infer-bar-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
  animation: gv-scan 2.4s ease-in-out infinite;
  animation-delay: 2s;
}
.sol-page--gv .reveal.in-view .gv-infer-bar-fill[data-fill="87"] { inset: 0 13% 0 0; }
.sol-page--gv .reveal.in-view .gv-infer-bar-fill[data-fill="94"] { inset: 0 6% 0 0; }

.sol-page--gv .gv-infer-output-val { position: relative; }
.sol-page--gv .gv-infer-output-val::after {
  content: "";
  position: absolute;
  inset: -6px -8px;
  border-radius: 8px;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.18), transparent 70%);
  filter: blur(8px);
  z-index: -1;
  animation: gv-soft-pulse 3s ease-in-out infinite;
}

.sol-page--gv .gv-infer-conf {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  margin-bottom: 12px;
  padding: 3px 9px;
  background: rgba(52, 211, 153, 0.10);
  border: 1px solid rgba(52, 211, 153, 0.30);
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #34d399;
}
.sol-page--gv .gv-infer-conf-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
  animation: gv-glow 2s ease-in-out infinite;
}

/* ============ STEP 02 — PREDICTIVE CHART ============ */
.sol-page--gv .gv-step-mock-stat-num {
  position: relative;
  display: inline-block;
}
.sol-page--gv .gv-step-mock-stat-num::after {
  content: "";
  position: absolute;
  inset: -8px -12px;
  border-radius: 12px;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.16), transparent 70%);
  filter: blur(10px);
  z-index: -1;
  animation: gv-soft-pulse 3s ease-in-out infinite;
}

.sol-page--gv .gv-step-mock-chart-svg .gv-chart-hist {
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  transition: stroke-dashoffset 1.8s 0.2s cubic-bezier(0.65, 0, 0.35, 1);
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-line {
  stroke-dasharray: 4 4;
  stroke-dashoffset: 0;
  opacity: 0;
  transition: opacity 0.5s 1.6s ease-out;
  animation: gv-flow-dash 1.4s linear infinite;
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-area {
  opacity: 0;
  transition: opacity 0.8s 1.8s ease-out;
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-line {
  opacity: 0;
  transition: opacity 0.4s 1.4s ease-out;
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-dot {
  opacity: 0;
  transition: opacity 0.4s 1.5s ease-out;
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-dot circle:first-child {
  transform-origin: center;
  transform-box: fill-box;
  animation: gv-dot-pulse 2.4s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes gv-dot-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(2.4); opacity: 0; }
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-label {
  opacity: 0;
  transition: opacity 0.4s 1.7s ease-out;
}
.sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-end-pill {
  opacity: 0;
  transition: opacity 0.5s 2.1s ease-out;
}

.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-hist {
  stroke-dashoffset: 0;
}
.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-pred-line,
.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-pred-area,
.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-today-line,
.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-today-dot,
.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-today-label,
.sol-page--gv .reveal.in-view .gv-step-mock-chart-svg .gv-chart-pred-end-pill {
  opacity: 1;
}

/* ============ STEP 03 — GOVERNANCE LIFECYCLE ============ */
.sol-page--gv .gv-step-gov-flow {
  position: relative;
  grid-template-columns: 1fr 18px 1fr 18px 1fr 18px 1fr;
  gap: 0;
  align-items: stretch;
}
.sol-page--gv .gv-step-gov-stage {
  padding: 12px 8px;
  position: relative;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  opacity: 0;
  transform: translateY(6px);
}
.sol-page--gv .gv-step-gov-stage span {
  font-size: 16px;
  margin-top: 6px;
}
.sol-page--gv .gv-step-gov-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(51, 173, 255, 0.42);
  font-size: 14px;
  line-height: 1;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--gv .gv-step-gov-stage::after {
  content: "✓";
  position: absolute;
  top: -6px;
  right: -6px;
  width: 16px;
  height: 16px;
  background: #34d399;
  color: var(--gv-ink);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s 0.3s ease-out;
  border: 2px solid var(--gv-ink);
}
.sol-page--gv .gv-step-gov-stage--active::after {
  background: var(--gv-cyan-bright);
  content: "▶";
  animation: gv-glow 2s ease-in-out infinite;
}
.sol-page--gv .reveal.in-view .gv-step-gov-stage { opacity: 1; transform: translateY(0); }
.sol-page--gv .reveal.in-view .gv-step-gov-stage:nth-child(1) { transition-delay: 0.2s; }
.sol-page--gv .reveal.in-view .gv-step-gov-stage:nth-child(3) { transition-delay: 0.45s; }
.sol-page--gv .reveal.in-view .gv-step-gov-stage:nth-child(5) { transition-delay: 0.7s; }
.sol-page--gv .reveal.in-view .gv-step-gov-stage:nth-child(7) { transition-delay: 0.95s; }
.sol-page--gv .reveal.in-view .gv-step-gov-stage::after { opacity: 1; }
.sol-page--gv .reveal.in-view .gv-step-gov-arrow { opacity: 1; }
.sol-page--gv .reveal.in-view .gv-step-gov-arrow:nth-child(2) { transition-delay: 0.35s; }
.sol-page--gv .reveal.in-view .gv-step-gov-arrow:nth-child(4) { transition-delay: 0.6s; }
.sol-page--gv .reveal.in-view .gv-step-gov-arrow:nth-child(6) { transition-delay: 0.85s; }

.sol-page--gv .gv-step-gov-check {
  opacity: 0;
  transform: translateY(6px);
  transition: all 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--gv .reveal.in-view .gv-step-gov-check { opacity: 1; transform: translateY(0); }
.sol-page--gv .reveal.in-view .gv-step-gov-check:nth-child(1) { transition-delay: 1.2s; }
.sol-page--gv .reveal.in-view .gv-step-gov-check:nth-child(2) { transition-delay: 1.35s; }
.sol-page--gv .reveal.in-view .gv-step-gov-check:nth-child(3) { transition-delay: 1.5s; }
.sol-page--gv .reveal.in-view .gv-step-gov-check:nth-child(4) { transition-delay: 1.65s; }

.sol-page--gv .gv-step-gov-check svg {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--gv .gv-step-gov-check:hover svg { transform: scale(1.15); }

.sol-page--gv .gv-step-mock-foot {
  opacity: 0;
  transform: translateY(4px);
  transition: all 0.5s 1.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--gv .reveal.in-view .gv-step-mock-foot { opacity: 1; transform: translateY(0); }

.sol-page--gv .gv-step-mock-foot strong { position: relative; }
.sol-page--gv .gv-step-mock-foot .gv-foot-live::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gv-cyan-bright);
  margin-right: 6px;
  vertical-align: 1px;
  box-shadow: 0 0 0 0 rgba(51, 173, 255, 0.6);
  animation: gv-glow 2s ease-in-out infinite;
}

/* ============ PREFERS-REDUCED-MOTION ============ */
@media (prefers-reduced-motion: reduce) {
  .sol-page--gv .gv-infer-block::after,
  .sol-page--gv .gv-infer-model::after,
  .sol-page--gv .gv-infer-arrow span::before,
  .sol-page--gv .gv-infer-arrow span::after,
  .sol-page--gv .gv-infer-bar-fill::after,
  .sol-page--gv .gv-infer-output-val::after,
  .sol-page--gv .gv-infer-conf-dot,
  .sol-page--gv .gv-step-mock-stat-num::after,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-line,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-dot circle:first-child,
  .sol-page--gv .gv-step-gov-stage--active::after,
  .sol-page--gv .gv-step-mock-foot .gv-foot-live::before {
    animation: none !important;
  }
  .sol-page--gv .gv-infer-bar-fill,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-hist,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-line,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-area,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-line,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-dot,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-today-label,
  .sol-page--gv .gv-step-mock-chart-svg .gv-chart-pred-end-pill,
  .sol-page--gv .gv-step-gov-stage,
  .sol-page--gv .gv-step-gov-arrow,
  .sol-page--gv .gv-step-gov-check,
  .sol-page--gv .gv-step-mock-foot {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
  .sol-page--gv .gv-infer-bar-fill[data-fill="87"] { inset: 0 13% 0 0 !important; }
}



/* ===================================================================
   IA-GOVERNO — MOCKUPS ESPECÍFICOS
   3 novos mockups para o contexto GovTech (chat ao cidadão, triagem
   inteligente, hub de integração) com animações dedicadas. Reusam
   tokens e fontes já definidos em .sol-page--gv.
   =================================================================== */

/* ============ KEYFRAMES ESPECÍFICAS ============ */
@keyframes gv-typing {
  0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-2px); }
}
@keyframes gv-bubble-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes gv-bar-grow {
  from { width: 0; }
  to { width: var(--bar-target, 50%); }
}
@keyframes gv-hub-ring {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.08); }
}
@keyframes gv-hub-flow {
  to { stroke-dashoffset: -40; }
}
@keyframes gv-audit-tick {
  0% { transform: translateX(-100%); opacity: 0; }
  20% { transform: translateX(0); opacity: 1; }
  100% { transform: translateX(0); opacity: 1; }
}

/* ============ HERO MOCK 1 — WhatsApp Chat ao Cidadão ============ */
.sol-page--gv .gv-chat-card {
  width: 100%;
  max-width: 400px;
  background: rgba(11, 31, 77, 0.68);
  border: 1px solid rgba(51, 173, 255, 0.22);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 20px;
  color: #fff;
}
.sol-page--gv .gv-chat-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--gv .gv-chat-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}
.sol-page--gv .gv-chat-title-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gv-cyan-bright), var(--gv-cyan));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gv-ink);
  flex-shrink: 0;
}
.sol-page--gv .gv-chat-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid var(--gv-cyan-border);
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gv-cyan-bright);
}
.sol-page--gv .gv-chat-thread {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sol-page--gv .gv-chat-bubble {
  display: flex;
  gap: 8px;
  align-items: flex-end;
  opacity: 0;
  transform: translateY(8px);
}
.sol-page--gv .gv-chat-bubble--cit { flex-direction: row-reverse; }
.sol-page--gv .gv-chat-bubble-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sol-page--gv .gv-chat-bubble--bot .gv-chat-bubble-avatar {
  background: linear-gradient(135deg, var(--gv-cyan-bright), var(--gv-cyan));
  color: var(--gv-ink);
}
.sol-page--gv .gv-chat-bubble--cit .gv-chat-bubble-avatar {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
}
.sol-page--gv .gv-chat-bubble-body {
  padding: 9px 13px;
  font-size: 12px;
  line-height: 1.5;
  max-width: 80%;
  font-weight: 500;
}
.sol-page--gv .gv-chat-bubble--bot .gv-chat-bubble-body {
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.92);
  border-radius: 14px 14px 14px 4px;
}
.sol-page--gv .gv-chat-bubble--cit .gv-chat-bubble-body {
  background: linear-gradient(135deg, var(--gv-cyan), #007a91);
  color: #fff;
  border-radius: 14px 14px 4px 14px;
}
.sol-page--gv .gv-chat-bubble-body strong { color: var(--gv-cyan-bright); font-weight: 600; }
.sol-page--gv .gv-chat-bubble-body .gv-chat-status {
  display: inline-block;
  padding: 1px 7px;
  background: rgba(52, 211, 153, 0.18);
  color: #34d399;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-left: 4px;
}
.sol-page--gv .gv-chat-typing {
  display: inline-flex;
  gap: 4px;
  padding: 12px 14px !important;
  align-items: center;
}
.sol-page--gv .gv-chat-typing span {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gv-cyan-bright);
  animation: gv-typing 1.2s ease-in-out infinite;
}
.sol-page--gv .gv-chat-typing span:nth-child(2) { animation-delay: 0.15s; }
.sol-page--gv .gv-chat-typing span:nth-child(3) { animation-delay: 0.3s; }

.sol-page--gv .reveal.in-view .gv-chat-bubble {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--gv .reveal.in-view .gv-chat-bubble:nth-child(1) { transition-delay: 0.2s; }
.sol-page--gv .reveal.in-view .gv-chat-bubble:nth-child(2) { transition-delay: 0.6s; }
.sol-page--gv .reveal.in-view .gv-chat-bubble:nth-child(3) { transition-delay: 1.0s; }
.sol-page--gv .reveal.in-view .gv-chat-bubble:nth-child(4) { transition-delay: 1.5s; }

.sol-page--gv .gv-chat-foot {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.04em;
}
.sol-page--gv .gv-chat-foot-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #34d399;
  font-weight: 600;
}
.sol-page--gv .gv-chat-foot-live::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
  animation: gv-glow 2s ease-in-out infinite;
}

/* ============ STEP 02 — Triagem Inteligente ============ */
.sol-page--gv .gv-intent {
  padding: 4px 0;
}
.sol-page--gv .gv-intent-quote {
  padding: 12px 14px;
  background: rgba(51, 173, 255, 0.08);
  border: 1px solid var(--gv-cyan-border);
  border-radius: 10px;
  margin-bottom: 14px;
}
.sol-page--gv .gv-intent-quote-lbl {
  display: block;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 5px;
}
.sol-page--gv .gv-intent-quote-text {
  font-family: var(--font-display);
  font-size: 13px;
  color: #fff;
  font-weight: 500;
  line-height: 1.4;
  margin: 0;
}
.sol-page--gv .gv-intent-quote-text::before { content: "“"; opacity: 0.4; margin-right: 2px; }
.sol-page--gv .gv-intent-quote-text::after { content: "”"; opacity: 0.4; margin-left: 2px; }
.sol-page--gv .gv-intent-analyzing {
  display: flex;
  justify-content: center;
  margin: 8px 0 12px;
}
.sol-page--gv .gv-intent-analyzing-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.06em;
}
.sol-page--gv .gv-intent-analyzing-pill svg {
  color: var(--gv-cyan-bright);
  animation: gv-glow 1.6s ease-in-out infinite;
}
.sol-page--gv .gv-intent-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--gv .gv-intent-option {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}
.sol-page--gv .gv-intent-option-name {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
  position: relative;
  z-index: 1;
}
.sol-page--gv .gv-intent-option-name::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  margin-right: 8px;
  vertical-align: 1px;
}
.sol-page--gv .gv-intent-option-conf {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.45);
  position: relative;
  z-index: 1;
}
.sol-page--gv .gv-intent-option-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  background: rgba(255, 255, 255, 0.04);
  transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 0;
}
.sol-page--gv .gv-intent-option--active {
  background: rgba(51, 173, 255, 0.10);
  border-color: var(--gv-cyan-border);
  box-shadow: inset 3px 0 0 var(--gv-cyan-bright);
}
.sol-page--gv .gv-intent-option--active .gv-intent-option-name {
  color: #fff;
  font-weight: 600;
}
.sol-page--gv .gv-intent-option--active .gv-intent-option-name::before {
  background: var(--gv-cyan-bright);
  box-shadow: 0 0 6px var(--gv-cyan-bright);
}
.sol-page--gv .gv-intent-option--active .gv-intent-option-conf {
  color: var(--gv-cyan-bright);
}
.sol-page--gv .gv-intent-option--active .gv-intent-option-bar {
  background: linear-gradient(90deg, rgba(51, 173, 255, 0.18), rgba(51, 173, 255, 0.06));
}
.sol-page--gv .reveal.in-view .gv-intent-option-bar { width: var(--bar-target, 50%); }
.sol-page--gv .reveal.in-view .gv-intent-option:nth-child(1) .gv-intent-option-bar { transition-delay: 0.6s; }
.sol-page--gv .reveal.in-view .gv-intent-option:nth-child(2) .gv-intent-option-bar { transition-delay: 0.85s; }
.sol-page--gv .reveal.in-view .gv-intent-option:nth-child(3) .gv-intent-option-bar { transition-delay: 1.1s; }

.sol-page--gv .gv-intent-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
}
.sol-page--gv .gv-intent-foot strong {
  color: var(--gv-cyan-bright);
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* ============ STEP 03 — Hub de Integração ============ */
.sol-page--gv .gv-hub {
  padding: 6px 0;
}
.sol-page--gv .gv-hub-svg {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  display: block;
  margin-bottom: 12px;
}
.sol-page--gv .gv-hub-svg .gv-hub-line {
  stroke-dasharray: 4 4;
  stroke-dashoffset: 24;
  opacity: 0;
  transition: opacity 0.4s ease-out;
}
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line {
  opacity: 0.55;
  animation: gv-hub-flow 1.4s linear infinite;
}
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line:nth-child(1) { transition-delay: 0.4s; }
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line:nth-child(2) { transition-delay: 0.55s; }
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line:nth-child(3) { transition-delay: 0.7s; }
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line:nth-child(4) { transition-delay: 0.85s; }
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line:nth-child(5) { transition-delay: 1s; }
.sol-page--gv .reveal.in-view .gv-hub-svg .gv-hub-line:nth-child(6) { transition-delay: 1.15s; }
.sol-page--gv .gv-hub-svg .gv-hub-center-ring {
  opacity: 0.35;
  transform-origin: center;
  transform-box: fill-box;
  animation: gv-hub-ring 2.8s ease-in-out infinite;
}
.sol-page--gv .gv-hub-svg .gv-hub-center-ring--lg {
  animation-delay: 0.6s;
  opacity: 0.18;
}
.sol-page--gv .gv-hub-svg .gv-hub-module-rect {
  fill: rgba(255, 255, 255, 0.05);
  stroke: rgba(255, 255, 255, 0.10);
  stroke-width: 1;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--gv .gv-hub-svg .gv-hub-module-rect:hover {
  fill: rgba(51, 173, 255, 0.10);
  stroke: var(--gv-cyan-border);
}
.sol-page--gv .gv-hub-svg .gv-hub-module-rect--gov {
  fill: rgba(51, 173, 255, 0.14);
  stroke: var(--gv-cyan-border);
}
.sol-page--gv .gv-hub-svg .gv-hub-module-icon { fill: rgba(255, 255, 255, 0.92); font-weight: 700; }
.sol-page--gv .gv-hub-svg .gv-hub-module-icon--gov { fill: var(--gv-cyan-bright); }
.sol-page--gv .gv-hub-svg .gv-hub-module-label {
  font-family: var(--font-body);
  font-size: 8.5px;
  font-weight: 600;
  fill: rgba(255, 255, 255, 0.72);
}
.sol-page--gv .gv-hub-svg .gv-hub-module-label--gov { fill: var(--gv-cyan-bright); }
.sol-page--gv .gv-hub-svg .gv-hub-center-label {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 800;
  fill: #fff;
  letter-spacing: 0.04em;
}
.sol-page--gv .gv-hub-svg .gv-hub-center-sub {
  font-family: var(--font-display);
  font-size: 7px;
  fill: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.1em;
}

.sol-page--gv .gv-hub-audit {
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
}
.sol-page--gv .gv-hub-audit-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.sol-page--gv .gv-hub-audit-title {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}
.sol-page--gv .gv-hub-audit-lgpd {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  color: #34d399;
  letter-spacing: 0.04em;
}
.sol-page--gv .gv-hub-audit-lgpd::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
  animation: gv-glow 2s ease-in-out infinite;
}
.sol-page--gv .gv-hub-audit-log {
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.7;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sol-page--gv .gv-hub-audit-line {
  opacity: 0;
  transition: opacity 0.4s ease-out;
}
.sol-page--gv .gv-hub-audit-line--hi { color: var(--gv-cyan-bright); }
.sol-page--gv .reveal.in-view .gv-hub-audit-line { opacity: 1; }
.sol-page--gv .reveal.in-view .gv-hub-audit-line:nth-child(1) { transition-delay: 1.4s; }
.sol-page--gv .reveal.in-view .gv-hub-audit-line:nth-child(2) { transition-delay: 1.7s; }
.sol-page--gv .reveal.in-view .gv-hub-audit-line:nth-child(3) { transition-delay: 2.0s; }

/* ============ HERO MOCK shell — substitui o card de inferência por chat ============ */
.sol-page--gv .gv-hero-mock {
  display: flex;
  justify-content: flex-end;
}

/* ============ PREFERS-REDUCED-MOTION ============ */
@media (prefers-reduced-motion: reduce) {
  .sol-page--gv .gv-chat-typing span,
  .sol-page--gv .gv-chat-foot-live::before,
  .sol-page--gv .gv-intent-analyzing-pill svg,
  .sol-page--gv .gv-hub-svg .gv-hub-line,
  .sol-page--gv .gv-hub-svg .gv-hub-center-ring,
  .sol-page--gv .gv-hub-audit-lgpd::before {
    animation: none !important;
  }
  .sol-page--gv .gv-chat-bubble,
  .sol-page--gv .gv-intent-option-bar,
  .sol-page--gv .gv-hub-audit-line {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    width: var(--bar-target, 50%) !important;
  }
  .sol-page--gv .gv-hub-svg .gv-hub-line { opacity: 0.55 !important; }
  .sol-page--gv .gv-hub-svg .gv-hub-center-ring { opacity: 0.35 !important; }
}



/* ===================================================================
   SOLUÇÃO: INFRAESTRUTURA DE TI (.sol-page--it)
   =================================================================== */
/* ===================================================================
   SOLUÇÃO: INFRAESTRUTURA DE TI (.sol-page--it)
   Mesma paleta cyan dos outros painéis técnicos,
   mockups de SRE: status de racks, topologia DC↔DR↔Cloud,
   timeline de capacidade. Clone funcional do layout IA-privado.
   =================================================================== */

.sol-page--it {
  --it-cyan: #0096ff;
  --it-cyan-bright: #33adff;
  --it-cyan-soft: rgba(0, 150, 255, 0.12);
  --it-cyan-border: rgba(0, 150, 255, 0.32);
  --it-mono: var(--font-display);
  --it-ink: #051536;
  --it-ink-2: #0b1f4d;
  --it-text-sec: rgba(255, 255, 255, 0.72);
  --it-text-mute: rgba(255, 255, 255, 0.5);
  --it-card-bg: rgba(255, 255, 255, 0.04);
  --it-card-border: rgba(255, 255, 255, 0.08);
  --it-line: rgba(8, 39, 100, 0.08);
}

/* ---------- Primitivos ---------- */
.sol-page--it .it-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--it .it-eyebrow--dark { color: var(--it-cyan); }

.sol-page--it .it-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--it-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: it-pulse 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite;
  flex-shrink: 0;
}
@keyframes it-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--it .it-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--it .it-h2--center { text-align: center; }
.sol-page--it .it-h2--light { color: #fff; }
.sol-page--it .it-accent {
  background: linear-gradient(135deg, var(--it-cyan-bright), var(--it-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--it .it-accent-dark {
  background: linear-gradient(135deg, var(--it-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sol-page--it .it-p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 18px;
}
.sol-page--it .it-p:last-child { margin-bottom: 0; }

.sol-page--it .it-section-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--it .it-section-sub--light { color: var(--it-text-sec); }
.sol-page--it .it-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}

.sol-page--it .it-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--it .it-btn--primary {
  background: linear-gradient(135deg, var(--it-cyan), var(--it-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--it .it-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.7);
}
.sol-page--it .it-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--it .it-btn--ghost:hover {
  border-color: var(--it-cyan-bright);
  color: var(--it-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--it .it-btn--lg { padding: 16px 36px; font-size: 16px; }

/* ---------- HERO IMERSIVO ---------- */
/* overflow-x: clip (nao 'hidden') evita virar scroll-container e quebrar o
   position: sticky do .it-diag-head. 'hidden' fica de fallback p/ browsers antigos. */
body.sol-page--it { overflow-x: hidden; overflow-x: clip; }
.sol-page--it .it-hero {
  position: relative;
  padding: 140px 0 90px;
  background: var(--it-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--it .it-hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--it .it-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
.sol-page--it .it-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(115deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.82) 45%, rgba(11, 31, 77, 0.7) 100%),
    radial-gradient(circle at 80% 25%, rgba(0, 150, 255, 0.22), transparent 50%);
}
.sol-page--it .it-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
}
.sol-page--it .it-hero-inner {
  position: relative;
  z-index: 3;
}
.sol-page--it .it-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--it-text-mute);
  margin-bottom: 36px;
}
.sol-page--it .it-breadcrumb a {
  color: var(--it-cyan-bright);
  text-decoration: none;
}
.sol-page--it .it-breadcrumb a:hover { text-decoration: underline; }
.sol-page--it .it-breadcrumb span { opacity: 0.5; }
.sol-page--it .it-breadcrumb [aria-current] { opacity: 1; }

.sol-page--it .it-hero-content {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  gap: 80px;
  align-items: center;
}
.sol-page--it .it-hero-text { max-width: 640px; }
.sol-page--it .it-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
.sol-page--it .it-hero-h1 .it-accent { display: inline; }
.sol-page--it .it-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--it-text-sec);
  margin: 0 0 36px;
  text-wrap: pretty;
}
.sol-page--it .it-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Hero mini card */
.sol-page--it .it-hero-mock { display: flex; justify-content: flex-end; }
.sol-page--it .it-mini-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.6);
  color: #fff;
  transform: rotate(-2deg);
  transition: transform 0.5s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--it .it-mini-card:hover { transform: rotate(0deg) translateY(-4px); }
.sol-page--it .it-mini-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.sol-page--it .it-mini-card-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
}
.sol-page--it .it-mini-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--it .it-mini-card-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 13px;
}
.sol-page--it .it-mini-card-row:first-of-type { border-top: none; padding-top: 0; }
.sol-page--it .it-mini-label { color: var(--it-text-sec); }
.sol-page--it .it-mini-val {
  font-family: var(--it-mono);
  font-weight: 600;
  color: #fff;
  font-size: 13px;
}
.sol-page--it .it-mini-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--it .it-mini-dot--green {
  background: #34d399;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}
.sol-page--it .it-mini-dot--amber {
  background: #fbbf24;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.18);
}
.sol-page--it .it-mini-card-spark {
  margin-top: 14px;
  color: var(--it-cyan-bright);
  height: 40px;
}
.sol-page--it .it-mini-card-spark svg { width: 100%; height: 100%; display: block; }

/* ---------- SPLIT GENÉRICO ---------- */
.sol-page--it .it-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sol-page--it .it-split--text-left .it-split-text { order: 0; }
.sol-page--it .it-split--text-left .it-split-visual { order: 1; }
.sol-page--it .it-split--photo-left .it-split-photo-wrap { order: 0; }
.sol-page--it .it-split--photo-left .it-split-text { order: 1; }

/* ---------- OVERVIEW ---------- */
.sol-page--it .it-overview {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(0, 150, 255, 0.08), transparent 40%);
  pointer-events: none;
}
.sol-page--it .it-overview .container { position: relative; z-index: 1; }

.sol-page--it .it-stat-row {
  display: flex;
  gap: 32px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}
.sol-page--it .it-stat-row li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 18px;
  border-left: 2px solid var(--it-cyan);
  min-width: 120px;
}
.sol-page--it .it-stat-row strong {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  line-height: 1;
}
.sol-page--it .it-stat-row > li > span {
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
  line-height: 1.4;
}

/* Mosaico de mockups */
.sol-page--it .it-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
  position: relative;
}
.sol-page--it .it-mosaic-card--big {
  grid-column: 1 / -1;
}
.sol-page--it .it-mosaic-card {
  background: var(--it-ink);
  color: #fff;
  border-radius: 18px;
  padding: 20px 22px;
  border: 1px solid var(--it-card-border);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.35);
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-mosaic-card--query {
  background: linear-gradient(160deg, #061d3f 0%, var(--it-ink) 100%);
}
.sol-page--it .it-mosaic-card--spark {
  background: linear-gradient(160deg, var(--it-ink-2) 0%, var(--it-ink) 100%);
}

.sol-page--it .it-mock-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--it-card-border);
}
.sol-page--it .it-mock-dots { display: flex; gap: 5px; }
.sol-page--it .it-mock-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--it .it-mock-dots span:nth-child(1) { background: #f87171; }
.sol-page--it .it-mock-dots span:nth-child(2) { background: #fbbf24; }
.sol-page--it .it-mock-dots span:nth-child(3) { background: #34d399; }
.sol-page--it .it-mock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.005em;
  flex: 1;
}
.sol-page--it .it-mock-title--mono { font-family: var(--it-mono); font-weight: 500; }
.sol-page--it .it-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--it .it-mock-tag {
  font-family: var(--it-mono);
  font-size: 11px;
  color: var(--it-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 3px 8px;
  border-radius: 6px;
}
.sol-page--it .it-mock-body { display: flex; flex-direction: column; }
.sol-page--it .it-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--it-card-border);
  font-size: 13px;
}
.sol-page--it .it-mock-row:first-of-type { border-top: none; padding-top: 0; }

/* SQL code blocks */
.sol-page--it .it-mock-code {
  font-family: var(--it-mono);
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86);
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-x: auto;
}
.sol-page--it .it-mock-code--lg { font-size: 13px; line-height: 1.8; }
.sol-page--it .it-tk-kw { color: var(--it-cyan-bright); font-weight: 600; }
.sol-page--it .it-tk-fn { color: #fbbf24; }
.sol-page--it .it-tk-str { color: #34d399; }
.sol-page--it .it-tk-cm { color: rgba(255, 255, 255, 0.4); font-style: italic; }

.sol-page--it .it-mock-compare {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--it-card-border);
  flex-wrap: wrap;
}
.sol-page--it .it-mock-compare-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}
.sol-page--it .it-mock-compare-item--before { color: #f87171; }
.sol-page--it .it-mock-compare-item--after { color: var(--it-cyan-bright); }
.sol-page--it .it-mock-compare-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}
.sol-page--it .it-mock-compare-val {
  font-family: var(--it-mono);
  font-weight: 700;
  font-size: 16px;
}
.sol-page--it .it-mock-compare-arrow { color: rgba(255, 255, 255, 0.4); }
.sol-page--it .it-mock-compare-gain {
  margin-left: auto;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--it-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 6px 12px;
  border-radius: 100px;
}
.sol-page--it .it-mock-compare--lg .it-mock-compare-val { font-size: 22px; }

/* spark mosaic */
.sol-page--it .it-mock-spark-title {
  font-family: var(--it-mono);
  font-size: 11px;
  color: var(--it-text-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 8px;
}
.sol-page--it .it-mock-spark {
  width: 100%;
  height: 70px;
  display: block;
  color: var(--it-cyan-bright);
}
.sol-page--it .it-mock-spark-val {
  font-family: var(--it-mono);
  font-size: 18px;
  color: #fff;
  font-weight: 700;
  display: block;
  margin-top: 6px;
}
.sol-page--it .it-mock-spark-trend {
  font-size: 12px;
  color: #34d399;
  margin-left: 6px;
  font-weight: 600;
}

/* ---------- FRENTES (3 splits alternados) ---------- */
.sol-page--it .it-frentes {
  background: #fff;
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-frente {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  margin-top: 88px;
}
.sol-page--it .it-frente:first-of-type { margin-top: 0; }
.sol-page--it .it-frente--reverse .it-frente-content { order: 0; }
.sol-page--it .it-frente--reverse .it-frente-visual { order: 1; }

.sol-page--it .it-frente-num {
  display: inline-flex;
  align-items: center;
  font-family: var(--it-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--it-cyan);
  margin-bottom: 16px;
}
.sol-page--it .it-frente-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--it .it-frente-p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 22px;
}
.sol-page--it .it-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--it .it-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--azul-profundo);
}
.sol-page--it .it-checklist svg {
  flex-shrink: 0;
  margin-top: 4px;
  padding: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--it-cyan-soft);
  color: var(--it-cyan);
}

/* Frente visual (photo + blob + floating card) */
.sol-page--it .it-frente-visual {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--it .it-frente-blob {
  position: absolute;
  inset: -10% -8% -10% -8%;
  background: linear-gradient(135deg, var(--it-cyan) 0%, var(--azul-medio) 100%);
  border-radius: 62% 38% 47% 53% / 56% 44% 56% 44%;
  filter: blur(0px);
  opacity: 0.88;
  z-index: 0;
  transform: rotate(-3deg);
}
.sol-page--it .it-frente-blob--alt {
  background: linear-gradient(135deg, var(--azul-medio) 0%, var(--it-cyan-bright) 100%);
  border-radius: 48% 52% 36% 64% / 50% 60% 40% 50%;
  transform: rotate(4deg);
}
.sol-page--it .it-frente-blob--time {
  background: linear-gradient(160deg, var(--it-cyan-bright) 0%, var(--azul-medio) 100%);
  border-radius: 56% 44% 60% 40% / 44% 56% 44% 56%;
  transform: rotate(-5deg);
}
.sol-page--it .it-frente-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.45);
  transform: rotate(0deg);
  transition: transform 0.6s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--it .it-frente-photo:hover { transform: rotate(-1deg) scale(1.02); }
.sol-page--it .it-frente-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sol-page--it .it-frente-floating-card {
  position: absolute;
  z-index: 2;
  bottom: -18px;
  right: -22px;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  box-shadow: 0 24px 50px -10px rgba(8, 39, 100, 0.3), 0 0 0 1px rgba(8, 39, 100, 0.05);
  min-width: 240px;
  font-family: var(--font-display);
}
.sol-page--it .it-frente-floating-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--texto-sec-escuro, #4b5563);
}
.sol-page--it .it-frente-floating-row--bold {
  font-family: var(--it-mono);
  font-weight: 600;
  color: var(--azul-profundo);
  font-size: 15px;
  margin-top: 4px;
  justify-content: space-between;
}
.sol-page--it .it-frente-floating-time {
  color: #f87171;
  font-weight: 700;
}
.sol-page--it .it-frente-floating-action {
  margin-top: 6px;
  font-size: 11px;
  color: var(--it-cyan);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sol-page--it .it-frente-floating-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--it-cyan);
  font-weight: 600;
}

/* Mockups dentro de bd-frente-visual--mock */
.sol-page--it .it-frente-visual--mock { aspect-ratio: auto; }
.sol-page--it .it-frente-visual--mock .it-mock {
  position: relative;
  z-index: 1;
  background: var(--it-ink);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: 0 28px 70px -20px rgba(8, 39, 100, 0.4);
  color: #fff;
  border: 1px solid var(--it-card-border);
}

/* Replication topology */
.sol-page--it .it-mock--topo .it-topo {
  padding: 24px 0 10px;
}
.sol-page--it .it-topo {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.sol-page--it .it-topo-node {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--it-cyan-border);
  background: rgba(0, 150, 255, 0.06);
  min-width: 160px;
  position: relative;
}
.sol-page--it .it-topo-node--primary {
  border-color: var(--it-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.08);
}
.sol-page--it .it-topo-tag {
  font-family: var(--it-mono);
  font-size: 10px;
  color: var(--it-cyan-bright);
  letter-spacing: 0.12em;
  font-weight: 600;
}
.sol-page--it .it-topo-tag--replica { color: rgba(255, 255, 255, 0.55); }
.sol-page--it .it-topo-name {
  font-family: var(--it-mono);
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}
.sol-page--it .it-topo-meta {
  font-family: var(--it-mono);
  font-size: 11px;
  color: var(--it-text-mute);
}
.sol-page--it .it-topo-node--replica .it-mini-dot {
  position: absolute;
  top: 14px;
  right: 14px;
}
.sol-page--it .it-topo-lines {
  width: 100%;
  height: 100px;
  display: block;
}
.sol-page--it .it-topo-flow {
  animation: it-flow 1.6s linear infinite;
}
@keyframes it-flow {
  to { stroke-dashoffset: -20; }
}
.sol-page--it .it-topo-replicas {
  display: flex;
  gap: 18px;
  justify-content: center;
  width: 100%;
  flex-wrap: wrap;
}
.sol-page--it .it-topo-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  margin-top: 16px;
  border-top: 1px solid var(--it-card-border);
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--it-text-sec);
  flex-wrap: wrap;
}

/* ---------- POR TRÁS DA OPERAÇÃO ---------- */
.sol-page--it .it-time {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-split-photo-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
}
.sol-page--it .it-split-photo {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.5);
}
.sol-page--it .it-split-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--it .it-time-stat {
  position: absolute;
  z-index: 2;
  bottom: -22px;
  left: -22px;
  background: var(--it-ink);
  color: #fff;
  border-radius: 18px;
  padding: 22px 28px;
  box-shadow: 0 24px 60px -16px rgba(8, 39, 100, 0.45);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--it-cyan-border);
}
.sol-page--it .it-time-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 36px;
  letter-spacing: -0.02em;
  color: var(--it-cyan-bright);
  line-height: 1;
}
.sol-page--it .it-time-stat-sm { font-size: 22px; opacity: 0.55; margin: 0 2px; }
.sol-page--it .it-time-stat-lbl {
  font-family: var(--it-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--it-text-sec);
  margin-top: 6px;
}

.sol-page--it .it-time-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.sol-page--it .it-time-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: flex-start;
}
.sol-page--it .it-time-list-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--it-cyan-soft);
  color: var(--it-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sol-page--it .it-time-list strong {
  display: block;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin-bottom: 4px;
}
.sol-page--it .it-time-list span {
  display: block;
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
}

/* ---------- BENEFITS (sobre bg-foto) ---------- */
.sol-page--it .it-benefits {
  position: relative;
  padding: 120px 0;
  background: var(--it-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--it .it-benefits-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--it .it-benefits-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.7);
}
.sol-page--it .it-benefits-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 21, 54, 0.94) 0%, rgba(5, 21, 54, 0.88) 100%),
    radial-gradient(circle at 20% 80%, rgba(0, 150, 255, 0.2), transparent 50%);
}
.sol-page--it .it-benefits-inner { position: relative; z-index: 2; }
.sol-page--it .it-benefits-grid {
  list-style: none;
  padding: 0;
  margin: 56px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.sol-page--it .it-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(51, 173, 255, 0.15);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 14px;
  color: #fff;
  font-size: 15px;
  line-height: 1.55;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--it .it-benefit:hover {
  background: rgba(51, 173, 255, 0.08);
  border-color: var(--it-cyan-border);
  transform: translateY(-3px);
}
.sol-page--it .it-benefit-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(51, 173, 255, 0.18);
  color: var(--it-cyan-bright);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* ---------- CASES (editorial proof, light, 3-col grid) ---------- */
.sol-page--it .it-cases {
  position: relative;
  padding: 96px 0 108px;
  background: #ffffff;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--it .it-cases-grid-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  pointer-events: none;
}
.sol-page--it .it-cases-glow {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 540px;
  height: 540px;
  background: radial-gradient(circle, rgba(0, 150, 255, 0.08) 0%, transparent 65%);
  filter: blur(40px);
  z-index: 0;
  pointer-events: none;
}
.sol-page--it .it-cases-inner {
  position: relative;
  z-index: 2;
}
.sol-page--it .it-cases-list {
  list-style: none;
  padding: 0;
  margin: 60px 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.sol-page--it .it-case-card {
  position: relative;
  height: 100%;
  padding: 34px 30px 32px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
  border: 1px solid rgba(8, 39, 100, 0.08);
  box-shadow: 0 10px 28px -16px rgba(8, 39, 100, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s var(--ease, cubic-bezier(0.16, 1, 0.3, 1)), border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--it .it-case-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 30px;
  right: 30px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--it-cyan), transparent);
  opacity: 0.5;
  pointer-events: none;
}
.sol-page--it .it-case-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 150, 255, 0.32);
  box-shadow: 0 18px 40px -16px rgba(8, 39, 100, 0.22);
}
.sol-page--it .it-case-head {
  display: flex;
  align-items: center;
  gap: 10px 12px;
  padding-bottom: 18px;
  margin-bottom: 26px;
  border-bottom: 1px dashed rgba(8, 39, 100, 0.12);
  flex-wrap: wrap;
}
.sol-page--it .it-case-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: -0.02em;
  color: var(--it-cyan);
  line-height: 1;
  padding-right: 10px;
  border-right: 1px solid rgba(8, 39, 100, 0.16);
}
.sol-page--it .it-case-chip {
  font-family: var(--it-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--it-cyan);
  background: rgba(0, 150, 255, 0.08);
  border: 1px solid rgba(0, 150, 255, 0.18);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--it .it-case-where {
  flex-basis: 100%;
  font-family: var(--it-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.72);
  margin-top: 2px;
  line-height: 1.3;
}
.sol-page--it .it-case-body {
  display: flex;
  flex-direction: column;
  gap: 28px;
  flex: 1;
}
.sol-page--it .it-case-aside {
  display: flex;
  align-items: center;
  gap: 22px;
}
.sol-page--it .it-case-logo-plate {
  position: relative;
  padding: 12px 14px;
  background: #f8f5ed;
  border-radius: 12px;
  border: 1px solid rgba(8, 39, 100, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 112px;
  height: 60px;
}
.sol-page--it .it-case-logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sol-page--it .it-case-logo-plate--mono {
  background: linear-gradient(135deg, #f1f4fa 0%, #e6ecf6 100%);
  border-color: rgba(8, 39, 100, 0.1);
  gap: 8px;
  padding: 10px 14px;
}
.sol-page--it .it-case-mono-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: rgba(0, 150, 255, 0.12);
  color: var(--it-cyan);
  flex-shrink: 0;
}
.sol-page--it .it-case-mono-name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--azul-profundo);
  line-height: 1;
}
.sol-page--it .it-case-kpi {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.sol-page--it .it-case-kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 42px);
  letter-spacing: -0.035em;
  line-height: 0.95;
  background: linear-gradient(135deg, var(--azul-profundo) 0%, var(--it-cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--it .it-case-kpi-unit {
  font-size: 0.55em;
  font-weight: 700;
  margin-left: 1px;
}
.sol-page--it .it-case-kpi-lbl {
  font-family: var(--it-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.78);
  line-height: 1.55;
  max-width: 220px;
}
.sol-page--it .it-case-main { position: relative; }
.sol-page--it .it-case-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  line-height: 1.22;
}
.sol-page--it .it-case-quote {
  position: relative;
  margin: 0 0 22px;
  padding: 4px 0 0 22px;
}
.sol-page--it .it-case-quote-mark {
  position: absolute;
  top: -12px;
  left: -2px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  color: var(--it-cyan);
  opacity: 0.3;
}
.sol-page--it .it-case-quote p {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  font-style: italic;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.86);
  margin: 0 0 16px;
}
.sol-page--it .it-case-cite {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--it .it-case-cite cite {
  font-family: var(--it-mono);
  font-size: 9.5px;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--it-cyan);
}
.sol-page--it .it-case-cite span {
  font-family: var(--font-body);
  font-size: 12.5px;
  color: rgba(8, 39, 100, 0.72);
}
.sol-page--it .it-case-stack {
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
}
.sol-page--it .it-case-stack-lbl {
  display: block;
  font-family: var(--it-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--it-cyan);
  margin-bottom: 14px;
}
.sol-page--it .it-case-stack-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--it .it-case-stack-list li {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(8, 39, 100, 0.82);
  padding: 6px 12px;
  background: rgba(0, 150, 255, 0.05);
  border: 1px solid rgba(0, 150, 255, 0.14);
  border-radius: 7px;
  max-width: 100%;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.sol-page--it .it-case-card:hover .it-case-stack-list li {
  background: rgba(0, 150, 255, 0.09);
  border-color: rgba(0, 150, 255, 0.26);
  color: var(--azul-profundo);
}
.sol-page--it .it-cases-foot {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sol-page--it .it-btn--ghost-dark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.005em;
  padding: 10px 22px;
  border-radius: 100px;
  background: transparent;
  color: var(--azul-profundo);
  border: 1.5px solid rgba(8, 39, 100, 0.22);
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  text-decoration: none;
}
.sol-page--it .it-btn--ghost-dark:hover {
  background: rgba(0, 150, 255, 0.06);
  border-color: var(--it-cyan);
  color: var(--it-cyan);
  transform: translateY(-1px);
}

@media (max-width: 980px) {
  .sol-page--it .it-cases { padding: 78px 0 86px; }
  .sol-page--it .it-cases-list {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 580px;
    margin-left: auto;
    margin-right: auto;
  }
  .sol-page--it .it-case-card { padding: 30px 26px 28px; }
  .sol-page--it .it-case-kpi-num { font-size: clamp(28px, 6vw, 36px); }
}
@media (max-width: 640px) {
  .sol-page--it .it-cases { padding: 56px 0 64px; }
  .sol-page--it .it-case-head { gap: 8px; }
}

/* ---------- PARTNERS ---------- */
.sol-page--it .it-partners {
  background: #fff;
  padding: 110px 0;
}
.sol-page--it .it-partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1120px;
  margin: 0 auto;
}
.sol-page--it .it-partner-card {
  background: var(--offwhite);
  border: 1px solid var(--it-line);
  border-radius: 20px;
  padding: 36px 32px;
  text-align: center;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--it .it-partner-card:hover {
  border-color: var(--it-cyan-border);
  box-shadow: 0 18px 40px -16px rgba(0, 150, 255, 0.25);
  transform: translateY(-4px);
}
.sol-page--it .it-partner-name {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  color: var(--azul-profundo);
  letter-spacing: -0.04em;
  margin-bottom: 14px;
}
.sol-page--it .it-partner-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--it-cyan);
  background: var(--it-cyan-soft);
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 18px;
}
.sol-page--it .it-partner-badge svg { color: var(--it-cyan); }
.sol-page--it .it-partner-desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0;
}

/* ---------- CTA com bg-foto ---------- */
.sol-page--it .it-cta {
  position: relative;
  padding: 130px 0;
  background: var(--it-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--it .it-cta-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--it .it-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--it .it-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(5, 21, 54, 0.95) 0%, rgba(11, 31, 77, 0.85) 60%, rgba(0, 150, 255, 0.35) 130%),
    radial-gradient(circle at 70% 30%, rgba(51, 173, 255, 0.18), transparent 55%);
}
.sol-page--it .it-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  color: #fff;
}
.sol-page--it .it-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--it .it-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--it-text-sec);
  margin: 0 0 32px;
  text-wrap: pretty;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .sol-page--it .it-hero { min-height: auto; padding: 130px 0 80px; }
  .sol-page--it .it-hero-content { grid-template-columns: 1fr; gap: 56px; }
  .sol-page--it .it-hero-text,
  .sol-page--it .it-hero-mock { min-width: 0; max-width: 100%; }
  .sol-page--it .it-hero-mock { justify-content: flex-start; }
  .sol-page--it .it-mini-card { max-width: 100%; }
  .sol-page--it .it-rack-card { max-width: 100%; }
  .sol-page--it .it-split,
  .sol-page--it .it-frente,
  .sol-page--it .it-frente--reverse { grid-template-columns: 1fr; gap: 48px; }
  .sol-page--it .it-split--photo-left .it-split-photo-wrap,
  .sol-page--it .it-frente--reverse .it-frente-visual,
  .sol-page--it .it-frente-visual { order: 0; }
  .sol-page--it .it-split--photo-left .it-split-text,
  .sol-page--it .it-frente--reverse .it-frente-content,
  .sol-page--it .it-frente-content { order: 1; }
  .sol-page--it .it-mosaic { grid-template-columns: 1fr; }
  .sol-page--it .it-mosaic-card--big { grid-column: 1; }
  .sol-page--it .it-benefits-grid { grid-template-columns: 1fr; }
  .sol-page--it .it-partners-grid { grid-template-columns: repeat(2, 1fr); max-width: 760px; }
}
@media (max-width: 640px) {
  .sol-page--it .it-partners-grid { grid-template-columns: 1fr; }
  .sol-page--it .it-hero { padding: 110px 0 70px; }
  .sol-page--it .it-hero-h1 { font-size: clamp(26px, 7vw, 34px);}
  .sol-page--it .it-hero-ctas { width: 100%; max-width: 100%; }
  .sol-page--it .it-hero-ctas .it-btn { width: 100%; max-width: 100%; justify-content: center; padding: 14px 18px; min-width: 0; font-size: 14px; }
  .sol-page--it .it-rack-card { padding: 16px 14px; }
  .sol-page--it .it-rack-row { padding: 10px 12px; }
  .sol-page--it .it-overview,
  .sol-page--it .it-frentes,
  .sol-page--it .it-time,
  .sol-page--it .it-benefits,
  .sol-page--it .it-partners,
  .sol-page--it .it-cta { padding: 80px 0; }
  .sol-page--it .it-frente { margin-top: 64px; }
  .sol-page--it .it-stat-row { gap: 18px; }
  .sol-page--it .it-stat-row li { min-width: 100%; }
  .sol-page--it .it-frente-floating-card { right: 0; bottom: -10px; min-width: 0; max-width: 90%; }
  .sol-page--it .it-mock-compare { gap: 8px; }
  .sol-page--it .it-mock-compare-gain { margin-left: 0; }
  .sol-page--it .it-time-stat { left: -10px; bottom: -14px; padding: 16px 20px; }
  .sol-page--it .it-time-stat-num { font-size: 28px; }
  .sol-page--it .it-topo-replicas { flex-direction: column; align-items: center; }
}


/* ================================================================ */
/* BD + CS — BRIDGE CTA (após as 3 frentes) + BENEFITS INLINE CTA   */
/* ================================================================ */

/* ---------- BRIDGE CTA: IA para Empresas Privadas ---------- */
.sol-page--it .it-bridge {
  padding: 50px 0 90px;
  position: relative;
  background: #fff;
}
.sol-page--it .it-bridge-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  padding: 44px 48px;
  border-radius: 28px;
  background: linear-gradient(135deg, var(--offwhite, #f8fcff) 0%, #fff 100%);
  border: 1px solid var(--cinza-suave, #e6edf6);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-bridge-inner::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -8%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(0, 151, 178, 0.14) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--it .it-bridge-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.045) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events: none;
}
.sol-page--it .it-bridge-text {
  position: relative;
  z-index: 2;
  max-width: 680px;
}
.sol-page--it .it-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 14px 0 10px;
  line-height: 1.22;
  letter-spacing: -0.01em;
}
.sol-page--it .it-bridge-p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4A5568);
  margin: 0;
}
.sol-page--it .it-bridge-inner .it-btn {
  position: relative;
  z-index: 2;
}

/* ---------- BENEFITS INLINE CTA: IA para Empresas Privadas ---------- */
.sol-page--it .it-benefits-cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.sol-page--it .it-benefits-cta-text {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 600;
  color: #fff;
  margin: 0;
  letter-spacing: -0.005em;
  max-width: 640px;
}

/* ---------- Responsivo: bridge CTA IA ---------- */
@media (max-width: 820px) {
  .sol-page--it .it-bridge { padding: 30px 0 60px; }
  .sol-page--it .it-bridge-inner {
    grid-template-columns: 1fr;
    padding: 32px 24px;
    gap: 28px;
    border-radius: 22px;
  }
  .sol-page--it .it-bridge-inner .it-btn { width: 100%; justify-content: center; }
  .sol-page--it .it-benefits-cta { margin-top: 40px; gap: 16px; }
  .sol-page--it .it-benefits-cta .it-btn { width: 100%; justify-content: center; }
}



/* ===================================================================
   IA-PRIVADO — VARIAÇÕES sobre o template BD
   Sobrescritas e adições que diferenciam o layout das demais soluções
   sem quebrar a paleta, fontes e regras de contraste.
   =================================================================== */

/* ---------- HERO MOCK: card de inferência ao vivo (substitui mini-card) ---------- */
.sol-page--it .it-infer-card {
  width: 100%;
  max-width: 380px;
  background: rgba(11, 31, 77, 0.65);
  border: 1px solid rgba(51, 173, 255, 0.2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 20px;
  color: #fff;
}
.sol-page--it .it-infer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--it .it-infer-title {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}
.sol-page--it .it-infer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid rgba(51, 173, 255, 0.32);
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
}
.sol-page--it .it-infer-block {
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  position: relative;
}
.sol-page--it .it-infer-block-label {
  display: block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 8px;
}
.sol-page--it .it-infer-block-text {
  font-family: var(--font-display);
  font-size: 12.5px;
  color: #fff;
  line-height: 1.4;
  font-weight: 500;
}
.sol-page--it .it-infer-block-text strong { color: var(--it-cyan-bright); font-weight: 600; }
.sol-page--it .it-infer-arrow {
  display: flex;
  justify-content: center;
  padding: 8px 0;
  color: var(--it-cyan-bright);
  opacity: 0.5;
  font-size: 14px;
  line-height: 1;
}
.sol-page--it .it-infer-arrow span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: lowercase;
  color: rgba(51, 173, 255, 0.55);
}
.sol-page--it .it-infer-arrow span::before,
.sol-page--it .it-infer-arrow span::after {
  content: "";
  display: inline-block;
  height: 1px;
  width: 22px;
  background: rgba(51, 173, 255, 0.3);
}
.sol-page--it .it-infer-model {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: rgba(51, 173, 255, 0.10);
  border: 1px solid var(--it-cyan-border);
  border-radius: 12px;
}
.sol-page--it .it-infer-model-name {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  color: var(--it-cyan-bright);
  letter-spacing: 0.02em;
}
.sol-page--it .it-infer-model-meta {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.04em;
}
.sol-page--it .it-infer-output { margin-top: 12px; }
.sol-page--it .it-infer-output-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.sol-page--it .it-infer-output-lbl {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
}
.sol-page--it .it-infer-output-val {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1;
}
.sol-page--it .it-infer-output-val span { font-size: 0.6em; color: var(--it-cyan-bright); margin-left: 2px; }
.sol-page--it .it-infer-bar {
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
  margin-bottom: 10px;
}
.sol-page--it .it-infer-bar-fill {
  position: absolute;
  inset: 0 13% 0 0;
  background: linear-gradient(90deg, var(--it-cyan), var(--it-cyan-bright));
  border-radius: 3px;
  box-shadow: 0 0 12px rgba(51, 173, 255, 0.5);
}
.sol-page--it .it-infer-factors {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
  margin: 0;
  padding: 8px 0 0;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
}
.sol-page--it .it-infer-factors strong { color: rgba(255, 255, 255, 0.78); font-weight: 600; }

/* ---------- MANIFESTO DIAGNÓSTICO (substitui overview) ---------- */
.sol-page--it .it-manifesto-section {
  padding: 100px 0 80px;
  background: var(--offwhite, #fafbfc);
  position: relative;
}
.sol-page--it .it-manifesto-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.sol-page--it .it-manifesto-section .container { position: relative; z-index: 1; }
.sol-page--it .it-manifesto-head {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: end;
  margin-bottom: 56px;
}
.sol-page--it .it-manifesto-head .it-h2 { margin: 0; }
.sol-page--it .it-manifesto-head-aside {
  font-size: 15px;
  line-height: 1.65;
  color: var(--azul-profundo);
  opacity: 0.72;
  margin: 0;
  max-width: 540px;
}
.sol-page--it .it-manifesto-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.sol-page--it .it-manifesto-item {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  padding: 28px 32px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 16px;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--it .it-manifesto-item:hover {
  border-color: rgba(51, 173, 255, 0.32);
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.18);
}
.sol-page--it .it-manifesto-tag {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 4px;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--it-cyan);
  text-transform: uppercase;
}
.sol-page--it .it-manifesto-tag::before {
  content: "";
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(51, 173, 255, 0.12);
  border: 1px solid var(--it-cyan-border);
  margin-bottom: 10px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2306b6d4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='9' x2='12' y2='13'/><line x1='12' y1='17' x2='12.01' y2='17'/><path d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/></svg>");
  background-position: center;
  background-repeat: no-repeat;
}
.sol-page--it .it-manifesto-title {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 0 0 8px;
  line-height: 1.25;
  letter-spacing: -0.012em;
}
.sol-page--it .it-manifesto-text {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(8, 39, 100, 0.68);
  margin: 0;
}

/* ---------- PIPELINE: 3 frentes stacked com conector ---------- */
.sol-page--it .it-pipeline {
  padding: 100px 0;
  position: relative;
  background: #fff;
}
.sol-page--it .it-pipeline::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}
.sol-page--it .it-pipeline .container { position: relative; z-index: 1; }
.sol-page--it .it-pipeline-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 56px;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
.sol-page--it .it-step {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 28px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 50px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  z-index: 1;
  transition: transform 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.sol-page--it .it-step:hover { transform: translateY(-3px); }
.sol-page--it .it-step + .it-step { margin-top: 36px; }
.sol-page--it .it-step::before {
  /* connector vertical entre steps */
  content: "";
  position: absolute;
  top: -36px;
  left: 40px;
  height: 36px;
  width: 2px;
  background: linear-gradient(180deg, transparent 0%, var(--it-cyan) 50%, transparent 100%);
  z-index: 0;
}
.sol-page--it .it-step:first-of-type::before { display: none; }
.sol-page--it .it-step-num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #082764 0%, #051536 100%);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 800;
  padding: 36px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-step-num::before {
  content: "";
  position: absolute;
  top: -20%;
  left: -30%;
  width: 200%;
  height: 80%;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.35) 0%, transparent 60%);
  pointer-events: none;
}
.sol-page--it .it-step-num-val {
  font-size: 44px;
  letter-spacing: -0.04em;
  line-height: 1;
  background: linear-gradient(135deg, var(--it-cyan-bright), var(--it-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  position: relative;
  z-index: 1;
}
.sol-page--it .it-step-num-lbl {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  margin-top: 6px;
  position: relative;
  z-index: 1;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  padding: 6px 0;
}
.sol-page--it .it-step-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
}
.sol-page--it .it-step-content {
  padding: 32px 36px 32px 0;
}
.sol-page--it .it-step-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--it-cyan);
  margin-bottom: 14px;
}
.sol-page--it .it-step-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h4);
  line-height: 1.18;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 14px;
  text-wrap: balance;
}
.sol-page--it .it-step-p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.65);
  margin: 0 0 18px;
}
.sol-page--it .it-step-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--it .it-step-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--azul-profundo);
}
.sol-page--it .it-step-list svg {
  flex-shrink: 0;
  margin-top: 3px;
  width: 18px;
  height: 18px;
  padding: 3px;
  background: rgba(51, 173, 255, 0.12);
  color: var(--it-cyan);
  border-radius: 50%;
}
.sol-page--it .it-step-visual {
  background: linear-gradient(135deg, #082764 0%, #051536 100%);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-step-visual::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 80%;
  height: 80%;
  background: radial-gradient(circle, rgba(51, 173, 255, 0.18) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--it .it-step-visual > * { position: relative; z-index: 1; }
.sol-page--it .it-step-visual--photo { padding: 0; background: var(--it-ink); }
.sol-page--it .it-step-visual--photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  min-height: 300px;
}
.sol-page--it .it-step-visual--photo .it-step-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 21, 54, 0.05) 0%, rgba(5, 21, 54, 0.4) 100%);
  z-index: 1;
}
.sol-page--it .it-step-visual--photo .it-step-photo-tag {
  position: absolute;
  bottom: 18px;
  left: 18px;
  z-index: 2;
  font-family: var(--font-display);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--it-cyan-bright);
  background: rgba(10, 18, 40, 0.7);
  padding: 6px 12px;
  border-radius: 4px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* Mock-specific inside step */
.sol-page--it .it-step-mock-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--it .it-step-mock-title {
  font-family: var(--font-display);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sol-page--it .it-step-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid var(--it-cyan-border);
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--it-cyan-bright);
}
.sol-page--it .it-step-mock-stat {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 6px 0 14px;
}
.sol-page--it .it-step-mock-stat-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 36px;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
}
.sol-page--it .it-step-mock-stat-unit {
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--it-cyan-bright);
  font-weight: 600;
}
.sol-page--it .it-step-mock-stat-lbl {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.sol-page--it .it-step-mock-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}
.sol-page--it .it-step-mock-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 11px;
}
.sol-page--it .it-step-mock-row-lbl { color: rgba(255, 255, 255, 0.65); }
.sol-page--it .it-step-mock-row-val { color: #fff; font-weight: 600; }
.sol-page--it .it-step-mock-row .it-mini-dot { width: 7px; height: 7px; }
.sol-page--it .it-step-mock-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}
.sol-page--it .it-step-mock-foot strong { color: var(--it-cyan-bright); font-weight: 600; }

/* SVG chart variant */
.sol-page--it .it-step-mock-chart-svg {
  width: 100%;
  height: 110px;
  display: block;
  margin: 10px 0;
}
.sol-page--it .it-step-mock-legend {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
}
.sol-page--it .it-step-mock-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sol-page--it .it-step-mock-legend-dot {
  display: inline-block;
  width: 10px;
  height: 2px;
}

/* Governance pipeline visualization */
.sol-page--it .it-step-gov-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin: 10px 0 14px;
}
.sol-page--it .it-step-gov-stage {
  padding: 10px 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 9px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  position: relative;
}
.sol-page--it .it-step-gov-stage--active {
  background: rgba(51, 173, 255, 0.12);
  border-color: var(--it-cyan-border);
  color: var(--it-cyan-bright);
  font-weight: 700;
}
.sol-page--it .it-step-gov-stage span {
  display: block;
  font-family: var(--font-display);
  font-size: 14px;
  color: #fff;
  margin-top: 4px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.sol-page--it .it-step-gov-stage--active span { color: var(--it-cyan-bright); }
.sol-page--it .it-step-gov-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.sol-page--it .it-step-gov-check {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.04em;
}
.sol-page--it .it-step-gov-check svg { color: var(--it-ok, #34d399); flex-shrink: 0; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 900px) {
  .sol-page--it .it-manifesto-head {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
  }
  .sol-page--it .it-manifesto-grid { grid-template-columns: 1fr; }
  .sol-page--it .it-step { grid-template-columns: 64px 1fr; }
  .sol-page--it .it-step-num { padding: 20px 0; }
  .sol-page--it .it-step-num-val { font-size: 32px; }
  .sol-page--it .it-step-body { grid-template-columns: 1fr; }
  .sol-page--it .it-step-content { padding: 24px 24px 28px; order: 2; }
  .sol-page--it .it-step-visual { padding: 20px; min-height: 220px; order: 1; }
  .sol-page--it .it-step-visual--photo { min-height: 220px; }
  .sol-page--it .it-step-visual--photo img { min-height: 220px; }
  .sol-page--it .it-step::before { left: 32px; }
}

@media (max-width: 600px) {
  .sol-page--it .it-manifesto-section { padding: 70px 0 60px; }
  .sol-page--it .it-manifesto-item { padding: 22px 22px; grid-template-columns: 48px 1fr; gap: 14px; }
  .sol-page--it .it-manifesto-tag { font-size: 10px; padding-top: 2px; }
  .sol-page--it .it-manifesto-tag::before { width: 24px; height: 24px; margin-bottom: 8px; }
  .sol-page--it .it-pipeline { padding: 70px 0; }
  .sol-page--it .it-step { grid-template-columns: 48px 1fr; }
  .sol-page--it .it-step-num-val { font-size: 26px; }
  .sol-page--it .it-step-num-lbl { font-size: 9px; }
  .sol-page--it .it-step::before { left: 24px; }
  .sol-page--it .it-step + .it-step { margin-top: 28px; }
  .sol-page--it .it-step::before { top: -28px; height: 28px; }
  .sol-page--it .it-infer-card { padding: 16px; max-width: 100%; }
  .sol-page--it .it-infer-output-val { font-size: 18px; }
}



/* ===================================================================
   IA-PRIVADO — MOCKUPS REPAGINADOS + ANIMAÇÕES
   3 mockups (hero inference card, predictive chart, governance lifecycle)
   ganham animações sutis para dar dinamismo. Tudo respeita
   prefers-reduced-motion.
   =================================================================== */

/* ============ KEYFRAMES COMPARTILHADAS ============ */
@keyframes it-scan {
  0% { transform: translateX(-110%); }
  60% { transform: translateX(110%); }
  100% { transform: translateX(110%); }
}
@keyframes it-flow-dash {
  to { stroke-dashoffset: -16; }
}
@keyframes it-soft-pulse {
  0%, 100% { opacity: 0.92; }
  50% { opacity: 0.55; }
}
@keyframes it-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(51, 173, 255, 0.42); }
  50% { box-shadow: 0 0 0 6px rgba(51, 173, 255, 0); }
}
@keyframes it-count-tick {
  0%, 95%, 100% { opacity: 1; }
  96%, 99% { opacity: 0.6; }
}

/* ============ HERO INFER CARD — repaginação ============ */
.sol-page--it .it-infer-block {
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-infer-block::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(51, 173, 255, 0.12) 45%,
    rgba(51, 173, 255, 0.22) 50%,
    rgba(51, 173, 255, 0.12) 55%,
    transparent 100%);
  animation: it-scan 3s ease-in-out infinite;
  animation-delay: 0.4s;
  pointer-events: none;
}
.sol-page--it .it-infer-arrow {
  position: relative;
}
.sol-page--it .it-infer-arrow span::before,
.sol-page--it .it-infer-arrow span::after {
  background: repeating-linear-gradient(90deg,
    var(--it-cyan-bright) 0,
    var(--it-cyan-bright) 4px,
    transparent 4px,
    transparent 8px);
  background-size: 200% 100%;
  animation: it-arrow-march 1.4s linear infinite;
  height: 1.5px;
}
@keyframes it-arrow-march {
  0% { background-position: 0 0; }
  100% { background-position: -16px 0; }
}

.sol-page--it .it-infer-model {
  position: relative;
  overflow: hidden;
}
.sol-page--it .it-infer-model::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(51, 173, 255, 0.10) 45%,
    rgba(51, 173, 255, 0.18) 50%,
    rgba(51, 173, 255, 0.10) 55%,
    transparent 100%);
  animation: it-scan 2.6s ease-in-out infinite;
  pointer-events: none;
}
.sol-page--it .it-infer-model-meta { position: relative; z-index: 1; }
.sol-page--it .it-infer-model-name { position: relative; z-index: 1; }

/* Bar fill animation (triggered on .in-view) */
.sol-page--it .it-infer-bar { overflow: hidden; }
.sol-page--it .it-infer-bar-fill {
  inset: 0 100% 0 0;  /* start collapsed */
  transition: inset 1.6s 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}
.sol-page--it .it-infer-bar-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
  animation: it-scan 2.4s ease-in-out infinite;
  animation-delay: 2s;
}
.sol-page--it .reveal.in-view .it-infer-bar-fill[data-fill="87"] { inset: 0 13% 0 0; }
.sol-page--it .reveal.in-view .it-infer-bar-fill[data-fill="94"] { inset: 0 6% 0 0; }

.sol-page--it .it-infer-output-val { position: relative; }
.sol-page--it .it-infer-output-val::after {
  content: "";
  position: absolute;
  inset: -6px -8px;
  border-radius: 8px;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.18), transparent 70%);
  filter: blur(8px);
  z-index: -1;
  animation: it-soft-pulse 3s ease-in-out infinite;
}

.sol-page--it .it-infer-conf {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  margin-bottom: 12px;
  padding: 3px 9px;
  background: rgba(52, 211, 153, 0.10);
  border: 1px solid rgba(52, 211, 153, 0.30);
  border-radius: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #34d399;
}
.sol-page--it .it-infer-conf-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px rgba(52, 211, 153, 0.6);
  animation: it-glow 2s ease-in-out infinite;
}

/* ============ STEP 02 — PREDICTIVE CHART ============ */
.sol-page--it .it-step-mock-stat-num {
  position: relative;
  display: inline-block;
}
.sol-page--it .it-step-mock-stat-num::after {
  content: "";
  position: absolute;
  inset: -8px -12px;
  border-radius: 12px;
  background: radial-gradient(ellipse at center, rgba(51, 173, 255, 0.16), transparent 70%);
  filter: blur(10px);
  z-index: -1;
  animation: it-soft-pulse 3s ease-in-out infinite;
}

.sol-page--it .it-step-mock-chart-svg .it-chart-hist {
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  transition: stroke-dashoffset 1.8s 0.2s cubic-bezier(0.65, 0, 0.35, 1);
}
.sol-page--it .it-step-mock-chart-svg .it-chart-pred-line {
  stroke-dasharray: 4 4;
  stroke-dashoffset: 0;
  opacity: 0;
  transition: opacity 0.5s 1.6s ease-out;
  animation: it-flow-dash 1.4s linear infinite;
}
.sol-page--it .it-step-mock-chart-svg .it-chart-pred-area {
  opacity: 0;
  transition: opacity 0.8s 1.8s ease-out;
}
.sol-page--it .it-step-mock-chart-svg .it-chart-today-line {
  opacity: 0;
  transition: opacity 0.4s 1.4s ease-out;
}
.sol-page--it .it-step-mock-chart-svg .it-chart-today-dot {
  opacity: 0;
  transition: opacity 0.4s 1.5s ease-out;
}
.sol-page--it .it-step-mock-chart-svg .it-chart-today-dot circle:first-child {
  transform-origin: center;
  transform-box: fill-box;
  animation: it-dot-pulse 2.4s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes it-dot-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(2.4); opacity: 0; }
}
.sol-page--it .it-step-mock-chart-svg .it-chart-today-label {
  opacity: 0;
  transition: opacity 0.4s 1.7s ease-out;
}
.sol-page--it .it-step-mock-chart-svg .it-chart-pred-end-pill {
  opacity: 0;
  transition: opacity 0.5s 2.1s ease-out;
}

.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-hist {
  stroke-dashoffset: 0;
}
.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-pred-line,
.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-pred-area,
.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-today-line,
.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-today-dot,
.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-today-label,
.sol-page--it .reveal.in-view .it-step-mock-chart-svg .it-chart-pred-end-pill {
  opacity: 1;
}

/* ============ STEP 03 — GOVERNANCE LIFECYCLE ============ */
.sol-page--it .it-step-gov-flow {
  position: relative;
  grid-template-columns: 1fr 18px 1fr 18px 1fr 18px 1fr;
  gap: 0;
  align-items: stretch;
}
.sol-page--it .it-step-gov-stage {
  padding: 12px 8px;
  position: relative;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  opacity: 0;
  transform: translateY(6px);
}
.sol-page--it .it-step-gov-stage span {
  font-size: 16px;
  margin-top: 6px;
}
.sol-page--it .it-step-gov-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(51, 173, 255, 0.42);
  font-size: 14px;
  line-height: 1;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--it .it-step-gov-stage::after {
  content: "✓";
  position: absolute;
  top: -6px;
  right: -6px;
  width: 16px;
  height: 16px;
  background: #34d399;
  color: var(--it-ink);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s 0.3s ease-out;
  border: 2px solid var(--it-ink);
}
.sol-page--it .it-step-gov-stage--active::after {
  background: var(--it-cyan-bright);
  content: "▶";
  animation: it-glow 2s ease-in-out infinite;
}
.sol-page--it .reveal.in-view .it-step-gov-stage { opacity: 1; transform: translateY(0); }
.sol-page--it .reveal.in-view .it-step-gov-stage:nth-child(1) { transition-delay: 0.2s; }
.sol-page--it .reveal.in-view .it-step-gov-stage:nth-child(3) { transition-delay: 0.45s; }
.sol-page--it .reveal.in-view .it-step-gov-stage:nth-child(5) { transition-delay: 0.7s; }
.sol-page--it .reveal.in-view .it-step-gov-stage:nth-child(7) { transition-delay: 0.95s; }
.sol-page--it .reveal.in-view .it-step-gov-stage::after { opacity: 1; }
.sol-page--it .reveal.in-view .it-step-gov-arrow { opacity: 1; }
.sol-page--it .reveal.in-view .it-step-gov-arrow:nth-child(2) { transition-delay: 0.35s; }
.sol-page--it .reveal.in-view .it-step-gov-arrow:nth-child(4) { transition-delay: 0.6s; }
.sol-page--it .reveal.in-view .it-step-gov-arrow:nth-child(6) { transition-delay: 0.85s; }

.sol-page--it .it-step-gov-check {
  opacity: 0;
  transform: translateY(6px);
  transition: all 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--it .reveal.in-view .it-step-gov-check { opacity: 1; transform: translateY(0); }
.sol-page--it .reveal.in-view .it-step-gov-check:nth-child(1) { transition-delay: 1.2s; }
.sol-page--it .reveal.in-view .it-step-gov-check:nth-child(2) { transition-delay: 1.35s; }
.sol-page--it .reveal.in-view .it-step-gov-check:nth-child(3) { transition-delay: 1.5s; }
.sol-page--it .reveal.in-view .it-step-gov-check:nth-child(4) { transition-delay: 1.65s; }

.sol-page--it .it-step-gov-check svg {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--it .it-step-gov-check:hover svg { transform: scale(1.15); }

.sol-page--it .it-step-mock-foot {
  opacity: 0;
  transform: translateY(4px);
  transition: all 0.5s 1.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--it .reveal.in-view .it-step-mock-foot { opacity: 1; transform: translateY(0); }

.sol-page--it .it-step-mock-foot strong { position: relative; }
.sol-page--it .it-step-mock-foot .it-foot-live::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--it-cyan-bright);
  margin-right: 6px;
  vertical-align: 1px;
  box-shadow: 0 0 0 0 rgba(51, 173, 255, 0.6);
  animation: it-glow 2s ease-in-out infinite;
}

/* ============ PREFERS-REDUCED-MOTION ============ */
@media (prefers-reduced-motion: reduce) {
  .sol-page--it .it-infer-block::after,
  .sol-page--it .it-infer-model::after,
  .sol-page--it .it-infer-arrow span::before,
  .sol-page--it .it-infer-arrow span::after,
  .sol-page--it .it-infer-bar-fill::after,
  .sol-page--it .it-infer-output-val::after,
  .sol-page--it .it-infer-conf-dot,
  .sol-page--it .it-step-mock-stat-num::after,
  .sol-page--it .it-step-mock-chart-svg .it-chart-pred-line,
  .sol-page--it .it-step-mock-chart-svg .it-chart-today-dot circle:first-child,
  .sol-page--it .it-step-gov-stage--active::after,
  .sol-page--it .it-step-mock-foot .it-foot-live::before {
    animation: none !important;
  }
  .sol-page--it .it-infer-bar-fill,
  .sol-page--it .it-step-mock-chart-svg .it-chart-hist,
  .sol-page--it .it-step-mock-chart-svg .it-chart-pred-line,
  .sol-page--it .it-step-mock-chart-svg .it-chart-pred-area,
  .sol-page--it .it-step-mock-chart-svg .it-chart-today-line,
  .sol-page--it .it-step-mock-chart-svg .it-chart-today-dot,
  .sol-page--it .it-step-mock-chart-svg .it-chart-today-label,
  .sol-page--it .it-step-mock-chart-svg .it-chart-pred-end-pill,
  .sol-page--it .it-step-gov-stage,
  .sol-page--it .it-step-gov-arrow,
  .sol-page--it .it-step-gov-check,
  .sol-page--it .it-step-mock-foot {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
  .sol-page--it .it-infer-bar-fill[data-fill="87"] { inset: 0 13% 0 0 !important; }
}

/* ===================================================================

/* ===================================================================
   MOCKUPS ESPECÍFICOS DE INFRAESTRUTURA TI (v2)
   1) Rack Status Monitor (hero) — header em flex, bars em grid alinhado, shimmer
   2) Topologia DC ↔ DR ↔ Cloud (step 02) — nodes alinhados, pulses animados
   3) Distribuição de Cargas (step 03) — stacked bar 100% com legend
   =================================================================== */

/* ---------- MOCKUP 1: Rack Status Monitor (hero) ---------- */
.sol-page--it .it-rack-card {
  position: relative;
  background: linear-gradient(150deg, rgba(11, 31, 77, 0.72), rgba(5, 21, 54, 0.85));
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  border: 1px solid var(--it-cyan-border);
  border-radius: 20px;
  padding: 22px 22px 24px;
  box-shadow:
    0 30px 80px -20px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(51, 173, 255, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  width: 100%;
  max-width: 460px;
  font-family: var(--it-mono);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--it .it-rack-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.5), transparent 70%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.5), transparent 70%);
  z-index: 0;
}
.sol-page--it .it-rack-card > * { position: relative; z-index: 1; }

.sol-page--it .it-rack-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sol-page--it .it-rack-head-title {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sol-page--it .it-rack-head-title strong {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.01em;
}
.sol-page--it .it-rack-head-title span {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 500;
}
.sol-page--it .it-rack-head-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(51, 173, 255, 0.16);
  border: 1px solid var(--it-cyan-border);
  color: var(--it-cyan-bright);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.sol-page--it .it-rack-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sol-page--it .it-rack-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  transition: border-color 0.3s ease, background 0.3s ease;
  opacity: 0;
  transform: translateY(8px);
  animation: it-rack-row-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--it .it-rack-row:nth-child(1) { animation-delay: 0.05s; }
.sol-page--it .it-rack-row:nth-child(2) { animation-delay: 0.18s; }
.sol-page--it .it-rack-row:nth-child(3) { animation-delay: 0.31s; }
.sol-page--it .it-rack-row:nth-child(4) { animation-delay: 0.44s; }
.sol-page--it .it-rack-row:hover {
  border-color: rgba(51, 173, 255, 0.22);
  background: rgba(51, 173, 255, 0.04);
}
@keyframes it-rack-row-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.sol-page--it .it-rack-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.sol-page--it .it-rack-row-id {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1;
}
.sol-page--it .it-rack-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--it-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.18);
  flex-shrink: 0;
  animation: it-pulse 2.4s infinite;
}
.sol-page--it .it-rack-row--warn .it-rack-status-dot {
  background: #fbbf24;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.22);
}
.sol-page--it .it-rack-row-name {
  font-family: var(--it-mono);
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.94);
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sol-page--it .it-rack-row-meta {
  font-size: 9.5px;
  color: var(--it-text-mute);
  font-weight: 500;
  letter-spacing: 0.04em;
  font-family: var(--it-mono);
  flex-shrink: 0;
}
.sol-page--it .it-rack-row-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(51, 173, 255, 0.16);
  border: 1px solid var(--it-cyan-border);
  color: var(--it-cyan-bright);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
  font-family: var(--it-mono);
}
.sol-page--it .it-rack-row--warn .it-rack-row-badge {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(245, 158, 11, 0.4);
  color: #fbbf24;
}

.sol-page--it .it-rack-row-bars {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}
.sol-page--it .it-rack-metric {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.sol-page--it .it-rack-metric-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px;
}
.sol-page--it .it-rack-metric-lbl {
  font-size: 8.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
  font-family: var(--it-mono);
}
.sol-page--it .it-rack-metric-val {
  font-size: 10px;
  font-weight: 700;
  color: var(--it-cyan-bright);
  font-family: var(--it-mono);
  line-height: 1;
}
.sol-page--it .it-rack-row--warn .it-rack-metric-val {
  color: #fbbf24;
}
.sol-page--it .it-rack-metric-bar {
  position: relative;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}
.sol-page--it .it-rack-metric-bar-fill {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--rack-fill, 60%);
  background: linear-gradient(90deg, var(--it-cyan), var(--it-cyan-bright));
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(51, 173, 255, 0.55);
  transform: scaleX(0);
  transform-origin: left center;
  animation: it-rack-fill 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both;
  overflow: hidden;
}
.sol-page--it .it-rack-metric-bar-fill::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -40%;
  width: 40%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
  animation: it-rack-shimmer 3.6s ease-in-out 2s infinite;
}
.sol-page--it .it-rack-row--warn .it-rack-metric-bar-fill {
  background: linear-gradient(90deg, #f59e0b, #fbbf24);
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.55);
}
@keyframes it-rack-fill {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes it-rack-shimmer {
  0%   { left: -40%; }
  60%  { left: 110%; }
  100% { left: 110%; }
}

.sol-page--it .it-rack-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  margin-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--it-text-mute);
  font-family: var(--it-mono);
}
.sol-page--it .it-rack-foot strong {
  color: var(--it-cyan-bright);
  font-weight: 700;
}

/* ---------- MOCKUP 2: Topology DC ↔ DR ↔ Cloud (step 02) ---------- */
.sol-page--it .it-topo {
  position: relative;
  margin-top: 14px;
  padding: 22px 18px 18px;
  background: linear-gradient(180deg, rgba(10, 22, 50, 0.55), rgba(5, 14, 36, 0.4));
  border: 1px solid rgba(51, 173, 255, 0.18);
  border-radius: 12px;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--it .it-topo::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 20px 20px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.4), transparent 80%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.4), transparent 80%);
  pointer-events: none;
  z-index: 0;
}
.sol-page--it .it-topo > * { position: relative; z-index: 1; }

.sol-page--it .it-topo-svg {
  width: 100%;
  height: 130px;
  display: block;
  overflow: visible;
}

/* Nodes — all same dimensions, aligned on Y=55 with viewBox 400x130 */
.sol-page--it .it-topo-node {
  fill: rgba(11, 31, 77, 0.92);
  stroke: rgba(51, 173, 255, 0.35);
  stroke-width: 1.2;
}
.sol-page--it .it-topo-node--primary {
  fill: rgba(0, 150, 255, 0.18);
  stroke: var(--it-cyan-bright);
  stroke-width: 1.6;
  filter: drop-shadow(0 0 6px rgba(51, 173, 255, 0.55));
  animation: it-topo-node-glow 3s ease-in-out infinite;
}
.sol-page--it .it-topo-node--cloud {
  fill: rgba(11, 31, 77, 0.65);
  stroke-dasharray: 4 3;
}
@keyframes it-topo-node-glow {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(51, 173, 255, 0.55)); }
  50%      { filter: drop-shadow(0 0 12px rgba(51, 173, 255, 0.8)); }
}

.sol-page--it .it-topo-label {
  font-family: var(--it-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  fill: rgba(255, 255, 255, 0.94);
  text-anchor: middle;
}
.sol-page--it .it-topo-sub {
  font-family: var(--it-mono);
  font-size: 7.5px;
  letter-spacing: 0.08em;
  fill: var(--it-text-mute);
  text-anchor: middle;
}
.sol-page--it .it-topo-dot {
  fill: var(--it-cyan-bright);
}

/* Lines — straight horizontal between nodes, dashed flow */
.sol-page--it .it-topo-line {
  fill: none;
  stroke: var(--it-cyan-bright);
  stroke-width: 1.4;
  stroke-dasharray: 5 4;
  stroke-linecap: round;
  opacity: 0.6;
  animation: it-topo-flow 2.4s linear infinite;
}
@keyframes it-topo-flow {
  to { stroke-dashoffset: -36; }
}

/* Traveling packets along lines */
.sol-page--it .it-topo-packet {
  fill: var(--it-cyan-bright);
  filter: drop-shadow(0 0 4px rgba(51, 173, 255, 0.9));
}
.sol-page--it .it-topo-packet--1 { animation: it-topo-packet-1 2.4s linear infinite; }
.sol-page--it .it-topo-packet--2 { animation: it-topo-packet-2 2.4s linear infinite 1.2s; }
@keyframes it-topo-packet-1 {
  0%   { cx: 130px; opacity: 0; }
  15%  { opacity: 1; }
  85%  { opacity: 1; }
  100% { cx: 145px; opacity: 0; }
}
@keyframes it-topo-packet-2 {
  0%   { cx: 270px; opacity: 0; }
  15%  { opacity: 1; }
  85%  { opacity: 1; }
  100% { cx: 285px; opacity: 0; }
}

.sol-page--it .it-topo-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 18px;
}
.sol-page--it .it-topo-kpi {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  opacity: 0;
  transform: translateY(6px);
  animation: it-rack-row-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--it .it-topo-kpi:nth-child(1) { animation-delay: 0.2s; }
.sol-page--it .it-topo-kpi:nth-child(2) { animation-delay: 0.35s; }
.sol-page--it .it-topo-kpi:nth-child(3) { animation-delay: 0.5s; }
.sol-page--it .it-topo-kpi-lbl {
  font-family: var(--it-mono);
  font-size: 8.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
}
.sol-page--it .it-topo-kpi-val {
  font-family: var(--it-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--it-cyan-bright);
  line-height: 1;
}
.sol-page--it .it-topo-kpi-val small {
  font-size: 10px;
  color: var(--it-text-mute);
  font-weight: 500;
  margin-left: 3px;
}

/* ---------- MOCKUP 3: Stacked Workload Bar (step 03) ---------- */
.sol-page--it .it-cap {
  margin-top: 14px;
  padding: 18px 16px 16px;
  background: linear-gradient(180deg, rgba(10, 22, 50, 0.55), rgba(5, 14, 36, 0.4));
  border: 1px solid rgba(51, 173, 255, 0.18);
  border-radius: 12px;
}
.sol-page--it .it-cap-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  font-family: var(--it-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--it-text-mute);
}
.sol-page--it .it-cap-head strong {
  color: rgba(255, 255, 255, 0.92);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.sol-page--it .it-cap-stacked {
  display: flex;
  height: 38px;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  position: relative;
}
.sol-page--it .it-cap-stacked-seg {
  width: var(--seg-w, 33%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-family: var(--it-mono);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  transform: scaleX(0);
  transform-origin: left center;
  animation: it-cap-seg-grow 1s cubic-bezier(0.16, 1, 0.3, 1) both;
  min-width: 0;
  overflow: hidden;
}
.sol-page--it .it-cap-stacked-seg + .it-cap-stacked-seg {
  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.14);
}
.sol-page--it .it-cap-stacked-seg--on  {
  background: linear-gradient(180deg, #475569, #334155);
  animation-delay: 0.15s;
}
.sol-page--it .it-cap-stacked-seg--hyb {
  background: linear-gradient(180deg, var(--it-cyan), #0097b2);
  animation-delay: 0.45s;
}
.sol-page--it .it-cap-stacked-seg--cld {
  background: linear-gradient(180deg, var(--it-cyan-bright), #0096ff);
  animation-delay: 0.75s;
}
.sol-page--it .it-cap-stacked-seg span {
  opacity: 0;
  animation: it-cap-pct-in 0.4s ease both;
}
.sol-page--it .it-cap-stacked-seg--on  span { animation-delay: 1s; }
.sol-page--it .it-cap-stacked-seg--hyb span { animation-delay: 1.15s; }
.sol-page--it .it-cap-stacked-seg--cld span { animation-delay: 1.3s; }
@keyframes it-cap-seg-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes it-cap-pct-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.sol-page--it .it-cap-legend {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 14px;
  list-style: none;
  padding: 0;
  font-family: var(--it-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.78);
  flex-wrap: wrap;
}
.sol-page--it .it-cap-legend li {
  display: flex;
  align-items: center;
  gap: 7px;
  letter-spacing: 0.04em;
}
.sol-page--it .it-cap-legend-dot {
  width: 11px;
  height: 11px;
  border-radius: 3px;
  flex-shrink: 0;
}
.sol-page--it .it-cap-legend-dot--on  { background: linear-gradient(180deg, #475569, #334155); }
.sol-page--it .it-cap-legend-dot--hyb { background: linear-gradient(180deg, var(--it-cyan), #0097b2); }
.sol-page--it .it-cap-legend-dot--cld { background: linear-gradient(180deg, var(--it-cyan-bright), #0096ff); }
.sol-page--it .it-cap-legend strong {
  color: #fff;
  font-weight: 700;
  margin-left: 4px;
}

.sol-page--it .it-cap-spark {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--it .it-cap-spark-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 6px;
}
.sol-page--it .it-cap-spark-lbl {
  font-family: var(--it-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
}
.sol-page--it .it-cap-spark-val {
  font-family: var(--it-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--it-cyan-bright);
}
.sol-page--it .it-cap-spark-val small {
  font-size: 9px;
  color: var(--it-text-mute);
  font-weight: 500;
  margin-left: 4px;
}
.sol-page--it .it-cap-spark-svg {
  width: 100%;
  height: 50px;
  display: block;
}
.sol-page--it .it-cap-spark-line {
  fill: none;
  stroke: var(--it-cyan-bright);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
}
.sol-page--it .it-cap-spark-area {
  fill: url(#it-cap-grad);
  opacity: 0;
  transition: opacity 0.6s ease 0.8s;
}
.sol-page--it .it-cap-spark-dot {
  fill: var(--it-cyan-bright);
  opacity: 0;
}
.sol-page--it .it-step.in-view .it-cap-spark-line {
  animation: it-cap-draw 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
}
.sol-page--it .it-step.in-view .it-cap-spark-area { opacity: 1; }
.sol-page--it .it-step.in-view .it-cap-spark-dot { animation: it-cap-dot 0.4s ease 1.6s forwards; }
@keyframes it-cap-draw {
  to { stroke-dashoffset: 0; }
}
@keyframes it-cap-dot {
  to { opacity: 1; }
}

@media (max-width: 720px) {
  .sol-page--it .it-rack-card { max-width: 100%; padding: 18px 16px; }
  .sol-page--it .it-rack-row-bars { gap: 8px; }
  .sol-page--it .it-rack-metric-lbl { font-size: 7.5px; }
  .sol-page--it .it-rack-metric-val { font-size: 9px; }
  .sol-page--it .it-topo-svg { height: 110px; }
  .sol-page--it .it-topo-kpis { grid-template-columns: 1fr 1fr; }
  .sol-page--it .it-topo-kpi:nth-child(3) { grid-column: span 2; }
  .sol-page--it .it-cap-stacked { height: 32px; }
  .sol-page--it .it-cap-stacked-seg { font-size: 10px; }
  .sol-page--it .it-cap-legend { gap: 12px; font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .sol-page--it .it-rack-row,
  .sol-page--it .it-rack-metric-bar-fill,
  .sol-page--it .it-rack-metric-bar-fill::after,
  .sol-page--it .it-topo-line,
  .sol-page--it .it-topo-packet,
  .sol-page--it .it-topo-node--primary,
  .sol-page--it .it-topo-kpi,
  .sol-page--it .it-cap-stacked-seg,
  .sol-page--it .it-cap-stacked-seg span,
  .sol-page--it .it-cap-spark-line,
  .sol-page--it .it-cap-spark-area,
  .sol-page--it .it-cap-spark-dot {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .sol-page--it .it-cap-spark-line { stroke-dashoffset: 0 !important; }
}
/* Forced bg para evitar bleed do azul profundo do body */
.sol-page--it .it-pipeline { background: #fff; }
.sol-page--it .it-bridge   { background: #fff; }

@media (max-width: 720px) {
  .sol-page--it .it-rack-card { max-width: 100%; padding: 18px 16px; }
  .sol-page--it .it-rack-row-bars { gap: 4px; }
  .sol-page--it .it-rack-metric-lbl { font-size: 7.5px; }
  .sol-page--it .it-topo-svg { height: 100px; }
  .sol-page--it .it-topo-kpis { grid-template-columns: 1fr 1fr; }
  .sol-page--it .it-cap-bar { grid-template-columns: 64px 1fr 44px; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .sol-page--it .it-rack-metric-bar::after,
  .sol-page--it .it-topo-line,
  .sol-page--it .it-topo-pulse,
  .sol-page--it .it-cap-bar-seg,
  .sol-page--it .it-cap-spark-line,
  .sol-page--it .it-cap-spark-area,
  .sol-page--it .it-cap-spark-dot {
    animation: none !important;
    transition: none !important;
  }
  .sol-page--it .it-cap-spark-line { stroke-dashoffset: 0 !important; }
  .sol-page--it .it-cap-spark-area { opacity: 1 !important; }
  .sol-page--it .it-cap-spark-dot { opacity: 1 !important; }
}

/* Fix partners grid para 3 colunas (página tem 3 parceiros) */
.sol-page--it .it-partners-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  max-width: 1120px !important;
}
@media (max-width: 1024px) {
  .sol-page--it .it-partners-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: 760px !important;
  }
}
@media (max-width: 640px) {
  .sol-page--it .it-partners-grid {
    grid-template-columns: 1fr !important;
  }
}
/* Governanca de Dados: 4 parceiros estrategicos (override do fix de 3 colunas) */
.sol-page--gd .it-partners-grid {
  grid-template-columns: repeat(4, 1fr) !important;
  max-width: 1120px !important;
}
@media (max-width: 1024px) {
  .sol-page--gd .it-partners-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: 760px !important;
  }
}
@media (max-width: 640px) {
  .sol-page--gd .it-partners-grid {
    grid-template-columns: 1fr !important;
  }
}
/* Governanca de Dados: scorecard animado (SVG nativo) no lugar do scoreboard de Resultados */
.sol-page--gd .it-score { max-width: 760px; margin: 0 auto; background: linear-gradient(158deg, #0c2856 0%, #06122c 100%); border: 1px solid rgba(120, 170, 255, 0.16); border-radius: 16px; padding: 22px 24px; position: relative; overflow: hidden; font-family: var(--font-display); }
.sol-page--gd .it-score::after { content: ""; position: absolute; top: -45%; right: -12%; width: 62%; height: 90%; background: radial-gradient(circle, rgba(51, 173, 255, 0.18), transparent 68%); pointer-events: none; }
.sol-page--gd .it-score-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; position: relative; z-index: 1; }
.sol-page--gd .it-score-head-l { display: flex; align-items: center; gap: 11px; min-width: 0; }
.sol-page--gd .it-score-ic { width: 34px; height: 34px; border-radius: 9px; flex: none; background: var(--it-cyan-soft); border: 1px solid var(--it-cyan-border); display: flex; align-items: center; justify-content: center; color: var(--it-cyan-bright); }
.sol-page--gd .it-score-ttl { font-size: 14px; font-weight: 600; color: #eef5ff; line-height: 1.25; }
.sol-page--gd .it-score-sub { font-size: 11px; color: rgba(190, 215, 255, 0.62); }
.sol-page--gd .it-score-badge { display: inline-flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--it-cyan-bright); background: var(--it-cyan-soft); border: 1px solid var(--it-cyan-border); padding: 6px 12px; border-radius: 100px; white-space: nowrap; }
.sol-page--gd .it-score-body { display: grid; grid-template-columns: 186px 1fr; gap: 24px; position: relative; z-index: 1; }
.sol-page--gd .it-score-ring-wrap { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.sol-page--gd .it-score-ring { position: relative; width: 150px; height: 150px; }
.sol-page--gd .it-score-ring svg { width: 150px; height: 150px; display: block; }
.sol-page--gd .it-score-ring-fg { stroke-dasharray: 364; stroke-dashoffset: 7; }
.sol-page--gd .it-score.in-view .it-score-ring-fg { animation: it-score-ring 2.1s 0.2s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) both; }
.sol-page--gd .it-score-ring-c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 30px; text-align: center; }
.sol-page--gd .it-score-ring-c b { font-size: 32px; font-weight: 800; color: #fff; letter-spacing: -0.02em; line-height: 1; }
.sol-page--gd .it-score-ring-c span { font-size: 9px; color: rgba(190, 215, 255, 0.62); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.3; }
.sol-page--gd .it-score-metrics { width: 100%; display: flex; flex-direction: column; gap: 11px; }
.sol-page--gd .it-score-m-top { display: flex; justify-content: space-between; font-size: 11.5px; margin-bottom: 5px; color: #eef5ff; }
.sol-page--gd .it-score-m-top span:first-child { color: rgba(190, 215, 255, 0.62); }
.sol-page--gd .it-score-m-top span:last-child { font-weight: 600; }
.sol-page--gd .it-score-bar { height: 5px; border-radius: 4px; background: rgba(120, 170, 255, 0.12); overflow: hidden; }
.sol-page--gd .it-score-bf { height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--it-cyan), var(--it-cyan-bright)); width: var(--w); }
.sol-page--gd .it-score.in-view .it-score-bf { width: 0; animation: it-score-bar 1.6s 0.5s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) forwards; }
.sol-page--gd .it-score-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.sol-page--gd .it-score-block { background: rgba(120, 170, 255, 0.05); border: 1px solid rgba(120, 170, 255, 0.16); border-radius: 12px; padding: 13px 15px; }
.sol-page--gd .it-score-bh { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.sol-page--gd .it-score-bh-l { font-size: 11px; font-weight: 600; color: #eef5ff; letter-spacing: 0.02em; }
.sol-page--gd .it-score-bh-r { font-size: 11px; color: var(--it-cyan-bright); font-weight: 600; }
.sol-page--gd .it-score-flow, .sol-page--gd .it-score-spark { width: 100%; height: auto; display: block; }
.sol-page--gd .it-score-node { fill: rgba(51, 173, 255, 0.08); stroke: rgba(51, 173, 255, 0.26); }
.sol-page--gd .it-score-node--g { fill: rgba(51, 173, 255, 0.16); stroke: rgba(51, 173, 255, 0.5); }
.sol-page--gd .it-score-nl { fill: #eef5ff; font: 700 11px var(--font-display); letter-spacing: 0.04em; }
.sol-page--gd .it-score-ns { fill: rgba(190, 215, 255, 0.58); font: 500 9px var(--font-display); }
.sol-page--gd .it-score-link { stroke: rgba(120, 170, 255, 0.3); stroke-width: 1.5; stroke-dasharray: 3 3; animation: it-score-dash 1s linear infinite; }
.sol-page--gd .it-score-pkt { fill: var(--it-cyan-bright); filter: drop-shadow(0 0 4px rgba(51, 173, 255, 0.9)); }
.sol-page--gd .it-score-pkt--1 { animation: it-score-pkt1 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite; }
.sol-page--gd .it-score-pkt--2 { animation: it-score-pkt2 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite 0.8s; }
.sol-page--gd .it-score-pkt--3 { animation: it-score-pkt3 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite 1.6s; }
.sol-page--gd .it-score-sline { fill: none; stroke: var(--it-cyan-bright); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 400; stroke-dashoffset: 0; }
.sol-page--gd .it-score.in-view .it-score-sline { stroke-dashoffset: 400; animation: it-score-draw 2.3s 0.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) forwards; }
.sol-page--gd .it-score-sdot { fill: #fff; animation: it-score-bob 2.4s ease-in-out infinite; }
.sol-page--gd .it-score-foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(120, 170, 255, 0.16); font-size: 11.5px; color: rgba(190, 215, 255, 0.62); position: relative; z-index: 1; }
.sol-page--gd .it-score-foot strong { color: #eef5ff; font-weight: 600; }
.sol-page--gd .it-score-chip { display: inline-flex; align-items: center; gap: 6px; color: var(--it-cyan-bright); font-weight: 600; }
@keyframes it-score-ring { from { stroke-dashoffset: 364; } to { stroke-dashoffset: 7; } }
@keyframes it-score-bar { from { width: 0; } to { width: var(--w); } }
@keyframes it-score-dash { to { stroke-dashoffset: -12; } }
@keyframes it-score-pkt1 { 0% { cx: 110px; opacity: 0; } 20% { opacity: 1; } 75% { opacity: 1; } 100% { cx: 150px; opacity: 0; } }
@keyframes it-score-pkt2 { 0% { cx: 260px; opacity: 0; } 20% { opacity: 1; } 75% { opacity: 1; } 100% { cx: 300px; opacity: 0; } }
@keyframes it-score-pkt3 { 0% { cx: 410px; opacity: 0; } 20% { opacity: 1; } 75% { opacity: 1; } 100% { cx: 450px; opacity: 0; } }
@keyframes it-score-draw { from { stroke-dashoffset: 400; } to { stroke-dashoffset: 0; } }
@keyframes it-score-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@media (max-width: 640px) { .sol-page--gd .it-score-body { grid-template-columns: 1fr; gap: 20px; } .sol-page--gd .it-score-ring-wrap { max-width: 300px; margin: 0 auto; } }
@media (prefers-reduced-motion: reduce) { .sol-page--gd .it-score.in-view .it-score-ring-fg, .sol-page--gd .it-score.in-view .it-score-bf, .sol-page--gd .it-score.in-view .it-score-sline { animation: none; } .sol-page--gd .it-score.in-view .it-score-bf { width: var(--w); } .sol-page--gd .it-score.in-view .it-score-sline { stroke-dashoffset: 0; } .sol-page--gd .it-score-pkt--1, .sol-page--gd .it-score-pkt--2, .sol-page--gd .it-score-pkt--3, .sol-page--gd .it-score-sdot, .sol-page--gd .it-score-link { animation: none; } .sol-page--gd .it-score-pkt { opacity: 1; } }

/* ===================================================================
   IT v2: BENEFITS SCOREBOARD + TEAM DOSSIER
   Substitui visualmente o it-benefits-grid (checkmark cards)
   e o it-time/it-split (foto-left + icon-list).
   =================================================================== */

/* ---------- BENEFITS SCOREBOARD (bento 12-col com mini-viz) ---------- */
.sol-page--it .it-kpi-board {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
  margin-top: 40px;
}
.sol-page--it .it-kpi-tile {
  position: relative;
  background: linear-gradient(155deg, rgba(8, 22, 52, 0.65), rgba(5, 14, 36, 0.85));
  border: 1px solid rgba(51, 173, 255, 0.18);
  border-radius: 16px;
  padding: 22px 22px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.3s ease, border-color 0.3s ease;
  opacity: 0;
  transform: translateY(14px);
  animation: it-kpi-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--it .it-kpi-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
  background-size: 24px 24px;
  -webkit-mask-image: linear-gradient(135deg, rgba(0,0,0,0.6), transparent 70%);
  mask-image: linear-gradient(135deg, rgba(0,0,0,0.6), transparent 70%);
  z-index: 0;
}
.sol-page--it .it-kpi-tile > * { position: relative; z-index: 1; }
.sol-page--it .it-kpi-tile:hover {
  transform: translateY(-2px);
  border-color: rgba(51, 173, 255, 0.34);
}
@keyframes it-kpi-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.sol-page--it .it-kpi-tile:nth-child(1) { animation-delay: 0.05s; }
.sol-page--it .it-kpi-tile:nth-child(2) { animation-delay: 0.15s; }
.sol-page--it .it-kpi-tile:nth-child(3) { animation-delay: 0.25s; }
.sol-page--it .it-kpi-tile:nth-child(4) { animation-delay: 0.35s; }
.sol-page--it .it-kpi-tile:nth-child(5) { animation-delay: 0.45s; }
.sol-page--it .it-kpi-tile:nth-child(6) { animation-delay: 0.55s; }

/* Bento spans */
.sol-page--it .it-kpi-tile--uptime    { grid-column: span 6; grid-row: span 2; }
.sol-page--it .it-kpi-tile--incidents { grid-column: span 6; }
.sol-page--it .it-kpi-tile--mttr      { grid-column: span 6; }
.sol-page--it .it-kpi-tile--patches   { grid-column: span 4; }
.sol-page--it .it-kpi-tile--backup    { grid-column: span 4; }
.sol-page--it .it-kpi-tile--visib     { grid-column: span 4; }

/* Tile internals */
.sol-page--it .it-kpi-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.sol-page--it .it-kpi-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--it-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
  font-weight: 700;
}
.sol-page--it .it-kpi-tag::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--it-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.2);
}
.sol-page--it .it-kpi-trend {
  font-family: var(--it-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.14);
  color: #4ade80;
  border: 1px solid rgba(34, 197, 94, 0.3);
}
.sol-page--it .it-kpi-trend--down {
  background: rgba(245, 158, 11, 0.14);
  color: #fbbf24;
  border-color: rgba(245, 158, 11, 0.3);
}
.sol-page--it .it-kpi-num {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: var(--font-display);
  color: #fff;
  line-height: 1;
}
.sol-page--it .it-kpi-num strong {
  font-size: var(--fs-h1);
  font-weight: 700;
  letter-spacing: -0.03em;
  background: linear-gradient(135deg, #fff 0%, var(--it-cyan-bright) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--it .it-kpi-num small {
  font-size: var(--fs-h4);
  font-weight: 600;
  color: var(--it-cyan-bright);
}
.sol-page--it .it-kpi-tile--uptime .it-kpi-num strong {
  font-size: var(--fs-numeral);
}
.sol-page--it .it-kpi-tile--uptime .it-kpi-num small {
  font-size: var(--fs-h3);
}
.sol-page--it .it-kpi-label {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.45;
  color: var(--it-text-sec);
  font-weight: 500;
  margin-top: -4px;
}
.sol-page--it .it-kpi-viz { margin-top: auto; }

/* VIZ 1 — Ring gauge (uptime) */
.sol-page--it .it-kpi-ring {
  position: relative;
  width: clamp(140px, 16vw, 180px);
  height: clamp(140px, 16vw, 180px);
  margin: 6px auto 0;
}
.sol-page--it .it-kpi-ring-svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.sol-page--it .it-kpi-ring-bg {
  fill: none;
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 8;
}
.sol-page--it .it-kpi-ring-fg {
  fill: none;
  stroke: url(#it-kpi-ring-grad);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 314;
  stroke-dashoffset: 314;
  filter: drop-shadow(0 0 6px rgba(51, 173, 255, 0.55));
  animation: it-kpi-ring-fill 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards;
}
@keyframes it-kpi-ring-fill {
  to { stroke-dashoffset: 1.6; } /* 314 - (99.5 * 3.14) ≈ 1.6 */
}
.sol-page--it .it-kpi-ring-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 4px;
}
.sol-page--it .it-kpi-ring-pct {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-display);
  background: linear-gradient(135deg, #fff, var(--it-cyan-bright));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
}
.sol-page--it .it-kpi-ring-lbl {
  font-family: var(--it-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
}

/* VIZ 2 — Incident comparison bars */
.sol-page--it .it-kpi-cmp {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--it .it-kpi-cmp-row {
  display: grid;
  grid-template-columns: 50px 1fr 40px;
  gap: 10px;
  align-items: center;
}
.sol-page--it .it-kpi-cmp-lbl {
  font-family: var(--it-mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
}
.sol-page--it .it-kpi-cmp-bar {
  position: relative;
  height: 8px;
  background: rgba(255,255,255,0.05);
  border-radius: 999px;
  overflow: hidden;
}
.sol-page--it .it-kpi-cmp-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  width: var(--cmp-fill, 50%);
  background: linear-gradient(90deg, rgba(255,255,255,0.4), rgba(255,255,255,0.18));
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin: left;
  animation: it-rack-fill 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.5s both;
}
.sol-page--it .it-kpi-cmp-row--after .it-kpi-cmp-bar::after {
  background: linear-gradient(90deg, var(--it-cyan), var(--it-cyan-bright));
  box-shadow: 0 0 8px rgba(51, 173, 255, 0.5);
}
.sol-page--it .it-kpi-cmp-val {
  font-family: var(--it-mono);
  font-size: 10px;
  font-weight: 700;
  color: rgba(255,255,255,0.85);
  text-align: right;
}
.sol-page--it .it-kpi-cmp-row--after .it-kpi-cmp-val {
  color: var(--it-cyan-bright);
}

/* VIZ 3 — Horizontal gauge (MTTR) */
.sol-page--it .it-kpi-gauge {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--it .it-kpi-gauge-track {
  position: relative;
  height: 10px;
  background: rgba(255,255,255,0.05);
  border-radius: 999px;
  overflow: hidden;
}
.sol-page--it .it-kpi-gauge-fill {
  position: absolute;
  inset: 0;
  width: var(--gauge-fill, 50%);
  background: linear-gradient(90deg, var(--it-cyan), var(--it-cyan-bright));
  border-radius: 999px;
  box-shadow: 0 0 10px rgba(51, 173, 255, 0.55);
  transform: scaleX(0);
  transform-origin: left;
  animation: it-rack-fill 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.5s both;
}
.sol-page--it .it-kpi-gauge-scale {
  display: flex;
  justify-content: space-between;
  font-family: var(--it-mono);
  font-size: 8.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
}

/* VIZ 4 — Calendar dots (patches) */
.sol-page--it .it-kpi-dots {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
  padding-top: 4px;
}
.sol-page--it .it-kpi-dot {
  aspect-ratio: 1;
  border-radius: 3px;
  background: rgba(255,255,255,0.08);
  opacity: 0;
  transform: scale(0.6);
  animation: it-kpi-dot-pop 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--it .it-kpi-dot--ok {
  background: linear-gradient(180deg, var(--it-cyan), #0097b2);
  box-shadow: 0 0 4px rgba(51, 173, 255, 0.5);
}
@keyframes it-kpi-dot-pop {
  to { opacity: 1; transform: scale(1); }
}
.sol-page--it .it-kpi-dot:nth-child(1)  { animation-delay: 0.40s; }
.sol-page--it .it-kpi-dot:nth-child(2)  { animation-delay: 0.46s; }
.sol-page--it .it-kpi-dot:nth-child(3)  { animation-delay: 0.52s; }
.sol-page--it .it-kpi-dot:nth-child(4)  { animation-delay: 0.58s; }
.sol-page--it .it-kpi-dot:nth-child(5)  { animation-delay: 0.64s; }
.sol-page--it .it-kpi-dot:nth-child(6)  { animation-delay: 0.70s; }
.sol-page--it .it-kpi-dot:nth-child(7)  { animation-delay: 0.76s; }
.sol-page--it .it-kpi-dot:nth-child(8)  { animation-delay: 0.82s; }
.sol-page--it .it-kpi-dot:nth-child(9)  { animation-delay: 0.88s; }
.sol-page--it .it-kpi-dot:nth-child(10) { animation-delay: 0.94s; }
.sol-page--it .it-kpi-dot:nth-child(11) { animation-delay: 1.00s; }
.sol-page--it .it-kpi-dot:nth-child(12) { animation-delay: 1.06s; }

/* VIZ 5 — Check ladder (backup) */
.sol-page--it .it-kpi-checks {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--it .it-kpi-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--it-mono);
  font-size: 10px;
  color: rgba(255,255,255,0.8);
  letter-spacing: 0.04em;
  opacity: 0;
  transform: translateX(-6px);
  animation: it-kpi-check-in 0.4s ease both;
}
.sol-page--it .it-kpi-check:nth-child(1) { animation-delay: 0.4s; }
.sol-page--it .it-kpi-check:nth-child(2) { animation-delay: 0.55s; }
.sol-page--it .it-kpi-check:nth-child(3) { animation-delay: 0.7s; }
@keyframes it-kpi-check-in {
  to { opacity: 1; transform: translateX(0); }
}
.sol-page--it .it-kpi-check-icon {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: rgba(51, 173, 255, 0.18);
  border: 1px solid var(--it-cyan-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--it-cyan-bright);
  flex-shrink: 0;
}

/* VIZ 6 — Mini radar pulse (visibilidade) */
.sol-page--it .it-kpi-radar {
  display: flex;
  align-items: center;
  gap: 14px;
}
.sol-page--it .it-kpi-radar-svg {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
}
.sol-page--it .it-kpi-radar-ring {
  fill: none;
  stroke: rgba(51, 173, 255, 0.4);
  stroke-width: 1;
}
.sol-page--it .it-kpi-radar-sweep {
  fill: url(#it-kpi-radar-grad);
  transform-origin: center;
  animation: it-kpi-radar-spin 4s linear infinite;
}
@keyframes it-kpi-radar-spin {
  to { transform: rotate(360deg); }
}
.sol-page--it .it-kpi-radar-dot {
  fill: var(--it-cyan-bright);
  animation: it-pulse 2.2s ease-in-out infinite;
}
.sol-page--it .it-kpi-radar-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: var(--it-mono);
}
.sol-page--it .it-kpi-radar-num {
  font-size: 18px;
  font-weight: 700;
  color: var(--it-cyan-bright);
}
.sol-page--it .it-kpi-radar-lbl {
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--it-text-mute);
  font-weight: 600;
}

/* Hide old benefits grid completely if it shows up */
.sol-page--it .it-benefits-grid { display: none; }

/* Benefits CTA stays same */
.sol-page--it .it-benefits-cta { margin-top: 40px; }

@media (max-width: 980px) {
  .sol-page--it .it-kpi-tile--uptime    { grid-column: span 12; grid-row: auto; }
  .sol-page--it .it-kpi-tile--incidents { grid-column: span 12; }
  .sol-page--it .it-kpi-tile--mttr      { grid-column: span 12; }
  .sol-page--it .it-kpi-tile--patches   { grid-column: span 6; }
  .sol-page--it .it-kpi-tile--backup    { grid-column: span 6; }
  .sol-page--it .it-kpi-tile--visib     { grid-column: span 12; }
}
@media (max-width: 640px) {
  .sol-page--it .it-kpi-tile { grid-column: span 12 !important; }
}

/* ---------- TEAM DOSSIER (substitui it-time photo-left) ---------- */
.sol-page--it .it-team {
  padding: 96px 0;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}
.sol-page--it .it-team-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 56px;
}
.sol-page--it .it-team-head .it-h2 { margin-bottom: 18px; }
.sol-page--it .it-team-head p {
  font-size: 16px;
  line-height: 1.65;
  color: #4b5563;
  margin: 0;
}

.sol-page--it .it-team-banner {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  margin-bottom: 56px;
  isolation: isolate;
  min-height: 320px;
  display: flex;
  align-items: flex-end;
}
.sol-page--it .it-team-banner-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sol-page--it .it-team-banner-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--it .it-team-banner-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 21, 54, 0.05) 0%, rgba(5, 21, 54, 0.55) 55%, rgba(5, 21, 54, 0.95) 100%);
}
.sol-page--it .it-team-banner-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 32px 32px;
  -webkit-mask-image: linear-gradient(135deg, transparent 30%, black 70%);
  mask-image: linear-gradient(135deg, transparent 30%, black 70%);
}
.sol-page--it .it-team-banner-inner {
  position: relative;
  z-index: 3;
  padding: 40px 44px;
  display: grid;
  grid-template-columns: 1.4fr auto;
  gap: 32px;
  align-items: end;
  width: 100%;
}
.sol-page--it .it-team-banner-text { color: #fff; }
.sol-page--it .it-team-banner-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--it-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
  font-weight: 700;
  margin-bottom: 14px;
}
.sol-page--it .it-team-banner-tag::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--it-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: it-pulse 2.4s infinite;
}
.sol-page--it .it-team-banner-h {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 6px;
}
.sol-page--it .it-team-banner-p {
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255,255,255,0.78);
  margin: 0;
  max-width: 540px;
}

.sol-page--it .it-team-banner-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 24px;
  background: rgba(11, 31, 77, 0.65);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid var(--it-cyan-border);
  border-radius: 14px;
  font-family: var(--it-mono);
  text-align: right;
  min-width: 200px;
}
.sol-page--it .it-team-banner-stat-val {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  background: linear-gradient(135deg, #fff, var(--it-cyan-bright));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--it .it-team-banner-stat-val small {
  font-size: 16px;
  font-weight: 600;
  color: var(--it-cyan-bright);
  margin-left: 4px;
}
.sol-page--it .it-team-banner-stat-lbl {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  font-weight: 600;
}

/* Certificações strip */
.sol-page--it .it-team-creds {
  margin-bottom: 56px;
}
.sol-page--it .it-team-creds-label {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 22px;
}
.sol-page--it .it-team-creds-label::before,
.sol-page--it .it-team-creds-label::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(8, 39, 100, 0.18), transparent);
}
.sol-page--it .it-team-creds-label span {
  font-family: var(--it-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--it-cyan);
  font-weight: 700;
  white-space: nowrap;
}
.sol-page--it .it-team-creds-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.sol-page--it .it-team-cred {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  padding: 18px 14px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 12px;
  box-shadow: 0 2px 12px -4px rgba(8, 39, 100, 0.08);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--it .it-team-cred:hover {
  transform: translateY(-3px);
  border-color: var(--it-cyan-border);
  box-shadow: 0 8px 28px -6px rgba(0, 150, 255, 0.18);
}
.sol-page--it .it-team-cred-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  color: var(--azul-profundo);
  letter-spacing: -0.01em;
}
.sol-page--it .it-team-cred-level {
  font-family: var(--it-mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--it-cyan);
  font-weight: 600;
}

/* Highlights numerados em coluna */
.sol-page--it .it-team-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.sol-page--it .it-team-highlight {
  position: relative;
  padding: 28px 26px 26px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s ease;
}
.sol-page--it .it-team-highlight:hover {
  transform: translateY(-3px);
  border-color: var(--it-cyan-border);
}
.sol-page--it .it-team-highlight::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 3px;
  background: linear-gradient(90deg, var(--it-cyan), var(--it-cyan-bright));
  border-radius: 0 0 4px 0;
}
.sol-page--it .it-team-highlight-num {
  font-family: var(--it-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--it-cyan);
  font-weight: 700;
}
.sol-page--it .it-team-highlight-title {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
}
.sol-page--it .it-team-highlight-desc {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.55;
  color: #4b5563;
  margin: 0;
}

@media (max-width: 980px) {
  .sol-page--it .it-team-banner-inner { grid-template-columns: 1fr; }
  .sol-page--it .it-team-banner-stat { text-align: left; min-width: 0; }
  .sol-page--it .it-team-creds-grid { grid-template-columns: repeat(3, 1fr); }
  .sol-page--it .it-team-highlights { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .sol-page--it .it-team-banner-inner { padding: 28px 24px; }
  .sol-page--it .it-team-creds-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .sol-page--it .it-kpi-tile,
  .sol-page--it .it-kpi-ring-fg,
  .sol-page--it .it-kpi-cmp-bar::after,
  .sol-page--it .it-kpi-gauge-fill,
  .sol-page--it .it-kpi-dot,
  .sol-page--it .it-kpi-check,
  .sol-page--it .it-kpi-radar-sweep,
  .sol-page--it .it-kpi-radar-dot {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .sol-page--it .it-kpi-ring-fg { stroke-dashoffset: 1.6 !important; }
  .sol-page--it .it-kpi-cmp-bar::after,
  .sol-page--it .it-kpi-gauge-fill { transform: scaleX(1) !important; }
}

/* ---------- DIAGNÓSTICO TERMINAL LOG (substitui it-manifesto-grid 2x2) ---------- */
.sol-page--it .it-diag-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 56px;
  align-items: start;
}
.sol-page--it .it-diag-head { padding-top: 8px; }
.sol-page--it .it-diag-head .it-h2 { margin-bottom: 18px; }
.sol-page--it .it-diag-head p {
  font-size: 16px;
  line-height: 1.65;
  color: #4b5563;
  margin: 0;
}
.sol-page--it .it-diag-head-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--it-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--it-cyan);
  font-weight: 700;
  margin-bottom: 18px;
}
.sol-page--it .it-diag-head-tag::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--it-cyan);
  box-shadow: 0 0 0 3px rgba(0, 150, 255, 0.18);
}

.sol-page--it .it-diag-terminal {
  position: relative;
  background: linear-gradient(180deg, #0b1d40 0%, #051536 100%);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--it-cyan-border);
  box-shadow:
    0 30px 80px -20px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(51, 173, 255, 0.06);
  isolation: isolate;
}
.sol-page--it .it-diag-terminal::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(135deg, rgba(0, 0, 0, 0.5), transparent 70%);
  mask-image: linear-gradient(135deg, rgba(0, 0, 0, 0.5), transparent 70%);
  pointer-events: none;
}

.sol-page--it .it-diag-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--it-mono);
  background: rgba(255, 255, 255, 0.02);
  position: relative;
  z-index: 1;
}
.sol-page--it .it-diag-bar-dots {
  display: flex;
  gap: 6px;
}
.sol-page--it .it-diag-bar-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--it .it-diag-bar-dots span:nth-child(1) { background: #ef4444; }
.sol-page--it .it-diag-bar-dots span:nth-child(2) { background: #f59e0b; }
.sol-page--it .it-diag-bar-dots span:nth-child(3) { background: #22c55e; }
.sol-page--it .it-diag-bar-title {
  flex: 1;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.04em;
  font-weight: 500;
}
.sol-page--it .it-diag-bar-tail {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 9.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--it-cyan-bright);
  font-weight: 700;
}
.sol-page--it .it-diag-bar-tail::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--it-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.22);
  animation: it-pulse 2.4s infinite;
}

.sol-page--it .it-diag-log {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
}
.sol-page--it .it-diag-log li {
  padding: 22px 26px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.06);
  opacity: 0;
  transform: translateY(8px);
  animation: it-diag-line-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
  transition: background 0.3s ease;
}
.sol-page--it .it-diag-log li:hover { background: rgba(51, 173, 255, 0.03); }
.sol-page--it .it-diag-log li:last-child { border-bottom: none; }
.sol-page--it .it-diag-log li:nth-child(1) { animation-delay: 0.1s; }
.sol-page--it .it-diag-log li:nth-child(2) { animation-delay: 0.25s; }
.sol-page--it .it-diag-log li:nth-child(3) { animation-delay: 0.4s; }
.sol-page--it .it-diag-log li:nth-child(4) { animation-delay: 0.55s; }
@keyframes it-diag-line-in {
  to { opacity: 1; transform: translateY(0); }
}

.sol-page--it .it-diag-line-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.sol-page--it .it-diag-badge {
  font-family: var(--it-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.18em;
  padding: 4px 9px;
  border-radius: 4px;
  background: rgba(245, 158, 11, 0.16);
  border: 1px solid rgba(245, 158, 11, 0.4);
  color: #fbbf24;
  text-transform: uppercase;
  flex-shrink: 0;
}
.sol-page--it .it-diag-path {
  font-family: var(--it-mono);
  font-size: 12px;
  color: var(--it-cyan-bright);
  letter-spacing: 0.01em;
  word-break: break-all;
}
.sol-page--it .it-diag-path .it-diag-path-eq { color: rgba(255, 255, 255, 0.5); }
.sol-page--it .it-diag-path .it-diag-path-val { color: #fbbf24; font-weight: 600; }

.sol-page--it .it-diag-title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.sol-page--it .it-diag-desc {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  margin: 0;
}

.sol-page--it .it-diag-cursor {
  display: inline-block;
  width: 7px;
  height: 14px;
  vertical-align: -2px;
  background: var(--it-cyan-bright);
  margin-left: 6px;
  animation: it-diag-blink 1s steps(2, end) infinite;
}
@keyframes it-diag-blink {
  50% { opacity: 0; }
}

/* Hide the old manifesto grid when terminal is used */
.sol-page--it .it-manifesto-grid,
.sol-page--it .it-manifesto-head { display: none; }

@media (max-width: 980px) {
  .sol-page--it .it-diag-grid { grid-template-columns: 1fr; gap: 32px; }
  .sol-page--it .it-diag-log li { padding: 18px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .sol-page--it .it-diag-log li,
  .sol-page--it .it-diag-cursor,
  .sol-page--it .it-diag-bar-tail::before {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ===================================================================
   IT v3: STICKY DIAG HEAD + CLEAN STACKED BAR + LIGHTER KPI TILES
   Sobrescreve estilos v1/v2 para um visual mais minimalista
   =================================================================== */

/* ---------- Sticky head no manifesto (texto acompanha rolagem) ---------- */
.sol-page--it .it-manifesto-section { overflow: visible; }
.sol-page--it .it-diag-grid { align-items: start; }
.sol-page--it .it-diag-head {
  position: sticky;
  top: 100px;
  align-self: start;
}

/* ---------- Stacked bar cleanup (sem labels redundantes) ---------- */
.sol-page--it .it-cap-stacked { height: 32px; border-radius: 6px; }
.sol-page--it .it-cap-stacked-seg {
  font-size: 12px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: 0;
  text-shadow: none;
}
.sol-page--it .it-cap-stacked-seg + .it-cap-stacked-seg {
  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.18);
}
.sol-page--it .it-cap-stacked-seg--cld span { font-size: 11px; }
.sol-page--it .it-cap-legend {
  margin-top: 12px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.62);
  letter-spacing: 0.06em;
}
.sol-page--it .it-cap-legend strong {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
  margin-left: 4px;
}
.sol-page--it .it-cap-legend-dot { width: 9px; height: 9px; border-radius: 50%; }

/* ---------- KPI tiles: limpo & moderno ---------- */
.sol-page--it .it-kpi-tile {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  padding: 26px 28px 24px;
  box-shadow: none;
}
.sol-page--it .it-kpi-tile::before { display: none; }
.sol-page--it .it-kpi-tile:hover {
  transform: none;
  border-color: rgba(51, 173, 255, 0.22);
  background: rgba(255, 255, 255, 0.035);
}

.sol-page--it .it-kpi-head {
  margin-bottom: 4px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.sol-page--it .it-kpi-tag {
  font-family: var(--it-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}
.sol-page--it .it-kpi-tag::before { display: none; }

.sol-page--it .it-kpi-trend {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: transparent;
  border: none;
  padding: 0;
  font-family: var(--it-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(74, 222, 128, 0.95);
}
.sol-page--it .it-kpi-trend::before {
  content: "↗";
  font-size: 12px;
  line-height: 1;
}
.sol-page--it .it-kpi-trend--down {
  color: rgba(74, 222, 128, 0.95);
}
.sol-page--it .it-kpi-trend--down::before { content: "↘"; }

.sol-page--it .it-kpi-num {
  margin-top: 18px;
}
.sol-page--it .it-kpi-num strong,
.sol-page--it .it-kpi-ring-pct {
  font-family: var(--font-display);
  font-weight: 600 !important;
  color: #fff !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #fff !important;
  letter-spacing: -0.02em;
}
.sol-page--it .it-kpi-num small {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}
.sol-page--it .it-kpi-label {
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
  margin-top: 12px;
}

/* Ring gauge slimmer */
.sol-page--it .it-kpi-ring { margin: 8px auto 4px; }
.sol-page--it .it-kpi-ring-bg { stroke-width: 5; }
.sol-page--it .it-kpi-ring-fg {
  stroke-width: 5;
  stroke: var(--it-cyan-bright);
  filter: none;
}
.sol-page--it .it-kpi-ring-lbl {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}

/* Comparison bars cleaner */
.sol-page--it .it-kpi-cmp-bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.06);
}
.sol-page--it .it-kpi-cmp-bar::after {
  background: rgba(255, 255, 255, 0.22);
  box-shadow: none;
}
.sol-page--it .it-kpi-cmp-row--after .it-kpi-cmp-bar::after {
  background: var(--it-cyan-bright);
  box-shadow: none;
}
.sol-page--it .it-kpi-cmp-lbl {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}
.sol-page--it .it-kpi-cmp-val {
  color: rgba(255, 255, 255, 0.7);
  font-weight: 600;
}
.sol-page--it .it-kpi-cmp-row--after .it-kpi-cmp-val {
  color: var(--it-cyan-bright);
}

/* Horizontal gauge cleaner */
.sol-page--it .it-kpi-gauge-track {
  height: 6px;
  background: rgba(255, 255, 255, 0.06);
}
.sol-page--it .it-kpi-gauge-fill {
  background: var(--it-cyan-bright);
  box-shadow: none;
}
.sol-page--it .it-kpi-gauge-scale {
  color: rgba(255, 255, 255, 0.4);
  font-weight: 500;
}

/* Patches dots: circles cleaner */
.sol-page--it .it-kpi-dots {
  gap: 8px;
  padding-top: 6px;
  grid-template-columns: repeat(12, 1fr);
}
.sol-page--it .it-kpi-dot {
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}
.sol-page--it .it-kpi-dot--ok {
  background: var(--it-cyan-bright);
  box-shadow: none;
}

/* Check ladder cleaner */
.sol-page--it .it-kpi-check {
  color: rgba(255, 255, 255, 0.7);
  font-size: 11px;
}
.sol-page--it .it-kpi-check-icon {
  background: transparent;
  border: 1px solid var(--it-cyan-border);
  width: 14px;
  height: 14px;
}

/* Radar cleaner */
.sol-page--it .it-kpi-radar-svg { width: 56px; height: 56px; }
.sol-page--it .it-kpi-radar-num {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  color: #fff;
}
.sol-page--it .it-kpi-radar-lbl {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
}

/* ===================================================================
   IT v4: GLASS BLUR nos KPI tiles + UPTIME tile reorganizado
   =================================================================== */

/* ---------- Glass effect (frosted glass) nos KPI tiles ---------- */
.sol-page--it .it-kpi-tile {
  background: rgba(11, 31, 77, 0.32);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 8px 32px -8px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.sol-page--it .it-kpi-tile:hover {
  background: rgba(11, 31, 77, 0.42);
  border-color: rgba(51, 173, 255, 0.28);
}

/* ---------- Uptime tile: split horizontal (ring | content) ---------- */
.sol-page--it .it-kpi-tile--uptime {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas:
    "head    head"
    "ring    body";
  gap: 18px 28px;
  align-items: center;
  padding: 28px 30px;
}
.sol-page--it .it-kpi-tile--uptime .it-kpi-head {
  grid-area: head;
  padding-bottom: 16px;
  margin-bottom: 0;
}
.sol-page--it .it-kpi-tile--uptime .it-kpi-ring {
  grid-area: ring;
  margin: 0;
  width: clamp(150px, 14vw, 180px);
  height: clamp(150px, 14vw, 180px);
}
.sol-page--it .it-kpi-tile--uptime .it-kpi-ring-pct {
  font-size: var(--fs-h2);
}
.sol-page--it .it-kpi-tile--uptime-body {
  grid-area: body;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-self: center;
}
.sol-page--it .it-kpi-tile--uptime .it-kpi-label {
  margin-top: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.7);
}

/* Mini breakdown stats embaixo da label */
.sol-page--it .it-kpi-uptime-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--it .it-kpi-uptime-stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sol-page--it .it-kpi-uptime-stat-val {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 18px;
  color: #fff;
  line-height: 1;
  letter-spacing: -0.01em;
}
.sol-page--it .it-kpi-uptime-stat-val small {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 500;
  margin-left: 3px;
}
.sol-page--it .it-kpi-uptime-stat-lbl {
  font-family: var(--it-mono);
  font-size: 9.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  font-weight: 500;
}

@media (max-width: 980px) {
  .sol-page--it .it-kpi-tile--uptime {
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "ring"
      "body";
    text-align: center;
  }
  .sol-page--it .it-kpi-tile--uptime .it-kpi-ring { margin: 0 auto; }
  .sol-page--it .it-kpi-uptime-stats { max-width: 360px; margin: 0 auto; }
}

/* IT v5: team-creds grid passou de 6 para 4 cards */
.sol-page--it .it-team-creds-grid {
  grid-template-columns: repeat(4, 1fr);
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 980px) {
  .sol-page--it .it-team-creds-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 520px;
  }
}
@media (max-width: 540px) {
  .sol-page--it .it-team-creds-grid {
    grid-template-columns: 1fr;
    max-width: 320px;
  }
}

/* ===================================================================
   SOLUÇÃO: NOC · CENTRO DE OPERAÇÕES DE REDE (.sol-page--noc)
   Conceito: Mission Control. 24/7/365, turnos rotativos,
   console live, heartbeat ECG, network map, SLA report,
   KPI wall radial e roster de turnos com fotos.
   =================================================================== */

.sol-page--noc {
  --noc-cyan: #0096ff;
  --noc-cyan-bright: #33adff;
  --noc-cyan-soft: rgba(0, 150, 255, 0.12);
  --noc-cyan-border: rgba(0, 150, 255, 0.32);
  --noc-amber: #f59e0b;
  --noc-amber-bright: #fbbf24;
  --noc-red: #ef4444;
  --noc-green: #22c55e;
  --noc-green-soft: rgba(34, 197, 94, 0.14);
  --noc-mono: var(--font-display);
  --noc-ink: #04132f;
  --noc-ink-2: #0a1f47;
  --noc-text-sec: rgba(255, 255, 255, 0.72);
  --noc-text-mute: rgba(255, 255, 255, 0.5);
}

/* ---------- Primitivos ---------- */
.sol-page--noc .noc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--noc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--noc-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--noc .noc-eyebrow--dark { color: var(--noc-cyan); }

.sol-page--noc .noc-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--noc-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: noc-pulse 2.4s cubic-bezier(0.16, 1, 0.3, 1) infinite;
  flex-shrink: 0;
}
.sol-page--noc .noc-pulse--amber {
  background: var(--noc-amber-bright);
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.25);
}
.sol-page--noc .noc-pulse--red {
  background: var(--noc-red);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.25);
}
@keyframes noc-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--noc .noc-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--noc .noc-h2--center { text-align: center; }
.sol-page--noc .noc-h2--light { color: #fff; }
.sol-page--noc .noc-accent {
  background: linear-gradient(135deg, var(--noc-cyan-bright), var(--noc-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--noc .noc-accent-dark {
  background: linear-gradient(135deg, var(--noc-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sol-page--noc .noc-p {
  font-size: 16px;
  line-height: 1.7;
  color: #4b5563;
  margin: 0 0 18px;
}
.sol-page--noc .noc-p:last-child { margin-bottom: 0; }
.sol-page--noc .noc-section-sub {
  font-size: 16px;
  line-height: 1.65;
  color: #4b5563;
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--noc .noc-section-sub--light { color: var(--noc-text-sec); }
.sol-page--noc .noc-section-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 56px;
}

.sol-page--noc .noc-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--noc .noc-btn--primary {
  background: linear-gradient(135deg, var(--noc-cyan), var(--noc-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--noc .noc-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.75);
}
.sol-page--noc .noc-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--noc .noc-btn--ghost:hover {
  border-color: var(--noc-cyan-bright);
  color: var(--noc-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--noc .noc-btn--lg { padding: 16px 36px; font-size: 16px; }

/* ---------- HERO ---------- */
.sol-page--noc .noc-hero {
  position: relative;
  padding: 140px 0 90px;
  background: var(--noc-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--noc .noc-hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
}
.sol-page--noc .noc-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.sol-page--noc .noc-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(115deg, rgba(4, 19, 47, 0.96) 0%, rgba(4, 19, 47, 0.82) 50%, rgba(10, 31, 71, 0.68) 100%),
    radial-gradient(circle at 75% 30%, rgba(0, 150, 255, 0.2), transparent 55%);
}
.sol-page--noc .noc-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);
}
.sol-page--noc .noc-hero-inner {
  position: relative;
  z-index: 3;
}
.sol-page--noc .noc-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--noc-text-mute);
  margin-bottom: 32px;
}
.sol-page--noc .noc-breadcrumb a {
  color: var(--noc-cyan-bright);
  text-decoration: none;
}
.sol-page--noc .noc-breadcrumb a:hover { text-decoration: underline; }
.sol-page--noc .noc-breadcrumb span { opacity: 0.55; }
.sol-page--noc .noc-breadcrumb [aria-current] { opacity: 1; }

.sol-page--noc .noc-hero-content {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 60px;
  align-items: center;
}
.sol-page--noc .noc-hero-text { max-width: 600px; }
.sol-page--noc .noc-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #fff;
  margin: 0 0 22px;
  text-wrap: balance;
}
.sol-page--noc .noc-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--noc-text-sec);
  margin: 0 0 32px;
  max-width: 540px;
}
.sol-page--noc .noc-hero-ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* ========== MOCKUP 1: MISSION CONSOLE (hero) ========== */
.sol-page--noc .noc-console {
  position: relative;
  background: rgba(11, 31, 77, 0.36);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(51, 173, 255, 0.22);
  border-radius: 18px;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 30px 80px -20px rgba(0, 0, 0, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  font-family: var(--noc-mono);
  width: 100%;
  max-width: 480px;
  margin-left: auto;
  /* Altura natural — bar + rows + feed (altura fixa 160px) + foot.
     O feed nao reflowa porque tem altura propria, entao o painel
     tambem nao reflowa durante rotacao dinamica. */
}
.sol-page--noc .noc-console::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.45), transparent 75%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.45), transparent 75%);
  pointer-events: none;
  z-index: 0;
}
.sol-page--noc .noc-console > * { position: relative; z-index: 1; }

.sol-page--noc .noc-console-bar {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}
.sol-page--noc .noc-console-clock {
  display: flex;
  flex-direction: column;
  gap: 0;
  line-height: 1.1;
}
.sol-page--noc .noc-console-clock-brt {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}
.sol-page--noc .noc-console-clock-brt small {
  font-size: 9px;
  color: var(--noc-cyan-bright);
  margin-left: 4px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.sol-page--noc .noc-console-clock-utc {
  font-size: 10px;
  color: var(--noc-text-mute);
  margin-top: 1px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.sol-page--noc .noc-console-shift {
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
}
.sol-page--noc .noc-console-shift strong {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 700;
}
.sol-page--noc .noc-console-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(51, 173, 255, 0.16);
  border: 1px solid var(--noc-cyan-border);
  color: var(--noc-cyan-bright);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.sol-page--noc .noc-console-rows {
  padding: 14px 16px 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sol-page--noc .noc-console-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 9px;
}
.sol-page--noc .noc-console-row-id {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.sol-page--noc .noc-console-row-name {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
  letter-spacing: 0.01em;
}
.sol-page--noc .noc-console-row-spark {
  width: 70px;
  height: 18px;
  margin-left: 4px;
}
.sol-page--noc .noc-console-row-spark path {
  fill: none;
  stroke: var(--noc-cyan-bright);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sol-page--noc .noc-console-row--warn .noc-console-row-spark path {
  stroke: var(--noc-amber-bright);
}
.sol-page--noc .noc-console-row-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--noc-green-soft);
  border: 1px solid rgba(34, 197, 94, 0.32);
  color: #4ade80;
  white-space: nowrap;
  flex-shrink: 0;
}
.sol-page--noc .noc-console-row--warn .noc-console-row-pill {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(245, 158, 11, 0.36);
  color: var(--noc-amber-bright);
}

.sol-page--noc .noc-console-feed {
  margin-top: 6px;
  padding: 12px 16px 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 7px;
  /* Altura fixa em vez de max-height — impede que a 5a entry (durante
     a transição de saida no rotateFeed) empurre o layout. Combinado com
     overflow:hidden, o painel inteiro tem altura constante. */
  height: 160px;
  overflow: hidden;
  position: relative;
}
.sol-page--noc .noc-console-feed::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 28px;
  background: linear-gradient(180deg, transparent, rgba(11, 31, 77, 0.55));
  pointer-events: none;
}
.sol-page--noc .noc-console-feed-entry {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 10px;
  align-items: baseline;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.01em;
  opacity: 0;
  transform: translateY(6px);
  animation: noc-feed-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--noc .noc-console-feed-entry:nth-child(1) { animation-delay: 0.6s; }
.sol-page--noc .noc-console-feed-entry:nth-child(2) { animation-delay: 0.8s; }
.sol-page--noc .noc-console-feed-entry:nth-child(3) { animation-delay: 1.0s; }
.sol-page--noc .noc-console-feed-entry:nth-child(4) { animation-delay: 1.2s; }
@keyframes noc-feed-in {
  to { opacity: 1; transform: translateY(0); }
}
.sol-page--noc .noc-console-feed-ts {
  color: var(--noc-text-mute);
  font-weight: 500;
  font-size: 10px;
}
.sol-page--noc .noc-console-feed-sev {
  font-weight: 700;
  font-size: 9px;
  padding: 1px 6px;
  border-radius: 3px;
  letter-spacing: 0.1em;
}
.sol-page--noc .noc-sev-p1 { background: rgba(239, 68, 68, 0.18); color: #fca5a5; }
.sol-page--noc .noc-sev-p2 { background: rgba(245, 158, 11, 0.18); color: var(--noc-amber-bright); }
.sol-page--noc .noc-sev-p3 { background: rgba(51, 173, 255, 0.16); color: var(--noc-cyan-bright); }

.sol-page--noc .noc-console-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--noc-text-mute);
}
.sol-page--noc .noc-console-foot strong {
  color: var(--noc-cyan-bright);
  font-weight: 700;
}

@media (max-width: 980px) {
  .sol-page--noc .noc-hero-content { grid-template-columns: 1fr; gap: 40px; }
  .sol-page--noc .noc-console { max-width: 100%; margin: 0; }
}

/* ========== SECTION 2: 24H TIMELINE (Mission Control Floor) ========== */
.sol-page--noc .noc-clock {
  position: relative;
  background: linear-gradient(180deg, var(--noc-ink) 0%, #061a3d 100%);
  padding: 110px 0 120px;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--noc .noc-clock::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 90%);
  mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 90%);
  pointer-events: none;
  z-index: 0;
}
.sol-page--noc .noc-clock-inner { position: relative; z-index: 1; }
.sol-page--noc .noc-clock-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 56px;
}
.sol-page--noc .noc-clock-head .noc-h2 { color: #fff; }
.sol-page--noc .noc-clock-head p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--noc-text-sec);
  margin: 0;
}

.sol-page--noc .noc-tl {
  position: relative;
  padding: 28px 32px;
  background: rgba(11, 31, 77, 0.42);
  border: 1px solid rgba(51, 173, 255, 0.18);
  border-radius: 18px;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.4);
  margin-bottom: 36px;
}
.sol-page--noc .noc-tl-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  font-family: var(--noc-mono);
}
.sol-page--noc .noc-tl-title {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.sol-page--noc .noc-tl-now {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--noc-cyan-bright);
  font-weight: 700;
}

/* The 24h timeline SVG bands */
.sol-page--noc .noc-tl-svg {
  width: 100%;
  height: 100px;
  display: block;
}
.sol-page--noc .noc-tl-band {
  opacity: 0.16;
}
.sol-page--noc .noc-tl-band--madrugada { fill: #6366f1; }
.sol-page--noc .noc-tl-band--manha     { fill: #f59e0b; }
.sol-page--noc .noc-tl-band--tarde     { fill: var(--noc-cyan); }
.sol-page--noc .noc-tl-band--noite     { fill: #8b5cf6; }
.sol-page--noc .noc-tl-band-label {
  font-family: var(--noc-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.18em;
  fill: rgba(255, 255, 255, 0.72);
  text-anchor: middle;
  text-transform: uppercase;
}
.sol-page--noc .noc-tl-hour {
  font-family: var(--noc-mono);
  font-size: 9px;
  fill: var(--noc-text-mute);
  text-anchor: middle;
}
.sol-page--noc .noc-tl-tick {
  stroke: rgba(255, 255, 255, 0.18);
  stroke-width: 1;
}
.sol-page--noc .noc-tl-now-line {
  stroke: var(--noc-cyan-bright);
  stroke-width: 2;
  filter: drop-shadow(0 0 6px rgba(51, 173, 255, 0.7));
}
.sol-page--noc .noc-tl-now-dot {
  fill: var(--noc-cyan-bright);
  filter: drop-shadow(0 0 6px rgba(51, 173, 255, 0.8));
  animation: noc-pulse 2.4s ease-in-out infinite;
  transform-origin: center;
}
.sol-page--noc .noc-tl-event {
  fill: rgba(255, 255, 255, 0.5);
}
.sol-page--noc .noc-tl-event--p2 { fill: var(--noc-amber-bright); }
.sol-page--noc .noc-tl-event--p3 { fill: var(--noc-cyan-bright); }

/* Shift cards grid */
.sol-page--noc .noc-shifts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.sol-page--noc .noc-shift {
  position: relative;
  padding: 22px 22px 20px;
  background: rgba(11, 31, 77, 0.42);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  font-family: var(--noc-mono);
  transition: border-color 0.3s ease, transform 0.3s ease;
}
.sol-page--noc .noc-shift:hover {
  border-color: rgba(51, 173, 255, 0.28);
  transform: translateY(-2px);
}
.sol-page--noc .noc-shift--current {
  border-color: var(--noc-cyan-border);
  box-shadow: 0 0 0 1px rgba(51, 173, 255, 0.15), 0 10px 30px -10px rgba(51, 173, 255, 0.25);
}
.sol-page--noc .noc-shift--current::before {
  content: "";
  position: absolute;
  top: -1px; left: -1px; right: -1px;
  height: 2px;
  background: linear-gradient(90deg, var(--noc-cyan), var(--noc-cyan-bright));
  border-radius: 14px 14px 0 0;
}
.sol-page--noc .noc-shift-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.sol-page--noc .noc-shift-range {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--noc-text-mute);
  font-weight: 600;
}
.sol-page--noc .noc-shift-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.06);
  color: var(--noc-text-mute);
}
.sol-page--noc .noc-shift--current .noc-shift-pill {
  background: rgba(51, 173, 255, 0.16);
  color: var(--noc-cyan-bright);
}
.sol-page--noc .noc-shift-name {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
}
.sol-page--noc .noc-shift-team {
  font-size: 11px;
  color: var(--noc-text-sec);
  margin-bottom: 14px;
  letter-spacing: 0.02em;
}
.sol-page--noc .noc-shift-stats {
  display: flex;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--noc .noc-shift-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sol-page--noc .noc-shift-stat-val {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.sol-page--noc .noc-shift-stat-lbl {
  font-size: 8.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
}

@media (max-width: 720px) {
  .sol-page--noc .noc-shifts { grid-template-columns: 1fr 1fr; }
  .sol-page--noc .noc-tl { padding: 18px 16px; }
}

/* ========== SECTION 3: 3 CONTROL ZONES (pillars) ========== */
.sol-page--noc .noc-zones {
  background: #fff;
  padding: 110px 0;
}
.sol-page--noc .noc-zones-stack {
  display: flex;
  flex-direction: column;
  gap: 80px;
  margin-top: 56px;
}
.sol-page--noc .noc-zone {
  display: grid;
  grid-template-columns: 80px 1fr 1fr;
  gap: 36px;
  align-items: center;
}
.sol-page--noc .noc-zone--reverse .noc-zone-body { order: -1; }
.sol-page--noc .noc-zone-num {
  position: relative;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--noc-mono);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--noc-cyan);
  font-weight: 700;
  padding-right: 14px;
  border-right: 1px solid rgba(0, 150, 255, 0.18);
  align-self: stretch;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 8px;
}
.sol-page--noc .noc-zone-num span {
  font-size: 36px;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  writing-mode: horizontal-tb;
  transform: rotate(180deg);
}
.sol-page--noc .noc-zone-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.sol-page--noc .noc-zone-tag {
  font-family: var(--noc-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--noc-cyan);
  font-weight: 600;
}
.sol-page--noc .noc-zone-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h4);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--azul-profundo);
  margin: 0;
  text-wrap: balance;
}
.sol-page--noc .noc-zone-p {
  font-size: 15px;
  line-height: 1.65;
  color: #4b5563;
  margin: 0;
}
.sol-page--noc .noc-zone-list {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.sol-page--noc .noc-zone-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
  color: #374151;
}
.sol-page--noc .noc-zone-list svg {
  flex-shrink: 0;
  margin-top: 2px;
  width: 14px;
  height: 14px;
  padding: 3px;
  background: var(--noc-cyan-soft);
  border-radius: 4px;
  color: var(--noc-cyan);
}
.sol-page--noc .noc-zone-visual {
  position: relative;
}

/* Mockup head shared */
.sol-page--noc .noc-mock {
  position: relative;
  background: linear-gradient(150deg, var(--noc-ink) 0%, #051536 100%);
  border: 1px solid rgba(51, 173, 255, 0.18);
  border-radius: 16px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.35);
}
.sol-page--noc .noc-mock-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--noc-mono);
  background: rgba(255, 255, 255, 0.02);
}
.sol-page--noc .noc-mock-title {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sol-page--noc .noc-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(51, 173, 255, 0.16);
  border: 1px solid var(--noc-cyan-border);
  color: var(--noc-cyan-bright);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.sol-page--noc .noc-mock-body { padding: 22px 22px 20px; }

/* MOCKUP 3: ECG Heartbeat (Pillar 1) */
.sol-page--noc .noc-ecg-stat {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--noc-mono);
  margin-bottom: 14px;
}
.sol-page--noc .noc-ecg-stat-val {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  color: var(--noc-cyan-bright);
  line-height: 1;
  letter-spacing: -0.02em;
}
.sol-page--noc .noc-ecg-stat-unit {
  font-size: 14px;
  color: var(--noc-text-mute);
  font-weight: 600;
}
.sol-page--noc .noc-ecg-stat-lbl {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
  margin-left: auto;
}
.sol-page--noc .noc-ecg-svg {
  width: 100%;
  height: 90px;
  display: block;
  margin-bottom: 14px;
}
.sol-page--noc .noc-ecg-grid {
  stroke: rgba(255, 255, 255, 0.05);
  stroke-width: 1;
}
.sol-page--noc .noc-ecg-line {
  fill: none;
  stroke: var(--noc-cyan-bright);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 4px rgba(51, 173, 255, 0.45));
  stroke-dasharray: 800;
  stroke-dashoffset: 800;
  animation: noc-ecg-draw 3s linear infinite;
}
@keyframes noc-ecg-draw {
  to { stroke-dashoffset: -800; }
}
.sol-page--noc .noc-ecg-foot {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--noc .noc-ecg-stat-mini {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sol-page--noc .noc-ecg-stat-mini-val {
  font-family: var(--noc-mono);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.sol-page--noc .noc-ecg-stat-mini-lbl {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
}

/* MOCKUP 4: Network Map (Pillar 2) */
.sol-page--noc .noc-net-svg {
  width: 100%;
  height: 220px;
  display: block;
  margin-bottom: 6px;
}
.sol-page--noc .noc-net-center {
  fill: rgba(0, 150, 255, 0.22);
  stroke: var(--noc-cyan-bright);
  stroke-width: 1.6;
  filter: drop-shadow(0 0 8px rgba(51, 173, 255, 0.55));
}
.sol-page--noc .noc-net-center-ring {
  fill: none;
  stroke: var(--noc-cyan-bright);
  stroke-width: 1;
  opacity: 0.5;
  animation: noc-net-ring 3s ease-out infinite;
  transform-origin: center;
}
.sol-page--noc .noc-net-center-ring:nth-of-type(2) { animation-delay: 1s; }
.sol-page--noc .noc-net-center-ring:nth-of-type(3) { animation-delay: 2s; }
@keyframes noc-net-ring {
  0%   { r: 24; opacity: 0.6; }
  100% { r: 80; opacity: 0; }
}
.sol-page--noc .noc-net-node {
  fill: rgba(11, 31, 77, 0.85);
  stroke: rgba(51, 173, 255, 0.4);
  stroke-width: 1.2;
}
.sol-page--noc .noc-net-line {
  stroke: var(--noc-cyan-bright);
  stroke-width: 1.2;
  stroke-dasharray: 4 4;
  opacity: 0.45;
  animation: noc-net-flow 2.5s linear infinite;
  fill: none;
}
@keyframes noc-net-flow {
  to { stroke-dashoffset: -32; }
}
.sol-page--noc .noc-net-label {
  font-family: var(--noc-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  fill: rgba(255, 255, 255, 0.92);
  text-anchor: middle;
}
.sol-page--noc .noc-net-sub {
  font-family: var(--noc-mono);
  font-size: 8px;
  fill: var(--noc-text-mute);
  text-anchor: middle;
  letter-spacing: 0.08em;
}
.sol-page--noc .noc-net-status {
  fill: var(--noc-green);
  filter: drop-shadow(0 0 4px rgba(34, 197, 94, 0.65));
}
.sol-page--noc .noc-net-foot {
  display: flex;
  gap: 20px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--noc-mono);
}
.sol-page--noc .noc-net-foot div { display: flex; flex-direction: column; gap: 2px; }
.sol-page--noc .noc-net-foot strong {
  font-size: 14px;
  color: #fff;
  font-weight: 700;
}
.sol-page--noc .noc-net-foot small {
  font-size: 8.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
}

/* MOCKUP 5: SLA Report Card (Pillar 3) */
.sol-page--noc .noc-sla-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 4px;
  font-family: var(--noc-mono);
}
.sol-page--noc .noc-sla-period {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
}
.sol-page--noc .noc-sla-status {
  margin-left: auto;
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #4ade80;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--noc-green-soft);
}
.sol-page--noc .noc-sla-big {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 8px 0 14px;
}
.sol-page--noc .noc-sla-big-val {
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: -0.03em;
}
.sol-page--noc .noc-sla-big-unit {
  font-size: 18px;
  color: var(--noc-cyan-bright);
  font-weight: 600;
}
.sol-page--noc .noc-sla-big-target {
  font-family: var(--noc-mono);
  font-size: 10px;
  color: var(--noc-text-mute);
  margin-left: auto;
}
.sol-page--noc .noc-sla-bars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 16px 0 18px;
  height: 50px;
  align-items: end;
}
.sol-page--noc .noc-sla-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.sol-page--noc .noc-sla-bar-fill {
  width: 100%;
  background: linear-gradient(180deg, var(--noc-cyan-bright), var(--noc-cyan));
  border-radius: 4px 4px 0 0;
  height: var(--bar-h, 80%);
  transform: scaleY(0);
  transform-origin: bottom;
  animation: noc-sla-grow 1s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--noc .noc-sla-bar:nth-child(1) .noc-sla-bar-fill { animation-delay: 0.1s; }
.sol-page--noc .noc-sla-bar:nth-child(2) .noc-sla-bar-fill { animation-delay: 0.25s; }
.sol-page--noc .noc-sla-bar:nth-child(3) .noc-sla-bar-fill { animation-delay: 0.4s; }
.sol-page--noc .noc-sla-bar:nth-child(4) .noc-sla-bar-fill { animation-delay: 0.55s; }
@keyframes noc-sla-grow {
  to { transform: scaleY(1); }
}
.sol-page--noc .noc-sla-bar-lbl {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
}
.sol-page--noc .noc-sla-sev {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--noc .noc-sla-sev-cell {
  text-align: center;
  padding: 8px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 6px;
}
.sol-page--noc .noc-sla-sev-cell-val {
  font-family: var(--noc-mono);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}
.sol-page--noc .noc-sla-sev-cell-lbl {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--noc-text-mute);
  font-weight: 600;
  margin-top: 4px;
  display: block;
}
.sol-page--noc .noc-sla-sev-cell--p1 .noc-sla-sev-cell-val { color: #fca5a5; }
.sol-page--noc .noc-sla-sev-cell--p2 .noc-sla-sev-cell-val { color: var(--noc-amber-bright); }
.sol-page--noc .noc-sla-sev-cell--p3 .noc-sla-sev-cell-val { color: var(--noc-cyan-bright); }

@media (max-width: 980px) {
  .sol-page--noc .noc-zone {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .sol-page--noc .noc-zone-num {
    writing-mode: horizontal-tb;
    transform: none;
    border: none;
    padding: 0;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
  }
  .sol-page--noc .noc-zone-num span {
    writing-mode: horizontal-tb;
    transform: none;
    margin: 0 12px 0 0;
  }
  .sol-page--noc .noc-zone--reverse .noc-zone-body { order: 0; }
}

/* ========== SECTION 4: BRIDGE CTA (tema claro) ========== */
.sol-page--noc .noc-bridge {
  background: #fff;
  padding: 0 0 110px;
}
.sol-page--noc .noc-bridge-inner {
  display: grid;
  grid-template-columns: 1.4fr auto;
  gap: 40px;
  align-items: center;
  padding: 44px 48px;
  background: linear-gradient(135deg, var(--offwhite, #f8fcff) 0%, #fff 100%);
  border: 1px solid var(--cinza-suave, #e6edf6);
  border-radius: 20px;
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--noc .noc-bridge-inner::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 36px 36px;
  -webkit-mask-image: linear-gradient(135deg, transparent 30%, black);
  mask-image: linear-gradient(135deg, transparent 30%, black);
  z-index: 0;
}
.sol-page--noc .noc-bridge-inner > * { position: relative; z-index: 1; }
.sol-page--noc .noc-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  margin: 8px 0;
}
.sol-page--noc .noc-bridge-p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4A5568);
  margin: 0;
}

@media (max-width: 768px) {
  .sol-page--noc .noc-bridge-inner { grid-template-columns: 1fr; padding: 32px 28px; }
}

/* ========== SECTION 5: KPI WALL (Resultados, tema claro) ========== */
.sol-page--noc .noc-wall {
  position: relative;
  background: var(--offwhite, #f8fcff);
  padding: 110px 0 120px;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--noc .noc-wall-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.08;
}
.sol-page--noc .noc-wall-bg img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  filter: saturate(0.5);
}
.sol-page--noc .noc-wall-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(248, 252, 255, 0.85) 0%, rgba(248, 252, 255, 0.96) 100%),
    radial-gradient(circle at 50% 50%, rgba(0, 151, 178, 0.06), transparent 60%);
}
.sol-page--noc .noc-wall-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 95%);
  mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 95%);
}
.sol-page--noc .noc-wall-inner { position: relative; z-index: 3; }
.sol-page--noc .noc-wall-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 64px;
}
.sol-page--noc .noc-wall-head .noc-eyebrow { color: var(--coral-text); }
.sol-page--noc .noc-wall-head .noc-h2 { color: var(--azul-profundo); }

.sol-page--noc .noc-wall-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "hero stat1 stat2"
    "hero stat3 stat4"
    "stat5 stat5 stat6";
  gap: 14px;
  max-width: 1100px;
  margin: 0 auto;
}
.sol-page--noc .noc-wall-cell {
  position: relative;
  background: #fff;
  border: 1px solid var(--cinza-suave, #e6edf6);
  border-radius: 14px;
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.sol-page--noc .noc-wall-cell:hover {
  border-color: rgba(0, 151, 178, 0.4);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.25);
  transform: translateY(-3px);
}
.sol-page--noc .noc-wall-hero { grid-area: hero; padding: 32px; }
.sol-page--noc .noc-wall-cell--1 { grid-area: stat1; }
.sol-page--noc .noc-wall-cell--2 { grid-area: stat2; }
.sol-page--noc .noc-wall-cell--3 { grid-area: stat3; }
.sol-page--noc .noc-wall-cell--4 { grid-area: stat4; }
.sol-page--noc .noc-wall-cell--5 { grid-area: stat5; }
.sol-page--noc .noc-wall-cell--6 { grid-area: stat6; }

.sol-page--noc .noc-wall-tag {
  font-family: var(--noc-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--coral-text);
  font-weight: 700;
}
.sol-page--noc .noc-wall-num {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: var(--font-display);
  color: var(--azul-profundo);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-top: 4px;
}
.sol-page--noc .noc-wall-num strong { font-size: 32px; font-weight: 700; }
.sol-page--noc .noc-wall-num small { font-size: 14px; color: var(--coral-text); font-weight: 500; }
.sol-page--noc .noc-wall-lbl {
  font-size: 12px;
  line-height: 1.45;
  color: var(--texto-sec-escuro, #4A5568);
  margin-top: 6px;
}

/* Hero cell with ring */
.sol-page--noc .noc-wall-hero-tag {
  font-family: var(--noc-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--coral-text);
  font-weight: 700;
}
.sol-page--noc .noc-wall-hero-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: center;
  margin-top: 18px;
}
.sol-page--noc .noc-wall-ring {
  position: relative;
  width: clamp(140px, 13vw, 170px);
  height: clamp(140px, 13vw, 170px);
}
.sol-page--noc .noc-wall-ring svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.sol-page--noc .noc-wall-ring-bg {
  fill: none;
  stroke: rgba(8, 39, 100, 0.08);
  stroke-width: 5;
}
.sol-page--noc .noc-wall-ring-fg {
  fill: none;
  stroke: var(--coral);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-dasharray: 314;
  stroke-dashoffset: 314;
  animation: noc-wall-ring-fill 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.3s forwards;
}
@keyframes noc-wall-ring-fill {
  to { stroke-dashoffset: 1.6; } /* 99.5% */
}
.sol-page--noc .noc-wall-ring-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.sol-page--noc .noc-wall-ring-pct {
  font-family: var(--font-display);
  font-size: var(--fs-h2);
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.02em;
  line-height: 1;
}
.sol-page--noc .noc-wall-ring-lbl {
  font-family: var(--noc-mono);
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(8, 39, 100, 0.5);
  font-weight: 600;
}
.sol-page--noc .noc-wall-hero-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--noc .noc-wall-hero-h {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.sol-page--noc .noc-wall-hero-p {
  font-size: 13px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4A5568);
  margin: 0;
}
.sol-page--noc .noc-wall-hero-trend {
  font-family: var(--noc-mono);
  font-size: 10px;
  color: #15803d;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-top: 6px;
}
.sol-page--noc .noc-wall-hero-trend::before { content: "↗ "; }

@media (max-width: 980px) {
  .sol-page--noc .noc-wall-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "hero hero"
      "stat1 stat2"
      "stat3 stat4"
      "stat5 stat6";
  }
  .sol-page--noc .noc-wall-hero-grid { grid-template-columns: 1fr; text-align: center; }
  .sol-page--noc .noc-wall-ring { margin: 0 auto; }
}
@media (max-width: 540px) {
  .sol-page--noc .noc-wall-grid { grid-template-columns: 1fr; grid-template-areas: "hero" "stat1" "stat2" "stat3" "stat4" "stat5" "stat6"; }
}

/* ========== SECTION 6: SHIFT ROSTER (Team) ========== */
.sol-page--noc .noc-roster {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  padding: 110px 0;
}
.sol-page--noc .noc-roster-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 56px;
}
.sol-page--noc .noc-roster-head p {
  font-size: 16px;
  line-height: 1.65;
  color: #4b5563;
  margin: 0;
}
.sol-page--noc .noc-roster-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.sol-page--noc .noc-roster-card {
  position: relative;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}
.sol-page--noc .noc-roster-card:hover {
  transform: translateY(-3px);
  border-color: var(--noc-cyan-border);
  box-shadow: 0 12px 32px -8px rgba(0, 150, 255, 0.2);
}
.sol-page--noc .noc-roster-card--active {
  border-color: var(--noc-cyan-bright);
  box-shadow: 0 0 0 1px rgba(51, 173, 255, 0.25), 0 12px 30px -10px rgba(51, 173, 255, 0.25);
}
.sol-page--noc .noc-roster-card-photo {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.sol-page--noc .noc-roster-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.sol-page--noc .noc-roster-card:hover .noc-roster-card-photo img { transform: scale(1.05); }
.sol-page--noc .noc-roster-card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(4, 19, 47, 0.55) 100%);
}
.sol-page--noc .noc-roster-card-status {
  position: absolute;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  font-family: var(--noc-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: rgba(11, 31, 77, 0.85);
  color: var(--noc-text-mute);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  z-index: 1;
}
.sol-page--noc .noc-roster-card--active .noc-roster-card-status {
  background: rgba(0, 150, 255, 0.85);
  color: #fff;
}
.sol-page--noc .noc-roster-card-time {
  position: absolute;
  bottom: 14px;
  left: 14px;
  font-family: var(--noc-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 700;
  z-index: 1;
}
.sol-page--noc .noc-roster-card-body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.sol-page--noc .noc-roster-card-name {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.01em;
  margin: 0;
}
.sol-page--noc .noc-roster-card-team {
  font-family: var(--noc-mono);
  font-size: 11px;
  color: #4b5563;
  letter-spacing: 0.04em;
}
.sol-page--noc .noc-roster-card-certs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
}
.sol-page--noc .noc-roster-card-cert {
  font-family: var(--noc-mono);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: 4px;
  background: var(--noc-cyan-soft);
  color: var(--noc-cyan);
  font-weight: 600;
}

@media (max-width: 980px) {
  .sol-page--noc .noc-roster-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .sol-page--noc .noc-roster-grid { grid-template-columns: 1fr; }
}

/* ========== CASES (editorial proof, light, 3-col grid) ========== */
.sol-page--noc .noc-cases {
  position: relative;
  padding: 96px 0 108px;
  background: #ffffff;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--noc .noc-cases-grid-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  pointer-events: none;
}
.sol-page--noc .noc-cases-glow {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 540px;
  height: 540px;
  background: radial-gradient(circle, rgba(0, 150, 255, 0.08) 0%, transparent 65%);
  filter: blur(40px);
  z-index: 0;
  pointer-events: none;
}
.sol-page--noc .noc-cases-inner { position: relative; z-index: 2; }
.sol-page--noc .noc-cases-list {
  list-style: none;
  padding: 0;
  margin: 60px 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.sol-page--noc .noc-cases-list--two-up {
  grid-template-columns: repeat(2, 1fr);
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.sol-page--noc .noc-case-card {
  position: relative;
  height: 100%;
  padding: 34px 30px 32px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
  border: 1px solid rgba(8, 39, 100, 0.08);
  box-shadow: 0 10px 28px -16px rgba(8, 39, 100, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s var(--ease, cubic-bezier(0.16, 1, 0.3, 1)), border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--noc .noc-case-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 30px;
  right: 30px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--noc-cyan), transparent);
  opacity: 0.5;
  pointer-events: none;
}
.sol-page--noc .noc-case-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 150, 255, 0.32);
  box-shadow: 0 18px 40px -16px rgba(8, 39, 100, 0.22);
}
.sol-page--noc .noc-case-head {
  display: flex;
  align-items: center;
  gap: 10px 12px;
  padding-bottom: 18px;
  margin-bottom: 26px;
  border-bottom: 1px dashed rgba(8, 39, 100, 0.12);
  flex-wrap: wrap;
}
.sol-page--noc .noc-case-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: -0.02em;
  color: var(--noc-cyan);
  line-height: 1;
  padding-right: 10px;
  border-right: 1px solid rgba(8, 39, 100, 0.16);
}
.sol-page--noc .noc-case-chip {
  font-family: var(--noc-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--noc-cyan);
  background: rgba(0, 150, 255, 0.08);
  border: 1px solid rgba(0, 150, 255, 0.18);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--noc .noc-case-where {
  flex-basis: 100%;
  font-family: var(--noc-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.72);
  margin-top: 2px;
  line-height: 1.3;
}
.sol-page--noc .noc-case-body {
  display: flex;
  flex-direction: column;
  gap: 28px;
  flex: 1;
}
.sol-page--noc .noc-case-aside {
  display: flex;
  align-items: center;
  gap: 22px;
}
.sol-page--noc .noc-case-logo-plate {
  position: relative;
  padding: 12px 14px;
  background: #f8f5ed;
  border-radius: 12px;
  border: 1px solid rgba(8, 39, 100, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 112px;
  height: 60px;
}
.sol-page--noc .noc-case-logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sol-page--noc .noc-case-logo--invert {
  filter: brightness(0) opacity(0.78);
}
.sol-page--noc .noc-case-kpi {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.sol-page--noc .noc-case-kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 42px);
  letter-spacing: -0.035em;
  line-height: 0.95;
  background: linear-gradient(135deg, var(--azul-profundo) 0%, var(--noc-cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--noc .noc-case-kpi-unit {
  font-size: 0.55em;
  font-weight: 700;
  margin-left: 1px;
}
.sol-page--noc .noc-case-kpi-lbl {
  font-family: var(--noc-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.78);
  line-height: 1.55;
  max-width: 220px;
}
.sol-page--noc .noc-case-main { position: relative; }
.sol-page--noc .noc-case-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  line-height: 1.22;
}
.sol-page--noc .noc-case-quote {
  position: relative;
  margin: 0 0 22px;
  padding: 4px 0 0 22px;
}
.sol-page--noc .noc-case-quote-mark {
  position: absolute;
  top: -12px;
  left: -2px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  color: var(--noc-cyan);
  opacity: 0.3;
}
.sol-page--noc .noc-case-quote p {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  font-style: italic;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.86);
  margin: 0 0 16px;
}
.sol-page--noc .noc-case-cite {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--noc .noc-case-cite cite {
  font-family: var(--noc-mono);
  font-size: 9.5px;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--noc-cyan);
}
.sol-page--noc .noc-case-cite span {
  font-family: var(--font-body);
  font-size: 12.5px;
  color: rgba(8, 39, 100, 0.72);
}
.sol-page--noc .noc-case-stack {
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
}
.sol-page--noc .noc-case-stack-lbl {
  display: block;
  font-family: var(--noc-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--noc-cyan);
  margin-bottom: 14px;
}
.sol-page--noc .noc-case-stack-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--noc .noc-case-stack-list li {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(8, 39, 100, 0.82);
  padding: 6px 12px;
  background: rgba(0, 150, 255, 0.05);
  border: 1px solid rgba(0, 150, 255, 0.14);
  border-radius: 7px;
  max-width: 100%;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.sol-page--noc .noc-case-card:hover .noc-case-stack-list li {
  background: rgba(0, 150, 255, 0.09);
  border-color: rgba(0, 150, 255, 0.26);
  color: var(--azul-profundo);
}
.sol-page--noc .noc-cases-foot {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sol-page--noc .noc-btn--ghost-dark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.005em;
  padding: 10px 22px;
  border-radius: 100px;
  background: transparent;
  color: var(--azul-profundo);
  border: 1.5px solid rgba(8, 39, 100, 0.22);
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  text-decoration: none;
}
.sol-page--noc .noc-btn--ghost-dark:hover {
  background: rgba(0, 150, 255, 0.06);
  border-color: var(--noc-cyan);
  color: var(--noc-cyan);
  transform: translateY(-1px);
}

@media (max-width: 980px) {
  .sol-page--noc .noc-cases { padding: 78px 0 86px; }
  .sol-page--noc .noc-cases-list {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 580px;
    margin-left: auto;
    margin-right: auto;
  }
  .sol-page--noc .noc-case-card { padding: 30px 26px 28px; }
  .sol-page--noc .noc-case-kpi-num { font-size: clamp(28px, 6vw, 36px); }
}
@media (max-width: 640px) {
  .sol-page--noc .noc-cases { padding: 56px 0 64px; }
  .sol-page--noc .noc-case-head { gap: 8px; }
}

/* ========== SECTION 7: STACK (clean strip) ========== */
.sol-page--noc .noc-stack {
  background: #fff;
  padding: 96px 0;
}
.sol-page--noc .noc-stack-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 1000px;
  margin: 32px auto 0;
}
/* SOC reaproveita o estilo do NOC mas tem 5 cards no stack: mantem 5 colunas */
.sol-page--soc .noc-stack-grid {
  grid-template-columns: repeat(5, 1fr);
}
.sol-page--noc .noc-stack-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 22px 14px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 12px;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--noc .noc-stack-card:hover {
  transform: translateY(-3px);
  border-color: var(--noc-cyan-border);
  box-shadow: 0 8px 24px -6px rgba(0, 150, 255, 0.16);
}
.sol-page--noc .noc-stack-card-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  color: var(--azul-profundo);
}
.sol-page--noc .noc-stack-card-sub {
  font-family: var(--noc-mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--noc-cyan);
  font-weight: 600;
}
.sol-page--noc .noc-stack-badges {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 28px;
  flex-wrap: wrap;
}
.sol-page--noc .noc-stack-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: 999px;
  font-family: var(--noc-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: rgba(8, 39, 100, 0.05);
  border: 1px solid rgba(8, 39, 100, 0.1);
  color: var(--noc-cyan);
}

@media (max-width: 768px) {
  .sol-page--noc .noc-stack-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .sol-page--noc .noc-stack-grid { grid-template-columns: 1fr 1fr; }
}

/* ========== SECTION 8: CTA FINAL ========== */
.sol-page--noc .noc-cta {
  position: relative;
  padding: 130px 0;
  background: var(--noc-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--noc .noc-cta-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sol-page--noc .noc-cta-bg img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
}
.sol-page--noc .noc-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(4, 19, 47, 0.92), rgba(10, 31, 71, 0.85)),
    radial-gradient(circle at 70% 30%, rgba(0, 150, 255, 0.15), transparent 60%);
}
.sol-page--noc .noc-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 780px;
  margin: 0 auto;
}
.sol-page--noc .noc-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--noc .noc-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--noc-text-sec);
  margin: 0 0 32px;
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .sol-page--noc .noc-pulse,
  .sol-page--noc .noc-ecg-line,
  .sol-page--noc .noc-net-line,
  .sol-page--noc .noc-net-center-ring,
  .sol-page--noc .noc-tl-now-dot,
  .sol-page--noc .noc-console-feed-entry,
  .sol-page--noc .noc-sla-bar-fill,
  .sol-page--noc .noc-wall-ring-fg {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .sol-page--noc .noc-ecg-line { stroke-dashoffset: 0 !important; }
  .sol-page--noc .noc-wall-ring-fg { stroke-dashoffset: 1.6 !important; }
  .sol-page--noc .noc-sla-bar-fill { transform: scaleY(1) !important; }
}

/* ===================================================================
   NOC v2: FIXES
   1) Zone reverse usa grid-template-areas (resolve squeeze)
   2) Clock 24h: background claro + cores de texto invertidas
   3) Lifecycle: nova seção substituindo Roster
   =================================================================== */

/* ---------- FIX: Zone reverse via grid-template-areas ---------- */
.sol-page--noc .noc-zone {
  grid-template-areas: "num body visual";
}
.sol-page--noc .noc-zone--reverse {
  grid-template-areas: "num visual body";
}
.sol-page--noc .noc-zone-num    { grid-area: num; }
.sol-page--noc .noc-zone-body   { grid-area: body; }
.sol-page--noc .noc-zone-visual { grid-area: visual; }
.sol-page--noc .noc-zone--reverse .noc-zone-body { order: 0; }

@media (max-width: 980px) {
  .sol-page--noc .noc-zone {
    grid-template-areas:
      "num"
      "body"
      "visual";
  }
  .sol-page--noc .noc-zone--reverse {
    grid-template-areas:
      "num"
      "visual"
      "body";
  }
}

/* ---------- 24h Clock section em tema claro (timeline + shift cards) ---------- */
.sol-page--noc .noc-clock {
  background: linear-gradient(180deg, #fff 0%, var(--offwhite, #f8fcff) 100%);
}
.sol-page--noc .noc-clock::before {
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.04) 1px, transparent 1px);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 90%);
  mask-image: radial-gradient(ellipse at 50% 50%, black 40%, transparent 90%);
}
.sol-page--noc .noc-clock-head .noc-eyebrow { color: var(--coral-text); }
.sol-page--noc .noc-clock-head .noc-h2 { color: var(--azul-profundo); }
.sol-page--noc .noc-clock-head p { color: var(--texto-sec-escuro, #4A5568); }

/* Painel da timeline em tema claro */
.sol-page--noc .noc-tl {
  background: #fff;
  border: 1px solid var(--cinza-suave, #e6edf6);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.18);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.sol-page--noc .noc-tl-title { color: var(--azul-profundo); }
.sol-page--noc .noc-tl-now { color: var(--coral-text); }
.sol-page--noc .noc-tl-band-label { fill: rgba(8, 39, 100, 0.6); }
.sol-page--noc .noc-tl-hour { fill: rgba(8, 39, 100, 0.45); }
.sol-page--noc .noc-tl-tick { stroke: rgba(8, 39, 100, 0.2); }
.sol-page--noc .noc-tl-event { fill: rgba(8, 39, 100, 0.55); }
.sol-page--noc .noc-tl-elapsed { mix-blend-mode: normal; opacity: 0.32; }

/* Shift cards em tema claro */
.sol-page--noc .noc-shift {
  background: #fff;
  border: 1px solid var(--cinza-suave, #e6edf6);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.sol-page--noc .noc-shift:hover {
  border-color: rgba(0, 151, 178, 0.4);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.25);
}
.sol-page--noc .noc-shift--current {
  border-color: rgba(0, 151, 178, 0.5);
  box-shadow: 0 0 0 1px rgba(0, 151, 178, 0.15), 0 16px 36px -16px rgba(0, 151, 178, 0.3);
}
.sol-page--noc .noc-shift--current::before {
  background: linear-gradient(90deg, var(--coral), var(--coral-hover, #007a91));
}
.sol-page--noc .noc-shift-range { color: rgba(8, 39, 100, 0.55); }
.sol-page--noc .noc-shift-pill {
  background: rgba(8, 39, 100, 0.06);
  color: rgba(8, 39, 100, 0.62);
}
.sol-page--noc .noc-shift--current .noc-shift-pill {
  background: rgba(0, 151, 178, 0.14);
  color: var(--coral-text);
}
.sol-page--noc .noc-shift-name { color: var(--azul-profundo); }
.sol-page--noc .noc-shift-team { color: var(--texto-sec-escuro, #4A5568); }
.sol-page--noc .noc-shift-stats { border-top-color: rgba(8, 39, 100, 0.06); }
.sol-page--noc .noc-shift-stat-val { color: var(--azul-profundo); }
.sol-page--noc .noc-shift-stat-lbl { color: rgba(8, 39, 100, 0.5); }

/* Legenda da timeline em tema claro */
.sol-page--noc .noc-tl-legend {
  color: rgba(8, 39, 100, 0.55);
  border-top-color: rgba(8, 39, 100, 0.08);
}
.sol-page--noc .noc-tl-legend-item strong { color: var(--azul-profundo); }

/* ---------- NEW: Anatomia de Incidente (Lifecycle Track) ---------- */
.sol-page--noc .noc-life {
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  padding: 110px 0;
}
.sol-page--noc .noc-life-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 32px;
}
.sol-page--noc .noc-life-head p {
  font-size: 16px;
  line-height: 1.65;
  color: #4b5563;
  margin: 0;
}
.sol-page--noc .noc-life-sla {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 24px auto 0;
  padding: 9px 18px;
  border-radius: 999px;
  background: var(--noc-cyan-soft);
  border: 1px solid var(--noc-cyan-border);
  color: var(--noc-cyan);
  font-family: var(--noc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
}
.sol-page--noc .noc-life-sla strong { color: var(--azul-profundo); }

.sol-page--noc .noc-life-track {
  position: relative;
  margin-top: 56px;
}
.sol-page--noc .noc-life-rail {
  position: absolute;
  top: 49px;
  left: 5%;
  right: 5%;
  height: 2px;
  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(0, 150, 255, 0.18) 8%,
      rgba(51, 173, 255, 0.6) 50%,
      rgba(0, 150, 255, 0.18) 92%,
      transparent 100%);
  z-index: 0;
}
.sol-page--noc .noc-life-rail::after {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  height: 4px;
  width: 60px;
  background: linear-gradient(90deg, transparent, var(--noc-cyan-bright), transparent);
  border-radius: 4px;
  filter: blur(2px);
  animation: noc-life-flow 4s linear infinite;
}
@keyframes noc-life-flow {
  0%   { left: 0; opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { left: calc(100% - 60px); opacity: 0; }
}

.sol-page--noc .noc-life-steps {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
}
.sol-page--noc .noc-life-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  opacity: 0;
  transform: translateY(8px);
  animation: noc-life-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--noc .noc-life-step:nth-child(1) { animation-delay: 0.05s; }
.sol-page--noc .noc-life-step:nth-child(2) { animation-delay: 0.18s; }
.sol-page--noc .noc-life-step:nth-child(3) { animation-delay: 0.31s; }
.sol-page--noc .noc-life-step:nth-child(4) { animation-delay: 0.44s; }
.sol-page--noc .noc-life-step:nth-child(5) { animation-delay: 0.57s; }
.sol-page--noc .noc-life-step:nth-child(6) { animation-delay: 0.7s; }
@keyframes noc-life-in {
  to { opacity: 1; transform: translateY(0); }
}

.sol-page--noc .noc-life-time {
  font-family: var(--noc-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--noc-cyan);
  font-weight: 700;
  margin-bottom: 14px;
  line-height: 1;
}
.sol-page--noc .noc-life-marker {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--noc-cyan-bright);
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.18);
  margin-bottom: 22px;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.sol-page--noc .noc-life-step--final .noc-life-marker {
  background: var(--noc-cyan-bright);
  box-shadow: 0 0 0 4px rgba(51, 173, 255, 0.28), 0 0 12px rgba(51, 173, 255, 0.5);
}
.sol-page--noc .noc-life-step--final .noc-life-time { color: #007a91; }

.sol-page--noc .noc-life-card {
  padding: 18px 16px 16px;
  background: #fff;
  border: 1px solid rgba(8, 39, 100, 0.08);
  border-radius: 12px;
  width: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--noc .noc-life-card:hover {
  transform: translateY(-3px);
  border-color: var(--noc-cyan-border);
  box-shadow: 0 12px 28px -10px rgba(0, 150, 255, 0.22);
}
.sol-page--noc .noc-life-step--final .noc-life-card {
  border-color: var(--noc-cyan-border);
  background: linear-gradient(180deg, #fff, rgba(51, 173, 255, 0.04));
}
.sol-page--noc .noc-life-tag {
  font-family: var(--noc-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--noc-cyan);
  font-weight: 700;
}
.sol-page--noc .noc-life-step--final .noc-life-tag { color: var(--noc-green); }
.sol-page--noc .noc-life-title {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 0;
  letter-spacing: -0.005em;
  line-height: 1.3;
  text-wrap: balance;
}
.sol-page--noc .noc-life-desc {
  font-size: 12px;
  line-height: 1.5;
  color: #4b5563;
  margin: 0;
}
.sol-page--noc .noc-life-sev {
  display: inline-flex;
  align-self: center;
  font-family: var(--noc-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 2px 7px;
  border-radius: 4px;
  margin-top: 4px;
  background: rgba(245, 158, 11, 0.14);
  color: var(--noc-amber-bright);
}
.sol-page--noc .noc-life-sev--ok {
  background: var(--noc-green-soft);
  color: #15803d;
}

@media (max-width: 980px) {
  .sol-page--noc .noc-life-rail { display: none; }
  .sol-page--noc .noc-life-steps {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .sol-page--noc .noc-life-step {
    display: grid;
    grid-template-columns: 80px auto 1fr;
    gap: 14px;
    align-items: center;
    text-align: left;
  }
  .sol-page--noc .noc-life-time { margin: 0; }
  .sol-page--noc .noc-life-marker { margin: 0; }
  .sol-page--noc .noc-life-card { text-align: left; }
  .sol-page--noc .noc-life-sev { align-self: flex-start; }
}

/* Hide the old roster section if still in DOM */
.sol-page--noc .noc-roster { display: none; }

/* ---------- NOC v3: elapsed bar + active band glow ---------- */
.sol-page--noc .noc-tl-elapsed {
  fill: url(#noc-tl-elapsed-grad);
  opacity: 0.55;
  transition: width 1s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  mix-blend-mode: screen;
}
.sol-page--noc .noc-tl-band--active {
  animation: noc-tl-band-pulse 3.6s ease-in-out infinite;
}
@keyframes noc-tl-band-pulse {
  0%, 100% { opacity: 0.34; }
  50%      { opacity: 0.55; }
}

/* NOC v4: lifecycle cards — text-wrap balanceado + timestamps mais legíveis */
.sol-page--noc .noc-life-time {
  font-variant-numeric: tabular-nums;
}
.sol-page--noc .noc-life-title {
  text-wrap: balance;
}
.sol-page--noc .noc-life-desc {
  text-wrap: pretty;
}

/* NOC v5: event dots fade-in animation */
.sol-page--noc .noc-tl-event {
  animation: noc-tl-event-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes noc-tl-event-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.sol-page--noc .noc-tl-event--new {
  animation: noc-tl-event-pop 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes noc-tl-event-pop {
  0%   { opacity: 0; transform-origin: center; }
  40%  { opacity: 1; }
  100% { opacity: 1; }
}
.sol-page--noc .noc-shift-stat-val.is-flash {
  animation: noc-shift-flash 0.6s ease;
}
@keyframes noc-shift-flash {
  0%   { color: var(--noc-cyan-bright); transform: scale(1.18); }
  100% { color: #fff; transform: scale(1); }
}

/* NOC v6: smooth sparkline path morph */
.sol-page--noc .noc-console-row-spark path {
  transition: d 1.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* NOC v7: timeline dots — contraste no fundo claro */
.sol-page--noc .noc-tl-event {
  fill: rgba(8, 39, 100, 0.55);
  r: 3.5;
  filter: none;
}
.sol-page--noc .noc-tl-event--p2 {
  fill: #d97706;
  r: 4;
  filter: drop-shadow(0 0 4px rgba(217, 119, 6, 0.45));
}
.sol-page--noc .noc-tl-event--p3 {
  fill: var(--coral);
  r: 3.8;
  filter: drop-shadow(0 0 4px rgba(0, 151, 178, 0.45));
}

/* NOC v8: legenda da timeline + dots P1 (crítico) */
.sol-page--noc .noc-tl-event--p1 {
  fill: #dc2626;
  r: 4.5;
  filter: drop-shadow(0 0 5px rgba(220, 38, 38, 0.55));
}
.sol-page--noc .noc-tl-legend {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 22px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
  font-family: var(--noc-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(8, 39, 100, 0.68);
  font-weight: 600;
}
.sol-page--noc .noc-tl-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.sol-page--noc .noc-tl-legend-item strong {
  color: var(--azul-profundo);
  font-weight: 700;
  margin-right: 2px;
}
.sol-page--noc .noc-tl-legend-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--noc .noc-tl-legend-dot--p1 {
  background: #dc2626;
  box-shadow: 0 0 4px rgba(220, 38, 38, 0.45);
}
.sol-page--noc .noc-tl-legend-dot--p2 {
  background: #d97706;
  box-shadow: 0 0 4px rgba(217, 119, 6, 0.45);
}
.sol-page--noc .noc-tl-legend-dot--p3 {
  background: var(--coral);
  box-shadow: 0 0 4px rgba(0, 151, 178, 0.45);
}
.sol-page--noc .noc-tl-legend-dot--default {
  background: rgba(8, 39, 100, 0.55);
  box-shadow: none;
}
@media (max-width: 720px) {
  .sol-page--noc .noc-tl-legend { gap: 12px; font-size: 9px; }
}
/* ===================================================================
   SOC SHIELD - overrides + new mockups (scoped to .sol-page--soc)
   ================================================================ */

/* ---- Timeline: 4 defense surface lanes ---- */
.sol-page--soc .noc-tl-svg.soc-tl-svg {
  height: 200px;
}
.sol-page--soc .soc-tl-lane {
  fill: rgba(255, 255, 255, 0.04);
  stroke: rgba(255, 255, 255, 0.06);
  stroke-width: 1;
  transition: fill 0.6s ease, stroke 0.6s ease;
}
.sol-page--soc .soc-tl-lane--endpoint   { fill: rgba(99, 102, 241, 0.08); }
.sol-page--soc .soc-tl-lane--rede       { fill: rgba(51, 173, 255, 0.08); }
.sol-page--soc .soc-tl-lane--identidade { fill: rgba(168, 85, 247, 0.08); }
.sol-page--soc .soc-tl-lane--cloud      { fill: rgba(245, 158, 11, 0.07); }
.sol-page--soc .soc-tl-lane--active {
  fill: rgba(51, 173, 255, 0.22);
  stroke: rgba(51, 173, 255, 0.45);
  stroke-width: 1.5;
  filter: drop-shadow(0 0 8px rgba(51, 173, 255, 0.3));
}
.sol-page--soc .soc-tl-lane-lbl {
  font-family: var(--noc-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.18em;
  fill: rgba(255, 255, 255, 0.55);
  text-anchor: start;
  text-transform: uppercase;
}

/* ---- Pillar 01: Visibilidade Unificada ---- */
.sol-page--soc .soc-vis-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sol-page--soc .soc-vis-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px dashed rgba(51, 173, 255, 0.18);
  flex-wrap: wrap;
}
.sol-page--soc .soc-vis-head-num {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.sol-page--soc .soc-vis-head-val {
  font-family: var(--noc-mono);
  font-size: 28px;
  font-weight: 700;
  color: var(--noc-cyan-bright);
  line-height: 1;
  letter-spacing: -0.02em;
}
.sol-page--soc .soc-vis-head-unit {
  font-family: var(--noc-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sol-page--soc .soc-vis-head-lbl {
  font-family: var(--noc-mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 600;
}
.sol-page--soc .soc-vis-sources {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sol-page--soc .soc-vis-source {
  display: grid;
  grid-template-columns: 18px 1fr auto 10px;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  transition: background 0.3s ease, border-color 0.3s ease;
}
.sol-page--soc .soc-vis-source:hover {
  background: rgba(51, 173, 255, 0.05);
  border-color: rgba(51, 173, 255, 0.18);
}
.sol-page--soc .soc-vis-source-ico {
  width: 16px;
  height: 16px;
  color: var(--noc-cyan-bright);
  flex-shrink: 0;
}
.sol-page--soc .soc-vis-source-name {
  font-family: var(--noc-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.88);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sol-page--soc .soc-vis-source-rate {
  font-family: var(--noc-mono);
  font-size: 10.5px;
  color: var(--noc-cyan-bright);
  font-weight: 700;
  white-space: nowrap;
}
.sol-page--soc .soc-vis-source-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.2);
  animation: soc-vis-dot 2.4s ease-in-out infinite;
}
.sol-page--soc .soc-vis-source:nth-child(2) .soc-vis-source-dot { animation-delay: -0.4s; }
.sol-page--soc .soc-vis-source:nth-child(3) .soc-vis-source-dot { animation-delay: -0.8s; }
.sol-page--soc .soc-vis-source:nth-child(4) .soc-vis-source-dot { animation-delay: -1.2s; }
.sol-page--soc .soc-vis-source:nth-child(5) .soc-vis-source-dot { animation-delay: -1.6s; }
.sol-page--soc .soc-vis-source:nth-child(6) .soc-vis-source-dot { animation-delay: -2.0s; }
@keyframes soc-vis-dot {
  0%, 100% { box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.2); }
  50%      { box-shadow: 0 0 0 7px rgba(74, 222, 128, 0); }
}
.sol-page--soc .soc-vis-foot {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--soc .soc-vis-foot-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: center;
}
.sol-page--soc .soc-vis-foot-item strong {
  font-family: var(--noc-mono);
  font-size: 16px;
  color: #fff;
  font-weight: 700;
  line-height: 1;
}
.sol-page--soc .soc-vis-foot-unit {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
  margin-left: 1px;
  font-weight: 600;
}
.sol-page--soc .soc-vis-foot-item small {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
}

/* ---- Pillar 02: Correlation Funnel ---- */
.sol-page--soc .soc-funnel-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.sol-page--soc .soc-funnel {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--soc .soc-funnel-stage {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 10px;
  border: 1px solid;
  transition: transform 0.4s ease;
}
.sol-page--soc .soc-funnel-stage:hover { transform: translateX(2px); }
.sol-page--soc .soc-funnel-stage--raw {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
  width: 100%;
}
.sol-page--soc .soc-funnel-stage--mid {
  background: rgba(51, 173, 255, 0.06);
  border-color: rgba(51, 173, 255, 0.22);
  width: 78%;
  margin-left: auto;
  margin-right: auto;
}
.sol-page--soc .soc-funnel-stage--out {
  background: rgba(74, 222, 128, 0.08);
  border-color: rgba(74, 222, 128, 0.36);
  width: 56%;
  margin-left: auto;
  margin-right: auto;
}
.sol-page--soc .soc-funnel-stage-tag {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 700;
}
.sol-page--soc .soc-funnel-stage-num {
  font-family: var(--noc-mono);
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: -0.01em;
  text-align: center;
}
.sol-page--soc .soc-funnel-stage--mid .soc-funnel-stage-num { color: var(--noc-cyan-bright); }
.sol-page--soc .soc-funnel-stage--out .soc-funnel-stage-num { color: #4ade80; }
.sol-page--soc .soc-funnel-stage-lbl {
  font-family: var(--noc-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.04em;
  text-align: right;
}
.sol-page--soc .soc-funnel-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 2px 0;
  color: rgba(51, 173, 255, 0.55);
}
.sol-page--soc .soc-funnel-arrow svg {
  width: 14px;
  height: 14px;
  animation: soc-funnel-arrow 2s ease-in-out infinite;
}
@keyframes soc-funnel-arrow {
  0%, 100% { transform: translateY(0); opacity: 0.55; }
  50%      { transform: translateY(2px); opacity: 1; }
}
.sol-page--soc .soc-funnel-arrow-lbl {
  font-family: var(--noc-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  font-weight: 600;
}
.sol-page--soc .soc-funnel-foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--soc .soc-funnel-foot-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: center;
}
.sol-page--soc .soc-funnel-foot-item strong {
  font-family: var(--noc-mono);
  font-size: 18px;
  color: var(--noc-cyan-bright);
  font-weight: 700;
  line-height: 1;
}
.sol-page--soc .soc-funnel-foot-unit {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  margin-left: 1px;
  font-weight: 600;
}
.sol-page--soc .soc-funnel-foot-item small {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
}

/* ---- Pillar 03: Monthly Operation Report ---- */
.sol-page--soc .soc-report-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.sol-page--soc .soc-report-hero {
  display: flex;
  align-items: center;
  gap: 18px;
  padding-bottom: 16px;
  border-bottom: 1px dashed rgba(51, 173, 255, 0.18);
}
.sol-page--soc .soc-report-hero-num {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.sol-page--soc .soc-report-hero-val {
  font-family: var(--noc-mono);
  font-size: 44px;
  font-weight: 700;
  color: var(--noc-cyan-bright);
  line-height: 1;
  letter-spacing: -0.02em;
}
.sol-page--soc .soc-report-hero-unit {
  font-family: var(--noc-mono);
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
}
.sol-page--soc .soc-report-hero-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.sol-page--soc .soc-report-hero-lbl {
  font-family: var(--noc-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  font-weight: 600;
  line-height: 1.4;
}
.sol-page--soc .soc-report-hero-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(74, 222, 128, 0.14);
  border: 1px solid rgba(74, 222, 128, 0.32);
  color: #4ade80;
  font-family: var(--noc-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  align-self: flex-start;
}
.sol-page--soc .soc-report-section-lbl {
  display: block;
  font-family: var(--noc-mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
  margin-bottom: 10px;
}
.sol-page--soc .soc-report-bars {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--soc .soc-report-bar-row {
  display: grid;
  grid-template-columns: 48px 1fr 24px;
  gap: 12px;
  align-items: center;
}
.sol-page--soc .soc-report-bar-lbl {
  font-family: var(--noc-mono);
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.04em;
}
.sol-page--soc .soc-report-bar-track {
  height: 10px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  overflow: hidden;
}
.sol-page--soc .soc-report-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--noc-cyan), var(--noc-cyan-bright));
  border-radius: 6px;
  box-shadow: 0 0 8px rgba(51, 173, 255, 0.45);
  animation: soc-report-bar-grow 1.2s cubic-bezier(0.16, 1, 0.3, 1) both;
  transform-origin: left;
}
@keyframes soc-report-bar-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
.sol-page--soc .soc-report-bar-val {
  font-family: var(--noc-mono);
  font-size: 11.5px;
  font-weight: 700;
  color: #fff;
  text-align: right;
}
.sol-page--soc .soc-report-sev {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sol-page--soc .soc-report-sev-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 8px;
  background: rgba(255, 255, 255, 0.025);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.sol-page--soc .soc-report-sev-cell--p1 {
  border-color: rgba(239, 68, 68, 0.3);
  background: rgba(239, 68, 68, 0.06);
}
.sol-page--soc .soc-report-sev-cell--p2 {
  border-color: rgba(245, 158, 11, 0.3);
  background: rgba(245, 158, 11, 0.06);
}
.sol-page--soc .soc-report-sev-cell--p3 {
  border-color: rgba(51, 173, 255, 0.3);
  background: rgba(51, 173, 255, 0.06);
}
.sol-page--soc .soc-report-sev-val {
  font-family: var(--noc-mono);
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.sol-page--soc .soc-report-sev-cell--p1 .soc-report-sev-val { color: #fca5a5; }
.sol-page--soc .soc-report-sev-cell--p2 .soc-report-sev-val { color: var(--noc-amber-bright); }
.sol-page--soc .soc-report-sev-cell--p3 .soc-report-sev-val { color: var(--noc-cyan-bright); }
.sol-page--soc .soc-report-sev-lbl {
  font-family: var(--noc-mono);
  font-size: 8.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
}

@media (max-width: 720px) {
  .sol-page--soc .noc-tl-svg.soc-tl-svg { height: 180px; }
  .sol-page--soc .soc-funnel-stage--mid { width: 90%; }
  .sol-page--soc .soc-funnel-stage--out { width: 75%; }
}

/* ---- SOC Timeline: activity wave per defense surface ---- */
.sol-page--soc .soc-tl-wave-area {
  fill: rgba(51, 173, 255, 0.04);
  transition: fill 0.5s ease;
  pointer-events: none;
}
.sol-page--soc .soc-tl-wave-area--endpoint   { fill: rgba(129, 140, 248, 0.08); }
.sol-page--soc .soc-tl-wave-area--rede       { fill: rgba(51, 173, 255, 0.08); }
.sol-page--soc .soc-tl-wave-area--identidade { fill: rgba(196, 181, 253, 0.07); }
.sol-page--soc .soc-tl-wave-area--cloud      { fill: rgba(251, 191, 36, 0.07); }
.sol-page--soc .soc-tl-wave-area.soc-tl-wave--active {
  fill: rgba(51, 173, 255, 0.18);
}

.sol-page--soc .soc-tl-wave-line {
  fill: none;
  stroke-width: 1.4;
  stroke-linejoin: round;
  stroke-linecap: round;
  opacity: 0.72;
  transition: opacity 0.5s ease, stroke-width 0.5s ease, filter 0.5s ease;
  pointer-events: none;
}
.sol-page--soc .soc-tl-wave-line--endpoint   { stroke: #a5b4fc; }
.sol-page--soc .soc-tl-wave-line--rede       { stroke: #33adff; }
.sol-page--soc .soc-tl-wave-line--identidade { stroke: #c4b5fd; }
.sol-page--soc .soc-tl-wave-line--cloud      { stroke: #fbbf24; }
.sol-page--soc .soc-tl-wave-line.soc-tl-wave--active {
  opacity: 1;
  stroke-width: 1.8;
  filter: drop-shadow(0 0 4px currentColor);
}

/* Lane label gets a subtle background pill so it stays readable over waves */
.sol-page--soc .soc-tl-lane-lbl {
  paint-order: stroke;
  stroke: rgba(4, 19, 47, 0.55);
  stroke-width: 3px;
  stroke-linejoin: round;
}

/* SOC: Falso positivo (FP) — slate desaturado, semanticamente "ruído triado" */
.sol-page--soc .noc-tl-event--fp {
  fill: #94a3b8;
  opacity: 0.7;
}
.sol-page--soc .noc-tl-legend-dot--fp {
  background: #94a3b8;
  opacity: 0.8;
}

/* ===================================================================
   SOC SHIELD - Vigilância 24h panel: stat header + lane tags + footer
   Reforça a narrativa "vigilância contínua multi-superfície".
   =================================================================== */

/* Painel base em tema claro (consistente com o restante das soluções) */
.sol-page--soc .noc-tl {
  background: #fff;
  border: 1px solid var(--cinza-suave, #e6edf6);
  border-radius: 18px;
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.22);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.sol-page--soc .noc-tl-head { font-family: var(--font-body); }
.sol-page--soc .noc-tl-title {
  color: var(--azul-profundo);
  font-family: var(--font-display);
  font-weight: 600;
}
.sol-page--soc .noc-tl-now {
  color: var(--coral-text);
  font-family: var(--font-display);
  font-weight: 700;
}

/* Stat header — 4 KPIs do dia */
.sol-page--soc .soc-tl-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 18px 0 22px;
  border-top: 1px solid var(--cinza-suave, #e6edf6);
  border-bottom: 1px solid var(--cinza-suave, #e6edf6);
}
.sol-page--soc .soc-tl-stat {
  position: relative;
  padding: 16px 22px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--soc .soc-tl-stat + .soc-tl-stat {
  border-left: 1px solid var(--cinza-suave, #e6edf6);
}
.sol-page--soc .soc-tl-stat-val {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--azul-profundo);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.sol-page--soc .soc-tl-stat-lbl {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(8, 39, 100, 0.55);
}
.sol-page--soc .soc-tl-stat--active .soc-tl-stat-val { color: var(--coral); }
.sol-page--soc .soc-tl-stat--active .soc-tl-stat-lbl { color: var(--coral-text); }
.sol-page--soc .soc-tl-stat-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--coral);
  box-shadow: 0 0 0 0 rgba(0, 151, 178, 0.5);
  animation: soc-tl-stat-pulse 1.8s ease-out infinite;
}
@keyframes soc-tl-stat-pulse {
  0% { box-shadow: 0 0 0 0 rgba(0, 151, 178, 0.55); }
  70% { box-shadow: 0 0 0 9px rgba(0, 151, 178, 0); }
  100% { box-shadow: 0 0 0 0 rgba(0, 151, 178, 0); }
}

/* Lanes em tema claro com gradient sutil por superfície */
.sol-page--soc .soc-tl-lane {
  fill: rgba(8, 39, 100, 0.035);
  stroke: rgba(8, 39, 100, 0.06);
  stroke-width: 1;
}
.sol-page--soc .soc-tl-lane--endpoint   { fill: url(#soc-tl-lane-grad-endpoint);   stroke: rgba(99, 102, 241, 0.22); }
.sol-page--soc .soc-tl-lane--rede       { fill: url(#soc-tl-lane-grad-rede);       stroke: rgba(0, 150, 255, 0.22); }
.sol-page--soc .soc-tl-lane--identidade { fill: url(#soc-tl-lane-grad-identidade); stroke: rgba(168, 85, 247, 0.22); }
.sol-page--soc .soc-tl-lane--cloud      { fill: url(#soc-tl-lane-grad-cloud);      stroke: rgba(245, 158, 11, 0.22); }
.sol-page--soc .soc-tl-lane--active {
  fill: rgba(0, 151, 178, 0.18);
  stroke: rgba(0, 151, 178, 0.42);
  stroke-width: 1.5;
  filter: drop-shadow(0 0 8px rgba(0, 151, 178, 0.22));
}

/* Lane tag pill — substitui o text label flutuante */
.sol-page--soc .soc-tl-lane-tag-bg {
  fill: #fff;
  stroke: rgba(8, 39, 100, 0.1);
  stroke-width: 1;
}
.sol-page--soc .soc-tl-lane-tag[data-lane="endpoint"]   .soc-tl-lane-tag-bg { stroke: rgba(99, 102, 241, 0.45); }
.sol-page--soc .soc-tl-lane-tag[data-lane="rede"]       .soc-tl-lane-tag-bg { stroke: rgba(0, 150, 255, 0.45); }
.sol-page--soc .soc-tl-lane-tag[data-lane="identidade"] .soc-tl-lane-tag-bg { stroke: rgba(168, 85, 247, 0.45); }
.sol-page--soc .soc-tl-lane-tag[data-lane="cloud"]      .soc-tl-lane-tag-bg { stroke: rgba(245, 158, 11, 0.55); }

.sol-page--soc .soc-tl-lane-lbl {
  font-family: var(--font-display);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-anchor: start;
  text-transform: uppercase;
  paint-order: fill;
  stroke: none;
}
.sol-page--soc .soc-tl-lane-tag[data-lane="endpoint"]   .soc-tl-lane-lbl { fill: #4f46e5; }
.sol-page--soc .soc-tl-lane-tag[data-lane="rede"]       .soc-tl-lane-lbl { fill: #0096ff; }
.sol-page--soc .soc-tl-lane-tag[data-lane="identidade"] .soc-tl-lane-lbl { fill: #9333ea; }
.sol-page--soc .soc-tl-lane-tag[data-lane="cloud"]      .soc-tl-lane-lbl { fill: #d97706; }

/* Wave areas mais visíveis em tema claro */
.sol-page--soc .soc-tl-wave-area--endpoint   { fill: rgba(99, 102, 241, 0.14); }
.sol-page--soc .soc-tl-wave-area--rede       { fill: rgba(0, 150, 255, 0.14); }
.sol-page--soc .soc-tl-wave-area--identidade { fill: rgba(168, 85, 247, 0.13); }
.sol-page--soc .soc-tl-wave-area--cloud      { fill: rgba(245, 158, 11, 0.14); }
.sol-page--soc .soc-tl-wave-area.soc-tl-wave--active { fill: rgba(0, 151, 178, 0.22); }

.sol-page--soc .soc-tl-wave-line--endpoint   { stroke: #6366f1; opacity: 0.85; }
.sol-page--soc .soc-tl-wave-line--rede       { stroke: #0096ff; opacity: 0.85; }
.sol-page--soc .soc-tl-wave-line--identidade { stroke: #a855f7; opacity: 0.82; }
.sol-page--soc .soc-tl-wave-line--cloud      { stroke: #d97706; opacity: 0.88; }
.sol-page--soc .soc-tl-wave-line.soc-tl-wave--active {
  stroke: var(--coral);
  opacity: 1;
  stroke-width: 1.8;
  filter: drop-shadow(0 0 4px rgba(0, 151, 178, 0.5));
}

/* Ticks e horas em tema claro */
.sol-page--soc .noc-tl-tick { stroke: rgba(8, 39, 100, 0.2); }
.sol-page--soc .noc-tl-hour {
  fill: rgba(8, 39, 100, 0.5);
  font-family: var(--font-display);
  font-weight: 600;
}

/* Linha "AGORA" + dot mais marcantes em tema claro */
.sol-page--soc .noc-tl-now-line {
  stroke: var(--coral);
  stroke-width: 2;
  filter: drop-shadow(0 0 6px rgba(0, 151, 178, 0.5));
}
.sol-page--soc .noc-tl-now-dot {
  fill: var(--coral);
  filter: drop-shadow(0 0 6px rgba(0, 151, 178, 0.55));
}

/* Elapsed bar — coral suave atrás do "passado" do dia */
.sol-page--soc .noc-tl-elapsed {
  fill: url(#noc-tl-elapsed-grad);
  opacity: 0.18;
  mix-blend-mode: normal;
}

/* Event dots em tema claro */
.sol-page--soc .noc-tl-event { fill: rgba(8, 39, 100, 0.55); filter: none; }
.sol-page--soc .noc-tl-event--p1 { fill: #dc2626; filter: drop-shadow(0 0 5px rgba(220, 38, 38, 0.55)); }
.sol-page--soc .noc-tl-event--p2 { fill: #d97706; filter: drop-shadow(0 0 4px rgba(217, 119, 6, 0.5)); }
.sol-page--soc .noc-tl-event--p3 { fill: var(--coral); filter: drop-shadow(0 0 4px rgba(0, 151, 178, 0.5)); }

/* Legenda em tema claro */
.sol-page--soc .noc-tl-legend {
  border-top-color: rgba(8, 39, 100, 0.08);
  color: rgba(8, 39, 100, 0.68);
}
.sol-page--soc .noc-tl-legend-item strong { color: var(--azul-profundo); }
.sol-page--soc .noc-tl-legend-dot--p1 { background: #dc2626; box-shadow: 0 0 4px rgba(220, 38, 38, 0.45); }
.sol-page--soc .noc-tl-legend-dot--p2 { background: #d97706; box-shadow: 0 0 4px rgba(217, 119, 6, 0.45); }
.sol-page--soc .noc-tl-legend-dot--p3 { background: var(--coral); box-shadow: 0 0 4px rgba(0, 151, 178, 0.45); }
.sol-page--soc .noc-tl-legend-dot--default { background: rgba(8, 39, 100, 0.45); box-shadow: none; }
.sol-page--soc .noc-tl-legend-dot--fp { background: #94a3b8; opacity: 0.7; }

/* Footer descritivo — "Sensores ativos" */
.sol-page--soc .soc-tl-foot {
  margin-top: 14px;
  padding: 14px 18px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  background: var(--offwhite, #f8fcff);
  border: 1px solid var(--cinza-suave, #e6edf6);
  border-radius: 12px;
}
.sol-page--soc .soc-tl-foot-tag {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--coral-text);
  white-space: nowrap;
}
.sol-page--soc .soc-tl-foot-list {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 22px;
  flex: 1;
  font-size: 12px;
  color: var(--azul-profundo);
}
.sol-page--soc .soc-tl-foot-list > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 500;
}
.sol-page--soc .soc-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--soc .soc-dot--endpoint   { background: #6366f1; }
.sol-page--soc .soc-dot--rede       { background: #0096ff; }
.sol-page--soc .soc-dot--identidade { background: #a855f7; }
.sol-page--soc .soc-dot--cloud      { background: #d97706; }

@media (max-width: 720px) {
  .sol-page--soc .soc-tl-stats { grid-template-columns: repeat(2, 1fr); }
  .sol-page--soc .soc-tl-stat:nth-child(2) { border-left: 1px solid var(--cinza-suave, #e6edf6); }
  .sol-page--soc .soc-tl-stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--cinza-suave, #e6edf6); }
  .sol-page--soc .soc-tl-stat:nth-child(4) { border-top: 1px solid var(--cinza-suave, #e6edf6); }
  .sol-page--soc .soc-tl-foot { flex-direction: column; gap: 10px; }
  .sol-page--soc .soc-tl-foot-list { gap: 10px; }
}

/* BD typewriter: cursor piscante durante a digitacao do EXPLAIN ANALYZE */
.sol-page--bd .bd-typewriter {
  position: relative;
  /* Reservar altura para nao causar layout shift durante a tipagem */
  min-height: 11.5em;
}
.sol-page--bd .bd-typewriter--typing code::after {
  content: '\2588';
  display: inline-block;
  margin-left: 1px;
  color: var(--bd-cyan-bright);
  animation: bd-type-blink 0.85s steps(1) infinite;
  font-weight: 400;
  width: 0.55em;
  text-align: left;
  vertical-align: baseline;
  line-height: 1;
}
.sol-page--bd .bd-typewriter--done code::after {
  display: none;
}
@keyframes bd-type-blink {
  0%, 49%   { opacity: 0.85; }
  50%, 100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .sol-page--bd .bd-typewriter--typing code::after,
  .sol-page--bd .bd-typewriter code::after { display: none; }
}

/* ===================================================================
   BD hero mini-card: console-style (sub-state, rows, feed, foot)
   ================================================================ */

.sol-page--bd .bd-mini-card-title {
  font-family: var(--bd-mono);
  font-size: 13px;
  letter-spacing: 0.02em;
}

.sol-page--bd .bd-mini-substate {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px 12px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
  font-family: var(--bd-mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--bd-text-mute);
}
.sol-page--bd .bd-mini-substate strong {
  color: var(--bd-cyan-bright);
  font-weight: 700;
}
.sol-page--bd .bd-mini-substate-sep {
  color: rgba(255, 255, 255, 0.25);
  font-weight: 700;
}

.sol-page--bd .bd-mini-rows {
  padding: 12px 16px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--bd .bd-mini-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 9px;
}
.sol-page--bd .bd-mini-row-id {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.sol-page--bd .bd-mini-row-name {
  font-family: var(--bd-mono);
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
  letter-spacing: 0.01em;
}
.sol-page--bd .bd-mini-row-spark {
  width: 70px;
  height: 18px;
  margin-left: 4px;
}
.sol-page--bd .bd-mini-row-spark path {
  fill: none;
  stroke: var(--bd-cyan-bright);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.85;
}
.sol-page--bd .bd-mini-row-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--bd-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid var(--bd-cyan-border);
  color: var(--bd-cyan-bright);
  white-space: nowrap;
  flex-shrink: 0;
}
.sol-page--bd .bd-mini-row-pill--alt {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.7);
}

.sol-page--bd .bd-mini-feed {
  margin-top: 4px;
  padding: 12px 18px 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sol-page--bd .bd-mini-feed-entry {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: baseline;
  font-family: var(--bd-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.01em;
  opacity: 0;
  transform: translateY(6px);
  animation: bd-mini-feed-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--bd .bd-mini-feed-entry:nth-child(1) { animation-delay: 0.6s; }
.sol-page--bd .bd-mini-feed-entry:nth-child(2) { animation-delay: 0.8s; }
.sol-page--bd .bd-mini-feed-entry:nth-child(3) { animation-delay: 1.0s; }
@keyframes bd-mini-feed-in {
  to { opacity: 1; transform: translateY(0); }
}
.sol-page--bd .bd-mini-feed-ts {
  color: var(--bd-text-mute);
  font-weight: 500;
  font-size: 10px;
}
.sol-page--bd .bd-mini-feed-entry strong {
  color: #4ade80;
  font-weight: 700;
}

.sol-page--bd .bd-mini-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--bd-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--bd-text-mute);
}
.sol-page--bd .bd-mini-foot strong {
  color: var(--bd-cyan-bright);
  font-weight: 700;
}

/* ===================================================================
   CS hero mini-card: console-style (sub-state, rows, feed, foot)
   ================================================================ */

.sol-page--cs .cs-mini-card-title {
  font-family: var(--cs-mono);
  font-size: 13px;
  letter-spacing: 0.02em;
  font-weight: 700;
}

.sol-page--cs .cs-mini-substate {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px 12px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
  font-family: var(--cs-mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--cs-text-mute);
}
.sol-page--cs .cs-mini-substate strong {
  color: var(--cs-cyan-bright);
  font-weight: 700;
}
.sol-page--cs .cs-mini-substate-sep {
  color: rgba(255, 255, 255, 0.25);
  font-weight: 700;
}

.sol-page--cs .cs-mini-rows {
  padding: 4px 16px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--cs .cs-mini-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 9px;
}
.sol-page--cs .cs-mini-row-id {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.sol-page--cs .cs-mini-row-name {
  font-family: var(--cs-mono);
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
  letter-spacing: 0.01em;
}
.sol-page--cs .cs-mini-row-spark {
  width: 70px;
  height: 18px;
  margin-left: 4px;
}
.sol-page--cs .cs-mini-row-spark path {
  fill: none;
  stroke: var(--cs-cyan-bright);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.85;
}
.sol-page--cs .cs-mini-row-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--cs-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: rgba(51, 173, 255, 0.14);
  border: 1px solid var(--cs-cyan-border);
  color: var(--cs-cyan-bright);
  white-space: nowrap;
  flex-shrink: 0;
}
.sol-page--cs .cs-mini-row-pill--alt {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.7);
}

.sol-page--cs .cs-mini-feed {
  margin-top: 4px;
  padding: 12px 18px 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sol-page--cs .cs-mini-feed-entry {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: baseline;
  font-family: var(--cs-mono);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.01em;
  opacity: 0;
  transform: translateY(6px);
  animation: cs-mini-feed-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.sol-page--cs .cs-mini-feed-entry:nth-child(1) { animation-delay: 0.6s; }
.sol-page--cs .cs-mini-feed-entry:nth-child(2) { animation-delay: 0.8s; }
.sol-page--cs .cs-mini-feed-entry:nth-child(3) { animation-delay: 1.0s; }
@keyframes cs-mini-feed-in {
  to { opacity: 1; transform: translateY(0); }
}
.sol-page--cs .cs-mini-feed-ts {
  color: var(--cs-text-mute);
  font-weight: 500;
  font-size: 10px;
}
.sol-page--cs .cs-mini-feed-entry strong {
  color: #4ade80;
  font-weight: 700;
}

.sol-page--cs .cs-mini-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--cs-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--cs-text-mute);
}
.sol-page--cs .cs-mini-foot strong {
  color: var(--cs-cyan-bright);
  font-weight: 700;
}

/* ==========================================================================
   MINI CTA FORM (compartilhado entre todas as soluções)
   Form embutido na seção CTA final de cada página de solução. Aceita 4
   campos (nome + e-mail + telefone + dropdown contextual) + LGPD + reCAPTCHA.
   Submete em /api/leads.php com data-form-origin=<slug>.
   Cores acentuadas usam --cta-accent / --cta-accent-bright que cada
   .sol-page--<slug> pode sobrescrever (default = azul Accerte).
   ========================================================================== */
.cta-form-mini {
  --cta-accent: #0096ff;
  --cta-accent-bright: #33adff;
  --cta-accent-glow: rgba(0, 150, 255, 0.18);
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 760px;
  margin: 0 auto;
  padding: 32px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 18px;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  text-align: left;
  position: relative;
}
.cta-form-mini .cta-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.cta-form-mini .cta-form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.cta-form-mini .cta-form-field label {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.78);
  text-transform: none;
}
.cta-form-mini .cta-form-field input,
.cta-form-mini .cta-form-field select {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  font-family: var(--font-body);
  font-size: 14px;
  color: #fff;
  background: rgba(5, 21, 54, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
  -webkit-appearance: none;
  appearance: none;
}
.cta-form-mini .cta-form-field select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23ffffff' stroke-opacity='0.65' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  cursor: pointer;
}
.cta-form-mini .cta-form-field select option {
  color: #082764;
  background: #fff;
}
.cta-form-mini .cta-form-field input::placeholder {
  color: rgba(255, 255, 255, 0.42);
}
.cta-form-mini .cta-form-field input:hover,
.cta-form-mini .cta-form-field select:hover {
  border-color: rgba(255, 255, 255, 0.28);
}
.cta-form-mini .cta-form-field input:focus,
.cta-form-mini .cta-form-field select:focus {
  outline: none;
  border-color: var(--cta-accent);
  background: rgba(5, 21, 54, 0.85);
  box-shadow: 0 0 0 3px var(--cta-accent-glow);
}
.cta-form-mini .cta-form-field.invalid input,
.cta-form-mini .cta-form-field.invalid select {
  border-color: #f87171;
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.16);
}
.cta-form-mini .cta-form-honeypot {
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.cta-form-mini .cta-form-consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
}
.cta-form-mini .cta-form-consent input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 2px;
  width: 16px;
  height: 16px;
  accent-color: var(--cta-accent);
  cursor: pointer;
}
.cta-form-mini .cta-form-consent label {
  cursor: pointer;
  margin: 0;
}
.cta-form-mini .cta-form-consent a {
  color: var(--cta-accent-bright);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cta-form-mini .cta-form-consent a:hover {
  color: #fff;
}
.cta-form-mini .cta-form-consent.invalid {
  color: #fca5a5;
}
.cta-form-mini .cta-form-consent.invalid input[type="checkbox"] {
  outline: 2px solid #f87171;
  outline-offset: 2px;
}
.cta-form-mini .cta-form-recaptcha {
  display: flex;
  justify-content: center;
  min-height: 78px;
}
.cta-form-mini .cta-form-recaptcha:empty {
  min-height: 0;
}
.cta-form-mini .cta-form-submit {
  align-self: center;
  min-width: 280px;
  justify-content: center;
}
.cta-form-mini .cta-form-submit:disabled {
  opacity: 0.6;
  cursor: progress;
}
.cta-form-mini .cta-form-msg {
  margin: 0;
  min-height: 1.4em;
  font-size: 13px;
  text-align: center;
  font-weight: 500;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.cta-form-mini .cta-form-msg.show {
  opacity: 1;
}
.cta-form-mini .cta-form-msg--ok {
  color: #86efac;
}
.cta-form-mini .cta-form-msg--err {
  color: #fca5a5;
}
.cta-form-trust {
  margin: 22px auto 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.55);
}
.cta-form-trust svg {
  color: var(--cta-accent-bright, #33adff);
}

/* Cada sol-page herda o acento da sua --<slug>-cyan no nível raiz, então tanto
   o form quanto a sticky bar e outros componentes pegam a cor automaticamente. */
.sol-page--bd  { --cta-accent: var(--bd-cyan);  --cta-accent-bright: var(--bd-cyan-bright);  --cta-accent-glow: rgba(0, 150, 255, 0.18); }
.sol-page--cs  { --cta-accent: var(--cs-cyan);  --cta-accent-bright: var(--cs-cyan-bright);  --cta-accent-glow: rgba(0, 150, 255, 0.18); }
.sol-page--ia  { --cta-accent: var(--ia-cyan);  --cta-accent-bright: var(--ia-cyan-bright);  --cta-accent-glow: rgba(0, 150, 255, 0.18); }
.sol-page--it  { --cta-accent: var(--it-cyan);  --cta-accent-bright: var(--it-cyan-bright);  --cta-accent-glow: rgba(0, 150, 255, 0.18); }
.sol-page--noc { --cta-accent: var(--noc-cyan); --cta-accent-bright: var(--noc-cyan-bright); --cta-accent-glow: rgba(0, 150, 255, 0.18); }

@media (max-width: 1024px) {
  .cta-form-mini .cta-form-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .cta-form-mini { padding: 22px; gap: 14px; border-radius: 14px; }
  .cta-form-mini .cta-form-grid { grid-template-columns: 1fr; gap: 12px; }
  .cta-form-mini .cta-form-submit { width: 100%; min-width: 0; }
}

/* Sticky CTA bar: estilos em rest.css (carregado em todas as páginas). Ativa
   apenas quando assets/js/sticky-cta.js está incluído na página. */



/* ===================================================================
   SOLUÇÃO: GESTAO CLOUD (.sol-page--gc): CloudOps + FinOps
   Identidade EDITORIAL: layout magazine, scaffolding geométrico,
   3 pilares com layouts DIFERENTES entre si, números grandes,
   sem blobs orgânicos nem cards rotacionados.
   Mesma paleta cromática do BD/CS.
   =================================================================== */

.sol-page--gc {
  --gc-cyan: #0096ff;
  --gc-cyan-bright: #33adff;
  --gc-cyan-soft: rgba(0, 150, 255, 0.12);
  --gc-cyan-border: rgba(0, 150, 255, 0.32);
  --gc-mono: var(--font-display);
  --gc-ink: #051536;
  --gc-ink-2: #0b1f4d;
  --gc-text-sec: rgba(255, 255, 255, 0.72);
  --gc-text-mute: rgba(255, 255, 255, 0.5);
  --gc-card-bg: rgba(255, 255, 255, 0.04);
  --gc-card-border: rgba(255, 255, 255, 0.08);
  --gc-line: rgba(8, 39, 100, 0.08);
}

/* ---------- Primitivos ---------- */
.sol-page--gc .gc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gc-cyan-bright);
  margin-bottom: 20px;
}
.sol-page--gc .gc-eyebrow--dark { color: var(--gc-cyan); }

.sol-page--gc .gc-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gc-cyan-bright);
  box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25);
  animation: gc-pulse 2.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) infinite;
  flex-shrink: 0;
}
@keyframes gc-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(51, 173, 255, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(51, 173, 255, 0); }
}

.sol-page--gc .gc-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h2);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--azul-profundo);
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--gc .gc-h2--center { text-align: center; }
.sol-page--gc .gc-h2--light { color: #fff; }
.sol-page--gc .gc-accent {
  background: linear-gradient(135deg, var(--gc-cyan-bright), var(--gc-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--gc .gc-accent-dark {
  background: linear-gradient(135deg, var(--gc-cyan), #007a91);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--gc .gc-section-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 720px;
  margin: 0 auto;
}
.sol-page--gc .gc-section-sub--light { color: var(--gc-text-sec); }
.sol-page--gc .gc-section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 72px;
}

.sol-page--gc .gc-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  border: 1px solid transparent;
  cursor: pointer;
}
.sol-page--gc .gc-btn--primary {
  background: linear-gradient(135deg, var(--gc-cyan), var(--gc-cyan-bright));
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(0, 150, 255, 0.6);
}
.sol-page--gc .gc-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(0, 150, 255, 0.7);
}
.sol-page--gc .gc-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.sol-page--gc .gc-btn--ghost:hover {
  border-color: var(--gc-cyan-bright);
  color: var(--gc-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
}
.sol-page--gc .gc-btn--lg { padding: 16px 36px; font-size: 16px; }

.sol-page--gc .gc-mini-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sol-page--gc .gc-mini-dot--green {
  background: #34d399;
  box-shadow: 0 0 0 3px rgba(52, 211, 153, 0.18);
}

/* ============ HERO MAGAZINE (texto + foto vertical à direita) ============ */
.sol-page--gc .gc-hero {
  position: relative;
  padding: 140px 0 80px;
  background: var(--gc-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gc .gc-hero-photo {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 55%;
  z-index: 0;
  overflow: hidden;
  /* Fade alpha da própria imagem: lado esquerdo vira transparente, deixando
     o fundo escuro mostrar por baixo (em vez de só sobrepor um overlay). */
  -webkit-mask-image: linear-gradient(90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.15) 15%,
    rgba(0, 0, 0, 0.55) 35%,
    rgba(0, 0, 0, 0.85) 55%,
    #000 75%);
  mask-image: linear-gradient(90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.15) 15%,
    rgba(0, 0, 0, 0.55) 35%,
    rgba(0, 0, 0, 0.85) 55%,
    #000 75%);
}
.sol-page--gc .gc-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  display: block;
}
.sol-page--gc .gc-hero-photo-gradient {
  position: absolute;
  top: 0;
  right: 0;
  width: 75%;
  height: 100%;
  z-index: 1;
  background:
    linear-gradient(90deg,
      var(--gc-ink) 0%,
      rgba(5, 21, 54, 0.85) 20%,
      rgba(5, 21, 54, 0.55) 40%,
      rgba(5, 21, 54, 0.25) 65%,
      transparent 100%),
    radial-gradient(ellipse 60% 120% at 20% 50%,
      rgba(5, 21, 54, 0.6) 0%,
      transparent 70%);
}
.sol-page--gc .gc-hero-grid-deco {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 80px 80px;
  -webkit-mask-image: radial-gradient(ellipse at 25% 50%, black 25%, transparent 80%);
  mask-image: radial-gradient(ellipse at 25% 50%, black 25%, transparent 80%);
}
.sol-page--gc .gc-hero-corner {
  position: absolute;
  z-index: 3;
  width: 80px;
  height: 80px;
  border: 1px solid var(--gc-cyan-bright);
  opacity: 0.4;
  pointer-events: none;
}
.sol-page--gc .gc-hero-corner--tl {
  top: 100px;
  left: 32px;
  border-right: none;
  border-bottom: none;
}
.sol-page--gc .gc-hero-corner--br {
  bottom: 32px;
  right: 32px;
  border-left: none;
  border-top: none;
}
.sol-page--gc .gc-hero-inner {
  position: relative;
  z-index: 4;
}
.sol-page--gc .gc-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--gc-text-mute);
  margin-bottom: 56px;
}
.sol-page--gc .gc-breadcrumb a {
  color: var(--gc-cyan-bright);
  text-decoration: none;
}
.sol-page--gc .gc-breadcrumb a:hover { text-decoration: underline; }
.sol-page--gc .gc-breadcrumb span { opacity: 0.5; }
.sol-page--gc .gc-breadcrumb [aria-current] { opacity: 1; }
.sol-page--gc .gc-hero-text { max-width: 600px; }
.sol-page--gc .gc-hero-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 24px;
  text-wrap: balance;
}
.sol-page--gc .gc-hero-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--gc-text-sec);
  margin: 0 0 36px;
  text-wrap: pretty;
}
.sol-page--gc .gc-hero-ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 48px;
}
.sol-page--gc .gc-hero-pills {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sol-page--gc .gc-hero-pills li {
  font-family: var(--gc-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-cyan-bright);
  background: rgba(51, 173, 255, 0.08);
  border: 1px solid var(--gc-cyan-border);
  padding: 6px 14px;
  border-radius: 100px;
}

/* ============ METRICS EDITORIAL STRIP ============ */
.sol-page--gc .gc-metrics {
  background: #fff;
  padding: 80px 0;
  border-bottom: 1px solid var(--gc-line);
  border-top: 1px solid var(--gc-line);
}
.sol-page--gc .gc-metrics-strip {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
}
.sol-page--gc .gc-metric {
  padding: 0 32px;
  border-left: 1px solid var(--gc-line);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--gc .gc-metric:first-child { border-left: none; padding-left: 0; }
.sol-page--gc .gc-metric:last-child { padding-right: 0; }
.sol-page--gc .gc-metric-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-display);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--azul-profundo);
  display: inline-flex;
  align-items: baseline;
}
.sol-page--gc .gc-metric-sep,
.sol-page--gc .gc-metric-unit {
  color: var(--gc-cyan);
  font-weight: 700;
  margin: 0 2px;
}
.sol-page--gc .gc-metric-unit { font-size: 0.6em; }
.sol-page--gc .gc-metric-lbl {
  font-size: 13px;
  line-height: 1.45;
  color: var(--texto-sec-escuro, #4b5563);
  max-width: 220px;
}

/* ============ MANIFESTO DOS DESAFIOS ============ */
.sol-page--gc .gc-challenges {
  background: var(--offwhite);
  padding: 110px 0;
  position: relative;
  overflow: hidden;
}
.sol-page--gc .gc-challenges::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 85% 15%, rgba(0, 150, 255, 0.08), transparent 40%);
  pointer-events: none;
}
.sol-page--gc .gc-challenges .container { position: relative; z-index: 1; }
.sol-page--gc .gc-challenges-head {
  text-align: left;
  max-width: 720px;
  margin-bottom: 64px;
}
.sol-page--gc .gc-manifesto {
  list-style: none;
  counter-reset: none;
  padding: 0;
  margin: 0;
}
.sol-page--gc .gc-manifesto-item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 48px;
  align-items: flex-start;
  padding: 36px 0;
  border-top: 1px solid rgba(8, 39, 100, 0.1);
}
.sol-page--gc .gc-manifesto-item:last-child { border-bottom: 1px solid rgba(8, 39, 100, 0.1); }
.sol-page--gc .gc-manifesto-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-numeral);
  line-height: 1;
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--gc-cyan);
  position: relative;
  top: -8px;
}
.sol-page--gc .gc-manifesto-body { max-width: 720px; }
.sol-page--gc .gc-manifesto-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h4);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 12px;
}
.sol-page--gc .gc-manifesto-text {
  font-size: 16px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0;
}

/* ============ 3 PILARES (3 LAYOUTS DIFERENTES) ============ */
.sol-page--gc .gc-pilares {
  background: #fff;
  padding: 120px 0;
}
.sol-page--gc .gc-pilar {
  position: relative;
  margin-top: 120px;
}
.sol-page--gc .gc-pilar:first-of-type { margin-top: 0; }

/* Compartilhado: text/tag/title/p/list */
.sol-page--gc .gc-pilar-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--gc-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-cyan);
  margin-bottom: 18px;
}
.sol-page--gc .gc-pilar-tag--light { color: var(--gc-cyan-bright); }
.sol-page--gc .gc-pilar-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h3);
  line-height: 1.15;
  letter-spacing: -0.022em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  text-wrap: balance;
}
.sol-page--gc .gc-pilar-h3--light { color: #fff; }
.sol-page--gc .gc-pilar-p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--texto-sec-escuro, #4b5563);
  margin: 0 0 22px;
}
.sol-page--gc .gc-pilar-p--light { color: var(--gc-text-sec); }
.sol-page--gc .gc-pilar-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sol-page--gc .gc-pilar-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--azul-profundo);
}
.sol-page--gc .gc-pilar-list--light li { color: #fff; }
.sol-page--gc .gc-pilar-list svg {
  flex-shrink: 0;
  margin-top: 4px;
  padding: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gc-cyan-soft);
  color: var(--gc-cyan);
}
.sol-page--gc .gc-pilar-list--light svg {
  background: rgba(51, 173, 255, 0.15);
  color: var(--gc-cyan-bright);
}

/* PILAR 01 — photo + mockup flutuante */
.sol-page--gc .gc-pilar--photo-mock {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 64px;
  align-items: center;
}
.sol-page--gc .gc-pilar--photo-mock .gc-pilar-visual {
  position: relative;
  aspect-ratio: 4/3;
}
.sol-page--gc .gc-pilar-photo {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px -25px rgba(8, 39, 100, 0.4);
}
.sol-page--gc .gc-pilar-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--gc .gc-pilar-floating-mock {
  position: absolute;
  z-index: 2;
  bottom: -36px;
  left: -32px;
  background: var(--gc-ink);
  border: 1px solid var(--gc-card-border);
  border-radius: 16px;
  padding: 20px 22px;
  width: 280px;
  color: #fff;
  box-shadow: 0 24px 60px -16px rgba(5, 21, 54, 0.55);
}
.sol-page--gc .gc-mock-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--gc-card-border);
}
.sol-page--gc .gc-mock-head--compact { padding-bottom: 10px; margin-bottom: 14px; }
.sol-page--gc .gc-mock-dots { display: flex; gap: 5px; }
.sol-page--gc .gc-mock-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.sol-page--gc .gc-mock-dots span:nth-child(1) { background: #f87171; }
.sol-page--gc .gc-mock-dots span:nth-child(2) { background: #fbbf24; }
.sol-page--gc .gc-mock-dots span:nth-child(3) { background: #34d399; }
.sol-page--gc .gc-mock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.005em;
  flex: 1;
}
.sol-page--gc .gc-mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-cyan-bright);
  background: rgba(51, 173, 255, 0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--gc .gc-mock-savings {
  display: flex;
  align-items: baseline;
  gap: 6px;
  line-height: 1;
}
.sol-page--gc .gc-mock-savings-currency {
  font-family: var(--gc-mono);
  font-size: 13px;
  color: var(--gc-text-mute);
}
.sol-page--gc .gc-mock-savings-val {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 32px;
  letter-spacing: -0.02em;
  color: var(--gc-cyan-bright);
}
.sol-page--gc .gc-mock-savings-trend {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: #34d399;
  margin-top: 4px;
  margin-bottom: 12px;
  font-weight: 600;
}
.sol-page--gc .gc-mock-bars {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  align-items: end;
  gap: 4px;
  height: 48px;
  margin-bottom: 12px;
}
.sol-page--gc .gc-mock-bars span {
  height: var(--h, 50%);
  background: linear-gradient(180deg, var(--gc-cyan-bright), var(--gc-cyan));
  border-radius: 3px 3px 0 0;
  opacity: 0.85;
  transition: opacity 0.3s ease;
}
.sol-page--gc .gc-mock-bars:hover span { opacity: 1; }
.sol-page--gc .gc-mock-meta {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-text-mute);
  line-height: 1.4;
}

/* PILAR 02 — Banner full-width */
.sol-page--gc .gc-pilar--banner {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  min-height: 480px;
  isolation: isolate;
}
.sol-page--gc .gc-pilar-banner-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sol-page--gc .gc-pilar-banner-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sol-page--gc .gc-pilar-banner-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(5, 21, 54, 0.95) 0%, rgba(5, 21, 54, 0.78) 50%, rgba(11, 31, 77, 0.55) 100%),
    radial-gradient(circle at 80% 20%, rgba(0, 150, 255, 0.25), transparent 50%);
}
.sol-page--gc .gc-pilar-banner-content {
  position: relative;
  z-index: 1;
  padding: 64px;
  max-width: 600px;
}
.sol-page--gc .gc-pilar-banner-card {
  position: absolute;
  z-index: 2;
  right: 64px;
  top: 50%;
  transform: translateY(-50%);
  width: 340px;
  background: rgba(11, 31, 77, 0.7);
  border: 1px solid var(--gc-cyan-border);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 18px;
  padding: 24px;
  color: #fff;
}
.sol-page--gc .gc-mock-score {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 8px 0 16px;
}
.sol-page--gc .gc-mock-score-ring { display: block; }
.sol-page--gc .gc-mock-score-val {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  line-height: 1;
}
.sol-page--gc .gc-mock-score-top {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  line-height: 1;
}
.sol-page--gc .gc-mock-score-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 34px;
  letter-spacing: -0.02em;
  color: #fff;
  line-height: 1;
}
.sol-page--gc .gc-mock-score-unit {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  color: var(--gc-cyan-bright);
  line-height: 1;
}
.sol-page--gc .gc-mock-score-lbl {
  font-family: var(--gc-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gc-text-mute);
  line-height: 1;
}
.sol-page--gc .gc-mock-score-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sol-page--gc .gc-mock-score-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--gc-mono);
  font-size: 12px;
  color: var(--gc-text-sec);
}

/* PILAR 03 — mockup grande à esquerda + texto à direita */
.sol-page--gc .gc-pilar--mock-text {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
}
.sol-page--gc .gc-mock {
  background: var(--gc-ink);
  border: 1px solid var(--gc-card-border);
  border-radius: 20px;
  padding: 24px;
  color: #fff;
  box-shadow: 0 28px 70px -20px rgba(5, 21, 54, 0.45);
}
.sol-page--gc .gc-regions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 4px 0 18px;
}
.sol-page--gc .gc-region {
  position: relative;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--gc-card-border);
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sol-page--gc .gc-region--active {
  border-color: var(--gc-cyan-border);
  background: rgba(0, 150, 255, 0.08);
}
.sol-page--gc .gc-region-tag {
  font-family: var(--gc-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--gc-cyan-bright);
}
.sol-page--gc .gc-region-name {
  font-family: var(--gc-mono);
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}
.sol-page--gc .gc-region-meta {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--gc-text-mute);
}
.sol-page--gc .gc-region .gc-mini-dot {
  position: absolute;
  top: 14px;
  right: 14px;
}
.sol-page--gc .gc-regions-foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--gc-card-border);
}
.sol-page--gc .gc-regions-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--gc .gc-regions-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  letter-spacing: -0.02em;
  color: var(--gc-cyan-bright);
  line-height: 1;
}
.sol-page--gc .gc-regions-stat-unit { font-size: 0.6em; }
.sol-page--gc .gc-regions-stat-lbl {
  font-family: var(--gc-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-mute);
}

/* ============ PROVIDERS BAR ============ */
.sol-page--gc .gc-providers {
  background: var(--offwhite);
  padding: 100px 0;
}
.sol-page--gc .gc-providers-bar {
  list-style: none;
  padding: 0;
  margin: 0 auto 32px;
  max-width: 880px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--gc-line);
  border-bottom: 1px solid var(--gc-line);
}
.sol-page--gc .gc-provider {
  padding: 32px 16px;
  text-align: center;
  border-left: 1px solid var(--gc-line);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  transition: background 0.25s ease;
}
.sol-page--gc .gc-provider:first-child { border-left: none; }
.sol-page--gc .gc-provider:hover { background: rgba(0, 150, 255, 0.04); }
.sol-page--gc .gc-provider-name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 24px;
  letter-spacing: -0.03em;
  color: var(--azul-profundo);
}
.sol-page--gc .gc-provider-sub {
  font-family: var(--gc-mono);
  font-size: 11px;
  color: var(--texto-sec-escuro, #4b5563);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.sol-page--gc .gc-provider-badges {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}
.sol-page--gc .gc-provider-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gc-cyan);
  background: var(--gc-cyan-soft);
  padding: 8px 16px;
  border-radius: 100px;
}

/* ============ BENEFITS STAGGERED 2-COL (tema claro) ============ */
.sol-page--gc .gc-benefits {
  position: relative;
  padding: 120px 0;
  background: var(--offwhite, #f8fcff);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gc .gc-benefits-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sol-page--gc .gc-benefits-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.08;
  filter: saturate(0.5);
}
.sol-page--gc .gc-benefits-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(248, 252, 255, 0.85) 0%, rgba(248, 252, 255, 0.96) 100%),
    radial-gradient(circle at 80% 20%, rgba(0, 151, 178, 0.06), transparent 55%);
}
.sol-page--gc .gc-benefits-inner { position: relative; z-index: 2; }

/* Overrides --light dentro da seção clara */
.sol-page--gc .gc-benefits .gc-h2--light { color: var(--azul-profundo); }
.sol-page--gc .gc-benefits .gc-section-sub--light { color: var(--texto-sec-escuro, #4A5568); }

.sol-page--gc .gc-benefits-list {
  list-style: none;
  padding: 0;
  margin: 64px 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 28px;
}
.sol-page--gc .gc-benefits-list .gc-benefit:nth-child(even) { transform: translateY(36px); }
.sol-page--gc .gc-benefit {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 18px;
  padding: 28px 28px 28px 24px;
  background: #fff;
  border: 1px solid var(--cinza-suave, #e6edf6);
  border-radius: 16px;
  transition: all 0.3s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
  align-items: flex-start;
}
.sol-page--gc .gc-benefit:hover {
  background: #fff;
  border-color: rgba(0, 151, 178, 0.4);
  box-shadow: 0 18px 40px -22px rgba(8, 39, 100, 0.25);
  transform: translateY(-3px);
}
.sol-page--gc .gc-benefits-list .gc-benefit:nth-child(even):hover { transform: translateY(33px); }
.sol-page--gc .gc-benefit-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 26px;
  color: var(--coral);
  letter-spacing: -0.02em;
  line-height: 1;
  text-align: center;
  padding-top: 4px;
}
.sol-page--gc .gc-benefit strong {
  display: block;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--azul-profundo);
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}
.sol-page--gc .gc-benefit p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-sec-escuro, #4A5568);
  margin: 0;
}

/* ============ CTA FULL-BLEED PHOTO ============ */
.sol-page--gc .gc-cta {
  position: relative;
  padding: 140px 0;
  background: var(--gc-ink);
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gc .gc-cta-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.sol-page--gc .gc-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sol-page--gc .gc-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(5, 21, 54, 0.95) 0%, rgba(11, 31, 77, 0.85) 60%, rgba(0, 150, 255, 0.35) 130%),
    radial-gradient(circle at 70% 30%, rgba(51, 173, 255, 0.18), transparent 55%);
}
.sol-page--gc .gc-cta-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
  color: #fff;
}
.sol-page--gc .gc-cta-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 0 0 20px;
  text-wrap: balance;
}
.sol-page--gc .gc-cta-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--gc-text-sec);
  margin: 0 0 32px;
  text-wrap: pretty;
}

/* Mini CTA form: estilos compartilhados estão no final do arquivo (.cta-form-mini). */

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .sol-page--gc .gc-hero { min-height: auto; padding: 130px 0 80px; }
  .sol-page--gc .gc-hero-photo { width: 40%; opacity: 0.4; }
  .sol-page--gc .gc-hero-photo-gradient { width: 80%; }
  .sol-page--gc .gc-hero-corner { display: none; }
  .sol-page--gc .gc-metrics-strip { grid-template-columns: 1fr 1fr; gap: 32px; }
  .sol-page--gc .gc-metric { padding: 16px 0; border-left: none; border-top: 1px solid var(--gc-line); }
  .sol-page--gc .gc-metric:first-child,
  .sol-page--gc .gc-metric:nth-child(2) { padding-top: 0; border-top: none; }
  .sol-page--gc .gc-manifesto-item { grid-template-columns: 80px 1fr; gap: 28px; padding: 28px 0; }
  .sol-page--gc .gc-pilar--photo-mock,
  .sol-page--gc .gc-pilar--mock-text { grid-template-columns: 1fr; gap: 48px; }
  .sol-page--gc .gc-pilar--mock-text .gc-pilar-visual { order: 0; }
  .sol-page--gc .gc-pilar--mock-text .gc-pilar-text { order: 1; }
  .sol-page--gc .gc-pilar-floating-mock { left: 16px; bottom: -24px; }
  .sol-page--gc .gc-pilar--banner { min-height: auto; }
  .sol-page--gc .gc-pilar-banner-content { padding: 48px 32px; max-width: 100%; }
  .sol-page--gc .gc-pilar-banner-card { position: relative; right: auto; top: auto; transform: none; width: auto; margin: 0 32px 32px; }
  .sol-page--gc .gc-providers-bar { grid-template-columns: repeat(3, 1fr); }
  .sol-page--gc .gc-provider:nth-child(4) { border-left: none; border-top: 1px solid var(--gc-line); }
  .sol-page--gc .gc-provider:nth-child(n+4) { border-top: 1px solid var(--gc-line); }
  .sol-page--gc .gc-benefits-list { grid-template-columns: 1fr; }
  .sol-page--gc .gc-benefits-list .gc-benefit:nth-child(even) { transform: none; }
  .sol-page--gc .gc-benefits-list .gc-benefit:nth-child(even):hover { transform: translateY(-3px); }
}
@media (max-width: 640px) {
  .sol-page--gc .gc-hero { padding: 110px 0 70px; }
  .sol-page--gc .gc-hero-photo { width: 100%; opacity: 0.2; }
  .sol-page--gc .gc-hero-h1 { font-size: clamp(26px, 7vw, 34px);}
  .sol-page--gc .gc-hero-ctas .gc-btn { width: 100%; justify-content: center; }
  .sol-page--gc .gc-metrics { padding: 60px 0; }
  .sol-page--gc .gc-metrics-strip { grid-template-columns: 1fr; gap: 24px; }
  .sol-page--gc .gc-metric:nth-child(2) { padding-top: 16px; border-top: 1px solid var(--gc-line); }
  .sol-page--gc .gc-challenges,
  .sol-page--gc .gc-pilares,
  .sol-page--gc .gc-providers,
  .sol-page--gc .gc-benefits,
  .sol-page--gc .gc-cta { padding: 80px 0; }
  .sol-page--gc .gc-manifesto-item { grid-template-columns: 60px 1fr; gap: 18px; padding: 24px 0; }
  .sol-page--gc .gc-manifesto-num { font-size: 40px; top: -4px; }
  .sol-page--gc .gc-pilar { margin-top: 80px; }
  .sol-page--gc .gc-pilar-floating-mock { width: calc(100% - 32px); left: 16px; right: 16px; bottom: -16px; }
  .sol-page--gc .gc-providers-bar { grid-template-columns: 1fr 1fr; }
  .sol-page--gc .gc-provider { padding: 22px 8px; }
  .sol-page--gc .gc-regions-grid { grid-template-columns: 1fr; }
}

/* ================================================================ */
/* BD + CS — BRIDGE CTA (após as 3 frentes) + BENEFITS INLINE CTA   */
/* ================================================================ */

/* ---------- BRIDGE CTA: Banco de Dados (tema claro) ---------- */
.sol-page--bd .bd-bridge {
  padding: 50px 0 90px;
  background: #fff;
  position: relative;
}
.sol-page--bd .bd-bridge-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  padding: 44px 48px;
  border-radius: 28px;
  background: linear-gradient(135deg, var(--offwhite, #f8fcff) 0%, #fff 100%);
  border: 1px solid var(--cinza-suave, #e6edf6);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  overflow: hidden;
}
.sol-page--bd .bd-bridge-inner::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -8%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(0, 151, 178, 0.14) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--bd .bd-bridge-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.045) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events: none;
}
.sol-page--bd .bd-bridge-text {
  position: relative;
  z-index: 2;
  max-width: 680px;
}
.sol-page--bd .bd-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 14px 0 10px;
  line-height: 1.22;
  letter-spacing: -0.01em;
}
.sol-page--bd .bd-bridge-p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4A5568);
  margin: 0;
}
.sol-page--bd .bd-bridge-inner .bd-btn {
  position: relative;
  z-index: 2;
}

/* ---------- BENEFITS INLINE CTA: Banco de Dados ---------- */
.sol-page--bd .bd-benefits-cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.sol-page--bd .bd-benefits-cta-text {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 600;
  color: var(--azul-profundo);
  margin: 0;
  letter-spacing: -0.005em;
  max-width: 640px;
}

/* ---------- BRIDGE CTA: Cibersegurança ---------- */
.sol-page--cs .cs-bridge {
  padding: 50px 0 90px;
  position: relative;
}
.sol-page--cs .cs-bridge-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  padding: 44px 48px;
  border-radius: 28px;
  background: linear-gradient(135deg, #082764 0%, #051536 100%);
  border: 1px solid rgba(51, 173, 255, 0.22);
  box-shadow: 0 30px 70px -30px rgba(8, 39, 100, 0.55);
  position: relative;
  overflow: hidden;
}
.sol-page--cs .cs-bridge-inner::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -8%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(51, 173, 255, 0.28) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--cs .cs-bridge-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(51, 173, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(51, 173, 255, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events: none;
}
.sol-page--cs .cs-bridge-text {
  position: relative;
  z-index: 2;
  max-width: 680px;
}
.sol-page--cs .cs-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  color: #fff;
  margin: 14px 0 10px;
  line-height: 1.22;
  letter-spacing: -0.01em;
}
.sol-page--cs .cs-bridge-p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
  margin: 0;
}
.sol-page--cs .cs-bridge-inner .cs-btn {
  position: relative;
  z-index: 2;
}

/* ---------- BENEFITS INLINE CTA: Cibersegurança ---------- */
.sol-page--cs .cs-benefits-cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.sol-page--cs .cs-benefits-cta-text {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 600;
  color: #fff;
  margin: 0;
  letter-spacing: -0.005em;
  max-width: 640px;
}

/* ---------- BRIDGE CTA: CloudOps (variante editorial, tema claro) ---------- */
.sol-page--gc .gc-bridge {
  padding: 50px 0 90px;
  background: #fff;
  position: relative;
}
.sol-page--gc .gc-bridge-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 40px;
  align-items: center;
  padding: 40px 48px;
  border-radius: 0;
  background: linear-gradient(135deg, var(--offwhite, #f8fcff) 0%, #fff 100%);
  border-left: 4px solid var(--coral);
  border-right: 1px solid var(--cinza-suave, #e6edf6);
  border-top: 1px solid var(--cinza-suave, #e6edf6);
  border-bottom: 1px solid var(--cinza-suave, #e6edf6);
  box-shadow: 0 24px 60px -28px rgba(8, 39, 100, 0.18);
  position: relative;
  overflow: hidden;
}
.sol-page--gc .gc-bridge-inner::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -8%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(0, 151, 178, 0.14) 0%, transparent 65%);
  filter: blur(20px);
  pointer-events: none;
}
.sol-page--gc .gc-bridge-num {
  font-family: var(--gc-mono);
  font-size: var(--fs-numeral);
  font-weight: 700;
  color: var(--coral);
  line-height: 1;
  letter-spacing: -0.04em;
  position: relative;
  z-index: 2;
  opacity: 0.92;
}
.sol-page--gc .gc-bridge-text {
  position: relative;
  z-index: 2;
  max-width: 580px;
}
.sol-page--gc .gc-bridge-eyebrow {
  font-family: var(--gc-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--coral-text);
  display: inline-block;
  margin-bottom: 10px;
}
.sol-page--gc .gc-bridge-h3 {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--azul-profundo);
  margin: 0 0 10px;
  line-height: 1.22;
  letter-spacing: -0.01em;
}
.sol-page--gc .gc-bridge-p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--texto-sec-escuro, #4A5568);
  margin: 0;
}
.sol-page--gc .gc-bridge-inner .gc-btn {
  position: relative;
  z-index: 2;
}

/* ---------- BENEFITS INLINE CTA: CloudOps ---------- */
.sol-page--gc .gc-benefits-cta {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.sol-page--gc .gc-benefits-cta-text {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 600;
  color: var(--azul-profundo);
  margin: 0;
  letter-spacing: -0.005em;
  max-width: 640px;
}

/* ============ CASES (editorial proof, light & compact) ============ */
.sol-page--gc .gc-cases {
  position: relative;
  padding: 96px 0 108px;
  background: #ffffff;
  overflow: hidden;
  isolation: isolate;
}
.sol-page--gc .gc-cases-grid-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(8, 39, 100, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 39, 100, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 70%);
  pointer-events: none;
}
.sol-page--gc .gc-cases-glow {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 540px;
  height: 540px;
  background: radial-gradient(circle, rgba(0, 150, 255, 0.08) 0%, transparent 65%);
  filter: blur(40px);
  z-index: 0;
  pointer-events: none;
}
.sol-page--gc .gc-cases-inner {
  position: relative;
  z-index: 2;
}
.sol-page--gc .gc-cases-list {
  list-style: none;
  padding: 0;
  margin: 60px 0 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.sol-page--gc .gc-case-card {
  position: relative;
  height: 100%;
  padding: 34px 30px 32px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
  border: 1px solid rgba(8, 39, 100, 0.08);
  box-shadow: 0 10px 28px -16px rgba(8, 39, 100, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s var(--ease, cubic-bezier(0.16, 1, 0.3, 1)), border-color 0.3s ease, box-shadow 0.3s ease;
}
.sol-page--gc .gc-case-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 30px;
  right: 30px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gc-cyan), transparent);
  opacity: 0.5;
  pointer-events: none;
}
.sol-page--gc .gc-case-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 150, 255, 0.32);
  box-shadow: 0 18px 40px -16px rgba(8, 39, 100, 0.22);
}
.sol-page--gc .gc-case-head {
  display: flex;
  align-items: center;
  gap: 10px 12px;
  padding-bottom: 18px;
  margin-bottom: 26px;
  border-bottom: 1px dashed rgba(8, 39, 100, 0.12);
  flex-wrap: wrap;
}
.sol-page--gc .gc-case-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: -0.02em;
  color: var(--gc-cyan);
  line-height: 1;
  padding-right: 10px;
  border-right: 1px solid rgba(8, 39, 100, 0.16);
}
.sol-page--gc .gc-case-chip {
  font-family: var(--gc-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gc-cyan);
  background: rgba(0, 150, 255, 0.08);
  border: 1px solid rgba(0, 150, 255, 0.18);
  padding: 4px 10px;
  border-radius: 100px;
}
.sol-page--gc .gc-case-where {
  flex-basis: 100%;
  font-family: var(--gc-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.72);
  margin-top: 2px;
  line-height: 1.3;
}
.sol-page--gc .gc-case-body {
  display: flex;
  flex-direction: column;
  gap: 28px;
  flex: 1;
}
.sol-page--gc .gc-case-aside {
  display: flex;
  align-items: center;
  gap: 22px;
}
.sol-page--gc .gc-case-logo-plate {
  position: relative;
  padding: 12px 14px;
  background: #f8f5ed;
  border-radius: 12px;
  border: 1px solid rgba(8, 39, 100, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 112px;
  height: 60px;
}
.sol-page--gc .gc-case-logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.sol-page--gc .gc-case-kpi {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.sol-page--gc .gc-case-kpi-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 3.6vw, 42px);
  letter-spacing: -0.035em;
  line-height: 0.95;
  background: linear-gradient(135deg, var(--azul-profundo) 0%, var(--gc-cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sol-page--gc .gc-case-kpi-unit {
  font-size: 0.55em;
  font-weight: 700;
  margin-left: 1px;
}
.sol-page--gc .gc-case-kpi-lbl {
  font-family: var(--gc-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(8, 39, 100, 0.78);
  line-height: 1.55;
  max-width: 180px;
}
.sol-page--gc .gc-case-main { position: relative; }
.sol-page--gc .gc-case-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 19px;
  letter-spacing: -0.015em;
  color: var(--azul-profundo);
  margin: 0 0 18px;
  line-height: 1.25;
}
.sol-page--gc .gc-case-quote {
  position: relative;
  margin: 0 0 22px;
  padding: 4px 0 0 22px;
}
.sol-page--gc .gc-case-quote-mark {
  position: absolute;
  top: -12px;
  left: -2px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  color: var(--gc-cyan);
  opacity: 0.3;
}
.sol-page--gc .gc-case-quote p {
  font-family: var(--font-body);
  font-size: 13.5px;
  font-weight: 400;
  font-style: italic;
  line-height: 1.65;
  color: rgba(8, 39, 100, 0.86);
  margin: 0 0 16px;
}
.sol-page--gc .gc-case-cite {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sol-page--gc .gc-case-cite cite {
  font-family: var(--gc-mono);
  font-size: 9.5px;
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-cyan);
}
.sol-page--gc .gc-case-cite span {
  font-family: var(--font-body);
  font-size: 12px;
  color: rgba(8, 39, 100, 0.72);
}
.sol-page--gc .gc-case-stack {
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(8, 39, 100, 0.08);
}
.sol-page--gc .gc-case-stack-lbl {
  display: block;
  font-family: var(--gc-mono);
  font-size: 9.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--gc-cyan);
  margin-bottom: 14px;
}
.sol-page--gc .gc-case-stack-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sol-page--gc .gc-case-stack-list li {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  color: rgba(8, 39, 100, 0.78);
  padding: 6px 12px;
  background: rgba(0, 150, 255, 0.05);
  border: 1px solid rgba(0, 150, 255, 0.14);
  border-radius: 7px;
  max-width: 100%;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.sol-page--gc .gc-case-card:hover .gc-case-stack-list li {
  background: rgba(0, 150, 255, 0.09);
  border-color: rgba(0, 150, 255, 0.26);
  color: var(--azul-profundo);
}
.sol-page--gc .gc-cases-foot {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sol-page--gc .gc-btn--ghost-dark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.005em;
  padding: 10px 22px;
  border-radius: 100px;
  background: transparent;
  color: var(--azul-profundo);
  border: 1.5px solid rgba(8, 39, 100, 0.22);
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, color 0.3s ease;
  text-decoration: none;
}
.sol-page--gc .gc-btn--ghost-dark:hover {
  background: rgba(0, 150, 255, 0.06);
  border-color: var(--gc-cyan);
  color: var(--gc-cyan);
  transform: translateY(-1px);
}

@media (max-width: 980px) {
  .sol-page--gc .gc-cases { padding: 78px 0 86px; }
  .sol-page--gc .gc-cases-list {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 580px;
    margin-left: auto;
    margin-right: auto;
  }
  .sol-page--gc .gc-case-card { padding: 30px 26px 28px; }
  .sol-page--gc .gc-case-kpi-num { font-size: clamp(28px, 6vw, 36px); }
}
@media (max-width: 560px) {
  .sol-page--gc .gc-cases { padding: 56px 0 64px; }
  .sol-page--gc .gc-case-head { gap: 8px; }
  .sol-page--gc .gc-case-where {
    margin-left: 0;
    width: 100%;
    margin-top: 2px;
  }
}

/* ---------- Responsivo: bridge CTAs ---------- */
@media (max-width: 820px) {
  .sol-page--bd .bd-bridge { padding: 30px 0 60px; }
  .sol-page--bd .bd-bridge-inner {
    grid-template-columns: 1fr;
    padding: 32px 24px;
    gap: 28px;
    border-radius: 22px;
  }
  .sol-page--bd .bd-bridge-inner .bd-btn { width: 100%; justify-content: center; }
  .sol-page--bd .bd-benefits-cta { margin-top: 40px; gap: 16px; }
  .sol-page--bd .bd-benefits-cta .bd-btn { width: 100%; justify-content: center; }

  .sol-page--cs .cs-bridge { padding: 30px 0 60px; }
  .sol-page--cs .cs-bridge-inner {
    grid-template-columns: 1fr;
    padding: 32px 24px;
    gap: 28px;
    border-radius: 22px;
  }
  .sol-page--cs .cs-bridge-inner .cs-btn { width: 100%; justify-content: center; }
  .sol-page--cs .cs-benefits-cta { margin-top: 40px; gap: 16px; }
  .sol-page--cs .cs-benefits-cta .cs-btn { width: 100%; justify-content: center; }

  .sol-page--gc .gc-bridge { padding: 30px 0 60px; }
  .sol-page--gc .gc-bridge-inner {
    grid-template-columns: 1fr;
    padding: 28px 24px;
    gap: 20px;
  }
  .sol-page--gc .gc-bridge-num { font-size: 56px; }
  .sol-page--gc .gc-bridge-inner .gc-btn { width: 100%; justify-content: center; }
  .sol-page--gc .gc-benefits-cta { margin-top: 40px; gap: 16px; }
  .sol-page--gc .gc-benefits-cta .gc-btn { width: 100%; justify-content: center; }
}



.sol-page--gc  { --cta-accent: var(--gc-cyan);  --cta-accent-bright: var(--gc-cyan-bright);  --cta-accent-glow: rgba(0, 150, 255, 0.18); }
