/* ============================================================
   Paleta
   ============================================================ */
:root {
    --clr-burgundy: #801245;
    --clr-cream:    #f4f4dd;
    --clr-khaki:    #dcdbaf;
    --clr-olive:    #5d5c49;
    --clr-charcoal: #3d3d34;
    --clr-white:    #ffffff;

    --bg:           var(--clr-cream);
    --panel:        var(--clr-white);
    --panel-alt:    #fcfcf9;
    --ink:          var(--clr-charcoal);
    --accent:       var(--clr-burgundy);
    --muted:        var(--clr-olive);
    --line:         rgba(61, 61, 52, 0.15);
    --line-alt:     rgba(220, 219, 175, 0.6);
    --input-bg:     #fcfcf9;
    --code-bg:      var(--clr-white);
    --code-gutter-bg: #f8f9fa;
    --table-head-bg: #f6f4e8;
    --inline-code-bg: rgba(220, 219, 175, 0.4);
}


/* ============================================================
   Reset & base
   ============================================================ */
* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Inter', Arial, sans-serif;
    background-color: var(--bg);
    color: var(--ink);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

a { color: inherit; }

/* ============================================================
   Navbar
   ============================================================ */
.navbar {
    background-color: var(--clr-charcoal);
    padding: 1.2rem 0;
    position: sticky;
    top: 0;
    z-index: 100;
}

.navbar-brand {
    color: var(--clr-cream) !important;
    font-weight: 800;
    font-size: 1.5rem;
    letter-spacing: 1px;
}

.navbar .nav-link {
    color: var(--clr-khaki) !important;
    font-weight: 500;
    font-size: 0.95rem;
    transition: color 0.3s;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--clr-cream) !important;
}

.navbar .navbar-toggler {
    border-color: var(--clr-khaki);
}

.navbar .navbar-toggler-icon {
    filter: invert(85%) sepia(21%) saturate(375%) hue-rotate(18deg) brightness(97%) contrast(85%);
}

.navbar .btn-register {
    background-color: var(--clr-charcoal);
    color: var(--clr-cream) !important;
    border: none;
    border-radius: 4px;
    padding: 0.5rem 1.2rem;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: background 0.3s;
}

.navbar .btn-register:hover {
    background-color: var(--clr-burgundy);
}

/* ============================================================
   Page shell
   ============================================================ */
.page-shell {
    flex: 1;
    max-width: 1080px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    width: 100%;
}

/* ============================================================
   Flash messages
   ============================================================ */
