
html.js .em-body [data-entra]{ opacity:0; transform:translateY(18px); }
.em-body.pronto [data-entra]{
  animation:em-entra .8s var(--ease) both;
  animation-delay:calc(var(--i,0) * .11s + .15s);
}
@keyframes em-entra{ to{ opacity:1; transform:none; } }

.em-body{ background:var(--nuvem); }
.em-body [hidden]{ display:none !important; }

.em-topo{
  position:relative; isolation:isolate;
  padding:clamp(132px,16vw,192px) 20px clamp(120px,14vw,164px);
  background:var(--tinta);
  overflow:hidden;
}
.em-topo-foto{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:saturate(.72) brightness(.62);
  z-index:-2;
}
.em-topo-veu{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(100deg, rgba(10,24,34,.88) 0%, rgba(10,24,34,.72) 42%, rgba(10,24,34,.28) 78%, rgba(10,24,34,.18) 100%),
    linear-gradient(180deg, rgba(10,24,34,.5) 0%, rgba(10,24,34,0) 26%);
}
.em-topo-inner{ position:relative; max-width:1020px; margin:0 auto; }
.em-migalha{
  font-size:var(--t-legenda); letter-spacing:var(--ls-solto);
  color:rgba(255,255,255,.72); margin-bottom:14px;
}
.em-migalha a{ color:rgba(255,255,255,.72); text-decoration:none; }
.em-migalha a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.em-topo h1{
  font-size:var(--t-frase); font-weight:600; letter-spacing:var(--ls-titulo);
  color:#fff; margin:0; max-width:14ch; text-wrap:balance;
  text-shadow:var(--sombra-texto);
}
.em-topo .em-lede{
  font-size:var(--t-lede); line-height:1.6; color:rgba(255,255,255,.9);
  max-width:52ch; margin:18px 0 0; text-wrap:pretty;
  text-shadow:0 1px 12px rgba(10,24,34,.5);
}

.em-palco{ padding:0 20px var(--respiro); }
.em-vaga{
  position:relative; z-index:2;
  max-width:1020px;
  margin:calc(-1 * clamp(78px,10vw,104px)) auto 0;
  background:#fff; border:1px solid var(--hairline); border-radius:22px;
  padding:clamp(24px,4.4vw,40px) clamp(22px,4.4vw,44px);
  box-shadow:0 24px 60px rgba(20,60,110,.12), 0 4px 14px rgba(20,60,110,.06);
}
.em-vaga-selo{
  display:block; margin:0;
  font-size:var(--t-selo); font-weight:600; letter-spacing:var(--ls-alta); text-transform:uppercase;
  color:rgba(18,36,48,.6);
}
.em-vaga h2{
  font-size:var(--t-sub); font-weight:600; letter-spacing:var(--ls-apertado);
  color:var(--tinta); margin:10px 0 0;
}
.em-vaga h2 small{ font-size:.62em; font-weight:500; color:rgba(18,36,48,.5); letter-spacing:0; }

.em-ficha{
  list-style:none; padding:0; margin:18px 0 0;
  display:flex; flex-wrap:wrap; justify-content:flex-start; gap:10px;
}
.em-ficha:has(> div:nth-child(5)){ justify-content:center }
.em-ficha > div{ flex:0 1 calc(25% - 7.5px); min-width:160px; }
.em-ficha div{
  background:var(--nuvem); border:1px solid var(--hairline); border-radius:14px; padding:12px 14px;
}
.em-ficha dt{
  font-size:var(--t-selo); font-weight:600; letter-spacing:var(--ls-alta); text-transform:uppercase;
  color:rgba(18,36,48,.55); margin:0 0 5px;
}
.em-ficha dd{ margin:0; font-size:var(--t-corpo); line-height:1.35; color:var(--tinta); font-weight:600; }

.em-vaga-txt{
  font-size:var(--t-corpo-lg); line-height:1.6; color:rgba(18,36,48,.74);
  margin:18px 0 0; max-width:58ch;
}
.em-vaga-acoes{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:22px; }
.em-vaga-tel{ font-size:var(--t-corpo); color:rgba(18,36,48,.7); text-decoration:none; }
.em-vaga-tel strong{ color:var(--tinta); font-weight:600; letter-spacing:-.01em; }
.em-vaga-tel:hover strong{ text-decoration:underline; text-underline-offset:3px; }

