/* ==========================================================
   BLOG DE LIVROS
   ========================================================== */


/* ==========================================================
   CONFIGURAÇÕES GERAIS
   ========================================================== */

* {
      box-sizing: border-box;
}

html {
      scroll-behavior: smooth;
}

body {
      margin: 0;

      background: #f7f8fa;

      color: #202832;

      font-family:
            Inter,
            Arial,
            sans-serif;

      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
}

img {
      max-width: 100%;
}

a {
      transition:
            color 0.2s ease,
            background-color 0.2s ease,
            border-color 0.2s ease,
            transform 0.2s ease;
}


/* ==========================================================
   NAVBAR
   ========================================================== */

.blog-navbar {
      padding: 16px 0;

      background: #ffffff;

      border-bottom: 1px solid #e9ecef;
}

.blog-navbar .navbar-brand {
      color: #17202a;

      font-weight: 800;

      text-decoration: none;
}

.blog-navbar .nav-link {
      color: #59636e;

      font-weight: 600;
}

.blog-navbar .nav-link:hover,
.blog-navbar .nav-link.active {
      color: #0d6efd;
}


/* ==========================================================
   PÁGINA
   ========================================================== */

.blog-page {
      padding: 50px 0 80px;
}


/* ==========================================================
   ARTIGO EM DESTAQUE
   ========================================================== */

.featured-section {
      margin-bottom: 45px;
}

.featured-card {
      display: grid;

      grid-template-columns:
            1.3fr 1fr;

      overflow: hidden;

      border-radius: 22px;

      background: #ffffff;

      box-shadow:
            0 12px 40px rgba(0, 0, 0, 0.06);
}

.featured-image {
      display: block;

      min-height: 430px;

      overflow: hidden;

      background: #eef0f2;
}

.featured-image img {
      display: block;

      width: 100%;
      height: 100%;

      object-fit: cover;

      transition:
            transform 0.5s ease;
}

.featured-image:hover img {
      transform: scale(1.03);
}

.featured-content {
      display: flex;

      flex-direction: column;

      justify-content: center;

      padding: 50px;
}

.featured-label {
      margin-bottom: 15px;

      color: #0d6efd;

      font-size: 0.75rem;

      font-weight: 800;

      letter-spacing: 0.12em;
}

.featured-content h1 {
      margin: 0 0 20px;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: clamp(2rem,
                  4vw,
                  3rem);

      line-height: 1.2;
}

.featured-content h1 a {
      color: #17202a;

      text-decoration: none;
}

.featured-content h1 a:hover {
      color: #0d6efd;
}

.featured-content p {
      margin-bottom: 28px;

      color: #66717d;

      line-height: 1.75;
}

.featured-button {
      display: inline-flex;

      align-items: center;

      gap: 10px;

      width: fit-content;

      padding: 11px 18px;

      border-radius: 10px;

      background: #0d6efd;

      color: #ffffff;

      font-weight: 700;

      text-decoration: none;

      transition:
            transform 0.2s ease,
            box-shadow 0.2s ease;
}

.featured-button:hover {
      color: #ffffff;

      transform: translateY(-2px);

      box-shadow:
            0 8px 20px rgba(13, 110, 253, 0.25);
}


/* ==========================================================
   LAYOUT PRINCIPAL
   ========================================================== */

.blog-layout {
      display: grid;

      grid-template-columns:
            minmax(0, 1fr) 320px;

      gap: 32px;

      align-items: start;
}

.blog-main {
      min-width: 0;
}

.blog-sidebar {
      display: flex;

      flex-direction: column;

      gap: 24px;

      min-width: 0;
}


/* ==========================================================
   TÍTULO DA SEÇÃO
   ========================================================== */

.section-heading {
      margin-bottom: 22px;

      border-bottom: 1px solid #e1e5e9;
}

.section-heading h2 {
      display: inline-block;

      margin: 0;

      padding-bottom: 12px;

      border-bottom: 3px solid #0d6efd;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1.45rem;
}


/* ==========================================================
   GRID DOS ARTIGOS NORMAIS
   ========================================================== */

.articles-grid {
      display: grid;

      grid-template-columns:
            repeat(2,
                  minmax(0, 1fr));

      gap: 24px;
}


/* ==========================================================
   CARD DE ARTIGO
   ========================================================== */

.article-card {
      overflow: hidden;

      border: 1px solid #e8ebef;

      border-radius: 16px;

      background: #ffffff;

      transition:
            transform 0.25s ease,
            box-shadow 0.25s ease;
}