.flash { margin-bottom: 1rem; padding: 0.9rem 1rem; border-radius: 8px; }
.flash-success { background: #e4f4e7; border: 1px solid #9ec8a7; color: #166534; }
.flash-error   { background: #fbe6e6; border: 1px solid #d59c9c; color: #b42318; }

/* ============================================================
   Page header (khaki bg — blog, categorias, busca)
   ============================================================ */
.page-header {
    background-color: var(--clr-khaki);
    padding: 5rem 0;
    text-align: center;
    border-bottom: 1px solid rgba(93, 92, 73, 0.2);
    margin-bottom: 0;
}

.page-header h1 {
    font-weight: 800;
    font-size: 3.5rem;
    color: var(--clr-charcoal);
    margin-bottom: 1rem;
}

.page-header p {
    color: var(--clr-olive);
    font-size: 1.2rem;
    max-width: 600px;
    margin: 0 auto;
}

/* ============================================================
   Hero / Split block (home)
   ============================================================ */
.split-block {
    background-color: var(--clr-white);
    margin: 4rem auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(61, 61, 52, 0.08);
}

.split-block .text-content {
    padding: 4rem 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: var(--clr-cream);
}

.split-block .tagline {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 3px;
    color: var(--clr-olive);
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}

.split-block h1 {
    font-size: 2rem;
    font-weight: 800;
    color: var(--clr-charcoal);
    line-height: 1.2;
    margin-bottom: 1.5rem;
    letter-spacing: -0.5px;
}

.split-block p {
    font-size: 1rem;
    color: var(--clr-olive);
    line-height: 1.7;
    margin-bottom: 2.5rem;
    max-width: 90%;
}

.split-block .img-content {
    min-height: 420px;
    background: center/cover no-repeat;
    background-color: var(--clr-khaki);
}

/* ============================================================
   Secondary section (khaki bg — latest stories)
   ============================================================ */
.secondary-section {
    padding: 5rem 0;
    background-color: var(--clr-khaki);
}

/* ============================================================
   Buttons
   ============================================================ */
.btn-primary-theme {
    background-color: var(--clr-charcoal);
    color: var(--clr-cream);
    border: none;
    border-radius: 4px;
    padding: 1rem 2.5rem;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    width: fit-content;
    transition: all 0.3s;
    cursor: pointer;
}

.btn-primary-theme:hover {
    background-color: var(--clr-burgundy);
    color: var(--clr-cream);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(128, 18, 69, 0.2);
}

.btn-outline-theme {
    border: 2px solid var(--clr-burgundy);
    color: var(--clr-burgundy);
    font-weight: 600;
    border-radius: 4px;
    padding: 0.5rem 1.5rem;
    text-decoration: none;
    display: inline-block;
    transition: all 0.3s;
    background: transparent;
    cursor: pointer;
}

.btn-outline-theme:hover {
    background-color: var(--clr-burgundy);
    color: var(--clr-cream);
}

/* ============================================================
   Cards (artigos)
   ============================================================ */
.article-card {
    background-color: var(--clr-white);
    border: none;
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    box-shadow: 0 10px 20px rgba(61, 61, 52, 0.05);
    color: var(--clr-charcoal);
}

.article-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(61, 61, 52, 0.1);
}

/* Imagem só quando é card vertical (não flex-row) */
.article-card:not(.d-flex) > img,
.article-card:not(.d-flex) > .card-img-top {
    height: 250px;
    width: 100%;
    object-fit: cover;
}

.article-card .card-body { padding: 2rem; }

.article-card .card-title {
    font-weight: 700;
    color: var(--clr-charcoal);
    font-size: 1.4rem;
    margin-bottom: 1rem;
}

.article-card .card-text { color: var(--clr-olive); margin-bottom: 1.5rem; }

.article-card .card-meta {
    font-size: 0.85rem;
    color: var(--clr-olive);
    opacity: 0.8;
    margin-bottom: 1rem;
}

/* ============================================================
   Category cards
   ============================================================ */
.cat-card {
    background: var(--clr-white);
    border: 1px solid rgba(61, 61, 52, 0.1);
    border-radius: 8px;
    padding: 3rem 2rem;
    text-align: center;
    transition: all 0.3s;
    color: var(--clr-charcoal);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.cat-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 30px rgba(61, 61, 52, 0.08);
    border-color: var(--clr-burgundy);
    color: var(--clr-burgundy);
}

.cat-icon {
    font-size: 2.5rem;
    color: var(--clr-burgundy);
    margin-bottom: 1rem;
    transition: transform 0.3s;
}

.cat-card:hover .cat-icon { transform: scale(1.1); }
.cat-title { font-weight: 700; font-size: 1.3rem; margin-bottom: 0.5rem; }
.cat-count { color: var(--clr-olive); font-size: 0.9rem; }

/* ============================================================
   Auth pages
   ============================================================ */
.auth-wrapper {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 1rem;
    background: radial-gradient(circle at center, #ffffff 0%, var(--clr-cream) 100%);
}

.auth-card {
    background-color: var(--clr-white);
    border: none;
    border-radius: 12px;
    box-shadow: 0 20px 40px rgba(61, 61, 52, 0.08);
    max-width: 500px;
    width: 100%;
    padding: 3rem 2.5rem;
}

.auth-card h2 {
    font-weight: 800;
    color: var(--clr-charcoal);
    margin-bottom: 2rem;
    text-align: center;
    font-size: 2rem;
}

.auth-card .form-label { font-weight: 600; color: var(--clr-olive); }

.auth-card .form-control {
    background-color: #fcfcf9;
    border: 1px solid var(--clr-khaki);
    padding: 0.8rem 1rem;
    color: var(--clr-charcoal);
    font-size: 1rem;
    transition: all 0.3s;
}

.auth-card .form-control:focus {
    border-color: var(--clr-burgundy);
    box-shadow: 0 0 0 0.25rem rgba(128, 18, 69, 0.1);
    background-color: #fff;
}

.auth-card .btn-submit {
    background-color: var(--clr-charcoal);
    color: var(--clr-cream);
    border: none;
    border-radius: 4px;
    padding: 1rem;
    font-weight: 700;
    width: 100%;
    font-size: 1.1rem;
    margin-top: 1rem;
    transition: all 0.3s;
    cursor: pointer;
}

.auth-card .btn-submit:hover {
    background-color: var(--clr-burgundy);
    color: var(--clr-cream);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(128, 18, 69, 0.2);
}

.auth-links {
    margin-top: 1.5rem;
    text-align: center;
    color: var(--clr-olive);
}

.auth-links a {
    color: var(--clr-burgundy);
    text-decoration: none;
    font-weight: 600;
}

.auth-links a:hover { text-decoration: underline; }

/* ============================================================
   Search page
   ============================================================ */
.search-section {
    padding: 6rem 0 3rem;
    text-align: center;
}

.search-section h1 {
    font-weight: 800;
    font-size: 3rem;
    color: var(--clr-charcoal);
    margin-bottom: 2rem;
}

.search-wrapper {
    position: relative;
    max-width: 700px;
    margin: 0 auto;
}

.search-input {
    width: 100%;
    padding: 1.5rem 5rem 1.5rem 2rem;
    font-size: 1.2rem;
    border: 2px solid var(--clr-khaki);
    border-radius: 8px;
    background-color: var(--clr-white);
    color: var(--clr-charcoal);
    box-shadow: 0 15px 30px rgba(61, 61, 52, 0.05);
    transition: all 0.3s;
}

.search-input:focus {
    outline: none;
    border-color: var(--clr-burgundy);
    box-shadow: 0 15px 30px rgba(128, 18, 69, 0.1);
}

.search-input::placeholder { color: var(--clr-olive); opacity: 0.6; }

.search-btn-inside {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--clr-burgundy);
    font-size: 2rem;
    cursor: pointer;
    transition: transform 0.3s;
    padding: 0;
}

.search-btn-inside:hover { transform: translateY(-50%) scale(1.1); }

/* ============================================================
   Newsletter
   ============================================================ */
.newsletter-card {
    background: var(--panel-alt);
    border: 1px solid var(--line-alt);
    border-radius: 12px;
    padding: 2rem;
}

.newsletter-card h3 { font-weight: 700; color: var(--clr-charcoal); margin-bottom: 0.5rem; }
.newsletter-card p  { color: var(--clr-olive); margin-bottom: 1.25rem; }

.newsletter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.newsletter-form input {
    width: 100%;
    border: 1px solid var(--clr-khaki);
    border-radius: 4px;
    padding: 0.75rem 1rem;
    background: var(--clr-white);
    color: var(--clr-charcoal);
    font-size: 0.95rem;
}

.newsletter-form input:focus {
    outline: none;
    border-color: var(--clr-burgundy);
    box-shadow: 0 0 0 0.2rem rgba(128, 18, 69, 0.1);
}

.newsletter-form .btn-subscribe {
    background-color: var(--clr-charcoal);
    color: var(--clr-cream);
    border: none;
    border-radius: 4px;
    padding: 0.75rem 1.25rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.newsletter-form .btn-subscribe:hover { background-color: var(--clr-burgundy); }

.newsletter-feedback { min-height: 1.4rem; margin-top: 0.75rem; font-size: 0.9rem; color: var(--clr-olive); }
.newsletter-feedback.is-success { color: #166534; }
.newsletter-feedback.is-error   { color: #b42318; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer {
    background-color: var(--clr-charcoal);
    color: var(--clr-khaki);
    padding: 3rem 0;
    margin-top: auto;
}

.site-footer .footer-brand {
    font-weight: 800;
    font-size: 1.4rem;
    color: var(--clr-cream);
    margin-bottom: 0.5rem;
}

.site-footer p { margin: 0; font-size: 0.9rem; }
.site-footer a { color: var(--clr-cream); text-decoration: none; }

/* ============================================================
   Article page
   ============================================================ */
.article-page { max-width: 780px; margin: 0 auto; }

.article-page h1 {
    font-weight: 800;
    font-size: 2.4rem;
    color: var(--clr-charcoal);
    line-height: 1.2;
    margin-bottom: 1rem;
}

.article-meta { color: var(--clr-olive); font-size: 0.9rem; margin-bottom: 2rem; }

.article-cover {
    width: 100%;
    max-height: 480px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 2rem;
}

.article-content { line-height: 1.8; color: var(--clr-charcoal); }

.article-content pre {
    position: relative;
    margin: 1.25rem 0;
    padding: 0;
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--code-bg);
}

.article-content pre code.hljs,
.article-content pre code {
    display: block;
    margin-left: 3.5rem;
    padding: 1rem 1.1rem;
    font-size: 0.9rem;
    line-height: 1.55;
}

.article-content .code-line-numbers {
    position: absolute;
    top: 0;
    left: 0;
    width: 3.5rem;
    height: 100%;
    padding: 1rem 0.75rem;
    border-right: 1px solid var(--line);
    color: var(--muted);
    background: var(--code-gutter-bg);
    text-align: right;
    font-size: 0.9rem;
    line-height: 1.55;
    white-space: pre;
    user-select: none;
}

.article-content :not(pre) > code {
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    background: var(--inline-code-bg);
    font-size: 0.9em;
}

.article-content .table-wrap { overflow-x: auto; margin: 1.25rem 0; }

.article-content .table-wrap table {
    width: 100%;
    border-collapse: collapse;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
}

.article-content .table-wrap th,
.article-content .table-wrap td {
    padding: 0.75rem 0.9rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.article-content .table-wrap thead th { background: var(--table-head-bg); }

/* ============================================================
   Pagination
   ============================================================ */
.pager { display: inline-flex; gap: 8px; align-items: center; }

/* ============================================================
   Inline form (logout)
   ============================================================ */
.inline-form { display: inline; margin: 0; padding: 0; }
.inline-form button {
    background: none;
    border: none;
    color: var(--clr-khaki);
    font-weight: 500;
    font-size: 0.95rem;
    cursor: pointer;
    padding: 0;
    transition: color 0.2s;
}
.inline-form button:hover { color: var(--clr-cream); }

/* ============================================================
   Eyebrow / section head
   ============================================================ */
.eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--clr-burgundy);
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.section-head h2, .section-head h3 { margin: 0; }

/* ============================================================
   Content grid (artigo + sidebar)
   ============================================================ */
.content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 2rem;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 768px) {
    .content-grid { grid-template-columns: 1fr; }
    .newsletter-form { grid-template-columns: 1fr; }
    .split-block .text-content { padding: 2rem; }
    .split-block h1 { font-size: 2rem; }
    .page-header h1 { font-size: 2rem; }
    .auth-card { padding: 2rem 1.5rem; }
}

/* ============================================================
   Blog — card destaque (imagem esquerda + texto direita)
   ============================================================ */
.card-featured {
    overflow: hidden;
    align-items: stretch;
}

.card-featured__img {
    width: 45%;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
    object-position: center center;
    flex-shrink: 0;
}

.card-featured__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem;
}

