/* ANGBrasil · tema XARPY · style.css · v1.0.7
   Lê somente variáveis de tokens.css (cores, tipografia, espaço, medidas, movimento). Sem JavaScript.
   Ordem: base · primitivas · cabeçalho · slots · cards · home · listagens · matéria · seções do núcleo ·
   rodapé · regiões vazias · responsivo · movimento · impressão. */

/* =========================================================== Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-height) + var(--space-4)); }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background-color: var(--color-white);
  background-image: var(--page-bg-image);
  background-size: cover;
  background-attachment: fixed;
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--fs-16);
  line-height: var(--lh-body);
  text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-ink); text-decoration: none; transition: color var(--dur-fast) var(--ease); }
a:hover { color: var(--color-brand); }
h1, h2, h3, h4 { font-family: var(--font-heading); margin: 0; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: var(--focus-width) solid var(--color-focus); outline-offset: var(--focus-offset); border-radius: var(--radius-sm); }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: var(--space-4); top: var(--space-2); z-index: 100; transform: translateY(calc(-100% - var(--space-4))); background: var(--color-ink); color: var(--color-white); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); transition: transform var(--dur-fast) var(--ease); }
.skip-link:focus { transform: none; color: var(--color-white); }
.site-main { display: block; flex: 1 0 auto; }
.site-main:focus { outline: none; }
.site-main, .site-footer, .topbar { overflow-wrap: anywhere; }
.icon { flex-shrink: 0; }

/* =========================================================== Primitivas de layout e tipo */
.container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section-y); }
.layout { display: flex; align-items: flex-start; gap: var(--space-9); padding-block: var(--space-7) var(--section-y); }
.layout > * { min-width: 0; }
.layout__main { flex: 1 1 auto; min-width: 0; }
.stack-sections { display: flex; flex-direction: column; gap: var(--section-y); }
.stack-sections > .slot-ad { margin: 0; }
.kicker { font-size: var(--fs-12); font-weight: var(--fw-semibold); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--color-brand-dark); }
.kicker--lg { font-size: var(--fs-13); }
a.kicker:hover { color: var(--color-brand); }
.meta { display: flex; flex-wrap: wrap; gap: 0 var(--space-1-5); font-size: var(--fs-12); line-height: var(--lh-ui); color: var(--color-ink-2); }
.section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-2) var(--space-4); border-top: var(--border-accent) solid var(--color-ink); padding-top: var(--space-3); margin-bottom: var(--stack); }
.section-head__title { font-size: var(--fs-step-4); line-height: var(--lh-title); letter-spacing: var(--ls-tight); font-weight: var(--fw-semibold); }
.section-head__title a { display: inline-flex; align-items: center; min-height: var(--tap); }
.rail-title { font-size: var(--fs-14); font-weight: var(--fw-semibold); letter-spacing: var(--ls-caps); text-transform: uppercase; border-top: var(--border-accent) solid var(--color-ink); padding-top: var(--space-3); }
.more-link { display: inline-flex; align-items: center; gap: var(--space-1-5); min-height: var(--tap); font-size: var(--fs-14); font-weight: var(--fw-medium); color: var(--color-brand-dark); }
.more-link__arrow, .pagination__arrow { display: inline-block; transition: transform var(--dur-base) var(--ease); }
.more-link:hover .more-link__arrow, a.pagination__btn[rel="next"]:hover .pagination__arrow { transform: translateX(var(--nudge)); }
a.pagination__btn[rel="prev"]:hover .pagination__arrow { transform: translateX(calc(-1 * var(--nudge))); }
.page-header { padding-block: var(--space-4) var(--space-7); display: flex; flex-direction: column; gap: var(--space-3); max-width: var(--w-lg); }
.page-header--listing { max-width: none; border-bottom: var(--border-1) solid var(--color-border); }
.page-header--listing > * { max-width: var(--w-lg); }
.page-header__title { font-size: var(--fs-step-7); line-height: var(--lh-tight); letter-spacing: var(--ls-display); font-weight: var(--fw-semibold); overflow-wrap: anywhere; }
.page-header__lede { font-size: var(--fs-step-1); line-height: var(--lh-ui); color: var(--color-text-2); max-width: var(--read-max); }

/* =========================================================== Barra superior e cabeçalho (1.0.6)
   Sem JavaScript (a CSP do portal é script-src 'none'): busca e menu são <dialog> abertos por invocadores nativos
   (commandfor/command="show-modal": modal com foco preso, fundo inerte e Esc; popovertarget como reserva em navegador
   sem invocadores: Esc e clique fora). Desktop (≥1024): faixa da marca + barra de editorias "priority+" que fica presa
   no topo (o cabeçalho é sticky com top negativo do tamanho da faixa da marca: compacto ao rolar, sem CLS e sem JS).
   Tablet e celular: uma linha só (logo + busca + menu). */
.topbar { background: var(--color-surface); border-bottom: var(--border-1) solid var(--color-border); font-size: var(--fs-13); line-height: var(--lh-ui); color: var(--color-text-2); }
.topbar__inner { min-height: var(--utility-height); display: flex; align-items: center; gap: 0 var(--space-6); }
.topbar__date::first-letter { text-transform: uppercase; }
.topbar__tagline { color: var(--color-ink); font-weight: var(--fw-medium); }
.topbar__nav { margin-left: auto; }
.topbar__nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0 var(--space-5); }
.topbar__nav .menu__sub { display: none; }
.topbar__nav a { display: inline-flex; align-items: center; min-height: var(--utility-height); color: var(--color-text-2); }
.topbar__nav a:hover { color: var(--color-ink); text-decoration: underline; text-underline-offset: var(--underline-offset); }

.site-header { position: sticky; top: 0; z-index: 30; background: var(--color-white); border-bottom: var(--border-1) solid var(--color-border); }
.masthead { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); height: var(--masthead-h); }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; min-height: var(--tap); line-height: var(--lh-tight); }
.brand:hover { color: var(--color-ink); }
.brand__mark { background: var(--color-brand); color: var(--color-white); font-weight: var(--fw-bold); font-size: var(--fs-step-3); padding: var(--space-half) var(--space-1-5); }
.brand__word { font-weight: var(--fw-semibold); font-size: var(--fs-step-3); letter-spacing: var(--ls-tight); padding-left: var(--space-1); }
.brand__img { width: auto; height: var(--logo-h); }
/* Logo do cabeçalho: a altura escolhida na Customização (0046) manda e a largura segue a proporção, sem teto fixo — a
   logo tem a faixa da marca só para ela (a navegação fica na barra de baixo ou na gaveta). Só se não couber na largura
   útil da linha (celular: logo + busca + menu) ela encolhe inteira (object-fit: contain): nunca corta nem empurra os botões. */
.brand--header { flex: 0 1 auto; min-width: 0; }
/* 0047: largura da Customização (--xarpy-logo-width[-mobile]); vazia = automática pela proporção. Com altura E largura, a
   caixa é exatamente essa e a imagem fica inteira dentro dela (contain) ou esticada se o cadeado de proporção estiver aberto. */
