body[class*="portal-theme-"] { margin: 0; font-family: Arial, Helvetica, sans-serif; --portal-accent: #06347d; --portal-heading: #0b3763; --portal-background: #f5f6f8; --portal-footer: #202326; }
body[class*="portal-theme-"] * { box-sizing: border-box; }
body.portal-theme-servicos-destaque { --portal-accent: #454e55; --portal-heading: #30363b; --portal-background: #f5f6f7; --portal-footer: #2f3438; }
body.portal-theme-cidade-verde { --portal-accent: #117a38; --portal-heading: #125c30; --portal-background: #f2f8f4; --portal-footer: #16492c; }
body.portal-inner { background: var(--portal-background); color: #24292e; line-height: 1.55; --brand: var(--portal-accent); --navy: var(--portal-heading); --green: var(--portal-accent); --green-2: var(--portal-heading); --gov-blue: var(--portal-heading); --gov-blue-soft: var(--portal-background); }
body.portal-inner a { text-decoration: none; }
body.portal-inner main { min-height: 50vh; }
body.portal-inner .wrap { width: min(1180px, calc(100% - 32px)); margin-inline: auto; }
body.portal-inner h1 { color: var(--portal-heading); font-size: 36px; line-height: 1.15; overflow-wrap: anywhere; }
body.portal-inner h2, body.portal-inner h3 { color: var(--portal-heading); }
body.portal-inner .button, body.portal-inner .back { background: var(--portal-accent); color: #fff; }
body.portal-inner .bar { background: var(--portal-background); padding: 28px 0 12px; }
body.portal-inner .body a { color: var(--portal-accent); }
body.portal-inner article, body.portal-inner .section, body.portal-inner .hero-main { border-radius: 0; box-shadow: none; }
body.portal-inner .docs-hero { background: var(--portal-accent); }
body.portal-inner .docs-hero h1 { color: #fff; }
body.portal-inner :is(.city-wrap, .department-page, .culture-library, .information-workspace, .citizen-workspace, .transparency-main, .portal-results) { padding-top: 20px; }
body.portal-inner :is(.department-breadcrumb, .culture-breadcrumb, .information-breadcrumb, .citizen-breadcrumb, .article-breadcrumb) { margin-top: 0; margin-bottom: 16px; }
body.portal-inner .city-heading { padding: 16px 0 12px; }
body.portal-inner .city-heading > p { margin: 0 0 8px; }
body.portal-inner .city-heading h1 { margin: 0; }
body.portal-inner .city-navigation { margin-bottom: 20px; }
body.portal-inner .department-heading { padding-top: 0; padding-bottom: 16px; }
body.portal-inner .culture-heading { padding-bottom: 16px; }
body.portal-inner .information-heading { padding: 0 0 16px; margin-bottom: 20px; }
body.portal-inner .information-heading h1 { margin: 8px 0 12px; }
body.portal-inner .information-heading > p { margin: 0 0 8px; }
body.portal-inner .citizen-heading { margin-bottom: 20px; }
body.portal-inner .bar { padding-top: 20px; }
body.portal-inner .docs-hero { padding-top: 20px; padding-bottom: 20px; }
body[class*="portal-theme-"] .portal-container { width: min(1690px, calc(100% - 80px)); }
body[class*="portal-theme-"] .portal-search-area svg { width: 20px; height: 20px; vertical-align: middle; }
body[class*="portal-theme-"] .portal-brand-mark img { display: block; max-width: 100%; }
body[class*="portal-theme-"] .portal-menu-link { font-size: 15px; }
@media (min-width: 901px) {
    body[class*="portal-theme-"] .portal-submenu { display: none; }
    body[class*="portal-theme-"] .portal-submenu-item:hover > .portal-submenu,
    body[class*="portal-theme-"] .portal-submenu-item:focus-within > .portal-submenu,
    body[class*="portal-theme-"] .portal-submenu-item.is-open > .portal-submenu { display: block; }
}
body.portal-theme-cidade-verde .portal-brand-bar { background: #1ca64c; }
body.portal-theme-cidade-verde .portal-dropdown-panel, body.portal-theme-cidade-verde .portal-submenu { border-top-color: #117a38; }
body.portal-theme-servicos-destaque .portal-access-top { background: #f8fafb; color: #49515a; border-bottom: 1px solid #e5e7eb; }
body.portal-theme-servicos-destaque .portal-brand-bar { background: #fff; color: #404447; border-bottom: 1px solid #e5e7eb; }
body.portal-theme-servicos-destaque { --portal-frame: min(1690px, calc(100% - 210px)); }
body.portal-theme-servicos-destaque .portal-container,
body.portal-theme-servicos-destaque .portal-footer__grid,
body.portal-theme-servicos-destaque.portal-inner .wrap { width: var(--portal-frame); margin-inline: auto; }
body.portal-theme-servicos-destaque .portal-brand-bar .portal-container { min-height: 88px; grid-template-columns: minmax(190px, 1fr) 200px auto; gap: 14px; }
body.portal-theme-servicos-destaque .portal-brand-logo { width: 230px; height: 66px; filter: none; }
body.portal-theme-servicos-destaque .portal-search-area { grid-column: 2; width: 200px; z-index: 60; }
body.portal-theme-servicos-destaque .portal-main-menu { grid-column: 3; gap: 6px; justify-content: flex-end; }
body.portal-theme-servicos-destaque .portal-menu-link { border-radius: 0; font-size: 15px; }
body.portal-theme-servicos-destaque .portal-menu-link::before { content: ''; position: absolute; left: 6px; right: 6px; bottom: 0; height: 2px; background: #7e878e; transform: scaleX(0); transition: transform .2s ease; }
body.portal-theme-servicos-destaque .portal-menu-link:hover::before, body.portal-theme-servicos-destaque .portal-menu-link:focus-visible::before { transform: scaleX(1); }
body.portal-theme-servicos-destaque .portal-dropdown-panel, body.portal-theme-servicos-destaque .portal-submenu { border-top-color: #69737b; border-radius: 0; }
body.portal-theme-servicos-destaque .portal-search-area .portal-expand-search { display: flex; justify-content: flex-end; align-items: center; height: 40px; border: 0; overflow: visible; background: transparent; }
body.portal-theme-servicos-destaque .portal-search-field { width: 0; opacity: 0; visibility: hidden; overflow: hidden; height: 40px; border-radius: 20px 0 0 20px; background: #e9ebec; transition: width .2s ease, opacity .2s ease, visibility .2s ease; }
body.portal-theme-servicos-destaque .portal-search-field input { width: 160px; height: 40px; background: transparent; padding: 0 0 0 16px; font-size: 14px; font-weight: 400; color: #30363b; }
body.portal-theme-servicos-destaque .portal-search-field input::placeholder { font-style: italic; color: #6d757b; }
body.portal-theme-servicos-destaque .portal-search-area .portal-search-toggle { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border: 0; border-radius: 20px; background: transparent; cursor: pointer; }
body.portal-theme-servicos-destaque .is-search-open .portal-search-field { width: 160px; opacity: 1; visibility: visible; }
body.portal-theme-servicos-destaque .is-search-open .portal-search-toggle { border-radius: 0 20px 20px 0; background: #e9ebec; }
body.portal-theme-servicos-destaque .service-area-search::before { display: none; }
body.portal-theme-servicos-destaque .service-area { background: transparent; margin-top: calc(-1 * var(--hero-search-height, 80px)); }
body.portal-theme-servicos-destaque .service-area-without-search { margin-top: 0; }
body .panel.editorial-panel, body .panel.publications-panel { background: #fafbfc; }
body .editorial-panel .block-title, body .publications-panel .block-title { font-size: 26px; line-height: 1.2; }
body .editorial-panel .department-list { gap: 18px 20px; align-items: start; }
body .editorial-panel .dept-card { padding: 0; background: transparent; border: 0; }
body .editorial-panel .dept-card h3 { font-size: 16px; margin: 0 0 4px; color: #303b43; }
body .editorial-panel .dept-card .department-news { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; border-top: 0; border-bottom: 1px solid #e3e7eb; font-size: 14px; line-height: 1.3; }
body .editorial-panel .dept-card .department-news img { flex: 0 0 56px; width: 56px; height: 40px; object-fit: cover; border-radius: 4px; }
body .department-news img[hidden] { display: none; }
body .department-news-copy { min-width: 0; overflow-wrap: anywhere; }
body .department-news time { display: block; margin-top: 3px; font-size: 12px; color: #59636c; }
body .publications-panel .doc-row { display: flex; align-items: flex-start; justify-content: flex-start; gap: 12px; padding: 14px 0; font-size: 14px; line-height: 1.45; }
body .publication-icon { flex: 0 0 34px; width: 34px; color: #526b7c; }
body .publication-icon svg { width: 30px; height: 34px; }
body .publication-copy { min-width: 0; overflow-wrap: anywhere; }
body .publication-copy small { display: block; color: #59636c; font-size: 12px; margin-top: 5px; }
body .publication-more { color: #0754ae; font-size: 14px; font-weight: 700; }
body .department-news:hover, body .publications-panel .doc-row:hover { color: #0754ae; }
body .home-modules { display: flex; flex-wrap: wrap; column-gap: 34px; align-items: stretch; }
body .home-modules > [data-home-module="general"], body .home-modules > [data-home-module="publications"] { display: flex; flex-direction: column; align-self: flex-start; }
body .home-modules > [data-home-module="general"] > .panel,
body .home-modules > [data-home-module="publications"] > .portal-tv { flex: none; }
@media (min-width: 1001px) {
    body .home-modules > [data-home-module="general"] { align-self: flex-start; }
}
.tv-live-badge { display: inline-block; background: #be1823; color: white; font-size: 13px; line-height: 1.4; padding: 4px 8px; vertical-align: middle; text-decoration: none; }
.tv-live-badge[hidden] { display: none; }
.tv-video { position: relative; }
.tv-video > .tv-live-badge { position: absolute; left: 6px; top: 6px; }
body .home-modules > .home-module { margin-top: var(--module-gap, 32px); min-width: 0; flex: 0 0 100%; }
body .home-module-break { flex-basis: 100%; height: 0; }
body .home-modules > [data-module-width="33"] { flex-basis: calc((100% - 68px) / 3); }
body .home-modules > [data-module-width="50"] { flex-basis: calc((100% - 34px) / 2); }
body .home-modules > [data-module-width="67"] { flex-basis: calc((100% - 68px) / 3 * 2 + 34px); }
body .home-modules > [data-home-module="general"][data-module-width="0"] { flex-basis: calc(100% - 554px); }
body .home-modules > [data-home-module="publications"][data-module-width="0"] { flex-basis: 520px; }
body .home-module { container-type: inline-size; }
@container (max-width: 650px) {
    body .home-module .department-list { grid-template-columns: 1fr; }
    body .home-module .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body .home-module .latest-news-grid { grid-template-columns: 1fr; }
    body .home-module .latest-news-grid .latest-card:first-child { grid-column: auto; grid-row: auto; }
}
@media (max-width: 1000px) {
    body .home-modules > .home-module[data-module-width] { flex-basis: 100%; }
}
body .home-modules .service-area { display: block; width: 100%; margin: 0; }
body .home-modules .latest-box { padding: 0; min-height: 0; }
body .home-modules .transparency { padding: 0; }
body .home-modules .transparency > .container { width: 100%; }
body.portal-theme-servicos-destaque .hero-search-anchor { position: relative; z-index: 3; margin-top: calc(-1 * var(--hero-search-height, 80px)); }
body.portal-theme-servicos-destaque .service-area-search { grid-template-columns: 48px minmax(0, 1fr); height: var(--hero-search-height, 80px); min-height: 48px; width: max(min(320px, 100%), var(--hero-search-width, 100%)); margin-inline: auto; background: rgba(233,235,236,var(--hero-search-opacity, 1)); }
body.portal-theme-servicos-destaque .service-area-search .service-search-icon { width: 48px; height: 100%; min-height: 44px; border-radius: 0; background: transparent; color: #737c81; }
body.portal-theme-servicos-destaque .service-area-search input { min-height: 44px; width: 100%; font-size: 22px; font-weight: 400; }
body.portal-theme-servicos-destaque .service-area-search input::placeholder { color: #89949d; opacity: 1; }
body.portal-theme-servicos-destaque .service-search-icon { display: grid; place-items: center; }
body.portal-theme-servicos-destaque .service-search-icon svg { width: 28px; height: 28px; }
body.portal-theme-servicos-destaque .service-area-search input { min-width: 0; font-family: inherit; outline-offset: -2px; }
body.portal-theme-servicos-destaque .service-area-search button { font-size: 24px; font-weight: 400; }
body[class*="portal-theme-"] .portal-footer { background: var(--portal-footer); color: #fff; padding: 38px 0; margin-top: 32px; }
body[class*="portal-theme-"] .portal-footer__grid { width: min(1690px, calc(100% - 80px)); margin: auto; display: grid; grid-template-columns: 1.4fr repeat(5, minmax(0, 1fr)); gap: 26px; }
body[class*="portal-theme-"] .portal-footer strong { display: block; font-size: 15px; margin-bottom: 12px; }
body[class*="portal-theme-"] .portal-footer a { display: block; color: #eee; font-size: 14px; margin: 8px 0; text-decoration: none; }
body[class*="portal-theme-"] .portal-footer p { color: #ddd; font-size: 14px; line-height: 1.55; margin: 0; }
body[class*="portal-theme-"] .portal-results { padding: 36px 0; }
.portal-results-form { display: flex; gap: 10px; margin: 24px 0; }
.portal-results-form input { min-width: 0; flex: 1; padding: 12px; border: 1px solid #b9c1c7; font: inherit; border-radius: 4px; }
.portal-results-form button { background: var(--portal-accent); color: #fff; padding: 12px 18px; border: 0; border-radius: 4px; font: inherit; cursor: pointer; }
.portal-result-group { margin: 32px 0; }
.portal-result-group h2 { font-size: 22px; }
.portal-result-group h2 small { font-size: 16px; font-weight: 400; }
.portal-result { display: block; padding: 18px 0; border-bottom: 1px solid #d7dce0; color: var(--portal-heading); overflow-wrap: anywhere; }
.portal-result:hover strong { text-decoration: underline; }
.portal-result span { display: block; color: #58636b; margin-top: 4px; }
.portal-pagination { display: flex; gap: 18px; align-items: center; margin: 18px 0; flex-wrap: wrap; }
.portal-pagination a { color: var(--portal-accent); text-decoration: underline; }
@media (max-width: 1280px) {
    body.portal-theme-servicos-destaque { --portal-frame: calc(100% - 48px); }
}
@media (max-width: 1100px) and (min-width: 901px) {
    body.portal-theme-servicos-destaque .portal-brand-bar .portal-container { grid-template-columns: 190px 170px minmax(0, 1fr); gap: 12px; }
    body.portal-theme-servicos-destaque .portal-search-area { width: 170px; }
    body.portal-theme-servicos-destaque .is-search-open .portal-search-field { width: 130px; }
    body.portal-theme-servicos-destaque .portal-search-field input { width: 130px; }
}
@media (max-width: 900px) {
    body[class*="portal-theme-"] .portal-container { width: calc(100% - 28px); }
    body.portal-theme-servicos-destaque .portal-container { width: var(--portal-frame); }
    body[class*="portal-theme-"] .portal-head-row { width: 100%; }
    body.portal-theme-servicos-destaque .portal-head-row { position: relative; grid-template-columns: minmax(0, 1fr) 40px auto; grid-template-areas: 'brand search toggle'; align-items: center; }
    body.portal-theme-servicos-destaque .portal-search-area { grid-area: search; position: static; width: 40px; }
    body.portal-theme-servicos-destaque .portal-brand-bar .portal-container { min-height: 0; gap: 0; }
    body.portal-theme-servicos-destaque .portal-brand-logo { width: 210px; height: auto; }
    body.portal-theme-servicos-destaque .portal-search-field { position: absolute; top: calc(100% + 12px); left: -14px; width: calc(100% + 28px); height: 0; border-radius: 0; transition: height .2s ease, opacity .2s ease, visibility .2s ease; }
    body.portal-theme-servicos-destaque .is-search-open .portal-search-field { width: calc(100% + 28px); height: 56px; }
    body.portal-theme-servicos-destaque .portal-search-field input { width: 100%; height: 56px; padding: 0 18px; font-size: 16px; }
    body.portal-theme-servicos-destaque .portal-main-menu { grid-column: auto; }
    body[class*="portal-theme-"] .portal-footer__grid { width: calc(100% - 32px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.portal-inner h1 { font-size: 28px; }
}
@media (max-width: 480px) {
    body[class*="portal-theme-"] .portal-footer__grid { grid-template-columns: 1fr; }
    .portal-results-form { flex-wrap: wrap; }
}
@media (max-width: 760px) {
    body.portal-theme-servicos-destaque { --portal-frame: calc(100% - 28px); }
    body.portal-theme-servicos-destaque .service-area-search { grid-template-columns: 48px minmax(0, 1fr); min-height: 48px; }
    body.portal-theme-servicos-destaque .service-area-search .service-search-icon { width: 48px; height: 100%; }
    body.portal-theme-servicos-destaque .service-area-search input { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    body[class*="portal-theme-"] .portal-search-field, body[class*="portal-theme-"] .portal-menu-link::before { transition: none; }
}
.tv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
.tv-video { display: flex; flex-direction: column; gap: 9px; min-width: 0; color: inherit; text-decoration: none; }
.tv-video img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.tv-video strong { font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.tv-video:hover strong { text-decoration: underline; }
.culture-banners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; padding-bottom: 36px; }
.publications-panel ~ .culture-banners { width: 100%; margin-inline: 0; grid-template-columns: minmax(0, 1fr); gap: 16px; padding-bottom: 0; }
.publications-panel ~ .culture-banners .culture-banner { padding: 20px; gap: 18px; }
.publications-panel ~ .culture-banners .culture-banner img { width: 86px; height: 86px; }
.publications-panel ~ .culture-banners .culture-banner strong { font-size: 21px; }
.culture-banner { --culture-accent: #1351b4; display: flex; align-items: center; gap: 26px; padding: 28px; background: #fff; border: 1px solid #dce3e8; border-top: 4px solid var(--culture-accent); border-radius: 8px; color: #242424; text-decoration: none; min-width: 0; box-shadow: 0 4px 16px rgba(25, 55, 75, .05); transition: border-color .2s, box-shadow .2s, transform .2s; }
.culture-banner-paulo-gustavo { --culture-accent: #167044; }
.culture-banner img { width: 120px; height: 120px; object-fit: contain; flex-shrink: 0; }
.culture-banner-content { min-width: 0; }
.culture-banner-label { display: block; margin-bottom: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--culture-accent); letter-spacing: 0; }
.culture-banner strong { display: block; font-size: 24px; line-height: 1.25; overflow-wrap: anywhere; }
.culture-banner small { display: block; margin-top: 8px; font-size: 14px; line-height: 1.5; color: #586571; }
.culture-banner-access { display: flex; align-items: center; gap: 18px; margin-top: 18px; color: var(--culture-accent); font-size: 14px; font-weight: 700; }
.culture-banner-access > span { font-size: 24px; line-height: 1; transition: transform .2s; }
.culture-banner:hover { border-color: var(--culture-accent); box-shadow: 0 8px 24px rgba(25, 55, 75, .12); transform: translateY(-2px); }
.culture-banner:hover .culture-banner-access > span { transform: translateX(4px); }
.culture-banner:focus-visible { outline: 3px solid var(--culture-accent); outline-offset: 4px; }
@media (min-width: 701px) and (max-width: 1050px) {
    .culture-banner { padding: 20px; gap: 16px; }
    .culture-banner img { width: 86px; height: 86px; }
    .culture-banner strong { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
    .culture-banner, .culture-banner-access > span { transition: none; }
    .culture-banner:hover, .culture-banner:hover .culture-banner-access > span { transform: none; }
}
.culture-archive { padding-block: 32px 50px; }
.culture-archive details { margin: 20px 0; }
.culture-archive summary { font-size: 20px; font-weight: bold; cursor: pointer; }
.culture-file { display: block; padding: 14px 0; border-bottom: 1px solid #ddd; overflow-wrap: anywhere; color: #164b7b; }
@media (max-width: 700px) {
    .culture-banners { grid-template-columns: 1fr; gap: 16px; }
    .culture-banner { gap: 18px; padding: 20px 16px; }
    .culture-banner img { width: 86px; height: 86px; }
    .culture-banner strong { font-size: 21px; }
}