.card-featured__title {
    font-weight: 800;
    color: var(--clr-charcoal);
    font-size: 1.6rem;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.card-featured__excerpt {
    color: var(--clr-olive);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

/* ============================================================
   Blog — cards menores (2 colunas)
   ============================================================ */
.card-small__img {
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.card-small__body {
    padding: 1rem;
    background-color: var(--clr-white);
    color: var(--clr-charcoal);
}

.card-small__title {
    font-weight: 700;
    color: var(--clr-charcoal) !important;
    font-size: 1.1rem;
    margin: 0.5rem 0;
    text-decoration: none;
    display: block;
}

.card-small__title:hover {
    color: var(--clr-burgundy) !important;
}

.card-small__excerpt {
    color: var(--clr-olive) !important;
    font-size: 0.88rem;
    margin-bottom: 1rem;
}

/* ============================================================
   Blog — card com imagem de fundo + texto sobreposto
   ============================================================ */
.card-overlay {
    display: block;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    height: 220px;
    text-decoration: none;
}

.card-overlay__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-overlay__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(61,61,52,0.85) 0%, rgba(61,61,52,0.1) 60%);
}

.card-overlay__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.2rem;
}

.card-overlay__title {
    font-weight: 700;
    color: #fff;
    font-size: 1rem;
    margin: 0.3rem 0 0;
    line-height: 1.3;
}