.brand--header .brand__img { width: var(--logo-w-now); height: var(--logo-now); max-width: 100%; object-fit: contain; object-position: left center; }
.brand .brand__img--fill { object-fit: fill; }
/* cabeçalho: cadeado de proporção separado para computador (≥1024 px) e celular/tablet (0047) */
@media (min-width: 1024px) { .brand .brand__img--fill-d { object-fit: fill; } }
@media (max-width: 1023px) { .brand .brand__img--fill-m { object-fit: fill; } }
.brand--footer .brand__img { width: var(--xarpy-footer-logo-width, auto); height: var(--xarpy-footer-logo-height, var(--logo-h)); max-width: 100%; object-fit: contain; object-position: left center; }
/* margem negativa: o ícone (não a área de toque) alinha com a borda do conteúdo */
.masthead__actions { display: flex; align-items: center; gap: var(--space-1); flex-shrink: 0; margin-right: calc(-1 * var(--space-3)); }

.icon-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-width: var(--tap); height: var(--tap); padding: 0; border: var(--border-1) solid var(--color-transparent); border-radius: var(--radius-md); background: var(--color-transparent); color: var(--color-ink); font-size: var(--fs-15); font-weight: var(--fw-medium); cursor: pointer; transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.icon-btn:hover { background: var(--color-surface); border-color: var(--color-border); }
.icon-btn:active { transform: scale(var(--scale-press)); }
.icon-btn__label { display: none; }

.navbar { display: none; border-top: var(--border-1) solid var(--color-border); }
.navbar__inner { display: flex; align-items: stretch; height: var(--navbar-h); }
.primary-nav { flex: 1 1 auto; min-width: 0; height: var(--navbar-h); position: relative; }
/* priority+: as editorias que não cabem descem para uma 2ª linha escondida (nunca saem pela metade); "Mais" abre a
   gaveta com todas. Pelo teclado, a lista se abre por cima do conteúdo para o item focado ficar sempre visível. */
.primary-nav > .menu { list-style: none; display: flex; flex-wrap: wrap; height: var(--navbar-h); overflow: hidden; margin-left: calc(-1 * var(--space-3)); font-size: var(--fs-15); font-weight: var(--fw-medium); white-space: nowrap; }
.primary-nav .menu__sub { display: none; }
/* Submenus da barra (1.0.7), só CSS: o painel abre com o mouse ou o foco do teclado (:focus-within). A lista não é a caixa
   de referência (sem position), então o painel absoluto se ancora em .primary-nav e escapa do overflow do priority+;
   sem top/left ele fica na posição natural, logo abaixo do item pai. O 3º nível aparece recuado dentro do painel. */
.primary-nav > .menu > li:has(> .menu__sub) > a { padding-right: calc(var(--space-3) + var(--space-4)); }
.primary-nav > .menu > li:has(> .menu__sub) > a::before { content: ""; position: absolute; right: var(--space-3); top: 50%; width: 0.4rem; height: 0.4rem; margin-top: -0.3rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--dur-fast) var(--ease); }
.primary-nav > .menu > li:is(:hover, :focus-within) > a::before { transform: translateY(0.15rem) rotate(225deg); }
.primary-nav > .menu > li > .menu__sub { position: absolute; z-index: 3; min-width: 14rem; max-width: 20rem; padding-block: var(--space-2); list-style: none; background: var(--color-white); border: var(--border-1) solid var(--color-border); border-top: var(--border-accent) solid var(--color-brand); box-shadow: var(--shadow-lift); white-space: normal; }
.primary-nav > .menu > li:is(:hover, :focus-within) > .menu__sub { display: block; }
.primary-nav .menu__sub .menu__sub { display: block; list-style: none; padding-left: var(--space-3); }
.primary-nav .menu__sub a { height: auto; min-height: var(--tap); padding: var(--space-2) var(--space-4); font-size: var(--fs-14); font-weight: var(--fw-regular); line-height: var(--lh-snug); }
.primary-nav .menu__sub a::after { display: none; }
.primary-nav .menu__sub a:hover, .primary-nav .menu__sub a[aria-current="page"] { background: var(--color-surface); }
.primary-nav a { position: relative; display: flex; align-items: center; height: var(--navbar-h); padding-inline: var(--space-3); color: var(--color-ink); transition: color var(--dur-fast) var(--ease); }
.primary-nav a::after { content: ""; position: absolute; left: var(--space-3); right: var(--space-3); bottom: 0; height: var(--border-accent); background: var(--color-brand); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-base) var(--ease); }
.primary-nav a:hover { color: var(--color-brand-dark); }
.primary-nav a:hover::after, .primary-nav a[aria-current="page"]::after { transform: none; }
.primary-nav a[aria-current="page"] { color: var(--color-brand-dark); font-weight: var(--fw-semibold); }
.primary-nav a:focus-visible, .drawer__nav a:focus-visible, .navbar__more:focus-visible { outline-offset: calc(-1 * var(--focus-width)); }
.primary-nav:has(:focus-visible) > .menu { height: auto; overflow: visible; position: relative; z-index: 2; background: var(--color-white); box-shadow: var(--shadow-lift); }
.navbar__more { flex: 0 0 auto; display: inline-flex; align-items: center; gap: var(--space-1); height: var(--navbar-h); padding-inline: var(--space-4) var(--space-1); margin-left: var(--space-2); border: 0; border-left: var(--border-1) solid var(--color-border); background: var(--color-transparent); color: var(--color-ink); font-size: var(--fs-15); font-weight: var(--fw-semibold); cursor: pointer; transition: color var(--dur-fast) var(--ease); }
.navbar__more:hover { color: var(--color-brand-dark); }

