:root {
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --display: var(--serif);
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --gutter: clamp(16px, 4vw, 32px);
  --max: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--serif); line-height: 1.5; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
[hidden] { display: none !important; }

.skip-link { position: absolute; left: 8px; top: -60px; background: var(--text); color: var(--bg); padding: 8px 12px; z-index: 100; font-family: var(--sans); }
.skip-link:focus { top: 8px; }

/* ---------- Cabeçalho ---------- */
.masthead { max-width: var(--max); margin: 0 auto; padding: 12px var(--gutter) 0; text-align: center;
  /* Estados do cabeçalho (variáveis animadas por transição): completo (home) e compacto (páginas internas). */
  --m-logo-w: min(300px, 72vw); --m-logo-mt: 18px; --m-rows: 1fr; --m-op: 1; --m-vis-delay: 0s; }
@media (min-width: 900px) { .masthead { --m-logo-w: 340px; } }
.masthead[data-state="compact"], html[data-mast-start="compact"] .masthead[data-state] { --m-logo-w: 120px; --m-logo-mt: 8px; --m-rows: 0fr; --m-op: 0; --m-vis-delay: .3s; }
html[data-mast-start="full"] .masthead[data-state] { --m-logo-w: min(300px, 72vw); --m-logo-mt: 18px; --m-rows: 1fr; --m-op: 1; --m-vis-delay: 0s; }
@media (min-width: 900px) { html[data-mast-start="full"] .masthead[data-state] { --m-logo-w: 340px; } }
.masthead__extras { display: grid; grid-template-rows: var(--m-rows); opacity: var(--m-op); }
.masthead__extras-in { min-height: 0; overflow: hidden; }
.masthead[data-state="compact"] .themes, html[data-mast-start="compact"] .masthead .themes { margin-top: 10px; }
.masthead[data-state="compact"] .masthead__extras, html[data-mast-start="compact"] .masthead .masthead__extras { visibility: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .logo__img { transition: width .3s cubic-bezier(.4, 0, .2, 1); }
  .logo { transition: margin-top .3s cubic-bezier(.4, 0, .2, 1); }
  .masthead__extras { transition: grid-template-rows .3s cubic-bezier(.4, 0, .2, 1), opacity .22s ease, visibility 0s linear var(--m-vis-delay); }
  .themes { transition: margin-top .3s cubic-bezier(.4, 0, .2, 1); }
}
.masthead__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-family: var(--sans); }
.masthead__controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.auth { display: flex; gap: 8px; align-items: center; }
.auth form { margin: 0; }

/* Marca: PNG aprovado, uma única vez. Variante escura trocada por CSS (só uma fica visível). */
.logo { display: block; width: fit-content; margin: var(--m-logo-mt) auto 0; line-height: 0; border-radius: 6px; }
.logo__pic { display: block; }
.logo__img { display: block; width: var(--m-logo-w); height: auto; aspect-ratio: 2041 / 357; }
.logo__pic--dark { display: none; }
html[data-theme="dark"] .logo__pic--light { display: none; }
html[data-theme="dark"] .logo__pic--dark { display: block; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .logo__pic--light { display: none; }
  html:not([data-theme]) .logo__pic--dark { display: block; }
}

.tagline { margin: 14px 0 0; display: grid; gap: 3px; font-family: var(--sans); }
.tagline__main { font-size: clamp(1.0625rem, .95rem + .55vw, 1.4rem); font-weight: 600; letter-spacing: -.005em; line-height: 1.25; color: var(--text); }
.tagline__sub { font-size: .9rem; line-height: 1.35; color: var(--text-2); }
.dateline { margin: 14px 0 10px; font-family: var(--sans); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); padding: 8px 0; border-top: 3px double var(--text); border-bottom: 1px solid var(--line); }
.dateline time { font-weight: 600; }
@media (max-width: 480px) { .dateline { font-size: .68rem; letter-spacing: .05em; } }

/* Controles compactos (idioma e tema) e itens de menu: degradê laranja-vermelho no hover e na seleção,
   aplicado por uma camada ::before (a transição de opacidade não altera o tamanho dos itens). */
