.portal-card,
.news-card,
.news-card-spacious,
.news-editorial-card,
.noticia-related-card,
.service-page-card,
.licitacoes-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: var(--portal-radius-sm);
    overflow: hidden;
    background: var(--portal-color-surface);
    box-shadow: var(--portal-shadow-card);
    transition: transform var(--portal-transition), box-shadow var(--portal-transition), border-color var(--portal-transition), background-color var(--portal-transition), color var(--portal-transition);
}

.portal-card:hover,
.portal-card:focus-within,
.news-card:hover,
.news-card:focus-within,
.news-card-spacious:hover,
.news-card-spacious:focus-within,
.news-editorial-card:hover,
.news-editorial-card:focus-within,
.noticia-related-card:hover,
.noticia-related-card:focus-within,
.service-page-card:hover,
.service-page-card:focus-within,
.licitacoes-card:hover,
.licitacoes-card:focus-within {
    transform: translateY(-4px);
    box-shadow: var(--portal-shadow-card-hover);
}

.service-page-card,
.licitacoes-card {
    border: 1px solid var(--portal-color-border);
}

.noticia-related-card {
    margin-bottom: 20px;
}

.portal-panel,
.services-filter-shell,
.service-detail-card,
.search-result-card,
.search-empty-state,
.licitacoes-filter-box,
.licitacoes-detail-card,
.licitacoes-sidebar-card,
.licitacoes-stat-card,
.licitacoes-attachment-card,
.content-area-body,
.content-area-slot,
.content-area-feature-card,
.content-area-document-card,
.content-area-link-card,
.content-area-gallery-card,
.secretaria-hero,
.secretaria-contact-featured,
.secretaria-contact-card,
.secretaria-feature-card,
.secretaria-accordion,
.sitemap-filter-card,
.sitemap-stat-card,
.sitemap-card,
.sitemap-legacy-node,
.form-card,
.form-sidebar-card,
.form-choice-group,
.noticia-meta-card,
.noticia-category-box,
.event-detail-card,
.event-session-card,
.event-place-card,
.event-place-map,
.event-place-map-link,
.events-search,
.events-featured-card,
.services-spotlight,
.home-service-card,
.home-media-panel,
.home-tv-list {
    border: 1px solid var(--portal-color-border);
    border-radius: var(--portal-radius-md);
    background: var(--portal-color-surface);
    box-shadow: var(--portal-shadow-panel);
}

.portal-panel-flat,
.search-result-card,
.search-empty-state {
    box-shadow: none;
}

.news-editorial-card {
    border: 1px solid var(--color-card-border);
}

.news-card-image,
.news-editorial-card-media {
    display: block;
    position: relative;
    overflow: hidden;
}

.news-card-image img,
.news-editorial-card-media img,
.noticia-related-card img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}

.news-card-body,
.news-editorial-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: .95rem .95rem 1.05rem;
}

.news-card-title,
.news-editorial-card-title,
.noticia-related-title {
    margin: .4rem 0 0;
    font-family: var(--portal-font-heading);
    font-size: var(--font-title-card);
    font-weight: 700;
    line-height: var(--font-line-title);
    color: var(--color-text-900);
}

.news-editorial-card-title {
    margin: 0 0 .8rem;
}

.noticia-related-title {
    color: var(--color-text-850);
    font-size: var(--font-title-md);
    -webkit-line-clamp: 2;
}