/* Painéis (busca e gaveta) */
.sheet { margin: 0; padding: 0; border: 0; max-width: none; max-height: none; background: var(--color-white); color: var(--color-ink); box-shadow: var(--shadow-pop); overscroll-behavior: contain; }
.sheet::backdrop { background: var(--color-scrim); }
.sheet__title { font-size: var(--fs-step-2); line-height: var(--lh-title); font-weight: var(--fw-semibold); letter-spacing: var(--ls-tight); }
.sheet__close { flex-shrink: 0; border-color: var(--color-border-strong); }
html:has(.sheet[open]), html:has(.sheet:popover-open) { overflow: hidden; }
.sheet--search { position: fixed; inset: 0 0 auto 0; width: 100%; height: auto; border-bottom: var(--border-heavy) solid var(--color-brand); }
.sheet--search[open], .sheet--search:popover-open { animation: sheet-down var(--dur-slow) var(--ease); }
.sheet__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); padding-block: var(--space-6) var(--space-7); max-width: var(--w-lg); }
.sheet__search { grid-column: 1 / -1; grid-row: 2; }
.sheet__search .search-box input, .sheet__search .search-box button { height: var(--tap-lg); }
.sheet--drawer { position: fixed; inset: 0 0 0 auto; width: min(var(--w-drawer), 100vw - var(--space-9)); height: 100vh; height: 100dvh; }
.sheet--drawer[open], .sheet--drawer:popover-open { display: flex; flex-direction: column; animation: sheet-left var(--dur-slow) var(--ease); }
.drawer__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: var(--masthead-h-sm); padding-inline: var(--space-5) var(--space-4); border-bottom: var(--border-1) solid var(--color-border); }
.drawer__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: var(--space-2) var(--space-5) var(--space-8); display: flex; flex-direction: column; gap: var(--space-6); }
.drawer__nav ul { list-style: none; display: flex; flex-direction: column; }
.drawer__nav ul ul { padding-left: var(--space-4); }
.drawer__nav a { display: flex; align-items: center; min-height: var(--tap-lg); border-bottom: var(--border-1) solid var(--color-border); font-size: var(--fs-16); font-weight: var(--fw-medium); color: var(--color-ink); transition: color var(--dur-fast) var(--ease); }
.drawer__nav a:hover, .drawer__nav a[aria-current="page"] { color: var(--color-brand-dark); }
.drawer__nav a[aria-current="page"] { font-weight: var(--fw-semibold); box-shadow: inset var(--border-accent) 0 0 var(--color-brand); padding-left: var(--space-3); }
.drawer__nav ul ul a { font-size: var(--fs-15); font-weight: var(--fw-regular); }
.drawer__nav--secondary a { min-height: var(--tap); font-size: var(--fs-14); font-weight: var(--fw-regular); color: var(--color-text-2); border-bottom: 0; }
/* Menu lateral (local "drawer", Aparência > Menu): com itens, ele é o conteúdo da gaveta e as editorias do primary ficam
   num grupo recolhível acima (continuam alcançáveis no celular e o que não coube na barra no desktop); sem itens, a gaveta
   mostra editorias + institucional como antes. Item de 1º nível com filhos vira título de seção; 3º nível recuado. */
.drawer__group { display: none; border-bottom: var(--border-1) solid var(--color-border); }
.drawer__body:has(.drawer__nav--custom .menu) .drawer__group { display: block; }
.drawer__body:has(.drawer__nav--custom .menu) .drawer__fallback { display: none; }
.drawer__summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); min-height: var(--tap-lg); font-size: var(--fs-16); font-weight: var(--fw-semibold); cursor: pointer; }
.drawer__summary::-webkit-details-marker { display: none; }
.drawer__summary:hover { color: var(--color-brand-dark); }
.drawer__chevron { transition: transform var(--dur-base) var(--ease); }
.drawer__group[open] .drawer__chevron { transform: rotate(180deg); }
.drawer__group .drawer__nav { padding-bottom: var(--space-3); }
.drawer__group .drawer__nav > .menu > li:last-child > a { border-bottom: 0; }
.drawer__nav--custom > .menu > li:has(> .menu__sub) { padding-top: var(--space-5); }
.drawer__nav--custom > .menu > li:has(> .menu__sub) > a { min-height: var(--tap); border-bottom: var(--border-accent) solid var(--color-ink); font-size: var(--fs-14); font-weight: var(--fw-semibold); color: var(--color-ink-2); }
.drawer__nav--custom > .menu > li:has(> .menu__sub) > a:hover { color: var(--color-brand-dark); }
.drawer__nav--custom .menu__sub { padding-left: 0; }
.drawer__nav--custom .menu__sub .menu__sub { padding-left: var(--space-4); border-left: var(--border-1) solid var(--color-border-strong); margin-left: var(--space-1); }
.drawer__nav--custom .menu__sub .menu__sub a { min-height: var(--tap); font-size: var(--fs-15); font-weight: var(--fw-regular); color: var(--color-text-2); }
@keyframes sheet-down { from { transform: translateY(-100%); } to { transform: none; } }
@keyframes sheet-left { from { transform: translateX(100%); } to { transform: none; } }

@media (min-width: 1024px) {
  .site-header { top: calc(-1 * var(--masthead-h) - var(--border-1)); }
  .navbar { display: block; }
  .icon-btn { padding-inline: var(--space-3) var(--space-4); }
  .masthead__actions { margin-right: calc(-1 * var(--space-4)); }
  .icon-btn__label { display: inline; }
  .masthead__actions .icon-btn:last-child { display: none; }
}

/* =========================================================== Migalhas */
.breadcrumb { padding-top: var(--space-4); font-size: var(--fs-13); color: var(--color-ink-2); }
.breadcrumb__list { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--space-1-5); }
.breadcrumb__item { display: flex; align-items: center; gap: var(--space-1-5); min-height: var(--tap); }
.breadcrumb__item + .breadcrumb__item::before { content: "/"; color: var(--color-ink-2); }
.breadcrumb__item a { display: inline-flex; align-items: center; min-height: var(--tap); color: var(--color-ink-2); }
.breadcrumb__item a:hover { color: var(--color-ink); }
.breadcrumb__item[aria-current="page"] { color: var(--color-ink); font-weight: var(--fw-semibold); }
.breadcrumb--dark, .breadcrumb--dark .breadcrumb__item a, .breadcrumb--dark .breadcrumb__item + .breadcrumb__item::before { color: var(--color-dark-text-2); }
.breadcrumb--dark .breadcrumb__item a:hover, .breadcrumb--dark .breadcrumb__item[aria-current="page"] { color: var(--color-white); }

/* =========================================================== Slots de publicidade */
.slot-ad { display: flex; flex-direction: column; align-items: center; gap: var(--space-1-5); margin-block: var(--space-6); }
.slot-ad > * { max-width: 100%; }
.slot-ad--header { margin-block: var(--space-4); }
.slot-ad--sidebar { margin-block: 0; }
.slot-ad--band { margin-block: 0 var(--space-2); }
.ad { display: flex; flex-direction: column; align-items: center; gap: var(--space-1-5); max-width: 100%; margin: 0; }
.ad a { display: block; max-width: 100%; }
.ad__label { font-size: var(--fs-12); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--color-ink-2); }
.ad__img { max-width: 100%; max-height: var(--ad-max-h); width: auto; height: auto; object-fit: contain; }
.ad__frame { display: block; max-width: 100%; border: 0; }
.ad__native { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4); background: var(--color-surface); border: var(--border-1) solid var(--color-border); border-radius: var(--radius-md); }
.ad__headline { font-weight: var(--fw-semibold); line-height: var(--lh-snug); }
.ad__desc { font-size: var(--fs-14); color: var(--color-text-2); }
.ad__cta { font-size: var(--fs-14); font-weight: var(--fw-medium); color: var(--color-brand-dark); }
.ad-preview { width: 100%; padding: var(--space-4); border: var(--border-1) dashed var(--color-ink-2); background: var(--color-surface); color: var(--color-text-2); font-size: var(--fs-13); text-align: center; }