.lang, .theme-switch { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--surface); }
.lang__btn, .theme-switch__btn, .themes__btn { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; text-decoration: none; background: transparent; border: 0; font-family: var(--sans); font-weight: 600; color: var(--text-2); }
.lang__btn::before, .theme-switch__btn::before, .themes__btn::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--menu-gradient); opacity: 0; }
.lang__btn:hover, .theme-switch__btn:hover, .themes__btn:hover,
.lang__btn[aria-current="true"], .theme-switch__btn[aria-checked="true"], .themes__btn[aria-current="page"] { color: var(--on-gradient); }
.lang__btn:hover::before, .theme-switch__btn:hover::before, .themes__btn:hover::before,
.lang__btn[aria-current="true"]::before, .theme-switch__btn[aria-checked="true"]::before, .themes__btn[aria-current="page"]::before { opacity: 1; }
.lang__btn, .theme-switch__btn { padding: 6px 10px; min-height: 32px; font-size: .75rem; letter-spacing: .06em; }
.lang__btn + .lang__btn, .theme-switch__btn + .theme-switch__btn { border-left: 1px solid var(--line); }
.lang__btn:focus-visible, .theme-switch__btn:focus-visible { outline-offset: -3px; }
.theme-switch__btn svg { display: block; }
.js-only { display: none; }
html.js .js-only { display: inline-flex; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Barra de editorias ---------- */
.themes { position: relative; border-bottom: 2px solid var(--text); }
.themes__wrap { position: relative; }
.themes__list { list-style: none; margin: 0; padding: 4px 2px; display: flex; gap: 4px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; justify-content: flex-start; }
.themes__list::-webkit-scrollbar { display: none; }
.themes__wrap::before, .themes__wrap::after { content: ""; position: absolute; top: 0; bottom: 0; width: 32px; pointer-events: none; z-index: 2; opacity: 0; transition: opacity .2s; }
.themes__wrap::before { left: 0; background: linear-gradient(to right, var(--scroll-fade), transparent); }
.themes__wrap::after { right: 0; background: linear-gradient(to left, var(--scroll-fade), transparent); }
.themes__wrap.has-left::before, .themes__wrap.has-right::after { opacity: 1; }
.themes__btn { flex: 0 0 auto; scroll-snap-align: start; padding: 9px 14px; margin: 3px 0; border-radius: 8px; font-size: .875rem; white-space: nowrap; }
/* indicador discreto da página atual (além de aria-current e da cor): barrinha na base do item */
.themes__btn[aria-current="page"]::after { content: ""; position: absolute; left: 50%; bottom: 4px; width: 16px; height: 2px; border-radius: 2px; background: currentColor; transform: translateX(-50%); opacity: .9; }
.themes__hint { display: none; font-family: var(--sans); font-size: .7rem; color: var(--text-2); padding: 4px 0; }

@media (min-width: 900px) {
  .themes__list { flex-wrap: wrap; justify-content: center; overflow: visible; }
  .themes__wrap::before, .themes__wrap::after { display: none; }
}
@media (max-width: 899px) {
  .themes.is-scrollable .themes__hint { display: block; }
}

/* ---------- Botões ---------- */
.btn { position: relative; isolation: isolate; display: inline-block; text-decoration: none; font-family: var(--sans); font-size: .8125rem; font-weight: 600; padding: 8px 14px; border-radius: 8px; border: 1px solid var(--text); background: transparent; color: var(--text); line-height: 1.2; }
.btn--solid { border-color: transparent; background: var(--menu-gradient); color: var(--on-gradient); }
.btn--solid:hover { box-shadow: inset 0 0 0 999px rgba(0, 0, 0, .1); }
.btn--ghost:hover { background: var(--text); color: var(--bg); }

/* ---------- Conteúdo ---------- */
main { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
main:focus { outline: none; }
.section { padding: 28px 0; border-bottom: 1px solid var(--line); }
.section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 16px; }
.section__title { font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0; color: var(--accent-text); }
.section__lead { margin: 0; font-family: var(--sans); font-size: .85rem; color: var(--text-2); }

/* Últimas notícias: lista curta, só título (sem data nem hora). Fica na área da manchete: sob a manchete, ao lado da lateral (preenche a coluna esquerda) */
.latest { padding: 18px 0 0; border-top: 1px solid var(--line); }
.latest__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: latest; }
.latest__list li { counter-increment: latest; display: grid; grid-template-columns: 1.6rem 1fr; gap: 10px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--line); }
.latest__list li:first-child { border-top: 0; }
.latest__list li::before { content: counter(latest); font-family: var(--sans); font-size: .78rem; font-weight: 700; color: var(--accent-text); font-variant-numeric: tabular-nums; }
.latest__list a { color: var(--text); text-decoration: none; font-weight: 600; line-height: 1.3; }
.latest__list a:hover { text-decoration: underline; }
@media (min-width: 900px) {
  .front { grid-template-areas: "hero rail" "latest rail"; align-items: start; }
  .front > .hero { grid-area: hero; }
  .front > .rail { grid-area: rail; }
  .front > .latest { grid-area: latest; }
  .front.front--norail { grid-template-areas: "hero" "latest"; }
}

.kicker { font-family: var(--sans); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-text); margin: 0 0 6px; }
.meta { font-family: var(--sans); font-size: .72rem; color: var(--text-2); margin: 8px 0 0; }
.story h2, .story h3 { margin: 0; font-weight: 700; line-height: 1.15; }
.story > a { display: block; }
.story__summary { margin: 8px 0 0; color: var(--text-2); font-weight: 400; }
.media { position: relative; background: var(--media-bg); overflow: hidden; aspect-ratio: 16 / 9; }
.media picture { display: block; width: 100%; height: 100%; }
.media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.media__fallback { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; font-family: var(--sans); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); border: 1px solid var(--line); background: repeating-linear-gradient(135deg, var(--surface), var(--surface) 10px, var(--bg) 10px, var(--bg) 20px); }
.media.is-broken img, .media.is-broken picture { visibility: hidden; }
.media.is-broken .media__fallback { display: flex; }

/* Primeira página: manchete + coluna de destaques (proporção de portal; sem copiar a identidade de terceiros) */
.front { display: grid; gap: 24px; padding: 22px 0 28px; border-bottom: 1px solid var(--line); }
.hero .story__title { font-size: clamp(1.7rem, 4.6vw, 2.3rem); line-height: 1.1; letter-spacing: -.012em; }
.hero .story__summary { font-size: 1.04rem; line-height: 1.45; margin-top: 10px; max-width: 64ch; }
.hero .media { aspect-ratio: 16 / 10; margin-bottom: 14px; }
@media (min-width: 900px) { .hero .media { aspect-ratio: 21 / 9; } }   /* título da manchete inteiro na primeira tela, imagem proporcional ao bloco */
.rail { display: grid; align-content: start; }
.rail .story { padding: 14px 0; border-top: 1px solid var(--line); }
.rail .rail__item:first-child .story { border-top: 0; padding-top: 0; }
.rail .story > a:has(.media) { display: grid; grid-template-columns: minmax(0, 1fr) 128px; gap: 14px; align-items: start; }
.rail .story__title { font-size: 1.08rem; line-height: 1.2; }
.rail .story__summary { display: none; }
.rail .media { aspect-ratio: 4 / 3; order: 2; }
.rail__related { margin: 0 0 12px; font-family: var(--sans); font-size: .86rem; line-height: 1.35; color: var(--text-2); }
@media (min-width: 640px) and (max-width: 899px) {
  .rail { grid-template-columns: 1fr 1fr; column-gap: 28px; }
  .rail .rail__item:nth-child(2) .story { border-top: 0; padding-top: 0; }
}
@media (min-width: 900px) {
  .front { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 36px; }
  .rail { border-left: 1px solid var(--line); padding-left: 28px; }
  .rail .story > a:has(.media) { grid-template-columns: minmax(0, 1fr) 112px; }
}
@media (min-width: 1100px) { .rail .story > a:has(.media) { grid-template-columns: minmax(0, 1fr) 124px; } .rail .story__title { font-size: 1.12rem; } }

