/* Pagina Sobre -- visual "tecnologico" (faixas navy com malha de dados em ciano), mesma
   paleta e fontes da marca (base.html). Prefixo sb- para nao colidir com o resto do site. */
.sb-hero, .sb-cta {
  position: relative; overflow: hidden; border-radius: 14px; color: var(--navy);
  /* Conceito da capa da home: fundo claro com faixas verde/amarelo nas laterais. */
  background: url('../img/faixas_brasil.svg') center / 100% 100% no-repeat, #F3FAFD;
  border: 1px solid var(--border); box-shadow: var(--shadow-md);
}
.sb-hero { padding: 48px 11% 64px; margin-top: 8px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 24px; align-items: center; }
.sb-hero-mapa img { width: 100%; max-height: 420px; object-fit: contain; display: block; }
.sb-malha { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .55; pointer-events: none; }
.sb-hero > *:not(.sb-malha), .sb-cta > *:not(.sb-malha) { position: relative; }
.sb-eyebrow {
  font-family: Consolas, monospace; font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--navy); font-weight: 700; display: inline-flex; align-items: center; gap: 8px;
}
.sb-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 4px rgba(31,187,228,.2); }
.sb-hero h1 { font-family: Cambria, Georgia, serif; font-size: 40px; line-height: 1.15; margin: 14px 0 16px; max-width: 640px; color: var(--navy); border: none; padding: 0; }
.sb-hero h1 span { color: var(--navy); box-shadow: inset 0 -.32em 0 #BFE8F5; }
.sb-hero p { color: #33475b; font-size: 16px; line-height: 1.6; max-width: 600px; margin: 0; }

.sb-numeros {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: -28px;
  position: relative; z-index: 1; margin-left: 24px; margin-right: 24px;
  background: var(--border); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-md);
}
.sb-num { background: #fff; padding: 18px 16px; text-align: center; }
.sb-num strong { display: block; font-family: Cambria, Georgia, serif; font-size: 30px; color: var(--navy); line-height: 1.1; }
.sb-num strong em { font-style: normal; color: var(--cyan); }
.sb-num span { display: block; margin-top: 4px; font-size: 11.5px; color: var(--gray); text-transform: uppercase; letter-spacing: .06em; }

.sb-secao { margin-top: 56px; }
.sb-rotulo { font-family: Consolas, monospace; font-size: 11.5px; letter-spacing: .12em; color: var(--cyan); text-transform: uppercase; }
.sb-secao > h2 { font-family: Cambria, Georgia, serif; color: var(--navy); font-size: 26px; margin: 6px 0 6px; border: none; padding: 0; }
.sb-secao > .sb-sub { color: var(--gray); font-size: 15px; margin: 0 0 22px; max-width: 640px; }

.sb-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; }
.sb-card {
  background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 22px;
  transition: box-shadow .2s, transform .2s, border-color .2s; position: relative;
}
.sb-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: var(--cyan-light); }
.sb-card .sb-ico {
  width: 44px; height: 44px; border-radius: 10px; background: var(--cyan-tint); color: var(--navy);
  display: flex; align-items: center; justify-content: center; margin-bottom: 14px;
}
.sb-card .sb-ico svg { width: 24px; height: 24px; }
.sb-card h3 { font-family: Cambria, Georgia, serif; color: var(--navy); font-size: 18px; margin: 0 0 6px; }
.sb-card p { color: var(--gray); font-size: 14px; line-height: 1.55; margin: 0; }
.sb-card .sb-tag {
  position: absolute; top: 18px; right: 18px; font-family: Consolas, monospace; font-size: 10.5px;
  letter-spacing: .08em; color: var(--navy); background: var(--cyan-light); padding: 3px 8px; border-radius: 20px;
}
.sb-card.destaque { border-color: var(--cyan); box-shadow: 0 0 0 3px var(--cyan-tint); }

.sb-fluxo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: passo; }
.sb-passo { position: relative; padding: 0 14px; text-align: center; }
.sb-passo::before {
  counter-increment: passo; content: "0" counter(passo);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 14px;
  width: 52px; height: 52px; border-radius: 50%; background: var(--navy); color: var(--cyan);
  font-family: Consolas, monospace; font-size: 17px; font-weight: bold;
  box-shadow: 0 0 0 6px var(--cyan-tint); position: relative; z-index: 1;
}
.sb-passo:not(:last-child)::after {
  content: ""; position: absolute; top: 26px; left: calc(50% + 34px); right: calc(-50% + 34px);
  border-top: 2px dashed var(--cyan-light);
}
.sb-passo h3 { font-family: Cambria, Georgia, serif; color: var(--navy); font-size: 16px; margin: 0 0 6px; }
.sb-passo p { color: var(--gray); font-size: 13.5px; line-height: 1.5; margin: 0; }

