/**
 * concursos.css · Páginas de concursos (Inscricoes Abertas, Previstos, Notícias)
 * Paleta DS v2 · Plus Jakarta Sans + Playfair Display
 */

:root {
    --crc-brand-900: #0B1F3A;
    --crc-brand-700: #163A63;
    --crc-brand-600: #1F4E79;
    --crc-brand-100: #EAF1F8;
    --crc-gold-500: #D4A73F;
    --crc-gold-600: #BC9231;
    --crc-gold-100: #FBF4E2;
    --crc-gold-050: #F3E8C8;
    --crc-green-600: #5F8F6B;
    --crc-green-700: #4E7859;
    --crc-green-100: #E7F1EA;
    --crc-bg: #F8F6F1;
    --crc-surface: #FCFBF8;
    --crc-border: #D9DEE8;
    --crc-text-strong: #162033;
    --crc-text-body: #5B6473;
    --crc-white: #FFFFFF;
    --crc-red: #DC2626;
    --crc-red-dark: #B91C1C;
}

/* Reset */
.cr-concursos-page,
.cr-concursos-page * {
    box-sizing: border-box;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
}

.cr-concursos-page {
    background: var(--crc-bg);
    min-height: 60vh;
    color: var(--crc-text-strong);
}

/* HERO */
.cr-concursos-hero {
    background: linear-gradient(135deg, var(--crc-brand-900) 0%, var(--crc-brand-700) 50%, var(--crc-brand-600) 100%);
    color: var(--crc-white);
    padding: 56px 24px 64px;
    position: relative;
    overflow: hidden;
}

.cr-concursos-hero::before {
    content: "";
    position: absolute;
    top: -50%; right: -10%;
    width: 60%; height: 200%;
    background: radial-gradient(circle, rgba(212, 167, 63, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.cr-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.cr-hero-badge {
    display: inline-block;
    background: var(--crc-gold-500);
    color: var(--crc-brand-900);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    padding: 6px 14px;
    border-radius: 99px;
    margin-bottom: 16px;
}

.cr-hero-title {
    font-size: clamp(28px, 5vw, 48px);
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 12px;
    color: var(--crc-white);
}

.cr-hero-title-italic {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    color: var(--crc-gold-500);
    font-weight: 700;
}

.cr-hero-subtitle {
    color: rgba(255, 255, 255, 0.85);
    font-size: 17px;
    line-height: 1.6;
    max-width: 720px;
    margin: 0 0 28px;
}

.cr-hero-stats {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}

.cr-hero-stat {
    display: flex;
    flex-direction: column;
}

.cr-hero-stat-num {
    font-size: 36px;
    font-weight: 800;
    color: var(--crc-gold-500);
    line-height: 1;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
}

.cr-hero-stat-label {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.7);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 4px;
}

.cr-hero-search {
    display: flex;
    gap: 8px;
    max-width: 720px;
    margin-top: 16px;
}

.cr-hero-search-input {
    flex: 1;
    background: var(--crc-white);
    border: 0;
    padding: 14px 20px;
    border-radius: 99px;
    font-size: 16px;
    color: var(--crc-text-strong);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.cr-hero-search-input:focus {
    outline: 2px solid var(--crc-gold-500);
    outline-offset: 2px;
}

.cr-hero-search-btn {
    background: var(--crc-gold-500);
    color: var(--crc-brand-900);
    border: 0;
    padding: 14px 28px;
    border-radius: 99px;
    font-weight: 700;
    cursor: pointer;
    font-size: 15px;
    transition: background 0.18s;
}

.cr-hero-search-btn:hover { background: var(--crc-gold-600); }

/* Quick filters bar */
.cr-quick-filters {
    background: var(--crc-surface);
    border-bottom: 1px solid var(--crc-border);
    padding: 14px 24px;
    position: sticky;
    top: 0;
    z-index: 10;
}

.cr-quick-filters-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.cr-qf-label {
    font-size: 13px;
    color: var(--crc-text-body);
    font-weight: 600;
}

.cr-qf-pill {
    background: var(--crc-white);
    border: 1px solid var(--crc-border);
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 13px;
    color: var(--crc-text-body);
    text-decoration: none;
    transition: all 0.18s;
    font-weight: 500;
}

.cr-qf-pill:hover {
    border-color: var(--crc-brand-600);
    color: var(--crc-brand-700);
}

.cr-qf-pill.active {
    background: var(--crc-brand-700);
    color: var(--crc-white);
    border-color: var(--crc-brand-700);
}

.cr-qf-sep {
    color: var(--crc-border);
    margin: 0 4px;
}

/* Layout principal */
.cr-layout {
    max-width: 1200px;
    margin: 24px auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 24px;
}

@media (max-width: 900px) {
    .cr-layout { grid-template-columns: 1fr; }
    .cr-filters-sidebar { order: 2; }
}

/* Sidebar de filtros */
.cr-filters-sidebar {
    position: sticky;
    top: 80px;
    align-self: start;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
}

.cr-filter-section {
    background: var(--crc-white);
    border: 1px solid var(--crc-border);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
}

.cr-filter-title {
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 12px;
    color: var(--crc-brand-900);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cr-filter-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 320px;
    overflow-y: auto;
}

.cr-filter-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    color: var(--crc-text-body);
    text-decoration: none;
    font-size: 14px;
    transition: all 0.18s;
}

.cr-filter-item:hover { background: var(--crc-bg); color: var(--crc-text-strong); }
.cr-filter-item.active { background: var(--crc-brand-700); color: var(--crc-white); }

.cr-uf-code {
    font-weight: 700;
    background: var(--crc-bg);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    min-width: 28px;
    text-align: center;
}

.cr-filter-item.active .cr-uf-code { background: rgba(255, 255, 255, 0.2); }

.cr-uf-name { flex: 1; }
.cr-uf-count {
    background: var(--crc-bg);
    padding: 2px 8px;
    border-radius: 99px;
    font-size: 11px;
    color: var(--crc-text-body);
    font-weight: 600;
}

.cr-filter-item.active .cr-uf-count { background: rgba(255, 255, 255, 0.2); color: var(--crc-white); }

.cr-clear-filters {
    display: block;
    text-align: center;
    background: var(--crc-bg);
    border: 1px solid var(--crc-border);
    color: var(--crc-red);
    padding: 10px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}

.cr-clear-filters:hover { background: var(--crc-white); border-color: var(--crc-red); }

/* Content + Cards */
.cr-content { min-height: 400px; }

.cr-results-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--crc-border);
}

.cr-results-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--crc-brand-900);
    margin: 0;
}

.cr-results-count {
    color: var(--crc-text-body);
    font-size: 14px;
    font-weight: 500;
}

.cr-cards-grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Card individual */
.cr-concurso-card {
    background: var(--crc-white);
    border: 1px solid var(--crc-border);
    border-radius: 12px;
    padding: 18px;
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 18px;
    transition: all 0.2s;
    position: relative;
}

.cr-concurso-card:hover {
    border-color: var(--crc-brand-600);
    box-shadow: 0 6px 20px rgba(11, 31, 58, 0.08);
    transform: translateY(-1px);
}

.cr-concurso-card.has-curso {
    border-left: 4px solid var(--crc-gold-500);
}

.cr-card-img-wrap {
    width: 80px;
    height: 80px;
    background: var(--crc-bg);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cr-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
}

.cr-card-body { min-width: 0; }

.cr-card-meta-top {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
    align-items: center;
    font-size: 11px;
}