.article-card:hover {
      transform: translateY(-4px);

      box-shadow:
            0 12px 30px rgba(0, 0, 0, 0.07);
}


/* ==========================================================
   IMAGEM DO ARTIGO
   ========================================================== */

.article-card-image {
      display: block;

      width: 100%;

      height: 210px;

      overflow: hidden;

      background: #eef0f2;
}

.article-card-image img {
      display: block;

      width: 100%;
      height: 100%;

      object-fit: cover;

      transition:
            transform 0.4s ease;
}

.article-card:hover .article-card-image img {
      transform: scale(1.04);
}


/* ==========================================================
   CONTEÚDO DO CARD
   ========================================================== */

.article-card-content {
      padding: 22px;
}

.article-card-date {
      margin-bottom: 8px;

      color: #8b949e;

      font-size: 0.75rem;
}

.article-card h3 {
      margin: 0 0 12px;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1.2rem;

      line-height: 1.4;
}

.article-card h3 a {
      color: #202832;

      text-decoration: none;
}

.article-card h3 a:hover {
      color: #0d6efd;
}

.article-card p {
      margin-bottom: 18px;

      color: #69737d;

      font-size: 0.92rem;

      line-height: 1.7;
}

.article-read-more {
      color: #0d6efd;

      font-size: 0.85rem;

      font-weight: 700;

      text-decoration: none;
}

.article-read-more:hover {
      color: #084298;
}


/* ==========================================================
   SIDEBAR
   ========================================================== */

.sidebar-widget {
      padding: 24px;

      border: 1px solid #e8ebef;

      border-radius: 16px;

      background: #ffffff;
}

.sidebar-widget-title {
      margin-bottom: 15px;

      padding-bottom: 12px;

      border-bottom: 1px solid #e9ecef;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1.15rem;

      font-weight: 700;
}

.sidebar-ad {
      display: flex;

      align-items: center;

      justify-content: center;

      min-height: 280px;

      border: 1px dashed #dfe3e8;

      border-radius: 16px;

      background: #ffffff;

      color: #adb5bd;

      font-size: 0.7rem;
}


/* ==========================================================
   MAIS LIDOS
   ========================================================== */

.most-read-list {
      display: flex;

      flex-direction: column;
}

.most-read-item {
      display: grid;

      grid-template-columns:
            72px minmax(0, 1fr);

      gap: 12px;

      padding: 16px 0;

      border-bottom:
            1px solid #eef0f2;
}

.most-read-item:first-child {
      padding-top: 0;
}

.most-read-item:last-child {
      padding-bottom: 0;

      border-bottom: 0;
}


/* ==========================================================
   IMAGEM — MAIS LIDOS
   ========================================================== */

.most-read-image {
      display: block;

      width: 72px;

      height: 82px;

      overflow: hidden;

      border-radius: 9px;

      background: #eef0f2;
}

.most-read-image img {
      display: block;

      width: 100%;
      height: 100%;

      object-fit: cover;

      transition:
            transform 0.3s ease;
}

.most-read-item:hover .most-read-image img {
      transform: scale(1.05);
}


/* ==========================================================
   CONTEÚDO — MAIS LIDOS
   ========================================================== */

.most-read-content {
      display: flex;

      gap: 9px;

      min-width: 0;
}


/* ==========================================================
   NÚMERO — MAIS LIDOS
   ========================================================== */

.most-read-number {
      flex-shrink: 0;

      color: #0d6efd;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1rem;

      font-weight: 900;
}


/* ==========================================================
   TÍTULO — MAIS LIDOS
   ========================================================== */

.most-read-content h3 {
      margin: 0 0 7px;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.88rem;

      font-weight: 700;

      line-height: 1.4;
}

.most-read-content h3 a {
      color: #202832;

      text-decoration: none;
}

.most-read-content h3 a:hover {
      color: #0d6efd;
}


/* ==========================================================
   VISUALIZAÇÕES — MAIS LIDOS
   ========================================================== */

.most-read-views {
      color: #929aa3;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.7rem;
}


/* ==========================================================
   PAGINAÇÃO
   ========================================================== */

.blog-pagination {
      margin-top: 40px;

      padding-top: 25px;

      border-top:
            1px solid #e5e8eb;
}

.pagination-list {
      display: flex;

      align-items: center;

      justify-content: center;

      flex-wrap: wrap;

      gap: 8px;

      margin: 0;

      padding: 0;

      list-style: none;
}