.news-card-title a,
.news-editorial-card-title a,
.noticia-related-title a {
    display: -webkit-box;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.news-card-title a:visited,
.news-editorial-card-title a:visited,
.noticia-related-title a:visited {
    color: inherit;
    text-decoration: none;
}

.news-card-title a:hover,
.news-editorial-card-title a:hover,
.noticia-related-title a:hover {
    text-decoration: none;
    color: var(--portal-color-brand);
}

.news-card-title a:focus-visible,
.news-editorial-card-title a:focus-visible,
.noticia-related-title a:focus-visible {
    text-decoration: none;
    color: var(--portal-color-brand);
}

.news-editorial-card-badge,
.news-category-badge,
.news-active-chip,
.content-page-document-chip,
.services-filter-badge,
.licitacoes-chip,
.events-empty-badge,
.events-empty-date-badge,
.portal-chip,
.services-subsection-chip,
.services-type-check,
.events-category-pill,
.licitacoes-badge {
    display: inline-flex;
    align-items: center;
    border-radius: var(--portal-radius-pill);
    font-weight: 700;
    line-height: 1.2;
}

.news-editorial-card-badge,
.news-category-badge {
    position: absolute;
    background: var(--color-brand-400);
    color: var(--color-white);
    font-size: 11px;
    letter-spacing: .02em;
    padding: .27rem .6rem;
    text-transform: uppercase;
}

.news-editorial-card-badge {
    top: 12px;
    right: 12px;
}

.news-category-badge {
    top: 15px;
    left: 15px;
    font-size: 12px;
    padding: .32rem .68rem;
}

.news-active-chip,
.content-page-document-chip,
.services-filter-badge,
.licitacoes-chip,
.events-empty-badge,
.events-empty-date-badge,
.portal-chip,
.services-subsection-chip,
.services-type-check,
.events-category-pill,
.licitacoes-badge {
    background: var(--portal-color-surface-tint);
    color: var(--color-success-text);
    border: 1px solid var(--portal-color-border-strong);
    font-size: 13px;
    padding: .44rem .78rem;
}

.services-subsection-chip,
.services-type-check,
.events-category-pill {
    gap: .65rem;
    background: var(--portal-color-surface);
    color: var(--color-text-820);
    border-color: var(--portal-color-border);
    text-decoration: none;
    transition: background-color var(--portal-transition), border-color var(--portal-transition), color var(--portal-transition), transform var(--portal-transition), box-shadow var(--portal-transition);
}

.services-subsection-chip:hover,
.services-subsection-chip.is-active,
.services-type-check:hover,
.services-type-check.is-active,
.events-category-pill:hover,
.events-category-pill:focus,
.events-category-pill.is-active {
    border-color: var(--portal-color-brand);
    background: var(--portal-color-brand-soft);
    color: var(--portal-color-brand);
    text-decoration: none;
}

.services-subsection-chip.is-active {
    background: var(--portal-color-brand);
    color: var(--color-white);
}

.licitacoes-badge {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.content-page-document-chip {
    width: fit-content;
    padding: .2rem .5rem;
    color: var(--portal-color-brand);
    background: var(--portal-color-brand-soft);
    font-size: .72rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.news-pagination,
.licitacoes-pagination,
.events-pagination,
.portal-pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
}

.news-pagination-meta,
.portal-pagination-meta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: .45rem .85rem;
    border-radius: var(--portal-radius-pill);
    background: var(--portal-color-surface-tint);
    border: 1px solid var(--portal-color-border-strong);
    color: var(--portal-color-brand);
    font-size: .95rem;
    font-weight: 700;
}

.news-pagination .pagination,
.licitacoes-pagination .pagination,
.events-pagination .pagination {
    gap: .4rem;
}

.news-pagination .page-link,
.licitacoes-pagination .page-link,
.events-pagination .page-link,
.portal-pagination .page-link {
    min-width: 46px;
    min-height: 46px;
    padding: .6rem .95rem;
    border-radius: var(--portal-radius-md);
    border: 1px solid var(--color-control-border);
    background: var(--portal-color-surface);
    color: var(--portal-color-brand);
    font-weight: 700;
    box-shadow: var(--portal-shadow-card);
    transition: color var(--portal-transition), background-color var(--portal-transition), border-color var(--portal-transition), transform var(--portal-transition), box-shadow var(--portal-transition);
}

.news-pagination .page-link:hover,
.licitacoes-pagination .page-link:hover,
.events-pagination .page-link:hover,
.portal-pagination .page-link:hover {
    background: var(--portal-color-brand);
    border-color: var(--portal-color-brand);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 111, 47, .18);
}

.news-pagination .page-link:focus-visible,
.licitacoes-pagination .page-link:focus-visible,
.events-pagination .page-link:focus-visible,
.portal-pagination .page-link:focus-visible {
    outline: 2px solid var(--portal-color-focus);
    outline-offset: 2px;
    box-shadow: var(--portal-shadow-ring);
    transform: translateY(-1px);
}

.news-pagination .page-item.active .page-link,
.licitacoes-pagination .page-item.active .page-link,
.events-pagination .page-item.active .page-link,
.portal-pagination .page-item.active .page-link {
    background: var(--portal-color-brand);
    border-color: var(--portal-color-brand);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(15, 111, 47, .24);
}