/* Mais notícias: todas as matérias elegíveis que não couberam nos blocos acima */
.more__grid { display: grid; gap: 24px 24px; grid-template-columns: 1fr; }
.more .story .media { aspect-ratio: 16 / 10; margin-bottom: 10px; }
.more .story__title { font-size: 1.12rem; line-height: 1.2; }
.more .story__summary { font-size: .92rem; line-height: 1.4; }
.more__item[hidden] { display: none; }
.more__ctl { text-align: center; margin: 22px 0 0; }
@media (min-width: 640px) { .more__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .more__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* O que realmente importa */
.matters { display: grid; gap: 20px; counter-reset: m; }
.matter { border-top: 3px solid var(--text); padding-top: 12px; }
.matter__n { font-family: var(--display); font-size: 2rem; line-height: 1; color: var(--accent-text); margin: 0 0 6px; }
.matter .story__title { font-size: 1.3rem; }
.matter dl { margin: 12px 0 0; font-family: var(--sans); font-size: .875rem; }
.matter dt { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-text); margin-top: 10px; }
.matter dd { margin: 2px 0 0; color: var(--text-2); }
@media (min-width: 760px) { .matters { grid-template-columns: repeat(3, 1fr); gap: 28px; } }

/* Em contexto */
.context { background: var(--surface); margin: 0 calc(var(--gutter) * -1); padding: 28px var(--gutter); border-bottom: 1px solid var(--line); }
.context__grid { display: grid; gap: 20px; }
.context .story__title { font-size: clamp(1.6rem, 4.4vw, 2.3rem); }
.context .story__summary { font-size: 1.05rem; color: var(--text); }
.context__deep { font-size: .95rem; color: var(--text-2); margin: 10px 0 0; }
.context .btn { margin-top: 16px; display: inline-block; }
@media (min-width: 800px) { .context__grid { grid-template-columns: 1.3fr 1fr; gap: 36px; align-items: center; } }

/* Seções temáticas: cada uma com um formato próprio */
.block { display: grid; gap: 18px; }
.block .story__title { font-size: 1.2rem; }
.block--columns { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.block--columns .story:not(:first-child) { border-left: 1px solid var(--line); padding-left: 18px; }
.block--columns .story:first-child .story__title { font-size: 1.5rem; }
.block--lead { grid-template-columns: 1fr; }
.block--lead .list { display: grid; gap: 12px; align-content: start; }
.block--lead .list .story { border-top: 1px solid var(--line); padding-top: 12px; }
.block--pair { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.block--pair .media { margin-bottom: 10px; }
.block--text .story { border-top: 1px solid var(--line); padding-top: 12px; counter-increment: t; }
.block--text .story .kicker::before { content: counter(t) ". "; }
.block--text { counter-reset: t; }
@media (min-width: 760px) {
  .block--lead { grid-template-columns: 1.4fr 1fr; gap: 28px; }
  .block--lead .lead .story__title { font-size: 1.55rem; }
  .block--text { grid-template-columns: repeat(2, 1fr); column-gap: 28px; }
}
@media (max-width: 599px) {
  .block--columns .story:not(:first-child) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 12px; }
}

.empty { font-family: var(--sans); color: var(--text-2); padding: 32px 0; text-align: center; }

/* Assinatura (discreta) */
.subscribe-band { margin: 28px 0; padding: 20px; border: 1px solid var(--text); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; justify-content: space-between; }
.subscribe-band__lead { font-family: var(--display); font-size: 1.4rem; font-weight: 700; margin: 0; }
.subscribe-band__text { font-family: var(--sans); font-size: .875rem; color: var(--text-2); margin: 0; flex: 1 1 240px; }

/* Componente de leitura parcial (30% para não assinantes) — usado nas páginas de matéria */
.gate { position: relative; }
.gate__rest { display: none; }
.gate__fade { height: 120px; margin-top: -120px; position: relative; background: linear-gradient(to bottom, transparent, var(--bg)); pointer-events: none; }
.gate__box { border: 1px solid var(--text); padding: 20px; text-align: center; font-family: var(--sans); background: var(--bg); }

/* Comentários (reservado) */
[data-component="comments"] { margin-top: 32px; border-top: 3px double var(--text); padding-top: 16px; }

.footer { width: calc(100% - 2 * var(--gutter)); max-width: calc(var(--max) - 2 * var(--gutter)); margin: 0 auto; padding: 24px 0 40px; text-align: center; font-family: var(--sans); font-size: .8rem; color: var(--text-2); border-top: 3px double var(--text); }
.footer__logo { font-family: var(--display); font-weight: 700; font-size: 1.6rem; margin: 0 0 6px; color: var(--text); }
.footer p { margin: 4px 0; }
.footer__note { color: var(--text-2); }

.toast { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); background: var(--text); color: var(--bg); font-family: var(--sans); font-size: .875rem; padding: 10px 16px; border-radius: 4px; z-index: 50; }

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
@media print { .masthead__bar, .themes, .subscribe-band, .toast { display: none; } }

.badge { display: inline-block; margin-left: 6px; padding: 1px 6px; border: 1px solid var(--accent-text); border-radius: 2px; font-size: .65rem; letter-spacing: .06em; vertical-align: 1px; }
.badge--plain { border-color: var(--line); color: var(--text-2); }
.notice { font-family: var(--sans); font-size: .85rem; background: var(--surface); border-left: 4px solid var(--accent-text); padding: 10px 14px; margin: 14px 0; }
.notice--preview { background: var(--warn-bg); border-color: var(--warn-border); }

/* Matéria */
.article { max-width: 760px; margin: 0 auto; padding: 28px 0 8px; }
.article__title { font-size: clamp(1.9rem, 5.5vw, 3rem); line-height: 1.1; margin: 0 0 10px; letter-spacing: -.01em; }
.article__summary { font-size: 1.2rem; color: var(--text-2); margin: 0 0 8px; }
.figure { margin: 22px 0; }
.figure--cover { margin-left: 0; margin-right: 0; }
.figure figcaption { font-family: var(--sans); font-size: .78rem; color: var(--text-2); margin-top: 6px; display: flex; flex-wrap: wrap; gap: 2px 10px; }
.figure__credit a { text-decoration: underline; text-underline-offset: 2px; }
.prose { font-size: 1.15rem; line-height: 1.7; }
.prose p { margin: 0 0 1.1em; }
.prose h2, .prose h3 { line-height: 1.2; margin: 1.6em 0 .5em; }
.prose a { color: var(--accent-text); text-decoration: underline; }
.prose blockquote { margin: 1.2em 0; padding-left: 16px; border-left: 3px solid var(--accent-text); color: var(--text-2); }
.sources { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--line); font-family: var(--sans); font-size: .875rem; }
.sources ol { padding-left: 20px; }
.sources li { margin: 6px 0; }
.sources a { text-decoration: underline; }