.em-trabalho{
  max-width:1020px; margin:clamp(56px,7vw,88px) auto 0;
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px);
  align-items:center;
}
.em-trabalho h2{
  font-size:var(--t-titulo); font-weight:600; letter-spacing:var(--ls-titulo);
  color:var(--tinta); margin:0;
}
.em-sec-lede{
  font-size:var(--t-lede); line-height:1.6; color:rgba(18,36,48,.66);
  margin:10px 0 0; max-width:44ch;
}
.em-tarefas{ list-style:none; padding:0; margin:clamp(20px,2.6vw,28px) 0 0; counter-reset:t; }
.em-tarefas li{
  counter-increment:t; position:relative;
  padding:14px 0 14px 46px;
  font-size:var(--t-corpo-lg); line-height:1.55; color:rgba(18,36,48,.78);
  border-top:1px solid var(--hairline);
}
.em-tarefas li:last-child{ border-bottom:1px solid var(--hairline); }
.em-tarefas li b{ color:var(--tinta); font-weight:600; }
.em-tarefas li::before{
  content:counter(t,decimal-leading-zero);
  position:absolute; left:0; top:calc(14px + .15em);
  font-size:var(--t-numero); font-weight:600; font-variant-numeric:tabular-nums;
  letter-spacing:var(--ls-alta); color:var(--azul);
}
.em-trabalho-foto{ margin:0; }
.em-trabalho-foto img{
  width:100%; height:auto; display:block;
  border-radius:18px; box-shadow:0 18px 44px rgba(20,60,110,.16);
}
.em-trabalho-foto figcaption{
  margin-top:10px; font-size:var(--t-legenda); line-height:1.5; color:rgba(18,36,48,.55);
}

.em-palco--lista, .em-palco--faixa{ margin-top:calc(-1 * clamp(48px,6vw,64px)); }
.em-palco--lista .em-vaga:first-of-type,
.em-palco--faixa .em-vaga:first-of-type{ margin-top:0; }

.em-lista-cab{
  max-width:1020px; margin:0 auto 14px;
  font-size:var(--t-selo); font-weight:600; letter-spacing:var(--ls-alta);
  text-transform:uppercase; color:rgba(255,255,255,.82);
}
.em-palco--lista .em-vaga-selo, .em-palco--faixa .em-vaga-selo{ display:none; }

.em-palco--lista .em-vaga{
  margin:0 auto 16px; padding:26px 30px; border-radius:20px;
  display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto auto;
  gap:0 28px; align-items:center;
  transition:transform .18s ease, box-shadow .18s ease;
}
.em-palco--lista .em-vaga h2{ grid-column:1; font-size:clamp(21px,2vw,26px); margin:0; }
.em-palco--lista .em-ficha{ grid-column:1; display:flex; flex-wrap:wrap; gap:0; margin:16px 0 0; }
.em-palco--lista .em-ficha > div{
  flex:0 1 auto; background:none; border:0; border-radius:0; padding:0;
  display:flex; gap:6px; align-items:baseline; font-size:14px; line-height:1.5;
}
.em-palco--lista .em-ficha > div:not(:last-child){ margin-right:28px }
.em-palco--lista .em-ficha dt{
  font-size:14px; text-transform:none; letter-spacing:0; font-weight:400;
  color:rgba(18,36,48,.5); margin:0;
}
.em-palco--lista .em-ficha dd{ font-size:14px; font-weight:600; }
.em-palco--lista .em-vaga-txt{ grid-column:1; margin:14px 0 0; font-size:15px; max-width:62ch; }
.em-palco--lista .em-vaga-acoes{
  grid-column:2; grid-row:1 / -1; align-self:center; margin:0;
  flex-direction:column; align-items:stretch; gap:8px; text-align:center;
}
@media (hover:hover){
  .em-palco--lista .em-vaga:hover{ transform:translateY(-2px); box-shadow:0 14px 40px rgba(10,24,34,.10); }
}