.news-pagination .page-item.disabled .page-link,
.licitacoes-pagination .page-item.disabled .page-link,
.events-pagination .page-item.disabled .page-link,
.portal-pagination .page-item.disabled .page-link {
    background: var(--color-surface-75);
    border-color: var(--color-border-100);
    color: var(--color-text-350);
    box-shadow: none;
    transform: none;
}

.noticia-related-body {
    padding: .75rem .85rem;
}

.noticia-related-date {
    color: var(--color-text-580);
    font-size: 12px;
    margin-bottom: .35rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
}

.rich-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--portal-radius-sm);
}

.portal-action,
.content-link-btn,
.secretaria-action,
.btn-news-search,
.btn-search-submit,
.content-page .content-page-body a.button.button-small.button-rounded,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill1,
.events-page .event-action-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: var(--portal-radius-md) !important;
    border: 1px solid var(--portal-color-brand) !important;
    background: linear-gradient(180deg, var(--color-brand-600) 0%, var(--portal-color-brand) 100%) !important;
    color: var(--color-white) !important;
    font-weight: 700;
    text-decoration: none !important;
    box-shadow: 0 5px 14px rgba(15, 111, 47, .2);
    transition: transform var(--portal-transition), box-shadow var(--portal-transition), background var(--portal-transition), color var(--portal-transition), border-color var(--portal-transition);
}

.portal-action:hover,
.portal-action:focus-visible,
.content-link-btn:hover,
.content-link-btn:focus-visible,
.secretaria-action:hover,
.secretaria-action:focus-visible,
.btn-news-search:hover,
.btn-news-search:focus-visible,
.btn-search-submit:hover,
.btn-search-submit:focus-visible,
.content-page .content-page-body a.button.button-small.button-rounded:hover,
.content-page .content-page-body a.button.button-small.button-rounded:focus-visible,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill:hover,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill:focus-visible,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill1:hover,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill1:focus-visible,
.events-page .event-action-primary:hover,
.events-page .event-action-primary:focus-visible {
    background: linear-gradient(180deg, var(--color-brand-500) 0%, var(--portal-color-brand-hover) 100%) !important;
    color: var(--color-white) !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 111, 47, .26);
}

.portal-action:active,
.content-link-btn:active,
.secretaria-action:active,
.btn-news-search:active,
.btn-search-submit:active,
.content-page .content-page-body a.button.button-small.button-rounded:active,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill:active,
.content-page .content-page-body a.btn.btn-sm.btn-outline-primary.rounded-pill1:active,
.events-page .event-action-primary:active {
    transform: translateY(0);
    box-shadow: 0 4px 10px rgba(15, 111, 47, .2);
}

.portal-action:disabled,
.btn-news-search:disabled,
.btn-search-submit:disabled {
    background: #7e8b82 !important;
    border-color: #7e8b82 !important;
    color: rgba(255, 255, 255, .85) !important;
    cursor: not-allowed;
    opacity: .95;
    transform: none;
    box-shadow: none;
}

.portal-action-soft,
.secretaria-action-light,
.events-page .button.button-small.button-rounded,
.events-page .btn.btn-sm.dropdown-toggle,
.events-page .event-action-secondary {
    background: var(--portal-color-surface) !important;
    color: var(--portal-color-brand) !important;
    border-color: rgba(15, 111, 47, .18) !important;
    box-shadow: none;
}

.portal-action-soft:hover,
.portal-action-soft:focus-visible,
.secretaria-action-light:hover,
.secretaria-action-light:focus-visible,
.events-page .button.button-small.button-rounded:hover,
.events-page .button.button-small.button-rounded:focus-visible,
.events-page .btn.btn-sm.dropdown-toggle:hover,
.events-page .btn.btn-sm.dropdown-toggle:focus-visible,
.events-page .event-action-secondary:hover,
.events-page .event-action-secondary:focus-visible {
    color: var(--portal-color-brand) !important;
    border-color: rgba(15, 111, 47, .3) !important;
    background: var(--portal-color-surface) !important;
    box-shadow: 0 10px 22px rgba(15, 111, 47, .12);
}

.portal-doc-card,
.content-page-document-card {
    display: grid;
    grid-template-columns: 42px 1fr auto;
    align-items: center;
    gap: .8rem;
    padding: .8rem .9rem;
    border: 1px solid var(--color-border-300);
    border-radius: var(--portal-radius-lg);
    background: linear-gradient(180deg, var(--portal-color-surface) 0%, var(--portal-color-surface-soft) 100%);
    color: inherit;
    text-decoration: none;
    transition: transform var(--portal-transition), border-color var(--portal-transition), box-shadow var(--portal-transition);
}

