.nl-page { background: #f9f9f9; color: #1a1c1c; font-family: 'Source Serif 4', serif; }
.nl-wrap { max-width: 80rem; margin: 0 auto; padding: 0 2rem 5rem; }

.nl-filter {
  position: sticky;
  top: 4rem;
  z-index: 1;
  background: rgba(249, 249, 249, .95);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(216, 193, 196, .1);
  margin-bottom: 3rem;
}

.nl-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 640px)  { .nl-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .nl-grid { grid-template-columns: repeat(3, 1fr); } }

.nl-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  text-decoration: none;
  color: inherit;
  position: relative;
  box-shadow: 0 20px 40px -15px rgba(0, 0, 0, .05);
  transition: box-shadow .3s;
}
.nl-card:hover { box-shadow: 0 30px 50px -10px rgba(87, 23, 43, .1); }

.nl-card-feat { box-shadow: 0 20px 40px -15px rgba(87, 23, 43, .18), -3px 0 12px -2px rgba(87, 23, 43, .15); }
.nl-card-feat::before {
  content: '';
  position: absolute;
  left: 0; top: 0;
  height: 100%;
  width: 5px;
  background: #57172b;
  z-index: 1;
}

.nl-card-img { position: relative; height: 16rem; overflow: hidden; }
.nl-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; display: block; }
.nl-card:hover .nl-card-img img { transform: scale(1.05); }
.nl-card-img-ph { width: 100%; height: 100%; background: #eee; display: flex; align-items: center; justify-content: center; }

.nl-card-bdg {
  position: absolute;
  top: 0; left: 0;
  background: #57172b;
  color: #fff;
  padding: .25rem 1rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.nl-card-body { padding: 2rem; display: flex; flex-direction: column; flex: 1; }

.nl-card-h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #3b0217;
  line-height: 1.35;
  margin-bottom: 1rem;
}

.nl-card-excerpt {
  font-family: 'Source Serif 4', serif;
  font-size: .95rem;
  color: #534345;
  line-height: 1.65;
  margin-bottom: 1.5rem;
  flex: 1;
}

.nl-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(216, 193, 196, .1);
}

.nl-card-author {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #3b0217;
  text-transform: uppercase;
  display: block;
}

.nl-card-date {
  font-family: 'Source Serif 4', serif;
  font-size: 11px;
  color: #857275;
  font-style: italic;
  display: block;
  margin-top: .1rem;
}

.nl-card-arrow { color: #3b0217; transition: transform .2s; font-size: 1.1rem; }
.nl-card:hover .nl-card-arrow { transform: translateX(5px); }

.nl-pager { margin-top: 5rem; display: flex; justify-content: center; align-items: center; gap: 1rem; }

.nl-pager-arr,
.nl-pager-n {
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d8c1c4;
  color: #3b0217;
  text-decoration: none;
  transition: all .2s;
}

.nl-pager-arr:hover { background: #57172b; color: #fff; border-color: #57172b; }
.nl-pager-nums { display: flex; gap: .5rem; }

.nl-pager-n {
  font-family: 'Montserrat', sans-serif;
  font-size: .875rem;
  font-weight: 700;
}
.nl-pager-n:hover  { background: #e8e8e8; }
.nl-pager-n.active { background: #57172b; color: #fff; border-color: #57172b; }

.nl-pager-dots {
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(83, 67, 69, .4);
}

.nl-empty { grid-column: 1 / -1; padding: 5rem 0; text-align: center; }
.nl-empty-h { font-family: 'Montserrat', sans-serif; font-size: 1.5rem; font-weight: 700; color: #1a1c1c; margin-bottom: .5rem; }
.nl-empty-p { font-family: 'Source Serif 4', serif; font-size: 1rem; color: #534345; font-style: italic; }