.em-palco--faixa .em-vaga{
  margin:0 auto 10px; padding:13px 16px 13px 20px; border-radius:14px;
  display:grid; grid-template-columns:290px minmax(0,1fr) auto; gap:0 16px; align-items:center;
  transition:transform .18s ease, box-shadow .18s ease;
}
.em-palco--faixa .em-vaga h2{
  grid-column:1; font-size:16px; margin:0; letter-spacing:var(--ls-apertado);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
}
.em-palco--faixa .em-vaga h2 small{ font-size:.72em; }
.em-palco--faixa .em-vaga-txt{ display:none; }
.em-palco--faixa .em-ficha{ grid-column:2; margin:0; }
.em-palco--faixa .em-vaga-acoes{ grid-column:3; grid-row:auto; align-self:center; }
.em-palco--faixa .em-ficha > div:nth-child(n+3){ display:none; }
.em-palco--faixa .em-ficha{ display:flex; flex-wrap:nowrap; gap:6px; align-items:center; }
.em-palco--faixa .em-ficha > div{
  background:none; border:1px solid var(--hairline); border-radius:999px; padding:5px 11px;
  display:flex; align-items:center; flex:0 1 auto; min-width:0;
}
.em-palco--faixa .em-ficha > div:first-child{ flex:0 0 auto; max-width:66% }
.em-palco--faixa .em-ficha dt{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap;
}
.em-palco--faixa .em-ficha dd{
  font-size:12.5px; font-weight:600; line-height:1; color:rgba(18,36,48,.78);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
}
.em-palco--faixa .em-vaga-acoes{ flex:none; margin:0; gap:0; }
.em-palco--faixa .em-vaga-tel{ display:none; }
.em-palco--faixa .em-vaga-acoes .btn-cta{
  width:34px; height:34px; padding:0; border-radius:50%;
  position:relative; font-size:0;
}
.em-palco--faixa .em-vaga-acoes .btn-cta::after{
  content:""; position:absolute; top:50%; left:50%;
  width:15px; height:15px; transform:translate(-50%,-50%);
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M12.5 5.5 19 12l-6.5 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M12.5 5.5 19 12l-6.5 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (hover:hover){
  .em-palco--faixa .em-vaga:hover{ transform:translateY(-2px); box-shadow:0 12px 32px rgba(10,24,34,.10); }
  .em-palco--faixa .em-vaga:hover .btn-cta::after{ transform:translate(calc(-50% + 2px), -50%); }
}
.em-palco--faixa .btn-cta::after{ transition:transform .18s ease; }

@media (prefers-reduced-motion:reduce){
  .em-palco--lista .em-vaga, .em-palco--faixa .em-vaga, .em-palco--faixa .btn-cta::after{ transition:none; }
  .em-palco--lista .em-vaga:hover, .em-palco--faixa .em-vaga:hover{ transform:none; }
}

.em-valores, .em-metodo{ max-width:1020px; margin:clamp(56px,7vw,88px) auto 0; }
.em-metodo{
  margin-top:clamp(44px,5.5vw,68px);
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px);
  align-items:center;
}
.em-valores h2, .em-metodo h2{
  font-size:var(--t-destaque-lg, clamp(26px,2.6vw,34px)); font-weight:600;
  letter-spacing:var(--ls-titulo); color:var(--tinta); margin:0;
}
.em-metodo-foto{ margin:0; }
.em-metodo-foto img{
  width:100%; height:auto; display:block;
  border-radius:18px; box-shadow:0 18px 44px rgba(20,60,110,.16);
}
.em-valores-hero{
  display:flex; flex-wrap:wrap; align-items:baseline;
  gap:clamp(10px,2.2vw,30px);
  margin-top:clamp(16px,2.2vw,24px);
}
.hv--claro{
  position:relative; background:none; border:none; cursor:pointer;
  font-family:inherit; font-size:clamp(20px,2.4vw,31px); font-weight:500;
  letter-spacing:-.01em; color:var(--tinta); opacity:.72;
  padding:6px 4px 10px; text-shadow:none;
  transition:opacity .2s var(--ease);
}
.hv--claro::after{
  content:''; position:absolute; left:4px; right:4px; bottom:2px;
  height:2px; border-radius:2px; background:var(--quente); opacity:0;
  transition:opacity .2s var(--ease);
}
@media (hover:hover){
  .hv--claro:hover, .hv--claro:focus-visible{ opacity:1; }
  .hv--claro:hover::after, .hv--claro:focus-visible::after{ opacity:1; }
}
.hv--claro:focus-visible{ opacity:1; outline:none; }
.hv--claro:focus-visible::after{ opacity:1; }
.em-val-desc{
  min-height:2.6em; margin:clamp(6px,1vw,12px) 0 0; max-width:54ch;
  font-size:clamp(15px,1.5vw,18px); line-height:1.5; color:rgba(18,36,48,.66);
  opacity:0; transition:opacity .2s var(--ease);
}
.em-val-desc.visivel{ opacity:1; }
.em-metodo-l{ list-style:none; padding:0; margin:clamp(20px,2.6vw,28px) 0 0; }
.em-metodo-l li{
  display:grid; grid-template-columns:auto 1fr; gap:0 22px; align-items:start;
  padding:18px 0; border-top:1px solid var(--hairline);
}
.em-metodo-l li:last-child{ border-bottom:1px solid var(--hairline); }
.em-metodo-n{
  font-size:var(--t-numero); font-weight:600; font-variant-numeric:tabular-nums;
  letter-spacing:var(--ls-alta); color:var(--azul); line-height:1.3;
}
.em-metodo-l h3{
  font-size:var(--t-destaque); font-weight:600; letter-spacing:var(--ls-apertado);
  color:var(--tinta); margin:0;
}
.em-metodo-l p{
  margin:6px 0 0; font-size:var(--t-corpo); line-height:1.6;
  color:rgba(18,36,48,.74); max-width:62ch;
}

