/* =========================================================================
   NEXUS — Instituto de Inteligência Aplicada · Folha de estilo (v2)
   Fontes self-hosted (SIL OFL) · sem chamadas a serviços de terceiros
   ========================================================================= */

@font-face { font-family: 'Fraunces'; src: url('../fonts/fraunces-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('../fonts/fraunces-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('../fonts/fraunces-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/inter-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/inter-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/inter-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/inter-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }

:root {
  /* cores do logotipo oficial */
  --creme: #FBF6EC;
  --creme-2: #F4ECDD;      /* creme mais escuro (painéis) */
  --branco: #FFFFFF;
  --oliva: #405834;
  --oliva-claro: #E7EDE0;
  --verde: #2F4A35;        /* faixas verdes */
  --ambar: #EC9C00;
  --ambar-hover: #D48C00;
  --ambar-claro: #FCE7B5;
  --noite: #041424;
  --noite-2: #0B2236;
  --tinta: #041424;
  --tinta-2: #3D4A57;
  --linha: #E6DED0;

  --f-titulo: 'Fraunces', Georgia, 'Times New Roman', serif;
  --f-texto: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --max: 76rem;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --sec: clamp(4rem, 8vw, 6.5rem);   /* espaçamento vertical padrão das seções */
  --r: 12px;
  --r-sm: 8px;
  --sombra: 0 1px 2px rgba(4,20,36,.04), 0 8px 24px rgba(4,20,36,.06);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--creme); color: var(--tinta);
  font-family: var(--f-texto); font-size: 1.0625rem; line-height: 1.6;
  -webkit-font-smoothing: antialiased; overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--f-titulo); font-weight: 600; line-height: 1.12; letter-spacing: -0.015em; margin: 0; }
h1 { font-size: clamp(2.2rem, 3.7vw, 3.15rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.75rem); }
h3 { font-size: 1.3rem; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--ambar); outline-offset: 3px; border-radius: 4px; }

.wrap { max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.sec { padding-block: var(--sec); }
.bg-branco { background: var(--branco); }
.bg-creme { background: var(--creme); }
.bg-verde { background: var(--verde); color: var(--creme); }
.bg-noite { background: var(--noite); color: var(--creme); }
.center { text-align: center; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.eyebrow {
  font-family: var(--f-texto); font-size: .8rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--oliva); margin-bottom: .9rem; display: block;
}
.bg-noite .eyebrow, .bg-verde .eyebrow { color: #F7C866; }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.25rem); color: var(--tinta-2); }
.sec-head { margin-bottom: clamp(2rem, 4vw, 3rem); }
.sec-head.center { max-width: 60rem; margin-inline: auto; }

/* ---------- ícones ---------- */
.ico { width: 1.5em; height: 1.5em; flex: none; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ico-circle {
  width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--creme-2);
  display: grid; place-items: center; color: var(--oliva); flex: none;
}
.ico-circle .ico { width: 2.1rem; height: 2.1rem; }

/* ---------- botões e links ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  font: 600 1rem/1 var(--f-texto); padding: 1rem 1.6rem; border-radius: var(--r-sm);
  text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.btn-ambar { background: var(--ambar); color: var(--noite); }
.btn-ambar:hover { background: var(--ambar-hover); }
.btn-contorno { border-color: var(--noite); color: var(--noite); background: transparent; }
.btn-contorno:hover { background: var(--noite); color: var(--creme); }
.btn-noite { background: var(--noite); color: var(--creme); }
.btn-noite:hover { background: var(--noite-2); }
.link-seta {
  display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--oliva);
  text-decoration: none; border-bottom: 2px solid transparent; transition: border-color .2s, gap .2s;
}
.link-seta:hover { border-bottom-color: currentColor; gap: .6rem; }
.link-seta .ico { width: 1.1em; height: 1.1em; }
.bg-noite .link-seta { color: var(--creme); }

/* ---------- acessibilidade: pular para o conteúdo ---------- */
.skip { position: absolute; left: -999px; top: .5rem; z-index: 100; background: var(--ambar); color: var(--noite); padding: .6rem 1rem; border-radius: var(--r-sm); font-weight: 600; }
.skip:focus { left: .5rem; }

/* =========================== CABEÇALHO =========================== */
.topbar { background: var(--verde); color: var(--creme); font-size: .85rem; text-align: center; padding: .45rem var(--gutter); }
.topbar a { color: inherit; font-weight: 600; text-decoration: none; }
.topbar a:hover { text-decoration: underline; }

.site-head { position: sticky; top: 0; z-index: 50; background: var(--creme); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.site-head.scrolled { border-bottom-color: var(--linha); box-shadow: 0 4px 18px rgba(4,20,36,.06); }
.head-in { display: flex; align-items: center; gap: 2rem; min-height: 5.25rem; }
.brand img { height: 3.7rem; width: auto; }
.nav { margin-left: auto; }
.nav > ul { display: flex; align-items: center; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.nav-link, .nav-toggle {
  display: inline-flex; align-items: center; gap: .3rem; padding: .65rem .8rem; border-radius: var(--r-sm);
  font: 500 .98rem/1 var(--f-texto); color: var(--noite); text-decoration: none; background: none; border: 0; cursor: pointer;
  position: relative; white-space: nowrap;
}
.nav-link::after, .nav-toggle::after {
  content: ''; position: absolute; left: .8rem; right: .8rem; bottom: .25rem; height: 2px; background: var(--ambar);
  transform: scaleX(0); transform-origin: left; transition: transform .2s;
}
.nav-link:hover::after, .nav-toggle:hover::after, .nav-link[aria-current="page"]::after, .nav-item.open > .nav-toggle::after { transform: scaleX(1); }
.nav-toggle .ico { width: 1rem; height: 1rem; transition: transform .2s; }
.nav-item { position: relative; }
.nav-item.open > .nav-toggle .ico { transform: rotate(180deg); }
.head-cta { margin-left: .75rem; padding: .85rem 1.3rem; white-space: nowrap; }

/* submenu */
.submenu {
  position: absolute; top: calc(100% + .6rem); left: 50%; transform: translateX(-50%) translateY(6px);
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); box-shadow: 0 18px 50px rgba(4,20,36,.14);
  padding: 1.25rem; opacity: 0; visibility: hidden; transition: opacity .18s, transform .18s, visibility .18s; z-index: 60;
}
.nav-item.open > .submenu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.submenu::before { content: ''; position: absolute; top: -.7rem; left: 0; right: 0; height: .7rem; } /* ponte para o hover */
.submenu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; width: 34rem; }
.submenu-title { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--oliva); margin: 0 0 .5rem .75rem; }
.submenu ul { list-style: none; margin: 0; padding: 0; }
.submenu a.sub-link { display: block; padding: .7rem .75rem; border-radius: var(--r-sm); text-decoration: none; }
.submenu a.sub-link strong { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: 1.1rem; color: var(--noite); }
.submenu a.sub-link span { display: block; font-size: .88rem; color: var(--tinta-2); line-height: 1.4; margin-top: .15rem; }
.submenu a.sub-link:hover, .submenu a.sub-link:focus-visible { background: var(--creme); }
.submenu-foot { border-top: 1px solid var(--linha); margin-top: 1rem; padding: 1rem .75rem 0; }
.submenu-single { width: 22rem; }

.menu-btn { display: none; margin-left: auto; background: none; border: 0; padding: .6rem; cursor: pointer; color: var(--noite); border-radius: var(--r-sm); }
.menu-btn .ico { width: 1.8rem; height: 1.8rem; }

@media (max-width: 1360px) {
  .menu-btn { display: inline-flex; }
  .head-cta.desktop { display: none; }
  .nav {
    position: fixed; inset: 0 0 0 auto; width: min(24rem, 100%); background: var(--creme); margin: 0;
    padding: 5.5rem 1.25rem 2rem; overflow-y: auto; transform: translateX(100%); transition: transform .25s; z-index: 70;
    box-shadow: -10px 0 40px rgba(4,20,36,.15);
  }
  .nav.open { transform: translateX(0); }
  .nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-link, .nav-toggle { width: 100%; justify-content: space-between; font-size: 1.1rem; padding: 1rem .5rem; border-bottom: 1px solid var(--linha); border-radius: 0; }
  .nav-link::after, .nav-toggle::after { display: none; }
  .submenu { position: static; transform: none; opacity: 1; visibility: visible; display: none; box-shadow: none; border: 0; padding: .5rem 0 1rem; background: transparent; }
  .nav-item.open > .submenu { display: block; transform: none; }
  .submenu-grid, .submenu-single { width: auto; grid-template-columns: 1fr; gap: .75rem; }
  .nav .head-cta.mobile { display: flex; margin: 1.5rem 0 0; }
  .nav-close { position: absolute; top: 1.25rem; right: 1.25rem; }
  .nav-backdrop { position: fixed; inset: 0; background: rgba(4,20,36,.4); z-index: 45; opacity: 0; visibility: hidden; transition: opacity .25s; }
  .nav-backdrop.show { opacity: 1; visibility: visible; }
}
@media (min-width: 1361px) {
  .nav .head-cta.mobile, .nav-close, .nav-backdrop { display: none !important; }
}

/* =========================== HOME =========================== */
/* abertura */
.hero { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(3.5rem, 6vw, 5rem); }
.hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.hero h1 { margin-bottom: 1.25rem; font-size: clamp(2.2rem, 3.4vw, 3rem); }
.hero h1 span { white-space: nowrap; }
@media (max-width: 560px) { .hero h1 span { white-space: normal; } }
.hero .lead { max-width: 33rem; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.15rem, 1.7vw, 1.35rem); }
.btn-row { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.hero-media { position: relative; }
.hero-media > img { border-radius: var(--r); width: 100%; aspect-ratio: 4/3; object-fit: cover; box-shadow: var(--sombra); }
.float-card {
  position: absolute; right: -1rem; background: var(--branco); border-radius: var(--r); box-shadow: 0 10px 30px rgba(4,20,36,.16);
  display: flex; align-items: center; gap: .85rem; padding: .85rem 1.1rem; font-size: .9rem; line-height: 1.3; color: var(--tinta-2);
}
.float-card strong { display: block; color: var(--noite); font-size: .95rem; }
.float-card .ico { width: 2rem; height: 2rem; color: var(--noite); }
.float-card.c1 { top: 1.25rem; }
.float-card.c2 { top: 7.5rem; }
.float-card.c2 .ico { color: #D93A3A; }
.mini-bars { display: flex; align-items: flex-end; gap: 3px; height: 1.6rem; margin-top: .35rem; }
.mini-bars i { width: 6px; background: var(--oliva); border-radius: 2px; opacity: .85; }

/* credenciais */
.creds { background: var(--branco); border-block: 1px solid var(--linha); }
.creds ul { list-style: none; margin: 0 auto; padding: 1.5rem var(--gutter); max-width: var(--max); display: grid; grid-template-columns: repeat(3, 1fr); }
.creds li { display: flex; align-items: center; justify-content: center; gap: .85rem; font-size: 1rem; color: var(--tinta-2); padding: .5rem 1rem; }
.creds li + li { border-left: 1px solid var(--linha); }
.creds .ico { width: 2rem; height: 2rem; color: var(--noite); }

/* quem somos */
.about { text-align: center; }
.about p.manifesto { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.35rem, 2.4vw, 1.75rem); line-height: 1.45; max-width: 52rem; margin: 0 auto 1.75rem; }

/* dois eixos */
.eixos { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
.eixo { border-radius: var(--r); padding: 1.5rem; display: flex; flex-direction: column; }
.eixo.edu { background: var(--creme-2); }
.eixo.tec { background: var(--noite); color: var(--creme); }
.eixo .tag { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: .25rem 0 1rem; color: var(--oliva); }
.eixo.tec .tag { color: #F7C866; }
.eixo > img { border-radius: var(--r-sm); aspect-ratio: 16/8; object-fit: cover; width: 100%; margin-bottom: 1.25rem; }
.frente { display: flex; gap: 1rem; align-items: center; padding: .85rem .75rem; border-radius: var(--r-sm); text-decoration: none; transition: background .2s; }
.frente:hover { background: rgba(4,20,36,.05); }
.eixo.tec .frente:hover { background: rgba(255,255,255,.06); }
.frente .ico-circle { width: 3.6rem; height: 3.6rem; background: var(--creme); }
.eixo.tec .frente .ico-circle { background: rgba(255,255,255,.08); color: #F7C866; }
.frente .ico-circle .ico { width: 1.7rem; height: 1.7rem; }
.frente p { font-size: 1rem; color: var(--tinta-2); }
.eixo.tec .frente p { color: #C9D2DC; }
.frente strong { font-family: var(--f-titulo); font-size: 1.2rem; font-weight: 600; color: var(--noite); }
.eixo.tec .frente strong { color: var(--creme); }
.eixo .link-seta { margin: 1rem 0 .25rem .75rem; align-self: flex-start; }

/* da sala de aula à secretaria */
.sala-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.passos { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1.1rem; }
.passos li { display: flex; align-items: center; gap: 1rem; font-size: 1.05rem; color: var(--tinta-2); }
.num { width: 2.4rem; height: 2.4rem; flex: none; border-radius: 50%; background: var(--ambar); color: var(--noite); display: grid; place-items: center; font-weight: 700; }

/* linha do tempo */
.timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; position: relative; }
.timeline::before { content: ''; position: absolute; top: 1.4rem; left: 12.5%; right: 12.5%; height: 2px; background: var(--ambar); opacity: .8; }
.timeline li { text-align: center; position: relative; }
.timeline .num { width: 2.8rem; height: 2.8rem; margin: 0 auto 1.1rem; font-size: 1.1rem; box-shadow: 0 0 0 6px var(--verde); }
.timeline h3 { font-size: 1.4rem; margin-bottom: .5rem; color: var(--creme); }
.timeline p { color: #D7E0D0; max-width: 15rem; margin-inline: auto; }

/* com quem trabalhamos */
.cards4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.card {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); padding: 2rem 1.5rem;
  text-align: center; text-decoration: none; display: flex; flex-direction: column; align-items: center; gap: 1rem;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--sombra); border-color: #D9CDB6; }
.card .ico-circle { width: 5.5rem; height: 5.5rem; }
.card .ico-circle .ico { width: 2.6rem; height: 2.6rem; }
.card h3 { font-size: 1.3rem; }
.card p { color: var(--tinta-2); font-size: 1rem; }

/* inteligência responsável */
.resp-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.resp-grid h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); }
.resp-list { list-style: none; margin: 0; padding: 0 0 0 clamp(0rem, 3vw, 3rem); border-left: 1px solid var(--linha); display: grid; gap: 1.5rem; }
.resp-list li { display: flex; align-items: center; gap: 1.1rem; font-size: 1.1rem; color: var(--tinta-2); }
.resp-list .ico { width: 2.2rem; height: 2.2rem; color: var(--noite); }

/* lei de informática */
.lei { position: relative; overflow: hidden; background: var(--noite); color: var(--creme); }
.lei-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.lei::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(4,20,36,.97) 0%, rgba(4,20,36,.92) 40%, rgba(4,20,36,.55) 75%, rgba(4,20,36,.35) 100%); }
.lei .wrap { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.lei h2 { max-width: 34rem; color: var(--creme); }

/* novidades */
.news-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 2rem; }
.news { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.news-card { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); overflow: hidden; text-decoration: none; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.news-card:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
.news-card img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.news-body { padding: 1.25rem 1.4rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; }
.pill { align-self: flex-start; background: var(--ambar-claro); color: #6B4700; font-size: .8rem; font-weight: 600; padding: .3rem .7rem; border-radius: 999px; }
.news-card time { font-size: .9rem; color: var(--tinta-2); }
.news-card h3 { font-size: 1.25rem; }

/* chamada final */
.cta { background: var(--ambar-claro); }
.cta .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; flex-wrap: wrap; padding-block: clamp(3rem, 6vw, 4.25rem); }
.cta h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }

