/**
 * Accueil et listes (archives, catégories, recherche).
 */

/* ==========================================================================
   RYTHME DE SECTION
   ========================================================================== */

.nc-section {
  max-width: var(--page);
  margin-inline: auto;
  padding-inline: var(--sp-3);
  padding-block: var(--sp-12) 0;
}

.nc-section:last-child { padding-bottom: var(--sp-12); }

.nc-section__titre {
  margin: 0 0 var(--sp-1);
  font-size: var(--step-h3);
  letter-spacing: -0.02em;
}

.nc-section__sous {
  margin: 0 0 var(--sp-4);
  max-width: 62ch;
}

.nc-surtitre {
  margin: 0 0 var(--sp-2);
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-mute);
}

/* ==========================================================================
   HERO — 1.15fr / 0.85fr
   ========================================================================== */

.nc-hero {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: var(--sp-8);
  align-items: center;
  padding-block: var(--sp-6) 0;
}

/* Le texte du hero vient du contenu de la page d'accueil : on style
   aussi bien les classes du thème que les balises nues de l'éditeur. */
.nc-hero__copie > *:first-child { margin-top: var(--sp-2); }
.nc-hero__copie > *:last-child { margin-bottom: 0; }

.nc-hero__copie h1,
.nc-hero__copie h2 { margin: var(--sp-2) 0 0; }

.nc-hero__copie p {
  margin: var(--sp-3) 0 0;
  max-width: 46ch;
  font-size: 1.1875rem;
  line-height: 1.6;
  color: var(--text-soft);
}

.nc-hero__copie h1,
.nc-hero__copie h2,
.nc-hero__titre {
  font-family: var(--font-title);
  font-size: clamp(2.25rem, 1.4rem + 2.6vw, 3.5rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
  max-width: 19ch;
}

.nc-hero__actions { margin-top: var(--sp-4); }

/* Note réservée aux administrateurs : jamais vue du public */
.nc-note-admin {
  margin: var(--sp-2) 0 0;
  padding: 10px 14px;
  border-radius: var(--r-sm);
  background: color-mix(in srgb, var(--warning) 10%, transparent);
  border: 1px dashed color-mix(in srgb, var(--warning) 40%, transparent);
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.55;
  color: var(--text-soft);
  max-width: 52ch;
}

.nc-note-admin strong { color: var(--warning); }

.nc-hero__titre {
  margin: var(--sp-2) 0 0;
  font-size: clamp(2.25rem, 1.4rem + 2.6vw, 3.5rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
  max-width: 19ch;
}

.nc-stats {
  display: inline-block;
  margin: 0;
  padding: 6px 14px;
  border-radius: var(--r-full);
  background: var(--accent-soft);
  color: var(--accent-ink);
  font-family: var(--font-title);
  font-size: 12.5px;
  font-weight: 600;
}

.nc-hero__chapo {
  margin: var(--sp-3) 0 var(--sp-4);
  max-width: 46ch;
  font-size: 1.1875rem;
  line-height: 1.6;
}

.nc-hero__actions { gap: var(--sp-2); align-items: center; }

.nc-bouton { margin: 0; }

.nc-bouton a,
.nc-compteur {
  display: inline-block;
  padding: 11px 20px;
  border-radius: var(--r-sm);
  font-family: var(--font-title);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  transition: background var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease);
}

.nc-bouton--plein a {
  background: var(--accent);
  color: #FFFDFA;
  border: 1px solid var(--accent);
}

.nc-bouton--plein a:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  color: #FFFDFA;
}

/* Action secondaire : même gabarit, poids visuel moindre */
.nc-compteur {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  color: var(--text);
}

.nc-compteur:hover { border-color: var(--accent); color: var(--accent); }

.nc-hero__panneau {
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  box-shadow: var(--shadow-2);
}

/* ==========================================================================
   PANNEAU « DERNIÈRE MISE À JOUR »
   ========================================================================== */

.nc-maj__entete {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-2);
}