/* ── A secção própria de cada função ───────────────────────────────────────────
   Um bloco no molde, três formas: grelha (o trabalho concreto), degraus (o percurso
   de quem entra) e par (o contraste entre a rota e a obra). O api/vaga.js escolhe. */
.em-oficio{
  max-width:1020px; margin:clamp(48px,6vw,76px) auto 0;
  padding-top:clamp(34px,4.4vw,48px); border-top:1px solid var(--hairline);
}
.em-oficio h2{
  font-size:var(--t-titulo); font-weight:600; letter-spacing:var(--ls-titulo);
  color:var(--tinta); margin:0; text-wrap:balance;
}
.em-oficio .em-sec-lede{ max-width:56ch; }
.em-of-corpo{ margin-top:clamp(22px,2.8vw,32px); }
.em-of-fecho{
  margin:clamp(18px,2.2vw,26px) 0 0; max-width:62ch;
  font-size:var(--t-corpo); line-height:1.6; color:rgba(18,36,48,.62);
}

/* grelha — Técnico de AVAC */
.em-of-grelha{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(12px,1.6vw,18px);
}
.em-of-cartao{
  background:#fff; border:1px solid var(--hairline); border-radius:16px;
  padding:clamp(18px,2.2vw,24px);
  display:flex; flex-direction:column; gap:7px;
}
.em-of-cartao b{
  font-size:var(--t-destaque); font-weight:600; letter-spacing:var(--ls-apertado);
  color:var(--tinta); line-height:1.25;
}
.em-of-cartao span{ font-size:var(--t-corpo); line-height:1.6; color:rgba(18,36,48,.72); }

/* degraus — Ajudante de técnico */
.em-of-degraus{ list-style:none; padding:0; margin:0; counter-reset:d; }
.em-of-degraus li{
  counter-increment:d; position:relative;
  padding:16px 0 16px 52px; border-top:1px solid var(--hairline);
  font-size:var(--t-corpo-lg); line-height:1.55; color:rgba(18,36,48,.72);
  max-width:70ch;
}
.em-of-degraus li:last-child{ border-bottom:1px solid var(--hairline); }
.em-of-degraus li b{ color:var(--tinta); font-weight:600; }
.em-of-degraus li::before{
  content:counter(d,decimal-leading-zero);
  position:absolute; left:0; top:calc(16px + .12em);
  font-size:var(--t-numero); font-weight:600; font-variant-numeric:tabular-nums;
  letter-spacing:var(--ls-alta); color:var(--azul);
}

/* par — Técnico de manutenção */
.em-of-par{ margin:0; }
.em-of-cab{
  display:grid; grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);
  gap:0 clamp(18px,2.6vw,34px); padding-bottom:10px;
  font-size:var(--t-legenda); font-weight:600; letter-spacing:var(--ls-solto);
  color:rgba(18,36,48,.42);
}
.em-of-cab span:last-child{ color:var(--azul-escuro); }
.em-of-linha{
  display:grid; grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);
  gap:0 clamp(18px,2.6vw,34px); align-items:start;
  padding:18px 0; border-top:1px solid var(--hairline);
}
.em-of-linha:last-child{ border-bottom:1px solid var(--hairline); }
.em-of-par dt{
  font-size:var(--t-selo); font-weight:600; letter-spacing:var(--ls-alta);
  text-transform:uppercase; color:rgba(18,36,48,.5); padding-top:.35em;
}
.em-of-par dd{
  position:relative; margin:0;
  font-size:var(--t-corpo); line-height:1.55; color:rgba(18,36,48,.6);
}
.em-of-par dd i{
  display:block; margin-bottom:4px; font-style:normal;
  font-size:var(--t-legenda); font-weight:600; letter-spacing:var(--ls-solto);
  color:rgba(18,36,48,.42);
}
.em-of-forte{ color:rgba(18,36,48,.82) !important; }
.em-of-forte i{ color:var(--azul-escuro) !important; }

/* o nome da coluna diz-se uma vez, no cabeçalho — mas continua a ser lido em voz alta */
@media (min-width:901px){
  .em-of-par dd i{
    position:absolute; width:1px; height:1px; margin:0; overflow:hidden;
    clip-path:inset(50%); white-space:nowrap;
  }
}