/* =========================== RODAPÉ =========================== */
.site-foot { background: var(--noite); color: #C9D2DC; padding-block: clamp(3.5rem, 6vw, 4.5rem) 1.75rem; font-size: .98rem; }
.foot-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.4fr; gap: 2.5rem; }
.foot-grid img { height: 3.2rem; width: auto; margin-bottom: 1.25rem; }
.foot-legal { line-height: 1.7; }
.foot-title { font-family: var(--f-texto); font-weight: 700; color: var(--creme); font-size: 1rem; margin: .4rem 0 1rem; }
.foot-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.foot-links a { text-decoration: none; }
.foot-links a:hover { color: var(--creme); text-decoration: underline; }
.news-form { display: flex; gap: .5rem; margin-bottom: 1.25rem; }
.news-form input { flex: 1; min-width: 0; padding: .85rem 1rem; border-radius: var(--r-sm); border: 1px solid transparent; font: inherit; font-size: .95rem; }
.news-form .btn { padding: .85rem 1.1rem; }
.form-msg { font-size: .88rem; color: #F7C866; min-height: 1.2em; margin: -.5rem 0 1rem; }
.social { display: flex; gap: .75rem; }
.social a { width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.08); color: var(--creme); }
.social a:hover { background: rgba(255,255,255,.16); }
.social .ico { width: 1.25rem; height: 1.25rem; }
.foot-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 3rem; padding-top: 1.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: .9rem; }
.foot-bottom a { color: var(--creme); }
.libras-btn { display: inline-flex; align-items: center; gap: .5rem; background: none; border: 0; color: var(--creme); font: inherit; cursor: pointer; padding: .4rem .6rem; border-radius: var(--r-sm); }
.libras-btn:hover { background: rgba(255,255,255,.08); }
.libras-btn .ico { width: 1.5rem; height: 1.5rem; }