/* =========================================================== Cards */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr)); gap: var(--space-7) var(--space-6); }
.card__link { display: flex; flex-direction: column; gap: var(--space-2-5); height: 100%; color: var(--color-ink); }
.card__link:hover { color: var(--color-ink); }
.card__media, .lead__media, .row-card__media { position: relative; overflow: hidden; border-radius: var(--radius-sm); background-color: var(--color-thumb); background-image: repeating-linear-gradient(135deg, var(--color-thumb-stripe) 0 var(--stripe), var(--color-transparent) var(--stripe) var(--stripe-gap)); }
.card__media, .lead__media { aspect-ratio: 16 / 9; }
.card__img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease); }
.card__link:hover .card__img, .lead__link:hover .card__img, .row-card__link:hover .card__img { transform: scale(var(--scale-hover)); }
.card__title { font-size: var(--fs-step-1); line-height: var(--lh-snug); font-weight: var(--fw-semibold); transition: color var(--dur-base) var(--ease); }
.card__link:hover .card__title, .lead__link:hover .lead__title, .compact__link:hover .compact__title, .row-card__link:hover .row-card__title { color: var(--color-brand-dark); }
.card__excerpt { font-size: var(--fs-14); line-height: var(--lh-ui); color: var(--color-text-2); }
.card__media--video { background-color: var(--color-dark-border); }
.card__play { position: absolute; inset: 0; margin: auto; width: var(--play-size); height: var(--play-size); border-radius: var(--radius-pill); background: var(--color-white); color: var(--color-ink); display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-lift); transition: transform var(--dur-base) var(--ease); }
.card__link:hover .card__play { transform: scale(var(--scale-hover)); }
.card--feature .card__title { font-size: var(--fs-step-3); line-height: var(--lh-title); }

.lead__link { display: flex; flex-direction: column; gap: var(--space-4); color: var(--color-ink); }
.lead__link:hover { color: var(--color-ink); }
.lead__body { display: flex; flex-direction: column; gap: var(--space-2-5); }
.lead__title { font-size: var(--fs-step-6); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); font-weight: var(--fw-semibold); transition: color var(--dur-base) var(--ease); }
.lead__excerpt { font-size: var(--fs-step-1); line-height: var(--lh-ui); color: var(--color-text-2); max-width: var(--read-max); }

.compact-list { display: flex; flex-direction: column; }
.compact { border-bottom: var(--border-1) solid var(--color-border); }
.compact__link { display: flex; flex-direction: column; gap: var(--space-1); padding-block: var(--space-3-5); color: var(--color-ink); }
.compact__link:hover { color: var(--color-ink); }
.compact__title { font-size: var(--fs-16); line-height: var(--lh-snug); font-weight: var(--fw-semibold); transition: color var(--dur-base) var(--ease); }

.row-list { display: flex; flex-direction: column; }
.row-card { border-bottom: var(--border-1) solid var(--color-border); }
.row-card__link { display: grid; grid-template-columns: minmax(0, 1fr) var(--row-media); gap: var(--space-6); padding-block: var(--space-5); color: var(--color-ink); }
.row-card__link:hover { color: var(--color-ink); }
.row-card__body { display: flex; flex-direction: column; gap: var(--space-1-5); min-width: 0; }
.row-card__title { font-size: var(--fs-step-2); line-height: var(--lh-snug); font-weight: var(--fw-semibold); transition: color var(--dur-base) var(--ease); }
.row-card__excerpt { font-size: var(--fs-15); line-height: var(--lh-ui); color: var(--color-text-2); }
.row-card__media { aspect-ratio: 16 / 10; align-self: start; }

.rank-list { list-style: none; counter-reset: rank; }
.rank-list__item { display: grid; grid-template-columns: var(--rank-w) minmax(0, 1fr); align-items: start; counter-increment: rank; }
.rank-list__item::before { content: counter(rank); padding-top: var(--space-4); font-size: var(--fs-step-5); line-height: var(--lh-tight); font-weight: var(--fw-bold); color: var(--color-brand-dark); }

/* =========================================================== Home */
.band { padding-top: var(--space-6); }
.band--home-bottom { padding-block: 0 var(--section-y); }
.home-lead { padding-block: var(--space-7) var(--space-6); }
/* 1.0.6: mesma coluna da barra lateral de baixo (--sidebar-width + mesmo vão do .layout): as bordas das colunas alinham */
.home-lead__grid { display: grid; grid-template-columns: minmax(0, 1fr) var(--sidebar-width); gap: var(--space-9); align-items: start; }
.home-lead__side { display: flex; flex-direction: column; }
.home-section__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--space-7); align-items: start; }
.home-section__grid--solo { grid-template-columns: minmax(0, 1fr); }
.home-section__grid--solo .card__link { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); grid-template-rows: auto auto 1fr; gap: var(--space-2-5) var(--space-6); }
.home-section__grid--solo .card__media { grid-row: 1 / 4; }
.home-section__list .compact:first-child .compact__link { padding-top: 0; }
.listing-lead { padding-bottom: var(--space-7); margin-bottom: var(--space-7); border-bottom: var(--border-1) solid var(--color-border); }
.listing-lead + .slot-ad { margin-top: 0; }