@media (max-width:900px){
  .em-of-grelha{ grid-template-columns:1fr; }
  .em-of-cab{ display:none; }
  .em-of-linha{ grid-template-columns:1fr; gap:12px; }
  .em-of-par dt{ padding-top:0; }
}
@media (max-width:720px){
  /* no telemóvel a goteira do número custa largura à linha, e a linha vale mais */
  .em-of-degraus li{ padding-left:42px; }
}

.em-acordo{
  max-width:1020px; margin:clamp(48px,6vw,76px) auto 0;
  padding-top:clamp(34px,4.4vw,48px); border-top:1px solid var(--hairline);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,64px);
}
.em-acordo h3{
  font-size:var(--t-destaque); font-weight:600; letter-spacing:var(--ls-apertado);
  color:var(--tinta); margin:0 0 12px;
}
.em-acordo ul{ list-style:none; padding:0; margin:0; }
.em-acordo li{
  position:relative; padding:8px 0 8px 20px;
  font-size:var(--t-corpo); line-height:1.55; color:rgba(18,36,48,.74);
}
.em-acordo li b{ color:var(--tinta); font-weight:600; }
.em-acordo li::before{
  content:""; position:absolute; left:0; top:calc(8px + .68em);
  width:9px; height:2px; border-radius:2px; background:var(--azul); opacity:.55;
}

.em-topo--vaga{ padding-top:clamp(120px,13vw,158px); padding-bottom:clamp(84px,10vw,116px); }
.em-topo--vaga h1{ font-size:var(--t-titulo); max-width:16ch; }
.em-topo--vaga h1 small{ font-size:.5em; font-weight:500; color:rgba(255,255,255,.72); letter-spacing:0; }
.em-vaga-estado{
  display:inline-block; margin:0 0 12px;
  padding:5px 13px; border-radius:999px;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3);
  font-size:var(--t-selo); font-weight:600; letter-spacing:var(--ls-alta); text-transform:uppercase;
  color:#fff;
}
.em-vaga-estado--fechada{ background:rgba(10,24,34,.5); border-color:rgba(255,255,255,.22); color:rgba(255,255,255,.82); }
.em-topo--vaga + .em-palco .em-vaga{ margin-top:calc(-1 * clamp(48px,6vw,64px)); }
.em-acordo--vaga{ margin-top:clamp(44px,5.5vw,68px); }

.em-acordo--empilha{ grid-template-columns:1fr; gap:clamp(30px,3.4vw,44px); }
.em-acordo--empilha ul{ column-count:2; column-gap:clamp(28px,4vw,64px); }
.em-acordo--empilha li{ break-inside:avoid; }
@media (max-width:720px){ .em-acordo--empilha ul{ column-count:1; } }
.em-acordo--vaga h2{
  font-size:var(--t-destaque); font-weight:600; letter-spacing:var(--ls-apertado);
  color:var(--tinta); margin:0 0 12px;
}
.em-volta{
  max-width:1020px; margin:clamp(34px,4.4vw,52px) auto 0;
  font-size:var(--t-corpo); line-height:1.6; color:rgba(18,36,48,.62);
}
/* O `.em-volta` do botão «Voltar à escolha», mais abaixo, é `inline-flex` com `margin:0`
   e apagava a centragem desta linha: na página da vaga ela ficava colada à margem
   esquerda do ecrã em vez de alinhada com a coluna. O botão é <button>, esta é <p>. */
p.em-volta{
  display:block; max-width:1020px; margin:clamp(34px,4.4vw,52px) auto 0;
}
.em-volta a{ color:var(--azul-escuro); font-weight:600; text-underline-offset:3px; }

.em-seguir{ max-width:1020px; margin:clamp(56px,7vw,88px) auto 0; }
.em-seguir h2{
  font-size:var(--t-titulo); font-weight:600; letter-spacing:var(--ls-titulo);
  color:var(--tinta); margin:0 0 clamp(20px,2.6vw,28px);
}
.em-passos-lista{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,1.8vw,20px); }
.em-passos-lista li{
  display:flex; align-items:flex-start; gap:14px;
  background:#fff; border:1px solid var(--hairline); border-radius:16px;
  padding:clamp(16px,2.2vw,22px);
}
.em-passos-lista p{ margin:0; font-size:var(--t-corpo); line-height:1.55; color:rgba(18,36,48,.72); }
.em-passos-lista b{ color:var(--tinta); font-weight:600; }
.em-passo-n{
  flex:none; width:26px; height:26px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(31,120,208,.1); color:var(--azul-escuro);
  font-size:var(--t-legenda); font-weight:700; font-variant-numeric:tabular-nums;
}