/* =========================== PÁGINAS PROVISÓRIAS =========================== */
.page-head { padding-block: clamp(3rem, 6vw, 5rem); }
.crumbs { font-size: .9rem; color: var(--oliva); margin-bottom: 1.25rem; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.soon { background: var(--branco); border: 1px solid var(--linha); border-left: 4px solid var(--ambar); border-radius: var(--r); padding: 1.5rem 1.75rem; max-width: 44rem; margin-top: 2rem; }
.soon p + p { margin-top: .75rem; }

/* =========================== RESPONSIVO =========================== */
@media (max-width: 1080px) {
  .cards4 { grid-template-columns: repeat(2, 1fr); }
  .foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .hero-grid, .sala-grid, .resp-grid, .eixos { grid-template-columns: 1fr; }
  .hero-media { margin-top: .5rem; }
  .float-card { right: .75rem; font-size: .82rem; padding: .7rem .9rem; }
  .float-card.c2 { top: auto; bottom: 1rem; }
  .creds ul { grid-template-columns: 1fr; padding-block: 1rem; }
  .creds li { justify-content: flex-start; }
  .creds li + li { border-left: 0; border-top: 1px solid var(--linha); }
  .timeline { grid-template-columns: 1fr 1fr; row-gap: 2.5rem; }
  .timeline::before { display: none; }
  .news { grid-template-columns: 1fr; }
  .resp-list { border-left: 0; padding-left: 0; }
  .lei::before { background: linear-gradient(180deg, rgba(4,20,36,.95), rgba(4,20,36,.85)); }
}
@media (max-width: 560px) {
  body { font-size: 1rem; }
  .cards4, .timeline, .foot-grid { grid-template-columns: 1fr; }
  .btn-row .btn { width: 100%; }
  .float-card.c1 { display: none; }
  .brand img { height: 2.6rem; }
  .cta .btn, .lei .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ajustes de contraste e logotipo */
.brand { flex: none; }
.lei .eyebrow { color: #F7C866; }
.eixo.tec .link-seta { color: #F7C866; }
.foot-grid img { height: 3.6rem; }
.head-in { gap: 1.25rem; }
.nav-link, .nav-toggle { padding-inline: .6rem; font-size: .95rem; }
.nav-link::after, .nav-toggle::after { left: .6rem; right: .6rem; }
.head-cta { margin-left: .5rem; }
@media (min-width: 1361px) and (max-width: 1280px) { .brand img { height: 3.1rem; } .nav-link, .nav-toggle { padding-inline: .45rem; } }
.site-head { top: env(safe-area-inset-top, 0px); }

/* ---- espaçamento compacto entre seções (pedido da diretoria) ---- */
:root { --sec: clamp(2.5rem, 4.5vw, 3.75rem); }
.hero { padding-block: clamp(1.75rem, 3vw, 2.5rem) clamp(2.25rem, 4vw, 3rem); }
.sec-head { margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem); }
.about p.manifesto { margin-bottom: 1.25rem; }
.passos { margin-top: 1.5rem; }
.card { padding: 1.5rem 1.25rem; gap: .75rem; }
.lei .wrap { padding-block: clamp(2.25rem, 4.5vw, 3.25rem); }
.news-head { margin-bottom: 1.5rem; }
.cta .wrap { padding-block: clamp(2rem, 4vw, 2.75rem); }
.site-foot { padding-block: clamp(2.5rem, 4.5vw, 3.25rem) 1.5rem; }
.foot-bottom { margin-top: 2rem; }
.eixo > img { aspect-ratio: 2.3/1; margin-bottom: .75rem; }
.frente { padding-block: .6rem; }
.sala-grid > img { max-height: 21rem; width: auto; justify-self: center; object-fit: contain; }
.news-card img { aspect-ratio: 2/1; }
.news-body { padding: 1rem 1.25rem 1.25rem; gap: .45rem; }
.timeline .num { margin-bottom: .75rem; }
@media (max-width: 560px) {
  .cards4 { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .card { padding: 1.1rem .75rem; }
  .card .ico-circle { width: 3.75rem; height: 3.75rem; }
  .card .ico-circle .ico { width: 1.8rem; height: 1.8rem; }
  .card h3 { font-size: 1.05rem; }
  .card p { font-size: .9rem; }
  .timeline { grid-template-columns: 1fr 1fr; gap: 1.75rem 1rem; }
  .timeline h3 { font-size: 1.2rem; }
  .timeline p { font-size: .92rem; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
  .foot-grid > div:first-child, .foot-grid > div:last-child { grid-column: 1 / -1; }
  .hero-media > img { aspect-ratio: 16/10; }
}
@media (max-width: 560px) {
  .news { gap: .75rem; }
  .news-card { flex-direction: row; }
  .news-card img { width: 36%; aspect-ratio: auto; height: auto; object-fit: cover; flex: none; }
  .news-body { padding: .85rem 1rem; }
  .news-card h3 { font-size: 1.05rem; }
}

/* ---- logotipo para web: marca em imagem + frase em texto legível ---- */
.brand { display: inline-flex; align-items: center; gap: .85rem; text-decoration: none; color: var(--noite); }
.brand img { height: 2.9rem; width: auto; }
.brand-tag {
  font-family: var(--f-texto); font-size: .72rem; font-weight: 600; line-height: 1.3;
  letter-spacing: .1em; text-transform: uppercase; color: var(--noite);
  padding-left: .85rem; border-left: 1px solid #CFC4AE; white-space: nowrap;
}
.brand-foot { margin-bottom: 1.25rem; color: var(--creme); }
.brand-foot img, .foot-grid .brand-foot img { height: 2.9rem; margin: 0; }
.brand-foot .brand-tag { color: var(--creme); border-left-color: rgba(255,255,255,.25); }
@media (min-width: 1361px) and (max-width: 1280px) { .brand img { height: 2.5rem; } .brand-tag { font-size: .66rem; } }
@media (max-width: 400px) { .brand img { height: 2.4rem; } .brand-tag { font-size: .62rem; padding-left: .6rem; } .brand { gap: .6rem; } }

/* ---- 94% no cartão da abertura ---- */
.float-card strong.big { font-size: 1.35rem; line-height: 1.1; margin-top: .1rem; }

/* encaixe do cabeçalho e do rodapé com a frase do logotipo */
.site-head .wrap { max-width: 84rem; }
.brand img { height: 2.6rem; }
.foot-grid { grid-template-columns: 1.9fr 1fr 1fr 1.4fr; }
@media (max-width: 1080px) { .foot-grid { grid-template-columns: 1fr 1fr; } .foot-grid > div:first-child { grid-column: 1 / -1; } }
.site-head .wrap { max-width: 86rem; }
.brand { gap: .7rem; }
.brand-tag { font-size: .68rem; letter-spacing: .07em; padding-left: .7rem; }
.nav-link, .nav-toggle { padding-inline: .55rem; }
.nav-link::after, .nav-toggle::after { left: .55rem; right: .55rem; }
@media (max-width: 420px) {
  .brand img { height: 2.2rem; }
  .brand { gap: .55rem; }
  .brand-tag { font-size: .6rem; letter-spacing: .05em; padding-left: .55rem; }
  .menu-btn { padding: .4rem; }
}

/* =========================== QUEM SOMOS =========================== */
.ico64 { fill: none; stroke: var(--oliva); }
.ico64.amb { stroke: var(--ambar); }
.qs-ic { width: 4.25rem; height: 4.25rem; border-radius: 50%; background: var(--creme-2); display: grid; place-items: center; flex: none; }
.qs-ic .ico64 { width: 2.4rem; height: 2.4rem; }
.qs-ic.lg { width: 5.5rem; height: 5.5rem; }
.qs-ic.lg .ico64 { width: 3rem; height: 3rem; }

.qs-hero { padding-block: clamp(1.5rem, 3vw, 2.25rem) clamp(2rem, 4vw, 2.75rem); }
.qs-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.qs-hero .crumbs { margin-bottom: 1rem; }
.qs-hero h1 { margin-bottom: 1rem; }
.qs-hero .lead { max-width: 34rem; }
.qs-hero-img { border-radius: var(--r); width: 100%; aspect-ratio: 16/9; object-fit: cover; box-shadow: var(--sombra); }

.qs-traj { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.qs-traj h2 { margin-bottom: 1.25rem; }
.qs-text { font-family: var(--f-titulo); font-weight: 500; font-size: 1.15rem; line-height: 1.6; color: var(--tinta-2); max-width: 38rem; }
.qs-tl { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 1.1rem; }
.qs-tl::before { content: ''; position: absolute; left: .6rem; top: .6rem; bottom: .6rem; width: 2px; background: var(--oliva); opacity: .55; }
.qs-tl li { position: relative; padding-left: 2.4rem; display: grid; gap: .1rem; }
.qs-tl li::before { content: ''; position: absolute; left: 0; top: .1rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--verde); box-shadow: 0 0 0 4px var(--branco); }
.qs-tl strong { font-weight: 700; color: var(--noite); }
.qs-tl span { color: var(--tinta-2); font-size: .95rem; }

.qs-mvv { padding-block: clamp(2.25rem, 4vw, 3rem); }
.qs-mvv-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.qs-mvv-item { display: flex; gap: 1.1rem; align-items: flex-start; padding: .5rem clamp(1rem, 2.5vw, 2rem); }
.qs-mvv-item:first-child { padding-left: 0; }
.qs-mvv-item + .qs-mvv-item { border-left: 1px solid rgba(251,246,236,.25); }
.qs-mvv-item > .ico64 { width: 3.2rem; height: 3.2rem; flex: none; }
.qs-mvv h2 { font-size: 1.6rem; color: var(--creme); margin-bottom: .5rem; }
.qs-mvv p, .qs-mvv li { color: #D7E0D0; font-size: .98rem; }
.qs-mvv ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.qs-mvv li { display: flex; align-items: center; gap: .55rem; }
.qs-mvv li::before { content: ''; width: .5rem; height: .5rem; border-radius: 50%; background: var(--ambar); flex: none; }

.qs-forcas { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.qs-forca { display: flex; gap: 1.5rem; align-items: center; padding: 1.75rem; border-radius: var(--r); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.qs-forca:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
.qs-forca.edu { background: var(--creme-2); }
.qs-forca.edu .qs-ic { background: var(--creme); }
.qs-forca.tec { background: var(--noite); color: var(--creme); }
.qs-forca.tec .qs-ic { background: rgba(255,255,255,.08); }
.qs-forca h3 { font-size: 1.45rem; margin-bottom: .4rem; }
.qs-forca p { color: var(--tinta-2); }
.qs-forca.tec p { color: #C9D2DC; }

.qs-nums { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }
.qs-nums > div { text-align: center; padding: .25rem 1rem; }
.qs-nums > div + div { border-left: 1px solid var(--linha); }
.qs-nums dt { font-family: var(--f-titulo); font-weight: 600; font-size: clamp(2.4rem, 4.5vw, 3.4rem); line-height: 1; color: var(--ambar); margin-bottom: .5rem; }
.qs-nums dd { margin: 0; color: var(--tinta-2); max-width: 15rem; margin-inline: auto; }
.qs-note { text-align: center; font-size: .9rem; color: var(--tinta-2); margin-top: 1.5rem; }

.qs-esp { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; }
.qs-card { flex: 0 1 calc((100% - 2.5rem) / 3); background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.25rem 1.4rem; display: flex; gap: 1.1rem; align-items: center; }
.qs-card h3 { font-size: 1.15rem; margin-bottom: .3rem; }
.qs-card p { color: var(--tinta-2); font-size: .97rem; line-height: 1.5; }
.qs-link { text-decoration: none; transition: transform .2s, box-shadow .2s, border-color .2s; }
.qs-link:hover { transform: translateY(-3px); box-shadow: var(--sombra); border-color: #D9CDB6; }
.qs-link .link-seta { font-size: .95rem; }

.qs-orgs { font-size: clamp(1.1rem, 1.8vw, 1.35rem); color: var(--tinta-2); max-width: 46rem; margin: 1rem auto 1.75rem; line-height: 1.7; }
.qs-selos { display: flex; justify-content: center; gap: 1.25rem; flex-wrap: wrap; }
.qs-selo { display: flex; flex-direction: column; align-items: center; gap: .5rem; background: var(--creme); border: 1px solid #F0D99A; border-radius: var(--r); padding: 1.1rem 2rem; font-weight: 600; color: var(--noite); min-width: 12rem; }
.qs-selo .ico64 { width: 2.6rem; height: 2.6rem; }

.qs-transp { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.qs-transp .qs-card { flex: none; }

@media (max-width: 960px) {
  .qs-card { flex-basis: calc((100% - 1.25rem) / 2); }
  .qs-mvv-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .qs-mvv-item, .qs-mvv-item:first-child { padding: 0; }
  .qs-mvv-item + .qs-mvv-item { border-left: 0; border-top: 1px solid rgba(251,246,236,.25); padding-top: 1.5rem; }
}
@media (max-width: 860px) {
  .qs-hero-grid, .qs-traj, .qs-forcas { grid-template-columns: 1fr; }
  .qs-nums { grid-template-columns: 1fr 1fr; row-gap: 1.75rem; }
  .qs-nums > div:nth-child(3) { border-left: 0; }
  .qs-transp { grid-template-columns: 1fr; gap: .75rem; }
}
@media (max-width: 560px) {
  .qs-card { flex-basis: 100%; }
  .qs-esp { gap: .75rem; }
  .qs-forca { padding: 1.25rem; gap: 1rem; flex-direction: column; align-items: flex-start; }
  .qs-forca .qs-ic.lg { width: 4rem; height: 4rem; }
  .qs-forca .qs-ic.lg .ico64 { width: 2.2rem; height: 2.2rem; }
  .qs-nums dd { font-size: .9rem; }
  .qs-selo { min-width: 0; flex: 1; padding: 1rem; }
}
.ico64 { stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; stroke: #144D32; }
.ico64.amb { stroke: var(--ambar); }
.qs-traj h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.qs-hero-img { aspect-ratio: 16/9.5; }
.qs-forca h3 { text-wrap: balance; }
.qs-card h3 { text-wrap: balance; }
.qs-orgs { margin: .75rem auto 1.5rem; }
.qs-note { margin-top: 1.1rem; }
.qs-traj { grid-template-columns: 1.6fr 1fr; }
@media (min-width: 861px) { .qs-traj h2 span { white-space: nowrap; } }

/* =========================== CUIDAR =========================== */
.ic24 { width: 1.5rem; height: 1.5rem; fill: none; stroke: #144D32; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ic24.amb { stroke: var(--ambar); }
.qs-ic .ic24 { width: 2.2rem; height: 2.2rem; }
.qs-ic.sm { width: 3rem; height: 3rem; }
.qs-ic.sm .ic24 { width: 1.5rem; height: 1.5rem; }
.cu-h1 { font-size: clamp(2rem, 3.4vw, 2.85rem); text-wrap: balance; }
.cu-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.cu-grid3 .qs-card { flex: none; }

.cu-niveis { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.cu-circulos { width: 100%; max-width: 25rem; height: auto; justify-self: center; }
.cu-circulos .t1 { font-family: var(--f-titulo); font-weight: 600; font-size: 34px; }
.cu-circulos .t2 { font-family: var(--f-texto); font-size: 23px; }
.cu-circulos .t1.sm { font-size: 28px; } .cu-circulos .t2.sm { font-size: 19px; }
.cu-niveis-txt { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.15rem, 1.8vw, 1.4rem); line-height: 1.55; color: var(--tinta-2); border-left: 1px solid var(--linha); padding-left: clamp(1.25rem, 3vw, 2.5rem); }

.cu-tec { padding-top: var(--sec); }
.cu-tec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; padding-bottom: clamp(2rem, 4vw, 2.75rem); }
.cu-tec h2 { color: var(--creme); margin-bottom: 1rem; }
.cu-tec-txt { color: #C9D2DC; font-size: 1.08rem; max-width: 34rem; }
.cu-leituras { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.cu-leituras li { display: flex; flex-direction: column; gap: .6rem; padding: 0 1rem; color: var(--creme); font-weight: 500; font-size: .98rem; line-height: 1.3; }
.cu-leituras li:first-child { padding-left: 0; }
.cu-leituras li + li { border-left: 1px solid rgba(255,255,255,.15); }
.cu-leituras .ic24 { width: 2.2rem; height: 2.2rem; }
.cu-selos { background: var(--noite-2); border-top: 1px solid rgba(255,255,255,.08); }
.cu-selos ul { list-style: none; margin-block: 0; display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 1.1rem; }
.cu-selos li { display: flex; align-items: center; gap: .9rem; color: var(--creme); padding: .25rem 1.25rem; }
.cu-selos li:first-child { padding-left: 0; }
.cu-selos li + li { border-left: 1px solid rgba(255,255,255,.15); }
.cu-selos .qs-ic { background: rgba(255,255,255,.08); }
.cu-selos .ic24 { stroke: var(--creme); }

.cu-rede-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.rede { position: relative; height: 15rem; max-width: 34rem; width: 100%; }
.rede-linhas { position: absolute; inset: 0; width: 100%; height: 100%; }
.rede-linhas line { stroke: #CDBF9F; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.rede-centro { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 6rem; height: 6rem; border-radius: 50%; background: var(--creme); border: 2px solid var(--ambar); display: grid; place-items: center; font-family: var(--f-titulo); font-weight: 600; font-size: 1.15rem; color: var(--noite); }
.rede ul { list-style: none; margin: 0; padding: 0; }
.rede-no { position: absolute; display: flex; align-items: center; gap: .65rem; font-size: .98rem; color: var(--tinta-2); max-width: 11rem; line-height: 1.25; transform: translate(-1.5rem, -50%); }
.rede-no .qs-ic { background: var(--creme-2); }
.rede-no.n1 { left: 22%; top: 20%; } .rede-no.n2 { left: 74%; top: 20%; }
.rede-no.n3 { left: 22%; top: 80%; } .rede-no.n4 { left: 74%; top: 80%; }
.cu-rede-txt { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.45; color: var(--tinta-2); border-left: 1px solid var(--linha); padding-left: clamp(1.25rem, 3vw, 2.5rem); }

.cu-prof { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.cu-prof img { border-radius: var(--r); width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.cu-prof-txt { color: var(--tinta-2); font-size: 1.08rem; margin-bottom: 1.25rem; }
.cu-lista { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .85rem; }
.cu-lista li { display: flex; align-items: center; gap: .85rem; color: var(--tinta-2); }

.cu-meses { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; position: relative; }
.cu-meses::before { content: ''; position: absolute; top: .6rem; left: 10%; right: 10%; height: 2px; background: var(--oliva); opacity: .5; }
.cu-meses li { text-align: center; position: relative; padding-top: 2.1rem; display: grid; gap: .25rem; }
.cu-meses li::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--verde); box-shadow: 0 0 0 5px var(--branco); }
.cu-meses strong { color: var(--noite); }
.cu-meses span { color: var(--tinta-2); font-size: .95rem; line-height: 1.4; max-width: 13rem; margin-inline: auto; }

.cu-aviso { display: flex; align-items: center; gap: 1rem; margin-top: 1.75rem; background: var(--branco); border: 2px solid #F3C35A; border-radius: var(--r); padding: 1rem 1.4rem; }
.cu-aviso .ic24 { width: 1.9rem; height: 1.9rem; }
.cu-aviso p { color: var(--noite); }
.cu-aviso a { text-decoration: none; }

@media (max-width: 960px) {
  .cu-leituras { grid-template-columns: 1fr 1fr; row-gap: 1.25rem; }
  .cu-leituras li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 860px) {
  .cu-grid3, .cu-niveis, .cu-tec-grid, .cu-rede-grid, .cu-prof { grid-template-columns: 1fr; }
  .cu-niveis-txt, .cu-rede-txt { border-left: 0; padding-left: 0; }
  .cu-selos ul { grid-template-columns: 1fr; gap: .5rem; }
  .cu-selos li, .cu-selos li:first-child { padding: 0; border-left: 0 !important; }
  .cu-meses { grid-template-columns: 1fr; gap: 0; }
  .cu-meses::before { top: .6rem; bottom: .6rem; left: .6rem; right: auto; width: 2px; height: auto; }
  .cu-meses li { text-align: left; padding: 0 0 1rem 2.4rem; }
  .cu-meses li::before { left: .6rem; }
  .cu-meses span { margin: 0; max-width: none; }
}
@media (max-width: 560px) {
  .cu-grid3 { gap: .75rem; }
  .rede { height: auto; display: grid; gap: 1rem; }
  .rede-linhas { display: none; }
  .rede-centro { position: static; transform: none; width: auto; height: auto; border-radius: 999px; padding: .6rem 1.2rem; justify-self: start; }
  .rede ul { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
  .rede-no { position: static; transform: none; max-width: none; }
  .cu-aviso { align-items: flex-start; }
}
.cu-hero .qs-hero-grid, body .qs-hero-grid:has(.cu-h1) { grid-template-columns: 1.2fr 1fr; }
.cu-h1 { font-size: clamp(2rem, 3vw, 2.6rem); }
.cu-circulos { max-width: 20rem; }
@media (max-width: 860px) { body .qs-hero-grid:has(.cu-h1) { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .cu-circulos { max-width: 17rem; } }
section[id], [id^="t-"] { scroll-margin-top: 6.5rem; }
@media (min-width: 861px) { .cu-h1 { text-wrap: wrap; max-width: 34rem; } }
@media (min-width: 861px) { .cu-h1 { max-width: none; } .cu-h1 span { display: block; white-space: nowrap; } }

/* =========================== GERIR =========================== */
.ig { width: 1.6rem; height: 1.6rem; fill: none; color: #2E6B45; flex: none; }
.ig.amb { color: var(--ambar); }
.qs-ic .ig { width: 2.2rem; height: 2.2rem; }
.qs-ic.lg .ig { width: 3rem; height: 3rem; }
.qs-ic.sm .ig, .qs-ic.sm .ico { width: 1.6rem; height: 1.6rem; color: #2E6B45; }

.ge-niveis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; position: relative; text-align: center; }
.ge-niveis::before { content: ''; position: absolute; top: 2.75rem; left: 16.6%; right: 16.6%; height: 2px; background: var(--ambar); opacity: .7; }
.ge-niveis li { position: relative; display: grid; justify-items: center; gap: .4rem; }
.ge-niveis .qs-ic { box-shadow: 0 0 0 8px var(--branco); position: relative; }
.ge-niveis li::after { content: ''; position: absolute; top: -.4rem; left: 50%; width: .8rem; height: .8rem; border-radius: 50%; background: var(--ambar); transform: translateX(-50%); }
.ge-niveis h3 { font-size: 1.35rem; margin-top: .5rem; }
.ge-niveis p { color: var(--tinta-2); max-width: 19rem; }

.ge-painel { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ge-painel h2 { color: var(--creme); margin-bottom: 1.5rem; }
.ge-painel-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.ge-painel-lista li { display: flex; gap: 1rem; align-items: flex-start; }
.ge-painel-lista .ig { width: 2rem; height: 2rem; margin-top: .1rem; }
.ge-painel-lista strong { display: block; color: var(--creme); font-size: 1.05rem; }
.ge-painel-lista span { color: #C9D2DC; font-size: .97rem; }

/* aparelhos desenhados */
.dev-laptop { width: 100%; max-width: 40rem; justify-self: center; }
.dev-screen { background: #fff; border: .7rem solid #0B0F14; border-bottom-width: 1rem; border-radius: 1rem 1rem 0 0; padding: .7rem; font-family: var(--f-texto); color: var(--noite); }
.dev-base { height: .8rem; margin: 0 -6%; background: linear-gradient(#D9DCE0, #A9AEB5); border-radius: 0 0 1rem 1rem; position: relative; }
.dev-base::after { content: ''; position: absolute; left: 42%; right: 42%; top: 0; height: .3rem; background: #8D9299; border-radius: 0 0 .4rem .4rem; }
.ui-top { display: flex; justify-content: space-between; align-items: center; font-size: .72rem; font-weight: 600; margin-bottom: .5rem; }
.ui-pill { background: #EEF1F4; padding: .1rem .5rem; border-radius: 999px; font-weight: 500; color: var(--tinta-2); }
.ui-grid { display: grid; grid-template-columns: 1.3fr .7fr 1.1fr; grid-template-rows: auto auto; gap: .45rem; }
.ui-card { background: #F6F8FA; border-radius: .45rem; padding: .45rem .55rem; font-size: .62rem; line-height: 1.3; }
.ui-card small { display: block; color: #5B6775; font-size: .58rem; }
.ui-card b { font-size: .95rem; color: var(--noite); }
.ui-t { font-weight: 600; color: var(--noite) !important; margin-bottom: .25rem; }
.ui-map svg { width: 100%; height: auto; display: block; }
.ui-kpis { display: grid; gap: .45rem; align-content: center; }
.ui-col { display: grid; gap: .45rem; }
.ui-bars { display: flex; align-items: flex-end; gap: .35rem; height: 3.2rem; padding-top: .2rem; }
.ui-bars i { flex: 1; background: #3B8FE0; border-radius: 2px 2px 0 0; }
.ui-bars.sm { height: 3rem; }
.ui-donut { display: flex; align-items: center; gap: .5rem; }
.ui-donut svg { width: 2.6rem; height: 2.6rem; flex: none; }
.ui-alerts { grid-column: 1 / 3; }
.ui-alerts ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.ui-alerts li { display: flex; align-items: center; gap: .35rem; font-size: .6rem; color: #3D4A57; }
.ui-alerts li i { width: .5rem; height: .5rem; border-radius: 50%; flex: none; }
.ui-alerts li b { font-size: .62rem; }
.ui-line svg { width: 100%; height: 3rem; display: block; }

.ge-papel { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: center; }
.ge-papel-h { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.ge-papel-h h3 { font-size: 1.2rem; }
.ge-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.ge-checks li { display: flex; align-items: flex-start; gap: .7rem; color: var(--tinta-2); font-size: .98rem; }
.ge-check { width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #2E6B45; flex: none; margin-top: .15rem; position: relative; }
.ge-check::after { content: ''; position: absolute; left: .42rem; top: .24rem; width: .32rem; height: .58rem; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.dev-tablet-wrap { position: relative; padding-bottom: 2.5rem; }
.dev-tablet { background: #0B0F14; border-radius: 1.1rem; padding: .7rem; }
.ui-cal { background: #fff; border-radius: .6rem; padding: .7rem; font-size: .7rem; }
.ui-cal-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; color: var(--noite); }
.ui-cal-g { display: grid; grid-template-columns: repeat(7, 1fr); gap: .2rem; text-align: center; }
.ui-cal-g em { font-style: normal; font-size: .55rem; color: #8892A0; }
.ui-cal-g span { padding: .3rem 0; border-radius: .3rem; background: #F6F8FA; color: var(--tinta-2); position: relative; }
.ui-cal-g span.on { background: #1E7FC9; color: #fff; font-weight: 700; }
.ui-cal-g span.dot::after { content: ''; position: absolute; top: .12rem; left: 50%; width: .25rem; height: .25rem; border-radius: 50%; background: var(--ambar); transform: translateX(-50%); }
.ui-float { position: absolute; bottom: 0; background: #fff; border-radius: .7rem; box-shadow: 0 10px 28px rgba(4,20,36,.16); padding: .6rem .75rem; font-size: .78rem; width: 47%; }
.ui-float.f1 { left: -4%; } .ui-float.f2 { right: -4%; }
.ui-float-h { display: flex; align-items: center; gap: .45rem; margin-bottom: .45rem; color: var(--noite); }
.ui-float-h .ic24 { stroke: var(--noite); width: 1.2rem; height: 1.2rem; }
.ui-avatars { display: flex; align-items: center; }
.ui-avatars i { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #C9D8E6; border: 2px solid #fff; margin-left: -.35rem; display: grid; place-items: center; font-style: normal; font-size: .55rem; font-weight: 700; color: #33465A; }
.ui-avatars i:first-child { margin-left: 0; background: #E9D2B6; } .ui-avatars i:nth-child(2) { background: #D3E3CF; }
.ui-avatars span { margin-left: .4rem; font-size: .7rem; color: var(--tinta-2); }
.ui-prog { height: .45rem; background: #E6EAEE; border-radius: 999px; overflow: hidden; }
.ui-prog i { display: block; height: 100%; background: #2E8B57; border-radius: 999px; }
.ui-float.f2 .ui-prog { display: inline-block; width: 72%; vertical-align: middle; }
.ui-float.f2 small { margin-left: .4rem; color: var(--tinta-2); }

.ge-phones { display: grid; grid-template-columns: 1fr auto auto 1fr; gap: clamp(1rem, 3vw, 2.5rem); align-items: center; }
.ge-cap { color: var(--tinta-2); font-size: 1.05rem; text-align: right; }
.ge-cap:last-child { text-align: left; }
.ge-cap strong { font-family: var(--f-titulo); font-weight: 600; color: var(--noite); }
.dev-phone { width: 13.5rem; background: #0B0F14; border-radius: 2rem; padding: .55rem; box-shadow: 0 16px 40px rgba(4,20,36,.15); }
.ui-ph { background: #fff; border-radius: 1.55rem; padding: .7rem .8rem 1rem; min-height: 24rem; font-size: .7rem; display: grid; gap: .55rem; align-content: start; }
.ui-ph-bar { font-size: .6rem; font-weight: 600; color: var(--noite); }
.ui-ph-t { font-size: .9rem; color: var(--noite); }
.ui-sub { font-weight: 600; color: var(--noite); font-size: .66rem; }
.ui-prog-row { display: flex; align-items: center; gap: .5rem; margin-top: .3rem; }
.ui-prog-row .ui-prog { flex: 1; }
.ui-prog-row b { font-size: .75rem; color: #2E8B57; }
.ui-badges { display: grid; grid-template-columns: repeat(3, 1fr); text-align: center; gap: .3rem; }
.ui-badges i { width: 2.3rem; height: 2.3rem; border-radius: 50%; display: grid; place-items: center; margin: 0 auto .2rem; font-style: normal; font-size: 1rem; }
.ui-badges .b1 { background: #FAD4C4; color: #E2662F; } .ui-badges .b2 { background: #FBE3A8; } .ui-badges .b3 { background: #D9EBC6; color: #C08A00; }
.ui-badges small { display: block; font-size: .56rem; color: #5B6775; }
.ui-badges b { font-size: .72rem; color: var(--noite); }
.ui-acts { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.ui-acts li { position: relative; padding-left: 1.2rem; font-size: .64rem; color: var(--noite); font-weight: 600; }
.ui-acts li small { display: block; font-weight: 400; color: #8892A0; font-size: .58rem; }
.ui-acts li::before { content: ''; position: absolute; left: 0; top: .1rem; width: .8rem; height: .8rem; border-radius: 50%; border: 2px solid #C5CCD4; }
.ui-acts li.ok::before { background: #2E8B57; border-color: #2E8B57; }
.ui-acts li.doing::before { background: #1E7FC9; border-color: #1E7FC9; }
.ui-acts li.ok small { color: #2E8B57; } .ui-acts li.doing small { color: #1E7FC9; }
.ui-perf { position: relative; }
.ui-nota { position: absolute; right: .5rem; top: .4rem; background: #2E8B57; color: #fff; font-weight: 700; font-size: .7rem; padding: .1rem .4rem; border-radius: .3rem; }
.ui-alert-red { display: flex; align-items: center; gap: .55rem; background: #FDECEC; color: #B3261E; font-weight: 600; }
.ui-alert-red > b { width: 1.3rem; height: 1.3rem; border-radius: 50%; border: 2px solid #D93A3A; display: grid; place-items: center; color: #D93A3A !important; font-size: .7rem; flex: none; }
.ui-alert-red small { color: #B3261E; }
.ui-msg { display: flex; gap: .5rem; align-items: flex-start; }
.ui-msg > i { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #E9D2B6; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: .65rem; color: #6B4700; flex: none; }
.ui-msg b { font-size: .64rem; }

.ge-com { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.ge-com li { display: flex; gap: 1rem; align-items: flex-start; padding: 0 clamp(.75rem, 2vw, 1.5rem); }
.ge-com li:first-child { padding-left: 0; }
.ge-com li + li { border-left: 1px solid rgba(251,246,236,.22); }
.ge-com .ig { width: 2.4rem; height: 2.4rem; }
.ge-com h3 { color: var(--creme); font-size: 1.2rem; margin-bottom: .3rem; }
.ge-com p { color: #D7E0D0; font-size: .96rem; }

.ge-pilar { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.4rem 1.5rem; display: flex; gap: 1.1rem; align-items: center; }
.ge-pilar-n { font-family: var(--f-titulo); font-weight: 600; font-size: 3.2rem; line-height: 1; color: var(--ambar); flex: none; }
.ge-pilar h3 { font-size: 1.15rem; margin-bottom: .3rem; }
.ge-pilar p { color: var(--tinta-2); font-size: .97rem; line-height: 1.5; }

.ge-dados { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ge-fluxo { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.25rem; justify-items: center; }
.ge-fluxo li { display: flex; align-items: center; gap: .9rem; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r-sm); padding: .85rem 1.4rem; min-width: 18rem; font-weight: 600; color: var(--noite); box-shadow: 0 2px 8px rgba(4,20,36,.05); position: relative; }
.ge-fluxo li + li::before { content: '↑'; position: absolute; top: -2.05rem; left: 50%; transform: translateX(-50%); color: #2E6B45; font-weight: 700; font-size: 1.4rem; line-height: 1; }
.ge-fluxo .ig { width: 1.8rem; height: 1.8rem; }
.ge-ganha-t { font-size: 1.4rem; margin-bottom: 1rem; }
.ge-ganha { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.ge-ganha li { display: flex; align-items: center; gap: .9rem; color: var(--tinta-2); font-size: 1.02rem; }

.ge-seg { padding-block: clamp(2.25rem, 4vw, 3rem); }
.ge-seg h2 { color: var(--creme); font-size: clamp(1.6rem, 2.8vw, 2.2rem); margin-bottom: 1.5rem; }
.ge-seg ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.ge-seg li { display: flex; align-items: center; gap: .9rem; color: var(--creme); padding: 0 1.25rem; }
.ge-seg li:first-child { padding-left: 0; }
.ge-seg li + li { border-left: 1px solid rgba(255,255,255,.15); }
.ge-seg .ig { width: 2.2rem; height: 2.2rem; }

@media (max-width: 1100px) {
  .ge-papel { grid-template-columns: 1fr 1fr; }
  .dev-tablet-wrap { grid-column: 1 / -1; grid-row: 1; max-width: 30rem; justify-self: center; width: 100%; }
  .ge-phones { grid-template-columns: auto auto; justify-content: center; }
  .ge-cap, .ge-cap:last-child { grid-column: auto; text-align: center; }
  .ge-phones .ge-cap:first-child { order: 3; } .ge-phones .ge-cap:last-child { order: 4; }
}
@media (max-width: 960px) {
  .ge-com { grid-template-columns: 1fr 1fr; row-gap: 1.5rem; }
  .ge-com li:nth-child(3) { padding-left: 0; border-left: 0; }
  .ge-seg ul { grid-template-columns: 1fr 1fr; row-gap: 1rem; }
  .ge-seg li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 860px) {
  .ge-niveis { grid-template-columns: 1fr; gap: 2rem; }
  .ge-niveis::before { display: none; }
  .ge-painel, .ge-dados { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .ge-papel { grid-template-columns: 1fr; }
  .ge-phones { grid-template-columns: 1fr; justify-items: center; }
  .ge-phones .ge-cap:first-child { order: 0; } .ge-phones .ge-cap:last-child { order: 0; }
  .ge-com, .ge-seg ul { grid-template-columns: 1fr; }
  .ge-com li, .ge-seg li { padding-left: 0 !important; border-left: 0 !important; }
  .ge-fluxo li { min-width: 0; width: 100%; }
  .ge-pilar-n { font-size: 2.6rem; }
  .ui-grid { grid-template-columns: 1fr 1fr; }
  .ui-map { grid-column: 1 / -1; }
  .ui-alerts { grid-column: 1 / -1; }
  .ui-line { display: none; }
}
.qs-ic .ig { width: 2.75rem; height: 2.75rem; }
.qs-ic.lg .ig { width: 3.6rem; height: 3.6rem; }
.qs-ic.sm .ig { width: 2rem; height: 2rem; }
@media (min-width: 861px) { .ge-painel { grid-template-columns: 1fr 1.1fr; } }
.ge-painel h2 { font-size: clamp(1.8rem, 2.9vw, 2.5rem); }
@media (max-width: 860px) { .dev-base { margin: 0 -3%; } .dev-laptop { padding-inline: 3%; } }
@media (max-width: 560px) {
  .ge-niveis { gap: 1rem; text-align: left; }
  .ge-niveis li { grid-template-columns: auto 1fr; justify-items: start; column-gap: 1rem; align-items: center; }
  .ge-niveis li::after { display: none; }
  .ge-niveis .qs-ic.lg { grid-row: span 2; width: 4rem; height: 4rem; box-shadow: none; }
  .ge-niveis .qs-ic.lg .ig { width: 2.6rem; height: 2.6rem; }
  .ge-niveis h3 { margin: 0; font-size: 1.15rem; align-self: end; }
  .ge-niveis p { align-self: start; font-size: .95rem; }
  .ge-perfis { grid-template-columns: 1fr 1fr !important; gap: .6rem !important; }
  .ge-perfis .qs-card { flex-direction: column; align-items: flex-start; gap: .55rem; padding: .9rem; }
  .ge-perfis .qs-ic { width: 3rem; height: 3rem; }
  .ge-perfis .qs-ic .ig { width: 2rem; height: 2rem; }
  .ge-perfis h3 { font-size: 1rem; }
  .ge-perfis p { font-size: .86rem; }
}

/* =========================== FORMAR =========================== */
.fi { width: 1.6rem; height: 1.6rem; fill: none; stroke: #144D32; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.fi.amb { stroke: var(--ambar); }
.qs-ic .fi { width: 2.3rem; height: 2.3rem; }

.fo-publico { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); text-align: center; }
.fo-publico li { display: grid; justify-items: center; gap: .35rem; padding: 0 .75rem; }
.fo-publico li + li { border-left: 1px solid var(--linha); }
.fo-publico .qs-ic { width: 4.5rem; height: 4.5rem; margin-bottom: .3rem; }
.fo-publico h3 { font-size: 1.1rem; }
.fo-publico p { color: var(--tinta-2); font-size: .93rem; line-height: 1.4; }

.fo-trilha { background: var(--branco); border: 1px solid var(--linha); border-top: 5px solid var(--c); border-radius: var(--r); padding: 1.1rem 1.3rem 1.2rem; display: grid; gap: .35rem; align-content: start; }
.fo-trilha .pill { justify-self: start; }
.fo-trilha h3 { font-size: 1.15rem; margin-top: .35rem; }
.fo-trilha p { color: var(--tinta-2); font-size: .95rem; }
.fo-trilha .link-seta { margin-top: .35rem; justify-self: start; font-size: .95rem; }
.c-oliva { --c: #405834; } .c-noite { --c: #1F3A5A; } .c-ambar { --c: #EC9C00; }
.c-terra { --c: #C8734A; } .c-verde { --c: #7FA36A; } .c-areia { --c: #B89B5E; }

.fo-jornada { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.fo-jornada h2 { margin-bottom: 1rem; }
.fo-txt { color: var(--tinta-2); font-size: 1.05rem; margin-bottom: 1.5rem; max-width: 36rem; }
.fo-passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.fo-passos li { display: grid; justify-items: center; text-align: center; gap: .5rem; font-weight: 600; font-size: .9rem; color: var(--noite); position: relative; }
.fo-passos li + li::before { content: '→'; position: absolute; left: -.6rem; top: 1.45rem; color: #2E6B45; font-weight: 700; font-size: 1.2rem; }
.fo-passos .qs-ic { width: 4rem; height: 4rem; }
.fo-passos .qs-ic .fi { width: 2rem; height: 2rem; }
.fo-chips { list-style: none; margin: 1.75rem 0 0; padding: .9rem 1rem; display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem 2.5rem; background: var(--creme); border-radius: var(--r); }
.fo-chips li { display: flex; align-items: center; gap: .55rem; font-weight: 600; color: var(--noite); background: var(--branco); padding: .5rem 1rem; border-radius: 999px; border: 1px solid var(--linha); }
.fo-chips li .fi { width: 1.3rem; height: 1.3rem; }
.fo-chips.sm { justify-content: flex-start; background: none; padding: 0; margin: 0 0 1.5rem; gap: .6rem; }

/* telas da plataforma */
.fo-screen { display: grid; grid-template-columns: 2.4rem 1fr; gap: .6rem; padding: .6rem; }
.fo-side { display: grid; gap: .45rem; align-content: start; padding-top: .3rem; }
.fo-side i { height: .45rem; border-radius: 3px; background: #E6EAEE; }
.fo-side i:first-child { height: 1.1rem; background: #EEF1F4; }
.fo-main { display: grid; gap: .55rem; align-content: start; font-size: .68rem; }
.fo-main small { color: #5B6775; font-size: .6rem; display: block; }
.fo-row { display: flex; justify-content: space-between; gap: .6rem; align-items: flex-start; }
.fo-row b { font-size: .85rem; display: block; margin-bottom: .15rem; }
.fo-prog { background: #F6F8FA; border-radius: .45rem; padding: .4rem .55rem; min-width: 45%; }
.ui-prog.g i { background: #2E8B57; }
.fo-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; }
.fo-tile { border-radius: .45rem; padding: .55rem .5rem .45rem; display: grid; justify-items: center; gap: .35rem; font-size: .6rem; font-weight: 600; color: var(--noite); }
.fo-tile .fi { width: 1.7rem; height: 1.7rem; stroke: var(--noite); }
.t-oliva { background: #D5E3CC; } .t-noite { background: #CFDCEB; } .t-ambar { background: #FBE2A6; }
.t-terra { background: #F2D2C1; } .t-verde { background: #DDE9D3; } .t-areia { background: #EDE3CC; }
.fo-curso-t { font-size: .82rem; }
.fo-video { position: relative; border-radius: .45rem; overflow: hidden; aspect-ratio: 16/8.5; }
.fo-video img { width: 100%; height: 100%; object-fit: cover; }
.fo-play { position: absolute; left: .5rem; bottom: .4rem; color: #fff; font-size: .7rem; text-shadow: 0 1px 3px rgba(0,0,0,.6); }
.fo-devs { position: relative; padding-right: 4.5rem; }
.fo-devs .dev-laptop { max-width: 34rem; }
.fo-phone { position: absolute; right: 0; bottom: -.4rem; width: 9.5rem; padding: .4rem; border-radius: 1.5rem; }
.fo-phone .ui-ph { min-height: 15rem; border-radius: 1.15rem; padding: .7rem .65rem; }
.fo-medals { display: flex; gap: .5rem; justify-content: center; }
.fo-medals i { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: #FBE2A6; display: grid; place-items: center; }
.fo-medals .fi { width: 1.5rem; height: 1.5rem; stroke: #B26B00; }

.fo-ritmo { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.fo-ritmo h2 { color: var(--creme); margin-bottom: 1.75rem; }
.fo-ritmo-l { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); }
.fo-ritmo-l li { display: grid; justify-items: center; text-align: center; gap: .55rem; color: var(--creme); font-size: .9rem; line-height: 1.3; padding: 0 .4rem; }
.fo-ritmo-l li + li { border-left: 1px solid rgba(255,255,255,.15); }
.fo-ritmo-l .fi { width: 2.3rem; height: 2.3rem; }

.cu-prof h2 { margin-bottom: .9rem; }
.fo-form { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; }
.fo-form input { padding: .95rem 1rem; border-radius: var(--r-sm); border: 1px solid #E4C978; font: inherit; min-width: 17rem; background: #fff; }
.fo-form-msg { flex-basis: 100%; font-size: .9rem; color: #6B4700; min-height: 1.2em; margin: 0; }

@media (max-width: 1100px) {
  .fo-publico { grid-template-columns: repeat(3, 1fr); row-gap: 1.5rem; }
  .fo-publico li:nth-child(4) { border-left: 0; }
  .fo-ritmo { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .fo-jornada { grid-template-columns: 1fr; }
  .fo-ritmo-l { grid-template-columns: repeat(3, 1fr); row-gap: 1.25rem; }
  .fo-ritmo-l li:nth-child(4) { border-left: 0; }
}
@media (max-width: 560px) {
  .fo-publico { grid-template-columns: 1fr 1fr; gap: 1.25rem .5rem; }
  .fo-publico li { border-left: 0 !important; padding: 0; }
  .fo-publico li:last-child { grid-column: 1 / -1; }
  .fo-publico .qs-ic { width: 3.6rem; height: 3.6rem; }
  .fo-trilhas, .cu-grid3 { gap: .6rem; }
  .fo-passos { grid-template-columns: 1fr 1fr; row-gap: 1rem; }
  .fo-passos li:nth-child(3)::before { display: none; }
  .fo-chips { gap: .5rem; }
  .fo-devs { padding-right: 0; padding-bottom: 1rem; }
  .fo-phone { width: 7.5rem; right: -.3rem; }
  .fo-phone .ui-ph { min-height: 12rem; }
  .fo-ritmo-l { grid-template-columns: 1fr 1fr; }
  .fo-ritmo-l li { border-left: 0 !important; }
  .fo-ritmo-l li:last-child { grid-column: 1 / -1; }
  .fo-form { width: 100%; }
  .fo-form input { min-width: 0; flex: 1 1 100%; }
  .fo-form .btn { width: 100%; }
}
.fo-video { aspect-ratio: 16/8; }
.fo-video img { object-position: center 30%; }
.fo-devs { padding-right: 6rem; }
.fo-phone { right: -.5rem; }
@media (min-width: 1101px) { .fo-ritmo { grid-template-columns: 1fr 1.15fr; align-items: center; } }
.fo-ritmo-l li { font-size: .88rem; }
@media (max-width: 560px) {
  #trilhas .cu-grid3 { grid-template-columns: 1fr 1fr; }
  .fo-trilha { padding: .85rem .8rem .9rem; }
  .fo-trilha h3 { font-size: 1rem; }
  .fo-trilha p { font-size: .85rem; }
  .fo-trilha .link-seta { font-size: .82rem; }
  .fo-devs { padding-right: 3.5rem; }
}
@media (max-width: 400px) { .fo-phone { right: 0; width: 6.8rem; } .fo-devs { padding-right: 3rem; } .fo-chips li { font-size: .9rem; } }
.fo-jornada > div, .fo-ritmo > div { min-width: 0; } .fo-passos { min-width: 0; } @media (max-width: 400px) { .fo-passos li { font-size: .82rem; } }
.fo-main, .fo-screen > * { min-width: 0; } .fo-tile span { overflow-wrap: anywhere; text-align: center; } @media (max-width: 400px) { .fo-tile { font-size: .52rem; padding: .45rem .2rem; } .fo-screen { grid-template-columns: 1.4rem 1fr; } }

/* =========================== INOVAR =========================== */
.iv { width: 1.6rem; height: 1.6rem; color: #2F6041; flex: none; }
.iv.claro { color: var(--creme); }
.qs-ic .iv { width: 2.5rem; height: 2.5rem; }
.btn-contorno-claro { border-color: rgba(251,246,236,.7); color: var(--creme); background: transparent; }
.btn-contorno-claro:hover { background: var(--creme); color: var(--noite); }

.in-hero { padding-top: clamp(1.5rem, 3vw, 2.25rem); }
.in-hero .crumbs, .in-hero .crumbs a { color: #A9C79A; }
.in-hero h1 { color: var(--creme); }
.in-hero .lead { color: #C9D2DC; }
.in-hero .qs-hero-img { border: 1px solid rgba(255,255,255,.12); }
.in-hero .qs-hero-grid { padding-bottom: clamp(2rem, 4vw, 2.75rem); }
.in-creds { border-top: 1px solid rgba(255,255,255,.1); background: var(--noite-2); }
.in-creds ul { list-style: none; margin-block: 0; padding-block: 1.1rem; display: grid; grid-template-columns: repeat(3, 1fr); }
.in-creds li { display: flex; align-items: center; gap: .9rem; color: var(--creme); font-size: .97rem; padding: .2rem 1.25rem; }
.in-creds li:first-child { padding-left: 0; }
.in-creds li + li { border-left: 1px solid rgba(255,255,255,.15); }
.in-creds .iv { width: 2rem; height: 2rem; }

.in-escola { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.in-escola h2 { margin-bottom: .9rem; }
.in-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.in-tags li { border: 1px solid #C9BFA9; border-radius: 999px; padding: .4rem .95rem; font-weight: 600; font-size: .92rem; color: var(--noite); background: var(--creme); }
.in-links { display: grid; gap: 1rem; padding-left: clamp(1rem, 3vw, 2.5rem); border-left: 1px solid var(--linha); }
.in-links .qs-card { flex: none; }

.in-progs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.in-prog { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); overflow: hidden; text-decoration: none; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.in-prog:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
.in-prog img { width: 100%; aspect-ratio: 16/7.5; object-fit: cover; }
.in-prog > div { padding: 0 1.5rem 1.4rem; display: grid; gap: .45rem; margin-top: -.9rem; position: relative; }
.in-prog .pill { justify-self: start; box-shadow: 0 2px 6px rgba(4,20,36,.12); }
.in-prog h3 { font-size: 1.45rem; margin-top: .2rem; }
.in-prog p { color: var(--tinta-2); }
.in-prog .link-seta { justify-self: start; margin-top: .2rem; }

.in-lei { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.in-lei h2 { color: var(--creme); margin-bottom: 1rem; }
.in-lei-txt { color: #C9D2DC; }
.in-tl { grid-template-columns: repeat(3, 1fr); }
.in-tl::before { left: 16.6%; right: 16.6%; }
.in-tl .num { box-shadow: 0 0 0 6px var(--noite); }
.in-tl h3 { font-size: 1.1rem !important; }
.in-tl p { color: #C9D2DC !important; font-size: .93rem; }
.in-lei-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem 2rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.12); }
.in-lei-foot p { color: #AEB9C5; font-size: .9rem; max-width: 46rem; }

.in-pub { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.in-instrs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.in-instr { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.25rem; display: grid; gap: .6rem; align-content: start; }
.in-instr h3 { font-size: 1.12rem; }
.in-instr p { color: var(--tinta-2); font-size: .92rem; }
.in-nota { font-size: .9rem; color: var(--tinta-2); margin-top: 1rem; }
.in-abord { border-left: 1px solid var(--linha); padding-left: clamp(1rem, 3vw, 2.5rem); }
.in-abord h3 { font-size: 1.3rem; margin-bottom: 1rem; }
.in-abord ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.in-abord li { display: flex; align-items: center; gap: .85rem; color: var(--tinta-2); }
.in-abord .iv { width: 1.8rem; height: 1.8rem; }

.in-princ { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.in-princ .qs-card { flex: none; padding: 1.1rem 1.2rem; }
.in-princ .qs-ic { width: 3.6rem; height: 3.6rem; }
.in-princ .qs-ic .iv { width: 2.1rem; height: 2.1rem; }

@media (max-width: 1100px) {
  .in-princ { grid-template-columns: 1fr 1fr; }
  .in-pub { grid-template-columns: 1fr; }
  .in-abord { border-left: 0; padding-left: 0; }
}
@media (max-width: 860px) {
  .in-creds ul { grid-template-columns: 1fr; gap: .5rem; }
  .in-creds li, .in-creds li:first-child { padding: 0; border-left: 0 !important; }
  .in-escola, .in-progs, .in-lei { grid-template-columns: 1fr; }
  .in-links { border-left: 0; padding-left: 0; }
  .in-tl { grid-template-columns: 1fr; gap: 1.25rem; text-align: left; }
  .in-tl::before { display: none; }
  .in-tl li { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; text-align: left; }
  .in-tl .num { grid-row: span 2; margin: 0; }
  .in-tl p { max-width: none; margin: 0; }
}
@media (max-width: 560px) {
  .in-instrs { grid-template-columns: 1fr; gap: .6rem; }
  .in-instr { grid-template-columns: auto 1fr; column-gap: 1rem; align-items: center; }
  .in-instr .qs-ic { grid-row: span 2; width: 3.4rem; height: 3.4rem; }
  .in-princ { grid-template-columns: 1fr; gap: .6rem; }
  .in-prog h3 { font-size: 1.2rem; }
}
.qs-ic .iv { width: 3.2rem; height: 3.2rem; }
.in-princ .qs-ic .iv { width: 2.8rem; height: 2.8rem; }
.in-abord .iv { width: 2.3rem; height: 2.3rem; }
.in-creds .iv { width: 2.4rem; height: 2.4rem; }
.in-hero h1 { margin-bottom: 1rem; }
.in-cta h2 { font-size: clamp(1.6rem, 2.8vw, 2.25rem); }
@media (max-width: 560px) {
  .in-comp { grid-template-columns: 1fr 1fr !important; gap: .6rem !important; }
  .in-comp .qs-card { flex-direction: column; align-items: flex-start; gap: .5rem; padding: .9rem; }
  .in-comp .qs-ic { width: 3rem; height: 3rem; }
  .in-comp .qs-ic .iv { width: 2.3rem; height: 2.3rem; }
  .in-comp h3 { font-size: 1rem; }
  .in-comp p { font-size: .86rem; }
  .in-princ { grid-template-columns: 1fr 1fr; }
  .in-princ .qs-card { flex-direction: column; align-items: flex-start; gap: .5rem; padding: .9rem; }
  .in-princ .qs-ic { width: 3rem; height: 3rem; }
  .in-princ h3 { font-size: 1rem; } .in-princ p { font-size: .86rem; }
}
@media (min-width: 1101px) { #t-resp { font-size: clamp(1.7rem, 2.6vw, 2.3rem); } }