/* Prévia para não assinantes */
.paywall { position: relative; margin-top: 8px; }
.paywall__fade { height: 110px; margin-top: -110px; position: relative; background: linear-gradient(to bottom, transparent, var(--bg)); pointer-events: none; }
.paywall__box { border: 1px solid var(--text); padding: 22px; text-align: center; font-family: var(--sans); background: var(--bg); }
.paywall__title { font-family: var(--display); font-size: 1.5rem; font-weight: 700; margin: 0 0 6px; }
.paywall__soon { font-size: .82rem; color: var(--text-2); }
.paywall__box .btn { margin: 4px; }

.page-simple { max-width: 640px; margin: 0 auto; padding: 36px 0; border: 0; }
.form--narrow { display: grid; gap: 12px; max-width: 360px; font-family: var(--sans); }
.form--narrow label { display: grid; gap: 4px; font-size: .85rem; }
.form--narrow input { padding: 9px 10px; font: inherit; border: 1px solid var(--field-border); border-radius: 8px; background: var(--surface); color: var(--text); }
.form__error { color: var(--danger); font-family: var(--sans); font-size: .85rem; margin: 0; }


/* Chamada de assinatura */
.paywall__box { text-align: left; padding: 24px; }
.paywall__title { text-align: center; }
.cta { font-family: var(--sans); max-width: 560px; margin: 0 auto; }
.cta__lead { font-size: 1.02rem; margin: 10px 0; color: var(--text); }
.cta__benefits { margin: 0 0 14px; padding-left: 18px; color: var(--text-2); font-size: .9rem; }
.cta__benefits li { margin: 3px 0; }
.currency { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 10px 0; font-size: .82rem; }
.currency__label { color: var(--text-2); margin-right: 2px; }
.currency__opt { padding: 5px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--text-2); text-decoration: none; }
.currency__opt:hover { border-color: var(--text); color: var(--text); }
.currency__opt[aria-current="true"] { background: var(--text); border-color: var(--text); color: var(--bg); }
.cta__price { margin: 8px 0 14px; }
.cta__price strong { font-family: var(--display); font-size: 2.1rem; line-height: 1; }
.cta__price span { color: var(--text-2); margin-left: 4px; }
.cta__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.btn--lg { padding: 11px 18px; font-size: .9rem; }
.cta__note { font-size: .78rem; color: var(--text-2); border-left: 3px solid var(--line); padding-left: 10px; margin: 14px 0 0; }

/* Efeitos discretos: só ajudam a navegação */
.story__title { text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.story a:hover .story__title, .story a:focus-visible .story__title { text-decoration-color: currentColor; }
.btn:focus-visible, .currency__opt:focus-visible, .themes__btn:focus-visible, .logo:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.btn.is-loading, button[aria-busy="true"] { opacity: .65; cursor: progress; }
@media (prefers-reduced-motion: no-preference) {
  a, .btn, .currency__opt { transition: color .18s ease, background-color .18s ease, border-color .18s ease, text-decoration-color .18s ease, box-shadow .18s ease; }
  .themes__btn, .lang__btn, .theme-switch__btn { transition: color .18s ease; }
  .themes__btn::before, .lang__btn::before, .theme-switch__btn::before { transition: opacity .18s ease; }
  .story__title { transition: text-decoration-color .18s ease, color .16s ease; }
  .btn:active { transform: translateY(1px); }
  .media img { transition: transform .5s ease; }
}
/* Zoom suave nas imagens das chamadas: só com mouse (não em toque) e sem alterar o tamanho do bloco (.media corta o excesso). */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .story a:hover .media img { transform: scale(1.035); }
}

/* ---------- Tipografia ---------- */
html { background: var(--bg); }
body { background: var(--bg); color: var(--text); }
/* Inter: menus, botões, metadados, subtítulos/resumos e chamadas; serifa: títulos e corpo das matérias (Georgia como reserva) */
.story__summary, .article__summary, .hero .story__summary, .context__deep { font-family: var(--sans); }
.story__summary { font-size: .95rem; line-height: 1.5; }
.hero .story__summary { font-size: 1.05rem; line-height: 1.5; }
.article__summary { font-size: 1.15rem; line-height: 1.5; }
.prose { font-size: clamp(1.125rem, 1.07rem + .25vw, 1.2rem); line-height: 1.72; max-width: 64ch; }
.prose p { margin: 0 0 1.15em; }
.article__head, .figure--cover { max-width: 760px; }