.pagination-link {
      display: flex;

      align-items: center;

      justify-content: center;

      min-width: 42px;

      height: 42px;

      padding: 0 13px;

      border: 1px solid #e1e5e9;

      border-radius: 9px;

      background: #ffffff;

      color: #4f5963;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.88rem;

      font-weight: 600;

      text-decoration: none;

      transition:
            background 0.2s ease,
            color 0.2s ease,
            border-color 0.2s ease,
            transform 0.2s ease;
}

.pagination-link:hover {
      border-color: #0d6efd;

      background: #f1f6ff;

      color: #0d6efd;

      transform: translateY(-1px);
}

.pagination-link.active {
      border-color: #0d6efd;

      background: #0d6efd;

      color: #ffffff;

      cursor: default;
}

.pagination-prev,
.pagination-next {
      padding-left: 16px;

      padding-right: 16px;
}


/* ==========================================================
   BUSCA
   ========================================================== */

.blog-search {
      margin-bottom: 40px;
}

.blog-search-form {
      display: flex;

      gap: 10px;

      max-width: 850px;

      margin: 0 auto;
}

.blog-search-input {
      position: relative;

      flex: 1;

      min-width: 0;
}

.blog-search-input span {
      position: absolute;

      top: 50%;

      left: 16px;

      z-index: 2;

      transform: translateY(-50%);

      font-size: 1rem;

      pointer-events: none;
}

.blog-search-input input {
      width: 100%;

      height: 50px;

      padding:
            0 18px 0 45px;

      border: 1px solid #dfe3e8;

      border-radius: 11px;

      outline: none;

      background: #ffffff;

      color: #202832;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.9rem;

      transition:
            border-color 0.2s ease,
            box-shadow 0.2s ease;
}

.blog-search-input input::placeholder {
      color: #9aa2aa;
}

.blog-search-input input:focus {
      border-color: #0d6efd;

      box-shadow:
            0 0 0 3px rgba(13, 110, 253, 0.10);
}

.blog-search-button {
      flex-shrink: 0;

      height: 50px;

      padding:
            0 24px;

      border: 0;

      border-radius: 11px;

      background: #0d6efd;

      color: #ffffff;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-weight: 700;

      cursor: pointer;

      transition:
            background 0.2s ease,
            transform 0.2s ease;
}

.blog-search-button:hover {
      background: #0b5ed7;

      transform: translateY(-1px);
}


/* ==========================================================
   TÍTULO DOS RESULTADOS
   ========================================================== */

.search-results-heading {
      margin-bottom: 30px;

      padding-bottom: 20px;

      border-bottom:
            1px solid #e5e8eb;
}

.search-results-heading h1 {
      margin: 0 0 7px;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1.6rem;

      line-height: 1.4;
}

.search-results-heading h1 strong {
      color: #0d6efd;
}

.search-results-heading p {
      margin: 0;

      color: #7a838d;

      font-size: 0.85rem;
}


/* ==========================================================
   LISTA DOS RESULTADOS
   ========================================================== */

.search-results-list {
      display: flex;

      flex-direction: column;

      gap: 20px;

      width: 100%;
}


/* ==========================================================
   CARD DO RESULTADO DA BUSCA
   ========================================================== */

.search-result-card {
      display: grid;

      grid-template-columns:
            340px minmax(0, 1fr);

      width: 100%;

      min-height: 270px;

      overflow: hidden;

      border:
            1px solid #e7eaee;

      border-radius: 14px;

      background: #ffffff;

      box-shadow:
            0 4px 18px rgba(0, 0, 0, 0.035);

      transition:
            transform 0.2s ease,
            box-shadow 0.2s ease;
}

.search-result-card:hover {
      transform: translateY(-2px);

      box-shadow:
            0 10px 30px rgba(0, 0, 0, 0.07);
}


/* ==========================================================
   IMAGEM DO RESULTADO
   ========================================================== */

.search-result-image {
      display: block;

      width: 100%;

      height: 100%;

      min-height: 270px;

      overflow: hidden;

      background: #eef1f4;
}

.search-result-image img {
      display: block;

      width: 100%;
      height: 100%;

      object-fit: cover;

      transition:
            transform 0.35s ease;
}

.search-result-card:hover .search-result-image img {
      transform: scale(1.03);
}


/* ==========================================================
   CORPO DO RESULTADO
   ========================================================== */

.search-result-body {
      display: flex;

      flex-direction: column;

      justify-content: center;

      min-width: 0;

      padding: 30px;
}


/* ==========================================================
   DATA DO RESULTADO
   ========================================================== */

.search-result-date {
      margin-bottom: 12px;

      color: #7b8490;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.78rem;
}


