.ad {
  --laranja:var(--orange);
  --laranja-texto:#B85F00;
  --grafite:#3A3A3A;
  --marinho:var(--ink-2);
  --ciano:#2BA5B2;
  --papel:#F4F4F4;
  --linha:rgba(17,22,38,.16);
  --suave:#5B5F66;
  --display:"Space Grotesk","Inter",system-ui,Arial,sans-serif;
  --texto:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"Space Mono",ui-monospace,"Cascadia Mono",monospace;
  box-sizing:border-box;
  padding:clamp(76px,9vw,128px) max(24px,6vw);
  background:var(--papel);
  color:#000;
  font-family:var(--texto);
  overflow-x:clip;
}
.ad *, .ad *::before, .ad *::after { box-sizing:border-box; }

/* ---------- Cabeçalho ---------- */
.ad-topo { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(40px,6vw,90px); align-items:end; max-width:1320px; margin:0 auto clamp(40px,5vw,64px); }
.ad-chapeu { margin:0 0 18px; color:var(--laranja-texto); font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.ad-titulo { margin:0; font-family:var(--display); font-size:clamp(40px,5.2vw,74px); font-weight:700; letter-spacing:-.06em; line-height:.9; }
.ad-titulo em { color:var(--laranja); font-style:normal; }
.ad-lead { max-width:600px; margin:0; color:#3d3e3f; font-size:clamp(16px,1.35vw,19px); line-height:1.5; }
.ad-lead strong { color:#000; font-weight:600; }

/* ---------- Navegação que acompanha os temas durante a rolagem ---------- */
.ad-painel { max-width:1320px; margin:0 auto; }
.ad-painel--story { position:relative; height:400svh; }
.ad-story-sticky { position:sticky; top:var(--header,84px); display:flex; height:calc(100svh - var(--header,84px)); padding-bottom:12px; flex-direction:column; gap:12px; }
.ad-story-frame { position:relative; min-height:0; flex:1; overflow:hidden; }
.ad-radio { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ad-abas { position:relative; z-index:5; display:grid; flex:0 0 auto; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--linha); background:rgba(244,244,244,.96); backdrop-filter:blur(12px); }
.ad-aba { position:relative; display:grid; gap:8px; padding:20px 20px 22px 0; border-right:1px solid var(--linha); color:inherit; text-decoration:none; transition:background .25s; }
.ad-aba + .ad-aba { padding-left:20px; }
.ad-aba:last-child { border-right:0; }
.ad-aba::before { position:absolute; top:-1px; left:0; width:0; height:3px; background:var(--laranja); content:""; transition:width .45s cubic-bezier(.16,1,.3,1); }
.ad-aba + .ad-aba::before { left:20px; }
.ad-aba.is-active::before { width:calc(100% - 20px); }
.ad-aba small { color:var(--suave); font-family:var(--mono); font-size:10px; letter-spacing:.14em; }
.ad-aba.is-active small { color:var(--laranja-texto); }
.ad-aba b { font-family:var(--display); font-size:clamp(18px,1.7vw,24px); font-weight:600; letter-spacing:-.03em; line-height:1.05; }
.ad-aba span { color:var(--suave); font-size:13px; line-height:1.35; }
.ad-aba:hover b { color:var(--laranja-texto); }
.ad-aba:focus-visible { outline:2px solid var(--laranja); outline-offset:-2px; }

.ad-tela { position:absolute; inset:0; display:block; overflow-x:hidden; overflow-y:auto; padding-top:clamp(22px,3vw,38px); border-top:1px solid var(--linha); opacity:0; visibility:hidden; transform:translate3d(0,22px,0); pointer-events:none; transition:opacity .45s ease,transform .55s cubic-bezier(.16,1,.3,1),visibility 0s linear .55s; scrollbar-width:thin; }
.ad-tela.is-active { z-index:1; opacity:1; visibility:visible; transform:none; pointer-events:auto; transition-delay:0s; }

.ad-grade { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:clamp(28px,4vw,60px); align-items:start; }
.ad-legenda { margin:0 0 6px; color:var(--suave); font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.ad-h3 { margin:0 0 22px; font-family:var(--display); font-size:clamp(22px,2.2vw,30px); font-weight:600; letter-spacing:-.04em; line-height:1.05; }
.ad-h3 em { color:var(--laranja); font-style:normal; }
.ad-fonte { margin:16px 0 0; color:#636466; font-family:var(--mono); font-size:10px; line-height:1.5; }
.ad-fonte a { color:inherit; }
.ad-dica { color:var(--suave); font-size:12px; }

/* ---------- Gráfico de barras: desemprego ---------- */
.ad-barras { position:relative; display:grid; grid-template-columns:repeat(14,1fr); gap:clamp(4px,.6vw,10px); height:260px; padding-top:30px; border-bottom:1px solid var(--grafite); }
.ad-barras::before { position:absolute; top:30px; right:0; left:0; border-top:1px dashed var(--linha); content:""; }
.ad-barra { position:relative; display:flex; height:100%; align-items:flex-end; outline:none; cursor:default; }
.ad-barra i { display:block; width:100%; height:calc(var(--v) / 16 * 100%); border-radius:3px 3px 0 0; background:#C9CBCE; transform-origin:bottom; animation:ad-cresce 1s cubic-bezier(.16,1,.3,1) both; animation-delay:calc(var(--n) * 45ms); transition:background .2s; }
.ad-barra--pico i { background:var(--grafite); }
.ad-barra--hoje i { background:var(--laranja); }
.ad-barra:hover i, .ad-barra:focus i { background:var(--marinho); }
.ad-barra--hoje:hover i, .ad-barra--hoje:focus i { background:#C96A00; }
@keyframes ad-cresce { from { transform:scaleY(0); } to { transform:scaleY(1); } }
.ad-barra .ad-tip { position:absolute; bottom:calc(var(--v) / 16 * 100% + 8px); left:50%; z-index:2; padding:5px 8px; border-radius:4px; background:var(--marinho); color:#fff; font-family:var(--mono); font-size:11px; white-space:nowrap; opacity:0; pointer-events:none; transform:translate(-50%,4px); transition:opacity .2s,transform .2s; }
.ad-barra:hover .ad-tip, .ad-barra:focus .ad-tip, .ad-barra--hoje .ad-tip, .ad-barra--pico .ad-tip { opacity:1; transform:translate(-50%,0); }
.ad-barra--hoje .ad-tip { left:auto; right:0; transform:none !important; }
.ad-barra--hoje .ad-tip { background:var(--laranja); color:#111; font-weight:700; }
.ad-anos { display:grid; grid-template-columns:repeat(14,1fr); gap:clamp(4px,.6vw,10px); margin-top:8px; color:var(--suave); font-family:var(--mono); font-size:10px; text-align:center; }
.ad-anos span:nth-child(even) { visibility:hidden; }
.ad-anos span:last-child { visibility:visible; color:var(--laranja-texto); font-weight:700; }

/* ---------- Comparação 2020 x 2025 ---------- */
.ad-cartao { padding:clamp(22px,2.6vw,32px); border-radius:6px; background:var(--marinho); color:#fff; }
.ad-cartao .ad-legenda { color:#9AA0AE; }
.ad-num { display:block; margin:6px 0 10px; color:var(--laranja); font-family:var(--display); font-size:clamp(56px,6vw,84px); font-weight:700; letter-spacing:-.06em; line-height:.85; }
.ad-cartao p { margin:0; color:#D7DAE0; font-size:15px; line-height:1.45; }
.ad-comp { display:grid; gap:12px; margin-top:24px; }
.ad-comp div { display:grid; grid-template-columns:96px 1fr 48px; gap:12px; align-items:center; font-size:12px; }
.ad-comp span { color:#9AA0AE; font-family:var(--mono); font-size:10px; letter-spacing:.06em; }
.ad-comp i { display:block; height:12px; border-radius:2px; background:#4A5163; transform-origin:left; animation:ad-largura 1.1s cubic-bezier(.16,1,.3,1) both .25s; }
.ad-comp div:last-child i { background:var(--laranja); }
.ad-comp b { font-family:var(--mono); font-size:12px; text-align:right; }
@keyframes ad-largura { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.ad-nota { margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.14); color:#C3C8D2; font-size:13px; line-height:1.45; }
.ad-cartao .ad-fonte { color:#8B92A2; }
.ad-cartao p.ad-legenda { margin:0 0 6px; font-size:10px; line-height:1.4; }
.ad-cartao p.ad-fonte { margin-top:16px; font-size:10px; line-height:1.5; }
.ad-res p.ad-semana-leg { margin-top:6px; color:var(--suave); font-size:10px; }

/* ---------- Halteres: envelhecimento ---------- */
.ad-halteres { display:grid; gap:30px; }
.ad-haltere header { display:flex; justify-content:space-between; gap:16px; margin-bottom:12px; font-size:14px; font-weight:600; }
.ad-haltere header span { color:var(--suave); font-family:var(--mono); font-size:11px; font-weight:400; }
.ad-trilho { position:relative; height:34px; }
.ad-trilho::before { position:absolute; top:50%; right:0; left:0; border-top:1px solid var(--linha); content:""; }
.ad-trilho .ad-liga { position:absolute; top:calc(50% - 2px); left:calc(var(--a) * 1%); width:calc((var(--b) - var(--a)) * 1%); height:4px; background:linear-gradient(90deg,#C9CBCE,var(--laranja)); transform-origin:left; animation:ad-largura 1.1s cubic-bezier(.16,1,.3,1) both .2s; }
.ad-trilho .ad-liga--inv { left:calc(var(--b) * 1%); width:calc((var(--a) - var(--b)) * 1%); background:linear-gradient(90deg,var(--laranja),#C9CBCE); transform-origin:right; }
.ad-ponto { position:absolute; top:50%; width:16px; height:16px; margin:-8px 0 0 -8px; border-radius:50%; background:#fff; border:3px solid #9A9DA2; outline:none; }
.ad-ponto--novo { border-color:var(--laranja); background:var(--laranja); }
.ad-ponto em { position:absolute; bottom:18px; left:50%; color:var(--suave); font-family:var(--mono); font-size:11px; font-style:normal; white-space:nowrap; transform:translateX(-50%); }
.ad-ponto--novo em { color:#000; font-weight:700; }
.ad-ponto small { position:absolute; top:18px; left:50%; color:var(--suave); font-family:var(--mono); font-size:9px; letter-spacing:.08em; transform:translateX(-50%); }
.ad-escala { display:flex; justify-content:space-between; margin-top:20px; color:var(--suave); font-family:var(--mono); font-size:9px; }

.ad-fatos { display:grid; gap:14px; }
.ad-fato { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--linha); }
.ad-fato:first-child { padding-top:0; }
.ad-fato b { color:var(--laranja); font-family:var(--display); font-size:clamp(34px,3.4vw,48px); font-weight:700; letter-spacing:-.06em; line-height:.9; }
.ad-fato p { margin:0; color:#3d3e3f; font-size:14px; line-height:1.45; }

/* ---------- Fim da 6x1: linha do tempo e simulador ---------- */
.ad-tempo { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 34px; padding:0; list-style:none; }
.ad-tempo li { position:relative; padding:22px 18px 0 0; border-top:3px solid #C9CBCE; }
.ad-tempo li::before { position:absolute; top:-9px; left:0; width:15px; height:15px; border-radius:50%; background:#C9CBCE; content:""; }
.ad-tempo li.is-feito { border-top-color:var(--grafite); }
.ad-tempo li.is-feito::before { background:var(--grafite); }
.ad-tempo li.is-proximo { border-top-color:var(--laranja); }
.ad-tempo li.is-proximo::before { background:var(--laranja); box-shadow:0 0 0 6px rgba(238,125,0,.18); animation:ad-pulso 2.2s ease-in-out infinite; }
@keyframes ad-pulso { 50% { box-shadow:0 0 0 11px rgba(238,125,0,0); } }
.ad-tempo small { display:block; color:var(--suave); font-family:var(--mono); font-size:10px; letter-spacing:.1em; }
.ad-tempo b { display:block; margin:6px 0 4px; font-family:var(--display); font-size:clamp(26px,2.6vw,38px); font-weight:700; letter-spacing:-.05em; line-height:1; }
.ad-tempo li.is-proximo b { color:var(--laranja); }
.ad-tempo span { color:#3d3e3f; font-size:13px; line-height:1.4; }

.ad-sim { padding:clamp(22px,2.6vw,32px); border:1px solid var(--linha); border-radius:6px; background:#fff; }
.ad-sim-opcoes { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 24px; }
.ad-sim-opcoes label { padding:9px 14px; border:1px solid var(--linha); border-radius:999px; color:var(--grafite); font-family:var(--mono); font-size:11px; cursor:pointer; transition:background .2s,border-color .2s,color .2s; }
.ad-sim-opcoes label:hover { border-color:var(--laranja); }
#ad-s44:checked ~ .ad-sim-opcoes label[for="ad-s44"],
#ad-s42:checked ~ .ad-sim-opcoes label[for="ad-s42"],
#ad-s40:checked ~ .ad-sim-opcoes label[for="ad-s40"] { border-color:var(--marinho); background:var(--marinho); color:#fff; }
#ad-s44:focus-visible ~ .ad-sim-opcoes label[for="ad-s44"],
#ad-s42:focus-visible ~ .ad-sim-opcoes label[for="ad-s42"],
#ad-s40:focus-visible ~ .ad-sim-opcoes label[for="ad-s40"] { outline:2px solid var(--laranja); outline-offset:2px; }

.ad-res { display:none; }
#ad-s44:checked ~ .ad-res--44,
#ad-s42:checked ~ .ad-res--42,
#ad-s40:checked ~ .ad-res--40 { display:block; animation:ad-entra .45s cubic-bezier(.16,1,.3,1); }
.ad-equipe { display:flex; flex-wrap:wrap; gap:7px; margin:4px 0 18px; }
.ad-pessoa { position:relative; width:26px; height:38px; }
.ad-pessoa::before { position:absolute; top:0; left:7px; width:12px; height:12px; border-radius:50%; background:var(--grafite); content:""; }
.ad-pessoa::after { position:absolute; bottom:0; left:2px; width:22px; height:22px; border-radius:11px 11px 3px 3px; background:var(--grafite); content:""; }
.ad-pessoa--nova::before, .ad-pessoa--nova::after { background:var(--laranja); animation:ad-surge .6s cubic-bezier(.34,1.56,.64,1) both .15s; }
.ad-pessoa--meia { width:13px; overflow:hidden; }
@keyframes ad-surge { from { opacity:0; transform:scale(.4); } to { opacity:1; transform:none; } }
.ad-res-num { display:flex; flex-wrap:wrap; gap:6px 28px; align-items:baseline; }
.ad-res-num b { color:var(--laranja); font-family:var(--display); font-size:clamp(40px,4vw,56px); font-weight:700; letter-spacing:-.06em; line-height:.9; }
.ad-res-num b.is-neutro { color:var(--grafite); }
.ad-res p { margin:10px 0 0; color:#3d3e3f; font-size:14px; line-height:1.45; }
.ad-semana { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-top:18px; }
.ad-semana span { padding:8px 0; border-radius:3px; background:var(--grafite); color:#fff; font-family:var(--mono); font-size:10px; text-align:center; }
.ad-semana span.is-folga { background:var(--ciano); color:#06262a; }
.ad-semana-leg { margin-top:6px; color:var(--suave); font-family:var(--mono); font-size:10px; }

/* ---------- Fechamento ---------- */
.ad-fecho { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px,5vw,80px); max-width:1320px; margin:clamp(48px,6vw,80px) auto 0; padding-top:clamp(32px,4vw,48px); border-top:1px solid var(--grafite); }
.ad-fecho h3 { margin:0; font-family:var(--display); font-size:clamp(28px,3vw,42px); font-weight:700; letter-spacing:-.05em; line-height:.95; }
.ad-fecho h3 em { color:var(--laranja); font-style:normal; }
.ad-pilares { display:grid; grid-template-columns:repeat(3,1fr); }
.ad-pilares article { display:grid; align-content:start; gap:10px; padding:0 18px; border-left:1px solid var(--linha); }
.ad-pilares article:first-child { padding-left:0; border-left:0; }
.ad-pilares small { color:var(--laranja-texto); font-family:var(--mono); font-size:10px; letter-spacing:.12em; }
.ad-pilares p { margin:0; color:#3d3e3f; font-size:14px; line-height:1.45; }
.ad-cta { display:inline-flex; gap:10px; width:max-content; margin-top:26px; padding-bottom:8px; border-bottom:1px solid var(--laranja); color:#000; font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.08em; text-decoration:none; }
.ad-cta b { color:var(--laranja); }

/* ---------- Fontes ---------- */
.ad-fontes { max-width:1320px; margin:34px auto 0; color:#636466; font-family:var(--mono); font-size:10px; line-height:1.6; }
.ad-fontes summary { width:max-content; cursor:pointer; letter-spacing:.1em; text-transform:uppercase; }
.ad-fontes summary:hover { color:var(--laranja-texto); }
.ad-fontes ol { margin:12px 0 0; padding-left:18px; }
.ad-fontes a { color:inherit; }

/* ---------- Revelar ao rolar (CSS puro, sem script) ----------
   Navegadores sem suporte mostram tudo parado, sem quebrar nada. */
.ad-linha { display:block; }
@supports (animation-timeline: view()) {
  .ad-rv { animation:ad-rv linear both; animation-timeline:view(); animation-range:entry 5% entry 85%; }
  .ad-rv--2 { animation-range:entry 20% entry 95%; }
  .ad-rv--3 { animation-range:entry 30% entry 100%; }
  @keyframes ad-rv { from { opacity:0; transform:translate3d(0,46px,0); } to { opacity:1; transform:none; } }
  .ad-titulo .ad-rv, .ad-fecho h3 .ad-rv { animation-name:ad-rv-titulo; }
  @keyframes ad-rv-titulo { from { opacity:0; transform:translate3d(0,34px,0) scale(.9); transform-origin:left bottom; } to { opacity:1; transform:none; } }

  /* Barras do desemprego crescem uma a uma enquanto o gráfico entra */
  .ad-barra i { animation:ad-cresce linear both; animation-timeline:view(); animation-range:entry calc(var(--n) * 4%) cover calc(28% + var(--n) * 1.6%); }
  .ad-barra .ad-tip { animation:ad-aparece linear both; animation-timeline:view(); animation-range:cover 35% cover 45%; }
  @keyframes ad-aparece { from { opacity:0; } to { opacity:1; } }
  .ad-barra:not(.ad-barra--hoje):not(.ad-barra--pico) .ad-tip { animation:none; }

  /* Barras de comparação e halteres se esticam ao entrar */
  .ad-comp i { animation:ad-largura linear both; animation-timeline:view(); animation-range:entry 30% cover 40%; }
  .ad-trilho .ad-liga { animation:ad-largura linear both; animation-timeline:view(); animation-range:entry 40% cover 45%; }
  .ad-ponto--novo { animation:ad-aparece linear both; animation-timeline:view(); animation-range:entry 70% cover 48%; }
  .ad-pessoa--nova::before, .ad-pessoa--nova::after { animation:ad-surge .6s cubic-bezier(.34,1.56,.64,1) both .15s; }
}

@media (prefers-reduced-motion:reduce) {
  .ad *, .ad *::before, .ad *::after { animation:none !important; transition:none !important; }
}
@media (max-width:900px) {
  .ad-topo, .ad-grade, .ad-fecho { grid-template-columns:1fr; }
  .ad-topo { align-items:start; gap:22px; }
  .ad-pilares { grid-template-columns:1fr; gap:18px; }
  .ad-pilares article { padding:16px 0 0; border-top:1px solid var(--linha); border-left:0; }
  .ad-pilares article:first-child { padding-top:0; border-top:0; }
}
@media (max-width:560px) {
  .ad { padding:72px 17px; }
  .ad-titulo { font-size:42px; }
  .ad-abas { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ad-aba, .ad-aba + .ad-aba { min-width:0; padding:12px 5px; border-right:0; border-bottom:0; text-align:center; }
  .ad-aba + .ad-aba::before { left:5px; }
  .ad-aba.is-active::before { width:calc(100% - 10px); }
  .ad-aba b { font-size:clamp(10px,2.9vw,13px); line-height:1.1; }
  .ad-aba small { font-size:8px; }
  .ad-aba span { display:none; }
  .ad-barras { height:200px; }
  .ad-barra .ad-tip { font-size:9px; padding:3px 5px; }
  .ad-barra--pico .ad-tip { opacity:0; }
  .ad-barra--pico:hover .ad-tip, .ad-barra--pico:focus .ad-tip { opacity:1; }
  .ad-tempo { grid-template-columns:1fr; gap:22px; }
  .ad-comp div { grid-template-columns:78px 1fr 42px; }
}

/* Integração da seção de dados à página Acta. */
.capacity.capacity-data-section {
  display:block;
  grid-template-columns:none;
  gap:0;
  min-height:0;
  align-content:normal;
  padding:0 !important;
  background:#F4F4F4;
  color:#000;
}
.capacity-data-section .ad {
  width:100%;
  min-height:0;
}
.capacity-data-section .ad-titulo {
  max-width:700px;
  font-size:clamp(40px,5.2vw,74px) !important;
  font-weight:700 !important;
  letter-spacing:-.06em !important;
  line-height:.9 !important;
}
.capacity-data-section .ad-titulo em {
  color:var(--orange) !important;
}
.capacity-data-section .ad-abas a:focus-visible {
  outline:2px solid var(--orange);
  outline-offset:-2px;
}
.capacity-data-section .ad-sim-opcoes label:focus-visible {
  outline:2px solid var(--orange);
  outline-offset:2px;
}
@media (max-width:560px) {
  .capacity-data-section .ad-titulo {
    font-size:42px !important;
  }
}
