:root{
  --quem-green:#C7FF1A;
  --quem-text:#0f1220;
  --quem-muted:#667085;
  --quem-line:#E9EDF3;
  --quem-card:#fff;
  --quem-font:"Montserrat",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;

  --card-size-quem: 150px;
  --gap-x-quem: 44px;
  --gap-y-quem: 42px;
}

body{margin:0;background:#fff;color:var(--quem-text);font-family:var(--quem-font)}
.wrap-quem{max-width:1280px;margin:0 auto;padding:48px 20px 80px}

.title-quem{font-size:2em;font-weight:800;margin:0 0 6px}
.marker-quem{background:var(--quem-green);padding:0 .25em;border-radius:6px; font-weight: bold;}
.sub-quem{margin:0 0 30px;color:var(--quem-muted)}



.grid-quem{
  display:grid;
  grid-template-columns:minmax(620px,1fr) minmax(520px,1fr);
  gap:64px;
  align-items:start;
  margin-top: 80px;
}

/* Ícones */
.feature-area-quem{z-index:2; padding-bottom: 50px;}
.cluster-quem{display:flex;flex-direction:column;align-items:center;gap:var(--gap-y-quem)}
.row-quem{display:flex;align-items:center;gap:var(--gap-x-quem)}

.card-quem{
  width:var(--card-size-quem);height:var(--card-size-quem);
  background:var(--quem-card);border:1px solid var(--quem-line);border-radius:22px;
  transform:rotate(45deg);display:grid;place-items:center;
  box-shadow:0 12px 28px rgba(15,18,32,.10);
  cursor:pointer;transition:.18s;
}
.card-quem:hover{translate:0 -3px;box-shadow:0 18px 54px rgba(15,18,32,.14)}
.inner-quem{transform:rotate(-45deg);display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px; text-align: center;}
.icon-quem{width:56px;height:56px;border-radius:50%;background:#F6F8FC;display:grid;place-items:center}
.icon-quem img{
    width: 100%;
}
.label-quem{font-size:13px;font-weight:600;color:#1d2430}
.active-quem{background:var(--quem-green);border-color:var(--quem-green)}
.active-quem .label-quem{color:#0b0d10}

/* Texto e navegação */
.texto-quem{max-width:660px;margin-top:20px}
.texto-quem h3{margin:6px 0 8px;font-size:18px}
.texto-quem p{margin:0;line-height:1.75}

/* Losango da direita */
.hero-quem{position:relative}
/* Losango grande com cantos arredondados */
/* Losango grande com cantos BEM arredondados */
/* Container losango arredondado */
.diamond-hero-quem{
  width:100%;
  aspect-ratio:1/1;
  border-radius: clamp(60px, 14%, 90px); /* bem arredondado */
  overflow:hidden;
  transform: rotate(45deg);
  position: relative;
}

/* Camada que "desvira" a imagem */
.diamond-hero-inner{
  width:100%;
  height:100%;
  transform: rotate(-45deg) scale(1.15); /* scale para preencher totalmente */
  transform-origin:center;
}

/* Imagem ocupa 100% da área losango */
.diamond-hero-inner img{
  width:100%;
  height:100%;
  object-fit: cover;    /* cobre toda a área */
  display:block;
  border-radius: clamp(60px, 14%, 90px); /* mesmo raio do container */
}


@media(max-width:1000px){
  .grid-quem{grid-template-columns:1fr;gap:40px}
  .hero-quem{order:2}.feature-area-quem{order:1}
  .diamond-wrap-quem{width:min(560px,90vw);margin-inline:auto}
}
@media(max-width:560px){
  :root{--card-size-quem:128px;--gap-x-quem:26px;--gap-y-quem:24px}
}

#titulo-quem {
  margin-top: 80px;   /* força o espaçamento superior */
}







/* ====== Notícias ====== */
.news-quem{
  width: 100%;
  background: #fbfbfb;
  padding: 56px 0 72px;
}

/* container interno para alinhar com o restante do site */
.news-wrap-quem{
  max-width: 1280px;   /* segue seu wrap-quem */
  margin: 0 auto;
  padding: 0 20px;
}

/* cabeçalho */
.news-head-quem{
  text-align:left;
  margin-bottom: 18px;
}
.news-title-quem{
  font-weight:800;
  font-size: clamp(26px, 3.6vw, 40px);
  line-height:1.1;
  margin:0 0 6px;
}
.news-sub-quem{
  margin:0 0 18px;
  color: var(--quem-muted);
}

/* GRID: 4 colunas grandes, 2 médias, 1 no mobile */
.news-grid-quem{
  display:grid;
  gap: 22px;

  /* seu pedido: limite no máx 1920px */
  max-width: 1920px;
  margin: 0 auto;

  grid-template-columns: repeat(3, 1fr);   /* desktop grande: 4 cards na linha */
}
@media (max-width: 1280px){
  .news-grid-quem{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px){
  .news-grid-quem{ grid-template-columns: 1fr; }
}

/* Card com alturas consistentes */
.news-card-quem{
  position:relative;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  border:1px solid var(--quem-line);
  box-shadow: 0 10px 26px rgba(15,18,32,.08);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;

  /* Para equalizar alturas: */
  display: flex;
}
.news-card-quem:hover{
  transform: translateY(-6px);
  border-color: #dfe6ee;
  box-shadow: 0 18px 44px rgba(15,18,32,.16);
}

/* Link cobre tudo e organiza o conteúdo em coluna */
.news-link-quem{
  display:flex;
  flex-direction: column;
  width:100%;
  text-decoration:none; color: inherit;
}

/* Mídia com aspecto 16:9 */
.news-media-quem{
  position:relative; margin:0; overflow:hidden;
  aspect-ratio: 16 / 9;
  background: #f3f6fa;
  flex: 0 0 auto;   /* não estica */
}
.news-media-quem img{
  width:100%; height:100%; object-fit: cover; display:block;
  transform: scale(1); transition: transform .35s ease;
}
.news-card-quem:hover .news-media-quem img{
  transform: scale(1.06);
}

/* Tag */
.news-tag-quem{
  position:absolute; left:14px; top:14px;
  background: var(--quem-green);
  color:#0b0d10; font-weight:800; font-size:.82rem;
  padding:8px 10px; border-radius:10px;
  box-shadow:0 8px 18px rgba(185,244,25,.35);
}
.news-tag-quem.alt{ background:#111; color:#fff }
.news-tag-quem.gov{ background:#103458; color:#fff }
.news-tag-quem.tech{ background:#00a38c; color:#fff }

/* Corpo cresce para alinhar as alturas */
.news-body-quem{
  padding: 16px 16px 18px;
  display:flex; flex-direction:column;
  flex: 1 1 auto;     /* ocupa o restante do card */
}
.news-h3-quem{
  font-size: clamp(18px, 2.6vw, 22px);
  line-height:1.18; margin:0 0 8px; font-weight:800;
}
.news-desc-quem{
  color:#2a2f36; margin:0 12px 12px 0; line-height:1.55;
  flex: 1 1 auto;     /* empurra meta para o rodapé do card */
}
.news-meta-quem{
  display:flex; align-items:center; gap:8px;
  color:#6b7280; font-weight:700; font-size:.9rem;
}
.news-meta-quem .dot{ opacity:.6 }

/* Brilho sutil na borda ao hover */
.news-card-quem::before{
  content:"";
  position:absolute; left:0; right:0; top:-2px; height:2px;
  background: linear-gradient(90deg, transparent, rgba(185,244,25,.9), transparent);
  transform: translateX(-30%);
  opacity:0;
  transition: opacity .25s ease, transform .45s ease;
}
.news-card-quem:hover::before{
  opacity:1; transform: translateX(30%);
}
















/* ========= ODS ========= */
/* ========= ODS ========= */
.ods-quem{
  margin: 0;  /* sem espaçamento externo */
  padding: 72px 20px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
}

/* overlay escuro suave para dar contraste nos textos */
.ods-quem::before{
  content:"";
  position:absolute; inset:0;
  background: rgba(0,0,0,.15); /* ajusta a opacidade conforme a foto */
}
.ods-quem > .ods-grid-quem{
  position: relative;
  z-index: 1;
}

.ods-grid-quem{
  display: grid;
  grid-template-columns: 1fr 1.2fr;  /* painel + carrossel */
  gap: 28px;
  align-items: stretch;
}
@media (max-width: 980px){
  .ods-grid-quem{ grid-template-columns: 1fr; }
}

/* Painel (bg mutável) */
.ods-hero-quem{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  min-height: 340px;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
.ods-hero-bg-quem{
  position:absolute; inset:0;
  background-size: cover; background-position: center;
  transform: scale(1); transition: transform .45s ease, opacity .35s ease, background-image .35s ease;
}
.ods-hero-quem:hover .ods-hero-bg-quem{ transform: scale(1.03); }
.ods-hero-quem::after{
  content:""; position:absolute; inset:0;
    background: none !important;
}
.ods-hero-content-quem{
  position: relative; z-index: 1;
  color: #fff; padding: 20px 20px 22px;
  display:flex; flex-direction:column; justify-content:flex-end; height:100%;
}
.ods-hero-content-quem h3{
  margin:0 0 8px; font-weight:800; font-size: clamp(18px, 2.6vw, 24px);
}
.ods-hero-content-quem p{
  margin:0; line-height:1.6; max-width: 60ch;
}

/* Carrossel */
.ods-rail-wrap-quem{
  position: relative;
  display:grid; grid-template-columns: 46px 1fr 46px; align-items:center; gap:10px;
}
.ods-nav-quem{
  width:40px; height:40px; border-radius:50%;
  border:1px solid var(--quem-line); background:#fff; color:#111; font-weight:800;
  display:grid; place-items:center; cursor:pointer; transition:.15s ease;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
}
.ods-nav-quem:hover{ background:#f6f8fc; }
.ods-nav-quem:disabled{ opacity:.4; cursor:not-allowed; }

.ods-rail-quem{
  display:flex; gap:14px; padding:8px 10px;
  overflow:auto; scroll-snap-type: x mandatory;
  border:1px solid var(--quem-line); border-radius:16px; background:transparent;
}
.ods-rail-quem::-webkit-scrollbar{ height:10px }
.ods-rail-quem::-webkit-scrollbar-thumb{ background:#d9e2ea; border-radius:999px }

.ods-item-quem{
  scroll-snap-align: start;
  min-width: 132px; max-width: 132px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:5px 5px; border-radius:14px; border:1px solid var(--quem-line);
  background:#fff; cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.ods-item-quem img{   width: 100%;
  height: 100%;
  object-fit: cover;   /* cobre todo o espaço sem distorcer */
  display: block;
  border-radius: 12px; /* opcional: arredonda conforme o card */ }
.ods-item-quem span{ font-weight:700; font-size:.9rem; color:#1f2430; text-align:center }

.ods-item-quem:hover{ transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.10); }
.ods-item-quem.is-active{ background: var(--quem-green); border-color: var(--quem-green); }

/* Responsivo */
@media (max-width: 560px){
  .ods-item-quem{ min-width: 118px; max-width:118px; }
}





/* -------- Fundo da section ODS fixo (parallax) -------- */
.ods-quem{
  background-attachment: fixed;       /* deixa a imagem da mata fixa */
  position: relative;
  z-index: 0;
}
.ods-quem::before{ z-index: 0 }
.ods-quem > .ods-grid-quem{ position: relative; z-index: 1 }

/* -------- Painel: conteúdo 50% e mais alto -------- */
.ods-hero-quem{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  min-height: clamp(320px, 42vh, 440px);
}
.ods-hero-content-quem{
  position: absolute;                  /* sobe o conteúdo no painel */
  inset: 0 auto auto 0;               /* âncora no topo/esquerda */
  width: 50%;                          /* ocupa 50% da imagem */
  padding: clamp(16px, 2.6vw, 28px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;         /* “mais acima” */
  gap: 8px;
}
@media (max-width: 900px){
  .ods-hero-content-quem{ width: 65% }
}
@media (max-width: 640px){
  .ods-hero-content-quem{ width: 85% }
}

/* -------- Carrossel em pilha (um na frente) -------- */
.ods-rail-wrap-quem{ isolation: isolate } /* garante camadas corretas */
.ods-rail-quem{
  display: flex;
  align-items: center;
  gap: 0;                               /* sem gap, sobreposição total controlada */
  padding: 14px 6px;
  border: none;
  background: transparent;
  overflow-x: auto;
  scrollbar-width: none;
}
.ods-rail-quem::-webkit-scrollbar{ display: none }

/* Cartas base (vira “quadrado sobre quadrado”) */
.ods-item-quem{
  position: relative;
  width: 132px; height: 132px;
  min-width: 132px; max-width: 132px;
  border: 0;
  background: transparent;
  border-radius: 18px;
  transform: rotate(0);                 /* volta ao quadrado normal */
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease, translate .18s ease;
  /* sobreposição: todo item, menos o 1º, entra “por cima” do anterior */
  margin-left: -64px;                   /* controla o quanto sobrepõe */
  box-shadow: 0 10px 26px rgba(0,0,0,.10);
}
.ods-item-quem:first-child{ margin-left: 0 }

.ods-item-quem img{
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 18px;
  display: block;
}

/* Estado normal (não ativo): levemente menor e rebaixado */
.ods-item-quem:not(.is-active){
  transform: scale(.92);
  filter: saturate(.9) brightness(.96);
}

/* Destaque: “um na frente” (maior, nítido e com z-index alto) */
.ods-item-quem.is-active{
  transform: scale(1) translateY(-4px);
  filter: none;
  z-index: 50;                          /* fica na frente */
  box-shadow: 0 14px 36px rgba(0,0,0,.16);
}

/* Hover também dá um realce, mas menor que o ativo */
.ods-item-quem:hover{
  transform: scale(.97) translateY(-2px);
  z-index: 40;
}

/* Etiquetas opcionais abaixo da carta (se usar <span>) */
.ods-item-quem span{
  position: absolute; left: 50%; bottom: -26px;
  transform: translateX(-50%);
  color: #fff; font-weight: 700; font-size: .9rem;
  text-shadow: 0 2px 8px rgba(0,0,0,.45);
  pointer-events: none;
}

/* Pequeno ajuste responsivo */
@media (max-width: 560px){
  .ods-item-quem{ width: 118px; height: 118px; min-width:118px; max-width:118px; margin-left: -56px }
}



/* ==== MOSAICO HORIZONTAL PARA O CARROSSEL ODS ==== */
/* container com parallax já está ok; só garantimos as camadas */
.ods-quem{ background-attachment: fixed; position: relative; z-index:0; }
.ods-quem::before{ z-index:0 }
.ods-quem > .ods-grid-quem{ position: relative; z-index:1 }

/* tira qualquer estilo anterior de sobreposição/empilhado */
.ods-rail-quem{
  /* de flex -> GRID em colunas automáticas = “mosaico” que rola na horizontal */
  display: grid !important;
  grid-auto-flow: column;
  /* largura padrão de cada coluna (pode ajustar) */
  --col: 142px;
  grid-auto-columns: var(--col);
  /* três “prateleiras” de altura fixa -> efeito ladrilhado */
  --row: 110px;
  grid-template-rows: repeat(3, var(--row));
  gap: 14px;
  padding: 12px 8px;
  overflow-x: auto; overflow-y: hidden;
  border: none !important;
  background: transparent !important;
  scrollbar-width: none;
}
.ods-rail-quem::-webkit-scrollbar{ display: none }

.ods-item-quem{
  /* reseta coisas do layout antigo */
  width: auto; height: auto; min-width: 0; max-width: none;
  margin: 0; border: 0; background: transparent; box-shadow: none;

  position: relative;
  border-radius: 18px;
  overflow: hidden;
  /* animações/realces */
  transform: translateZ(0); 
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.ods-item-quem img{
  width: 100%; height: 100%;
  object-fit: cover; display: block; border-radius: 18px;
}

/* HOVER e ATIVO mantidos */
.ods-item-quem:hover{
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 12px 28px rgba(0,0,0,.16);
  z-index: 2;
}
.ods-item-quem.is-active{
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 16px 36px rgba(0,0,0,.20);
  z-index: 3;
}
.ods-item-quem.is-active::before{
  content:""; position:absolute; inset:0;
  box-shadow: inset 0 0 0 3px rgba(199,255,26,.95);
  border-radius: 18px; pointer-events:none;
}

/* RÓTULO (se usar <span>) */
.ods-item-quem span{
  position:absolute; left:50%; bottom: -26px;
  transform: translateX(-50%);
  color:#fff; font-weight:700; font-size:.9rem;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
  pointer-events:none;
}

/* ====== DESENHO DO MOSAICO ====== */
/* A cada 8 itens, repetimos um padrão de alturas:
   - alguns ocupam 2 linhas (altos), outros 1 linha (baixos).
   - ajuste livre: mude “span 2” para espalhar diferente. */
.ods-item-quem{ grid-row: span 1; }           /* padrão: baixo */
.ods-item-quem:nth-child(8n+1){ grid-row: span 2; } /* alto */
.ods-item-quem:nth-child(8n+3){ grid-row: span 2; } /* alto */
.ods-item-quem:nth-child(8n+6){ grid-row: span 2; } /* alto */

/* opcional: alguns mais largos para variar o mosaico */
.ods-item-quem:nth-child(10n+4){ grid-column: span 2; }
.ods-item-quem:nth-child(10n+9){ grid-column: span 2; }

/* responsivo: cartas um pouco menores */
@media (max-width: 560px){
  .ods-rail-quem{ --col: 128px; --row: 96px; gap: 12px; }
}




/* ===== MOSAICO ALINHADO (grid) ===== */
.ods-rail-quem{
  /* vira GRID em fluxo por colunas */
  display: grid !important;
  grid-auto-flow: column;
  /* largura de cada “tijolo” (coluna) */
  --col: 150px;
  grid-auto-columns: var(--col);
  /* DUAS fileiras alinhadas (muda para 3 se quiser) */
  --row: 120px;
  grid-template-rows: repeat(2, var(--row));
  gap: 18px;
  padding: 12px 10px;
  overflow-x: auto; overflow-y: hidden;
  border: none !important;
  background: transparent !important;
  scrollbar-width: none;
}
.ods-rail-quem::-webkit-scrollbar{ display:none }

/* carta base */
.ods-item-quem{
  width: 100%; height: 100%;
  min-width: 0; max-width: none;
  border: 0; background: transparent;
  border-radius: 18px; overflow: hidden;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  /* por padrão, cada card ocupa 1 célula perfeitamente alinhada */
  grid-row: span 1;
}
.ods-item-quem img{
  width: 100%; height: 100%; object-fit: cover; display:block;
  border-radius: 18px;
}

/* ===== DESENHO DO PADRÃO (repetição previsível) =====
   1) Alternamos as linhas: top / bottom / top / bottom …
   2) De tempos em tempos, um “pilar” ocupa as 2 linhas (span 2),
      mas SEM sair do alinhamento.                               */

/* alternância 2 linhas */
.ods-item-quem:nth-child(2n+1){ grid-row: 1; }  /* ímpares: linha de cima   */
.ods-item-quem:nth-child(2n){   grid-row: 2; }  /* pares:   linha de baixo  */

/* pilares (ocupam 2 linhas, alinhados à malha) */
.ods-item-quem:nth-child(8n+4),
.ods-item-quem:nth-child(8n+8){
  grid-row: 1 / span 2;          /* “alto” ocupando as 2 linhas */
  grid-column: span 1;           /* largura padrão (pode usar 2 se quiser) */
}

/* opção: alguns largos, mas ainda em grade */
.ods-item-quem:nth-child(10n+5){ grid-column: span 2; }
.ods-item-quem:nth-child(10n+9){ grid-column: span 2; }

/* ===== Hover/ativo — mantêm alinhamento (sem subir/descer) ===== */
.ods-item-quem:hover{
  transform: scale(1.03);
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
  z-index: 2;
}
.ods-item-quem.is-active{
  transform: scale(1.06);
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
  z-index: 3;
}
.ods-item-quem.is-active::before{
  content:""; position:absolute; inset:0; border-radius:18px; pointer-events:none;
  box-shadow: inset 0 0 0 3px rgba(199,255,26,.95);
}

/* rótulo opcional */
.ods-item-quem span{
  position:absolute; left:50%; bottom:-26px; transform:translateX(-50%);
  color:#fff; font-weight:700; font-size:.9rem; text-shadow:0 2px 8px rgba(0,0,0,.45);
  pointer-events:none;
}

/* responsivo */
@media (max-width: 680px){
  .ods-rail-quem{ --col: 128px; --row: 100px; gap: 14px; }
}

/* === ODS: MOSAICO ALINHADO, TODOS IGUAIS === */

/* trilho vira GRID horizontal com 2 fileiras fixas */
.ods-rail-quem{
  display: grid !important;
  grid-auto-flow: column;              /* rola na horizontal */
  --size: 150px;                       /* TAMANHO ÚNICO do quadrado (ajuste aqui) */
  --gap: 18px;
  grid-auto-columns: var(--size);      /* cada coluna mede --size */
  grid-template-rows: repeat(2, var(--size));  /* DUAS linhas iguais */
  gap: var(--gap);
  padding: 12px 10px;
  overflow-x: auto; overflow-y: hidden;
  border: none !important;
  background: transparent !important;
  scrollbar-width: none;
}
.ods-rail-quem::-webkit-scrollbar{ display:none }

/* CARD PADRÃO — tamanho fixo, sem spans/larguras custom */
.ods-item-quem{
  width: var(--size) !important;
  height: var(--size) !important;
  min-width: var(--size) !important;
  max-width: var(--size) !important;

  grid-row: span 1 !important;         /* nunca ocupa 2 linhas */
  grid-column: span 1 !important;      /* nunca ocupa 2 colunas */

  border: 0; background: transparent; border-radius: 18px; overflow: hidden;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
  transform: translateY(0) scale(1);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.ods-item-quem img{
  width: 100%; height: 100%;           /* imagem ocupa 100% do quadrado */
  object-fit: cover; display: block; border-radius: 18px;
}

/* ALTERNÂNCIA: 1 em cima, 1 embaixo, e repete */
.ods-item-quem:nth-child(2n+1){ grid-row: 1; }  /* ímpares: linha superior   */
.ods-item-quem:nth-child(2n){   grid-row: 2; }  /* pares:   linha inferior   */

/* toque visual: pequeno “desnível” para ficar mais orgânico sem bagunçar */
.ods-item-quem:nth-child(4n+2){ transform: translateY(-4px); }
.ods-item-quem:nth-child(4n+4){ transform: translateY(4px); }

/* HOVER / ATIVO (não quebra o alinhamento) */
.ods-item-quem:hover{
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
  z-index: 2;
}
.ods-item-quem.is-active{
  transform: translateY(-8px) scale(1.06);
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
  z-index: 3;
}
.ods-item-quem.is-active::before{
  content:""; position:absolute; inset:0; border-radius:18px; pointer-events:none;
  box-shadow: inset 0 0 0 3px rgba(199,255,26,.95);
}

/* rótulo (se usar <span>) não influencia tamanho */
.ods-item-quem span{
  position:absolute; left:50%; bottom:-26px; transform:translateX(-50%);
  color:#fff; font-weight:700; font-size:.9rem; text-shadow:0 2px 8px rgba(0,0,0,.45);
  pointer-events:none;
}

/* responsivo: quadrados menores, mesma lógica */
@media (max-width: 680px){
  .ods-rail-quem{ --size: 128px; --gap: 14px; }
}

/* ===== Revela SOMENTE quando o JS habilitar ===== */
.anim-ready .reveal,
.anim-ready .reveal-right,
.anim-ready .reveal-zoom{
  opacity: 0;
  filter: blur(2px);
  transition:
    transform .55s cubic-bezier(.22,.9,.24,1) var(--d,0s),
    opacity   .55s ease var(--d,0s),
    filter    .55s ease var(--d,0s);
}

/* direções/estados iniciais */
.anim-ready .reveal{        transform: translateY(14px) }
.anim-ready .reveal-right{  transform: translateX(36px) }
.anim-ready .reveal-zoom{   transform: scale(.94)      }

/* quando entra */
.reveal.in,
.reveal-right.in,
.reveal-zoom.in{
  opacity: 1; filter: none; transform: none;
}

/* acessibilidade */
@media (prefers-reduced-motion: reduce){
  .anim-ready .reveal,
  .anim-ready .reveal-right,
  .anim-ready .reveal-zoom{
    transition: none !important;
  }
}

/* === FIX: manter os losangos girados mesmo com as animações === */
.anim-ready .card-quem.reveal,
.anim-ready .card-quem.reveal-right,
.anim-ready .card-quem.reveal-zoom{
  opacity: 0;
  filter: blur(2px);
  transition:
    transform .55s cubic-bezier(.22,.9,.24,1) var(--d,0s),
    opacity   .55s ease var(--d,0s),
    filter    .55s ease var(--d,0s);
}

/* estados iniciais SEM perder o rotate(45deg) */
.anim-ready .card-quem.reveal{       transform: rotate(45deg) translateY(14px); }
.anim-ready .card-quem.reveal-right{ transform: rotate(45deg) translateX(36px); }
.anim-ready .card-quem.reveal-zoom{  transform: rotate(45deg) scale(.94); }

/* quando entra na tela */
.card-quem.reveal.in,
.card-quem.reveal-right.in,
.card-quem.reveal-zoom.in{
  opacity: 1;
  filter: none;
  transform: rotate(45deg);
}


/* ——— Losango grande (direita): 100% losango, cantos bem arredondados ——— */
.hero-quem{ position:relative; margin-top: 60px;}

/* largura máxima e sombra */
.diamond-wrap-quem{
  width:min(720px,48vw);
  margin-left:auto;
  filter:drop-shadow(0 24px 64px rgba(15,18,32,.18));
}

/* contêiner quadrado via padding-top, rotacionado = losango */
.diamond-hero-quem{
  position:relative;
  width:100%;
  transform: rotate(45deg);
  border-radius: clamp(56px,14%,96px); /* arredonda as 4 pontas do losango */
  overflow:hidden;
  background:#000; /* fallback enquanto a imagem carrega */
}

/* gera a altura (1:1) do quadrado */
.diamond-hero-quem::before{
  content:"";
  display:block;
  padding-top:100%; /* mantém 1:1 */
}

/* imagem ocupa tudo e “desvira” a rotação do contêiner */
.diamond-hero-quem > img{
  position:absolute;
  inset:0;
  width:140%;
  height:140%;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%) rotate(-45deg); /* desfaz a rotação do contêiner */
  object-fit:cover; /* preenche 100% do losango */
  display:block;
}

/* Responsivo mantém o 1:1 e o efeito */
@media(max-width:1000px){
  .diamond-wrap-quem{ width:min(560px,90vw); margin-inline:auto; }
}

.limita10::after{
  content:"";
  position:absolute;
  left: 0;
  bottom: 0;
  width: 340px;
  height: 340px;
  background: var(--neon, #b9f419);
  transform: translate(-40%, -200px) rotate(45deg); /* sobe 200px */
  border-radius: 32px;
  box-shadow: 0 18px 36px rgba(0,0,0,.12);
  pointer-events:none;
  z-index:-1;
}

.limita10{
  position: relative;
  overflow: visible;
  z-index: 1;
}



/* =========================================================
   AJUSTES FINOS — seção ESG Transporte (cards + texto + losango)
   (coloque no final do arquivo para sobrescrever o anterior)
=========================================================*/

/* —— Desktop/tablet: respiro melhor entre blocos —— */
.grid-quem{
  gap: clamp(40px, 6vw, 72px);
  margin-top: clamp(40px, 7vw, 90px);
}
.cluster-quem{ gap: clamp(24px, 4vw, 42px); }
.row-quem{ gap: clamp(18px, 3.2vw, 44px); }

/* título/texto abaixo dos cards com ritmo mais consistente */
.texto-quem{
  max-width: 660px;
  margin-top: clamp(10px, 2.6vw, 24px);
  padding-top: 12px;
  border-top: 1px solid var(--quem-line);
}
#titulo-quem{ 
  margin: 0 0 6px; 
  font-size: clamp(18px, 2.6vw, 22px);
}

/* —— Losango da direita (versão final unificada) —— */
/* largura máx e sombra */
.diamond-wrap-quem{
  width: min(720px, 48vw);
  margin-left: auto;
  filter: drop-shadow(0 24px 64px rgba(15,18,32,.18));
}
/* contêiner 1:1 rotacionado */
.diamond-hero-quem{
  position: relative;
  width: 100%;
  transform: rotate(45deg);
  border-radius: clamp(56px, 14%, 96px);
  overflow: hidden;
  background: #000;
}
/* mantém 1:1 */
.diamond-hero-quem::before{
  content: "";
  display: block;
  padding-top: 100%;
}
/* imagem ocupa 100% e “desvira” */
.diamond-hero-quem > img{
  position: absolute;
  inset: 0;
  width: 140%;
  height: 140%;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  object-fit: cover;
  display: block;
}

/* —— Mobile (≤ 768px): tudo em pilha e mais compacto —— */
@media (max-width: 768px){

  /* grid vira 1 coluna e com menos gap */
  .grid-quem{
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 32px;
  }

  /* cards menores e mais próximos */
  :root{
    --card-size-quem: 112px;   /* era 128–150 */
    --gap-x-quem: 16px;
    --gap-y-quem: 18px;
  }
  .row-quem{ justify-content: center; }

  /* texto colado nos cards com divisória sutil */
  .texto-quem{
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed var(--quem-line);
  }
  #titulo-quem{
    margin: 0 0 6px;
    font-size: 1.05rem;
  }

  /* losango centralizado e com respiro */
  .hero-quem{ margin-top: 20px; }
  .diamond-wrap-quem{
    width: min(520px, 90vw);
    margin: 0 auto;
  }
  .diamond-hero-quem{
    border-radius: clamp(40px, 12%, 80px); /* cantos um pouco menos “bexigudos” */
  }
}

.fundo-texto{
  width: 100%;
  background: rgba(255,255,255,0.6);
  padding: 15px;
  border-radius: 25px;
  height: auto;
  display: table;
  margin-bottom: 40px;
}

