/* =========================================================== Matéria */
.article-header { max-width: var(--w-lg); padding-block: var(--space-4) var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.article-header__kicker { align-self: flex-start; display: inline-flex; align-items: center; min-height: var(--tap); }
.article-header__title { font-size: var(--fs-step-7); line-height: var(--lh-tight); letter-spacing: var(--ls-display); font-weight: var(--fw-semibold); }
.article-header__subtitle { font-size: var(--fs-step-1); line-height: var(--lh-ui); color: var(--color-text-2); max-width: var(--read-max); }
.article-header__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); padding-top: var(--space-2); font-size: var(--fs-13); color: var(--color-ink-2); }
.byline { display: inline-flex; align-items: center; gap: var(--space-2-5); min-height: var(--tap); font-weight: var(--fw-semibold); color: var(--color-ink); font-size: var(--fs-14); }
.byline__avatar { width: var(--avatar-sm); height: var(--avatar-sm); border-radius: var(--radius-pill); object-fit: cover; }
.article-figure { margin: 0; max-width: var(--w-xl); }
.article-figure__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--color-thumb); border-radius: var(--radius-sm); }
.article-figure__caption { padding-top: var(--space-2); font-size: var(--fs-13); line-height: var(--lh-ui); color: var(--color-ink-2); }
.article-figure__credit { font-style: italic; }
.layout--article { padding-top: var(--space-6); }
.article__body { max-width: var(--read-max); }
.article__block { margin-top: var(--space-8); }
.prose { font-size: var(--fs-read); line-height: var(--lh-read); color: var(--color-text); overflow-wrap: anywhere; min-width: 0; }
.prose > * + * { margin-top: var(--space-5); }
.prose h2 { font-size: var(--fs-step-4); line-height: var(--lh-title); font-weight: var(--fw-semibold); color: var(--color-ink); margin-top: var(--space-9); }
.prose h3 { font-size: var(--fs-step-2); line-height: var(--lh-snug); font-weight: var(--fw-semibold); color: var(--color-ink); margin-top: var(--space-7); }
.prose h4 { font-size: var(--fs-step-1); line-height: var(--lh-snug); font-weight: var(--fw-semibold); color: var(--color-ink); margin-top: var(--space-6); }
.prose a { color: var(--color-brand-dark); text-decoration: underline; text-underline-offset: var(--underline-offset); }
.prose a:hover { color: var(--color-brand); }
.prose blockquote { margin: var(--space-7) 0; padding: var(--space-1) 0 var(--space-1) var(--space-6); border-left: var(--border-heavy) solid var(--color-brand); font-size: var(--fs-step-3); line-height: var(--lh-snug); font-weight: var(--fw-medium); color: var(--color-ink); }
.prose blockquote footer { margin-top: var(--space-2); font-size: var(--fs-14); font-weight: var(--fw-regular); color: var(--color-ink-2); }
.prose ul, .prose ol { padding-left: var(--space-6); }
.prose li + li { margin-top: var(--space-2); }
.prose figure { margin: var(--space-7) 0; }
.prose figure img { width: 100%; border-radius: var(--radius-sm); }
.prose figcaption { padding-top: var(--space-2); font-size: var(--fs-13); line-height: var(--lh-ui); color: var(--color-ink-2); }
.prose hr { border: 0; border-top: var(--border-1) solid var(--color-border); margin: var(--space-7) 0; }
.prose--document { max-width: var(--read-max); padding-bottom: var(--section-y); }
.tags { margin-top: var(--space-8); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.tags__title { font-size: var(--fs-14); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--ls-caps); color: var(--color-ink-2); }
.tags__list { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.author-box { margin-top: var(--space-8); padding: var(--space-6); background: var(--color-surface); border-radius: var(--radius-md); display: flex; gap: var(--space-5); align-items: flex-start; }
.author-box__avatar { width: var(--avatar-md); height: var(--avatar-md); border-radius: var(--radius-pill); object-fit: cover; flex-shrink: 0; }
.author-box__name { font-size: var(--fs-step-1); font-weight: var(--fw-semibold); }
.author-box__name a { display: inline-flex; align-items: center; min-height: var(--tap); }
.author-box__bio { font-size: var(--fs-15); line-height: var(--lh-ui); color: var(--color-text-2); }

/* =========================================================== Autor, busca, arquivo */
.author-header { flex-direction: row; align-items: center; gap: var(--space-6); }
.author-header__avatar { width: var(--avatar-lg); height: var(--avatar-lg); border-radius: var(--radius-pill); object-fit: cover; flex-shrink: 0; }
.author-header__text { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.search-panel { margin-top: var(--space-2); max-width: var(--w-md); }
.search-count { font-size: var(--fs-step-2); font-weight: var(--fw-semibold); margin-bottom: var(--space-1); }
.archive__group + .archive__group, .archive__year + .archive__year { margin-top: var(--space-8); }
.archive__label { font-size: var(--fs-14); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--ls-caps); color: var(--color-ink-2); border-top: var(--border-accent) solid var(--color-ink); padding-top: var(--space-3); }
.archive__grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--tile-min), 100%), 1fr)); gap: var(--space-3); }
.archive__month { display: flex; flex-direction: column; gap: var(--space-1); min-height: var(--tap); padding: var(--space-3) var(--space-4); border: var(--border-1) solid var(--color-border-strong); border-radius: var(--radius-md); transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.archive__month:hover { border-color: var(--color-ink); color: var(--color-ink); transform: translateY(calc(-1 * var(--space-half))); }
.archive__month-name { font-weight: var(--fw-semibold); }

/* =========================================================== Vídeos */
.video-hero { background: var(--color-hero); color: var(--color-white); }
.video-hero__inner { padding-bottom: var(--section-y); display: flex; flex-direction: column; gap: var(--space-3); }
.video-hero__title { font-size: var(--fs-step-7); line-height: var(--lh-tight); letter-spacing: var(--ls-display); font-weight: var(--fw-semibold); padding-top: var(--space-3); }
.video-hero__lede { font-size: var(--fs-16); color: var(--color-dark-text); max-width: var(--read-max); }
.video-hero__player { margin-top: var(--space-5); max-width: var(--w-xl); }
.video-hero :focus-visible { outline-color: var(--color-focus-dark); }

/* =========================================================== 404 */
.not-found__inner { max-width: var(--read-max); padding-block: var(--space-10) var(--section-y); display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-4); }
.not-found__code { font-size: var(--fs-display); line-height: var(--lh-none); font-weight: var(--fw-semibold); letter-spacing: var(--ls-display); color: var(--color-ink); }
.not-found__zero { color: var(--color-brand); }
.not-found__title { font-size: var(--fs-step-6); line-height: var(--lh-tight); letter-spacing: var(--ls-display); font-weight: var(--fw-semibold); }
.not-found__text { font-size: var(--fs-step-1); line-height: var(--lh-ui); color: var(--color-text-2); max-width: var(--w-md); }
.not-found__search { width: min(var(--w-md), 100%); margin-top: var(--space-2); }
.not-found .empty-state__links ul { justify-content: center; }
.not-found__explore { padding-block: var(--space-7) var(--section-y); border-top: var(--border-1) solid var(--color-border); }

/* =========================================================== Estados vazios (ilustração só em CSS) */
.empty-state { background: var(--color-surface); border-radius: var(--radius-md); padding: var(--space-8); min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.empty-state--hero { padding-block: var(--space-10); border-top: var(--border-heavy) solid var(--color-brand); border-radius: 0 0 var(--radius-md) var(--radius-md); }
.empty-state--hero .empty-state__title { font-size: var(--fs-step-6); line-height: var(--lh-tight); letter-spacing: var(--ls-tight); max-width: var(--w-md); }
.empty-state--hero .empty-state__text { font-size: var(--fs-step-1); }
.empty-state__title { font-size: var(--fs-step-3); line-height: var(--lh-title); font-weight: var(--fw-semibold); color: var(--color-ink); }
.empty-state__text { font-size: var(--fs-15); line-height: var(--lh-ui); color: var(--color-text-2); max-width: var(--w-md); }
.empty-state__art { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--space-2); width: var(--art-w); height: var(--art-h); padding: var(--space-3); background: var(--color-white); border: var(--border-1) solid var(--color-border-strong); border-top: var(--border-heavy) solid var(--color-brand); border-radius: var(--radius-md); box-shadow: var(--shadow-lift); }
.empty-state__art::before { content: ""; position: absolute; top: var(--space-3); left: var(--space-3); width: var(--space-8); height: var(--space-6); border-radius: var(--radius-sm); background: var(--color-thumb); }
.empty-state__line { display: block; height: var(--space-1-5); border-radius: var(--radius-pill); background: var(--color-border-strong); }
.empty-state__line--short { width: 60%; }
.empty-state__art--video { justify-content: center; align-items: center; background: var(--color-hero); border-color: var(--color-hero); }
.empty-state__art--video::before { content: none; }
.empty-state__play { width: 0; height: 0; border-style: solid; border-width: var(--space-3) 0 var(--space-3) var(--space-5); border-color: var(--color-transparent) var(--color-transparent) var(--color-transparent) var(--color-white); }
.empty-state__links ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2-5); }
.empty-state__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); padding-top: var(--space-1); }
/* trilho de editorias (1.0.6): uma linha só, rolável na horizontal, em vez da nuvem de chips */
.chip-rail { align-self: stretch; min-width: 0; }
.chip-nav.chip-rail ul { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding-inline: var(--space-1); scrollbar-width: thin; padding: var(--space-1) var(--space-7) var(--space-1) var(--space-1); margin: calc(-1 * var(--space-1)); -webkit-mask-image: linear-gradient(to right, var(--color-black) calc(100% - var(--space-7)), var(--color-transparent)); mask-image: linear-gradient(to right, var(--color-black) calc(100% - var(--space-7)), var(--color-transparent)); }
.chip-rail li { flex: 0 0 auto; scroll-snap-align: start; }
.empty-state--hero .chip-rail { margin-top: var(--space-4); padding-top: var(--space-5); border-top: var(--border-1) solid var(--color-border-strong); }

