/* ============================================================
   Coastal Mint — Paleta
   #0d3b4c  #f5f0eb  #ffffff  #0ea57a  #7dd3c9
   ============================================================ */

:root {
    --c-petroleo:   #0d3b4c;
    --c-bg:         #f5f0eb;
    --c-panel:      #ffffff;
    --c-panel-alt:  #efebe5;
    --c-line:       rgba(13,59,76,0.1);
    --c-ink:        var(--c-petroleo);
    --c-muted:      #6b7e87;
    --c-accent:     #0ea57a;
    --c-accent-hover: #0b8a65;
    --c-highlight:  #7dd3c9;

    --radius:       10px;
    --radius-sm:    6px;
    --radius-lg:    16px;
    --shadow-sm:    0 1px 3px rgba(13,59,76,0.05);
    --shadow:       0 4px 16px rgba(13,59,76,0.07);
    --shadow-lg:    0 8px 32px rgba(13,59,76,0.10);

    --font:         'Inter', system-ui, sans-serif;
    --font-display: 'Playfair Display', Georgia, serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body {
    font-family: var(--font);
    background: var(--c-bg);
    color: var(--c-ink);
    line-height: 1.7;
    min-height: 100vh;
    display: flex; flex-direction: column;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--c-accent); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--c-accent-hover); }
img { max-width: 100%; height: auto; }
::selection { background: var(--c-highlight); color: var(--c-petroleo); }

/* Navbar — Bootstrap 5 customizado (sticky + glass effect) */
.navbar {
    background: rgba(255,255,255,0.88) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--c-line);
    min-height: 64px;
}
.navbar-brand {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--c-petroleo) !important;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.navbar-logo { height: 32px; width: auto; }
.nav-link {
    color: var(--c-muted) !important;
    font-weight: 500;
    font-size: 0.92rem;
    border-radius: var(--radius-sm);
    transition: all 0.2s;
}
.nav-link:hover { color: var(--c-accent) !important; background: rgba(14,165,122,0.06); }
.nav-link.active { color: var(--c-accent) !important; }