.sb-transp { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; }
.sb-painel { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 24px; }
.sb-painel h3 { font-family: Cambria, Georgia, serif; color: var(--navy); font-size: 17px; margin: 0 0 12px; }
.sb-lista { list-style: none; padding: 0; margin: 0; }
.sb-lista li { position: relative; padding-left: 26px; margin-bottom: 11px; font-size: 14px; color: var(--gray); line-height: 1.5; }
.sb-lista li::before {
  content: ""; position: absolute; left: 0; top: 4px; width: 14px; height: 14px; border-radius: 50%;
  background: var(--cyan-tint); border: 2px solid var(--cyan);
}
.sb-selos { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.sb-selo {
  font-family: Consolas, monospace; font-size: 12px; color: var(--navy); background: var(--cyan-tint);
  border: 1px solid var(--cyan-light); border-radius: 6px; padding: 5px 10px;
}
.sb-selo.global { background: #fff; border-style: dashed; }
.sb-painel .sb-nota { font-size: 13px; color: var(--gray); line-height: 1.5; margin: 0; }
.sb-aviso {
  margin-top: 16px; border-left: 4px solid var(--cyan); background: var(--cyan-tint);
  border-radius: 0 10px 10px 0; padding: 14px 18px; font-size: 13.5px; color: var(--navy); line-height: 1.55;
}
.sb-aviso strong { font-family: Consolas, monospace; font-size: 11.5px; letter-spacing: .1em; display: block; margin-bottom: 4px; color: var(--navy); }

.sb-citacao { margin: 56px 0 0; text-align: center; padding: 0 24px; }
.sb-citacao blockquote {
  margin: 0 auto; max-width: 680px; font-family: Cambria, Georgia, serif; font-size: 22px;
  line-height: 1.45; color: var(--navy); position: relative;
}
.sb-citacao blockquote::before { content: "\201C"; display: block; font-size: 64px; line-height: .6; color: var(--cyan); margin-bottom: 10px; }

.sb-publico { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.sb-publico div {
  background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px;
  font-size: 14px; color: var(--gray);
}
.sb-publico strong { display: block; font-family: Cambria, Georgia, serif; color: var(--navy); font-size: 16px; margin-bottom: 4px; }

.sb-cta { margin: 56px 0 40px; padding: 44px 13%; text-align: center; }
.sb-cta h2 { font-family: Cambria, Georgia, serif; font-size: 28px; margin: 10px 0 8px; color: var(--navy); border: none; padding: 0; }
.sb-cta p { color: #33475b; margin: 0 auto 24px; max-width: 520px; font-size: 15px; }
.sb-botoes { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.sb-btn {
  display: inline-block; padding: 13px 26px; border-radius: 8px; font-weight: 600; font-size: 15px;
  text-decoration: none; transition: transform .15s, box-shadow .15s;
}
.sb-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(31,187,228,.3); }
.sb-btn.prim { background: var(--cyan); color: var(--navy); }
.sb-btn.sec { border: 1px solid var(--navy); color: var(--navy); background: #fff; }

@media (max-width: 760px) {
  .sb-hero { padding: 34px 44px 24px; grid-template-columns: 1fr; text-align: center; }
  .sb-hero p { margin: 0 auto; }
  .sb-hero h1 { font-size: 30px; }
  .sb-numeros { grid-template-columns: repeat(2, 1fr); margin-left: 12px; margin-right: 12px; }
  .sb-fluxo { grid-template-columns: 1fr; gap: 22px; }
  .sb-passo { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; text-align: left; padding: 0; }
  .sb-passo::before { grid-row: span 2; margin: 0; }
  .sb-passo:not(:last-child)::after { top: 58px; bottom: -22px; left: 25px; right: auto; border-top: none; border-left: 2px dashed var(--cyan-light); }
  .sb-transp { grid-template-columns: 1fr; }
  .sb-citacao blockquote { font-size: 19px; }
  .sb-cta { padding: 34px 44px; }
}
