/* ===========================================================================
   PRÉVIA ESTÁTICA — SINCOFARMA/SP 2027
   Direção: BRANCO clean. Blocos de gradiente azul pontuais.
   Ícones recebem as 4 cores do briefing em rotação.
   Layout espaçado e assimétrico (menos centralizado).
   Tipografia: Poppins (títulos) + Montserrat (corpo), como a referência.
   =========================================================================== */

:root{
  /* Escala principal sobre o AZUL PROFUNDO #0C4683 */
  --marca-50:#F0F5FA; --marca-100:#DDE9F4; --marca-200:#B6CDE5; --marca-300:#86ACD2;
  --marca-400:#4A81B4; --marca-500:#175C97; --marca-600:#0C4683; --marca-700:#0A3A6D;
  --marca-800:#082C53; --marca-900:#051C36; --marca-950:#031223;

  /* Paleta do briefing — vive nos ícones */
  --azul-inst:#363B8E; --azul-prof:#0C4683; --amarelo:#F4BE00; --laranja:#F19000;
  --ico-1:#0C4683; --ico-2:#363B8E; --ico-3:#F19000; --ico-4:#F4BE00;
  --acento:#F4BE00;

  /* Neutros quase brancos */
  --tinta:#10172B; --tinta-2:#36405C; --tinta-3:#626C87;
  --bruma:#FCFDFE; --bruma-2:#F4F7FB; --vidro:#EDF2F9; --branco:#fff;

  --linha:rgba(12,70,131,.14); --linha-forte:rgba(12,70,131,.26);
  --linha-clara:rgba(255,255,255,.14);
  --sobre:rgba(255,255,255,.92); --sobre-2:rgba(255,255,255,.62);

  /* Tipografia conforme a referencia aprovada (portaldocomercio.org.br):
     Plus Jakarta Sans nos titulos e no corpo. Os CHAPEUS ficam de fora, como
     pedido - seguem na condensada. */
  --f-tit:"Plus Jakarta Sans",system-ui,sans-serif;
  --f-corpo:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-cond:"Barlow Condensed","Oswald",sans-serif;

  --t-h1:clamp(2.25rem,1.4rem + 3.2vw,4.5rem);
  --t-h2:clamp(1.75rem,1.25rem + 1.9vw,3rem);
  --t-h3:clamp(1.5rem,1.2rem + 1vw,2rem);
  --t-h4:clamp(1.25rem,1.1rem + .5vw,1.5rem);

  --r-sm:10px; --r-md:14px; --r-card:16px; --r-bloco:24px;

  /* ---- Ritmo interno dos blocos (item 9.3) ---------------------------
     Um token por RELACAO, nao por valor solto. Assim "afastar titulo da
     descricao" e uma mudanca em um lugar so, no site inteiro, em vez de
     cacar margem em vinte regras. */
  --b-pad:2rem;       /* respiro interno do card                         */
  --b-gap:1.25rem;    /* de um card para o outro                         */
  --b-ico-tit:1.625rem;/* do elemento grafico para o titulo              */
  --b-tit-txt:1.125rem;/* do titulo para a descricao                     */
  --b-txt-cta:1.75rem;/* da descricao para o CTA                         */

  /* ---- Interacao integrada (itens 9.1 e 9.6) -------------------------
     Borda e fundo mudam JUNTOS: o ambar e a cor de acao da identidade,
     entao a borda assume o ambar cheio e o fundo recebe o mesmo ambar
     lavado. Uma cor so, duas intensidades - nenhum contraste novo entra
     na tela e o texto continua legivel por cima. */
  /* ---- Moldura dos CTAs (padrao unico) ----------------------------
     Antes havia cinco alturas (40 a 52px), dois raios (pilula e 10px),
     tres paddings e dois pesos. Um token por propriedade resolve de uma
     vez e mantem resolvido. */
  --cta-alt:48px;      /* altura minima de todo CTA com moldura  */
  --cta-pad:1.75rem;   /* respiro lateral                        */
  --cta-raio:9999px;   /* pilula - a forma da identidade         */
  --cta-fonte:.9375rem;
  --cta-peso:600;

  /* ---- Moldura dos ICONES (padrao unico) --------------------------
     Mesma bagunca: chapas de 1,75 a 3,25rem, com raio em 9999px, 10px,
     11px e 14px, conforme quem escreveu. Um tamanho e um raio. */
  --ico-chapa:2.75rem;
  --ico-raio:var(--r-sm);
  /* UM TAMANHO SO, por pedido. A variante pequena continua existindo como
     token para nao ter de reescrever trinta regras, mas aponta para a
     mesma medida - a chapa do icone agora e tao padrao quanto o CTA. */
  --ico-chapa-peq:var(--ico-chapa);

  /* O DESENHO dentro da chapa. Antes cada chamada de icone() escolhia o
     seu numero (13, 14, 15, 16, 17, 18, 20, 22, 24, 26, 28...) e o
     resultado era um icone de tamanho diferente em cada bloco. Estes tres
     tokens mandam no CSS e vencem o atributo do SVG: um tamanho na chapa,
     um na seta de CTA, um na etiqueta miuda. */
  --ico-svg:22px;
  --ico-svg-cta:16px;
  --ico-svg-tag:13px;

  --hover-borda:var(--acento);
  --hover-fundo:rgba(244,190,0,.07);
  --hover-fundo-escuro:rgba(244,190,0,.1);
  --t-hover:240ms;
  --s-card:0 18px 40px -30px rgba(16,23,43,.35);
  --s-elev:0 40px 80px -45px rgba(16,23,43,.4);
  --secao:clamp(5.5rem,11vw,11rem);
  /* Respiro lateral em DEGRAUS fixos, como na referencia (MedicGLOBAL):
     16px no celular, 32px no tablet, 56px no desktop. Em degraus e nao em
     5vw de proposito - com vw a margem cresce sem parar em tela grande e o
     conteudo fica espremido no meio; fixa, o site expande e a borda
     permanece constante. */
  --gutter:1rem;
}

@media(min-width:720px){:root{--gutter:2rem}}
@media(min-width:1100px){:root{--gutter:3.5rem}}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:9rem;-webkit-text-size-adjust:100%}
body{background:var(--branco);color:var(--tinta-2);font-family:var(--f-corpo);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased}
/* Peso 700: a Plus Jakarta Sans em 500 ficava leve demais para segurar
   titulo grande sem o apoio do marca-texto que saiu. */
h1,h2,h3,h4{font-family:var(--f-tit);font-weight:700;line-height:1.1;letter-spacing:-.022em;color:var(--tinta);text-wrap:balance}
h1{font-size:var(--t-h1)} h2{font-size:var(--t-h2)} h3{font-size:var(--t-h3)} h4{font-size:var(--t-h4)}
p{text-wrap:pretty}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul,ol{list-style:none}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--acento);outline-offset:2px;border-radius:var(--r-sm);box-shadow:0 0 0 5px rgba(244,190,0,.22)}
::selection{background:rgba(244,190,0,.4);color:var(--tinta)}

/* 110rem = 1760px: a largura "wide" da referencia. */
.wrap{width:100%;max-width:110rem;margin-inline:auto;padding-inline:var(--gutter)}
.secao{padding-block:var(--secao)}

/* RESPIRO DEPOIS DE PAINEL COLORIDO DE BORDA A BORDA.
   Varias secoes zeram o padding-top (style="padding-top:0") de proposito:
   entre duas secoes claras, o respiro de baixo da primeira ja basta e dois
   paddings seguidos abririam um vao grande demais.

   So que esse padding de baixo fica DENTRO da cor quando a secao anterior e
   um painel colorido. Resultado: o conteudo seguinte encostava na borda do
   bloco escuro, sem nenhuma folga em branco. Aqui o respiro volta.

   Precisa de !important porque o padding-top:0 vem em atributo style - e
   regra de folha de estilo so vence estilo embutido sendo important. */
:is(.g-inst,.g-prof,.g-duo,.duplo-secao,.prlx,.secao.tom) + .secao{padding-top:var(--secao) !important}

/* FAIXA DE TOM - intercala o branco sem introduzir cor nova.
   O mesmo cinza-azulado que ja existe nos elementos de apoio (--bruma-2),
   agora no fundo de secoes alternadas: a pagina deixa de ser um lencol
   branco continuo e ganha ritmo, sem precisar de mais um bloco azul.

   Forca o proprio respiro vertical porque varias secoes zeram o
   padding-top de proposito - e tom que comeca colado no conteudo anterior
   vira mancha, nao ritmo. */
.secao.tom{background:var(--bruma-2);padding-block:var(--secao) !important}
/* Cartao branco sobre o tom: e o contraste que faz o card existir ali.
   Sem isto, cartao e fundo teriam a mesma cor e a borda ficaria sozinha
   segurando a forma. */
.secao.tom :is(.bloco-colunas>li,.faq-item){background:#fff}

/* Chapéu LIGHT com fio âmbar */
.chapeu{font-family:var(--f-cond);font-weight:300;text-transform:uppercase;letter-spacing:.2em;font-size:.8125rem;line-height:1;display:inline-flex;align-items:center;gap:.75rem;color:var(--tinta-3)}
/* O fio ambar e o UNICO detalhe decorativo da tipografia: marca onde a
   secao comeca, e some dos titulos. */
.chapeu.fio::before{content:"";width:1.5rem;height:2px;background:var(--acento);flex-shrink:0}
.chapeu.claro{color:var(--sobre-2)}
/* Sem marca-texto: a segunda metade do titulo muda de COR, nao ganha traco.
   O detalhe ambar ficou reservado ao chapeu. */
.dest{color:var(--marca-600)}
.dest-claro{color:var(--acento)}

/* Traço de marca-texto em âmbar por baixo do trecho destacado - o gesto do
   layout estático (src/components/ui/titulo-secao.tsx). É box-shadow inset,
   não border nem background: acompanha a quebra de linha palavra a palavra,
   como caneta marca-texto de verdade, e some atrás do texto em vez de
   empurrar a linha de base. A altura é em em para escalar com a fonte. */
/* Fio de 2px, e não mais um traço em em. Em em ele crescia junto com o
   título: num h2 de 3rem, .1em dava quase 5px e voltava a parecer tarja.
   Fixo em 2px ele se comporta como DETALHE — fino em qualquer corpo de
   texto, que é o que se quer aqui. Opacidade alta porque 2px lavado
   simplesmente não aparece. */
.marca-texto{box-shadow:inset 0 -2px 0 rgba(244,190,0,.85);padding-inline:.04em}
/* Sobre fundo escuro o fio precisa de presença total para se sustentar. */
.g-inst .marca-texto,.g-prof .marca-texto,.g-duo .marca-texto{box-shadow:inset 0 -2px 0 var(--acento)}

/* Blocos de gradiente azul — usados com parcimônia */
/* ---- Gradientes do azul principal -------------------------------------
   Tres camadas sobre o #0C4683, em vez de um degrade de duas paradas:

   1. um claro frio no alto a direita, que da a sensacao de luz entrando;
   2. um quente discretissimo no pe (o ambar a 6%), que impede o azul de
      virar cinza nas sombras - e dai que vem o ar de profundidade;
   3. a base diagonal do profundo ao quase-preto.

   O ponto e esse: azul puro em area grande achata. Com um calor minimo no
   pe, a mesma cor ganha volume sem mudar de identidade.
   ----------------------------------------------------------------------- */
.g-inst{
  background:
    radial-gradient(62rem 36rem at 84% -14%, rgba(74,129,180,.42), transparent 58%),
    radial-gradient(44rem 30rem at 6% 112%, rgba(244,190,0,.06), transparent 62%),
    linear-gradient(152deg, var(--marca-500) 0%, var(--azul-prof) 34%, var(--marca-900) 72%, var(--marca-950) 100%);
}
.g-prof{
  background:
    radial-gradient(52rem 30rem at 92% 0%, rgba(74,129,180,.3), transparent 60%),
    radial-gradient(40rem 26rem at 0% 100%, rgba(244,190,0,.05), transparent 64%),
    linear-gradient(152deg, var(--azul-prof) 0%, var(--marca-800) 62%, var(--marca-900) 100%);
}
.g-duo{background:linear-gradient(118deg,var(--azul-prof) 0%,var(--azul-inst) 100%)}
.vidro{background:rgba(255,255,255,.08);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);border:1px solid var(--linha-clara)}

/* Rotação cromática dos ícones */
.ico-cores > *:nth-child(4n+1) .ico{color:var(--ico-1)}
.ico-cores > *:nth-child(4n+2) .ico{color:var(--ico-2)}
.ico-cores > *:nth-child(4n+3) .ico{color:var(--ico-3)}
.ico-cores > *:nth-child(4n+4) .ico{color:var(--ico-4)}
.ico-selo{background:color-mix(in oklab,currentColor 10%,transparent)}

/* Botões */
.btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:.625rem;border-radius:9999px;font-weight:600;font-size:1rem;font-family:inherit;padding:.875rem 1.75rem;border:0;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.btn-acao{background:var(--marca-600);color:#fff}
.btn-acao:hover{background:var(--marca-700)}
.btn-contorno{border:1px solid var(--linha-forte);background:transparent;color:var(--marca-700)}
.btn-contorno:hover{border-color:var(--marca-600);background:var(--marca-50)}
.btn-claro{border:1px solid var(--linha-clara);background:rgba(255,255,255,.06);color:#fff}
.btn-claro:hover{background:rgba(255,255,255,.14)}
.btn-branco{background:#fff;color:var(--marca-700)}
.btn-branco:hover{background:var(--marca-50)}
.btn svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.btn:hover svg{transform:translateX(3px)}
.lk{position:relative;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--marca-600)}
.lk::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:100%;background:var(--acento);transform:scaleX(0);transform-origin:left;transition:transform .34s cubic-bezier(.16,1,.3,1)}
.lk:hover::after{transform:scaleX(1)}
.lk svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.lk:hover svg{transform:translateX(3px)}
.lk-claro{color:var(--sobre)}

/* ---------- CABEÇALHO: 3 faixas + logo sobreposta ---------- */
header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--linha)}

.utility{display:none;background:var(--bruma);border-bottom:1px solid var(--linha);font-size:.875rem}
@media(min-width:1280px){.utility{display:block}}
.utility .faixa{display:flex;align-items:center;justify-content:space-between;height:3.5rem}
.utility .dir{display:flex;align-items:center;gap:1.25rem}
.utility nav ul{display:flex;align-items:center;gap:1.75rem}
.utility a{display:inline-flex;align-items:center;gap:.5rem;color:var(--tinta-2);transition:color .25s}
.utility a:hover{color:var(--marca-600)}
.utility a svg{color:var(--marca-500)}

/* min-width:0 e o que impede o estouro: sem ele um filho flex nunca encolhe
   abaixo do proprio conteudo, e o menu empurrava a barra para fora da tela.
   max-width:100% fecha a porta para qualquer item futuro repetir o problema. */
.barra{display:flex;align-items:center;gap:1rem;height:5.25rem;min-width:0;max-width:100%}
@media(min-width:1280px){.barra{height:5.5rem;gap:1.5rem}}
@media(min-width:1480px){.barra{gap:2.5rem}}
.logo-marca{flex-shrink:0}
.logo-marca img{height:2.25rem;width:auto}
@media(min-width:1280px){.logo-marca img{height:2.75rem}}
nav.menu{margin-right:auto;display:none}
@media(min-width:1280px){nav.menu{display:block}}
nav.menu ul{display:flex;align-items:center;gap:.375rem}
.gatilho{display:inline-flex;align-items:center;gap:.4375rem;border:0;background:none;cursor:pointer;font-family:inherit;font-size:.9375rem;color:var(--tinta);padding:.75rem 1rem;border-radius:9999px;white-space:nowrap;transition:background .2s,color .2s}
@media(min-width:1480px){.gatilho{font-size:.9375rem;padding-inline:.875rem}}
.gatilho:hover{background:var(--bruma-2)}
.gatilho[aria-expanded="true"]{background:var(--bruma-2);color:var(--marca-700);font-weight:500}
.gatilho svg{width:12px;height:12px;opacity:.6;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.gatilho[aria-expanded="true"] svg{transform:rotate(180deg)}
.acoes{margin-left:auto;display:flex;align-items:center;gap:.625rem;flex-shrink:0}
@media(min-width:1280px){.acoes{margin-left:0}}
.icone-btn{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:9999px;border:1px solid var(--linha);background:#fff;color:var(--tinta-2);cursor:pointer;transition:background .2s}
.icone-btn:hover{background:var(--bruma)}
/* O gatilho da gaveta some onde o menu horizontal aparece - senao os dois
   convivem na mesma barra e o botao de grade fica sem funcao. */
@media(min-width:1280px){#btn-menu{display:none}}
/* .btn-area e .btn-assoc foram REMOVIDOS da barra. Eram eles que estouravam
   a largura: somados ao menu de seis areas, a barra passava da tela e os
   dois botoes so apareciam arrastando de lado. Os links continuam no acesso
   rapido, na gaveta e no painel "Para a sua farmácia" da home. */
.idioma{position:relative}
.idioma-btn{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 12px 0 10px;border-radius:9999px;border:0;background:none;color:var(--marca-700);font-family:var(--f-corpo);font-size:.74rem;font-weight:500;letter-spacing:.06em;cursor:pointer;transition:opacity .2s}
.idioma-btn:hover,.idioma-btn[aria-expanded="true"]{opacity:.75}
.idioma-btn > svg:last-child{width:14px;height:14px;opacity:.6;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.idioma-btn[aria-expanded="true"] > svg:last-child{transform:rotate(180deg)}
.bandeira{width:18px;height:18px;flex-shrink:0;border-radius:3px}
.idioma-menu{position:absolute;right:0;top:calc(100% + .625rem);z-index:60;min-width:12.25rem;padding:.375rem;border-radius:var(--r-card);background:#fff;border:1px solid var(--linha);box-shadow:var(--s-elev)}
.idioma-menu[hidden]{display:none}
.idioma-menu a{display:flex;align-items:center;gap:.75rem;padding:.6875rem .75rem;border-radius:11px;font-size:.9rem;color:var(--tinta-2);transition:background .2s,color .2s}
.idioma-menu a .bandeira{width:22px;height:22px}
.idioma-menu a > svg:last-child{width:16px;height:16px;margin-left:auto;color:var(--marca-600);opacity:0}
.idioma-menu a[aria-current="true"]{color:var(--marca-700);font-weight:500}
.idioma-menu a[aria-current="true"] > svg:last-child{opacity:1}
.idioma-menu a:hover{background:var(--bruma)}
.idioma a{color:var(--tinta-3);padding-inline:.25rem}
.idioma a:hover{color:var(--tinta)}

/* MEGA-MENU: intro | links (ícone+rótulo+descrição) | destaque */
/* Controlado pelo atributo [hidden]: sem JavaScript o painel simplesmente
   nao abre, e o gatilho tem sempre um link equivalente. */
.mega{display:block;position:absolute;inset-inline:0;top:100%;z-index:40;background:#fff;border-top:1px solid var(--linha);box-shadow:var(--s-elev)}
.mega[hidden]{display:none}
@media(max-width:1279px){.mega{display:none!important}}
.mega .grade{display:grid;grid-template-columns:4fr 5fr 3fr;gap:3rem;padding-block:3rem 3.5rem}
.mega-intro h2{margin-top:.75rem;font-size:1.75rem;line-height:1.12;min-height:2.24em}
.mega-intro p{margin-top:.75rem;max-width:22rem;font-size:.9375rem;line-height:1.6;color:var(--tinta-3)}
/* Links do submenu - layout da referencia (MedicGLOBAL): duas colunas fluindo
   POR COLUNA, links de texto com fio embaixo e a seta surgindo no hover.
   --rows vem do PHP (metade dos itens, arredondado para cima): e o que diz ao
   grid onde quebrar a primeira coluna. */
.mega-links{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(var(--rows,3),auto);grid-auto-flow:column;gap:4px 1.5rem;align-content:center}
.mega-links a{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.875rem 0;border-bottom:1px solid var(--linha);font-family:var(--f-tit);font-size:.975rem;line-height:1.3;color:var(--tinta);transition:color .2s,padding .3s cubic-bezier(.16,1,.3,1)}
.mega-links a::after{content:"\2192";color:var(--marca-500);opacity:0;transform:translateX(-6px);transition:.3s cubic-bezier(.16,1,.3,1)}
.mega-links a:hover{color:var(--marca-700);padding-left:6px}
.mega-links a:hover::after{opacity:1;transform:none}
.mega-destaque{position:relative;overflow:hidden;border-radius:var(--r-bloco);min-height:13.75rem;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;color:#fff}
.mega-destaque .bg{position:absolute;inset:0;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.mega-destaque:hover .bg{transform:scale(1.05)}
.mega-destaque .marca{position:absolute;top:-1.5rem;right:-2.5rem;width:13rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.05;filter:brightness(0) invert(1)}
.mega-destaque strong{position:relative;font-family:var(--f-tit);font-weight:500;font-size:1.15rem;line-height:1.25}
.mega-destaque span{position:relative;margin-top:.375rem;font-size:.8125rem;color:var(--sobre-2)}

/* ---------- HERO ---------- */
.hero{position:relative;overflow:hidden;color:#fff}
.hero .anel{position:absolute;top:-30rem;right:-20rem;width:58rem;height:58rem;border-radius:9999px;border:1px solid rgba(255,255,255,.1)}
.hero .marca{position:absolute;bottom:-8rem;left:-6rem;width:30rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.045;filter:brightness(0) invert(1)}
.hero-grid{position:relative;display:grid;gap:3.5rem;padding-block:5rem;align-items:center}
@media(min-width:1024px){.hero-grid{grid-template-columns:1.05fr .9fr;gap:5rem;padding-block:7.5rem}}
.selo-anos{display:inline-flex;align-items:center;gap:.625rem;border:1px solid var(--linha-clara);padding:.5rem 1rem;border-radius:9999px;color:var(--sobre-2);font-family:var(--f-cond);font-weight:300;text-transform:uppercase;letter-spacing:.2em;font-size:.8125rem}
.selo-anos b{color:var(--acento);font-family:var(--f-tit);font-weight:600;letter-spacing:0;font-size:.9375rem}
.hero h1{margin-top:1.75rem;color:#fff}
.hero .sub{margin-top:1.5rem;max-width:33rem;font-size:1.125rem;line-height:1.75;color:var(--sobre-2)}
.hero .acoes-hero{margin-top:2.5rem;display:flex;flex-direction:column;gap:.75rem}
@media(min-width:640px){.hero .acoes-hero{flex-direction:row;align-items:center}}
.filiacoes{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--linha-clara);display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;font-size:.9375rem;color:var(--sobre-2)}
.visual{position:relative}
.moldura{position:absolute;top:-1.25rem;right:-1.25rem;width:100%;height:100%;border-radius:var(--r-bloco);border:1px solid rgba(255,255,255,.15)}
.foto{position:relative;aspect-ratio:4/5;border-radius:var(--r-bloco);overflow:hidden;background:linear-gradient(170deg,var(--marca-700),var(--marca-950))}
@media(min-width:640px){.foto{aspect-ratio:1}}
.foto .legenda{position:absolute;inset-inline:0;bottom:0;padding:1.5rem;text-align:center;font-size:.875rem;color:rgba(255,255,255,.35)}
.painel-escuro{position:absolute;bottom:-1.5rem;left:-1rem;width:min(23rem,92%);display:flex;align-items:center;gap:1rem;border-radius:var(--r-card);background:var(--marca-950);border:1px solid rgba(255,255,255,.1);padding:1.125rem 1.375rem 1.125rem 1.125rem;box-shadow:var(--s-elev);transition:background .28s,transform .3s cubic-bezier(.16,1,.3,1)}
.painel-escuro:hover{background:var(--marca-900);transform:translateY(-3px)}
@media(min-width:640px){.painel-escuro{left:-2rem}}
.painel-escuro .circ{width:2.75rem;height:2.75rem;flex-shrink:0;display:grid;place-items:center;border-radius:9999px;background:var(--acento);color:var(--marca-950);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.painel-escuro:hover .circ{transform:translateX(3px)}
.painel-escuro b{display:block;font-size:1.0625rem;font-weight:600;color:#fff;line-height:1.3}
.painel-escuro small{display:block;margin-top:.1875rem;font-size:.8125rem;color:var(--sobre-2);line-height:1.4}

/* ---------- Cabeçalho de seção assimétrico ---------- */
.cab{display:flex;flex-direction:column;gap:1.125rem}
.cab h2{margin-top:.25rem}
.cab .apoio{max-width:38rem;line-height:1.75;color:var(--tinta-3)}
.cab-linha{display:flex;flex-direction:column;gap:2rem}
@media(min-width:768px){.cab-linha{flex-direction:row;align-items:flex-end;justify-content:space-between}}

/* ---------- Acessos rápidos: assimétrico, lista com linhas ---------- */
.ar{display:grid;gap:3rem}
@media(min-width:1024px){.ar{grid-template-columns:minmax(0,22rem) 1fr;gap:5rem}}
.ar-lista{display:grid;border-top:1px solid var(--linha)}
@media(min-width:640px){.ar-lista{grid-template-columns:1fr 1fr;column-gap:3rem}}
.ar-lista a{display:flex;align-items:center;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--linha);transition:padding-left .3s cubic-bezier(.16,1,.3,1)}
.ar-lista a:hover{padding-left:.5rem}
.ar-lista .selo{width:2.75rem;height:2.75rem;flex-shrink:0;display:grid;place-items:center;border-radius:var(--r-sm)}
.ar-lista b{flex:1;font-weight:500;line-height:1.35;color:var(--tinta);transition:color .25s}
.ar-lista a:hover b{color:var(--marca-700)}
.ar-lista .seta{flex-shrink:0;color:var(--marca-300);transition:all .3s cubic-bezier(.16,1,.3,1)}
.ar-lista a:hover .seta{color:var(--marca-600);transform:translate(3px,-3px)}

/* ---------- BENTO DOS CURSOS (protagonista) ---------- */
.bento{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:1024px){.bento{grid-template-columns:repeat(12,1fr)}}
.tile{border-radius:var(--r-bloco);position:relative;overflow:hidden}
.t-busca{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid var(--linha);padding:.6875rem .6875rem .6875rem 1.25rem}
@media(min-width:1024px){.t-busca{grid-column:span 5}}
.t-busca label{display:flex;align-items:center;gap:.625rem;flex-shrink:0;font-weight:600;color:var(--marca-700)}
@media(max-width:519px){.t-busca label span{display:none}}
.t-busca input{flex:1;min-width:0;border:0;background:transparent;font-family:inherit;font-size:1rem;color:var(--tinta)}
.t-busca input:focus{outline:none}
.t-busca button{flex-shrink:0;min-height:44px;border-radius:9999px;background:var(--marca-600);color:#fff;font-weight:600;padding-inline:1.5rem;border:0;cursor:pointer;font-family:inherit;transition:background .25s}
.t-busca button:hover{background:var(--marca-700)}
.t-edit{display:flex;flex-direction:column;color:#fff;padding:2rem}
@media(min-width:1024px){.t-edit{grid-column:span 5;grid-row:span 2;padding:2.5rem}}
.t-edit h2{margin-top:1.25rem;color:#fff}
.t-edit>p{margin-top:1.25rem;color:var(--sobre-2);font-size:.9375rem;line-height:1.7}
.mini{margin-top:2rem;border-top:1px solid var(--linha-clara)}
.mini li{border-bottom:1px solid var(--linha-clara)}
.mini a{display:flex;align-items:center;gap:1rem;padding:.875rem 0;transition:padding-left .3s cubic-bezier(.16,1,.3,1)}
.mini a:hover{padding-left:.5rem}
.mini span{flex:1;font-weight:500;font-size:.9375rem;color:var(--sobre)}
.mini svg{flex-shrink:0;color:rgba(255,255,255,.4);transition:all .3s}
.mini a:hover svg{color:var(--acento);transform:translate(3px,-3px)}
.t-edit .lk{margin-top:auto;padding-top:2rem;align-self:flex-start}
.t-dest{display:block;min-height:17rem}
@media(min-width:1024px){.t-dest{grid-column:span 7;min-height:21rem}}
.t-dest .bg{position:absolute;inset:0;background:linear-gradient(140deg,var(--marca-700),var(--marca-800) 55%,var(--marca-950));transition:transform .7s cubic-bezier(.16,1,.3,1)}
.t-dest:hover .bg{transform:scale(1.03)}
.p-glass{position:absolute;left:1rem;right:1rem;bottom:1rem;display:block;border-radius:var(--r-card);padding:1.25rem}
@media(min-width:640px){.p-glass{left:1.5rem;right:1.5rem;bottom:1.5rem;padding:1.5rem}}
.p-glass strong{display:block;margin-top:.75rem;font-family:var(--f-tit);font-weight:500;font-size:clamp(1.125rem,2vw,1.625rem);line-height:1.2;color:#fff}
.p-glass .d{display:block;margin-top:.5rem;font-size:.875rem;color:var(--sobre-2);line-height:1.5}
.t-agenda{display:flex;flex-direction:column;background:var(--marca-50);border:1px solid var(--linha);padding:1.75rem}
@media(min-width:1024px){.t-agenda{grid-column:span 3}}
.t-agenda .selo{width:3rem;height:3rem;display:grid;place-items:center;border-radius:var(--r-md);background:#fff;color:var(--marca-600)}
.t-agenda h3{margin-top:1.25rem;font-size:1.25rem}
.t-agenda p{margin-top:.625rem;flex:1;font-size:.9375rem;line-height:1.65;color:var(--tinta-3)}
.t-agenda .btn{margin-top:1.5rem;width:100%}
.t-mot{display:flex;flex-direction:column;color:#fff;padding:1.75rem}
@media(min-width:1024px){.t-mot{grid-column:span 4}}
.t-mot ul{margin-top:1.5rem;flex:1;display:grid;gap:1rem}
@media(min-width:420px){.t-mot ul{grid-template-columns:1fr 1fr;column-gap:1.25rem}}
.t-mot li{display:flex;align-items:flex-start;gap:.75rem;font-size:.9375rem;line-height:1.35;color:var(--sobre)}
.t-mot li svg{flex-shrink:0;margin-top:1px;color:var(--acento)}
.t-mot .lk{margin-top:1.75rem;align-self:flex-start}

/* ---------- Cards numerados (serviços) ---------- */
.cards{margin-top:3.5rem;display:grid;border-top:1px solid var(--linha)}
@media(min-width:768px){.cards{grid-template-columns:1fr 1fr;column-gap:3rem}}
@media(min-width:1200px){.cards{grid-template-columns:repeat(4,1fr)}}
.card{position:relative;display:flex;flex-direction:column;height:100%;padding:2.25rem 0 2rem;border-bottom:1px solid var(--linha)}
.card::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--acento);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.card:hover::before{transform:scaleX(1)}
.num{font-family:var(--f-cond);font-weight:300;font-size:.8125rem;letter-spacing:.2em;color:var(--marca-300)}
.card .ico{margin-top:1.5rem}
.card h3{margin-top:1.25rem;font-size:1.1875rem;line-height:1.3}
.card p{margin-top:.75rem;flex:1;color:var(--tinta-3);line-height:1.7;font-size:.9375rem}
.card .lk{margin-top:1.5rem;font-size:.9375rem;align-self:flex-start}

/* ---------- Notícias ---------- */
.editorial{margin-top:3.5rem;display:grid;gap:3rem}
@media(min-width:1024px){.editorial{grid-template-columns:1.1fr 1fr;gap:4rem}}
.mat-img{position:relative;aspect-ratio:16/10;border-radius:var(--r-bloco);overflow:hidden}
.mat-img .tag{position:absolute;top:1.25rem;left:1.25rem;background:rgba(255,255,255,.95);border-radius:9999px;padding:.4375rem 1rem;font-size:.8125rem;font-weight:600;color:var(--marca-700)}
.meta{margin-top:1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem;color:var(--tinta-3)}
.meta .ed{color:var(--marca-600);font-weight:600}
.pt{width:3px;height:3px;border-radius:9999px;background:var(--marca-300)}
.lista-not{border-top:1px solid var(--linha)}
.lista-not li{border-bottom:1px solid var(--linha)}
.lista-not a{position:relative;display:block;padding:1.375rem 0;transition:padding-left .3s cubic-bezier(.16,1,.3,1)}
.lista-not a::before{content:"";position:absolute;left:0;top:1.125rem;bottom:1.125rem;width:2px;background:var(--acento);transform:scaleY(.3);opacity:0;transition:all .3s}
.lista-not a:hover::before{opacity:1;transform:scaleY(1)}
.lista-not a:hover{padding-left:1.25rem}
.lista-not .top{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:center;font-size:.8125rem;color:var(--tinta-3)}
.lista-not .ed{color:var(--marca-600);font-weight:600}
.lista-not h4{margin-top:.5rem;font-size:1.0625rem;line-height:1.4;font-weight:500;color:var(--tinta);font-family:var(--f-corpo);transition:color .25s}
.lista-not a:hover h4{color:var(--marca-700)}

/* ---------- Benefícios ---------- */
.benef{display:grid;gap:3rem}
@media(min-width:1024px){.benef{grid-template-columns:.8fr 1.2fr;gap:5rem;align-items:start}}
.benef-lista{display:grid;border-top:1px solid var(--linha)}
@media(min-width:640px){.benef-lista{grid-template-columns:1fr 1fr;column-gap:2.5rem}}
.benef-lista a{display:flex;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--linha);transition:padding-left .3s cubic-bezier(.16,1,.3,1)}
.benef-lista a:hover{padding-left:.5rem}
.benef-lista .ico{flex-shrink:0;margin-top:.1875rem}
.benef-lista b{display:block;font-size:1.0625rem;font-weight:600;color:var(--tinta);line-height:1.35}
.benef-lista span{display:block;margin-top:.375rem;font-size:.9375rem;line-height:1.65;color:var(--tinta-3)}
.marq-wrap{margin-top:4.5rem;overflow:hidden;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha);padding-block:1.75rem;-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}
.marq{display:flex;width:max-content;align-items:center;gap:3.5rem;animation:desliza 64s linear infinite}
.marq-wrap:hover .marq{animation-play-state:paused}
@keyframes desliza{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marq li{white-space:nowrap;font-size:1.0625rem;font-weight:500;color:var(--tinta-3);transition:color .25s}
.marq li:hover{color:var(--marca-700)}

/* ---------- Representatividade ---------- */
.repr{position:relative;overflow:hidden;color:#fff}
.repr .marca{position:absolute;top:-4rem;right:-4rem;width:26rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.05;filter:brightness(0) invert(1)}
.repr-grid{position:relative;display:grid;gap:3.5rem}
@media(min-width:1024px){.repr-grid{grid-template-columns:1fr 1fr;gap:5rem}}
.selo95{display:flex;align-items:baseline;gap:1rem;padding-bottom:1.75rem;border-bottom:1px solid var(--linha-clara)}
.selo95 b{font-family:var(--f-tit);font-size:clamp(3.5rem,8vw,5rem);line-height:.9;font-weight:600;color:var(--acento)}
.selo95 span{font-size:1.0625rem;line-height:1.4;color:var(--sobre-2)}
.pilares{display:grid;border-top:1px solid var(--linha-clara)}
@media(min-width:640px){.pilares{grid-template-columns:1fr 1fr;column-gap:2.5rem}}
.pilares li{padding:1.75rem 0;border-bottom:1px solid var(--linha-clara)}
.pilares .ico{color:var(--acento)}
.pilares h3{margin-top:1rem;font-size:1.0625rem;color:#fff}
.pilares p{margin-top:.5rem;font-size:.9375rem;line-height:1.65;color:var(--sobre-2)}

/* ---------- Oportunidades ---------- */
.oport{margin-top:3.5rem;display:grid;border-top:1px solid var(--linha)}
@media(min-width:768px){.oport{grid-template-columns:repeat(3,1fr);column-gap:3rem}}
.oport-card{position:relative;display:flex;flex-direction:column;height:100%;padding:2.25rem 0 2rem;border-bottom:1px solid var(--linha)}
.oport-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--acento);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.oport-card:hover::before{transform:scaleX(1)}
.oport-card h3{margin-top:1.25rem;font-size:1.375rem}
.oport-card p{margin-top:.75rem;flex:1;line-height:1.7;color:var(--tinta-3);font-size:.9375rem}
.oport-card .lk{margin-top:1.75rem;align-self:flex-start;font-size:.9375rem}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;border-radius:var(--r-bloco);color:#fff;padding:3.5rem 1.5rem}
@media(min-width:640px){.cta{padding-inline:3rem}}
@media(min-width:1024px){.cta{padding:5rem 4.5rem}}
.cta .anel{position:absolute;top:-18rem;right:-12rem;width:36rem;height:36rem;border-radius:9999px;border:1px solid rgba(255,255,255,.1)}
.cta-grid{position:relative;display:grid;gap:3rem}
@media(min-width:1024px){.cta-grid{grid-template-columns:1fr minmax(0,24rem);gap:4.5rem;align-items:center}}
.cta h2{color:#fff;margin-top:1.125rem}
.cta-lista{margin-top:2.25rem;display:grid;gap:.875rem}
@media(min-width:640px){.cta-lista{grid-template-columns:1fr 1fr}}
.cta-lista li{display:flex;align-items:flex-start;gap:.75rem;color:var(--sobre);line-height:1.5;font-size:.9375rem}
.cta-lista .ck{margin-top:.5rem;width:5px;height:5px;flex-shrink:0;border-radius:9999px;background:var(--acento)}
.escolha{display:flex;flex-direction:column;gap:.75rem}
.escolha a{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.375rem;border-radius:var(--r-card);border:1px solid var(--linha-clara);transition:all .28s}
.escolha a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);transform:translateX(4px)}
.escolha .pj{background:#fff;border-color:#fff}
.escolha .pj b{color:var(--tinta)} .escolha .pj small{color:var(--tinta-3)} .escolha .pj svg{color:var(--marca-600)}
.escolha .pj:hover{background:var(--marca-50);border-color:var(--marca-50)}
.escolha b{display:block;font-size:1.0625rem;font-weight:600;color:#fff}
.escolha small{display:block;font-size:.875rem;color:var(--sobre-2)}

/* ---------- Rodapé ---------- */
footer{position:relative;color:#fff}
.news{border-bottom:1px solid var(--linha-clara)}
.news .faixa{display:grid;gap:2rem;padding-block:4rem}
@media(min-width:1024px){.news .faixa{grid-template-columns:1fr 1fr;gap:4.5rem;align-items:center}}
.news h2{color:#fff;margin-top:1rem;font-size:clamp(1.5rem,2.8vw,2.125rem)}
.news p{margin-top:.875rem;max-width:34rem;color:var(--sobre-2);font-size:.9375rem}
.news form{display:flex;flex-direction:column;gap:.75rem}
@media(min-width:640px){.news form{flex-direction:row}}
.news input{flex:1;height:3.25rem;border-radius:9999px;border:1px solid var(--linha-clara);background:rgba(255,255,255,.06);padding-inline:1.5rem;color:#fff;font-family:inherit;font-size:1rem}
.news input::placeholder{color:rgba(255,255,255,.45)}
.news input:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 4px rgba(244,190,0,.18)}
.news button{flex-shrink:0;height:3.25rem;border-radius:9999px;background:#fff;color:var(--marca-700);font-weight:600;padding-inline:2rem;border:0;cursor:pointer;font-family:inherit;font-size:1rem;transition:background .25s}
.news button:hover{background:var(--marca-50)}
.rod-nav{display:grid;gap:3.5rem;padding-block:4.5rem}
@media(min-width:1024px){.rod-nav{grid-template-columns:minmax(0,20rem) 1fr;gap:5rem}}
.rod-logo img{height:2.75rem;width:auto;filter:brightness(0) invert(1);opacity:.95}
.rod-inst p{margin-top:1.5rem;max-width:22rem;font-size:.9375rem;line-height:1.7;color:var(--sobre-2)}
address{font-style:normal;margin-top:1.75rem;display:flex;flex-direction:column;gap:.875rem;font-size:.9375rem;color:var(--sobre-2)}
address a{display:flex;align-items:flex-start;gap:.75rem;transition:color .25s}
address a:hover{color:#fff}
.sociais{margin-top:1.75rem;display:flex;gap:.5rem}
.sociais a{width:44px;height:44px;display:grid;place-items:center;border-radius:9999px;border:1px solid var(--linha-clara);color:var(--sobre-2);transition:all .25s}
.sociais a:hover{border-color:var(--acento);color:#fff}
.cols{display:grid;gap:2.5rem 2rem}
@media(min-width:640px){.cols{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.cols{grid-template-columns:repeat(4,1fr)}}
.cols h2{font-size:.8125rem;margin-bottom:1.375rem;color:var(--sobre-2);font-family:var(--f-cond);font-weight:300;text-transform:uppercase;letter-spacing:.2em}
.cols li+li{margin-top:.75rem}
.cols a{position:relative;font-size:.9375rem;color:var(--sobre-2);transition:color .25s}
.cols a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:var(--acento);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.cols a:hover{color:#fff}
.cols a:hover::after{transform:scaleX(1)}
.legal{border-top:1px solid var(--linha-clara)}
.legal .faixa{display:flex;flex-direction:column;gap:1rem;padding-block:1.75rem;font-size:.875rem;color:rgba(255,255,255,.5)}
@media(min-width:768px){.legal .faixa{flex-direction:row;align-items:center;justify-content:space-between}}
.legal ul{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.legal a:hover{color:#fff}

/* Flutuantes */
/* --- WhatsApp flutuante ----------------------------------------------------
   Circular, so com o glifo, no formato da referencia (sindvale.com.br).
   56px de lado: acima dos 44px minimos de alvo de toque mesmo sem rotulo. */
.zap{position:fixed;right:1.25rem;bottom:1.25rem;z-index:45;display:flex;align-items:center;gap:.625rem}
@media(min-width:640px){.zap{right:1.75rem;bottom:1.75rem}}
.zap-bolha{position:relative;display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:9999px;background:#25D366;color:#fff;box-shadow:0 10px 26px -8px rgba(37,211,102,.6),0 2px 8px rgba(16,23,43,.2);transition:transform .25s cubic-bezier(.16,1,.3,1),background .2s}
.zap:hover .zap-bolha,.zap:focus-visible .zap-bolha{background:#1FBE5A;transform:scale(1.06)}
.zap-bolha svg{position:relative;z-index:1}

/* Tarja escrita: aparece no hover e TAMBEM no foco por teclado - sem isso
   quem navega sem mouse nunca descobre o que o botao faz. */
.zap-tarja{order:-1;max-width:0;overflow:hidden;white-space:nowrap;padding:.625rem 0;border-radius:9999px;background:#fff;color:var(--tinta);font-size:.875rem;font-weight:600;box-shadow:var(--s-card);opacity:0;transition:max-width .3s cubic-bezier(.16,1,.3,1),opacity .2s,padding .3s}
.zap:hover .zap-tarja,.zap:focus-visible .zap-tarja{max-width:14rem;padding:.625rem 1rem;opacity:1}

/* Anel pulsante - chama o olho sem piscar nem mudar de cor. Some para quem
   pediu menos movimento: animacao em laco infinito e justamente o que
   incomoda quem tem sensibilidade vestibular. */
.zap-pulso{position:absolute;inset:0;border-radius:9999px;border:2px solid #25D366}
@media(prefers-reduced-motion:no-preference){
  .zap-pulso{animation:zap-pulsa 2.4s cubic-bezier(.16,1,.3,1) infinite}
}
@keyframes zap-pulsa{
  0%{transform:scale(1);opacity:.7}
  70%{transform:scale(1.5);opacity:0}
  100%{transform:scale(1.5);opacity:0}
}
html.a11y-sem-movimento .zap-pulso{animation:none;display:none}
/* --- Central de acessibilidade ---------------------------------------------
   Aba fixa na lateral DIREITA, no meio da altura. Fica a direita de proposito:
   o botao do WhatsApp ocupa o canto inferior e os dois nao podem se sobrepor.
   Medidas em px para o painel nao crescer junto com o tamanho do texto. */
.a11y-aba{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:2147483000;display:grid;gap:2px;padding:3px;border-radius:12px 0 0 12px;background:var(--marca-600);box-shadow:0 10px 26px -10px rgba(16,23,43,.45)}
.a11y-fab{width:36px;height:36px;padding:0;border:0;border-radius:9px;display:grid;place-items:center;background:transparent;color:#fff;cursor:pointer;transition:background .2s}
.a11y-fab:hover,.a11y.is-open .a11y-fab:first-child{background:rgba(255,255,255,.16)}
.a11y-fab svg{width:20px;height:20px}
.a11y-fab:focus-visible{outline:2px solid #fff;outline-offset:-3px;box-shadow:none}
#vlibras-access-wrapper{display:none!important}

.a11y-painel{position:fixed;right:54px;top:50%;transform:translateY(-50%);z-index:2147483001;width:356px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:#fff;color:var(--tinta);border:1px solid var(--linha);border-radius:20px;box-shadow:var(--s-elev);font-family:var(--f-corpo);font-size:14px;line-height:1.35}
.a11y-painel[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){.a11y-painel{animation:a11y-entra .2s ease-out}}
@keyframes a11y-entra{from{opacity:0}to{opacity:1}}
@media(max-width:719px){.a11y-painel{top:auto;bottom:8px;left:8px;right:8px;width:auto;max-height:calc(100vh - 16px);transform:none}}
.a11y-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 12px 20px;border-bottom:1px solid var(--linha)}
.a11y-topo h2{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--marca-700)}
.a11y-topo h2 svg{width:22px;height:22px}
.a11y-topo h2:focus{outline:none}
.a11y-fechar{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:1px solid var(--linha);background:#fff;color:var(--tinta-2);cursor:pointer}
.a11y-fechar:hover{background:var(--bruma)}
.a11y-fechar svg{width:18px;height:18px}
.a11y-corpo{overflow-y:auto;overscroll-behavior:contain;padding:2px 16px 16px}
.a11y-rotulo{margin:16px 4px 8px;font-family:var(--f-cond);font-size:11px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3)}
.a11y-grade{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.a11y-grade button{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:10px;min-height:74px;padding:12px;border-radius:12px;border:1px solid var(--linha);background:var(--bruma-2);color:var(--tinta);text-align:left;font:500 13px/1.25 var(--f-corpo);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.a11y-grade button svg{width:22px;height:22px;color:var(--marca-600);flex-shrink:0}
.a11y-grade button small{display:block;margin-top:2px;font:400 11px/1.3 var(--f-corpo);color:var(--tinta-3)}
.a11y-grade button:hover{background:var(--marca-50);border-color:var(--marca-400)}
.a11y-grade button[aria-pressed="true"]{background:var(--marca-600);border-color:var(--marca-600);color:#fff}
.a11y-grade button[aria-pressed="true"] svg{color:#fff}
.a11y-grade button[aria-pressed="true"] small{color:rgba(255,255,255,.72)}
.a11y-grade button:disabled{opacity:.45;cursor:not-allowed}
.a11y-grade .larga{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start;min-height:0;background:var(--marca-50);border-color:var(--marca-200)}
.a11y-grade .larga svg{width:26px;height:26px}
.a11y-tamanho{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:6px;border-radius:12px;border:1px solid var(--linha);background:var(--bruma-2);font-size:13px;font-weight:500}
.a11y-tamanho button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--linha);border-radius:10px;background:#fff;color:var(--marca-600);cursor:pointer}
.a11y-tamanho button:hover{border-color:var(--marca-500)}
.a11y-tamanho button:disabled{opacity:.4;cursor:not-allowed}
.a11y-tamanho button svg{width:18px;height:18px}
.a11y-tamanho output{margin-left:4px;font-weight:600;color:var(--marca-700)}
.a11y-lendo-barra{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 6px 6px 14px;border-radius:12px;background:var(--marca-600);color:#fff;font-size:13px}
.a11y-lendo-barra[hidden]{display:none}
.a11y-lendo-barra span{flex:1}
.a11y-lendo-barra button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.2);color:#fff;cursor:pointer}
.a11y-lendo-barra button:hover{background:rgba(255,255,255,.3)}
.a11y-lendo-barra button svg{width:18px;height:18px}
.a11y-nota{margin:8px 4px 0;font:400 11.5px/1.45 var(--f-corpo);color:var(--tinta-3)}
.a11y-rodape{padding:12px 16px 16px;border-top:1px solid var(--linha)}
.a11y-restaurar{width:100%;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9999px;border:1px solid var(--linha-forte);background:#fff;color:var(--tinta);font:500 13px var(--f-corpo);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.a11y-restaurar:hover{background:var(--tinta);color:#fff}
.a11y-restaurar svg{width:18px;height:18px}

/* Recursos aplicados a pagina */
html[data-a11y-tamanho="-1"]{font-size:90%}
html[data-a11y-tamanho="1"]{font-size:112.5%}
html[data-a11y-tamanho="2"]{font-size:125%}
html[data-a11y-tamanho="3"]{font-size:137.5%}
html[data-a11y-tamanho="4"]{font-size:150%}
/* O filtro vai na RAIZ: e o unico elemento que a especificacao isenta de virar
   bloco de contencao para descendentes com position:fixed. */
html.a11y-cinza{filter:grayscale(1)}
html.a11y-links a:not(.a11y *){text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px;outline:2px solid var(--marca-500)!important;outline-offset:2px}
html.a11y-titulos :is(h1,h2,h3,h4,h5,h6):not(.a11y *){outline:2px dashed var(--marca-500);outline-offset:6px;border-radius:4px}
html.a11y-sem-imagens :is(img,picture,video):not(.a11y *){visibility:hidden!important}
/* Espacamento conforme WCAG 1.4.12 */
html.a11y-espacamento body *:not(.a11y *):not(svg *){line-height:1.5!important;letter-spacing:.12em!important;word-spacing:.16em!important}
html.a11y-espacamento p:not(.a11y *){margin-bottom:2em!important}
html.a11y-fonte body,html.a11y-fonte body *:not(svg *){font-family:"Atkinson Hyperlegible",Verdana,Tahoma,sans-serif!important}
html.a11y-sem-movimento *,html.a11y-sem-movimento *::before,html.a11y-sem-movimento *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
html.a11y-sem-movimento .rev{opacity:1!important;transform:none!important}
/* Alto contraste: eleva os tokens em vez de inverter - inverter destruiria
   fotografias e logotipos. */
html.a11y-contraste{--tinta:#000;--tinta-2:#000;--tinta-3:#1F1F1F;--bruma:#fff;--bruma-2:#F2F2F2;--vidro:#E8E8E8;--marca-50:#fff;--marca-100:#E8EEF5;--marca-600:#00356B;--marca-700:#002952;--linha:#000;--linha-forte:#000;--sobre:#fff;--sobre-2:#fff}
html.a11y-contraste body{background:#fff;color:#000}
html.a11y-contraste a:not([class*="btn"]):not(.a11y *){text-decoration:underline;text-underline-offset:3px}
html.a11y-contraste :is(.g-inst,.g-prof,.hero.g-inst){background:#000!important}
html.a11y-contraste .marca,html.a11y-contraste .anel{display:none}

.a11y-faixa-guia{display:none;position:fixed;left:0;right:0;top:0;height:44px;z-index:2147482999;pointer-events:none;background:rgba(74,129,180,.14);border-block:2px solid var(--marca-500)}
html.a11y-guia .a11y-faixa-guia{display:block}
.a11y-lendo{background:#FBD34D!important;color:#000!important;outline:2px solid #A87F00;outline-offset:2px;border-radius:4px}
@media print{.a11y,.a11y-faixa-guia{display:none!important}}

.aviso{background:var(--marca-950);color:var(--sobre-2);font-size:.8125rem;padding:.625rem 1.25rem;text-align:center;line-height:1.5}
.aviso b{color:var(--acento);font-weight:600}
.aviso a{color:#fff;text-decoration:underline;text-underline-offset:3px}

.rev{opacity:0;transform:translateY(14px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.rev.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.rev{opacity:1;transform:none}}
.pular{position:absolute;left:1rem;top:-100%;z-index:200;background:var(--marca-700);color:#fff;padding:.75rem 1.5rem;border-radius:9999px;font-weight:500;transition:top .18s}
.pular:focus{top:1rem}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* ===========================================================================
   PECAS DO SITE EM PHP
   O que o template renderiza e a folha da previa ainda nao cobria.
   ========================================================================= */

/* ---- Busca (na faixa de atalho) ---------------------------------------- */
/* So a lupa: 2.5rem de lado garante o alvo de toque sem rotulo escrito. */
.busca-btn{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex-shrink:0;border:1px solid var(--linha);border-radius:9999px;background:#fff;color:var(--marca-600);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.busca-btn:hover,.busca-btn[aria-expanded="true"]{border-color:var(--marca-500);background:var(--marca-50);color:var(--marca-700)}
.busca{border-top:1px solid var(--linha);background:var(--bruma)}
.busca[hidden]{display:none}
.busca form{display:flex;align-items:center;gap:.75rem;padding-block:1.25rem}
.busca-campo{position:relative;flex:1}
.busca-ico{position:absolute;top:50%;left:1.25rem;transform:translateY(-50%);pointer-events:none;color:var(--tinta-3);display:grid}
.busca input{width:100%;height:3.25rem;padding:0 1.25rem 0 3.25rem;border:1px solid var(--linha-forte);border-radius:9999px;background:#fff;font:400 1rem var(--f-corpo);color:var(--tinta);outline:none}
.busca input:focus{border-color:var(--marca-500)}
.busca button{height:3.25rem;flex-shrink:0;padding-inline:1.75rem;border:0;border-radius:9999px;background:var(--marca-600);color:#fff;font:600 1rem var(--f-corpo);cursor:pointer;transition:background .2s}
.busca button:hover{background:var(--marca-700)}

/* ---- Mega-menu: link "ver tudo" ---------------------------------------- */
.mega-tudo{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.875rem;font-weight:600;color:var(--marca-600);transition:gap .25s}
.mega-tudo:hover{gap:.875rem}

/* ---- Migalhas ----------------------------------------------------------- */
.migalhas{border-bottom:1px solid var(--linha);background:var(--bruma)}
.migalhas ol{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding-block:.875rem;font-size:.8125rem;color:var(--tinta-3)}
.migalhas li+li::before{content:"/";margin-right:.5rem;color:var(--linha-forte)}
.migalhas a{color:var(--tinta-3)}
.migalhas a:hover{color:var(--marca-600);text-decoration:underline;text-underline-offset:3px}
.migalhas [aria-current="page"]{color:var(--tinta);font-weight:500}

/* ---- Gaveta mobile ------------------------------------------------------ */
.gaveta{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:#fff}
.gaveta[hidden]{display:none}
@media(min-width:1280px){.gaveta{display:none !important}}
.gaveta-topo{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:5rem;padding-inline:1.25rem;border-bottom:1px solid var(--linha)}
.gaveta-corpo{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:1.5rem 1.25rem 2.5rem}
.gaveta-acoes{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.gaveta-acoes a{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;min-height:6rem;padding:1rem;border:1px solid var(--linha-forte);border-radius:var(--r-card);color:var(--marca-700);font-weight:600;font-size:.9375rem}
.gaveta-acoes .is-acao{border-color:var(--marca-600);background:var(--marca-600);color:#fff}
.gaveta-atalhos{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;margin-top:1.5rem}
.gaveta-atalhos a{display:flex;align-items:center;gap:.625rem;padding-block:.625rem;font-size:.9375rem;color:var(--tinta-2)}
.gaveta-atalhos svg{flex-shrink:0;color:var(--marca-500)}
.gaveta-idioma{display:flex;align-items:center;justify-content:space-between;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--linha)}
.idioma-linha{display:flex;gap:.5rem}
.idioma-linha a{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border:1px solid var(--linha);border-radius:9999px;font-size:.875rem;color:var(--tinta-2)}
.idioma-linha a[aria-current="true"]{border-color:var(--marca-600);background:var(--marca-50);color:var(--marca-700);font-weight:600}
.gaveta-areas{margin-top:1.5rem;border-block:1px solid var(--linha)}
.gaveta-areas>li{border-bottom:1px solid var(--linha)}
.gaveta-areas>li:last-child{border-bottom:0}
.gaveta-areas>li>button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.75rem;padding-block:1rem;border:0;background:none;text-align:left;font:600 1.125rem var(--f-tit);color:var(--tinta);cursor:pointer}
.gaveta-areas>li>button svg{flex-shrink:0;color:var(--tinta-3);transition:transform .3s}
.gaveta-areas>li>button[aria-expanded="true"] svg{transform:rotate(180deg)}
.gaveta-areas>li>ul{padding-bottom:.75rem}
.gaveta-areas>li>ul[hidden]{display:none}
.gaveta-areas>li>ul a{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .25rem}
.gaveta-areas strong{display:block;font-weight:500;line-height:1.35;color:var(--tinta)}
.gaveta-areas small{display:block;margin-top:2px;font-size:.8125rem;line-height:1.35;color:var(--tinta-3)}
.gaveta-tel{display:flex;align-items:center;justify-content:center;gap:.625rem;margin-top:1.5rem;padding:1rem 1.5rem;border-radius:9999px;background:var(--bruma-2);font-weight:500;color:var(--marca-700)}


/* ===========================================================================
   ACESSOS RAPIDOS
   Encostam na borda inferior do banner, como na referencia.
   ========================================================================= */
.atalhos-secao{padding-block:0;margin-top:-3.5rem;position:relative;z-index:3}
.atalhos{display:grid;gap:.75rem;grid-template-columns:1fr}
@media(min-width:640px){.atalhos{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.atalhos{grid-template-columns:repeat(4,1fr)}}
.atalhos a{display:flex;align-items:center;gap:.875rem;height:100%;padding:1.125rem 1.25rem;border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;box-shadow:var(--s-card);font-size:.9375rem;font-weight:500;color:var(--tinta);transition:border-color .2s,transform .25s}
.atalhos a:hover{border-color:var(--acento);transform:translateY(-2px)}
.atalhos a>span:nth-child(2){flex:1;line-height:1.3}
.atalhos a>svg:last-child{flex-shrink:0;color:var(--marca-500);opacity:0;transform:translateX(-4px);transition:all .25s}
.atalhos a:hover>svg:last-child{opacity:1;transform:none}
.atalhos .selo{flex-shrink:0;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:var(--r-sm);background:var(--marca-50);color:var(--marca-600);transition:background .2s,color .2s}
.atalhos a:hover .selo{background:var(--marca-600);color:#fff}

/* ===========================================================================
   CURSOS + AGENDA
   Formato bento: ladrilhos de tamanhos diferentes, cada um respondendo a uma
   pergunta distinta - agenda, trilhas, estrutura e os mais procurados.
   ========================================================================= */
.secao-topo{display:grid;gap:1.5rem;margin-bottom:3rem}
@media(min-width:1024px){.secao-topo{grid-template-columns:1fr 1fr;gap:4rem;align-items:end}}
.secao-topo h2{margin-top:.875rem}
.secao-topo .dest{color:var(--marca-600)}
.secao-topo p{font-size:1rem;line-height:1.75;color:var(--tinta-3)}
.secao-topo strong{color:var(--tinta-2);font-weight:600}

.cursos-grade{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:720px){.cursos-grade{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){
  .cursos-grade{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(0,auto)}
  .ladrilho-agenda{grid-row:span 2}
  .ladrilho-destaques{grid-column:span 2}
}

.ladrilho{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:1.75rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff;transition:border-color .2s,transform .25s}
a.ladrilho:hover{border-color:var(--acento);transform:translateY(-2px)}
.ladrilho h3{font-size:1.25rem;line-height:1.2}
.ladrilho>p{margin-top:.625rem;font-size:.9375rem;line-height:1.6;color:var(--tinta-3)}
.ladrilho .selo{display:grid;place-items:center;width:2.75rem;height:2.75rem;margin-bottom:1.25rem;border-radius:var(--r-sm);background:var(--marca-50);color:var(--marca-600);transition:background .2s,color .2s}
a.ladrilho:hover .selo{background:var(--marca-600);color:#fff}
.ladrilho-topo{display:flex;align-items:center;gap:.875rem;margin-bottom:1.25rem}
.ladrilho-topo .selo,.ladrilho-topo .selo-claro{margin-bottom:0}
.ladrilho-conta{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;padding-top:1.5rem;font-size:.875rem;font-weight:600;color:var(--marca-600);transition:gap .25s}
a.ladrilho:hover .ladrilho-conta{gap:.875rem}
.ladrilho-acao{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;padding-top:1.5rem;font-size:.875rem;font-weight:600;transition:gap .25s}
.ladrilho-acao:hover{gap:.875rem}

/* Agenda: ladrilho escuro, o unico da secao - e o que deve ser visto primeiro. */
.ladrilho-agenda{color:#fff;border-color:transparent}
.ladrilho-agenda h3{color:#fff}
.ladrilho-agenda>p{color:var(--sobre-2)}
.ladrilho-agenda .marca{position:absolute;top:-2rem;right:-3rem;width:14rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.06;filter:brightness(0) invert(1)}
.ladrilho-agenda .ladrilho-acao{color:var(--acento)}
.selo-claro{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:var(--r-sm);background:rgba(255,255,255,.12);color:#fff}
.agenda-meses{position:relative;display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem}
.agenda-meses a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;border:1px solid var(--linha-clara);border-radius:var(--r-sm);font-size:.9375rem;color:var(--sobre-2);transition:background .2s,border-color .2s}
.agenda-meses a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff}
.agenda-meses strong{color:#fff;font-weight:600}

/* Mais procurados */
.cursos-lista{display:flex;flex-direction:column}
.cursos-lista li+li{border-top:1px solid var(--linha)}
.cursos-lista a{display:block;padding-block:.875rem}
.cursos-lista strong{display:block;font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--tinta);transition:color .2s}
.cursos-lista a:hover strong{color:var(--marca-700)}
.cursos-lista small{display:block;margin-top:.25rem;font-size:.8125rem;line-height:1.45;color:var(--tinta-3)}
@media(min-width:1100px){.ladrilho-destaques .cursos-lista{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.ladrilho-destaques .cursos-lista li:nth-child(2){border-top:0}}

/* ---- Pagina 404 ---------------------------------------------------------
   Util, nao um beco sem saida: o site atual tem 160 paginas e muita gente vai
   chegar aqui por link antigo. ----------------------------------------- */
.erro-404{max-width:48rem}
.erro-404 h1{margin-top:1rem;font-size:var(--t-h2)}
.erro-404>p{margin-top:1rem;font-size:1.0625rem;line-height:1.75;color:var(--tinta-3)}
.erro-404 .atalhos{margin-top:2.5rem}
.erro-contato{margin-top:2rem;font-size:.9375rem;color:var(--tinta-3)}
.erro-contato a{color:var(--marca-600);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ===========================================================================
   PAGINAS INTERNAS
   ========================================================================= */

/* ---- Banner das paginas internas --------------------------------------- */
/* =========================================================================
   BANNER DO TOPO DAS PAGINAS INTERNAS

   Formato das referencias: fundo CLARO, texto a esquerda e a imagem a
   direita recortada em ARCO - topo redondo, pe reto.

   Era painel azul escuro. Virou claro porque o azul cheio no topo de TODA
   pagina interna repetia o peso do cabecalho e competia com o conteudo
   logo abaixo. Os blocos azuis continuam - onde carregam conteudo proprio.
   ========================================================================= */
.hero-pagina{position:relative;overflow:hidden;padding-block:3.5rem 4rem}
.hero-pagina-grade{display:grid;gap:2.5rem;align-items:center}
@media(min-width:960px){
  .hero-pagina-grade{grid-template-columns:1.05fr .95fr;gap:4rem}
  .hero-pagina{padding-block:4rem 5rem}
}
.hero-pagina-conteudo{position:relative;max-width:34rem}
.hero-pagina-conteudo h1{margin-top:1.25rem;font-size:var(--t-h1);line-height:1.04;letter-spacing:-.025em;color:var(--azul-inst)}
.hero-pagina-apoio{margin-top:1.5rem;font-size:1.0625rem;line-height:1.75;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.hero-pagina-acoes{display:flex;flex-wrap:wrap;gap:.875rem;margin-top:2.25rem}

/* ---- O arco ----
   border-radius com barra separa o raio HORIZONTAL do VERTICAL: o topo
   fica com meia volta larga e o pe quase reto. E o recorte da referencia,
   feito sem mascara nem imagem - so raio. */
.hero-pagina-arte{position:relative;justify-self:center;width:100%;max-width:30rem}
.hero-pagina-foto{
  position:relative;display:block;aspect-ratio:4/5;
  border-radius:50% 50% var(--r-bloco) var(--r-bloco) / 42% 42% var(--r-bloco) var(--r-bloco);
  background-size:cover;background-position:center;overflow:hidden;
}
/* FOTOGRAFIA A FORNECER: sem arquivo, o gradiente da identidade assume. */
.hero-pagina-foto.is-vazia{
  background:
    radial-gradient(24rem 20rem at 70% 16%,rgba(74,129,180,.5),transparent 64%),
    linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 48%,var(--marca-900) 100%);
}
/* O bloco azul atras, deslocado - gesto da segunda referencia. Da fundo ao
   arco sem fechar caixa em volta dele. */
.hero-pagina-bloco{
  position:absolute;z-index:-1;right:-6%;top:12%;width:62%;height:76%;
  border-radius:var(--r-bloco);background:var(--vidro);
}

/* ---- Compacto: leitura de materia, sem arco e sem titulo grande ---- */
.hero-pagina.is-compacto{padding-block:2.5rem 1.5rem}
.hero-pagina-rotulo{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h4);font-weight:600;color:var(--azul-inst)}

@media(max-width:719px){.hero-pagina{padding-block:2.5rem 3rem}}

/* ---- Coluna de texto institucional -------------------------------------- */
.texto-coluna{max-width:52rem}
.texto-coluna h2{margin-top:.875rem}
.texto-coluna .dest{color:var(--marca-600)}
.texto-coluna p{margin-top:1.25rem;font-size:1.0625rem;line-height:1.8;color:var(--tinta-2)}

/* Numeros grandes: o dado sustenta a afirmacao, nao a decora. */
.fatos{display:grid;gap:1.5rem;margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--linha)}
@media(min-width:640px){.fatos{grid-template-columns:repeat(3,1fr);gap:2.5rem}}
.fatos strong{display:block;font-family:var(--f-tit);font-size:clamp(2.25rem,1.6rem + 2vw,3rem);font-weight:600;line-height:1;color:var(--marca-600);letter-spacing:-.02em}
.fatos span{display:block;margin-top:.625rem;font-size:.9375rem;line-height:1.5;color:var(--tinta-3)}

/* ---- Missao, visao e valores -------------------------------------------- */
.mvv{display:grid;gap:1rem}
@media(min-width:900px){.mvv{grid-template-columns:repeat(3,1fr)}}
.mvv-bloco{display:flex;flex-direction:column;padding:2rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--bruma)}
.mvv-bloco h3{margin-bottom:.875rem;font-size:1.25rem}
.mvv-bloco p{font-size:.9375rem;line-height:1.7;color:var(--tinta-3)}
.mvv-bloco .selo{display:grid;place-items:center;width:2.75rem;height:2.75rem;margin-bottom:1.25rem;border-radius:var(--r-sm);background:#fff;border:1px solid var(--linha);color:var(--marca-600)}
.mvv-valores{display:flex;flex-direction:column;gap:.75rem}
.mvv-valores li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;line-height:1.6;color:var(--tinta-3)}
.mvv-valores svg{flex-shrink:0;margin-top:.3125rem;color:var(--marca-500)}

/* ---- Palavra do presidente ---------------------------------------------- */
.presidente-secao{position:relative;overflow:hidden}
.presidente-secao .marca{position:absolute;top:-4rem;right:-4rem;width:26rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.05;filter:brightness(0) invert(1)}
.presidente{position:relative;display:grid;gap:3rem}
@media(min-width:1024px){.presidente{grid-template-columns:1.6fr 1fr;gap:4.5rem;align-items:start}}
.presidente-texto h2{margin-top:1.125rem;color:#fff;font-size:var(--t-h3);max-width:28ch}
.presidente-texto p{margin-top:1.125rem;font-size:1rem;line-height:1.8;color:var(--sobre-2)}
.presidente-assina{margin-top:2rem!important;padding-top:1.5rem;border-top:1px solid var(--linha-clara)}
.presidente-assina strong{display:block;color:#fff;font-weight:600}
.presidente-assina span{display:block;margin-top:.25rem;font-size:.875rem;color:rgba(255,255,255,.55)}
.presidente-cartao{overflow:hidden;border:1px solid var(--linha-clara);border-radius:var(--r-bloco);background:rgba(255,255,255,.05)}
.presidente-cartao .foto{aspect-ratio:4/5;display:grid;place-items:center;background:rgba(255,255,255,.05)}
.presidente-dados{padding:1.5rem}
.presidente-dados strong{display:block;color:#fff;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600}
.presidente-dados p{margin-top:.625rem;font-size:.875rem;line-height:1.6;color:var(--sobre-2)}

/* ---- Cartoes (grade generica de itens) ---------------------------------- */
.cartoes{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.cartoes{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.cartoes{grid-template-columns:repeat(3,1fr)}}
.cartoes>li>a,.cartao-estatico{position:relative;display:flex;flex-direction:column;height:100%;padding:1.5rem;border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;transition:border-color .2s,transform .25s}
.cartoes>li>a:hover{border-color:var(--acento);transform:translateY(-2px)}
.cartoes .selo{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:1.125rem;border-radius:var(--r-sm);background:var(--marca-50);color:var(--marca-600);transition:background .2s,color .2s}
.cartoes>li>a:hover .selo{background:var(--marca-600);color:#fff}
.cartoes strong{font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--tinta)}
.cartoes small{margin-top:.5rem;font-size:.875rem;line-height:1.6;color:var(--tinta-3)}
.cartao-seta{margin-top:auto;padding-top:1.25rem;color:var(--marca-500);opacity:0;transform:translateX(-4px);transition:all .25s}
.cartoes>li>a:hover .cartao-seta{opacity:1;transform:none}

/* ---- Servicos: os quatro pilares ---------------------------------------- */
.serv-pilares{display:grid;gap:1rem}
@media(min-width:900px){.serv-pilares{grid-template-columns:1fr 1fr;gap:1.25rem}}
.serv-pilar{display:flex;flex-direction:column;padding:2rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff}
.serv-pilar h3{font-size:1.375rem}
.serv-pilar>p{margin-top:.75rem;font-size:.9375rem;line-height:1.7;color:var(--tinta-3)}
.serv-pilar .selo{display:grid;place-items:center;width:3rem;height:3rem;margin-bottom:1.25rem;border-radius:var(--r-sm);background:var(--marca-50);color:var(--marca-600)}
.serv-itens{display:flex;flex-direction:column;gap:.625rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--linha)}
.serv-itens li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;line-height:1.5;color:var(--tinta-2)}
.serv-itens svg{flex-shrink:0;margin-top:.1875rem;color:var(--marca-500)}

/* ---- Diretoria ----------------------------------------------------------- */
.diretoria{display:grid;gap:2.5rem}
@media(min-width:720px){.diretoria{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.diretoria{grid-template-columns:repeat(4,1fr);gap:2rem}}
/* Sem fio embaixo: o titulo se destaca pela cor e pelo peso, nao por um
   sublinhado. */
.diretoria-grupo h3{margin-bottom:1.25rem;color:var(--marca-600)}
.diretoria-grupo ul{display:flex;flex-direction:column;gap:1rem}
.diretoria-cargo{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-3)}
.diretoria-nome{display:block;margin-top:.1875rem;font-size:.9375rem;font-weight:500;line-height:1.35;color:var(--tinta)}

.galeria-presidentes{margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid var(--linha)}
.galeria-presidentes ul{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.25rem}
.galeria-presidentes li{padding:.5rem 1rem;border:1px solid var(--linha);border-radius:9999px;font-size:.875rem;color:var(--tinta-2)}

/* ---- Chamada (CTA) ------------------------------------------------------- */
.cta{display:grid;gap:2rem;padding:3rem 2rem}
@media(min-width:900px){.cta{grid-template-columns:1.5fr 1fr;gap:3rem;align-items:center;padding:3.5rem 3rem}}
.cta .marca{position:absolute;top:-3rem;right:-3rem;width:20rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.06;filter:brightness(0) invert(1)}
.cta>div{position:relative}
.cta p{margin-top:1rem;font-size:.9375rem;line-height:1.7;color:var(--sobre-2)}
.cta-acoes{display:flex;flex-wrap:wrap;gap:.875rem}
@media(min-width:900px){.cta-acoes{justify-content:flex-end}}

/* ===========================================================================
   CURSOS: cartoes do catalogo
   ========================================================================= */
.cursos-cartoes{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.cursos-cartoes{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.cursos-cartoes{grid-template-columns:repeat(3,1fr)}}
.cursos-cartoes>li>a{display:flex;flex-direction:column;height:100%;padding:1.5rem;border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;transition:border-color .2s,transform .25s}
.cursos-cartoes>li>a:hover{border-color:var(--acento);transform:translateY(-2px)}
.cursos-cartoes strong{font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--tinta)}
.cursos-cartoes>li>a:hover strong{color:var(--marca-700)}
.cursos-cartoes small{margin-top:.5rem;font-size:.875rem;line-height:1.6;color:var(--tinta-3)}
/* Etiquetas: contorno em vez de preenchimento. Elas classificam, nao chamam -
   um retangulo de cor cheia competiria com o proprio titulo do cartao. */
.etiqueta{display:inline-flex;align-items:center;gap:.375rem;align-self:flex-start;margin-bottom:.875rem;padding:.25rem .625rem;border-radius:9999px;background:transparent;border:1px solid var(--acento);color:#8A6A00;font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase}
.etiqueta svg{color:#B38600}

/* Faixa da agenda na capa de cursos */
.agenda-faixa{position:relative;overflow:hidden;display:grid;gap:2rem;padding:2.5rem 2rem;border-radius:var(--r-bloco);color:#fff}
@media(min-width:900px){.agenda-faixa{grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;padding:3rem}}
.agenda-faixa .marca{position:absolute;top:-3rem;right:-3rem;width:18rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.06;filter:brightness(0) invert(1)}
.agenda-faixa-texto{position:relative}
.agenda-faixa h2{margin-top:1rem;color:#fff;font-size:var(--t-h3)}
.agenda-faixa p{margin-top:.875rem;font-size:.9375rem;line-height:1.7;color:var(--sobre-2)}

/* ===========================================================================
   CONTATO
   ========================================================================= */
.contato-grid{display:grid;gap:3rem}
@media(min-width:1024px){.contato-grid{grid-template-columns:1.3fr 1fr;gap:4rem;align-items:start}}
.contato-grid h2{margin-top:.875rem}
.contato-intro{margin-top:1rem;font-size:1rem;line-height:1.75;color:var(--tinta-3)}

.contato-aside{display:flex;flex-direction:column;gap:1.25rem}
.contato-sede{padding:1.75rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--bruma)}
.contato-sede address{font-style:normal;margin-top:1.25rem}
.contato-sede p{font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}
.contato-sede strong{display:block;color:var(--tinta);font-weight:600}
.contato-ref{margin-top:.75rem;font-size:.8125rem!important;color:var(--tinta-3)}
.contato-mapa{overflow:hidden;border:1px solid var(--linha);border-radius:var(--r-bloco)}
.contato-mapa iframe{display:block;width:100%;border:0;aspect-ratio:4/3}
html.a11y-contraste .contato-mapa{display:none}

/* ===========================================================================
   FORMULARIOS
   Rotulo SEMPRE visivel acima do campo - nunca so placeholder: placeholder
   some quando a pessoa comeca a digitar, e quem se distrai perde a referencia.
   Altura minima de 48px em todo controle (alvo de toque).
   ========================================================================= */
.form{margin-top:2rem;display:flex;flex-direction:column;gap:1.25rem}
.campo{display:flex;flex-direction:column;gap:.5rem}
.campo-dupla{display:grid;gap:1.25rem}
@media(min-width:560px){.campo-dupla{grid-template-columns:1fr 1fr}}
.campo label,.campo-aceite label{font-size:.875rem;font-weight:500;color:var(--tinta-2)}
.campo label span{color:#B42318}
.campo input,.campo select,.campo textarea{width:100%;min-height:3rem;padding:.75rem 1rem;border:1px solid var(--linha-forte);border-radius:var(--r-sm);background:#fff;font:400 1rem/1.5 var(--f-corpo);color:var(--tinta);outline:none;transition:border-color .2s,box-shadow .2s}
.campo textarea{min-height:9rem;resize:vertical}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:var(--marca-400)}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--marca-500);box-shadow:0 0 0 4px rgba(12,70,131,.12)}
.campo [aria-invalid="true"]{border-color:#B42318}
.campo [aria-invalid="true"]:focus{box-shadow:0 0 0 4px rgba(180,35,24,.14)}
.campo select{appearance:none;-webkit-appearance:none;padding-right:2.75rem;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C4683' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1rem}
.campo-erro{margin-top:.125rem;font-size:.8125rem;line-height:1.4;color:#B42318}

.campo-aceite{display:flex;align-items:flex-start;gap:.75rem}
.campo-aceite input{width:1.125rem;height:1.125rem;margin-top:.1875rem;flex-shrink:0;accent-color:var(--marca-600);cursor:pointer}
.campo-aceite label{font-size:.875rem;line-height:1.6;color:var(--tinta-3);font-weight:400}
.campo-aceite a{color:var(--marca-600);font-weight:500;text-decoration:underline;text-underline-offset:3px}

.form-obrigatorio{font-size:.8125rem;color:var(--tinta-3)}
.form-obrigatorio span{color:#B42318}
.form-estado{min-height:1.25rem;font-size:.9375rem;line-height:1.5}
.form-estado.is-ok{color:#126B3F;font-weight:500}
.form-estado.is-erro{color:#B42318;font-weight:500}

/* Armadilha para robo: fora da tela, fora do fluxo de foco. */
.armadilha{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Avisos de resultado (caminho sem JavaScript) */
.aviso{display:flex;align-items:flex-start;gap:.625rem;margin-top:1.5rem;padding:1rem 1.25rem;border-radius:var(--r-sm);font-size:.9375rem;line-height:1.6}
.aviso svg{flex-shrink:0;margin-top:.1875rem}
.aviso-ok{background:#E8F5EE;border:1px solid #9AD3B4;color:#0F5B35}
.aviso-erro{background:#FDECEA;border:1px solid #F3B4AE;color:#8C1C14}

/* ---- Botao de envio do formulario -------------------------------------
   :not(.btn) e o ponto importante. Estas regras nasceram para o <button> do
   formulario, que nao leva .btn - mas o nome .btn-acao e o mesmo da variante
   de botao do site e, por vir depois, elas venciam a regra base. O efeito
   era um par de CTAs com alturas diferentes: o cheio em 3.25rem, o vazado
   em 3rem MAIS 1.5rem de margem superior. Lado a lado no banner de uma
   pagina interna, um ficava mais alto e deslocado do outro.

   Com :not(.btn) o formulario mantem o seu botao e todo CTA marcado .btn
   volta a medir pela regra base - mesma altura, mesmo raio, mesma fonte.
   As duas regras de .btn-contorno que viviam aqui sairam pelo mesmo motivo:
   nenhuma marcacao usa .btn-contorno sem .btn. */
.btn-acao:not(.btn){align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;min-height:3.25rem;padding:0 1.75rem;border:0;border-radius:9999px;background:var(--marca-600);color:#fff;font:600 1rem var(--f-corpo);cursor:pointer;transition:background .2s}
.btn-acao:not(.btn):hover{background:var(--marca-700)}
.btn-acao:disabled{opacity:.6;cursor:progress}

/* ---- Tabelas ------------------------------------------------------------
   A tabela rola sozinha no celular em vez de empurrar a pagina inteira. --- */
.tabela-rolagem{margin-top:1.75rem;overflow-x:auto}
.tabela{width:100%;min-width:26rem;border-collapse:collapse;text-align:left}
.tabela th,.tabela td{padding:.875rem 1rem;border-bottom:1px solid var(--linha);font-size:.9375rem;line-height:1.5}
.tabela thead th{font-family:var(--f-cond);font-weight:400;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3)}
.tabela tbody th{font-weight:500;color:var(--tinta);white-space:nowrap}
.tabela td{color:var(--tinta-2)}
kbd{display:inline-block;padding:.25rem .5rem;border:1px solid var(--linha-forte);border-bottom-width:2px;border-radius:6px;background:var(--bruma-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;color:var(--tinta)}

/* ===========================================================================
   POR ONDE COMECAR
   Cartao branco sobrepondo a borda inferior do banner, como na referencia.
   Agrupa por QUEM chega: a empresa de um lado, a pessoa do outro.
   ========================================================================= */
/* Sem sobreposicao: o banner agora e baixo, e o cartao por cima cobriria os
   pontos e o botao de pausa. */
.comecar-secao{position:relative;z-index:4;padding:2rem var(--gutter) 0}
.comecar{padding:2.5rem 1.5rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff;box-shadow:var(--s-elev)}
@media(min-width:900px){.comecar{padding:3rem 3.5rem}}
.comecar>header{text-align:center;max-width:40rem;margin:0 auto 2.5rem}
.comecar h2{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.125rem);line-height:1.2;color:var(--marca-700)}
.comecar h2 strong{font-weight:700;color:var(--marca-600)}
.comecar>header p{margin-top:.875rem;font-size:.9375rem;line-height:1.65;color:var(--tinta-3)}

.comecar-grupos{display:grid;gap:2rem}
@media(min-width:900px){.comecar-grupos{grid-template-columns:1fr 1fr;gap:2.5rem}}

/* O rotulo do grupo vem entre dois fios, como na referencia. */
.comecar-rotulo{display:flex;align-items:center;gap:.875rem;margin-bottom:1rem;font-family:var(--f-cond);font-size:.75rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3)}
.comecar-rotulo::before,.comecar-rotulo::after{content:"";height:1px;flex:1;background:var(--linha-forte)}

.comecar-cartoes{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.comecar-cartao{display:flex;flex-direction:column;align-items:center;gap:.875rem;padding:1.5rem 1rem;border-radius:var(--r-card);text-align:center}
.comecar-cartao p{font-family:var(--f-tit);font-size:1.0625rem;line-height:1.25}
.comecar-cartao strong{display:block;font-weight:700}
.comecar-botao{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:0 1.125rem;border-radius:var(--r-sm);background:var(--marca-900);color:#fff;font-size:.8125rem;font-weight:600;transition:background .2s}
.comecar-botao:hover{background:var(--marca-950)}
.comecar-saiba{font-size:.75rem;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s}
.comecar-saiba:hover{opacity:.7}

/* Os quatro tons vem da paleta: azul profundo, azul institucional, ambar e
   um azul-claro de apoio. Nenhum deles e decorativo - cada cartao e um
   caminho diferente, e a cor ajuda a distinguir de relance. */
.tom-forte{background:var(--marca-600);color:#fff}
.tom-forte .comecar-saiba{color:rgba(255,255,255,.85)}
.tom-suave{background:var(--bruma-2);color:var(--tinta);border:1px solid var(--linha)}
.tom-suave .comecar-saiba{color:var(--tinta-3)}
.tom-acento{background:var(--acento);color:var(--marca-950)}
.tom-acento .comecar-botao{background:var(--marca-900)}
.tom-acento .comecar-saiba{color:rgba(3,18,35,.75)}
.tom-claro{background:var(--marca-50);color:var(--marca-700);border:1px solid var(--marca-100)}
.tom-claro .comecar-saiba{color:var(--marca-500)}

@media(max-width:479px){
  .comecar-cartoes{grid-template-columns:1fr}
  .comecar-cartao{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;text-align:left;gap:.75rem 1rem}
  .comecar-cartao p{flex:1 0 100%}
}

/* ---- Rodape de secao (link "ver todos") -------------------------------- */
.secao-rodape{margin-top:2rem}

/* ===========================================================================
   NOTICIAS
   ========================================================================= */
.noticia-principal{position:relative;display:block;padding:2.25rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--bruma);transition:border-color .2s,transform .25s}
@media(min-width:900px){.noticia-principal{padding:3rem}}
.noticia-principal:hover{border-color:var(--acento);transform:translateY(-2px)}
.noticia-selo{display:inline-flex;align-items:center;gap:.5rem;padding:.3125rem .75rem;border-radius:9999px;background:transparent;border:1px solid var(--marca-300);color:var(--marca-600);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}
.noticia-principal h3{margin-top:1.25rem;max-width:34ch;font-size:clamp(1.375rem,1.1rem + 1.1vw,2rem);line-height:1.2}
.noticia-principal:hover h3{color:var(--marca-700)}
.noticia-principal p{margin-top:1rem;max-width:62ch;font-size:1rem;line-height:1.7;color:var(--tinta-3)}
.noticia-principal footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--linha)}
.noticia-principal time{font-size:.875rem;color:var(--tinta-3)}
.noticia-ler{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--marca-600);transition:gap .25s}
.noticia-principal:hover .noticia-ler{gap:.875rem}

.noticias-lista{display:flex;flex-direction:column;border-top:1px solid var(--linha)}
.noticias-lista li{border-bottom:1px solid var(--linha)}
.noticias-lista a{display:grid;gap:.5rem 1.5rem;padding:1.25rem .25rem;transition:background .2s}
@media(min-width:720px){
  .noticias-lista a{grid-template-columns:6.5rem 1fr 1.5rem;align-items:start;padding-inline:.75rem}
}
.noticias-lista a:hover{background:var(--bruma)}
.noticias-lista time{font-size:.8125rem;line-height:1.6;color:var(--tinta-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.noticia-texto strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.35;color:var(--tinta);transition:color .2s}
.noticias-lista a:hover .noticia-texto strong{color:var(--marca-700)}
.noticia-texto small{display:block;margin-top:.375rem;font-size:.875rem;line-height:1.6;color:var(--tinta-3)}
.noticia-seta{display:none;color:var(--marca-500);opacity:0;transition:opacity .2s}
@media(min-width:720px){.noticia-seta{display:grid;place-items:center;padding-top:.25rem}}
.noticias-lista a:hover .noticia-seta{opacity:1}

/* ===========================================================================
   CONVENCOES COLETIVAS
   ========================================================================= */
.cct-bloco+.cct-bloco{margin-top:3rem}
.cct-periodo{display:flex;flex-wrap:wrap;align-items:center;gap:.875rem;font-family:var(--f-tit);font-size:1.25rem;font-weight:600;color:var(--marca-600)}
.etiqueta-vigente{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:9999px;background:transparent;border:1px solid #9AD3B4;color:#0F5B35;font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase}

.cct-lista{display:grid;gap:.5rem;margin-top:1.5rem}
@media(min-width:720px){.cct-lista{grid-template-columns:1fr 1fr}}
@media(min-width:1200px){.cct-lista{grid-template-columns:1fr 1fr 1fr}}
.cct-lista a{display:flex;align-items:center;gap:.875rem;height:100%;padding:1rem 1.125rem;border:1px solid var(--linha);border-radius:var(--r-sm);background:#fff;transition:border-color .2s,background .2s}
.cct-lista a:hover{border-color:var(--acento);background:var(--marca-50)}
.cct-ico{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex-shrink:0;border-radius:var(--r-sm);background:var(--bruma-2);color:var(--marca-600);transition:background .2s,color .2s}
.cct-lista a:hover .cct-ico{background:var(--marca-600);color:#fff}
.cct-nome{flex:1;font-size:.9375rem;font-weight:500;line-height:1.35;color:var(--tinta)}
.cct-baixar{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-family:var(--f-cond);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3)}
.cct-lista a:hover .cct-baixar{color:var(--marca-600)}

/* ---- Convenios: indice dos grupos --------------------------------------- */
.convenios-indice{display:grid;gap:.75rem;grid-template-columns:1fr}
@media(min-width:640px){.convenios-indice{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.convenios-indice{grid-template-columns:repeat(4,1fr)}}
.convenios-indice a{display:flex;flex-direction:column;height:100%;padding:1.25rem;border:1px solid var(--linha);border-radius:var(--r-card);background:var(--bruma);transition:border-color .2s,background .2s}
.convenios-indice a:hover{border-color:var(--acento);background:var(--marca-50)}
.convenios-indice .selo{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:1rem;border-radius:var(--r-sm);background:#fff;border:1px solid var(--linha);color:var(--marca-600)}
.convenios-indice strong{font-family:var(--f-tit);font-size:1rem;font-weight:600;line-height:1.3;color:var(--tinta)}
.convenios-indice small{margin-top:.375rem;font-size:.8125rem;color:var(--tinta-3)}
.convenio-parceiro{display:block;margin-top:.375rem;font-family:var(--f-cond);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--marca-500)}

/* ===========================================================================
   RODAPE
   Formato da referencia aprovada: bloco azul com a trilha VERTICAL de redes a
   esquerda, colunas de navegacao no meio, endereco discreto a direita - e uma
   barra clara embaixo com a marca, o selo da CNC e o aviso legal.
   ========================================================================= */
/* Arredonda EMBAIXO, curvando para a barra clara - como na referencia. */
.rodape-bloco{position:relative;overflow:hidden;color:var(--sobre-2);border-radius:0 0 var(--r-bloco) var(--r-bloco)}
.rodape-bloco .marca{position:absolute;bottom:-10rem;right:-6rem;width:30rem;aspect-ratio:800/880;background:url("../img/elemento-sincofarma.png") no-repeat center/contain;opacity:.05;filter:brightness(0) invert(1)}

/* Duas colunas: redes + atalhos. O endereco virou faixa horizontal abaixo. */
.rodape-corpo{position:relative;display:grid;gap:2rem;padding-block:3rem 2rem}
@media(min-width:720px){.rodape-corpo{grid-template-columns:auto 1fr;gap:2.5rem;align-items:start}}

/* ---- Trilha vertical de redes ------------------------------------------ */
.rodape-trilha{display:flex;gap:.625rem}
@media(min-width:1200px){.rodape-trilha{flex-direction:column}}
.rodape-trilha a{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--linha-clara);border-radius:9999px;color:#fff;transition:background .2s,border-color .2s}
.rodape-trilha a:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4)}

/* ---- Colunas ------------------------------------------------------------ */
.rodape-colunas{display:grid;gap:2rem 1.5rem;grid-template-columns:1fr 1fr}
@media(min-width:720px){.rodape-colunas{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.rodape-colunas{grid-template-columns:repeat(5,1fr)}}
/* O titulo da coluna e o unico ambar do rodape - marca onde cada lista comeca. */
.rodape-colunas h2{margin-bottom:1rem;font-family:var(--f-tit);font-size:1rem;font-weight:600;line-height:1.2;color:var(--acento)}
.rodape-colunas ul{display:flex;flex-direction:column;gap:.75rem}
.rodape-colunas a{font-size:.875rem;line-height:1.45;color:var(--sobre-2);transition:color .2s}
.rodape-colunas a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* ---- Endereco (discreto) ------------------------------------------------ */
/* ---- Faixa de endereco (horizontal, abaixo dos atalhos) ---------------- */
/* Sem fio separando os atalhos do endereco: o respiro ja marca a troca de
   assunto, e mais uma linha dura no rodape escuro so acrescentava ruido. */
.rodape-endereco{position:relative;display:grid;gap:1.5rem;padding-block:2.5rem 1.75rem}
@media(min-width:900px){.rodape-endereco{grid-template-columns:1fr auto auto;gap:2.5rem;align-items:center}}
.rodape-end-texto h2{margin-bottom:.375rem;font-family:var(--f-tit);font-size:1rem;font-weight:600;color:var(--acento)}
.rodape-end-texto address{font-style:normal;font-size:.8125rem;line-height:1.6;color:var(--sobre-2)}

/* Mapa em miniatura. O iframe fica inerte (pointer-events:none + tabindex=-1)
   e quem recebe o clique e o <a> em volta: mapa embutido rouba o scroll da
   pagina e prende o foco do teclado la dentro. */
.rodape-mapinha{position:relative;display:block;overflow:hidden;width:100%;max-width:17rem;border:1px solid var(--linha-clara);border-radius:var(--r-sm);line-height:0}
.rodape-mapinha iframe{display:block;width:100%;height:6rem;border:0;pointer-events:none;filter:grayscale(.35) contrast(.95)}
.rodape-mapinha span{position:absolute;right:.5rem;bottom:.5rem;display:inline-flex;align-items:center;gap:.3125rem;padding:.3125rem .625rem;border-radius:9999px;background:rgba(3,18,35,.82);color:#fff;font-size:.6875rem;font-weight:600;line-height:1}
.rodape-mapinha:hover span{background:var(--acento);color:var(--marca-950)}
html.a11y-contraste .rodape-mapinha iframe{display:none}

.rodape-canais{display:flex;flex-wrap:wrap;gap:.625rem 1.5rem}
.rodape-canais a{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--sobre-2);transition:color .2s}
.rodape-canais a:hover{color:#fff}
.rodape-canais svg{flex-shrink:0;color:var(--acento)}


/* ---- Barra clara -------------------------------------------------------- */
.rodape-barra{background:var(--bruma-2);border-top:1px solid var(--linha)}
/* Agora sao duas colunas: Sistema Comercio a esquerda, redes a direita. */
.rodape-barra-grid{display:grid;gap:1.5rem;padding-block:1.5rem;align-items:center;justify-items:center;text-align:center}
@media(min-width:1024px){
  .rodape-barra-grid{grid-template-columns:minmax(0,1fr) auto;gap:2.5rem;justify-items:start;text-align:left}
  .rodape-barra-grid .rodape-redes-linha{justify-self:end}
}

/* ---- Assinatura no bloco azul: marca + premio -------------------------- */
.rodape-assinatura{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2rem;padding-block:1.75rem;border-top:1px solid var(--linha-clara)}

/* Placa branca atras da marca. O arquivo oficial e roxo e laranja sobre
   transparencia, pensado para fundo claro - solto no azul, o wordmark
   sumiria. A placa guarda a cor exata da marca; inverter inventaria uma
   versao monocromatica que o cliente nao entregou. */
.rodape-assinatura .rodape-marca{display:inline-grid;place-items:center;padding:.75rem 1.125rem;border-radius:var(--r-sm);background:#fff}
.rodape-assinatura .rodape-marca img{height:2.25rem;width:auto}

.rodape-selo{display:flex;flex-direction:row;align-items:center;gap:.875rem;max-width:17rem}
.rodape-selo-premio{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:9999px;background:rgba(244,190,0,.16);color:var(--acento)}
.rodape-selo strong{display:block;color:#fff;font-weight:600}
.rodape-selo small{font-size:.6875rem;line-height:1.4;color:var(--sobre-2)}

/* ---- Aviso legal: ultima linha do documento, numa linha so -------------- */
.rodape-fim{background:#fff;border-top:1px solid var(--linha)}
.rodape-fim p{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;padding-block:1.125rem;font-size:.8125rem;line-height:1.6;color:var(--tinta-3);text-align:center}
.rodape-fim-sep{color:var(--linha-forte)}
.rodape-fim a{color:var(--marca-600);font-weight:600;transition:color .2s}
.rodape-fim a:hover{color:var(--marca-700);text-decoration:underline;text-underline-offset:3px}

.rodape-redes-linha{display:flex;gap:.375rem}
.rodape-redes-linha a{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:9999px;color:var(--tinta-3);transition:background .2s,color .2s}
.rodape-redes-linha a:hover{background:#fff;color:var(--marca-600)}

/* ===========================================================================
   O ELEMENTO DA MARCA COMO DETALHE

   A taça com o "S" aparece de duas formas, nunca como ilustração solta:

   - Em fundo ESCURO vira branca e fica em 5% - presença, não desenho.
   - Em fundo CLARO mantém as cores reais, mas em 4%: a 4% o âmbar e o azul
     viram só uma variação de tom no branco, e é isso que dá a harmonia sem
     disputar leitura com o texto.

   Regra que não se quebra: é sempre aria-hidden e pointer-events:none. É
   decoração; não entra na ordem de leitura e não intercepta clique.
   ========================================================================= */
.elemento{
  position:absolute;
  pointer-events:none;
  aspect-ratio:800/880;
  background:url("../img/elemento-sincofarma.png") no-repeat center/contain;
  opacity:.04;
}
/* Modificadores de posição - a marca entra sempre por um canto, nunca no meio
   do texto. */
.elemento--tr{top:-4rem;right:-4rem;width:22rem}
.elemento--br{bottom:-6rem;right:-5rem;width:26rem}
.elemento--bl{bottom:-6rem;left:-6rem;width:24rem}

/* Sobre fundo escuro: branca, e um pouco mais presente porque o contraste
   com o azul profundo é menor do que com o branco. */
.elemento--claro{opacity:.055;filter:brightness(0) invert(1)}

/* Quem pediu alto contraste não recebe decoração nenhuma: a marca-d'água
   reduz a diferença entre texto e fundo, que é exatamente o que a pessoa
   está tentando aumentar. */
html.a11y-contraste .elemento,
html.a11y-contraste .marca{display:none}

/* As seções precisam recortar o que vaza do canto. */
.secao{position:relative}
.secao-elemento{overflow:hidden}

/* ---- Aplicações singelas ------------------------------------------------ */

/* Cartão "Por onde começar": a taça atrás dos grupos, bem apagada. */
.comecar{position:relative;overflow:hidden}
.comecar>header,.comecar-grupos{position:relative}

/* Ladrilho da agenda e cartões escuros já têm .marca própria - aqui só
   garantimos que o novo arquivo entre com o enquadramento certo. */
.ladrilho-agenda .marca,.agenda-faixa .marca,.cta .marca,
.rodape-bloco .marca,.presidente-secao .marca,.mega-destaque .marca{
  background-image:url("../img/elemento-sincofarma.png");
  aspect-ratio:800/880;
}

/* Selo redondo com o elemento - usado onde cabe um reforço de marca pequeno,
   como no topo de uma seção institucional. */
.selo-marca{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:9999px;background:var(--marca-50);border:1px solid var(--marca-100)}
.selo-marca img{width:1.75rem;height:auto}

/* Submenu entra com fade + deslize curto, como na referencia. Nao da para
   animar a partir de display:none, entao a animacao roda quando o [hidden]
   sai - e quem pediu menos movimento nao recebe nenhuma. */
@media(prefers-reduced-motion:no-preference){
  .mega:not([hidden]){animation:mega-entra .3s cubic-bezier(.16,1,.3,1)}
}
@keyframes mega-entra{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
html.a11y-sem-movimento .mega:not([hidden]){animation:none}

/* ===========================================================================
   LARGURA TOTAL NO TOPO
   O cabecalho inteiro e o banner usam a largura TODA da tela - so o respiro
   lateral (--gutter) os separa da borda. O conteudo das paginas continua
   parando em 110rem.

   O cabecalho vai junto porque a faixa de atalho, a barra do menu e os
   submenus precisam compartilhar a mesma margem: se so o atalho esticasse,
   "Acesso rapido" ficaria mais a esquerda do que a logo logo abaixo.
   ========================================================================= */
.site .wrap,
.banner .wrap,
.comecar-secao .wrap{max-width:none}

/* ===========================================================================
   ESTRUTURA PROPRIA
   Layout da referencia: cartao grande dividido (painel escuro a esquerda,
   fotografia a direita) + dois cartoes de foto embaixo, com rotulo e frase
   no pe. Tudo com canto bem arredondado.

   O VEU em gradiente e o que permite trocar a fotografia sem rever a cor do
   texto: o texto nunca fica sobre a imagem crua.
   ========================================================================= */
.estrutura-principal{position:relative;overflow:hidden;display:flex;align-items:center;min-height:30rem;border-radius:var(--r-bloco);background:var(--marca-950)}
@media(max-width:899px){.estrutura-principal{min-height:0;padding-block:0}}

.estrutura-foto{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.estrutura-foto.is-vazia{background:radial-gradient(42rem 26rem at 72% 25%,rgba(23,92,151,.45),transparent 62%),linear-gradient(118deg,var(--azul-prof) 0%,var(--marca-900) 60%,var(--marca-950) 100%)}

/* No desktop o veu vem da esquerda e solta a foto a direita; no celular, onde
   o texto ocupa a largura toda, ele vira vertical. */
.estrutura-veu{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(3,18,35,.96) 0%,rgba(3,18,35,.92) 34%,rgba(3,18,35,.45) 58%,rgba(3,18,35,0) 78%)}
.estrutura-veu.is-baixo{background:linear-gradient(0deg,rgba(3,18,35,.92) 0%,rgba(3,18,35,.55) 38%,rgba(3,18,35,.1) 70%,rgba(3,18,35,.2) 100%)}
@media(max-width:899px){
  .estrutura-veu{background:linear-gradient(180deg,rgba(3,18,35,.7) 0%,rgba(3,18,35,.93) 42%,rgba(3,18,35,.97) 100%)}
}

.estrutura-conteudo{position:relative;z-index:2;max-width:33rem;padding:3rem 2rem}
@media(min-width:900px){.estrutura-conteudo{padding:4rem 3.5rem}}
/* Pilula do rotulo - translucida, como na referencia. */
.estrutura-pilula{display:inline-block;padding:.4375rem .875rem;border-radius:9999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.estrutura-principal h2{margin-top:1.5rem;font-size:clamp(1.875rem,1.3rem + 2vw,2.875rem);line-height:1.08;letter-spacing:-.02em;color:#fff}
.estrutura-principal h2 span{color:var(--acento)}
.estrutura-principal p{margin-top:1.25rem;max-width:30rem;font-size:1rem;line-height:1.7;color:rgba(255,255,255,.82)}
/* Link de texto em negrito, nao botao - a referencia usa assim. */
.estrutura-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:2rem;font-size:.9375rem;font-weight:700;color:#fff;transition:gap .25s,color .2s}
.estrutura-link:hover{gap:.875rem;color:var(--acento)}

/* Selos flutuando sobre a foto, no alto a direita. */
.estrutura-selos{position:absolute;top:1.25rem;right:1.25rem;z-index:2;display:flex;align-items:center;gap:.5rem}
@media(max-width:899px){.estrutura-selos{display:none}}
.estrutura-selos .is-redondo{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:9999px;background:#fff;color:var(--marca-600);box-shadow:0 8px 20px -10px rgba(3,18,35,.5)}
.estrutura-selos .is-pilula{display:flex;align-items:center;gap:.625rem;padding:.4375rem .875rem .4375rem .4375rem;border-radius:9999px;background:#fff;box-shadow:0 8px 20px -10px rgba(3,18,35,.5)}
.estrutura-selo-ico{display:grid;place-items:center;width:1.75rem;height:1.75rem;flex-shrink:0;border-radius:9999px;background:var(--marca-600);color:#fff}
.estrutura-selos small{display:block;font-size:.625rem;line-height:1.2;color:var(--tinta-3)}
.estrutura-selos strong{display:block;font-size:.8125rem;line-height:1.2;color:var(--marca-700)}

/* ---- Os dois cartoes de baixo ------------------------------------------ */
.estrutura-dupla{display:grid;gap:1rem;margin-top:1rem}
@media(min-width:900px){.estrutura-dupla{grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.25rem}}
.estrutura-cartao{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:19rem;padding:1.75rem;border-radius:var(--r-bloco);background:var(--marca-950);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.estrutura-cartao:hover{transform:translateY(-3px)}
.estrutura-chip{position:absolute;top:1.125rem;right:1.125rem;z-index:2;display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem .375rem .375rem;border-radius:9999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.75rem;font-weight:600;color:#fff}
.estrutura-chip .estrutura-selo-ico{background:rgba(255,255,255,.2)}
.estrutura-chip .estrutura-selo-ico{width:1.5rem;height:1.5rem}
.estrutura-pe{position:relative;z-index:2}
.estrutura-pe>span{display:block;font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.estrutura-pe strong{display:block;margin-top:.5rem;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.35;color:#fff;text-wrap:balance}

/* ===========================================================================
   FAIXA DO SISTEMA COMERCIO (abaixo do rodape)
   Formato da referencia (sindvale.com.br): rotulo e marcas a esquerda, fio
   vertical, atalhos em pilula a direita.
   ========================================================================= */
/* Vive na BARRA CLARA, ao lado das redes sociais. Sem fundo e sem fio
   proprios: a barra ja tem os dela. */
.sistema{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 2rem}

.sistema-rotulo{font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--tinta-3)}
/* O bloco desceu para a barra CLARA. O filtro que deixava os logotipos
   brancos foi removido junto: ele existia so por causa do fundo azul.
   Aqui cada entidade aparece no arquivo oficial dela - CNC e FecomercioSP
   sao pretos, Sesc e Senac coloridos. Cada logotipo e o proprio link. */
.sistema-lockup{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.125rem}
.sistema-lockup a{display:grid;place-items:center;opacity:.85;transition:opacity .2s}
.sistema-lockup a:hover{opacity:1}
.sistema-lockup img{height:1.5rem;width:auto}
@media(min-width:900px){.sistema-lockup img{height:1.75rem}}
.sistema-sep{color:var(--linha-forte)}




/* ===========================================================================
   COMO PODEMOS AJUDAR (atalhos)
   Formato da referencia (MedicGLOBAL): chapeu com fio, titulo grande, campo
   de busca a direita e grade de cartoes escuros com icone no alto, seta no
   canto e o texto no pe.
   ========================================================================= */
.ajuda-topo{display:grid;gap:2rem;margin-bottom:2.5rem}
@media(min-width:1024px){.ajuda-topo{grid-template-columns:1fr auto;gap:3rem;align-items:center}}
.ajuda-topo h2{margin-top:1rem;font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);line-height:1.12;letter-spacing:-.02em}

/* Campo de busca em pilula, com o botao redondo na ponta. */
.ajuda-busca{position:relative;display:flex;align-items:center;width:100%;border:1px solid var(--linha-forte);border-radius:9999px;background:#fff;transition:border-color .2s,box-shadow .2s}
@media(min-width:1024px){.ajuda-busca{width:30rem}}
.ajuda-busca:focus-within{border-color:var(--marca-500);box-shadow:0 0 0 4px rgba(12,70,131,.12)}
.ajuda-busca-ico{display:grid;place-items:center;padding-left:1.25rem;color:var(--tinta-3)}
.ajuda-busca input{flex:1;min-width:0;height:3.75rem;padding:0 .75rem 0 .875rem;border:0;background:none;font:400 1rem var(--f-corpo);color:var(--tinta);outline:none}
.ajuda-busca input::placeholder{color:var(--tinta-3)}
.ajuda-busca button{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;margin-right:.5rem;border:0;border-radius:9999px;background:var(--marca-600);color:#fff;cursor:pointer;transition:background .2s}
.ajuda-busca button:hover{background:var(--marca-700)}

/* ---- Grade de cartoes --------------------------------------------------- */
.ajuda-grade{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:560px){.ajuda-grade{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.ajuda-grade{grid-template-columns:repeat(4,1fr);gap:1.25rem}}

/* Mesmo cartao de "Nossos Servicos": branco, horizontal, icone a esquerda.
   Dois blocos de atalho na mesma pagina com tratamentos diferentes pareciam
   coisas diferentes - e sao a mesma coisa. */
.ajuda-grade a{display:grid;grid-template-columns:auto 1fr auto;gap:.25rem 1rem;align-items:start;height:100%;padding:1.5rem;border:1px solid transparent;border-radius:var(--r-card);background:#fff;box-shadow:0 1px 2px rgba(16,23,43,.04),0 8px 24px -18px rgba(16,23,43,.25);transition:border-color .2s,transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.ajuda-grade a:hover{border-color:var(--acento);transform:translateY(-3px);box-shadow:0 1px 2px rgba(16,23,43,.04),0 18px 36px -22px rgba(16,23,43,.35)}
.ajuda-ico{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:11px;background:var(--marca-50);color:var(--marca-600);transition:background .2s,color .2s}
.ajuda-grade a:hover .ajuda-ico{background:var(--marca-600);color:#fff}
.ajuda-seta{display:grid;place-items:center;height:2.75rem;color:var(--tinta-3);transition:color .2s,transform .25s cubic-bezier(.16,1,.3,1)}
.ajuda-grade a:hover .ajuda-seta{color:var(--marca-600);transform:translateX(3px)}
.ajuda-pe{grid-column:2}
.ajuda-pe strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--tinta);transition:color .2s}
.ajuda-grade a:hover .ajuda-pe strong{color:var(--marca-700)}
.ajuda-pe small{display:block;margin-top:.5rem;font-size:.9375rem;line-height:1.55;color:var(--tinta-3)}

/* ===========================================================================
   DESTAQUES - CAPA + GRADE 2x2
   Layout da referencia aprovada: materia de capa grande com fotografia a
   esquerda e quatro cartoes solidos em grade 2x2 a direita, cada um com
   etiqueta, data e titulo.

   Usado hoje pelas NOTICIAS da home. As classes sao genericas de proposito -
   o mesmo bloco serve a qualquer lista com um item de capa e quatro de apoio.
   ========================================================================= */
.destaques{display:grid;gap:1rem}
@media(min-width:900px){.destaques{grid-template-columns:1fr 1fr;gap:1.25rem}}

/* ---- Cartao de capa ----------------------------------------------------- */
.destaque-capa{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:24rem;padding:2rem;border-radius:var(--r-bloco);background:var(--marca-950);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.destaque-capa:hover{transform:translateY(-3px)}
.destaque-foto{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
/* Sem fotografia o gradiente da identidade assume - nunca banco de imagem. */
.destaque-foto.is-vazia{background:radial-gradient(34rem 22rem at 70% 22%,rgba(23,92,151,.5),transparent 62%),linear-gradient(140deg,var(--azul-prof) 0%,var(--marca-900) 62%,var(--marca-950) 100%)}
.destaque-veu{position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(3,18,35,.94) 0%,rgba(3,18,35,.6) 42%,rgba(3,18,35,.12) 72%,rgba(3,18,35,.2) 100%)}
.destaque-conteudo{position:relative;z-index:2}
.destaque-capa time{display:block;margin-top:1rem;font-family:var(--f-cond);font-size:.8125rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.destaque-capa strong{display:block;margin-top:.5rem;font-family:var(--f-tit);font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);font-weight:600;line-height:1.2;color:#fff;text-wrap:balance}

/* Etiqueta solida, como na referencia - aqui em ambar sobre o azul. O texto
   e escuro porque ambar com texto branco nao passa no contraste. */
.etiqueta-editoria{display:inline-block;padding:.3125rem .75rem;border-radius:9999px;background:var(--acento);color:var(--marca-950);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}

/* Etiqueta vazada - usada pela vitrine de cursos. */
.etiqueta-curso{display:inline-block;padding:.3125rem .75rem;border-radius:9999px;background:rgba(244,190,0,.12);border:1px solid rgba(244,190,0,.55);color:var(--acento);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase}

/* ---- Grade 2x2 ---------------------------------------------------------- */
.destaque-grade{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:560px){.destaque-grade{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.destaque-grade{gap:1.25rem;grid-template-rows:1fr 1fr}}
.destaque-grade a{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;height:100%;min-height:11rem;padding:1.5rem;border-radius:var(--r-card);background:var(--marca-600);color:#fff;transition:background .25s,transform .25s cubic-bezier(.16,1,.3,1)}
.destaque-grade a:hover{background:var(--marca-700);transform:translateY(-3px)}
.destaque-grade time{font-family:var(--f-cond);font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.destaque-grade strong{font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:#fff;text-wrap:balance}
/* A seta so aparece no hover: em repouso ela competiria com o titulo, que e
   o que a pessoa precisa ler para decidir se abre. */
.destaque-ir{position:absolute;right:1.25rem;bottom:1.25rem;display:grid;color:var(--acento);opacity:0;transform:translate(-4px,4px);transition:all .25s cubic-bezier(.16,1,.3,1)}
.destaque-grade a:hover .destaque-ir{opacity:1;transform:none}
/* No toque nao existe hover - a seta precisa estar visivel desde o inicio. */
@media(hover:none){.destaque-ir{opacity:1;transform:none}}

/* ===========================================================================
   TITULOS EM DUAS CORES
   A segunda metade do titulo muda de cor em vez de ganhar sublinhado: o
   destaque vem da propria palavra, nao de um fio embaixo dela.

   Em fundo CLARO a segunda cor e o azul da marca.
   Em fundo ESCURO e o ambar - o azul desapareceria contra o fundo.
   ========================================================================= */
.dest{color:var(--marca-600)}

.agenda-faixa h2 span,
.cta h2 span,
.cta h2 .dest,
.estrutura-principal h2 span,
.rodape h2 span,
.banner-conteudo h1 span,
.g-inst h2 span,
.g-inst h2 .dest,
.g-prof h2 span,
.g-prof h2 .dest{color:var(--acento)}

/* ===========================================================================
   NOSSOS SERVICOS
   Layout da referencia: fundo cinza-claro, titulo em uma cor com linha de
   apoio, e cartoes brancos na HORIZONTAL - icone a esquerda, texto a direita,
   seta no canto superior.
   ========================================================================= */
.servicos-secao{background:var(--vidro)}
.servicos-topo{margin-bottom:2.5rem}
.servicos-topo h2{font-size:clamp(1.875rem,1.3rem + 2vw,2.75rem);line-height:1.12;letter-spacing:-.02em}
.servicos-topo p{margin-top:.875rem;max-width:46rem;font-size:1.0625rem;line-height:1.6;color:var(--tinta-3)}

.servicos-grade{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:720px){.servicos-grade{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.servicos-grade{grid-template-columns:repeat(3,1fr)}}

.servicos-grade a{display:grid;grid-template-columns:auto 1fr auto;gap:.25rem 1rem;align-items:start;height:100%;padding:1.5rem;border:1px solid transparent;border-radius:var(--r-card);background:#fff;box-shadow:0 1px 2px rgba(16,23,43,.04),0 8px 24px -18px rgba(16,23,43,.25);transition:border-color .2s,transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.servicos-grade a:hover{border-color:var(--acento);transform:translateY(-3px);box-shadow:0 1px 2px rgba(16,23,43,.04),0 18px 36px -22px rgba(16,23,43,.35)}

/* Quadrado do icone: fundo palido em repouso, solido no hover - e o unico
   lugar da secao onde a cor entra cheia. */
.servico-ico{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:11px;background:var(--marca-50);color:var(--marca-600);transition:background .2s,color .2s}
.servicos-grade a:hover .servico-ico{background:var(--marca-600);color:#fff}

.servico-texto strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--tinta);transition:color .2s}
.servicos-grade a:hover .servico-texto strong{color:var(--marca-700)}
.servico-texto small{display:block;margin-top:.5rem;font-size:.9375rem;line-height:1.55;color:var(--tinta-3)}

.servico-seta{display:grid;place-items:center;height:2.75rem;color:var(--tinta-3);transition:color .2s,transform .25s cubic-bezier(.16,1,.3,1)}
.servicos-grade a:hover .servico-seta{color:var(--marca-600);transform:translateX(3px)}

/* ===========================================================================
   DEPOIMENTOS - MURAL EM TRES COLUNAS ("Social Proof 4")

   Tres colunas que rolam sozinhas, a do meio em sentido contrario. Cada
   coluna leva os mesmos itens duas vezes e a animacao anda -50%: quando a
   primeira passada sai por cima, a segunda ja ocupa o lugar dela e o laco
   fecha sem salto.

   Tres regras que o padrao original nao tinha e que entraram aqui:

   1. PARA no hover e no foco. Texto correndo debaixo de quem esta lendo e
      enfeite que atrapalha - e a frase do depoimento e o conteudo, nao o
      movimento.
   2. Em tela estreita o mural NAO rola. Vira lista unica, estatica, com os
      doze depoimentos inteiros. Nao e o desktop encolhido.
   3. Quem pediu menos movimento recebe o mesmo tratamento da tela estreita.
      Em ambos os casos a copia aria-hidden continua no HTML, mas o CSS a
      esconde - duplicata visivel seria texto repetido na tela.
   ========================================================================= */
.mural{display:grid;gap:1rem}

/* ---- Cartao (serve ao mural e a qualquer outra lista de citacao) -------- */
.depo{position:relative;display:flex;flex-direction:column;height:100%;padding:1.75rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff;transition:border-color .2s}
.depo:hover{border-color:var(--acento)}
/* As aspas sao decoracao: o <blockquote> ja marca a citacao semanticamente. */
.depo-aspas{position:absolute;top:.5rem;right:1.25rem;font-family:var(--f-tit);font-size:4rem;line-height:1;color:var(--marca-100)}
.depo blockquote{position:relative;flex:1;font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}
.depo blockquote::before{content:"\201C"}
.depo blockquote::after{content:"\201D"}

.depo figcaption{display:flex;align-items:center;gap:.875rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha)}
/* Iniciais no lugar da fotografia - nao ha retrato dos alunos, e banco de
   imagem no lugar de uma pessoa real seria mentira. */
.depo-avatar{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:9999px;background:var(--marca-50);color:var(--marca-600);font-family:var(--f-tit);font-size:.875rem;font-weight:600;letter-spacing:.02em}
.depo figcaption strong{display:block;font-size:.9375rem;font-weight:600;line-height:1.3;color:var(--tinta)}
.depo figcaption small{display:block;margin-top:.125rem;font-size:.8125rem;line-height:1.35;color:var(--tinta-3)}

.mural-secao .secao-topo p a{color:var(--marca-600);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ---- Base: coluna unica, parada, conteudo inteiro ---------------------- */
.mural-trilho{display:grid;gap:1rem}
/* Fora do modo mural a copia nao tem funcao nenhuma - so repetiria o texto. */
.mural-trilho li[aria-hidden="true"]{display:none}

/* ---- Mural animado: so a partir de 900px ------------------------------- */
@media(min-width:900px){
  .mural{grid-template-columns:repeat(3,1fr);gap:1.25rem;align-items:start}

  /* A mascara nas pontas evita o corte seco: os cartoes entram e saem
     desvanecendo em vez de sumirem numa linha reta. */
  .mural-coluna{
    height:clamp(30rem,78vh,44rem);
    overflow:hidden;
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);
    mask-image:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);
  }
  .mural-trilho{gap:1.25rem;will-change:transform}
  .mural-trilho li[aria-hidden="true"]{display:block}

  @media(prefers-reduced-motion:no-preference){
    .mural-trilho{animation:mural var(--duracao,56s) linear infinite}
    /* A do meio sobe ao contrario - e o que faz o conjunto parecer um mural
       vivo, e nao tres listas andando em bloco. */
    .mural-coluna.is-volta .mural-trilho{animation-direction:reverse}
  }
  /* Para debaixo do cursor e tambem quando o teclado entra no bloco. */
  .mural-coluna:hover .mural-trilho,
  .mural:focus-within .mural-trilho{animation-play-state:paused}
}
@keyframes mural{from{transform:translateY(0)}to{transform:translateY(-50%)}}

/* Sem a regra abaixo, quem tem prefers-reduced-motion ficaria com o pior dos
   dois mundos no desktop: a coluna continuaria com altura fixa e recorte,
   mas sem animacao para trazer o resto - metade dos depoimentos sumiria.
   (A regra global de reduced-motion zera a duracao da animacao, o que
   congelaria a trilha no fim do percurso, em translateY(-50%).) */
@media(min-width:900px) and (prefers-reduced-motion:reduce){
  .mural-coluna{height:auto;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .mural-trilho{animation:none}
  .mural-trilho li[aria-hidden="true"]{display:none}
}

/* Quem pediu menos movimento recebe o mural PARADO e inteiro - a mesma
   lista honesta da tela estreita, nao uma coluna cortada no meio. */
html.a11y-sem-movimento .mural-coluna{height:auto;overflow:visible;-webkit-mask-image:none;mask-image:none}
html.a11y-sem-movimento .mural-trilho{animation:none}
html.a11y-sem-movimento .mural-trilho li[aria-hidden="true"]{display:none}

/* Acao principal do ladrilho da agenda - "Inscricoes abertas", em ambar. */
.ladrilho-destaque-acao{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;min-height:2.75rem;padding:0 1.25rem;border-radius:9999px;background:var(--acento);color:var(--marca-950);font-size:.875rem;font-weight:700;transition:background .2s}
.ladrilho-destaque-acao:hover{background:#FFD233}
.ladrilho-agenda .ladrilho-acao{margin-top:1rem;padding-top:0}

/* ===========================================================================
   ANCORAS DE SECAO
   Varios itens do submenu Institucional levam a uma SECAO da mesma pagina.
   Sem scroll-margin-top o cabecalho fixo cobriria o titulo de destino - a
   pessoa clicaria e cairia num trecho sem ver onde chegou.
   ========================================================================= */
:where(h2,h3)[id]{scroll-margin-top:9rem}
.secao[id]{scroll-margin-top:7rem}

/* ===========================================================================
   SECOES DA CLAUSULA 3a QUE FALTAVAM NA HOME
   VI noticias · VII convenios · IX oportunidades · X representatividade
   XI newsletter
   ========================================================================= */

/* ---- Data no cartao de noticia ---------------------------------------- */
.cartao-data{display:block;margin-bottom:.5rem;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--tinta-3)}
.secao-topo p a{color:var(--marca-600);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ---- Dois blocos lado a lado (oportunidades) --------------------------- */
.duo{display:grid;gap:1.25rem}
@media(min-width:900px){.duo{grid-template-columns:1fr 1fr}}
.duo-bloco{display:flex;flex-direction:column;padding:2rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff}
@media(min-width:900px){.duo-bloco{padding:2.5rem}}
.duo-bloco .selo{display:grid;place-items:center;width:3rem;height:3rem;margin-bottom:1.5rem;border-radius:var(--r-sm);background:var(--marca-50);color:var(--marca-600)}
.duo-bloco h2{font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);line-height:1.15}
.duo-bloco p{margin-top:1rem;font-size:.9375rem;line-height:1.7;color:var(--tinta-3)}
.duo-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:auto;padding-top:2rem}
/* O segundo bloco e o do associado: fundo tingido para diferenciar sem
   precisar de outra cor de marca. */
.duo-bloco.is-destaque{background:var(--marca-50);border-color:var(--marca-100)}
.duo-bloco.is-destaque .selo{background:#fff}

/* ---- Representatividade - imagem grande + cartao de vidro ("Contact 4") --
   Uma camada de imagem ocupando o bloco e o cartao de vidro por cima dela.

   A PARALAXE e feita com scroll-driven animation: a camada de fundo anda de
   -6% a 6% enquanto o bloco atravessa a tela, sem uma linha de JavaScript.
   O scale(1.16) existe para que o deslocamento nunca descubra as bordas.

   Onde animation-timeline nao existe, o @supports simplesmente nao aplica
   nada e o bloco fica parado - identico no resto. O efeito e enfeite: se
   sumir, nenhuma informacao vai junto.
   ------------------------------------------------------------------------ */
.repr-secao{position:relative;overflow:hidden}
.repr{position:relative;display:grid;gap:0}

.repr-palco{position:relative;overflow:hidden;min-height:20rem;border-radius:var(--r-bloco)}
.repr-foto{position:absolute;inset:0;background-size:cover;background-position:center}
.repr-foto.is-vazia{background:radial-gradient(40rem 26rem at 72% 18%,rgba(74,129,180,.46),transparent 62%),linear-gradient(142deg,var(--marca-500) 0%,var(--azul-prof) 38%,var(--marca-900) 100%)}
.repr-veu{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,18,35,.72) 0%,rgba(3,18,35,.26) 52%,rgba(3,18,35,.42) 100%)}

@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .repr-foto{
      animation:repr-paralaxe linear both;
      animation-timeline:view();
      animation-range:cover 0% cover 100%;
    }
  }
}
@keyframes repr-paralaxe{
  from{transform:translateY(-6%) scale(1.16)}
  to{transform:translateY(6%) scale(1.16)}
}
/* Quem pediu menos movimento no painel de acessibilidade tambem para. */
html.a11y-sem-movimento .repr-foto{animation:none;transform:none}

/* O cartao sobe sobre a imagem. Em tela estreita ele encosta no pe dela, com
   uma sobreposicao pequena; no desktop flutua dentro do bloco. */
.repr-cartao{position:relative;margin:-4rem 1rem 0;padding:2rem;border-radius:var(--r-bloco);color:#fff}
@media(min-width:640px){.repr-cartao{margin-inline:2rem;padding:2.5rem}}
@media(min-width:1024px){
  .repr{min-height:34rem}
  .repr-palco{position:absolute;inset:0}
  .repr-cartao{margin:0;margin-left:auto;width:min(34rem,100%);padding:3rem;align-self:center}
}

.repr-cartao h2{margin-top:1.125rem;font-size:clamp(1.5rem,1.2rem + 1.4vw,2.125rem);line-height:1.15;color:#fff}
.repr-cartao h2 span{color:var(--acento)}
.repr-cartao p{margin-top:1.25rem;font-size:1rem;line-height:1.75;color:rgba(255,255,255,.86)}

.repr-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:2rem}
.repr-secundario{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;font-size:.9375rem;font-weight:600;color:var(--acento);transition:gap .25s}
.repr-secundario:hover{gap:.875rem}

.repr-numeros{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.25rem}
@media(min-width:560px){.repr-numeros{gap:2rem 2.5rem}}
.repr-numeros li{padding-top:1.25rem;border-top:1px solid var(--linha-clara)}
/* O numero e o argumento; a linha abaixo so explica de que ele e feito. */
.repr-numeros strong{display:block;font-family:var(--f-tit);font-size:clamp(2.25rem,1.6rem + 2vw,3.25rem);font-weight:600;line-height:1;letter-spacing:-.02em;color:var(--acento)}
.repr-numeros span{display:block;margin-top:.625rem;font-size:.875rem;line-height:1.5;color:rgba(255,255,255,.72)}

/* ---- Newsletter --------------------------------------------------------- */
.newsletter{display:grid;gap:2.5rem;padding:2rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--marca-50)}
@media(min-width:1024px){.newsletter{grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding:3rem 3.5rem}}
.newsletter-texto h2{margin-top:1rem;font-size:clamp(1.5rem,1.2rem + 1.4vw,2.125rem);line-height:1.15}
.newsletter-texto p{margin-top:1rem;font-size:1rem;line-height:1.7;color:var(--tinta-3)}
/* O formulario nasce colado no texto; a margem padrao do .form sobra aqui. */
.newsletter-form{margin-top:0;gap:1rem}
.newsletter-form .campo input{background:#fff}

/* ===========================================================================
   FAIXA DE PARCEIROS (acima do rodape)
   Rotaciona em laco continuo. A lista esta duplicada no HTML e a animacao
   desloca -50%: a segunda copia entra no lugar da primeira e nao ha emenda.
   ========================================================================= */
/* Fundo branco e SEM fio no topo: a faixa deixa de se anunciar como um
   bloco a parte e passa a ser o fecho da pagina. O respiro acima ja separa
   o suficiente - o risco so acrescentava uma linha dura no meio do branco. */
/* O respiro de BAIXO e bem maior que o de cima, de proposito: sem fio
   separando a faixa do rodape, e o ESPACO que precisa dizer onde uma
   acaba e o outro comeca. */
.parceiros-faixa{padding-block:3.5rem 7rem;background:#fff}
/* Usa o .bloco-topo do site (chapeu, titulo sublinhado, apoio + CTA). Aqui
   so se ajusta o PESO: esta faixa repete em TODA pagina, e um titulo de
   3rem logo acima do rodape competiria com o titulo real da pagina em que
   ela esta. Mesma estrutura, um degrau abaixo. */
.parceiros-topo{margin-bottom:2rem}
.parceiros-topo h2{font-size:var(--t-h3)}

/* As mascaras nas pontas evitam o corte seco: os itens entram e saem
   desvanecendo em vez de sumirem na borda. */
.marquise{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.marquise-trilho{display:flex;align-items:center;width:max-content;gap:.5rem;will-change:transform}
/* Fila unica: o percurso dobrou, entao a volta tambem - 96s. Mais rapido do
   que isso, com 19 marcas seguidas, vira borrao. */
@media(prefers-reduced-motion:no-preference){
  .marquise-trilho{animation:marquise 96s linear infinite}
}
/* Para no hover: faixa que corre debaixo do cursor atrapalha quem esta
   tentando ler um nome. */
.marquise:hover .marquise-trilho{animation-play-state:paused}
/* Tambem congela quando alguem chega num logotipo pelo Tab: um link que
   continua andando debaixo do foco e impossivel de acionar. */
.marquise:focus-within .marquise-trilho{animation-play-state:paused}
@keyframes marquise{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* A pilula com borda e fundo branco so vale para o caso de RESERVA (nome
   escrito, quando falta o arquivo do logotipo). Logotipo nao usa nada
   disso - entra vazado, ver .tem-logo mais abaixo. */
.marquise-trilho li{
  flex-shrink:0;display:inline-flex;align-items:center;
  min-height:2.5rem;
  border:1px solid var(--linha);border-radius:9999px;background:#fff;
  font-size:.8125rem;font-weight:500;color:var(--tinta-2);white-space:nowrap;
}
/* O item inteiro virou link para o site do parceiro. O padding mora no <a>,
   nao na <li>: assim a pilula toda e clicavel, e nao so o pixel do
   logotipo. */
.marquise-trilho li>a{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;padding:0 1.25rem;
  color:inherit;text-decoration:none;border-radius:inherit;
}
/* Logotipo vazado precisa de menos respiro que uma pilula com borda. */
.marquise-trilho li.tem-logo>a{padding:0 1rem}
/* O estilo do foco e o do site inteiro (regra global do topo). Aqui so se
   corrige o raio: aquela regra arredonda em --r-sm e deixaria um contorno
   quase quadrado em volta de uma pilula redonda. */
.marquise-trilho li>a:focus-visible{border-radius:inherit;outline-offset:3px}

/* Quem pediu menos movimento recebe a faixa parada, quebrando em linhas -
   e nao uma fila cortada no meio. */
html.a11y-sem-movimento .marquise-trilho{animation:none;flex-wrap:wrap;width:auto;gap:.5rem}
html.a11y-sem-movimento .marquise{-webkit-mask-image:none;mask-image:none;max-height:7.5rem;overflow:hidden}

/* ===========================================================================
   BANNER PRINCIPAL (rotativo)

   Formato do site atual: faixa LARGA E BAIXA, cantos arredondados e setas nas
   bordas. Dois tipos convivem na mesma rotacao - institucional (HTML) e
   parceiro (imagem pronta).

   A altura e dada por aspect-ratio, nao por min-height: assim o espaco ja
   nasce reservado e a pagina nao pula quando a imagem do parceiro carrega.
   ========================================================================= */
.banner{padding-top:1.5rem}
.banner-palco{position:relative;display:grid;overflow:hidden;border-radius:var(--r-bloco);background:var(--marca-900)}

.banner-item{grid-area:1/1;position:relative;aspect-ratio:1460/380}
@media(max-width:899px){.banner-item{aspect-ratio:4/3}}
html.js .banner-item{opacity:0;visibility:hidden;transition:opacity .5s cubic-bezier(.16,1,.3,1)}
html.js .banner-item.is-ativo{opacity:1;visibility:visible}
html.a11y-sem-movimento .banner-item{transition:none}

/* ---- Banner de parceiro (imagem) --------------------------------------- */
.banner-parceiro{position:relative;display:block;width:100%;height:100%}
.banner-parceiro img{width:100%;height:100%;object-fit:cover;object-position:center}
/* Marca que aquilo e espaco de parceiro, nao conteudo do sindicato. Pequeno,
   mas presente: nao se mistura publicidade com conteudo institucional sem
   dizer qual e qual. */
.banner-publi{position:absolute;top:.75rem;left:.75rem;padding:.25rem .625rem;border-radius:9999px;background:rgba(3,18,35,.6);color:#fff;font-family:var(--f-cond);font-size:.625rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase}

/* ---- Banner institucional (HTML) --------------------------------------- */
.banner-inst{position:relative;display:flex;align-items:center;width:100%;height:100%;overflow:hidden}
.banner-inst-foto{position:absolute;inset:0;background-size:cover;background-position:center right;z-index:0}
.banner-inst-foto.is-vazia{background:radial-gradient(34rem 20rem at 78% 30%,rgba(23,92,151,.5),transparent 62%),linear-gradient(104deg,var(--marca-900) 0%,var(--azul-prof) 58%,var(--marca-600) 100%)}
/* Opaco a esquerda, solto a direita: o texto nunca fica sobre a imagem crua,
   entao trocar a fotografia nao exige rever a cor do texto. */
.banner-inst-veu{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(3,18,35,.92) 0%,rgba(3,18,35,.78) 38%,rgba(3,18,35,.3) 66%,rgba(3,18,35,0) 88%)}
@media(max-width:899px){
  .banner-inst-veu{background:linear-gradient(180deg,rgba(3,18,35,.7) 0%,rgba(3,18,35,.9) 48%,rgba(3,18,35,.95) 100%)}
}

.banner-inst-conteudo{position:relative;z-index:2;max-width:34rem;padding:1.75rem}
@media(min-width:900px){.banner-inst-conteudo{padding:2.5rem 3rem;max-width:38rem}}

.banner-selo{display:inline-flex;align-items:center;gap:.5rem;padding:.3125rem .75rem;border-radius:9999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.banner-selo svg{color:var(--acento)}

/* <p> e nao <h1>: o h1 da home pertence ao conteudo, nao a uma peca que
   troca sozinha - senao o titulo da pagina muda a cada rotacao. */
.banner-inst-titulo{margin-top:1rem;font-family:var(--f-tit);font-size:clamp(1.5rem,1.1rem + 1.7vw,2.5rem);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:#fff;text-wrap:balance}
.banner-inst-titulo strong{display:block;font-weight:700;color:var(--acento)}
.banner-inst-texto{margin-top:.875rem;max-width:30rem;font-size:.9375rem;line-height:1.6;color:rgba(255,255,255,.84)}

.banner-inst-acao{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;margin-top:1.5rem;padding:0 1.5rem;border-radius:9999px;background:var(--acento);color:var(--marca-950);font-size:.875rem;font-weight:700;transition:background .2s,gap .25s}
.banner-inst-acao:hover{background:#FFD233;gap:.875rem}

/* ---- Controles ---------------------------------------------------------- */
.banner-controles[hidden]{display:none}
.banner-seta{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:2.5rem;height:3.5rem;transform:translateY(-50%);border:0;border-radius:8px;background:rgba(255,255,255,.75);color:var(--marca-900);cursor:pointer;transition:background .2s}
.banner-seta:hover{background:#fff}
.banner-seta.is-anterior{left:.75rem}
.banner-seta.is-anterior svg{transform:rotate(180deg)}
.banner-seta.is-proxima{right:.75rem}

.banner-pe{position:absolute;left:50%;bottom:.875rem;z-index:3;display:flex;align-items:center;gap:.5rem;padding:.3125rem .5rem;transform:translateX(-50%);border-radius:9999px;background:rgba(3,18,35,.55);border:1px solid rgba(255,255,255,.16)}
.banner-pontos{display:flex;align-items:center;gap:.375rem}
/* Alvo de toque de 44px mesmo com o ponto fino (WCAG 2.5.8). */
.banner-pontos li{display:grid;place-items:center;min-width:1.5rem;min-height:1.75rem}
.banner-pontos button{width:.4375rem;height:.4375rem;padding:0;border:0;border-radius:9999px;background:rgba(255,255,255,.45);cursor:pointer;transition:all .25s}
.banner-pontos button:hover{background:#fff}
.banner-pontos button[aria-current="true"]{width:1.375rem;background:var(--acento)}
.banner-pausa{display:grid;place-items:center;width:1.75rem;height:1.75rem;border:0;border-radius:9999px;background:transparent;color:rgba(255,255,255,.7);cursor:pointer;transition:background .2s,color .2s}
.banner-pausa:hover{background:rgba(255,255,255,.16);color:#fff}

@media(max-width:899px){
  .banner{padding-top:0}
  .banner-palco{border-radius:0}
  .banner-seta{display:none}
}

/* Item com logotipo: VAZADO. Sem pilula, sem borda, sem fundo - so a marca
   sobre a faixa. */
.marquise-trilho li.tem-logo{border:0;background:none;min-height:0}

/* TAMANHO PADRAO: caixa fixa e object-fit:contain. Todo mundo ocupa a mesma
   area e ninguem e esticado nem cortado - um wordmark comprido encosta nas
   laterais, um simbolo quadrado encosta em cima e embaixo, e a fila tem uma
   regua so. Altura antiga era 3rem livre; 2.25rem numa caixa fixa deixa a
   faixa bem mais discreta. */
.marquise-trilho li.tem-logo img{
  width:6.5rem;height:2.25rem;object-fit:contain;object-position:center;
}

/* ===========================================================================
   BLOG (listagem de noticias)
   Destaque grande + coluna ao lado (onovomercado, do meio para a direita),
   no estilo do blog.grpro: branco, muito respiro, borda discreta.
   ========================================================================= */
.blog-topo{display:grid;gap:1.5rem}
@media(min-width:1024px){.blog-topo{grid-template-columns:1.35fr 1fr;gap:2.5rem}}

.blog-destaque a{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff;transition:border-color .2s,transform .25s cubic-bezier(.16,1,.3,1)}
.blog-destaque a:hover{border-color:var(--acento);transform:translateY(-3px)}
/* A area de imagem nasce com proporcao: sem ela a pagina pula quando a foto
   entrar. Enquanto nao ha foto, o gradiente da identidade preenche. */
.blog-foto{position:relative;display:block;aspect-ratio:16/9;overflow:hidden}
.blog-foto.is-vazia{background:radial-gradient(22rem 14rem at 76% 22%,rgba(74,129,180,.4),transparent 60%),linear-gradient(140deg,var(--azul-prof),var(--marca-900))}
.blog-foto.is-baixa{aspect-ratio:2/1}
.blog-destaque-corpo{display:flex;flex-direction:column;flex:1;padding:1.75rem}
@media(min-width:900px){.blog-destaque-corpo{padding:2rem 2.25rem}}
.blog-destaque strong{margin-top:1rem;font-family:var(--f-tit);font-size:clamp(1.25rem,1rem + 1.1vw,1.75rem);font-weight:700;line-height:1.2;color:var(--tinta);text-wrap:balance}
.blog-destaque a:hover strong{color:var(--marca-700)}
.blog-destaque small{margin-top:.875rem;font-size:.9375rem;line-height:1.65;color:var(--tinta-3)}
.blog-ler{display:inline-flex;align-items:center;gap:.5rem;margin-top:auto;padding-top:1.5rem;font-size:.875rem;font-weight:600;color:var(--marca-600);transition:gap .25s}
.blog-destaque a:hover .blog-ler{gap:.875rem}

/* Meta: etiqueta + data, sempre na mesma linha. */
.blog-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}
.blog-meta time{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--tinta-3)}
.etiqueta-editoria{display:inline-block;padding:.25rem .625rem;border-radius:9999px;background:transparent;border:1px solid var(--marca-200);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--marca-600)}

/* Coluna ao lado: so texto, separada por fios. */
.blog-coluna{display:flex;flex-direction:column;border-top:1px solid var(--linha)}
.blog-coluna li{border-bottom:1px solid var(--linha)}
.blog-coluna a{display:block;padding:1.125rem .25rem;transition:background .2s}
.blog-coluna a:hover{background:var(--bruma)}
.blog-coluna strong{display:block;margin-top:.5rem;font-family:var(--f-tit);font-size:1rem;font-weight:600;line-height:1.35;color:var(--tinta);transition:color .2s}
.blog-coluna a:hover strong{color:var(--marca-700)}

/* ---- Filtro ------------------------------------------------------------ */
.blog-filtro-topo{display:grid;gap:1.25rem;margin-bottom:2rem}
@media(min-width:900px){.blog-filtro-topo{grid-template-columns:auto 1fr;gap:2rem;align-items:center}}
.blog-filtro{display:flex;flex-wrap:wrap;gap:.5rem}
@media(min-width:900px){.blog-filtro{justify-content:flex-end}}
.blog-filtro a{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 1.125rem;border:1px solid var(--linha-forte);border-radius:9999px;font-size:.875rem;font-weight:500;color:var(--tinta-2);transition:background .2s,border-color .2s,color .2s}
.blog-filtro a:hover{border-color:var(--marca-500);color:var(--marca-700)}
.blog-filtro a[aria-current="true"]{background:var(--marca-600);border-color:var(--marca-600);color:#fff}

/* ---- Grade das demais -------------------------------------------------- */
.blog-grade{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:640px){.blog-grade{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.blog-grade{grid-template-columns:repeat(3,1fr)}}
.blog-grade a{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;transition:border-color .2s,transform .25s cubic-bezier(.16,1,.3,1)}
.blog-grade a:hover{border-color:var(--acento);transform:translateY(-3px)}
.blog-corpo{display:flex;flex-direction:column;flex:1;padding:1.25rem}
.blog-grade strong{margin-top:.75rem;font-family:var(--f-tit);font-size:1rem;font-weight:600;line-height:1.35;color:var(--tinta);transition:color .2s}
.blog-grade a:hover strong{color:var(--marca-700)}
.blog-grade small{margin-top:.5rem;font-size:.875rem;line-height:1.55;color:var(--tinta-3)}
.blog-vazio{padding:2rem 0;font-size:.9375rem;color:var(--tinta-3)}

/* ===========================================================================
   LEITURA DE MATERIA
   Coluna estreita de proposito: linha longa demais cansa a leitura corrida.
   ========================================================================= */
.materia{padding-block:3rem 4rem}
.materia .wrap{max-width:52rem}
.materia-topo{padding-bottom:1.75rem;border-bottom:1px solid var(--linha)}
.materia-topo h1{margin-top:1rem;font-size:clamp(1.75rem,1.3rem + 1.8vw,2.5rem);line-height:1.15}
.materia-data{margin-top:1rem;font-size:.875rem;color:var(--tinta-3)}

.materia-corpo{margin-top:2rem;font-size:1.0625rem;line-height:1.8;color:var(--tinta-2)}
.materia-corpo>*+*{margin-top:1.25rem}
.materia-corpo :is(h2,h3,h4){margin-top:2.5rem;line-height:1.25}
.materia-corpo h2{font-size:1.5rem}
.materia-corpo h3{font-size:1.25rem}
.materia-corpo a{color:var(--marca-600);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.materia-corpo :is(ul,ol){padding-left:1.5rem}
.materia-corpo ul{list-style:disc}
.materia-corpo ol{list-style:decimal}
.materia-corpo li+li{margin-top:.5rem}
/* max-width:100% e o que prende a imagem na coluna. O corpo vem do
   WordPress e traz largura em atributo; sem isto, foto grande estoura a
   margem e empurra a pagina para o lado. Vale para video e embed tambem. */
.materia-corpo img{max-width:100%;height:auto;border-radius:var(--r-card)}
.materia-corpo :is(iframe,video,embed,object){max-width:100%;height:auto;border-radius:var(--r-card)}
/* URL comprida sem espaco tambem estoura - quebra onde precisar. */
.materia-corpo{overflow-wrap:break-word}
.materia-corpo :is(pre,code){max-width:100%;overflow-x:auto;white-space:pre-wrap}
.materia-corpo blockquote{padding-left:1.25rem;border-left:3px solid var(--acento);font-size:1.125rem;color:var(--tinta)}
.materia-corpo figcaption{margin-top:.5rem;font-size:.8125rem;color:var(--tinta-3)}
/* Tabela vinda do WordPress nao pode estourar a coluna. */
.materia-corpo table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
.materia-corpo :is(th,td){padding:.625rem .875rem;border:1px solid var(--linha);font-size:.9375rem}

/* ---- Compartilhar ------------------------------------------------------ */
.compartilhar{margin-top:3rem;padding:1.75rem;border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--bruma)}
.compartilhar h2{font-size:1.0625rem}
.compartilhar ul{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.25rem}
.compartilhar :is(a,button){display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:0 1.125rem;border:1px solid var(--linha-forte);border-radius:9999px;background:#fff;color:var(--tinta-2);font:600 .875rem var(--f-corpo);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.compartilhar :is(a,button):hover{border-color:var(--marca-500);background:var(--marca-50);color:var(--marca-700)}
.compartilhar svg{color:var(--marca-600)}
.compartilhar [hidden]{display:none}
.compartilhar-estado{min-height:1.25rem;margin-top:.875rem;font-size:.875rem;font-weight:500;color:#126B3F}

.materia-pe{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--linha)}
.materia-pe a{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--marca-600)}
.materia-pe a:first-child svg{transform:rotate(180deg)}
.materia-pe a:hover{text-decoration:underline;text-underline-offset:3px}

/* ===========================================================================
   A COR DA LOGO NOS TITULOS E NO MENU

   O lettering "SINCOFARMA" do logotipo e #363B8E - conferido amostrando o
   proprio arquivo: 9.068 pixels nessa cor contra 830 do azul profundo. E o
   "azul institucional" que ja estava na paleta, mas que o site vinha usando
   so nos icones.

   Agora ele assume os TITULOS e o MENU, que e onde a marca fala. O azul
   profundo (#0C4683) segue nos fundos, botoes e links - os dois nao
   competem porque ocupam papeis diferentes.
   ========================================================================= */
h1, h2, h3, h4 { color: var(--azul-inst); }

/* Em fundo escuro o titulo continua branco - o azul da logo sumiria ali. */
.g-inst :is(h1,h2,h3,h4),
.g-prof :is(h1,h2,h3,h4),
.banner-inst :is(h1,h2,h3,h4),
.rodape :is(h1,h2,h3,h4),
.estrutura-principal :is(h1,h2,h3,h4),
.duplo-painel :is(h1,h2,h3,h4),
.destaque-capa :is(h1,h2,h3,h4) { color: #fff; }

/* A segunda metade do titulo: o azul profundo contra o institucional - mesma
   familia, tom diferente, hierarquia legivel. */
.dest { color: var(--azul-prof); }

/* ---- Menu ---- */
.gatilho { color: var(--azul-inst); font-weight: 500; }
.gatilho:hover { background: var(--marca-50); color: var(--marca-700); }
.gatilho.is-ativo,
.gatilho[aria-expanded="true"] { background: var(--marca-50); color: var(--marca-700); font-weight: 600; }

.mega-intro h2 { color: var(--azul-inst); }
.rodape-colunas h2 { color: var(--acento); }  /* o rodape e escuro */

/* ===========================================================================
   CABECALHO AO ROLAR
   Em repouso e branco solido. Ao rolar, fica translucido com desfoque: o
   conteudo passa por tras e o cabecalho deixa de ser uma barra opaca
   ocupando a tela.

   O fallback importa: onde nao ha backdrop-filter (navegador antigo), o
   fundo volta a ser branco quase solido. Sem isso o texto do menu cairia
   sobre o conteudo da pagina e viraria ilegivel.
   ========================================================================= */
.site { transition: background .3s ease, box-shadow .3s ease; }

.site.is-scrolled { background: rgba(255,255,255,.97); }

@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site.is-scrolled {
    background: rgba(255,255,255,.72);
    -webkit-backdrop-filter: blur(18px) saturate(160%);
    backdrop-filter: blur(18px) saturate(160%);
  }
  /* As faixas internas nao podem ter fundo proprio opaco, senao tapam o
     desfoque do cabecalho inteiro. */
  .site.is-scrolled .utility { background: transparent; }
  .site.is-scrolled .busca { background: rgba(252,253,254,.6); }
}

/* O mega-menu aberto volta ao branco solido: painel de leitura com o
   conteudo da pagina transparecendo atras fica confuso. */
.site.is-scrolled .mega { background: #fff; }

/* Em alto contraste nao ha translucidez: o requisito ali e separacao
   maxima entre as camadas. */
html.a11y-contraste .site,
html.a11y-contraste .site.is-scrolled {
  background: #fff;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 2px solid #000;
}

/* Banner interno compacto: usado onde o h1 pertence ao conteudo. */
.hero-pagina.is-compacto{padding-block:2.25rem 2.5rem}
.hero-pagina.is-compacto .hero-pagina-rotulo{margin-top:.875rem;font-family:var(--f-tit);font-size:clamp(1.25rem,1rem + .8vw,1.625rem);font-weight:700;line-height:1.2;color:#fff}
.hero-pagina.is-compacto .acoes-hero{margin-top:1.25rem}

/* ===========================================================================
   BANNER PRINCIPAL - ALTURA MAIOR, SANGRANDO, FOTO EM MASCARA CIRCULAR

   Ajustes sobre o bloco anterior:
   - sai a centralizacao: a faixa vai de borda a borda
   - a altura sobe de 3,8:1 para algo proximo de 2,4:1
   - a fotografia entra num circulo a direita, sobre painel de cor, como na
     referencia - em vez de preencher o fundo inteiro

   O PONTO PRINCIPAL: o banner institucional continua COMPOSTO - foto num
   campo, textos em outros. Quem publica troca a imagem e as frases sem
   precisar de uma arte fechada, e a peca se reajusta sozinha no celular.
   Banner feito de JPG unico nao faz isso: no celular ele encolhe ate o texto
   virar ilegivel, e qualquer correcao de virgula vira novo pedido ao designer.
   ========================================================================= */
.banner{padding:0}
.banner>.wrap{max-width:none;padding-inline:0}
.banner-palco{border-radius:0}

.banner-item{aspect-ratio:auto;min-height:clamp(26rem,42vw,34rem)}
@media(max-width:899px){.banner-item{min-height:0;aspect-ratio:auto}}

/* ---- Institucional: texto a esquerda, circulo a direita ---------------- */
.banner-inst{display:grid;align-items:center}
@media(min-width:1024px){
  .banner-inst{grid-template-columns:1fr 1fr}
}

/* O painel de cor atras do circulo. */
.banner-inst-foto{
  position:absolute;inset:0;left:auto;width:52%;z-index:0;
  background:none;
}
@media(max-width:1023px){
  .banner-inst-foto{width:100%;opacity:.3}
}

/* A fotografia no circulo. Sem arquivo, o circulo recebe o elemento da marca -
   ainda assim e uma composicao, nao um vazio. */
.banner-inst-foto::before{
  content:"";position:absolute;top:50%;left:50%;
  width:min(34rem,86%);aspect-ratio:1;transform:translate(-50%,-50%);
  border-radius:9999px;overflow:hidden;
  background-image:inherit;background-size:cover;background-position:center;
  box-shadow:0 30px 70px -30px rgba(3,18,35,.6);
}
.banner-inst-foto.is-vazia::before{
  background:
    radial-gradient(18rem 14rem at 40% 28%, rgba(74,129,180,.55), transparent 62%),
    linear-gradient(145deg, var(--marca-500), var(--marca-900));
}
/* O elemento da marca dentro do circulo, bem apagado. */
.banner-inst-foto .elemento{top:50%;right:auto;left:50%;bottom:auto;width:16rem;transform:translate(-50%,-50%);opacity:.12}

/* Com a foto em circulo, o veu so precisa cobrir o lado do texto. */
.banner-inst-veu{background:linear-gradient(90deg,rgba(3,18,35,.55) 0%,rgba(3,18,35,.25) 48%,rgba(3,18,35,0) 70%)}
@media(max-width:1023px){
  .banner-inst-veu{background:linear-gradient(180deg,rgba(3,18,35,.55) 0%,rgba(3,18,35,.82) 55%,rgba(3,18,35,.9) 100%)}
}

/* O conteudo volta a respeitar a grade da pagina, mesmo com a faixa sangrando:
   texto encostado na borda da tela nao se le. */
.banner-inst-conteudo{
  max-width:none;
  padding:2.5rem var(--gutter);
  margin-inline:auto;width:100%;
}
@media(min-width:1024px){
  .banner-inst-conteudo{
    padding:3.5rem 0 3.5rem var(--gutter);
    max-width:calc((110rem - var(--gutter)*2) / 2);
    margin-inline:0;
    justify-self:end;
  }
}
.banner-inst-titulo{font-size:clamp(1.75rem,1.2rem + 2.4vw,3.25rem)}
.banner-inst-texto{font-size:1rem;max-width:34rem}

/* ---- Parceiro: a arte ocupa a faixa inteira ---------------------------- */
.banner-parceiro img{object-position:center}

/* ---- Controles: pontos embaixo, como na referencia --------------------- */
.banner-pe{bottom:1.25rem;background:rgba(3,18,35,.4)}
.banner-seta{width:2.75rem;height:4rem;background:rgba(255,255,255,.65)}
.banner-seta.is-anterior{left:0;border-radius:0 8px 8px 0}
.banner-seta.is-proxima{right:0;border-radius:8px 0 0 8px}

/* ---- "Por onde comecar": encostado no banner -----------------------------
   O cartao sobe e cobre a borda inferior do banner, como na referencia
   (alziravelano.com). O banner voltou a ser alto, entao a sobreposicao nao
   engole mais os pontos - eles ficam acima da area coberta. */
.comecar-secao{padding:0 var(--gutter) 0;margin-top:-4.5rem}
@media(max-width:899px){.comecar-secao{margin-top:-2.5rem}}
.comecar{padding:2rem 1.5rem}
@media(min-width:900px){.comecar{padding:2.25rem 2.5rem}}
/* Sem o titulo, os grupos nao precisam da margem que vinha do header. */
.comecar-grupos{margin-top:0}
/* Os pontos do banner sobem para nao ficarem atras do cartao. */
.banner-pe{bottom:5.5rem}
@media(max-width:899px){.banner-pe{bottom:3.5rem}}

/* =========================================================================
   HERO - padrao "Hero 26" (React Bits Pro), refeito em HTML/CSS/SVG

   O bloco original e React e nao roda neste site (PHP puro, sem build). O
   padrao foi reconstruido aqui: split hero, texto a esquerda e um globo de
   rede a direita com um pulso se espalhando pelos nos.

   O que a arte quer dizer: os nos sao as farmacias e drogarias do estado, e
   o pulso que parte do centro e o suporte do sindicato chegando ate elas.
   ========================================================================= */
.heroi{padding-top:1.5rem}
.heroi-palco{
  position:relative;display:grid;overflow:hidden;
  border-radius:var(--r-bloco);
  background:
    radial-gradient(36rem 24rem at 74% 34%,rgba(23,92,151,.5),transparent 64%),
    linear-gradient(104deg,var(--marca-950) 0%,var(--marca-800) 48%,var(--marca-600) 100%);
}
/* So vira duas colunas quando ha largura para o globo nao espremer o texto.
   Abaixo disso a arte vai para baixo - e nao some: ela e o que da identidade
   ao topo, e no celular tambem cabe. */
@media(min-width:960px){.heroi-palco{grid-template-columns:1.06fr .94fr;align-items:center}}

.heroi-texto{position:relative;z-index:2;padding:clamp(1.75rem,4vw,3.5rem)}
@media(min-width:960px){.heroi-texto{padding-right:1rem}}

.heroi-selo{display:inline-flex;align-items:center;gap:.5rem;padding:.3125rem .75rem;border-radius:9999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.heroi-selo svg{color:var(--acento)}

.heroi-titulo{margin-top:1.25rem;font-family:var(--f-tit);font-size:clamp(2rem,1.3rem + 2.6vw,3.75rem);font-weight:700;line-height:1.06;letter-spacing:-.025em;color:#fff;text-wrap:balance}
.heroi-titulo strong{display:block;font-weight:700;color:var(--acento)}

.heroi-apoio{margin-top:1.125rem;max-width:34rem;font-size:clamp(.9375rem,.9rem + .2vw,1.0625rem);line-height:1.65;color:rgba(255,255,255,.82)}

.heroi-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:2rem}
.heroi-acao{display:inline-flex;align-items:center;gap:.5rem;min-height:3rem;padding:0 1.75rem;border-radius:9999px;background:var(--acento);color:var(--marca-950);font-size:.9375rem;font-weight:700;transition:background .2s,gap .25s}
.heroi-acao:hover{background:#FFD233;gap:.875rem}
.heroi-acao-apoio{display:inline-flex;align-items:center;min-height:3rem;color:rgba(255,255,255,.88);font-size:.9375rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;transition:color .2s}
.heroi-acao-apoio:hover{color:#fff}

.heroi-arte{position:relative;z-index:1;display:grid;place-items:center;padding:0 1.5rem 2rem}
@media(min-width:960px){.heroi-arte{padding:2.5rem 1rem 2.5rem 0}}
.globo{width:100%;max-width:31rem;height:auto;overflow:visible}

/* --- as pecas do globo ---------------------------------------------------
   Nada aqui e interativo nem informativo: o SVG inteiro sai como aria-hidden
   no HTML. Por isso pode ser so cor e movimento. */
.globo-esfera{stroke:rgba(255,255,255,.14);stroke-width:1}
.globo-grade{fill:none;stroke:rgba(134,172,210,.24);stroke-width:1}
.globo-orbita{fill:none;stroke:rgba(244,190,0,.22);stroke-width:1.5;stroke-dasharray:3 9;transform-box:fill-box;transform-origin:center}
.globo-fios line{stroke:rgba(134,172,210,.38);stroke-width:1.25;stroke-linecap:round}

/* O pulso usa pathLength=100 no HTML: a animacao passa a ser a mesma em fio
   curto e em fio longo. Sem isso o pulso correria mais rapido perto do
   centro e a onda chegaria torta na borda. */
.globo-pulso{stroke:var(--acento);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:10 100;stroke-dashoffset:-100;opacity:0}

.globo-ponto{fill:#86ACD2;opacity:.75}
.globo-brilho{fill:var(--acento);opacity:0}
.globo-halo{fill:none;stroke:var(--acento);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}

/* O escalonamento por anel e o que faz o pulso PARECER que se espalha. Sem
   ele a rede inteira pisca junto, que e outra coisa - e bem menos bonita.
   O --anel de cada no sai do PHP, contado a partir da raiz. */
@media(prefers-reduced-motion:no-preference){
  html:not(.a11y-sem-movimento) .globo-orbita{animation:globo-gira 48s linear infinite}
  html:not(.a11y-sem-movimento) .globo-pulso{animation:globo-fio 4.2s linear infinite;animation-delay:calc(var(--anel) * .42s)}
  html:not(.a11y-sem-movimento) .globo-halo{animation:globo-halo 4.2s ease-out infinite;animation-delay:calc(var(--anel) * .42s)}
  html:not(.a11y-sem-movimento) .globo-brilho{animation:globo-brilho 4.2s ease-out infinite;animation-delay:calc(var(--anel) * .42s)}
}
/* Parado, o globo continua inteiro: os pontos nascem visiveis. Quem pediu
   menos movimento ve a rede, so nao ve a onda. */

@keyframes globo-gira{to{transform:rotate(360deg)}}
@keyframes globo-fio{
  0%  {stroke-dashoffset:10;opacity:0}
  1%  {opacity:1}
  10% {stroke-dashoffset:-100;opacity:1}
  13% {opacity:0}
  100%{stroke-dashoffset:-100;opacity:0}
}
@keyframes globo-halo{
  0%  {transform:scale(.5);opacity:.8}
  18% {transform:scale(3);opacity:0}
  100%{transform:scale(3);opacity:0}
}
@keyframes globo-brilho{
  0%  {opacity:1}
  16% {opacity:0}
  100%{opacity:0}
}

/* =========================================================================
   POR ONDE COMEÇAR - trilha de cartoes

   Formato da referencia aprovada (unimedriopreto.com.br): chamada e setas na
   coluna da esquerda, cartoes correndo numa trilha que SANGRA pela direita.
   A sangria e o aviso de que a lista continua - mais honesto do que uma
   sombra ou um degrade, porque mostra o proximo cartao de verdade.
   ========================================================================= */
.trilha-secao{position:relative;z-index:4;padding:clamp(3rem,6vw,5rem) var(--gutter) 0;overflow-x:clip}
.trilha{display:grid;gap:1.5rem}

/* ---- Chamada centralizada acima da fileira ------------------------------
   Antes a chamada ficava numa coluna a esquerda e os cartoes sangravam pela
   direita. Agora ela vem centralizada no topo e a fileira ocupa a largura
   toda - os quatro caminhos passam a ter o mesmo peso, que e o que a
   referencia faz. */
.trilha-topo{max-width:44rem;margin:0 auto 2.5rem;text-align:center}
.trilha-topo .chapeu{justify-content:center}
.trilha-topo h2{margin-top:.75rem;font-size:clamp(1.75rem,1.2rem + 1.9vw,2.75rem);line-height:1.1;letter-spacing:-.02em;color:var(--marca-700)}
.trilha-topo p{margin-top:1rem;font-size:.9375rem;line-height:1.65;color:var(--tinta-3)}

/* Centralizadas junto com a chamada, e nao mais encostadas a esquerda. */
.trilha-setas{display:flex;justify-content:center;gap:.625rem;margin-top:1.75rem}
.trilha-setas[hidden]{display:none}
.trilha-seta{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--linha-forte);border-radius:9999px;background:#fff;color:var(--marca-600);cursor:pointer;transition:background .2s,border-color .2s,color .2s,opacity .2s}
.trilha-seta:hover:not(:disabled){background:var(--marca-600);border-color:var(--marca-600);color:#fff}
.trilha-seta:disabled{opacity:.3;cursor:default}
.trilha-seta.is-anterior svg{transform:rotate(180deg)}

.trilha-palco{position:relative;min-width:0}
.trilha-rail{
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
  scrollbar-width:none;
  /* O respiro vertical e padding e nao margin para a sombra dos cartoes nao
     ser cortada pela caixa de rolagem. */
  padding-block:1.5rem;
  margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);
}
.trilha-rail::-webkit-scrollbar{display:none}
.trilha-rail:focus-visible{outline:2px solid var(--marca-600);outline-offset:4px;border-radius:var(--r-card)}

.trilha-cartoes{display:flex;gap:1rem;width:max-content;list-style:none;margin:0;padding:0}
.trilha-cartao{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.625rem;width:clamp(14.5rem,72vw,17rem);min-height:20rem;padding:1.75rem 1.5rem;border-radius:var(--r-card);box-shadow:var(--s-card);overflow:hidden;scroll-snap-align:start}
.trilha-tag{position:relative;font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.trilha-nome{position:relative;font-family:var(--f-tit);font-size:1.3125rem;line-height:1.2}
.trilha-nome strong{display:block;font-weight:700}
/* Empurra o par botao+link para o pe: os cartoes tem textos de alturas
   diferentes e, sem isso, cada botao para numa altura. */
.trilha-cartao .comecar-botao{position:relative;margin-top:auto}
.trilha-cartao .comecar-saiba{position:relative}

/* Em tela larga os quatro cabem lado a lado: a fileira vira grade e para de
   sangrar. Nao ha o que rolar, e o script mantem as setas escondidas. */
@media(min-width:1024px){
  .trilha-rail{overflow-x:visible;margin-inline:0;padding-inline:0}
  .trilha-cartoes{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;width:auto}
  .trilha-cartao{width:auto;min-height:22rem}
}

/* ---- Placas com legenda no pe ------------------------------------------
   Os tres cartoes depois do primeiro viram PLACA: a arte ocupa o cartao
   inteiro e o texto desce para o pe, sobre um veu. E a divisao da
   referencia - um painel solido abre a fileira, as placas repetem o gesto
   sem competir com ele.

   A legenda empurrada para baixo por margin-top:auto no botao ja acontece;
   aqui so se garante que texto e botao fiquem ACIMA da arte (position
   relative nos filhos) e legiveis sobre ela (o veu). */
.trilha-cartao.is-placa{justify-content:flex-end;color:#fff;border:0}
.trilha-foto{position:absolute;inset:0;background-size:cover;background-position:center}
.trilha-foto.is-vazia{background:radial-gradient(26rem 20rem at 70% 14%,rgba(74,129,180,.5),transparent 62%),linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 46%,var(--marca-900) 100%)}
/* O veu nao e sombra decorativa: sem ele o texto branco cai em cima da
   parte clara da fotografia e some. Mais denso no pe, onde o texto esta. */
.trilha-veu{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,18,35,.82) 0%,rgba(3,18,35,.34) 48%,rgba(3,18,35,.14) 100%)}
.trilha-cartao.is-placa .trilha-tag{opacity:.85}
.trilha-cartao.is-placa .comecar-botao{background:#fff;color:var(--marca-700)}
.trilha-cartao.is-placa .comecar-botao:hover{background:var(--marca-50)}
.trilha-cartao.is-placa .comecar-saiba{color:rgba(255,255,255,.85)}

/* O painel solido que abre a fileira fica com a cor cheia do tom-*, sem
   arte por tras - e por isso que ele ancora o conjunto. */
.trilha-cartao.is-solido{justify-content:flex-end}

/* =========================================================================
   FAIXA DE PARCEIROS

   Reaproveita .banner (e o carrossel do site.js junto). Precisa desfazer os
   ajustes que o banner principal recebia quando ERA o topo da pagina: la ele
   sangrava de ponta a ponta, sem cantos e com altura minima alta. Como faixa
   no meio da pagina ele volta a ser uma peca contida, no formato da arte que
   os parceiros entregam (1460x380).
   ========================================================================= */
.banner--parceiros{padding-block:clamp(2.5rem,5vw,4rem) 0}
.banner--parceiros>.wrap{max-width:110rem;padding-inline:var(--gutter)}
.banner--parceiros .banner-palco{margin-top:.875rem;border-radius:var(--r-bloco);background:var(--vidro)}
.banner--parceiros .banner-item{aspect-ratio:1460/380;min-height:0}

/* =========================================================================
   CURSOS - formato da referencia aprovada (grpro)

   Pilula de chapeu, titulo grande a esquerda e frase de apoio a direita;
   embaixo, uma grade 2x2 de cartoes com faixa de foto e, na coluna da
   direita, o painel escuro com a AGENDA - que e o que a pessoa veio buscar.
   ========================================================================= */
.pilula-chapeu{display:inline-flex;align-items:center;gap:.5rem;padding:.4375rem .875rem;border:1px solid var(--marca-100);border-radius:9999px;background:var(--marca-50);font-family:var(--f-cond);font-size:.75rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--marca-600)}
.pilula-chapeu svg{color:var(--marca-500)}

.capacita-topo{display:grid;gap:1.25rem;margin-bottom:clamp(2rem,4vw,3rem)}
/* A frase de apoio alinha pelo PE do titulo, nao pelo topo: e uma legenda do
   titulo, e encostada no topo ela parecia um segundo titulo concorrendo. */
@media(min-width:900px){.capacita-topo{grid-template-columns:1.3fr .7fr;gap:3rem;align-items:end}}
.capacita-topo h2{margin-top:1rem;font-size:clamp(1.875rem,1.2rem + 2.2vw,3rem);line-height:1.08;letter-spacing:-.025em;color:var(--marca-700)}
.capacita-nota{font-size:1rem;line-height:1.6;color:var(--tinta-3)}
@media(min-width:900px){.capacita-nota{text-align:right;padding-bottom:.5rem}}
.capacita-nota strong{font-weight:700;color:var(--marca-600)}

.capacita-grade{display:grid;gap:1.5rem}
@media(min-width:1100px){.capacita-grade{grid-template-columns:minmax(0,1.55fr) minmax(0,.95fr);gap:2rem;align-items:start}}

.capacita-coluna{display:grid;gap:1.5rem;min-width:0}
.capacita-cartoes{display:grid;gap:1rem;list-style:none;margin:0;padding:0}
@media(min-width:620px){.capacita-cartoes{grid-template-columns:1fr 1fr}}

.capacita-cartao{display:flex;overflow:hidden;border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50)}
/* FOTOGRAFIA A FORNECER: e so apontar background-image nesta faixa. Sem o
   arquivo o gradiente da identidade assume e o cartao nao quebra. */
.capacita-foto{flex:0 0 5.5rem;align-self:stretch;background-size:cover;background-position:center}
.capacita-foto.is-vazia{background:linear-gradient(160deg,var(--marca-500),var(--marca-900))}
.capacita-corpo{min-width:0;padding:1.375rem 1.25rem}
.capacita-ico{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:10px;background:#fff;color:var(--marca-600);box-shadow:var(--s-card)}
.capacita-cartao h3{margin-top:.875rem;font-size:1.0625rem;line-height:1.3;color:var(--marca-700)}
.capacita-cartao p{margin-top:.5rem;font-size:.875rem;line-height:1.6;color:var(--tinta-2)}
.capacita-link{display:inline-flex;align-items:center;gap:.375rem;margin-top:.875rem;font-size:.8125rem;font-weight:600;color:var(--marca-600);transition:gap .2s}
.capacita-link:hover{gap:.625rem}

/* As duas trilhas - o atalho de quem ja sabe o que procura. */
.capacita-trilhas{display:grid;gap:.75rem;list-style:none;margin:0;padding:0}
@media(min-width:620px){.capacita-trilhas{grid-template-columns:1fr 1fr}}
.capacita-trilhas a{display:flex;align-items:center;gap:.875rem;padding:1.125rem 1.25rem;border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;transition:border-color .2s,box-shadow .2s}
.capacita-trilhas a:hover{border-color:var(--acento);box-shadow:var(--s-card)}
.capacita-trilha-ico{display:grid;place-items:center;flex:0 0 2.75rem;height:2.75rem;border-radius:9999px;background:var(--marca-50);color:var(--marca-600)}
.capacita-trilha-txt{flex:1;min-width:0}
.capacita-trilha-txt strong{display:block;font-size:.9375rem;color:var(--marca-700)}
.capacita-trilha-txt small{display:block;margin-top:.1875rem;font-size:.78125rem;line-height:1.45;color:var(--tinta-3)}
.capacita-trilha-conta{display:inline-flex;align-items:center;gap:.375rem;flex:0 0 auto;font-family:var(--f-cond);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--marca-500)}

/* O painel da direita faz o papel do "produto" na referencia. */
.capacita-painel{padding:1.75rem;border-radius:var(--r-bloco);background:linear-gradient(165deg,var(--marca-950),var(--marca-800));box-shadow:var(--s-elev)}
.capacita-painel-topo{display:flex;align-items:flex-start;gap:.875rem}
.capacita-ico.is-claro{background:rgba(255,255,255,.12);color:var(--acento);box-shadow:none}
.capacita-painel h3{font-size:1.125rem;color:#fff}
.capacita-painel-topo p{margin-top:.25rem;font-size:.8125rem;line-height:1.5;color:rgba(255,255,255,.7)}

.capacita-meses{display:grid;gap:.4375rem;list-style:none;margin:1.25rem 0 0;padding:0}
.capacita-meses a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .875rem;border-radius:var(--r-sm);background:rgba(255,255,255,.08);color:#fff;font-size:.875rem;transition:background .2s}
.capacita-meses a:hover{background:rgba(255,255,255,.16)}
.capacita-meses svg{color:var(--acento)}

.capacita-cta{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:2.875rem;margin-top:1.25rem;border-radius:9999px;background:var(--acento);color:var(--marca-950);font-size:.875rem;font-weight:700;transition:background .2s}
.capacita-cta:hover{background:#FFD233}
.capacita-secundaria{display:inline-flex;align-items:center;gap:.375rem;margin-top:.875rem;font-size:.8125rem;font-weight:600;color:rgba(255,255,255,.85);text-decoration:underline;text-underline-offset:3px;transition:color .2s,gap .2s}
.capacita-secundaria:hover{color:#fff;gap:.625rem}

.capacita-procurados{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.16)}
.capacita-procurados .chapeu{color:rgba(255,255,255,.6)}
.capacita-procurados ul{display:grid;gap:.75rem;list-style:none;margin:.875rem 0 0;padding:0}
.capacita-procurados strong{display:block;font-size:.875rem;font-weight:600;color:#fff}
/* Duas linhas e corta: o resumo aqui e isca, nao a descricao do curso. */
.capacita-procurados small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:.25rem;font-size:.78125rem;line-height:1.5;color:rgba(255,255,255,.62)}

/* =========================================================================
   EVENTOS - faixa de cartoes altos (referencia grpro, "Quem atendemos")

   A faixa sangra dos dois lados: o cartao cortado na borda e o que avisa que
   a lista continua. O primeiro cartao, porem, alinha com o titulo - por isso
   o padding da pista repete a conta do .wrap em vez de ser zero.
   ========================================================================= */
.eventos{padding-block:clamp(3.5rem,7vw,6rem)}
.eventos-palco{position:relative;margin-top:clamp(2rem,4vw,3rem)}

.eventos-rail{
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
  scrollbar-width:none;
  /* padding e nao margin: a sombra dos cartoes nao pode ser cortada pela
     caixa de rolagem. */
  padding-block:1rem;
  padding-inline:max(var(--gutter),(100vw - 110rem)/2 + var(--gutter));
}
.eventos-rail::-webkit-scrollbar{display:none}
.eventos-rail:focus-visible{outline:2px solid var(--marca-600);outline-offset:2px}

.eventos-cartoes{display:flex;gap:1.25rem;width:max-content;list-style:none;margin:0;padding:0}
.eventos-cartao{width:clamp(15rem,62vw,19rem);scroll-snap-align:start}
.eventos-cartao>a{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border-radius:var(--r-bloco);box-shadow:var(--s-card)}

/* FOTOGRAFIA A FORNECER: o campo 'foto' de inc/conteudo/eventos.php vira
   background-image aqui. Sem arquivo, o gradiente da identidade assume. */
.eventos-foto{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.eventos-foto.is-vazia{background:linear-gradient(165deg,var(--marca-500) 0%,var(--marca-800) 54%,var(--marca-950) 100%)}
.eventos-cartao>a:hover .eventos-foto{transform:scale(1.05)}

/* O veu existe para o texto branco ter contraste sobre QUALQUER foto que
   venha depois - inclusive uma clara. Sem ele o titulo some na imagem. */
.eventos-veu{position:absolute;inset:0;background:linear-gradient(to top,rgba(3,18,35,.93) 0%,rgba(3,18,35,.66) 36%,rgba(3,18,35,.14) 72%,rgba(3,18,35,.04) 100%)}

.eventos-corpo{position:absolute;left:0;right:0;bottom:0;padding:1.5rem 1.375rem}
.eventos-chapeu{display:block;font-family:var(--f-cond);font-size:.6875rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--acento)}
.eventos-fio{display:block;width:2.75rem;height:3px;margin:.75rem 0 .875rem;border-radius:9999px;background:var(--acento)}
.eventos-corpo strong{display:block;font-family:var(--f-tit);font-size:1.1875rem;line-height:1.25;color:#fff}
.eventos-corpo small{display:block;margin-top:.5rem;font-size:.8125rem;line-height:1.55;color:rgba(255,255,255,.78)}

/* Setas por cima dos cartoes, como na referencia. */
.eventos-setas[hidden]{display:none}
.eventos-seta{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:3rem;height:3rem;transform:translateY(-50%);border:0;border-radius:9999px;background:var(--marca-600);color:#fff;cursor:pointer;box-shadow:var(--s-elev);transition:background .2s,opacity .2s}
.eventos-seta:hover:not(:disabled){background:var(--marca-700)}
.eventos-seta:disabled{opacity:.25;cursor:default}
.eventos-seta.is-anterior{left:.75rem}
.eventos-seta.is-anterior svg{transform:rotate(180deg)}
.eventos-seta.is-proxima{right:.75rem}

/* =========================================================================
   FAIXA DE PARCEIROS - fila unica (padrao "Social Proof 9")

   Uma esteira so, com os 19 parceiros em fila. Funciona porque todos tem o
   mesmo tamanho de caixa: a fila tem uma regua, e o olho acompanha.
   ========================================================================= */

/* "Minima", como na referencia: o logotipo entra dessaturado e so ganha cor
   quando a pessoa para em cima dele. Assim a faixa nao compete com o
   conteudo da pagina, mas continua reconhecivel de perto. */
.marquise-trilho li.tem-logo img{filter:grayscale(1);opacity:.55;transition:filter .3s,opacity .3s}
.marquise:hover .marquise-trilho li.tem-logo img{filter:none;opacity:1}

/* --- Marcas distribuidas APENAS em branco --------------------------------
   Grupo Unico e GRPRO so existem em versao branca. Sem fundo atras, elas
   sumiriam nesta faixa clara - e fundo e exatamente o que esta faixa nao
   tem mais.

   brightness(0) joga todo pixel opaco para preto: a marca vira silhueta
   cheia, do mesmo tom das outras e sem retangulo nenhum. E o unico caminho
   honesto aqui - inverter o GRPRO trocaria o turquesa dele por laranja, o
   que seria afirmar uma cor de marca que nao existe. Silhueta se le como
   tratamento; cor errada se le como erro.

   So funciona porque os dois arquivos tem transparencia de verdade. */
.marquise-trilho li.tem-logo.logo-vazado img{filter:brightness(0);opacity:.55}
.marquise:hover .marquise-trilho li.tem-logo.logo-vazado img{filter:brightness(0);opacity:.85}

/* Parada, a esteira vira uma lista que quebra em linhas - e nao uma fila
   cortada no meio. */
html.a11y-sem-movimento .marquise{max-height:none}
html.a11y-sem-movimento .marquise-trilho li.tem-logo img{filter:none;opacity:1}
/* ...mas a marca branca continua precisando da silhueta, senao some. */
html.a11y-sem-movimento .marquise-trilho li.tem-logo.logo-vazado img{filter:brightness(0);opacity:.85}

/* =========================================================================
   COMO PODEMOS AJUDAR - mesma faixa da trilha

   A grade virou faixa: chamada, busca e setas a esquerda; os atalhos
   correndo e sangrando pela direita. Os cartoes nao mudaram - so a caixa
   que os organiza - entao .ajuda-grade continua valendo e aqui so o
   display e sobrescrito.
   ========================================================================= */
/* A faixa sangra pela direita com margem negativa. Sem conter aqui, essa
   sobra alarga o documento inteiro e a pagina ganha rolagem horizontal -
   o que desalinha TODAS as secoes, nao so esta. Mesmo tratamento que a
   trilha de "Por onde comecar" ja recebia. */
.ajuda-secao{position:relative;overflow-x:clip}
.ajuda{display:grid;gap:1.5rem}
@media(min-width:1024px){.ajuda{grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:3.5rem;align-items:center}}
.ajuda-intro h2{margin-top:1rem;font-size:clamp(1.75rem,1.2rem + 1.9vw,2.5rem);line-height:1.12;letter-spacing:-.02em}
.ajuda-intro .ajuda-busca{margin-top:1.5rem}
.ajuda-intro .trilha-setas{margin-top:1.5rem}

.ajuda-palco{position:relative;min-width:0}

/* ---- A laje escura por tras da fila ------------------------------------
   Gesto da referencia aprovada (unimedriopreto.com.br). Nao e enfeite
   solto: e ela que ancora a fila que sangra pela direita. Sem fundo, os
   cartoes pareciam flutuar e a sangria parecia corte de pagina mal feito;
   com a laje, fica claro que a fila CONTINUA - ela sai de dentro de algo.

   Duas sobras de proposito, e sao elas que dao a profundidade:
     . na vertical a laje passa ALEM dos cartoes (eles tem padding-block);
     . na horizontal os cartoes comecam ANTES dela (left:3.5rem), entao o
       primeiro cartao cavalga a borda esquerda.

   E ::before, nao uma div: decoracao pura nao merece marcacao propria no
   HTML e assim nunca chega ao leitor de tela. */
@media(min-width:1024px){
  .ajuda-palco::before{
    content:"";position:absolute;z-index:0;
    top:0;bottom:0;left:3.5rem;
    right:calc(-1 * max(var(--gutter),(100vw - 110rem)/2 + var(--gutter)));
    border-radius:var(--r-bloco) 0 0 var(--r-bloco);
    background:linear-gradient(118deg,var(--azul-prof) 0%,var(--marca-900) 100%);
  }
}
/* Abaixo de 1024px nao ha laje: a coluna unica nao tem para onde sangrar,
   e uma faixa escura atras de cartoes empilhados viraria so um bloco de
   cor. Tela estreita recebe o mesmo conteudo, nao o desktop encolhido. */

.ajuda-rail{
  position:relative;z-index:1;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
  scrollbar-width:none;
  padding-block:2rem;
  margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);
}
.ajuda-rail::-webkit-scrollbar{display:none}
.ajuda-rail:focus-visible{outline:2px solid var(--marca-600);outline-offset:4px;border-radius:var(--r-card)}
@media(min-width:1024px){
  .ajuda-rail{
    margin-right:calc(-1 * max(var(--gutter),(100vw - 110rem)/2 + var(--gutter)));
    padding-right:max(var(--gutter),(100vw - 110rem)/2 + var(--gutter));
  }
}
/* Sobrescreve a grade: as mesmas pecas, agora em fila. */
.ajuda-rail .ajuda-grade{display:flex;grid-template-columns:none;gap:1rem;width:max-content}
.ajuda-rail .ajuda-grade>li{width:clamp(16rem,74vw,19rem);scroll-snap-align:start}

/* =========================================================================
   PERGUNTAS FREQUENTES EM CONVERSA ("FAQ 2")

   Baloes de chat em vez de sanfona. A pergunta vem da direita, como quem
   escreve; a resposta vem da esquerda, com o avatar do sindicato.

   Por que tudo aberto: o publico inclui muita gente com pouca autonomia
   digital, e sanfona esconde a resposta atras de um controle que nem todo
   mundo percebe que existe. Aqui a pagina ja chega respondida.

   A marcacao e <dl>/<dt>/<dd> - leitor de tela anuncia pergunta e resposta
   como um par. O visual de chat e so CSS por cima disso.
   ========================================================================= */
.conversa{display:grid;gap:1.75rem;max-width:58rem;margin-inline:auto}
/* O atraso escalonado faz os pares entrarem na ordem da leitura, como
   mensagens chegando - e nao os seis de uma vez. */
.conversa-par{display:grid;gap:.75rem;transition-delay:var(--atraso,0ms)}

.balao{position:relative;padding:1.125rem 1.375rem;font-size:.9375rem;line-height:1.7}

/* ---- Pergunta: direita, cheia da cor da marca -------------------------- */
.balao-pergunta{
  justify-self:end;max-width:min(42rem,88%);
  border-radius:var(--r-bloco) var(--r-bloco) .375rem var(--r-bloco);
  background:var(--marca-600);color:#fff;
  font-family:var(--f-tit);font-weight:600;
}

/* ---- Resposta: esquerda, clara, com avatar ----------------------------- */
.conversa-resposta{display:flex;align-items:flex-start;gap:.75rem;margin:0;max-width:min(46rem,94%)}
.balao-avatar{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex-shrink:0;margin-top:.25rem;border-radius:9999px;background:var(--marca-50);color:var(--marca-600)}
.balao-resposta{
  flex:1;min-width:0;
  border-radius:.375rem var(--r-bloco) var(--r-bloco) var(--r-bloco);
  border:1px solid var(--linha);background:var(--bruma-2);color:var(--tinta-2);
}
.balao-resposta p{margin:0}
/* O link e a saida da resposta: leva para a pagina que resolve de verdade. */
.balao-link{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;margin-top:.375rem;font-size:.875rem;font-weight:600;color:var(--marca-600);transition:gap .25s}
.balao-link:hover{gap:.875rem}

@media(min-width:720px){
  .balao{font-size:1rem;padding:1.25rem 1.5rem}
  .conversa-par{gap:1rem}
}

/* =========================================================================
   A FARMACIA E O PROFISSIONAL - faixa dividida

   Painel colorido a esquerda, fotografia no meio, painel escuro a direita
   com quatro beneficios em 2x2. Sangra de ponta a ponta: e o unico bloco da
   home que encosta nas duas bordas.

   Os dois paineis tem o MESMO peso visual de proposito. Quem administra a
   farmacia e quem trabalha nela chegam pela mesma porta, e a pagina nao
   deve decidir por elas qual das duas importa mais.
   ========================================================================= */
.duplo-secao{position:relative;overflow-x:clip}
.duplo{display:grid}
/* Empilhado no celular a foto fica no meio, separando os dois assuntos -
   e nao um bloco de cor atras do outro, que leria como um so. */
@media(min-width:1100px){.duplo{grid-template-columns:1fr .8fr 1fr}}

.duplo-painel{display:flex;padding:clamp(2.5rem,5vw,4.5rem) var(--gutter);color:#fff}
.duplo-conteudo{width:100%;max-width:30rem;margin-inline:auto}
@media(min-width:1100px){
  .duplo-empresa .duplo-conteudo{margin-right:clamp(1.5rem,3vw,3.5rem)}
  .duplo-pessoa .duplo-conteudo{margin-left:clamp(1.5rem,3vw,3.5rem)}
}

.duplo-empresa{background:var(--azul-inst)}
.duplo-pessoa{
  background:
    radial-gradient(44rem 28rem at 88% 0%,rgba(74,129,180,.3),transparent 62%),
    linear-gradient(150deg,var(--azul-prof) 0%,var(--marca-800) 60%,var(--marca-900) 100%);
}

.duplo-painel h3{margin-top:1rem;font-size:clamp(1.5rem,1.2rem + 1.3vw,2.125rem);line-height:1.15;color:#fff}
.duplo-painel p{margin-top:1rem;font-size:1rem;line-height:1.7;color:rgba(255,255,255,.82)}

/* Ambar nos dois lados: e a cor de ACAO da identidade, e aqui os dois
   paineis oferecem exatamente isso - um caminho para seguir. */
.btn-duplo{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:1.75rem;padding:0 1.75rem;border-radius:9999px;background:var(--acento);color:var(--marca-950);font-size:.9375rem;font-weight:700;transition:background .2s,transform .2s}
.btn-duplo:hover{background:#FFD233;transform:translateY(-2px)}

/* ---- Coluna do meio: a fotografia -------------------------------------- */
.duplo-foto{position:relative;overflow:hidden;min-height:16rem;background-size:cover;background-position:center}
/* Sem fotografia, o gradiente da identidade assume - e nao um bloco ambar.
   Ambar e laranja sao cor de ACAO no briefing; uma coluna inteira deles aqui
   competiria com os dois botoes, que sao o que a pessoa precisa achar. */
.duplo-foto.is-vazia{background:radial-gradient(30rem 24rem at 50% 18%,rgba(74,129,180,.42),transparent 64%),linear-gradient(168deg,var(--marca-500) 0%,var(--azul-prof) 52%,var(--marca-800) 100%)}
@media(min-width:1100px){.duplo-foto{min-height:34rem}}

/* ---- Beneficios em 2x2 -------------------------------------------------- */
.duplo-beneficios{display:grid;gap:1.25rem 1.5rem;margin-top:2.25rem;padding-top:1.75rem;border-top:1px solid var(--linha-clara)}
@media(min-width:480px){.duplo-beneficios{grid-template-columns:1fr 1fr}}
.duplo-beneficios li{display:flex;align-items:flex-start;gap:.75rem;font-size:.8125rem;line-height:1.45;color:rgba(255,255,255,.72)}
.duplo-beneficios strong{display:block;font-size:.875rem;font-weight:600;color:#fff}
.duplo-ico{display:grid;place-items:center;width:2rem;height:2rem;flex-shrink:0;border-radius:9999px;background:rgba(244,190,0,.14);color:var(--acento)}

/* =========================================================================
   VANTAGENS PARA ASSOCIADOS - mapa de integracao com nos orbitando
   (React Bits "Features 10", refeito em HTML/CSS - ver inc/vantagens.php)

   Desenho conferido contra a referencia do bloco: fundo CLARO, nucleo e nos
   em PLACA QUADRADA de canto arredondado com so o icone dentro, e o rotulo
   FORA, abaixo da placa. Dois aneis concentricos (externo continuo e
   apagado, interno pontilhado), raios curtos saindo do centro e pontinhos
   soltos la fora.

   Virou claro: era painel azul escuro. A referencia e branca, e o branco
   predominante tambem e a direcao do site - os paineis azuis ficam para os
   blocos institucionais.
   ========================================================================= */
.vant-secao{position:relative;overflow:hidden}
.vant{display:grid;gap:3rem;align-items:center}
@media(min-width:960px){.vant{grid-template-columns:.9fr 1.1fr;gap:4rem}}

/* ---- Coluna do texto ---------------------------------------------------- */
.vant-texto h2{margin:1.25rem 0 0;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:var(--tinta)}
.vant-texto p{margin:1.25rem 0 0;max-width:34rem;font-size:1.0625rem;line-height:1.65;color:var(--tinta-2)}
.vant-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2rem}

/* Pilula de estado da referencia: contorno leve e um ponto vivo na frente.
   Nao e botao - nao leva a lugar nenhum, so informa. Por isso nao tem cara
   de botao nem area de clique. */
.vant-selo{display:inline-flex;align-items:center;gap:.625rem;min-height:48px;padding:0 1.25rem;border:1px solid var(--linha);border-radius:9999px;font-size:.9375rem;font-weight:600;color:var(--tinta-2)}
.vant-selo-ponto{width:.5rem;height:.5rem;flex-shrink:0;border-radius:50%;background:var(--acento);box-shadow:0 0 0 .25rem rgba(244,190,0,.2)}

/* ---- O mapa ------------------------------------------------------------
   Quadrado por aspect-ratio, para o anel continuar redondo em qualquer
   largura. --raio posiciona os nos em % do proprio quadrado: tudo escala
   junto, sem conta nova. */
.vant-orbita{position:relative;aspect-ratio:1;max-width:34rem;margin-inline:auto;--raio:38%}

.vant-anel{position:absolute;top:50%;left:50%;translate:-50% -50%;border-radius:50%}
.vant-anel--externo{width:88%;height:88%;border:1px solid var(--linha)}
.vant-anel--interno{width:52%;height:52%;border:1px dashed var(--linha-forte);opacity:.55}
/* Unico movimento da secao: o anel pontilhado, em 120s. Tao lento que nao
   se percebe olhando - so impede que o bloco pareca uma imagem parada. */
@media(prefers-reduced-motion:no-preference){
  .vant-anel--interno{animation:vant-gira 120s linear infinite}
}
@keyframes vant-gira{to{rotate:360deg}}

/* As listas cobrem a orbita inteira: e nelas que os itens se ancoram. */
.vant-raios,.vant-poeira,.vant-nos{position:absolute;inset:0}

/* Raio: um tracinho do centro na direcao do no. transform-origin na ponta
   esquerda faz ele girar a partir do centro da orbita. */
.vant-raios li{position:absolute;top:50%;left:50%;width:19%;height:1px;background:var(--linha);transform-origin:0 50%;transform:rotate(var(--ang))}

.vant-poeira li{position:absolute;top:50%;left:50%;width:.25rem;height:.25rem;border-radius:50%;background:var(--linha-forte);translate:-50% -50%;transform:rotate(var(--ang)) translate(var(--raio)) }

/* ---- Placas (nucleo e nos) ---------------------------------------------
   Mesma peca nos dois lugares: quadrado de canto arredondado, branco, fio
   leve e sombra curta. O que muda e o tamanho. */
.vant-placa{display:grid;place-items:center;width:3.75rem;height:3.75rem;border-radius:1rem;border:1px solid var(--linha);background:#fff;color:var(--tinta-2);box-shadow:0 .5rem 1.25rem rgba(16,23,43,.07);transition:border-color .25s,box-shadow .25s,transform .25s}
.vant-placa--nucleo{width:5.5rem;height:5.5rem;border-radius:1.25rem;box-shadow:0 1rem 2.5rem rgba(16,23,43,.12)}
.vant-placa--nucleo img{width:52%;height:auto}

/* ---- Nucleo ------------------------------------------------------------- */
.vant-nucleo{position:absolute;top:50%;left:50%;translate:-50% -50%;display:grid;justify-items:center;gap:.75rem;z-index:1}
/* Etiqueta embaixo da placa, como na referencia - chapeuzinho num chip. */
.vant-nucleo-etiqueta{padding:.25rem .625rem;border-radius:.375rem;background:var(--vidro);font-family:var(--f-cond);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);white-space:nowrap}

/* ---- Os quatro nos ------------------------------------------------------
   A ancora gira para a posicao e o conteudo DESGIRA pelo mesmo angulo, para
   placa e rotulo ficarem de pe. */
.vant-ancora{position:absolute;top:50%;left:50%;translate:-50% -50%;transform:rotate(var(--ang)) translate(var(--raio))}
.vant-no{display:grid;justify-items:center;gap:.5rem;width:max-content;transform:rotate(calc(-1 * var(--ang)))}
.vant-no:hover .vant-placa{border-color:var(--acento);box-shadow:0 .75rem 1.75rem rgba(16,23,43,.12);transform:translateY(-2px)}
.vant-no:focus-visible{outline-offset:6px;border-radius:1rem}
/* O rotulo vive FORA da placa - e o gesto que diferencia este bloco de uma
   grade de cartoes comum. */
.vant-no-rotulo{font-size:.8125rem;font-weight:600;line-height:1.2;color:var(--tinta-2);white-space:nowrap}

/* ---- Tela estreita: a orbita vira grade --------------------------------
   Nao e o desktop encolhido. Abaixo de 900px os aneis saem, a marca sobe
   inteira e os quatro espacos viram placas numa grade que cabe no polegar. */
@media(max-width:899px){
  .vant-orbita{aspect-ratio:auto;max-width:none;display:grid;justify-items:center;gap:2rem}
  .vant-anel,.vant-raios,.vant-poeira{display:none}
  .vant-nucleo{position:static;translate:none}
  .vant-nos{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:1.5rem 1rem;width:100%}
  .vant-ancora{position:static;translate:none;transform:none}
  .vant-no{transform:none;width:auto}
  .vant-no-rotulo{white-space:normal;text-align:center}
}

/* Quem pediu menos movimento no painel de acessibilidade: tudo parado. */
html.a11y-sem-movimento .vant-anel--interno{animation:none}

/* =========================================================================
   CONVENIOS E PARCEIROS - headline dividida + cartoes indexados
   (React Bits "Features 11", refeito em HTML/CSS - ver home.php)

   A headline nao esta so "do lado": ela GRUDA enquanto os cartoes rolam.
   E isso que divide a headline do conteudo - a frase fica de pe enquanto a
   lista passa.
   ========================================================================= */
.conv{display:grid;gap:2.5rem}
@media(min-width:1024px){
  .conv{grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:start}
  /* 7rem = altura do cabecalho fixo + respiro. Menos que isso, o titulo
     encosta no menu; mais, sobra buraco. */
  .conv-texto{position:sticky;top:7rem}
}

.conv-texto h2{margin:1.25rem 0 0;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--tinta)}
.conv-texto p{margin:1.25rem 0 0;max-width:32rem;font-size:1.0625rem;line-height:1.6;color:var(--tinta-2)}
.conv-texto .btn{margin-top:1.75rem}

/* ---- Cartoes indexados --------------------------------------------------
   O numero vem de um contador CSS: inserir ou remover um grupo renumera a
   lista sozinho, sem ninguem precisar lembrar de corrigir "03" na mao. */
.conv-cartoes{counter-reset:conv;display:grid;gap:.75rem}
@media(min-width:640px){.conv-cartoes{grid-template-columns:1fr 1fr}}
.conv-cartoes>li{counter-increment:conv;transition-delay:var(--atraso,0ms)}

.conv-cartoes>li>a{
  position:relative;display:flex;gap:1rem;height:100%;
  padding:1.5rem 1.25rem 1.25rem;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color .3s,box-shadow .3s,transform .3s;
}
.conv-cartoes>li>a:hover{border-color:var(--acento);box-shadow:0 1rem 2.5rem rgba(12,70,131,.1);transform:translateY(-3px)}

/* O indice fica no canto, discreto: e ordem de leitura, nao manchete. */
.conv-cartoes>li>a::before{
  content:counter(conv,decimal-leading-zero);
  position:absolute;top:.875rem;right:1.125rem;
  font-family:var(--f-cond);font-size:.8125rem;font-weight:300;
  letter-spacing:.14em;color:var(--tinta-3);
}

.conv-ico{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border-radius:var(--r-sm);background:var(--vidro);color:var(--marca-600);transition:background .3s,color .3s}
.conv-cartoes>li>a:hover .conv-ico{background:var(--marca-600);color:#fff}

.conv-corpo{display:flex;flex-direction:column;gap:.375rem;min-width:0;padding-right:1.75rem}
.conv-corpo strong{font-size:1.0625rem;font-weight:700;line-height:1.25;color:var(--tinta)}
.conv-corpo small{font-size:.875rem;line-height:1.5;color:var(--tinta-2)}
.conv-corpo em{margin-top:.25rem;font-style:normal;font-family:var(--f-cond);font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--marca-600)}

/* =========================================================================
   PERGUNTAS FREQUENTES - grade + painel que gruda ("FAQ 9")

   Substitui os baloes de conversa do "FAQ 2". O que muda de fato nao e o
   visual das perguntas: e o PAINEL ao lado, que acompanha a rolagem. Quem
   leu seis respostas e nao achou a sua nao precisa voltar ao topo nem
   procurar o rodape - o caminho de falar com gente fica a vista o tempo todo.
   ========================================================================= */
.faq{display:grid;gap:2.5rem}
@media(min-width:1024px){.faq{grid-template-columns:minmax(0,1fr) minmax(0,21rem);gap:3.5rem;align-items:start}}

.faq-topo{margin-bottom:2.5rem}
.faq-topo h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--tinta)}

/* Duas colunas de perguntas a partir de 640px. Sem sanfona: tudo na tela. */
.faq-grade{display:grid;gap:.25rem 2.5rem}
@media(min-width:640px){.faq-grade{grid-template-columns:1fr 1fr}}
.faq-item{padding-block:1.5rem;border-top:1px solid var(--linha);transition-delay:var(--atraso,0ms)}
.faq-item dt{font-family:var(--f-tit);font-size:1.0625rem;font-weight:700;line-height:1.35;color:var(--tinta)}
.faq-item dd{margin:.625rem 0 0}
.faq-item dd p{font-size:.9375rem;line-height:1.6;color:var(--tinta-2)}
.faq-link{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;margin-top:.5rem;font-size:.875rem;font-weight:600;color:var(--marca-600);transition:gap .25s}
.faq-link:hover{gap:.7rem}

/* ---- O painel -----------------------------------------------------------
   7rem = altura do cabecalho fixo + respiro. Menos, encosta no menu. */
@media(min-width:1024px){.faq-painel{position:sticky;top:7rem}}
.faq-painel-caixa{padding:2rem 1.75rem;border-radius:var(--r-bloco);color:#fff}
.faq-painel-ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:9999px;background:rgba(244,190,0,.16);color:var(--acento)}
.faq-painel-caixa h3{color:#fff;margin-top:1.25rem;font-family:var(--f-tit);font-size:1.3125rem;font-weight:700;line-height:1.25}
.faq-painel-caixa>p{margin-top:.75rem;font-size:.9375rem;line-height:1.6;color:var(--sobre-2)}

.faq-canais{display:grid;gap:.25rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha-clara)}
.faq-canais a{display:flex;align-items:center;gap:.625rem;min-height:44px;font-size:.9375rem;font-weight:600;color:#fff;transition:color .2s}
.faq-canais a:hover{color:var(--acento)}
.faq-canais svg{flex-shrink:0;color:var(--acento)}

.faq-horario{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.8125rem;color:var(--sobre-2)}
.faq-horario svg{flex-shrink:0}
.faq-painel-caixa .btn{width:100%;margin-top:1.5rem}

/* =========================================================================
   REPRESENTATIVIDADE - 95 ANOS (painel escuro com pilares)
   Trazido da previa estatica. Acrescenta, nao substitui a .repr-secao.
   ========================================================================= */
.repr95-secao{position:relative;overflow:hidden}

/* Marca d'agua: anel gigante sangrando pelo canto inferior direito. E so
   borda, nao disco cheio - disco competiria com o texto; o anel so da
   profundidade ao fundo. */
.repr95-marca{
  position:absolute;right:-20rem;bottom:-26rem;width:46rem;height:46rem;
  border:3rem solid rgba(244,190,0,.07);border-radius:50%;pointer-events:none;
}

.repr95{display:grid;gap:3.5rem}
@media(min-width:1024px){.repr95{grid-template-columns:.95fr 1.05fr;gap:5rem;align-items:start}}

/* ---- Selo dos 95 anos ---------------------------------------------------
   Unico numero da secao, e o unico com lastro documental (vem do logotipo
   oficial). Fica num cartao proprio para nao ser lido como estatistica
   solta no meio do texto. */
/* width:max-content em vez de inline-flex: inline-flex deixava o chapeu
   subir para a MESMA linha do selo, em vez de abrir a linha do titulo. */
.repr95-selo{display:flex;width:max-content;max-width:100%;align-items:baseline;gap:.875rem;margin-bottom:2.25rem;padding:1.25rem 1.5rem;border:1px solid var(--linha-clara);border-radius:var(--r-card);background:rgba(255,255,255,.05)}
.repr95-selo strong{font-family:var(--f-tit);font-size:3.5rem;font-weight:800;line-height:.9;color:var(--acento)}
.repr95-selo span{font-size:1rem;line-height:1.25;color:var(--sobre-2)}

.repr95-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:#fff}
.repr95-apoio{margin-top:1.25rem;max-width:34rem;font-size:1.0625rem;line-height:1.65;color:var(--sobre-2)}
.repr95-acoes{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* ---- Pilares em 2x2 -----------------------------------------------------
   Os fios em cima separam sem fechar caixa: caixa dentro de painel escuro
   vira cartao sobre cartao e pesa. */
.repr95-pilares{display:grid;gap:2.5rem 3rem}
@media(min-width:640px){.repr95-pilares{grid-template-columns:1fr 1fr}}
.repr95-pilares>li{padding-top:1.5rem;border-top:1px solid var(--linha-clara);transition-delay:var(--atraso,0ms)}
.repr95-ico{display:block;color:var(--acento)}
.repr95-pilares h3{margin-top:1rem;font-family:var(--f-tit);font-size:1.0625rem;font-weight:700;line-height:1.3;color:#fff}
.repr95-pilares p{margin-top:.5rem;font-size:.9375rem;line-height:1.6;color:var(--sobre-2)}

/* =========================================================================
   BLOCO INDEXADO - padrao unico de tres secoes da home
   ("Por onde comecar", "Nossos Servicos" e "Como podemos ajudar?")

   Estrutura: chapeu -> titulo com traco de marca-texto -> apoio a esquerda
   e CTA da secao a direita -> fio -> colunas numeradas, cada uma com icone
   colorido, titulo, texto e o SEU PROPRIO CTA.

   Por que as tres compartilham: sao a mesma pergunta em escalas diferentes
   ("para onde vou?"). Tres desenhos distintos para a mesma pergunta faziam
   a home parecer tres sites. Um padrao so, repetido, ensina a ler as outras
   duas de graca.

   Branco domina; a cor entra nos icones, no traco ambar do titulo e nos
   CTAs. Nada de caixa colorida aqui - os paineis azuis da home sao os
   blocos institucionais, nao estes.
   ========================================================================= */
.bloco-topo{margin-bottom:2.5rem}
.bloco-topo h2{margin-top:1rem;max-width:24ch;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:var(--tinta)}

/* Apoio a esquerda, CTA da secao a direita, alinhados pela base - e o
   gesto da referencia. Abaixo de 900px empilham. */
.bloco-topo-pe{display:grid;gap:1rem;margin-top:1.25rem}
@media(min-width:900px){.bloco-topo-pe{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2.5rem}}
.bloco-topo-pe p{max-width:40rem;font-size:1rem;line-height:1.65;color:var(--tinta-2)}
.bloco-ver{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;font-size:.9375rem;font-weight:700;color:var(--marca-600);white-space:nowrap;transition:gap .25s}
.bloco-ver:hover{gap:.875rem}

/* Colunas: fio em cima da fileira e no pe de cada coluna. Sem fio vertical
   e sem caixa - o que separa e o espaco, nao a moldura. */
.bloco-colunas{display:grid;border-top:1px solid var(--linha)}
@media(min-width:620px){.bloco-colunas{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.bloco-colunas{grid-template-columns:repeat(4,1fr)}}
.bloco-colunas>li{display:flex;flex-direction:column;padding:1.75rem 1.5rem 1.5rem 0;border-bottom:1px solid var(--linha);transition-delay:var(--atraso,0ms)}
.bloco-num{font-family:var(--f-cond);font-size:.8125rem;font-weight:400;letter-spacing:.14em;color:var(--tinta-3)}
.bloco-ico{display:block;margin-top:1rem}
.bloco-colunas h3{margin-top:1rem;font-family:var(--f-tit);font-size:1.0625rem;font-weight:700;line-height:1.3;color:var(--tinta)}
.bloco-colunas>li>p{margin-top:.5rem;font-size:.9375rem;line-height:1.6;color:var(--tinta-2)}

/* CTA em TODA coluna, empurrado para o pe: as colunas tem textos de
   alturas diferentes e, sem isso, cada link para numa altura. */
.bloco-cta{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;margin-top:auto;padding-top:1rem;font-size:.875rem;font-weight:700;color:var(--marca-600);transition:gap .25s}
.bloco-cta:hover{gap:.7rem}

/* Rotacao cromatica dos icones: a paleta do briefing vive nos icones. */
.bloco-colunas>li:nth-child(4n+1) .bloco-ico{color:var(--ico-1)}
.bloco-colunas>li:nth-child(4n+2) .bloco-ico{color:var(--ico-2)}
.bloco-colunas>li:nth-child(4n+3) .bloco-ico{color:var(--ico-3)}
.bloco-colunas>li:nth-child(4n+4) .bloco-ico{color:var(--ico-4)}

/* =========================================================================
   BUSCA - componente unico (inc/busca.php)
   Pilula clara: lupa, rotulo em negrito, exemplo em cinza, botao escrito.
   ========================================================================= */
/* FECHADA e so a lupa, encostada a DIREITA. Abre ao receber foco - e a
   lupa e a <label> do campo, entao clicar nela ja da esse foco. Zero
   JavaScript: se o script falhar, a busca continua inteira.

   margin-left:auto e o que a joga para a direita de qualquer container
   flex ou grid onde ela for colocada. */
.busca-inline{
  display:inline-flex;align-items:center;margin-left:auto;
  border:1px solid transparent;border-radius:9999px;background:transparent;
  transition:border-color .25s,background .25s,box-shadow .25s;
}
.busca-inline:focus-within{
  border-color:var(--linha-forte);background:#fff;
  box-shadow:0 0 0 4px rgba(12,70,131,.1);
}

/* A lupa e o estado fechado inteiro: discreta, do tamanho de um alvo de
   toque, sem moldura competindo com o resto da secao. */
.busca-lupa{
  display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;
  border-radius:9999px;color:var(--marca-600);cursor:pointer;
  transition:background .2s;
}
.busca-inline:not(:focus-within) .busca-lupa:hover{background:var(--vidro)}

/* O campo e o botao nascem com largura zero e sem padding - some de vez,
   mas continuam focaveis pelo Tab, que e o que abre a busca pelo teclado. */
.busca-inline input{
  width:0;min-width:0;height:2.75rem;padding:0;border:0;background:none;
  font:400 .9375rem var(--f-corpo);color:var(--tinta);outline:none;
  transition:width .3s cubic-bezier(.16,1,.3,1),padding .3s;
}
.busca-inline input::placeholder{color:var(--tinta-3)}
.busca-inline button{
  width:0;padding:0;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  height:2.25rem;margin-right:0;border:0;border-radius:9999px;
  background:var(--marca-600);color:#fff;font:700 .875rem var(--f-corpo);
  white-space:nowrap;cursor:pointer;
  transition:width .3s cubic-bezier(.16,1,.3,1),padding .3s,margin .3s,background .2s;
}
.busca-inline button:hover{background:var(--marca-700)}

/* ABERTA. */
.busca-inline:focus-within input{width:min(16rem,42vw);padding:0 .75rem}
.busca-inline:focus-within button{width:auto;padding:0 1.125rem;margin-right:.3rem}

.bloco-topo .busca-inline{margin-top:1.5rem}

/* =========================================================================
   VITRINE DE CURSOS (home) - faixa de placas com foto

   ESTAVA SEM ESTILO NENHUM: toda a familia .vitrine-* era usada no HTML e
   nao existia no CSS, entao a secao caia como lista de links crua. Isto
   aqui e o estilo que faltava, escrito com os mesmos gestos do resto da
   home - placa com foto, veu no pe, fio curto acima do titulo.
   ========================================================================= */
.vitrine-secao{overflow-x:clip}

/* O palco sai do .wrap para a faixa sangrar: os cartoes das pontas aparecem
   cortados, dizendo sem texto que a lista continua. */
.vitrine-palco{position:relative;margin-top:2.5rem}

.vitrine{
  display:flex;gap:1rem;list-style:none;margin:0;
  padding-inline:var(--gutter);padding-block:.25rem;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
  scrollbar-width:none;
}
.vitrine::-webkit-scrollbar{display:none}
.vitrine:focus-visible{outline:2px solid var(--marca-600);outline-offset:4px;border-radius:var(--r-card)}
@media(min-width:1100px){
  /* Alinha o primeiro cartao com a grade da pagina. */
  .vitrine{padding-inline:max(var(--gutter),(100vw - 110rem)/2 + var(--gutter))}
}

.vitrine>li{flex-shrink:0;width:clamp(15rem,70vw,18rem);scroll-snap-align:start}
.vitrine>li>a{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  height:22rem;padding:1.5rem 1.25rem;overflow:hidden;
  border-radius:var(--r-card);color:#fff;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;
}
.vitrine>li>a:hover{transform:translateY(-4px);box-shadow:0 1.5rem 3rem rgba(3,18,35,.28)}

.vitrine-foto{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.vitrine>li>a:hover .vitrine-foto{transform:scale(1.05)}
/* FOTOGRAFIA A SUBSTITUIR: sem arquivo, o gradiente da identidade assume e
   nada quebra - nunca uma imagem de banco no lugar de um curso real. */
.vitrine-foto.is-vazia{background:radial-gradient(24rem 18rem at 72% 12%,rgba(74,129,180,.5),transparent 62%),linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 48%,var(--marca-900) 100%)}
/* O veu nao e sombra decorativa: sem ele o texto branco cai na parte clara
   da foto e some. Mais denso no pe, onde o texto esta. */
.vitrine-veu{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,18,35,.86) 0%,rgba(3,18,35,.38) 50%,rgba(3,18,35,.1) 100%)}

.vitrine-etiqueta{position:absolute;top:1rem;left:1.25rem;z-index:1}
.vitrine-pe{position:relative}
/* Fio curto acima do titulo - o mesmo gesto do chapeu .fio. */
.vitrine-fio{display:block;width:1.5rem;height:2px;margin-bottom:.75rem;background:var(--acento)}
.vitrine-pe strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:700;line-height:1.3}
.vitrine-pe small{display:block;margin-top:.5rem;font-size:.8125rem;line-height:1.5;color:rgba(255,255,255,.78)}

/* ---- Setas ----
   Escondidas em tela estreita: la a faixa rola com o dedo, e botao que
   depende de script so ocuparia espaco. */
.vitrine-seta{display:none}
@media(min-width:1100px){
  .vitrine-seta{
    position:absolute;top:50%;z-index:2;translate:0 -50%;
    display:grid;place-items:center;width:3rem;height:3rem;
    border:1px solid var(--linha-forte);border-radius:9999px;
    background:#fff;color:var(--marca-600);cursor:pointer;
    box-shadow:0 .5rem 1.5rem rgba(16,23,43,.12);
    transition:background .2s,color .2s,opacity .2s;
  }
  .vitrine-seta:hover:not(:disabled){background:var(--marca-600);color:#fff}
  .vitrine-seta:disabled{opacity:.3;cursor:default}
  .vitrine-seta.is-anterior{left:1rem}
  .vitrine-seta.is-anterior svg{transform:rotate(180deg)}
  .vitrine-seta.is-proxima{right:1rem}
}

.vitrine-rodape{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2.5rem}

/* =========================================================================
   CONTORNO AMBAR NO HOVER - blocos

   Regra da identidade: passou o mouse num bloco, o contorno vira ambar. O
   ambar e a cor de ACAO do briefing, entao ela marca o que responde ao
   cursor - e nao fica espalhada no repouso.

   Vale para BLOCO (cartao, placa, coluna). Nao vale para controle - botao,
   campo, filtro, seta de carrossel: esses tem estado proprio e trocar a
   borda deles para ambar confundiria "clicavel" com "selecionado".
   ========================================================================= */

/* As regras de borda destes blocos foram absorvidas pelo item 9 (mais
   abaixo), onde borda e fundo mudam JUNTOS e os quatro lados existem. */

/* Placas com foto nao tem borda nenhuma; ganham um anel ambar por fora, que
   e o equivalente visual do contorno nas de borda. */
.vitrine>li>a{box-shadow:0 0 0 0 transparent}
.vitrine>li>a:hover{box-shadow:0 0 0 2px var(--acento),0 1.5rem 3rem rgba(3,18,35,.28)}




/* Par de CTAs no painel "Para a sua farmácia" - vieram da barra do menu,
   onde estouravam a largura. O segundo e de contorno: "Já sou associado" e
   caminho alternativo, nao concorrente do primeiro. */
.duplo-acoes{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.duplo-acoes .btn-duplo{margin-top:0}
.btn-duplo.is-contorno{background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff}
.btn-duplo.is-contorno:hover{background:rgba(255,255,255,.12);border-color:var(--acento);transform:translateY(-2px)}

/* =========================================================================
   9. REFINAMENTO VISUAL - blocos, bordas, espacamentos e tipografia

   Bloco consolidado de propósito. As regras abaixo valem para TODOS os
   componentes de card do site, que nasceram em dez lugares diferentes do
   arquivo. Juntar o comportamento comum aqui é o que torna "mudar o hover
   de todos os cards" uma edição de uma linha - e não uma caçada.
   ========================================================================= */

/* -------------------------------------------------------------------------
   9.1 + 9.6  HOVER INTEGRADO: borda e fundo mudam juntos

   Antes, metade dos cards só trocava a borda e a outra metade trocava a
   borda para âmbar mas o fundo para azul claro - duas cores brigando no
   mesmo gesto. Agora é uma cor só em duas intensidades.

   Sem deslocamento: o translateY que vários tinham saiu. Card que pula
   ao passar o mouse faz o conteúdo abaixo parecer instável, e o briefing
   pede justamente o contrário.
   ------------------------------------------------------------------------- */
.atalhos a,a.ladrilho,.cartoes>li>a,.cursos-cartoes>li>a,.noticia-principal,
.cct-lista a,.convenios-indice a,.ajuda-grade a,.servicos-grade a,.depo,
.blog-destaque a,.blog-grade a,.capacita-trilhas a,.conv-cartoes>li>a,
.bloco-colunas>li,.repr95-pilares>li,.faq-item{
  transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease,box-shadow var(--t-hover) ease;
}
.atalhos a:hover,a.ladrilho:hover,.cartoes>li>a:hover,.cursos-cartoes>li>a:hover,
.noticia-principal:hover,.cct-lista a:hover,.convenios-indice a:hover,
.ajuda-grade a:hover,.servicos-grade a:hover,.depo:hover,.blog-destaque a:hover,
.blog-grade a:hover,.capacita-trilhas a:hover,.conv-cartoes>li>a:hover,
.bloco-colunas>li:hover,.faq-item:hover{
  border-color:var(--hover-borda);
  background-color:var(--hover-fundo);
  transform:none;
}
/* Nos painéis escuros o mesmo âmbar, um pouco mais presente - fundo escuro
   engole lavagem. */
.repr95-pilares>li:hover,.vant-no:hover .vant-placa{
  border-color:var(--hover-borda);
  background-color:var(--hover-fundo-escuro);
  transform:none;
}
/* A vitrine é placa com foto: não tem borda para acender, então o anel
   âmbar faz o papel dela. Sem salto, como os demais. */
.vitrine>li>a{transition:box-shadow var(--t-hover) ease}
.vitrine>li>a:hover{transform:none;box-shadow:0 0 0 2px var(--acento),0 1rem 2.5rem rgba(3,18,35,.22)}
.estrutura-cartao:hover,.destaque-capa:hover,.painel-escuro:hover{transform:none}

/* -------------------------------------------------------------------------
   9.2  BORDAS COMPLETAS

   Três componentes tinham fio só em cima ou só embaixo, o que os fazia ler
   como linhas de uma tabela e não como cards. Ganham contorno nos quatro
   lados, com o mesmo raio e a mesma espessura do resto do site.
   ------------------------------------------------------------------------- */
.bloco-colunas{border-top:0;gap:var(--b-gap)}
.bloco-colunas>li{
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
}
.faq-grade{gap:var(--b-gap)}
.faq-item{
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
}
.repr95-pilares>li{
  padding:var(--b-pad);
  border:1px solid var(--linha-clara);border-radius:var(--r-card);
  background:rgba(255,255,255,.04);
}

/* -------------------------------------------------------------------------
   9.3  ESPAÇAMENTO E HIERARQUIA  (tudo por token - ver :root)
   ------------------------------------------------------------------------- */
.bloco-colunas .bloco-ico,.repr95-ico{margin-top:var(--b-ico-tit)}
.bloco-colunas h3,.repr95-pilares h3,.faq-item dt{margin-top:var(--b-ico-tit)}
.bloco-colunas>li>p,.repr95-pilares p,.faq-item dd{margin-top:var(--b-tit-txt)}
.conv-corpo{gap:var(--b-tit-txt)}
.vitrine-pe small{margin-top:var(--b-tit-txt)}

/* -------------------------------------------------------------------------
   9.7  CTAs NA MESMA ALTURA

   O card é coluna flex e o CTA leva margin-top:auto: textos de tamanhos
   diferentes empurram o espaço vazio para o meio, e os botões de cards
   lado a lado param todos na mesma linha.
   ------------------------------------------------------------------------- */
/* .conv-cartoes fica de fora: lá o <a> é LINHA (ícone à esquerda, corpo à
   direita) e virar coluna desmontaria o cartão. Quem precisa esticar ali é
   o .conv-corpo, não o <a>. */
.bloco-colunas>li,.faq-item,.repr95-pilares>li{display:flex;flex-direction:column}
.conv-cartoes>li>a .conv-corpo{flex:1}
.faq-item dd{display:flex;flex-direction:column;flex:1}
.bloco-cta,.faq-link{margin-top:auto;padding-top:var(--b-txt-cta);min-height:44px}
/* Mesma altura e mesmo respiro para todo CTA de card. */
.bloco-cta,.faq-link,.bloco-ver{align-self:flex-start}

/* -------------------------------------------------------------------------
   9.4  PESOS TIPOGRÁFICOS

   Menos negrito. Título de card em 600 (era 700/800), descrição em 400,
   CTA em 500 e o que é metadado desce para 300.
   ------------------------------------------------------------------------- */
.bloco-colunas h3,.repr95-pilares h3,.faq-item dt,.conv-corpo strong,
.vitrine-pe strong,.vant-no-rotulo{font-weight:600}
.bloco-colunas>li>p,.repr95-pilares p,.faq-item dd p,.conv-corpo small,
.vitrine-pe small,.bloco-topo-pe p{font-weight:400}
.bloco-cta,.faq-link,.bloco-ver,.vant-link{font-weight:500}
/* Metadado: índice do card, contagem, etiqueta. Secundário de verdade. */
.bloco-num,.conv-corpo em,.vant-nucleo-etiqueta,.rodape-selo small{font-weight:300}

/* -------------------------------------------------------------------------
   9.5  ALINHAMENTO DOS TEXTOS

   Justificado só na descrição e no texto corrido. Título, botão, link e
   navegação continuam à esquerda.

   hyphens:auto é obrigatório aqui: justificar sem hifenização em português
   abre "rios" de espaço no meio da linha - o defeito clássico, e pior em
   coluna estreita. E abaixo de 560px a justificação é desligada: com cinco
   ou seis palavras por linha ela estraga mais do que ajuda.
   ------------------------------------------------------------------------- */
@media(min-width:560px){
  .bloco-colunas>li>p,.repr95-pilares p,.faq-item dd p,.conv-corpo small,
  .bloco-topo-pe p,.vant-texto p,.depo p{
    text-align:justify;hyphens:auto;-webkit-hyphens:auto;
  }
}
.bloco-colunas>li>p,.repr95-pilares p,.faq-item dd p{line-height:1.65}

/* =========================================================================
   RODAPE - newsletter, acima dos atalhos
   ========================================================================= */

.rodape-news{display:grid;gap:2rem;padding-block:2.5rem;border-block:1px solid var(--linha-clara)}
@media(min-width:1024px){.rodape-news{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}}
.rodape-news-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h3);font-weight:600;line-height:1.2;letter-spacing:-.01em;color:#fff}
.rodape-news-texto p{margin-top:.875rem;max-width:30rem;font-size:.9375rem;font-weight:400;line-height:1.6;color:var(--sobre-2)}

/* ---- O formulario ------------------------------------------------------
   Barra unica de cantos arredondados, como na referencia: os campos vivem
   DENTRO dela, sem moldura propria, e o botao fecha a direita. Em tela
   estreita a barra se desfaz e cada peca ocupa a largura toda - campo de
   e-mail espremido em 320px nao se digita. */
.rodape-news-campos{
  display:grid;gap:.5rem;
  padding:.4rem;border:1px solid var(--linha-clara);border-radius:1.75rem;
  background:rgba(255,255,255,.06);
  transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease;
}
.rodape-news-campos:focus-within{border-color:var(--acento);background:rgba(255,255,255,.1)}
@media(min-width:560px){
  .rodape-news-campos{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;align-items:center;border-radius:9999px}
}
.rodape-news-campos input{
  min-width:0;height:3rem;padding:0 1.125rem;
  border:0;border-radius:9999px;background:transparent;
  font:400 .9375rem var(--f-corpo);color:#fff;outline:none;
}
.rodape-news-campos input::placeholder{color:rgba(255,255,255,.55)}
.rodape-news-campos input:focus-visible{outline:2px solid var(--acento);outline-offset:-2px}
/* Botao branco, como na referencia: no azul do rodape e o branco que tem
   mais forca - ambar aqui competiria com o fio do titulo. */
.rodape-news-campos button{
  min-height:48px;padding:0 1.5rem;border:0;border-radius:9999px;
  background:#fff;color:var(--marca-700);
  font:600 .9375rem var(--f-corpo);cursor:pointer;white-space:nowrap;
  transition:background var(--t-hover) ease;
}
.rodape-news-campos button:hover{background:var(--acento);color:var(--marca-950)}

.rodape-news-aceite{display:flex;align-items:flex-start;gap:.625rem;margin-top:.875rem}
.rodape-news-aceite input{margin-top:.2rem;width:1rem;height:1rem;flex-shrink:0;accent-color:var(--acento)}
.rodape-news-aceite label{font-size:.75rem;font-weight:300;line-height:1.5;color:var(--sobre-2)}
.rodape-news .form-estado{margin-top:.75rem;font-size:.8125rem;color:var(--sobre-2)}
.rodape-news .form-estado.is-erro{color:#FFD9D0}

/* =========================================================================
   PARALLAX - carrossel | imagem | carrossel  (ver inc/parallax.php)

   Três áreas lado a lado. As laterais são carrosséis independentes de 8
   banners; o centro guarda a imagem e se move mais devagar que a rolagem.
   ========================================================================= */
.prlx{position:relative;overflow:hidden}

.prlx-grade{display:grid}
@media(min-width:1100px){.prlx-grade{grid-template-columns:1fr .78fr 1fr}}

/* ---- ALTURA FIXA ---------------------------------------------------------
   É o que impede deslocamento na troca de slide. Os oito banners têm textos
   de tamanhos diferentes; sem altura travada, a seção cresceria e encolheria
   a cada 7 segundos e empurraria a página inteira. */
.prlx-lado,.prlx-centro{position:relative;min-height:30rem}
@media(min-width:1100px){.prlx-lado,.prlx-centro{min-height:38rem}}

/* ---- Laterais ------------------------------------------------------------ */
.prlx-farmacia{background:var(--azul-inst)}
.prlx-balcao{
  background:
    radial-gradient(44rem 28rem at 88% 0%,rgba(74,129,180,.3),transparent 62%),
    linear-gradient(152deg,var(--azul-prof) 0%,var(--marca-900) 100%);
}
.prlx-palco{position:relative;height:100%}

/* Os oito slides ocupam a MESMA caixa, empilhados. Só o ativo aparece.
   visibility (e não display) mantém a transição possível e tira o slide
   escondido do caminho do cursor e do Tab. */
.prlx-slide{
  position:absolute;inset:0;display:flex;align-items:center;
  padding:clamp(2.5rem,5vw,4.5rem) var(--gutter);
  opacity:0;visibility:hidden;
  transition:opacity .5s ease,visibility .5s;
}
.prlx-slide.is-ativo{opacity:1;visibility:visible}

/* Quando a arte do banner chegar, ela assume o fundo e o véu segura a
   leitura do texto por cima. */
.prlx-slide-arte{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prlx-slide-veu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,18,35,.86) 0%,rgba(3,18,35,.62) 62%,rgba(3,18,35,.42) 100%)}

.prlx-slide-corpo{position:relative;width:100%;max-width:30rem;margin-inline:auto;color:#fff}
.prlx-balcao .prlx-slide-corpo{margin-left:clamp(1.5rem,3vw,3.5rem)}
.prlx-farmacia .prlx-slide-corpo{margin-right:clamp(1.5rem,3vw,3.5rem)}
/* color explicito: a regra global "h1,h2,h3,h4{color:var(--azul-inst)}"
   vence a heranca do branco do painel, e o titulo sumia no fundo escuro. */
.prlx-slide-corpo h3{color:#fff;margin-top:1rem;overflow-wrap:break-word;font-family:var(--f-tit);font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);font-weight:600;line-height:1.15;letter-spacing:-.01em}
.prlx-slide-corpo p{margin-top:1rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--sobre-2)}
.prlx-slide-corpo .btn-duplo{margin-top:1.75rem}

/* ---- Controles ----------------------------------------------------------- */
.prlx-controles{position:absolute;left:var(--gutter);bottom:clamp(1.5rem,3vw,2.5rem);z-index:2;display:flex;align-items:center;gap:.75rem}
.prlx-controles[hidden]{display:none}
@media(min-width:1100px){
  .prlx-farmacia .prlx-controles{left:auto;right:clamp(1.5rem,3vw,3.5rem)}
  .prlx-balcao .prlx-controles{left:clamp(1.5rem,3vw,3.5rem)}
}
.prlx-seta{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid rgba(255,255,255,.35);border-radius:9999px;background:transparent;color:#fff;cursor:pointer;transition:background var(--t-hover) ease,border-color var(--t-hover) ease}
.prlx-seta:hover{background:rgba(255,255,255,.16);border-color:var(--acento)}
.prlx-seta.is-anterior svg{transform:rotate(180deg)}
.prlx-conta{font-family:var(--f-cond);font-size:.8125rem;font-weight:300;letter-spacing:.1em;color:rgba(255,255,255,.7)}

/* ---- Área central -------------------------------------------------------- */
.prlx-centro{overflow:hidden}
.prlx-centro-camada{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s}
.prlx-centro-camada.is-ativo{opacity:1;visibility:visible}
.prlx-centro-camada img{width:100%;height:100%;object-fit:cover}

/* O fundo que já existia: gradiente com o símbolo em marca d'água. Serve de
   reserva enquanto não há fotografia - e nunca uma imagem de banco genérica
   no lugar de uma foto real da sede. */
.prlx-centro-arte.is-vazia{
  position:absolute;inset:0;
  background:
    radial-gradient(30rem 24rem at 50% 18%,rgba(74,129,180,.42),transparent 64%),
    linear-gradient(168deg,var(--marca-500) 0%,var(--azul-prof) 52%,var(--marca-800) 100%);
}

/* O PARALLAX em si: a camada corre mais devagar que a rolagem. Feito com
   animation-timeline:view(), sem JavaScript - navegador sem suporte apenas
   não move, e nada quebra. Mesmo recurso já usado em .repr-foto. */
@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .prlx-centro-camada{animation:prlx-desliza linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
  }
}
@keyframes prlx-desliza{
  from{transform:translateY(-7%) scale(1.14)}
  to{transform:translateY(7%) scale(1.14)}
}
html.a11y-sem-movimento .prlx-centro-camada{animation:none;transform:none}

/* ---- Tela estreita -------------------------------------------------------
   Empilha: farmácia, imagem, balcão. A imagem fica no MEIO, separando os
   dois assuntos - e não um bloco de cor atrás do outro, que leria como um
   só. Altura menor, porque em pilha a seção já ocupa três telas. */
@media(max-width:1099px){
  .prlx-centro{min-height:16rem;order:1}
  .prlx-farmacia{order:0}
  .prlx-balcao{order:2}
  .prlx-grade{display:flex;flex-direction:column}
  .prlx-slide-corpo{max-width:34rem;margin-inline:auto}
}

/* =========================================================================
   CURSOS PROCURADOS - faixa rotativa (abaixo das trilhas)

   Saiu da coluna estreita do painel escuro da agenda, onde era uma lista
   espremida, e virou faixa aqui fora. Mesma mecanica da faixa de
   parceiros: lista duplicada e deslocamento de -50%, sem emenda.
   ========================================================================= */
/* min-width:0 e max-width:100% sao o que CONTEM a faixa. Sem eles, o
   trilho (width:max-content, 22 cartoes) definia a largura minima da
   coluna da grade, a coluna esticava, o painel da agenda era empurrado
   para fora e a pagina inteira ganhava rolagem horizontal. */
.procurados{min-width:0;max-width:100%;margin-top:2.5rem}
.procurados-topo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}

/* As mascaras nas pontas evitam o corte seco: os cartoes entram e saem
   desvanecendo em vez de sumirem na borda. */
.procurados-esteira{
  min-width:0;max-width:100%;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}
.procurados-trilho{display:flex;gap:1rem;width:max-content;list-style:none;margin:0;padding:.25rem}
@media(prefers-reduced-motion:no-preference){
  .procurados-trilho{animation:procurados-corre 56s linear infinite}
}
@keyframes procurados-corre{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* Para debaixo do cursor e do foco: cartao que corre enquanto a pessoa le
   o nome do curso - ou mira o link - atrapalha. */
.procurados-esteira:hover .procurados-trilho,
.procurados-esteira:focus-within .procurados-trilho{animation-play-state:paused}

.procurados-trilho>li{flex-shrink:0;width:clamp(15rem,70vw,18rem)}
.procurados-trilho>li>a{
  display:flex;flex-direction:column;height:100%;
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease;
}
.procurados-trilho>li>a:hover{border-color:var(--hover-borda);background-color:var(--hover-fundo)}
.procurados-ico{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:var(--r-sm);background:var(--vidro);color:var(--marca-600)}
.procurados-trilho strong{margin-top:var(--b-ico-tit);font-family:var(--f-tit);font-size:1rem;font-weight:600;line-height:1.3;color:var(--tinta)}
.procurados-trilho small{margin-top:var(--b-tit-txt);font-size:.875rem;font-weight:400;line-height:1.6;color:var(--tinta-2)}

/* Parada, a faixa vira uma grade que quebra em linhas - e nao uma fila
   cortada no meio. */
html.a11y-sem-movimento .procurados-trilho{animation:none;flex-wrap:wrap;width:auto}
html.a11y-sem-movimento .procurados-esteira{-webkit-mask-image:none;mask-image:none}

/* =========================================================================
   TAGS PADRONIZADAS

   Antes cada etiqueta tinha o seu tamanho (.6875 / .75 / .8125rem), a sua
   entreletra (.1 / .12 / .14 / .2em) e o seu contêiner - fundo colorido
   aqui, borda ali, nada acolá. Pareciam de projetos diferentes.

   Agora são DUAS FORMAS e UM TIPO SÓ: ou a tag é nua, idêntica ao chapéu,
   ou ela vive dentro de uma borda. Fonte, corpo, caixa alta e entreletra
   são os mesmos nos dois casos - o que muda é só o contêiner.

   A referência é o próprio .chapeu, que já era o gesto mais repetido do
   site; as outras foram puxadas até ele, e não o contrário.
   ========================================================================= */
.chapeu,.trilha-tag,.conv-corpo em,.bloco-num,.prlx-conta,.eventos-chapeu,
.etiqueta,.etiqueta-curso,.etiqueta-vigente,.etiqueta-editoria,
.pilula-chapeu,.estrutura-pilula,.vant-nucleo-etiqueta{
  font-family:var(--f-cond);font-size:.6875rem;font-weight:300;
  letter-spacing:.2em;text-transform:uppercase;line-height:1;
}

/* As que vivem DENTRO DE BORDA: mesma altura, mesmo raio, mesmo respiro,
   mesma espessura. A borda usa currentColor, então ela acompanha a cor do
   texto - a mesma regra serve em fundo claro e em fundo escuro, sem uma
   variante para cada caso. */
.etiqueta,.etiqueta-curso,.etiqueta-vigente,.etiqueta-editoria,
.pilula-chapeu,.estrutura-pilula{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:1.875rem;padding:0 .875rem;
  border:1px solid currentColor;border-radius:9999px;background:transparent;
}
/* O ícone dentro da tag não herda a entreletra - senão desalinha. */
.etiqueta svg,.pilula-chapeu svg{letter-spacing:normal;flex-shrink:0}

/* A etiqueta sobre fotografia precisa de um respaldo: currentColor é
   branco ali, e borda branca sozinha some no claro da imagem. */
.vitrine-etiqueta{background:rgba(3,18,35,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff}

/* ---- Slide de banner de parceiro (dentro do Parallax) -------------------
   A peca e REMONTADA, nao exibida como imagem: texto de verdade, logotipo
   oficial e o gradiente da propria coluna. Nenhum pixel ampliado - o que
   antes era uma captura de 680px esticada numa coluna alta, borrada e
   cortada no meio da oferta.

   O logotipo vive numa PLACA BRANCA porque os arquivos dos parceiros sao
   feitos para fundo claro. */
.prlx-slide.is-banner .prlx-slide-corpo{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem;justify-content:center;height:100%}
.prlx-logo{display:inline-grid;place-items:center;min-height:3.25rem;padding:.625rem 1rem;border-radius:var(--r-sm);background:#fff}
.prlx-logo img{display:block;width:auto;height:2rem;max-width:11rem;object-fit:contain}
/* Sem arquivo oficial na pasta: o nome escrito, na cor da marca. */
.prlx-logo--texto{font-family:var(--f-tit);font-size:1rem;font-weight:700;color:var(--marca-700);white-space:nowrap}
.prlx-slide.is-banner h3{margin-top:0}
.prlx-slide.is-banner .btn-duplo{margin-top:.25rem}

/* ---- Ajustes para bater com a referência do Features 10 -----------------
   1. A etiqueta do núcleo fica FORA do grupo de tags com borda. Na
      referência ela é um chip discreto de fundo preenchido ("RELAY HUB"),
      e borda ali disputaria com o contorno da própria placa, a dois
      pixels de distância. Mantém o tipo padronizado - muda só o contêiner.
   2. As placas crescem: na referência o núcleo tem cerca do dobro do nó,
      e era isso que dava a leitura de "centro" e "satélite".
   3. Os nós sobem para cima do anel externo, em vez de flutuarem dentro
      dele - é o anel que amarra a composição. */
.vant-nucleo-etiqueta{
  display:inline-block;border:0;border-radius:.375rem;
  padding:.3125rem .625rem;background:var(--vidro);color:var(--tinta-3);
  font-size:.6875rem;letter-spacing:.14em;
}
.vant-placa{width:4.5rem;height:4.5rem;border-radius:1.125rem}
.vant-placa--nucleo{width:7rem;height:7rem;border-radius:1.5rem}
.vant-orbita{--raio:44%}
/* Sem salto no hover: a placa acende, não se desloca - mesma regra dos
   demais blocos (item 9.6). */
.vant-no:hover .vant-placa{transform:none}

/* =========================================================================
   MENU - marcador de selecionado

   Fio âmbar no pé do gatilho, para a área ABERTA e para a área da página
   atual. O fundo cinza sozinho dizia "passei aqui"; o fio âmbar diz
   "é esta" - e âmbar é a cor de ação da identidade, a mesma do chapéu.

   É ::after com scaleX, não border: assim ele cresce do centro para fora
   em vez de aparecer de uma vez, e não empurra a altura do botão.
   ========================================================================= */
.gatilho{position:relative}
.gatilho::after{
  content:"";position:absolute;left:1rem;right:1rem;bottom:.375rem;height:2px;
  border-radius:2px;background:var(--acento);
  transform:scaleX(0);transform-origin:center;
  transition:transform var(--t-hover) cubic-bezier(.16,1,.3,1);
}
.gatilho[aria-expanded="true"]::after,
.gatilho.is-ativo::after{transform:scaleX(1)}
/* Quem desligou o movimento recebe o fio inteiro, sem a animação. */
html.a11y-sem-movimento .gatilho::after{transition:none}

/* O mesmo marcador na gaveta do celular, onde não há mega-menu. */
.gaveta-area.is-ativo,.gaveta a[aria-current="page"]{box-shadow:inset 2px 0 0 var(--acento)}

/* CTA de cada cartão da faixa. É <span> e não <a>: o cartão inteiro já é o
   link, e link dentro de link é HTML inválido - o navegador fecha o
   primeiro sozinho e o cartão para de funcionar. Visualmente é um CTA;
   estruturalmente é parte do mesmo alvo clicável.

   margin-top:auto encosta no pé: os resumos têm alturas diferentes e, sem
   isso, cada CTA parava numa altura (item 9.7). */
.procurados-cta{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:auto;padding-top:var(--b-txt-cta);
  font-size:.875rem;font-weight:500;color:var(--marca-600);
  transition:gap var(--t-hover) ease;
}
.procurados-trilho>li>a:hover .procurados-cta{gap:.7rem}

/* =========================================================================
   TAGS - tamanho, vazado e cor por contexto

   Menores (.6875rem), VAZADAS (sem preenchimento, só o contorno) e com a
   cor decidida pelo fundo: azul da marca no claro, branco no escuro.

   A cor sai do próprio `color`, e a borda usa currentColor - então basta
   trocar a cor do texto num contexto para a borda acompanhar. Uma regra
   por contexto em vez de uma variante por componente.
   ========================================================================= */
.chapeu,.trilha-tag,.conv-corpo em,.bloco-num,.prlx-conta,.eventos-chapeu,
.etiqueta,.etiqueta-curso,.etiqueta-vigente,.etiqueta-editoria,
.pilula-chapeu,.estrutura-pilula{
  color:var(--marca-600);background:transparent;
}
/* Fundo escuro: branco. Cobre painéis institucionais, rodapé, Parallax,
   placas com foto e o painel da agenda. */
:is(.g-inst,.g-prof,.g-duo,.prlx,.rodape,.capacita-painel,.faq-painel-caixa,
    .vitrine,.estrutura-principal,.estrutura-cartao,.repr95-secao,.banner,.vant-secao,.eventos-cartao,.trilha-cartao,.prlx-slide)
  :is(.chapeu,.trilha-tag,.prlx-conta,.eventos-chapeu,.etiqueta,.etiqueta-curso,
      .etiqueta-vigente,.etiqueta-editoria,.pilula-chapeu,.estrutura-pilula){
  color:#fff;background:transparent;
}
/* .claro é a marcação explícita de "estou sobre fundo escuro" que o site já
   usava - segue valendo, e agora branca de verdade. */
.chapeu.claro{color:#fff}

/* Vazadas: o contorno fica mais fino que o do card, senão a tag pesa mais
   que o bloco que a contém. */
.etiqueta,.etiqueta-curso,.etiqueta-vigente,.etiqueta-editoria,
.pilula-chapeu,.estrutura-pilula{
  min-height:1.625rem;padding:0 .75rem;
  border-color:color-mix(in oklab,currentColor 45%,transparent);
}
/* A tag sobre fotografia perde o respaldo escuro: vazada é vazada. O que
   segura a leitura ali é o véu do próprio cartão. */
.vitrine-etiqueta,.prlx-tag{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}

/* =========================================================================
   SETAS DE CARROSSEL - menores e mais delicadas
   Eram discos de 3rem com traço grosso. Viraram 2.25rem com fio de 1px e
   ícone fino: continuam alcançáveis pelo dedo (a área de toque é mantida
   por padding, não pelo disco) e param de competir com o conteúdo.
   ========================================================================= */
@media(min-width:1100px){
  .vitrine-seta{width:2.25rem;height:2.25rem;border-color:var(--linha);box-shadow:0 .25rem .75rem rgba(16,23,43,.1)}
  .vitrine-seta svg{width:14px;height:14px;stroke-width:1.6}
  .vitrine-seta.is-anterior{left:.5rem}
  .vitrine-seta.is-proxima{right:.5rem}
}
.prlx-seta{width:2.25rem;height:2.25rem;border-color:rgba(255,255,255,.28)}
.prlx-seta svg{width:14px;height:14px;stroke-width:1.6}
.banner-seta{width:2rem;height:2.75rem;background:rgba(255,255,255,.55)}
.banner-seta svg{width:15px;height:15px;stroke-width:1.6}
.trilha-seta{width:2.25rem;height:2.25rem}
.trilha-seta svg{width:14px;height:14px;stroke-width:1.6}

/* ---- Painel da agenda: mais alto e FIXO ---------------------------------
   Ele encolheu quando os "Procurados" saíram de dentro dele e passaram a
   ser faixa própria. Ficou um painel baixo com um vão grande embaixo, na
   coluna que é bem mais alta.

   Duas correções:
   1. GRUDA (position:sticky) enquanto a coluna da esquerda rola. Só funciona
      porque .capacita-grade já usa align-items:start - com stretch, o item
      ocupa a altura toda e não há o que grudar. 7rem = cabeçalho fixo + folga.
   2. CRESCE: min-height dá corpo ao painel, e os meses se distribuem no
      espaço que sobra em vez de amontoarem no topo deixando o vão no pé.

   Abaixo de 1100px a grade é de uma coluna só: nada gruda e nada estica -
   lá o painel vem depois do conteúdo e já termina a seção. */
@media(min-width:1100px){
  .capacita-painel{
    position:sticky;top:7rem;
    display:flex;flex-direction:column;
    min-height:32rem;padding:2rem;
  }
  /* Empurra o par CTA + link para o pé, e os meses ficam com a sobra. */
  .capacita-meses{flex:1;align-content:center;gap:.625rem}
  .capacita-meses a{padding:.875rem 1rem}
  .capacita-cta{margin-top:auto}
}

/* ---- Mais respiro entre o cabeçalho da seção e os blocos ---------------
   O token --b-* cuida do ritmo DENTRO do card; esta é a distância de fora:
   do título da seção para a fileira que ele apresenta. Estava em 2.5rem,
   o que colava a grade no texto de apoio. */
.bloco-topo{margin-bottom:3.5rem}
.faq-topo{margin-bottom:3.5rem}
.trilha-topo{margin-bottom:3.5rem}
/* Do fio curto para o título, nas placas com foto - o mesmo salto que o
   ícone ganhou nos cards de texto. */
.vitrine-fio{margin-bottom:1.125rem}
/* Título sobre imagem: afasta da borda inferior da placa, senão o texto
   parece pendurado no fim da foto. */
.vitrine>li>a{padding:1.75rem 1.5rem}
.trilha-cartao.is-placa{padding-block:2rem}

/* ---- "Mais procurados": faixa de ponta a ponta --------------------------
   A faixa saiu da coluna da grade e virou banda da seção inteira. Dois
   ganhos: corre a largura toda da tela, e para de cruzar com o painel da
   agenda, que gruda ao rolar - antes um passava por trás do outro.

   Como agora vive FORA do .wrap, o cabeçalho precisa da margem lateral de
   volta; a esteira, não - é ela que deve encostar nas bordas. */
.procurados{margin-top:4rem;max-width:none}
.procurados-topo{padding-inline:var(--gutter);margin-bottom:1.5rem}
.procurados-trilho{padding:.25rem var(--gutter)}
/* A faixa fica abaixo do painel que gruda, nunca por cima dele. */
.capacita-painel{z-index:2}
.procurados{position:relative;z-index:1}

/* =========================================================================
   BLOCOS: fundo --marca-50 em vez de branco puro

   #F0F5FA já existia na paleta (--marca-50). O card deixa de ser uma mancha
   branca sobre página branca e passa a ter corpo próprio - o contorno some
   de protagonista e vira acabamento.

   No HOVER nada aqui muda: continua valendo a regra do item 9.1 - borda
   âmbar e fundo âmbar lavado, juntos, em 240ms.

   EXCEÇÃO: dentro de .secao.tom o card volta a ser BRANCO. Ali o fundo da
   seção já é cinza-azulado, e card da mesma cor do fundo não existe. A
   alternância se mantém nos dois sentidos. */
.bloco-colunas>li,.faq-item,.procurados-trilho>li>a,.conv-cartoes>li>a,
.cartoes>li>a,.cartao-estatico,.cursos-cartoes>li>a,.atalhos a,.ladrilho,
.depo,.duo-bloco,.serv-pilar,.comecar,.cct-lista a,.ajuda-grade a,
.servicos-grade a,.blog-grade a,.blog-destaque a,.noticia-principal{
  background:var(--marca-50);
}
.secao.tom :is(.bloco-colunas>li,.faq-item,.cartoes>li>a,.cursos-cartoes>li>a,
  .conv-cartoes>li>a,.atalhos a,.ladrilho,.depo,.ajuda-grade a,
  .servicos-grade a,.blog-grade a,.procurados-trilho>li>a){background:#fff}

/* ---- Cartão de evento: chapéu e título no alto, CTA no pé ---------------
   O corpo estava ancorado só na base (bottom:0), com tudo amontoado lá.
   Agora ocupa o cartão inteiro e distribui: chapéu, fio e título no alto -
   onde o olho entra - e o CTA encostado no pé por margin-top:auto, igual
   aos demais blocos (item 9.7). */
.eventos-corpo{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:flex-start;
  padding:1.75rem 1.375rem;
}
.eventos-corpo small{margin-bottom:1rem}
.eventos-cta{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:auto;
  font-size:.875rem;font-weight:500;color:var(--acento);
  transition:gap var(--t-hover) ease;
}
.eventos-cartao a:hover .eventos-cta{gap:.7rem}
/* O véu precisa cobrir o cartão todo agora que o texto subiu - antes
   bastava escurecer o pé. */
.eventos-veu{background:linear-gradient(0deg,rgba(3,18,35,.86) 0%,rgba(3,18,35,.62) 55%,rgba(3,18,35,.46) 100%)}

/* =========================================================================
   SUBLINHADO SÓ NOS TÍTULOS

   O traço âmbar (.marca-texto) já era exclusivo de título. O que sobrava
   sublinhado eram CTAs avulsos - "Ver a agenda completa", "ou conheça
   mais" - onde o sublinhado é redundante: eles já têm cor própria, peso e
   seta. Saem.

   FICA o sublinhado em link DENTRO DE TEXTO CORRIDO (parágrafo de apoio,
   corpo de matéria, aceite de formulário, migalhas). Ali ele não é enfeite:
   é o único sinal, além da cor, que distingue o link da frase em volta -
   e cor sozinha não serve para quem não a enxerga. Tirar dali seria trocar
   um capricho visual por uma barreira de acessibilidade.
   ========================================================================= */
.capacita-secundaria,.comecar-saiba{text-decoration:none}
.capacita-secundaria:hover,.comecar-saiba:hover{text-decoration:none}

/* ---- Simbolo do SINCOFARMA em marca d'agua, no banner principal --------
   Usa o ARQUIVO OFICIAL (elemento-sincofarma.png), nao um desenho refeito
   a mao. Eu tinha abstraido os tracos do simbolo em SVG - o que contraria
   a regra do proprio projeto: marca se usa pelo arquivo oficial.

   Mesmo tratamento de .hero .marca, que o projeto ja usava: vazado em
   branco e bem apagado, grande e sangrando pelo canto. Vazado e nao
   colorido porque, sobre o azul do painel, o roxo do simbolo sumiria e o
   ambar brigaria com o CTA - em branco vira textura e o contorno segue
   reconhecivel. */
.heroi-marca{
  position:absolute;z-index:0;pointer-events:none;
  top:-12%;right:-14%;
  width:clamp(20rem,42vw,36rem);aspect-ratio:800/880;
  background:url("../img/elemento-sincofarma.png") no-repeat center/contain;
  filter:brightness(0) invert(1);opacity:.07;
}
@media(max-width:959px){
  .heroi-marca{top:-8%;right:-22%;width:clamp(16rem,64vw,24rem)}
}
/* O globo de rede continua por cima da marca, e o texto acima dos dois. */
.heroi-arte{z-index:1}

/* ---- CORREÇÃO: raio da órbita em unidade absoluta -----------------------
   --raio era 44%, e translate() com porcentagem resolve contra o PRÓPRIO
   elemento, não contra o contêiner. A âncora é width:max-content (uns
   9rem), então 44% dava ~4rem e os quatro nós se amontoavam no centro, por
   cima do núcleo e uns dos outros.

   Agora o raio é comprimento de verdade. cqmin resolve contra a órbita e
   acompanha qualquer largura; onde não houver suporte a container queries,
   o valor em rem já deixa o mapa montado - degrada, não quebra. */
.vant-orbita{--raio:10.5rem}
@media(min-width:1280px){.vant-orbita{--raio:12.5rem}}
@supports (width:1cqmin){
  .vant-orbita{container-type:size}
  .vant-orbita{--raio:40cqmin}
}
/* Os pontinhos tinham o mesmo defeito. Agora o PHP manda so um MULTIPLICADOR
   (--mult, a variacao irregular de cada ponto) e o raio base vem daqui -
   assim a unidade fica num lugar so e os pontos continuam espalhados. */
.vant-poeira li{--base:13rem;transform:rotate(var(--ang)) translate(calc(var(--base) * var(--mult,1)))}
@media(min-width:1280px){.vant-poeira li{--base:15.5rem}}
@supports (width:1cqmin){.vant-poeira li{--base:46cqmin}}

/* =========================================================================
   CONTROLES DE CARROSSEL - todos ABAIXO e CENTRALIZADOS

   Antes cada carrossel punha as setas num lugar: sobre os cartões (vitrine
   e eventos), no canto da coluna (Parallax), centralizadas (trilha). Três
   padrões para o mesmo gesto, e dois deles tapando o conteúdo.

   Agora é um só: a seta sai de cima do conteúdo e desce para baixo dele,
   centralizada. O espaço é reservado com padding-bottom no palco, então
   nada se desloca quando os botões aparecem (eles nascem [hidden] e só o
   JavaScript os revela).
   ========================================================================= */

/* ---- Vitrine de cursos ---- */
.vitrine-palco{padding-bottom:4.5rem}
@media(min-width:1100px){
  .vitrine-seta{top:auto;bottom:0;transform:none}
  .vitrine-seta.is-anterior{left:50%;margin-left:-2.75rem}
  .vitrine-seta.is-proxima{left:50%;right:auto;margin-left:.5rem}
}

/* ---- Eventos ---- */
.eventos-palco{padding-bottom:4.5rem}
.eventos-seta{
  top:auto;bottom:0;transform:none;
  width:2.25rem;height:2.25rem;
  border:1px solid var(--linha-forte);background:#fff;color:var(--marca-600);
  box-shadow:none;
}
.eventos-seta:hover:not(:disabled){background:var(--marca-600);color:#fff}
.eventos-seta svg{width:14px;height:14px;stroke-width:1.6}
.eventos-seta.is-anterior{left:50%;margin-left:-2.75rem}
.eventos-seta.is-proxima{left:50%;right:auto;margin-left:.5rem}

/* ---- Parallax: centralizado no pé de cada coluna ---- */
.prlx-lado{padding-bottom:1rem}
.prlx-controles{left:50%;right:auto;transform:translateX(-50%)}
@media(min-width:1100px){
  .prlx-farmacia .prlx-controles,
  .prlx-balcao .prlx-controles{left:50%;right:auto;transform:translateX(-50%)}
}

/* =========================================================================
   VANTAGENS em painel AZUL COM GRADIENTE

   A seção voltou a ser painel escuro (.g-inst). Tudo que estava calibrado
   para fundo claro precisa virar junto - texto, anéis, raios e a poeira.
   Só as PLACAS continuam brancas: é o contraste delas com o azul que faz o
   mapa existir, e o logotipo do SINCOFARMA no núcleo é colorido, feito
   para fundo claro.
   ========================================================================= */
.vant-texto h2{color:#fff}
.vant-texto p{color:var(--sobre-2)}

/* Anéis, raios e poeira: de linha escura para linha clara. */
.vant-anel--externo{border-color:var(--linha-clara)}
.vant-anel--interno{border-color:rgba(255,255,255,.3)}
.vant-raios li{background:var(--linha-clara)}
.vant-poeira li{background:rgba(255,255,255,.35)}

/* Rótulo do nó: branco, que é o que se lê sobre azul. */
.vant-no-rotulo{color:#fff}
/* Etiqueta do núcleo: chip translúcido em vez do cinza-claro. */
.vant-nucleo-etiqueta{background:rgba(255,255,255,.12);color:#fff}

/* Pílula de estado: contorno e texto claros. */
.vant-selo{border-color:var(--linha-clara);color:#fff}

/* As placas ganham sombra mais funda - sobre azul, sombra clara some. */
.vant-placa{box-shadow:0 .75rem 2rem rgba(3,18,35,.35)}
.vant-placa--nucleo{box-shadow:0 1.25rem 3rem rgba(3,18,35,.45)}

/* O chapéu do cartão de evento é ÂMBAR, não branco: ele é a etiqueta de
   formato ("presencial", "workshop") e o âmbar a destaca do título branco
   logo abaixo. Entrou na regra de contexto escuro junto com os demais, mas
   aqui a cor própria vale mais - o fio abaixo dele já é âmbar. */
.eventos-chapeu{color:var(--acento)}

/* =========================================================================
   ÍCONES EM ÂMBAR

   O âmbar é a cor de ação da identidade e já marcava o chapéu, o traço do
   título e o hover dos blocos. Os ícones iam de azul - agora acompanham.

   A chapa de cada ícone vira âmbar lavado junto: ícone âmbar sobre chapa
   azul-clara ficaria com contraste baixo demais para se enxergar de longe.

   Sobre contraste: todo ícone aqui é DECORATIVO - a função icone() emite
   aria-hidden e cada um fica ao lado do próprio rótulo escrito. A exigência
   de contraste da WCAG vale para gráfico que carrega informação sozinho,
   não para o que repete o texto ao lado. Por isso o âmbar pode ser o âmbar
   da marca, sem escurecer para passar numa régua que não se aplica.

   FORA desta regra: ícone dentro de botão (herda a cor do botão), seta de
   carrossel e lupa da busca - esses são CONTROLE, não decoração, e âmbar
   neles confundiria "clicável" com "selecionado".
   ========================================================================= */
.ajuda-ico,.capacita-ico,.capacita-trilha-ico,.cct-ico,.conv-ico,
.procurados-ico,.servico-ico,.noticia-selo,.bloco-ico,.selo,.duo-bloco .selo,
.mvv-bloco .selo,.convenios-indice .selo,.vant-no-ico,.estrutura-selo-ico{
  color:var(--acento);
}
/* A chapa acompanha: âmbar lavado no claro, um pouco mais presente no
   escuro, onde lavagem some. */
.ajuda-ico,.capacita-trilha-ico,.cct-ico,.conv-ico,.procurados-ico,
.servico-ico,.noticia-selo,.selo,.convenios-indice .selo{
  background:rgba(244,190,0,.14);
}
:is(.g-inst,.g-prof,.g-duo,.prlx,.rodape,.capacita-painel,.repr95-secao,
    .vant-secao) :is(.selo,.capacita-ico,.duplo-ico){
  background:rgba(244,190,0,.18);color:var(--acento);
}
/* No hover o ícone inverte: chapa âmbar cheia e desenho escuro. É o mesmo
   gesto que o cartão faz na borda, agora dentro dele. */
.conv-cartoes>li>a:hover .conv-ico,
.ajuda-grade a:hover .ajuda-ico,
.capacita-trilhas a:hover .capacita-trilha-ico{
  background:var(--acento);color:var(--marca-950);
}
/* A rotacao cromatica das colunas indexadas FICA: os quatro tons do
   briefing (--ico-1 a --ico-4) giram a cada quatro blocos, como ja era.
   O ambar vale para os demais icones do site; aqui a paleta intercala,
   que e o que o briefing pede dos icones. A regra original esta mais
   acima e volta a valer sozinha. */

/* =========================================================================
   CHAPA DOS ÍCONES: azul da identidade em fundo claro

   Em seção clara, a chapa era âmbar lavado - clara sobre clara, quase sem
   forma. Agora usa o MESMO azul dos painéis (a família do .g-inst), com o
   ícone âmbar por cima: a chapa ganha presença e o par repete a dupla
   azul/âmbar que o site já usa em toda parte.

   NÃO se aplica a .bloco-ico: aquele ícone não tem chapa e carrega a
   rotação de quatro cores do briefing - duas delas são azuis e sumiriam
   sobre azul. Lá a cor continua solta, como você pediu.
   ========================================================================= */
.ajuda-ico,.capacita-trilha-ico,.cct-ico,.conv-ico,.procurados-ico,
.servico-ico,.noticia-selo,.selo,.convenios-indice .selo,.mvv-bloco .selo,
.duo-bloco .selo{
  background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);
  color:var(--acento);
  border:0;
}
/* No hover a chapa clareia em vez de inverter - sobre azul, inverter para
   âmbar cheio brigaria com a borda âmbar que o cartão já acende. */
.conv-cartoes>li>a:hover .conv-ico,
.ajuda-grade a:hover .ajuda-ico,
.capacita-trilhas a:hover .capacita-trilha-ico{
  background:linear-gradient(152deg,var(--marca-400) 0%,var(--marca-600) 100%);
  color:var(--acento);
}

/* ---- Cartão de evento: conteúdo centralizado na vertical ----------------
   Eu tinha prendido o CTA no pé (margin-top:auto) para alinhar os botões
   entre cartões, como nos blocos de texto. Aqui o efeito foi outro: os
   cartões são altos e o texto curto, então abria um vão enorme no meio.

   Agora o grupo inteiro - chapéu, fio, título, descrição e CTA - fica
   centralizado na vertical. Os CTAs deixam de se alinhar entre si, e tudo
   bem: a foto de fundo já dá a cada cartão um peso visual próprio, e o
   vão era pior que o desalinho. */
.eventos-corpo{justify-content:center}
.eventos-corpo small{margin-bottom:1.25rem}
.eventos-cta{margin-top:0}

/* =========================================================================
   COR DA TIPOGRAFIA POR CONTEXTO

   Duas regras, e só duas:
     fundo ESCURO  -> branco no texto, âmbar no destaque (já era assim)
     fundo CLARO   -> azul do logotipo (--azul-inst, #363B8E)

   O quase-preto (--tinta) sai dos títulos e das descrições em seção clara.
   Ele não era errado, mas era uma terceira tinta no sistema - e o azul do
   logotipo já é a cor institucional da marca, não um tom inventado para a
   ocasião. Com ele, texto e identidade passam a ser a mesma coisa.

   Contraste conferido: #363B8E sobre branco dá ~8:1 e sobre a chapa clara
   dos cards (--marca-50) ~7,5:1 - acima do mínimo da WCAG para texto
   normal (4,5:1), inclusive nos corpos pequenos.
   ========================================================================= */

/* ---- Títulos em seção clara ---- */
.bloco-topo h2,.faq-topo h2,.trilha-topo h2,.conv-texto h2,.vant-texto h2,
.capacita-topo h2,.secao-topo h2,.bloco-colunas h3,.faq-item dt,
.conv-corpo strong,.procurados-trilho strong,.servico-texto strong,
.ajuda-pe strong,.depo strong,.parceiros-topo h2{
  color:var(--azul-inst);
}

/* ---- Corpo e descrições em seção clara ---- */
.bloco-topo-pe p,.bloco-colunas>li>p,.faq-item dd p,.conv-corpo small,
.procurados-trilho small,.servico-texto small,.ajuda-pe small,
.trilha-topo p,.capacita-nota,.secao-topo p{
  color:color-mix(in oklab,var(--azul-inst) 82%,transparent);
}
/* Navegador sem color-mix cai no azul cheio - escurece um pouco, não quebra. */
@supports not (color:color-mix(in oklab,#000 50%,transparent)){
  .bloco-topo-pe p,.bloco-colunas>li>p,.faq-item dd p,.conv-corpo small,
  .procurados-trilho small,.servico-texto small,.ajuda-pe small,
  .trilha-topo p,.capacita-nota,.secao-topo p{color:var(--azul-inst)}
}

/* ---- Fundo escuro: branco e âmbar, como já estava ---- */
:is(.g-inst,.g-prof,.g-duo,.prlx,.rodape,.capacita-painel,.faq-painel-caixa,
    .repr95-secao,.vant-secao,.eventos-cartao,.trilha-cartao,.prlx-slide)
  :is(h1,h2,h3,h4,strong){color:#fff}

/* =========================================================================
   MOLDURAS PADRONIZADAS - CTAs e ÍCONES

   Dois inventários que tinham virado bagunça por acúmulo: cada seção nova
   escrevia a própria medida. Agora cada propriedade tem um token (ver
   :root) e estas regras só os aplicam - mudar a altura de todo CTA do site
   passa a ser uma linha.
   ========================================================================= */

/* ---- CTA com moldura ----
   Altura, raio, respiro, corpo e peso iguais em todos. A COR continua de
   cada um: é ela que distingue o principal do secundário, não a forma. */
.btn,.btn-duplo,.comecar-botao,.capacita-cta,.heroi-acao,.btn-acao,
.cta-acoes .btn,.busca-inline button,.rodape-news-campos button{
  min-height:var(--cta-alt);
  padding:0 var(--cta-pad);
  border-radius:var(--cta-raio);
  font-size:var(--cta-fonte);
  font-weight:var(--cta-peso);
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
}
/* O CTA do painel da agenda ocupa a largura toda - é o único de bloco. */
.capacita-cta{width:100%}
/* O secundário do hero era texto sublinhado solto. Vira moldura vazada, e
   o sublinhado sai (sublinhado agora é só de título). */
.heroi-acao-apoio{
  min-height:var(--cta-alt);padding:0 var(--cta-pad);
  border:1px solid rgba(255,255,255,.4);border-radius:var(--cta-raio);
  font-size:var(--cta-fonte);font-weight:var(--cta-peso);
  text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;
}
.heroi-acao-apoio:hover{background:rgba(255,255,255,.12);border-color:var(--acento)}

/* ---- Chapa do ícone ----
   Um tamanho e um raio. As que precisavam ser menores por aperto de espaço
   usam o token pequeno, e não um número solto. */
.ajuda-ico,.conv-ico,.procurados-ico,.servico-ico,.capacita-ico,
.capacita-trilha-ico,.cct-ico,.noticia-selo,.selo,.convenios-indice .selo,
.mvv-bloco .selo,.duo-bloco .selo,.atalhos .selo,.cartoes .selo,
.serv-pilar .selo,.ladrilho .selo,.t-agenda .selo{
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  display:grid;place-items:center;flex-shrink:0;
}
.vant-no-ico,.duplo-ico,.rodape-selo-premio,.faq-painel-ico,.estrutura-selo-ico{
  width:var(--ico-chapa-peq);height:var(--ico-chapa-peq);
  border-radius:var(--ico-raio);
  display:grid;place-items:center;flex-shrink:0;
}

/* ---- Pagina de um servico ---------------------------------------------- */
.servico-pagina{display:grid;gap:3rem}
@media(min-width:1024px){.servico-pagina{grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:start}}
.servico-pagina-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--azul-inst)}
.servico-pagina-texto p{margin-top:1.25rem;font-size:1.0625rem;line-height:1.75;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.servico-pagina-lista .chapeu{margin-bottom:1.5rem}
/* A lista do servico usa as colunas indexadas, em duas colunas: sao itens
   curtos, e quatro colunas deixariam cada um com uma palavra por linha. */
@media(min-width:1024px){.servico-itens{grid-template-columns:1fr 1fr}}
.servico-itens>li>h3{margin-top:var(--b-ico-tit)}

/* ---- Espaco de Capacitacao: ambientes e aluguel ------------------------- */
.ambientes{display:grid;gap:var(--b-gap)}
@media(min-width:720px){.ambientes{grid-template-columns:1fr 1fr}}
@media(min-width:1200px){
  .ambientes{grid-template-columns:repeat(3,1fr)}
  /* O auditorio e o maior dos cinco e abre a grade ocupando duas colunas. */
  .ambientes>.ambiente:first-child{grid-column:span 2}
}
.ambiente{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50);transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease}
.ambiente:hover{border-color:var(--hover-borda);background-color:var(--hover-fundo)}
.ambiente-foto{display:block;position:relative;aspect-ratio:16/9;background-size:cover;background-position:center}
.ambiente-foto.is-vazia{background:radial-gradient(20rem 14rem at 72% 14%,rgba(74,129,180,.5),transparent 64%),linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 52%,var(--marca-900) 100%)}
.ambiente-corpo{display:flex;flex-direction:column;padding:var(--b-pad)}
.ambiente-ico{display:grid;place-items:center;width:var(--ico-chapa);height:var(--ico-chapa);border-radius:var(--ico-raio);background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);color:var(--acento)}
.ambiente-corpo h3{margin-top:var(--b-ico-tit);font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--azul-inst)}
.ambiente-corpo p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.65;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.ambiente-itens{display:grid;gap:.5rem;margin-top:var(--b-txt-cta);padding-top:1.25rem;border-top:1px solid var(--linha)}
.ambiente-itens li{display:flex;align-items:flex-start;gap:.625rem;font-size:.875rem;line-height:1.5;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.ambiente-itens svg{flex-shrink:0;margin-top:.15rem;color:var(--acento)}

.aluguel{display:grid;gap:2.5rem}
@media(min-width:1024px){.aluguel{grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}}
.aluguel-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--azul-inst)}
.aluguel-texto p{margin-top:1.25rem;font-size:1.0625rem;line-height:1.7;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.aluguel-acoes{display:flex;flex-wrap:wrap;gap:.875rem;margin-top:2rem}
.aluguel-valores{display:grid;gap:var(--b-gap)}
@media(min-width:560px){.aluguel-valores{grid-template-columns:1fr 1fr}}
.aluguel-valores li{padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);background:#fff}
.aluguel-valores strong{display:block;margin-top:1rem;font-family:var(--f-tit);font-size:2rem;font-weight:800;line-height:1;color:var(--azul-inst)}
.aluguel-valores small{display:block;margin-top:.375rem;font-size:.875rem;color:color-mix(in oklab,var(--azul-inst) 72%,transparent)}

/* =========================================================================
   CHAPA DO ÍCONE - padrão único no site

   FUNDO CLARO  -> chapa em gradiente azul (a mesma família do .g-inst),
                   ícone âmbar por cima.
   FUNDO ESCURO -> chapa TRANSPARENTE, ícone âmbar solto. Sobre azul, uma
                   chapa azul não teria do que se destacar; o que dá forma
                   ali é o próprio desenho do ícone.

   Uma lista, duas regras. Substitui as tentativas anteriores (âmbar lavado,
   depois âmbar mais presente no escuro), que tinham virado três
   comportamentos para a mesma peça.

   .bloco-ico fica DE FORA: não tem chapa e carrega a rotação de quatro
   cores do briefing - duas delas azuis, que sumiriam sobre a chapa azul.
   ========================================================================= */
.ajuda-ico,.conv-ico,.procurados-ico,.servico-ico,.capacita-ico,
.capacita-trilha-ico,.cct-ico,.noticia-selo,.selo,.convenios-indice .selo,
.mvv-bloco .selo,.duo-bloco .selo,.atalhos .selo,.cartoes .selo,
.serv-pilar .selo,.ladrilho .selo,.t-agenda .selo,.ambiente-ico,
.vant-no-ico,.duplo-ico,.faq-painel-ico,.rodape-selo-premio,
.estrutura-selo-ico{
  background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);
  color:var(--acento);
  border:0;
}

/* Fundo escuro: a chapa some e fica só o ícone. */
:is(.g-inst,.g-prof,.g-duo,.prlx,.rodape,.capacita-painel,.faq-painel-caixa,
    .repr95-secao,.vant-secao,.eventos-cartao,.trilha-cartao,.prlx-slide,
    .estrutura-principal,.estrutura-cartao,.cta,.banner)
  :is(.ajuda-ico,.conv-ico,.procurados-ico,.servico-ico,.capacita-ico,
      .capacita-trilha-ico,.cct-ico,.noticia-selo,.selo,.ambiente-ico,
      .vant-no-ico,.duplo-ico,.faq-painel-ico,.rodape-selo-premio,
      .estrutura-selo-ico){
  background:transparent;
  color:var(--acento);
}

/* No hover, em fundo claro, a chapa clareia - continua azul, só sobe de
   tom. Em fundo escuro não há chapa para clarear, então nada muda ali. */
.conv-cartoes>li>a:hover .conv-ico,
.ajuda-grade a:hover .ajuda-ico,
.capacita-trilhas a:hover .capacita-trilha-ico,
.ambiente:hover .ambiente-ico{
  background:linear-gradient(152deg,var(--marca-400) 0%,var(--marca-600) 100%);
  color:var(--acento);
}

/* =========================================================================
   NOSSA HISTÓRIA - linha do tempo com barra de progresso ("About 2")
   ========================================================================= */
.historia-secao{position:relative}

/* ---- Painel do marco ativo ----
   Os marcos ocupam a MESMA caixa, empilhados: só o ativo aparece. A altura
   é travada pelo grid (todos na célula 1/1), então trocar de marco não
   desloca a página. */
.historia-palco{display:grid;margin-bottom:3rem}
.historia-marco{
  grid-area:1/1;display:grid;gap:2rem;align-items:center;
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff;
  opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s;
}
.historia-marco.is-ativo{opacity:1;visibility:visible}
@media(min-width:900px){
  .historia-marco{grid-template-columns:1.1fr .9fr;gap:3rem;padding:2.5rem}
}
.historia-ano{display:block;font-family:var(--f-cond);font-size:1.125rem;font-weight:300;letter-spacing:.2em;color:var(--acento)}
.historia-marco h3{margin-top:1.25rem;font-family:var(--f-tit);font-size:var(--t-h3);font-weight:600;line-height:1.15;letter-spacing:-.02em;color:var(--azul-inst)}
.historia-marco p{margin-top:var(--b-tit-txt);max-width:34rem;font-size:1.0625rem;line-height:1.7;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.historia-foto{display:block;aspect-ratio:4/3;border-radius:var(--r-card);background-size:cover;background-position:center;position:relative;overflow:hidden}
.historia-foto.is-vazia{background:radial-gradient(20rem 16rem at 70% 16%,rgba(74,129,180,.5),transparent 64%),linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 50%,var(--marca-900) 100%)}

/* ---- A linha do tempo ----
   Grid de N colunas iguais: rótulo em cima, ponto no meio, data embaixo.
   A trilha corre por trás, na altura da linha dos pontos. */
.historia-linha{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1rem}
.historia-passo{
  position:relative;z-index:1;display:grid;gap:.875rem;justify-items:start;
  padding:0;border:0;background:none;cursor:pointer;text-align:left;
}
.historia-passo-rotulo{font-family:var(--f-tit);font-size:.9375rem;font-weight:600;line-height:1.2;color:color-mix(in oklab,var(--azul-inst) 55%,transparent);transition:color var(--t-hover) ease}
.historia-passo.is-ativo .historia-passo-rotulo{color:var(--azul-inst)}
.historia-passo-ponto{
  width:.875rem;height:.875rem;border-radius:50%;
  background:#fff;border:2px solid var(--linha-forte);
  transition:background var(--t-hover) ease,border-color var(--t-hover) ease,transform var(--t-hover) ease;
}
.historia-passo.is-ativo .historia-passo-ponto{background:var(--azul-inst);border-color:var(--azul-inst);transform:scale(1.25)}
.historia-passo-data{
  padding:.25rem .625rem;border-radius:9999px;
  font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.2em;
  text-transform:uppercase;color:color-mix(in oklab,var(--azul-inst) 60%,transparent);
  transition:background var(--t-hover) ease,color var(--t-hover) ease;
}
/* O marco ativo ganha a pílula escura da referência. */
.historia-passo.is-ativo .historia-passo-data{background:var(--azul-inst);color:#fff}
.historia-passo:focus-visible{outline-offset:6px;border-radius:var(--r-sm)}

/* ---- Trilha e barra ----
   A trilha fica na altura exata do ponto: 1,375rem do topo é a soma do
   rótulo com o gap, medida uma vez aqui em vez de repetida em cada item. */
.historia-trilha{position:absolute;left:0;right:0;top:1.9rem;height:2px;background:var(--linha);border-radius:2px}
.historia-barra{display:block;height:100%;width:0;background:var(--azul-inst);border-radius:2px;transition:width .45s cubic-bezier(.16,1,.3,1)}
html.a11y-sem-movimento .historia-barra{transition:none}

.historia-setas{display:flex;justify-content:flex-end;gap:.625rem;margin-top:2.5rem}
.historia-setas[hidden]{display:none}
.historia-seta{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--linha-forte);border-radius:9999px;background:#fff;color:var(--marca-600);cursor:pointer;transition:background var(--t-hover) ease,color var(--t-hover) ease,opacity var(--t-hover) ease}
.historia-seta:hover:not(:disabled){background:var(--azul-inst);border-color:var(--azul-inst);color:#fff}
.historia-seta:disabled{opacity:.3;cursor:default}
.historia-seta.is-anterior svg{transform:rotate(180deg)}

/* Tela estreita: a linha do tempo vira coluna - três colunas de 1fr em
   360px deixariam cada rótulo com uma letra por linha. */
@media(max-width:699px){
  .historia-linha{grid-auto-flow:row;gap:1.5rem}
  .historia-trilha{display:none}
  .historia-passo{grid-template-columns:auto 1fr;align-items:center;gap:.75rem}
  .historia-passo-ponto{grid-row:1/3}
}

/* =========================================================================
   TRIO COM CARD FOCAL INVERTIDO ("Features 12")

   Três cards altos; o terceiro é escuro. A inversão é o único acento do
   bloco - por isso os dois primeiros ficam em tom neutro, sem borda
   colorida nem sombra: qualquer peso extra neles roubaria o foco do que
   deveria fechar a leitura.
   ========================================================================= */
.trio{display:grid;gap:var(--b-gap)}
@media(min-width:720px){.trio{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.trio{grid-template-columns:repeat(3,1fr)}}

.trio-card{
  display:flex;flex-direction:column;
  min-height:24rem;padding:2rem;
  border:1px solid var(--linha);border-radius:var(--r-bloco);
  background:var(--marca-50);
  transition-delay:var(--atraso,0ms);
  transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease;
}
.trio-card:hover{border-color:var(--hover-borda);background-color:var(--hover-fundo)}
/* O ícone abre o card e o texto fecha no pé - é o que dá a altura e o
   respiro da referência, sem precisar de espaçador. */
.trio-card h3{margin-top:auto;padding-top:2rem;font-family:var(--f-tit);font-size:var(--t-h3);font-weight:600;line-height:1.15;letter-spacing:-.02em;color:var(--azul-inst)}
.trio-card>p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.7;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.trio-ico{display:grid;place-items:center;width:var(--ico-chapa);height:var(--ico-chapa);border-radius:var(--ico-raio);background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);color:var(--acento)}

/* ---- O card focal, invertido ---- */
.trio-card.is-focal{
  border-color:transparent;
  background:
    radial-gradient(26rem 18rem at 80% 0%,rgba(74,129,180,.34),transparent 62%),
    linear-gradient(158deg,var(--azul-prof) 0%,var(--marca-900) 58%,var(--marca-950) 100%);
}
.trio-card.is-focal:hover{border-color:var(--hover-borda);background-color:transparent}
.trio-card.is-focal h3{color:#fff}
/* Chapa transparente no escuro, como o resto do site. */
.trio-card.is-focal .trio-ico{background:transparent;color:var(--acento)}

.trio-valores{display:grid;gap:.75rem;margin-top:var(--b-tit-txt)}
.trio-valores li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;line-height:1.55;color:var(--sobre-2)}
.trio-valores svg{flex-shrink:0;margin-top:.2rem;color:var(--acento)}

/* =========================================================================
   INDICADORES - cartão com gráficos circulares ("Stats 2")
   ========================================================================= */
.indicadores{
  display:grid;gap:2.5rem;align-items:center;
  padding:2.5rem;
  border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--marca-50);
}
@media(min-width:1024px){.indicadores{grid-template-columns:1fr 1.05fr;gap:4rem;padding:3rem}}
.indicadores-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h3);font-weight:600;line-height:1.15;letter-spacing:-.02em;color:var(--azul-inst)}
.indicadores-texto p{margin-top:var(--b-tit-txt);max-width:32rem;font-size:1rem;line-height:1.7;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.indicadores-texto .bloco-ver{margin-top:var(--b-txt-cta)}

.indicadores-aneis{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1rem}
@media(max-width:620px){.indicadores-aneis{grid-auto-flow:row;gap:1.75rem}}
.indicadores-aneis figure{display:grid;justify-items:center;gap:1rem;margin:0;text-align:center}

/* O anel: conic-gradient até --pct, sobre um trilho apagado. O miolo é um
   segundo círculo por cima - é o que transforma o disco em anel, sem
   precisar de SVG. */
.anel-dado{
  position:relative;display:grid;place-items:center;
  width:7rem;height:7rem;border-radius:50%;
  background:conic-gradient(var(--azul-inst) calc(var(--pct,100) * 1%),var(--linha) 0);
}
.anel-dado::before{
  content:"";position:absolute;inset:.4375rem;border-radius:50%;
  background:var(--marca-50);
}
.anel-dado strong{position:relative;font-family:var(--f-tit);font-size:1.75rem;font-weight:800;line-height:1;color:var(--azul-inst)}

/* A legenda repete o número para o leitor de tela; na tela, só o rótulo
   aparece - o número já está dentro do anel. */
.indicadores-aneis figcaption strong{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.indicadores-aneis figcaption span{display:block;font-family:var(--f-tit);font-size:.9375rem;font-weight:600;line-height:1.3;color:var(--azul-inst)}
.indicadores-aneis figcaption small{display:block;margin-top:.25rem;font-size:.8125rem;line-height:1.4;color:color-mix(in oklab,var(--azul-inst) 65%,transparent)}

/* =========================================================================
   GOVERNANÇA - fileira de nomes com setas ("About 8")
   ========================================================================= */
.gov-topo{max-width:52rem;margin-bottom:3rem}
.gov-topo h2{margin-top:1.25rem;font-family:var(--f-tit);font-size:var(--t-h3);font-weight:600;line-height:1.3;letter-spacing:-.015em;color:var(--azul-inst)}

.gov-palco{position:relative;padding-bottom:4.5rem}
.gov-rail{
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;
  scrollbar-width:none;padding-block:.25rem;
  padding-inline:var(--gutter);
}
.gov-rail::-webkit-scrollbar{display:none}
.gov-rail:focus-visible{outline:2px solid var(--marca-600);outline-offset:4px;border-radius:var(--r-card)}
@media(min-width:1100px){
  /* Alinha o primeiro cartão com a grade da página. */
  .gov-rail{padding-inline:max(var(--gutter),(100vw - 110rem)/2 + var(--gutter))}
}
.gov-cartoes{display:flex;gap:var(--b-gap);width:max-content;list-style:none;margin:0;padding:0}

.gov-cartao{
  display:flex;flex-direction:column;flex-shrink:0;
  width:clamp(14rem,60vw,16rem);min-height:17rem;
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50);
  scroll-snap-align:start;transition-delay:var(--atraso,0ms);
  transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease;
}
.gov-cartao:hover{border-color:var(--hover-borda);background-color:var(--hover-fundo)}
.gov-cartao-topo strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--azul-inst)}
.gov-cargo{display:block;margin-top:.375rem;font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:color-mix(in oklab,var(--azul-inst) 62%,transparent)}

/* A inicial ocupa o lugar do retrato: grande, apagada, encostada no pé.
   Não é avatar - é marca d'água tipográfica, e não finge ser uma pessoa. */
.gov-inicial{
  margin-top:auto;padding-block:1rem;
  font-family:var(--f-tit);font-size:4.5rem;font-weight:800;line-height:1;
  color:color-mix(in oklab,var(--azul-inst) 12%,transparent);
}
.gov-grupo{font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--marca-600)}

.gov-setas{position:absolute;right:var(--gutter);bottom:0;display:flex;gap:.625rem}
.gov-setas[hidden]{display:none}
.gov-seta{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--linha-forte);border-radius:9999px;background:#fff;color:var(--marca-600);cursor:pointer;transition:background var(--t-hover) ease,color var(--t-hover) ease,opacity var(--t-hover) ease}
.gov-seta:hover:not(:disabled){background:var(--azul-inst);border-color:var(--azul-inst);color:#fff}
.gov-seta:disabled{opacity:.3;cursor:default}
.gov-seta.is-anterior svg{transform:rotate(180deg)}

/* =========================================================================
   DOWNLOADS - lista de documentos ("Download 4")
   ========================================================================= */
.downloads{display:grid;gap:var(--b-gap)}
.download{
  display:grid;gap:1.25rem;align-items:center;
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50);
  transition-delay:var(--atraso,0ms);
  transition:border-color var(--t-hover) ease,background-color var(--t-hover) ease;
}
@media(min-width:760px){.download{grid-template-columns:auto 1fr auto;gap:1.5rem}}
.download:hover{border-color:var(--hover-borda);background-color:var(--hover-fundo)}
.download-ico{display:grid;place-items:center;width:var(--ico-chapa);height:var(--ico-chapa);border-radius:var(--ico-raio);background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);color:var(--acento)}
.download-corpo strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--azul-inst)}
.download-corpo p{margin-top:.375rem;font-size:.9375rem;line-height:1.6;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.download-meta{display:inline-block;margin-top:.625rem;font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--marca-600)}
.download-acao{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:var(--cta-alt);padding:0 var(--cta-pad);
  border-radius:var(--cta-raio);background:var(--marca-600);color:#fff;
  font-size:var(--cta-fonte);font-weight:var(--cta-peso);white-space:nowrap;
  transition:background var(--t-hover) ease;
}
.download-acao:hover{background:var(--marca-700)}
/* Documento ainda nao publicado: a linha fica mais apagada e o botao vira
   vazado - ele leva ao atendimento, nao a um arquivo. */
.download.is-pendente{background:transparent}
.download.is-pendente .download-ico{background:var(--vidro);color:var(--marca-600)}
.download.is-pendente .download-meta{color:color-mix(in oklab,var(--azul-inst) 55%,transparent)}
.download-acao.is-vazia{background:transparent;border:1px solid var(--linha-forte);color:var(--marca-700)}
.download-acao.is-vazia:hover{background:var(--marca-50);border-color:var(--acento)}

/* =========================================================================
   CONTROLES DE CARROSSEL - fio atravessando, setas no fim

   Padrão da referência: um fio fino corre a largura toda e as duas setas
   ficam na ponta direita dele, em chip de canto arredondado - não círculo.

   O fio é um ::before que estica (flex:1): ele ocupa o que sobra, então
   acompanha qualquer largura sem conta nenhuma. E resolve de uma vez o
   que antes eram três posicionamentos diferentes - sobre os cartões, no
   canto da coluna e centralizado embaixo.
   ========================================================================= */
.eventos-setas,.gov-setas,.historia-setas,.trilha-setas,.prlx-controles{
  display:flex;align-items:center;gap:.5rem;
  margin-top:2.5rem;
}
.eventos-setas::before,.gov-setas::before,.historia-setas::before,
.trilha-setas::before,.prlx-controles::before{
  content:"";flex:1;height:1px;background:var(--linha);margin-right:1rem;
}

/* O chip: quadrado de canto arredondado, fundo claro, sem contorno. */
.eventos-seta,.gov-seta,.historia-seta,.trilha-seta,.prlx-seta{
  display:grid;place-items:center;flex-shrink:0;
  width:2.5rem;height:2.5rem;
  border:0;border-radius:var(--r-sm);
  background:var(--vidro);color:var(--azul-inst);cursor:pointer;
  transition:background var(--t-hover) ease,color var(--t-hover) ease,opacity var(--t-hover) ease;
}
.eventos-seta:hover:not(:disabled),.gov-seta:hover:not(:disabled),
.historia-seta:hover:not(:disabled),.trilha-seta:hover:not(:disabled),
.prlx-seta:hover:not(:disabled){background:var(--azul-inst);color:#fff}
.eventos-seta:disabled,.gov-seta:disabled,.historia-seta:disabled,
.trilha-seta:disabled,.prlx-seta:disabled{opacity:.35;cursor:default}

/* Eventos e Governança tinham as setas posicionadas por absolute; agora
   são linha do fluxo, dentro do .wrap. */
.eventos-palco,.gov-palco{padding-bottom:0}
.eventos-seta,.gov-seta{position:static;transform:none;margin:0}
.eventos-setas,.gov-setas{position:static;padding-inline:var(--gutter)}

/* Parallax: fundo escuro, então o fio e o chip clareiam. O contador fica
   entre o fio e as setas. */
.prlx-controles{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(1.25rem,3vw,2rem);transform:none;margin-top:0}
@media(min-width:1100px){
  .prlx-farmacia .prlx-controles,.prlx-balcao .prlx-controles{
    left:clamp(1.5rem,3vw,3.5rem);right:clamp(1.5rem,3vw,3.5rem);transform:none;
  }
}
.prlx-controles::before{background:rgba(255,255,255,.22)}
.prlx-seta{background:rgba(255,255,255,.14);color:#fff}
.prlx-seta:hover:not(:disabled){background:#fff;color:var(--azul-inst)}
.prlx-conta{order:-1;margin-right:.75rem;color:rgba(255,255,255,.75)}

/* =========================================================================
   NOTÍCIAS - listagem com barra lateral e matéria com lateral fixa
   ========================================================================= */

/* ---- Listagem: conteúdo + filtros à direita ---- */
.blog-layout{display:grid;gap:3rem}
@media(min-width:1024px){.blog-layout{grid-template-columns:minmax(0,1fr) 19rem;gap:3.5rem;align-items:start}}
.blog-principal{min-width:0}
.blog-lado{display:grid;gap:var(--b-gap)}
/* A barra gruda: filtrar no meio de uma lista longa sem voltar ao topo. */
@media(min-width:1024px){.blog-lado{position:sticky;top:7rem}}

.blog-lado-bloco{padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50)}
.blog-lado-bloco .chapeu{margin-bottom:1.25rem}
.blog-lado-lista{display:grid;gap:.25rem}
.blog-lado-lista a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:44px;padding:.5rem .75rem;border-radius:var(--r-sm);
  font-size:.9375rem;color:color-mix(in oklab,var(--azul-inst) 82%,transparent);
  transition:background var(--t-hover) ease,color var(--t-hover) ease;
}
.blog-lado-lista a:hover{background:#fff;color:var(--azul-inst)}
/* O filtro ativo: fundo cheio, não só cor de texto - cor sozinha não
   distingue para quem não a enxerga, e aqui o estado é a informação. */
.blog-lado-lista a[aria-current="true"]{background:var(--azul-inst);color:#fff;font-weight:600}
.blog-lado-lista small{
  flex-shrink:0;min-width:1.75rem;padding:.125rem .375rem;border-radius:9999px;
  background:var(--vidro);text-align:center;
  font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.1em;
  color:var(--marca-600);
}
.blog-lado-lista a[aria-current="true"] small{background:rgba(255,255,255,.2);color:#fff}

/* ---- Cursos na lateral ---- */
.lado-cursos{display:grid;gap:.25rem}
.lado-cursos a{display:flex;align-items:flex-start;gap:.75rem;padding:.625rem .5rem;border-radius:var(--r-sm);transition:background var(--t-hover) ease}
.lado-cursos a:hover{background:#fff}
.lado-cursos-ico{display:grid;place-items:center;width:var(--ico-chapa-peq);height:var(--ico-chapa-peq);flex-shrink:0;border-radius:var(--ico-raio);background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);color:var(--acento)}
.lado-cursos-txt{min-width:0}
.lado-cursos strong{display:block;font-family:var(--f-tit);font-size:.9375rem;font-weight:600;line-height:1.3;color:var(--azul-inst)}
.lado-cursos small{display:block;margin-top:.25rem;font-size:.8125rem;line-height:1.45;color:color-mix(in oklab,var(--azul-inst) 70%,transparent)}
.blog-lado-bloco .bloco-cta{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--linha)}

/* ---- Matéria: corpo + lateral fixa ---- */
.materia-layout{display:grid;gap:3rem}
@media(min-width:1024px){.materia-layout{grid-template-columns:minmax(0,1fr) 20rem;gap:3.5rem;align-items:start}}
.materia-principal{min-width:0}
.materia-lado{display:grid;gap:var(--b-gap)}
@media(min-width:1024px){.materia-lado{position:sticky;top:7rem}}
.materia-lado-contato{padding:2rem 1.75rem;border-radius:var(--r-bloco);color:#fff}
.materia-lado-contato h2{margin-top:1.25rem;font-family:var(--f-tit);font-size:1.25rem;font-weight:600;line-height:1.25;color:#fff}
.materia-lado-contato>p{margin-top:.75rem;font-size:.9375rem;line-height:1.6;color:var(--sobre-2)}
.materia-lado-contato .btn{width:100%;margin-top:1.5rem}

/* ---- Depois da leitura: demais matérias e cursos -----------------------
   Largura cheia, fora das duas colunas da matéria. O respiro de cima é
   maior que o normal: é a fronteira entre "ler" e "escolher o próximo", e
   ela precisa ser sentida sem precisar de um fio. */
.materia-mais,.materia-cursos{margin-top:clamp(3.5rem,7vw,6rem)}
.materia-mais .bloco-topo,.materia-cursos .bloco-topo{margin-bottom:2.5rem}
.materia-mais h2,.materia-cursos h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h3);font-weight:600;line-height:1.15;letter-spacing:-.02em;color:var(--azul-inst)}
/* A matéria é coluna estreita; aqui a grade volta a ter três colunas. */
@media(min-width:1100px){.materia-mais .blog-grade{grid-template-columns:repeat(3,1fr)}}

/* =========================================================================
   MEDIDA DE LEITURA DA MATÉRIA

   O corpo estava ocupando a largura inteira da coluna - perto de 1000px
   em tela grande. Linha longa demais cansa: o olho perde o começo da
   próxima ao voltar da direita. A referência (medicglobal) usa 600-700px,
   que é a medida clássica de leitura corrida: 65-75 caracteres por linha.

   42rem ≈ 672px. O cabeçalho e o compartilhamento acompanham, senão o
   título começaria num alinhamento e o texto em outro.
   ========================================================================= */
.materia-topo,.materia-corpo,.materia-principal .compartilhar{max-width:42rem}

/* Tipografia alinhada à referência: corpo 17px, entrelinha 1,8, 20px entre
   parágrafos. Os subtítulos respiram 32px acima - estavam em 40px, que
   abria um buraco no meio do texto. */
.materia-corpo :is(h2,h3,h4){margin-top:2rem;margin-bottom:-.25rem;color:var(--azul-inst)}
.materia-corpo h2{font-size:1.375rem}
.materia-corpo h3{font-size:1.1875rem}
.materia-corpo p{color:color-mix(in oklab,var(--azul-inst) 85%,transparent)}

/* Imagem e citação podem passar um pouco da medida do texto: são pausas na
   leitura, e ganhar um respiro lateral as separa do corpo sem precisar de
   moldura. Nunca além da coluna, por causa do max-width herdado. */
.materia-corpo :is(figure,blockquote){margin-inline:-1.5rem}
@media(max-width:719px){.materia-corpo :is(figure,blockquote){margin-inline:0}}

/* ---- Crédito de autoria / fonte, no fim da matéria ---------------------
   Discreto e padronizado: um fio acima, rótulo em caixa alta e o veículo
   ao lado. Não compete com o texto que acabou de terminar, mas fica claro
   o suficiente para distinguir o que o sindicato escreveu do que ele
   reproduziu. */
.materia-credito{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .875rem;
  max-width:42rem;margin-top:2.5rem;padding-top:1.25rem;
  border-top:1px solid var(--linha);
  font-size:.875rem;color:color-mix(in oklab,var(--azul-inst) 72%,transparent);
}
.materia-credito-rotulo{
  font-family:var(--f-cond);font-size:.6875rem;font-weight:300;
  letter-spacing:.2em;text-transform:uppercase;color:var(--marca-600);
}
.materia-credito a{display:inline-flex;align-items:center;gap:.35rem;font-weight:500;color:var(--marca-600)}

/* ---- Notícias recentes na lateral ----
   Data em cima, título embaixo: a data é o critério de quem varre a lista
   procurando "o que saiu hoje". */
.lado-noticias{display:grid;gap:.25rem}
.lado-noticias a{display:grid;gap:.25rem;padding:.625rem .5rem;border-radius:var(--r-sm);transition:background var(--t-hover) ease}
.lado-noticias a:hover{background:#fff}
.lado-noticias time{font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--marca-600)}
.lado-noticias strong{font-family:var(--f-tit);font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--azul-inst)}

/* ---- Relacionamento: newsletter e canais ---- */
.materia-lado-canais{padding:2rem 1.75rem;border-radius:var(--r-bloco);color:#fff}
.materia-lado-canais h2{margin-top:1.25rem;font-family:var(--f-tit);font-size:1.25rem;font-weight:600;line-height:1.25;color:#fff}
.materia-lado-canais>p{margin-top:.75rem;font-size:.9375rem;line-height:1.6;color:var(--sobre-2)}
.materia-lado-canais .btn{width:100%;margin-top:1.5rem}
.lado-canais{display:grid;gap:.25rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha-clara)}
.lado-canais a{display:flex;align-items:center;gap:.625rem;min-height:44px;font-size:.9375rem;font-weight:500;color:#fff;transition:color var(--t-hover) ease}
.lado-canais a:hover{color:var(--acento)}
.lado-canais svg{flex-shrink:0;color:var(--acento)}

/* ---- Filtros de notícias em dropdown ----------------------------------- */
.blog-filtros{display:grid;gap:1.25rem}
.blog-filtros .campo{display:grid;gap:.5rem;margin:0}
.blog-filtros label{font-family:var(--f-cond);font-size:.6875rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--marca-600)}
.blog-filtros select{
  width:100%;min-height:var(--cta-alt);padding:0 2.5rem 0 1rem;
  border:1px solid var(--linha-forte);border-radius:var(--r-sm);background:#fff;
  font:400 .9375rem var(--f-corpo);color:var(--azul-inst);cursor:pointer;
  /* A seta nativa some e entra uma desenhada - a do sistema varia demais
     entre navegadores para caber num conjunto padronizado. */
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--marca-600) 50%),linear-gradient(135deg,var(--marca-600) 50%,transparent 50%);
  background-position:calc(100% - 1.125rem) 54%,calc(100% - .8125rem) 54%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  transition:border-color var(--t-hover) ease,box-shadow var(--t-hover) ease;
}
.blog-filtros select:hover{border-color:var(--marca-500)}
.blog-filtros select:focus-visible{border-color:var(--marca-500);box-shadow:0 0 0 4px rgba(12,70,131,.12)}
.blog-filtros .btn{width:100%}
.blog-filtros-limpar{justify-self:center;min-height:44px;display:inline-flex;align-items:center;font-size:.875rem;font-weight:500;color:var(--marca-600)}

/* Aviso de que o acervo continua atrás do filtro. */
.blog-corte{
  display:flex;align-items:flex-start;gap:.625rem;
  margin-top:2rem;padding:1rem 1.25rem;
  border:1px dashed var(--linha-forte);border-radius:var(--r-card);
  font-size:.9375rem;line-height:1.6;color:color-mix(in oklab,var(--azul-inst) 82%,transparent);
}
.blog-corte svg{flex-shrink:0;margin-top:.2rem;color:var(--acento)}

/* =========================================================================
   OUVIDORIA
   ========================================================================= */
.ouv-sobre{display:grid;gap:3rem}
@media(min-width:1024px){.ouv-sobre{grid-template-columns:.95fr 1.05fr;gap:4rem;align-items:start}}
.ouv-sobre-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--azul-inst)}
.ouv-sobre-texto p{margin-top:1.25rem;max-width:34rem;font-size:1.0625rem;line-height:1.75;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}

/* As etapas: fio à esquerda ligando os três passos - o processo é uma
   sequência, e o fio diz isso sem precisar de seta. */
.ouv-etapas{display:grid;gap:0;list-style:none;margin:0;padding:0}
.ouv-etapas li{position:relative;padding:0 0 2rem 3.5rem}
.ouv-etapas li:last-child{padding-bottom:0}
.ouv-etapas li::before{
  content:"";position:absolute;left:1.0625rem;top:2.25rem;bottom:0;
  width:1px;background:var(--linha);
}
.ouv-etapas li:last-child::before{display:none}
.ouv-etapa-num{
  position:absolute;left:0;top:0;display:grid;place-items:center;
  width:2.25rem;height:2.25rem;border-radius:var(--ico-raio);
  background:linear-gradient(152deg,var(--marca-500) 0%,var(--azul-prof) 54%,var(--marca-900) 100%);
  font-family:var(--f-cond);font-size:.75rem;font-weight:300;letter-spacing:.14em;color:var(--acento);
}
.ouv-etapas strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.3;color:var(--azul-inst)}
.ouv-etapas p{margin-top:.5rem;font-size:.9375rem;line-height:1.65;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}

.ouv-prazo{display:flex;align-items:center;gap:.75rem;margin-top:2.5rem;padding:1rem 1.25rem;border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50);font-size:.9375rem;color:var(--azul-inst)}
.ouv-prazo svg{flex-shrink:0;color:var(--acento)}

.ouv-form{display:grid;gap:3rem}
@media(min-width:1024px){.ouv-form{grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:start}}
.ouv-form-texto h2{margin-top:1rem;font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--azul-inst)}
.ouv-form-texto p{margin-top:1.25rem;font-size:1.0625rem;line-height:1.75;color:color-mix(in oklab,var(--azul-inst) 82%,transparent)}
.ouv-sigilo{display:flex;align-items:flex-start;gap:.75rem;margin-top:1.75rem;padding:1rem 1.25rem;border:1px solid var(--linha);border-radius:var(--r-card);background:var(--marca-50);font-size:.9375rem!important;line-height:1.6!important}
.ouv-sigilo svg{flex-shrink:0;margin-top:.15rem;color:var(--acento)}
.ouv-form-caixa{padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-bloco);background:var(--marca-50)}
@media(min-width:1024px){.ouv-form-caixa{padding:2.5rem}}

/* ---- Banner interno mais baixo -----------------------------------------
   O que empurrava a altura era a FOTO: 4/5 num bloco de 30rem dá quase
   600px, e o topo sozinho tomava a tela inteira antes do conteúdo.

   Três cortes, nesta ordem de impacto:
     1. a foto vira 4/3 e estreita - a forma de arco se mantém;
     2. o respiro vertical cai de 4/5rem para 2,5/3rem;
     3. o título usa a escala de h2, não a de h1 da home. Página interna
        não precisa do maior tipo do site: o maior é o da home, e a
        hierarquia entre as duas se perde quando os dois são iguais.
   ========================================================================= */
.hero-pagina{padding-block:2.5rem 3rem}
@media(min-width:960px){.hero-pagina{padding-block:3rem 3.5rem}}
.hero-pagina-arte{max-width:24rem}
.hero-pagina-foto{aspect-ratio:4/3;border-radius:50% 50% var(--r-bloco) var(--r-bloco) / 34% 34% var(--r-bloco) var(--r-bloco)}
.hero-pagina-conteudo h1{font-size:var(--t-h2);line-height:1.08}
.hero-pagina-apoio{margin-top:1.25rem;font-size:1rem;line-height:1.7}
/* Os dois CTAs do banner interno medem igual. align-items:stretch cobre o
   caso em que um rotulo quebra em duas linhas: em vez de um botao alto e um
   baixo, os dois acompanham a maior altura. */
.hero-pagina-acoes{margin-top:1.75rem;align-items:stretch}
.hero-pagina-acoes .btn{margin-top:0}
.hero-pagina.is-compacto{padding-block:2rem 1.25rem}
@media(max-width:719px){.hero-pagina{padding-block:2rem 2.5rem}}

/* ---- Matéria: colunas coladas, sem o vão do meio ----------------------
   O .wrap do site tem 110rem. Com a coluna principal em minmax(0,1fr) e o
   texto limitado a 42rem, sobrava perto de 600px de vazio entre o fim da
   linha e a barra lateral - o texto parecia uma tira solta no meio da
   página.

/* (A tentativa de centrar a matéria em colunas fixas foi removida: ela
   desalinhava o artigo do cabeçalho e do rodapé. A regra válida, que
   estica as colunas até a margem padrão, está mais abaixo.) */

/* As seções do fim (outras matérias e cursos) acompanham a mesma caixa:
   fora dela, começariam num alinhamento diferente do texto que acabou. */
@media(min-width:1024px){
  .materia-mais,.materia-cursos{max-width:69rem;margin-inline:auto}
}

/* =========================================================================
   BANNER INTERNO NO MESMO MOLDE DA HOME

   Volta a ser o painel azul de cantos arredondados do .heroi-palco: mesmo
   gradiente, mesmo raio, texto à esquerda e a arte à direita. A diferença
   fica só na ALTURA - interna não precisa da presença do topo da home.

   O arco da foto permanece: é ele que diferencia uma página interna da
   outra quando a fotografia chegar. Sobre o azul, ganha um fio claro para
   não se dissolver no fundo.
   ========================================================================= */
.hero-pagina{padding-block:1.5rem 0;overflow:visible}
.hero-pagina .wrap{padding-inline:var(--gutter)}
.hero-pagina-grade{
  position:relative;overflow:hidden;
  padding:clamp(2rem,4vw,3rem) clamp(1.5rem,3.5vw,3.5rem);
  border-radius:var(--r-bloco);
  background:
    radial-gradient(36rem 24rem at 74% 34%,rgba(23,92,151,.5),transparent 64%),
    linear-gradient(104deg,var(--marca-950) 0%,var(--marca-800) 48%,var(--marca-600) 100%);
}
/* Texto claro sobre o painel - a regra de contexto escuro do site não
   alcança .hero-pagina porque ela não tem a classe .g-inst. */
.hero-pagina-conteudo h1,.hero-pagina-rotulo{color:#fff}
.hero-pagina-apoio{color:var(--sobre-2)}
.hero-pagina-conteudo .chapeu{color:#fff}
.hero-pagina-conteudo .marca-texto{box-shadow:inset 0 -2px 0 var(--acento)}
/* O CTA principal fica branco: azul sobre azul não tem contraste. */
/* QUATRO TONS, DOIS RESULTADOS. As páginas internas foram escritas em
   épocas diferentes e usam 'acao'/'contorno' ou 'branco'/'claro' no $hero.
   Sobre o painel azul os dois pares querem dizer a mesma coisa - cheio e
   vazado -, e deixá-los divergir punha um CTA de fundo translúcido ao
   lado de um transparente, na mesma linha. Aqui os quatro são
   normalizados: mesma altura (pela regra base), mesma moldura, mesma cor.
   Nenhuma página precisa ser reescrita para ficar igual às outras. */
.hero-pagina-acoes .btn-acao,
.hero-pagina-acoes .btn-branco{background:#fff;color:var(--marca-700);border:1px solid transparent}
.hero-pagina-acoes .btn-acao:hover,
.hero-pagina-acoes .btn-branco:hover{background:var(--acento);color:var(--marca-950)}
.hero-pagina-acoes .btn-contorno,
.hero-pagina-acoes .btn-claro{border:1px solid rgba(255,255,255,.4);color:#fff;background:transparent}
.hero-pagina-acoes .btn-contorno:hover,
.hero-pagina-acoes .btn-claro:hover{background:rgba(255,255,255,.12);border-color:var(--acento)}

.hero-pagina-foto{box-shadow:0 1.5rem 3rem rgba(3,18,35,.35)}
/* O bloco de apoio atrás do arco some: sobre o painel azul ele vira uma
   mancha clara sem função. */
.hero-pagina-bloco{display:none}

.hero-pagina.is-compacto .hero-pagina-grade{padding-block:clamp(1.5rem,3vw,2rem)}

/* ---- Matéria na margem padrão do site ---------------------------------
   Eu tinha centrado o bloco com colunas de largura fixa para matar o vão
   do meio. O efeito colateral foi pior: o artigo virou uma ilha no centro,
   desalinhada do cabeçalho e do rodapé, que usam a gutter do .wrap.

   Agora as colunas ESTICAM e o conteúdo começa na mesma margem do resto do
   site. A lateral fica com largura fixa (é um bloco de apoio, não cresce
   junto) e o texto ocupa o que sobra. */
@media(min-width:1024px){
  .materia-layout{
    grid-template-columns:minmax(0,1fr) 20rem;
    justify-content:stretch;gap:3.5rem;
  }
  .materia-mais,.materia-cursos{max-width:none;margin-inline:0}
}
/* O texto acompanha a coluna inteira - sem medida própria. */
.materia-topo,.materia-corpo,.materia-principal .compartilhar,.materia-credito{max-width:none}

/* =========================================================================
   BASE TERRITORIAL  (/convencoes-coletivas)

   Veio da aba do Jurídico do site publicado. São ~250 municípios em 9
   sindicatos laborais: lista aberta de uma vez, isso empurraria a página
   inteira para baixo. Cada sindicato é um <details> fechado, e a busca
   abre sozinha o grupo que tem a cidade procurada.

   <details> e não um acordeão de JavaScript porque o navegador já faz tudo
   o que importa aqui - foco, teclado, estado - e sem ele a lista continua
   acessível: basta clicar.
   ========================================================================= */

/* ---- Busca (nasce escondida; o JS revela) ---- */
.base-busca{max-width:30rem;margin-bottom:2.25rem}
.base-busca[hidden]{display:none}
.base-busca label{
  display:block;margin-bottom:.5rem;
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);
}
.base-busca-campo{
  display:flex;align-items:center;gap:.75rem;
  padding:0 1.125rem;min-height:var(--cta-alt);
  border:1px solid var(--linha-forte);border-radius:var(--cta-raio);
  background:#fff;transition:border-color var(--t-hover),background var(--t-hover);
}
.base-busca-campo:focus-within{border-color:var(--hover-borda);background:var(--hover-fundo)}
.base-busca-campo svg{flex-shrink:0;color:var(--marca-600)}
.base-busca-campo input{
  flex:1;min-width:0;border:0;background:transparent;
  font:500 .9375rem var(--f-corpo);color:var(--tinta);
}
.base-busca-campo input:focus{outline:none}
.base-busca-campo input::-webkit-search-cancel-button{cursor:pointer}
.base-resultado{min-height:1.25rem;margin-top:.625rem;font-size:.875rem;color:var(--tinta-3)}
.base-resultado:empty{margin-top:0}

/* ---- A grade de sindicatos ---- */
.base-grade{display:grid;gap:var(--b-gap);grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}

.base-uf{
  border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;overflow:hidden;align-self:start;
  transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.base-uf:hover{border-color:var(--hover-borda);box-shadow:var(--s-card)}
.base-uf[open]{border-color:var(--linha-forte)}
.base-uf[hidden]{display:none}

.base-uf summary{
  display:flex;align-items:center;gap:1rem;
  padding:1.25rem 1.375rem;cursor:pointer;list-style:none;
}
.base-uf summary::-webkit-details-marker{display:none}
.base-uf summary:focus-visible{outline:2px solid var(--acento);outline-offset:-2px}

.base-uf-ico{
  flex-shrink:0;display:grid;place-items:center;
  width:var(--ico-chapa-peq);height:var(--ico-chapa-peq);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.base-uf-nome{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1875rem}
.base-uf-nome strong{font-family:var(--f-tit);font-size:1rem;font-weight:600;color:var(--azul-inst);line-height:1.3}
.base-uf-nome small{font-size:.8125rem;color:var(--tinta-3)}
.base-uf summary > svg:last-child{
  flex-shrink:0;color:var(--tinta-3);
  transition:transform var(--t-hover),color var(--t-hover);
}
.base-uf[open] summary > svg:last-child{transform:rotate(180deg);color:var(--marca-600)}
.base-uf:hover summary > svg:last-child{color:var(--marca-600)}

/* ---- Os municípios ---- */
.base-cidades{
  display:flex;flex-wrap:wrap;gap:.4375rem;
  padding:0 1.375rem 1.375rem;margin:0;list-style:none;
  border-top:1px solid var(--linha);padding-top:1.125rem;
}
.base-cidades li{
  padding:.3125rem .6875rem;border-radius:9999px;
  background:var(--bruma-2);border:1px solid transparent;
  font-size:.8125rem;line-height:1.4;color:var(--tinta-2);
}
.base-cidades li[hidden]{display:none}
/* A cidade encontrada pela busca sai do cinza e assume o âmbar. */
.base-cidades li.is-achada{
  background:var(--hover-fundo);border-color:var(--hover-borda);
  color:var(--tinta);font-weight:600;
}

.base-nota{
  display:flex;align-items:flex-start;gap:.625rem;
  margin-top:1.75rem;max-width:52rem;
  font-size:.875rem;line-height:1.65;color:var(--tinta-3);
}
.base-nota svg{flex-shrink:0;margin-top:.1875rem;color:var(--marca-500)}

@media(max-width:719px){
  .base-grade{grid-template-columns:1fr}
  .base-uf summary{padding:1.125rem}
  .base-cidades{padding-inline:1.125rem}
}

/* =========================================================================
   CONTATO — padrão "Contact 11" (React Bits Pro), refeito em HTML/CSS

   O bloco original é um componente React com Tailwind, instalado por
   `npx shadcn add @reactbits-pro/contact-11` e dependente de licença. Aqui
   só o ARRANJO foi reconstruído: de um lado as mesas de atendimento, de
   outro o formulário num cartão elevado. Nenhum código importado — tokens,
   cores e tipografia são os do próprio site.

   Este também passa a ser o padrão visual de TODO formulário do site: o
   cartão, o rótulo em condensada, o campo de borda suave e o foco âmbar
   valem no /contato, na ouvidoria, no banco de talentos e nos demais.
   ========================================================================= */

.c11{display:grid;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
@media(min-width:960px){
  .c11{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
  /* A coluna das mesas acompanha a rolagem do formulário: em formulário
     longo, perder de vista o telefone direto é o que faz a pessoa desistir
     de escrever e não ter para onde ir. */
  .c11-mesas{position:sticky;top:7rem}
}
.c11.is-so-form{grid-template-columns:minmax(0,1fr);max-width:46rem}

.c11-topo h2{margin-top:1rem}
.c11-topo p{margin-top:var(--b-tit-txt);max-width:34rem;color:var(--tinta-2);line-height:1.7}

/* ---- As mesas ---- */
.c11-lista{display:flex;flex-direction:column;gap:.75rem;margin-top:2.5rem;list-style:none;padding:0}

.c11-mesa{
  display:flex;gap:1.125rem;
  padding:1.375rem;
  border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;
  transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover);
}
.c11-mesa:hover{border-color:var(--hover-borda);background:var(--hover-fundo);transform:translateY(-2px)}

.c11-mesa-ico{
  flex-shrink:0;display:grid;place-items:center;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.c11-mesa-corpo{min-width:0;flex:1}
.c11-mesa-corpo strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;color:var(--azul-inst)}
.c11-mesa-corpo p{margin-top:.375rem;font-size:.9375rem;line-height:1.6;color:var(--tinta-2)}

.c11-canais{display:flex;flex-wrap:wrap;gap:.5rem .875rem;margin-top:.875rem;list-style:none;padding:0}
.c11-canais a{
  display:inline-flex;align-items:center;gap:.4375rem;
  font-size:.875rem;font-weight:600;color:var(--marca-600);
  transition:color var(--t-hover);
}
.c11-canais a:hover{color:var(--marca-700);text-decoration:underline;text-underline-offset:3px}
.c11-canais svg{flex-shrink:0;color:var(--marca-500)}

/* ---- O cartão do formulário ---- */
.c11-forma{
  padding:clamp(1.5rem,3.5vw,2.5rem);
  border:1px solid var(--linha);border-radius:var(--r-bloco);
  background:#fff;box-shadow:var(--s-card);
}
.c11-forma-topo h3{font-size:var(--t-h4);color:var(--azul-inst)}
.c11-forma-topo p{margin-top:.625rem;font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.c11-forma .form{margin-top:1.75rem}
/* Dentro do cartão o botão de envio ocupa a largura: é a única ação ali. */
.c11-forma .btn-acao:not(.btn){align-self:stretch;justify-content:center}

/* Sobre seção de tom claro o cartão ganha contorno um pouco mais firme,
   senão some no fundo. */
.secao.tom .c11-forma,.secao.tom .c11-mesa{border-color:var(--linha-forte)}
.secao.tom .c11-mesa{background:#fff}

/* =========================================================================
   FORMULÁRIOS — o padrão visual do Contact 11 aplicado a todos

   Mudou o rótulo (condensada, caixa alta, como os chapéus do site), a
   altura do campo (agora bate com a dos CTAs, via --cta-alt) e o anel de
   foco, que passou a ser âmbar — a mesma cor que marca interação em todo
   o resto da interface. Antes o foco era azul sobre borda azul: pouco
   visível justamente para quem navega por teclado.
   ========================================================================= */
.form{gap:1.125rem}
.campo label,.campo-aceite label{line-height:1.45}
.campo > label{
  font-family:var(--f-cond);font-weight:400;font-size:.8125rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-2);
}
.campo-dica{font-size:.8125rem;line-height:1.5;color:var(--tinta-3)}
.campo input,.campo select{min-height:var(--cta-alt)}
.campo input,.campo select,.campo textarea{
  border-color:var(--linha);background:var(--bruma-2);
  transition:border-color var(--t-hover),background var(--t-hover),box-shadow var(--t-hover);
}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:var(--linha-forte);background:#fff}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  border-color:var(--hover-borda);background:#fff;
  box-shadow:0 0 0 4px var(--hover-fundo);
}

/* Meia largura: dois campos curtos lado a lado, como no bloco de
   referência. Abaixo de 600px voltam a empilhar — dois campos de 10rem
   num celular não ajudam ninguém. */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.form > *{grid-column:1 / -1}
@media(min-width:600px){
  .form > .campo.is-metade{grid-column:span 1}
}

.campo-aceite{
  grid-column:1 / -1;padding:1rem 1.125rem;
  border:1px solid var(--linha);border-radius:var(--r-sm);
  background:var(--bruma-2);
}

@media(max-width:959px){
  .c11-forma{padding:1.5rem}
}

/* =========================================================================
   PLANOS DE ASSOCIAÇÃO  (/associe-se)

   Dois cartões lado a lado. O da empresa é o destacado — não por ser
   melhor, mas por ser o que responde à maioria de quem chega: o site é de
   um sindicato PATRONAL. O da pessoa física fica ao lado com o mesmo peso
   tipográfico, para não parecer plano de segunda.
   ========================================================================= */
.planos{display:grid;gap:var(--b-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}

.plano{
  position:relative;display:flex;flex-direction:column;
  padding:var(--b-pad);
  border:1px solid var(--linha);border-radius:var(--r-bloco);
  background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover),transform var(--t-hover);
}
.plano:hover{border-color:var(--hover-borda);box-shadow:var(--s-card);transform:translateY(-3px)}
.plano.is-destaque{border-color:var(--linha-forte);box-shadow:var(--s-card)}

.plano-selo{
  position:absolute;top:-.75rem;left:var(--b-pad);
  padding:.3125rem .75rem;border-radius:9999px;
  background:var(--acento);color:var(--marca-950);
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;
}

.plano-topo{display:flex;align-items:center;gap:.875rem}
.plano-ico{
  flex-shrink:0;display:grid;place-items:center;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.plano-topo h3{font-size:var(--t-h4);color:var(--azul-inst)}
.plano-topo small{display:block;margin-top:.125rem;font-size:.8125rem;color:var(--tinta-3)}

.plano-chamada{margin-top:var(--b-ico-tit);font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.45;color:var(--tinta)}
.plano-texto{margin-top:.75rem;font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}

.plano-valor{
  margin-top:var(--b-txt-cta);padding:1.25rem;
  border-radius:var(--r-card);background:var(--bruma-2);
}
.plano-valor strong{
  display:block;font-family:var(--f-tit);font-size:2rem;font-weight:700;
  line-height:1.1;color:var(--azul-inst);
}
.plano-valor strong span{font-size:1rem;font-weight:500;color:var(--tinta-3)}
/* Sem preço publicado o número não finge existir: vira rótulo. */
.plano-valor strong.is-sem-valor{font-size:1.25rem;font-weight:600}
.plano-valor p{margin-top:.5rem;font-size:.875rem;line-height:1.6;color:var(--tinta-2)}
.plano-valor .bloco-cta{margin-top:1rem}

.plano-inclui{margin-top:1.75rem}
.plano-inclui-rotulo{
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);
}
.plano-inclui ul{display:flex;flex-direction:column;gap:.625rem;margin-top:.875rem;list-style:none;padding:0}
.plano-inclui li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;line-height:1.55;color:var(--tinta-2)}
.plano-inclui svg{flex-shrink:0;margin-top:.25rem;color:var(--marca-500)}

.plano-quem{
  display:flex;align-items:flex-start;gap:.625rem;
  margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha);
  font-size:.875rem;line-height:1.6;color:var(--tinta-3);
}
.plano-quem svg{flex-shrink:0;margin-top:.1875rem;color:var(--marca-500)}
.plano-quem strong{color:var(--tinta-2)}

/* margin-top:auto é o que alinha os dois CTAs na mesma linha, mesmo com
   listas de tamanhos diferentes (item 9.7). */
.plano-cta{margin-top:auto;align-self:stretch;margin-block-start:1.75rem;justify-content:center}

/* =========================================================================
   CONTRIBUIÇÕES  (/contribuicoes)
   ========================================================================= */
.contrib-dados{display:flex;flex-direction:column;gap:.625rem;margin-top:1.25rem;padding-top:1.125rem;border-top:1px solid var(--linha)}
.contrib-dados div{display:flex;flex-wrap:wrap;gap:.375rem .625rem;align-items:baseline}
.contrib-dados dt{
  font-family:var(--f-cond);font-weight:300;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3);
}
.contrib-dados dd{margin:0;font-size:.9375rem;font-weight:600;color:var(--azul-inst)}

.tabela-faixas .is-num{width:3.5rem;font-family:var(--f-cond);color:var(--tinta-3)}
.tabela-faixas .is-valor{font-weight:700;color:var(--azul-inst);white-space:nowrap}
.tabela-faixas tbody tr{transition:background var(--t-hover)}
.tabela-faixas tbody tr:hover{background:var(--hover-fundo)}

.contrib-garante{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:center}
@media(min-width:880px){.contrib-garante{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.contrib-garante-texto h2{margin-top:1rem}
.contrib-garante-texto p{margin-top:var(--b-tit-txt);font-size:1.0625rem;line-height:1.75;color:var(--tinta-2)}
.contrib-garante-texto .btn{margin-top:var(--b-txt-cta)}

.contrib-lista{display:flex;flex-direction:column;gap:.75rem;list-style:none;padding:0;margin:0}
.contrib-lista li{
  display:flex;align-items:flex-start;gap:.875rem;
  padding:1.125rem 1.25rem;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  font-size:.9375rem;line-height:1.6;color:var(--tinta-2);
  transition:border-color var(--t-hover),background var(--t-hover);
}
.contrib-lista li:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.contrib-lista svg{flex-shrink:0;margin-top:.125rem;color:var(--marca-500)}

/* =========================================================================
   ESTRUTURAS DA SEDE  (/laboratorio-escola, /drogaria-escola)
   ========================================================================= */
.est-sobre{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(min-width:880px){.est-sobre{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}
.est-sobre-texto h2{margin-top:1rem}
.est-sobre-texto p{margin-top:var(--b-tit-txt);font-size:1.0625rem;line-height:1.8;color:var(--tinta-2);text-align:justify;hyphens:auto}

.est-selo{
  padding:var(--b-pad);border-radius:var(--r-bloco);
  background:linear-gradient(158deg,var(--marca-600) 0%,var(--azul-inst) 100%);
  color:#fff;
}
.est-selo-ico{
  display:grid;place-items:center;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:rgba(255,255,255,.12);color:var(--acento);
}
.est-selo p{margin-top:var(--b-ico-tit);font-family:var(--f-tit);font-size:1.125rem;font-weight:600;line-height:1.5;color:#fff}

.obra-lista{display:grid;gap:var(--b-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));list-style:none;padding:0;margin:0}
.obra-lista li{
  padding:1.5rem;border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),background var(--t-hover);
}
.obra-lista li:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.obra-lista strong{display:block;font-family:var(--f-tit);font-size:1rem;font-weight:600;color:var(--azul-inst);line-height:1.4}
.obra-lista span{display:block;margin-top:.625rem;font-size:.875rem;line-height:1.65;color:var(--tinta-2)}

.est-local{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(min-width:880px){.est-local{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.est-local-texto h2{margin-top:1rem}
.est-local-texto > p{margin-top:var(--b-tit-txt);color:var(--tinta-2);line-height:1.7}
.est-local-dados{display:flex;flex-direction:column;gap:1.125rem;margin-top:1.75rem}
.est-local-dados dt{
  display:flex;align-items:center;gap:.5rem;
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);
}
.est-local-dados dt svg{color:var(--marca-500)}
.est-local-dados dd{margin:.375rem 0 0;font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.est-local-texto .btn{margin-top:var(--b-txt-cta)}

.est-irma{
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-bloco);
  background:var(--bruma-2);
  transition:border-color var(--t-hover),background var(--t-hover);
}
.est-irma:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.est-irma-ico{
  display:grid;place-items:center;margin-top:1rem;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.est-irma h3{margin-top:var(--b-ico-tit);font-size:var(--t-h4);color:var(--azul-inst)}
.est-irma p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.est-irma .bloco-cta{margin-top:var(--b-txt-cta)}

/* =========================================================================
   BLOCOS DAS PÁGINAS INTERNAS — segunda leva

   Tudo aqui segue os mesmos tokens do resto: --b-pad para o respiro do
   card, --ico-chapa/--ico-raio para a chapa do ícone, --hover-borda e
   --hover-fundo para o estado de interação, --cta-alt para a altura dos
   controles. Nada de medida solta: o que não estiver num token é porque
   é específico deste bloco.
   ========================================================================= */

/* ---- Faixa de prova (cursos, imprensa) --------------------------------
   Quatro provas lado a lado logo abaixo do banner. Não é "estatística":
   cada item é verificável, e o que não era foi deixado de fora. */
.prova-faixa{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));
}
.prova-faixa li{
  padding:1.5rem;border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover),background var(--t-hover);
}
.prova-faixa li:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.prova-ico{
  display:grid;place-items:center;
  width:var(--ico-chapa-peq);height:var(--ico-chapa-peq);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.prova-faixa strong{display:block;margin-top:1rem;font-family:var(--f-tit);font-size:1.125rem;font-weight:700;color:var(--azul-inst);line-height:1.25}
.prova-faixa small{display:block;margin-top:.375rem;font-size:.875rem;line-height:1.5;color:var(--tinta-2)}

/* ---- Nota de pé dentro de um .bloco-colunas ---- */
.bloco-nota{
  display:block;margin-top:.75rem;
  font-family:var(--f-cond);font-weight:400;font-size:.8125rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3);
}

/* ---- Barra de alerta/destaque (NR-1, inscrições, cookies) -------------
   Ícone, texto e um CTA numa faixa só. Serve a qualquer aviso que precise
   abrir uma página sem virar banner piscante. */
.nr1-prazo{
  display:grid;gap:1.25rem;align-items:center;
  padding:clamp(1.25rem,3vw,1.75rem);
  border:1px solid var(--linha-forte);border-left:4px solid var(--acento);
  border-radius:var(--r-card);background:var(--bruma-2);
}
@media(min-width:860px){.nr1-prazo{grid-template-columns:auto minmax(0,1fr) auto}}
.nr1-prazo-ico{
  display:grid;place-items:center;flex-shrink:0;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.nr1-prazo h2{font-size:var(--t-h4);color:var(--azul-inst)}
.nr1-prazo p{margin-top:.5rem;font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.nr1-prazo p strong{color:var(--azul-inst)}
.nr1-prazo .btn{white-space:nowrap}

/* Números dentro do painel azul da NR-1. */
.nr1-numeros{display:flex;flex-direction:column;gap:1.125rem;margin-top:1.5rem;padding:0;list-style:none}
.nr1-numeros li{padding-top:1.125rem;border-top:1px solid rgba(255,255,255,.18)}
.nr1-numeros strong{display:block;font-family:var(--f-tit);font-size:1.5rem;font-weight:700;color:var(--acento);line-height:1.1}
.nr1-numeros span{display:block;margin-top:.375rem;font-size:.8125rem;line-height:1.55;color:rgba(255,255,255,.82)}

.nr1-avisos{
  padding:var(--b-pad);border:1px solid var(--linha-forte);
  border-radius:var(--r-bloco);background:#fff;
}
.nr1-avisos h2{display:flex;align-items:center;gap:.625rem;font-size:var(--t-h4);color:var(--azul-inst)}
.nr1-avisos h2 svg{color:var(--acento)}
.nr1-avisos ul{display:flex;flex-direction:column;gap:.875rem;margin-top:1.25rem;padding-left:1.25rem}
.nr1-avisos li{font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.nr1-avisos li::marker{color:var(--acento)}

/* ---- Central de Denúncias ---- */
.den-grade{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));
}
.den-grade li{
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover);
}
.den-grade li:hover{border-color:var(--hover-borda);background:var(--hover-fundo);transform:translateY(-2px)}
.den-ico{
  display:grid;place-items:center;
  width:var(--ico-chapa-peq);height:var(--ico-chapa-peq);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.den-grade strong{display:block;margin-top:var(--b-ico-tit);font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;color:var(--azul-inst);line-height:1.35}
.den-grade p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}

.den-desvio{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(min-width:880px){.den-desvio{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
.den-desvio-texto h2{margin-top:1rem}
.den-desvio-texto p{margin-top:var(--b-tit-txt);font-size:1.0625rem;line-height:1.75;color:var(--tinta-2)}

.den-desvio-lista{display:flex;flex-direction:column;gap:.75rem;list-style:none;padding:0;margin:0}
.den-desvio-lista li{
  display:flex;gap:.875rem;align-items:flex-start;
  padding:1.125rem 1.25rem;border:1px solid var(--linha);
  border-radius:var(--r-card);background:var(--bruma-2);
}
.den-desvio-x{
  flex-shrink:0;display:grid;place-items:center;
  width:1.625rem;height:1.625rem;border-radius:50%;
  background:rgba(180,35,24,.1);color:#B42318;
}
.den-desvio-lista strong{display:block;font-size:.9375rem;font-weight:600;line-height:1.5;color:var(--tinta)}
.den-desvio-lista a{
  display:inline-flex;align-items:center;gap:.375rem;margin-top:.5rem;
  font-size:.875rem;font-weight:600;color:var(--marca-600);
}
.den-desvio-lista a:hover{text-decoration:underline;text-underline-offset:3px}
.den-desvio-nota{display:block;margin-top:.5rem;font-size:.875rem;color:var(--tinta-3)}

/* ---- Departamentos e atalhos do associado ---- */
.dep-grade{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));
}
.dep{
  display:flex;flex-direction:column;
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover);
}
.dep:hover{border-color:var(--hover-borda);background:var(--hover-fundo);transform:translateY(-2px)}
.dep-ico{
  display:grid;place-items:center;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.dep h3{margin-top:var(--b-ico-tit);font-size:1.0625rem;color:var(--azul-inst);line-height:1.35}
.dep > p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}

.dep-exemplos{display:flex;flex-wrap:wrap;gap:.4375rem;margin-top:1.125rem;padding:0;list-style:none}
.dep-exemplos li{
  padding:.3125rem .6875rem;border-radius:9999px;
  background:var(--vidro);font-size:.8125rem;line-height:1.4;color:var(--tinta-2);
}
/* margin-top:auto alinha os CTAs de cartões de alturas diferentes. */
.dep-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:auto;padding-top:var(--b-txt-cta)}
.dep-escrever{
  display:inline-flex;align-items:center;gap:.375rem;
  font-size:.875rem;font-weight:600;color:var(--tinta-3);
  transition:color var(--t-hover);
}
.dep-escrever:hover{color:var(--marca-600)}

/* ---- Perguntas frequentes (página completa) ---------------------------
   Classe própria (.faqp-) porque .faq-item já é o acordeão <dt>/<dd> da
   home. Aqui é <details>, e misturar os dois produziria um herdando a
   borda e o padding do outro. */
.faqp-indice{display:flex;flex-wrap:wrap;gap:.625rem;list-style:none;padding:0;margin:0}
.faqp-indice a{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:var(--cta-alt);padding:0 1.125rem;
  border:1px solid var(--linha);border-radius:var(--cta-raio);
  background:#fff;font-size:.875rem;font-weight:600;color:var(--tinta-2);
  transition:border-color var(--t-hover),background var(--t-hover),color var(--t-hover);
}
.faqp-indice a:hover{border-color:var(--hover-borda);background:var(--hover-fundo);color:var(--azul-inst)}
.faqp-indice svg{color:var(--marca-500)}
.faqp-indice small{
  padding:.125rem .4375rem;border-radius:9999px;
  background:var(--vidro);font-size:.75rem;color:var(--tinta-3);
}

.faqp-lista{display:flex;flex-direction:column;gap:.75rem}
.faqp-item{
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.faqp-item:hover{border-color:var(--hover-borda)}
.faqp-item[open]{border-color:var(--linha-forte);box-shadow:var(--s-card)}
.faqp-item summary{
  display:flex;align-items:center;gap:1rem;
  padding:1.25rem 1.375rem;cursor:pointer;list-style:none;
}
.faqp-item summary::-webkit-details-marker{display:none}
.faqp-item summary:focus-visible{outline:2px solid var(--acento);outline-offset:-2px}
.faqp-item summary span{flex:1;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.4;color:var(--azul-inst)}
.faqp-item summary svg{flex-shrink:0;color:var(--tinta-3);transition:transform var(--t-hover),color var(--t-hover)}
.faqp-item[open] summary svg{transform:rotate(180deg);color:var(--marca-600)}

.faqp-resposta{padding:0 1.375rem 1.375rem;border-top:1px solid var(--linha);padding-top:1.125rem}
.faqp-resposta p{font-size:.9375rem;line-height:1.75;color:var(--tinta-2)}
.faqp-resposta .bloco-cta{margin-top:1.125rem}
.faqp-ressalva{
  display:flex;align-items:flex-start;gap:.5rem;
  margin-top:.875rem;padding:.75rem .875rem;
  border-radius:var(--r-sm);background:var(--hover-fundo);
  font-size:.8125rem;line-height:1.55;color:var(--tinta-2);
}
.faqp-ressalva svg{flex-shrink:0;margin-top:.125rem;color:var(--laranja)}

/* ---- Busca do site ---- */
.busca-h1{font-size:var(--t-h2);color:var(--azul-inst)}
.busca-form{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;max-width:44rem}
.busca-form-campo{
  flex:1;min-width:min(100%,16rem);
  display:flex;align-items:center;gap:.75rem;padding:0 1.125rem;
  min-height:var(--cta-alt);
  border:1px solid var(--linha-forte);border-radius:var(--cta-raio);background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.busca-form-campo:focus-within{border-color:var(--hover-borda);box-shadow:0 0 0 4px var(--hover-fundo)}
.busca-form-campo svg{flex-shrink:0;color:var(--marca-600)}
.busca-form-campo input{flex:1;min-width:0;border:0;background:transparent;font:500 1rem var(--f-corpo);color:var(--tinta)}
.busca-form-campo input:focus{outline:none}

.busca-vazia{margin-top:2.5rem;max-width:46rem}
.busca-vazia > p{font-size:1.0625rem;line-height:1.75;color:var(--tinta-2)}
.busca-vazia-acoes{display:flex;flex-wrap:wrap;align-items:stretch;gap:.875rem;margin-top:1.75rem}
.busca-vazia-acoes .btn{margin-top:0}
.busca-atalhos{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.25rem;padding:0;list-style:none}
.busca-atalhos a{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:var(--cta-alt);padding:0 1.125rem;
  border:1px solid var(--linha);border-radius:var(--cta-raio);background:#fff;
  font-size:.875rem;font-weight:600;color:var(--tinta-2);
  transition:border-color var(--t-hover),background var(--t-hover),color var(--t-hover);
}
.busca-atalhos a:hover{border-color:var(--hover-borda);background:var(--hover-fundo);color:var(--azul-inst)}
.busca-atalhos svg{color:var(--marca-500)}

.busca-tipos{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;padding-bottom:1.25rem;border-bottom:1px solid var(--linha)}
.busca-tipos a{
  display:inline-flex;align-items:center;gap:.4375rem;
  padding:.4375rem .875rem;border-radius:9999px;
  border:1px solid transparent;background:var(--bruma-2);
  font-size:.875rem;font-weight:600;color:var(--tinta-2);
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover);
}
.busca-tipos a:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.busca-tipos a.is-ativo{background:var(--azul-inst);border-color:var(--azul-inst);color:#fff}
.busca-tipos small{font-size:.75rem;opacity:.75}

.busca-resultados{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem;padding:0;list-style:none}
.busca-res a{
  display:block;padding:1.125rem 1.25rem;
  border:1px solid transparent;border-radius:var(--r-card);
  transition:border-color var(--t-hover),background var(--t-hover);
}
.busca-res a:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.busca-res-tipo{
  display:inline-block;margin-bottom:.4375rem;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--marca-500);
}
.busca-res strong{display:block;font-family:var(--f-tit);font-size:1.0625rem;font-weight:600;line-height:1.4;color:var(--azul-inst)}
.busca-res small{display:block;margin-top:.375rem;font-size:.9375rem;line-height:1.6;color:var(--tinta-2)}
.busca-res time{display:inline-block;margin-top:.5rem;font-size:.8125rem;color:var(--tinta-3)}
.busca-res-fora{
  display:inline-flex;align-items:center;gap:.3125rem;margin-top:.5rem;margin-left:.75rem;
  font-size:.8125rem;color:var(--tinta-3);
}

/* ---- Oportunidades: a bifurcação --------------------------------------
   Dois públicos opostos, dois blocos declarados. O da empresa recebe o
   fundo tingido para que a pessoa reconheça "o meu lado" à distância, sem
   precisar ler os dois. */
.opo-bifurca{display:grid;gap:var(--b-gap)}
@media(min-width:900px){.opo-bifurca{grid-template-columns:repeat(2,minmax(0,1fr))}}
.opo-lado{
  display:flex;flex-direction:column;
  padding:clamp(1.5rem,3.5vw,2.5rem);
  border:1px solid var(--linha);border-radius:var(--r-bloco);background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.opo-lado:hover{border-color:var(--hover-borda);box-shadow:var(--s-card)}
.opo-lado.is-empresa{background:var(--bruma-2);border-color:var(--linha-forte)}
.opo-lado-ico{
  display:grid;place-items:center;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.opo-lado .chapeu{display:block;margin-top:var(--b-ico-tit)}
.opo-lado h3{margin-top:.75rem;font-size:var(--t-h3);color:var(--azul-inst);line-height:1.2}
.opo-lado > p{margin-top:var(--b-tit-txt);font-size:1rem;line-height:1.75;color:var(--tinta-2)}
.opo-lado-lista{display:flex;flex-direction:column;gap:.625rem;margin-top:1.5rem;padding:0;list-style:none}
.opo-lado-lista li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;line-height:1.55;color:var(--tinta-2)}
.opo-lado-lista svg{flex-shrink:0;margin-top:.25rem;color:var(--marca-500)}
.opo-lado-acoes{display:flex;flex-wrap:wrap;align-items:stretch;gap:.875rem;margin-top:auto;padding-top:var(--b-txt-cta)}
.opo-lado-acoes .btn{margin-top:0}

/* ---- Vagas, classificados e catálogo: filtros + grade ---- */
.vagas-filtros{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1.25rem;margin-bottom:2rem;
}
.vagas-pilulas{display:flex;flex-wrap:wrap;gap:.5rem}
.vagas-pilulas a{
  display:inline-flex;align-items:center;gap:.4375rem;
  padding:.4375rem .875rem;border-radius:9999px;
  border:1px solid transparent;background:var(--bruma-2);
  font-size:.875rem;font-weight:600;color:var(--tinta-2);
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover);
}
.vagas-pilulas a:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.vagas-pilulas a.is-ativo{background:var(--azul-inst);border-color:var(--azul-inst);color:#fff}
.vagas-pilulas small{font-size:.75rem;opacity:.75}

.vagas-busca{display:flex;gap:.5rem}
.vagas-busca-campo{
  display:flex;align-items:center;gap:.5rem;padding:0 .875rem;
  min-height:var(--cta-alt);min-width:min(100%,14rem);
  border:1px solid var(--linha);border-radius:var(--cta-raio);background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.vagas-busca-campo:focus-within{border-color:var(--hover-borda);box-shadow:0 0 0 4px var(--hover-fundo)}
.vagas-busca-campo svg{flex-shrink:0;color:var(--marca-500)}
.vagas-busca-campo input{flex:1;min-width:0;border:0;background:transparent;font:500 .9375rem var(--f-corpo);color:var(--tinta)}
.vagas-busca-campo input:focus{outline:none}
.vagas-busca button{
  min-height:var(--cta-alt);padding:0 1.125rem;border:0;cursor:pointer;
  border-radius:var(--cta-raio);background:var(--marca-600);color:#fff;
  font:var(--cta-peso) var(--cta-fonte) var(--f-corpo);
  transition:background var(--t-hover);
}
.vagas-busca button:hover{background:var(--marca-700)}

.vagas-grade{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));
}
.vaga{
  display:flex;flex-direction:column;
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover);
}
.vaga:hover{border-color:var(--hover-borda);background:var(--hover-fundo);transform:translateY(-2px)}
.vaga-tipo{
  align-self:flex-start;padding:.25rem .625rem;border-radius:9999px;
  background:var(--vidro);
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--marca-600);
}
.vaga h3{margin-top:1rem;font-size:1.0625rem;color:var(--azul-inst);line-height:1.35}
.vaga > p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.vaga-dados{display:flex;flex-direction:column;gap:.75rem;margin-top:1.125rem}
.vaga-dados dt{
  display:flex;align-items:center;gap:.375rem;
  font-family:var(--f-cond);font-weight:300;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3);
}
.vaga-dados dt svg{color:var(--marca-500)}
.vaga-dados dd{margin:.25rem 0 0;font-size:.9375rem;line-height:1.5;color:var(--tinta-2)}
.vaga .bloco-cta{margin-top:auto;padding-top:var(--b-txt-cta)}

/* ---- Quadro vazio (classificados, posicionamentos) --------------------
   Vazio dito com todas as letras e com uma saída. É o oposto de encher a
   tela com anúncio inventado. */
.quadro-vazio{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:clamp(2rem,5vw,3.5rem);
  border:1px dashed var(--linha-forte);border-radius:var(--r-bloco);
  background:var(--bruma-2);
}
.quadro-vazio-ico{
  display:grid;place-items:center;width:4rem;height:4rem;
  border-radius:var(--r-card);background:var(--vidro);color:var(--marca-500);
}
.quadro-vazio h3{margin-top:1.5rem;font-size:var(--t-h4);color:var(--azul-inst)}
.quadro-vazio p{margin-top:.875rem;max-width:44rem;font-size:1rem;line-height:1.75;color:var(--tinta-2)}
.quadro-vazio .btn{margin-top:var(--b-txt-cta)}
.quadro-vazio .busca-vazia-acoes{justify-content:center}

/* ---- Página de um curso ---- */
.curso-topo{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(min-width:900px){.curso-topo{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.curso-texto h2{margin-top:1rem}
.curso-resumo{margin-top:var(--b-tit-txt);font-family:var(--f-tit);font-size:1.1875rem;font-weight:600;line-height:1.55;color:var(--tinta)}
.curso-texto p{margin-top:1.125rem;font-size:1.0625rem;line-height:1.8;color:var(--tinta-2)}
.curso-destaque-nota{
  display:flex;align-items:center;gap:.5rem;
  margin-top:1.5rem;padding:.75rem 1rem;
  border-radius:var(--r-sm);background:var(--hover-fundo);
  font-size:.9375rem;font-weight:600;color:var(--tinta);
}
.curso-destaque-nota svg{color:var(--acento)}

.curso-ficha{
  padding:var(--b-pad);border:1px solid var(--linha-forte);
  border-radius:var(--r-bloco);background:var(--bruma-2);
}
.curso-ficha h3{font-size:var(--t-h4);color:var(--azul-inst)}
.curso-ficha dl{display:flex;flex-direction:column;gap:1.125rem;margin-top:1.5rem}
.curso-ficha dt{
  display:flex;align-items:center;gap:.5rem;
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);
}
.curso-ficha dt svg{color:var(--marca-500)}
.curso-ficha dd{margin:.375rem 0 0;font-size:.9375rem;line-height:1.55;color:var(--tinta-2)}
.curso-ficha-nota{
  margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha);
  font-size:.8125rem;line-height:1.6;color:var(--tinta-3);
}
.curso-ficha .btn{display:flex;width:100%;margin-top:1rem}

/* Rodapé do cartão de curso: a trilha, em miúdo. */
.curso-cartao-pe{
  display:inline-flex;align-items:center;gap:.375rem;margin-top:.875rem;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3);
}
.curso-cartao-pe svg{color:var(--marca-500)}

/* ---- Depoimentos ---- */
.depo-grade{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));
}
.depo-grade.is-mosaico{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr))}
.depo{
  display:flex;flex-direction:column;
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.depo:hover{border-color:var(--hover-borda);box-shadow:var(--s-card)}
.depo-aspas{display:block;color:var(--acento);opacity:.9}
.depo-aspas svg{fill:currentColor;stroke:none}
.depo blockquote{margin:0}
.depo blockquote p{margin-top:1rem;font-size:1rem;line-height:1.75;color:var(--tinta-2)}
.depo footer{display:flex;align-items:center;gap:.875rem;margin-top:auto;padding-top:1.5rem}
.depo-iniciais{
  flex-shrink:0;display:grid;place-items:center;width:2.75rem;height:2.75rem;
  border-radius:50%;
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:#fff;font-family:var(--f-tit);font-weight:700;font-size:.9375rem;
}
.depo footer strong{display:block;font-size:.9375rem;font-weight:600;color:var(--azul-inst);line-height:1.3}
.depo footer small{display:block;margin-top:.1875rem;font-size:.8125rem;line-height:1.4;color:var(--tinta-3)}

/* ---- Redes sociais oficiais ---- */
.redes-grade{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));
}
.rede{
  display:flex;flex-direction:column;
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover);
}
.rede:hover{border-color:var(--hover-borda);background:var(--hover-fundo);transform:translateY(-2px)}
.rede-ico{
  display:grid;place-items:center;
  width:var(--ico-chapa);height:var(--ico-chapa);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.rede h3{margin-top:var(--b-ico-tit);font-size:1.0625rem;color:var(--azul-inst)}
.rede p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}
.rede-selo{
  display:inline-flex;align-items:center;gap:.3125rem;align-self:flex-start;
  margin-top:1.125rem;padding:.25rem .625rem;border-radius:9999px;
  background:#E8F5EE;color:#0F5B35;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;
}
.rede .bloco-cta{margin-top:auto;padding-top:var(--b-txt-cta)}

.redes-ressalva{
  margin-top:2rem;padding:var(--b-pad);
  border:1px solid var(--linha-forte);border-left:4px solid var(--laranja);
  border-radius:var(--r-card);background:var(--bruma-2);
}
.redes-ressalva h3{display:flex;align-items:center;gap:.5rem;font-size:1.0625rem;color:var(--azul-inst)}
.redes-ressalva h3 svg{color:var(--laranja)}
.redes-ressalva p{margin-top:.75rem;font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}
.redes-ressalva ul{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding:0;list-style:none}
.redes-ressalva a{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:600;color:var(--marca-600)}
.redes-ressalva a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---- Cookies e LGPD: lista de categorias ---- */
.cookie-lista{display:flex;flex-direction:column;gap:.875rem;padding:0;margin:0;list-style:none}
.cookie{
  padding:var(--b-pad);border:1px solid var(--linha);border-radius:var(--r-card);
  background:#fff;transition:border-color var(--t-hover)}
.cookie:hover{border-color:var(--hover-borda)}
.cookie-topo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}
.cookie-topo h3{display:flex;align-items:center;gap:.5rem;font-size:1.0625rem;color:var(--azul-inst);line-height:1.35}
.cookie-topo h3 svg{color:var(--marca-500)}
.cookie-tipo{
  padding:.25rem .625rem;border-radius:9999px;background:var(--vidro);
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--marca-600);
}
.cookie-tipo.is-necessario{background:#E8F5EE;color:#0F5B35}
.cookie-tipo.is-terceiro{background:rgba(241,144,0,.12);color:#8A5200}
.cookie > p{margin-top:var(--b-tit-txt);font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}
.cookie-dados{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.125rem;padding-top:1.125rem;border-top:1px solid var(--linha)}
.cookie-dados.is-coluna{flex-direction:column;gap:1rem}
.cookie-dados dt{
  font-family:var(--f-cond);font-weight:300;font-size:.75rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3);
}
.cookie-dados dd{margin:.25rem 0 0;font-size:.9375rem;line-height:1.65;color:var(--tinta-2)}

/* Dados dentro do painel azul (política de privacidade). */
.selo-dados{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}
.selo-dados dt{
  font-family:var(--f-cond);font-weight:300;font-size:.75rem;
  letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);
}
.selo-dados dd{margin:.25rem 0 0;font-size:.9375rem;color:#fff}
.selo-dados a{color:var(--acento)}
.selo-dados a:hover{text-decoration:underline;text-underline-offset:3px}

.canal-nota{margin-top:1rem;font-size:.8125rem;line-height:1.6;color:rgba(255,255,255,.78)}
.est-selo .btn{margin-top:1.5rem}

/* ---- Contato: sede + mapa ---- */
.contato-sede-grade{display:grid;gap:clamp(2rem,4vw,3rem);align-items:start}
@media(min-width:880px){.contato-sede-grade{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}
.contato-sede h2{margin-top:1rem}
.contato-sede address{margin-top:var(--b-tit-txt);font-style:normal}
.contato-sede address p{font-size:.9375rem;line-height:1.75;color:var(--tinta-2)}
.contato-sede address strong{display:block;color:var(--azul-inst)}
.contato-ref{margin-top:.75rem;font-size:.875rem;color:var(--tinta-3)}
.contato-mapa{overflow:hidden;border-radius:var(--r-bloco);border:1px solid var(--linha)}
.contato-mapa iframe{display:block;width:100%;height:clamp(16rem,38vw,24rem);border:0}

/* ---- Caixa de opção dentro de formulário (denúncia anônima) ---- */
.campo-opcao label small{display:block;margin-top:.25rem;font-size:.8125rem;line-height:1.5;color:var(--tinta-3)}
/* Campo que deixou de ser obrigatório recua visualmente, sem sumir. */
.campo.is-solto > label{color:var(--tinta-3)}
.campo.is-solto input{background:var(--bruma-2);border-style:dashed}

/* ---- Aviso de atenção dentro de formulário ---- */
.aviso-atencao{background:var(--hover-fundo);border:1px solid var(--hover-borda);color:var(--tinta)}
.aviso-atencao svg{color:var(--laranja)}

@media(max-width:719px){
  .vagas-filtros{flex-direction:column;align-items:stretch}
  .vagas-busca{width:100%}
  .nr1-prazo .btn{width:100%}
}

/* =========================================================================
   PÁGINAS DE FORMULÁRIO NO MESMO PADRÃO DO CONTACT 11

   .form-grid é o arranjo de seis páginas — Solicitação de Serviços,
   Ouvidoria, Banco de Talentos, Trabalhe Conosco, Anunciar Vaga, Seja
   Parceiro e Contato para Imprensa. Ele existia na marcação desde o
   começo e NÃO TINHA UMA LINHA DE CSS: as páginas caíam numa pilha sem
   colunas, sem cartão e sem hierarquia, enquanto as novas usavam o bloco
   Contact 11.

   Em vez de reescrever sete páginas, o arranjo recebe aqui o mesmo
   tratamento do bloco: formulário em cartão elevado, coluna de canais ao
   lado e a mesma chapa de ícone. Marcação intacta, resultado idêntico.

   A ORDEM É INVERTIDA em relação ao Contact 11 (formulário à esquerda,
   canais à direita) e isso é de propósito: nestas páginas a pessoa já
   decidiu o que quer — ela clicou em "abrir solicitação" —, então o
   formulário vem primeiro na leitura. No /contato, onde ela ainda está
   escolhendo o canal, as mesas é que vêm primeiro.
   ========================================================================= */
.form-grid{display:grid;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
@media(min-width:960px){
  .form-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
  .form-apoio{position:sticky;top:7rem}
}

/* A coluna do formulário vira o mesmo cartão do Contact 11. */
.form-grid > .rev:first-child{
  padding:clamp(1.5rem,3.5vw,2.5rem);
  border:1px solid var(--linha);border-radius:var(--r-bloco);
  background:#fff;box-shadow:var(--s-card);
}
.form-grid > .rev:first-child h2{margin-top:1rem;font-size:var(--t-h3)}
.form-grid .form{margin-top:1.75rem}
.form-grid .btn-acao:not(.btn){align-self:stretch;justify-content:center}

/* ---- Coluna de apoio: os canais diretos ---- */
.form-apoio h2{font-size:var(--t-h4);color:var(--azul-inst)}
.form-canais{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;padding:0;list-style:none}
.form-canais a{
  display:flex;align-items:center;gap:1rem;
  padding:1.125rem 1.25rem;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover);
}
.form-canais a:hover{border-color:var(--hover-borda);background:var(--hover-fundo);transform:translateY(-2px)}
.form-canais .selo{
  flex-shrink:0;display:grid;place-items:center;
  width:var(--ico-chapa-peq);height:var(--ico-chapa-peq);
  border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  color:var(--acento);
}
.form-canais strong{display:block;font-size:.9375rem;font-weight:600;color:var(--azul-inst);line-height:1.3}
.form-canais small{display:block;margin-top:.1875rem;font-size:.8125rem;line-height:1.4;color:var(--tinta-3)}
.form-nota{
  margin-top:1.5rem;padding:1rem 1.125rem;
  border-radius:var(--r-sm);background:var(--bruma-2);
  font-size:.875rem;line-height:1.65;color:var(--tinta-2);
}


@media(max-width:959px){
  .form-grid > .rev:first-child{padding:1.5rem}
}

/* A única mudança na Ouvidoria: o cartão do formulário passa a ser o
   mesmo do Contact 11 (branco e elevado, em vez de azul-claro chapado),
   para o site inteiro ter um formulário só. O resto da página — a linha
   do tempo das etapas, o bloco de sigilo — já estava construído e fica
   como está. */
.ouv-form-caixa{background:#fff;box-shadow:var(--s-card)}
.ouv-form-caixa .btn-acao:not(.btn){align-self:stretch;justify-content:center}

/* =========================================================================
   VITRINE DE CURSOS  (/cursos)

   BANNER no formato da referência aprovada: faixa larga com FOTO e texto
   sobre degradê, faixa estreita com PAINEL CHEIO de cor, separadas por um
   fio vertical. A cor do painel é o âmbar da identidade — é a cor de ação
   do site, e aqui ela carrega a próxima turma, que é a ação.

   VITRINE no arranjo da referência de e-commerce de cursos: abas de
   trilha, cartão com capa, etiqueta de turma e pé dizendo onde é a
   prática. Nada importado: tokens, cores e tipografia são os do site.
   ========================================================================= */

.vitrine-topo{padding-block:clamp(1.25rem,3vw,2rem) 0}
.vt-grade{
  display:grid;gap:0;
  border-radius:var(--r-bloco);overflow:hidden;
  box-shadow:var(--s-elev);
}
@media(min-width:1024px){
  /* 2/3 + 1/3, como na referência. */
  .vt-grade{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
}

/* ---- Faixa larga: a foto ---- */
.vt-foto{
  position:relative;isolation:isolate;
  display:flex;align-items:center;
  min-height:clamp(22rem,42vw,30rem);
  background:var(--marca-900);
}
.vt-foto img{
  position:absolute;inset:0;z-index:-2;
  width:100%;height:100%;object-fit:cover;object-position:center 38%;
}
/* Degradê só do lado esquerdo: a foto continua visível à direita, onde
   não há texto. É o gesto exato da referência. */
.vt-foto-veu{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(
    100deg,
    rgba(3,18,35,.94) 0%,
    rgba(3,18,35,.86) 34%,
    rgba(3,18,35,.45) 62%,
    rgba(3,18,35,.12) 100%
  );
}
.vt-foto-corpo{
  padding:clamp(1.75rem,4vw,3.5rem);
  max-width:34rem;
}
.vt-foto-corpo h1{
  font-family:var(--f-tit);font-size:clamp(1.75rem,1.1rem + 2.1vw,3rem);
  font-weight:800;line-height:1.1;letter-spacing:-.02em;color:#fff;
}
/* A palavra destacada assume o âmbar — mesmo gesto dos títulos do site. */
.vt-foto-corpo h1 span{color:var(--acento)}
.vt-foto-corpo > p{
  margin-top:1.125rem;max-width:30rem;
  font-size:1.0625rem;line-height:1.7;color:rgba(255,255,255,.88);
}

.vt-acoes{display:flex;flex-wrap:wrap;align-items:stretch;gap:.875rem;margin-top:1.75rem}
.vt-acoes .btn{margin-top:0}
.vt-acoes .btn-acao{background:#fff;color:var(--marca-700);border:1px solid transparent}
.vt-acoes .btn-acao:hover{background:var(--acento);color:var(--marca-950)}
.vt-acoes .btn-contorno{border:1px solid rgba(255,255,255,.45);color:#fff;background:transparent}
.vt-acoes .btn-contorno:hover{background:rgba(255,255,255,.14);border-color:var(--acento)}

/* Os dois selos miúdos do pé, como na referência. */
.vt-selos{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;margin-top:2rem;padding:0;list-style:none}
.vt-selos li{display:flex;align-items:flex-start;gap:.5rem;max-width:15rem}
.vt-selos svg{flex-shrink:0;margin-top:.125rem;color:var(--acento)}
.vt-selos strong{display:block;font-size:.875rem;font-weight:700;color:#fff;line-height:1.3}
.vt-selos span{font-size:.8125rem;line-height:1.45;color:rgba(255,255,255,.72)}

/* ---- Faixa estreita: o painel âmbar ----
   O fio vertical da referência é a borda esquerda. Em telas estreitas ele
   vira horizontal, no topo, porque o painel passa a ficar embaixo. */
.vt-painel{
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(1.75rem,3.5vw,2.75rem);
  background:var(--acento);color:var(--marca-950);
  border-top:5px solid var(--azul-inst);
}
@media(min-width:1024px){
  .vt-painel{border-top:0;border-left:5px solid var(--azul-inst)}
}
.vt-painel-chapeu{
  display:inline-flex;align-items:center;gap:.4375rem;align-self:flex-start;
  font-family:var(--f-cond);font-weight:400;font-size:.8125rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--marca-800);
}
.vt-painel h2{
  margin-top:.875rem;
  font-family:var(--f-tit);font-size:clamp(1.375rem,1rem + 1.1vw,1.875rem);
  font-weight:800;line-height:1.15;letter-spacing:-.015em;color:var(--marca-950);
}
.vt-painel-texto{margin-top:.875rem;font-size:.9375rem;line-height:1.65;color:var(--marca-800)}
.vt-painel-dados{display:flex;flex-direction:column;gap:.875rem;margin-top:1.375rem}
.vt-painel-dados dt{
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--marca-700);
}
.vt-painel-dados dd{margin:.1875rem 0 0;font-size:.9375rem;font-weight:600;line-height:1.45;color:var(--marca-950)}

.vt-painel-acoes{display:flex;flex-wrap:wrap;align-items:stretch;gap:.75rem;margin-top:1.75rem}
.vt-painel-acoes .btn{margin-top:0}
/* Sobre âmbar, o CTA cheio é ESCURO: branco sobre amarelo não tem
   contraste suficiente para texto de botão. */
.btn-escuro{background:var(--azul-inst);color:#fff;border:1px solid transparent}
.btn-escuro:hover{background:var(--marca-950)}
.btn-vazado{background:transparent;color:var(--marca-950);border:1px solid rgba(3,18,35,.35)}
.btn-vazado:hover{background:rgba(3,18,35,.08);border-color:var(--marca-950)}

/* =========================================================================
   RÉGUA DE TURMAS

   Rola na horizontal como os carrosséis da referência, mas sem
   JavaScript: é overflow-x com scroll-snap. O teclado alcança cada cartão
   pelo Tab, e o container recebe tabindex="0" porque área rolável precisa
   ser focável para quem navega só por teclado.
   ========================================================================= */
.regua{
  display:flex;gap:var(--b-gap);
  margin:0;padding:.25rem .25rem 1.25rem;list-style:none;
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
}
.regua:focus-visible{outline:2px solid var(--acento);outline-offset:4px;border-radius:var(--r-card)}
.turma{flex:0 0 min(100%,22rem);scroll-snap-align:start}
.turma > a{
  display:flex;gap:1.125rem;height:100%;
  padding:1.25rem;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),background var(--t-hover),transform var(--t-hover),box-shadow var(--t-hover);
}
.turma > a:hover{
  border-color:var(--hover-borda);background:var(--hover-fundo);
  transform:translateY(-3px);box-shadow:var(--s-card);
}

/* O bloco de data, em folhinha. */
.turma-data{
  flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:3.5rem;height:3.5rem;border-radius:var(--ico-raio);
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));color:#fff;
}
.turma-data strong{font-family:var(--f-tit);font-size:1.25rem;font-weight:700;line-height:1}
.turma-data small{
  margin-top:.125rem;font-family:var(--f-cond);font-weight:400;font-size:.6875rem;
  letter-spacing:.1em;color:var(--acento);
}

.turma-corpo{display:flex;flex-direction:column;min-width:0;flex:1}
.turma-corpo > strong{
  font-family:var(--f-tit);font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--azul-inst);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.turma-meta{display:flex;flex-direction:column;gap:.3125rem;margin-top:.625rem}
.turma-meta span{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--tinta-3)}
.turma-meta svg{flex-shrink:0;color:var(--marca-500)}

.turma-rodape{display:flex;flex-wrap:wrap;align-items:center;gap:.4375rem;margin-top:auto;padding-top:.875rem}
.turma-selo{
  padding:.1875rem .5rem;border-radius:9999px;
  font-family:var(--f-cond);font-weight:400;font-size:.6875rem;
  letter-spacing:.1em;text-transform:uppercase;
}
.turma-selo.is-gratis{background:#E8F5EE;color:#0F5B35}
.turma-selo.is-perto{background:var(--acento);color:var(--marca-950)}
.turma-capacidade{font-size:.75rem;color:var(--tinta-3)}

.regua-nota{
  display:flex;align-items:flex-start;gap:.625rem;
  margin-top:1rem;max-width:52rem;
  font-size:.875rem;line-height:1.65;color:var(--tinta-3);
}
.regua-nota svg{flex-shrink:0;margin-top:.1875rem;color:var(--marca-500)}
.regua-nota a{color:var(--marca-600);font-weight:600}
.regua-nota a:hover{text-decoration:underline;text-underline-offset:3px}

/* =========================================================================
   OS CARTÕES DA VITRINE
   ========================================================================= */
.vitrine{
  display:grid;gap:var(--b-gap);list-style:none;padding:0;margin:0;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));
}
.vcard > a{
  display:flex;flex-direction:column;height:100%;overflow:hidden;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),transform var(--t-hover),box-shadow var(--t-hover);
}
.vcard > a:hover{border-color:var(--hover-borda);transform:translateY(-3px);box-shadow:var(--s-card)}

.vcard-capa{
  position:relative;display:block;aspect-ratio:16/10;overflow:hidden;
  background:var(--vidro);
}
.vcard-capa img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.vcard > a:hover .vcard-capa img{transform:scale(1.04)}
/* Sem capa, o gradiente da identidade assume - nada de caixa cinza. */
.vcard-capa.is-vazia{
  background:
    radial-gradient(18rem 14rem at 70% 18%,rgba(74,129,180,.5),transparent 64%),
    linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 48%,var(--marca-900) 100%);
}

.vcard-etiqueta{
  position:absolute;left:.75rem;top:.75rem;
  display:inline-flex;align-items:center;gap:.3125rem;
  padding:.3125rem .625rem;border-radius:9999px;
  background:var(--acento);color:var(--marca-950);
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.08em;text-transform:uppercase;
  box-shadow:0 6px 16px -8px rgba(3,18,35,.6);
}
.vcard-etiqueta.is-destaque{background:#fff;color:var(--marca-700)}

.vcard-corpo{display:flex;flex-direction:column;flex:1;padding:1.125rem 1.25rem 1.25rem}
.vcard-corpo > strong{
  font-family:var(--f-tit);font-size:1rem;font-weight:600;line-height:1.35;color:var(--azul-inst);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.vcard-corpo > small{
  margin-top:.5rem;font-size:.875rem;line-height:1.6;color:var(--tinta-2);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.vcard-pe{
  display:flex;align-items:center;gap:.375rem;margin-top:auto;padding-top:1rem;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.09em;text-transform:uppercase;color:var(--tinta-3);
}
.vcard-pe svg{flex-shrink:0;color:var(--marca-500)}

@media(max-width:1023px){
  .vt-foto{min-height:20rem}
  .vt-foto-corpo{max-width:none}
}
@media(max-width:719px){
  .vt-grade{border-radius:var(--r-card)}
  .vt-acoes .btn,.vt-painel-acoes .btn{flex:1 1 100%;justify-content:center}
  .vt-selos{gap:.875rem}
  .vt-selos li{max-width:none;flex:1 1 100%}
  .turma{flex-basis:min(85%,20rem)}
}

/* Quem pediu menos movimento não recebe o zoom da capa. */
@media(prefers-reduced-motion:reduce){
  .vcard > a:hover .vcard-capa img{transform:none}
}
html.a11y-sem-movimento .vcard > a:hover .vcard-capa img{transform:none}

/* ---- As turmas dentro da ficha do curso -------------------------------
   Lista curta, com a data em evidência. Fica acima dos CTAs porque é ela
   que faz a pessoa clicar em "inscrever-se". */
.curso-turmas{
  margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha);
}
.curso-turmas-rotulo{
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);
}
.curso-turmas ul{display:flex;flex-direction:column;gap:.625rem;margin-top:.875rem;padding:0;list-style:none}
.curso-turmas li{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.375rem .625rem;
  padding:.75rem .875rem;border-radius:var(--r-sm);
  background:#fff;border:1px solid var(--linha);
}
.curso-turmas strong{font-family:var(--f-tit);font-size:.9375rem;font-weight:700;color:var(--azul-inst)}
.curso-turmas span{font-size:.8125rem;line-height:1.45;color:var(--tinta-2)}
.curso-turmas .turma-selo{align-self:center}

/* =========================================================================
   CHAPA DO ÍCONE — UM PREENCHIMENTO SÓ

   O tamanho e o raio já eram padrão; o PREENCHIMENTO não era. Sobrou um
   museu: chapa branca com ícone azul, chapa azul-clarinha com ícone azul,
   chapa cinza com ícone azul — três leituras diferentes do mesmo elemento,
   lado a lado na mesma página.

   Agora é uma só, a da referência aprovada: chapa AZUL em degradê e ícone
   ÂMBAR. Vale onde o fundo é claro, que é a maioria do site.

   Em fundo ESCURO a chapa não pode ser azul (azul sobre azul some), então
   ela vira um véu branco translúcido mantendo o ícone âmbar — é a regra
   que já valia para .selo-claro e que aqui passa a valer para todas.
   ========================================================================= */
.ajuda-ico,.conv-ico,.procurados-ico,.servico-ico,.capacita-ico,
.capacita-trilha-ico,.cct-ico,.noticia-selo,.selo,.convenios-indice .selo,
.mvv-bloco .selo,.duo-bloco .selo,.atalhos .selo,.cartoes .selo,
.serv-pilar .selo,.ladrilho .selo,.t-agenda .selo,.ar-lista .selo,
.balao-avatar,.depo-avatar,.estrutura-selo-ico,.form-canais .selo{
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));
  border:0;
  color:var(--acento);
}

/* Fundo escuro: véu translúcido no lugar do azul. */
.g-inst .selo,.g-prof .selo,.cta .selo,.agenda-faixa .selo,
.heroi-palco .selo,.duplo .selo,.est-selo .selo,
.g-inst .cartoes .selo,.g-prof .cartoes .selo{
  background:rgba(255,255,255,.12);
  color:var(--acento);
}

/* Estes três já eram âmbar sobre escuro e continuam como estão — a regra
   acima não os alcança, e é de propósito. */
.faq-painel-ico,.duplo-ico,.rodape-selo-premio{color:var(--acento)}

/* O hover dos cartões que trocavam a cor da chapa agora só a intensifica,
   em vez de inverter para branco. */
.atalhos a:hover .selo,.ladrilho a:hover .selo,.cartoes a:hover .selo,
.ajuda-item:hover .ajuda-ico,.servico-item:hover .servico-ico,
.conv-item:hover .conv-ico,.capacita-trilha:hover .capacita-trilha-ico{
  background:linear-gradient(145deg,var(--azul-inst),var(--marca-950));
  color:var(--acento);
}

/* =========================================================================
   UM TAMANHO DE ÍCONE NO SITE INTEIRO

   O helper icone() recebe um tamanho em cada chamada, e ao longo do
   projeto isso virou onze medidas diferentes. Em vez de caçar as chamadas
   uma a uma, o CSS passa a mandar: a regra abaixo vence os atributos
   width/height do SVG e fixa o desenho em três papéis — chapa, seta de
   CTA e etiqueta.

   É o mesmo tratamento que os CTAs receberam: um token por papel, e não
   um número por lugar.
   ========================================================================= */

/* ---- O ícone dentro da chapa ---- */
.selo svg,.bloco-ico svg,.ajuda-ico svg,.conv-ico svg,.procurados-ico svg,
.servico-ico svg,.capacita-ico svg,.capacita-trilha-ico svg,.cct-ico svg,
.noticia-selo svg,.balao-avatar svg,.depo-avatar svg,.estrutura-selo-ico svg,
.dep-ico svg,.den-ico svg,.c11-mesa-ico svg,.prova-ico svg,.rede-ico svg,
.plano-ico svg,.base-uf-ico svg,.nr1-prazo-ico svg,.est-irma-ico svg,
.est-selo-ico svg,.opo-lado-ico svg,.lado-cursos-ico svg,.download-ico svg,
.trio-ico svg,.ambiente-ico svg,.faq-painel-ico svg,.duplo-ico svg,
.rodape-selo-premio svg,.quadro-vazio-ico svg,.curso-ficha dt svg{
  width:var(--ico-svg);height:var(--ico-svg);
}

/* ---- A seta do CTA e dos links ---- */
.btn svg,.bloco-cta svg,.bloco-ver svg,.download-acao svg,.cartao-seta svg,
.dep-escrever svg,.c11-canais svg,.turma-meta svg,.vcard-pe svg,
.pcard-ver svg,.regua-nota svg,.base-nota svg{
  width:var(--ico-svg-cta);height:var(--ico-svg-cta);
}

/* ---- A etiqueta miúda ---- */
.etiqueta svg,.etiqueta-vigente svg,.vcard-etiqueta svg,.pcard-tag svg,
.turma-selo svg,.rede-selo svg,.chapeu svg{
  width:var(--ico-svg-tag);height:var(--ico-svg-tag);
}

/* =========================================================================
   CHAPA EM FUNDO ESCURO: MOLDURA TRANSPARENTE

   Pedido: no escuro o ícone fica no amarelo da marca e a moldura é
   transparente; ao passar o mouse, ela fica branca.

   O ícone NÃO segue amarelo no estado branco — âmbar sobre branco dá
   menos de 2:1 de contraste e o desenho some. No hover ele assume o azul
   institucional, que é a mesma troca que o CTA branco já faz.
   ========================================================================= */
.g-inst .selo,.g-prof .selo,.cta .selo,.agenda-faixa .selo,
.heroi-palco .selo,.duplo .selo,.est-selo .selo,.selo-claro,
.g-inst .bloco-ico,.g-prof .bloco-ico,.cta .bloco-ico,
.est-selo-ico,.prlx-slide .selo{
  background:transparent;
  border:1px solid rgba(255,255,255,.3);
  color:var(--acento);
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover);
}
.g-inst a:hover .selo,.g-prof a:hover .selo,.cta a:hover .selo,
.agenda-faixa a:hover .selo,.heroi-palco a:hover .selo,
.duplo a:hover .selo,.selo-claro:hover,
.g-inst li:hover .bloco-ico,.g-prof li:hover .bloco-ico,
.est-selo:hover .est-selo-ico{
  background:#fff;
  border-color:#fff;
  color:var(--azul-inst);
}

/* =========================================================================
   PRATELEIRA DE CURSOS — carrossel no formato da referência

   Cartão ALTO (3/4), foto ocupando tudo, degradê subindo do pé, fio curto
   âmbar e, sob ele, título e descrição sobre a imagem. Os vizinhos ficam
   cortados na borda, que é o que diz que a fila continua. Setas redondas
   nas laterais, centradas na altura.

   Rola sem JavaScript (overflow-x + scroll-snap). Só as setas dependem de
   script — nascem [hidden] e o JS as revela.
   ========================================================================= */
.prateleira{margin-top:clamp(2.5rem,5vw,4rem)}
.prateleira:first-of-type{margin-top:0}

.prat-topo{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:1rem 2rem;margin-bottom:1.5rem;
}
.prat-topo .chapeu{display:inline-flex;align-items:center;gap:.4375rem}
.prat-topo h3{
  margin-top:.75rem;max-width:34rem;
  font-family:var(--f-tit);font-size:var(--t-h3);font-weight:700;
  line-height:1.2;letter-spacing:-.015em;color:var(--azul-inst);
}
.prat-topo p{margin-top:.625rem;max-width:46rem;font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}
.prat-conta{
  flex-shrink:0;padding:.3125rem .75rem;border-radius:9999px;
  background:var(--vidro);
  font-family:var(--f-cond);font-weight:400;font-size:.8125rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--marca-600);
}

/* ---- O palco: a fila e as duas setas ---- */
.prat-palco{position:relative}

.prat-fila{
  display:flex;gap:1rem;
  margin:0;padding:.25rem;list-style:none;
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  /* A barra some; a rolagem continua. As setas e o arrasto dão conta, e o
     recorte dos vizinhos já indica que há mais. */
  scrollbar-width:none;
}
.prat-fila::-webkit-scrollbar{display:none}
.prat-fila:focus-visible{outline:2px solid var(--acento);outline-offset:4px;border-radius:var(--r-card)}

/* As setas ficam POR CIMA da fila, nas bordas - como na referência. */
.prat-seta{
  position:absolute;top:50%;z-index:3;
  display:grid;place-items:center;
  width:2.75rem;height:2.75rem;transform:translateY(-50%);
  border:0;border-radius:9999px;cursor:pointer;
  background:var(--marca-600);color:#fff;
  box-shadow:0 10px 24px -10px rgba(3,18,35,.65);
  transition:background var(--t-hover),opacity var(--t-hover),transform var(--t-hover);
}
.prat-seta:hover{background:var(--azul-inst);transform:translateY(-50%) scale(1.06)}
.prat-seta:disabled{opacity:.3;cursor:default;transform:translateY(-50%)}
.prat-seta[hidden]{display:none}
.prat-seta.is-antes{left:-.75rem}
.prat-seta.is-depois{right:-.75rem}
/* O ícone é um chevron-down girado: um só desenho serve aos dois lados. */
.prat-seta.is-antes svg{transform:rotate(90deg)}
.prat-seta.is-depois svg{transform:rotate(-90deg)}

/* ---- O cartão alto ---- */
.pcard{
  flex:0 0 clamp(15rem,22vw,17.5rem);
  scroll-snap-align:start;
}
.pcard > a{
  position:relative;display:block;isolation:isolate;
  aspect-ratio:3/4;overflow:hidden;
  border-radius:var(--r-bloco);
  background:var(--marca-900);
  transition:transform var(--t-hover),box-shadow var(--t-hover);
}
.pcard > a:hover{transform:translateY(-4px);box-shadow:var(--s-elev)}
.pcard > a:focus-visible{outline:3px solid var(--acento);outline-offset:3px}

.pcard img{
  position:absolute;inset:0;z-index:-2;
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.pcard > a:hover img{transform:scale(1.05)}
.pcard-vazia{
  position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(16rem 12rem at 70% 18%,rgba(74,129,180,.55),transparent 64%),
    linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 48%,var(--marca-900) 100%);
}
/* O degradê sobe do pé e segura o texto. Sem ele, título branco sobre
   foto clara é ilegível - e metade das capas é clara. */
.pcard-veu{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(
    to top,
    rgba(3,18,35,.95) 0%,
    rgba(3,18,35,.86) 26%,
    rgba(3,18,35,.45) 52%,
    rgba(3,18,35,.12) 74%,
    rgba(3,18,35,.05) 100%
  );
}

.pcard-tags{position:absolute;left:.875rem;top:.875rem;z-index:1;display:flex;flex-wrap:wrap;gap:.375rem}
.pcard-tag{
  display:inline-flex;align-items:center;gap:.3125rem;
  padding:.25rem .5625rem;border-radius:9999px;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.08em;text-transform:uppercase;
  backdrop-filter:blur(6px);
}
/* EAD e Presencial se distinguem à primeira vista: são produtos
   diferentes, com formas de compra diferentes. */
.pcard-tag.is-ead{background:rgba(255,255,255,.92);color:var(--azul-inst)}
.pcard-tag.is-presencial{background:rgba(3,18,35,.55);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.pcard-tag.is-data{background:var(--acento);color:var(--marca-950)}

.pcard-corpo{
  position:absolute;inset:auto 0 0 0;z-index:1;
  display:block;padding:1.25rem 1.25rem 1.375rem;
}
.pcard-fio{display:block;width:2.5rem;height:3px;border-radius:2px;background:var(--acento)}
.pcard-corpo strong{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  margin-top:.875rem;
  font-family:var(--f-tit);font-size:1.0625rem;font-weight:700;
  line-height:1.25;color:#fff;
}
.pcard-corpo small{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  margin-top:.5rem;
  font-size:.8125rem;line-height:1.55;color:rgba(255,255,255,.82);
}
.pcard-ver{
  display:inline-flex;align-items:center;gap:.375rem;margin-top:.875rem;
  font-size:.8125rem;font-weight:700;color:var(--acento);
  opacity:0;transform:translateY(4px);
  transition:opacity var(--t-hover),transform var(--t-hover);
}
.pcard > a:hover .pcard-ver,
.pcard > a:focus-visible .pcard-ver{opacity:1;transform:none}

/* No toque não existe hover: a chamada fica sempre visível. */
@media(hover:none){
  .pcard-ver{opacity:1;transform:none}
}

@media(max-width:719px){
  .pcard{flex-basis:min(78%,15rem)}
  .prat-seta{display:none!important}
  .prat-topo h3{font-size:1.375rem}
}

@media(prefers-reduced-motion:reduce){
  .prat-fila{scroll-behavior:auto}
  .pcard > a:hover img{transform:none}
  .pcard > a:hover{transform:none}
}
html.a11y-sem-movimento .prat-fila{scroll-behavior:auto}
html.a11y-sem-movimento .pcard > a:hover img{transform:none}

/* ---- Índice das categorias ---------------------------------------------
   Atalho para quem já sabe o que quer: oito prateleiras é muita rolagem
   para chegar em "Regulatório". Links comuns para âncoras - funciona sem
   JavaScript e o navegador cuida do foco. */
.cat-indice{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(2rem,4vw,3rem)}
.cat-indice a{
  display:inline-flex;align-items:center;gap:.4375rem;
  padding:.5rem .875rem;border-radius:9999px;
  border:1px solid var(--linha);background:#fff;
  font-size:.875rem;font-weight:600;color:var(--tinta-2);
  transition:border-color var(--t-hover),background var(--t-hover),color var(--t-hover);
}
.cat-indice a:hover{border-color:var(--hover-borda);background:var(--hover-fundo);color:var(--azul-inst)}
.cat-indice svg{color:var(--marca-500)}
.cat-indice small{
  padding:.0625rem .375rem;border-radius:9999px;
  background:var(--vidro);font-size:.75rem;color:var(--tinta-3);
}

/* As etiquetas de modalidade também no cartão da grade filtrada. */
.vcard-tags{position:absolute;left:.75rem;top:.75rem;z-index:1;display:flex;flex-wrap:wrap;gap:.3125rem}

/* =========================================================================
   BANNER DE CURSOS — mosaico rotativo

   Da referência: blocos arredondados encaixados — foto, bloco claro de
   apoio e painel escuro com chapéu, título, marcações e CTA. As pílulas
   no alto trocam o slide e dizem o assunto de cada um, em vez de bolinhas
   que obrigam a clicar para descobrir.
   ========================================================================= */
.ctopo{padding-block:clamp(1.25rem,3vw,2rem) 0}

/* ---- As pílulas (seletor) ---- */
.ctopo-pilulas{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.125rem}
.ctopo-pilulas[hidden]{display:none}
.ctopo-pilula{
  min-height:2.25rem;padding:0 1rem;cursor:pointer;
  border:1px solid var(--linha);border-radius:9999px;background:#fff;
  font:600 .875rem var(--f-corpo);color:var(--tinta-2);
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover);
}
.ctopo-pilula:hover{border-color:var(--hover-borda);background:var(--hover-fundo)}
.ctopo-pilula[aria-selected="true"]{background:var(--azul-inst);border-color:var(--azul-inst);color:#fff}
.ctopo-pausa{
  display:grid;place-items:center;width:2.25rem;height:2.25rem;cursor:pointer;
  margin-left:auto;
  border:1px solid var(--linha);border-radius:9999px;background:#fff;color:var(--tinta-3);
  transition:border-color var(--t-hover),color var(--t-hover);
}
.ctopo-pausa:hover{border-color:var(--hover-borda);color:var(--marca-600)}

/* ---- O palco e os slides ----
   Os slides ocupam a mesma célula do grid: sem JavaScript o primeiro fica
   visível e os outros continuam no documento, legíveis para busca e para
   leitor de tela. */
.ctopo-palco{display:grid}
.ctopo-slide{
  grid-area:1/1;
  display:grid;gap:.875rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .45s ease,visibility .45s;
}
.ctopo-slide.is-ativo{opacity:1;visibility:visible;pointer-events:auto}
/* Sem JavaScript nenhum slide recebe .is-ativo por script: o primeiro já
   vem com a classe do PHP, e os demais ficam invisíveis mas presentes. */
html:not(.js) .ctopo-slide{position:static}

@media(min-width:900px){
  .ctopo-slide{
    grid-template-columns:minmax(0,.78fr) minmax(0,1fr);
    grid-template-rows:auto auto;
    grid-template-areas:'foto painel' 'apoio painel';
  }
  .ctopo-foto{grid-area:foto}
  .ctopo-apoio{grid-area:apoio}
  .ctopo-painel{grid-area:painel}
}

/* ---- Bloco da foto ---- */
.ctopo-foto{
  position:relative;overflow:hidden;
  border-radius:var(--r-bloco);
  min-height:clamp(12rem,24vw,17rem);
  background:var(--marca-900);
}
.ctopo-foto img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.ctopo-foto.is-vazia{
  background:
    radial-gradient(18rem 14rem at 70% 18%,rgba(74,129,180,.5),transparent 64%),
    linear-gradient(158deg,var(--marca-500) 0%,var(--azul-prof) 48%,var(--marca-900) 100%);
}

/* ---- Bloco claro de apoio ---- */
.ctopo-apoio{
  display:flex;flex-direction:column;
  padding:clamp(1.25rem,2.5vw,1.75rem);
  border-radius:var(--r-bloco);
  background:var(--vidro);
}
.ctopo-apoio p{font-size:.9375rem;line-height:1.7;color:var(--marca-800)}
.ctopo-apoio .bloco-cta{margin-top:auto;padding-top:1.125rem}

/* ---- Painel escuro ---- */
.ctopo-painel{
  display:flex;flex-direction:column;
  padding:clamp(1.5rem,3.5vw,2.75rem);
  border-radius:var(--r-bloco);
  background:linear-gradient(158deg,var(--azul-inst) 0%,var(--marca-900) 62%,var(--marca-950) 100%);
  color:#fff;
}
.ctopo-chapeu{
  font-family:var(--f-cond);font-weight:400;font-size:.8125rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--acento);
}
.ctopo-painel h1,.ctopo-titulo{
  margin-top:.875rem;
  font-family:var(--f-tit);font-size:clamp(1.625rem,1.1rem + 1.7vw,2.625rem);
  font-weight:800;line-height:1.12;letter-spacing:-.02em;color:#fff;
}
.ctopo-painel h1 span,.ctopo-titulo span{display:block;color:var(--acento)}

.ctopo-marcas{display:flex;flex-direction:column;gap:.625rem;margin-top:1.5rem;padding:0;list-style:none}
.ctopo-marcas li{
  display:flex;align-items:flex-start;gap:.625rem;
  font-size:.9375rem;line-height:1.5;color:rgba(255,255,255,.9);
}
.ctopo-marcas svg{flex-shrink:0;margin-top:.1875rem;color:var(--acento)}

/* O CTA da referência: pílula clara com o ícone dentro de um disco. */
.ctopo-cta{
  display:inline-flex;align-items:center;gap:.75rem;align-self:flex-start;
  margin-top:auto;margin-block-start:1.75rem;
  min-height:var(--cta-alt);padding:.375rem 1.375rem .375rem .375rem;
  border-radius:var(--cta-raio);
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.28);
  font:var(--cta-peso) var(--cta-fonte) var(--f-corpo);color:#fff;
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover);
}
.ctopo-cta-ico{
  display:grid;place-items:center;width:2.125rem;height:2.125rem;flex-shrink:0;
  border-radius:9999px;background:var(--acento);color:var(--marca-950);
  transition:transform var(--t-hover);
}
.ctopo-cta:hover{background:#fff;border-color:#fff;color:var(--azul-inst)}
.ctopo-cta:hover .ctopo-cta-ico{transform:translateX(3px)}

@media(max-width:899px){
  .ctopo-foto{min-height:11rem}
  .ctopo-cta{align-self:stretch;justify-content:center}
}

@media(prefers-reduced-motion:reduce){
  .ctopo-slide{transition:none}
}
html.a11y-sem-movimento .ctopo-slide{transition:none}

/* ---- Índice de categorias: rótulo + fila rolável ---- */
.cat-indice{
  display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;
  margin-bottom:clamp(2rem,4vw,3rem);padding-top:1.25rem;
  border-top:1px solid var(--linha);
}
.cat-indice-rotulo{
  flex-shrink:0;
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);
}
.cat-indice-fila{
  display:flex;gap:.5rem;flex:1;min-width:0;
  overflow-x:auto;overscroll-behavior-x:contain;
  padding-bottom:.25rem;scrollbar-width:none;
}
.cat-indice-fila::-webkit-scrollbar{display:none}
.cat-indice-fila a{flex-shrink:0}

/* ---- Busca rápida na faixa de migalhas ---------------------------------
   Em toda página interna, e quase imperceptível: em repouso é só a lupa,
   miúda, no canto direito da faixa. Abre no clique ou no Tab, sem
   JavaScript (a lupa é a <label> e o :focus-within faz o resto).

   Menor e mais discreta do que a do cabeçalho de propósito: aquela é o
   atalho principal; esta é a lembrança de quem já está lendo outra coisa.
   Duas buscas com o mesmo peso, uma embaixo da outra, competiriam. */
.migalhas .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.migalhas ol{flex:1;min-width:0}
.migalhas .busca-inline{flex-shrink:0;margin:0}
.migalhas .busca-inline:not(:focus-within){background:transparent;border-color:transparent}
.migalhas .busca-inline .busca-lupa{width:1.875rem;height:1.875rem;color:var(--tinta-3)}
.migalhas .busca-inline .busca-lupa svg{width:15px;height:15px}
.migalhas .busca-inline:not(:focus-within) .busca-lupa:hover{background:var(--vidro);color:var(--marca-600)}
.migalhas .busca-inline:focus-within{background:#fff;border-color:var(--hover-borda)}
.migalhas .busca-inline input{font-size:.875rem}
.migalhas .busca-inline:focus-within input{width:min(14rem,44vw)}
.migalhas .busca-inline button{font-size:.8125rem}

/* No celular a faixa já é apertada: a lupa fica, o campo abre por cima
   do resto da linha em vez de espremer as migalhas. */
@media(max-width:719px){
  .migalhas .busca-inline:focus-within input{width:min(10rem,40vw)}
}

/* =========================================================================
   CHAMADA DE ABERTURA DE CURSOS — texto + colagem

   Da referência: fundo claro, pergunta grande em três linhas com as
   palavras que importam em negrito, CTA em pílula sólida, e à direita uma
   colagem de três fotos arredondadas desalinhadas. Formas enormes e quase
   invisíveis ao fundo.
   ========================================================================= */
.chamada-cursos{
  position:relative;overflow:hidden;isolation:isolate;
  padding-block:clamp(2.5rem,6vw,4.5rem);
  background:var(--bruma-2);
}

/* As formas do fundo: dois cantos arredondados, quase imperceptíveis.
   Puro CSS - não vale pedir um PNG para um detalhe que ninguém enxerga. */
.cc-forma{position:absolute;z-index:-1;border-radius:3rem;opacity:.5}
.cc-forma--a{
  width:26rem;height:26rem;right:-6rem;top:-10rem;transform:rotate(24deg);
  background:linear-gradient(140deg,rgba(255,255,255,.9),rgba(237,242,249,0));
}
.cc-forma--b{
  width:20rem;height:20rem;right:14rem;bottom:-12rem;transform:rotate(-16deg);
  background:linear-gradient(140deg,rgba(255,255,255,.75),rgba(237,242,249,0));
}

.cc-grade{display:grid;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media(min-width:960px){
  .cc-grade{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
}

.cc-texto h2{
  font-family:var(--f-tit);
  font-size:clamp(1.625rem,1.05rem + 1.9vw,2.625rem);
  font-weight:400;line-height:1.26;letter-spacing:-.015em;
  color:var(--azul-inst);max-width:20ch;
}
/* O destaque é PESO, não cor - como na referência. A cor já é a da marca
   na linha inteira; trocar também a cor faria três tons numa frase só. */
.cc-texto h2 strong{font-weight:800}

.cc-cta{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:var(--cta-alt);margin-top:clamp(1.5rem,3vw,2.25rem);
  padding:0 var(--cta-pad);border-radius:var(--cta-raio);
  background:var(--marca-600);color:#fff;
  font:var(--cta-peso) var(--cta-fonte) var(--f-corpo);
  transition:background var(--t-hover),transform var(--t-hover);
}
.cc-cta:hover{background:var(--azul-inst);transform:translateY(-2px)}
.cc-cta svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.cc-cta:hover svg{transform:translateX(3px)}

/* ---- A colagem ----
   Grade de 12 colunas: é o que permite as três fotos se sobreporem em
   alturas diferentes sem position:absolute e sem alturas mágicas. */
.cc-colagem{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows:repeat(12,1fr);
  aspect-ratio:1/.92;
}
.cc-foto{margin:0;overflow:hidden;border-radius:1.5rem;box-shadow:0 1.5rem 3rem -1.5rem rgba(3,18,35,.35)}
.cc-foto img{width:100%;height:100%;object-fit:cover;display:block}

/* Alta ao centro-alto, alta à direita descendo, larga embaixo à esquerda
   - o escalonamento da referência. */
.cc-foto.is-alta   {grid-column:3/8;  grid-row:1/8}
.cc-foto.is-direita{grid-column:8/13; grid-row:3/11}
.cc-foto.is-larga  {grid-column:1/8;  grid-row:7/13}

@media(max-width:959px){
  .cc-colagem{aspect-ratio:1/.8;max-width:34rem;margin-inline:auto}
  .cc-texto h2{max-width:none}
}
@media(max-width:519px){
  .cc-foto{border-radius:1rem}
  .cc-cta{width:100%;justify-content:center}
}

/* =========================================================================
   CALENDÁRIO DE TURMAS

   Mesmo arranjo da agenda da home: painel escuro, texto e lista à
   esquerda, meses à direita. O que muda é que aqui os meses são uma grade
   de dias de verdade, com o dia que tem turma virando link.
   ========================================================================= */
.cal{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;gap:clamp(2rem,4vw,3.5rem);
  padding:clamp(1.75rem,4vw,3rem);
  border-radius:var(--r-bloco);color:#fff;
}
@media(min-width:1024px){
  .cal{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
}

/* ---- Lateral esquerda ---- */
.cal-lado h2{
  margin-top:1rem;
  font-family:var(--f-tit);font-size:var(--t-h2);font-weight:800;
  line-height:1.1;letter-spacing:-.02em;color:#fff;
}
.cal-lado h2 span{color:var(--acento)}
.cal-lado > p{margin-top:1.125rem;max-width:34rem;font-size:.9375rem;line-height:1.7;color:rgba(255,255,255,.84)}

.cal-cursos{
  display:flex;flex-direction:column;gap:.5rem;
  margin:1.75rem 0 0;padding:0;list-style:none;
  /* Dez turmas numa coluna é muita altura: rola dentro do painel e o
     calendário ao lado continua visível. */
  max-height:22rem;overflow-y:auto;overscroll-behavior-y:contain;
  scrollbar-width:thin;
}
.cal-cursos a{
  display:flex;align-items:center;gap:.875rem;
  padding:.75rem .875rem;border-radius:var(--r-sm);
  background:rgba(255,255,255,.07);
  border:1px solid transparent;
  transition:background var(--t-hover),border-color var(--t-hover);
}
.cal-cursos a:hover{background:rgba(255,255,255,.14);border-color:var(--acento)}
.cal-cursos-dia{
  flex-shrink:0;min-width:3.25rem;
  font-family:var(--f-cond);font-weight:400;font-size:.9375rem;
  letter-spacing:.06em;color:var(--acento);
}
.cal-cursos-txt{flex:1;min-width:0}
.cal-cursos-txt strong{
  display:block;font-size:.875rem;font-weight:600;line-height:1.35;color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cal-cursos-txt small{display:block;margin-top:.1875rem;font-size:.75rem;color:rgba(255,255,255,.66)}
.cal-selo{
  flex-shrink:0;padding:.125rem .4375rem;border-radius:9999px;
  font-family:var(--f-cond);font-weight:400;font-size:.6875rem;
  letter-spacing:.08em;text-transform:uppercase;
}
.cal-selo.is-gratis{background:#E8F5EE;color:#0F5B35}
.cal-selo.is-perto{background:var(--acento);color:var(--marca-950)}
.cal-lado .btn{margin-top:1.75rem}

/* ---- Os meses ---- */
.cal-meses{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.cal-mes{
  width:100%;border-collapse:collapse;
  padding:1rem;border-radius:var(--r-card);
  background:rgba(255,255,255,.07);
}
.cal-mes caption{
  padding-bottom:.875rem;text-align:left;
  font-family:var(--f-tit);font-size:1.0625rem;font-weight:700;color:#fff;
}
.cal-mes caption span{font-weight:400;color:rgba(255,255,255,.6)}
.cal-mes th{
  padding-bottom:.5rem;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.08em;color:rgba(255,255,255,.55);
}
.cal-mes td{text-align:center;padding:.125rem}
.cal-mes td > span,.cal-mes td > a{
  display:grid;place-items:center;
  width:2rem;height:2rem;margin-inline:auto;border-radius:9999px;
  font-size:.8125rem;line-height:1;
}
.cal-mes td > span{color:rgba(255,255,255,.42)}
.cal-mes td.is-vazio{padding:0}

/* O dia com turma: disco âmbar, que é a cor de ação do site. */
.cal-mes td.tem-turma > a{
  background:var(--acento);color:var(--marca-950);font-weight:700;
  transition:transform var(--t-hover),box-shadow var(--t-hover);
}
.cal-mes td.tem-turma > a:hover,
.cal-mes td.tem-turma > a:focus-visible{
  transform:scale(1.12);
  box-shadow:0 0 0 3px rgba(244,190,0,.35);
}
.cal-mes td.e-hoje > span,.cal-mes td.e-hoje > a{box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}

.cal-legenda{
  grid-column:1/-1;
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  margin-top:.25rem;font-size:.8125rem;color:rgba(255,255,255,.7);
}
.cal-ponto{width:.75rem;height:.75rem;border-radius:9999px;background:var(--acento);flex-shrink:0}
.cal-legenda a{margin-left:auto;color:var(--acento);font-weight:600}
.cal-legenda a:hover{text-decoration:underline;text-underline-offset:3px}

@media(max-width:519px){
  .cal-meses{grid-template-columns:1fr}
  .cal-legenda a{margin-left:0}
}

/* ---- Cartão da prateleira: mais alto e com véu AZUL -------------------
   O degradê era quase preto (rgba(3,18,35,…)). Trocado pelo azul da
   identidade: a leitura continua garantida sobre capa clara, mas o cartão
   deixa de ter um rodapé cinza-chumbo que não existe em lugar nenhum do
   site. E ele sobe mais alto, porque metade das capas tem texto impresso
   na parte de baixo da imagem e o título brigava com ele.

   O cartão também ficou mais alto (3/4,4): dá espaço para três linhas de
   título, três de resumo e a chamada, sem cortar palavra. */
.pcard > a{aspect-ratio:3/4.4}
.pcard-veu{
  background:linear-gradient(
    to top,
    rgba(5,28,54,.97) 0%,
    rgba(5,28,54,.92) 22%,
    rgba(8,44,83,.72) 44%,
    rgba(12,70,131,.34) 66%,
    rgba(12,70,131,.08) 86%,
    rgba(12,70,131,0) 100%
  );
}
.pcard-corpo{padding:1.375rem 1.375rem 1.5rem}
.pcard-corpo strong{font-size:1.125rem}
.pcard-corpo small{-webkit-line-clamp:4}
/* A chamada deixa de depender do hover: num cartão alto sobra espaço, e
   no toque o hover não existe. */
.pcard-ver{opacity:1;transform:none}
.pcard > a:hover .pcard-ver{color:#fff}

@media(max-width:719px){
  .pcard{flex-basis:min(80%,16rem)}
}

/* =========================================================================
   DEPOIMENTOS — padrão "Social Proof 16" (citação em painel + grade)

   Refeito em HTML/CSS com os tokens do site; o original é um componente
   React com licença. Painel escuro à esquerda com a citação em destaque,
   grade de depoimentos menores à direita.
   ========================================================================= */
.ps16{display:grid;gap:var(--b-gap);align-items:stretch}
@media(min-width:960px){
  .ps16{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
}

/* ---- O painel da citação ---- */
.ps16-citacao{
  display:flex;flex-direction:column;margin:0;
  padding:clamp(1.75rem,3.5vw,2.5rem);
  border-radius:var(--r-bloco);
  background:linear-gradient(158deg,var(--azul-inst) 0%,var(--marca-900) 60%,var(--marca-950) 100%);
  color:#fff;
}
/* No lugar das cinco estrelas da referência: a distinção que existe. */
.ps16-premio{
  display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;
  padding:.375rem .75rem;border-radius:9999px;
  background:rgba(244,190,0,.14);
  font-family:var(--f-cond);font-weight:400;font-size:.8125rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--acento);
}
.ps16-citacao blockquote{margin:0}
.ps16-citacao blockquote p{
  margin-top:1.75rem;
  font-family:var(--f-tit);
  font-size:clamp(1.25rem,.95rem + 1vw,1.75rem);
  font-weight:700;line-height:1.35;letter-spacing:-.01em;color:#fff;
}
.ps16-citacao figcaption{display:flex;align-items:center;gap:.875rem;margin-top:1.75rem}
.ps16-citacao figcaption strong{display:block;font-size:.9375rem;font-weight:600;color:#fff}
.ps16-citacao figcaption small{display:block;margin-top:.1875rem;font-size:.8125rem;line-height:1.4;color:rgba(255,255,255,.66)}

.ps16-avatar{
  flex-shrink:0;display:grid;place-items:center;
  width:3rem;height:3rem;border-radius:9999px;
  background:rgba(255,255,255,.14);color:var(--acento);
  font-family:var(--f-tit);font-weight:700;font-size:.9375rem;
}
.ps16-avatar.is-peq{width:2.25rem;height:2.25rem;font-size:.8125rem}

/* Rodapé: na referência, logotipos de clientes. Aqui, os cursos citados —
   que é o que de fato existe e, por acaso, informa mais. */
.ps16-rodape{margin-top:auto;padding-top:2rem}
.ps16-rodape-rotulo{
  font-family:var(--f-cond);font-weight:300;font-size:.75rem;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);
}
.ps16-rodape ul{display:flex;flex-wrap:wrap;gap:.5rem .875rem;margin-top:.875rem;padding:0;list-style:none}
.ps16-rodape li{
  font-size:.8125rem;line-height:1.4;color:rgba(255,255,255,.78);
  padding-left:.875rem;position:relative;
}
.ps16-rodape li::before{
  content:"";position:absolute;left:0;top:.5em;
  width:.3125rem;height:.3125rem;border-radius:9999px;background:var(--acento);
}

/* ---- A grade ---- */
.ps16-grade{
  display:grid;gap:var(--b-gap);margin:0;padding:0;list-style:none;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));
  align-content:start;
}
.ps16-post{
  display:flex;flex-direction:column;
  padding:1.375rem;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover),transform var(--t-hover);
}
.ps16-post:hover{border-color:var(--hover-borda);box-shadow:var(--s-card);transform:translateY(-2px)}
.ps16-post-topo{display:flex;align-items:center;gap:.75rem}
.ps16-post .ps16-avatar{background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));color:#fff}
.ps16-post-quem{min-width:0}
.ps16-post-quem strong{display:block;font-size:.9375rem;font-weight:600;color:var(--azul-inst);line-height:1.3}
/* No lugar do @arroba: o curso. */
.ps16-post-quem small{display:block;margin-top:.125rem;font-size:.75rem;line-height:1.35;color:var(--tinta-3)}
.ps16-post > p{margin-top:1rem;font-size:.9375rem;line-height:1.7;color:var(--tinta-2)}
.secao.tom .ps16-post{border-color:var(--linha-forte)}

/* =========================================================================
   DEPOIMENTOS NA PÁGINA DO CURSO — padrão "Social Proof 10"

   Título centrado, apoio, fio curto, fileira de avatares sobrepostos e
   três cartões, com o do meio destacado.
   ========================================================================= */
.ps10-topo{max-width:46rem;margin-inline:auto;text-align:center}
.ps10-topo h2{
  font-family:var(--f-tit);
  font-size:clamp(1.625rem,1.1rem + 1.7vw,2.5rem);
  font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--azul-inst);
}
.ps10-topo > p{margin-top:1.25rem;font-size:1rem;line-height:1.75;color:var(--tinta-2)}

/* O fio vertical curto da referência: separa o texto da prova social. */
.ps10-fio{
  display:block;width:1px;height:2.5rem;margin:2rem auto 0;
  background:linear-gradient(to bottom,var(--linha-forte),transparent);
}

.ps10-pessoas{margin-top:1.5rem}
.ps10-pessoas-rotulo{font-size:.8125rem;color:var(--tinta-3)}
/* Avatares sobrepostos, como na referência. O avanço negativo é por item,
   e o primeiro não recebe — senão a fila sai torta do centro. */
.ps10-avatares{display:flex;justify-content:center;margin-top:.875rem;padding:0;list-style:none}
.ps10-avatares li{margin-left:-.625rem}
.ps10-avatares li:first-child{margin-left:0}
.ps10-avatares .ps16-avatar{
  background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));color:#fff;
  box-shadow:0 0 0 3px var(--bruma-2);
}
.secao:not(.tom) .ps10-avatares .ps16-avatar{box-shadow:0 0 0 3px #fff}

/* ---- Os três cartões ---- */
.ps10-grade{
  display:grid;gap:var(--b-gap);margin:clamp(2.5rem,5vw,3.5rem) 0 0;padding:0;list-style:none;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));
  align-items:start;
}
.ps10-cartao{
  display:flex;flex-direction:column;
  padding:1.5rem;
  border:1px solid var(--linha);border-radius:var(--r-card);background:#fff;
  transition:border-color var(--t-hover),box-shadow var(--t-hover);
}
.ps10-cartao:hover{border-color:var(--hover-borda);box-shadow:var(--s-card)}
/* O destaque do meio: só quando o depoimento é mesmo deste curso. */
.ps10-cartao.is-destaque{
  border-color:var(--acento);
  box-shadow:0 0 0 1px var(--acento),var(--s-card);
}
.ps10-cartao blockquote{margin:0}
.ps10-cartao blockquote p{font-size:.9375rem;line-height:1.75;color:var(--tinta-2)}
.ps10-cartao.is-destaque blockquote p{color:var(--tinta);font-weight:500}

/* No lugar de "VIEW POST ↗ · hora · data": o curso. */
.ps10-meta{
  display:flex;align-items:center;gap:.4375rem;margin-top:1.125rem;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3);
}
.ps10-meta svg{flex-shrink:0;color:var(--marca-500)}

.ps10-cartao footer{
  display:flex;align-items:center;gap:.75rem;
  margin-top:auto;padding-top:1.125rem;
  border-top:1px solid var(--linha);
}
.ps10-cartao footer strong{font-size:.9375rem;font-weight:600;color:var(--azul-inst)}
.ps10-cartao .ps16-avatar{background:linear-gradient(145deg,var(--marca-600),var(--azul-inst));color:#fff}

.ps10-pe{display:flex;justify-content:center;margin-top:2rem}

@media(max-width:959px){
  .ps16-citacao blockquote p{font-size:1.25rem}
}

/* =========================================================================
   CATEGORIA ESCOLHIDA — a que vem do menu, inteira e no topo

   Escolher uma categoria não esconde as outras: ela sobe para a frente,
   em GRADE (todos os cursos visíveis de uma vez), e abaixo da divisa o
   catálogo continua nas prateleiras de sempre.
   ========================================================================= */
.cat-escolhida{
  padding:clamp(1.25rem,3vw,2rem);
  border-radius:var(--r-bloco);
  background:#fff;
  box-shadow:var(--s-card);
}
.cat-escolhida .prat-topo{margin-bottom:1.5rem}

/* A divisa: um fio com o rótulo no meio. Diz "acabou o que você pediu,
   daqui para baixo tem mais" sem precisar de um título de seção. */
.cat-divisa{
  display:flex;align-items:center;gap:1rem;
  margin-block:clamp(2.5rem,5vw,3.5rem);
  font-family:var(--f-cond);font-weight:300;font-size:.8125rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);
}
.cat-divisa::before,.cat-divisa::after{
  content:"";flex:1;height:1px;background:var(--linha-forte);
}

/* =========================================================================
   O SÍMBOLO DA MARCA COMO MARCA-D'ÁGUA

   Pedido: trazer a identidade do ícone do logotipo para o layout dos
   cursos. O símbolo — a taça com o "S" — entra como marca-d'água no
   canto do cartão e no painel escuro do banner, em âmbar bem apagado.

   É o mesmo desenho do ícone 'simbolo' em inc/funcoes.php, aqui como
   data-URI porque background-image não aceita currentColor. A cor está
   fixa no âmbar da marca (#F4BE00) e a presença é controlada pela
   opacidade — assim ele nunca compete com o título.

   Marca-d'água e não logotipo aplicado: o cartão já vive dentro do site,
   repetir a marca em peso cheio quarenta vezes numa página seria ruído.
   ========================================================================= */
:root{
  --simbolo-marca:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath fill='%23F4BE00' d='M3.5 10.3h12.9a6.45 6.45 0 0 1-12.9 0z'/%3E%3Cpath fill='%23F4BE00' d='M7.4 21.3a2.55 2.55 0 0 1 5.1 0z'/%3E%3Cpath stroke='%23F4BE00' stroke-width='1.8' stroke-linecap='round' d='M14.6 10.1c2.6-.75 4.1-2.1 4.1-3.8 0-2.05-2.05-3.5-4.8-3.5-2.55 0-4.5 1.15-4.5 2.8 0 1.55 1.45 2.45 3.9 2.7'/%3E%3C/svg%3E");
}

/* ---- No cartão alto da prateleira ---- */
.pcard > a::after{
  content:"";position:absolute;z-index:0;
  right:-1.25rem;bottom:-1.25rem;
  width:8rem;height:8rem;
  background:var(--simbolo-marca) no-repeat center/contain;
  opacity:.1;pointer-events:none;
  transition:opacity var(--t-hover),transform var(--t-hover);
}
.pcard > a:hover::after{opacity:.18;transform:translate(-.25rem,-.25rem)}
/* O corpo fica acima da marca-d'água. */
.pcard-corpo,.pcard-tags{z-index:2}

/* ---- Sem capa: o símbolo assume o lugar ----
   Em vez do grafismo genérico, o cartão sem foto mostra o símbolo da
   casa, grande e centrado. Falta de imagem vira identidade, não buraco. */
.pcard-vazia::after,.vcard-capa.is-vazia::after{
  content:"";position:absolute;inset:0;
  background:var(--simbolo-marca) no-repeat center/42%;
  opacity:.28;
}
.vcard-capa.is-vazia{position:relative}

/* ---- No painel escuro do banner ---- */
.ctopo-painel{position:relative;overflow:hidden}
.ctopo-painel::after{
  content:"";position:absolute;z-index:0;
  right:-3rem;bottom:-3.5rem;
  width:16rem;height:16rem;
  background:var(--simbolo-marca) no-repeat center/contain;
  opacity:.07;pointer-events:none;
}
.ctopo-chapeu,.ctopo-painel h1,.ctopo-titulo,.ctopo-marcas,.ctopo-cta{position:relative;z-index:1}

/* ---- No painel da citação ---- */
.ps16-citacao{position:relative;overflow:hidden}
.ps16-citacao::after{
  content:"";position:absolute;z-index:0;
  right:-2.5rem;top:-2.5rem;
  width:12rem;height:12rem;
  background:var(--simbolo-marca) no-repeat center/contain;
  opacity:.07;pointer-events:none;
}
.ps16-premio,.ps16-citacao blockquote,.ps16-citacao figcaption,.ps16-rodape{position:relative;z-index:1}

/* ---- No painel do calendário ---- */
.cal::after{
  content:"";position:absolute;z-index:0;
  right:-4rem;bottom:-4rem;
  width:20rem;height:20rem;
  background:var(--simbolo-marca) no-repeat center/contain;
  opacity:.05;pointer-events:none;
}
.cal-lado,.cal-meses{position:relative;z-index:1}

@media(prefers-reduced-motion:reduce){
  .pcard > a:hover::after{transform:none}
}

/* ---- Prateleira GRANDE (home) ----------------------------------------
   Proporção da referência (grpro): cartão largo, perto de 1:1,2, com
   três por tela num monitor comum — e não o cartão estreito e alto das
   prateleiras do catálogo.

   Na home a faixa de cursos É o assunto da seção; nas prateleiras do
   catálogo ela é uma lista entre oito. Mesma peça, dois pesos. */
.prat-fila.is-grande{gap:1.25rem}
.prat-fila.is-grande .pcard{flex:0 0 clamp(17rem,28vw,27rem)}
.prat-fila.is-grande .pcard > a{aspect-ratio:1/1.18}
.prat-fila.is-grande .pcard-corpo{padding:1.75rem 1.75rem 1.875rem}
.prat-fila.is-grande .pcard-corpo strong{font-size:clamp(1.125rem,.95rem + .5vw,1.375rem)}
.prat-fila.is-grande .pcard-corpo small{font-size:.9375rem;-webkit-line-clamp:3}
.prat-fila.is-grande .pcard-fio{width:3rem}
.prat-fila.is-grande .pcard > a::after{width:11rem;height:11rem}

@media(max-width:719px){
  .prat-fila.is-grande .pcard{flex-basis:min(84%,20rem)}
  .prat-fila.is-grande .pcard > a{aspect-ratio:1/1.25}
  .prat-fila.is-grande .pcard-corpo{padding:1.375rem}
}

/* ---- FAQ da home: o painel começa na linha das perguntas -------------
   O título é filho direto de .faq, então o grid ganha duas linhas: a
   primeira só com o título, a segunda com as perguntas e o painel lado a
   lado. Antes o painel subia até o topo e ficava com um palmo de azul
   acima da primeira pergunta. */
@media(min-width:1024px){
  .faq{grid-template-rows:auto 1fr}
  .faq-topo{grid-column:1;grid-row:1;margin-bottom:0}
  .faq-perguntas{grid-column:1;grid-row:2}
  .faq-painel{grid-column:2;grid-row:2}
}
/* A primeira pergunta já traz o fio de topo; o respiro vem do gap. */
@media(max-width:1023px){
  .faq-topo{margin-bottom:2rem}
}

/* =========================================================================
   CALENDÁRIO DE TURMAS — calendário à esquerda, turmas à direita

   Um calendário só, fixo, com setas de mês. À direita as turmas no padrão
   de sempre, cinco por vez, rodando sozinhas quando há mais.
   ========================================================================= */
@media(min-width:1024px){
  /* O calendário é a coluna fixa; a lista ocupa o que sobra. */
  .cal{grid-template-columns:minmax(0,22rem) minmax(0,1fr)}
}

/* ---- Navegação de mês ---- */
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.cal-nav-mes{
  flex:1;text-align:center;
  font-family:var(--f-tit);font-size:1.125rem;font-weight:700;color:#fff;
}
.cal-seta{
  display:grid;place-items:center;flex-shrink:0;
  width:2.25rem;height:2.25rem;cursor:pointer;
  border:1px solid rgba(255,255,255,.3);border-radius:9999px;
  background:transparent;color:var(--acento);
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover);
}
.cal-seta:hover{background:#fff;border-color:#fff;color:var(--azul-inst)}
.cal-seta:disabled{opacity:.3;cursor:default;background:transparent;border-color:rgba(255,255,255,.3);color:var(--acento)}
.cal-seta[hidden]{display:none}
.cal-seta svg{transform:rotate(90deg)}
.cal-seta[data-cal-ir="1"] svg{transform:rotate(-90deg)}

/* ---- Os meses: um por vez com JS, todos empilhados sem ---- */
.cal-mes-caixa{
  padding:1rem;border-radius:var(--r-card);
  background:rgba(255,255,255,.07);
}
html.js .cal-mes-caixa{display:none}
html.js .cal-mes-caixa.is-ativo{display:block}
/* Sem JavaScript, os meses aparecem em sequência e cada um se identifica
   pela legenda — que deixa de ser sr-only. */
html:not(.js) .cal-mes-caixa+.cal-mes-caixa{margin-top:1rem}
html:not(.js) .cal-mes caption{
  position:static;width:auto;height:auto;clip-path:none;overflow:visible;
  padding-bottom:.75rem;text-align:left;
  font-family:var(--f-tit);font-size:1rem;font-weight:700;color:#fff;
}

.cal-mes{width:100%;border-collapse:collapse}
.cal-mes th{
  padding-bottom:.5rem;
  font-family:var(--f-cond);font-weight:400;font-size:.75rem;
  letter-spacing:.08em;color:rgba(255,255,255,.55);
}
.cal-mes td{text-align:center;padding:.1875rem}
.cal-mes td > span,.cal-mes td > a{
  display:grid;place-items:center;
  width:2.125rem;height:2.125rem;margin-inline:auto;border-radius:9999px;
  font-size:.8125rem;line-height:1;
}
.cal-mes td > span{color:rgba(255,255,255,.42)}
.cal-mes td.is-vazio{padding:0}
.cal-mes td.tem-turma > a{
  background:var(--acento);color:var(--marca-950);font-weight:700;
  transition:transform var(--t-hover),box-shadow var(--t-hover);
}
.cal-mes td.tem-turma > a:hover,
.cal-mes td.tem-turma > a:focus-visible{
  transform:scale(1.12);box-shadow:0 0 0 3px rgba(244,190,0,.35);
}
.cal-mes td.e-hoje > span,.cal-mes td.e-hoje > a{box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}

.cal-legenda{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  margin-top:1rem;font-size:.8125rem;color:rgba(255,255,255,.7);
}
.cal-ponto{width:.75rem;height:.75rem;border-radius:9999px;background:var(--acento);flex-shrink:0}
.cal-legenda a{margin-left:auto;color:var(--acento);font-weight:600}
.cal-legenda a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---- A fila de turmas, com rotação ----
   A altura é a de CINCO itens. Com JavaScript, a lista rola sozinha de
   cinco em cinco; sem ele, o teto sai e a lista aparece inteira — nenhuma
   turma fica fora do alcance por falta de script. */
.cal-fila{margin-top:1.75rem}
html.js .cal-fila{
  --cal-item:4.25rem;
  max-height:calc(var(--cal-item) * 5);
  overflow:hidden;
  position:relative;
}
/* Véu no pé: diz que a lista continua, sem precisar de barra. */
html.js .cal-fila::after{
  content:"";position:absolute;inset:auto 0 0 0;height:2.5rem;
  background:linear-gradient(to top,var(--azul-inst),transparent);
  pointer-events:none;opacity:0;transition:opacity var(--t-hover);
}
html.js .cal-fila.tem-mais::after{opacity:.9}

.cal-cursos{
  display:flex;flex-direction:column;gap:.5rem;
  margin:0;padding:0;list-style:none;
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.cal-cursos li[hidden]{display:none}
.cal-cursos a{
  display:flex;align-items:center;gap:.875rem;
  padding:.75rem .875rem;border-radius:var(--r-sm);
  background:rgba(255,255,255,.07);
  border:1px solid transparent;
  transition:background var(--t-hover),border-color var(--t-hover);
}
.cal-cursos a:hover{background:rgba(255,255,255,.14);border-color:var(--acento)}
.cal-cursos-dia{
  flex-shrink:0;min-width:3.25rem;
  font-family:var(--f-cond);font-weight:400;font-size:.9375rem;
  letter-spacing:.06em;color:var(--acento);
}
.cal-cursos-txt{flex:1;min-width:0}
.cal-cursos-txt strong{
  display:block;font-size:.875rem;font-weight:600;line-height:1.35;color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cal-cursos-txt small{display:block;margin-top:.1875rem;font-size:.75rem;color:rgba(255,255,255,.66)}
.cal-selo{
  flex-shrink:0;padding:.125rem .4375rem;border-radius:9999px;
  font-family:var(--f-cond);font-weight:400;font-size:.6875rem;
  letter-spacing:.08em;text-transform:uppercase;
}
.cal-selo.is-gratis{background:#E8F5EE;color:#0F5B35}
.cal-selo.is-perto{background:var(--acento);color:var(--marca-950)}

.cal-sem-turma{
  display:flex;align-items:flex-start;gap:.5rem;
  padding:1.125rem;border:1px dashed rgba(255,255,255,.3);border-radius:var(--r-sm);
  font-size:.875rem;line-height:1.6;color:rgba(255,255,255,.78);
}
.cal-sem-turma[hidden]{display:none}
.cal-sem-turma svg{flex-shrink:0;margin-top:.1875rem;color:var(--acento)}
.cal-sem-turma a{color:var(--acento);font-weight:600}

.cal-lado .btn{margin-top:1.75rem}

@media(max-width:1023px){
  html.js .cal-fila{max-height:none}
  html.js .cal-fila::after{display:none}
}

@media(prefers-reduced-motion:reduce){
  .cal-cursos{transition:none}
}
html.a11y-sem-movimento .cal-cursos{transition:none}

/* ---- A busca dentro de uma barra de filtros ---------------------------
   Mesma peça do atalho do cabeçalho: fechada é só a lupa. Aqui ela senta
   ao lado das pílulas de filtro, então ganha o mesmo tamanho de alvo
   (--cta-alt) para a linha não ficar desalinhada. */
.vagas-filtros .busca-inline{flex-shrink:0;margin:0}
.vagas-filtros .busca-inline:not(:focus-within){background:transparent;border-color:transparent}
.vagas-filtros .busca-inline .busca-lupa{width:var(--cta-alt);height:var(--cta-alt);color:var(--tinta-3)}
.vagas-filtros .busca-inline:not(:focus-within) .busca-lupa:hover{background:var(--vidro);color:var(--marca-600)}
.vagas-filtros .busca-inline:focus-within{background:#fff;border-color:var(--hover-borda)}
.vagas-filtros .busca-inline:focus-within input{width:min(18rem,46vw)}

/* =========================================================================
   MOVIMENTO NO HOVER — blocos de eventos e cursos

   Alguns cartões já subiam ao passar o cursor, outros só trocavam a cor
   da borda. Resultado: a mesma página respondia de dois jeitos ao mesmo
   gesto, e o que não se movia parecia desligado.

   Agora o gesto é um só: o cartão SOBE 4px, a sombra aprofunda e a seta
   anda. Nada de escala no cartão inteiro — crescer empurra o vizinho e
   faz a grade tremer. A capa, essa sim, cresce um pouco por dentro do
   recorte, que é movimento sem deslocar nada em volta.

   Tudo some para quem pediu menos movimento.
   ========================================================================= */
.eventos-cartao>a,
.cursos-cartoes>li>a,
.turma>a,
.vcard>a,
.pcard>a{
  transition:transform var(--t-hover) cubic-bezier(.16,1,.3,1),
             box-shadow var(--t-hover),
             border-color var(--t-hover),
             background var(--t-hover);
}
.eventos-cartao>a:hover,
.eventos-cartao>a:focus-visible,
.cursos-cartoes>li>a:hover,
.cursos-cartoes>li>a:focus-visible{
  transform:translateY(-4px);
  box-shadow:var(--s-elev);
}

/* A seta do cartão acompanha. */
.cursos-cartoes>li>a .cartao-seta{transition:transform var(--t-hover) cubic-bezier(.16,1,.3,1)}
.cursos-cartoes>li>a:hover .cartao-seta{transform:translateX(4px)}

/* Lista do calendário: o item desliza para a direita em vez de subir —
   numa lista vertical, subir faz o vizinho parecer ter sumido. */
.cal-cursos a{transition:background var(--t-hover),border-color var(--t-hover),transform var(--t-hover)}
.cal-cursos a:hover,.cal-cursos a:focus-visible{transform:translateX(4px)}

/* Dia do calendário já cresce; aqui só se garante o foco de teclado. */
.cal-mes td.tem-turma>a:focus-visible{outline:2px solid #fff;outline-offset:2px}

@media(prefers-reduced-motion:reduce){
  .eventos-cartao>a:hover,.cursos-cartoes>li>a:hover,
  .cal-cursos a:hover,.turma>a:hover,.vcard>a:hover,.pcard>a:hover{transform:none}
  .cursos-cartoes>li>a:hover .cartao-seta{transform:none}
}
html.a11y-sem-movimento .eventos-cartao>a:hover,
html.a11y-sem-movimento .cursos-cartoes>li>a:hover,
html.a11y-sem-movimento .cal-cursos a:hover,
html.a11y-sem-movimento .turma>a:hover,
html.a11y-sem-movimento .vcard>a:hover,
html.a11y-sem-movimento .pcard>a:hover{transform:none}

/* ---- Retrato do presidente ---- */
.presidente-cartao .foto.tem-foto{background:none;place-items:stretch}
.presidente-cartao .foto img{width:100%;height:100%;object-fit:cover;display:block}

/* ---- Capas das notícias ------------------------------------------------
   A imagem destacada de cada matéria, vinda do acervo do WordPress. O
   recorte é por object-fit — as capas do acervo têm proporções variadas e
   deixá-las deformar seria pior do que cortar. Sem arquivo, .is-vazia
   mantém o gradiente de antes. */
.blog-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.blog-destaque a:hover .blog-foto img,
.blog-grade a:hover .blog-foto img{transform:scale(1.04)}

@media(prefers-reduced-motion:reduce){
  .blog-destaque a:hover .blog-foto img,
  .blog-grade a:hover .blog-foto img{transform:none}
}
html.a11y-sem-movimento .blog-foto img{transition:none}

/* =========================================================================
   RESPIRO — chapéu → título → descrição → blocos

   O conjunto estava apertado: o chapéu quase encostava no título, e o
   título no primeiro bloco. São três relações, e cada uma ganhou o seu
   token — mexer no respiro do site passa a ser mudar três números aqui,
   e não caçar margin-top em quarenta regras.

   O aumento é contido de propósito: ~50% em cada folga. Mais do que isso
   e as seções começam a parecer desconectadas umas das outras.
   ========================================================================= */
:root{
  --b-cha-tit:1.5rem;    /* do chapéu para o título      (era 1rem)      */
  --b-tit-txt:1.5rem;    /* do título para a descrição   (era 1,125rem)  */
  --b-topo-blocos:3.5rem;/* do cabeçalho para os blocos  (era 2,5rem)    */
}

/* O título que vem logo depois de um chapéu, em qualquer bloco do site. */
.chapeu + h1,
.chapeu + h2,
.chapeu + h3,
.chapeu + .ctopo-titulo,
.chapeu + .hero-pagina-rotulo{margin-top:var(--b-cha-tit)}

/* Os cabeçalhos de seção, em todas as suas variantes. */
.bloco-topo{margin-bottom:var(--b-topo-blocos)}
.bloco-topo h2{margin-top:var(--b-cha-tit)}
.bloco-topo-pe{margin-top:var(--b-tit-txt)}
.secao-topo{gap:var(--b-tit-txt);margin-bottom:var(--b-topo-blocos)}
.prat-topo{margin-bottom:2rem}
.prat-topo h3{margin-top:var(--b-cha-tit)}
.prat-topo p{margin-top:var(--b-tit-txt)}
.c11-topo h2{margin-top:var(--b-cha-tit)}
.faq-topo h2{margin-top:var(--b-cha-tit)}

/* Dentro dos cartões indexados, a mesma folga entre título e texto. */
.bloco-colunas h3{margin-top:var(--b-tit-txt)}

/* Os blocos de texto corrido das páginas internas. */
.est-sobre-texto h2,
.est-local-texto h2,
.contrib-garante-texto h2,
.den-desvio-texto h2,
.ouv-sobre-texto h2,
.ouv-form-texto h2,
.curso-texto h2{margin-top:var(--b-cha-tit)}

/* ---- Prateleira em modo GRADE ----------------------------------------
   Mesmos cartões, sem carrossel: quebram em grade e aparecem todos. É o
   que a categoria escolhida no menu usa — e é por isso que ela e as
   prateleiras abaixo têm exatamente a mesma linguagem de cartão. */
.prat-fila.is-grade{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));
  overflow:visible;scroll-snap-type:none;
}
.prat-fila.is-grande.is-grade{
  grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));
}
.prat-fila.is-grade .pcard{flex:none;scroll-snap-align:none}

/* A categoria escolhida ganha o cartão de fundo que a destaca das
   prateleiras seguintes. */
.cat-escolhida{
  padding:clamp(1.25rem,3vw,2rem);
  border-radius:var(--r-bloco);background:#fff;box-shadow:var(--s-card);
}
.prateleira.is-escolhida{
  padding:clamp(1.25rem,3vw,2rem);
  border-radius:var(--r-bloco);background:#fff;box-shadow:var(--s-card);
  margin-top:0;
}

/* =========================================================================
   BUSCA FECHADA: SÓ A LUPA

   O botão "Buscar" continuava aparecendo ao lado da lupa no estado
   fechado. A causa: ele é um item flex e item flex tem min-width:auto por
   padrão — o `width:0` não segurava, porque o conteúdo ("Buscar") impunha
   a largura mínima. Com min-width:0 o zero passa a valer de verdade.

   A lupa também encolheu: 2,25rem de alvo com glifo de 16px, na mesma
   altura dos ícones do site. Delicada, sem moldura, encostada à direita e
   sempre abaixo do título — é um recurso de quem lembrou de procurar, não
   um controle principal.
   ========================================================================= */
.busca-inline button{min-width:0}

.busca-inline .busca-lupa{width:2.25rem;height:2.25rem;color:var(--tinta-3)}
.busca-inline .busca-lupa svg{width:16px;height:16px}
.busca-inline:not(:focus-within) .busca-lupa:hover{background:var(--vidro);color:var(--marca-600)}
.busca-inline:focus-within .busca-lupa{color:var(--marca-600)}
.busca-inline input{height:2.25rem}
.busca-inline button{height:1.875rem;font-size:.8125rem;font-weight:600}
.busca-inline:focus-within button{padding:0 .875rem;margin-right:.25rem}

/* =========================================================================
   SETAS DA PRATELEIRA — o padrão do site

   Mesmo controle das demais esteiras da home (.eventos-seta): dois botões
   REDONDOS E PEQUENOS, de contorno fino, centrados ABAIXO do carrossel —
   e não flutuando sobre as bordas, como estavam.

   O gesto é o mesmo em todo carrossel do site: a seta não cobre conteúdo,
   não aparece só no hover e fica onde o polegar alcança no celular.
   ========================================================================= */
.prat-palco{padding-bottom:4rem}
.prat-fila.is-grade ~ .prat-seta{display:none}

.prat-seta{
  top:auto;bottom:0;transform:none;
  width:2.25rem;height:2.25rem;
  border:1px solid var(--linha-forte);border-radius:9999px;
  background:#fff;color:var(--marca-600);
  box-shadow:none;
  transition:background var(--t-hover),border-color var(--t-hover),color var(--t-hover),opacity var(--t-hover);
}
.prat-seta:hover:not(:disabled){background:var(--marca-600);border-color:var(--marca-600);color:#fff;transform:none}
.prat-seta:disabled{opacity:.35;background:#fff;color:var(--marca-600)}
.prat-seta svg{width:14px;height:14px;stroke-width:1.6}

/* Os dois juntos, centrados no pé. */
.prat-seta.is-antes {left:50%;right:auto;margin-left:-2.75rem}
.prat-seta.is-depois{left:50%;right:auto;margin-left:.5rem}

/* Sobre a seção tingida o branco do botão ainda contrasta; sobre o cartão
   branco da categoria escolhida ele ganha a borda um tom mais firme. */
.prateleira.is-escolhida .prat-seta{border-color:var(--linha-forte)}

/* Em modo grade não há rolagem, então também não há pé reservado. */
.prat-palco:not([data-prat]){padding-bottom:0}

@media(max-width:719px){
  .prat-palco{padding-bottom:3.5rem}
}

/* =========================================================================
   BARRA PRINCIPAL — alinhamento e marcador

   1. O MENU OCUPA A LARGURA. Antes `nav.menu` tinha margin-right:auto e o
      espaço sobrava todo à direita: "Contato e Imprensa" parava no meio do
      caminho, desalinhado da lupa que fica no canto da faixa de cima.
      Agora a lista se distribui e o último item encosta na mesma borda —
      as duas faixas passam a ter a mesma margem direita.

   2. SÓ O RISCO. O item selecionado ganhava uma pílula de fundo (e a
      sombra que vem dela) ALÉM do fio âmbar. Dois marcadores para o mesmo
      estado, e o de fundo era o mais pesado dos dois numa barra que deve
      ser leve. Fica o fio.
   ========================================================================= */
@media(min-width:1280px){
  nav.menu{margin-right:0;flex:1;min-width:0}
  nav.menu ul{justify-content:space-between;gap:.25rem}
  /* O último encosta na direita: sem o respiro lateral, o texto fica no
     mesmo eixo da lupa — e o fio acompanha. */
  nav.menu ul li:last-child .gatilho{padding-right:0}
  nav.menu ul li:last-child .gatilho::after{right:0}
  nav.menu ul li:first-child .gatilho{padding-left:0}
  nav.menu ul li:first-child .gatilho::after{left:0}
}

.gatilho.is-ativo,
.gatilho[aria-expanded="true"]{
  background:transparent;
  box-shadow:none;
  color:var(--azul-inst);
  font-weight:600;
}
/* O hover continua existindo — só não é mais o mesmo gesto do selecionado. */
.gatilho:hover{background:transparent;color:var(--marca-700)}

/* ---- Etiqueta de situação da turma ------------------------------------
   Uma só por cartão, a mais urgente. Minimalista: pílula pequena, sem
   ícone, sem animação — a palavra basta.

   "Esgotado" e "Esgotando" só aparecem quando o sindicato informar os
   lugares restantes (campo 'vagas' em conteudo/turmas.php). Hoje o que
   aparece é a urgência de DATA, que sai de um dado real. */
.pcard-tag.is-sit{letter-spacing:.06em}
.pcard-tag.is-esgotado{background:rgba(3,18,35,.78);color:rgba(255,255,255,.88);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.pcard-tag.is-esgotando{background:#B42318;color:#fff}
.pcard-tag.is-urgente{background:#fff;color:#B42318;box-shadow:inset 0 0 0 1px rgba(180,35,24,.35)}
.pcard-tag.is-perto{background:rgba(255,255,255,.92);color:var(--marca-700)}

/* O cartão de uma turma esgotada recua: continua clicável (a pessoa pode
   querer a próxima data), mas para de disputar atenção com as abertas. */
.pcard:has(.is-esgotado) > a img{filter:saturate(.55)}
.pcard:has(.is-esgotado) .pcard-ver{color:rgba(255,255,255,.7)}

/* Na lista do calendário. */
.cal-selo.is-esgotado{background:rgba(255,255,255,.16);color:rgba(255,255,255,.8)}
.cal-selo.is-esgotando{background:#B42318;color:#fff}
.cal-selo.is-urgente{background:var(--acento);color:var(--marca-950)}