.portal-doc-card:hover,
.portal-doc-card:focus-visible,
.content-page-document-card:hover,
.content-page-document-card:focus-visible {
    transform: translateY(-1px);
    border-color: var(--color-border-450);
    box-shadow: var(--portal-shadow-ring), 0 8px 22px rgba(16, 38, 26, .08);
}

.content-page-document-icon,
.portal-doc-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--portal-radius-md);
    background: var(--color-surface-200);
    color: var(--portal-color-brand);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.content-page-document-copy,
.portal-doc-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .16rem;
}

.content-page-document-copy strong,
.portal-doc-copy strong {
    color: var(--portal-color-text);
    font-size: .95rem;
    line-height: 1.28;
}

.content-page-document-copy small,
.portal-doc-copy small {
    color: var(--color-text-650);
    line-height: 1.38;
}

.content-page-document-arrow,
.portal-doc-arrow {
    color: var(--color-text-450);
    font-size: .8rem;
}

.portal-service-item,
.content-service-item {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    align-items: center;
    gap: .65rem;
    padding: .72rem .78rem;
    border: 1px solid var(--color-border-400);
    border-radius: var(--portal-radius-md);
    background: var(--portal-color-surface);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--portal-transition), box-shadow var(--portal-transition), transform var(--portal-transition);
}

.portal-service-item:visited,
.content-service-item:visited {
    text-decoration: none;
}

.portal-service-item:hover,
.portal-service-item:focus-visible,
.content-service-item:hover,
.content-service-item:focus-visible {
    border-color: var(--color-border-500);
    box-shadow: var(--portal-shadow-ring), 0 5px 12px rgba(0, 0, 0, .09);
    transform: translateY(-1px);
}

.portal-service-icon,
.content-service-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--portal-radius-sm);
    background: var(--color-surface-180);
    color: var(--portal-color-brand);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.portal-service-copy,
.content-service-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.portal-service-copy strong,
.content-service-copy strong {
    color: var(--portal-color-text);
    font-size: .92rem;
    line-height: 1.25;
}

.portal-service-copy small,
.content-service-copy small {
    color: var(--color-text-620);
    font-size: .78rem;
    line-height: 1.35;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.portal-service-arrow,
.content-service-arrow {
    color: var(--color-text-450);
    font-size: 12px;
}

.portal-service-item:hover .portal-service-arrow,
.content-service-item:hover .content-service-arrow {
    color: var(--portal-color-brand);
}

.portal-sidebar-card,
.content-sidebar-card,
.news-sidebar-card,
.news-category-box,
.noticia-category-box {
    border: 1px solid var(--color-border-275);
    border-radius: var(--portal-radius-lg);
    background: var(--portal-color-surface);
    box-shadow: 0 6px 14px rgba(0, 0, 0, .05);
    overflow: hidden;
}

.content-sidebar-card {
    padding: 0;
    margin-bottom: 1rem;
}

.news-sidebar-card,
.news-category-box,
.noticia-category-box {
    padding: 1rem 1rem 1.05rem;
}

.portal-empty,
.home-media-empty {
    min-height: 100%;
    padding: 1.4rem;
    border-radius: var(--portal-radius-xl);
    border: 1px dashed var(--color-border-300);
    background: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(248, 250, 247, .9));
    color: var(--color-text-650);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.public-admin-edit-link {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 260;
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    max-width: calc(100vw - 2.5rem);
    min-height: 36px;
    padding: .46rem .72rem;
    border: 1px solid rgba(40, 167, 69, .24);
    border-radius: 10px;
    background: var(--color-surface-0);
    color: var(--color-brand-700);
    font-size: .86rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(16, 24, 40, .06);
}

.public-admin-edit-link:hover,
.public-admin-edit-link:focus-visible {
    color: var(--color-brand-900);
    border-color: rgba(40, 167, 69, .38);
    background: var(--color-surface-100);
    text-decoration: none;
}

.public-admin-edit-link:focus-visible {
    outline: 3px solid rgba(15, 111, 47, .18);
    outline-offset: 2px;
}

@media (max-width: 575.98px) {
    .public-admin-edit-link {
        right: .85rem;
        bottom: .85rem;
        max-width: calc(100vw - 1.7rem);
    }
}