/* ==========================================================
   TÍTULO DO RESULTADO
   ========================================================== */

.search-result-title {
      margin: 0 0 12px;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1.45rem;

      font-weight: 700;

      line-height: 1.4;
}

.search-result-title a {
      color: #17202a;

      text-decoration: none;
}

.search-result-title a:hover {
      color: #0d6efd;
}


/* ==========================================================
   RESUMO DO RESULTADO
   ========================================================== */

.search-result-summary {
      display: -webkit-box;

      overflow: hidden;

      margin: 0;

      color: #69737e;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.9rem;

      line-height: 1.7;

      /*-webkit-line-clamp: 3;*/

      -webkit-box-orient: vertical;
}


/* ==========================================================
   RODAPÉ DO RESULTADO
   ========================================================== */

.search-result-footer {
      display: flex;

      align-items: center;

      justify-content: space-between;

      gap: 15px;

      margin-top: 22px;
}


/* ==========================================================
   CATEGORIA DO RESULTADO
   ========================================================== */

.search-result-category {
      display: inline-flex;

      align-items: center;

      width: fit-content;

      padding:
            5px 10px;

      border-radius: 6px;

      background: #eaf3ff;

      color: #0d6efd;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.72rem;

      font-weight: 600;
}


/* ==========================================================
   LINK DO RESULTADO
   ========================================================== */

.search-result-link {
      color: #0d6efd;

      font-family:
            Inter,
            Arial,
            sans-serif;

      font-size: 0.86rem;

      font-weight: 700;

      text-decoration: none;

      white-space: nowrap;
}

.search-result-link:hover {
      color: #084298;
}


/* ==========================================================
   ESTADO — NENHUM RESULTADO
   ========================================================== */

.search-empty {
      padding: 50px 30px;

      border:
            1px solid #e7eaee;

      border-radius: 14px;

      background: #ffffff;

      text-align: center;
}

.search-empty h2 {
      margin-bottom: 10px;

      font-family:
            Merriweather,
            Georgia,
            serif;

      font-size: 1.35rem;
}

.search-empty p {
      margin: 0;

      color: #737d87;

      line-height: 1.7;
}





/* ======================================================
   FOOTER
====================================================== */

.site-footer {

      margin-top: 80px;

      padding: 55px 0 25px;

      background: #111827;

      color: #ffffff;

}


/* ======================================================
   TÍTULO
====================================================== */

.site-footer-title {

      margin-bottom: 18px;

      font-family: 'Merriweather', serif;

      font-size: 1.35rem;

      font-weight: 700;

}


/* ======================================================
   TEXTO
====================================================== */

.site-footer-text {

      max-width: 520px;

      margin: 0;

      color: #cbd5e1;

      line-height: 1.8;

      font-size: 0.95rem;

}


/* ======================================================
   TÍTULOS DAS COLUNAS
====================================================== */

.site-footer-heading {

      margin-bottom: 18px;

      font-size: 1rem;

      font-weight: 700;

}


/* ======================================================
   LINKS
====================================================== */

.site-footer-links {

      margin: 0;

      padding: 0;

      list-style: none;

}


.site-footer-links li {

      margin-bottom: 10px;

}


.site-footer-links a {

      color: #cbd5e1;

      text-decoration: none;

      transition:
            color 0.2s ease,
            padding-left 0.2s ease;

}


.site-footer-links a:hover {

      color: #ffffff;

      padding-left: 4px;

}


/* ======================================================
   DIVISOR
====================================================== */

.site-footer-divider {

      height: 1px;

      margin: 40px 0 22px;

      background: rgba(255, 255, 255, 0.12);

}


/* ======================================================
   PARTE INFERIOR
====================================================== */

.site-footer-bottom {

      display: flex;

      justify-content: space-between;

      align-items: center;

      gap: 20px;

      flex-wrap: wrap;

}


.site-footer-bottom p {

      margin: 0;

      color: #94a3b8;

      font-size: 0.85rem;

      line-height: 1.6;

}


/* ======================================================
   RESPONSIVIDADE
====================================================== */

@media (max-width: 767.98px) {

      .site-footer {

            margin-top: 55px;

            padding: 45px 0 25px;

      }


      .site-footer-bottom {

            display: block;

      }


      .site-footer-bottom p+p {

            margin-top: 8px;

      }

}

/* ==========================================================
   TABLET / NOTEBOOK PEQUENO
   ========================================================== */