.card-overlay__date {
    color: rgba(255,255,255,0.7);
    font-size: 0.78rem;
}

.card-overlay__eyebrow {
    color: var(--clr-khaki);
}

/* ============================================================
   Blog — card preto (só texto)
   ============================================================ */
.card-dark {
    background: var(--clr-charcoal);
    border-radius: 8px;
    padding: 1.5rem;
    height: 100%;
}

.card-dark__eyebrow {
    color: var(--clr-khaki);
}

.card-dark__title {
    font-weight: 700;
    color: #fff;
    font-size: 1rem;
    margin: 0.5rem 0;
    line-height: 1.3;
    text-decoration: none;
}

.card-dark__title:hover { color: var(--clr-khaki); }

.card-dark__excerpt {
    color: var(--clr-khaki);
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
    line-height: 1.5;
}

.card-dark__date {
    color: var(--clr-olive);
    font-size: 0.78rem;
}

/* ============================================================
   Blog — cards restantes (2 colunas, imagem lateral)
   ============================================================ */
.card-rest {
    display: flex;
    flex-direction: row;
    overflow: hidden;
}

.card-rest__img {
    width: 160px;
    min-height: 140px;
    object-fit: cover;
    flex-shrink: 0;
}

.card-rest__body {
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.card-rest__meta {
    font-size: 0.78rem;
    color: var(--clr-olive);
    margin-bottom: 0.4rem;
}

.card-rest__meta a {
    color: var(--clr-burgundy);
    text-decoration: none;
    font-weight: 600;
}

.card-rest__title {
    font-weight: 700;
    color: var(--clr-charcoal);
    font-size: 1rem;
    line-height: 1.3;
    margin-bottom: 0.5rem;
    text-decoration: none;
}

.card-rest__title:hover { color: var(--clr-burgundy); }

.card-rest__excerpt {
    color: var(--clr-olive);
    font-size: 0.85rem;
    line-height: 1.5;
    margin-bottom: 0.75rem;
}

.btn-sm-theme {
    font-size: 0.82rem;
    padding: 0.35rem 0.9rem;
}

/* card-small wrapper garante fundo e cor independente do Bootstrap */
.card-small-wrap {
    background-color: var(--clr-white);
    color: var(--clr-charcoal);
}

/* ============================================================
   Navbar — logo e busca
   ============================================================ */
.navbar-logo {
    height: 32px;
    margin-right: 8px;
    vertical-align: middle;
}

.navbar-search-form {
    display: flex;
    align-items: center;
    gap: 0;
}

.navbar-search-input {
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(220,219,175,0.3);
    border-radius: 4px 0 0 4px;
    padding: 0.35rem 0.75rem;
    color: var(--clr-cream);
    font-size: 0.88rem;
    width: 160px;
    transition: all 0.2s;
}

.navbar-search-input::placeholder { color: var(--clr-khaki); opacity: 0.7; }

.navbar-search-input:focus {
    outline: none;
    background: rgba(255,255,255,0.15);
    border-color: var(--clr-khaki);
    width: 200px;
}

.navbar-search-btn {
    background: var(--clr-burgundy);
    border: none;
    border-radius: 0 4px 4px 0;
    padding: 0.35rem 0.7rem;
    color: var(--clr-cream);
    cursor: pointer;
    transition: background 0.2s;
    font-size: 0.88rem;
}

.navbar-search-btn:hover { background: #600d33; }

/* ============================================================
   Página do artigo completo
   ============================================================ */
.article-wrapper {
    padding: 0 1rem;
}

/* tablet portrait (≥576px) */
@media (min-width: 576px) {
    .article-wrapper { padding: 0 1.5rem; }
}

/* tablet landscape (≥768px) */
@media (min-width: 768px) {
    .article-wrapper { padding: 0 2rem; }
}

/* desktop (≥992px) */
@media (min-width: 992px) {
    .article-wrapper { padding: 0 3rem; }
}
.article-page-title {
    font-weight: 800;
    font-size: 2.4rem;
    color: var(--clr-charcoal);
    line-height: 1.2;
    margin: 0.75rem 0 1rem;
}

.article-page-meta {
    color: var(--clr-olive);
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.article-lead {
    font-size: 1.15rem;
    color: var(--clr-olive);
    line-height: 1.7;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--line);
}

@media (max-width: 768px) {
    .article-page-title { font-size: 1.8rem; }
}

/* ============================================================
   Blog — card com thumbnail lateral (topo)
   ============================================================ */
.card-thumb {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    background: var(--clr-white);
    border-radius: 8px;
    padding: 0.75rem;
    box-shadow: 0 4px 10px rgba(61,61,52,0.05);
}

.card-thumb__img-wrap { flex-shrink: 0; }

.card-thumb__img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}

.card-thumb__body { flex: 1; min-width: 0; }

.card-thumb__title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0.25rem 0 0.3rem;
    line-height: 1.3;
}

