/* São Chico em Obras — identidade e componentes compartilhados.
   obras.css cuida dos layouts funcionais; este arquivo define a apresentação
   pública comum. Não acrescentar variantes locais de títulos, botões e heróis. */
.obras-site {
  --obras-ink: #262338;
  --obras-paper: #f7f6f2;
  --obras-violet: #d6c4f4;
  --obras-violet-dark: #604191;
  --obras-line: #dfdce3;
  --obras-surface: #fff;
  --obras-muted: #656173;
  --obras-lavender: #eee8f5;
  --obras-gold: #f4bd46;
  --obras-radius: 6px;
  --obras-space: clamp(28px, 4vw, 48px);
  --obras-detail-gradient: linear-gradient(105deg, #342647, #47305f);
  color: var(--obras-ink);
  background: var(--obras-paper);
  font-size: 16px;
  line-height: 1.55;
  accent-color: var(--obras-violet-dark);
}
.obras-site .shell { width: min(1200px, calc(100% - 48px)); }
/* Uma textura por família de fundo, sem imagens informativas ou interação. */
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-election-hero, .obras-demands-hero, .obras-catalog-hero, .obras-participation-hero,
  .obras-author-neighborhoods, .obras-analysis, .obras-election-neighborhoods,
  .obras-workspace, .obras-directory, .obras-next) { position: relative; isolation: isolate; }
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-election-hero, .obras-demands-hero, .obras-catalog-hero, .obras-participation-hero,
  .obras-author-neighborhoods, .obras-analysis, .obras-election-neighborhoods,
  .obras-workspace, .obras-directory, .obras-next)::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: #33204c; opacity: .045;
  mask-image: var(--obras-pattern, url("brand/pattern-safety.svg")); mask-size: 360px 240px; mask-repeat: repeat;
}
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-election-hero, .obras-demands-hero, .obras-catalog-hero, .obras-participation-hero) { --obras-pattern: url("brand/pattern-helmets.svg?v=20261012n"); }
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-election-hero, .obras-demands-hero, .obras-catalog-hero, .obras-participation-hero)::before { background: #10051c; opacity: .24; }
.obras-site :is(.obras-author-neighborhoods, .obras-analysis, .obras-election-neighborhoods) { --obras-pattern: url("brand/pattern-cones.svg"); }
.obras-site :is(.obras-workspace, .obras-directory) { --obras-pattern: url("brand/pattern-safety.svg"); }
.obras-site .obras-next { --obras-pattern: url("brand/pattern-machines.svg"); }
.obras-site main :is(h1, h2, h3, p) { overflow-wrap: break-word; }
.obras-site main h1 { font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.12; letter-spacing: -.045em; font-weight: 750; }
.obras-site main h2 { font-size: clamp(1.35rem, 2.2vw, 1.85rem); line-height: 1.2; letter-spacing: -.035em; }
.obras-site main h3 { font-size: 1.05rem; line-height: 1.35; letter-spacing: -.015em; }
.obras-site .eyebrow { margin-bottom: 10px; font-size: .78rem; font-weight: 650; letter-spacing: .035em; text-transform: none; }
.obras-site :is(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid #b58ade; outline-offset: 3px; }
.obras-site a { text-underline-offset: 3px; }
.obras-site [hidden] { display: none !important; }
.obras-site :is(button, a, input, select, summary) { -webkit-tap-highlight-color: transparent; }
.obras-site :is(button, select, summary) { cursor: pointer; }
.obras-site button:disabled { cursor: default; opacity: .5; }
.obras-site .obras-site-header { background: var(--obras-paper); border-bottom: 1px solid var(--obras-line); }
.obras-site .header-inner { min-height: 78px; gap: 24px; }
.obras-site .obras-brand { gap: 10px; }
.obras-site .obras-brand__mark { width: 46px; height: 38px; flex-basis: 46px; }
.obras-site .obras-brand__wordmark { font-size: 1.1rem; color: var(--obras-ink); letter-spacing: -.035em; font-weight: 750; }
.obras-site .obras-brand:hover .obras-brand__wordmark { text-decoration: none; color: var(--obras-violet-dark); }
.obras-site .header-inner nav { gap: 5px; }
.obras-site .header-inner nav > a,
.obras-site .obras-nav-menu > summary { display: flex; align-items: center; min-height: 40px; padding: 9px 12px; border: 0; border-radius: var(--obras-radius); color: var(--obras-ink); font-size: .87rem; font-weight: 600; text-decoration: none; }
.obras-site .header-inner nav > a:hover,
.obras-site .obras-nav-menu > summary:hover,
.obras-site .header-inner nav > a[aria-current],
.obras-site .obras-nav-menu[data-current] > summary { background: var(--obras-lavender); color: #54387c; text-decoration: none; }
.obras-site .header-inner nav > .obras-nav-report { margin-left: 12px; background: var(--obras-violet-dark); color: white; padding-inline: 16px; }
.obras-site .header-inner nav > .obras-nav-report[aria-current] { background: #4b2f72; }
.obras-site .header-inner nav > .obras-nav-login { border: 1px solid #bbb3c6; margin-left: 4px; background: transparent; color: var(--obras-ink); }
.obras-site .obras-site-header .header-inner nav > a[aria-current] { border-bottom: 0; padding-bottom: 9px; }
.obras-site .obras-nav-menu__panel { top: calc(100% + 8px); min-width: 235px; border: 1px solid var(--obras-line); border-radius: 8px; padding: 6px; box-shadow: 0 12px 32px #2623381c; }
.obras-site .obras-nav-menu__panel a,
.obras-site .obras-nav-session button { min-height: 42px; padding: 10px 12px; border: 0; border-radius: 4px; color: var(--obras-ink); font-size: .87rem; text-decoration: none; }
.obras-site .obras-nav-menu__panel a:hover { background: var(--obras-lavender); text-decoration: none; }
.obras-menu-toggle { display: none; }
.obras-menu-toggle__icon { width: 17px; height: 12px; border-block: 2px solid currentColor; position: relative; }
.obras-menu-toggle__icon::after { content: ""; position: absolute; inset: 3px 0 auto; border-top: 2px solid currentColor; }
.obras-site .obras-detail-nav > div { gap: 6px; min-height: 62px; padding-block: 10px; }
.obras-site .obras-detail-nav a { display: inline-flex; align-items: center; gap: 5px; min-height: 40px; padding: 9px 14px; border: 1px solid transparent; border-radius: 5px; font-size: .85rem; color: var(--obras-muted); }
.obras-site .obras-detail-nav a[aria-current],
.obras-site .obras-detail-nav a:hover { color: #503373; border-color: #e3d8ef; background: var(--obras-lavender); }
.obras-site .obras-detail-nav .obras-detail-nav__action { border-color: var(--obras-line); color: var(--obras-ink); background: white; margin-left: auto; }
.obras-site :is(.obras-button, .obras-primary-action, .obras-primary-button, .obras-secondary-button,
  .obras-profile-expand, .obras-profile-next a, .obras-territorial-rating-panel__score > a,
  .obras-inline-link, .obras-back, .obras-hero-guide-link, .obras-demand-secondary,
  .obras-source-official-link, .obras-workspace-back, .obras-workspace-heading > a,
  .obras-demand-section__heading > a, .obras-demand-editor > a,
  .obras-participation-choice-grid article > a, .obras-reading-actions a,
  .obras-filter__actions button, .obras-demand-filter-clear, .obras-catalog-filters__actions > *,
  .obras-pagination a, .obras-demand-pagination a, .obras-map-statusbar > a,
  .obras-card-text-link, .obras-contribution-form > button, .obras-review-filter button) {
  display: inline-flex; justify-content: center; align-items: center; gap: 8px;
  width: fit-content; min-height: 42px; max-width: 100%; margin-block: 0; padding: 10px 16px;
  border: 1px solid var(--obras-violet-dark); border-radius: var(--obras-radius);
  color: white; background: var(--obras-violet-dark); box-shadow: none;
  font-family: inherit; font-size: .87rem; font-weight: 650; line-height: 1.3;
  text-align: center; text-decoration: none; cursor: pointer;
  transition: background .15s, border-color .15s;
}
.obras-site :is(.obras-button--secondary, .obras-secondary-button, .obras-back,
  .obras-workspace-back, .obras-demand-secondary, .obras-source-official-link,
  .obras-demand-section__heading > a, .obras-workspace-heading > a,
  .obras-profile-next a, .obras-demand-filter-clear, .obras-pagination a,
  .obras-demand-pagination a, .obras-map-statusbar > a, .obras-card-text-link,
  .obras-filter__actions .obras-button--quiet) { background: white; color: #54387c; border-color: #c5b9d4; }
.obras-site :is(.obras-button, .obras-primary-action, .obras-primary-button,
  .obras-secondary-button, .obras-profile-expand, .obras-profile-next a,
  .obras-demand-secondary, .obras-pagination a, .obras-demand-pagination a,
  .obras-participation-choice-grid article > a, .obras-source-official-link):hover { background: #e9def5; border-color: #8d70af; color: #392551; text-decoration: none; }
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-demands-hero, .obras-election-hero, .obras-catalog-hero) {
  padding: 32px 0; background: var(--obras-detail-gradient); color: white;
}
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-demands-hero, .obras-election-hero, .obras-catalog-hero) h1 {
  margin: 0; font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.12; letter-spacing: -.045em; max-width: 950px;
}
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-demands-hero, .obras-election-hero, .obras-catalog-hero) .eyebrow { color: #d7c6eb; }
.obras-site :is(.obras-hero__copy > p, .obras-directory-hero__grid > div > p,
  .obras-demands-hero__grid > div > p, .obras-participation-hero__grid > div > p,
  .obras-detail-hero__lede, .obras-detail-hero > .shell > p:not(.eyebrow),
  .obras-catalog-hero__grid p, .obras-election-hero__grid p) { color: #e0d8e9; font-size: 1rem; line-height: 1.6; max-width: 66ch; margin: 12px 0; }
.obras-site :is(.obras-hero__grid, .obras-directory-hero__grid, .obras-demands-hero__grid,
  .obras-election-hero__grid, .obras-participation-hero__grid) { gap: 32px; align-items: center; grid-template-columns: 1.05fr 1fr; }
.obras-site :is(.obras-hero, .obras-detail-hero, .obras-directory-hero, .obras-profile-hero,
  .obras-demands-hero, .obras-election-hero, .obras-catalog-hero) :is(.obras-primary-action, .obras-profile-expand) {
  background: var(--obras-gold); border-color: var(--obras-gold); color: #332811; margin-top: 8px;
}
.obras-site :is(.obras-detail-hero, .obras-election-hero, .obras-catalog-hero) :is(.obras-back, .obras-inline-link, .obras-hero-guide-link) { background: #ffffff12; color: #fff; border-color: #ffffff50; margin-bottom: 15px; }
.obras-site :is(.obras-workspace, .obras-analysis, .obras-latest, .obras-directory,
  .obras-demands-directory, .obras-profile-summary, .obras-comparison, .obras-neighborhood-overview,
  .obras-neighborhood-data, .obras-polling-places, .obras-population-reach, .obras-methodology,
  .obras-participation-flow, .obras-participation-choices, .obras-contribution-form-section) { padding-block: var(--obras-space); }
.obras-site :is(.obras-profile-summary, .obras-representative-indications, .obras-neighborhood-overview,
  .obras-population-reach, .obras-neighborhood-data, .obras-directory, .obras-demands-directory) { background: var(--obras-paper); }
.obras-site .obras-section-heading { margin-bottom: 24px; gap: 20px; align-items: center; }
.obras-site .obras-section-heading h2 { font-size: clamp(1.35rem, 2.2vw, 1.85rem); line-height: 1.2; }
.obras-site .obras-section-heading > p { font-size: .9rem; line-height: 1.6; }
.obras-site .obras-section-heading--compact { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 18px; }
.obras-site .obras-section-heading--compact h2 { font-size: clamp(1.18rem, 1.8vw, 1.5rem); }
.obras-site .obras-section-heading--compact > a { flex-shrink: 0; }
.obras-site .obras-author-neighborhoods { padding: 25px 0; background: var(--obras-lavender); border-bottom: 1px solid #dfd5ea; }
.obras-site .obras-author-neighborhood-grid { gap: 12px; padding-block: 4px; }
.obras-site .obras-author-neighborhood-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: auto auto auto; gap: 0 12px; min-height: 100px; padding: 15px; border-radius: var(--obras-radius); flex-basis: 275px; }
.obras-site .obras-author-neighborhood-card img { grid-row: 1 / 4; width: 44px; height: 64px; margin: 0; border-radius: 3px; }
.obras-site .obras-author-neighborhood-card span { font-size: .78rem; text-transform: none; letter-spacing: 0; }
.obras-site .obras-author-neighborhood-card strong { margin: 3px 0; font-size: 1.04rem; }
.obras-site .obras-author-neighborhood-card small { font-size: .72rem; }
.obras-site .obras-author-neighborhood-card--ranked { grid-template-rows: auto auto auto auto; flex-basis: 290px; }
.obras-site .obras-author-neighborhood-card--ranked .obras-author-photo { grid-column: 1; grid-row: 1 / 4; width: 44px; height: 64px; border-radius: 3px; object-fit: cover; }
.obras-site .obras-author-photo--placeholder { display: grid; place-items: center; background: var(--obras-lavender); }
.obras-site .obras-author-neighborhood-card--ranked :is(.obras-author-name, .obras-author-place, .obras-author-count) { grid-column: 2; }
.obras-site .obras-author-rating { display: flex; align-items: center; justify-content: space-between; gap: 8px; grid-column: 1 / -1; margin-top: 13px; padding-top: 10px; border-top: 1px solid var(--obras-line); width: 100%; }
.obras-site .obras-author-rating .obras-helmet-rating { border: 0; padding: 0; box-shadow: none; background: transparent; }
.obras-site .obras-author-rating .obras-helmet-rating__icons img { grid-row: auto; width: 21px; height: 19px; border-radius: 0; background: transparent; }
.obras-site .obras-author-rating .obras-author-position { font-size: .88rem; font-weight: 750; color: var(--obras-violet-dark); }
.obras-site .obras-author-rating .obras-author-score { color: var(--obras-ink); font-weight: 750; font-size: 1rem; white-space: nowrap; }
.obras-site .obras-author-score small { font-weight: 500; font-size: .65rem; }
.obras-site .obras-ranking-context { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 14px 0 0; font-size: .75rem; color: var(--obras-muted); }
.obras-site .obras-ranking-context a { display: inline-flex; padding: 6px 10px; border: 1px solid #c5b9d4; border-radius: 4px; background: #ffffffb0; color: #54387c; font-weight: 600; text-decoration: none; }
.obras-site .obras-carousel__button { display: grid; place-items: center; border-radius: 6px; width: 36px; height: 42px; background: white; color: #51396d; border: 1px solid #bfb0d0; }
.obras-chevron { display: inline-block; width: 8px; height: 8px; border-top: 2px solid; border-right: 2px solid; transform: rotate(45deg); margin-right: 3px; }
.obras-chevron--previous { transform: rotate(-135deg); margin: 0 0 0 3px; }
.obras-site .obras-metrics { gap: 0; border: 1px solid var(--obras-line); border-radius: var(--obras-radius); overflow: hidden; background: white; margin-bottom: 26px; }
.obras-site .obras-metrics article { min-width: 0; min-height: 120px; padding: 18px 22px; border: 0; border-left: 1px solid var(--obras-line); background: transparent; }
.obras-site .obras-metrics article:first-child { border-left: 0; }
.obras-site .obras-metrics article > span { font-size: .8rem; text-transform: none; letter-spacing: 0; color: var(--obras-muted); font-weight: 600; }
.obras-site .obras-metrics article > strong { font-size: clamp(1.75rem, 2.7vw, 2.45rem); line-height: 1.15; letter-spacing: -.04em; white-space: nowrap; margin: 9px 0 4px; font-variant-numeric: tabular-nums; }
.obras-site .obras-metrics small { font-size: .76rem; line-height: 1.4; color: var(--obras-muted); }
.obras-site .obras-metrics .obras-metric--review { background: #fcf4df; color: var(--obras-ink); }
.obras-site :is(.obras-filter label, .obras-catalog-filters label, .obras-representative-card__body > span,
  .obras-profile-highlights span, .obras-territorial-rating-panel__components span, .obras-neighborhood-card > span) { text-transform: none; letter-spacing: 0; font-size: .8rem; }
.obras-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { border-radius: 5px; border: 1px solid #c9c3cf; background: white; font: inherit; font-size: .9rem; color: var(--obras-ink); }
.obras-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select) { min-height: 42px; }
.obras-site .obras-map-toolbar { padding: 22px; border: 1px solid var(--obras-line); border-radius: 6px 6px 0 0; box-shadow: none; }
.obras-site .obras-filters { padding: 18px 0 0; gap: 12px; }
.obras-filter-panel > summary { display: none; }
.obras-site .obras-period-shortcuts { gap: 6px; }
.obras-site .obras-period-shortcuts button { min-height: 34px; padding: 7px 12px; border: 1px solid #d1c5df; border-radius: 4px; text-transform: none; font-size: .78rem; }
.obras-site .obras-period-shortcuts button[aria-pressed=true] { color: white; background: var(--obras-violet-dark); }
.obras-site .obras-map { container-type: inline-size; border-radius: 6px; border: 1px solid var(--obras-line); box-shadow: none; }
.obras-site .obras-map-frame .obras-map { height: clamp(380px, 62vh, 620px); min-height: 0; border-radius: 0 0 6px 6px; border-top: 0; }
.obras-site .obras-map__notice { font-size: .78rem; color: var(--obras-muted); margin-block: 10px 20px; }
.obras-site .obras-layer-control { width: auto; max-width: min(270px, calc(100vw - 108px)); max-width: min(270px, calc(100cqw - 76px)); margin: 10px 0 0 10px !important; border-radius: 6px; border-color: #c2b7ce; box-shadow: 0 5px 20px #26233820; overflow: hidden; }
.obras-site .obras-layer-control__body { max-height: min(280px, calc(100dvh - 110px)); overflow-y: auto; overscroll-behavior: contain; }
.obras-site .obras-layer-control summary { background: #46305f; padding: 12px; font-weight: 650; }
.obras-site .obras-layer-control a { text-decoration: none; padding: 5px 0; }
.obras-site .obras-layer-control__option { min-height: 26px; align-items: center; }
.obras-site .obras-layer-control input { min-height: 0; }
.obras-site .obras-map-control-button { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid #bfb3cb; border-radius: 5px; background: white; color: #46305f; font: inherit; box-shadow: 0 2px 8px #26233820; }
.obras-site .obras-map-control-button:hover { background: #eee8f5; }
.obras-map-share-icon { position: relative; width: 22px; height: 22px; transform: rotate(-35deg); }
.obras-map-share-icon::before, .obras-map-share-icon::after { content: ""; position: absolute; width: 8px; height: 14px; border: 2px solid currentColor; border-radius: 6px; }
.obras-map-share-icon::before { left: 2px; top: 0; }
.obras-map-share-icon::after { right: 2px; bottom: 0; }
.obras-site .obras-map-share-panel { position: absolute; top: 0; right: 50px; width: min(300px, calc(100cqw - 76px)); padding: 14px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid #c5b9d4; border-radius: 6px; background: white; color: var(--obras-ink); box-shadow: 0 5px 20px #26233820; }
.obras-site .obras-map-share-panel label { display: grid; gap: 8px; font-weight: 650; }
.obras-site .obras-map-share-panel input { width: 100%; min-width: 0; padding: 8px; font-size: .78rem; }
.obras-site .obras-map-share-panel p { margin: 10px 0; font-size: .76rem; line-height: 1.5; }
.obras-site .obras-map-share-panel .obras-button { padding: 7px 12px; min-height: 34px; font-size: .76rem; }
.obras-map-control-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.obras-site .leaflet-control-zoom { border: 1px solid #bfb3cb; border-radius: 5px; overflow: hidden; box-shadow: 0 2px 8px #26233820; }
.obras-site .leaflet-control-zoom a { width: 40px; height: 40px; line-height: 40px; color: #46305f; }
.obras-map-reset-icon { position: relative; width: 18px; height: 18px; border: 2px solid currentColor; border-radius: 50%; }
.obras-map-reset-icon::before, .obras-map-reset-icon::after { content: ""; position: absolute; background: currentColor; }
.obras-map-reset-icon::before { top: -5px; bottom: -5px; left: 6px; width: 2px; }
.obras-map-reset-icon::after { left: -5px; right: -5px; top: 6px; height: 2px; }
.obras-fullscreen-icon { width: 15px; height: 15px; background: linear-gradient(currentColor, currentColor) left top / 6px 2px, linear-gradient(currentColor, currentColor) left top / 2px 6px, linear-gradient(currentColor, currentColor) right top / 6px 2px, linear-gradient(currentColor, currentColor) right top / 2px 6px, linear-gradient(currentColor, currentColor) left bottom / 6px 2px, linear-gradient(currentColor, currentColor) left bottom / 2px 6px, linear-gradient(currentColor, currentColor) right bottom / 6px 2px, linear-gradient(currentColor, currentColor) right bottom / 2px 6px; background-repeat: no-repeat; }
.obras-site .obras-map-dialog { width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--obras-paper); }
.obras-site .obras-map.obras-map--expanded { width: 100% !important; height: 100% !important; min-height: 0 !important; max-height: none; border: 0; border-radius: 0; }
.obras-site .obras-map--expanded .leaflet-bottom { margin-bottom: env(safe-area-inset-bottom); }
.obras-site .leaflet-popup-content-wrapper { border-radius: 8px; color: var(--obras-ink); }
.obras-site .obras-popup > a { display: inline-flex; padding: 8px 12px; margin: 6px 5px 0 0; background: #eee8f5; border: 1px solid #d0c1df; border-radius: 4px; color: #503373; font-weight: 650; text-decoration: none; }
.obras-site .obras-ranking-panel { padding: 24px; border-radius: 6px; color: var(--obras-ink); background: white; border: 1px solid var(--obras-line); }
.obras-site .obras-ranking-panel :is(h2, a) { color: var(--obras-ink); text-decoration: none; }
.obras-site .obras-ranking-panel li { border-color: var(--obras-line); }
.obras-site .obras-ranking-panel li::before { color: #83778f; }
.obras-site .obras-ranking-panel strong { color: var(--obras-violet-dark); }
.obras-site .obras-analysis { background: #eee8f5; color: var(--obras-ink); }
.obras-site .obras-analysis :is(.obras-section-heading > p, .obras-compact-ranking a, .obras-compact-ranking span) { color: #625773; text-decoration: none; }
.obras-site .obras-analysis-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.obras-site .obras-analysis-grid article { border: 1px solid #d4c9df; border-radius: 6px; padding: 22px; background: #ffffff80; }
.obras-site .obras-analysis-grid h3 { min-height: 2.7em; margin-bottom: 12px; }
.obras-site .obras-compact-ranking li { align-items: baseline; gap: 12px; }
.obras-site .obras-compact-ranking a:hover { color: #412361; text-decoration: underline; }
.obras-site .obras-compact-ranking li { border-color: #ddd4e6; }
.obras-site .obras-compact-ranking strong { color: #604191; }
.obras-site .obras-next { padding-block: 32px; background: #e1d3ef; }
.obras-site .obras-next h2 { font-size: 1.65rem; max-width: none; }
.obras-site .obras-next p { font-size: .94rem; }
.obras-site .obras-profile-hero__grid { grid-template-columns: 150px minmax(0, 1fr); gap: 30px; }
.obras-site .obras-profile-visual { width: 150px; }
.obras-site .obras-profile-photo { width: 138px; height: 162px; min-height: 0; border: 2px solid #ffffff70; border-radius: 5px; }
.obras-site .obras-profile-photo img { min-height: 0; border-radius: 3px; }
.obras-site .obras-profile-helmet-badge { width: 62px; top: -20px; right: -7px; transform: rotate(9deg); filter: drop-shadow(0 2px 2px #0004); }
.obras-site .obras-profile-copy h1 { font-size: clamp(1.9rem, 3.4vw, 2.85rem); }
.obras-site .obras-profile-biography { margin-top: 12px; color: #e0d8e9; font-size: .94rem; max-width: 72ch; -webkit-line-clamp: 2; }
.obras-site .obras-profile-expand { font-size: .8rem; min-height: 36px; padding: 8px 13px; margin-top: 12px; }
.obras-site .obras-helmet-rating { border-radius: 5px; padding: 6px 8px; box-shadow: 0 2px 5px #26233824; border: 1px solid #d2c8b5; background: #fff9e8; }
.obras-site .obras-helmet-rating__icons img { width: 23px; height: 21px; }
.obras-site .obras-helmet-rating--large { width: fit-content; margin: 16px 0; padding: 13px 15px; }
.obras-site .obras-helmet-rating--large .obras-helmet-rating__icons img { width: 37px; height: 29px; }
.obras-site .obras-helmet-rating--compact { border: 0; box-shadow: none; padding: 4px 6px; }
.obras-site .obras-helmet-rating--compact .obras-helmet-rating__icons img { width: 22px; height: 19px; }
.obras-site .obras-territorial-rating-panel { grid-template-columns: minmax(250px, .9fr) minmax(0, 1.5fr); border-radius: 6px; overflow: hidden; margin-top: 0; }
.obras-site .obras-territorial-rating-panel__score { background: #342647; padding: 26px; }
.obras-site .obras-territorial-rating-panel__score h2 { font-size: 1.7rem; }
.obras-site .obras-territorial-rating-panel__score > p:not(.eyebrow) { color: #ded3e9; font-size: .9rem; line-height: 1.55; margin: 14px 0; }
.obras-site .obras-territorial-rating-panel__score > a { background: #ffffff12; border-color: #ffffff50; color: white; font-size: .8rem; }
.obras-site .obras-territorial-rating-panel__components { grid-template-columns: 1fr; padding: 6px 24px; }
.obras-site .obras-territorial-rating-panel__components article { display: grid; grid-template-columns: 1fr auto; gap: 3px 20px; padding: 18px 0; border: 0; border-bottom: 1px solid var(--obras-line); }
.obras-site .obras-territorial-rating-panel__components article:last-child { border-bottom: 0; }
.obras-site .obras-territorial-rating-panel__components h3 { grid-row: 1; grid-column: 1; margin: 0; }
.obras-site .obras-territorial-rating-panel__components span { grid-row: 1; grid-column: 2; text-align: right; color: var(--obras-muted); }
.obras-site .obras-territorial-rating-panel__components strong { grid-column: 2; grid-row: 2; margin: 0; font-size: 1.7rem; line-height: 1.3; text-align: right; white-space: nowrap; }
.obras-site .obras-territorial-rating-panel__components p { grid-column: 1; grid-row: 2; font-size: .84rem; align-self: center; max-width: 42ch; }
.obras-site .obras-profile-highlights { margin-top: 24px; background: white; border: 1px solid var(--obras-line); border-radius: 6px; }
.obras-site .obras-profile-highlights article { padding: 22px; }
.obras-site .obras-profile-highlights h2 { margin: 12px 0 8px; font-size: 1.7rem; }
.obras-site .obras-profile-highlights p { font-size: .88rem; }
.obras-site .obras-profile-highlights small { font-size: .76rem; }
.obras-site .obras-profile-next { gap: 10px; justify-content: flex-start; margin-top: 22px; }
.obras-site .obras-profile-update { text-align: left; margin-top: 18px; }
.obras-site .obras-profile-dialog { border-radius: 10px; }
.obras-site .obras-profile-dialog__body { padding: 28px; gap: 28px; }
.obras-site .obras-profile-dialog__body p { font-size: 1rem; }
.obras-site .obras-profile-dialog__photo img { object-fit: contain; }
.obras-site .obras-profile-dialog header button { border-radius: 5px; }
.obras-site .obras-representative-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.obras-site .obras-representative-card { border: 1px solid var(--obras-line); border-radius: 6px; padding: 20px; grid-template-columns: 116px minmax(0, 1fr); gap: 22px; }
.obras-site .obras-representative-card__photo { align-self: start; border-radius: 4px; height: 162px; min-height: 0; overflow: hidden; }
.obras-site .obras-representative-card__photo img { min-height: 0; height: 100%; object-fit: cover; }
.obras-site .obras-representative-card h2 { margin: 5px 0 16px; font-size: 1.5rem; }
.obras-site .obras-representative-card dl { gap: 10px; }
.obras-site .obras-representative-card dt { font-size: .75rem; }
.obras-site .obras-representative-card dt { text-transform: none; letter-spacing: 0; }
.obras-site .obras-representative-card dd { font-size: 1rem; }
.obras-site .obras-representative-card__body > strong,
.obras-site .obras-neighborhood-card > strong,
.obras-site .obras-demand-card__footer > strong,
.obras-site .obras-review-queue__action { display: inline-flex; width: fit-content; padding: 7px 11px; background: var(--obras-lavender); border-radius: 4px; color: #54387c; font-size: .78rem; }
.obras-site :is(.obras-representative-card, .obras-neighborhood-card, .obras-demand-card, .obras-indication-card):hover { outline: 0; background: #f0eaf7; box-shadow: inset 3px 0 #8060a5; }
.obras-site .obras-neighborhood-card { border: 1px solid var(--obras-line); border-radius: 6px; padding: 22px; }
.obras-site .obras-neighborhood-card h2 { font-size: 1.5rem; margin: 18px 0; }
.obras-site .obras-neighborhood-card dd { font-size: 1.25rem; }
.obras-site .obras-demand-page .obras-detail-hero { background: var(--obras-detail-gradient); padding: 26px 0; }
.obras-site .obras-demand-page .obras-detail-hero h1 { font-size: clamp(1.6rem, 2.4vw, 2.2rem); line-height: 1.25; }
.obras-site .obras-demand-description { color: #e0d8e9; font-size: .96rem; }
.obras-site .obras-demand-meta { margin-top: 18px; gap: 10px; color: #d7cbe2; font-size: .78rem; }
.obras-site .obras-demand-meta a { padding: 5px 10px; background: #ffffff14; border: 1px solid #ffffff40; border-radius: 4px; color: white; text-decoration: none; }
.obras-site .obras-demand-layout { padding-top: 30px; gap: 32px; }
.obras-site .obras-demand-page { background: var(--obras-paper); }
.obras-site .obras-demand-sidebar > section { padding: 22px; border: 1px solid var(--obras-line); border-radius: 6px; background: white; }
.obras-site .obras-demand-sidebar > section:first-child { background: var(--obras-lavender); border-color: #d4c5e4; }
.obras-site .obras-demand-sidebar > section > a { width: 100%; margin-top: 10px; }
.obras-site .obras-demand-sidebar h2 { font-size: 1.2rem; }
.obras-site .obras-demand-document { border: 1px solid var(--obras-line); border-radius: 6px; padding: 22px; background: white; }
.obras-site .obras-source-official-link { margin-top: 15px; }
.obras-site .obras-demand-filters { padding: 20px; background: white; border: 1px solid var(--obras-line); border-radius: 6px; }
.obras-site .obras-demand-list { margin-top: 22px; }
.obras-site .obras-demand-card { padding: 22px 16px; background: white; border-radius: 0; column-gap: 24px; }
.obras-site .obras-demand-card__body h2 { font-size: 1.04rem; line-height: 1.45; letter-spacing: -.015em; }
.obras-site .obras-demand-card__body p { display: none; }
.obras-site .obras-demand-card__meta { font-size: .78rem; }
.obras-site .obras-demand-card__places { font-size: .78rem; }
.obras-site .obras-indication-card { padding: 18px 14px; background: white; border-radius: 0; }
.obras-site .obras-indication-card h3 { font-size: 1rem; line-height: 1.5; }
.obras-site .obras-detail-meta { margin-top: 24px; gap: 16px 30px; }
.obras-site .obras-detail-meta span { padding: 0; font-size: 1.35rem; line-height: 1.3; background: none; border: 0; }
.obras-site .obras-detail-meta strong { font-size: .75rem; color: #d4c4e5; margin-bottom: 5px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.obras-site .obras-neighborhood-overview__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
.obras-site .obras-reading-note { padding: 18px 22px; border: 1px solid var(--obras-line); border-radius: 6px; background: #f0ecf5; font-size: .87rem; line-height: 1.65; }
.obras-site .obras-neighborhood-columns { gap: 20px; }
.obras-site .obras-neighborhood-columns > article { padding: 22px; border: 1px solid var(--obras-line); border-radius: 6px; }
.obras-site .obras-neighborhood-columns h2 { font-size: 1.25rem; margin-top: 5px; }
.obras-site .obras-linked-ranking a { text-decoration: none; }
.obras-site .obras-place-cards article { border-radius: 6px; }
.obras-site .obras-section-table { font-size: .82rem; background: white; }
.obras-site .obras-section-table :is(th, td) { padding: 13px; }
.obras-site .obras-section-table th { background: #eee8f5; color: #51396d; text-transform: none; letter-spacing: 0; font-size: .78rem; }
.obras-site .obras-section-table tr:hover td { background: #faf7fd; }
.obras-site .obras-section-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; padding-top: 18px; }
.obras-site .obras-section-pagination label { display: flex; align-items: center; gap: 8px; font-size: .8rem; }
.obras-site .obras-section-pagination select { width: 78px; padding: 8px; }
.obras-site #section-page-summary { margin-right: auto; font-size: .82rem; }
.obras-site .obras-neighborhood-search { grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; margin-bottom: 25px; border-radius: 6px; }
.obras-site .obras-indication-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); border-radius: 6px; }
.obras-site .obras-indication-filters .obras-filter--search { grid-column: span 2; }
.obras-site .obras-indication-filters label { min-width: 0; }
.obras-site .obras-indication-filters .obras-filter__actions { align-self: end; flex-wrap: wrap; }
@media (max-width: 760px) {
  .obras-site .obras-indication-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .obras-site .obras-neighborhood-search { grid-template-columns: 1fr 1fr; }
  .obras-site .obras-neighborhood-search label, .obras-site .obras-indication-filters .obras-filter__actions { grid-column: 1 / -1; }
  .obras-site .obras-section-pagination #section-page-summary { flex: 0 0 100%; }
}
.obras-site .obras-reach-grid { background: white; border: 1px solid var(--obras-line); border-radius: 6px; }
.obras-site .obras-reach-grid article { padding: 20px 16px; }
.obras-site .obras-reach-grid strong { font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.2; letter-spacing: -.03em; white-space: nowrap; }
.obras-site .obras-reach-grid span { text-transform: none; letter-spacing: 0; font-weight: 600; }
.obras-site :is(.obras-population-note, .obras-reading-note, .obras-census-note) > a { display: inline-flex; align-items: center; min-height: 36px; margin-top: 10px; padding: 7px 11px; border: 1px solid #c5b9d4; border-radius: 4px; background: white; color: #54387c; font-weight: 600; text-decoration: none; }
.obras-site :is(.obras-election-summary, .obras-election-map-section, .obras-election-neighborhoods, .obras-election-sections) { padding-block: var(--obras-space); }
.obras-site .obras-election-summary { padding-bottom: 0; }
.obras-site .obras-election-toolbar { border: 1px solid var(--obras-line); border-radius: 6px; margin-bottom: 24px; }
.obras-site .obras-election-explainer { border-radius: 6px; background: #342647; }
.obras-site .obras-election-explainer h2 { margin: 12px 0 18px; font-size: 1.5rem; line-height: 1.25; }
.obras-site .obras-election-neighborhoods { background: var(--obras-lavender); }
.obras-site .obras-election-neighborhood-grid article { border: 1px solid var(--obras-line); border-radius: 6px; }
.obras-site .obras-participation-steps { gap: 0; border: 1px solid var(--obras-line); border-radius: 6px; overflow: hidden; }
.obras-site .obras-participation-steps li { min-height: 0; padding: 24px; border: 0; border-left: 1px solid var(--obras-line); border-radius: 0; }
.obras-site .obras-participation-steps li:first-child { border-left: 0; }
.obras-site .obras-participation-steps li > span { color: #8d729f; font-size: .85rem; font-weight: 650; }
.obras-site .obras-participation-steps h3 { margin: 16px 0 10px; font-size: 1.2rem; }
.obras-site .obras-participation-choice-grid article { padding: 24px; border: 1px solid var(--obras-line); border-radius: 6px; background: white; }
.obras-site .obras-participation-choice-grid h2 { margin: 12px 0; font-size: 1.5rem; }
.obras-site .obras-participation-choice-grid p { font-size: .91rem; }
.obras-site .obras-participation-choice-grid article > a { margin-top: auto; }
.obras-site :is(.obras-contribution-form, .obras-privacy-card, .obras-editor-form) { padding: 24px; border: 1px solid var(--obras-line); border-radius: 6px; background: white; }
.obras-site .obras-privacy-card { background: var(--obras-lavender); color: var(--obras-ink); }
.obras-site .obras-privacy-card h2 { color: var(--obras-ink); }
.obras-site .obras-privacy-card :is(p, li) { color: var(--obras-muted); }
.obras-site .obras-privacy-card .eyebrow { color: #604191; }
.obras-site .obras-form-field > label { text-transform: none; letter-spacing: 0; font-weight: 600; }
.obras-site :is(.obras-workspace-heading h1, .obras-catalog-hero h1) { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.obras-site .obras-review-nav a { border-radius: 5px; }
.obras-site .obras-review-filter { padding: 18px; border-radius: 6px; background: white; }
.obras-site .obras-source-document summary,
.obras-site .obras-demand-timeline summary { min-height: 44px; padding: 12px; border: 1px solid var(--obras-line); border-radius: 5px; background: #f5f2f8; color: #54387c; font-weight: 600; }
.obras-site .obras-methodology article { padding-block: 30px; }
.obras-site .obras-methodology h2 { font-size: 1.65rem; }
.obras-site .obras-methodology nav a { padding: 10px 14px; margin-bottom: 5px; border: 1px solid var(--obras-line); border-radius: 4px; background: white; text-decoration: none; }
.obras-site :is(.obras-reading-guide, .obras-reading-example, .obras-reading-safety) { padding-block: var(--obras-space); }
.obras-site .obras-reading-principles article { min-height: 0; border: 1px solid var(--obras-line); border-radius: 6px; }
.obras-site .obras-reading-principles h3 { margin: 18px 0 12px; line-height: 1.3; }
.obras-site .obras-reading-example { background: #342647; }
.obras-site .obras-reading-example li { display: block; position: relative; padding: 20px 0 20px 46px; }
.obras-site .obras-reading-example li::before { position: absolute; top: 20px; left: 0; }
.obras-site .obras-reading-example li strong { display: inline; }
.obras-site .obras-reading-safety { background: #46305f; }
.obras-site .obras-glossary details { border-color: var(--obras-line); }
.obras-site .obras-site-footer { padding-top: 32px; background: #262032; }
.obras-site .footer-inner { gap: 30px; padding-bottom: 28px; }
.obras-site .obras-footer-links a { display: block; width: fit-content; padding: 6px 0; color: #ddd3e8; text-decoration: none; }
.obras-site .obras-footer-links a:hover { color: white; }
.obras-site .footer-local-pride strong,
.obras-site .footer-credit > span,
.obras-site .footer-credit__website { color: #dec4ff; }
.obras-site .footer-credit .footer-credit__website { color: #dec4ff; text-decoration: none; }
.obras-site .footer-credit { padding-block: 20px; }
@media (max-width: 1050px) {
  .obras-site .obras-site-header .header-inner { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0; min-height: 72px; padding-block: 15px; }
  .obras-site .obras-menu-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; margin-left: auto; padding: 8px 12px; border: 1px solid #bfb5c8; border-radius: 5px; color: var(--obras-ink); background: white; font: inherit; font-size: .84rem; }
  .obras-site .obras-menu-toggle[hidden] { display: none; }
  .obras-site .obras-site-header .header-inner nav { flex: 0 0 100%; flex-wrap: wrap; overflow: visible; padding-top: 14px; align-items: stretch; }
  .obras-site .obras-navigation-ready:not(.obras-navigation-open) #obras-primary-nav { display: none; }
  .obras-site .header-inner nav > a, .obras-site .obras-nav-menu { flex: 1 0 45%; }
  .obras-site .obras-nav-menu__panel { position: static; margin-top: 6px; min-width: 0; box-shadow: none; width: 100%; }
  .obras-site .header-inner nav > .obras-nav-report { margin-left: 0; }
  .obras-site .obras-representative-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .obras-site .obras-representative-card { grid-template-columns: 90px minmax(0, 1fr); gap: 16px; padding: 18px; }
  .obras-site .obras-representative-card__photo { height: 126px; }
  .obras-site .obras-representative-card dl { grid-template-columns: 1fr; }
  .obras-site .obras-analysis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 400px) {
  .obras-site .obras-brand { gap: 6px; }
  .obras-site .obras-brand__mark { width: 34px; height: 31px; flex-basis: 34px; }
  .obras-site .obras-brand__wordmark { font-size: .93rem; }
  .obras-site .obras-menu-toggle { font-size: .78rem; padding: 7px 9px; }
}
@media (max-width: 760px) {
  .obras-site .shell { width: calc(100% - 32px); }
  .obras-site :is(.obras-hero__grid, .obras-directory-hero__grid, .obras-demands-hero__grid, .obras-participation-hero__grid, .obras-election-hero__grid) { grid-template-columns: 1fr; gap: 10px; }
  .obras-site .obras-profile-hero__grid { grid-template-columns: 112px minmax(0, 1fr); gap: 18px; align-items: start; }
  .obras-site .obras-profile-visual { width: 112px; }
  .obras-site .obras-profile-photo { width: 102px; height: 128px; }
  .obras-site .obras-profile-copy h1 { font-size: clamp(1.5rem, 5vw, 2rem); }
  .obras-site .obras-profile-copy .eyebrow { font-size: .69rem; }
  .obras-site .obras-profile-biography { font-size: .82rem; -webkit-line-clamp: 2; margin-top: 8px; }
  .obras-site .obras-profile-expand { font-size: .73rem; padding: 8px 10px; }
  .obras-site .obras-profile-helmet-badge { width: 48px; right: -4px; top: -16px; }
  .obras-site .obras-profile-visual .obras-helmet-rating { padding: 5px 4px; }
  .obras-site .obras-profile-visual .obras-helmet-rating__icons img { width: 17px; height: 17px; }
  .obras-site .obras-profile-visual .obras-helmet-rating__label { font-size: .57rem; }
  .obras-site .obras-detail-nav > div { min-height: 56px; padding-block: 8px; }
  .obras-site .obras-detail-nav a { font-size: .8rem; padding: 8px 12px; min-height: 38px; }
  .obras-site .obras-territorial-rating-panel { grid-template-columns: 1fr; }
  .obras-site .obras-territorial-rating-panel__score { padding: 22px; }
  .obras-site .obras-territorial-rating-panel__components { padding: 4px 20px; }
  .obras-site .obras-metrics article { padding: 15px; min-height: 110px; }
  .obras-site .obras-metrics article:nth-child(3) { border-left: 0; }
  .obras-site .obras-metrics article:nth-child(n+3) { border-top: 1px solid var(--obras-line); }
  .obras-site .obras-metrics article > strong { font-size: 1.7rem; }
  .obras-site .obras-metrics article > span { font-size: .74rem; }
  .obras-site .obras-metrics small { font-size: .7rem; }
  .obras-site .obras-profile-highlights { grid-template-columns: 1fr; }
  .obras-site .obras-profile-highlights article + article { border-left: 0; border-top: 1px solid var(--obras-line); }
  .obras-site .obras-profile-highlights article { padding: 20px; }
  .obras-site .obras-representative-grid { grid-template-columns: 1fr; }
  .obras-site .obras-representative-card { grid-template-columns: 108px minmax(0, 1fr); }
  .obras-site .obras-representative-card__photo { height: 151px; }
  .obras-site .obras-representative-card h2 { font-size: 1.3rem; }
  .obras-site .obras-representative-card dl { grid-template-columns: 1fr 1fr; }
  .obras-site .obras-demand-layout { gap: 20px; }
  .obras-site .obras-demand-section__heading { gap: 12px; flex-wrap: wrap; }
  .obras-site .obras-map-toolbar { padding: 16px; }
  .obras-site .obras-map-frame .obras-map { height: min(64svh, 500px); min-height: 360px; }
  .obras-filter-panel > summary { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 12px; padding: 12px; border: 1px solid #c9bcd9; border-radius: 5px; background: var(--obras-lavender); color: #503373; font-size: .87rem; font-weight: 650; cursor: pointer; }
  .obras-filter-panel > summary::before { content: "+"; font-size: 1.2rem; line-height: 1; }
  .obras-filter-panel[open] > summary::before { content: "−"; }
  .obras-filter-panel > summary span { font-size: .72rem; font-weight: 400; }
  .obras-site .obras-filters { grid-template-columns: 1fr 1fr; }
  .obras-site .obras-filter--search, .obras-site .obras-filter__actions { grid-column: 1 / -1; }
  .obras-site .obras-section-heading--compact h2 { font-size: 1.16rem; }
  .obras-site .obras-section-heading--compact > a { padding: 9px 12px; min-height: 38px; font-size: .8rem; }
  .obras-site .obras-carousel__button { display: none; }
  .obras-site .obras-carousel { grid-template-columns: minmax(0, 1fr); }
  .obras-site .obras-author-neighborhood-card { flex-basis: min(275px, 85vw); }
  .obras-site .obras-profile-dialog__body { grid-template-columns: 1fr; padding: 20px; }
  .obras-site .obras-profile-dialog__photo { max-width: 240px; min-height: 0; }
  .obras-site .obras-profile-dialog__photo img { min-height: 0; max-height: 330px; }
  .obras-site .obras-participation-steps { grid-template-columns: 1fr; }
  .obras-site .obras-participation-steps li { border-left: 0; border-top: 1px solid var(--obras-line); padding: 20px; }
  .obras-site .obras-participation-steps li:first-child { border-top: 0; }
  .obras-site .obras-participation-steps h3 { margin: 8px 0; }
  .obras-site .footer-inner { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .obras-site .obras-analysis-grid { grid-template-columns: 1fr; }
  .obras-site .obras-analysis-grid h3 { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .obras-site { scroll-behavior: auto; }
  .obras-site *, .obras-site *::before, .obras-site *::after { scroll-behavior: auto !important; transition: none !important; }
}