/* =========================================================== Botões, chips, paginação */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--tap-lg); padding-inline: var(--space-6); border: var(--border-1) solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-ink); font-size: var(--fs-15); font-weight: var(--fw-medium); cursor: pointer; transition: border-color var(--dur-base) var(--ease), background-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease), transform var(--dur-fast) var(--ease); }
.btn:hover { border-color: var(--color-ink); color: var(--color-ink); }
.btn--primary { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-white); }
.btn--primary:hover { background: var(--color-text-2); border-color: var(--color-text-2); color: var(--color-white); }
.btn:active, .chip:active, .chip-nav a:active, .pagination__btn:active, .search-box button:active, .share-buttons__list a:active { transform: scale(var(--scale-press)); }
.chip, .chip-nav a, .share-buttons__list a, .social a { display: inline-flex; align-items: center; min-height: var(--tap); padding-inline: var(--space-4); border: var(--border-1) solid var(--color-border-strong); border-radius: var(--radius-pill); background: var(--color-white); font-size: var(--fs-14); transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.chip:hover, .chip-nav a:hover, .share-buttons__list a:hover { border-color: var(--color-ink); color: var(--color-ink); }
.chip-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.chip-nav .menu__sub { display: none; }
.chip-nav a[aria-current="page"] { border-color: var(--color-ink); font-weight: var(--fw-semibold); }
.pagination { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--space-2); align-items: center; padding-top: var(--space-8); font-size: var(--fs-14); }
.pagination__btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-1-5); min-height: var(--tap); padding-inline: var(--space-4); border: var(--border-1) solid var(--color-border-strong); border-radius: var(--radius-md); transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.pagination__btn:first-child { justify-self: start; }
.pagination__btn:last-child { justify-self: end; }
.pagination__btn:hover { border-color: var(--color-ink); color: var(--color-ink); }
.pagination__btn--disabled { color: var(--color-ink-2); border-color: var(--color-border); }
.pagination__status { color: var(--color-text-2); text-align: center; }

/* =========================================================== Slots do núcleo */
.search-box { display: flex; align-items: stretch; gap: var(--space-2); width: 100%; min-width: 0; margin: 0; }
.search-box input { flex: 1 1 0; min-width: 0; height: var(--tap); padding-inline: var(--space-4); border: var(--border-1) solid var(--color-ink-2); border-radius: var(--radius-pill); background: var(--color-white); color: var(--color-ink); font-size: var(--fs-16); -webkit-appearance: none; appearance: none; transition: border-color var(--dur-fast) var(--ease); }
.search-box input::placeholder, .comments__form input::placeholder, .comments__form textarea::placeholder { color: var(--color-ink-2); opacity: 1; }
.search-box input:hover { border-color: var(--color-ink); }
.search-box input:focus-visible { border-color: var(--color-focus); }
.search-box button { flex: 0 0 auto; height: var(--tap); padding-inline: var(--space-5); border: var(--border-1) solid var(--color-ink); border-radius: var(--radius-pill); background: var(--color-ink); color: var(--color-white); font-size: var(--fs-14); font-weight: var(--fw-medium); cursor: pointer; transition: background-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.search-box button:hover { background: var(--color-text-2); }
.search-box--page input, .search-box--page button { height: var(--tap-lg); }

.share-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.share-buttons__label { font-size: var(--fs-13); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--ls-caps); color: var(--color-ink-2); }
.share-buttons__list { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-2); }

.player { margin: 0; width: 100%; max-width: 100%; }
.player video { width: 100%; aspect-ratio: 16 / 9; background: var(--color-hero); border-radius: var(--radius-sm); }
.player audio { width: 100%; }

.related__title, .comments__title { font-size: var(--fs-step-4); line-height: var(--lh-title); letter-spacing: var(--ls-tight); font-weight: var(--fw-semibold); border-top: var(--border-accent) solid var(--color-ink); padding-top: var(--space-3); margin-bottom: var(--space-4); }
.related__list { list-style: none; }
.related__list li { border-bottom: var(--border-1) solid var(--color-border); }
.related__list a { display: block; padding-block: var(--space-3); font-size: var(--fs-16); line-height: var(--lh-snug); font-weight: var(--fw-medium); }

.comments__notice, .comments__closed { padding: var(--space-3) var(--space-4); background: var(--color-surface); border-left: var(--border-accent) solid var(--color-ink); font-size: var(--fs-15); line-height: var(--lh-ui); color: var(--color-text); margin-bottom: var(--space-4); }
.comments__more, .comments__empty { font-size: var(--fs-14); color: var(--color-text-2); margin-bottom: var(--space-4); }
.comments__list { list-style: none; }
.comments__list--replies { margin-left: var(--space-4); padding-left: var(--space-4); border-left: var(--border-1) solid var(--color-border-strong); }
.comments__item { padding-block: var(--space-4); border-bottom: var(--border-1) solid var(--color-border); }
.comments__list--replies > .comments__item:last-child { border-bottom: 0; padding-bottom: 0; }
.comments__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-3); font-size: var(--fs-13); color: var(--color-ink-2); }
.comments__author { font-size: var(--fs-15); font-weight: var(--fw-semibold); color: var(--color-ink); }
.comments__body { margin-top: var(--space-1-5); font-size: var(--fs-16); line-height: var(--lh-body); color: var(--color-text); }
.comments__reply { display: inline-flex; align-items: center; min-height: var(--tap); font-size: var(--fs-14); font-weight: var(--fw-medium); color: var(--color-brand-dark); text-decoration: underline; text-underline-offset: var(--underline-offset); }
.comments__reply:hover { color: var(--color-brand); }
.comments__form { margin-top: var(--space-7); padding: var(--space-6); background: var(--color-surface); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: var(--space-4); scroll-margin-top: calc(var(--header-height) + var(--space-4)); }
.comments__form-title { font-size: var(--fs-step-2); line-height: var(--lh-title); font-weight: var(--fw-semibold); }
.comments__form p { display: flex; flex-direction: column; gap: var(--space-1-5); }
.comments__form label { font-size: var(--fs-14); font-weight: var(--fw-medium); color: var(--color-ink); }
.comments__form input:not([type="hidden"]), .comments__form textarea { width: 100%; min-width: 0; min-height: var(--tap); padding-inline: var(--space-3-5); border: var(--border-1) solid var(--color-ink-2); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-ink); font-size: var(--fs-16); transition: border-color var(--dur-fast) var(--ease); }
.comments__form textarea { padding-block: var(--space-3); min-height: var(--field-min-h); resize: vertical; line-height: var(--lh-ui); }
.comments__form input:focus-visible, .comments__form textarea:focus-visible { border-color: var(--color-focus); }
.comments__form :user-invalid { border-color: var(--color-error); background: var(--color-error-bg); }
.comments__hint { font-size: var(--fs-13); line-height: var(--lh-ui); color: var(--color-text-2); }
.comments__form .btn { align-self: flex-start; }