.nc-maj__label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-mute);
}

.nc-maj__badge {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--success);
}

.nc-maj__titre {
  margin: var(--sp-2) 0 0;
  font-size: 1.1875rem;
  letter-spacing: -0.025em;
}

.nc-maj__titre a { color: var(--text); text-decoration: none; }
.nc-maj__titre a:hover { color: var(--accent); }

.nc-maj__resume {
  margin: 6px 0 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text-soft);
}

.nc-maj__liste {
  margin: var(--sp-3) 0 0;
  padding: var(--sp-3) 0 0;
  border-top: 1px solid var(--border);
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.nc-maj__liste li {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
}

.nc-maj__date {
  flex: none;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-mute);
}

.nc-maj__liste a {
  font-family: var(--font-title);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
  text-decoration: none;
}

.nc-maj__liste a:hover { color: var(--accent); }

@media (max-width: 860px) {
  .nc-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sp-6);
    padding-block: var(--sp-8);
  }

  .nc-hero__texte h1 { max-width: none; }
}

/* ==========================================================================
   DERNIERS PUBLIÉS
   ========================================================================== */

.nc-derniers {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
}

.nc-derniers__item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "cat  titre"
    "meta meta";
  gap: 2px var(--sp-2);
  padding-block: 11px;
  border-bottom: 1px solid var(--border);
}

.nc-derniers__item:last-child { border-bottom: none; }

.nc-derniers__cat {
  grid-area: cat;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--cat-color, var(--text-mute));
  font-weight: 700;
  padding-top: 3px;
}

.nc-derniers__lien {
  grid-area: titre;
  font-family: var(--font-title);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text);
  text-decoration: none;
}

.nc-derniers__lien:hover { color: var(--accent); }

.nc-derniers__date,
.nc-derniers__revise {
  grid-area: meta;
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--text-mute);
}

.nc-derniers__revise {
  justify-self: end;
  color: var(--success);
}

/* ==========================================================================
   DOMAINES — 4 colonnes
   ========================================================================== */

.nc-domaines {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp-2);
  margin-top: var(--sp-4);
}

.nc-domaine {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--sp-3);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  text-decoration: none;
  transition: border-color var(--t-base) var(--ease),
              transform var(--t-base) var(--ease);
}

.nc-domaine:hover { transform: translateY(-2px); border-color: var(--border-strong); }
.nc-domaine.est-vide { opacity: 0.72; }

.nc-domaine--systeme    { --cat-color: var(--cat-systeme); }
.nc-domaine--reseau     { --cat-color: var(--cat-reseau); }
.nc-domaine--telephonie { --cat-color: var(--cat-telephonie); }
.nc-domaine--securite   { --cat-color: var(--cat-securite); }

.nc-domaine__haut {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  margin-bottom: var(--sp-2);
}

.nc-domaine__puce {
  width: 22px;
  height: 22px;
  border-radius: var(--r-sm);
  background: color-mix(in srgb, var(--cat-color, var(--accent)) 18%, transparent);
  position: relative;
  flex: none;
}

.nc-domaine__puce::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 3px;
  background: var(--cat-color, var(--accent));
}

.nc-domaine__nom {
  font-family: var(--font-title);
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.nc-domaine__compte {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--text-mute);
}

.nc-domaine.est-vide .nc-domaine__compte { color: var(--cat-color, var(--text-mute)); }

.nc-domaine__desc {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text-soft);
}

.nc-domaine__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: auto;
  padding-top: var(--sp-1);
}

.nc-tag {
  padding: 2px 8px;
  border-radius: var(--r-full);
  background: var(--surface-raise);
  color: var(--text-mute);
  font-family: var(--font-mono);
  font-size: 10.5px;
}

@media (max-width: 900px) {
  .nc-domaines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 460px) {
  .nc-domaines { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   DOSSIERS — 3 colonnes
   ========================================================================== */

.nc-dossiers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-2);
}

.nc-dossier {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--sp-3);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  text-decoration: none;
  transition: border-color var(--t-base) var(--ease);
}

