/* News Grid Featured v2.3 — CSS minimal
   Tous les styles critiques (dimensions, positions) sont en inline HTML.
   Ce fichier ne gère que les effets et la responsivité.             */

/* Zoom hover */
.ngf-zoom .ngf-img {
  transition: transform 300ms ease-out;
}
.ngf-zoom:hover .ngf-img {
  transform: scale(1.05);
}

/* Accessibilité */
.ngf-msn-hero a:focus-visible,
.ngf-msn-small a:focus-visible,
.ngf-msn-card  a:focus-visible {
  outline: 3px solid #1a56db;
  outline-offset: 2px;
}

/* Source badge */
.ngf-source-badge {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,.9);
  border-radius: 3px;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 600;
  color: #333;
  pointer-events: none;
  top: 6px; left: 6px;
}

/* Single post */
.ngf-ctx-single {
  width: 100% !important;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .ngf-msn-top    { grid-template-columns: 55% 1fr !important; }
  .ngf-msn-bottom { grid-template-columns: repeat(2,1fr) !important; }
}

@media (max-width: 680px) {
  .ngf-msn-top    { grid-template-columns: 1fr !important; }
  .ngf-msn-right  { grid-template-columns: 1fr 1fr !important; grid-template-rows: auto auto !important; }
  .ngf-msn-bottom { grid-template-columns: repeat(2,1fr) !important; }
  .ngf-msn-hero .ngf-featured-wrap { min-height: 200px !important; }
}

@media (max-width: 420px) {
  .ngf-msn-right  { grid-template-columns: 1fr !important; }
  .ngf-msn-bottom { grid-template-columns: 1fr !important; }
}