.cr-card-sigla {
    background: var(--crc-brand-100);
    color: var(--crc-brand-700);
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.cr-card-uf {
    background: var(--crc-bg);
    color: var(--crc-text-body);
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 600;
}

.cr-card-status {
    padding: 3px 10px;
    border-radius: 99px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cr-bd-novo  { background: var(--crc-green-100); color: var(--crc-green-700); }
.cr-bd-retif { background: var(--crc-gold-100); color: var(--crc-gold-600); }
.cr-bd-warn  { background: var(--crc-gold-100); color: #92400E; }
.cr-bd-end   { background: #F1F5F9; color: var(--crc-text-body); }

.cr-card-urg {
    padding: 3px 10px;
    border-radius: 99px;
    font-weight: 700;
}

.cr-urg-hoje { background: var(--crc-red); color: var(--crc-white); animation: crc-pulse 2s ease-in-out infinite; }
.cr-urg-warn { background: var(--crc-gold-500); color: var(--crc-brand-900); }
.cr-urg-ok { background: var(--crc-green-100); color: var(--crc-green-700); }
.cr-urg-end { background: #F1F5F9; color: var(--crc-text-body); }

@keyframes crc-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.cr-card-title {
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 10px;
    line-height: 1.3;
}

.cr-card-title a {
    color: var(--crc-brand-900);
    text-decoration: none;
}

.cr-card-title a:hover { color: var(--crc-brand-700); }

.cr-card-info {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--crc-text-body);
}

.cr-info-item strong { color: var(--crc-brand-900); font-weight: 700; }

.cr-card-prazo {
    font-size: 13px;
    color: var(--crc-text-body);
    padding: 8px 0;
    border-top: 1px dashed var(--crc-border);
    margin-top: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.cr-card-actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}

.cr-btn, .cr-btn-mini {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.18s;
    border: 1px solid transparent;
}

.cr-btn-gold {
    background: var(--crc-gold-500);
    color: var(--crc-brand-900);
    box-shadow: 0 2px 6px rgba(212, 167, 63, 0.3);
}

.cr-btn-gold:hover { background: var(--crc-gold-600); transform: translateY(-1px); }

.cr-btn-outline {
    background: var(--crc-white);
    color: var(--crc-brand-700);
    border-color: var(--crc-border);
}

.cr-btn-outline:hover {
    border-color: var(--crc-brand-600);
    background: var(--crc-bg);
}

.cr-btn-mini {
    padding: 6px 10px;
    font-size: 12px;
    background: var(--crc-bg);
    color: var(--crc-text-body);
    border-color: var(--crc-border);
}

.cr-btn-pdf:hover { color: var(--crc-red); border-color: var(--crc-red); background: var(--crc-white); }

/* Pagination */
.cr-pagination {
    display: flex;
    gap: 8px;
    justify-content: center;
    align-items: center;
    margin-top: 32px;
    padding: 24px 0;
}

.cr-pag-link, .cr-pag-prev, .cr-pag-next {
    background: var(--crc-white);
    border: 1px solid var(--crc-border);
    padding: 10px 16px;
    border-radius: 8px;
    color: var(--crc-text-body);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.18s;
}

.cr-pag-link:hover, .cr-pag-prev:hover, .cr-pag-next:hover {
    border-color: var(--crc-brand-600);
    color: var(--crc-brand-700);
}

.cr-pag-current {
    background: var(--crc-brand-700);
    color: var(--crc-white);
    padding: 10px 16px;
    border-radius: 8px;
    font-weight: 700;
}

.cr-no-results {
    background: var(--crc-white);
    border: 2px dashed var(--crc-border);
    border-radius: 12px;
    padding: 60px 24px;
    text-align: center;
}

.cr-no-results p {
    color: var(--crc-text-body);
    font-size: 16px;
    margin-bottom: 20px;
}

/* MOBILE */
@media (max-width: 600px) {
    .cr-concursos-hero { padding: 36px 16px 40px; }
    .cr-hero-stats { gap: 20px; }
    .cr-hero-stat-num { font-size: 28px; }
    .cr-hero-search { flex-direction: column; }
    .cr-hero-search-btn { width: 100%; }

    .cr-layout { padding: 0 16px; gap: 16px; }
    .cr-filters-sidebar { position: static; max-height: none; }

    .cr-concurso-card {
        grid-template-columns: 56px 1fr;
        gap: 12px;
        padding: 14px;
    }
    .cr-card-img-wrap { width: 56px; height: 56px; }
    .cr-card-title { font-size: 15px; }
    .cr-card-info { gap: 10px; font-size: 12px; }
    .cr-card-actions { flex-direction: column; }
    .cr-card-actions .cr-btn { width: 100%; justify-content: center; }
    .cr-card-actions .cr-btn-mini { width: 100%; justify-content: center; }
}

/* ============================
   NOTICIAS · Feed de notícias estilo blog
   ============================ */
.cr-news-layout {
    max-width: 1200px;
    margin: 32px auto;
    padding: 0 24px;
}

.cr-news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.cr-news-card {
    background: var(--crc-white);
    border: 1px solid var(--crc-border);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
}

.cr-news-card:hover {
    border-color: var(--crc-brand-600);
    box-shadow: 0 8px 24px rgba(11, 31, 58, 0.08);
    transform: translateY(-2px);
}

.cr-news-card.is-hero {
    grid-column: span 3;
    flex-direction: row;
    border-color: var(--crc-gold-500);
    border-width: 2px;
}

.cr-news-img {
    position: relative;
    display: block;
    aspect-ratio: 16/9;
    background: var(--crc-bg);
    overflow: hidden;
}

.cr-news-card.is-hero .cr-news-img {
    width: 50%;
    flex-shrink: 0;
    aspect-ratio: auto;
    min-height: 280px;
}

.cr-news-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.cr-news-card:hover .cr-news-img img { transform: scale(1.05); }

.cr-news-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(11, 31, 58, 0.9);
    color: var(--crc-white);
    padding: 4px 12px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cr-news-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.cr-news-meta {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 11px;
}

.cr-news-sigla {
    background: var(--crc-brand-100);
    color: var(--crc-brand-700);
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 700;
}

.cr-news-uf {
    background: var(--crc-bg);
    color: var(--crc-text-body);
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 600;
}

.cr-news-title {
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 12px;
    line-height: 1.35;
    flex: 1;
}

.cr-news-card.is-hero .cr-news-title {
    font-size: 24px;
    font-family: 'Playfair Display', Georgia, serif;
    line-height: 1.25;
}

.cr-news-title a {
    color: var(--crc-brand-900);
    text-decoration: none;
}

.cr-news-title a:hover { color: var(--crc-brand-700); }

.cr-news-excerpt {
    color: var(--crc-text-body);
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 16px;
}

.cr-news-readmore {
    color: var(--crc-gold-600);
    font-weight: 700;
    font-size: 13px;
    text-decoration: none;
    margin-top: auto;
}

.cr-news-readmore:hover { color: var(--crc-gold-500); }

/* Mobile news */
@media (max-width: 900px) {
    .cr-news-grid { grid-template-columns: repeat(2, 1fr); }
    .cr-news-card.is-hero { grid-column: span 2; flex-direction: column; }
    .cr-news-card.is-hero .cr-news-img { width: 100%; min-height: auto; aspect-ratio: 16/9; }
}

@media (max-width: 600px) {
    .cr-news-grid { grid-template-columns: 1fr; }
    .cr-news-card.is-hero { grid-column: span 1; }
    .cr-news-card.is-hero .cr-news-title { font-size: 20px; }
}


/* ==========================================
   UF Pills (#5) — barra horizontal compacta
   ========================================== */
.cr-quick-filters-uf {
    border-top: 1px solid var(--cr-border, #E5E7EB);
    padding-top: 12px;
    margin-top: 0;
}

.cr-qf-pill-uf {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 6px 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em;
    font-size: 13px !important;
}

.cr-qf-pill-uf .cr-qf-pill-count {
    display: inline-block;
    background: rgba(0, 0, 0, 0.06);
    color: inherit;
    font-weight: 600;
    font-size: 11px;
    padding: 1px 7px;
    border-radius: 100px;
    line-height: 1.3;
    letter-spacing: 0;
}

.cr-qf-pill-uf.active .cr-qf-pill-count {
    background: rgba(255, 255, 255, 0.25);
    color: white;
}

.cr-qf-more {
    font-size: 12px;
    color: var(--cr-text-muted, #6B7280);
    font-style: italic;
    padding: 0 8px;
    align-self: center;
}

/* Mobile: scroll horizontal */
@media (max-width: 768px) {
    .cr-quick-filters-uf .cr-quick-filters-inner {
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
        padding-bottom: 4px;
    }
    .cr-quick-filters-uf .cr-quick-filters-inner::-webkit-scrollbar { display: none; }
    .cr-qf-pill-uf { flex-shrink: 0; }
    .cr-qf-more { display: none; }
}


/* ==========================================
   Cargos Populares (#3)
   ========================================== */
.cr-filter-cargos .cr-filter-cargo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
}

.cr-filter-cargos .cr-cargo-name {
    flex: 1;
    font-size: 13px;
    line-height: 1.3;
    color: var(--cr-text, #1a1a1a);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.cr-filter-cargos .cr-filter-cargo:hover .cr-cargo-name {
    color: var(--cr-blue-cta, #1D4ED8);
}

.cr-filter-cargos .cr-filter-cargo.active {
    background: var(--cr-blue-cta, #1D4ED8);
    color: white;
}

.cr-filter-cargos .cr-filter-cargo.active .cr-cargo-name {
    color: white;
}

.cr-filter-cargos .cr-filter-cargo.active .cr-uf-count {
    background: rgba(255, 255, 255, 0.25);
    color: white;
}

/* ==========================================
   Sidebar Destaques (#4)
   ========================================== */

/* Layout 3 colunas: filtros (280px) + conteúdo (1fr) + destaques (260px) */
.cr-layout-com-destaques {
    display: grid;
    grid-template-columns: 280px 1fr 260px;
    gap: 24px;
}

@media (max-width: 1280px) {
    .cr-layout-com-destaques {
        grid-template-columns: 280px 1fr;
    }
    .cr-destaques-sidebar { display: none; }
}

@media (max-width: 1023px) {
    .cr-layout-com-destaques {
        grid-template-columns: 1fr;
    }
    .cr-destaques-sidebar {
        display: block;
        order: 3;
    }
}

/* Sidebar de destaques */
.cr-destaques-sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 100px;
    align-self: start;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    padding-right: 4px;
}

.cr-destaques-sidebar::-webkit-scrollbar { width: 4px; }
.cr-destaques-sidebar::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.1); border-radius: 2px; }

@media (max-width: 1023px) {
    .cr-destaques-sidebar {
        position: static;
        max-height: none;
        overflow-y: visible;
    }
}

/* Cards */
.cr-destaque-card {
    background: #fff;
    border: 1px solid var(--cr-border, #E5E7EB);
    border-radius: 10px;
    padding: 14px;
}

.cr-destaque-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--cr-text, #1a1a1a);
    margin: 0 0 12px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--cr-border, #E5E7EB);
    letter-spacing: -0.01em;
}

.cr-destaque-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cr-destaque-item {
    margin: 0;
    padding: 0;
}

.cr-destaque-link {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-decoration: none;
    color: inherit;
    padding: 6px;
    margin: -6px;
    border-radius: 6px;
    transition: background 0.15s ease;
}

.cr-destaque-link:hover {
    background: var(--cr-bg-soft, #F9FAFB);
    text-decoration: none;
}

.cr-destaque-titulo {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--cr-text, #1a1a1a);
}

.cr-destaque-link:hover .cr-destaque-titulo {
    color: var(--cr-blue-cta, #1D4ED8);
}

.cr-destaque-meta {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.cr-meta-urgente { color: var(--cr-red-urgency, #DC2626); }
.cr-meta-salario { color: var(--cr-green-success, #059669); }
.cr-meta-vagas   { color: var(--cr-blue-cta, #1D4ED8); }
.cr-meta-tempo   { color: var(--cr-text-muted, #6B7280); }

.cr-destaque-more {
    display: block;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid var(--cr-border, #E5E7EB);
    font-size: 11px;
    font-weight: 600;
    color: var(--cr-blue-cta, #1D4ED8);
    text-decoration: none;
    text-align: right;
}

.cr-destaque-more:hover {
    text-decoration: underline;
}

/* ==========================================
   Search Autocomplete (#2)
   ========================================== */
.cr-autocomplete-wrap {
    position: relative;
    flex: 1;
    display: flex;
}

.cr-autocomplete-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: white;
    border: 1px solid var(--cr-border, #E5E7EB);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    max-height: 480px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
    padding: 8px;
}

.cr-autocomplete-dropdown.visible {
    display: block;
    animation: crAcFade 0.15s ease;
}

@keyframes crAcFade {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.cr-ac-section-title {
    padding: 8px 10px 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cr-text-muted, #6B7280);
}

.cr-ac-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--cr-text, #1a1a1a);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.3;
    cursor: pointer;
    transition: background 0.12s ease;
}

.cr-ac-item:hover,
.cr-ac-item.active {
    background: var(--cr-bg-soft, #F3F4F6);
    text-decoration: none;
}

.cr-ac-item.active {
    background: rgba(29, 78, 216, 0.08);
}

.cr-ac-item mark {
    background: rgba(212, 167, 63, 0.25);
    color: inherit;
    font-weight: 700;
    padding: 0 1px;
    border-radius: 2px;
}

.cr-ac-cargo-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cr-ac-cargo-count {
    background: var(--cr-bg-soft, #F3F4F6);
    color: var(--cr-text-muted, #6B7280);
    font-size: 11px;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 100px;
    flex-shrink: 0;
}

.cr-ac-item.active .cr-ac-cargo-count,
.cr-ac-item:hover .cr-ac-cargo-count {
    background: white;
    color: var(--cr-blue-cta, #1D4ED8);
}

.cr-ac-post-title {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.cr-ac-empty,
.cr-ac-error {
    padding: 18px 12px;
    text-align: center;
    color: var(--cr-text-muted, #6B7280);
    font-size: 13px;
}

.cr-ac-error {
    color: var(--cr-red-urgency, #DC2626);
}

.cr-ac-hint {
    margin-top: 6px;
    padding: 8px 12px;
    border-top: 1px solid var(--cr-border, #E5E7EB);
    font-size: 11px;
    color: var(--cr-text-muted, #6B7280);
    text-align: center;
    letter-spacing: 0.02em;
}

.cr-ac-hint strong {
    color: var(--cr-text, #1a1a1a);
    font-weight: 700;
}

/* Scrollbar */
.cr-autocomplete-dropdown::-webkit-scrollbar { width: 6px; }
.cr-autocomplete-dropdown::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 3px;
}

@media (max-width: 768px) {
    .cr-autocomplete-dropdown { max-height: 360px; }
    .cr-ac-cargo-name, .cr-ac-post-title { font-size: 13px; }
}

/* Fix: dropdown deve aparecer SOBRE a section abaixo */
.cr-concursos-hero {
    overflow: visible !important;
}

.cr-autocomplete-wrap {
    z-index: 999;
}

.cr-autocomplete-dropdown {
    z-index: 9999 !important;
}

/* ==========================================
   Mapa do Brasil no Hero (#mapa-hero)
   Desktop only · escondido em < 1024px
   ========================================== */

.cr-hero-inner {
    position: relative;
}

.cr-hero-map {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 460px;
    height: 380px;
    pointer-events: none;
    display: none;
}

@media (min-width: 1280px) {
    .cr-hero-map {
        display: block;
        pointer-events: auto;
    }
}

@media (min-width: 1440px) {
    .cr-hero-map {
        width: 520px;
        height: 420px;
        right: -20px;
    }
}

.cr-map-svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.cr-map-state {
    cursor: pointer;
    transition: filter 0.15s ease, transform 0.2s ease;
    transform-origin: center;
    transform-box: fill-box;
}

.cr-map-state path {
    transition: fill 0.15s ease, stroke 0.15s ease;
}

.cr-map-state:hover path {
    fill: rgba(212, 167, 63, 1) !important;
    stroke: #fff;
    stroke-width: 1.5;
    filter: drop-shadow(0 4px 8px rgba(212, 167, 63, 0.5));
}

.cr-map-state.is-active path {
    fill: #D4A73F !important;
    stroke: #fff;
    stroke-width: 1.8;
    filter: drop-shadow(0 6px 12px rgba(212, 167, 63, 0.7));
}

.cr-map-state.is-empty {
    cursor: default;
    opacity: 0.4;
}

.cr-map-state.is-empty:hover path {
    fill: rgba(212, 167, 63, 0.25) !important;
    stroke: rgba(255,255,255,0.4);
    stroke-width: 0.8;
    filter: none;
}

/* Tooltip */
.cr-map-tooltip {
    position: absolute;
    z-index: 100;
    background: rgba(11, 31, 58, 0.96);
    color: #fff;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid rgba(212, 167, 63, 0.4);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
    pointer-events: none;
    display: flex;
    flex-direction: column;
    gap: 2px;
    white-space: nowrap;
    backdrop-filter: blur(8px);
}

.cr-map-tooltip[hidden] { display: none; }

.cr-map-tt-uf {
    font-size: 10px;
    font-weight: 700;
    color: #D4A73F;
    letter-spacing: 0.08em;
}

.cr-map-tt-name {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
}

.cr-map-tt-count {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.85);
    font-weight: 500;
}

/* Legenda */
.cr-map-legend {
    position: absolute;
    bottom: 8px;
    right: 8px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 100px;
    font-size: 10px;
    color: rgba(255, 255, 255, 0.7);
    letter-spacing: 0.04em;
    backdrop-filter: blur(4px);
    pointer-events: none;
}

.cr-map-legend-icon {
    font-size: 11px;
}

/* Hide on mobile/tablet */
@media (max-width: 1279px) {
    .cr-hero-map { display: none !important; }
}
/* ====================================
   Mapa do Brasil v2 — scoped to .cr-brazil-map
   ==================================== */
.cr-brazil-map {
    --cr-bm-norte: #5F8F6B;
    --cr-bm-nordeste: #D4A73F;
    --cr-bm-centro: #5F82AA;
    --cr-bm-sudeste: #4F76A5;
    --cr-bm-sul: #7EA174;
    --cr-bm-gold: #D4A73F;
    --cr-bm-text: #FCFBF8;

    position: relative;
    flex: 0 0 auto;
    width: 100%;
    max-width: 580px;
    border: 1px solid rgba(252,251,248,.12);
    border-radius: 24px;
    padding: 20px 22px 18px;
    background:
        linear-gradient(145deg, rgba(252,251,248,.05), rgba(252,251,248,.018)),
        linear-gradient(135deg, rgba(11,31,58,.92), rgba(22,58,99,.86));
    box-shadow: 0 16px 48px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.06);
    overflow: hidden;
    color: var(--cr-bm-text);
    font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif;
}

/* Subtle grid background */
.cr-brazil-map::before {
    content: "";
    position: absolute;
    inset: 14px;
    border-radius: 18px;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(252,251,248,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(252,251,248,.03) 1px, transparent 1px);
    background-size: 38px 38px;
    mask-image: linear-gradient(90deg, transparent 0%, black 18%, black 82%, transparent 100%);
    opacity: .42;
}

/* Header */
.cr-bm-head {
    position: relative;
    z-index: 2;
    margin-bottom: 12px;
}
.cr-bm-kicker {
    margin: 0 0 4px;
    color: var(--cr-bm-gold);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 800;
}
.cr-bm-title {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.02em;
    color: #FCFBF8;
    line-height: 1.1;
}
.cr-bm-total {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 13px;
    border: 1px solid rgba(212,167,63,.45);
    border-radius: 999px;
    background: rgba(7,20,38,.4);
    font-size: 12px;
    font-weight: 700;
}
.cr-bm-total strong {
    color: var(--cr-bm-gold);
    font-size: 15px;
}

/* Region filter buttons */
.cr-bm-regions {
    position: relative;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 8px;
    padding: 7px;
    border: 1px solid rgba(252,251,248,.10);
    border-radius: 14px;
    background: rgba(7,20,38,.22);
}
.cr-bm-region {
    flex: 1 1 auto;
    text-align: center;
    border: 1px solid rgba(252,251,248,.14);
    border-radius: 999px;
    background: rgba(252,251,248,.04);
    color: rgba(252,251,248,.78);
    min-height: 30px;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    transition: background .16s, border-color .16s, color .16s, transform .16s;
}
.cr-bm-region:hover {
    border-color: rgba(212,167,63,.55);
    color: #fff;
    text-decoration: none;
}
.cr-bm-region.is-selected {
    background: var(--cr-bm-gold);
    border-color: rgba(252,251,248,.65);
    color: #071426;
    box-shadow: 0 6px 14px rgba(0,0,0,.16);
}

/* SVG stage */
.cr-bm-stage {
    position: relative;
    z-index: 2;
    width: 100%;
}
.cr-bm-stage svg.map-svg {
    width: 100%;
    height: auto;
    display: block;
    overflow: visible;
}

/* Frame around map */
.cr-bm-stage .map-frame {
    fill: rgba(7,20,38,.18);
    stroke: rgba(252,251,248,.08);
    stroke-width: 1;
}
.cr-bm-stage .ocean-line {
    fill: none;
    stroke: rgba(212,167,63,.18);
    stroke-width: .55;
    stroke-dasharray: 3 7;
}

/* Hide compass and scale (economiza espaço no hero) */
.cr-bm-stage .compass,
.cr-bm-stage .scale {
    display: none;
}

/* States with region colors */
.cr-bm-stage .region-norte    { --region-fill: var(--cr-bm-norte); }
.cr-bm-stage .region-nordeste { --region-fill: var(--cr-bm-nordeste); }
.cr-bm-stage .region-centro   { --region-fill: var(--cr-bm-centro); }
.cr-bm-stage .region-sudeste  { --region-fill: var(--cr-bm-sudeste); }
.cr-bm-stage .region-sul      { --region-fill: var(--cr-bm-sul); }

.cr-bm-stage .state {
    outline: none;
    cursor: pointer;
}
.cr-bm-stage .shape {
    fill: var(--region-fill);
    fill-opacity: var(--density, .32);
    stroke: rgba(252,251,248,.36);
    stroke-width: 1;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,.16));
    transition: fill .18s, fill-opacity .18s, stroke .18s, stroke-width .18s;
}
.cr-bm-stage .state:hover .shape,
.cr-bm-stage .state.is-hovered .shape {
    fill: var(--cr-bm-gold);
    fill-opacity: .96;
    stroke: #FCFBF8;
    stroke-width: 1.6;
}
.cr-bm-stage .state.is-active .shape {
    fill: var(--cr-bm-gold);
    fill-opacity: 1;
    stroke: #FCFBF8;
    stroke-width: 1.9;
}

/* UF labels */
.cr-bm-stage .uf-label {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    text-anchor: middle;
    fill: #FCFBF8;
    paint-order: stroke;
    stroke: #061122;
    stroke-width: 3.5px;
    stroke-linejoin: round;
    pointer-events: none;
    user-select: none;
}
.cr-bm-stage .uf-label.external {
    font-size: 11px;
    stroke-width: 2.5px;
}
.cr-bm-stage .leader {
    fill: none;
    stroke: rgba(212,167,63,.72);
    stroke-width: 1;
    stroke-linecap: round;
    pointer-events: none;
}
.cr-bm-stage .callout-dot {
    fill: var(--cr-bm-gold);
    stroke: #071426;
    stroke-width: 1.4;
    pointer-events: none;
}
.cr-bm-stage .label-pill {
    fill: rgba(7,20,38,.62);
    stroke: rgba(212,167,63,.65);
    stroke-width: 1;
}
.cr-bm-stage .external-link:hover .label-pill {
    fill: rgba(212,167,63,.92);
    stroke: #FCFBF8;
}
.cr-bm-stage .external-link:hover .uf-label {
    fill: #071426;
    stroke: rgba(252,251,248,.5);
}

/* Region filter dimmed/selected states */
/* old region-filter CSS removed - now via [data-active-region] selectors */

/* Tooltip */
.cr-bm-tooltip {
    position: fixed;
    z-index: 9999;
    min-width: 160px;
    padding: 9px 12px;
    border-radius: 12px;
    background: rgba(7,20,38,.94);
    border: 1px solid rgba(212,167,63,.4);
    box-shadow: 0 16px 36px rgba(0,0,0,.32);
    color: #fff;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, calc(-100% - 14px));
    transition: opacity .12s;
}
.cr-bm-tooltip.visible { opacity: 1; }
.cr-bm-tooltip strong {
    display: block;
    font-size: 13px;
    margin-bottom: 2px;
}
.cr-bm-tooltip small {
    display: block;
    color: var(--cr-bm-gold);
    font-size: 11px;
    font-weight: 700;
}

/* Mobile filter (hidden on desktop) */
.cr-bm-mobile { display: none; }

/* MOBILE breakpoint */
@media (max-width: 1023px) {
    .cr-bm-stage,
    .cr-bm-regions {
        display: none;
    }
    .cr-bm-mobile {
        display: block;
        position: relative;
        z-index: 3;
    }
    .cr-bm-mob-title {
        margin: 0 0 8px;
        color: rgba(252,251,248,.7);
        font-size: 12px;
        font-weight: 700;
    }
    .cr-bm-mob-tabs {
        display: flex;
        gap: 6px;
        overflow-x: auto;
        padding: 2px 0 8px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .cr-bm-mob-tabs::-webkit-scrollbar { display: none; }
    .cr-bm-mob-tab {
        flex: 0 0 auto;
        border: 1px solid rgba(252,251,248,.14);
        border-radius: 999px;
        background: rgba(252,251,248,.04);
        color: rgba(252,251,248,.78);
        min-height: 34px;
        padding: 7px 12px;
        font-size: 11px;
        font-weight: 800;
        text-decoration: none;
        white-space: nowrap;
    }
    .cr-bm-mob-tab.is-selected {
        background: var(--cr-bm-gold);
        border-color: rgba(252,251,248,.65);
        color: #071426;
    }
    .cr-bm-mob-summary {
        display: flex;
        justify-content: space-between;
        margin: 2px 0 10px;
        padding: 8px 12px;
        border: 1px solid rgba(212,167,63,.22);
        border-radius: 14px;
        background: rgba(7,20,38,.28);
        color: rgba(252,251,248,.7);
        font-size: 11px;
        font-weight: 700;
    }
    .cr-bm-mob-summary strong { color: var(--cr-bm-gold); }
    .cr-bm-mob-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 7px;
    }
    .cr-bm-mob-pill {
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 8px;
        padding: 8px 10px;
        border: 1px solid rgba(252,251,248,.12);
        border-radius: 14px;
        background: linear-gradient(135deg, rgba(252,251,248,.06), rgba(252,251,248,.02));
        color: var(--cr-bm-text);
        text-decoration: none;
        font-family: inherit;
    }
    .cr-bm-mob-pill[hidden],
    .cr-bm-mob-pill.is-hidden { display: none !important; }
    .cr-bm-mob-pill:hover {
        border-color: rgba(212,167,63,.5);
        background: linear-gradient(135deg, rgba(212,167,63,.18), rgba(252,251,248,.04));
    }
    .cr-bm-mob-pill.is-active {
        border-color: var(--cr-bm-gold);
        background: rgba(212,167,63,.2);
    }
    .cr-bm-mob-pill strong {
        width: 32px;
        height: 32px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: rgba(7,20,38,.5);
        border: 1px solid rgba(212,167,63,.25);
        font-size: 12px;
        color: #fff;
    }
    .cr-bm-mob-pill span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 12px;
        font-weight: 700;
        color: rgba(252,251,248,.8);
    }
    .cr-bm-mob-pill em {
        min-width: 26px;
        padding: 3px 6px;
        border-radius: 999px;
        background: rgba(212,167,63,.15);
        color: var(--cr-bm-gold);
        font-size: 11px;
        font-style: normal;
        font-weight: 800;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .cr-bm-mob-grid { grid-template-columns: 1fr; }
}

/* ======================================
   Hero split layout (texto + mapa)
   ====================================== */
@media (min-width: 1024px) {
    .cr-concursos-hero .cr-hero-inner.has-map {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(420px, 540px);
        gap: 36px;
        align-items: start;
        max-width: 1280px;
    }
    .cr-concursos-hero .cr-hero-inner.has-map .cr-hero-text {
        min-width: 0;
    }
    .cr-concursos-hero .cr-hero-inner.has-map .cr-hero-title {
        font-size: clamp(28px, 3.4vw, 42px);
    }
    .cr-concursos-hero .cr-hero-inner.has-map .cr-hero-stats {
        gap: 24px;
    }
}

@media (max-width: 1023px) {
    .cr-concursos-hero .cr-hero-inner.has-map .cr-brazil-map {
        margin-top: 24px;
    }
}

/* ====================================
   Mapa v2 — region filter via CSS-only
   ==================================== */
/* Quando card tem data-active-region != "all", dim states que NÃO são da região */

.cr-brazil-map[data-active-region="norte"] .state:not(.region-norte):not(.is-active) .shape,
.cr-brazil-map[data-active-region="nordeste"] .state:not(.region-nordeste):not(.is-active) .shape,
.cr-brazil-map[data-active-region="centro"] .state:not(.region-centro):not(.is-active) .shape,
.cr-brazil-map[data-active-region="sudeste"] .state:not(.region-sudeste):not(.is-active) .shape,
.cr-brazil-map[data-active-region="sul"] .state:not(.region-sul):not(.is-active) .shape {
    fill-opacity: .12 !important;
    stroke: rgba(252,251,248,.16) !important;
    filter: none !important;
}

/* Brilhar estados da região ativa */
.cr-brazil-map[data-active-region="norte"] .state.region-norte .shape,
.cr-brazil-map[data-active-region="nordeste"] .state.region-nordeste .shape,
.cr-brazil-map[data-active-region="centro"] .state.region-centro .shape,
.cr-brazil-map[data-active-region="sudeste"] .state.region-sudeste .shape,
.cr-brazil-map[data-active-region="sul"] .state.region-sul .shape {
    fill-opacity: .72;
    stroke: rgba(252,251,248,.55);
}

/* Esconder labels internas dos estados não-da-região */
.cr-brazil-map[data-active-region="norte"] .uf-label.internal:not([data-label="AC"]):not([data-label="AM"]):not([data-label="AP"]):not([data-label="PA"]):not([data-label="RO"]):not([data-label="RR"]):not([data-label="TO"]) { opacity: .25; }
.cr-brazil-map[data-active-region="nordeste"] .uf-label.internal:not([data-label="BA"]):not([data-label="CE"]):not([data-label="MA"]):not([data-label="PI"]) { opacity: .25; }
.cr-brazil-map[data-active-region="centro"] .uf-label.internal:not([data-label="GO"]):not([data-label="MT"]):not([data-label="MS"]) { opacity: .25; }
.cr-brazil-map[data-active-region="sudeste"] .uf-label.internal:not([data-label="MG"]):not([data-label="SP"]) { opacity: .25; }
.cr-brazil-map[data-active-region="sul"] .uf-label.internal:not([data-label="RS"]):not([data-label="SC"]):not([data-label="PR"]) { opacity: .25; }

/* External labels (callouts) - dim if not in region */
.cr-brazil-map[data-active-region="norte"] .external-link:not(.region-norte),
.cr-brazil-map[data-active-region="nordeste"] .external-link:not(.region-nordeste),
.cr-brazil-map[data-active-region="centro"] .external-link:not(.region-centro),
.cr-brazil-map[data-active-region="sudeste"] .external-link:not(.region-sudeste),
.cr-brazil-map[data-active-region="sul"] .external-link:not(.region-sul) {
    opacity: .25;
}

/* Callout dots */
.cr-brazil-map[data-active-region="norte"] .callout-dot:not([data-dot="AP"]),
.cr-brazil-map[data-active-region="nordeste"] .callout-dot:not([data-dot="RN"]):not([data-dot="PB"]):not([data-dot="PE"]):not([data-dot="AL"]):not([data-dot="SE"]),
.cr-brazil-map[data-active-region="centro"] .callout-dot:not([data-dot="DF"]),
.cr-brazil-map[data-active-region="sudeste"] .callout-dot:not([data-dot="ES"]):not([data-dot="RJ"]),
.cr-brazil-map[data-active-region="sul"] .callout-dot {
    opacity: .25;
}

/* ====================================
   Breadcrumbs (cr-breadcrumbs)
   ==================================== */
.cr-breadcrumbs {
    background: #FCFBF8;
    border-bottom: 1px solid rgba(11,31,58,.06);
    padding: 12px 0;
}
.cr-bc-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #5B6473;
}
.cr-breadcrumbs .cr-bc-item,
.cr-breadcrumbs a.cr-bc-item {
    color: #1F4E79 !important;
    text-decoration: none;
    transition: color .14s;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.cr-breadcrumbs .cr-bc-item:hover,
.cr-breadcrumbs a.cr-bc-item:hover {
    color: #D4A73F !important;
    text-decoration: none;
}
.cr-bc-home-icon {
    font-size: 13px;
    line-height: 1;
}
.cr-bc-sep {
    color: rgba(11,31,58,.32);
    font-weight: 800;
    user-select: none;
}
.cr-bc-current {
    color: #0B1F3A;
    font-weight: 800;
}
@media (max-width: 640px) {
    .cr-breadcrumbs {
        padding: 10px 0;
    }
    .cr-bc-inner {
        padding: 0 14px;
        font-size: 12px;
        gap: 5px;
    }
}

/* ====================================
   Empty State (cr-empty-state)
   ==================================== */
.cr-empty-state {
    background: #FCFBF8;
    border: 1px solid #D9DEE8;
    border-radius: 16px;
    padding: 48px 32px;
    text-align: center;
    max-width: 580px;
    margin: 24px auto;
}
.cr-es-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 16px;
    filter: grayscale(.3);
}
.cr-es-title {
    font-family: "Plus Jakarta Sans", Inter, sans-serif !important;
    font-size: 22px;
    font-weight: 800;
    color: #0B1F3A !important;
    margin: 0 0 8px;
    letter-spacing: -.01em;
}
.cr-es-subtitle {
    font-size: 14px;
    color: #5B6473;
    margin: 0 0 24px;
    line-height: 1.5;
}
.cr-es-suggestions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: stretch;
    max-width: 380px;
    margin: 0 auto;
}
.cr-empty-state a.cr-es-suggestion,
.cr-es-suggestion {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border: 1px solid #D9DEE8;
    border-radius: 12px;
    background: #fff;
    color: #1F4E79 !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 700;
    transition: all .14s;
    text-align: left;
}
.cr-empty-state a.cr-es-suggestion:hover,
.cr-es-suggestion:hover {
    border-color: #D4A73F;
    background: #FBF4E2;
    color: #BC9231 !important;
    text-decoration: none !important;
    transform: translateY(-1px);
}
.cr-empty-state a.cr-es-suggestion.cr-es-primary,
.cr-es-suggestion.cr-es-primary {
    background: #1D4ED8;
    border-color: #1D4ED8;
    color: #fff !important;
}
.cr-empty-state a.cr-es-suggestion.cr-es-primary:hover,
.cr-es-suggestion.cr-es-primary:hover {
    background: #1E3A8A;
    border-color: #1E3A8A;
    color: #fff !important;
}
.cr-es-sug-icon {
    font-size: 18px;
    line-height: 1;
}
.cr-es-sug-label {
    flex: 1;
}
@media (max-width: 640px) {
    .cr-empty-state {
        padding: 32px 18px;
        margin: 16px;
    }
    .cr-es-icon { font-size: 44px; }
    .cr-es-title { font-size: 18px; }
}

/* ==========================================================================
   PÁGINA DE NOTÍCIAS V2 (.crn-*) · @since 29/04/2026
   Layout editorial moderno · sem mapa · mosaic + sidebar
   ========================================================================== */
.crn-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    --crn-orange-700: #B45D1F;
    --crn-orange-100: #FBE7D6;
    --crn-purple-100: #DCEAF6;
    --crn-shadow-sm: 0 1px 2px rgba(11,31,58,0.04), 0 2px 6px rgba(11,31,58,0.04);
    --crn-shadow-md: 0 4px 12px rgba(11,31,58,0.06), 0 12px 32px rgba(11,31,58,0.06);
}

/* ============== HERO COMPACTA ============== */
.crn-hero { padding: 8px 0 24px; }
.crn-hero-mast {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    padding-bottom: 18px;
    border-bottom: 3px solid var(--crc-brand-900);
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.crn-hero-titlewrap { flex: 1; min-width: 280px; }
.crn-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-600);
    margin-bottom: 10px;
}
.crn-hero-eyebrow::before {
    content: ""; display: inline-block;
    width: 8px; height: 8px;
    background: var(--crc-red, #DC2626);
    border-radius: 50%;
    animation: crn-pulse 2s ease-in-out infinite;
}
@keyframes crn-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .5; transform: scale(0.85); }
}
.crn-hero-title {
    font-size: clamp(30px, 5vw, 52px);
    font-weight: 800; line-height: 1.0;
    letter-spacing: -0.02em;
    color: var(--crc-brand-900);
    margin: 0;
}
.crn-hero-title em {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 500;
    color: var(--crc-brand-700);
}
.crn-hero-meta {
    display: flex; flex-direction: column; align-items: flex-end;
    gap: 4px; text-align: right; white-space: nowrap;
    color: var(--crc-text-body, #5B6473);
}
.crn-hero-meta-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 32px; color: var(--crc-brand-900); line-height: 1;
}
.crn-hero-meta-label {
    text-transform: uppercase; letter-spacing: 0.12em;
    font-size: 10px; font-weight: 700;
}

.crn-hero-tools { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.crn-hero-search {
    flex: 1; min-width: 280px;
    position: relative;
    display: flex; align-items: center; gap: 12px;
    background: var(--crc-white, #fff);
    border: 1.5px solid var(--crc-border);
    border-radius: 999px;
    padding: 0 6px 0 18px; height: 46px;
    transition: all .2s;
    margin: 0;
}
.crn-hero-search:focus-within {
    border-color: var(--crc-brand-600);
    box-shadow: 0 0 0 4px rgba(31,78,121,0.10);
}
.crn-hero-search > svg { width: 18px; height: 18px; color: var(--crc-text-body); flex-shrink: 0; }
.crn-hero-search-input {
    flex: 1; border: 0; outline: 0; background: transparent;
    font: inherit; font-size: 14px;
    padding: 0; color: var(--crc-text-strong);
    width: 100%;
}
.crn-hero-search-input::placeholder { color: var(--crc-text-body); opacity: .65; }
.crn-hero-search-btn {
    height: 36px; padding: 0 18px;
    border-radius: 999px; border: 0;
    background: var(--crc-brand-900); color: var(--crc-gold-500);
    font: inherit; font-size: 13px; font-weight: 700;
    letter-spacing: 0.04em; cursor: pointer;
    transition: background .15s;
}
.crn-hero-search-btn:hover { background: var(--crc-brand-700); color: var(--crc-gold-500); }

.crn-chips {
    display: flex; gap: 8px;
    overflow-x: auto; padding: 4px 0;
    scrollbar-width: none;
}
.crn-chips::-webkit-scrollbar { display: none; }
.crn-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px; border-radius: 999px;
    background: var(--crc-white, #fff);
    border: 1.5px solid var(--crc-border);
    font-size: 13px; font-weight: 600;
    color: var(--crc-text-body); white-space: nowrap;
    text-decoration: none;
    transition: all .15s;
}
.crn-chip:hover {
    border-color: var(--crc-brand-600);
    color: var(--crc-brand-900); transform: translateY(-1px);
}
.crn-chip.is-active {
    background: var(--crc-brand-900);
    border-color: var(--crc-brand-900);
    color: var(--crc-white, #fff);
}
.crn-chip-count {
    background: rgba(255,255,255,0.18);
    color: inherit;
    padding: 1px 8px; border-radius: 999px;
    font-size: 11px; font-weight: 700;
}
.crn-chip:not(.is-active) .crn-chip-count {
    background: var(--crc-bg);
    color: var(--crc-text-body); opacity: .8;
}

/* ============== TAGS POR TIPO ============== */
.crn-tag {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px; border-radius: 4px;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.08em; text-transform: uppercase;
    line-height: 1.4;
}
.crn-tag--edital  { background: var(--crc-brand-100);   color: var(--crc-brand-700); }
.crn-tag--prorrog { background: var(--crc-gold-100);    color: var(--crc-gold-600); }
.crn-tag--retific { background: var(--crn-orange-100);  color: var(--crn-orange-700); }
.crn-tag--cancel  { background: #FBE5E5;                color: var(--crc-red-dark, #A03A3A); }
.crn-tag--result  { background: var(--crc-green-100);   color: var(--crc-green-700); }
.crn-tag--convoc  { background: var(--crn-purple-100);  color: var(--crc-brand-700); }
.crn-tag--ondark {
    background: rgba(255,255,255,0.18);
    color: var(--crc-white, #fff);
    backdrop-filter: blur(6px);
}
.crn-tag--ondark.crn-tag--retific { background: rgba(180,93,31,0.92); }
.crn-tag--ondark.crn-tag--prorrog { background: rgba(212,167,63,0.92); color: var(--crc-brand-900); }
.crn-tag--ondark.crn-tag--cancel  { background: rgba(160,58,58,0.92); }

/* ============== MOSAIC DESTAQUES (2x2) ============== */
.crn-lede { margin: 0 0 36px; }
.crn-lede-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 16px;
}
.crn-lede-side {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    gap: 16px;
}
.crn-lede-card {
    position: relative; display: block;
    border-radius: 14px; overflow: hidden;
    background: var(--crc-white, #fff);
    box-shadow: var(--crn-shadow-sm);
    transition: transform .25s ease, box-shadow .25s ease;
    text-decoration: none; color: inherit;
}
.crn-lede-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--crn-shadow-md);
}

/* hero main (esquerda · grande) */
.crn-lede-main {
    position: relative; min-height: 520px;
    background: var(--crc-brand-800, #112849);
    color: var(--crc-white, #fff);
    overflow: hidden;
}
.crn-lede-main-img { position: absolute; inset: 0; z-index: 0; }
.crn-lede-main-img img { width: 100%; height: 100%; object-fit: cover; }
.crn-lede-main-img::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 35%, rgba(11,31,58,0.50) 65%, rgba(11,31,58,0.95) 100%);
}
.crn-lede-main-img--fallback {
    background: linear-gradient(135deg, #163A63 0%, #1F4E79 50%, #0B1F3A 100%);
    display: flex; align-items: center; justify-content: center;
}
.crn-lede-main-img--fallback::after { background: linear-gradient(180deg, transparent 50%, rgba(11,31,58,0.55) 100%); }
.crn-fallback-pattern {
    position: absolute; inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(212,167,63,0.20) 0%, transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(255,255,255,0.06) 0%, transparent 50%);
}
.crn-fallback-sigla {
    position: relative; z-index: 1;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(48px, 9vw, 96px);
    color: var(--crc-gold-500);
    line-height: 1;
    letter-spacing: -0.02em;
    text-align: center;
}
.crn-lede-main-body {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 36px 36px 32px; z-index: 2;
}
.crn-lede-main-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.crn-lede-main-h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: clamp(24px, 3.2vw, 36px);
    line-height: 1.12; letter-spacing: -0.01em;
    color: var(--crc-white, #fff);
    margin: 0 0 12px;
    text-shadow: 0 2px 14px rgba(0,0,0,0.30);
}
.crn-lede-main-excerpt {
    font-size: 15.5px; line-height: 1.55;
    color: rgba(255,255,255,0.86);
    max-width: 580px; margin: 0 0 18px;
}
.crn-lede-main-foot {
    display: flex; align-items: center; gap: 10px;
    font-size: 12.5px;
    color: rgba(255,255,255,0.72);
    flex-wrap: wrap;
}
.crn-lede-main-cta {
    display: inline-flex; align-items: center; gap: 6px;
    margin-left: auto;
    padding: 6px 14px;
    background: var(--crc-gold-500); color: var(--crc-brand-900);
    border-radius: 999px;
    font-weight: 800; font-size: 12px;
    letter-spacing: 0.02em;
}

/* side cards */
.crn-lede-side-card {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0;
}
.crn-lede-side-img {
    background: var(--crc-brand-100);
    position: relative; overflow: hidden;
}
.crn-lede-side-img img { width: 100%; height: 100%; object-fit: cover; }
.crn-fallback-mini {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    display: flex; align-items: center; justify-content: center;
}
.crn-fallback-mini span {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 32px;
    color: var(--crc-gold-500);
    letter-spacing: -0.01em;
}
.crn-lede-side-body {
    padding: 16px 18px;
    display: flex; flex-direction: column; justify-content: space-between;
}
.crn-lede-side-h3 {
    font-size: 15px; font-weight: 700;
    line-height: 1.3;
    color: var(--crc-text-strong);
    margin: 0 0 8px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.crn-lede-side-foot {
    display: flex; align-items: center; gap: 6px;
    font-size: 11.5px;
    color: var(--crc-text-body);
}

/* ============== FEED + SIDEBAR ============== */
.crn-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 36px;
    margin-bottom: 60px;
}
.crn-feed-head {
    display: flex; align-items: baseline; justify-content: space-between;
    border-bottom: 1.5px solid var(--crc-border);
    padding-bottom: 14px; margin-bottom: 20px;
}
.crn-feed-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 26px; color: var(--crc-brand-900);
    letter-spacing: -0.01em; margin: 0;
}
.crn-feed-count { font-size: 13px; color: var(--crc-text-body); font-weight: 600; }

.crn-day-divider {
    display: flex; align-items: center; gap: 14px;
    margin: 28px 0 18px;
}
.crn-day-divider:first-of-type { margin-top: 0; }
.crn-day-divider-label {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 17px; color: var(--crc-brand-900);
    letter-spacing: -0.01em;
}
.crn-day-divider-line { flex: 1; height: 1px; background: var(--crc-border); }
.crn-day-divider-count {
    font-size: 11px; color: var(--crc-text-body);
    font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
    padding: 3px 8px; background: var(--crc-brand-100);
    border-radius: 4px;
}

.crn-feed-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.crn-card {
    display: flex; flex-direction: column;
    background: var(--crc-white, #fff);
    border-radius: 12px; overflow: hidden;
    box-shadow: var(--crn-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease;
    text-decoration: none; color: inherit;
}
.crn-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--crn-shadow-md);
}
.crn-card-img {
    position: relative; aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, var(--crc-brand-100), var(--crc-bg));
    overflow: hidden;
}
.crn-card-img > img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .3s;
}
.crn-card:hover .crn-card-img > img { transform: scale(1.04); }
.crn-card-img--has { display: flex; align-items: center; justify-content: center; }
.crn-card-img--has img { width: 80%; height: 80%; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(11,31,58,0.10)); }

.crn-card-img-time {
    position: absolute; top: 12px; left: 12px;
    background: rgba(11,31,58,0.85);
    backdrop-filter: blur(8px);
    color: var(--crc-white, #fff);
    padding: 4px 10px; border-radius: 4px;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.06em; text-transform: uppercase;
}
.crn-card-img-uf {
    position: absolute; bottom: 12px; left: 12px;
    background: var(--crc-white, #fff); color: var(--crc-brand-900);
    padding: 4px 10px; border-radius: 4px;
    font-size: 11px; font-weight: 800;
    display: inline-flex; gap: 6px; align-items: center;
}
.crn-card-img-uf-flag {
    width: 14px; height: 10px;
    background: var(--crc-gold-500); border-radius: 1px;
    display: inline-block;
}

/* fallback institucional (sem imagem) */
.crn-card-img--fallback {
    background: linear-gradient(135deg, var(--crc-brand-900) 0%, var(--crc-brand-700) 60%, var(--crc-brand-600) 100%);
    position: relative;
}
.crn-card-img--fallback::before {
    content: ""; position: absolute; inset: 0;
    background-image:
        radial-gradient(circle at 20% 30%, rgba(212,167,63,0.20) 0%, transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(255,255,255,0.06) 0%, transparent 50%);
}
.crn-card-img-fbcontent {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    color: var(--crc-white, #fff); text-align: center;
    padding: 16px; gap: 6px;
}
.crn-card-img-fbsigla {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 38px; color: var(--crc-gold-500);
    line-height: 1; letter-spacing: -0.01em;
}
.crn-card-img-fborgao {
    font-size: 11px; font-weight: 600;
    color: rgba(255,255,255,0.82);
    text-transform: uppercase; letter-spacing: 0.10em;
}
.crn-card-img-fbicon {
    width: 22px; height: 22px;
    color: var(--crc-gold-500); margin-bottom: 4px;
    opacity: .8;
}

.crn-card-body {
    padding: 16px 18px 18px;
    display: flex; flex-direction: column; flex: 1;
}
.crn-card-meta {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px; flex-wrap: wrap;
}
.crn-card-h3 {
    font-size: 16px; font-weight: 700;
    line-height: 1.32;
    color: var(--crc-text-strong);
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    letter-spacing: -0.005em;
}
.crn-card:hover .crn-card-h3 { color: var(--crc-brand-700); }
.crn-card-foot {
    display: flex; align-items: center; gap: 8px;
    margin-top: auto; padding-top: 12px;
    border-top: 1px dashed var(--crc-border);
    font-size: 11.5px; color: var(--crc-text-body);
}
.crn-card-curso {
    display: inline-flex; align-items: center; gap: 5px;
    margin-left: auto;
    font-size: 11.5px; font-weight: 800;
    color: var(--crc-gold-600);
    letter-spacing: 0.02em;
}

/* ============== SIDEBAR ============== */
.crn-sidebar {
    display: flex; flex-direction: column; gap: 24px;
    position: sticky; top: 24px; align-self: start;
}
.crn-side-block {
    background: var(--crc-white, #fff);
    border-radius: 14px; padding: 22px 22px 24px;
    box-shadow: var(--crn-shadow-sm);
}
.crn-side-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 19px; color: var(--crc-brand-900);
    margin: 0 0 16px; letter-spacing: -0.01em;
    display: flex; align-items: center; gap: 8px;
}
.crn-ico { width: 18px; height: 18px; color: var(--crc-gold-600); }

.crn-popular-list { list-style: none; counter-reset: pop; padding: 0; margin: 0; }
.crn-popular-list li {
    display: flex; gap: 14px; padding: 14px 0;
    border-bottom: 1px dashed var(--crc-border);
    counter-increment: pop;
    align-items: flex-start;
}
.crn-popular-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.crn-popular-list li:first-child { padding-top: 0; }
.crn-popular-list li::before {
    content: counter(pop);
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 28px; color: var(--crc-gold-500);
    line-height: 1; flex-shrink: 0;
    width: 26px; text-align: right;
}
.crn-popular-list a {
    font-size: 13.5px; font-weight: 600;
    line-height: 1.4; color: var(--crc-text-strong);
    text-decoration: none;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
    overflow: hidden; transition: color .15s;
}
.crn-popular-list a:hover { color: var(--crc-brand-600); }
.crn-pop-meta {
    display: block; margin-top: 6px;
    font-size: 11px; color: var(--crc-text-body); font-weight: 600;
}

.crn-exams-list { list-style: none; padding: 0; margin: 0; }
.crn-exams-list li {
    display: flex; gap: 14px; padding: 12px 0;
    border-bottom: 1px dashed var(--crc-border);
    align-items: center;
}
.crn-exams-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.crn-exams-list li:first-child { padding-top: 0; }
.crn-exam-date {
    flex-shrink: 0; width: 52px; text-align: center;
    background: var(--crc-brand-100);
    border-radius: 8px; padding: 6px 0;
}
.crn-exam-date-day {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 22px; color: var(--crc-brand-900); line-height: 1;
    display: block;
}
.crn-exam-date-month {
    display: block; font-size: 9px; font-weight: 800;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--crc-brand-700); margin-top: 3px;
}
.crn-exam-info { flex: 1; min-width: 0; }
.crn-exam-info-title {
    font-size: 13px; font-weight: 700;
    color: var(--crc-text-strong);
    text-decoration: none;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
}
.crn-exam-info-title:hover { color: var(--crc-brand-600); }
.crn-exam-countdown {
    font-size: 11px; font-weight: 800;
    color: var(--crn-orange-700); background: var(--crn-orange-100);
    padding: 2px 8px; border-radius: 4px;
    letter-spacing: 0.04em; text-transform: uppercase;
    flex-shrink: 0;
}
.crn-exam-countdown.is-near { color: var(--crc-red-dark, #A03A3A); background: #FBE5E5; }
.crn-exam-countdown.is-far  { color: var(--crc-green-700); background: var(--crc-green-100); }

.crn-side-cta {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-white, #fff);
    border-radius: 14px; padding: 26px 22px;
    position: relative; overflow: hidden;
}
.crn-side-cta::before {
    content: ""; position: absolute;
    top: -40px; right: -40px;
    width: 160px; height: 160px;
    background: radial-gradient(circle, rgba(212,167,63,0.18) 0%, transparent 70%);
}
.crn-side-cta-eyebrow {
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-500);
    margin-bottom: 10px; display: block;
}
.crn-side-cta-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px; line-height: 1.18;
    margin: 0 0 12px; letter-spacing: -0.01em;
}
.crn-side-cta-text {
    font-size: 13.5px; line-height: 1.55;
    color: rgba(255,255,255,0.78);
    margin: 0 0 18px;
}
.crn-side-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #25D366; color: var(--crc-white, #fff);
    font-weight: 800; font-size: 13.5px;
    padding: 11px 18px; border-radius: 999px;
    letter-spacing: 0.02em;
    transition: transform .15s;
    text-decoration: none;
}
.crn-side-cta-btn:hover { transform: translateY(-1px); color: var(--crc-white, #fff); }

/* paginação */
.crn-pag {
    display: flex; justify-content: center; gap: 6px;
    margin-top: 40px; padding-top: 24px;
    border-top: 1.5px solid var(--crc-border);
}
.crn-pag a, .crn-pag span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 38px; height: 38px; padding: 0 12px;
    border-radius: 8px;
    font-size: 13.5px; font-weight: 700;
    color: var(--crc-text-body);
    border: 1.5px solid transparent;
    transition: all .15s;
    text-decoration: none;
}
.crn-pag a:hover { background: var(--crc-brand-100); color: var(--crc-brand-900); }
.crn-pag .is-current { background: var(--crc-brand-900); color: var(--crc-white, #fff); }
.crn-pag .is-disabled { color: var(--crc-text-body); opacity: .4; cursor: not-allowed; }

/* ============== RESPONSIVO ============== */
@media (max-width: 1100px) {
    .crn-layout { grid-template-columns: 1fr; }
    .crn-sidebar { position: static; flex-direction: column; }
    .crn-lede-grid { grid-template-columns: 1fr; }
    .crn-lede-side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
    .crn-lede-side-card:nth-child(3) { grid-column: span 2; }
    .crn-lede-main { min-height: 420px; }
}
@media (max-width: 760px) {
    .crn-page { padding: 0 16px; }
    .crn-hero-mast { border-bottom-width: 2px; gap: 16px; }
    .crn-hero-meta { align-items: flex-start; flex-direction: row; gap: 14px; }
    .crn-hero-meta-num { font-size: 26px; }
    .crn-lede-main { min-height: 360px; }
    .crn-lede-main-body { padding: 24px 22px 22px; }
    .crn-lede-side { grid-template-columns: 1fr; }
    .crn-lede-side-card:nth-child(3) { grid-column: span 1; }
    .crn-lede-side-card { grid-template-columns: 110px 1fr; }
    .crn-feed-grid { grid-template-columns: 1fr; }
    .crn-card-img { aspect-ratio: 16 / 9; }
}
@media (max-width: 480px) {
    .crn-hero-search { padding-left: 14px; }
    .crn-hero-search-btn { padding: 0 14px; }
    .crn-lede-main-h1 { font-size: 22px; }
    .crn-lede-main-excerpt { font-size: 14px; }
    .crn-feed-h2 { font-size: 22px; }
}

/* ==========================================================================
   PÁGINA DE NOTÍCIAS · FIXES v1.2.1 · @since 29/04/2026 (noite)
   1. CTA WhatsApp · cores forçadas (sobrescreve tema)
   2. Search bar · layout flex consertado
   3. Hero principal · sempre fallback editorial (sigla gigante)
   4. Cards do feed · imagens padronizadas em 60% contain
   ========================================================================== */

/* ============== FIX 1 · CTA WHATSAPP · cores forçadas ============== */
.crn-page .crn-side-cta { color: #FFFFFF !important; }
.crn-page .crn-side-cta * { color: inherit; }
.crn-page .crn-side-cta-eyebrow {
    color: var(--crc-gold-500, #D4A73F) !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
    opacity: 1 !important;
}
.crn-page .crn-side-cta-h3 {
    color: #FFFFFF !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic;
    font-weight: 700;
    font-size: 22px;
    line-height: 1.18;
    margin: 0 0 12px;
    letter-spacing: -0.01em;
}
.crn-page .crn-side-cta-text {
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 13.5px;
    line-height: 1.55;
    margin: 0 0 18px;
}
.crn-page .crn-side-cta-btn,
.crn-page .crn-side-cta-btn:hover,
.crn-page .crn-side-cta-btn:visited {
    color: #FFFFFF !important;
    background: #25D366 !important;
    text-decoration: none !important;
}

/* ============== FIX 2 · SEARCH BAR · flex consertado ============== */
.crn-page .crn-hero-search {
    gap: 0;
    padding: 0 6px 0 18px;
    align-items: stretch;
}
.crn-page .crn-hero-search > svg {
    width: 18px; height: 18px;
    color: var(--crc-text-body, #5B6473);
    flex-shrink: 0;
    align-self: center;
    margin-right: 12px;
}
.crn-page .crn-search-wrap {
    flex: 1 1 auto;
    position: relative;
    min-width: 0;
    display: flex;
    align-items: center;
}
.crn-page .crn-search-wrap .crn-hero-search-input {
    flex: 1 1 auto;
    width: 100%;
    height: 44px;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 14px;
    padding: 0 12px 0 0;
    color: var(--crc-text-strong, #162033);
    margin: 0;
}
.crn-page .crn-hero-search-btn {
    flex-shrink: 0;
    align-self: center;
    margin-left: 8px;
}

/* ============== FIX 3 · HERO PRINCIPAL · editorial sempre ============== */
.crn-page .crn-lede-main {
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
}
.crn-page .crn-lede-main-img--fallback {
    background: transparent;
    overflow: hidden;
}
.crn-page .crn-lede-main-img--fallback::after {
    background: linear-gradient(180deg, transparent 30%, rgba(11,31,58,0.55) 65%, rgba(11,31,58,0.95) 100%);
}
.crn-page .crn-lede-main-img--fallback .crn-fallback-pattern {
    background:
        radial-gradient(circle at 18% 28%, rgba(212,167,63,0.28) 0%, transparent 35%),
        radial-gradient(circle at 82% 72%, rgba(255,255,255,0.10) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(212,167,63,0.08) 0%, transparent 60%);
}
.crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
    font-size: clamp(72px, 14vw, 168px);
    color: var(--crc-gold-500, #D4A73F);
    text-shadow:
        0 4px 24px rgba(0,0,0,0.40),
        0 1px 0 rgba(255,255,255,0.15);
    margin-top: -40px;
    transform: translateY(-8%);
    line-height: .9;
}
.crn-page .crn-fallback-orgao {
    position: absolute;
    bottom: calc(100% - 100% + 24%);
    left: 50%;
    transform: translateX(-50%);
    margin-top: 18px;
    z-index: 1;
    color: rgba(255,255,255,0.70);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-align: center;
    white-space: nowrap;
    text-shadow: 0 2px 8px rgba(0,0,0,0.40);
}
/* posicionamento mais simples e confiável */
.crn-page .crn-lede-main-img--fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 14%;
}
.crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
    margin: 0;
    transform: none;
    z-index: 1;
    position: relative;
}
.crn-page .crn-lede-main-img--fallback .crn-fallback-orgao {
    position: relative;
    bottom: auto;
    left: auto;
    transform: none;
    margin-top: 14px;
}

/* ============== FIX 4 · CARDS DO FEED · imagens padronizadas ============== */
/* todas imagens com object-fit contain + padding generoso + fundo gradient suave */
.crn-page .crn-card-img {
    aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, #EAF1F8 0%, #F8F6F1 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14% 18%;
}
.crn-page .crn-card-img > img {
    width: 100%;
    height: 100%;
    max-width: 64%;
    max-height: 88%;
    object-fit: contain;
    filter: drop-shadow(0 6px 16px rgba(11,31,58,0.14));
    transition: transform .25s ease;
}
.crn-page .crn-card:hover .crn-card-img > img {
    transform: scale(1.06);
}
/* override anterior: --has e cards normais ficam iguais agora */
.crn-page .crn-card-img.crn-card-img--has {
    padding: 14% 18%;
}
.crn-page .crn-card-img.crn-card-img--has img {
    width: 100%;
    height: 100%;
    max-width: 64%;
    max-height: 88%;
}
/* fallback institucional · não muda · já estava bom */
.crn-page .crn-card-img.crn-card-img--fallback {
    padding: 0;
    background: linear-gradient(135deg, var(--crc-brand-900, #0B1F3A) 0%, var(--crc-brand-700, #163A63) 60%, var(--crc-brand-600, #1F4E79) 100%);
}

/* lede side cards · imagens menores também */
.crn-page .crn-lede-side-img {
    background: linear-gradient(135deg, #EAF1F8 0%, #F8F6F1 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
}
.crn-page .crn-lede-side-img img {
    width: auto;
    height: auto;
    max-width: 75%;
    max-height: 80%;
    object-fit: contain;
    filter: drop-shadow(0 4px 10px rgba(11,31,58,0.12));
}

/* ============== AJUSTE MOBILE · hero fallback ============== */
@media (max-width: 760px) {
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(64px, 18vw, 112px);
    }
    .crn-page .crn-lede-main-img--fallback {
        padding-bottom: 18%;
    }
    .crn-page .crn-card-img,
    .crn-page .crn-card-img.crn-card-img--has {
        padding: 12% 16%;
    }
}

/* ==========================================================================
   PÁGINA DE NOTÍCIAS · PATCH v1.2.2 · sigla hero adaptativa
   ========================================================================== */

/* sigla menor + overflow + word-break · evita transbordar */
.crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
    font-size: clamp(56px, 9vw, 110px) !important;
    max-width: 92%;
    line-height: 0.92;
    word-break: keep-all;
    overflow-wrap: break-word;
    text-align: center;
    padding: 0 8px;
    box-sizing: border-box;
    /* "fit" via container query inline (suportado em browsers modernos) */
}

@media (max-width: 1100px) {
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(52px, 12vw, 96px) !important;
    }
}

@media (max-width: 760px) {
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(48px, 14vw, 88px) !important;
    }
}

/* siglas longas (>10 chars) ganham automaticamente font menor via :has() · suporte amplo em 2026 */
.crn-page .crn-fallback-sigla:has-text-longer-than-10 { /* placeholder · pode não funcionar; mantemos clamp acima como garantia */ }

/* ==========================================================================
   PÁGINA DE NOTÍCIAS · PATCH v1.2.3 · sigla single-line + font reduzida
   ========================================================================== */
.crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
    font-size: clamp(40px, 6.4vw, 84px) !important;
    max-width: 92%;
    line-height: 0.95;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip;
    text-align: center;
    padding: 0 6px;
    box-sizing: border-box;
    font-feature-settings: "liga" 1, "kern" 1;
    letter-spacing: -0.02em;
}

@media (max-width: 1100px) {
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(38px, 8vw, 72px) !important;
    }
}

@media (max-width: 760px) {
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(36px, 11vw, 64px) !important;
    }
}

/* texto institucional embaixo · sutil */
.crn-page .crn-fallback-orgao {
    font-size: 11px;
    letter-spacing: 0.18em;
    margin-top: 12px !important;
}
@media (max-width: 760px) {
    .crn-page .crn-fallback-orgao { font-size: 10px; letter-spacing: 0.14em; }
}

/* ==========================================================================
   PÁGINA DE NOTÍCIAS · PATCH v1.2.4 · sigla posicionada acima do título
   ========================================================================== */

.crn-page .crn-lede-main-img--fallback {
    /* Sigla no TERÇO SUPERIOR · título embaixo · sem sobreposição */
    justify-content: flex-start !important;
    padding-top: 16% !important;
    padding-bottom: 0 !important;
}

.crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
    font-size: clamp(36px, 5.5vw, 72px) !important;
    line-height: 0.95;
}

@media (max-width: 1100px) {
    .crn-page .crn-lede-main-img--fallback {
        padding-top: 14% !important;
    }
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(34px, 7vw, 60px) !important;
    }
}

@media (max-width: 760px) {
    .crn-page .crn-lede-main-img--fallback {
        padding-top: 12% !important;
    }
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(32px, 9vw, 52px) !important;
    }
}

/* nome do órgão fica logo abaixo da sigla, ainda no terço superior */
.crn-page .crn-fallback-orgao {
    margin-top: 8px !important;
    opacity: 0.78;
}

/* aumenta blur do gradient inferior pra dar mais contraste no título */
.crn-page .crn-lede-main-img--fallback::after {
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(11,31,58,0.20) 35%,
        rgba(11,31,58,0.75) 60%,
        rgba(11,31,58,0.96) 100%) !important;
}

/* ==========================================================================
   PÁGINA DE NOTÍCIAS · PATCH v1.2.5 · sigla mobile sem sobreposição
   ========================================================================== */

/* mobile: sigla pequena, colada no topo, sem sobrepor manchete */
@media (max-width: 760px) {
    .crn-page .crn-lede-main {
        min-height: 380px !important;
    }
    .crn-page .crn-lede-main-img--fallback {
        padding-top: 24px !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }
    .crn-page .crn-lede-main-img--fallback .crn-fallback-sigla {
        font-size: clamp(26px, 7vw, 40px) !important;
        margin-top: 0 !important;
    }
    .crn-page .crn-fallback-orgao {
        font-size: 9.5px !important;
        letter-spacing: 0.16em;
        margin-top: 6px !important;
    }
    /* manchete mobile · ajusta espaço */
    .crn-page .crn-lede-main-body {
        padding: 20px 22px 22px !important;
    }
    .crn-page .crn-lede-main-h1 {
        font-size: 19px !important;
        line-height: 1.18 !important;
    }
    .crn-page .crn-lede-main-excerpt { display: none; } /* mobile sem excerpt · economiza espaço */
}

/* ==========================================================================
   PÁGINA DE CONCURSOS PREVISTOS V2 (.crp-*) · @since 29/04/2026
   Layout editorial · sem mapa · mosaic + sidebar rica · cards com vagas
   ========================================================================== */
.crp-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    --crp-orange-700: #B45D1F;
    --crp-orange-100: #FBE7D6;
    --crp-purple-100: #DCEAF6;
    --crp-shadow-sm: 0 1px 2px rgba(11,31,58,0.04), 0 2px 6px rgba(11,31,58,0.04);
    --crp-shadow-md: 0 4px 12px rgba(11,31,58,0.06), 0 12px 32px rgba(11,31,58,0.06);
}

/* ============== HERO COMPACTA ============== */
.crp-hero { padding: 8px 0 24px; }
.crp-hero-mast {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 32px; padding-bottom: 18px;
    border-bottom: 3px solid var(--crc-brand-900);
    margin-bottom: 18px; flex-wrap: wrap;
}
.crp-hero-titlewrap { flex: 1; min-width: 280px; }
.crp-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-600);
    margin-bottom: 10px;
}
.crp-hero-eyebrow::before {
    content: ""; display: inline-block;
    width: 8px; height: 8px;
    background: var(--crc-gold-500);
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(212,167,63,0.6);
    animation: crp-pulse 2.4s ease-in-out infinite;
}
@keyframes crp-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(212,167,63,0.6); }
    50% { box-shadow: 0 0 0 6px rgba(212,167,63,0); }
}
.crp-hero-title {
    font-size: clamp(30px, 5vw, 52px);
    font-weight: 800; line-height: 1.0;
    letter-spacing: -0.02em;
    color: var(--crc-brand-900); margin: 0;
}
.crp-hero-title em {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 500;
    color: var(--crc-brand-700);
}
.crp-hero-meta {
    display: flex; gap: 24px; align-items: flex-end;
    flex-wrap: wrap; color: var(--crc-text-body, #5B6473);
}
.crp-hero-meta-item {
    display: flex; flex-direction: column; align-items: flex-end;
    text-align: right;
}
.crp-hero-meta-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 30px; color: var(--crc-brand-900); line-height: 1;
}
.crp-hero-meta-label {
    text-transform: uppercase; letter-spacing: 0.10em;
    font-size: 10px; font-weight: 700; margin-top: 4px;
}
.crp-hero-meta-item--accent .crp-hero-meta-num { color: #C13030; }
.crp-hero-meta-item--accent .crp-hero-meta-label { color: #C13030; }

.crp-hero-tools { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.crp-hero-search {
    flex: 1; min-width: 280px;
    display: flex; align-items: stretch; gap: 0;
    background: var(--crc-white, #fff);
    border: 1.5px solid var(--crc-border);
    border-radius: 999px;
    padding: 0 6px 0 18px; height: 46px;
    transition: all .2s; margin: 0;
}
.crp-hero-search:focus-within {
    border-color: var(--crc-brand-600);
    box-shadow: 0 0 0 4px rgba(31,78,121,0.10);
}
.crp-hero-search > svg {
    width: 18px; height: 18px; color: var(--crc-text-body);
    flex-shrink: 0; align-self: center; margin-right: 12px;
}
.crp-search-wrap {
    flex: 1 1 auto; position: relative; min-width: 0;
    display: flex; align-items: center;
}
.crp-hero-search-input {
    flex: 1 1 auto; width: 100%; height: 44px;
    border: 0; outline: 0; background: transparent;
    font: inherit; font-size: 14px;
    padding: 0 12px 0 0; color: var(--crc-text-strong);
    margin: 0;
}
.crp-hero-search-input::placeholder { color: var(--crc-text-body); opacity: .65; }
.crp-hero-search-btn {
    flex-shrink: 0; align-self: center; margin-left: 8px;
    height: 36px; padding: 0 18px;
    border-radius: 999px; border: 0;
    background: var(--crc-brand-900); color: var(--crc-gold-500);
    font: inherit; font-size: 13px; font-weight: 700;
    letter-spacing: 0.04em; cursor: pointer;
    transition: background .15s;
}
.crp-hero-search-btn:hover { background: var(--crc-brand-700); color: var(--crc-gold-500); }

.crp-chips {
    display: flex; gap: 8px;
    overflow-x: auto; padding: 4px 0;
    scrollbar-width: none;
}
.crp-chips::-webkit-scrollbar { display: none; }
.crp-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px; border-radius: 999px;
    background: var(--crc-white, #fff);
    border: 1.5px solid var(--crc-border);
    font-size: 13px; font-weight: 600;
    color: var(--crc-text-body); white-space: nowrap;
    text-decoration: none;
    transition: all .15s;
}
.crp-chip:hover {
    border-color: var(--crc-brand-600);
    color: var(--crc-brand-900); transform: translateY(-1px);
}
.crp-chip.is-active {
    background: var(--crc-brand-900); border-color: var(--crc-brand-900);
    color: var(--crc-white, #fff);
}
.crp-chip-count {
    background: var(--crc-bg, #F8F6F1); color: var(--crc-text-body);
    padding: 1px 8px; border-radius: 999px;
    font-size: 11px; font-weight: 700; opacity: .9;
}
.crp-chip.is-active .crp-chip-count {
    background: rgba(255,255,255,0.18); color: inherit;
}
/* chip iminente · destaque vermelho */
.crp-chip--iminente:not(.is-active) {
    border-color: #E8B4B4;
    color: #C13030;
    background: #FCEEEE;
}

/* ============== TAGS / STATUS ============== */
.crp-tag {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px; border-radius: 4px;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.06em; text-transform: uppercase;
    line-height: 1.4;
}
.crp-tag--iminente   { background: #FCEEEE;                color: #C13030; }
.crp-tag--contrato   { background: var(--crc-green-100);   color: var(--crc-green-700); }
.crp-tag--banca      { background: var(--crc-brand-100);   color: var(--crc-brand-700); }
.crp-tag--comissao   { background: var(--crc-gold-100);    color: var(--crc-gold-600); }
.crp-tag--autorizado { background: var(--crc-green-100);   color: var(--crc-green-700); }
.crp-tag--avancou    { background: var(--crp-purple-100);  color: var(--crc-brand-700); }
.crp-tag--novo       { background: #F0EBFA;                color: #5B3DA8; }
.crp-tag--estudo     { background: #EEF1F4;                color: #5B6473; }
.crp-tag--prorrogado { background: var(--crp-orange-100);  color: var(--crp-orange-700); }
.crp-tag--encerrado  { background: #ECECEC;                color: #777; }
.crp-tag--indef      { background: #F4F4F4;                color: #888; }
.crp-tag--ondark {
    background: rgba(255,255,255,0.18);
    color: var(--crc-white, #fff);
    backdrop-filter: blur(6px);
    letter-spacing: 0.04em;
}
.crp-tag--ondark.crp-tag--iminente { background: rgba(193,48,48,0.92); color: #fff; }

/* ============== MOSAIC DESTAQUES ============== */
.crp-lede { margin: 0 0 36px; }
.crp-lede-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 16px;
}
.crp-lede-side {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    gap: 16px;
}
.crp-lede-card {
    position: relative; display: block;
    border-radius: 14px; overflow: hidden;
    background: var(--crc-white, #fff);
    box-shadow: var(--crp-shadow-sm);
    transition: transform .25s ease, box-shadow .25s ease;
    text-decoration: none; color: inherit;
}
.crp-lede-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--crp-shadow-md);
}

/* HERO MAIN */
.crp-lede-main {
    position: relative; min-height: 480px;
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
    color: var(--crc-white, #fff);
    overflow: hidden;
}
.crp-lede-main-bg { position: absolute; inset: 0; z-index: 0; }
.crp-lede-pattern {
    position: absolute; inset: 0;
    background:
        radial-gradient(circle at 18% 28%, rgba(212,167,63,0.28) 0%, transparent 35%),
        radial-gradient(circle at 82% 72%, rgba(255,255,255,0.10) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(212,167,63,0.08) 0%, transparent 60%);
}
.crp-lede-main-body {
    position: relative; z-index: 2;
    padding: 36px 36px 32px;
    display: flex; flex-direction: column;
    height: 100%; min-height: 480px;
    justify-content: space-between;
}
.crp-lede-main-meta {
    display: flex; gap: 8px; flex-wrap: wrap;
}
.crp-lede-main-vagas {
    margin: 32px 0 24px;
    text-align: left;
}
.crp-lede-main-vagas-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(60px, 9vw, 128px);
    line-height: 0.95;
    color: var(--crc-gold-500);
    text-shadow: 0 4px 24px rgba(0,0,0,0.30);
    letter-spacing: -0.02em;
    display: block;
}
.crp-lede-main-vagas-label {
    display: block;
    font-size: 13px; font-weight: 700;
    letter-spacing: 0.18em; text-transform: uppercase;
    color: rgba(255,255,255,0.74);
    margin-top: 4px;
}
.crp-lede-main-h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: clamp(20px, 2.4vw, 28px);
    line-height: 1.22; letter-spacing: -0.01em;
    color: var(--crc-white, #fff);
    margin: 0 0 16px;
    text-shadow: 0 2px 14px rgba(0,0,0,0.30);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.crp-lede-main-foot {
    display: flex; align-items: center; gap: 12px;
    flex-wrap: wrap; font-size: 12.5px;
    color: rgba(255,255,255,0.78);
}
.crp-lede-main-sigla {
    font-weight: 800; letter-spacing: 0.04em;
    color: var(--crc-gold-500);
}
.crp-lede-main-cta {
    display: inline-flex; align-items: center; gap: 6px;
    margin-left: auto;
    padding: 6px 14px;
    background: var(--crc-gold-500); color: var(--crc-brand-900);
    border-radius: 999px;
    font-weight: 800; font-size: 12px;
}

/* SIDE CARDS · com vagas */
.crp-lede-side-card {
    display: grid;
    grid-template-columns: 130px 1fr;
    align-items: stretch;
}
.crp-lede-side-vagas {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-white, #fff);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 8px;
}
.crp-lede-side-vagas-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 32px; color: var(--crc-gold-500);
    line-height: 1;
}
.crp-lede-side-vagas-label {
    font-size: 9px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: rgba(255,255,255,0.76);
    margin-top: 4px;
}
.crp-lede-side-body {
    padding: 14px 16px;
    display: flex; flex-direction: column; justify-content: space-between;
}
.crp-lede-side-h3 {
    font-size: 14px; font-weight: 700;
    line-height: 1.3;
    color: var(--crc-text-strong);
    margin: 0 0 8px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.crp-lede-side-foot {
    display: flex; align-items: center; gap: 6px;
    font-size: 11.5px; color: var(--crc-text-body);
}

/* ============== FEED ============== */
.crp-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 36px; margin-bottom: 60px;
}
.crp-feed-head {
    display: flex; align-items: baseline; justify-content: space-between;
    border-bottom: 1.5px solid var(--crc-border);
    padding-bottom: 14px; margin-bottom: 20px;
}
.crp-feed-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 26px; color: var(--crc-brand-900);
    letter-spacing: -0.01em; margin: 0;
}
.crp-feed-count { font-size: 13px; color: var(--crc-text-body); font-weight: 600; }

.crp-feed-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

/* ============== CARDS ============== */
.crp-card {
    display: flex; flex-direction: column;
    background: var(--crc-white, #fff);
    border-radius: 12px; overflow: hidden;
    box-shadow: var(--crp-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease;
    text-decoration: none; color: inherit;
}
.crp-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--crp-shadow-md);
}
.crp-card-head {
    position: relative;
    background: linear-gradient(135deg, #163A63 0%, #1F4E79 100%);
    color: var(--crc-white, #fff);
    padding: 28px 22px 22px;
    min-height: 175px;
    display: flex; flex-direction: column;
    justify-content: space-between;
}
.crp-card-head--iminente   { background: linear-gradient(135deg, #6C2222 0%, #C13030 100%); }
.crp-card-head--contrato   { background: linear-gradient(135deg, #2D5A36 0%, #4E7859 100%); }
.crp-card-head--banca      { background: linear-gradient(135deg, #163A63 0%, #1F4E79 100%); }
.crp-card-head--comissao   { background: linear-gradient(135deg, #8C6918 0%, #BC9231 100%); }
.crp-card-head--autorizado { background: linear-gradient(135deg, #2D5A36 0%, #5F8F6B 100%); }
.crp-card-head--avancou    { background: linear-gradient(135deg, #163A63 0%, #2C5687 100%); }
.crp-card-head--novo       { background: linear-gradient(135deg, #3D2A6B 0%, #5B3DA8 100%); }
.crp-card-head--estudo     { background: linear-gradient(135deg, #3A4453 0%, #5B6473 100%); }
.crp-card-head--prorrogado { background: linear-gradient(135deg, #7A3D14 0%, #B45D1F 100%); }
.crp-card-head--encerrado  { background: linear-gradient(135deg, #555 0%, #777 100%); }
.crp-card-head--indef      { background: linear-gradient(135deg, #4A5360 0%, #6B7686 100%); }

/* pattern decorativo no head */
.crp-card-head::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 85% 15%, rgba(212,167,63,0.18) 0%, transparent 40%),
        radial-gradient(circle at 15% 85%, rgba(255,255,255,0.06) 0%, transparent 40%);
    pointer-events: none;
}
.crp-card-head > * { position: relative; z-index: 1; }

.crp-card-vagas { display: flex; flex-direction: column; align-items: flex-start; }
.crp-card-vagas-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(40px, 5vw, 56px);
    color: var(--crc-gold-500);
    line-height: 0.95;
    letter-spacing: -0.01em;
}
.crp-card-vagas-label {
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.18em; text-transform: uppercase;
    color: rgba(255,255,255,0.78);
    margin-top: 4px;
}
.crp-card-sigla-big {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(34px, 4.4vw, 50px);
    color: var(--crc-gold-500);
    line-height: 0.95;
    letter-spacing: -0.01em;
    text-shadow: 0 2px 12px rgba(0,0,0,0.20);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    max-width: 100%;
}
.crp-card-status {
    display: inline-flex; align-items: center; gap: 6px;
    align-self: flex-start;
    padding: 5px 12px;
    background: rgba(255,255,255,0.16);
    backdrop-filter: blur(8px);
    border-radius: 999px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.06em; text-transform: uppercase;
    margin-top: 14px;
}
.crp-card-status-icon { font-size: 13px; line-height: 1; }
.crp-card-uf {
    position: absolute; top: 18px; right: 18px;
    background: var(--crc-white, #fff); color: var(--crc-brand-900);
    padding: 4px 10px; border-radius: 4px;
    font-size: 11px; font-weight: 800;
    z-index: 2;
}

.crp-card-body {
    padding: 16px 18px 18px;
    display: flex; flex-direction: column; flex: 1;
    background: var(--crc-white, #fff);
}
.crp-card-h3 {
    font-size: 15px; font-weight: 700;
    line-height: 1.32;
    color: var(--crc-text-strong);
    margin: 0 0 14px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    letter-spacing: -0.005em;
}
.crp-card-foot {
    display: flex; align-items: center; gap: 8px;
    margin-top: auto; padding-top: 12px;
    border-top: 1px dashed var(--crc-border);
    font-size: 11.5px; color: var(--crc-text-body);
    flex-wrap: wrap;
}
.crp-card-foot strong { color: var(--crc-brand-900); font-weight: 800; }
.crp-card-cta {
    margin-left: auto;
    color: var(--crc-gold-600); font-weight: 800;
    font-size: 11.5px;
}

/* pílula banca · usada em cards e mosaic */
.crp-pill {
    display: inline-flex; align-items: center;
    padding: 2px 9px; border-radius: 4px;
    background: var(--crc-brand-100);
    color: var(--crc-brand-700);
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.02em;
}
.crp-lede-main-foot .crp-pill {
    background: rgba(255,255,255,0.18);
    color: var(--crc-white, #fff);
}

/* ============== SIDEBAR ============== */
.crp-sidebar {
    display: flex; flex-direction: column; gap: 24px;
    position: sticky; top: 24px; align-self: start;
}
.crp-side-block {
    background: var(--crc-white, #fff);
    border-radius: 14px; padding: 22px 22px 24px;
    box-shadow: var(--crp-shadow-sm);
}
.crp-side-block--iminentes {
    border-left: 3px solid #C13030;
}
.crp-side-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 19px; color: var(--crc-brand-900);
    margin: 0 0 16px; letter-spacing: -0.01em;
    display: flex; align-items: center; gap: 8px;
}
.crp-side-h3-icon { font-size: 18px; }

/* lista iminentes (similar a popular-list) */
.crp-popular-list { list-style: none; counter-reset: pop; padding: 0; margin: 0; }
.crp-popular-list li {
    display: block; padding: 13px 0;
    border-bottom: 1px dashed var(--crc-border);
    counter-increment: pop;
}
.crp-popular-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.crp-popular-list li:first-child { padding-top: 0; }
.crp-popular-list a {
    font-size: 13.5px; font-weight: 600;
    line-height: 1.4; color: var(--crc-text-strong);
    text-decoration: none;
    display: block;
}
.crp-popular-list a:hover { color: var(--crc-brand-600); }
.crp-popular-list a > * { display: block; }
.crp-pop-meta {
    margin-top: 6px;
    font-size: 11px; color: var(--crc-text-body); font-weight: 700;
    letter-spacing: 0.04em;
}

/* lista top vagas */
.crp-vagas-list { list-style: none; counter-reset: vg; padding: 0; margin: 0; }
.crp-vagas-list li {
    border-bottom: 1px dashed var(--crc-border);
    counter-increment: vg;
}
.crp-vagas-list li:last-child { border-bottom: 0; }
.crp-vagas-list a {
    display: flex; gap: 14px; padding: 12px 0;
    text-decoration: none; align-items: center;
}
.crp-vagas-list li:first-child a { padding-top: 0; }
.crp-vagas-list li:last-child a { padding-bottom: 0; }
.crp-vagas-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 22px;
    color: var(--crc-gold-500);
    line-height: 1; flex-shrink: 0;
    min-width: 64px;
}
.crp-vagas-info {
    flex: 1; min-width: 0;
    font-size: 12px; color: var(--crc-text-body);
    line-height: 1.3;
}
.crp-vagas-info strong {
    display: block;
    color: var(--crc-text-strong); font-weight: 800;
    font-size: 13px; letter-spacing: 0.02em;
    margin-bottom: 2px;
}

/* lista bancas */
.crp-bancas-list { list-style: none; padding: 0; margin: 0; }
.crp-bancas-list li {
    display: flex; align-items: center; justify-content: space-between;
    padding: 11px 0;
    border-bottom: 1px dashed var(--crc-border);
}
.crp-bancas-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.crp-bancas-list li:first-child { padding-top: 0; }
.crp-bancas-name {
    font-size: 13.5px; font-weight: 700;
    color: var(--crc-text-strong);
}
.crp-bancas-count {
    background: var(--crc-brand-100);
    color: var(--crc-brand-700);
    padding: 3px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 800;
}

/* CTA WhatsApp */
.crp-side-cta {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-white, #fff) !important;
    border-radius: 14px; padding: 26px 22px;
    position: relative; overflow: hidden;
}
.crp-side-cta::before {
    content: ""; position: absolute;
    top: -40px; right: -40px;
    width: 160px; height: 160px;
    background: radial-gradient(circle, rgba(212,167,63,0.18) 0%, transparent 70%);
}
.crp-side-cta * { color: inherit; position: relative; }
.crp-side-cta-eyebrow {
    color: var(--crc-gold-500) !important;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    margin-bottom: 10px; display: block;
}
.crp-side-cta-h3 {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic; font-weight: 700;
    font-size: 22px; line-height: 1.18;
    margin: 0 0 12px; letter-spacing: -0.01em;
    color: var(--crc-white, #fff) !important;
}
.crp-side-cta-text {
    font-size: 13.5px; line-height: 1.55;
    color: rgba(255,255,255,0.82) !important;
    margin: 0 0 18px;
}
.crp-side-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #25D366 !important;
    color: var(--crc-white, #fff) !important;
    font-weight: 800; font-size: 13.5px;
    padding: 11px 18px; border-radius: 999px;
    letter-spacing: 0.02em;
    transition: transform .15s;
    text-decoration: none !important;
}
.crp-side-cta-btn:hover { transform: translateY(-1px); }

/* paginação */
.crp-pag {
    display: flex; justify-content: center; gap: 6px;
    margin-top: 40px; padding-top: 24px;
    border-top: 1.5px solid var(--crc-border);
}
.crp-pag a, .crp-pag span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 38px; height: 38px; padding: 0 12px;
    border-radius: 8px;
    font-size: 13.5px; font-weight: 700;
    color: var(--crc-text-body);
    border: 1.5px solid transparent;
    transition: all .15s;
    text-decoration: none;
}
.crp-pag a:hover { background: var(--crc-brand-100); color: var(--crc-brand-900); }
.crp-pag .is-current { background: var(--crc-brand-900); color: var(--crc-white, #fff); }
.crp-pag .is-disabled { color: var(--crc-text-body); opacity: .4; cursor: not-allowed; }

/* ============== RESPONSIVO ============== */
@media (max-width: 1100px) {
    .crp-layout { grid-template-columns: 1fr; }
    .crp-sidebar { position: static; flex-direction: column; }
    .crp-lede-grid { grid-template-columns: 1fr; }
    .crp-lede-side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
    .crp-lede-side-card:nth-child(3) { grid-column: span 2; }
    .crp-lede-main { min-height: 380px; }
}
@media (max-width: 760px) {
    .crp-page { padding: 0 16px; }
    .crp-hero-mast { gap: 16px; }
    .crp-hero-meta { gap: 16px; }
    .crp-hero-meta-num { font-size: 24px; }
    .crp-lede-main { min-height: 340px; }
    .crp-lede-main-body { padding: 24px 22px 22px; min-height: 340px; }
    .crp-lede-main-vagas { margin: 18px 0; }
    .crp-lede-side { grid-template-columns: 1fr; }
    .crp-lede-side-card:nth-child(3) { grid-column: span 1; }
    .crp-lede-side-card { grid-template-columns: 100px 1fr; }
    .crp-feed-grid { grid-template-columns: 1fr; }
    .crp-card-head { padding: 24px 20px 20px; min-height: 150px; }
    .crp-card-vagas-num { font-size: 42px; }
    .crp-card-sigla-big { font-size: 32px; }
    .crp-feed-h2 { font-size: 22px; }
}

/* ==========================================================================
   SEARCH REDESIGN v1.3.1 · @since 30/04/2026
   Aplica em ambas páginas (.crn-* notícias + .crp-* previstos)
   ========================================================================== */

/* === FIX 1 · Mata a borda residual do tema Porto no input search ===
   O tema injeta border: 1px solid rgba(0,0,0,0.27) + bg branco + border-radius 0
   no input[type=search] com especificidade que vence nossas regras.
   Force-killing com !important e seletor específico. */
.crp-page input.crp-hero-search-input,
.crp-page .crp-hero-search input[type="search"],
.crn-page input.crn-hero-search-input,
.crn-page .crn-hero-search input[type="search"] {
    border: 0 !important;
    background: transparent !important;
    padding: 0 12px 0 0 !important;
    height: 44px !important;
    line-height: 44px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    color: var(--crc-text-strong) !important;
    font-size: 14px !important;
    margin: 0 !important;
}
.crp-page input.crp-hero-search-input:focus,
.crp-page .crp-hero-search input[type="search"]:focus,
.crn-page input.crn-hero-search-input:focus,
.crn-page .crn-hero-search input[type="search"]:focus {
    outline: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
}
/* remove botão "X" nativo do webkit em search input */
.crp-page input.crp-hero-search-input::-webkit-search-cancel-button,
.crn-page input.crn-hero-search-input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

/* === FIX 2 · Focus state mais elegante · sombra dourada ===
   Substitui o focus state azul por uma sombra dourada DS v2. */
.crp-page .crp-hero-search:focus-within,
.crn-page .crn-hero-search:focus-within {
    border-color: var(--crc-brand-700) !important;
    box-shadow:
        0 0 0 4px rgba(212, 167, 63, 0.18),
        0 4px 14px rgba(11, 31, 58, 0.06) !important;
}

/* === FIX 3 · Lupa esquerda · garantir alinhamento ===
   A lupa SVG fica fora do input (filho do form), mas visualmente parece dentro.
   Ajustes pra ficar bem alinhada e com cor mais sutil. */
.crp-page .crp-hero-search > svg,
.crn-page .crn-hero-search > svg {
    width: 18px !important;
    height: 18px !important;
    color: var(--crc-text-body) !important;
    opacity: 0.6;
    flex-shrink: 0;
    align-self: center;
    margin-right: 12px !important;
    transition: opacity .2s, color .2s;
}
.crp-page .crp-hero-search:focus-within > svg,
.crn-page .crn-hero-search:focus-within > svg {
    color: var(--crc-brand-700) !important;
    opacity: 1;
}

/* === BÔNUS · placeholder mais sutil === */
.crp-page input.crp-hero-search-input::placeholder,
.crn-page input.crn-hero-search-input::placeholder {
    color: var(--crc-text-body) !important;
    opacity: 0.55 !important;
    font-style: normal;
    font-weight: 500;
}

/* ==========================================================================
   MOBILE · botão "Buscar" vira ícone circular pra liberar espaço de input
   ========================================================================== */
@media (max-width: 760px) {
    .crp-page .crp-hero-search,
    .crn-page .crn-hero-search {
        height: 48px !important;
        padding: 0 4px 0 16px !important;
    }
    .crp-page .crp-hero-search > svg,
    .crn-page .crn-hero-search > svg {
        margin-right: 10px !important;
        width: 17px !important;
        height: 17px !important;
    }
    .crp-page input.crp-hero-search-input,
    .crp-page .crp-hero-search input[type="search"],
    .crn-page input.crn-hero-search-input,
    .crn-page .crn-hero-search input[type="search"] {
        height: 46px !important;
        line-height: 46px !important;
        font-size: 15px !important;
        padding: 0 8px 0 0 !important;
    }

    /* botão "Buscar" → bolinha navy com lupa branca/dourada */
    .crp-page .crp-hero-search-btn,
    .crn-page .crn-hero-search-btn {
        font-size: 0 !important;
        color: transparent !important;
        width: 40px !important;
        height: 40px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        position: relative;
        flex-shrink: 0;
        align-self: center !important;
        margin-left: 4px !important;
        background: var(--crc-brand-900) !important;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23D4A73F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") !important;
        background-position: center !important;
        background-repeat: no-repeat !important;
        background-size: 17px 17px !important;
    }
    .crp-page .crp-hero-search-btn:hover,
    .crp-page .crp-hero-search-btn:focus,
    .crn-page .crn-hero-search-btn:hover,
    .crn-page .crn-hero-search-btn:focus {
        background: var(--crc-brand-700) !important;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23D4A73F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") !important;
        background-position: center !important;
        background-repeat: no-repeat !important;
        background-size: 17px 17px !important;
        transform: scale(1.05);
    }
}

/* ==========================================================================
   DESKTOP refinements · botão "Buscar" mais elegante
   ========================================================================== */
@media (min-width: 761px) {
    .crp-page .crp-hero-search-btn,
    .crn-page .crn-hero-search-btn {
        height: 38px !important;
        padding: 0 22px !important;
        background: var(--crc-brand-900) !important;
        color: var(--crc-gold-500) !important;
        font-weight: 700 !important;
        letter-spacing: 0.04em !important;
        font-size: 13px !important;
        transition: all .18s ease !important;
    }
    .crp-page .crp-hero-search-btn:hover,
    .crn-page .crn-hero-search-btn:hover {
        background: var(--crc-brand-700) !important;
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(11, 31, 58, 0.18);
    }
}

/* ==========================================================================
   AUTOCOMPLETE DROPDOWN · garantir que não vaza por cima do input
   (ajuste defensivo · alguns temas posicionam mal)
   ========================================================================== */
.crp-page .cr-autocomplete-dropdown,
.crn-page .cr-autocomplete-dropdown {
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(11, 31, 58, 0.12);
    margin-top: 8px;
    border: 1px solid var(--crc-border);
}

/* ==========================================================================
   PÁGINA INSCRIÇÕES ABERTAS V2 (.cri-*) · @since 30/04/2026
   Hero compacto + mapa flutuante (sem card) + mosaic + feed editorial
   ========================================================================== */

.cri-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    --cri-shadow-sm: 0 1px 2px rgba(11,31,58,0.04), 0 2px 6px rgba(11,31,58,0.04);
    --cri-shadow-md: 0 4px 12px rgba(11,31,58,0.06), 0 12px 32px rgba(11,31,58,0.06);
    --cri-red: #C13030;
    --cri-red-soft: #FCEEEE;
    --cri-amber: #B45D1F;
    --cri-amber-soft: #FBE7D6;
    --cri-green: #2D5A36;
    --cri-green-soft: #DEF0E0;
}

/* ============== HERO (gradient navy full bleed efeito) ============== */
.cri-hero {
    position: relative;
    margin: 8px -24px 36px;
    padding: 28px 24px 32px;
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
    border-radius: 18px;
    color: var(--crc-white, #fff);
    overflow: hidden;
}
.cri-hero::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 12% 18%, rgba(212,167,63,0.16) 0%, transparent 40%),
        radial-gradient(circle at 92% 82%, rgba(255,255,255,0.06) 0%, transparent 40%);
    pointer-events: none;
}
.cri-hero-grid {
    position: relative; z-index: 1;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 32px;
    align-items: center;
}

/* ============== HERO LEFT ============== */
.cri-hero-left {
    display: flex; flex-direction: column; gap: 16px;
    min-width: 0;
}
.cri-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-500);
    margin: 0;
}
.cri-hero-eyebrow::before {
    content: ""; display: inline-block;
    width: 8px; height: 8px;
    background: var(--crc-gold-500); border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(212,167,63,0.6);
    animation: cri-pulse 2.4s ease-in-out infinite;
}
@keyframes cri-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(212,167,63,0.6); }
    50% { box-shadow: 0 0 0 6px rgba(212,167,63,0); }
}
.cri-hero-title {
    font-size: clamp(34px, 5vw, 56px);
    font-weight: 800; line-height: 1.0;
    letter-spacing: -0.02em;
    color: var(--crc-white, #fff);
    margin: 0;
}
.cri-hero-title em {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 500;
    color: var(--crc-gold-500);
}
.cri-hero-subtitle {
    font-size: 14.5px; line-height: 1.55;
    color: rgba(255,255,255,0.78);
    margin: 0; max-width: 480px;
}

/* stats */
.cri-hero-stats {
    display: flex; gap: 28px;
    padding: 4px 0; flex-wrap: wrap;
}
.cri-hero-stat { display: flex; flex-direction: column; gap: 2px; }
.cri-hero-stat-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 30px;
    color: var(--crc-gold-500);
    line-height: 1;
}
.cri-hero-stat-label {
    font-size: 10.5px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: rgba(255,255,255,0.7);
}

/* search */
.cri-hero-search {
    display: flex; align-items: center;
    background: var(--crc-white, #fff);
    border: 1.5px solid transparent;
    border-radius: 999px;
    padding: 0 6px 0 18px; height: 46px;
    transition: all .2s; margin: 0; gap: 0;
    box-shadow: 0 4px 14px rgba(0,0,0,0.10);
}
.cri-hero-search:focus-within {
    border-color: var(--crc-gold-500);
    box-shadow:
        0 0 0 4px rgba(212, 167, 63, 0.20),
        0 4px 14px rgba(0,0,0,0.12);
}
.cri-hero-search > svg { width: 18px; height: 18px; color: var(--crc-text-body); flex-shrink: 0; align-self: center; margin-right: 12px; opacity: 0.65; }
.cri-hero-search:focus-within > svg { color: var(--crc-brand-700); opacity: 1; }
.cri-search-wrap { flex: 1 1 auto; position: relative; min-width: 0; display: flex; align-items: center; }
/* fix borda residual do tema Porto */
.cri-page input.cri-hero-search-input,
.cri-page .cri-hero-search input[type="search"] {
    flex: 1 1 auto; width: 100%;
    border: 0 !important; outline: 0 !important;
    background: transparent !important;
    height: 44px !important; line-height: 44px !important;
    font: inherit; font-size: 14px !important;
    padding: 0 12px 0 0 !important;
    color: var(--crc-text-strong) !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.cri-page input.cri-hero-search-input::placeholder { color: var(--crc-text-body) !important; opacity: 0.55 !important; }
.cri-page input.cri-hero-search-input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }

.cri-hero-search-btn {
    height: 36px; padding: 0 20px;
    border-radius: 999px; border: 0;
    background: var(--crc-brand-900); color: var(--crc-gold-500);
    font: inherit; font-size: 13px; font-weight: 700;
    letter-spacing: 0.04em; cursor: pointer;
    transition: all .15s; flex-shrink: 0;
    align-self: center; margin-left: 8px;
}
.cri-hero-search-btn:hover { background: var(--crc-brand-700); transform: translateY(-1px); }

/* chips ordenação */
.cri-chips { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0; scrollbar-width: none; flex-wrap: wrap; }
.cri-chips::-webkit-scrollbar { display: none; }
.cri-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 14px; border-radius: 999px;
    background: rgba(255,255,255,0.10);
    border: 1.5px solid rgba(255,255,255,0.22);
    font-size: 12.5px; font-weight: 700;
    color: rgba(255,255,255,0.85); white-space: nowrap;
    text-decoration: none;
    transition: all .15s;
    backdrop-filter: blur(6px);
}
.cri-chip:hover { background: rgba(255,255,255,0.18); color: #fff; transform: translateY(-1px); }
.cri-chip.is-active {
    background: var(--crc-gold-500);
    border-color: var(--crc-gold-500);
    color: var(--crc-brand-900);
}

/* ============== HERO RIGHT (mapa flutuante · sem card) ============== */
.cri-hero-right {
    position: relative;
    min-width: 0;
    align-self: stretch;
    display: flex; align-items: center; justify-content: center;
}

/* Override do mapa quando dentro de .cri-page */
.cri-page .cr-brazil-map {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    width: 100%;
    max-width: 560px;
}
.cri-page .cr-bm-head {
    display: none !important;
}
.cri-page .cr-bm-regions {
    background: transparent !important;
    padding: 0 0 12px !important;
    gap: 6px !important;
    justify-content: center;
    border: 0 !important;
}
.cri-page .cr-bm-region {
    background: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.20) !important;
    color: rgba(255,255,255,0.78) !important;
    font-size: 11.5px !important;
    padding: 5px 11px !important;
    border-radius: 999px !important;
    transition: all .15s;
}
.cri-page .cr-bm-region:hover {
    background: rgba(255,255,255,0.16) !important;
    color: #fff !important;
}
.cri-page .cr-bm-region.is-selected {
    background: var(--crc-gold-500) !important;
    border-color: var(--crc-gold-500) !important;
    color: var(--crc-brand-900) !important;
}
.cri-page .cr-bm-stage {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}
/* deixar contorno das UFs mais visível sobre navy */
.cri-page .cr-brazil-map .map-svg .shape {
    stroke: rgba(212, 167, 63, 0.55) !important;
    stroke-width: 1.2 !important;
}
.cri-page .cr-brazil-map .map-svg .map-frame {
    fill: transparent !important;
    stroke: rgba(255,255,255,0.06) !important;
}
/* mobile do mapa: chips centralizados, summary clean */
.cri-page .cr-bm-mobile { background: transparent !important; padding: 0 !important; }
.cri-page .cr-bm-mob-title { color: rgba(255,255,255,0.85) !important; }
.cri-page .cr-bm-mob-tab {
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.20) !important;
    color: rgba(255,255,255,0.78) !important;
}
.cri-page .cr-bm-mob-tab.is-selected {
    background: var(--crc-gold-500) !important;
    color: var(--crc-brand-900) !important;
}
.cri-page .cr-bm-mob-pill {
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.18) !important;
    color: #fff !important;
}
.cri-page .cr-bm-mob-pill.is-active {
    background: var(--crc-gold-500) !important;
    color: var(--crc-brand-900) !important;
}

/* ============== TAGS ============== */
.cri-tag {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px; border-radius: 4px;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.06em; text-transform: uppercase;
    line-height: 1.4;
}
.cri-tag--urgente   { background: var(--cri-red-soft);   color: var(--cri-red); }
.cri-tag--medio     { background: var(--cri-amber-soft); color: var(--cri-amber); }
.cri-tag--tranquilo { background: var(--cri-green-soft); color: var(--cri-green); }
.cri-tag--longo     { background: var(--crc-brand-100);  color: var(--crc-brand-700); }
.cri-tag--encerrado { background: #ECECEC;               color: #777; }
.cri-tag--sem       { background: #F0F1F4;               color: var(--crc-text-body); }
.cri-tag--manchete  { background: var(--crc-gold-500) !important; color: var(--crc-brand-900) !important; }
.cri-tag--ondark {
    background: rgba(255,255,255,0.16);
    color: var(--crc-white, #fff);
    backdrop-filter: blur(6px);
}
.cri-tag--ondark.cri-tag--urgente { background: rgba(193,48,48,0.92); color: #fff; }
.cri-tag--ondark.cri-tag--medio   { background: rgba(180,93,31,0.92); color: #fff; }
.cri-tag--ondark.cri-tag--tranquilo { background: rgba(45,90,54,0.92); color: #fff; }

/* pílula banca */
.cri-pill {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 4px 10px; border-radius: 4px;
    background: rgba(255,255,255,0.18);
    color: var(--crc-white, #fff);
    font-size: 11.5px; font-weight: 700;
    letter-spacing: 0.02em;
}

/* ============== MOSAIC DESTAQUES ============== */
.cri-lede { margin: 0 0 36px; }
.cri-lede-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 16px;
}
.cri-lede-side {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    gap: 16px;
}
.cri-lede-card {
    position: relative; display: block;
    border-radius: 14px; overflow: hidden;
    background: var(--crc-white, #fff);
    box-shadow: var(--cri-shadow-sm);
    transition: transform .25s ease, box-shadow .25s ease;
    text-decoration: none; color: inherit;
}
.cri-lede-card:hover { transform: translateY(-4px); box-shadow: var(--cri-shadow-md); }

/* manchete */
.cri-lede-main {
    position: relative; min-height: 460px;
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
    color: var(--crc-white, #fff);
    overflow: hidden;
}
.cri-lede-pattern {
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(circle at 18% 28%, rgba(212,167,63,0.30) 0%, transparent 38%),
        radial-gradient(circle at 82% 72%, rgba(255,255,255,0.10) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(212,167,63,0.06) 0%, transparent 60%);
}
.cri-lede-main-body {
    position: relative; z-index: 2;
    padding: 36px 36px 32px;
    display: flex; flex-direction: column;
    height: 100%; min-height: 460px;
    justify-content: space-between;
}
.cri-lede-main-meta { display: flex; gap: 8px; flex-wrap: wrap; }
.cri-lede-vagas {
    display: flex; align-items: baseline; gap: 14px;
    flex-wrap: wrap; margin: 28px 0 22px;
}
.cri-lede-vagas-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(60px, 9vw, 116px);
    color: var(--crc-gold-500);
    line-height: 0.95; letter-spacing: -0.02em;
    text-shadow: 0 4px 24px rgba(0,0,0,0.30);
}
.cri-lede-vagas-label {
    font-size: 14px; font-weight: 700;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: rgba(255,255,255,0.78);
}
.cri-lede-vagas-sep { color: rgba(255,255,255,0.30); font-size: 24px; font-weight: 300; }
.cri-lede-vagas-salario {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px;
    color: var(--crc-gold-500);
}
.cri-lede-main-h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: clamp(20px, 2.4vw, 28px);
    line-height: 1.22; letter-spacing: -0.01em;
    color: var(--crc-white, #fff);
    margin: 0 0 12px;
    text-shadow: 0 2px 14px rgba(0,0,0,0.30);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cri-lede-main-excerpt {
    font-size: 14px; line-height: 1.55;
    color: rgba(255,255,255,0.80);
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cri-lede-main-foot {
    display: flex; align-items: center; gap: 12px;
    flex-wrap: wrap; font-size: 12.5px;
    color: rgba(255,255,255,0.78);
}
.cri-lede-main-cta {
    display: inline-flex; align-items: center; gap: 6px;
    margin-left: auto;
    padding: 7px 16px;
    background: var(--crc-gold-500); color: var(--crc-brand-900);
    border-radius: 999px;
    font-weight: 800; font-size: 12px;
    letter-spacing: 0.02em;
}

/* side cards do mosaic */
.cri-lede-side-card {
    display: grid;
    grid-template-columns: 130px 1fr;
    align-items: stretch;
}
.cri-lede-side-left {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 8px;
    color: var(--crc-white, #fff);
    text-align: center;
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    position: relative;
}
.cri-lede-side-card--urgente .cri-lede-side-left   { background: linear-gradient(135deg, #6C2222 0%, var(--cri-red) 100%); }
.cri-lede-side-card--medio .cri-lede-side-left     { background: linear-gradient(135deg, #6E3413 0%, var(--cri-amber) 100%); }
.cri-lede-side-card--tranquilo .cri-lede-side-left { background: linear-gradient(135deg, #1B3A21 0%, var(--cri-green) 100%); }
.cri-lede-side-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 32px; color: var(--crc-gold-500);
    line-height: 1; letter-spacing: -0.01em;
}
.cri-lede-side-num-lbl {
    font-size: 9px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: rgba(255,255,255,0.78);
    margin-top: 4px;
}
.cri-lede-side-body {
    padding: 14px 16px;
    display: flex; flex-direction: column;
    justify-content: space-between; gap: 6px;
}
.cri-lede-side-h3 {
    font-size: 13.5px; font-weight: 700;
    line-height: 1.3;
    color: var(--crc-text-strong);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cri-lede-side-foot {
    font-size: 11.5px; color: var(--crc-text-body); font-weight: 600;
}

/* ============== FEED ============== */
.cri-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 36px; margin-bottom: 60px;
}
.cri-feed-head {
    display: flex; align-items: baseline; justify-content: space-between;
    border-bottom: 1.5px solid var(--crc-border);
    padding-bottom: 14px; margin-bottom: 20px;
}
.cri-feed-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 26px; color: var(--crc-brand-900);
    letter-spacing: -0.01em; margin: 0;
}
.cri-feed-count { font-size: 13px; color: var(--crc-text-body); font-weight: 600; }

.cri-feed-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

/* ============== CARDS DO FEED ============== */
.cri-card {
    display: flex; flex-direction: column;
    background: var(--crc-white, #fff);
    border-radius: 12px; overflow: hidden;
    box-shadow: var(--cri-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease;
    text-decoration: none; color: inherit;
    border: 1px solid var(--crc-border);
}
.cri-card:hover { transform: translateY(-3px); box-shadow: var(--cri-shadow-md); border-color: var(--crc-brand-600); }

.cri-card-head {
    position: relative;
    padding: 26px 22px 22px;
    color: var(--crc-white, #fff);
    min-height: 175px;
    display: flex; flex-direction: column;
    justify-content: space-between;
    background: linear-gradient(135deg, var(--crc-brand-900) 0%, var(--crc-brand-700) 100%);
    overflow: hidden;
}
.cri-card-head::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 85% 15%, rgba(212,167,63,0.18) 0%, transparent 40%),
        radial-gradient(circle at 15% 85%, rgba(255,255,255,0.05) 0%, transparent 40%);
    pointer-events: none;
}
.cri-card-head > * { position: relative; z-index: 1; }

/* gradient por urgência */
.cri-card-head--urgente   { background: linear-gradient(135deg, #6C2222 0%, var(--cri-red) 100%); }
.cri-card-head--medio     { background: linear-gradient(135deg, #6E3413 0%, var(--cri-amber) 100%); }
.cri-card-head--tranquilo { background: linear-gradient(135deg, #1B3A21 0%, var(--cri-green) 100%); }
.cri-card-head--longo     { background: linear-gradient(135deg, #163A63 0%, #1F4E79 100%); }
.cri-card-head--encerrado { background: linear-gradient(135deg, #555 0%, #777 100%); }
.cri-card-head--sem       { background: linear-gradient(135deg, var(--crc-brand-900) 0%, var(--crc-brand-700) 100%); }

.cri-card-uf {
    position: absolute; top: 18px; right: 18px;
    background: var(--crc-white, #fff); color: var(--crc-brand-900);
    padding: 4px 10px; border-radius: 4px;
    font-size: 11px; font-weight: 800;
    z-index: 2;
    letter-spacing: 0.04em;
}

.cri-card-vagas {
    display: flex; flex-direction: column; gap: 4px;
    align-items: flex-start;
}
.cri-card-vagas-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(40px, 5vw, 56px);
    color: var(--crc-gold-500);
    line-height: 0.95; letter-spacing: -0.01em;
    text-shadow: 0 2px 8px rgba(0,0,0,0.20);
}
.cri-card-vagas-label {
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(255,255,255,0.78);
}
.cri-card-sigla-big {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(34px, 4.4vw, 50px);
    color: var(--crc-gold-500);
    line-height: 0.95; letter-spacing: -0.01em;
    text-shadow: 0 2px 12px rgba(0,0,0,0.20);
    white-space: nowrap; overflow: hidden;
    text-overflow: clip; max-width: 100%;
}

.cri-card-urgency {
    display: inline-flex; align-items: center; gap: 6px;
    align-self: flex-start;
    padding: 5px 12px; border-radius: 999px;
    background: rgba(255,255,255,0.16);
    backdrop-filter: blur(8px);
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.04em;
    margin-top: 14px;
}
.cri-card-urgency--urgente   { background: rgba(255,255,255,0.92); color: var(--cri-red); }
.cri-card-urgency--medio     { background: rgba(255,255,255,0.92); color: var(--cri-amber); }
.cri-card-urgency--tranquilo { background: rgba(255,255,255,0.92); color: var(--cri-green); }
.cri-card-urgency--longo     { background: rgba(255,255,255,0.18); color: rgba(255,255,255,0.95); }
.cri-card-urgency--encerrado { background: rgba(0,0,0,0.30); color: rgba(255,255,255,0.85); }

.cri-card-body {
    padding: 16px 18px 18px;
    display: flex; flex-direction: column; flex: 1;
    background: var(--crc-white, #fff);
}
.cri-card-h3 {
    font-size: 15px; font-weight: 700;
    line-height: 1.32;
    color: var(--crc-text-strong);
    margin: 0 0 14px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    letter-spacing: -0.005em;
}
.cri-card-foot {
    display: flex; align-items: center; gap: 10px;
    margin-top: auto; padding-top: 12px;
    border-top: 1px dashed var(--crc-border);
    font-size: 11.5px; color: var(--crc-text-body);
    flex-wrap: wrap;
}
.cri-card-salario {
    color: var(--crc-green-700) !important;
    font-weight: 800; font-size: 12px;
}
.cri-card-banca { font-weight: 700; color: var(--crc-brand-700); font-size: 11.5px; }
.cri-card-cta {
    margin-left: auto;
    color: var(--crc-gold-600); font-weight: 800;
    font-size: 11.5px;
}

/* ============== SIDEBAR ============== */
.cri-sidebar {
    display: flex; flex-direction: column; gap: 24px;
    position: sticky; top: 24px; align-self: start;
}
.cri-side-block {
    background: var(--crc-white, #fff);
    border-radius: 14px; padding: 22px 22px 24px;
    box-shadow: var(--cri-shadow-sm);
}
.cri-side-block--urgente { border-left: 3px solid var(--cri-red); }
.cri-side-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 19px; color: var(--crc-brand-900);
    margin: 0 0 16px; letter-spacing: -0.01em;
    display: flex; align-items: center; gap: 8px;
}
.cri-side-h3-icon { font-size: 18px; }

/* lista urgência */
.cri-side-list { list-style: none; padding: 0; margin: 0; }
.cri-side-list li {
    padding: 12px 0;
    border-bottom: 1px dashed var(--crc-border);
}
.cri-side-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.cri-side-list li:first-child { padding-top: 0; }
.cri-side-list a {
    display: flex; flex-direction: column; gap: 4px;
    text-decoration: none;
}
.cri-side-list-title {
    font-size: 13px; font-weight: 700;
    line-height: 1.35; color: var(--crc-text-strong);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cri-side-list a:hover .cri-side-list-title { color: var(--cri-red); }
.cri-side-list-meta {
    font-size: 11px; color: var(--cri-red);
    font-weight: 800; letter-spacing: 0.02em;
}

/* lista numérica salários */
.cri-side-numlist { list-style: none; padding: 0; margin: 0; }
.cri-side-numlist li {
    border-bottom: 1px dashed var(--crc-border);
}
.cri-side-numlist li:last-child { border-bottom: 0; }
.cri-side-numlist a {
    display: flex; gap: 14px; align-items: center;
    padding: 12px 0; text-decoration: none;
}
.cri-side-numlist li:first-child a { padding-top: 0; }
.cri-side-numlist li:last-child a { padding-bottom: 0; }
.cri-side-num-val {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 18px; color: var(--crc-green-700);
    line-height: 1; flex-shrink: 0;
    min-width: 64px;
}
.cri-side-num-info {
    flex: 1; min-width: 0;
    font-size: 11px; color: var(--crc-text-body);
    line-height: 1.3;
    display: flex; flex-direction: column; gap: 2px;
}
.cri-side-num-info strong {
    color: var(--crc-text-strong); font-weight: 700;
    font-size: 12.5px;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* lista bancas */
.cri-bancas-list { list-style: none; padding: 0; margin: 0; }
.cri-bancas-list li {
    border-bottom: 1px dashed var(--crc-border);
}
.cri-bancas-list li:last-child { border-bottom: 0; }
.cri-bancas-list a {
    display: flex; align-items: center; justify-content: space-between;
    padding: 11px 0; text-decoration: none;
    transition: color .15s;
}
.cri-bancas-list li:first-child a { padding-top: 0; }
.cri-bancas-list li:last-child a { padding-bottom: 0; }
.cri-banca-name {
    font-size: 13.5px; font-weight: 700;
    color: var(--crc-text-strong);
}
.cri-bancas-list a:hover .cri-banca-name { color: var(--crc-brand-700); }
.cri-banca-count {
    background: var(--crc-brand-100);
    color: var(--crc-brand-700);
    padding: 3px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 800;
}

/* CTA WhatsApp */
.cri-side-cta {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-white, #fff) !important;
    border-radius: 14px; padding: 26px 22px;
    position: relative; overflow: hidden;
}
.cri-side-cta::before {
    content: ""; position: absolute;
    top: -40px; right: -40px;
    width: 160px; height: 160px;
    background: radial-gradient(circle, rgba(212,167,63,0.18) 0%, transparent 70%);
}
.cri-side-cta * { color: inherit; position: relative; }
.cri-side-cta-eyebrow {
    color: var(--crc-gold-500) !important;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    margin-bottom: 10px; display: block;
}
.cri-side-cta-h3 {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic; font-weight: 700;
    font-size: 22px; line-height: 1.18;
    margin: 0 0 12px; letter-spacing: -0.01em;
    color: var(--crc-white, #fff) !important;
}
.cri-side-cta-text {
    font-size: 13.5px; line-height: 1.55;
    color: rgba(255,255,255,0.82) !important;
    margin: 0 0 18px;
}
.cri-side-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #25D366 !important;
    color: var(--crc-white, #fff) !important;
    font-weight: 800; font-size: 13.5px;
    padding: 11px 18px; border-radius: 999px;
    letter-spacing: 0.02em;
    transition: transform .15s;
    text-decoration: none !important;
}
.cri-side-cta-btn:hover { transform: translateY(-1px); }

/* paginação */
.cri-pag {
    display: flex; justify-content: center; gap: 6px;
    margin-top: 40px; padding-top: 24px;
    border-top: 1.5px solid var(--crc-border);
}
.cri-pag a, .cri-pag span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 38px; height: 38px; padding: 0 12px;
    border-radius: 8px;
    font-size: 13.5px; font-weight: 700;
    color: var(--crc-text-body);
    border: 1.5px solid transparent;
    transition: all .15s;
    text-decoration: none;
}
.cri-pag a:hover { background: var(--crc-brand-100); color: var(--crc-brand-900); }
.cri-pag .is-current { background: var(--crc-brand-900); color: var(--crc-white, #fff); }
.cri-pag .is-disabled { color: var(--crc-text-body); opacity: .4; cursor: not-allowed; }

/* ============== RESPONSIVO ============== */
@media (max-width: 1100px) {
    .cri-hero-grid { grid-template-columns: 1fr; gap: 28px; }
    .cri-hero-right { order: 2; }
    .cri-layout { grid-template-columns: 1fr; }
    .cri-sidebar { position: static; }
    .cri-lede-grid { grid-template-columns: 1fr; }
    .cri-lede-side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
    .cri-lede-side-card:nth-child(3) { grid-column: span 2; }
    .cri-lede-main { min-height: 380px; }
    .cri-lede-main-body { min-height: 380px; }
}
@media (max-width: 760px) {
    .cri-page { padding: 0 16px; }
    .cri-hero { margin: 8px -16px 28px; padding: 22px 18px 26px; border-radius: 14px; }
    .cri-hero-stats { gap: 18px; }
    .cri-hero-stat-num { font-size: 24px; }

    /* search mobile · botão circular */
    .cri-hero-search { height: 48px; padding: 0 4px 0 16px; }
    .cri-hero-search > svg { margin-right: 10px; width: 17px; height: 17px; }
    .cri-page input.cri-hero-search-input { height: 46px !important; line-height: 46px !important; font-size: 15px !important; }
    .cri-hero-search-btn {
        font-size: 0 !important; color: transparent !important;
        width: 40px !important; height: 40px !important;
        padding: 0 !important; border-radius: 50% !important;
        align-self: center !important;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23D4A73F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") !important;
        background-position: center !important;
        background-repeat: no-repeat !important;
        background-size: 17px 17px !important;
    }

    .cri-lede-main { min-height: 340px; }
    .cri-lede-main-body { padding: 24px 22px 22px; min-height: 340px; }
    .cri-lede-vagas-num { font-size: 56px; }
    .cri-lede-side { grid-template-columns: 1fr; }
    .cri-lede-side-card:nth-child(3) { grid-column: span 1; }
    .cri-lede-side-card { grid-template-columns: 100px 1fr; }

    .cri-feed-grid { grid-template-columns: 1fr; }
    .cri-card-head { padding: 22px 20px 20px; min-height: 150px; }
    .cri-card-vagas-num { font-size: 42px; }
    .cri-card-sigla-big { font-size: 32px; }
    .cri-feed-h2 { font-size: 22px; }
}

/* Fix · esconder map-frame residual */
.cri-page .map-frame { stroke: transparent !important; fill: transparent !important; display: none; }
/* compass + scale (decorações do svg) discretas no nosso contexto */
.cri-page .cr-brazil-map .compass,
.cri-page .cr-brazil-map .scale { display: none; }

/* ==========================================================================
   FIX MOBILE /inscricoes-abertas/ v1.4.2 · @since 30/04/2026
   - Esconder textos redundantes do mapa mobile
   - Transformar lista vertical de UFs em grid 4 colunas compacto
   - Hero mais enxuto no mobile
   ========================================================================== */
@media (max-width: 760px) {

    /* === Hero mais enxuto · esconde descrição longa === */
    .cri-page .cri-hero { padding: 18px 16px 20px; }
    .cri-page .cri-hero-subtitle { display: none; }
    .cri-page .cri-hero-title { font-size: clamp(28px, 7vw, 38px); }
    .cri-page .cri-hero-stats { gap: 16px; margin: 4px 0 4px; }
    .cri-page .cri-hero-stat-num { font-size: 22px; }
    .cri-page .cri-hero-stat-label { font-size: 9.5px; letter-spacing: 0.10em; }

    /* === Tabs de região mobile · scroll horizontal compacto === */
    .cri-page .cr-bm-mobile { padding: 0 !important; margin-top: 8px; }
    .cri-page .cr-bm-mob-title { display: none !important; }
    .cri-page .cr-bm-mob-summary { display: none !important; }
    .cri-page .cr-bm-mob-tabs {
        display: flex; gap: 6px;
        overflow-x: auto; padding: 4px 0 8px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .cri-page .cr-bm-mob-tabs::-webkit-scrollbar { display: none; }
    .cri-page .cr-bm-mob-tab {
        flex-shrink: 0;
        padding: 6px 12px !important;
        border-radius: 999px !important;
        background: rgba(255,255,255,0.08) !important;
        border: 1px solid rgba(255,255,255,0.18) !important;
        color: rgba(255,255,255,0.78) !important;
        font-size: 11.5px !important;
        font-weight: 700 !important;
        white-space: nowrap;
    }
    .cri-page .cr-bm-mob-tab.is-selected {
        background: var(--crc-gold-500) !important;
        color: var(--crc-brand-900) !important;
        border-color: var(--crc-gold-500) !important;
    }

    /* === Grid de UFs · 4 colunas compactas === */
    .cri-page .cr-bm-mob-grid {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 6px !important;
        padding: 4px 0 0 !important;
        margin: 0 !important;
        max-height: none !important;
    }
    .cri-page .cr-bm-mob-pill {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 2px !important;
        padding: 9px 4px !important;
        border-radius: 8px !important;
        background: rgba(255,255,255,0.08) !important;
        border: 1px solid rgba(255,255,255,0.16) !important;
        color: var(--crc-white, #fff) !important;
        text-align: center;
        min-height: 56px;
        text-decoration: none;
        transition: all .15s;
    }
    .cri-page .cr-bm-mob-pill:hover,
    .cri-page .cr-bm-mob-pill:focus {
        background: rgba(255,255,255,0.16) !important;
        border-color: rgba(212,167,63,0.45) !important;
    }
    .cri-page .cr-bm-mob-pill.is-active {
        background: var(--crc-gold-500) !important;
        border-color: var(--crc-gold-500) !important;
        color: var(--crc-brand-900) !important;
    }
    /* sigla forte */
    .cri-page .cr-bm-mob-pill > strong {
        font-size: 13px !important;
        font-weight: 800 !important;
        letter-spacing: 0.04em !important;
        line-height: 1 !important;
        color: var(--crc-gold-500) !important;
    }
    .cri-page .cr-bm-mob-pill.is-active > strong { color: var(--crc-brand-900) !important; }
    /* esconde nome completo (Acre, Alagoas...) — economiza espaço */
    .cri-page .cr-bm-mob-pill > span { display: none !important; }
    /* count compacto */
    .cri-page .cr-bm-mob-pill > em {
        font-size: 11px !important;
        font-weight: 800 !important;
        font-style: normal !important;
        line-height: 1 !important;
        color: rgba(255,255,255,0.78) !important;
    }
    .cri-page .cr-bm-mob-pill.is-active > em { color: var(--crc-brand-900) !important; opacity: .8; }

    /* esconder UFs com 0 concursos pra economizar espaço */
    .cri-page .cr-bm-mob-pill[aria-label*=" 0 "] { opacity: 0.35; pointer-events: none; }
}

@media (max-width: 380px) {
    /* telas muito pequenas: 3 colunas */
    .cri-page .cr-bm-mob-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

/* ==========================================================================
   FIX MOBILE FASE 2 v1.4.3 · @since 30/04/2026
   - Mapa colapsável (CSS-only via checkbox)
   - Hero ainda mais compacto
   - Cards do feed densificados (head 175→100px)
   - Esconder pílula "Inscrições abertas" redundante no mobile
   - "Termina em breve" limitado a 3 itens visíveis
   ========================================================================== */

/* === TOGGLE DO MAPA · checkbox-driven === */
/* Default: label e wrapper sempre visíveis (DESKTOP) */
.cri-mapa-toggle-input { position: absolute; opacity: 0; pointer-events: none; }
.cri-mapa-toggle { display: none; }
.cri-mapa-wrap { display: block; }

@media (max-width: 1100px) {
    /* Mobile e tablet: mapa colapsável */
    .cri-mapa-toggle {
        display: flex; align-items: center; gap: 10px;
        width: 100%;
        padding: 12px 16px;
        background: rgba(255,255,255,0.10);
        border: 1px solid rgba(255,255,255,0.22);
        border-radius: 12px;
        color: #fff;
        font-size: 14px; font-weight: 700;
        letter-spacing: 0.01em;
        cursor: pointer;
        transition: all .18s ease;
        margin-bottom: 8px;
        backdrop-filter: blur(6px);
        user-select: none;
    }
    .cri-mapa-toggle:hover {
        background: rgba(255,255,255,0.16);
        border-color: rgba(212,167,63,0.45);
    }
    .cri-mapa-toggle-ico { font-size: 16px; line-height: 1; }
    .cri-mapa-toggle-text { flex: 1; text-align: left; }
    .cri-mapa-toggle-count {
        font-size: 11px; font-weight: 800;
        padding: 3px 9px; border-radius: 999px;
        background: var(--crc-gold-500); color: var(--crc-brand-900);
        letter-spacing: 0.04em;
    }
    .cri-mapa-toggle-chev {
        width: 16px; height: 16px;
        color: rgba(255,255,255,0.65);
        transition: transform .25s ease;
        flex-shrink: 0;
    }
    /* Wrapper colapsado por padrão */
    .cri-mapa-wrap {
        max-height: 0;
        overflow: hidden;
        transition: max-height .35s ease, opacity .25s ease, margin .25s ease;
        opacity: 0;
        margin-top: 0;
    }
    /* Aberto quando o checkbox tá marcado */
    .cri-mapa-toggle-input:checked ~ .cri-mapa-wrap {
        max-height: 4000px;
        opacity: 1;
        margin-top: 8px;
    }
    .cri-mapa-toggle-input:checked ~ .cri-mapa-toggle .cri-mapa-toggle-chev {
        transform: rotate(180deg);
        color: var(--crc-gold-500);
    }
    /* state aberto: visual do toggle muda */
    .cri-mapa-toggle-input:checked ~ .cri-mapa-toggle {
        background: rgba(212,167,63,0.16);
        border-color: rgba(212,167,63,0.55);
    }
}

/* ==========================================================================
   MOBILE · ajustes finos de densidade
   ========================================================================== */
@media (max-width: 760px) {

    /* === Hero ainda mais compacto === */
    .cri-hero { padding: 16px 14px 18px; }
    .cri-hero-grid { gap: 14px; }
    .cri-hero-eyebrow {
        font-size: 10px;
        letter-spacing: 0.14em;
        margin: 0;
    }
    .cri-hero-title { font-size: clamp(26px, 6.8vw, 34px); margin: 0; }
    .cri-hero-stats {
        gap: 14px;
        margin: 2px 0;
    }
    .cri-hero-stat-num { font-size: 19px; }
    .cri-hero-stat-label { font-size: 8.5px; letter-spacing: 0.10em; }

    /* === Search e chips · margens menores === */
    .cri-hero-search { margin-top: 0; }
    .cri-chips { gap: 6px; padding: 2px 0; }
    .cri-chip { padding: 6px 11px; font-size: 11.5px; }

    /* === Hero right · menos margem === */
    .cri-hero-right { margin-top: 4px; }
    .cri-mapa-toggle { padding: 11px 14px; font-size: 13px; }
    .cri-mapa-toggle-count { font-size: 10px; padding: 2px 8px; }

    /* === MOSAIC mais enxuto === */
    .cri-lede { margin: 0 0 24px; }
    .cri-lede-grid { gap: 10px; }
    .cri-lede-side { gap: 10px; }
    .cri-lede-main { min-height: 280px; }
    .cri-lede-main-body { padding: 20px 18px 18px; min-height: 280px; }
    .cri-lede-vagas-num { font-size: 48px; }
    .cri-lede-vagas-label { font-size: 11px; letter-spacing: 0.10em; }
    .cri-lede-main-h1 { font-size: 18px; line-height: 1.3; -webkit-line-clamp: 2; }
    .cri-lede-main-excerpt { display: none; }
    .cri-lede-side-card { grid-template-columns: 88px 1fr; }
    .cri-lede-side-left { padding: 6px; }
    .cri-lede-side-num { font-size: 24px; }
    .cri-lede-side-num-lbl { font-size: 8px; }
    .cri-lede-side-body { padding: 12px 14px; }
    .cri-lede-side-h3 { font-size: 13px; -webkit-line-clamp: 2; }

    /* === FEED · cards densificados === */
    .cri-feed-head { margin-bottom: 14px; padding-bottom: 10px; }
    .cri-feed-h2 { font-size: 20px; }
    .cri-feed-grid { gap: 10px; grid-template-columns: 1fr; }

    .cri-card-head {
        padding: 14px 16px 14px;
        min-height: 0 !important;
        flex-direction: row;
        align-items: center;
        gap: 14px;
    }
    .cri-card-head::before { display: none; } /* tira pattern · economiza pintura */
    /* sigla mais discreta */
    .cri-card-sigla-big {
        font-size: 24px !important;
        text-shadow: none;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 60%;
    }
    .cri-card-vagas {
        flex-direction: row;
        align-items: baseline;
        gap: 6px;
    }
    .cri-card-vagas-num { font-size: 28px !important; line-height: 1; }
    .cri-card-vagas-label { font-size: 9px; letter-spacing: 0.10em; }
    /* UF mais discreto */
    .cri-card-uf {
        position: static;
        background: rgba(255,255,255,0.18);
        color: #fff;
        padding: 3px 7px;
        font-size: 10px;
        margin-left: auto;
    }
    /* esconde pílula "Inscrições abertas" redundante */
    .cri-card-urgency--inscritas { display: none !important; }
    /* outras urgências (urgente/medio/etc) ficam compactas */
    .cri-card-urgency {
        margin-top: 0;
        padding: 3px 9px;
        font-size: 10px;
        flex-shrink: 0;
    }
    /* corpo do card mais enxuto */
    .cri-card-body { padding: 12px 14px 14px; }
    .cri-card-h3 {
        font-size: 13.5px;
        margin: 0 0 8px;
        -webkit-line-clamp: 2;
    }
    .cri-card-foot {
        padding-top: 8px;
        font-size: 11px;
        gap: 8px;
    }

    /* === SIDEBAR mobile · "Termina em breve" só 3 === */
    .cri-side-block { padding: 18px 18px 20px; }
    .cri-side-h3 { font-size: 17px; margin-bottom: 12px; }
    .cri-side-block--urgente .cri-side-list li:nth-child(n+4) {
        display: none;
    }
    /* lista numérica salários · 4 itens (em vez de 5) */
    .cri-side-numlist li:nth-child(n+5) { display: none; }
}

@media (max-width: 380px) {
    .cri-card-sigla-big { font-size: 20px !important; max-width: 50%; }
    .cri-card-vagas-num { font-size: 24px !important; }
}

/* Fix v1.4.4 · cri-hero-right block no mobile */
@media (max-width: 1100px) {
    .cri-page .cri-hero-right { display: block !important; flex-direction: unset !important; }
    .cri-page .cri-mapa-toggle { width: 100% !important; box-sizing: border-box; }
}

/* ==========================================================================
   FIX v1.4.5 · @since 30/04/2026
   1) Search button cor harmonizada com /noticias/ e /concursos-previstos/
   2) Cards estourando viewport · grid item com min-width auto
   ========================================================================== */

/* Fix 1 · Search button DESKTOP harmonizar com .crp-/.crn- */
@media (min-width: 761px) {
    .cri-page .cri-hero-search-btn {
        height: 38px !important;
        padding: 0 22px !important;
        background: var(--crc-brand-900) !important;
        color: var(--crc-gold-500) !important;
        font-weight: 700 !important;
        letter-spacing: 0.04em !important;
        font-size: 13px !important;
        transition: all .18s ease !important;
    }
    .cri-page .cri-hero-search-btn:hover {
        background: var(--crc-brand-700) !important;
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(11, 31, 58, 0.18);
    }
}

/* Fix 2 · Grid items com min-content forçando overflow */
.cri-page .cri-layout > section,
.cri-page .cri-layout > aside,
.cri-page .cri-feed-grid > * {
    min-width: 0;
}
.cri-page .cri-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
}
@media (max-width: 1100px) {
    .cri-page .cri-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}
@media (max-width: 760px) {
    .cri-page .cri-feed-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* ==========================================================================
   SINGLE NOTÍCIA · .crns-* · @since 30/04/2026
   Template editorial pra posts da categoria notícias (CAT_NOTICIAS=18495)
   ========================================================================== */

.crns-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px 60px;
    --crns-shadow-sm: 0 1px 2px rgba(11,31,58,0.04), 0 2px 6px rgba(11,31,58,0.04);
    --crns-shadow-md: 0 4px 12px rgba(11,31,58,0.06), 0 12px 32px rgba(11,31,58,0.06);
}

/* === BREADCRUMB === */
.crs-breadcrumb {
    display: flex; align-items: center; gap: 8px;
    flex-wrap: wrap;
    padding: 14px 0 6px;
    font-size: 12.5px;
    color: var(--crc-text-body);
}
.crs-breadcrumb a { color: var(--crc-brand-700); text-decoration: none; font-weight: 600; transition: color .15s; }
.crs-breadcrumb a:hover { color: var(--crc-brand-900); }
.crs-bc-sep { color: var(--crc-border); font-weight: 700; }
.crs-bc-current { color: var(--crc-text-strong); font-weight: 700; }

/* === HERO === */
.crns-hero {
    position: relative;
    margin: 8px -24px 36px;
    padding: 36px 32px 32px;
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
    border-radius: 18px;
    color: #fff;
    overflow: hidden;
}
.crns-hero::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 12% 18%, rgba(212,167,63,0.16) 0%, transparent 40%),
        radial-gradient(circle at 92% 82%, rgba(255,255,255,0.06) 0%, transparent 40%);
    pointer-events: none;
}
.crns-hero-inner { position: relative; z-index: 1; }
.crns-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-500);
    margin-bottom: 14px;
}
.crns-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
}
.crns-hero-sigla {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(56px, 8vw, 110px);
    color: var(--crc-gold-500);
    line-height: 0.95; letter-spacing: -0.02em;
    text-shadow: 0 4px 24px rgba(0,0,0,0.30);
    white-space: nowrap;
    align-self: center;
}
.crns-hero-text { min-width: 0; }
.crns-hero-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.18; letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 12px;
    text-shadow: 0 2px 14px rgba(0,0,0,0.30);
}
.crns-hero-lead {
    font-size: 15px; line-height: 1.55;
    color: rgba(255,255,255,0.82);
    margin: 0 0 14px;
    max-width: 720px;
}

/* meta line */
.crs-meta-line {
    display: flex; flex-wrap: wrap; gap: 0;
    list-style: none; padding: 0; margin: 0;
    font-size: 12px;
    color: rgba(255,255,255,0.78);
}
.crs-meta-line li {
    display: inline-flex; align-items: center;
    padding: 0 14px;
    border-right: 1px solid rgba(255,255,255,0.16);
    line-height: 1.4;
}
.crs-meta-line li:first-child { padding-left: 0; }
.crs-meta-line li:last-child { border-right: 0; padding-right: 0; }

/* === LAYOUT (body + sidebar) === */
.crns-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px;
    align-items: start;
}
.crns-layout > * { min-width: 0; }

/* === BODY (artigo) === */
.crns-body {
    background: #fff;
    border-radius: 14px;
    padding: 36px 44px 32px;
    box-shadow: var(--crns-shadow-sm);
    border: 1px solid var(--crc-border);
}

/* prose editorial · max-width 720 */
.crns-body-prose {
    max-width: 720px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.7;
    color: var(--crc-text-body);
}
.crns-body-prose p {
    margin: 0 0 18px;
}
.crns-body-prose p:first-of-type::first-letter {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    float: left;
    font-size: 64px;
    line-height: 0.9;
    margin: 4px 10px -2px 0;
    color: var(--crc-brand-900);
    background: linear-gradient(135deg, var(--crc-gold-500) 0%, var(--crc-brand-700) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.crns-body-prose h2,
.crns-body-prose h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    color: var(--crc-brand-900);
    letter-spacing: -0.01em;
    margin: 32px 0 14px;
}
.crns-body-prose h2 { font-size: 26px; }
.crns-body-prose h3 { font-size: 21px; }
.crns-body-prose strong { color: var(--crc-text-strong); font-weight: 700; }
.crns-body-prose a { color: var(--crc-brand-700); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.crns-body-prose a:hover { color: var(--crc-brand-900); }
.crns-body-prose ul, .crns-body-prose ol { padding-left: 22px; margin: 0 0 18px; }
.crns-body-prose li { margin: 6px 0; }
.crns-body-prose blockquote {
    border-left: 3px solid var(--crc-gold-500);
    padding: 4px 0 4px 20px;
    margin: 22px 0;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-size: 19px;
    color: var(--crc-brand-900);
}
.crns-body-prose img { max-width: 100%; height: auto; border-radius: 8px; margin: 18px 0; }

/* === BOX PDFs === */
.crs-pdfs {
    margin: 32px auto 0;
    max-width: 720px;
    padding: 22px 24px 24px;
    background: linear-gradient(135deg, #FBF8F0 0%, #F8F4E8 100%);
    border: 1px solid #E9DCB6;
    border-radius: 12px;
}
.crs-pdfs-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 19px;
    color: var(--crc-brand-900);
    margin: 0 0 14px;
    letter-spacing: -0.01em;
}
.crs-pdfs-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.crs-pdf-item {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--crc-border);
    border-radius: 8px;
    text-decoration: none;
    color: var(--crc-text-strong);
    font-weight: 600; font-size: 14px;
    transition: all .15s;
}
.crs-pdf-item:hover {
    border-color: var(--crc-gold-500);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(212,167,63,0.20);
}
.crs-pdf-icon { font-size: 18px; flex-shrink: 0; }
.crs-pdf-label { flex: 1; }
.crs-pdf-arrow { color: var(--crc-gold-600); font-weight: 800; font-size: 18px; }

/* === BLOCO "ESTUDE PRA ESSE CONCURSO" === */
.crs-cursos-orgao {
    margin: 36px -8px 0;
    padding: 32px 32px 36px;
    background: linear-gradient(135deg, #F8FAFE 0%, #EEF3FA 100%);
    border: 1.5px solid var(--crc-brand-100);
    border-radius: 16px;
    position: relative;
    overflow: hidden;
}
.crs-cursos-orgao::before {
    content: "";
    position: absolute;
    top: -50px; right: -50px;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(212,167,63,0.10) 0%, transparent 70%);
    pointer-events: none;
}
.crs-cursos-head { margin-bottom: 22px; position: relative; z-index: 1; }
.crs-cursos-eyebrow {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--crc-gold-600);
    margin-bottom: 8px;
}
.crs-cursos-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 28px; line-height: 1.2;
    color: var(--crc-brand-900);
    letter-spacing: -0.01em;
    margin: 0 0 6px;
}
.crs-cursos-h2 em {
    font-style: italic;
    color: var(--crc-brand-700);
}
.crs-cursos-sub {
    font-size: 13px;
    color: var(--crc-text-body);
    margin: 0;
    font-weight: 600;
}
/* Grid 4 colunas desktop · 2x2 mobile */
.crs-cursos-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    position: relative;
    z-index: 1;
}

/* CTA "Ver todos" · botão grande navy */
.crs-cursos-cta {
    margin-top: 24px;
    text-align: center;
    position: relative;
    z-index: 1;
}
.crs-cursos-cta-btn {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 14px 28px;
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-gold-500);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0.02em;
    border-radius: 999px;
    text-decoration: none;
    transition: all .18s ease;
    box-shadow: 0 4px 14px rgba(11,31,58,0.20);
}
.crs-cursos-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(11,31,58,0.28);
    color: #fff;
}
.crs-cursos-cta-btn:hover svg {
    transform: translateX(3px);
}
.crs-cursos-cta-btn svg {
    transition: transform .18s ease;
}

/* === FOOTER da matéria · share + fonte === */
.crns-article-footer {
    margin-top: 32px;
    padding-top: 22px;
    border-top: 1px dashed var(--crc-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}
.crs-share { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.crs-share-label {
    font-size: 11.5px; font-weight: 800;
    letter-spacing: 0.10em; text-transform: uppercase;
    color: var(--crc-text-body);
}
.crs-share-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px;
    border-radius: 50%;
    color: #fff;
    transition: all .15s;
}
.crs-share-wa { background: #25D366; }
.crs-share-x  { background: #000; }
.crs-share-li { background: #0A66C2; }
.crs-share-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.18); }
.crns-source-link {
    font-size: 12.5px;
    color: var(--crc-text-body);
    text-decoration: none;
    font-weight: 600;
    transition: color .15s;
}
.crns-source-link:hover { color: var(--crc-brand-700); }

/* === SIDEBAR === */
.crns-sidebar {
    display: flex; flex-direction: column; gap: 24px;
    position: sticky; top: 24px; align-self: start;
}
.crs-side-block {
    background: #fff;
    border-radius: 14px;
    padding: 22px 22px 24px;
    box-shadow: var(--crns-shadow-sm);
    border: 1px solid var(--crc-border);
}
.crs-side-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 19px;
    color: var(--crc-brand-900);
    margin: 0 0 14px;
    letter-spacing: -0.01em;
}
.crs-side-list { list-style: none; padding: 0; margin: 0; }
.crs-side-list li { padding: 12px 0; border-bottom: 1px dashed var(--crc-border); }
.crs-side-list li:first-child { padding-top: 0; }
.crs-side-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.crs-side-list a {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 10px;
    text-decoration: none;
    align-items: start;
}
.crs-side-list-sigla {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 14px;
    color: var(--crc-gold-600);
    line-height: 1.2;
    text-align: center;
    background: var(--crc-brand-100);
    border-radius: 6px;
    padding: 6px 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.crs-side-list-title {
    font-size: 12.5px; font-weight: 700;
    line-height: 1.32;
    color: var(--crc-text-strong);
    grid-column: 2;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.crs-side-list a:hover .crs-side-list-title { color: var(--crc-brand-700); }
.crs-side-list-uf {
    grid-column: 2;
    font-size: 11px; font-weight: 700;
    color: var(--crc-text-body);
    margin-top: 2px;
}

/* sidebar CTA */
.crs-side-cta {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: #fff !important;
    border-radius: 14px;
    padding: 26px 22px;
    position: relative;
    overflow: hidden;
}
.crs-side-cta::before {
    content: "";
    position: absolute; top: -40px; right: -40px;
    width: 160px; height: 160px;
    background: radial-gradient(circle, rgba(212,167,63,0.18) 0%, transparent 70%);
}
.crs-side-cta * { color: inherit; position: relative; }
.crs-side-cta-eyebrow {
    color: var(--crc-gold-500) !important;
    font-size: 10.5px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    margin-bottom: 10px; display: block;
}
.crs-side-cta-h3 {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-style: italic; font-weight: 700;
    font-size: 20px; line-height: 1.18;
    margin: 0 0 10px;
    letter-spacing: -0.01em;
    color: #fff !important;
}
.crs-side-cta-text {
    font-size: 13px; line-height: 1.55;
    color: rgba(255,255,255,0.82) !important;
    margin: 0 0 16px;
}
.crs-side-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #25D366 !important;
    color: #fff !important;
    font-weight: 800; font-size: 13.5px;
    padding: 11px 18px; border-radius: 999px;
    text-decoration: none !important;
    transition: transform .15s;
}
.crs-side-cta-btn:hover { transform: translateY(-1px); }

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width: 1100px) {
    .crns-layout { grid-template-columns: minmax(0, 1fr); }
    .crns-sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
    .crns-sidebar > * { flex: 1 1 280px; }
}
@media (max-width: 760px) {
    .crns-page { padding: 0 16px 40px; }
    .crns-hero {
        margin: 8px -16px 24px;
        padding: 24px 18px 22px;
        border-radius: 14px;
    }
    .crns-hero-eyebrow { margin-bottom: 10px; font-size: 10px; }
    .crns-hero-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
        text-align: left;
    }
    .crns-hero-sigla {
        font-size: clamp(40px, 14vw, 64px);
        align-self: flex-start;
        line-height: 1;
    }
    .crns-hero-title { font-size: clamp(22px, 5.6vw, 28px); }
    .crns-hero-lead { font-size: 14px; }
    .crs-meta-line { font-size: 11px; gap: 8px 0; }
    .crs-meta-line li { padding: 0 10px; }

    .crns-body {
        padding: 24px 18px 24px;
        border-radius: 12px;
    }
    .crns-body-prose { font-size: 16px; line-height: 1.65; }
    .crns-body-prose p:first-of-type::first-letter { font-size: 48px; }
    .crns-body-prose h2 { font-size: 22px; margin-top: 26px; }
    .crns-body-prose h3 { font-size: 18px; }

    .crs-pdfs { padding: 18px 16px 20px; }
    .crs-pdfs-title { font-size: 17px; }

    .crs-cursos-orgao {
        margin: 26px -8px 0;
        padding: 24px 18px 26px;
        border-radius: 12px;
    }
    .crs-cursos-h2 { font-size: 22px; }
    .crs-cursos-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .crs-cursos-cta-btn {
        padding: 12px 22px;
        font-size: 13px;
        width: 100%;
        justify-content: center;
    }

    .crns-article-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .crns-sidebar { flex-direction: column; gap: 16px; }
    .crns-sidebar > * { flex: 1 1 100%; }
}
@media (max-width: 380px) {
    .crs-cursos-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}


/* === FIX v1.5.1+ · esconder sidebar antiga Porto + sigla mobile não estourar === */

/* esconder porto blog sidebar quando crns-active */
body.crns-active .porto-blog-sidebar,
body.crns-active aside.porto-blog-sidebar,
body.crns-active .col-lg-3.sidebar.right-sidebar,
body.crns-active .col-lg-3.sidebar.left-sidebar { display: none !important; }

/* expandir o conteúdo central pra full width quando sidebar Porto sumiu */
body.crns-active .col-lg-9.main-content,
body.crns-active .col-md-9.main-content {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* sigla mobile · não estourar viewport · ellipsis se necessário */
@media (max-width: 760px) {
    .crns-hero-sigla {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    /* shrink fonte se sigla muito longa */
    .crns-hero[data-sigla-len-long] .crns-hero-sigla {
        font-size: clamp(34px, 11vw, 52px) !important;
    }
}


/* ==========================================================================
   SINGLE INSCRIÇÃO ABERTA · .cris-* · @since 30/04/2026
   Template focado em AÇÃO IMEDIATA (concurseiro decide AGORA se inscreve)
   Reusa .crs-* shared. Próprio: hero + countdown + facts grid + CTA block.
   ========================================================================== */

.cris-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px 60px;
    --cris-shadow-sm: 0 1px 2px rgba(11,31,58,0.04), 0 2px 6px rgba(11,31,58,0.04);
    --cris-shadow-md: 0 4px 12px rgba(11,31,58,0.06), 0 12px 32px rgba(11,31,58,0.06);
    --cris-urgent: #DC2626;
    --cris-warning: #F59E0B;
    --cris-ok: #10B981;
    --cris-expired: #6B7280;
}

/* === HERO === */
.cris-hero {
    position: relative;
    margin: 8px -24px 24px;
    padding: 32px 32px 28px;
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
    border-radius: 18px;
    color: #fff;
    overflow: hidden;
}
.cris-hero::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 12% 18%, rgba(212,167,63,0.16) 0%, transparent 40%),
        radial-gradient(circle at 92% 82%, rgba(255,255,255,0.06) 0%, transparent 40%);
    pointer-events: none;
}
.cris-hero-inner { position: relative; z-index: 1; }

/* Top: eyebrow + countdown · 2 colunas */
.cris-hero-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 14px;
}
.cris-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-500);
}

/* === COUNTDOWN ===  pílula visualmente forte · canto superior direito */
.cris-countdown {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 10px 14px;
    background: rgba(255,255,255,0.10);
    border: 1.5px solid rgba(255,255,255,0.20);
    border-radius: 999px;
    backdrop-filter: blur(8px);
}
.cris-countdown-icon { font-size: 22px; line-height: 1; }
.cris-countdown-textwrap { display: inline-flex; align-items: baseline; gap: 6px; }
.cris-countdown-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: 24px;
    line-height: 1;
    color: #fff;
}
.cris-countdown-label {
    font-size: 12px; font-weight: 700;
    color: rgba(255,255,255,0.82);
    letter-spacing: 0.02em;
}
.cris-countdown-text {
    font-size: 13.5px; font-weight: 800;
    color: #fff;
    letter-spacing: 0.02em;
}
/* Variantes urgência */
.cris-countdown.cris-urg--urgent {
    background: rgba(220,38,38,0.28);
    border-color: rgba(252,165,165,0.55);
    animation: crisCountdownPulse 2s ease-in-out infinite;
}
.cris-countdown.cris-urg--urgent .cris-countdown-num { color: #FCA5A5; }
.cris-countdown.cris-urg--warning {
    background: rgba(245,158,11,0.22);
    border-color: rgba(252,211,77,0.55);
}
.cris-countdown.cris-urg--warning .cris-countdown-num { color: #FCD34D; }
.cris-countdown.cris-urg--ok {
    background: rgba(16,185,129,0.18);
    border-color: rgba(110,231,183,0.50);
}
.cris-countdown.cris-urg--ok .cris-countdown-num { color: #6EE7B7; }
.cris-countdown.cris-urg--expired {
    background: rgba(107,114,128,0.30);
    border-color: rgba(156,163,175,0.50);
}
.cris-countdown.cris-urg--expired .cris-countdown-text { color: rgba(255,255,255,0.78); }

@keyframes crisCountdownPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); }
    50%      { box-shadow: 0 0 0 8px rgba(220,38,38,0); }
}

/* Hero grid (sigla + texto) · igual notícia */
.cris-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
}
.cris-hero-sigla {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(56px, 8vw, 110px);
    color: var(--crc-gold-500);
    line-height: 0.95; letter-spacing: -0.02em;
    text-shadow: 0 4px 24px rgba(0,0,0,0.30);
    white-space: nowrap;
    align-self: center;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.cris-hero-text { min-width: 0; }
.cris-hero-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.18; letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 12px;
    text-shadow: 0 2px 14px rgba(0,0,0,0.30);
}
.cris-hero-lead {
    font-size: 15px; line-height: 1.55;
    color: rgba(255,255,255,0.82);
    margin: 0 0 14px;
    max-width: 720px;
}

/* === QUICK FACTS GRID === */
.cris-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 -8px 24px;
}
.cris-fact {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid var(--crc-border);
    border-radius: 12px;
    box-shadow: var(--cris-shadow-sm);
    transition: all .15s;
}
.cris-fact:hover {
    transform: translateY(-2px);
    box-shadow: var(--cris-shadow-md);
    border-color: var(--crc-brand-200);
}
.cris-fact-icon { font-size: 18px; line-height: 1; }
.cris-fact-label {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--crc-text-body);
    margin-top: 2px;
}
.cris-fact-value {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px;
    color: var(--crc-brand-900);
    letter-spacing: -0.01em;
    line-height: 1.15;
    margin-top: 2px;
}

/* === CTA BLOCK === */
.cris-cta-block {
    margin: 0 -8px 28px;
    padding: 24px 28px;
    background: linear-gradient(135deg, #FFF8E1 0%, #FBE7B0 100%);
    border: 1.5px solid #E9D08F;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
}
.cris-cta-block::before {
    content: "";
    position: absolute;
    top: -40px; right: -40px;
    width: 180px; height: 180px;
    background: radial-gradient(circle, rgba(212,167,63,0.20) 0%, transparent 70%);
}
.cris-cta-block.cris-cta-block--expired {
    background: linear-gradient(135deg, #F3F4F6 0%, #E5E7EB 100%);
    border-color: #D1D5DB;
}
.cris-cta-text { flex: 1 1 380px; min-width: 0; position: relative; z-index: 1; }
.cris-cta-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 24px; line-height: 1.18;
    color: var(--crc-brand-900);
    margin: 0 0 6px;
    letter-spacing: -0.01em;
}
.cris-cta-sub {
    font-size: 13.5px;
    color: var(--crc-text-body);
    margin: 0;
    font-weight: 600;
}
.cris-cta-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}
.cris-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 22px;
    border-radius: 999px;
    font-weight: 800; font-size: 14px;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: all .18s ease;
    white-space: nowrap;
}
.cris-cta-btn--primary {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-gold-500);
    box-shadow: 0 4px 14px rgba(11,31,58,0.20);
}
.cris-cta-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(11,31,58,0.28);
    color: #fff;
}
.cris-cta-btn--secondary {
    background: #fff;
    color: var(--crc-brand-900);
    border: 1.5px solid var(--crc-brand-900);
}
.cris-cta-btn--secondary:hover {
    background: var(--crc-brand-900);
    color: var(--crc-gold-500);
}

/* === LAYOUT (body + sidebar) === */
.cris-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px;
    align-items: start;
    margin-top: 8px;
}
.cris-layout > * { min-width: 0; }

/* === BODY === */
.cris-body {
    background: #fff;
    border-radius: 14px;
    padding: 32px 40px 28px;
    box-shadow: var(--cris-shadow-sm);
    border: 1px solid var(--crc-border);
}

/* Cargos · details collapsible */
.cris-cargos-details {
    margin: 0 0 28px;
    background: #F8FAFE;
    border: 1px solid var(--crc-brand-100);
    border-radius: 10px;
    padding: 0;
    overflow: hidden;
}
.cris-cargos-summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 18px;
    color: var(--crc-brand-900);
    transition: background .15s;
}
.cris-cargos-summary::-webkit-details-marker { display: none; }
.cris-cargos-summary:hover { background: rgba(11,31,58,0.04); }
.cris-cargos-summary::after {
    content: "▼";
    font-size: 12px;
    margin-left: 12px;
    transition: transform .2s;
    color: var(--crc-brand-700);
}
.cris-cargos-details[open] .cris-cargos-summary::after { transform: rotate(180deg); }
.cris-cargos-count {
    background: var(--crc-brand-900);
    color: var(--crc-gold-500);
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-style: normal; font-weight: 800;
    font-size: 11px; letter-spacing: 0.06em;
    padding: 4px 12px; border-radius: 999px;
    margin-left: auto; margin-right: 8px;
}
.cris-cargos-list {
    list-style: none; padding: 4px 20px 16px; margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 18px;
}
.cris-cargos-list li {
    padding: 8px 0;
    border-bottom: 1px dashed var(--crc-border);
    font-size: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.cris-cargo-nome { color: var(--crc-text-strong); font-weight: 600; }
.cris-cargo-vagas {
    color: var(--crc-brand-700);
    font-weight: 800;
    font-size: 12.5px;
    background: var(--crc-brand-100);
    padding: 3px 10px;
    border-radius: 999px;
    white-space: nowrap;
}
.cris-cargos-more { color: var(--crc-text-body); font-size: 12.5px; font-weight: 600; padding: 10px 0 0; border: 0; }

/* prose 720px */
.cris-body-prose {
    max-width: 720px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.7;
    color: var(--crc-text-body);
}
.cris-body-prose p { margin: 0 0 18px; }
.cris-body-prose p:first-of-type::first-letter {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    float: left;
    font-size: 64px;
    line-height: 0.9;
    margin: 4px 10px -2px 0;
    color: var(--crc-brand-900);
    background: linear-gradient(135deg, var(--crc-gold-500) 0%, var(--crc-brand-700) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.cris-body-prose h2, .cris-body-prose h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    color: var(--crc-brand-900);
    letter-spacing: -0.01em;
    margin: 32px 0 14px;
}
.cris-body-prose h2 { font-size: 26px; }
.cris-body-prose h3 { font-size: 21px; }
.cris-body-prose strong { color: var(--crc-text-strong); font-weight: 700; }
.cris-body-prose a {
    color: var(--crc-brand-700); font-weight: 600;
    text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}
.cris-body-prose ul, .cris-body-prose ol { padding-left: 22px; margin: 0 0 18px; }
.cris-body-prose li { margin: 6px 0; }

/* === SIDEBAR === */
.cris-sidebar {
    display: flex; flex-direction: column; gap: 24px;
    position: sticky; top: 24px; align-self: start;
}

/* === FOOTER da matéria === */
.cris-article-footer {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px dashed var(--crc-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}
.cris-source-link {
    font-size: 12.5px;
    color: var(--crc-text-body);
    text-decoration: none;
    font-weight: 600;
    transition: color .15s;
}
.cris-source-link:hover { color: var(--crc-brand-700); }

/* === ESCONDER SIDEBAR ANTIGA DO PORTO quando cris-active === */
body.cris-active .porto-blog-sidebar,
body.cris-active aside.porto-blog-sidebar,
body.cris-active .col-lg-3.sidebar.right-sidebar,
body.cris-active .col-lg-3.sidebar.left-sidebar { display: none !important; }

body.cris-active .col-lg-9.main-content,
body.cris-active .col-md-9.main-content {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width: 1100px) {
    .cris-layout { grid-template-columns: minmax(0, 1fr); }
    .cris-sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
    .cris-sidebar > * { flex: 1 1 280px; }
    .cris-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .cris-page { padding: 0 16px 40px; }
    .cris-hero {
        margin: 8px -16px 18px;
        padding: 22px 18px 22px;
        border-radius: 14px;
    }
    .cris-hero-eyebrow { font-size: 10px; }
    .cris-hero-top { margin-bottom: 14px; }
    .cris-countdown { padding: 8px 14px 8px 12px; gap: 10px; }
    .cris-countdown-num { font-size: 20px; }
    .cris-countdown-icon { font-size: 18px; }
    .cris-hero-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
    .cris-hero-sigla { font-size: clamp(40px, 14vw, 64px); align-self: flex-start; line-height: 1; }
    .cris-hero-title { font-size: clamp(22px, 5.6vw, 28px); }
    .cris-hero-lead { font-size: 14px; }

    .cris-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin: 0 -4px 18px;
    }
    .cris-fact { padding: 12px 14px; }
    .cris-fact-value { font-size: 18px; }

    .cris-cta-block {
        margin: 0 -4px 22px;
        padding: 20px 18px;
        flex-direction: column;
        align-items: stretch;
    }
    .cris-cta-h2 { font-size: 20px; }
    .cris-cta-actions { width: 100%; flex-direction: column; }
    .cris-cta-btn { width: 100%; justify-content: center; padding: 14px 18px; }

    .cris-body { padding: 22px 18px 22px; border-radius: 12px; }
    .cris-body-prose { font-size: 16px; line-height: 1.65; }
    .cris-body-prose p:first-of-type::first-letter { font-size: 48px; }
    .cris-body-prose h2 { font-size: 22px; margin-top: 26px; }

    .cris-cargos-list { grid-template-columns: minmax(0, 1fr); }
    .cris-cargos-summary { font-size: 16px; padding: 14px 16px; }

    .cris-article-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .cris-sidebar { flex-direction: column; gap: 16px; }
    .cris-sidebar > * { flex: 1 1 100%; }
}
@media (max-width: 480px) {
    .cris-facts { grid-template-columns: minmax(0, 1fr); }
    .cris-hero-top { flex-direction: column; align-items: flex-start; }
    .cris-countdown { width: auto; }
}


/* ==========================================================================
   SINGLE CONCURSO PREVISTO · .crps-* · @since 30/04/2026
   Template focado em ANTECIPAÇÃO. Hero colorido por status + timeline visual
   da jornada pré-edital + bloco cursos com framing "comece antes".
   Reusa .crs-* shared (breadcrumb, meta-line, pdfs, share, side-block, side-cta).
   ========================================================================== */

.crps-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px 60px;
    --crps-shadow-sm: 0 1px 2px rgba(11,31,58,0.04), 0 2px 6px rgba(11,31,58,0.04);
    --crps-shadow-md: 0 4px 12px rgba(11,31,58,0.06), 0 12px 32px rgba(11,31,58,0.06);
}

/* === HERO · gradient varia por status === */
.crps-hero {
    position: relative;
    margin: 8px -24px 20px;
    padding: 32px 32px 28px;
    border-radius: 18px;
    color: #fff;
    overflow: hidden;
    /* default: navy clássico */
    background: linear-gradient(135deg, #0B1F3A 0%, #163A63 50%, #1F4E79 100%);
}
.crps-hero::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 12% 18%, rgba(212,167,63,0.16) 0%, transparent 40%),
        radial-gradient(circle at 92% 82%, rgba(255,255,255,0.06) 0%, transparent 40%);
    pointer-events: none;
}

/* Variantes de fundo por status — mais sóbrias que os card heads (gradient navy + tinta de acento) */
.crps-hero--iminente   { background: linear-gradient(135deg, #0B1F3A 0%, #4A1818 60%, #C13030 100%); }
.crps-hero--banca      { background: linear-gradient(135deg, #0B1F3A 0%, #163A63 100%); }
.crps-hero--comissao   { background: linear-gradient(135deg, #0B1F3A 0%, #5A4519 100%); }
.crps-hero--autorizado { background: linear-gradient(135deg, #0B1F3A 0%, #2D5A36 100%); }
.crps-hero--contrato   { background: linear-gradient(135deg, #0B1F3A 0%, #2D5A36 100%); }
.crps-hero--avancou    { background: linear-gradient(135deg, #0B1F3A 0%, #2C5687 100%); }
.crps-hero--novo       { background: linear-gradient(135deg, #0B1F3A 0%, #3D2A6B 100%); }
.crps-hero--estudo     { background: linear-gradient(135deg, #0B1F3A 0%, #3A4453 100%); }
.crps-hero--prorrogado { background: linear-gradient(135deg, #0B1F3A 0%, #7A3D14 100%); }
.crps-hero--encerrado  { background: linear-gradient(135deg, #2A2A2A 0%, #555 100%); }
.crps-hero--indef      { background: linear-gradient(135deg, #0B1F3A 0%, #4A5360 100%); }

.crps-hero-inner { position: relative; z-index: 1; }

/* Top: eyebrow + status chip · 2 colunas */
.crps-hero-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 14px;
}
.crps-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--crc-gold-500);
}

/* === STATUS CHIP === */
.crps-status-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px 10px 14px;
    background: rgba(255,255,255,0.12);
    border: 1.5px solid rgba(255,255,255,0.22);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    font-weight: 800;
    color: #fff;
    font-size: 13.5px;
    letter-spacing: 0.02em;
}
.crps-status-icon { font-size: 18px; line-height: 1; }

/* Variantes de cor pra o chip · um tom mais saturado que o hero pra contraste */
.crps-status-chip--iminente   { background: rgba(193, 48, 48, 0.28); border-color: rgba(252,165,165,0.55); animation: crpsPulse 2s ease-in-out infinite; }
.crps-status-chip--banca      { background: rgba(31, 78, 121, 0.45); border-color: rgba(120,170,220,0.55); }
.crps-status-chip--comissao   { background: rgba(188, 146, 49, 0.35); border-color: rgba(252,211,77,0.55); }
.crps-status-chip--autorizado { background: rgba(95, 143, 107, 0.35); border-color: rgba(110,231,183,0.55); }
.crps-status-chip--contrato   { background: rgba(78, 120, 89, 0.35); border-color: rgba(110,231,183,0.55); }
.crps-status-chip--avancou    { background: rgba(44, 86, 135, 0.45); border-color: rgba(120,170,220,0.55); }
.crps-status-chip--novo       { background: rgba(91, 61, 168, 0.40); border-color: rgba(196,181,253,0.55); }
.crps-status-chip--estudo     { background: rgba(91, 100, 115, 0.45); border-color: rgba(180,190,200,0.45); }
.crps-status-chip--prorrogado { background: rgba(180, 93, 31, 0.35); border-color: rgba(252,178,89,0.55); }
.crps-status-chip--encerrado  { background: rgba(80, 80, 80, 0.45); border-color: rgba(180,180,180,0.45); }

@keyframes crpsPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(193, 48, 48, 0); }
    50%      { box-shadow: 0 0 0 8px rgba(193, 48, 48, 0); }
}

/* Hero grid (sigla + texto) */
.crps-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
}
.crps-hero-sigla {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 800;
    font-size: clamp(56px, 8vw, 110px);
    color: var(--crc-gold-500);
    line-height: 0.95; letter-spacing: -0.02em;
    text-shadow: 0 4px 24px rgba(0,0,0,0.30);
    white-space: nowrap;
    align-self: center;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.crps-hero-text { min-width: 0; }
.crps-hero-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.18; letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 12px;
    text-shadow: 0 2px 14px rgba(0,0,0,0.30);
}
.crps-hero-lead {
    font-size: 15px; line-height: 1.55;
    color: rgba(255,255,255,0.82);
    margin: 0 0 14px;
    max-width: 720px;
}

/* === TIMELINE · linha cronológica das etapas === */
.crps-timeline {
    margin: 0 -8px 24px;
    padding: 28px 32px 22px;
    background: linear-gradient(135deg, #FAFBFE 0%, #F1F4FA 100%);
    border: 1px solid var(--crc-brand-100);
    border-radius: 16px;
}
.crps-timeline-header { margin-bottom: 22px; }
.crps-timeline-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px; line-height: 1.2;
    color: var(--crc-brand-900);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.crps-timeline-sub {
    font-size: 13px;
    color: var(--crc-text-body);
    margin: 0;
    font-weight: 600;
}

.crps-timeline-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
}
/* Linha conectora horizontal (atrás dos dots) */
.crps-timeline-list::before {
    content: "";
    position: absolute;
    top: 24px; /* metade da altura do dot */
    left: 10%;
    right: 10%;
    height: 3px;
    background: linear-gradient(to right, var(--crc-gold-500) 0%, var(--crc-gold-500) var(--crps-progress, 0%), #E5E7EB var(--crps-progress, 0%), #E5E7EB 100%);
    z-index: 0;
}

.crps-timeline-step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
}
.crps-timeline-dot {
    width: 48px; height: 48px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #E5E7EB;
    color: #9CA3AF;
    font-size: 18px;
    border: 3px solid #fff;
    box-shadow: var(--crps-shadow-sm);
    transition: all .25s ease;
}
.crps-timeline-icon { display: block; }

.crps-timeline-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.crps-timeline-num {
    font-size: 10px; font-weight: 800;
    letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--crc-text-body);
}
.crps-timeline-label {
    font-size: 13px; font-weight: 700;
    color: var(--crc-text-strong);
    line-height: 1.3;
}

/* Estados */
.crps-timeline-step--done .crps-timeline-dot {
    background: linear-gradient(135deg, var(--crc-gold-500), var(--crc-gold-600));
    color: #fff;
}
.crps-timeline-step--done .crps-timeline-label { color: var(--crc-text-strong); }

.crps-timeline-step--current .crps-timeline-dot {
    background: linear-gradient(135deg, var(--crc-brand-900), var(--crc-brand-700));
    color: var(--crc-gold-500);
    transform: scale(1.18);
    box-shadow: 0 6px 20px rgba(11,31,58,0.30), 0 0 0 4px rgba(212,167,63,0.18);
}
.crps-timeline-step--current .crps-timeline-label {
    color: var(--crc-brand-900);
    font-weight: 800;
    font-size: 14px;
}
.crps-timeline-step--current .crps-timeline-num {
    color: var(--crc-brand-700);
}

.crps-timeline-step--future .crps-timeline-dot { background: #fff; border-color: #E5E7EB; }
.crps-timeline-step--future .crps-timeline-label { color: #9CA3AF; }
.crps-timeline-step--future .crps-timeline-icon { opacity: 0.4; }

/* Computar progresso da barra com data attributes seria ideal, mas como é PHP server-side,
   uso classes específicas pra cada índice. Math: 5 etapas → 12.5/37.5/62.5/87.5/100 */
.crps-timeline:has(.crps-timeline-step:nth-child(1).crps-timeline-step--current) .crps-timeline-list::before { --crps-progress: 0%; }
.crps-timeline:has(.crps-timeline-step:nth-child(2).crps-timeline-step--current) .crps-timeline-list::before { --crps-progress: 25%; }
.crps-timeline:has(.crps-timeline-step:nth-child(3).crps-timeline-step--current) .crps-timeline-list::before { --crps-progress: 50%; }
.crps-timeline:has(.crps-timeline-step:nth-child(4).crps-timeline-step--current) .crps-timeline-list::before { --crps-progress: 75%; }
.crps-timeline:has(.crps-timeline-step:nth-child(5).crps-timeline-step--current) .crps-timeline-list::before { --crps-progress: 100%; }

/* === TIMELINE ALT · pra status fora da linha (novo/avançou/contrato/prorrogado/encerrado) === */
.crps-timeline-alt {
    margin: 0 -8px 24px;
    padding: 22px 28px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 22px;
    background: linear-gradient(135deg, #FAFBFE 0%, #F1F4FA 100%);
    border: 1.5px solid var(--crc-brand-100);
}
.crps-timeline-alt-icon {
    font-size: 48px;
    line-height: 1;
    flex-shrink: 0;
}
.crps-timeline-alt-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px; line-height: 1.2;
    color: var(--crc-brand-900);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.crps-timeline-alt-sub {
    font-size: 14px;
    color: var(--crc-text-body);
    margin: 0;
    font-weight: 600;
}
/* Tinta de acento por status */
.crps-timeline-alt--novo       { background: linear-gradient(135deg, #FAF5FF 0%, #F3E8FF 100%); border-color: rgba(91,61,168,0.20); }
.crps-timeline-alt--avancou    { background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%); border-color: rgba(44,86,135,0.20); }
.crps-timeline-alt--contrato   { background: linear-gradient(135deg, #F0FDF4 0%, #DCFCE7 100%); border-color: rgba(45,90,54,0.20); }
.crps-timeline-alt--prorrogado { background: linear-gradient(135deg, #FFF7ED 0%, #FED7AA 100%); border-color: rgba(180,93,31,0.25); }
.crps-timeline-alt--encerrado  { background: linear-gradient(135deg, #F3F4F6 0%, #E5E7EB 100%); border-color: rgba(107,114,128,0.30); }

/* === QUICK FACTS === */
.crps-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 -8px 24px;
}
.crps-fact {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid var(--crc-border);
    border-radius: 12px;
    box-shadow: var(--crps-shadow-sm);
    transition: all .15s;
}
.crps-fact:hover {
    transform: translateY(-2px);
    box-shadow: var(--crps-shadow-md);
    border-color: var(--crc-brand-200);
}
.crps-fact-icon { font-size: 18px; line-height: 1; }
.crps-fact-label {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--crc-text-body);
    margin-top: 2px;
}
.crps-fact-value {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px;
    color: var(--crc-brand-900);
    letter-spacing: -0.01em;
    line-height: 1.15;
    margin-top: 2px;
}

/* === BLOCO cursos · framing antecipativo === */
.crps-cursos-wrap {
    margin: 0 0 28px;
}
/* Override do título do helper · vem de .crs-cursos-eyebrow */
.crps-cursos-wrap .crs-cursos-orgao::before {
    /* mantém o decorativo original */
}

/* === LAYOUT (body + sidebar) === */
.crps-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px;
    align-items: start;
    margin-top: 8px;
}
.crps-layout > * { min-width: 0; }

/* === BODY === */
.crps-body {
    background: #fff;
    border-radius: 14px;
    padding: 32px 40px 28px;
    box-shadow: var(--crps-shadow-sm);
    border: 1px solid var(--crc-border);
}
.crps-body-prose {
    max-width: 720px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.7;
    color: var(--crc-text-body);
}
.crps-body-prose p { margin: 0 0 18px; }
.crps-body-prose p:first-of-type::first-letter {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    float: left;
    font-size: 64px;
    line-height: 0.9;
    margin: 4px 10px -2px 0;
    color: var(--crc-brand-900);
    background: linear-gradient(135deg, var(--crc-gold-500) 0%, var(--crc-brand-700) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.crps-body-prose h2, .crps-body-prose h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    color: var(--crc-brand-900);
    letter-spacing: -0.01em;
    margin: 32px 0 14px;
}
.crps-body-prose h2 { font-size: 26px; }
.crps-body-prose h3 { font-size: 21px; }
.crps-body-prose strong { color: var(--crc-text-strong); font-weight: 700; }
.crps-body-prose a { color: var(--crc-brand-700); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.crps-body-prose ul, .crps-body-prose ol { padding-left: 22px; margin: 0 0 18px; }
.crps-body-prose li { margin: 6px 0; }

/* === ALERT CTA · "Quero ser avisado" === */
.crps-alert-cta {
    margin: 28px 0 0;
    padding: 24px 28px;
    background: linear-gradient(135deg, #ECFDF5 0%, #D1FAE5 100%);
    border: 1.5px solid #6EE7B7;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}
.crps-alert-cta-text { flex: 1 1 320px; min-width: 0; }
.crps-alert-cta-eyebrow {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: #047857;
    margin-bottom: 6px;
}
.crps-alert-cta-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic; font-weight: 700;
    font-size: 22px; line-height: 1.2;
    color: var(--crc-brand-900);
    margin: 0 0 6px;
    letter-spacing: -0.01em;
}
.crps-alert-cta-sub {
    font-size: 13.5px;
    color: #065F46;
    margin: 0;
    font-weight: 600;
}
.crps-alert-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #25D366;
    color: #fff;
    font-weight: 800; font-size: 14px;
    padding: 13px 24px;
    border-radius: 999px;
    text-decoration: none;
    transition: all .15s;
    box-shadow: 0 4px 12px rgba(37,211,102,0.30);
}
.crps-alert-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(37,211,102,0.40);
    color: #fff;
}

/* === SIDEBAR === */
.crps-sidebar {
    display: flex; flex-direction: column; gap: 24px;
    position: sticky; top: 24px; align-self: start;
}

/* === FOOTER da matéria === */
.crps-article-footer {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px dashed var(--crc-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}
.crps-source-link {
    font-size: 12.5px;
    color: var(--crc-text-body);
    text-decoration: none;
    font-weight: 600;
    transition: color .15s;
}
.crps-source-link:hover { color: var(--crc-brand-700); }

/* === ESCONDER SIDEBAR PORTO === */
body.crps-active .porto-blog-sidebar,
body.crps-active aside.porto-blog-sidebar,
body.crps-active .col-lg-3.sidebar.right-sidebar,
body.crps-active .col-lg-3.sidebar.left-sidebar { display: none !important; }

body.crps-active .col-lg-9.main-content,
body.crps-active .col-md-9.main-content {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width: 1100px) {
    .crps-layout { grid-template-columns: minmax(0, 1fr); }
    .crps-sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
    .crps-sidebar > * { flex: 1 1 280px; }
    .crps-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .crps-page { padding: 0 16px 40px; }
    .crps-hero {
        margin: 8px -16px 18px;
        padding: 22px 18px 22px;
        border-radius: 14px;
    }
    .crps-hero-eyebrow { font-size: 10px; }
    .crps-hero-top { margin-bottom: 14px; }
    .crps-status-chip { padding: 8px 14px 8px 12px; font-size: 12.5px; }
    .crps-status-icon { font-size: 16px; }
    .crps-hero-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
    .crps-hero-sigla { font-size: clamp(40px, 14vw, 64px); align-self: flex-start; line-height: 1; }
    .crps-hero-title { font-size: clamp(22px, 5.6vw, 28px); }
    .crps-hero-lead { font-size: 14px; }

    /* Timeline mobile · empilhado vertical */
    .crps-timeline { padding: 22px 18px 18px; margin: 0 -4px 22px; border-radius: 12px; }
    .crps-timeline-h2 { font-size: 19px; }
    .crps-timeline-list {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        position: relative;
    }
    .crps-timeline-list::before {
        top: 0; bottom: 0;
        left: 22px; right: auto;
        width: 3px; height: auto;
        background: linear-gradient(to bottom, var(--crc-gold-500) 0%, var(--crc-gold-500) var(--crps-progress, 0%), #E5E7EB var(--crps-progress, 0%), #E5E7EB 100%);
    }
    .crps-timeline-step {
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 14px;
    }
    .crps-timeline-text { flex: 1; min-width: 0; }
    .crps-timeline-dot { width: 44px; height: 44px; flex-shrink: 0; }

    .crps-timeline-alt {
        margin: 0 -4px 22px;
        padding: 18px 20px;
        gap: 16px;
        flex-direction: row;
        align-items: flex-start;
    }
    .crps-timeline-alt-icon { font-size: 36px; }
    .crps-timeline-alt-h2 { font-size: 18px; }

    .crps-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 -4px 18px; }
    .crps-fact { padding: 12px 14px; }
    .crps-fact-value { font-size: 18px; }

    .crps-body { padding: 22px 18px 22px; border-radius: 12px; }
    .crps-body-prose { font-size: 16px; line-height: 1.65; }
    .crps-body-prose p:first-of-type::first-letter { font-size: 48px; }
    .crps-body-prose h2 { font-size: 22px; margin-top: 26px; }

    .crps-alert-cta { padding: 20px 18px; flex-direction: column; align-items: stretch; }
    .crps-alert-cta-h3 { font-size: 19px; }
    .crps-alert-cta-btn { width: 100%; justify-content: center; }

    .crps-article-footer { flex-direction: column; align-items: flex-start; gap: 14px; }

    .crps-sidebar { flex-direction: column; gap: 16px; }
    .crps-sidebar > * { flex: 1 1 100%; }
}
@media (max-width: 480px) {
    .crps-facts { grid-template-columns: minmax(0, 1fr); }
    .crps-hero-top { flex-direction: column; align-items: flex-start; }
}


/* ==========================================================================
   FASE 4 · Polimentos finais @since 30/04/2026 · v1.7.1
   ========================================================================== */

/* === BLOCO CURSOS · ajustes pra grid 4 col em vez de 3 col === */
/* Em containers .crs-cursos-grid (4 colunas), os cards .cr-tax-rel-card precisam
   de footer flex ativado e arrow constrained */
.crs-cursos-grid .cr-tax-rel-footer {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    gap: 10px !important;
    margin-top: auto !important;
}
.crs-cursos-grid .cr-tax-rel-arrow {
    width: 32px !important;
    height: 32px !important;
    border-radius: 999px !important;
    flex-shrink: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1.5px solid var(--crc-border) !important;
    background: #fff !important;
    color: var(--crc-brand-700) !important;
    transition: all .18s ease !important;
    align-self: flex-end !important;
}
.crs-cursos-grid .cr-tax-rel-arrow svg {
    width: 14px !important;
    height: 14px !important;
}
.crs-cursos-grid .cr-tax-rel-card:hover .cr-tax-rel-arrow {
    background: linear-gradient(135deg, #163A63 0%, #0B1F3A 100%) !important;
    color: #fff !important;
    transform: translateX(2px) !important;
    border-color: transparent !important;
}
.crs-cursos-grid .cr-tax-rel-price-block {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

/* === SIGLA MOBILE · trunca elegantemente em todos os 3 prefixos === */
@media (max-width: 760px) {
    .crns-hero-sigla,
    .cris-hero-sigla,
    .crps-hero-sigla {
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
    /* Quando sigla é longa (Segurança, Pernambuco, etc), reduzir font automaticamente */
    .crns-hero-sigla,
    .cris-hero-sigla,
    .crps-hero-sigla {
        font-size: clamp(34px, 12vw, 56px) !important;
    }
}

/* === TIMELINE MOBILE · barra vertical alinhada === */
@media (max-width: 760px) {
    .crps-timeline-list {
        padding-left: 8px;
    }
    .crps-timeline-list::before {
        left: 30px !important; /* alinhar com centro do dot 44px */
    }
    .crps-timeline-step {
        gap: 16px;
    }
    .crps-timeline-text {
        align-items: flex-start;
    }
}

/* === FOOTER · esconder elementos extras do Porto que escapam === */
body.crns-active .col-md-9.main-content > .container > .row,
body.cris-active .col-md-9.main-content > .container > .row,
body.crps-active .col-md-9.main-content > .container > .row {
    margin: 0 !important;
}

/* === ALERT CTA · sem botão extra do Porto interferindo === */
.crps-alert-cta-btn:hover svg { transform: scale(1.1); transition: transform .15s; }

/* === STATUS CHIP encerrado · sem animação pulse === */
.crps-status-chip--encerrado { animation: none !important; }

/* === FIX FASE 4 · força grid 4 col vencendo taxonomy-dsv2 === */
.crs-cursos-orgao .crs-cursos-grid,
.crs-cursos-orgao .cr-tax-rel-grid.crs-cursos-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
@media (max-width: 760px) {
    .crs-cursos-orgao .crs-cursos-grid,
    .crs-cursos-orgao .cr-tax-rel-grid.crs-cursos-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 380px) {
    .crs-cursos-orgao .crs-cursos-grid,
    .crs-cursos-orgao .cr-tax-rel-grid.crs-cursos-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}
