/* =============================================================================
   Reliza RH – folha de estilo do site
   Estilo aprovado (27/10/2026): faixa preta, menu vermelho com logo branco,
   topo com foto e cartão branco, botões pretos em pílula, cartões com ícones
   de linha e rodapé preto. Todas as cores com contraste AA.

   Organização:
     1. Fontes e tokens      5. Topo das páginas (hero / abertura)
     2. Base e tipografia    6. Componentes (cartões, listas, FAQ, formulários)
     3. Utilidades de layout 7. Seções da página inicial
     4. Botões e cabeçalho   8. Vagas, rodapé, flutuantes, animações, impressão
   ============================================================================= */

/* 1. Fontes --------------------------------------------------------------- */
@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Tokens ------------------------------------------------------------------ */
:root {
  /* Cores da marca */
  --vermelho: #BA131A;          /* 6,6:1 sobre branco */
  --vermelho-escuro: #8F0E14;
  --vermelho-claro: #FDECEC;
  --vermelho-suave: #FFB4B0;    /* sobre fundo preto */
  --preto: #141414;
  --grafite: #2F2B25;           /* 14:1 sobre branco */
  --texto: #2F2B25;
  --texto-suave: #595959;       /* 7:1 sobre branco, 6,4:1 sobre #F5F5F5 */
  --texto-claro: #D9D4CD;       /* sobre preto */
  --branco: #FFFFFF;
  --papel: #F5F5F5;
  --papel-escuro: #ECEAE7;
  --borda: #E4E1DD;
  --borda-campo: #B8B2AA;
  --foco: #1D4ED8;
  --whats: #0E7A5F;             /* ícone branco 5,3:1 */
  --whats-escuro: #0A5E49;

  /* Compatibilidade com nomes antigos usados nas páginas */
  --fundo: var(--branco);
  --fundo-cinza: var(--papel);
  --fundo-creme: var(--papel);

  /* Tipografia fluida */
  --fonte: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --t-display: clamp(2.1rem, 1.35rem + 2.6vw, 3.4rem);
  --t-titulo: clamp(1.7rem, 1.2rem + 1.7vw, 2.55rem);
  --t-sub: clamp(1.2rem, 1.05rem + .5vw, 1.45rem);
  --t-frase: clamp(1.1rem, 1rem + .45vw, 1.3rem);
  --t-corpo: 1.0625rem;
  --t-nota: .875rem;
  --t-micro: .78rem;

  /* Espaços e formas */
  --largura: 1180px;
  --margem: clamp(16px, 4vw, 28px);
  --secao: clamp(56px, 4vw + 32px, 112px);
  --secao-curta: clamp(40px, 3vw + 20px, 72px);
  --raio-s: 12px;
  --raio: 20px;
  --raio-l: 28px;
  --pilula: 999px;
  --topo-altura: 76px;

  /* Sombras e movimento */
  --sombra-s: 0 2px 8px rgba(20, 20, 20, .05), 0 8px 24px rgba(20, 20, 20, .05);
  --sombra: 0 4px 14px rgba(20, 20, 20, .06), 0 16px 40px rgba(20, 20, 20, .08);
  --sombra-l: 0 24px 64px rgba(0, 0, 0, .2);
  --suave: cubic-bezier(.2, .7, .2, 1);
  --dur: .22s;
  --dur-longa: .5s;
}

/* 2. Base ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--topo-altura) + 16px);
}
body {
  margin: 0;
  background: var(--branco);
  color: var(--texto);
  font: 400 var(--t-corpo)/1.65 var(--fonte);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
body.menu-aberto { overflow: hidden; }
img, svg, video { max-width: 100%; height: auto; display: block; }
img { font-style: italic; color: var(--texto-suave); }
a { color: var(--vermelho); text-decoration-thickness: 1.5px; text-underline-offset: 3px; transition: color var(--dur); }
a:hover { color: var(--vermelho-escuro); }
h1, h2, h3, h4 {
  margin: 0 0 .6em;
  color: var(--grafite);
  line-height: 1.15;
  letter-spacing: -.015em;
  font-weight: 800;
  text-wrap: balance;
}
h1 { font-size: var(--t-display); }
h2 { font-size: var(--t-titulo); }
h3 { font-size: var(--t-sub); font-weight: 700; }
p { margin: 0 0 1em; }
p, li { text-wrap: pretty; }
hr { border: 0; border-top: 1px solid var(--borda); margin: 24px 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 6px; }
main:focus { outline: none; }
[hidden] { display: none !important; }
::selection { background: var(--vermelho); color: #fff; }

.visualmente-oculto {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.pular {
  position: absolute; left: 1rem; top: -100px; z-index: 200;
  background: var(--preto); color: #fff; padding: .75rem 1.1rem; border-radius: var(--pilula);
  font-weight: 700; text-decoration: none;
}
.pular:focus { top: 1rem; color: #fff; }

/* 3. Layout --------------------------------------------------------------- */
.contem { width: 100%; max-width: var(--largura); margin-inline: auto; padding-inline: var(--margem); }
.secao { padding-block: var(--secao); }
.secao--curta { padding-block: var(--secao-curta); }
.secao--cinza, .secao--creme { background: var(--papel); }
.secao--escura { background: var(--preto); color: var(--texto-claro); }
.secao--escura h2, .secao--escura h3 { color: #fff; }
.secao--escura .intro { color: var(--texto-claro); }
.secao--escura .chapeu { color: var(--vermelho-suave); }
.secao + .secao:not(.secao--cinza):not(.secao--creme):not(.secao--escura) { padding-top: 0; }
.secao--cinza + .secao--cinza, .secao--creme + .secao--creme { padding-top: 0; }

.chapeu {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: var(--t-micro); font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--vermelho); margin-bottom: 14px;
}
.chapeu::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.intro { font-size: var(--t-frase); line-height: 1.55; color: var(--texto-suave); max-width: 46em; }