.nc-dossier:hover { border-color: var(--accent); }

.nc-dossier__meta {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-mute);
}

.nc-dossier__nom {
  font-family: var(--font-title);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.nc-dossier__desc {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text-soft);
}

@media (max-width: 900px) {
  .nc-dossiers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .nc-dossiers { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   CARTES D'ARTICLE — incontournables et grilles d'archive
   ========================================================================== */

.nc-incontournables {
  margin: var(--sp-4) 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.nc-carte__contenu {
  display: grid;
  grid-template-columns: 44px 148px minmax(0, 1fr);
  gap: var(--sp-3);
  align-items: start;
  padding: var(--sp-3);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  transition: border-color var(--t-base) var(--ease);
}

.nc-carte__contenu:hover { border-color: var(--border-strong); }

.nc-carte__num {
  font-family: var(--font-mono);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: var(--border-strong);
}

.nc-carte__media {
  display: block;
  border-radius: var(--r-sm);
  overflow: hidden;
  border: var(--ring);
  aspect-ratio: 3 / 2;
  background: var(--surface-raise);
}

.nc-carte__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: sepia(0.04);
}

.nc-carte__texte {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.nc-carte__cat {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  color: var(--cat-color, var(--text-mute));
}

.nc-carte__titre {
  margin: 0;
  font-size: 1.0625rem;
  letter-spacing: -0.02em;
}

.nc-carte__titre a { color: var(--text); text-decoration: none; }
.nc-carte__titre a:hover { color: var(--accent); }

.nc-carte__desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text-soft);
}

.nc-carte__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  margin-top: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-mute);
}

@media (max-width: 720px) {
  .nc-carte__contenu {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: var(--sp-2);
  }

  .nc-carte__media { display: none; }
}

/* Grille des archives */
.nc-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--sp-4);
  margin-top: var(--sp-4);
}

.nc-grille > li {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}

/* ==========================================================================
   BIBLIOTHÈQUE
   ========================================================================== */

.nc-bibliotheque {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-3);
  margin-top: var(--sp-4);
}

.nc-livre {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  padding: var(--sp-2);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  text-decoration: none;
}

.nc-livre:hover { border-color: var(--accent); }

.nc-livre__image {
  width: 100%;
  height: auto;
  border-radius: var(--r-sm);
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.nc-livre__titre {
  font-family: var(--font-title);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.nc-livre__desc {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text-soft);
}

@media (max-width: 860px) {
  .nc-bibliotheque { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .nc-bibliotheque { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   NEWSLETTER
   ========================================================================== */

.nc-newsletter {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-6);
  align-items: center;
}

.nc-newsletter__forme {
  padding: var(--sp-3);
  border-radius: var(--r-md);
  background: var(--surface-raise);
  border: var(--ring);
}

.nc-newsletter__note {
  margin: 0 0 var(--sp-1);
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--text-mute);
}

.nc-newsletter__legal { margin: 0; font-size: 0.8125rem; }

@media (max-width: 860px) {
  .nc-newsletter { grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); }
}

/* ==========================================================================
   NOTE SUR LES DOMAINES VIDES
   ========================================================================== */

.nc-note {
  display: flex;
  gap: var(--sp-2);
  margin-top: var(--sp-2);
  padding: 14px 18px;
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--cat-telephonie) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--cat-telephonie) 22%, transparent);
}

.nc-note__puce {
  width: 8px;
  height: 8px;
  margin-top: 8px;
  border-radius: var(--r-full);
  background: var(--cat-telephonie);
  flex: none;
}

.nc-note p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-soft);
}

.nc-note__nom {
  font-weight: 700;
  color: var(--cat-color, var(--accent));
  text-decoration: none;
}

/* Les couleurs de domaine, disponibles partout */
.nc-domaine-systeme    { --cat-color: var(--cat-systeme); }
.nc-domaine-reseau     { --cat-color: var(--cat-reseau); }
.nc-domaine-telephonie { --cat-color: var(--cat-telephonie); }
.nc-domaine-securite   { --cat-color: var(--cat-securite); }