.widget-area { display: flex; flex-direction: column; gap: var(--space-7); }
.widget__title { font-size: var(--fs-14); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--ls-caps); border-top: var(--border-accent) solid var(--color-ink); padding-top: var(--space-3); margin-bottom: var(--space-2); }
.widget__list { list-style: none; }
.widget__list li { border-bottom: var(--border-1) solid var(--color-border); font-size: var(--fs-14); line-height: var(--lh-snug); }
.widget__list a { display: flex; align-items: center; min-height: var(--tap); padding-block: var(--space-2); }
.widget > p + p { margin-top: var(--space-3); }
.widget--text { font-size: var(--fs-15); line-height: var(--lh-ui); color: var(--color-text-2); }
.widget__link a { display: inline-flex; align-items: center; min-height: var(--tap); font-weight: var(--fw-medium); color: var(--color-brand-dark); text-decoration: underline; text-underline-offset: var(--underline-offset); }
.widget__image { margin: 0; }
.widget__image img { width: 100%; border-radius: var(--radius-sm); }
.widget-area--home-top, .widget-area--home-bottom { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr)); gap: var(--space-6); }
.newsletter { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.consent-notice { padding: var(--space-4) var(--gutter); background: var(--color-surface); border-top: var(--border-1) solid var(--color-border); font-size: var(--fs-13); line-height: var(--lh-ui); color: var(--color-text-2); text-align: center; }
.consent-notice a { color: var(--color-brand-dark); text-decoration: underline; text-underline-offset: var(--underline-offset); }

/* =========================================================== Newsletter e rodapé */
.newsletter-band { padding-bottom: var(--section-y); }
.slot-newsletter { background: var(--color-surface); border-radius: var(--radius-md); padding: var(--space-7); }
.site-footer { background: var(--color-ink); color: var(--color-dark-text); border-top: var(--border-heavy) solid var(--color-brand); }
.site-footer__inner { padding-block: var(--space-10) var(--space-7); display: flex; flex-direction: column; gap: var(--space-8); }
.site-footer__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-8) var(--space-7); align-items: start; }
.site-footer a { color: var(--color-dark-text); }
.site-footer a:hover { color: var(--color-white); }
.site-footer :focus-visible { outline-color: var(--color-focus-dark); }
.brand--footer .brand__mark, .brand--footer .brand__word { font-size: var(--fs-step-2); }
.brand--footer .brand__word { color: var(--color-white); }
.site-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3-5); }
.site-footer__tagline { font-size: var(--fs-14); line-height: var(--lh-body); max-width: var(--w-sm); }
.site-footer__social { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.site-footer .social a { background: var(--color-transparent); border-color: var(--color-dark-border); }
.site-footer .social a:hover { border-color: var(--color-dark-text); }
/* 1.0.6: sem logo própria do rodapé vale a de fundo escuro; sem ela, a principal vai sobre uma placa clara (nunca escura sobre escuro) */
.brand__plate { display: inline-flex; align-items: center; padding: var(--space-2) var(--space-3); background: var(--color-white); border-radius: var(--radius-md); max-width: 100%; }
.site-footer__heading { font-size: var(--fs-14); line-height: var(--lh-ui); font-weight: var(--fw-semibold); color: var(--color-white); padding-bottom: var(--space-2); margin-bottom: var(--space-1); border-bottom: var(--border-1) solid var(--color-dark-border); }
.site-footer__col > .menu { list-style: none; font-size: var(--fs-14); }
.site-footer__col--sections > .menu { columns: 2; column-gap: var(--space-6); }
.site-footer__col li { break-inside: avoid; }
.site-footer__col .menu__sub { list-style: none; padding-left: var(--space-3); }
.site-footer__col a, .site-footer__legal a, .site-footer__widgets a { display: inline-flex; align-items: center; min-height: var(--space-8); }
.site-footer__col:not(:has(.menu)) { display: none; }
.site-footer__widgets { font-size: var(--fs-14); }
.site-footer__widgets .widget__title { font-size: var(--fs-12); color: var(--color-white); border-top-color: var(--color-dark-border); }
.site-footer__widgets .widget__list li { border-bottom-color: var(--color-dark-border); }
.site-footer__widgets .widget--text { color: var(--color-dark-text); }
.site-footer__widgets .widget__link a { color: var(--color-dark-text); }
.site-footer__bottom { padding-top: var(--space-5); line-height: var(--lh-ui); border-top: var(--border-1) solid var(--color-dark-border); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2-5) var(--space-6); font-size: var(--fs-12); color: var(--color-dark-text-2); }
.site-footer__legal ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0 var(--space-4); }
.site-footer__legal a { color: var(--color-dark-text-2); }

/* =========================================================== Regiões vazias: não ocupam espaço nem viram landmark */
nav:empty, .widget-area:empty, .slot-ad:empty, .slot-consent:empty, .slot-newsletter:empty, .article__block:empty,
.article-header__actions:empty, .article-header__audio:empty, .video-hero__player:empty, .sheet__search:empty,
.topbar__tagline:empty, .site-footer__tagline:empty, .site-footer__social:empty, .site-footer__widgets:empty { display: none; }
.band:has(> .widget-area:empty), .newsletter-band:has(.slot-newsletter:empty), .drawer__nav:not(:has(.menu)),
.topbar:not(:has(time, .menu, .topbar__tagline:not(:empty))), .navbar:not(:has(.primary-nav .menu)) { display: none; }
.sidebar { display: var(--sidebar-display); flex: 0 0 var(--sidebar-width); width: var(--sidebar-width); position: sticky; top: calc(var(--header-height) + var(--space-5)); }
.sidebar > * + * { margin-top: var(--space-7); }
.sidebar:not(:has(> :not(:empty))) { display: none; }