.em-faq{ max-width:1020px; margin:clamp(56px,7vw,88px) auto 0; }
.em-faq h2{
  font-size:var(--t-titulo); font-weight:600; letter-spacing:var(--ls-titulo);
  color:var(--tinta); margin:0 0 clamp(14px,2vw,20px);
}
.em-faq details{ border-top:1px solid var(--hairline); }
.em-faq details:last-child{ border-bottom:1px solid var(--hairline); }
.em-faq summary{
  list-style:none; cursor:pointer; position:relative;
  padding:18px 44px 18px 0;
  font-size:var(--t-corpo-lg); font-weight:600; color:var(--tinta);
}
.em-faq summary::-webkit-details-marker{ display:none; }
.em-faq summary::before,
.em-faq summary::after{
  content:""; position:absolute; right:6px; top:50%;
  width:13px; height:2px; border-radius:2px; background:var(--azul);
  transition:transform .28s var(--ease), opacity .28s ease;
}
.em-faq summary::after{ transform:rotate(90deg); }
.em-faq details[open] summary::after{ transform:rotate(0deg); opacity:0; }
.em-faq summary:focus-visible{ outline:2px solid var(--azul); outline-offset:3px; border-radius:6px; }
.em-faq details p{
  margin:0; padding:0 0 20px; max-width:64ch;
  font-size:var(--t-corpo); line-height:1.6; color:rgba(18,36,48,.72);
}

.em-forma-secc{
  max-width:1020px; margin:clamp(56px,7.5vw,96px) auto 0;
  padding-bottom:var(--respiro);
}
.em-forma-cab{ max-width:60ch; margin:0 0 clamp(22px,3.4vw,32px); }
.em-forma-cab h2{
  font-size:var(--t-titulo); font-weight:600; letter-spacing:var(--ls-titulo);
  color:var(--tinta); margin:0;
}
.em-forma-cab p{ font-size:var(--t-lede); line-height:1.6; color:rgba(18,36,48,.68); margin:12px 0 0; }
.em-forma-cx{
  background:#fff; border:1px solid var(--hairline); border-radius:22px;
  padding:clamp(22px,4vw,40px);
  box-shadow:0 18px 48px rgba(20,60,110,.08);
}