@media (max-width: 991px) {

      /* Destaque */

      .featured-card {
            grid-template-columns: 1fr;
      }

      .featured-image {
            min-height: 320px;
      }

      .featured-content {
            padding: 35px;
      }


      /* Layout */

      .blog-layout {
            grid-template-columns: 1fr;
      }


      /* Sidebar */

      .blog-sidebar {
            display: grid;

            grid-template-columns:
                  repeat(2,
                        minmax(0, 1fr));
      }


      /* Busca */

      .search-result-card {
            grid-template-columns:
                  280px minmax(0, 1fr);
      }

      .search-result-image {
            min-height: 260px;
      }

      .search-result-body {
            padding: 26px;
      }

}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 768px) {

      /* Página */

      .blog-page {
            padding: 30px 0 55px;
      }


      /* Destaque */

      .featured-content {
            padding: 28px;
      }

      .featured-content h1 {
            font-size: 1.9rem;
      }


      /* Grid normal */

      .articles-grid {
            grid-template-columns: 1fr;
      }


      /* Sidebar */

      .blog-sidebar {
            display: flex;

            flex-direction: column;
      }


      /* Paginação */

      .blog-pagination {
            margin-top: 30px;

            padding-top: 20px;
      }

      .pagination-list {
            gap: 6px;
      }

      .pagination-link {
            min-width: 38px;

            height: 38px;

            padding:
                  0 10px;

            font-size: 0.82rem;
      }

      .pagination-prev,
      .pagination-next {
            padding-left: 11px;

            padding-right: 11px;
      }


      /* Busca */

      .blog-search {
            margin-bottom: 30px;
      }

      .blog-search-form {
            flex-direction: column;
      }

      .blog-search-button {
            width: 100%;
      }


      /* Título dos resultados */

      .search-results-heading h1 {
            font-size: 1.3rem;
      }


      /* Card da busca */

      .search-result-card {
            grid-template-columns:
                  240px minmax(0, 1fr);
      }

      .search-result-image {
            min-height: 240px;
      }

      .search-result-body {
            padding: 22px;
      }

      .search-result-title {
            font-size: 1.2rem;
      }

}


/* ==========================================================
   CELULAR
   ========================================================== */

@media (max-width: 600px) {

      /* Destaque */

      .featured-image {
            min-height: 230px;
      }

      .featured-content {
            padding: 24px;
      }

      .featured-content h1 {
            font-size: 1.65rem;
      }


      /* Cards normais */

      .article-card-image {
            height: 200px;
      }


      /* Resultado da busca */

      .search-result-card {
            display: block;

            min-height: 0;
      }

      .search-result-image {
            width: 100%;

            height: 230px;

            min-height: 230px;
      }

      .search-result-body {
            padding: 22px;
      }

      .search-result-title {
            font-size: 1.15rem;
      }

}


/* ==========================================================
   CELULAR PEQUENO
   ========================================================== */

@media (max-width: 480px) {

      /* Página */

      .blog-page {
            padding:
                  25px 0 50px;
      }


      /* Destaque */

      .featured-content {
            padding: 20px;
      }

      .featured-content h1 {
            font-size: 1.5rem;
      }


      /* Sidebar */

      .sidebar-widget {
            padding: 20px;
      }


      /* Mais lidos */

      .most-read-item {
            grid-template-columns:
                  62px minmax(0, 1fr);

            gap: 10px;
      }

      .most-read-image {
            width: 62px;

            height: 74px;
      }


      /* Paginação */

      .pagination-link {
            min-width: 36px;

            height: 36px;

            padding:
                  0 9px;

            font-size: 0.78rem;
      }


      /* Busca */

      .search-results-heading {
            margin-bottom: 22px;

            padding-bottom: 16px;
      }

      .search-results-heading h1 {
            font-size: 1.15rem;
      }

      .search-results-heading p {
            font-size: 0.8rem;
      }


      /* Resultado */

      .search-result-image {
            height: 200px;

            min-height: 200px;
      }

      .search-result-body {
            padding: 18px;
      }

      .search-result-date {
            margin-bottom: 8px;

            font-size: 0.74rem;
      }

      .search-result-title {
            margin-bottom: 10px;

            font-size: 1.08rem;
      }

      .search-result-summary {
            font-size: 0.85rem;

            line-height: 1.6;
      }

      .search-result-footer {
            align-items: flex-start;

            flex-direction: column;

            gap: 12px;

            margin-top: 18px;
      }

      .search-result-link {
            font-size: 0.82rem;
      }


      /* Busca */

      .blog-search-form {
            gap: 8px;
      }

      .blog-search-input input,
      .blog-search-button {
            height: 48px;
      }

}