/* Hero de abertura (home) */
.hero {
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(900px 420px at 15% -10%, rgba(125,211,201,0.35), transparent 60%),
        radial-gradient(700px 380px at 85% 110%, rgba(14,165,122,0.45), transparent 60%),
        linear-gradient(135deg, #0d3b4c 0%, #10495c 55%, #0b6b58 100%);
    color:#fff;
    padding:4.5rem 0 4rem;
}
/* Trama sutil de pontos por cima do gradiente. */
.hero::before {
    content:'';
    position:absolute; inset:0;
    background-image:radial-gradient(rgba(255,255,255,0.14) 1px, transparent 1px);
    background-size:22px 22px;
    opacity:0.5;
    pointer-events:none;
}
.hero__inner { position:relative; text-align:center; max-width:820px; }
.hero__eyebrow { display:inline-block; font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--c-highlight); background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.16); padding:0.3rem 0.9rem; border-radius:999px; margin-bottom:1.25rem; }
.hero__title { font-family:var(--font-display); font-size:clamp(2rem, 5vw, 3.2rem); font-weight:700; line-height:1.15; color:#fff; margin-bottom:1rem; }
.hero__title em { font-style:italic; color:var(--c-highlight); }
.hero__desc { font-size:1.05rem; color:rgba(255,255,255,0.82); max-width:620px; margin:0 auto 2rem; }
.hero__search { display:flex; gap:0.5rem; max-width:560px; margin:0 auto; }
.hero__search-input { flex:1; min-width:0; padding:0.85rem 1.1rem; border-radius:999px; border:1px solid rgba(255,255,255,0.25); background:rgba(255,255,255,0.12); color:#fff; font-family:var(--font); font-size:0.95rem; outline:none; transition:background 0.2s, border-color 0.2s; }
.hero__search-input::placeholder { color:rgba(255,255,255,0.6); }
.hero__search-input:focus { background:rgba(255,255,255,0.2); border-color:var(--c-highlight); }
.hero__search-btn { padding:0.85rem 1.75rem; border:none; border-radius:999px; background:var(--c-highlight); color:var(--c-petroleo); font-family:var(--font); font-weight:700; font-size:0.95rem; cursor:pointer; transition:transform 0.15s, box-shadow 0.2s; }
.hero__search-btn:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(125,211,201,0.35); }
.hero__chips { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0.5rem; margin-top:1.75rem; }
.hero__chips-label { font-size:0.82rem; color:rgba(255,255,255,0.6); }
.hero__chip { padding:0.3rem 0.85rem; border-radius:999px; border:1px solid rgba(255,255,255,0.22); background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.9)!important; font-size:0.82rem; font-weight:500; transition:all 0.2s; }
.hero__chip:hover { background:var(--c-accent); border-color:var(--c-accent); color:#fff!important; }

@media (max-width:600px) {
    .hero { padding:3rem 0 2.5rem; }
    .hero__search { flex-direction:column; border-radius:var(--radius); }
    .hero__search-input, .hero__search-btn { border-radius:var(--radius); }
}

/* Mosaico de destaques (home) */
.mosaic-section { margin:3rem auto 0; }
.mosaic { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:280px 240px; gap:0.75rem; }
.mosaic__tile { position:relative; overflow:hidden; border-radius:var(--radius); background:var(--c-petroleo); }
.mosaic__tile--lead { grid-column:1; grid-row:1 / span 2; }
.mosaic__tile--wide { grid-column:2 / span 2; grid-row:1; }
.mosaic__tile--small { grid-row:2; }
.mosaic__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.mosaic__tile:hover .mosaic__img { transform:scale(1.05); }
.mosaic__overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,59,76,0) 35%, rgba(13,59,76,0.85) 100%); }
.mosaic__content { position:absolute; bottom:0; left:0; right:0; padding:1.25rem; color:#fff; }
.mosaic__tile--lead .mosaic__content { padding:1.75rem; }
.mosaic__badge { display:inline-block; background:var(--c-accent); color:#fff!important; padding:0.2rem 0.6rem; border-radius:var(--radius-sm); font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.6px; margin-bottom:0.6rem; }
.mosaic__badge:hover { background:var(--c-accent-hover); color:#fff!important; }
.mosaic__title { font-family:var(--font-display); font-size:1.05rem; font-weight:700; line-height:1.3; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.mosaic__title a { color:#fff!important; }
.mosaic__tile--lead .mosaic__title { font-size:1.9rem; -webkit-line-clamp:4; }
.mosaic__tile--wide .mosaic__title { font-size:1.35rem; }

@media (max-width:900px) {
    .mosaic { grid-template-columns:1fr 1fr; grid-template-rows:260px 200px 200px; }
    .mosaic__tile--lead { grid-column:1 / span 2; grid-row:1; }
    .mosaic__tile--wide { grid-column:1 / span 2; grid-row:2; }
    .mosaic__tile--small { grid-row:3; }
    .mosaic__tile--lead .mosaic__title { font-size:1.5rem; }
}
@media (max-width:600px) {
    .mosaic { grid-template-columns:1fr; grid-template-rows:repeat(4, 200px); }
    .mosaic__tile--lead, .mosaic__tile--wide { grid-column:1; }
    .mosaic__tile--lead { grid-row:1; }
    .mosaic__tile--wide { grid-row:2; }
    .mosaic__tile--small { grid-row:auto; }
    .mosaic__tile--lead .mosaic__content { padding:1.25rem; }
}

/* Top news */
.top-news { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start; }
.top-news__lead-img-wrap { position:relative; display:block; aspect-ratio:16/10; overflow:hidden; border-radius:var(--radius); background:var(--c-panel-alt); }
.top-news__lead-img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.top-news__lead-img-wrap:hover .top-news__lead-img { transform:scale(1.04); }
.top-news__lead-badge { position:absolute; left:0; bottom:0; background:rgba(13,59,76,0.85); color:#fff; padding:0.25rem 0.7rem; font-size:0.72rem; font-weight:600; border-radius:0 var(--radius-sm) 0 0; }
.top-news__lead-title { font-family:var(--font-display); font-size:1.6rem; font-weight:700; line-height:1.3; margin:0.9rem 0 0.5rem; }
.top-news__lead-title a { color:var(--c-petroleo)!important; }
.top-news__lead-title a:hover { color:var(--c-accent)!important; }
.top-news__lead-excerpt { font-size:0.95rem; color:var(--c-muted); }
.top-news__list { list-style:none; display:flex; flex-direction:column; gap:1.25rem; }
.top-news__item { display:flex; gap:1rem; align-items:flex-start; }
.top-news__item-img-wrap { flex-shrink:0; width:110px; aspect-ratio:3/2; overflow:hidden; border-radius:var(--radius-sm); background:var(--c-panel-alt); }
.top-news__item-img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.top-news__item-img-wrap:hover .top-news__item-img { transform:scale(1.05); }
.top-news__item-title { font-size:1rem; font-weight:600; line-height:1.4; }
.top-news__item-title a { color:var(--c-petroleo)!important; }
.top-news__item-title a:hover { color:var(--c-accent)!important; }

@media (max-width:900px) {
    .top-news { grid-template-columns:1fr; gap:1.5rem; }
    .top-news__lead-title { font-size:1.3rem; }
}

/* Card de notícia (grade da home) */
.card-n { display:flex; flex-direction:column; background:var(--c-panel-alt); border-radius:var(--radius-sm); overflow:hidden; transition:transform 0.25s, box-shadow 0.25s; }
.card-n:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.card-n__img-wrap { display:block; aspect-ratio:16/10; overflow:hidden; background:var(--c-panel-alt); }
.card-n__img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.card-n:hover .card-n__img { transform:scale(1.05); }
.card-n__body { padding:1.25rem; display:flex; flex-direction:column; flex:1; }
.card-n__meta { font-size:0.82rem; color:var(--c-muted); margin-bottom:0.6rem; }
.card-n__cat { font-style:italic; font-weight:600; color:var(--c-accent); }
.card-n__sep { margin:0 0.35rem; color:var(--c-line); }
.card-n__title { font-size:1.15rem; font-weight:600; line-height:1.35; margin-bottom:0.75rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-n__title a { color:var(--c-petroleo)!important; }
.card-n__title a:hover { color:var(--c-accent)!important; }
.card-n__excerpt { font-size:0.9rem; color:var(--c-muted); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }

/* Faixa de categorias (home) */
.category-band { background:var(--c-panel-alt); border:1px solid var(--c-line); border-radius:var(--radius-lg); padding:2.5rem 2rem; text-align:center; }
.category-band__title { font-family:var(--font-display); font-size:1.6rem; font-weight:700; color:var(--c-petroleo); margin-bottom:0.4rem; }
.category-band__desc { font-size:0.95rem; color:var(--c-muted); margin-bottom:1.75rem; }
.category-band__list { display:flex; flex-wrap:wrap; justify-content:center; gap:0.75rem; }
.category-band__item { display:inline-block; padding:0.55rem 1.35rem; border-radius:999px; background:var(--c-panel); border:1px solid var(--c-line); color:var(--c-petroleo)!important; font-size:0.9rem; font-weight:600; transition:all 0.2s; }
.category-band__item:hover { background:var(--c-accent); border-color:var(--c-accent); color:#fff!important; transform:translateY(-2px); box-shadow:var(--shadow-sm); }
@media (max-width:600px) { .category-band { padding:1.75rem 1.25rem; } }

/* Newsletter no rodapé */
.footer-newsletter { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.75rem; margin-bottom:2.5rem; border-radius:var(--radius-lg); background:linear-gradient(135deg, var(--c-accent), var(--c-accent-hover)); }
.footer-newsletter__title { font-family:var(--font-display); font-size:1.3rem; font-weight:700; color:#fff; }
.footer-newsletter__desc { font-size:0.9rem; color:rgba(255,255,255,0.85); margin-top:0.15rem; }
.footer-newsletter__form { display:flex; gap:0.5rem; flex:1; min-width:280px; max-width:460px; }
.footer-newsletter__input { flex:1; min-width:0; padding:0.7rem 1rem; border-radius:999px; border:1px solid rgba(255,255,255,0.35); background:rgba(255,255,255,0.16); color:#fff; font-family:var(--font); font-size:0.9rem; outline:none; }
.footer-newsletter__input::placeholder { color:rgba(255,255,255,0.7); }
.footer-newsletter__input:focus { background:rgba(255,255,255,0.26); border-color:#fff; }
.footer-newsletter__btn { padding:0.7rem 1.5rem; border:none; border-radius:999px; background:#fff; color:var(--c-accent-hover); font-family:var(--font); font-weight:700; font-size:0.9rem; cursor:pointer; white-space:nowrap; transition:background 0.2s; }
.footer-newsletter__btn:hover { background:var(--c-panel-alt); }
.footer-newsletter__feedback { flex-basis:100%; font-size:0.82rem; color:#fff; }
@media (max-width:768px) { .footer-newsletter { flex-direction:column; align-items:stretch; text-align:center; } .footer-newsletter__form { max-width:none; } }

/* Section Head */
.section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; padding-bottom:0.75rem; border-bottom:2px solid var(--c-line); }
/* Cabeçalho com régua dos dois lados: título centralizado. */
.section-head--rule { border-bottom:none; justify-content:center; gap:1.25rem; padding-bottom:0; }
.section-head--rule::before,
.section-head--rule::after { content:''; flex:1; height:3px; background:var(--c-petroleo); opacity:0.85; }
.section-head--rule .section-title { text-align:center; white-space:nowrap; }
.section-title { font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--c-petroleo); }
.section-link { font-size:0.88rem; font-weight:600; color:var(--c-accent); display:flex; align-items:center; gap:0.3rem; }
.section-link:hover { color:var(--c-accent-hover); }

/* Card Vertical */
.card-v { display:flex; flex-direction:column; background:var(--c-panel); border-radius:var(--radius); overflow:hidden; border:1px solid var(--c-line); transition:transform 0.25s, box-shadow 0.25s; }
.card-v:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.card-v__img-wrap { display:block; aspect-ratio:3/2; overflow:hidden; background:var(--c-panel-alt); }
.card-v__img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.card-v:hover .card-v__img { transform:scale(1.05); }
.card-v__body { padding:1.25rem; display:flex; flex-direction:column; flex:1; }
.card-v__category { display:inline-block; color:var(--c-accent); font-size:0.75rem; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:0.4rem; }
.card-v__title { font-size:1.05rem; font-weight:700; line-height:1.4; margin-bottom:0.4rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-v__title a { color:var(--c-petroleo)!important; }
.card-v__title a:hover { color:var(--c-accent)!important; }
.card-v__excerpt { font-size:0.88rem; color:var(--c-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:0.6rem; }
.card-v__meta { font-size:0.8rem; color:var(--c-muted); padding-top:0.6rem; border-top:1px solid var(--c-line); margin-top:auto; }

/* Card Horizontal */
.card-h { display:flex; background:var(--c-panel); border-radius:var(--radius); overflow:hidden; border:1px solid var(--c-line); transition:transform 0.25s, box-shadow 0.25s; }
.card-h:hover { transform:translateX(4px); box-shadow:var(--shadow-sm); }
.card-h__img-wrap { flex-shrink:0; width:240px; aspect-ratio:4/3; overflow:hidden; background:var(--c-panel-alt); }
.card-h__img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.card-h:hover .card-h__img { transform:scale(1.05); }
.card-h__body { padding:1.25rem; display:flex; flex-direction:column; justify-content:center; min-width:0; }
.card-h__category { font-size:0.75rem; font-weight:600; color:var(--c-accent); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:0.3rem; }
.card-h__title { font-size:1.1rem; font-weight:700; margin-bottom:0.35rem; }
.card-h__title a { color:var(--c-petroleo)!important; }
.card-h__title a:hover { color:var(--c-accent)!important; }
.card-h__excerpt { font-size:0.88rem; color:var(--c-muted); margin-bottom:0.5rem; }
.card-h__meta { font-size:0.8rem; color:var(--c-muted); }

@media (max-width:600px) {
    .card-h { flex-direction:column; }
    .card-h__img-wrap { width:100%; aspect-ratio:2/1; }
}

/* Grids — usa classes próprias para não conflitar com o .row do Bootstrap. */
.container { max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.container-narrow { max-width:800px; }
.grid-2, .grid-3, .grid-4 { display:grid; gap:1.5rem; }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(4,1fr); }
.grid-main-sidebar { display:grid; grid-template-columns:1fr 320px; gap:2rem; align-items:start; }

@media (max-width:900px) { .grid-3,.grid-4 { grid-template-columns:repeat(2,1fr); } .grid-main-sidebar { grid-template-columns:1fr; } }
@media (max-width:600px) { .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; } }

/* Sidebar */
.sidebar-widget { background:var(--c-panel); border-radius:var(--radius); border:1px solid var(--c-line); padding:1.25rem; margin-bottom:1.5rem; }
.sidebar-widget__title { font-family:var(--font-display); font-size:1.1rem; font-weight:700; margin-bottom:1rem; padding-bottom:0.5rem; border-bottom:2px solid var(--c-accent); color:var(--c-petroleo); }
.sidebar-cat-link { display:flex; align-items:center; gap:0.5rem; padding:0.45rem 0; color:var(--c-muted); font-size:0.9rem; font-weight:500; border-bottom:1px solid var(--c-line); }
.sidebar-cat-link:last-child { border-bottom:none; }
.sidebar-cat-link:hover { color:var(--c-accent); }
.sidebar-recent-item { display:flex; align-items:flex-start; gap:0.75rem; padding:0.6rem 0; border-bottom:1px solid var(--c-line); }
.sidebar-recent-item:last-child { border-bottom:none; }
.sidebar-recent-img { width:60px; height:60px; border-radius:var(--radius-sm); object-fit:cover; flex-shrink:0; }
.sidebar-recent-title { font-size:0.85rem; font-weight:600; line-height:1.35; }
.sidebar-recent-title a { color:var(--c-petroleo)!important; }
.sidebar-recent-title a:hover { color:var(--c-accent)!important; }
.sidebar-recent-date { font-size:0.75rem; color:var(--c-muted); margin-top:0.2rem; }

/* Newsletter */
.newsletter-card { background:linear-gradient(135deg, var(--c-accent), var(--c-accent-hover)); border-radius:var(--radius); padding:1.5rem; color:#fff; }
.newsletter-card__title { font-family:var(--font-display); font-size:1.15rem; font-weight:700; margin-bottom:0.25rem; }
.newsletter-card__desc { font-size:0.85rem; opacity:0.9; margin-bottom:1rem; }
.newsletter-card__form { display:flex; gap:0.5rem; }
.newsletter-card__input { flex:1; padding:0.55rem 0.85rem; border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,0.3); background:rgba(255,255,255,0.15); color:#fff; font-size:0.88rem; outline:none; }
.newsletter-card__input::placeholder { color:rgba(255,255,255,0.6); }
.newsletter-card__input:focus { background:rgba(255,255,255,0.25); border-color:#fff; }
.newsletter-card__btn { padding:0.55rem 1rem; background:#fff; color:var(--c-accent-hover); border:none; border-radius:var(--radius-sm); font-weight:700; font-size:0.88rem; cursor:pointer; white-space:nowrap; }
.newsletter-card__btn:hover { background:var(--c-panel-alt); }

/* Article */
.article-wrapper { max-width:760px; margin:0 auto; }
.article-breadcrumb { display:flex; flex-wrap:wrap; gap:0.3rem; font-size:0.85rem; color:var(--c-muted); margin-bottom:1.5rem; }
.article-breadcrumb a { color:var(--c-muted); }
.article-breadcrumb a:hover { color:var(--c-accent); }
.article-breadcrumb span { color:var(--c-petroleo); font-weight:600; }
.article-page-title { font-family:var(--font-display); font-size:2.4rem; font-weight:700; line-height:1.2; color:var(--c-petroleo); margin-bottom:0.75rem; }
.article-page-meta { display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; font-size:0.88rem; color:var(--c-muted); margin-bottom:1.5rem; }
.article-cover { width:100%; border-radius:var(--radius-lg); object-fit:cover; margin-bottom:1.5rem; max-height:500px; }
.article-lead { font-size:1.1rem; color:var(--c-muted); line-height:1.7; margin-bottom:1.5rem; padding:1.25rem; background:var(--c-panel-alt); border-radius:var(--radius); border-left:4px solid var(--c-accent); }
.article-content { font-size:1.05rem; line-height:1.85; color:var(--c-muted); }
.article-content h2 { font-family:var(--font-display); font-size:1.6rem; color:var(--c-petroleo); margin:2rem 0 0.75rem; }
.article-content h3 { font-family:var(--font-display); font-size:1.3rem; color:var(--c-petroleo); margin:1.5rem 0 0.5rem; }
.article-content p { margin-bottom:1rem; }
.article-content a { color:var(--c-accent); text-decoration:underline; text-underline-offset:3px; }
.article-content img { border-radius:var(--radius); margin:1rem 0; }
.article-content pre { position:relative; background:var(--c-petroleo); color:#cbd5e1; padding:1.25rem 1.25rem 1.25rem 3.5rem; border-radius:var(--radius); overflow-x:auto; font-size:0.88rem; line-height:1.6; margin:1.5rem 0; }
.article-content code { font-family:'JetBrains Mono',monospace; font-size:0.85em; background:var(--c-panel-alt); padding:0.15em 0.4em; border-radius:4px; color:var(--c-accent-hover); }
.article-content pre code { background:none; padding:0; color:inherit; }

/* Wrapper para posicionar o botão copiar sobre o bloco. */
.code-block-wrapper { position:relative; }

/* Gutter de números de linha (gerado por blog.js, sem plugin). */
.code-line-numbers {
    position:absolute; left:0; top:0; bottom:0;
    width:2.75rem;
    padding:1.25rem 0.6rem 1.25rem 0;
    text-align:right;
    font-family:'JetBrains Mono',monospace;
    font-size:0.88rem; line-height:1.6;
    color:rgba(203,213,225,0.4);
    white-space:pre;
    user-select:none;
    border-right:1px solid rgba(255,255,255,0.12);
    pointer-events:none;
}
.article-content blockquote { border-left:4px solid var(--c-highlight); padding:0.75rem 1.25rem; margin:1.5rem 0; background:var(--c-panel-alt); border-radius:0 var(--radius-sm) var(--radius-sm) 0; font-style:italic; color:var(--c-muted); }
.article-content .table-wrap { overflow-x:auto; margin:1.5rem 0; }
.article-content table { width:100%; border-collapse:collapse; font-size:0.9rem; }
.article-content th { background:var(--c-panel-alt); padding:0.6rem 0.85rem; text-align:left; font-weight:700; border-bottom:2px solid var(--c-line); }
.article-content td { padding:0.5rem 0.85rem; border-bottom:1px solid var(--c-line); }
/* Zebra em roxo, igual à do painel admin. */
.article-content tbody tr:nth-child(even) { background:rgba(124,58,237,0.06); }
.article-content tbody tr:hover { background:rgba(124,58,237,0.12); }

/* Reactions */
.article-reactions { display:flex; gap:0.5rem; margin:3rem 0 2rem; padding:1rem 0; border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); }
.reaction-btn { display:flex; align-items:center; gap:0.35rem; padding:0.5rem 1rem; border:1px solid var(--c-line); border-radius:24px; background:var(--c-panel); color:var(--c-muted); font-size:0.85rem; font-weight:600; cursor:pointer; transition:all 0.2s; }
.reaction-btn:hover { border-color:var(--c-accent); color:var(--c-accent); }
.reaction-btn.active { background:var(--c-accent); border-color:var(--c-accent); color:#fff; }

/* Related */
.article-related { margin:3rem 0; }
.article-related__title { font-family:var(--font-display); font-size:1.2rem; font-weight:700; margin-bottom:1rem; }

/* Auth */
.auth-wrapper { max-width:440px; margin:3rem auto; padding:0 1.5rem; }
.auth-card { background:var(--c-panel); border-radius:var(--radius-lg); border:1px solid var(--c-line); padding:2.5rem 2rem; box-shadow:var(--shadow); }
.auth-card h2 { font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--c-petroleo); margin-bottom:0.25rem; text-align:center; }
.auth-card p.subtitle { font-size:0.9rem; color:var(--c-muted); text-align:center; margin-bottom:1.5rem; }
.form-group { margin-bottom:1rem; }
.form-label { display:block; font-size:0.85rem; font-weight:600; color:var(--c-muted); margin-bottom:0.3rem; }
.form-control { width:100%; padding:0.6rem 0.85rem; border:2px solid var(--c-line); border-radius:var(--radius-sm); font-size:0.92rem; font-family:var(--font); color:var(--c-petroleo); background:var(--c-panel); outline:none; transition:border-color 0.2s, box-shadow 0.2s; }
.form-control:focus { border-color:var(--c-accent); box-shadow:0 0 0 3px rgba(14,165,122,0.12); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:0.4rem; padding:0.65rem 1.5rem; font-size:0.92rem; font-weight:600; border:none; border-radius:var(--radius); cursor:pointer; transition:all 0.2s; }
.btn-primary { background:var(--c-accent); color:#fff; width:100%; }
.btn-primary:hover { background:var(--c-accent-hover); }
.btn-outline { background:transparent; color:var(--c-accent); border:2px solid var(--c-accent); }
.btn-outline:hover { background:var(--c-accent); color:#fff; }
.btn-sm { padding:0.4rem 1rem; font-size:0.82rem; }
.auth-links { text-align:center; margin-top:1.25rem; font-size:0.88rem; color:var(--c-muted); }
.auth-links a { font-weight:600; }

/* Page Header */
.page-header { background:var(--c-petroleo); color:#fff; padding:3rem 1.5rem; text-align:center; }
.page-header h1 { font-family:var(--font-display); font-size:2rem; font-weight:700; margin-bottom:0.5rem; }
.page-header p { color:rgba(255,255,255,0.7); font-size:1rem; }
.page-header__search { display:flex; gap:0.5rem; max-width:480px; }
.page-header__search-input { flex:1; min-width:0; padding:0.6rem 1rem; border-radius:999px; border:1px solid rgba(255,255,255,0.25); background:rgba(255,255,255,0.12); color:#fff; font-family:var(--font); font-size:0.9rem; outline:none; }
.page-header__search-input::placeholder { color:rgba(255,255,255,0.6); }
.page-header__search-input:focus { background:rgba(255,255,255,0.2); border-color:var(--c-highlight); }
.page-header__search-btn { padding:0.6rem 1.5rem; border:none; border-radius:999px; background:var(--c-highlight); color:var(--c-petroleo); font-family:var(--font); font-weight:700; font-size:0.9rem; cursor:pointer; }
.page-header__search-btn:hover { background:#fff; }

/* Pagination — Bootstrap .pagination com cores do tema */
.pagination .page-link { color: var(--c-accent); }
.pagination .page-link:hover { background: var(--c-accent); color: #fff; border-color: var(--c-accent); }
.pagination .active .page-link { background: var(--c-accent); border-color: var(--c-accent); }

/* Contact */
.contact-wrapper { max-width:640px; margin:3rem auto; padding:0 1.5rem; }
.contact-card { background:var(--c-panel); border-radius:var(--radius-lg); border:1px solid var(--c-line); padding:2.5rem 2rem; box-shadow:var(--shadow); }
.contact-card h1 { font-family:var(--font-display); font-size:1.5rem; margin-bottom:1.5rem; color:var(--c-petroleo); }
.contact-card textarea.form-control { min-height:120px; resize:vertical; }

/* Static Pages */
.static-page { max-width:760px; margin:3rem auto; padding:0 1.5rem; }
.static-page h1 { font-family:var(--font-display); font-size:2rem; color:var(--c-petroleo); margin-bottom:1.5rem; }
.static-page h2 { font-family:var(--font-display); font-size:1.3rem; margin:1.5rem 0 0.75rem; color:var(--c-petroleo); }
.static-page p { margin-bottom:1rem; color:var(--c-muted); line-height:1.8; }

/* Flash */
.flash { padding:0.75rem 1rem; border-radius:var(--radius-sm); font-size:0.9rem; font-weight:500; margin-bottom:1rem; }
.flash-success { background:rgba(14,165,122,0.08); border:1px solid var(--c-accent); color:var(--c-accent-hover); }
.flash-error { background:rgba(180,50,50,0.06); border:1px solid #c33; color:#922; }

/* Footer */
.site-footer { background:var(--c-petroleo); color:rgba(255,255,255,0.65); padding:3rem 1.5rem 2rem; margin-top:auto; }
.site-footer .container { max-width:1200px; margin:0 auto; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; padding-bottom:2rem; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:1.5rem; }
.footer-brand { font-family:var(--font-display); font-size:1.3rem; font-weight:700; color:#fff; margin-bottom:0.5rem; }
.footer-about { font-size:0.88rem; line-height:1.6; }
.footer-heading { font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--c-highlight); margin-bottom:0.75rem; }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:0.35rem; }
.footer-links a { color:rgba(255,255,255,0.5); font-size:0.9rem; }
.footer-links a:hover { color:var(--c-highlight); }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; font-size:0.82rem; }
.footer-bottom-links { display:flex; gap:1.25rem; list-style:none; }
.footer-bottom-links a { color:rgba(255,255,255,0.4); }
.footer-bottom-links a:hover { color:var(--c-highlight); }
.social-links { display:flex; gap:0.75rem; margin-top:0.75rem; }
.social-links a { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.5); font-size:0.9rem; transition:all 0.2s; }
.social-links a:hover { background:var(--c-accent); color:#fff; }

/* Newsletter mini no rodapé (compacta, abaixo da marca) */
.footer-newsletter-mini { max-width:360px; }
.footer-newsletter-mini__title { font-size:0.82rem; font-weight:600; color:rgba(255,255,255,0.7); margin-bottom:0.4rem; }
.footer-newsletter-mini__form { display:flex; gap:0.35rem; }
.footer-newsletter-mini__input { flex:1; min-width:0; padding:0.45rem 0.7rem; border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,0.2); background:rgba(255,255,255,0.08); color:#fff; font-family:var(--font); font-size:0.8rem; outline:none; }
.footer-newsletter-mini__input::placeholder { color:rgba(255,255,255,0.45); }
.footer-newsletter-mini__input:focus { border-color:var(--c-highlight); background:rgba(255,255,255,0.14); }
.footer-newsletter-mini__btn { padding:0.45rem 0.85rem; border:none; border-radius:var(--radius-sm); background:var(--c-accent); color:#fff; font-family:var(--font); font-weight:600; font-size:0.8rem; cursor:pointer; white-space:nowrap; transition:background 0.2s; }
.footer-newsletter-mini__btn:hover { background:var(--c-accent-hover); }

/* Tagline do footer */
.footer-tagline { font-size:0.82rem; color:rgba(255,255,255,0.35); font-style:italic; }

/* Error */
.error-page { text-align:center; padding:5rem 1.5rem; max-width:500px; margin:0 auto; }
.error-page h1 { font-family:var(--font-display); font-size:5rem; color:var(--c-accent); margin-bottom:0.5rem; }
.error-page p { color:var(--c-muted); margin-bottom:2rem; }

/* Cookie */
#cookie-banner { position:fixed; bottom:0; left:0; right:0; background:var(--c-petroleo); color:#fff; padding:1rem 1.5rem; z-index:9999; display:none; align-items:center; justify-content:center; gap:1.5rem; flex-wrap:wrap; font-size:0.88rem; }
#cookie-banner a { color:var(--c-highlight); }
#cookie-accept { background:var(--c-accent); color:#fff; border:none; padding:0.45rem 1.25rem; border-radius:var(--radius-sm); font-weight:600; cursor:pointer; }
#cookie-accept:hover { background:var(--c-accent-hover); }

/* Copy code button */
.code-block-wrapper { position:relative; }
.code-copy-btn { position:absolute; top:0.5rem; right:0.5rem; background:rgba(255,255,255,0.1); color:rgba(255,255,255,0.5); border:1px solid rgba(255,255,255,0.1); padding:0.3rem 0.7rem; border-radius:4px; font-size:0.75rem; cursor:pointer; transition:all 0.2s; }
.code-copy-btn:hover { background:rgba(255,255,255,0.2); color:#fff; }
.code-copy-btn.copied { background:var(--c-accent); border-color:var(--c-accent); color:#fff; }

/* TOC */
.toc { background:var(--c-panel); border:1px solid var(--c-line); border-radius:var(--radius); padding:1.25rem; margin-bottom:2rem; }
.toc__title { font-family:var(--font-display); font-size:1rem; font-weight:700; margin-bottom:0.75rem; color:var(--c-petroleo); }
.toc__list { list-style:none; }
.toc__list li { padding:0.25rem 0; }
.toc__list a { font-size:0.88rem; color:var(--c-muted); transition:color 0.2s; }
.toc__list a:hover { color:var(--c-accent); }
.toc__list .toc-h2 { padding-left:0; font-weight:600; }
.toc__list .toc-h3 { padding-left:1rem; font-size:0.83rem; }

/* Dark mode */
@media (prefers-color-scheme: dark) {
    :root {
        --c-bg: #111827;
        --c-panel: #1f2937;
        --c-panel-alt: #1a2332;
        --c-line: rgba(255,255,255,0.08);
        --c-ink: #e2e8f0;
        --c-muted: #94a3b8;
        --c-petroleo: #e2e8f0;
    }
    .navbar { background:rgba(31,41,55,0.88); }
    .page-header { background: #0f1b2d; }
    .card-v, .card-h, .sidebar-widget, .auth-card, .contact-card, .panel-card { border-color:var(--c-line); }
    .card-n { background:var(--c-panel); }
    .mosaic__overlay { background:linear-gradient(180deg, rgba(0,0,0,0.15) 35%, rgba(0,0,0,0.85) 100%); }
    .top-news__lead-badge { background:rgba(0,0,0,0.75); }
    .section-head--rule::after { background:var(--c-muted); }
    .article-content pre { background: #0f172a; }
}

/* Lazy images */
img[loading] { background:var(--c-panel-alt); }

/* Utilities */
.mt-1{margin-top:0.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-5{margin-top:2.5rem}
.mb-1{margin-bottom:0.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mb-5{margin-bottom:2.5rem}
.my-4{margin-top:2rem;margin-bottom:2rem}.my-5{margin-top:2.5rem;margin-bottom:2.5rem}.py-4{padding-top:2rem;padding-bottom:2rem}.py-5{padding-top:2.5rem;padding-bottom:2.5rem}
.p-3{padding:1rem}.p-4{padding:1.5rem}.text-center{text-align:center}.text-muted{color:var(--c-muted)}
.d-none{display:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.fw-bold{font-weight:700}.gap-2{gap:0.5rem}.flex-wrap{flex-wrap:wrap}.align-items-center{align-items:center}
.justify-content-between{justify-content:space-between}.d-flex{display:flex}.w-100{width:100%}

/* ============================================================
   Classes utilitárias extras (substituem style="" inline)
   ============================================================ */

/* Contato */
.contact-intro{color:var(--c-muted);margin-bottom:1.5rem}

/* Manutenção */
.maintenance-sub{color:var(--c-muted);font-size:0.9rem}

/* Cookie banner */
.cookie-banner-text{margin:0}

/* 404 search */
.search-404{max-width:380px;margin:0 auto 1.5rem}
.search-404-row{display:flex}
.search-404-input{flex:1;padding:0.6rem 0.9rem;border:2px solid var(--c-line);border-radius:8px 0 0 8px;font-size:0.9rem;background:var(--c-panel);color:var(--c-ink);outline:none}
.search-404-btn{padding:0.6rem 1.25rem;background:var(--c-accent);color:#fff;border:none;border-radius:0 8px 8px 0;font-weight:600;cursor:pointer}
.error-404-sub{color:var(--c-muted);font-size:0.9rem}

/* 500 debug */
.error-debug-wrap{max-width:900px;margin:2rem auto;padding:0 1.5rem}
.error-debug-box{background:#fff;border:1px solid #fecaca;border-radius:12px;padding:1.5rem;font-size:0.88rem;text-align:left;line-height:1.6}
.error-debug-class{color:#b91c1c;font-weight:700;margin-bottom:0.5rem}
.error-debug-msg{margin-bottom:0.5rem}
.error-debug-file{margin-bottom:1rem}
.error-debug-trace-title{margin-bottom:0.25rem}
.error-debug-file-muted{color:var(--c-muted)}
.error-debug-trace{background:var(--c-panel-alt);border:1px solid var(--c-line);padding:1rem;border-radius:8px;overflow-x:auto;font-size:0.8rem;max-height:400px}

/* Article */
.article-cat-link{color:#5d9e7e;font-size:0.85rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}
.article-comments-section{margin:2rem 0}
.article-comments-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:2px solid var(--c-accent)}
.ja-leu-badge{cursor:pointer;font-size:0.45em;vertical-align:middle;color:#0b6b4f}

/* Badge "Lido" (verde escuro) exibido ao lado do título em cards */
.read-badge {
    display:inline-flex; align-items:center; justify-content:center;
    width:20px; height:20px; border-radius:50%;
    background:#0b6b4f; color:#fff;
    font-size:0.7rem; margin-left:0.35rem;
    cursor:pointer; vertical-align:middle; flex-shrink:0;
    transition:background 0.2s;
}
.read-badge:hover { background:#08523c; }

/* Cards do blog — classes extraídas dos style="" que estavam nas views.
   As cores saem das variáveis do :root, então tema e cards não divergem. */
.post-card__title { color: var(--c-petroleo); }
.post-card__title:hover { color: var(--c-accent); }
.post-card__category { background: var(--c-accent); }
.post-card__meta { border-color: var(--c-line) !important; }
/* Capa horizontal do destaque e capa do card do grid. */
.post-card__cover--featured { object-fit: cover; min-height: 220px; }
.post-card__cover { height: 200px; object-fit: cover; }
/* Campo de busca da navbar. */
.navbar-search { width: 140px; }