.em-passos{ display:flex; gap:8px; list-style:none; padding:0; margin:0 0 8px; }
.em-passos li{ flex:1; height:4px; border-radius:999px; background:var(--hairline); overflow:hidden; }
.em-passos li b{
  display:block; height:100%; border-radius:999px; background:var(--azul);
  transform:scaleX(0); transform-origin:left; transition:transform 520ms var(--ease);
}
@keyframes em-fecha{ 0%{ box-shadow:0 0 0 0 rgba(31,120,208,.45); } 100%{ box-shadow:0 0 0 8px rgba(31,120,208,0); } }
.em-passos li.feito{ animation:em-fecha 620ms var(--ease); }
.em-conta{
  font-size:var(--t-selo); font-weight:600; letter-spacing:var(--ls-solto); text-transform:uppercase;
  color:rgba(18,36,48,.5); margin:0 0 14px;
}
.em-etapa{ border:0; padding:0; margin:0; min-width:0; }
@keyframes emVem{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
@keyframes emVolta{ from{ opacity:0; transform:translateY(-12px); } to{ opacity:1; transform:none; } }
.em-etapa.vem{ animation:emVem 380ms var(--ease) both; }
.em-etapa.volta{ animation:emVolta 380ms var(--ease) both; }
.em-etapa .oc-grupo{ margin-top:18px; }
.em-etapa .oc-campo{ max-width:640px; }
.em-etapa .oc-ops{ max-width:720px; }
.em-etapa .oc-lede, .em-etapa .oc-aj{ max-width:60ch; }
.em-etapa [data-so-quando][hidden]{ display:none !important; }

.em-campo{ position:relative; }
.em-campo::after{
  content:""; position:absolute; top:-1px; right:0; width:18px; height:18px; border-radius:50%;
  background:var(--azul) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2 5 8.7l4.5-5.4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
  opacity:0; transform:scale(.3); transition:opacity 240ms ease, transform 300ms var(--salto);
}
.em-campo.cheio::after{ opacity:1; transform:scale(1); }
.em-campo.tem-erro::after{ opacity:0; }


.em-nav{ display:flex; align-items:center; gap:12px; padding-top:18px; margin-top:22px; border-top:1px solid var(--hairline); }
.em-nav .oc-bt--frente{ margin-left:auto; }
.em-atras{
  appearance:none; background:none; border:0; padding:4px 2px; cursor:pointer;
  font-family:inherit; font-size:var(--t-corpo); font-weight:500; color:rgba(18,36,48,.6);
  text-decoration:underline; text-underline-offset:3px;
}
.em-atras:hover{ color:var(--tinta); }
.em-atras:focus-visible{ outline:2px solid var(--azul); outline-offset:3px; border-radius:4px; }

@keyframes emSurge{ from{ opacity:0; } to{ opacity:1; } }
.em-volta{
  display:inline-flex; align-items:center; gap:7px;
  margin:0 0 16px; padding:4px 4px 4px 0;
  text-decoration:none;
  animation:emSurge 380ms var(--ease) both;
}
.em-volta[hidden]{ display:none; }
.em-volta svg{ flex:none; transition:transform .2s var(--ease); }
@media (hover:hover) and (pointer:fine){
  .em-volta:hover svg{ transform:translateX(-3px); }
}

.em-fich{ position:absolute; left:-9999px; width:1px; height:1px; }
.em-fich-rot{
  display:inline-flex; align-items:center; gap:9px; padding:10px 17px; border-radius:999px; cursor:pointer;
  border:1px dashed rgba(31,120,208,.45); background:rgba(31,120,208,.04);
  font-size:var(--t-corpo); font-weight:500; color:var(--tinta);
  transition:border-color .2s ease, background .2s ease;
}
.em-fich-rot svg{ flex:none; }
@media (hover:hover) and (pointer:fine){ .em-fich-rot:hover{ border-color:var(--azul); background:rgba(31,120,208,.08); } }
.em-fich-zona.arrasta .em-fich-rot{ border-style:solid; border-color:var(--azul); background:rgba(31,120,208,.1); }
.em-fich-zona:focus-within .em-fich-rot{ outline:2px solid var(--azul); outline-offset:3px; }
.em-fich-nome{ display:inline-flex; align-items:center; gap:10px; margin-left:12px; font-size:var(--t-rotulo); color:var(--tinta); font-weight:500; }
.em-fich-rem{
  appearance:none; background:none; border:0; padding:2px; cursor:pointer;
  font-family:inherit; font-size:var(--t-legenda); color:var(--quente); text-decoration:underline; text-underline-offset:2px;
}

.em-estado{ margin:14px 0 0; font-size:var(--t-corpo); font-weight:600; }
.em-estado.bem{ color:var(--azul-escuro); }
.em-estado.mal{ color:var(--quente); }
.em-nota{ margin:16px 0 0; font-size:var(--t-legenda); line-height:1.55; color:rgba(18,36,48,.52); }
.em-nota a{ color:inherit; }
.em-fim{ text-align:center; padding:clamp(18px,3.5vw,34px) 0 clamp(8px,2vw,16px); }
.em-fim-selo{ width:64px; height:64px; margin:0 auto 18px; display:block; }
.em-fim-selo circle{ fill:none; stroke:var(--azul); stroke-width:2.4; stroke-dasharray:176; stroke-dashoffset:176; animation:em-circ 640ms var(--ease) forwards; }
.em-fim-selo path{ fill:none; stroke:var(--azul); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:34; stroke-dashoffset:34; animation:em-check 420ms var(--ease) 480ms forwards; }
@keyframes em-circ{ to{ stroke-dashoffset:0; } }
@keyframes em-check{ to{ stroke-dashoffset:0; } }
.em-fim-tit{ font-size:var(--t-painel); font-weight:600; letter-spacing:var(--ls-apertado); color:var(--tinta); margin:0; }
.em-fim-txt{ font-size:var(--t-corpo-lg); line-height:1.6; color:rgba(18,36,48,.7); max-width:46ch; margin:10px auto 0; }


.em-porta{ padding:4px 0 2px; }
.em-porta[hidden]{ display:none; }
.em-porta-tit{
  margin:0 0 16px; font-size:var(--t-corpo-lg); line-height:1.5; font-weight:600; color:var(--tinta);
}
.em-portas{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:720px; }
.em-porta-op{
  appearance:none; cursor:pointer; text-align:left; font-family:inherit;
  display:flex; flex-direction:column; gap:5px;
  padding:18px 20px; border-radius:14px;
  border:1px solid var(--hairline); background:#fff;
  transition:border-color .2s ease, background .2s ease, transform .2s var(--salto);
}
.em-porta-n{ font-size:var(--t-corpo-lg); font-weight:600; color:var(--tinta); letter-spacing:var(--ls-apertado); }
.em-porta-d{ font-size:var(--t-rotulo); line-height:1.5; color:rgba(18,36,48,.6); }
@media (hover:hover) and (pointer:fine){
  .em-porta-op:hover{ border-color:var(--azul); background:rgba(31,120,208,.05); transform:translateY(-2px); }
}
.em-porta-op:focus-visible{ outline:2px solid var(--azul); outline-offset:3px; }

.em-passos[hidden], .em-conta[hidden]{ display:none !important; }

.em-etapa--cv[hidden]{ display:none; }
.em-fich-rot--fina{
  border-style:solid; border-color:var(--hairline); background:transparent;
  padding:8px 15px; font-size:var(--t-rotulo); color:rgba(18,36,48,.72);
}
@media (hover:hover) and (pointer:fine){
  .em-fich-rot--fina:hover{ border-color:var(--azul); background:rgba(31,120,208,.05); }
}

.oc-ops--tres{ grid-template-columns:repeat(auto-fit, minmax(190px, auto)); }

@media (max-width:900px){
  .em-trabalho{ grid-template-columns:1fr; gap:26px; }
  .em-trabalho-foto{ order:-1; }
  .em-metodo{ grid-template-columns:1fr; gap:26px; }
  .em-metodo-foto{ order:-1; }
  .em-acordo{ grid-template-columns:1fr; gap:30px; }
  .em-passos-lista{ grid-template-columns:1fr; }
}
@media (max-width:720px){
  .em-portas{ grid-template-columns:1fr; }
  .oc-ops--tres{ grid-template-columns:1fr; }
  .em-topo{ padding:112px 20px 104px; }
  .em-topo h1{ font-size:var(--t-frase-mob); max-width:none; }
  .em-topo-veu{
    background:linear-gradient(180deg, rgba(10,24,34,.72) 0%, rgba(10,24,34,.58) 45%, rgba(10,24,34,.82) 100%);
  }
  .em-vaga{ margin-top:-72px; }
  .em-ficha > div{ flex:0 1 calc(50% - 5px); min-width:0; }
  .em-ficha > div:last-child:nth-child(odd){ flex-basis:100%; }
  .em-vaga-acoes .btn-cta{ width:100%; text-align:center; }

  .em-palco--lista .em-vaga{ grid-template-columns:1fr; padding:22px; }
  .em-palco--lista .em-vaga-acoes{ grid-column:1; grid-row:auto; margin-top:24px; }
  .em-palco--lista .em-ficha{ flex-direction:column; gap:3px; }
  .em-palco--lista .em-ficha > div:not(:last-child){ margin-right:0; }
  .em-palco--faixa .em-vaga{
    grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto;
    padding:14px 14px 14px 18px; gap:6px 12px;
  }
  .em-palco--faixa .em-vaga h2{ grid-column:1; white-space:normal; font-size:15.5px; }
  .em-palco--faixa .em-ficha{ grid-column:1; }
  .em-palco--faixa .em-vaga-acoes{ grid-column:2; grid-row:1 / -1; }
  .em-palco--faixa .em-ficha > div{ flex:0 1 auto; min-width:0; max-width:100%; }
  .em-palco--faixa .em-ficha{ flex-wrap:wrap; }
  .em-palco--faixa .em-ficha > div:first-child{ flex:0 1 auto; max-width:100%; }

  .em-migalha a{ padding:14px 0; }
  .em-palco--faixa .em-vaga-acoes .btn-cta::before{ content:""; position:absolute; inset:-5px; border-radius:50%; }
  .em-vaga-tel{ padding:12px 0; }
  .hv--claro{ padding:8px 4px 11px; }
  .em-etapa .oc-campo{ min-height:44px; }
  .em-etapa .oc-op{ min-height:44px; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; }
  .em-nav .oc-bt{ min-height:44px; }
  .em-atras{ min-height:44px; min-width:48px; display:inline-flex; align-items:center; }
  .em-fich-rot{ min-height:44px; }
  .em-topo--vaga h1{ font-size:var(--t-titulo-mob); }
}
@media (max-width:560px){
  .em-fich-nome{ display:flex; margin:10px 0 0; }
}

@media (prefers-reduced-motion:reduce){
  html.js .em-body [data-entra]{ opacity:1; transform:none; }
  .em-body.pronto [data-entra]{ animation:none; }
  .em-passos li b{ transition:none; }
  .em-passos li.feito{ animation:none; }
  .em-etapa.vem, .em-etapa.volta{ animation:none; }
  .em-volta{ animation:none; }
  .em-volta svg{ transition:none; }
  .em-campo::after{ transition:none; }
  .em-fim-selo circle, .em-fim-selo path{ animation:none; stroke-dashoffset:0; }
}
