/* Museu ODC 3.0.31 — sistema editorial responsivo e Política de Privacidade. */
:root {
  --odc331-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --odc331-font-title: Georgia, "Times New Roman", serif;
  --odc331-text: #f4ead8;
  --odc331-muted: #dfd0ba;
  --odc331-gold: #d8a83e;
  --odc331-gold-light: #f3d889;
  --odc331-surface: rgba(20, 14, 10, .94);
  --odc331-line: rgba(216, 168, 62, .42);
  --odc331-reading: 76ch;
  --odc331-content: 1180px;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html body.odc331-design-system {
  font-family: var(--odc331-font-body) !important;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

/* Regras editoriais gerais: leitura estável sem invadir mapa, Jornada e widgets. */
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(main, .site-main, #primary, .content-area, .entry-content, .page-content) {
  min-width: 0 !important;
  box-sizing: border-box !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-content, .page-content, .site-main)
:where(p, li, dd, dt, blockquote, figcaption, label, th, td) {
  font-family: var(--odc331-font-body) !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  text-align-last: auto !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: auto;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-content, .page-content, .site-main) p {
  font-size: 1rem;
  font-size: clamp(1rem, .25vw + .95rem, 1.125rem) !important;
  line-height: 1.68 !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-content, .page-content, .site-main)
:where(h1, h2, h3, h4, h5, h6, .entry-title, .page-title) {
  max-width: 100% !important;
  margin-inline: auto !important;
  font-family: var(--odc331-font-title) !important;
  font-style: normal !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  text-transform: none;
  text-wrap: balance;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-title, .page-title, .entry-header h1, .page-header h1) {
  font-size: 2.25rem;
  font-size: clamp(2.15rem, 5vw, 4rem) !important;
  line-height: 1.06 !important;
  text-align: center !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-content, .page-content, .site-main) h2 {
  font-size: 1.75rem;
  font-size: clamp(1.65rem, 3.2vw, 2.65rem) !important;
  line-height: 1.14 !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-content, .page-content, .site-main) h3 {
  font-size: 1.35rem;
  font-size: clamp(1.3rem, 2.25vw, 1.85rem) !important;
  line-height: 1.22 !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(button, input, select, textarea, .wp-element-button, .wp-block-button__link) {
  font-family: var(--odc331-font-body) !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  line-height: 1.25 !important;
}
html body.odc331-design-system img,
html body.odc331-design-system video,
html body.odc331-design-system iframe {
  max-width: 100%;
}

/* Padrão editorial: títulos de seções centralizados; textos corridos à esquerda. */
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.odc24-collection-introduction, .odc18-educational-journey, .odc17-support-page, .odc329-donation__intro)
:where(h1, h2, .entry-title, .page-title) {
  text-align: center !important;
}
html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
:where(.entry-content, .page-content)
:where(p, ul, ol, blockquote, dl, table) {
  text-align: left;
}

/* Política de Privacidade: uma única largura, hierarquia e alinhamento. */
html body.odc331-policy-page :where(#content, .site-content, .content-area, #primary, .site-main) {
  width: min(100%, var(--odc331-content)) !important;
  max-width: var(--odc331-content) !important;
  margin-inline: auto !important;
  padding-inline: clamp(12px, 3vw, 32px) !important;
  box-sizing: border-box !important;
}
html body.odc331-policy-page :where(.entry-header, .page-header) {
  width: min(100%, 920px) !important;
  margin: 0 auto clamp(1rem, 3vw, 2rem) !important;
  text-align: center !important;
}
html body.odc331-policy-page :where(.entry-title, .page-title, .entry-header h1, .page-header h1) {
  margin: 0 !important;
  color: var(--odc331-gold-light) !important;
  font-size: clamp(2rem, 5vw, 3.75rem) !important;
  line-height: 1.08 !important;
  text-align: center !important;
}
html body.odc331-policy-page .entry-content {
  width: min(100%, 920px) !important;
  max-width: 920px !important;
  margin: 0 auto clamp(2rem, 6vw, 5rem) !important;
  padding: clamp(18px, 4vw, 48px) !important;
  border: 1px solid var(--odc331-line) !important;
  border-radius: clamp(14px, 2vw, 22px) !important;
  background: var(--odc331-surface) !important;
  color: var(--odc331-text) !important;
  box-sizing: border-box !important;
}
html body.odc331-policy-page .odc331-policy {
  width: 100% !important;
  max-width: var(--odc331-reading) !important;
  margin-inline: auto !important;
}
html body.odc331-policy-page .odc331-policy :where(h2, h3, h4) {
  width: 100% !important;
  max-width: var(--odc331-reading) !important;
  margin: clamp(1.7rem, 4vw, 2.8rem) 0 .75rem !important;
  color: var(--odc331-gold-light) !important;
  text-align: left !important;
}
html body.odc331-policy-page .odc331-policy h2:first-child { margin-top: 0 !important; }
html body.odc331-policy-page .odc331-policy :where(p, li, dd, dt, blockquote, figcaption) {
  width: 100% !important;
  max-width: var(--odc331-reading) !important;
  margin-inline: 0 !important;
  color: var(--odc331-text) !important;
  font-family: var(--odc331-font-body) !important;
  font-size: clamp(1rem, .35vw + .94rem, 1.125rem) !important;
  line-height: 1.72 !important;
  text-align: left !important;
  text-align-last: auto !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
}
html body.odc331-policy-page .odc331-policy :where(ul, ol) {
  width: 100% !important;
  max-width: var(--odc331-reading) !important;
  margin: .75rem 0 1.25rem !important;
  padding-left: clamp(1.25rem, 4vw, 2rem) !important;
  text-align: left !important;
}
html body.odc331-policy-page .odc331-policy a {
  color: var(--odc331-gold-light) !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px !important;
  overflow-wrap: anywhere !important;
}
html body.odc331-policy-page .odc328-policy-table-wrap {
  width: 100% !important;
  max-width: 100% !important;
  margin: 1.25rem 0 !important;
  overflow-x: auto !important;
  border-radius: 12px !important;
  -webkit-overflow-scrolling: touch;
}
html body.odc331-policy-page .odc328-policy-table {
  width: 100% !important;
  min-width: 640px !important;
  margin: 0 !important;
  border-collapse: collapse !important;
  table-layout: fixed !important;
  color: var(--odc331-text) !important;
  font-family: var(--odc331-font-body) !important;
}
html body.odc331-policy-page .odc328-policy-table :where(th, td) {
  padding: .8rem .85rem !important;
  border: 1px solid var(--odc331-line) !important;
  color: var(--odc331-text) !important;
  font-size: .98rem !important;
  line-height: 1.5 !important;
  text-align: left !important;
  vertical-align: top !important;
  overflow-wrap: anywhere !important;
}
html body.odc331-policy-page .odc328-policy-table th {
  background: rgba(216, 168, 62, .17) !important;
  color: var(--odc331-gold-light) !important;
  font-weight: 800 !important;
}

/* Ajustes progressivos para telas menores e máquinas com zoom elevado. */
@media (max-width: 900px) {
  html body.odc331-design-system:not(.odc21-page-map):not(.odc300-page-journey)
  :where(.entry-title, .page-title, .entry-header h1, .page-header h1) {
    font-size: clamp(2rem, 7vw, 3.25rem) !important;
  }
}
@media (max-width: 680px) {
  html body.odc331-policy-page :where(#content, .site-content, .content-area, #primary, .site-main) {
    padding-inline: 8px !important;
  }
  html body.odc331-policy-page .entry-content {
    padding: 18px 15px !important;
    border-radius: 14px !important;
  }
  html body.odc331-policy-page .odc328-policy-table {
    min-width: 0 !important;
    table-layout: auto !important;
  }
  html body.odc331-policy-page .odc328-policy-table thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  html body.odc331-policy-page .odc328-policy-table :where(tbody, tr, td) {
    display: block !important;
    width: 100% !important;
  }
  html body.odc331-policy-page .odc328-policy-table tr {
    margin-bottom: 12px !important;
    border: 1px solid var(--odc331-line) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: rgba(255, 255, 255, .025) !important;
  }
  html body.odc331-policy-page .odc328-policy-table td {
    border: 0 !important;
    border-bottom: 1px solid var(--odc331-line) !important;
  }
  html body.odc331-policy-page .odc328-policy-table td:last-child { border-bottom: 0 !important; }
  html body.odc331-policy-page .odc328-policy-table td::before {
    display: block !important;
    margin-bottom: 3px !important;
    color: var(--odc331-gold-light) !important;
    font-weight: 800 !important;
  }
  html body.odc331-policy-page .odc328-policy-table td:nth-child(1)::before { content: "Serviço"; }
  html body.odc331-policy-page .odc328-policy-table td:nth-child(2)::before { content: "Finalidade"; }
  html body.odc331-policy-page .odc328-policy-table td:nth-child(3)::before { content: "Consentimento"; }
}
@media (max-width: 420px) {
  html body.odc331-design-system { font-size: 15px; }
  html body.odc331-policy-page .entry-content { padding: 16px 13px !important; }
  html body.odc331-policy-page .odc331-policy :where(p, li, dd, dt) {
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  html body.odc331-design-system *,
  html body.odc331-design-system *::before,
  html body.odc331-design-system *::after {
    scroll-behavior: auto !important;
  }
}
