:root {
  --a11y-focus: #005fcc;
  --a11y-panel-bg: #f4ecd8;
  --a11y-panel-text: #0e1014;
  --a11y-panel-border: rgba(14, 16, 20, .28);
  --verde: #176b2a;
  --verde-escuro: #145a24;
  --br-verde: #176b2a;
  --br-verde-dk: #145a24;
  --laranja: #a93610;
  --laranja-claro: #96320f;
}

html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body { overflow-wrap: anywhere; }
main, section, article, aside, header, footer, nav, div { min-width: 0; }
img, video, canvas { max-width: 100%; height: auto; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--a11y-focus) !important;
  outline-offset: 3px !important;
}

:where(button, input, select, textarea, summary) { font: inherit; }
:where(button, [role="button"], input, select, textarea, summary) { touch-action: manipulation; }
:where(a, button, [role="button"], input, select) { min-height: 44px; }
:where(p, li, dd, blockquote) { max-width: 75ch; }
:where(.section-label, .eyebrow, .mini-label, .breadcrumbs, .breadcrumb, .footer-bottom, .foot-bottom, .form-status, .proposta-kicker, .proposta-formal, .tag-pill, .block-label, .autor-socials-label, .leg-flip-hint, .ttype) {
  font-size: 12px !important;
  line-height: 1.45 !important;
}
.propostas-intro { color: #d9d2c2 !important; }
.propostas-filter.is-active span { color: #0e1014 !important; opacity: 1 !important; }
.pilar-row .n { color: #4d565e !important; }
.foot-bottom, .footer-bottom { color: #c9c2b3 !important; }
.cta-band .section-label { color: #ffe066 !important; }
.provenance dt { color: #5b5547 !important; font-size: 12px !important; }
.eyebrow-line .label, .taxonomy summary { color: #96320f !important; font-size: 12px !important; }
.meta-row b, .foot-mini .label { color: #5b5547 !important; font-size: 12px !important; }
.citation-box em { color: #ffe066 !important; }
.livro-capa .titulo .autor-linha span, .lo-livro .info .ttype, .livro-caption, .lo-livro .compra-note { color: #4d565e !important; }

.skip-link {
  position: fixed !important;
  inset: max(10px, env(safe-area-inset-top)) auto auto 10px !important;
  z-index: 10001 !important;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 10px 16px !important;
  color: #0e1014 !important;
  background: #ffc72c !important;
  font: 800 14px/1.2 var(--font-body, sans-serif) !important;
  text-decoration: underline;
  transform: translateY(-160%);
  transition: transform .16s ease;
}
.skip-link:focus { top: max(10px, env(safe-area-inset-top)) !important; transform: none; }

/* Controles inclusivos, disponíveis em todas as páginas. */
.a11y-toolbar {
  position: fixed;
  z-index: 9000;
  inset: auto max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) auto;
  display: grid;
  justify-items: end;
  gap: 8px;
  font-family: var(--font-body, sans-serif);
}
.a11y-trigger {
  min-width: 52px;
  min-height: 52px;
  border: 2px solid #f4ecd8;
  border-radius: 50%;
  color: #f4ecd8;
  background: #0a2470;
  box-shadow: 0 4px 18px rgba(14,16,20,.28);
  font-size: 22px;
  font-weight: 900;
  cursor: pointer;
}
.a11y-panel {
  width: min(360px, calc(100vw - 24px));
  max-height: min(620px, calc(100dvh - 92px));
  overflow: auto;
  padding: 20px;
  border: 2px solid var(--a11y-panel-text);
  color: var(--a11y-panel-text);
  background: var(--a11y-panel-bg);
  box-shadow: 8px 8px 0 #ffc72c, 0 18px 46px rgba(14,16,20,.3);
}
.a11y-panel[hidden] { display: none; }
.a11y-panel-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.a11y-panel h2 { margin: 0 !important; max-width: none !important; font-size: 25px !important; line-height: 1.1 !important; color: inherit !important; }
.a11y-panel p { margin-top: 8px; font-size: 15px; line-height: 1.45; }
.a11y-close {
  flex: 0 0 44px;
  width: 44px;
  min-height: 44px;
  border: 1px solid var(--a11y-panel-border);
  color: inherit;
  background: transparent;
  font-size: 22px;
  cursor: pointer;
}
.a11y-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.a11y-option, .a11y-reset {
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid var(--a11y-panel-border);
  color: inherit;
  background: rgba(255,255,255,.42);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}
.a11y-option[aria-pressed="true"] { color: #f4ecd8; border-color: #176b2a; background: #176b2a; }
.a11y-reset { grid-column: 1 / -1; text-align: center; background: transparent; }
.a11y-status { min-height: 1.5em; margin-top: 12px !important; font-weight: 700; }

.page-share-bar { padding-block: clamp(36px, 6vw, 64px); color: #f4ecd8; background: #0e1014; }
.page-share-inner { width: min(1180px, calc(100% - 40px)); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; }
.page-share-copy h2 { margin: 0 !important; max-width: 18ch !important; color: inherit !important; font-size: clamp(28px, 4vw, 48px) !important; line-height: 1.05 !important; }
.page-share-copy p { margin-top: 10px; color: #ddd4c1; font-size: 16px; }
.page-share-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.page-share-button { min-height: 50px; padding: 12px 18px; border: 2px solid #ffc72c; color: #0e1014; background: #ffc72c; font: 800 13px/1.2 var(--font-body, sans-serif); cursor: pointer; }
.page-share-button.secondary { color: #f4ecd8; border-color: #f4ecd8; background: transparent; }
.page-share-status { grid-column: 1 / -1; min-height: 1.5em; margin: 0; color: #ffc72c; font-weight: 700; }

html[data-a11y-font="large"] { font-size: 112.5%; }
html[data-a11y-font="xlarge"] { font-size: 125%; }
html[data-a11y-reading="true"] body { line-height: 1.85 !important; letter-spacing: .025em; word-spacing: .08em; }
html[data-a11y-reading="true"] :where(p, li, dd, blockquote) { line-height: 1.85 !important; }
html[data-a11y-links="true"] a:not(.button):not(.btn) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em !important; }

html[data-a11y-contrast="true"] {
  --papel: #fffdf5;
  --papel-2: #f2ead3;
  --tinta: #050505;
  --tinta-2: #111;
  --verde: #08752a;
  --verde-escuro: #03561d;
  --azul: #0637a5;
  --azul-escuro: #061d5e;
  --laranja: #b8320b;
  --br-verde: #08752a;
  --br-verde-dk: #03561d;
  --br-azul: #0637a5;
  --br-azul-dk: #061d5e;
}
html[data-a11y-contrast="true"] :where(p, li, small, .dek, .lead, .intro) { opacity: 1 !important; }
html[data-a11y-contrast="true"] :where(.section.dark, footer, .cta, .propostas-section) { color: #fffdf5; }

html[data-a11y-motion="reduce"] { scroll-behavior: auto !important; }
html[data-a11y-motion="reduce"] *,
html[data-a11y-motion="reduce"] *::before,
html[data-a11y-motion="reduce"] *::after {
  scroll-behavior: auto !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary) { forced-color-adjust: auto; }
  .a11y-trigger, .a11y-panel, .a11y-option, .a11y-reset { border: 2px solid ButtonText; box-shadow: none; }
}

/* Base mobile-first compartilhada entre a home e as páginas editoriais. */
@media (max-width: 820px) {
  html { scroll-padding-top: 76px; }
  body { overflow-x: clip; font-size: 16px; }
  .wrap, .shell { width: min(100% - 28px, 1180px) !important; }
  :where(section, .section, .propostas-section, .conteudos-seo, .autor, .loja, .apoiar, .cta) { scroll-margin-top: 76px; }
  :where(.section-label, .eyebrow, .mini-label, .k, .ttype, .form-status, .proposta-kicker, .proposta-formal) {
    font-size: 12px !important;
    line-height: 1.45 !important;
    letter-spacing: .1em !important;
  }
  :where(.button, .btn, .proposta-filter, .proposta-action, .cta-social-link, .autor-social-link, .vpf-sbtn) {
    min-height: 48px !important;
    font-size: 12px !important;
  }
  :where(.hero-actions, .btn-row, .vpf-share, .vpf-finalcta) > :where(a, button) { width: 100%; justify-content: center; }
  .a11y-toolbar { inset: auto max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) auto; }
  .a11y-trigger { min-width: 50px; min-height: 50px; }
  .a11y-panel { padding: 18px; box-shadow: 5px 5px 0 #ffc72c; }
  .page-share-inner { width: min(100% - 28px, 1180px); grid-template-columns: 1fr; }
  .page-share-actions { display: grid; grid-template-columns: 1fr; }
  .page-share-button { width: 100%; }
  .motion-site [data-motion-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .nav .brand span { max-width: 180px !important; }
  .leg-card-inner[role="button"] { cursor: pointer; }
  .leg-card-inner[role="button"] .leg-flip-hint { display: inline-flex !important; min-height: 44px; align-items: center; color: #143b9c; font-size: 12px !important; }
  .leg-card-inner.is-flipped .leg-back { display: flex !important; position: relative !important; inset: auto !important; transform: none !important; margin-top: 8px; }

  .quadro-table, .quadro-table tbody, .quadro-table tr, .quadro-table td { display: block; width: 100%; }
  .quadro-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .quadro-table tr { margin-block: 14px; border: 1px solid rgba(14,16,20,.2); background: #fffaf0; }
  .quadro-table td { padding: 12px 14px !important; white-space: normal !important; border-bottom: 1px solid rgba(14,16,20,.12) !important; }
  .quadro-table td:last-child { border-bottom: 0 !important; }
  .quadro-table td::before { display: block; margin-bottom: 4px; color: #7d2e10; font: 800 12px/1.35 var(--font-mono, monospace); letter-spacing: .08em; text-transform: uppercase; }
  .quadro-table td:nth-child(1)::before { content: "Proposta"; }
  .quadro-table td:nth-child(2)::before { content: "Instrumento provável"; }
  .quadro-table td:nth-child(3)::before { content: "Papel do mandato"; }
}

@media (max-width: 520px) {
  :where(.hero, .section, .propostas-section, .pilares, .legislativo, .horizonte, .conteudos-seo, .autor, .loja, .countdown-section, .apoiar, .cta, .vpf-pad) {
    padding-block: clamp(60px, 16vw, 84px) !important;
  }
  :where(h1, .hero h1) { font-size: clamp(42px, 13vw, 62px) !important; line-height: 1 !important; }
  :where(h2, section h2) { font-size: clamp(34px, 10.5vw, 50px) !important; line-height: 1.03 !important; }
  :where(h3, section h3) { overflow-wrap: anywhere; }
  .a11y-options { grid-template-columns: 1fr; }
  .a11y-reset { grid-column: auto; }
}