/* ==========================================================================
   PAGES DE RUBRIQUE — titre et chapô
   ========================================================================== */

.nc-page__titre {
  margin: var(--sp-2) 0 0;
  font-size: clamp(2rem, 1.3rem + 2vw, 3rem);
  line-height: 1.04;
  letter-spacing: -0.04em;
  max-width: 24ch;
}

.nc-page__intro {
  margin-block: var(--sp-3) var(--sp-8);
  max-width: 62ch;
  font-size: 1.125rem;
  color: var(--text-soft);
}

/* ==========================================================================
   SOMMAIRE DES DOMAINES / DOSSIERS
   ========================================================================== */

.nc-index {
  display: flex;
  flex-direction: column;
  gap: var(--sp-8);
}

.nc-index__domaine {
  padding-top: var(--sp-4);
  border-top: 2px solid var(--cat-color, var(--border-strong));
  scroll-margin-top: 90px;
}

.nc-index__entete {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.nc-index__puce {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  background: var(--cat-color, var(--accent));
  flex: none;
}

.nc-index__titre {
  margin: 0;
  font-size: var(--step-h3);
  letter-spacing: -0.03em;
}

.nc-index__compte {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--text-mute);
}

.nc-index__desc {
  margin: var(--sp-1) 0 var(--sp-3);
  max-width: 62ch;
  font-size: 0.9375rem;
  color: var(--text-soft);
}

.nc-index__attente {
  margin: var(--sp-2) 0 0;
  padding: 14px 18px;
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--cat-color, var(--accent)) 8%, transparent);
  font-size: 0.9375rem;
  color: var(--text-soft);
}

/* Deux colonnes : une liste d'index se parcourt à la verticale,
   pas sur toute la largeur de l'écran. */
.nc-index__liste {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: var(--sp-6);
}

.nc-index__liste--ordonnee {
  list-style: decimal;
  padding-left: 1.4em;
  columns: 1;
}

.nc-index__item {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  padding-block: 8px;
  border-bottom: 1px solid var(--border);
  break-inside: avoid;
}

.nc-index__lien {
  font-family: var(--font-title);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
  text-decoration: none;
}

.nc-index__lien:hover { color: var(--accent); }

.nc-index__meta {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  flex: none;
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--text-mute);
}

.nc-index__tout {
  margin: var(--sp-3) 0 0;
  font-family: var(--font-mono);
  font-size: 12px;
}

.nc-index__tout a { color: var(--accent); text-decoration: none; }
.nc-index__tout a:hover { text-decoration: underline; }

@media (max-width: 760px) {
  .nc-index__liste { columns: 1; }
}

/* ==========================================================================
   BIBLIOTHÈQUE COMPLÈTE
   ========================================================================== */

.nc-livres {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}

.nc-livres__fiche {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: var(--sp-4);
  align-items: start;
  padding: var(--sp-3);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  transition: border-color var(--t-base) var(--ease);
}

.nc-livres__fiche:hover { border-color: var(--border-strong); }

.nc-livres__media {
  display: block;
  border-radius: var(--r-sm);
  overflow: hidden;
  border: var(--ring);
  background: var(--surface-raise);
}

.nc-livres__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: sepia(0.04);
}

.nc-livres__titre {
  margin: 0;
  font-size: 1.1875rem;
  letter-spacing: -0.025em;
}

.nc-livres__titre a { color: var(--text); text-decoration: none; }
.nc-livres__titre a:hover { color: var(--accent); }

.nc-livres__resume {
  margin: 6px 0 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-soft);
}

.nc-livres__meta {
  display: block;
  margin-top: var(--sp-2);
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-mute);
}

@media (max-width: 600px) {
  .nc-livres__fiche { grid-template-columns: 92px minmax(0, 1fr); gap: var(--sp-3); }
}

/* ==========================================================================
   CONTACT — 1.4fr / 1fr
   ========================================================================== */

