/* =============================================================
   Labsa – Soluções em Saúde · folha de estilo principal
   Mobile-first. Tokens da marca em :root.
   ============================================================= */
:root {
  --marinho: #001D7E;
  --marinho-escuro: #0A1230;
  --marinho-medio: #0B3AA8;
  --azul: #009BDB;
  --azul-claro: #7FD3F7;
  --azul-nevoa: #EAF6FD;
  --nevoa: #F3F7FC;
  --borda: #E1E9F3;
  --borda-clara: #E6EDF6;
  --texto: #16213A;
  --texto-suave: #4B5670;
  --texto-cinza: #6B7690;
  --branco: #ffffff;
  --verde-wa: #25D366;
  --container: 1280px;
  --raio: 16px;
  --raio-g: 28px;
  --sombra: 0 24px 60px rgba(0, 29, 126, 0.16);
  --fonte-titulo: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --fonte-texto: 'Manrope', system-ui, -apple-system, sans-serif;
  --topo-altura: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--fonte-texto); color: var(--texto); background: var(--branco); line-height: 1.6; font-size: 16px; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--azul); text-decoration: none; }
a:hover { color: var(--marinho); }
h1, h2, h3, h4 { font-family: var(--fonte-titulo); color: var(--marinho); letter-spacing: -0.025em; line-height: 1.1; margin: 0; font-weight: 800; }
p { margin: 0; }
button { font: inherit; cursor: pointer; }
.wrap { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.pular { position: absolute; left: -999px; top: 8px; background: var(--marinho); color: #fff; padding: 8px 12px; border-radius: 8px; z-index: 100; }
.pular:focus { left: 8px; }

/* ---------- Botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 46px; padding: 0 20px; border-radius: 12px; font-weight: 700; font-size: 14px; border: 1.5px solid transparent; transition: transform .2s, background .2s, color .2s, border-color .2s; white-space: nowrap; }
.btn:hover { transform: translateY(-1px); }
.btn--g { height: 56px; padding: 0 24px; font-size: 16px; border-radius: 14px; }
.btn--marinho { background: var(--marinho); color: #fff; }
.btn--marinho:hover { background: var(--marinho-medio); color: #fff; }
.btn--azul { background: var(--azul); color: #fff; }
.btn--azul:hover { background: var(--marinho); color: #fff; }
.btn--branco { background: #fff; color: var(--marinho); }
.btn--branco:hover { background: var(--azul-nevoa); color: var(--marinho); }
.btn--contorno { border-color: rgba(255,255,255,.55); color: #fff; }
.btn--contorno:hover { background: rgba(255,255,255,.12); color: #fff; }
.btn--contorno-marinho { border-color: var(--marinho); color: var(--marinho); background: transparent; }
.btn--contorno-marinho:hover { background: var(--marinho); color: #fff; }
.btn--fantasma { border-color: var(--borda); color: var(--texto); background: #fff; }
.btn--icone { width: 46px; padding: 0; border-color: #D5DEEA; color: var(--marinho); background: #fff; }
.btn__ico { width: 32px; height: 32px; border-radius: 8px; background: var(--azul-nevoa); display: inline-flex; align-items: center; justify-content: center; }
.btn__ico--claro { background: rgba(255,255,255,.18); }
.link-seta { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 15px; color: var(--marinho); }
.link-seta:hover { color: var(--azul); }

/* ---------- Cabeçalho ---------- */
.topo { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--borda-clara); }
.topo__wrap { height: var(--topo-altura); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.marca { display: flex; align-items: center; gap: 10px; }
.marca__logo, .marca img { height: 40px; width: auto; }
.marca__fio { width: 1.5px; height: 28px; background: var(--azul); }
.marca__slogan { font-family: var(--fonte-titulo); font-size: 11px; font-weight: 700; line-height: 1.15; color: var(--marinho); white-space: nowrap; }
.marca--branca .marca__slogan { color: #9CD9F5; }
.topo__acoes { display: flex; align-items: center; gap: 8px; }
.topo__cta { display: none; }
.menu { display: none; }
.menu__cta-mobile { display: none; }
.menu__abrir { display: inline-flex; }
/* menu mobile (painel) */
.menu.aberto { display: flex; flex-direction: column; position: fixed; inset: var(--topo-altura) 0 0 0; background: #fff; padding: 24px 20px; gap: 6px; z-index: 49; overflow: auto; }
.menu.aberto a { padding: 14px 12px; border-radius: 12px; font-weight: 700; font-size: 17px; color: var(--texto); }
.menu.aberto a:hover { background: var(--nevoa); }
.menu.aberto .menu__cta-mobile { display: inline-flex; margin-top: 12px; color: #fff; justify-content: center; }
body.menu-aberto { overflow: hidden; }

/* ---------- Rótulos e títulos de seção ---------- */
.rotulo { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--azul); }
.rotulo img { height: 18px; width: auto; }
.rotulo--claro { color: var(--azul-claro); }
.barra { display: block; width: 48px; height: 4px; border-radius: 3px; background: var(--azul); }
.cab { display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; }
.cab h2 { font-size: clamp(28px, 4.2vw, 50px); }
.cab p { font-size: 17px; color: var(--texto-suave); max-width: 640px; }
.cab--centro { align-items: center; text-align: center; }
.cab--linha { gap: 20px; }
.cab--linha > div { display: flex; flex-direction: column; gap: 12px; }
.cab--linha h2 { max-width: 820px; }
.secao { padding: 56px 0; }
.secao--nevoa { background: var(--nevoa); }
.secao--marinho { background: var(--marinho); color: #fff; }
.secao--marinho h2 { color: #fff; }
.secao--marinho p { color: #C9DAF0; }
.secao--sem-topo { padding-top: 0; }

/* ---------- Hero / carrossel ---------- */
.hero { position: relative; background: var(--marinho); overflow: hidden; }
.hero__slides { position: relative; min-height: 600px; }
.hero__slide { position: absolute; inset: 0; display: flex; align-items: flex-end; opacity: 0; transition: opacity .8s ease; pointer-events: none; }
.hero__slide.ativo { opacity: 1; pointer-events: auto; position: relative; }
.hero__foto, .hero__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.hero__veu { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,29,126,.2) 0%, rgba(0,29,126,.88) 50%, rgba(0,29,126,.98) 100%); }
.hero__simbolo { position: absolute; right: -60px; top: 20px; width: 260px; opacity: .14; pointer-events: none; }
.hero__conteudo { position: relative; padding-top: 80px; padding-bottom: 88px; display: flex; flex-direction: column; gap: 14px; }
.hero__titulo { font-family: var(--fonte-titulo); font-size: clamp(32px, 4.6vw, 62px); line-height: 1.06; font-weight: 800; color: #fff; letter-spacing: -.025em; max-width: 780px; margin: 0; }
.hero__texto { font-size: 15px; line-height: 1.5; color: #D7E6F5; max-width: 580px; }
.hero__botoes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 8px; }
.hero__botoes .btn { height: 54px; padding: 0 12px; font-size: 14px; }
.hero__botoes .btn--contorno { grid-column: 1 / -1; }
.hero__controles { position: absolute; left: 0; right: 0; bottom: 22px; display: flex; align-items: center; justify-content: space-between; }
.hero__pontos { display: flex; align-items: center; gap: 6px; }
.hero__ponto { width: 6px; height: 6px; border-radius: 3px; border: 0; background: rgba(255,255,255,.45); padding: 0; transition: width .3s, background .3s; }
.hero__ponto.ativo { width: 24px; background: #fff; }
.hero__contador { margin-left: 10px; font-size: 12px; font-weight: 600; color: rgba(255,255,255,.7); }
.hero__setas { display: none; gap: 10px; }
.hero__seta { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5); background: rgba(255,255,255,.08); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.hero__seta:hover { background: rgba(255,255,255,.2); }

/* ---------- Escolha de linha ---------- */
.linhas { display: grid; grid-template-columns: 1fr; gap: 18px; }
.linha { position: relative; min-height: 400px; border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; background: #001D7E; box-shadow: var(--sombra); transition: transform .3s; }
.linha:hover { transform: translateY(-4px); color: #fff; }
.linha__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.linha:hover .linha__foto { transform: scale(1.04); }
.linha::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,29,126,.05) 0%, rgba(0,29,126,.58) 45%, rgba(0,29,126,.96) 100%); }
.linha__ico { position: absolute; top: 18px; left: 18px; z-index: 2; width: 52px; height: 52px; border-radius: 14px; background: #fff; display: flex; align-items: center; justify-content: center; }
.linha__txt { position: relative; z-index: 2; padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.linha__rotulo { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--azul-claro); }
.linha h3 { color: #fff; font-size: clamp(24px, 3vw, 38px); }
.linha p { font-size: 15px; line-height: 1.5; color: #D7E6F5; max-width: 520px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips span { padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.25); font-size: 12px; font-weight: 600; }
.linha .btn { align-self: flex-start; margin-top: 6px; }

/* ---------- Quem somos ---------- */
.quem { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: center; }
.quem__marca { position: relative; overflow: hidden; border-radius: 22px; background: var(--nevoa); border: 1px solid var(--borda); min-height: 240px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 28px; }
.quem__simbolo { position: absolute; right: -70px; top: -60px; width: 300px; opacity: .08; }
.quem__logo { width: 170px; position: relative; }
.quem__marca > span { position: relative; font-family: var(--fonte-titulo); font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--azul); }
.quem__txt { display: flex; flex-direction: column; gap: 16px; }
.quem__txt h2 { font-size: clamp(28px, 3.6vw, 46px); }
.quem__txt p { font-size: 17px; line-height: 1.65; color: var(--texto-suave); }
.numeros { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 36px; }
.numero { padding: 22px; border-radius: 18px; background: var(--nevoa); display: flex; flex-direction: column; gap: 6px; }
.numero b { font-family: var(--fonte-titulo); font-size: clamp(32px, 4vw, 52px); font-weight: 800; color: var(--marinho); letter-spacing: -.03em; line-height: 1; }
.numero span { font-size: 14px; font-weight: 600; color: var(--texto-suave); }
.numero--marinho { background: var(--marinho); }
.numero--marinho b { color: #fff; }
.numero--marinho span { color: #C9DAF0; }

/* ---------- Área de atuação / mapa ---------- */
.atuacao { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: center; }
.atuacao__txt { display: flex; flex-direction: column; gap: 16px; }
.atuacao__txt h2 { font-size: clamp(28px, 3.6vw, 46px); }
.atuacao__txt p { font-size: 17px; line-height: 1.65; color: var(--texto-suave); }
.unidades { display: flex; flex-direction: column; gap: 10px; }
.unidade { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--borda); }
.unidade__uf { width: 38px; height: 38px; border-radius: 10px; background: var(--azul); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; flex-shrink: 0; }
.unidade__uf--marinho { background: var(--marinho); }
.unidade div { display: flex; flex-direction: column; line-height: 1.3; }
.unidade b { font-size: 15px; }
.unidade small { font-size: 13px; color: var(--texto-cinza); }
.mapa { padding: 18px; border-radius: 22px; background: #fff; border: 1px solid var(--borda); display: flex; flex-direction: column; gap: 14px; }
.mapa svg { width: 100%; height: auto; }
.mapa__uf { stroke: #fff; stroke-width: 1.5; stroke-linejoin: round; transition: fill .3s; }
.mapa__uf--matriz { fill: var(--marinho); }
.mapa__uf--atuante { fill: var(--azul); }
.mapa__uf--expansao { fill: url(#gradExp); }
.mapa__uf--atuante:hover { fill: var(--marinho-medio); }
.mapa__pino circle { fill: #fff; stroke: var(--marinho); stroke-width: 3; }
.mapa__pino .mapa__pino-centro { fill: var(--marinho); stroke: none; }
.mapa__pino text { font-family: var(--fonte-texto); font-size: 12px; font-weight: 800; fill: var(--marinho); paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.mapa__nome { font-family: var(--fonte-texto); font-size: 10px; font-weight: 700; fill: #4B7BB0; letter-spacing: 1px; }
.mapa__nome--claro { fill: rgba(255,255,255,.75); font-size: 11px; }
.mapa__legenda { display: flex; flex-wrap: wrap; gap: 10px 18px; font-size: 12px; font-weight: 600; color: var(--texto-suave); border-top: 1px solid var(--borda-clara); padding-top: 14px; }
.mapa__legenda span { display: flex; align-items: center; gap: 7px; }
.leg { width: 13px; height: 13px; border-radius: 4px; display: inline-block; }
.leg--marinho { background: var(--marinho); }
.leg--azul { background: var(--azul); }
.leg--exp { background: linear-gradient(135deg, #DCEBF7, #B9DCF2); border: 1px solid #C5DCEE; }

/* ---------- Serviços ---------- */
.servicos { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: center; }
.servicos__foto { position: relative; border-radius: 22px; overflow: hidden; }
.servicos__foto img { width: 100%; height: 300px; object-fit: cover; }
.servicos__selo { position: absolute; left: 16px; right: 16px; bottom: 16px; padding: 14px 16px; border-radius: 14px; background: rgba(0,29,126,.88); display: flex; flex-direction: column; gap: 2px; }
.servicos__selo span { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--azul-claro); }
.servicos__selo b { font-size: 16px; color: #fff; }
.servicos__txt { display: flex; flex-direction: column; gap: 18px; }
.servicos__txt h2 { font-size: clamp(28px, 3.6vw, 46px); }
.servicos__txt p { font-size: 17px; line-height: 1.65; }
.servicos__cards { display: grid; grid-template-columns: 1fr; gap: 12px; }
.servico { padding: 18px; border-radius: 16px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); display: flex; flex-direction: column; gap: 8px; }
.servico b { font-size: 16px; }
.servico span { font-size: 14px; line-height: 1.5; color: #C9DAF0; }
.servicos__txt .btn { align-self: flex-start; }

/* ---------- Marcas ---------- */
.marcas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.parceiro { height: 84px; border-radius: 16px; border: 1px solid var(--borda-clara); display: flex; align-items: center; justify-content: center; background: #fff; transition: border-color .3s, box-shadow .3s; }
.parceiro img { max-height: 48px; max-width: 70%; width: auto; filter: grayscale(1); opacity: .55; transition: filter .3s, opacity .3s; }
.parceiro:hover { border-color: var(--azul); box-shadow: 0 10px 30px rgba(0,29,126,.08); }
.parceiro:hover img { filter: none; opacity: 1; }
.parceiro__nome { font-family: var(--fonte-titulo); font-weight: 800; font-size: 18px; color: #9AA5B8; transition: color .3s; }
.parceiro:hover .parceiro__nome { color: var(--marinho); }

/* ---------- Clientes ---------- */
.contadores { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 20px; }
.contador { padding: 20px; border-radius: 18px; background: #fff; border: 1px solid var(--borda); display: flex; flex-direction: column; gap: 4px; }
.contador b { font-family: var(--fonte-titulo); font-size: clamp(30px, 3.4vw, 40px); font-weight: 800; color: var(--marinho); line-height: 1; }
.contador span { font-size: 14px; font-weight: 600; color: var(--texto-suave); }
.contador--marinho { background: var(--marinho); border-color: var(--marinho); }
.contador--marinho b { color: #fff; }
.contador--marinho span { color: #C9DAF0; }
.depoimentos { display: grid; grid-template-columns: 1fr; gap: 16px; }
.depoimento { margin: 0; padding: 26px; border-radius: 22px; background: #fff; border: 1px solid var(--borda); display: flex; flex-direction: column; gap: 16px; }
.depoimento__aspas { font-family: var(--fonte-titulo); font-size: 52px; line-height: .6; color: var(--azul); font-weight: 800; }
.depoimento blockquote { margin: 0; font-size: 16px; line-height: 1.65; }
.depoimento figcaption { display: flex; flex-direction: column; gap: 2px; }
.depoimento figcaption b { font-size: 14px; color: var(--marinho); }
.depoimento figcaption span { font-size: 13px; color: var(--texto-cinza); }

/* ---------- Blog ---------- */
.posts { display: grid; grid-template-columns: 1fr; gap: 22px; }
.post { display: flex; flex-direction: column; gap: 12px; color: var(--texto); }
.post img { width: 100%; height: 200px; object-fit: cover; border-radius: 18px; transition: transform .4s; }
.post:hover img { transform: translateY(-3px); }
.post__cat { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--azul); }
.post h3 { font-size: 20px; line-height: 1.3; font-weight: 700; }
.post__meta { font-size: 13px; color: var(--texto-cinza); }

/* ---------- Contato ---------- */
.contato { position: relative; overflow: hidden; padding: 36px 24px; border-radius: 24px; background: linear-gradient(120deg, var(--marinho) 0%, var(--marinho-medio) 60%, var(--azul) 100%); color: #fff; display: grid; grid-template-columns: 1fr; gap: 24px; }
.contato__simbolo { position: absolute; left: -60px; bottom: -110px; width: 360px; opacity: .14; pointer-events: none; }
.contato__txt { position: relative; display: flex; flex-direction: column; gap: 12px; }
.contato h2 { color: #fff; font-size: clamp(26px, 3.2vw, 40px); }
.contato p { color: #D7E6F5; font-size: 16px; }
.canais { position: relative; display: flex; flex-direction: column; gap: 10px; }
.canal { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); color: #fff; transition: background .2s; }
.canal:hover { background: rgba(255,255,255,.22); color: #fff; }
.canal > span { display: flex; flex-direction: column; gap: 2px; }
.canal b { font-size: 15px; }
.canal small { font-size: 13px; color: #D7E6F5; }
.canal__wa { width: 40px; height: 40px; border-radius: 50%; background: var(--verde-wa); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--marinho-escuro); color: #fff; padding: 48px 0 24px; }
.rodape__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
.rodape__marca { display: flex; flex-direction: column; gap: 16px; }
.rodape__marca .marca img { height: 44px; }
.rodape__marca p { font-size: 14px; line-height: 1.6; color: #A9B4CC; max-width: 340px; }
.rodape__social { display: flex; gap: 10px; }
.rodape__social a { width: 40px; height: 40px; border-radius: 10px; border: 1px solid rgba(255,255,255,.18); display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.rodape__social a:hover { background: rgba(255,255,255,.1); }
.rodape__col { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.rodape__col a { color: #E3E9F5; }
.rodape__col a:hover { color: var(--azul-claro); }
.rodape__titulo { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--azul-claro); margin-bottom: 4px; }
.rodape__unidade { color: #E3E9F5; line-height: 1.45; }
.rodape__unidade small { color: #A9B4CC; }
.rodape__email { color: var(--azul-claro) !important; }
.rodape__base { border-top: 1px solid rgba(255,255,255,.12); margin-top: 36px; padding-top: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: #A9B4CC; }
.rodape__base a { color: #A9B4CC; text-decoration: underline; }
.rodape__grupo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none !important; }
.rodape__grupo img { height: 34px; width: auto; }
.rodape__grupo:hover { opacity: 1; }

/* ---------- WhatsApp flutuante ---------- */
.wa-flutuante { position: fixed; right: 16px; bottom: 20px; z-index: 40; height: 54px; padding: 0 18px 0 14px; border-radius: 999px; background: var(--verde-wa); color: #fff; font-weight: 800; font-size: 14px; display: flex; align-items: center; gap: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.2); transition: transform .2s; }
.wa-flutuante:hover { transform: scale(1.04); color: #fff; }

/* ---------- Cookies ---------- */
.cookies { position: fixed; left: 16px; right: 16px; bottom: 88px; z-index: 60; background: #fff; border: 1px solid var(--borda); border-radius: 18px; padding: 18px; box-shadow: 0 16px 48px rgba(0,29,126,.18); display: flex; flex-direction: column; gap: 12px; font-size: 14px; color: var(--texto-suave); }
.cookies[hidden] { display: none; }
.cookies__acoes { display: flex; gap: 8px; }
.cookies__acoes .btn { height: 42px; flex: 1; }

/* ---------- Animação de entrada ---------- */
.rv { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.rv.visivel { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; transition: none; } .hero__slide { transition: none; } }

/* =============================================================
   Tablet (≥ 720px)
   ============================================================= */
@media (min-width: 720px) {
  .wrap { padding: 0 32px; }
  .secao { padding: 80px 0; }
  .hero__slides { min-height: 640px; }
  .hero__conteudo { padding-top: 40px; padding-bottom: 110px; min-height: 640px; justify-content: center; }
  .hero__slide { align-items: center; }
  .hero__texto { font-size: 18px; }
  .hero__botoes { display: flex; flex-wrap: wrap; }
  .hero__botoes .btn { height: 58px; padding: 0 24px; font-size: 16px; }
  .hero__botoes .btn--contorno { grid-column: auto; }
  .hero__setas { display: flex; }
  .hero__controles { bottom: 32px; }
  .hero__veu { background: linear-gradient(90deg, rgba(0,29,126,.94) 0%, rgba(0,29,126,.78) 45%, rgba(0,29,126,.18) 100%); }
  .hero__simbolo { right: -40px; top: auto; bottom: -120px; width: 620px; opacity: .16; }
  .linhas { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; } /* 2 linhas lado a lado; 3+ se acomodam */
  .linha { min-height: 520px; border-radius: var(--raio-g); }
  .linha__txt { padding: 32px; gap: 14px; }
  .linha__ico { top: 26px; left: 26px; width: 64px; height: 64px; border-radius: 18px; }
  .quem { grid-template-columns: 380px 1fr; gap: 56px; }
  .quem__marca { min-height: 380px; border-radius: var(--raio-g); }
  .quem__logo { width: 230px; }
  .numeros { grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 56px; }
  .numero { padding: 28px; }
  .atuacao { grid-template-columns: 1fr 1.15fr; gap: 48px; }
  .mapa { padding: 28px; border-radius: var(--raio-g); }
  .servicos { grid-template-columns: 1fr 1.25fr; gap: 56px; }
  .servicos__foto { border-radius: var(--raio-g); }
  .servicos__foto img { height: 520px; }
  .servicos__cards { grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .marcas { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .parceiro { height: 104px; border-radius: 18px; }
  .parceiro img { max-height: 60px; max-width: 72%; }
  .contadores { grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
  .depoimentos { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .posts { grid-template-columns: repeat(3, 1fr); }
  .post img { height: 220px; }
  .cab--linha { flex-direction: row; align-items: flex-end; justify-content: space-between; }
  .contato { grid-template-columns: 1.1fr 1fr; gap: 48px; padding: 56px 56px; border-radius: var(--raio-g); }
  .rodape__grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; }
  .rodape__base { flex-direction: row; justify-content: space-between; }
  .cookies { left: auto; right: 24px; bottom: 96px; max-width: 460px; }
  .wa-flutuante { right: 24px; bottom: 24px; }
}

/* =============================================================
   Desktop (≥ 1100px)
   ============================================================= */
@media (min-width: 1200px) {
  :root { --topo-altura: 96px; }
  .wrap { padding: 0 40px; }
  .secao { padding: 96px 0; }
  .marca__logo, .marca img { height: 56px; }
  .marca { gap: 16px; }
  .marca__fio { height: 40px; }
  .marca__slogan { font-size: 16px; }
  .menu { display: flex; align-items: center; gap: 20px; font-size: 14px; font-weight: 700; }
  .topo__wrap { gap: 24px; }
  .marca { flex-shrink: 0; }
  .menu a { color: var(--texto); position: relative; padding: 6px 0; white-space: nowrap; }
  .menu a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--azul); transform: scaleX(0); transition: transform .25s; }
  .menu a:hover::after, .menu a.ativo::after { transform: scaleX(1); }
  .menu a:hover { color: var(--marinho); }
  .menu__abrir { display: none; }
  .topo__cta { display: inline-flex; }
  .hero__slides { min-height: 680px; }
  .hero__conteudo { justify-content: center; padding-top: 0; padding-bottom: 0; min-height: 680px; gap: 22px; }
  .hero__slide { align-items: center; }
  .linha { min-height: 600px; }
  .linha__txt { padding: 40px; gap: 16px; }
  .quem { grid-template-columns: 420px 1fr; gap: 72px; }
  .quem__marca { min-height: 420px; }
  .quem__logo { width: 250px; }
  .quem__marca > span { font-size: 18px; }
  .atuacao { gap: 72px; }
  .servicos { gap: 72px; }
  .servicos__foto img { height: 560px; }
  .marcas { grid-template-columns: repeat(6, 1fr); }
  .rodape__marca .marca img { height: 52px; }
  .rodape__marca .marca__slogan { font-size: 15px; }
}

@media (min-width: 1300px) {
  .menu { gap: 28px; font-size: 15px; }
}

/* =============================================================
   Revisão 22/09 — menu com submenu, esteira de clientes, depoimentos,
   formulário de contato, rodapé
   ============================================================= */
/* Submenu Produtos */
.menu__grupo { position: relative; }
.menu__grupo-btn { display: flex; align-items: center; gap: 6px; background: none; border: 0; padding: 6px 0; font: inherit; font-weight: 700; color: var(--texto); cursor: pointer; }
.menu__grupo-btn svg { transition: transform .2s; }
.menu__sub { display: none; flex-direction: column; gap: 4px; }
.menu__sub a { display: flex; flex-direction: column; gap: 2px; }
.menu__sub b { font-size: 15px; color: var(--marinho); }
.menu__sub small { font-size: 12.5px; color: var(--texto-cinza); font-weight: 500; }
.menu.aberto .menu__grupo { display: flex; flex-direction: column; }
.menu.aberto .menu__grupo-btn { padding: 14px 12px; font-size: 17px; justify-content: space-between; }
.menu.aberto .menu__sub { display: flex; padding-left: 12px; }
.menu.aberto .menu__sub a { padding: 10px 12px; }
@media (min-width: 1200px) {
  .menu__grupo-btn { position: relative; }
  .menu__grupo-btn::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--azul); transform: scaleX(0); transition: transform .25s; }
  .menu__grupo:hover .menu__grupo-btn::after, .menu__grupo.ativo .menu__grupo-btn::after { transform: scaleX(1); }
  .menu__grupo:hover .menu__grupo-btn svg, .menu__grupo.aberto .menu__grupo-btn svg { transform: rotate(180deg); }
  .menu__sub { position: absolute; top: calc(100% + 14px); left: -16px; min-width: 320px; background: #fff; border: 1px solid var(--borda); border-radius: 16px; padding: 10px; box-shadow: 0 20px 50px rgba(0,29,126,.14); z-index: 60; }
  .menu__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
  .menu__grupo:hover .menu__sub, .menu__grupo.aberto .menu__sub, .menu__grupo:focus-within .menu__sub { display: flex; }
  .menu__sub a { padding: 12px 14px; border-radius: 12px; }
  .menu__sub a::after { display: none; }
  .menu__sub a:hover { background: var(--nevoa); }
}

/* Esteira de logos de clientes */
.esteira { overflow: hidden; margin: 8px 0 32px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.esteira__trilho { display: flex; gap: 16px; width: max-content; animation: esteira 40s linear infinite; }
.esteira:hover .esteira__trilho { animation-play-state: paused; }
.esteira__item { width: 190px; height: 96px; border-radius: 16px; background: #fff; border: 1px solid var(--borda); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.esteira__item img { max-height: 66px; max-width: 80%; width: auto; filter: grayscale(1); opacity: .6; transition: filter .3s, opacity .3s; }
.esteira__item:hover img { filter: none; opacity: 1; }
@keyframes esteira { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .esteira__trilho { animation: none; flex-wrap: wrap; width: auto; } }
.esteira-vazia { border: 1px dashed var(--borda); border-radius: 16px; padding: 22px; text-align: center; color: var(--texto-cinza); font-size: 14px; margin-bottom: 28px; }

/* Depoimentos em carrossel */
.depoimentos-carrossel { position: relative; }
.depoimentos-carrossel__trilho { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.depoimentos-carrossel__trilho::-webkit-scrollbar { display: none; }
.depoimentos-carrossel .depoimento { flex: 0 0 88%; scroll-snap-align: start; }
.depoimentos-carrossel__setas { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }
.hero__seta--escura { border-color: var(--borda); background: #fff; color: var(--marinho); }
@media (min-width: 720px) { .depoimentos-carrossel .depoimento { flex-basis: calc((100% - 40px) / 3); } .depoimentos-carrossel__trilho { gap: 20px; } }

/* Bloco de contato com formulário */
.contato { grid-template-columns: 1fr; }
.contato .rotulo { margin-bottom: 4px; }
.contato .canais { margin-top: 20px; }
.contato__form { position: relative; background: #fff; border-radius: 20px; padding: 22px; color: var(--texto); }
@media (min-width: 720px) { .contato { grid-template-columns: 1fr 1.05fr; align-items: start; } .contato__form { padding: 28px; } }

/* Formulário de lead */
.form-lead { display: flex; flex-direction: column; gap: 14px; }
.form-lead__cab h3 { font-size: 24px; margin-bottom: 6px; }
.form-lead__cab p { color: var(--texto-suave); font-size: 15px; }
.form-lead__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-lead__grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.form-lead label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 700; color: var(--texto); }
.form-lead input, .form-lead select, .form-lead textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--borda); border-radius: 12px; font: inherit; font-size: 15px; color: var(--texto); background: #fff; }
.form-lead input:focus, .form-lead select:focus, .form-lead textarea:focus { outline: 0; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0,155,219,.15); }
.form-lead textarea { resize: vertical; }
.form-lead__largo { grid-column: 1 / -1; }
.form-lead__consent { flex-direction: row !important; align-items: flex-start; gap: 10px !important; font-weight: 500 !important; font-size: 13px; color: var(--texto-suave); }
.form-lead__consent input { width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; }
.form-lead__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.form-lead__ou { font-size: 14px; color: var(--texto-suave); }
.form-lead__ou a { font-weight: 700; }
.form-lead .btn[disabled] { opacity: .6; transform: none; }
.aviso-site { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 12px; font-weight: 600; font-size: 14px; }
.aviso-site--ok { background: #E8F6EE; color: #1B8A4C; }
.aviso-site--erro { background: #FDECEC; color: #C62828; }
@media (min-width: 720px) { .form-lead__grid { grid-template-columns: 1fr 1fr; } }

/* Rodapé: redes e grupo DNA */
.rodape__redes { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.rodape__redes a { color: #A9B4CC; }
.rodape__redes a:hover { color: var(--azul-claro); }
.rodape__grupo { display: inline-flex; align-items: center; gap: 12px; color: #E3E9F5; font-weight: 600; }
.rodape__grupo-logo { display: inline-flex; align-items: center; background: #fff; border-radius: 10px; padding: 6px 12px; }
.rodape__grupo-logo img { height: 26px; width: auto; }

/* ---------- Páginas internas: cabeçalho de página ---------- */
.pagina-topo { position: relative; background: var(--marinho); color: #fff; overflow: hidden; }
.pagina-topo__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.pagina-topo__veu { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,29,126,.95) 0%, rgba(0,29,126,.8) 50%, rgba(0,29,126,.35) 100%); }
.pagina-topo__simbolo { position: absolute; right: -60px; bottom: -120px; width: 480px; opacity: .14; pointer-events: none; }
.pagina-topo__conteudo { position: relative; padding: 56px 20px 64px; display: flex; flex-direction: column; gap: 14px; min-height: 380px; justify-content: center; }
.pagina-topo h1 { color: #fff; font-size: clamp(30px, 4.4vw, 56px); max-width: 780px; }
.pagina-topo p { color: #D7E6F5; font-size: 17px; max-width: 620px; line-height: 1.55; }
.pagina-topo .barra { background: var(--azul-claro); }
.pagina-topo__botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.migalhas-site { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: #9CD9F5; }
.migalhas-site a { color: #9CD9F5; }
.migalhas-site a:hover { color: #fff; }
@media (min-width: 720px) { .pagina-topo__conteudo { padding: 72px 32px 80px; min-height: 440px; } }
@media (min-width: 1200px) { .pagina-topo__conteudo { padding: 88px 40px 96px; } }

/* ---------- Linha do tempo ---------- */
.tempo { position: relative; display: flex; flex-direction: column; gap: 28px; padding-left: 34px; }
.tempo::before { content: ""; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--azul), var(--marinho)); }
.marco { position: relative; }
.marco::before { content: ""; position: absolute; left: -34px; top: 6px; width: 25px; height: 25px; border-radius: 50%; background: #fff; border: 4px solid var(--azul); box-shadow: 0 0 0 4px #fff; }
.marco__ano { font-family: var(--fonte-titulo); font-size: 30px; font-weight: 800; color: var(--azul); line-height: 1; }
.marco h3 { font-size: 20px; margin: 6px 0 6px; }
.marco p { color: var(--texto-suave); font-size: 15px; line-height: 1.6; }
@media (min-width: 900px) {
  .tempo { padding-left: 0; flex-direction: row; gap: 0; }
  .tempo::before { left: 0; right: 0; top: 30px; bottom: auto; height: 3px; width: auto; background: linear-gradient(90deg, var(--azul), var(--marinho)); }
  .marco { flex: 1; padding: 60px 18px 0 0; }
  .marco::before { left: 0; top: 18px; }
  .marco:last-child { padding-right: 0; }
}

/* ---------- Visão / missão / valores ---------- */
.vmv { display: grid; grid-template-columns: 1fr; gap: 18px; }
.vmv__card { padding: 28px; border-radius: 22px; background: #fff; border: 1px solid var(--borda); display: flex; flex-direction: column; gap: 12px; }
.vmv__card--marinho { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.vmv__card--marinho h3, .vmv__card--marinho p { color: #fff; }
.vmv__card--marinho p { color: #D7E6F5; }
.vmv__card h3 { font-size: 22px; }
.vmv__card p { color: var(--texto-suave); font-size: 16px; line-height: 1.65; }
.vmv__ico { width: 52px; height: 52px; border-radius: 14px; background: var(--azul-nevoa); display: flex; align-items: center; justify-content: center; }
.vmv__card--marinho .vmv__ico { background: rgba(255,255,255,.12); }
.valores { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 480px) { .valores { grid-template-columns: 1fr 1fr; } }
.valor { padding: 20px; min-width: 0; border-radius: 18px; background: var(--nevoa); display: flex; flex-direction: column; gap: 8px; }
.valor b { font-family: var(--fonte-titulo); font-size: 17px; color: var(--marinho); overflow-wrap: anywhere; }
.valor span { font-size: 14px; color: var(--texto-suave); line-height: 1.5; }
.valor__ico { width: 40px; height: 40px; border-radius: 10px; background: var(--marinho); display: flex; align-items: center; justify-content: center; }
@media (min-width: 900px) { .vmv { grid-template-columns: 1fr 1fr; } .valores { grid-template-columns: repeat(4, 1fr); } }

/* Sede */
.sede { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; }
.sede__foto { border-radius: 22px; overflow: hidden; box-shadow: var(--sombra); }
.sede__foto img { width: 100%; height: 100%; object-fit: cover; }
.sede__txt { display: flex; flex-direction: column; gap: 14px; }
.sede__txt p { color: var(--texto-suave); font-size: 16px; line-height: 1.65; }
@media (min-width: 900px) { .sede { grid-template-columns: 1.2fr 1fr; gap: 56px; } }

/* ---------- Portfólio ---------- */
.portfolio { display: grid; grid-template-columns: 1fr; gap: 24px; }
.filtros { display: flex; flex-direction: column; gap: 10px; }
.filtros__titulo { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--texto-cinza); }
.filtros__lista { display: flex; flex-wrap: wrap; gap: 8px; }
.filtro { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; border: 1.5px solid var(--borda); background: #fff; font-size: 14px; font-weight: 600; color: var(--texto); cursor: pointer; transition: all .2s; }
.filtro small { font-size: 12px; color: var(--texto-cinza); }
.filtro:hover { border-color: var(--azul); }
.filtro.ativo { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.filtro.ativo small { color: #9CD9F5; }
.filtros__busca { position: relative; }
.filtros__busca input { width: 100%; padding: 12px 14px 12px 42px; border: 1.5px solid var(--borda); border-radius: 12px; font: inherit; }
.filtros__busca svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--texto-cinza); }
.grade-produtos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.produto-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--borda); border-radius: 18px; overflow: hidden; color: var(--texto); transition: transform .25s, box-shadow .25s; }
.produto-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,29,126,.1); color: var(--texto); }
.produto-card__foto { aspect-ratio: 1; background: #fff; display: flex; align-items: center; justify-content: center; padding: 14px; border-bottom: 1px solid var(--borda-clara); }
.produto-card__foto img { max-width: 100%; max-height: 100%; object-fit: contain; }
.produto-card__foto--vazia { background: var(--nevoa); color: var(--texto-cinza); }
.produto-card__txt { padding: 14px; display: flex; flex-direction: column; gap: 6px; flex-grow: 1; }
.produto-card__cat { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--azul); }
.produto-card h3 { font-size: 16px; line-height: 1.3; font-weight: 700; }
.produto-card__marca { font-size: 12.5px; color: var(--texto-cinza); }
.produto-card__resumo { font-size: 13.5px; color: var(--texto-suave); line-height: 1.5; display: none; }
.produto-card__cta { margin-top: auto; padding-top: 10px; display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 800; color: var(--marinho); }
.produto-card.oculto { display: none; }
.grade-vazia { grid-column: 1 / -1; border: 1px dashed var(--borda); border-radius: 16px; padding: 40px 20px; text-align: center; color: var(--texto-cinza); }
.grupo-cat { margin-bottom: 36px; }
.grupo-cat__titulo { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.grupo-cat__titulo h3 { font-size: 22px; }
.grupo-cat__titulo span { font-size: 13px; color: var(--texto-cinza); }
@media (min-width: 720px) { .grade-produtos { grid-template-columns: repeat(3, 1fr); gap: 18px; } .produto-card__resumo { display: block; } .produto-card__txt { padding: 18px; } .produto-card h3 { font-size: 17px; } }
@media (min-width: 1200px) { .grade-produtos { grid-template-columns: repeat(4, 1fr); } }

/* Modelos comerciais (infográfico) */
.modelos { display: grid; grid-template-columns: 1fr; gap: 14px; }
.modelo { padding: 26px; border-radius: 20px; background: #fff; border: 1px solid var(--borda); display: flex; flex-direction: column; gap: 10px; position: relative; overflow: hidden; }
.modelo__num { position: absolute; right: 18px; top: 10px; font-family: var(--fonte-titulo); font-size: 64px; font-weight: 800; color: var(--nevoa); line-height: 1; }
.modelo__ico { width: 50px; height: 50px; border-radius: 14px; background: var(--marinho); display: flex; align-items: center; justify-content: center; }
.modelo h3 { font-size: 20px; }
.modelo p { color: var(--texto-suave); font-size: 15px; line-height: 1.55; }
@media (min-width: 720px) { .modelos { grid-template-columns: repeat(3, 1fr); } }

/* Destaques em faixa (frases com ícone) */
.destaques { display: grid; grid-template-columns: 1fr; gap: 14px; }
.destaque { display: flex; gap: 14px; align-items: flex-start; padding: 18px; border-radius: 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.destaque__ico { width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.destaque b { display: block; font-size: 16px; margin-bottom: 2px; }
.destaque span { font-size: 14px; color: #C9DAF0; line-height: 1.5; }
@media (min-width: 720px) { .destaques { grid-template-columns: repeat(3, 1fr); } }

/* Bloco "equipamentos que crescem" */
.crescem { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: center; }
.crescem__txt h2 { font-size: clamp(28px, 3.6vw, 44px); margin-bottom: 14px; }
.crescem__txt p { font-size: 17px; line-height: 1.65; color: var(--texto-suave); margin-bottom: 12px; }
.crescem__txt b { color: var(--marinho); }
.crescem__foto { border-radius: 22px; overflow: hidden; box-shadow: var(--sombra); }
.crescem__foto img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) { .crescem { grid-template-columns: 1fr 1fr; gap: 56px; } }

/* ---------- Página de produto ---------- */
.produto { display: grid; grid-template-columns: 1fr; gap: 28px; }
.produto__galeria { display: flex; flex-direction: column; gap: 10px; }
.produto__principal { aspect-ratio: 1; background: #fff; border: 1px solid var(--borda); border-radius: 22px; display: flex; align-items: center; justify-content: center; padding: 24px; }
.produto__principal img { max-width: 100%; max-height: 100%; object-fit: contain; }
.produto__miniaturas { display: flex; gap: 8px; }
.produto__miniaturas button { width: 72px; height: 72px; border-radius: 12px; border: 1.5px solid var(--borda); background: #fff; padding: 6px; cursor: pointer; }
.produto__miniaturas button.ativo { border-color: var(--azul); }
.produto__miniaturas img { width: 100%; height: 100%; object-fit: contain; }
.produto__info { display: flex; flex-direction: column; gap: 16px; }
.produto__info h1 { font-size: clamp(26px, 3.4vw, 40px); }
.produto__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.produto__meta span { padding: 6px 12px; border-radius: 999px; background: var(--nevoa); font-size: 13px; font-weight: 600; color: var(--texto-suave); }
.produto__resumo { font-size: 17px; line-height: 1.6; color: var(--texto-suave); }
.produto__acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.produto__caracteristicas { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 0; padding: 0; list-style: none; }
.produto__caracteristicas li { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--nevoa); font-size: 14.5px; }
.produto__caracteristicas svg { flex-shrink: 0; margin-top: 2px; }
.produto__descricao { font-size: 16px; line-height: 1.7; color: var(--texto-suave); }
.produto__descricao h3 { font-size: 20px; margin: 18px 0 8px; }
.produto__descricao p { margin-bottom: 12px; }
.produto__descricao ul { padding-left: 20px; margin: 0 0 12px; }
.relacionados h2 { font-size: 26px; margin-bottom: 16px; }
@media (min-width: 900px) { .produto { grid-template-columns: 1fr 1.1fr; gap: 56px; } .produto__caracteristicas { grid-template-columns: 1fr 1fr; } }

/* ---------- Serviços (página) ---------- */
.servicos-grade { display: grid; grid-template-columns: 1fr; gap: 16px; }
.servico-card { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: 22px; background: #fff; border: 1px solid var(--borda); }
.servico-card__ico { width: 56px; height: 56px; border-radius: 16px; background: var(--marinho); display: flex; align-items: center; justify-content: center; }
.servico-card h3 { font-size: 21px; }
.servico-card p { color: var(--texto-suave); font-size: 15.5px; line-height: 1.6; }
@media (min-width: 720px) { .servicos-grade { grid-template-columns: 1fr 1fr; gap: 20px; } }
.diferenciais { display: grid; grid-template-columns: 1fr; gap: 14px; }
.diferencial { display: flex; gap: 16px; align-items: center; padding: 20px; border-radius: 18px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.diferencial__num { font-family: var(--fonte-titulo); font-size: 40px; font-weight: 800; color: var(--azul-claro); line-height: 1; flex-shrink: 0; }
.diferencial b { display: block; font-size: 17px; }
.diferencial span { font-size: 14px; color: #C9DAF0; }
@media (min-width: 720px) { .diferenciais { grid-template-columns: 1fr 1fr; } }
.fluxo { display: grid; grid-template-columns: 1fr; gap: 12px; counter-reset: passo; }
.passo { display: flex; gap: 14px; align-items: flex-start; padding: 18px; border-radius: 16px; background: var(--nevoa); }
.passo__num { width: 40px; height: 40px; border-radius: 50%; background: var(--azul); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.passo b { display: block; font-size: 16px; color: var(--marinho); margin-bottom: 2px; }
.passo span { font-size: 14px; color: var(--texto-suave); }
@media (min-width: 900px) { .fluxo { grid-template-columns: repeat(4, 1fr); } .passo { flex-direction: column; } }

/* ---------- Clientes (página) ---------- */
.grade-clientes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.cliente { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 14px; border-radius: 18px; background: #fff; border: 1px solid var(--borda); text-align: center; transition: border-color .3s, box-shadow .3s; }
.cliente:hover { border-color: var(--azul); box-shadow: 0 10px 30px rgba(0,29,126,.08); }
.cliente__logo { height: 70px; display: flex; align-items: center; justify-content: center; }
.cliente__logo img { max-height: 70px; max-width: 150px; filter: grayscale(1); opacity: .6; transition: filter .3s, opacity .3s; }
.cliente:hover .cliente__logo img { filter: none; opacity: 1; }
.cliente b { font-size: 14px; color: var(--marinho); line-height: 1.3; }
.cliente small { font-size: 12px; color: var(--texto-cinza); }
.cliente.oculto { display: none; }
@media (min-width: 720px) { .grade-clientes { grid-template-columns: repeat(4, 1fr); gap: 18px; } }
@media (min-width: 1200px) { .grade-clientes { grid-template-columns: repeat(5, 1fr); } }

/* ---------- Blog ---------- */
.blog-layout { display: grid; grid-template-columns: 1fr; gap: 32px; }
.blog-lateral { display: flex; flex-direction: column; gap: 22px; }
.blog-lateral__bloco { padding: 22px; border-radius: 18px; background: var(--nevoa); }
.blog-lateral__bloco h3 { font-size: 15px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; }
.blog-lateral__lista { display: flex; flex-direction: column; gap: 8px; }
.blog-lateral__lista a { display: flex; justify-content: space-between; color: var(--texto); font-weight: 600; font-size: 14px; padding: 8px 10px; border-radius: 10px; }
.blog-lateral__lista a:hover, .blog-lateral__lista a.ativo { background: #fff; color: var(--marinho); }
.blog-lateral__lista span { color: var(--texto-cinza); font-weight: 500; }
.post--destaque { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 18px; }
.post--destaque img { height: 260px; }
.post--destaque h3 { font-size: 26px; }
@media (min-width: 900px) { .blog-layout { grid-template-columns: 1fr 300px; } .post--destaque { grid-template-columns: 1.2fr 1fr; align-items: center; } .post--destaque img { height: 340px; } }
.artigo { max-width: 780px; margin: 0 auto; }
.artigo__capa { width: 100%; height: auto; border-radius: 22px; margin-bottom: 28px; }
.artigo__corpo { font-size: 17px; line-height: 1.75; color: #2B3550; }
.artigo__corpo p { margin-bottom: 18px; }
.artigo__corpo h2, .artigo__corpo h3 { margin: 32px 0 12px; }
.artigo__corpo h2 { font-size: 28px; } .artigo__corpo h3 { font-size: 22px; }
.artigo__corpo ul { padding-left: 22px; margin-bottom: 18px; }
.artigo__compartilhar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--borda); font-size: 14px; color: var(--texto-cinza); }
.artigo__compartilhar a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--borda); color: var(--marinho); font-weight: 700; }

/* ---------- Trabalhe conosco ---------- */
.cultura { display: grid; grid-template-columns: 1fr; gap: 14px; }
.cultura__item { display: flex; gap: 14px; padding: 20px; border-radius: 18px; background: #fff; border: 1px solid var(--borda); }
.cultura__num { font-family: var(--fonte-titulo); font-size: 26px; font-weight: 800; color: var(--azul); line-height: 1; flex-shrink: 0; width: 40px; }
.cultura__item b { display: block; font-size: 16px; color: var(--marinho); margin-bottom: 4px; }
.cultura__item span { font-size: 14px; color: var(--texto-suave); line-height: 1.55; }
@media (min-width: 720px) { .cultura { grid-template-columns: 1fr 1fr; } }
.virtudes { display: grid; grid-template-columns: 1fr; gap: 14px; }
.virtude { padding: 22px; border-radius: 18px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.virtude b { display: block; font-size: 18px; margin-bottom: 6px; }
.virtude span { font-size: 14px; color: #C9DAF0; line-height: 1.55; }
@media (min-width: 720px) { .virtudes { grid-template-columns: repeat(3, 1fr); } }
.formula { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; padding: 24px; border-radius: 20px; background: var(--nevoa); font-family: var(--fonte-titulo); font-weight: 800; font-size: clamp(18px, 3vw, 28px); color: var(--marinho); }
.formula svg { color: var(--azul); }
.ressalva { display: flex; gap: 14px; padding: 20px 22px; border-radius: 18px; background: #FFF8E6; border: 1px solid #F3DFA6; color: #6B4F00; font-size: 15px; line-height: 1.6; }
.ressalva svg { flex-shrink: 0; margin-top: 2px; }
.vagas { display: flex; flex-direction: column; gap: 14px; }
.vaga { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: 20px; background: #fff; border: 1px solid var(--borda); }
.vaga h3 { font-size: 20px; }
.vaga p { color: var(--texto-suave); font-size: 15px; margin: 6px 0 10px; line-height: 1.55; }
.vaga__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.vaga__meta span { padding: 5px 11px; border-radius: 999px; background: var(--nevoa); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-suave); }
.vaga .btn { align-self: flex-start; }
@media (min-width: 720px) { .vaga { flex-direction: row; align-items: center; justify-content: space-between; } .vaga > div { flex: 1; } .vaga .btn { align-self: center; } }
.talentos { display: grid; grid-template-columns: 1fr; gap: 20px; align-items: center; padding: 32px; border-radius: 24px; background: var(--marinho); color: #fff; }
.talentos h3 { color: #fff; font-size: 26px; margin-bottom: 8px; }
.talentos p { color: #D7E6F5; }
@media (min-width: 720px) { .talentos { grid-template-columns: 1fr auto; } }

/* ---------- Políticas ---------- */
.politica { max-width: 820px; }
.politica h2 { font-size: 24px; margin: 32px 0 10px; }
.politica h3 { font-size: 18px; margin: 22px 0 8px; }
.politica p, .politica li { font-size: 16px; line-height: 1.7; color: #2B3550; }
.politica p { margin-bottom: 14px; }
.politica ul { padding-left: 22px; margin-bottom: 14px; }
.politica__meta { font-size: 13px; color: var(--texto-cinza); margin-bottom: 24px; }

/* Faixa CTA genérica */
.faixa-cta { display: grid; grid-template-columns: 1fr; gap: 18px; align-items: center; padding: 32px; border-radius: 24px; background: linear-gradient(120deg, var(--marinho) 0%, var(--marinho-medio) 60%, var(--azul) 100%); color: #fff; }
.faixa-cta h2 { color: #fff; font-size: clamp(24px, 3vw, 34px); margin-bottom: 6px; }
.faixa-cta p { color: #D7E6F5; }
.faixa-cta__botoes { display: flex; flex-wrap: wrap; gap: 10px; }
@media (min-width: 900px) { .faixa-cta { grid-template-columns: 1fr auto; padding: 44px 48px; } }

/* =============================================================
   Revisão 2 — compactação, tipografia mais contida e refinamentos
   ============================================================= */
/* Ritmo vertical mais curto */
.secao { padding: 44px 0; }
.cab { gap: 10px; margin-bottom: 24px; }
.cab h2 { font-size: clamp(25px, 3.2vw, 38px); }
.cab p { font-size: 16px; max-width: 680px; }
.quem__txt h2, .atuacao__txt h2, .servicos__txt h2, .crescem__txt h2 { font-size: clamp(25px, 3vw, 36px); }
.quem__txt p, .atuacao__txt p, .servicos__txt p, .crescem__txt p { font-size: 16px; line-height: 1.6; }
.quem, .atuacao, .servicos, .crescem, .sede { gap: 24px; }
.barra { height: 4px; }

/* Hero mais enxuto */
.hero__slides { min-height: 520px; }
.hero__conteudo { padding-top: 64px; padding-bottom: 80px; gap: 12px; }
.hero__titulo { font-size: clamp(28px, 3.9vw, 50px); max-width: 720px; }
.hero__texto { font-size: 15px; }

/* Topo das páginas internas */
.pagina-topo__conteudo { padding: 44px 20px 52px; min-height: 300px; gap: 12px; }
.pagina-topo h1 { font-size: clamp(26px, 3.6vw, 44px); max-width: 720px; }
.pagina-topo p { font-size: 16px; }

/* Cartões de números menores */
.numeros { gap: 10px; margin-top: 28px; }
.numero { padding: 16px 18px; border-radius: 14px; gap: 4px; }
.numero b { font-size: clamp(26px, 2.8vw, 36px); }
.numero span { font-size: 13px; }

/* Escolha de linha e blocos com foto */
.linha { min-height: 360px; }
.quem__marca { min-height: 220px; }
.servicos__foto img { height: 280px; }
.contato { padding: 32px 22px; gap: 22px; }
.contato h2 { font-size: clamp(24px, 2.8vw, 34px); }
.faixa-cta { padding: 28px; }
.faixa-cta h2 { font-size: clamp(22px, 2.6vw, 30px); }
.esteira { margin: 4px 0 24px; }

/* Linha do tempo refinada */
.tempo { gap: 22px; padding-left: 30px; }
.tempo::before { left: 9px; width: 2px; background: linear-gradient(180deg, var(--azul-claro), var(--azul), var(--marinho)); }
.marco::before { left: -30px; top: 4px; width: 20px; height: 20px; border-width: 3px; box-shadow: 0 0 0 3px var(--nevoa); }
.marco__ano { display: inline-block; font-size: 15px; letter-spacing: .04em; padding: 4px 12px; border-radius: 999px; background: var(--marinho); color: #fff; }
.marco h3 { font-size: 17px; margin: 8px 0 4px; }
.marco p { font-size: 14.5px; line-height: 1.55; }

/* Visão, missão e valores */
.vmv { gap: 14px; }
.vmv__card { padding: 22px; border-radius: 18px; gap: 10px; }
.vmv__card h3 { font-size: 19px; }
.vmv__card p { font-size: 15.5px; line-height: 1.6; }
.vmv__ico { width: 44px; height: 44px; border-radius: 12px; }
.valores { gap: 12px; }
.valor { flex-direction: row; align-items: flex-start; gap: 12px; padding: 16px; border-radius: 14px; background: #fff; border: 1px solid var(--borda); }
.valor > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.valor b { font-size: 16px; }
.valor span { font-size: 13.5px; }
.valor__ico { width: 36px; height: 36px; border-radius: 9px; flex-shrink: 0; }

/* Portfólio: cartões sem descritivo */
.produto-card__resumo { display: none !important; }
.produto-card__txt { gap: 4px; }
.produto-card__cta { padding-top: 8px; }

/* Serviços, diferenciais, cultura */
.servico-card { padding: 22px; gap: 10px; border-radius: 18px; }
.servico-card h3 { font-size: 19px; }
.servico-card p { font-size: 15px; }
.servico-card__ico { width: 48px; height: 48px; border-radius: 14px; }
.diferencial { padding: 16px 18px; }
.diferencial__num { font-size: 32px; }
.diferencial b { font-size: 16px; }
.virtude { padding: 18px; }
.virtude b { font-size: 17px; }
.talentos { padding: 26px; }
.talentos h3 { font-size: 22px; }
.vaga { padding: 20px; }

@media (min-width: 720px) {
  .secao { padding: 60px 0; }
  .cab { margin-bottom: 28px; }
  .hero__slides { min-height: 560px; }
  .hero__conteudo { min-height: 560px; padding-bottom: 96px; }
  .hero__texto { font-size: 17px; }
  .hero__botoes .btn { height: 54px; font-size: 15px; }
  .pagina-topo__conteudo { padding: 56px 32px 64px; min-height: 340px; }
  .linha { min-height: 440px; }
  .linha__txt { padding: 28px; }
  .quem { gap: 40px; }
  .quem__marca { min-height: 320px; }
  .numeros { gap: 14px; margin-top: 40px; }
  .numero { padding: 20px 22px; }
  .atuacao { gap: 40px; }
  .servicos { gap: 40px; }
  .servicos__foto img { height: 440px; }
  .contato { padding: 44px 44px; gap: 40px; }
  .parceiro { height: 92px; }
  .valores { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 900px) {
  .tempo { gap: 0; padding-left: 0; }
  .tempo::before { left: 0; right: 0; width: auto; top: 12px; bottom: auto; height: 2px; background: linear-gradient(90deg, var(--azul-claro), var(--azul), var(--marinho)); }
  .marco { padding: 0 20px 0 0; }
  .marco::before { left: 2px; top: 2px; }
  .marco__ano { margin-left: 30px; }
  .marco h3 { margin-top: 14px; }
  .sede { gap: 40px; }
  .crescem { gap: 40px; }
  .faixa-cta { padding: 36px 40px; }
}

@media (min-width: 1200px) {
  .secao { padding: 72px 0; }
  .hero__slides { min-height: 600px; }
  .hero__conteudo { min-height: 600px; gap: 18px; }
  .pagina-topo__conteudo { padding: 64px 40px 72px; min-height: 380px; }
  .linha { min-height: 500px; }
  .linha__txt { padding: 34px; }
  .quem { gap: 56px; }
  .quem__marca { min-height: 360px; }
  .quem__logo { width: 220px; }
  .atuacao { gap: 56px; }
  .servicos { gap: 56px; }
  .servicos__foto img { height: 480px; }
  .valores { grid-template-columns: repeat(4, 1fr); }
}
.linha h3 { font-size: clamp(22px, 2.6vw, 32px); }
.linha p { font-size: 14.5px; }
.depoimento { padding: 22px; gap: 12px; }
.depoimento blockquote { font-size: 15px; }
@media (min-width: 1200px) { .virtudes { grid-template-columns: repeat(5, 1fr); } }
