/* =========================================================================
   Cards d'articles — Hero, Standard, Mini
   Toutes les cards sont entièrement cliquables (<a> englobant).
   ========================================================================= */

.np-card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform var(--t-base);
}
.np-card:hover { transform: translateY(-2px); }

.np-card__image {
  position: relative;
  overflow: hidden;
  background: var(--np-cream-dim);
}
.np-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow);
}
.np-card:hover .np-card__image img { transform: scale(1.02); }

.np-card__meta {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--np-ink-soft);
  margin: var(--space-3) 0 var(--space-2);
}

.np-card__title {
  font-family: var(--font-serif);
  font-weight: 600;
  margin: 0 0 var(--space-2);
  color: var(--np-ink);
}
.np-card:hover .np-card__title { color: var(--np-accent); }

.np-card__excerpt {
  font-family: var(--font-sans);
  color: var(--np-ink-soft);
  margin: 0 0 var(--space-3);
}

.np-card__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.np-card__cta::after { content: "→"; transition: transform var(--t-fast); }
.np-card:hover .np-card__cta::after { transform: translateX(4px); }

/* ----- Card Hero ----- */
.np-card--hero { max-width: 880px; margin-inline: auto; }
.np-card--hero .np-card__image { aspect-ratio: 16 / 9; margin-bottom: var(--space-5); }
.np-card--hero .np-card__title { font-size: clamp(1.8rem, 3.6vw, 2.75rem); line-height: 1.15; }
.np-card--hero .np-card__excerpt { font-size: 17px; max-width: 60ch; }

/* ----- Card Standard ----- */
.np-card--standard .np-card__image { aspect-ratio: 4 / 3; margin-bottom: var(--space-3); }
.np-card--standard .np-card__title { font-size: 1.4rem; line-height: 1.3; }
.np-card--standard .np-card__excerpt { font-size: 15px; }

/* ----- Card Mini ----- */
.np-card--mini { padding-block: var(--space-3); border-block-end: 1px solid var(--np-border); }
.np-card--mini:last-child { border-block-end: 0; }
.np-card--mini .np-card__title { font-size: 1.125rem; }