.nc-contact {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--sp-8);
  align-items: start;
  margin-top: var(--sp-6);
}

.nc-contact__forme { min-width: 0; }

/* Le formulaire vient d'un plugin : on habille sa sortie
   sans présumer de son balisage exact. */
.nc-contact__forme :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], textarea, select) {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;
  transition: border-color var(--t-fast) var(--ease);
}

.nc-contact__forme :is(input, textarea, select):focus {
  border-color: var(--accent);
  outline: none;
}

.nc-contact__forme textarea { min-height: 180px; resize: vertical; }

.nc-contact__forme label {
  display: block;
  margin-bottom: 5px;
  font-family: var(--font-title);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-soft);
}

.nc-contact__forme :is(input[type="submit"], button[type="submit"]) {
  width: auto;
  padding: 11px 22px;
  border: 1px solid var(--accent);
  border-radius: var(--r-sm);
  background: var(--accent);
  color: #FFFDFA;
  cursor: pointer;
  font-family: var(--font-title);
  font-size: 0.9375rem;
  font-weight: 600;
}

.nc-contact__forme :is(input[type="submit"], button[type="submit"]):hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
}

.nc-aide {
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
}

.nc-aide__titre {
  margin: 0 0 var(--sp-1);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-mute);
  font-weight: 500;
}

.nc-aide__texte {
  margin: 0 0 var(--sp-2);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-soft);
}

.nc-aide__texte:last-child { margin-bottom: 0; }

@media (max-width: 860px) {
  .nc-contact { grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
}

/* ==========================================================================
   GRILLE D'ARCHIVE
   ========================================================================== */

.nc-cartes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--sp-4);
  margin-top: var(--sp-6);
}

.nc-carte2 {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
  overflow: hidden;
  transition: border-color var(--t-base) var(--ease),
              transform var(--t-base) var(--ease);
}

.nc-carte2:hover { border-color: var(--border-strong); transform: translateY(-2px); }

.nc-carte2__media {
  display: block;
  aspect-ratio: 3 / 2;
  background: var(--surface-raise);
  border-bottom: 1px solid var(--border);
}

.nc-carte2__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: sepia(0.04);
}

.nc-carte2__corps {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--sp-3);
  flex: 1;
}

.nc-carte2__cat {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  color: var(--cat-color, var(--text-mute));
}

/* Titre en couleur de texte, pas en accent : c'est la règle globale
   sur les liens qui rendait toutes les cartes orange. */
.nc-carte2__titre {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.25;
  letter-spacing: -0.025em;
}

.nc-carte2__titre a { color: var(--text); text-decoration: none; }
.nc-carte2__titre a:hover { color: var(--accent); }

.nc-carte2__resume {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text-soft);
}

.nc-carte2__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  margin-top: auto;
  padding-top: var(--sp-2);
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--text-mute);
}

/* ==========================================================================
   PAGINATION
   ========================================================================== */

.nc-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: var(--sp-8);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 12px;
}

.nc-pagination :is(a, span.current) {
  display: inline-block;
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--text-soft);
  text-decoration: none;
}

.nc-pagination a:hover { border-color: var(--accent); color: var(--accent); }

.nc-pagination .current {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent-ink);
  font-weight: 700;
}

.nc-pagination .dots { border: none; }

/* ==========================================================================
   ÉTAT VIDE
   ========================================================================== */

.nc-vide {
  max-width: 56ch;
  margin-top: var(--sp-6);
  padding: var(--sp-4);
  border-radius: var(--r-md);
  background: var(--surface);
  border: var(--ring);
}

.nc-vide__titre {
  margin: 0 0 6px;
  font-family: var(--font-title);
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.nc-vide__texte {
  margin: 0 0 var(--sp-3);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-soft);
}

/* Le titre de section d'une sous-rubrique est cliquable */
.nc-index__titre a { color: inherit; text-decoration: none; }
.nc-index__titre a:hover { color: var(--accent); }