.grade { display: grid; gap: clamp(16px, 2vw, 24px); }
.grade--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grade--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grade--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.duas-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 64px); align-items: start; }
.espaco-cima { margin-top: clamp(20px, 2.5vw, 32px); }
.espaco-cima--pequeno { margin-top: 1rem; }
.sem-margem-baixo { margin-bottom: 0; }

@media (max-width: 1000px) {
  .grade--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .grade--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .duas-colunas { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .grade--2, .grade--3, .grade--4 { grid-template-columns: 1fr; }
}

/* 4. Botões --------------------------------------------------------------- */
.btn {
  --btn-fundo: var(--vermelho); --btn-cor: #fff; --btn-borda: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 50px; padding: .8rem 1.65rem; border-radius: var(--pilula);
  background: var(--btn-fundo); color: var(--btn-cor); border: 2px solid var(--btn-borda);
  font: 700 .85rem/1.2 var(--fonte); letter-spacing: .05em; text-transform: uppercase;
  text-decoration: none; text-align: center; cursor: pointer; white-space: nowrap;
  transition: background var(--dur) var(--suave), color var(--dur) var(--suave), border-color var(--dur) var(--suave), transform var(--dur) var(--suave), box-shadow var(--dur) var(--suave);
}
.btn:hover { color: var(--btn-cor); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(20, 20, 20, .14); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn--primario:hover { --btn-fundo: var(--vermelho-escuro); }
.btn--preto, .btn--escuro { --btn-fundo: var(--preto); }
.btn--preto:hover, .btn--escuro:hover { --btn-fundo: var(--vermelho); }
.btn--leve { --btn-fundo: transparent; --btn-cor: var(--preto); --btn-borda: var(--preto); }
.btn--leve:hover { --btn-fundo: var(--preto); --btn-cor: #fff; }
.btn--branco, .btn--claro { --btn-fundo: #fff; --btn-cor: var(--preto); }
.btn--branco:hover, .btn--claro:hover { --btn-fundo: var(--preto); --btn-cor: #fff; }
.btn--pequeno { min-height: 44px; padding: .6rem 1.3rem; font-size: .8rem; }
.btn--grande { min-height: 58px; padding: .95rem 2rem; font-size: .95rem; }
.btn[aria-busy="true"] { opacity: .75; pointer-events: none; }
@media (max-width: 480px) { .btn { white-space: normal; } }
.link-btn { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }

/* Cabeçalho: faixa de públicos --------------------------------------------- */
.faixa-topo { background: var(--preto); color: #fff; font-size: var(--t-nota); }
.faixa-topo__in {
  max-width: var(--largura); margin-inline: auto; padding: 7px var(--margem);
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.faixa-topo p { margin: 0; }
.faixa-topo a { color: #fff; font-weight: 700; text-decoration: none; }
.faixa-topo a:hover { color: #fff; text-decoration: underline; }
.faixa-topo__publicos { display: flex; gap: 4px; }
.faixa-topo__publicos a {
  text-transform: uppercase; letter-spacing: .08em; font-size: var(--t-micro);
  padding: 4px 12px; border-radius: var(--pilula); transition: background var(--dur);
}
.faixa-topo__publicos a:hover { background: rgba(255, 255, 255, .12); text-decoration: none; }
.faixa-topo__publicos a:first-child { margin-left: -12px; }
@media (max-width: 760px) {
  .faixa-topo__publicos { display: none; }
  .faixa-topo__in { justify-content: center; text-align: center; }
}

/* Cabeçalho: menu vermelho -------------------------------------------------- */
.topo {
  position: sticky; top: 0; z-index: 100;
  background: var(--vermelho); color: #fff;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .08);
  transition: box-shadow var(--dur);
}
.topo--rolou { box-shadow: 0 6px 24px rgba(0, 0, 0, .18); }
.topo__in {
  max-width: var(--largura); margin-inline: auto; padding: 0 var(--margem);
  min-height: var(--topo-altura); display: flex; align-items: center; gap: 28px;
}
.topo__logo { display: block; flex: 0 0 auto; padding: 8px 0; border-radius: 6px; }
.topo__logo img { width: 150px; height: auto; }
.topo :focus-visible { outline-color: #fff; }

.topo__nav { display: flex; align-items: center; gap: 24px; margin-left: auto; }
.topo__lista { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.topo__lista > li > a, .topo__grupo-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  min-height: 44px; padding: .5rem .85rem; border-radius: var(--pilula);
  background: none; border: 0; color: #fff; text-decoration: none; cursor: pointer;
  font: 700 .82rem/1.2 var(--fonte); letter-spacing: .06em; text-transform: uppercase;
  transition: background var(--dur);
}
.topo__lista > li > a:hover, .topo__grupo-btn:hover,
.topo__grupo-btn[aria-expanded="true"] { background: rgba(0, 0, 0, .16); color: #fff; }
.topo__lista > li > a[aria-current="page"], .topo__grupo-btn--ativo { background: rgba(0, 0, 0, .22); }
.topo__grupo-btn .seta {
  width: 7px; height: 7px; margin-top: -3px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); transition: transform var(--dur);
}
.topo__grupo-btn[aria-expanded="true"] .seta { transform: rotate(-135deg); margin-top: 3px; }
.topo__grupo { position: relative; }
.topo__sub {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 290px; z-index: 120;
  list-style: none; margin: 0; padding: 8px;
  background: #fff; border-radius: 18px; box-shadow: var(--sombra-l);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--dur) var(--suave), transform var(--dur) var(--suave), visibility var(--dur);
}
.topo__sub::before {
  content: ""; position: absolute; top: -6px; left: 28px; width: 12px; height: 12px;
  background: #fff; transform: rotate(45deg); border-radius: 2px;
}
.topo__grupo-btn[aria-expanded="true"] + .topo__sub { opacity: 1; visibility: visible; transform: none; }
.topo__sub a {
  display: block; padding: .75rem 16px; border-radius: 12px;
  color: var(--grafite); font-weight: 600; font-size: .98rem; text-decoration: none;
  transition: background var(--dur), color var(--dur);
}
.topo__sub a:hover, .topo__sub a[aria-current="page"] { background: var(--papel); color: var(--vermelho); }
.topo__sub a[aria-current="page"] { font-weight: 800; }
.topo__sub :focus-visible { outline-color: var(--foco); }
.topo__acoes { display: flex; gap: 10px; }
.topo__acoes .btn { --btn-fundo: #fff; --btn-cor: var(--vermelho); min-height: 46px; padding: .6rem 1.4rem; }
.topo__acoes .btn:hover { --btn-fundo: var(--preto); --btn-cor: #fff; }

.topo__menu-btn {
  display: none; margin-left: auto; align-items: center; gap: .6rem;
  min-height: 46px; padding: .5rem 1.1rem .5rem .95rem; border: 0; border-radius: var(--pilula);
  background: #fff; color: var(--vermelho); font: 800 .82rem/1 var(--fonte); letter-spacing: .06em; text-transform: uppercase;
}
.topo__menu-icone { position: relative; display: block; width: 18px; height: 14px; }
.topo__menu-icone::before, .topo__menu-icone::after, .topo__menu-icone span {
  content: ""; position: absolute; left: 0; width: 18px; height: 2px; border-radius: 2px;
  background: currentColor; transition: transform var(--dur) var(--suave), opacity var(--dur), top var(--dur) var(--suave);
}
.topo__menu-icone::before { top: 0; }
.topo__menu-icone::after { top: 12px; }
.topo__menu-icone span { top: 6px; }
.topo__menu-btn[aria-expanded="true"] .topo__menu-icone::before { top: 6px; transform: rotate(45deg); }
.topo__menu-btn[aria-expanded="true"] .topo__menu-icone::after { top: 6px; transform: rotate(-45deg); }
.topo__menu-btn[aria-expanded="true"] .topo__menu-icone span { opacity: 0; }
.topo__fundo { display: none; }

@media (max-width: 1040px) {
  :root { --topo-altura: 68px; }
  .topo__menu-btn { display: inline-flex; }
  .topo__nav {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 150;
    width: min(400px, 88vw); margin: 0; padding: calc(var(--topo-altura) + 8px) 20px 32px;
    flex-direction: column; align-items: stretch; gap: 20px; overflow-y: auto; overscroll-behavior: contain;
    background: #fff; color: var(--grafite); box-shadow: var(--sombra-l);
    transform: translateX(104%); visibility: hidden;
    transition: transform .32s var(--suave), visibility .32s;
  }
  .topo__nav.aberto { transform: none; visibility: visible; }
  .topo__fundo {
    display: block; position: fixed; inset: 0; z-index: 140; background: rgba(20, 20, 20, .5);
    opacity: 0; visibility: hidden; transition: opacity .32s, visibility .32s;
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  }
  .topo__fundo.aberto { opacity: 1; visibility: visible; }
  .topo__menu-btn { position: relative; z-index: 160; }
  .topo__lista { flex-direction: column; align-items: stretch; gap: 0; }
  .topo__lista > li { border-bottom: 1px solid var(--borda); }
  .topo__lista > li > a, .topo__grupo-btn {
    width: 100%; justify-content: space-between; padding: 1rem 4px; border-radius: 0;
    color: var(--grafite); font-size: .9rem;
  }
  .topo__lista > li > a:hover, .topo__grupo-btn:hover, .topo__grupo-btn[aria-expanded="true"],
  .topo__lista > li > a[aria-current="page"], .topo__grupo-btn--ativo { background: none; color: var(--vermelho); }
  .topo__grupo-btn .seta { margin: 0 6px 0 0; }
  .topo__grupo-btn[aria-expanded="true"] .seta { margin: 0 6px 0 0; }
  .topo__sub {
    position: static; min-width: 0; padding: 0 0 10px; box-shadow: none; border-radius: 0;
    display: none; opacity: 1; visibility: visible; transform: none; transition: none;
  }
  .topo__sub::before { display: none; }
  .topo__grupo-btn[aria-expanded="true"] + .topo__sub { display: block; }
  .topo__sub a { padding: .7rem 14px; font-size: .95rem; }
  .topo__acoes { flex-direction: column; margin-top: 4px; }
  .topo__acoes .btn { --btn-fundo: var(--vermelho); --btn-cor: #fff; width: 100%; min-height: 50px; }
  .topo__acoes .btn:hover { --btn-fundo: var(--preto); }
  .topo__nav :focus-visible { outline-color: var(--foco); }
}

/* 5. Topo das páginas: foto e cartão branco --------------------------------- */
.hero, .abertura { position: relative; isolation: isolate; overflow: hidden; background: var(--grafite); }
.hero__foto, .abertura__foto {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: 62% 40%;
}
.hero::before, .abertura::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, rgba(20, 20, 20, .5) 0%, rgba(20, 20, 20, .12) 55%, rgba(20, 20, 20, 0) 100%);
}
.hero__in {
  position: relative; display: flex; align-items: center;
  min-height: min(640px, calc(100svh - var(--topo-altura) - 36px));
  padding-block: clamp(40px, 6vw, 72px);
}
.hero__cartao, .abertura__grade > div, .abertura > .contem:not(.abertura__grade) {
  position: relative; z-index: 1;
  background: #fff; border-radius: var(--raio-l); padding: clamp(28px, 4vw, 52px);
  max-width: 600px; box-shadow: var(--sombra-l);
}
.hero h1, .abertura h1 {
  font-size: var(--t-display); text-transform: uppercase; line-height: 1.06; letter-spacing: -.02em; margin-bottom: 18px;
}
.hero__cartao p, .abertura .intro { font-size: var(--t-frase); color: var(--texto-suave); margin-bottom: 26px; }
.hero__botoes, .abertura__acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.abertura__acoes { margin: 0 0 1rem; }
.abertura__nota { color: var(--texto-suave); font-size: var(--t-nota); margin: .6rem 0 0; }
.abertura__selos {
  display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; padding: 0; margin: .9rem 0 0;
  color: var(--texto-suave); font-size: var(--t-nota); font-weight: 600;
}
.abertura__selos li { display: inline-flex; align-items: center; gap: .4rem; }
.abertura__selos li::before {
  content: ""; width: 16px; height: 16px; border-radius: 50%; flex: 0 0 auto;
  background: var(--vermelho) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 8.5 2.3 2.3L11.5 6'/%3E%3C/svg%3E") center/100% no-repeat;
}
.abertura { padding-block: clamp(56px, 7vw, 96px); }
.abertura__grade { display: block; position: relative; }
.abertura > .contem:not(.abertura__grade) {
  margin-left: max(var(--margem), calc((100% - var(--largura)) / 2 + var(--margem)));
  margin-right: var(--margem);
}
.abertura .trilha, .abertura .trilha a { color: var(--texto-suave); }

/* Topo simples (vagas, serviços, formulários, textos) */
main > .secao--creme:first-child, main > .secao--cinza:first-child {
  padding-block: clamp(48px, 6vw, 84px);
  background: linear-gradient(180deg, var(--papel) 0%, #FAFAFA 100%);
  border-bottom: 1px solid var(--borda);
}
main > .secao--creme:first-child h1, main > .secao--cinza:first-child h1 {
  font-size: var(--t-display); text-transform: uppercase; line-height: 1.06; letter-spacing: -.02em;
}
main > .secao--creme:first-child .intro { margin-bottom: 1.4rem; }

@media (max-width: 760px) {
  .hero, .abertura { background: var(--papel); padding: 0; }
  .hero__foto, .abertura__foto { inset: 0 0 auto; height: 320px; }
  .hero::before, .abertura::before { inset: 0 0 auto; height: 320px; background: linear-gradient(180deg, rgba(20, 20, 20, .25), rgba(20, 20, 20, 0) 60%); }
  .hero__in { min-height: 0; padding: 236px 0 36px; }
  .abertura { padding: 236px 0 36px; }
  .hero__cartao, .abertura__grade > div, .abertura > .contem:not(.abertura__grade) { padding: 28px 22px; border-radius: 22px; }
  .abertura > .contem:not(.abertura__grade) { margin-inline: var(--margem); width: auto; }
  .abertura__grade { padding-inline: var(--margem); }
  .hero h1, .abertura h1, main > .secao--creme:first-child h1 { font-size: 1.7rem; }
  .hero__botoes .btn, .abertura__acoes .btn { width: 100%; }
}

/* 6. Componentes ------------------------------------------------------------ */
/* Cartões */
.cartao {
  position: relative; display: flex; flex-direction: column; gap: .4rem;
  background: #fff; border-radius: var(--raio); padding: clamp(24px, 3vw, 32px) clamp(22px, 2.5vw, 28px);
  box-shadow: var(--sombra-s);
  transition: transform var(--dur) var(--suave), box-shadow var(--dur) var(--suave);
}
.cartao:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
.cartao h2, .cartao h3 { font-size: 1.3rem; margin-bottom: .35rem; }
.cartao p { color: var(--texto-suave); margin-bottom: .6rem; }
.cartao p:last-child { margin-bottom: 0; }
.cartao ul { margin: 0 0 .6rem; padding-left: 1.1rem; color: var(--texto-suave); display: grid; gap: .25rem; }
.cartao--destaque::before {
  content: ""; width: 36px; height: 3px; border-radius: 3px; background: var(--vermelho); margin-bottom: 12px;
}
.cartao .mais {
  align-self: flex-start; margin-top: auto; display: inline-flex; align-items: center; gap: .45rem;
  min-height: 44px; padding: .6rem 1.3rem; border-radius: var(--pilula);
  background: var(--preto); color: #fff; text-decoration: none;
  font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  transition: background var(--dur), gap var(--dur) var(--suave);
}
.cartao .mais:hover { background: var(--vermelho); color: #fff; gap: .7rem; }
.cartao .mais span { font-size: 1rem; line-height: 1; }
.cartao__icone {
  width: 48px; height: 48px; border-radius: 14px; background: var(--vermelho-claro); color: var(--vermelho);
  display: grid; place-items: center; margin-bottom: .6rem;
}
.secao--cinza .cartao, .secao--creme .cartao { box-shadow: var(--sombra-s); }

/* Ícones de linha */
.icone-linha {
  width: 52px; height: 52px; fill: none; stroke: var(--vermelho); stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto;
}

/* Etiquetas */
.etiquetas { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 1.2rem 0 0; }
.etiquetas li {
  background: var(--papel); border-radius: var(--pilula); padding: .5rem 1.05rem; font-weight: 600; font-size: .95rem;
}
.secao--cinza .etiquetas li, .secao--creme .etiquetas li { background: #fff; box-shadow: var(--sombra-s); }

/* Passos numerados */
.passos { counter-reset: passo; list-style: none; padding: 0; margin: 2rem 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.passos li {
  counter-increment: passo; background: #fff; border-radius: var(--raio); padding: 28px 24px; box-shadow: var(--sombra-s);
}
.passos li::before {
  content: counter(passo, decimal-leading-zero); display: inline-block; margin-bottom: 14px;
  font-size: 2rem; font-weight: 800; line-height: 1; color: var(--vermelho); letter-spacing: -.03em;
}
.passos h3 { font-size: 1.15rem; margin-bottom: .4rem; }
.passos p { color: var(--texto-suave); margin: 0; }
@media (max-width: 960px) { .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .passos { grid-template-columns: 1fr; } }

/* Etapas (Como funciona): linha do tempo */
.etapas { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; max-width: 880px; position: relative; }
.etapas li {
  position: relative; background: #fff; border-radius: var(--raio); padding: 26px 28px 26px 32px;
  box-shadow: var(--sombra-s); overflow: hidden;
}
.etapas li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--vermelho); }
.etapas h3 { font-size: 1.2rem; }
.etapas p { color: var(--texto-suave); margin-bottom: .5em; }
.etapas p:last-child { margin-bottom: 0; }
.etapa__voce { font-size: var(--t-nota); }
.etapa__voce strong { color: var(--grafite); }

/* Listas */
.lista-check { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.lista-check li { position: relative; padding-left: 2.1rem; }
.lista-check li::before {
  content: ""; position: absolute; left: 0; top: .2em; width: 22px; height: 22px; border-radius: 50%;
  background: var(--vermelho-claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23BA131A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 8.5 2.3 2.3L11.5 6'/%3E%3C/svg%3E") center/16px no-repeat;
}
.secao--escura .lista-check li::before { background-color: rgba(255, 255, 255, .12); }
.lista-pontos { padding-left: 1.2rem; display: grid; gap: .5rem; color: var(--texto-suave); }
.lista-pontos li::marker { color: var(--vermelho); }

/* Perguntas frequentes */
.faq { display: grid; gap: 12px; max-width: 880px; }
.faq details { background: var(--papel); border-radius: 16px; overflow: hidden; transition: background var(--dur); }
.secao--cinza .faq details, .secao--creme .faq details { background: #fff; box-shadow: var(--sombra-s); }
.faq details[open] { background: #fff; box-shadow: var(--sombra-s); }
.faq summary {
  cursor: pointer; list-style: none; position: relative; padding: 20px 64px 20px 24px; font-weight: 700; line-height: 1.4;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; position: absolute; right: 20px; top: 50%; width: 32px; height: 32px; margin-top: -16px; border-radius: 50%;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23BA131A' stroke-width='2' stroke-linecap='round' d='M8 3v10M3 8h10'/%3E%3C/svg%3E") center/16px no-repeat;
  box-shadow: var(--sombra-s); transition: transform var(--dur) var(--suave), background-color var(--dur);
}
.faq details[open] summary::after { transform: rotate(45deg); background-color: var(--vermelho-claro); }
.faq summary:hover { color: var(--vermelho); }
.faq summary:focus-visible { outline-offset: -3px; border-radius: 16px; }
.faq details > div { padding: 0 24px 22px; color: var(--texto-suave); }
.faq details > div p:last-child { margin-bottom: 0; }

/* Chamada final */
.chamada {
  text-align: center; background: var(--papel); border-radius: var(--raio-l);
  padding: clamp(40px, 6vw, 72px) clamp(20px, 4vw, 48px);
}
.chamada .intro { margin: 0 auto 1.6rem; }
.chamada__acoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.secao--cinza .chamada, .secao--creme .chamada { background: #fff; box-shadow: var(--sombra-s); }
.faixa-candidato {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
  background: var(--papel); border-radius: var(--raio); padding: 22px 26px;
}
.faixa-candidato p { margin: 0; }
.aviso-sazonal { margin-top: 1.6rem; background: var(--papel); border-radius: 14px; padding: 16px 20px; }

/* Texto corrido (política, sobre) */
.texto { max-width: 800px; }
.texto h2 { font-size: 1.4rem; margin-top: 2.2rem; }
.texto table { border-collapse: collapse; width: 100%; margin: 1rem 0; font-size: .95rem; }
.texto th, .texto td { border: 1px solid var(--borda); padding: .6rem .7rem; text-align: left; vertical-align: top; }
.texto th { background: var(--papel); }

/* Blocos [PREENCHER COM DADO REAL]: só existem no protótipo */
.preencher { border: 2px dashed var(--vermelho); border-radius: 14px; padding: 22px; background: #FFF8F7; }
.preencher__rotulo { font-weight: 800; color: var(--vermelho-escuro); font-size: .9rem; letter-spacing: .02em; }

/* Formulários */
.form-grade { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .55fr); gap: clamp(28px, 4vw, 48px); align-items: start; }
.formulario {
  background: #fff; border-radius: var(--raio-l); padding: clamp(22px, 4vw, 40px); box-shadow: var(--sombra);
}
.campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 22px; }
.campo--largo { grid-column: 1 / -1; }
.campo { min-width: 0; }
.campo label { display: block; font-weight: 700; margin-bottom: .4rem; }
.campo .dica { display: block; font-weight: 400; color: var(--texto-suave); font-size: var(--t-nota); margin-top: .1rem; }
.campo input, .campo select, .campo textarea,
.requisicao__campo input, .requisicao__campo select {
  width: 100%; min-height: 52px; padding: .8rem 1rem; color: var(--texto);
  background: #fff; border: 1.5px solid var(--borda-campo); border-radius: var(--raio-s);
  transition: border-color var(--dur), box-shadow var(--dur);
}
.campo textarea { min-height: 110px; resize: vertical; }
.campo select, .requisicao__campo select {
  appearance: none; padding-right: 2.6rem; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232F2B25' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m4 6 4 4 4-4'/%3E%3C/svg%3E") right 1rem center/16px no-repeat;
}
.campo input:hover, .campo select:hover, .campo textarea:hover,
.requisicao__campo input:hover, .requisicao__campo select:hover { border-color: var(--grafite); }
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible,
.requisicao__campo input:focus-visible, .requisicao__campo select:focus-visible {
  outline: 3px solid var(--foco); outline-offset: 2px; border-color: var(--foco);
}
.campo [aria-invalid="true"] { border-color: var(--vermelho); box-shadow: 0 0 0 3px var(--vermelho-claro); }
.erro-campo { color: var(--vermelho); font-weight: 600; font-size: .92rem; margin: .35rem 0 0; }
.obrigatorio { color: var(--vermelho); }
.campo input[type="file"] { padding: .6rem; cursor: pointer; }
.campo input[type="file"]::file-selector-button {
  margin-right: 12px; padding: .5rem 1rem; border: 0; border-radius: var(--pilula);
  background: var(--preto); color: #fff; font: 700 .78rem/1 var(--fonte); letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
}
.campo input[type="file"]::file-selector-button:hover { background: var(--vermelho); }
.etapa { border: 0; padding: 0; margin: 0 0 8px; min-width: 0; }
.etapa > legend { font-weight: 800; font-size: 1.15rem; margin-bottom: 16px; padding: 0; }
.etapa__acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.progresso { display: flex; align-items: center; gap: 12px; font-weight: 700; color: var(--vermelho); margin-bottom: 16px; font-size: var(--t-nota); letter-spacing: .04em; text-transform: uppercase; }
.progresso::after { content: ""; flex: 1; height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--vermelho) var(--progresso-pct, 50%), var(--papel-escuro) 0); }
.progresso--fim { --progresso-pct: 100%; }
.opcoes { border: 0; padding: 0; margin: 0; }
.opcoes > legend { font-weight: 700; margin-bottom: .5rem; padding: 0; }
.opcao {
  display: inline-flex; align-items: center; gap: .7rem; margin: 0 10px 10px 0; min-height: 48px;
  padding: 10px 18px 10px 14px; background: var(--papel); border: 2px solid var(--papel); border-radius: 14px;
  font-weight: 600; cursor: pointer; transition: border-color var(--dur), background var(--dur);
}
.opcao:hover { border-color: var(--borda-campo); }
.opcao:has(input:checked) { background: #fff; border-color: var(--vermelho); }
.opcao:has(input:focus-visible) { outline: 3px solid var(--foco); outline-offset: 3px; }
.opcao input { width: 20px; height: 20px; min-height: 0; padding: 0; margin: 0; accent-color: var(--vermelho); }
.campo .caixa { display: flex; gap: .8rem; align-items: flex-start; font-weight: 500; cursor: pointer; }
.campo .caixa input { width: 22px; height: 22px; min-height: 0; margin-top: .15rem; flex: 0 0 auto; accent-color: var(--vermelho); }
.aviso-lgpd { font-size: .92rem; color: var(--texto-suave); margin: 1.2rem 0; }
.alerta { border-radius: 14px; padding: 14px 18px; margin-bottom: 20px; font-weight: 600; }
.alerta--erro { background: var(--vermelho-claro); color: #7A0B10; border: 1px solid #F3B9BB; }
.isca { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.lado { background: var(--papel); border-radius: var(--raio); padding: clamp(22px, 3vw, 30px); position: sticky; top: calc(var(--topo-altura) + 20px); }
.lado h2 { font-size: 1.3rem; }
.lado ol, .lado ul { padding-left: 1.2rem; margin: 0 0 1rem; display: grid; gap: .4rem; }
.lado__sep { border-top: 1px solid var(--borda); margin: 20px 0; }
.lado .btn { width: 100%; }
@media (max-width: 900px) { .form-grade { grid-template-columns: 1fr; } .lado { position: static; } }
@media (max-width: 600px) { .campos { grid-template-columns: 1fr; } .etapa__acoes .btn { width: 100%; } }

/* 7. Página inicial --------------------------------------------------------- */
/* Fatos com ícones */
.fatos-icones { padding: clamp(32px, 4vw, 56px) 0; background: #fff; border-bottom: 1px solid var(--borda); }
.fatos-icones__lista { list-style: none; margin: 0 auto; padding-inline: var(--margem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.fatos-icones li { display: flex; gap: 18px; align-items: center; }
.fatos-icones .icone-linha { width: 56px; height: 56px; padding: 10px; border-radius: 16px; background: var(--vermelho-claro); }
.fatos-icones p { margin: 0; color: var(--texto-suave); line-height: 1.45; font-size: .98rem; }
.fatos-icones strong { display: block; color: var(--grafite); font-size: 1.08rem; margin-bottom: 2px; }

/* Para candidatos */
.carreira { padding-block: var(--secao); background: #fff; }
.carreira__grade { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.carreira__texto > p { max-width: 48ch; color: var(--texto-suave); }
.carreira__foto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio-l); box-shadow: var(--sombra); }
.lista-vagas-home { list-style: none; margin: 24px 0 28px; padding: 0; display: grid; gap: 10px; }
.lista-vagas-home a {
  display: flex; gap: 14px; align-items: center; padding: 14px 18px; border-radius: 14px;
  background: var(--papel); color: var(--grafite); text-decoration: none;
  transition: background var(--dur), transform var(--dur) var(--suave), box-shadow var(--dur);
}
.lista-vagas-home a:hover { background: #fff; box-shadow: var(--sombra-s); transform: translateX(4px); }
.lista-vagas-home svg { width: 22px; height: 22px; fill: none; stroke: var(--vermelho); stroke-width: 2; flex: 0 0 auto; }
.lista-vagas-home span { display: grid; color: var(--texto-suave); font-size: var(--t-nota); }
.lista-vagas-home strong { color: var(--grafite); font-size: 1rem; }

/* Para empresas: serviços */
.talentos { background: var(--papel); padding-block: var(--secao); }
.talentos__cabeca { text-align: center; max-width: 780px; margin: 0 auto clamp(32px, 4vw, 52px); }
.talentos__cabeca p { color: var(--texto-suave); font-size: var(--t-frase); }
.servicos-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.servicos-grade li {
  display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
  background: #fff; border-radius: var(--raio); padding: clamp(28px, 3vw, 40px) 28px; box-shadow: var(--sombra-s);
  transition: transform var(--dur) var(--suave), box-shadow var(--dur) var(--suave);
}
.servicos-grade li:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.servicos-grade .icone-linha { width: 64px; height: 64px; padding: 12px; border-radius: 18px; background: var(--papel); stroke: var(--grafite); margin-bottom: 12px; transition: background var(--dur), stroke var(--dur); }
.servicos-grade li:hover .icone-linha { background: var(--vermelho-claro); stroke: var(--vermelho); }
.servicos-grade h3 { font-size: 1.3rem; }
.servicos-grade p { color: var(--texto-suave); margin-bottom: 22px; }
.servicos-grade .btn { margin-top: auto; }
.servicos-grade__ajuda { background: var(--preto); justify-content: center; }
.servicos-grade__ajuda h3 { color: #fff; }
.servicos-grade__ajuda p { color: var(--texto-claro); }

/* Requisição (formulário vivo) */
.pedido { background: var(--vermelho); padding-block: var(--secao); position: relative; overflow: hidden; }
.pedido::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 80% at 15% 20%, rgba(255, 255, 255, .08), transparent 60%), radial-gradient(50% 70% at 90% 90%, rgba(0, 0, 0, .12), transparent 60%);
}
.pedido__in { position: relative; display: grid; place-items: center; }
.requisicao {
  background: #fff; color: var(--grafite); width: min(840px, 100%); padding: clamp(24px, 4vw, 48px);
  display: grid; gap: 24px; border-radius: var(--raio-l); box-shadow: var(--sombra-l);
}
.requisicao h2 { margin-bottom: 8px; }
.requisicao__apoio { margin: 0; max-width: 52ch; color: var(--texto-suave); }
.requisicao__tipo { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.requisicao__tipo legend { font-weight: 700; margin-bottom: 12px; padding: 0; }
.requisicao__tipo label {
  display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 16px 22px;
  background: var(--papel); border: 2px solid var(--papel); border-radius: 16px; font-weight: 700; cursor: pointer;
  transition: border-color var(--dur), background var(--dur);
}
.requisicao__tipo label:hover { border-color: var(--borda-campo); }
.requisicao__tipo label:has(input:checked) { background: #fff; border-color: var(--vermelho); }
.requisicao__tipo label:has(input:focus-visible) { outline: 3px solid var(--foco); outline-offset: 4px; }
.requisicao__tipo input { width: 20px; height: 20px; accent-color: var(--vermelho); margin: 0; }
.requisicao__campos { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, .7fr) minmax(0, 1fr); gap: 16px; }
.requisicao__campo { margin: 0; display: grid; gap: 8px; align-content: start; }
.requisicao__campo label { font-weight: 700; }
.requisicao__resumo { margin: 0; background: var(--papel); border-radius: var(--raio-s); padding: 16px 20px; font-weight: 700; }
.requisicao__pe { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; }
.requisicao__dado { margin: 0; font-size: var(--t-nota); color: var(--texto-suave); }
.requisicao__dado--link { justify-self: end; color: var(--grafite); font-weight: 700; padding: 10px 0; }

/* Parceiro: foto e passo a passo */
.parceiro { padding-block: var(--secao); background: #fff; }
.parceiro__grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 6vw, 88px); align-items: center; }
.parceiro__foto { margin: 0; }
.parceiro__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio-l); box-shadow: var(--sombra); }
.parceiro__foto figcaption { font-size: var(--t-nota); color: var(--texto-suave); margin-top: 10px; }
.parceiro__texto > p { color: var(--texto-suave); }
.passos-linha { counter-reset: passo; list-style: none; margin: 24px 0 32px; padding: 0; display: grid; gap: 16px; }
.passos-linha li { counter-increment: passo; display: grid; grid-template-columns: 44px 1fr; column-gap: 16px; align-items: center; color: var(--texto-suave); }
.passos-linha li::before {
  content: counter(passo); grid-row: span 2; width: 44px; height: 44px; border-radius: 50%;
  background: var(--vermelho); color: #fff; font-weight: 800; display: grid; place-items: center;
}
.passos-linha strong { color: var(--grafite); }

/* Cargos por segmento */
.segmentos-home { padding-block: var(--secao); background: var(--papel); text-align: center; }
.segmentos-home__nota { color: var(--texto-suave); }
.segmentos-home__grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); margin-top: 40px; text-align: left; }
.cardapio__grupo { background: #fff; border-radius: var(--raio); padding: 28px; box-shadow: var(--sombra-s); }
.cardapio__grupo h3 { font-size: 1.25rem; margin-bottom: 16px; }
.cardapio__grupo h3 a { color: var(--grafite); text-decoration: none; }
.cardapio__grupo h3 a:hover { color: var(--vermelho); }
.cardapio__grupo ul { list-style: none; margin: 0; padding: 0; display: grid; }
.cardapio__grupo li { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-top: 1px solid var(--borda); }
.cardapio__grupo li:first-child { border-top: 0; padding-top: 0; }
.cardapio__valor { white-space: nowrap; color: var(--texto-suave); font-variant-numeric: tabular-nums; font-size: var(--t-nota); }
.segmentos-home__pe { margin-top: 32px; }

/* Dúvidas e "Vamos começar?" */
.duvidas { padding-block: var(--secao); background: #fff; }
.duvidas__grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 48px; align-items: start; }
.duvidas h2 { position: sticky; top: calc(var(--topo-altura) + 24px); }
.comecar { background: var(--papel); padding-block: var(--secao); }
.comecar__in { text-align: center; }
.comecar p { color: var(--texto-suave); font-size: var(--t-frase); margin-bottom: 24px; }

@media (max-width: 960px) {
  .servicos-grade, .segmentos-home__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .duvidas__grade { grid-template-columns: 1fr; gap: 24px; }
  .duvidas h2 { position: static; }
}
@media (max-width: 760px) {
  .fatos-icones__lista, .carreira__grade, .parceiro__grade, .servicos-grade, .segmentos-home__grade { grid-template-columns: 1fr; }
  .fatos-icones li { align-items: flex-start; }
  .carreira__foto { order: -1; aspect-ratio: 16 / 10; }
  .requisicao__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .requisicao__campo--cargo { grid-column: 1 / -1; }
  .requisicao__tipo { grid-template-columns: 1fr; }
  .requisicao__pe { grid-template-columns: 1fr; text-align: center; }
  .requisicao__pe .btn { width: 100%; }
  .requisicao__dado--link { justify-self: center; }
}

/* 8. Vagas ------------------------------------------------------------------ */
.trilha { font-size: var(--t-nota); color: var(--texto-suave); margin-bottom: 1rem; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.trilha a { color: var(--texto-suave); display: inline-block; padding: 4px 0; } /* alvo ≥ 24 px (WCAG 2.5.8) */
.trilha a:hover { color: var(--vermelho); }
.resumo-vaga { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 1.4rem 0 0; }
.resumo-vaga div { background: #fff; border-radius: 14px; padding: 14px 16px; box-shadow: var(--sombra-s); }
.resumo-vaga dt { font-size: var(--t-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--vermelho); }
.resumo-vaga dd { margin: .2rem 0 0; font-weight: 600; }
.texto-vaga h2 { font-size: 1.3rem; margin-top: 1.8rem; }
.texto-vaga h2:first-child { margin-top: 0; }
.lista-vaga { padding-left: 1.2rem; display: grid; gap: .4rem; }
.lista-vagas { list-style: none; padding: 0; margin: 0; }
.cartao-vaga { padding: 24px; }
.cartao-vaga h2, .cartao-vaga h3 { font-size: 1.15rem; margin: 0 0 .3rem; }
.cartao-vaga h2 a, .cartao-vaga h3 a { color: var(--grafite); text-decoration: none; }
.cartao-vaga h2 a::after, .cartao-vaga h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.cartao-vaga::after {
  content: "→"; position: absolute; right: 22px; bottom: 20px; color: var(--vermelho); font-weight: 800; font-size: 1.1rem;
  opacity: 0; transform: translateX(-6px); transition: opacity var(--dur), transform var(--dur) var(--suave);
}
.cartao-vaga:hover::after { opacity: 1; transform: none; }
.cartao-vaga:focus-within { outline: 3px solid var(--foco); outline-offset: 2px; }
.cartao-vaga p { margin: 0; padding-right: 28px; }
.busca-resultado { font-weight: 700; margin-bottom: 24px; }
.lista-vagas li[hidden] { display: none; }

/* Rodapé -------------------------------------------------------------------- */
.rodape { background: var(--preto); color: var(--texto-claro); border-top: 4px solid var(--vermelho); }
.rodape__in {
  max-width: var(--largura); margin-inline: auto; padding: clamp(48px, 5vw, 72px) var(--margem) 32px;
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: clamp(28px, 3vw, 40px);
}
.rodape h2 { font-size: var(--t-micro); letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; }
.rodape ul { list-style: none; padding: 0; margin: 0 0 1.4rem; display: grid; gap: .55rem; }
.rodape a { color: #fff; text-decoration: none; }
.rodape a:hover { color: var(--vermelho-suave); text-decoration: underline; }
.rodape a.btn, .rodape a.btn:hover { color: #fff; text-decoration: none; }
.rodape__col > p { color: var(--texto-claro); }
.rodape__col img { width: 150px; margin-bottom: 1.1rem; }
.rodape__redes { display: flex; flex-wrap: wrap; gap: 8px; }
.rodape__redes li a {
  display: inline-block; padding: .45rem .95rem; border: 1px solid rgba(255, 255, 255, .25); border-radius: var(--pilula);
  font-size: var(--t-nota); font-weight: 600; transition: background var(--dur), border-color var(--dur);
}
.rodape__redes li a:hover { background: rgba(255, 255, 255, .1); border-color: #fff; text-decoration: none; color: #fff; }
.rodape__base {
  max-width: var(--largura); margin-inline: auto; padding: 22px var(--margem) 28px; font-size: var(--t-nota);
  border-top: 1px solid rgba(255, 255, 255, .12);
}
.rodape__base p { margin: .35rem 0; }
.rodape__base strong { color: #fff; }
.rodape .link-btn { color: #fff; }
.creditos { color: #A8A29B; font-size: var(--t-micro); }
.creditos a { color: #C9C3BB; }
@media (max-width: 900px) { .rodape__in { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape__in { grid-template-columns: 1fr; gap: 28px; } }

/* Flutuantes: WhatsApp, barra do celular, cookies ---------------------------- */
.whats-flutuante {
  position: fixed; right: 18px; bottom: 18px; z-index: 90; width: 58px; height: 58px; border-radius: 50%;
  display: grid; place-items: center; background: var(--whats); color: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
  transition: transform var(--dur) var(--suave), background var(--dur);
}
.whats-flutuante:hover { background: var(--whats-escuro); color: #fff; transform: scale(1.06); }

.barra-movel { display: none; }
@media (max-width: 760px) {
  .barra-movel {
    display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
    background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); box-shadow: 0 -6px 24px rgba(0, 0, 0, .1);
  }
  .barra-movel a {
    display: flex; align-items: center; justify-content: center; min-height: 48px; border-radius: var(--pilula);
    border: 2px solid var(--preto); color: var(--preto); font-weight: 700; text-decoration: none; font-size: .9rem;
  }
  .barra-movel a.barra-movel__principal { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }
  body.com-barra .whats-flutuante { display: none; }
  body.com-barra .rodape__base { padding-bottom: 110px; }
  body.com-barra .cookies { bottom: 84px; }
}

.cookies {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 95; max-width: 780px; margin-inline: auto;
  background: #fff; border-radius: var(--raio); box-shadow: var(--sombra-l);
  padding: 20px 22px; display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: center;
  animation: cookies-entrar .4s var(--suave);
}
.cookies p { margin: 0; flex: 1 1 320px; font-size: .95rem; }
.cookies__acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.cookies .btn { min-height: 46px; padding: .6rem 1.3rem; font-size: .8rem; }
body.com-cookies { padding-bottom: 160px; }
@keyframes cookies-entrar { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* Animações de entrada (só com JavaScript e sem "reduzir movimento") -------- */
@media (prefers-reduced-motion: no-preference) {
  html.js [data-revelar] {
    opacity: 0; transform: translateY(18px);
    transition: opacity var(--dur-longa) var(--suave), transform var(--dur-longa) var(--suave);
    transition-delay: calc(var(--i, 0) * 70ms);
  }
  html.js [data-revelar].visivel { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .cartao:hover, .servicos-grade li:hover, .btn:hover, .lista-vagas-home a:hover, .whats-flutuante:hover { transform: none; }
}

/* Impressão ----------------------------------------------------------------- */
@media print {
  .faixa-topo, .topo__menu-btn, .topo__nav, .barra-movel, .whats-flutuante, .cookies, .pular { display: none !important; }
  .topo { position: static; background: #fff; }
  .hero__foto, .abertura__foto, .hero::before, .abertura::before { display: none; }
  .hero, .abertura { background: #fff; }
  .hero__cartao, .abertura__grade > div, .abertura > .contem:not(.abertura__grade), .cartao, .formulario { box-shadow: none; border: 1px solid var(--borda); }
  a { color: inherit; }
}
