/* Radar Normativo — estilo do site.
   Gerado por scripts/gerar_site.py a partir de estilo/. Não editar aqui. */

@import url('/fontes/fontes.css');

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }

  /* neutros puros + acento vermelhão; menu branco (aprovado em 19/09/2026) */
  :root {
    --bg: #FFFFFF; --surface: #F4F4F5; --surface-2: #EDEDEF;
    --text: #0B0B0C; --text-dim: #55565B; --rule: #E2E2E4; --rule-strong: #BCBCC1;
    --ink-band: #0B0B0C; --topo: #0B0B0C; --topo-texto: #F2F2F3; --topo-dim: #B4B4BA; --topo-rule: #26262A;
    --accent: #CF3A15; --accent-ink: #A92E0F; --accent-soft: #FCEBE5;
    --sinal: #FF6A3D; --sinal-rgb: 255,106,61; --band-cor: #CF3A15;
    --nav-fundo: var(--bg); --nav-texto: var(--text); --nav-dim: var(--text-dim); --nav-rule: var(--rule);
    --nav-simbolo: var(--accent); --nav-ghost: var(--rule-strong); --nav-ghost-hover: var(--surface);
    /* a peça do cliente é um documento: continua clara nos dois temas */
    --paper: #FFFFFF; --paper-ink: #0B0B0C; --paper-dim: #5C5C62; --paper-rule: #E4E4E7; --paper-slot: #9C9CA3;
    --escritorio: #2B2B2F; --escritorio-soft: #F1F1F2;
    --display: "Schibsted Grotesk", "Arial Nova", Arial, sans-serif;
    --sans: "Schibsted Grotesk", "Segoe UI", Arial, sans-serif;
    --mono: "IBM Plex Mono", Consolas, monospace;
    --measure: 40rem; --wide: 76rem;
  }

  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --bg: #0E0E10; --surface: #17171A; --surface-2: #1C1C20;
      --text: #F2F2F3; --text-dim: #A1A1A8; --rule: #2A2A2F; --rule-strong: #3E3E45;
      --ink-band: #000000; --topo: #000000; --topo-rule: #232327;
      --accent: #FF7A52; --accent-ink: #FF9C7C; --accent-soft: #2B150E; --band-cor: #B0320F;
      --paper: #F4F4F5; --paper-rule: #DDDDE0;
    }
  }
  :root[data-theme="dark"] {
    --bg: #0E0E10; --surface: #17171A; --surface-2: #1C1C20;
    --text: #F2F2F3; --text-dim: #A1A1A8; --rule: #2A2A2F; --rule-strong: #3E3E45;
    --ink-band: #000000; --topo: #000000; --topo-rule: #232327;
    --accent: #FF7A52; --accent-ink: #FF9C7C; --accent-soft: #2B150E; --band-cor: #B0320F;
    --paper: #F4F4F5; --paper-rule: #DDDDE0;
  }

  * { box-sizing: border-box; }
  [id] { scroll-margin-top: 6.25rem; }
  body {
    margin: 0; background: var(--bg); color: var(--text);
    font-family: var(--sans); font-size: 17px; line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  .wrap { width: 100%; max-width: var(--wide); margin-inline: auto; padding-inline: 1.75rem; }
  @media (max-width: 30rem) { .wrap { padding-inline: 1.1rem; } }
  h1, h2, h3 { font-family: var(--display); font-weight: 800; text-wrap: balance; margin: 0; letter-spacing: -.022em; }
  h3 { font-weight: 700; letter-spacing: -.012em; }
  p { margin: 0; text-wrap: pretty; }
  a { color: inherit; }
  .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
  .dim { color: var(--text-dim); }
  .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .eyebrow { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 0; }
  .lede { font-size: 1.1rem; color: var(--text-dim); max-width: var(--measure); }
  .miudo { font-size: .84rem; color: var(--text-dim); }
  .stack { display: flex; flex-direction: column; gap: 1rem; }
  .stack-s { display: flex; flex-direction: column; gap: .5rem; }
  .head { display: flex; flex-direction: column; gap: .7rem; max-width: 44rem; margin-bottom: 2rem; }
  .head h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); line-height: 1.16; }
  .rotulo-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }

  /* ---------- faixa de acompanhamento (igual à landing) ---------- */
  .radar-bar { background: var(--topo); color: var(--topo-dim); border-top: 1px solid var(--topo-rule); }
  .radar-bar .wrap { display: flex; align-items: center; gap: .9rem; min-height: 2.6rem; padding-block: .5rem; font-size: .82rem; line-height: 1.4; }
  .radar-rot { display: inline-flex; align-items: center; gap: .45rem; flex: none; font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--sinal); white-space: nowrap; }
  .radar-ponto { width: .42rem; height: .42rem; border-radius: 50%; background: var(--sinal); flex: none; animation: pulso 2.6s ease-out infinite; }
  @keyframes pulso {
    0% { box-shadow: 0 0 0 0 rgba(var(--sinal-rgb),.55); }
    70% { box-shadow: 0 0 0 .5rem rgba(var(--sinal-rgb),0); }
    100% { box-shadow: 0 0 0 0 rgba(var(--sinal-rgb),0); }
  }
  .radar-pista {
    flex: 1; min-width: 0; overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
    mask-image: linear-gradient(to right, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
  }
  .radar-fita { display: flex; align-items: center; width: max-content; animation: desliza 46s linear infinite; }
  .radar-bar:hover .radar-fita { animation-play-state: paused; }
  .radar-fita span { white-space: nowrap; padding-inline: .95rem; }
  .radar-fita i { font-style: normal; color: var(--sinal); opacity: .55; font-size: .7rem; line-height: 1; }
  @keyframes desliza { from { transform: translateX(0); } to { transform: translateX(-50%); } }

  /* ---------- menu ---------- */
  .nav { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 60; background: var(--nav-fundo); color: var(--nav-texto); border-bottom: 1px solid var(--nav-rule); }
  .nav.stuck { box-shadow: 0 10px 24px -18px rgba(0,0,0,.45); }
  .nav-inner { display: flex; align-items: center; gap: 1.5rem; height: 4.6rem; }
  .brand { display: flex; align-items: center; gap: .72rem; text-decoration: none; color: var(--text); margin-right: auto; }
  .nav .brand { color: var(--nav-texto); }
  .brand svg { width: 2.25rem; height: 2.25rem; color: var(--accent); flex: none; }
  .nav .brand svg { color: var(--nav-simbolo); }
  .brand-name { font-family: var(--display); font-size: 1.4rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
  .brand-desc { display: none; font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--nav-dim); margin-top: .15rem; }
  @media (min-width: 40rem) { .brand-desc { display: block; } }
  .nav-links { display: none; gap: 1.7rem; }
  @media (min-width: 58rem) { .nav-links { display: flex; } }
  .nav-links a { font-size: .95rem; font-weight: 600; color: var(--nav-texto); text-decoration: none; }
  .nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--nav-simbolo); }
  .nav .btn-ghost { color: var(--nav-texto); border-color: var(--nav-ghost); }
  .nav .btn-ghost:hover { background: var(--nav-ghost-hover); border-color: var(--nav-texto); }
  @media (max-width: 26rem) { .brand-name { font-size: 1.2rem; } .nav-inner { gap: .8rem; } }
  .nav-acoes { display: flex; align-items: center; gap: .5rem; flex: none; }
  @media (max-width: 30rem) { .nav-pro { display: none; } }
  .btn-destaque { background: var(--band-cor); color: #FFFFFF; }
  .btn-destaque:hover { transform: translateY(-1px); }


  /* ---------- botões, campos, marcadores ---------- */
  .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    font: inherit; font-weight: 600; font-size: .95rem; padding: .78rem 1.35rem; border-radius: 2px;
    border: 1px solid transparent; text-decoration: none; cursor: pointer; white-space: nowrap;
    transition: transform .12s ease, background-color .16s ease, border-color .16s ease;
  }
  .btn-primary { background: var(--text); color: var(--bg); }
  .btn-primary:hover { transform: translateY(-1px); }
  .btn-ghost { border-color: var(--rule-strong); color: var(--text); background: transparent; }
  .btn-ghost:hover { background: var(--surface); border-color: var(--text-dim); }
  .btn-sm { padding: .55rem 1rem; font-size: .88rem; }
  .btn:focus-visible, .chip:focus-visible, a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  .actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }

  .pill { display: inline-flex; align-items: center; font: 500 .76rem/1 var(--mono); padding: .36rem .55rem; border: 1px solid var(--accent); color: var(--accent-ink); border-radius: 2px; white-space: nowrap; }
  .pill.urgente { background: var(--accent); border-color: var(--accent); color: var(--bg); }
  .pill.vigor { border-color: var(--rule-strong); color: var(--text-dim); }
  .tags { display: flex; flex-wrap: wrap; gap: .35rem; }
  .tag { font-size: .72rem; font-weight: 600; line-height: 1; padding: .32rem .5rem; border: 1px solid var(--rule-strong); color: var(--text-dim); border-radius: 2px; }

  .inscricao-form { display: flex; flex-direction: column; gap: .6rem; }
  .form-linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; }
  .form-linha .campo { flex: 1 1 15rem; }
  .compacto .form-linha .campo { flex-basis: 100%; }
  .compacto .btn { width: 100%; }
  .campo { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
  .campo label { font-size: .82rem; font-weight: 600; }
  .campo input {
    font: inherit; font-size: 1rem; width: 100%; padding: .72rem .85rem;
    border: 1px solid var(--rule-strong); border-radius: 2px; background: var(--surface); color: var(--text);
  }
  .campo input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
  .retorno { font-size: .86rem; color: var(--accent-ink); }

  /* ---------- ficha: o formato do Radar ---------- */
  .ficha { margin: 0; border-top: 1px solid var(--text); }
  .ficha-linha { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: .35rem 1.5rem; padding-block: .95rem; border-bottom: 1px solid var(--rule); }
  .ficha dt { font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--accent); padding-top: .22rem; }
  .ficha dd { margin: 0; line-height: 1.6; }
  .ficha .tags { margin-top: .55rem; }
  .ficha-linha.fazer { background: var(--surface); padding-inline: .9rem; margin-inline: -.9rem; border-bottom-color: transparent; }
  .ficha-linha.fazer dd { font-weight: 600; }
  .ficha-linha.fazer dt { color: var(--accent-ink); }
  .ficha-grande dd { font-size: 1.04rem; }
  @media (max-width: 40rem) { .ficha-linha { grid-template-columns: 1fr; } }

  /* Método Radar: o que a norma diz x leitura do Radar */
  .metodo-rotulo { display: inline-flex; align-items: center; gap: .5rem; font: 500 .74rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text); }
  .metodo-marca { width: .55rem; height: .55rem; background: var(--band-cor); }
  .ficha-secao { font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--text-dim); margin: 1.1rem 0 .45rem; }
  .ficha-leitura { border-top-color: var(--accent); }
  .ficha-nota { font-size: .82rem; color: var(--text-dim); margin-top: .7rem; }
  .destaque .metodo { margin-top: 1.6rem; }

  /* dados da norma: a camada de confiança do item */
  .norma { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .9rem 1.75rem; margin: 0 0 1.25rem; padding-block: 1rem; border-block: 1px solid var(--rule); }
  .norma dt { font: 500 .66rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); margin-bottom: .3rem; }
  .norma dd { margin: 0; font-size: .92rem; font-weight: 600; line-height: 1.4; }
  .norma dd.pendente { color: var(--accent-ink); }
  .alerta-norma { margin: 0 0 2rem; padding: .8rem 1rem; background: var(--accent-soft); color: var(--text); font-size: .9rem; line-height: 1.5; }
  .alerta-norma b { display: block; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-ink); margin-bottom: .2rem; }

  /* ---------- capa ---------- */
  .capa { padding-block: clamp(1.75rem, 3.5vw, 3rem) clamp(2.5rem, 4vw, 3.5rem); }
  .capa-grid { display: grid; gap: 2.75rem; }
  @media (min-width: 62rem) { .capa-grid { grid-template-columns: minmax(0, 1fr) 21rem; gap: 3.5rem; } }
  .destaque .rotulo-linha { margin-bottom: .9rem; }
  .manchete { font-size: clamp(1.75rem, 3.2vw, 2.6rem); line-height: 1.12; }
  .manchete a { text-decoration: none; }
  .manchete a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
  .dek { font-size: 1.12rem; color: var(--text-dim); max-width: var(--measure); margin-top: .8rem; }
  .destaque .ficha { margin-top: 1.75rem; }
  .base-legal { margin-top: 1rem; font-size: .88rem; color: var(--text-dim); }
  .leia { display: inline-flex; margin-top: .9rem; font-weight: 600; font-size: .95rem; color: var(--accent-ink); text-decoration: none; }
  .leia:hover { text-decoration: underline; text-underline-offset: .2em; }

  .lateral { display: flex; flex-direction: column; gap: 2rem; }
  .bloco-titulo { font-family: var(--sans); font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding-bottom: .7rem; border-bottom: 1px solid var(--text); }
  .bloco-sub { font-family: var(--sans); font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--text-dim); margin-top: 1.4rem; padding-bottom: .5rem; border-bottom: 1px solid var(--rule); }
  .prazos-lista { list-style: none; margin: 0; padding: 0; }
  .prazos-lista li { border-bottom: 1px solid var(--rule); }
  .prazo { display: grid; grid-template-columns: 3.3rem minmax(0, 1fr) auto; gap: .9rem; align-items: baseline; padding-block: .85rem; text-decoration: none; color: inherit; }
  .prazo:hover .prazo-titulo { text-decoration: underline; text-underline-offset: .18em; }
  .prazo-data { font: 500 1.02rem/1.2 var(--mono); font-variant-numeric: tabular-nums; }
  .prazo-dia { display: block; font: 400 .7rem/1.4 var(--mono); color: var(--text-dim); }
  .prazo-titulo { font-size: .92rem; line-height: 1.4; font-weight: 600; }
  .prazo-regime { display: block; font-size: .8rem; font-weight: 400; color: var(--text-dim); margin-top: .1rem; }
  .prazo-falta { font: 500 .76rem/1 var(--mono); color: var(--accent-ink); white-space: nowrap; padding: .3rem .45rem; border: 1px solid var(--accent); border-radius: 2px; }
  .prazo-falta.urgente { background: var(--accent); color: var(--bg); }
  .prazo-falta.vigor { border-color: var(--rule-strong); color: var(--text-dim); }
  .prazos-vazio { padding-block: .85rem; font-size: .9rem; color: var(--text-dim); }

  .inscricao-mini { background: var(--surface); border: 1px solid var(--rule); padding: 1.25rem; display: flex; flex-direction: column; gap: .7rem; }
  .mini-titulo { font-size: 1.15rem; line-height: 1.3; }

  /* ---------- registro de mudanças ---------- */
  .secao { padding-block: clamp(2.5rem, 4vw, 3.5rem); }
  .secao-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.25rem; }
  .secao-cab h2 { font-size: clamp(1.4rem, 2.4vw, 1.85rem); }
  .filtros { display: flex; flex-wrap: wrap; gap: .45rem; }
  .chip { font: 600 .82rem/1 var(--sans); padding: .52rem .75rem; border: 1px solid var(--rule-strong); background: transparent; color: var(--text-dim); border-radius: 2px; cursor: pointer; }
  .chip:hover { color: var(--text); border-color: var(--text-dim); }
  .chip[aria-pressed="true"] { background: var(--text); border-color: var(--text); color: var(--bg); }

  .registro { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--text); }
  .registro.sem-topo { border-top: 0; }
  .reg { border-bottom: 1px solid var(--rule); }
  .reg-link { display: grid; grid-template-columns: 11rem minmax(0, 1fr) auto; gap: .6rem 2rem; padding: 1.3rem .75rem; text-decoration: none; color: inherit; transition: background-color .15s ease; }
  .reg-link:hover { background: var(--surface); }
  .reg-meta { display: flex; flex-direction: column; gap: .4rem; }
  /* a miniatura mostra tema e data: o que a linha ao lado não repete */
  .reg-mini { width: 100%; height: auto; display: block; border: 1px solid var(--rule); margin-bottom: .25rem; }
  @media (max-width: 46rem) { .reg-mini { max-width: 20rem; } }
  .reg-quando { font: 400 .8rem/1.4 var(--mono); color: var(--text-dim); }
  .reg-corpo { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
  .reg-corpo h3 { font-size: 1.22rem; line-height: 1.3; }
  .reg-fazer { font-size: .95rem; color: var(--text-dim); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .reg-fazer b { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-ink); margin-right: .35rem; }
  .reg-seta { align-self: center; font-size: 1.2rem; color: var(--text-dim); transition: transform .15s ease; }
  .reg-link:hover .reg-seta { transform: translateX(3px); color: var(--text); }
  @media (max-width: 46rem) { .reg-link { grid-template-columns: 1fr; } .reg-seta { display: none; } }
  /* apoio da edição: só é desenhado quando há patrocinador contratado */
  .apoio { font-size: .82rem; color: var(--text-dim); margin-bottom: .8rem; }
  .apoio a { color: var(--text); font-weight: 700; }
  .reg-vazio { padding: 1.3rem .75rem; color: var(--text-dim); border-bottom: 1px solid var(--rule); }

  /* ---------- faixas de largura total ---------- */
  .band { padding-block: clamp(2.75rem, 4.4vw, 4rem); }
  .band-tint { background: var(--surface-2); }
  .band-ink {
    background: var(--ink-band); color: var(--text);
    --bg: #0B0B0C; --surface: #1A1A1D; --surface-2: #222226; --text: #F2F2F3; --text-dim: #B0B0B7;
    --rule: #2C2C31; --rule-strong: #46464D; --accent: var(--sinal); --accent-ink: var(--sinal); --accent-soft: rgba(var(--sinal-rgb), .14);
  }
  .band-ink .btn-primary { background: var(--band-cor); color: #FFFFFF; }

  /* faixa na cor da paleta: a newsletter */
  .band-cor {
    background: var(--band-cor); color: var(--text);
    --bg: #0B0B0C; --surface: #FFFFFF; --text: #FFFFFF; --text-dim: rgba(255,255,255,.86);
    --rule: rgba(255,255,255,.3); --rule-strong: rgba(255,255,255,.5);
    --accent: #FFFFFF; --accent-ink: #FFFFFF; --accent-soft: rgba(255,255,255,.12);
  }
  .band-cor .campo input { color: #0B0B0C; border-color: transparent; }
  .band-cor .campo input::placeholder { color: #6E6E75; }
  .band-cor .campo input:focus-visible { outline-color: #FFFFFF; }
  .band-cor .btn-primary, .band-cor .btn-destaque { background: #0B0B0C; color: #FFFFFF; }
  .band-cor .metodo-rotulo { color: #FFFFFF; margin-top: .4rem; }
  .band-cor .metodo-marca { background: #FFFFFF; }

  /* Radar Pro: faixa grande e cartão da capa */
  .pro-banda { padding-block: clamp(3.25rem, 6vw, 5.5rem); }
  .pro-banda h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1.14; }
  .pro-sub { font-size: 1.15rem; color: var(--text-dim); }

  /* marca do produto: símbolo + "Radar" + selo PRO */
  .pro-marca { display: flex; align-items: center; gap: .7rem; font-family: var(--display); font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--text); font-size: clamp(2.4rem, 5vw, 3.6rem); }
  .pro-marca svg { width: .9em; height: .9em; color: var(--accent); flex: none; }
  .pro-selo { display: inline-flex; align-items: center; font-family: var(--mono); font-weight: 500; font-size: .42em; letter-spacing: .12em; padding: .28em .5em .24em .6em; background: var(--band-cor); color: #FFFFFF; transform: translateY(-.12em); }
  .pro-marca-sub { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim); }
  .pro-marca.pequena { font-size: 1.9rem; }
  .pro-banda .peca { justify-self: center; max-width: 34rem; }
  .pro-lista { list-style: none; margin: .3rem 0 0; padding: 0; display: grid; gap: .55rem; }
  .pro-lista li { display: flex; gap: .7rem; align-items: baseline; font-size: 1.02rem; }
  .pro-lista li::before { content: ""; width: .5rem; height: .5rem; background: var(--band-cor); flex: none; transform: translateY(-.1rem); }
  .pro-preco { color: var(--text-dim); }
  .pro-preco b { font-family: var(--display); font-size: 1.7rem; font-weight: 800; color: var(--text); }
  .cartao-pro {
    display: flex; flex-direction: column; gap: .75rem; padding: 1.4rem 1.35rem 1.3rem;
    background: var(--ink-band); color: #F2F2F3; border-top: 4px solid var(--band-cor); text-decoration: none;
    transition: transform .15s ease;
  }
  .cartao-pro:hover { transform: translateY(-2px); }
  .cartao-pro .pro-marca { color: #F2F2F3; }
  .cartao-pro .pro-marca svg { color: var(--sinal); }
  .cartao-pro-pergunta { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #B0B0B7; }
  .cartao-pro-titulo { font-size: 1.02rem; font-weight: 600; line-height: 1.4; color: #D4D4D8; }
  .cartao-pro-cta { display: inline-flex; align-self: flex-start; margin-top: .2rem; padding: .65rem 1.05rem; background: var(--band-cor); color: #FFFFFF; font-weight: 700; font-size: .92rem; }
  .news-grid { display: grid; gap: 2rem; align-items: center; }
  @media (min-width: 58rem) { .news-grid { grid-template-columns: 1.1fr 1fr; gap: 4rem; } }
  .news { display: flex; flex-direction: column; gap: .9rem; }
  .news h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1.14; }
  .quatro { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem 1.5rem; max-width: 26rem; }
  .quatro li { font: 500 .85rem/1.4 var(--mono); color: var(--accent-ink); border-top: 1px solid var(--rule); padding-top: .5rem; }
  .news-form { display: flex; flex-direction: column; gap: .8rem; }

  .pro-grid { display: grid; gap: 2.25rem; align-items: center; }
  @media (min-width: 58rem) { .pro-grid { grid-template-columns: 1fr 1fr; gap: 4rem; } }
  .pro-grid h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); line-height: 1.16; }

  .fontes-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: 0 2rem; border-top: 1px solid var(--text); }
  .fontes-grade li { border-bottom: 1px solid var(--rule); padding-block: .75rem; font-size: .95rem; display: flex; gap: .65rem; align-items: baseline; }
  .fontes-grade li::before { content: "◆"; color: var(--accent); font-size: .6rem; }
  .fontes-grade.setor li::before { color: var(--text-dim); }
  .fontes-grupos { display: grid; gap: 2.25rem; }
  @media (min-width: 52rem) { .fontes-grupos { grid-template-columns: 2fr 1fr; gap: 3rem; } }
  .fontes-grupos .bloco-titulo { margin-bottom: .2rem; }
  .fontes-grupos .fontes-grade { border-top: 0; }
  .fontes-nota { margin-top: .8rem; }
  .fontes-politica { margin-top: 1.5rem; font-weight: 600; }
  .fontes-politica a { color: var(--accent-ink); text-decoration: none; }
  .fontes-politica a:hover { text-decoration: underline; text-underline-offset: .2em; }

  /* ---------- peça do cliente (Radar Pro) ---------- */
  .peca {
    margin: 0; width: 100%; max-width: 31rem; background: var(--paper); color: var(--paper-ink);
    border: 1px solid var(--paper-rule);
    box-shadow: 0 1px 2px rgba(19,28,43,.06), 0 18px 40px -22px rgba(19,28,43,.35);
  }
  .peca-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1.25rem; border-top: 4px solid var(--escritorio); border-bottom: 1px solid var(--paper-rule); }
  .logo-slot { border: 1.5px dashed var(--paper-slot); padding: .5rem .7rem; font: 500 .64rem/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--paper-dim); }
  .peca-data { font: 400 .72rem/1.3 var(--mono); color: var(--paper-dim); text-align: right; }
  .peca-corpo { padding: 1.25rem; display: flex; flex-direction: column; gap: .75rem; }
  .peca-etq { font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--escritorio); }
  .peca-corpo h3 { font-size: 1.14rem; line-height: 1.3; color: var(--paper-ink); }
  .peca-corpo p { font-size: .93rem; line-height: 1.6; }
  .peca-acao { background: var(--escritorio-soft); padding: .8rem .9rem; font-size: .93rem; line-height: 1.55; }
  .peca-acao b { display: block; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--escritorio); margin-bottom: .25rem; }
  .peca-rodape { padding: .75rem 1.25rem; border-top: 1px solid var(--paper-rule); font-size: .78rem; color: var(--paper-dim); }

  /* ---------- página de item ---------- */
  .item { padding-block: 1.5rem 3rem; }
  .migalha { display: flex; flex-wrap: wrap; gap: .45rem; font-size: .85rem; color: var(--text-dim); margin-bottom: 1.5rem; }
  .migalha a { color: var(--text-dim); }
  .item-cab { max-width: 50rem; padding-bottom: 2rem; }
  .item-cab h1 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.1; margin-top: .9rem; }
  .item-meta { display: flex; flex-wrap: wrap; gap: .35rem 1.2rem; margin-top: 1rem; font-size: .88rem; color: var(--text-dim); }
  .item-grid { display: grid; gap: 2.5rem; }
  @media (min-width: 62rem) { .item-grid { grid-template-columns: minmax(0, 1fr) 20rem; gap: 3.5rem; } }
  .item-main { display: flex; flex-direction: column; gap: 2.25rem; min-width: 0; }
  .fontes-lista { list-style: none; margin: .8rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; font-size: .95rem; }
  .fontes-lista a { color: var(--accent-ink); overflow-wrap: anywhere; }
  .aviso { font-size: .82rem; color: var(--text-dim); border-top: 1px solid var(--rule); padding-top: .9rem; }
  .item-lateral { display: flex; flex-direction: column; gap: 1.5rem; }
  @media (min-width: 62rem) { .item-lateral { position: sticky; top: calc(6rem + env(safe-area-inset-top, 0px)); align-self: start; } }
  .quando-box { background: var(--surface); border: 1px solid var(--accent); padding: 1.1rem 1.25rem; display: flex; flex-direction: column; gap: .3rem; }
  .quando-box.neutro { border-color: var(--rule); }
  .quando-grande { font: 500 2.4rem/1.05 var(--mono); color: var(--accent-ink); font-variant-numeric: tabular-nums; }
  .quando-texto { font: 500 1rem/1.45 var(--mono); }
  .relacionados { margin-top: 3.25rem; }

  /* ---------- Radar Pro ---------- */
  .pro-hero { display: grid; gap: 2.5rem; align-items: center; padding-block: clamp(2.5rem, 5vw, 4.5rem); }
  @media (min-width: 62rem) { .pro-hero { grid-template-columns: 1.15fr 1fr; gap: 3.5rem; } }
  .pro-hero-texto { display: flex; flex-direction: column; gap: 1.1rem; }
  .pro-hero h1 { font-size: clamp(2.1rem, 4vw, 3.3rem); line-height: 1.08; }
  .pro-hero .peca { justify-self: center; }
  .camadas { display: grid; gap: 2.5rem; }
  @media (min-width: 58rem) { .camadas { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; } }
  .camada { display: flex; flex-direction: column; gap: .9rem; min-width: 0; }
  .camada-rotulo { font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--text-dim); }
  .camada-titulo { font-size: 1.3rem; line-height: 1.25; }
  .passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.75rem; }
  @media (min-width: 52rem) { .passos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; } }
  .passos li { border-top: 1px solid var(--text); padding-top: 1rem; display: flex; flex-direction: column; gap: .5rem; }
  .passo-n { font: 500 .85rem/1 var(--mono); color: var(--accent-ink); }
  .passos h3 { font-size: 1.08rem; line-height: 1.3; }
  .passos p { font-size: .94rem; color: var(--text-dim); }
  .planos { display: grid; gap: 1.25rem; }
  @media (min-width: 52rem) { .planos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  .plano { background: var(--surface); border: 1px solid var(--rule); padding: 1.5rem; display: flex; flex-direction: column; gap: .9rem; }
  .plano.recomendado { border: 1.5px solid var(--text); }
  .plano-selo { align-self: flex-start; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; background: var(--text); color: var(--bg); padding: .3rem .5rem; }
  .plano-nome { font-size: .74rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--accent); }
  .plano-preco { font-family: var(--display); font-size: 2.2rem; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
  .plano-preco small { font-family: var(--sans); font-size: .9rem; font-weight: 400; color: var(--text-dim); }
  .plano ul { margin: 0; padding-left: 1.1rem; font-size: .94rem; color: var(--text-dim); display: flex; flex-direction: column; gap: .3rem; flex: 1; }
  .plano .btn { align-self: flex-start; }
  .nota-proto { font-size: .88rem; color: var(--text-dim); border: 1px dashed var(--rule-strong); padding: 1rem 1.2rem; max-width: 52rem; }

  /* ---------- páginas de texto (política editorial, anuncie) ---------- */
  .pagina { padding-block: clamp(2.25rem, 4vw, 3.5rem) clamp(3rem, 5vw, 4.5rem); display: flex; flex-direction: column; gap: 1rem; }
  .pagina h1 { font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.08; max-width: 46rem; }
  .pagina-texto { max-width: 42rem; margin-top: 1.25rem; display: flex; flex-direction: column; gap: .9rem; }
  .pagina-texto h2 { font-size: 1.3rem; line-height: 1.25; margin-top: 1.4rem; padding-top: 1.1rem; border-top: 1px solid var(--rule); }
  .pagina-texto ul { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: .45rem; }
  .pagina-texto a:not(.btn) { color: var(--accent-ink); }
  .dados-empresa { display: grid; gap: .8rem; margin: 0; }
  .dados-empresa dt { font: 500 .66rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); margin-bottom: .2rem; }
  .dados-empresa dd { margin: 0; font-weight: 600; }

  /* ---------- rodapé ---------- */
  .site-foot { background: var(--ink-band); color: #A6A6AD; padding-block: 3.25rem 2.25rem; }
  .foot-grid { display: grid; gap: 2.25rem; }
  @media (min-width: 52rem) { .foot-grid { grid-template-columns: 1.6fr 1fr 1fr; } }
  .site-foot .brand { color: #F2F2F3; margin-right: 0; }
  .site-foot .brand svg { color: var(--sinal); }
  .foot-col h4 { margin: 0 0 .7rem; font-size: .72rem; letter-spacing: .13em; text-transform: uppercase; color: var(--sinal); font-weight: 650; }
  .foot-col a, .foot-col span { display: block; font-size: .9rem; color: #A6A6AD; text-decoration: none; padding-block: .18rem; }
  .foot-col a:hover { color: #F2F2F3; }
  .foot-bottom { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #2A2A2F; font-size: .78rem; line-height: 1.6; display: flex; flex-wrap: wrap; gap: .8rem 2rem; justify-content: space-between; align-items: flex-end; }
  .foot-bottom b { color: #D4D4D8; }
  .legal { font-size: .79rem; max-width: 44rem; padding-top: .9rem; color: #8E8E95; }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .radar-pista { -webkit-mask-image: none; mask-image: none; }
  }

/* Termos de uso e política de privacidade.

   São documentos longos, com tabelas largas, lidos em boa parte no celular.
   O objetivo aqui é legibilidade, não decoração: medida de linha curta,
   entrelinha folgada e tabela que rola sozinha em vez de espremer a coluna. */

  .doc-versao {
    margin: -.4rem 0 1.8rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--rule);
  }

  /* a tabela escapa um pouco da medida do texto: ela é dado, não leitura corrida */
  .tabela-rolagem {
    margin: 1.4rem 0 1.8rem;
    width: min(54rem, calc(100vw - 3rem));
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--rule);
  }

  .doc-tabela {
    width: 100%;
    min-width: 34rem;
    border-collapse: collapse;
    font-size: .92rem;
    line-height: 1.55;
  }

  .doc-tabela th,
  .doc-tabela td {
    padding: .7rem .85rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--rule);
  }

  .doc-tabela th {
    background: var(--surface);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--text-dim);
    white-space: nowrap;
  }

  .doc-tabela tr:last-child td { border-bottom: 0; }
  .doc-tabela td + td { border-left: 1px solid var(--rule); }
  .doc-tabela th + th { border-left: 1px solid var(--rule); }

  .doc-rodape {
    margin-top: 2.4rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--rule);
  }

  /* o formulário de inscrição responde na própria página */
  .retorno.erro { color: var(--accent); font-weight: 600; }

  @media (max-width: 40rem) {
    .doc-tabela { font-size: .86rem; }
    .doc-tabela th, .doc-tabela td { padding: .6rem .65rem; }
  }

  /* Página de edição: cabeçalho e listas se encadeiam. Sem isto, a folga de
     baixo da .pagina soma com a de cima da .secao e abre um vão vazio grande. */
  .pagina + .secao,
  .pagina + .band { padding-top: 0; }
  .secao + .pagina { padding-top: 0; }

  /* ---------- Página de aceite do Radar Pro ----------
     Formulário de contratação. A hierarquia aqui é deliberada: o resumo da
     contratação vem ANTES do aceite e tem o mesmo peso visual das outras
     etapas, em vez de virar letra miúda embaixo do botão. É o que o Decreto
     7.962 pede — informação em destaque, antes de contratar — e é também o
     que evita o arrependimento que vira pedido de reembolso. */

  .assinar {
    max-width: 44rem;
    display: flex;
    flex-direction: column;
    gap: 2.25rem;
  }

  .assinar fieldset { border: 0; margin: 0; padding: 0; }
  .assinar legend { padding: 0; margin-bottom: .9rem; }

  .assinar-planos { display: flex; flex-direction: column; gap: .6rem; }

  .assinar-plano {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    padding: 1rem 1.1rem;
    border: 1px solid var(--rule);
    cursor: pointer;
    transition: border-color .12s ease, background .12s ease;
  }
  .assinar-plano:hover { border-color: var(--rule-strong); background: var(--surface); }
  .assinar-plano:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
  .assinar-plano input { margin-top: .25rem; accent-color: var(--accent); }

  .assinar-plano-corpo { display: grid; grid-template-columns: 1fr auto; gap: .2rem .9rem; flex: 1; }
  .assinar-plano-nome { font-weight: 700; }
  .assinar-plano-preco { font-weight: 700; white-space: nowrap; }
  .assinar-plano-preco small { font-weight: 400; color: var(--text-dim); }
  .assinar-plano-itens {
    grid-column: 1 / -1;
    font-size: .86rem;
    line-height: 1.5;
    color: var(--text-dim);
  }

  /* Resumo da contratação: duas colunas, uma linha por termo.
     A grade de quatro colunas da página de item não serve aqui — lá são
     metadados curtos e parecidos, aqui os valores vão de "R$ 297" a um
     parágrafo. Quatro colunas com conteúdo desigual viram farrapo. */
  .resumo { margin: 0; border-top: 1px solid var(--text); }

  .resumo-linha {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr);
    gap: .3rem 1.6rem;
    padding-block: .95rem;
    border-bottom: 1px solid var(--rule);
  }

  .resumo dt {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--accent);
    padding-top: .2rem;
  }

  .resumo dd { margin: 0; line-height: 1.6; }
  .resumo dd a { color: var(--accent-ink); }

  /* CNPJ no meio de uma frase: monoespaçada abre demais e destoa. Mantém a
     família do texto e só impede a quebra. */
  .resumo .nao-quebra { font-family: inherit; }

  /* o preço é o que a pessoa veio conferir */
  .resumo-linha.destaque { background: var(--surface); }
  .resumo-linha.destaque dd { font-size: 1.15rem; }

  /* CNPJ não quebra no meio: número partido em duas linhas num resumo de
     contrato parece erro, e no Decreto 7.962 é dado de identificação */
  .nao-quebra { white-space: nowrap; }

  @media (max-width: 34rem) {
    .resumo-linha { grid-template-columns: 1fr; gap: .25rem; }
    .resumo-linha.destaque { padding-inline: .8rem; }
  }

  .assinar-aceite { border-top: 1px solid var(--rule); padding-top: 1.6rem; }

  .assinar-caixa {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    font-size: .95rem;
    line-height: 1.6;
    cursor: pointer;
  }
  .assinar-caixa input {
    margin-top: .28rem;
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--accent);
    flex: none;
  }
  .assinar-caixa a { color: var(--accent-ink); }

  .assinar-aceite .actions { margin-top: 1.4rem; }

  @media (max-width: 40rem) {
    .assinar-plano-corpo { grid-template-columns: 1fr; }
    .assinar-plano-preco { grid-row: 2; }
  }