.card-thumb__title-link {
    color: var(--clr-charcoal);
    text-decoration: none;
}

.card-thumb__title-link:hover { color: var(--clr-burgundy); }

.card-thumb__meta {
    font-size: 0.78rem;
    color: var(--clr-olive);
    margin: 0;
}

/* ============================================================
   Blog — card grid (imagem em cima + texto embaixo)
   ============================================================ */
.card-grid-item {
    background: var(--clr-white);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(61,61,52,0.05);
    transition: transform 0.2s, box-shadow 0.2s;
    height: 100%;
}

.card-grid-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(61,61,52,0.1);
}

.card-grid-item__img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    display: block;
}

.card-grid-item__body { padding: 0.75rem; }

.card-grid-item__title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.4rem;
    line-height: 1.3;
}

.card-grid-item__title-link {
    color: var(--clr-charcoal);
    text-decoration: none;
}

.card-grid-item__title-link:hover { color: var(--clr-burgundy); }

.card-grid-item__excerpt {
    font-size: 0.82rem;
    color: var(--clr-olive);
    margin: 0;
    line-height: 1.5;
}

.card-grid-item__more {
    color: var(--clr-burgundy);
    text-decoration: none;
    font-weight: 600;
}

/* ============================================================
   Home — seções e componentes
   ============================================================ */
