/* ==========================================================================
   Notting Hill Vape — news
   NHV-09 - News Articles

   Covers the homepage block, the archive listing and the article page.
   Depends on the design tokens in ../nhv.css.
   ========================================================================== */

/* --- Homepage block ------------------------------------------------------- */

.nhv-news {
  position: relative;
  display: block;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: var(--nhv-section-pad) 12px;
  background: var(--nhv-navy-deep);
}

.nhv-news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--nhv-gutter);
}

/* One anchor per card: a single tab stop, no nested links. */
.nhv-news-card {
  display: flex;
  flex-direction: column;
  background: var(--nhv-navy);
  border-radius: var(--nhv-radius);
  overflow: hidden;
  color: var(--nhv-cream);
  text-decoration: none;
  height: 100%;
}
.nhv-news-card:hover,
.nhv-news-card:focus { color: var(--nhv-cream); text-decoration: none; }
.nhv-news-card:focus-visible { outline: 2px solid var(--nhv-copper); outline-offset: 2px; }

.nhv-news-media { display: block; line-height: 0; background: var(--nhv-navy-panel); }
.nhv-news-media img {
  display: block;
  width: 100%;
  height: auto;
  /* Reserved box, so a missing image cannot drag this card out of line with its
     neighbours — same guard as the product grids. */
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform 300ms ease;
}
.nhv-news-card:hover .nhv-news-media img { transform: scale(1.03); }

.nhv-news-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 16px 18px 18px;
}

.nhv-news-date {
  display: block;
  margin-bottom: 6px;
  font-family: var(--nhv-font-body);
  font-size: var(--nhv-fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--nhv-copper-text);
}

.nhv-news-title {
  margin: 0 0 8px;
  font-family: var(--nhv-font-display);
  font-size: 17px;
  font-weight: var(--nhv-fw-semi);
  line-height: 1.35;
  color: var(--nhv-cream-bright);
}

.nhv-news-summary {
  display: block;
  flex: 1 1 auto;
  margin-bottom: 12px;
  font-family: var(--nhv-font-body);
  font-size: var(--nhv-fs-base);
  line-height: 1.5;
  color: var(--nhv-cream);
}

.nhv-news-more {
  display: inline-block;
  align-self: flex-start;
  font-family: var(--nhv-font-display);
  font-size: var(--nhv-fs-micro);
  font-weight: var(--nhv-fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--nhv-copper-text);
  border-bottom: 1px solid var(--nhv-copper);
  padding-bottom: 2px;
}
.nhv-news-card:hover .nhv-news-more { color: var(--nhv-cream-bright); }

.nhv-news-all { margin: 15px 0 0; text-align: right; }
.nhv-news-all a {
  font-family: var(--nhv-font-display);
  font-size: var(--nhv-fs-small);
  font-weight: var(--nhv-fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--nhv-copper-text);
}
.nhv-news-all a:hover { color: var(--nhv-cream-bright); }

/* --- Archive listing (light page ground) ---------------------------------- */

.nhv-news-grid-archive { margin-bottom: var(--nhv-gutter); }

.nhv-news-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
}
.nhv-news-filters a {
  display: inline-block;
  padding: 5px 12px;
  border: 1px solid var(--nhv-navy-border);
  border-radius: var(--nhv-radius-sm);
  font-family: var(--nhv-font-display);
  font-size: var(--nhv-fs-small);
  color: var(--nhv-navy);
  text-decoration: none;
}
.nhv-news-filters a:hover,
.nhv-news-filters .is-active a { background: var(--nhv-navy); color: var(--nhv-cream); }

/* --- Article page --------------------------------------------------------- */

.nhv-article { max-width: 800px; }

.nhv-article-title {
  margin: 0 0 8px;
  font-family: var(--nhv-font-display);
  font-size: 32px;
  font-weight: var(--nhv-fw-bold);
  line-height: 1.2;
  color: var(--nhv-navy);
}

.nhv-article-meta {
  margin: 0 0 20px;
  font-size: var(--nhv-fs-small);
  color: var(--nhv-ink-soft);
}
.nhv-article-meta a { color: var(--nhv-copper); }

.nhv-article-image { margin: 0 0 20px; }
.nhv-article-image img { display: block; width: 100%; height: auto; border-radius: var(--nhv-radius); }

.nhv-article-body {
  font-family: var(--nhv-font-body);
  font-size: var(--nhv-fs-lead);
  line-height: 1.65;
  color: var(--nhv-ink);
}
.nhv-article-body h2,
.nhv-article-body h3 { font-family: var(--nhv-font-display); color: var(--nhv-navy); margin-top: 1.4em; }
.nhv-article-body img { max-width: 100%; height: auto; }
.nhv-article-body a { color: var(--nhv-copper); }

.nhv-article-back { margin: 28px 0 0; }
.nhv-article-back a { font-family: var(--nhv-font-display); font-size: var(--nhv-fs-small); color: var(--nhv-copper); }

/* --- Responsive ----------------------------------------------------------- */

@media (max-width: 991px) {
  .nhv-news-grid { grid-template-columns: repeat(2, 1fr); }
  .nhv-article-title { font-size: 26px; }
}

@media (max-width: 600px) {
  .nhv-news-grid { grid-template-columns: 1fr; }
  .nhv-news { padding: calc(var(--nhv-section-pad) / 2) 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .nhv-news-media img { transition: none; }
  .nhv-news-card:hover .nhv-news-media img { transform: none; }
}
