/* Nick's Related Content 1.0.0 — préfixe strict pour éviter les collisions Neve. */
.nicks-related-card,
.nicks-related-section { box-sizing: border-box; }
.nicks-related-card *,
.nicks-related-section * { box-sizing: border-box; }

.nicks-related-card {
  min-width: 0;
  background: #fff;
  border: 1px solid #d8e3ec;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(3, 35, 59, .05);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.nicks-related-card:hover {
  border-color: #80b3da;
  box-shadow: 0 5px 17px rgba(2, 84, 157, .10);
  transform: translateY(-2px);
}
.nicks-related-card__link,
.nicks-related-card__link:visited {
  display: flex;
  height: 100%;
  color: #1b2b3a;
  text-decoration: none !important;
  border: 0;
  box-shadow: none !important;
}
.nicks-related-card__link:hover { color: #1b2b3a; text-decoration: none; }
.nicks-related-card__link:focus-visible {
  outline: 3px solid #02549d;
  outline-offset: -4px;
  border-radius: 10px;
}
.nicks-related-card__media {
  display: block;
  min-width: 0;
  overflow: hidden;
  background: #eff4f8;
}
.nicks-related-card__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  margin: 0;
}
.nicks-related-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
}
.nicks-related-card__eyebrow {
  color: #02549d;
  font-size: .73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .055em;
  margin-bottom: .35rem;
}
.nicks-related-card__title {
  display: block;
  color: #1b2b3a;
  line-height: 1.32;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.nicks-related-card__description {
  display: block;
  color: #4b5b69;
  line-height: 1.56;
  overflow-wrap: anywhere;
}
.nicks-related-card__cta {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  color: #02549d;
  font-weight: 700;
  font-size: .85rem;
  margin-top: auto;
  padding-top: .7rem;
}
.nicks-related-card__link:hover .nicks-related-card__cta { text-decoration: underline; text-underline-offset: 3px; }

/* Module A — carte horizontale au sein du texte. */
.nicks-related-card--editorial { margin: 1.5rem 0; }
.nicks-related-card--editorial .nicks-related-card__link { flex-direction: row; }
.nicks-related-card--editorial .nicks-related-card__media { width: 35%; min-width: 35%; aspect-ratio: 4 / 3; }
.nicks-related-card--editorial .nicks-related-card__body { flex: 1; padding: 1.1rem 1.3rem; }
.nicks-related-card--editorial .nicks-related-card__title { font-size: 1.15rem; margin-bottom: .45rem; }
.nicks-related-card--editorial .nicks-related-card__description { font-size: .91rem; }
.nicks-related-card--editorial.nicks-related-card--no-image .nicks-related-card__body { padding: 1.3rem; }

/* Module B — grille de recommandations indépendante du thème. */
.nicks-related-section { clear: both; width: 100%; margin: 2.7rem 0 1.5rem; }
.nicks-related-section__heading {
  margin: 0 0 1.15rem;
  color: #1b2b3a;
  font-size: clamp(1.3rem, 2.5vw, 1.6rem);
  font-weight: 700;
  line-height: 1.3;
}
.nicks-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.nicks-related-grid--1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
.nicks-related-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nicks-related-card--recommendation .nicks-related-card__link { flex-direction: column; }
.nicks-related-card--recommendation .nicks-related-card__media { aspect-ratio: 16 / 10; width: 100%; }
.nicks-related-card--recommendation .nicks-related-card__body { flex: 1; padding: 1rem; }
.nicks-related-card--recommendation .nicks-related-card__title { font-size: .98rem; margin-bottom: .5rem; }
.nicks-related-card--recommendation .nicks-related-card__description { font-size: .85rem; }
.nicks-related-card--recommendation.nicks-related-card--no-image .nicks-related-card__body { padding: 1.2rem; }

@media (max-width: 860px) {
  .nicks-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .nicks-related-card--editorial .nicks-related-card__link { flex-direction: column; }
  .nicks-related-card--editorial .nicks-related-card__media { width: 100%; min-width: 0; aspect-ratio: 16 / 9; }
  .nicks-related-card--editorial .nicks-related-card__body { padding: 1rem; }
  .nicks-related-grid, .nicks-related-grid--2 { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .nicks-related-card { transition: none; }
  .nicks-related-card:hover { transform: none; }
}