/* ---------- Franquia diária, limite e contas ---------- */
.quota { font-family: var(--sans); font-size: .85rem; color: var(--text-2); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; margin: 14px 0; }
.quota strong { color: var(--text); }
.quota__renews { display: block; font-size: .78rem; margin-top: 2px; }
.notice--open { border-left-color: var(--brand-orange); }
.limit { margin: 22px 0 8px; padding: 22px; border: 1px solid var(--text); border-radius: 12px; background: var(--surface); font-family: var(--sans); }
.limit__title { font-family: var(--display); font-size: 1.5rem; line-height: 1.2; margin: 0 0 8px; }
.limit__renews { font-size: .85rem; color: var(--text-2); }
.limit__context { margin: 14px 0; padding: 12px 14px; border-left: 3px solid var(--line); }
.limit__context h3 { margin: 0 0 6px; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-text); }
.limit__context dt { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); margin-top: 8px; }
.limit__context dd { margin: 2px 0 0; }
.limit .cta { margin: 16px 0 0; }
.form__hint { font-family: var(--sans); font-size: .78rem; color: var(--text-2); margin: -4px 0 0; }
.form__links { font-family: var(--sans); font-size: .875rem; margin-top: 16px; line-height: 1.9; }
.form__links a, .link-btn { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; }
.link-btn { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
form.inline { display: inline; margin: 0; }
.account__list { font-family: var(--sans); display: grid; grid-template-columns: max-content 1fr; gap: 10px 18px; margin: 18px 0; }
.account__list dt { font-weight: 700; color: var(--text-2); }
.account__list dd { margin: 0; }
.muted { color: var(--text-2); font-size: .85rem; font-family: var(--sans); }
.badge--ok { border-color: var(--ok); color: var(--ok); }
@media (max-width: 520px) { .account__list { grid-template-columns: 1fr; gap: 2px; } .account__list dd { margin-bottom: 10px; } }

/* Ponto focal das imagens (passos de 10%): .fp-X-Y => object-position X0% Y0%. Gerado; sem estilos inline por causa da CSP. */
.fp-0-0{object-position:0% 0%} .fp-0-1{object-position:0% 10%} .fp-0-2{object-position:0% 20%} .fp-0-3{object-position:0% 30%} .fp-0-4{object-position:0% 40%} .fp-0-5{object-position:0% 50%} .fp-0-6{object-position:0% 60%} .fp-0-7{object-position:0% 70%} .fp-0-8{object-position:0% 80%} .fp-0-9{object-position:0% 90%} .fp-0-10{object-position:0% 100%} .fp-1-0{object-position:10% 0%} .fp-1-1{object-position:10% 10%} .fp-1-2{object-position:10% 20%} .fp-1-3{object-position:10% 30%} .fp-1-4{object-position:10% 40%} .fp-1-5{object-position:10% 50%} .fp-1-6{object-position:10% 60%} .fp-1-7{object-position:10% 70%} .fp-1-8{object-position:10% 80%} .fp-1-9{object-position:10% 90%} .fp-1-10{object-position:10% 100%} .fp-2-0{object-position:20% 0%} .fp-2-1{object-position:20% 10%} .fp-2-2{object-position:20% 20%} .fp-2-3{object-position:20% 30%} .fp-2-4{object-position:20% 40%} .fp-2-5{object-position:20% 50%} .fp-2-6{object-position:20% 60%} .fp-2-7{object-position:20% 70%} .fp-2-8{object-position:20% 80%} .fp-2-9{object-position:20% 90%} .fp-2-10{object-position:20% 100%} .fp-3-0{object-position:30% 0%} .fp-3-1{object-position:30% 10%} .fp-3-2{object-position:30% 20%} .fp-3-3{object-position:30% 30%} .fp-3-4{object-position:30% 40%} .fp-3-5{object-position:30% 50%} .fp-3-6{object-position:30% 60%} .fp-3-7{object-position:30% 70%} .fp-3-8{object-position:30% 80%} .fp-3-9{object-position:30% 90%} .fp-3-10{object-position:30% 100%} .fp-4-0{object-position:40% 0%} .fp-4-1{object-position:40% 10%} .fp-4-2{object-position:40% 20%} .fp-4-3{object-position:40% 30%} .fp-4-4{object-position:40% 40%} .fp-4-5{object-position:40% 50%} .fp-4-6{object-position:40% 60%} .fp-4-7{object-position:40% 70%} .fp-4-8{object-position:40% 80%} .fp-4-9{object-position:40% 90%} .fp-4-10{object-position:40% 100%} .fp-5-0{object-position:50% 0%} .fp-5-1{object-position:50% 10%} .fp-5-2{object-position:50% 20%} .fp-5-3{object-position:50% 30%} .fp-5-4{object-position:50% 40%} .fp-5-5{object-position:50% 50%} .fp-5-6{object-position:50% 60%} .fp-5-7{object-position:50% 70%} .fp-5-8{object-position:50% 80%} .fp-5-9{object-position:50% 90%} .fp-5-10{object-position:50% 100%} .fp-6-0{object-position:60% 0%} .fp-6-1{object-position:60% 10%} .fp-6-2{object-position:60% 20%} .fp-6-3{object-position:60% 30%} .fp-6-4{object-position:60% 40%} .fp-6-5{object-position:60% 50%} .fp-6-6{object-position:60% 60%} .fp-6-7{object-position:60% 70%} .fp-6-8{object-position:60% 80%} .fp-6-9{object-position:60% 90%} .fp-6-10{object-position:60% 100%} .fp-7-0{object-position:70% 0%} .fp-7-1{object-position:70% 10%} .fp-7-2{object-position:70% 20%} .fp-7-3{object-position:70% 30%} .fp-7-4{object-position:70% 40%} .fp-7-5{object-position:70% 50%} .fp-7-6{object-position:70% 60%} .fp-7-7{object-position:70% 70%} .fp-7-8{object-position:70% 80%} .fp-7-9{object-position:70% 90%} .fp-7-10{object-position:70% 100%} .fp-8-0{object-position:80% 0%} .fp-8-1{object-position:80% 10%} .fp-8-2{object-position:80% 20%} .fp-8-3{object-position:80% 30%} .fp-8-4{object-position:80% 40%} .fp-8-5{object-position:80% 50%} .fp-8-6{object-position:80% 60%} .fp-8-7{object-position:80% 70%} .fp-8-8{object-position:80% 80%} .fp-8-9{object-position:80% 90%} .fp-8-10{object-position:80% 100%} .fp-9-0{object-position:90% 0%} .fp-9-1{object-position:90% 10%} .fp-9-2{object-position:90% 20%} .fp-9-3{object-position:90% 30%} .fp-9-4{object-position:90% 40%} .fp-9-5{object-position:90% 50%} .fp-9-6{object-position:90% 60%} .fp-9-7{object-position:90% 70%} .fp-9-8{object-position:90% 80%} .fp-9-9{object-position:90% 90%} .fp-9-10{object-position:90% 100%} .fp-10-0{object-position:100% 0%} .fp-10-1{object-position:100% 10%} .fp-10-2{object-position:100% 20%} .fp-10-3{object-position:100% 30%} .fp-10-4{object-position:100% 40%} .fp-10-5{object-position:100% 50%} .fp-10-6{object-position:100% 60%} .fp-10-7{object-position:100% 70%} .fp-10-8{object-position:100% 80%} .fp-10-9{object-position:100% 90%} .fp-10-10{object-position:100% 100%}

/* Celular: controles do topo compactos para caber numa linha (idioma + tema + entrar/assinar) */
@media (max-width: 480px) {
  .masthead__bar { gap: 8px; flex-wrap: nowrap; }
  .masthead__controls { gap: 6px; flex-wrap: nowrap; }
  .lang__btn, .theme-switch__btn { padding: 5px 7px; min-height: 30px; letter-spacing: .03em; }
  .auth { gap: 6px; }
  .auth .btn { padding: 6px 9px; font-size: .75rem; }
}
@media (max-width: 359px) { .masthead__bar { flex-wrap: wrap; justify-content: center; } }

/* Vídeo oficial incorporado sob demanda */
.video { margin: 28px 0; }
.video__play { width: 100%; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1.05rem; background: var(--media-bg); color: var(--text); border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.video__play:hover { border-color: var(--text); }
.video__frame { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 8px; background: var(--media-bg); }
.video figcaption { font-size: .85rem; color: var(--text-2); margin-top: 6px; }
.video__note { display: block; font-size: .8rem; }

/* Home por assuntos: manchete com complementos, destaques com relacionada, créditos das imagens */
.complements { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.complements li { border-bottom: 1px solid var(--line); }
.complements a { display: grid; gap: 2px; padding: 10px 0; text-decoration: none; color: inherit; }
.complements__title { font-family: var(--sans); font-weight: 600; font-size: 1rem; line-height: 1.3; }
.complements a:hover .complements__title, .complements a:focus-visible .complements__title { text-decoration: underline; }
@media (min-width: 900px) { .complements { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 0 18px; border-bottom: 0; } .complements li { border-bottom: 0; border-left: 1px solid var(--line); padding-left: 14px; } .complements li:first-child { border-left: 0; padding-left: 0; } }
.rail__item { border-top: 1px solid var(--line); padding: 14px 0; }
.rail__item:first-child { border-top: 0; padding-top: 0; }
.rail__item .story { padding: 0; border: 0; }
.rail__related { margin: 8px 0 0; font-size: .88rem; color: var(--text-2); }
.rail__related a { color: var(--text); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.rail__related-label { text-transform: uppercase; letter-spacing: .04em; font-size: .7rem; font-weight: 700; margin-right: 4px; }
.credits { margin: 28px 0 8px; font-size: .8rem; color: var(--text-2); }
.credits summary { cursor: pointer; }
.credits ul { margin: 8px 0 0; padding-left: 18px; }
.figure__kind { font-weight: 700; }

.footer__links { display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: center; margin-top: 8px; font-size: .9rem; }
.footer__links a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.info h2 { margin-top: 1.6em; }

/* Créditos discretos: linha curta sob a foto; atribuição completa da licença no rodapé da matéria, em fonte pequena e cinza claro. */
.figure__credit { display: block; font-size: .78rem; color: var(--text-2); margin-top: 2px; }
.image-credits { margin: 28px 0 0; font-family: var(--sans); font-size: .72rem; line-height: 1.5; color: var(--text-3, var(--text-2)); }
.image-credits a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.image-credits__label { font-weight: 600; }

/* Leia também: faixa de cartões com rolagem horizontal (arrastar no celular; botões e teclado no desktop). Sem rolagem automática. */
.related { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 18px; }
.related__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.related__ctl { display: flex; gap: 8px; }
.related__ctl[hidden] { display: none; }
.related__btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface, transparent); color: var(--text); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.related__btn:disabled { opacity: .35; cursor: default; }
.related__btn:focus-visible, .related__track:focus-visible, .related__link:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.related__track { list-style: none; margin: 14px 0 0; padding: 2px 2px 10px; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; overscroll-behavior-x: contain; scrollbar-width: thin; }
.related__card { flex: 0 0 min(78%, 280px); scroll-snap-align: start; }
.related__link { display: block; color: inherit; text-decoration: none; }
.related__link .media { aspect-ratio: 4 / 3; border-radius: 6px; }
.related__title { display: block; margin-top: 8px; font-family: var(--serif); font-size: 1.05rem; line-height: 1.25; font-weight: 600; }
.related__link:hover .related__title { text-decoration: underline; text-underline-offset: 3px; }
/* indicação visual de continuação: o cartão seguinte aparece "espiando" e a borda direita esmaece enquanto houver mais conteúdo */
.related--more .related__track { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 44px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 44px), transparent); }
@media (hover: hover) and (pointer: fine) { .related__card { flex-basis: 240px; } }
@media (prefers-reduced-motion: no-preference) { .related__track { scroll-behavior: smooth; } }

/* ---------- Mercados: painel com abas por ativo, gráfico e rotação acessível ---------- */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.markets { padding: 22px 0; }
.markets .section__head { align-items: baseline; flex-wrap: wrap; }
.markets__tabs { position: relative; display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; padding: 2px 2px 8px; }
.markets__tab { flex: 0 0 auto; min-width: 150px; text-align: left; display: grid; gap: 1px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); font-family: var(--sans); cursor: pointer; }
.markets__tab:hover { border-color: var(--text-2); }
.markets__tab[aria-selected="true"] { border-color: var(--text); box-shadow: inset 0 -3px 0 var(--accent-text); }
.markets__tab:focus-visible, .markets__range:focus-visible, .markets__toggle:focus-visible, .markets__svg:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.markets__tab-name { font-size: .72rem; font-weight: 600; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 170px; }
.markets__tab-val { font-size: 1.05rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.markets__tab-chg { font-size: .76rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.is-up { color: var(--ok); } .is-down { color: var(--danger); } .is-flat, .is-na { color: var(--text-2); }
.markets__panels { display: grid; }
.markets__panel { grid-area: 1 / 1; display: grid; gap: 16px; padding: 14px 4px 4px; align-content: start; }
.markets__panel[hidden] { display: grid !important; visibility: hidden; }   /* mantém a altura do módulo = a do maior painel (sem saltos entre ativos); oculto também para leitores de tela */
.markets__name { font-family: var(--sans); font-size: 1.05rem; margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.markets__state { font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 7px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); color: var(--text); }
.markets__state--open { background: var(--surface); border: 1px solid var(--ok); color: var(--ok); }
.markets__state--delayed { background: var(--warn-bg); color: var(--text); }
.markets__state--closed, .markets__state--unavailable { background: var(--surface); border: 1px solid var(--line); color: var(--text-2); }
.markets__value { font-family: var(--sans); font-size: clamp(1.9rem, 5vw, 2.5rem); font-weight: 700; margin: 0; line-height: 1.1; font-variant-numeric: tabular-nums; }
.markets__unit { font-size: .85rem; font-weight: 400; color: var(--text-2); }
.markets__chg { font-family: var(--sans); font-size: 1.02rem; font-weight: 600; margin: 6px 0 10px; font-variant-numeric: tabular-nums; }
.markets__meta { font-family: var(--sans); font-size: .76rem; line-height: 1.45; color: var(--text-2); margin: 3px 0 0; min-height: 1.1em; }
.markets__meta a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.markets__chartbox { display: grid; gap: 8px; align-content: start; }
.markets__chart { height: 170px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); overflow: hidden; position: relative; }
.markets__chart-msg { margin: 0; padding: 70px 16px 0; text-align: center; font-family: var(--sans); font-size: .82rem; color: var(--text-2); }
.markets__svg { display: block; width: 100%; height: 100%; touch-action: pan-y; }
.markets__line { fill: none; stroke: var(--accent-text); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.markets__area { fill: var(--accent-text); opacity: .1; stroke: none; }
.markets__ranges { display: flex; gap: 6px; flex-wrap: wrap; }
.markets__ranges[hidden] { display: none; }
.markets__range { font-family: var(--sans); font-size: .76rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--text); cursor: pointer; }
.markets__range[aria-pressed="true"] { background: var(--text); color: var(--bg); border-color: var(--text); }
.markets__readout { font-family: var(--sans); font-size: .78rem; min-height: 1.2em; margin: 0; color: var(--text-2); font-variant-numeric: tabular-nums; }
.markets__ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 12px; font-family: var(--sans); font-size: .76rem; color: var(--text-2); }
.markets__toggle { padding: 6px 12px; }
.markets__gaps { flex: 1 1 100%; }
@media (min-width: 760px) { .markets__panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 28px; } }
@media (prefers-reduced-motion: reduce) { .markets__tab { transition: none; } }


