/* GEOPOL: marca e paleta "papel suave", por cima do tema claro do motor (capa fluxo-esquerda).
   Carregado logo depois de /static/style.css.

   Paleta "papel suave" (28/10/2026): nada de branco nem de preto puros, como o Financial Times (papel
   #FFF1E5, texto #33302E, 11,8:1) e o Atlantic (texto #383839). Contraste WCAG sobre o papel #F0EDE6
   (e sobre o fundo do Fluxo #E7E3DA):
   - todo o texto em preto #000000 ... 17,6:1 (16,1:1) (decisao do Lucas, 28/10/2026)
   - rodape: fundo escuro #2B2925 com texto claro (excecao)
   Italico so no que o redator marca com *...* no texto (revertido em 01/11/2026); citacao, dek, nota e data seguem retos.
   Fontes: Rubik (titulos e corpo; OFL, escolhida pelo Lucas em 28/10/2026), Figtree (rotulos, menu, meta; OFL).
*/

@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/static/fonts/rubik-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/static/fonts/rubik-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/static/fonts/figtree-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/static/fonts/figtree-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --paper: #F0EDE6;   /* papel suave */
  --ink: #000000;     /* texto: preto (decisao do Lucas, 28/10/2026) */
  --head: #000000;    /* titulos */
  --rule: #D3CEC5;    /* filete fino */
  --rule2: #000000;   /* filete forte */
  --meta: #000000;
  --faint: #000000;
  --accent: #000000;
  --chip: #E7E3DA;    /* fundo do Fluxo e dos chips */
  --sel: #DDD8CE;
  --serif: 'Rubik', ui-sans-serif, system-ui, sans-serif;
  --mono: 'Figtree', ui-sans-serif, system-ui, sans-serif;
}

html, body { background: var(--paper); color: var(--ink); }
h1, h2, h3, .brand, .bres-t, .busca-empty h3 { font-family: var(--serif); color: var(--head); }
/* italico so onde o redator marcou (em/i no texto); o resto nao herda o italico do motor. Rubik so tem a face reta: o navegador inclina (font-synthesis style) */
cite, blockquote, q, .dek, .lead .dek, .wire-sub, .home-dateline { font-style: normal; }
html { font-synthesis: weight style; }

/* ---------- lista de titulos da coluna direita da capa (fluxo-esquerda) ---------- */
.home-lista .label { font-family: var(--mono); color: var(--ink); }
.home-lista a { font-family: var(--serif); font-weight: 500; color: var(--head); }

/* notas do Fluxo justificadas (o motor fixo ainda nao tem a regra) */
.wire-t { text-align: justify; hyphens: auto; }

/* texto corrido de materias, analises e especiais justificado (todos usam .piece) */
.piece p, .piece li { text-align: justify; hyphens: auto; }

/* Fluxo no mesmo fundo do resto da capa (sem painel destacado) */
.home .cols.fluxo-esquerda > .wire { background: transparent; }

/* Fluxo da capa sem painel rolavel: a pagina rola, sem barra propria; "Ver mais" revela o proximo lote */
.home .cols.fluxo-esquerda > .wire { position: static; max-height: none; overflow: visible; }

/* Fluxo da capa sem fio preto: nem o de cima do cabecalho, nem o que separa das listas da direita */
.home .cols.fluxo-esquerda > .wire { border-right: 0; }
.home .cols.fluxo-esquerda > .wire > .label { border-top: 0; padding-top: 0; }

/* manchete da capa no mesmo tamanho das chamadas abaixo (.secondary h2: 2rem; 1.625rem ate 1025 px) */
.home .lead h1 { font-size: 2rem; line-height: 1.32; letter-spacing: -.01em; }
@media (max-width: 1025px) { .home .lead h1 { font-size: 1.625rem; } }

/* Rubik: titulos em 600 e texto em 400 (o motor usa 300/350 para Newsreader, fino demais em sans) */
.lead h1, .secondary h2, .row h2, .piece h1, .more h2, .item h2, .item .wire-t { font-weight: 600; letter-spacing: -.005em; }
.piece h2.sub { font-weight: 600; }
.lead .dek, .piece .dek, .piece p, .secondary p, .row p, .flowview .dek, .section-desc { font-weight: 400; }

/* Fluxo: nota inteira no desktop (sem "Ler mais"); o corte so vale no celular. Mesmo limite do layout (1025 px). */
@media (min-width: 1026px) {
  .wire-copy-rest[hidden] { display: inline; }
  .wire-item-more { display: none; }
}

/* Cabecalho: bloco escuro (#2B2925), sangria total por sombra (funciona em qualquer largura do .wrap).
   Ate 1099 px: duas linhas (marca + RSS + busca; secoes em uma linha). De 1100 px: uma linha so.
   A linha da data sai da capa: a hora ja vem em cada nota. */
.home-dateline { display: none; }
@media (max-width: 1099px) {
  .top.has-search { display: flex; flex-wrap: wrap; align-items: center; column-gap: 0.625rem; row-gap: 0; padding: 0.625rem 0 0; background: #2B2925; box-shadow: 0 0 0 100vmax #2B2925; clip-path: inset(0 -100vmax); color: var(--paper); }
  .top.has-tagline:has(.site-menu) { padding-bottom: 0; }
  .top .brand { color: var(--paper); font-size: 1.625rem; }
  .top .tagline { position: static; margin-top: 0.375rem; color: #D2CCBF; }
  .top .tools { order: 1; flex: 0 0 auto; margin-left: auto; color: #D2CCBF; }
  .top .tools a { color: inherit; font-weight: 600; }
  .top .search-open { order: 2; margin: 0 -0.625rem 0 0; color: var(--paper); }
  .top .search-open:hover { border-color: transparent; }
  .top .site-menu { flex-wrap: nowrap; justify-content: space-between; gap: 0; margin-top: 0.5rem; padding: 0; border-top: 1px solid #4F4B44; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.04em; }
  .top .site-menu a { color: var(--paper); padding: 0.875rem 0; }
}
@media (min-width: 1026px) {
  .top .search-open { width: 14rem; margin: 0; border-color: #6B665D; background: transparent; color: var(--paper); }
  .top .search-open:hover { border-color: var(--paper); }
  .top .search-key { border-color: #6B665D; color: #D2CCBF; }
}
@media (min-width: 1100px) {
  .top.has-search { display: flex; flex-wrap: nowrap; align-items: center; column-gap: 1.5rem; padding: 0.875rem 0; background: #2B2925; box-shadow: 0 0 0 100vmax #2B2925; clip-path: inset(0 -100vmax); color: var(--paper); }
  .top.has-tagline:has(.site-menu) { padding-bottom: 0.875rem; }
  .top .brand { color: var(--paper); font-size: 1.625rem; }
  .top .tagline { position: static; margin-top: 0.375rem; color: #D2CCBF; }
  .top .brandbox { text-align: left; }
  .top .site-menu { order: 1; flex: 1 1 0; flex-basis: 0; flex-wrap: nowrap; margin: 0; padding: 0; border-top: 0; justify-content: center; gap: 0 1.5rem; font-size: 0.71875rem; font-weight: 600; letter-spacing: 0.06em; }
  .top .site-menu a { color: var(--paper); padding: 0.5rem 0; }
  .top .search-open { order: 2; }
  .top .tools { order: 3; margin-left: 0; color: #D2CCBF; }
  .top .tools a { color: inherit; font-weight: 600; }
}
