/* =========================================================
   BLOG
   ========================================================= */

.ab-blog{
  padding:70px 0 100px;
}

.ab-blog__header{
  margin-bottom:45px;
  text-align:center;
}

.ab-blog__header h1{
  margin:0 0 16px;
  font-size:56px;
}

.ab-blog__intro{
  max-width:720px;
  margin:0 auto;
  color:var(--smoke);
  font-size:16px;
  line-height:2;
}

.ab-blog__filters{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin:0 auto 42px;
  padding:18px;
  background:var(--snow);
  border:1px solid var(--line);
}

.ab-blog__filter-btn{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:8px 16px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.ab-blog__filter-btn:hover,
.ab-blog__filter-btn.active{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
  transform:translateY(-2px);
}

.ab-blog__filter-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  background:var(--mist);
  color:var(--smoke);
  font-size:10px;
}

.ab-blog__filter-btn.active .ab-blog__filter-count,
.ab-blog__filter-btn:hover .ab-blog__filter-count{
  background:var(--signal);
  color:#fff;
}


/* =========================================================
   BLOG GRID
   ========================================================= */

.ab-grid--posts{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.ab-post{
  position:relative;
  background:var(--snow);
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-width:0;
}

.ab-post__image{
  position:relative;
  display:block;
  aspect-ratio:16 / 10;
  overflow:hidden;
  background:var(--mist);
}

.ab-post__image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.ab-post__meta{
  display:flex;
  align-items:center;
  gap:10px;
  padding:20px 20px 0;
  color:var(--steel);
  font-size:11px;
  font-weight:700;
}

.ab-post__title{
  margin:10px 20px 0;
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.8;
  font-weight:900;
  color:var(--ink);
}

.ab-post__excerpt{
  margin:10px 20px 0;
  color:var(--smoke);
  font-size:13px;
  line-height:2;
}

.ab-post__read{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  margin:18px 20px 20px;
  color:var(--signal);
  font-size:12px;
  font-weight:900;
}

.ab-post__read:hover{
  transform:translateX(-3px);
}

.ab-blog__empty{
  padding:50px 20px;
  text-align:center;
  background:var(--snow);
  border:1px solid var(--line);
  color:var(--steel);
}


/* =========================================================
   PAGINATION
   ========================================================= */

.ab-blog__pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:50px;
}

.ab-blog__pagination a,
.ab-blog__pagination span{
  min-width:40px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0 10px;
  border:1px solid var(--line);
  background:var(--snow);
  color:var(--ink);
  border-radius:4px;
  font-size:13px;
  font-weight:800;
}

.ab-blog__pagination .current,
.ab-blog__pagination a:hover{
  background:var(--signal);
  border-color:var(--signal);
  color:#fff;
}


/* =========================================================
   BLOG RESPONSIVE
   ========================================================= */

@media(max-width:760px){

  .ab-blog{
    padding:50px 0 70px;
  }

  .ab-blog__header{
    margin-bottom:30px;
  }

  .ab-blog__header h1{
    font-size:44px;
  }

  .ab-blog__intro{
    font-size:14px;
  }

  .ab-blog__filters{
    justify-content:flex-start;
    padding:12px;
    margin-bottom:30px;
  }

  .ab-blog__filter-btn{
    min-height:40px;
    padding:7px 12px;
  }

  .ab-grid--posts{
    grid-template-columns:1fr;
  }

}

@media(max-width:700px){

  .ab-post{
    transform:none;
  }

  .ab-post:hover{
    transform:translateY(-4px);
  }

}

@media(max-width:480px){

  .ab-blog__header h1{
    font-size:38px;
  }

  .ab-blog__filters{
    gap:7px;
  }

  .ab-blog__filter-btn{
    font-size:11px;
  }

}