/* Capa tipográfica padrão (matéria sem foto autorizada): bloco neutro com o nome da editoria; decorativo. */
.media--ph { display: grid; place-items: center; background: linear-gradient(135deg, var(--surface), var(--media-bg)); border: 1px solid var(--line); }
.media--ph span { font-family: var(--sans); font-weight: 700; font-size: clamp(.78rem, 2.2vw, 1.05rem); letter-spacing: .16em; text-transform: uppercase; color: var(--accent-text); padding: 0 12px; text-align: center; }

/* ---------- Blocos editoriais da home: variantes por quantidade de matérias (sem colunas reservadas) ---------- */
.sect { display: grid; gap: 18px 28px; align-items: start; }
.sect .story__title { font-size: 1.15rem; line-height: 1.22; }
/* 1 matéria: imagem e texto lado a lado, bloco baixo */
.sect--1 .story > a { display: grid; gap: 14px 24px; align-items: center; }
.sect--1 .media { aspect-ratio: 16 / 10; }
.sect--1 .story__title { font-size: 1.45rem; }
@media (min-width: 720px) { .sect--1 .story > a:has(.media) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
/* 2 matérias: dupla equilibrada */
.sect--2 .media { aspect-ratio: 16 / 10; margin-bottom: 10px; }
@media (min-width: 720px) { .sect--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 3 ou mais: matéria principal + lista com miniaturas (alturas equilibradas) */
.sect--lead .sect__lead .media { aspect-ratio: 16 / 9; margin-bottom: 10px; }
.sect--lead .sect__lead .story__title { font-size: 1.45rem; }
.sect__list { display: grid; align-content: start; }
.sect__list .story { padding: 12px 0; border-top: 1px solid var(--line); }
.sect__list .story:first-child { border-top: 0; padding-top: 0; }
.sect__list .story > a:has(.media) { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 14px; align-items: start; }
.sect__list .media { order: 2; aspect-ratio: 4 / 3; margin: 0; }
.sect__list .media--ph span { font-size: .62rem; letter-spacing: .1em; }
@media (min-width: 900px) { .sect--lead { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } }
/* capa tipográfica compacta fora da manchete */
.sect .media--ph, .more__item .media--ph { aspect-ratio: 16 / 7; }
.sect--lead .sect__lead .media--ph { aspect-ratio: 16 / 7; }
.sect__list .media--ph { aspect-ratio: 4 / 3; }

/* ---------- Mercados compactos ---------- */
.markets { padding: 16px 0 18px; }
.markets__panel { padding-top: 10px; gap: 12px; }
.markets__panel--solo { grid-template-columns: minmax(0, 1fr) !important; }
.markets__value { font-size: clamp(1.6rem, 4vw, 2.1rem); }
.markets__chg { margin: 4px 0 6px; }
.markets__chart { height: 130px; }
.markets__tab { min-width: 138px; padding: 7px 10px; }
.markets__ctl { margin-top: 8px; }

/* ---------- Agenda esportiva: linhas compactas (resumo na home e página completa) ---------- */
.agenda { padding: 18px 0 22px; }
.agenda .section__head { align-items: baseline; flex-wrap: wrap; gap: 4px 16px; }
.agenda__more-link { font-family: var(--sans); font-size: .85rem; font-weight: 600; color: var(--accent-text); text-decoration: none; }
.agenda__more-link:hover, .agenda__more-link:focus-visible { text-decoration: underline; }
.agenda__bar { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin: 4px 0 12px; font-family: var(--sans); font-size: .82rem; }
.agenda__days { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.agenda__day, .agenda__sport { font-family: var(--sans); font-size: .8rem; font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--text); cursor: pointer; white-space: nowrap; }
.agenda__day[aria-pressed="true"], .agenda__sport[aria-pressed="true"] { background: var(--text); color: var(--bg); border-color: var(--text); }
.agenda__day:focus-visible, .agenda__sport:focus-visible, .agenda__jump:focus-visible, .agenda__field select:focus-visible, .agenda__field input:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.agenda__field select, .agenda__field input { font-family: var(--sans); font-size: .82rem; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); max-width: 100%; }
.agenda__sports { display: flex; gap: 6px; overflow-x: auto; overscroll-behavior-x: contain; padding: 2px 2px 10px; scrollbar-width: thin; }
.agenda__sports[hidden], .agenda__field[hidden], .agenda__notice[hidden] { display: none; }
.agenda__sport { flex: 0 0 auto; }
.agenda__msg { font-family: var(--sans); font-size: .9rem; color: var(--text-2); margin: 10px 0; }
.agenda__jump { font: inherit; font-weight: 600; color: var(--accent-text); background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; }
.agenda__notice { font-family: var(--sans); font-size: .82rem; margin: 6px 0; padding: 8px 12px; background: var(--warn-bg); border-left: 3px solid var(--warn-border); }
.agenda__day-label { font-family: var(--sans); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); margin: 6px 0 4px; }
.ag-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.ag-row { display: grid; align-items: center; gap: 2px 12px; padding: 8px 2px; border-bottom: 1px solid var(--line); font-family: var(--sans); font-size: .9rem; font-variant-numeric: tabular-nums; grid-template-columns: 46px minmax(0, 1fr) 54px minmax(0, 1fr); }
.ag-time { font-weight: 700; color: var(--text-2); }
.ag-team { font-weight: 600; overflow-wrap: anywhere; line-height: 1.2; }
.ag-home { text-align: right; }
.ag-score { text-align: center; font-weight: 700; color: var(--text-2); }
.ag-score.has-result { color: var(--text); }
.ag-name { grid-column: 2 / 5; font-weight: 600; line-height: 1.25; }
.ag-meta { grid-column: 2 / 4; font-size: .74rem; color: var(--text-2); line-height: 1.25; }
.ag-state { grid-column: 4; justify-self: end; font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--line); color: var(--text-2); white-space: nowrap; }
.ag-state--live { border-color: var(--danger); color: var(--danger); }
.ag-state--finished { color: var(--text); }
.ag-state--postponed, .ag-state--cancelled { background: var(--warn-bg); color: var(--text); }
@media (min-width: 720px) {
  .ag-row { grid-template-columns: 52px minmax(0, 1.2fr) 64px minmax(0, 1.2fr) minmax(0, 1.4fr) 92px; column-gap: 14px; padding: 7px 4px; }
  .ag-row--match .ag-meta, .ag-row .ag-meta { grid-column: auto; }
  .ag-name { grid-column: 2 / 5; }
  .ag-state { grid-column: auto; }
  .ag-row:hover { background: var(--surface); }
}
.agenda__foot { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-top: 12px; }
.agenda__tz { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-family: var(--sans); font-size: .76rem; color: var(--text-2); }
.agenda__meta { margin: 0; font-family: var(--sans); font-size: .74rem; color: var(--text-2); flex: 1 1 100%; }
.agenda--summary { border-top: 1px solid var(--line); }