.home-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 1.5rem;
}

.home-section-title {
    font-weight: 800;
    color: var(--clr-charcoal);
    font-size: 2.2rem;
    margin: 0;
}

.home-section-link {
    border-radius: 50px;
}

/* Featured */
.home-featured__img {
    width: 100%;
    height: 400px;
    object-fit: cover;
}

.home-featured__title {
    font-weight: 800;
    color: var(--clr-charcoal);
    font-size: 1.8rem;
    line-height: 1.3;
    margin: 0.5rem 0;
}

.home-featured__title-link {
    text-decoration: none;
    color: inherit;
}

.home-featured__title-link:hover { color: var(--clr-burgundy); }

.home-featured__date {
    color: var(--clr-olive);
    opacity: 0.8;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.home-featured__excerpt {
    color: var(--clr-olive);
    font-size: 1.05rem;
}

/* Side list */
.home-side-item {
    display: flex;
    align-items: center;
}

.home-side-item__img {
    width: 120px;
    height: 120px;
    object-fit: cover;
}

.home-side-item__title {
    font-weight: 700;
    color: var(--clr-charcoal);
    font-size: 1.1rem;
    margin: 0.3rem 0 0.5rem;
    line-height: 1.3;
}

.home-side-item__title-link {
    text-decoration: none;
    color: inherit;
}

.home-side-item__title-link:hover { color: var(--clr-burgundy); }

.home-side-item__date {
    color: var(--clr-olive);
    opacity: 0.8;
    font-size: 0.85rem;
    margin: 0;
}

/* Magazine */
.home-magazine {
    border-top: 2px solid rgba(93,92,73,0.2);
}

.home-magazine-title {
    font-size: 1.1rem;
    border-bottom: 2px solid var(--clr-khaki);
    padding-bottom: 0.5rem;
    margin-bottom: 2rem;
}

/* Newsletter CTA */
.home-newsletter {
    background-color: var(--clr-khaki);
    border: 1px solid rgba(93,92,73,0.2);
    border-radius: 8px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 768px) {
    .home-newsletter {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.home-newsletter__text { flex: 1; padding-right: 1.5rem; }

.home-newsletter__title {
    font-weight: 800;
    color: var(--clr-charcoal);
    font-size: 1.3rem;
    margin-bottom: 0.4rem;
}

.home-newsletter__desc {
    color: var(--clr-olive);
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
}

.home-newsletter__form { min-width: 280px; }

.home-newsletter__input {
    flex: 1;
    border: none;
    border-radius: 4px;
    padding: 0.7rem 1rem;
    font-size: 0.9rem;
    color: var(--clr-charcoal);
}

.home-newsletter__btn {
    white-space: nowrap;
    padding: 0.7rem 1rem;
    font-size: 0.9rem;
}

/* Sidebar */
.home-sidebar-title {
    font-size: 1.1rem;
    border-bottom: 2px solid var(--clr-khaki);
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
}

.home-category-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.9rem;
    border: 1.5px solid var(--clr-burgundy);
    border-radius: 2rem;
    color: var(--clr-burgundy);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    transition: background .15s, color .15s;
}
.home-category-pill:hover {
    background: var(--clr-burgundy);
    color: #fff;
}

.home-sidebar-cat-link {
    color: var(--clr-olive);
    text-decoration: none;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

.home-sidebar-cat-link:hover { color: var(--clr-burgundy); }

.home-sidebar-cat-icon { color: var(--clr-burgundy); }

/* Recent list */
.home-recent-item {
    display: flex;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(93,92,73,0.15);
}

.home-recent-item__img {
    width: 50px;
    height: 50px;
    object-fit: cover;
}

.home-recent-item__title {
    font-size: 0.88rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
    line-height: 1.3;
}

.home-recent-item__link {
    text-decoration: none;
    color: var(--clr-charcoal);
}

.home-recent-item__link:hover { color: var(--clr-burgundy); }

.home-recent-item__date {
    color: var(--clr-olive);
    font-size: 0.75rem;
}

/* ============================================================
   Artigo — relacionados
   ============================================================ */
.article-related {
    border-top: 2px solid var(--clr-khaki);
}

.article-related__title {
    font-size: 1.1rem;
    margin-bottom: 0;
}

.article-related__title a {
    color: var(--clr-burgundy);
}

/* ============================================================
   Artigo — bloco de comentários
   ============================================================ */
.article-comments {
    margin-top: 3rem;
    background-color: var(--clr-khaki);
    border-radius: 12px;
    padding: 2rem;
}

.article-comments__header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-weight: 800;
    font-size: 1.2rem;
    color: var(--clr-charcoal);
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid rgba(61, 61, 52, 0.15);
}

.article-comments__header i {
    font-size: 1.4rem;
    color: var(--clr-burgundy);
}

/* ============================================================
   Artigo — reações (like / dislike)
   ============================================================ */
.article-reactions {
    display: flex;
    gap: 0.75rem;
    margin-top: 2rem;
    margin-bottom: 1.5rem;
}

.reaction-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    border: 2px solid currentColor;
    border-radius: 999px;
    background: transparent;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}

/* Like — verde */
.reaction-btn[data-reaction="like"] {
    color: #198754;
}
.reaction-btn[data-reaction="like"]:hover {
    background: rgba(25, 135, 84, 0.08);
}
.reaction-btn[data-reaction="like"].active {
    background: #198754;
    color: #fff;
}

/* Dislike — vermelho */
.reaction-btn[data-reaction="dislike"] {
    color: #dc3545;
}
.reaction-btn[data-reaction="dislike"]:hover {
    background: rgba(220, 53, 69, 0.08);
}
.reaction-btn[data-reaction="dislike"].active {
    background: #dc3545;
    color: #fff;
}

/* Lido — lilás */
.reaction-btn[data-lido-button],
.btn-lido {
    color: #7c5cbf;
    border-color: #7c5cbf;
    background: transparent;
    transition: color .15s, background .15s, border-color .15s;
}
.reaction-btn[data-lido-button]:hover,
.btn-lido:hover {
    background: rgba(124, 92, 191, 0.08);
    border-color: #7c5cbf;
}
.reaction-btn[data-lido-button].active,
.btn-lido.active {
    background: #7c5cbf;
    border-color: #7c5cbf;
    color: #fff;
}
.reaction-btn[data-lido-button].active:hover,
.btn-lido.active:hover {
    background: #6244a8;
    border-color: #6244a8;
}