/* =========================================================== Responsivo (320 · 360 · 414 · 768 · 1024 · 1280 · 1440 · 1920) */
/* ---- 1.0.4: cor e layout por editoria na Home (sections[].classes do núcleo; sem style= inline) ---- */
.section--accent-brand { --section-accent: var(--color-brand); }
.section--accent-brand-dark { --section-accent: var(--color-brand-dark); }
.section--accent-ink { --section-accent: var(--color-ink); }
.section--accent-slate { --section-accent: var(--color-ink-2); }
.section--accent-blue { --section-accent: var(--color-blue); }
.home-section > .section-head { border-top-color: var(--section-accent, var(--color-ink)); }
/* compact-list e opinion: a matéria principal sai só com texto */
.section--layout-compact-list .home-section__lead .card__media,
.section--layout-opinion .home-section__lead .card__media { display: none; }
.section--layout-opinion .home-section__lead .card__link { padding-left: var(--space-5); border-left: var(--border-heavy) solid var(--section-accent, var(--color-brand)); }
/* horizontal-feed: a lista corre na horizontal, com rolagem e encaixe */
.section--layout-horizontal-feed .home-section__grid { grid-template-columns: minmax(0, 1fr); }
.section--layout-horizontal-feed .home-section__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(min(var(--card-min), 80%), 1fr); gap: var(--space-6); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: var(--space-2); }
.section--layout-horizontal-feed .home-section__list .compact { scroll-snap-align: start; border-bottom: 0; border-top: var(--border-1) solid var(--color-border); }
.section--layout-horizontal-feed .home-section__list .compact:first-child .compact__link { padding-top: var(--space-3-5); }
@media (min-width: 768px) {
  .section--layout-featured-list .home-section__grid:not(.home-section__grid--solo) { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
  .section--layout-two-leads-list .home-section__grid:not(.home-section__grid--solo) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .section--layout-compact-list .home-section__grid, .section--layout-opinion .home-section__grid { grid-template-columns: minmax(0, 1fr); }
  /* featured-grid, editorial-grid e horizontal-feed: principal em largura total (imagem ao lado do texto) e a lista em colunas */
  .section--layout-featured-grid .home-section__grid, .section--layout-editorial-grid .home-section__grid { grid-template-columns: minmax(0, 1fr); }
  .section--layout-featured-grid .home-section__lead .card__link, .section--layout-editorial-grid .home-section__lead .card__link, .section--layout-horizontal-feed .home-section__lead .card__link { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); grid-template-rows: auto auto 1fr; gap: var(--space-2-5) var(--space-6); }
  .section--layout-featured-grid .home-section__lead .card__media, .section--layout-editorial-grid .home-section__lead .card__media, .section--layout-horizontal-feed .home-section__lead .card__media { grid-row: 1 / 4; }
  .section--layout-featured-grid .home-section__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr)); column-gap: var(--space-6); }
  .section--layout-editorial-grid .home-section__list { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--space-6); }
  .section--layout-featured-grid .home-section__list .compact:first-child .compact__link, .section--layout-editorial-grid .home-section__list .compact:first-child .compact__link { padding-top: var(--space-3-5); }
}
/* ---- 1.0.4: modelos de página, página 404 escolhida e links legais das Configurações de leitura ---- */
.page-wide .page-header, .page-wide .prose--document { max-width: none; }
.layout--page { padding-top: 0; }
.layout--page .prose--document { padding-bottom: 0; }
.document--not-found .prose--document { padding-bottom: var(--space-6); }
.document__recover { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); padding-bottom: var(--section-y); }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: 0 var(--space-4); }
/* o menu "legal" cadastrado vence: os links de privacidade/termos só aparecem sem ele (evita link repetido) */
.site-footer__legal > .menu ~ .site-footer__reading { display: none; }

@media (max-width: 1279px) {
  .layout { gap: var(--space-7); }
  .home-lead__grid { gap: var(--space-7); }
}
@media (max-width: 1023px) {
  .layout { flex-direction: column; align-items: stretch; }
  .sidebar { position: static; width: 100%; flex-basis: auto; }
  .home-lead__grid { grid-template-columns: minmax(0, 1fr); }
  .site-footer__grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); }
  .site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .topbar { display: none; }
  .masthead { gap: var(--space-2); }
  .brand__mark, .brand__word { font-size: var(--fs-step-1); }
  .home-section__grid, .home-section__grid--solo .card__link { grid-template-columns: minmax(0, 1fr); }
  .home-section__grid--solo .card__media { grid-row: auto; }
  .row-card__link { grid-template-columns: minmax(0, 1fr) var(--row-media-sm); gap: var(--space-3-5); padding-block: var(--space-4); }
  .row-card__title { font-size: var(--fs-step-1); }
  .row-card__excerpt { display: none; }
  .prose blockquote { font-size: var(--fs-step-2); padding-left: var(--space-4); }
  .author-box, .author-header { flex-direction: column; align-items: flex-start; }
  .site-footer__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
  .site-footer__col a, .site-footer__legal a, .site-footer__widgets a, .site-footer__copy { min-height: var(--tap); }
  .site-footer__copy { display: flex; align-items: center; }
  .site-footer__inner { padding-top: var(--space-8); }
  .pagination { grid-template-columns: 1fr 1fr; }
  .pagination__status { grid-column: 1 / -1; grid-row: 1; }
  .slot-newsletter, .empty-state, .comments__form, .author-box { padding: var(--space-5); }
  .empty-state--hero { padding-block: var(--space-8); }
  .comments__list--replies { margin-left: var(--space-2); padding-left: var(--space-3); }
  .tags { margin-top: var(--space-6); }
}
@media (max-width: 413px) {
  .card-grid { gap: var(--space-6); }
  .empty-state__links ul, .empty-state__links li, .empty-state__links .btn { width: 100%; }
  .empty-state__actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .empty-state__actions .btn--primary { grid-column: 1 / -1; }
}
@media (pointer: coarse) {
  .site-footer__col a, .site-footer__legal a, .site-footer__widgets a, .topbar__nav a { min-height: var(--tap); }
}
@media (forced-colors: active) {
  .card__media, .lead__media, .row-card__media, .empty-state__art { border: var(--border-1) solid CanvasText; }
  .primary-nav a[aria-current="page"] { text-decoration: underline; }
  .sheet { border: var(--border-1) solid CanvasText; }
}

/* =========================================================== Movimento reduzido */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* =========================================================== Impressão */
@media print {
  .topbar, .site-header, .sheet, .sidebar, .slot-ad, .site-footer, .newsletter-band, .band, .skip-link, .pagination, .share-buttons, .comments__form, .comments__reply, .search-box, .slot-consent, .player, .related, .empty-state__art, .more-link { display: none !important; }
  body { display: block; background: none; color: var(--color-black); }
  .layout { display: block; padding: 0; }
  .article__body, .prose, .prose--document { max-width: none; }
  .prose a { color: inherit; }
  .prose a[href^="http"]::after { content: " (" attr(href) ")"; font-size: var(--fs-12); overflow-wrap: anywhere; }
  .card, .row-card, .lead, .compact, .comments__item, .prose figure, .prose blockquote { break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; }
}