/* Manchete sem complementos: imagem mais alta para equilibrar a coluna com a lateral (sem vazio sob o texto) */
@media (min-width: 900px) { .hero--solo .media { aspect-ratio: 16 / 9; } }

.rail--under { border-left: 0 !important; padding-left: 0 !important; margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.rail--under .rail__item:first-child { padding-top: 0; }

/* Matéria sem foto na home: cartão só de texto (sem bloco vazio); a capa tipográfica fica restrita à manchete e à página da matéria */
.more__item:not(:has(.media)) .story, .sect--2 .story:not(:has(.media)) { border-top: 1px solid var(--line); padding-top: 12px; }
.sect--lead .sect__lead .story:not(:has(.media)) { border-top: 0; }
.more__grid { align-items: start; }
.currency__opt.is-off { opacity: .55; cursor: not-allowed; text-decoration: none; }

/* Sem coluna de destaques: a manchete ocupa a largura toda (nada de meia tela vazia) */
@media (min-width: 900px) { .front.front--norail { grid-template-columns: minmax(0, 1fr); } .front--norail .hero .story__title { max-width: 24ch; } .front--norail .hero .story__summary { max-width: 70ch; } }

/* Newsletter (rodapé): e-mail + botão; o campo "website" é isca para robôs e nunca aparece */
.newsletter { max-width: 520px; margin: 18px auto; text-align: left; }
.newsletter__label { display: block; font-family: var(--sans); font-weight: 700; font-size: .92rem; margin-bottom: 6px; }
.newsletter__row { display: flex; gap: 8px; flex-wrap: wrap; }
.newsletter__input { flex: 1 1 220px; min-width: 0; padding: 10px 12px; font: inherit; color: var(--text); background: var(--surface); border: 1px solid var(--field-border); border-radius: 8px; }
.newsletter__trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.newsletter__msg { margin: 8px 0 0; font-family: var(--sans); font-size: .85rem; color: var(--ok); }
.newsletter__msg--err { color: var(--danger); }

/* Busca no cabeçalho */
.search { display: flex; align-items: center; margin-left: 8px; }
.search__input { width: 9.5rem; padding: 7px 10px; font: inherit; font-size: .85rem; color: var(--text); background: var(--surface); border: 1px solid var(--field-border); border-radius: 8px 0 0 8px; }
.search__btn { padding: 7px 10px; font-size: .85rem; line-height: 1; color: var(--text); background: var(--surface); border: 1px solid var(--field-border); border-left: 0; border-radius: 0 8px 8px 0; cursor: pointer; }
.search__btn:hover { background: var(--chip-bg); }
@media (min-width: 900px) { .search__input { width: 13rem; } }
.search-page__count { font-family: var(--sans); color: var(--text-2); margin: 0 0 16px; }

/* Mais lidas: mesma lista numerada das Últimas notícias, em faixa própria abaixo da área da manchete */
.mostread { margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
@media (min-width: 900px) { .mostread .latest__list { grid-template-columns: 1fr 1fr; column-gap: 40px; } .mostread .latest__list li:nth-child(2) { border-top: 0; } }

/* Cobertura especial: faixa na home e página própria */
.special-band { margin: 14px 0 0; padding: 8px 12px; border: 1px solid var(--line); border-left: 4px solid var(--brand-orange); background: var(--surface); border-radius: 6px; font-family: var(--sans); font-size: .9rem; }
.special-band a { color: var(--text); text-decoration: none; }
.special-band a:hover { text-decoration: underline; }
.special-band strong { color: var(--accent-text); text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; }

/* Cartão tipográfico, versão B (EDITORIAL_TYPOGRAPHIC_COVER=b): editoria no alto e título em letra grande; só tokens de cor */
.media--ph.ph-b { display: grid; align-content: space-between; place-items: stretch start; padding: 14px 18px; border-left: 6px solid var(--brand-orange); text-align: left; }
.media--ph.ph-b .k { font-family: var(--sans); font-weight: 700; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent-text); padding: 0; }
.media--ph.ph-b .h { font-family: var(--serif); font-weight: 700; font-size: clamp(1rem, 2.2vw, 1.6rem); line-height: 1.12; letter-spacing: 0; text-transform: none; color: var(--text); padding: 0; max-width: 28ch; }
.rail .media--ph.ph-b, .sect__list .media--ph.ph-b { padding: 8px 10px; border-left-width: 4px; }
.rail .media--ph.ph-b .h, .sect__list .media--ph.ph-b .h { font-size: .78rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
