.news-page{
  background:var(--black);
  min-height:100vh;
}

.news-page .clean-header{
  opacity:1 !important;
  transform:none !important;
}

.news-page .identity-line.static-line{
  transform:scaleX(1) !important;
  animation:none !important;
}

.news-page .identity-signature.static-signature{
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
  animation:none !important;
}

.news-main{
  padding-top:0;
}

.news-intro{
  min-height:72svh;
  padding:118px max(32px,7vw) 74px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  border-bottom:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 78% 22%, rgba(183,154,115,.12), transparent 28%),
    linear-gradient(180deg,#0b0b0b 0%,#090909 100%);
}

.news-intro h1{
  font-size:clamp(3.5rem,8.2vw,8rem);
  line-height:.88;
  letter-spacing:-.055em;
  margin:.28em 0 .22em;
  max-width:1100px;
}

.news-intro-copy{
  max-width:640px;
  color:rgba(255,255,255,.68);
  font-size:1rem;
  line-height:1.7;
  margin:0;
}

.news-feed-section{
  padding:74px max(32px,7vw) 120px;
}

.news-feed{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:18px;
}

.news-item{
  position:relative;
  cursor:pointer;
  min-height:430px;
  overflow:hidden;
  background:#131313;
  grid-column:span 6;
}

.news-item.is-featured{
  min-height:650px;
  grid-column:span 12;
}

/* V0.83 - quinconce éditorial : grande carte à droite, puis à gauche, etc.
   Après la carte 01 pleine largeur : 02=5 / 03=7, 04=7 / 05=5, puis répétition. */
.news-item:nth-child(4n+1):not(.is-featured),
.news-item:nth-child(4n+2):not(.is-featured){
  grid-column:span 5;
}

.news-item:nth-child(4n):not(.is-featured),
.news-item:nth-child(4n+3):not(.is-featured){
  grid-column:span 7;
}

.news-cover{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:scale(1.02);
  transition:opacity .9s ease, transform 1.1s cubic-bezier(.2,.7,.1,1);
}

.news-cover.is-ready{
  opacity:1;
}

.news-item:hover .news-cover{
  transform:scale(1.035);
}

.news-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.18) 48%,rgba(0,0,0,.84) 100%);
  pointer-events:none;
}

.news-content{
  position:absolute;
  z-index:2;
  left:28px;
  right:28px;
  bottom:26px;
}

.news-date{
  display:block;
  color:var(--accent);
  font-size:.66rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:8px;
}

.news-title{
  font-size:clamp(2rem,3.2vw,3.5rem);
  line-height:.96;
  margin:0 0 10px;
  letter-spacing:-.035em;
}

.news-item.is-featured .news-title{
  font-size:clamp(3rem,5vw,5.4rem);
}

.news-comment{
  margin:0;
  max-width:720px;
  color:rgba(255,255,255,.78);
  font-size:.95rem;
  line-height:1.5;
}

.news-partner{
  margin:.7rem 0 0;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.62);
}

.news-partner a{
  color:inherit;
  border-bottom:1px solid rgba(255,255,255,.26);
  padding-bottom:2px;
}

.news-sequence{
  position:absolute;
  top:20px;
  right:20px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.62rem;
  letter-spacing:.14em;
  color:rgba(255,255,255,.64);
}

.news-sequence::before{
  content:"";
  width:32px;
  height:1px;
  background:rgba(255,255,255,.55);
}

.news-empty{
  padding:80px 0;
  color:#777;
  font-size:.9rem;
}

@media(max-width:900px){
  .news-intro{
    min-height:60svh;
    padding:100px 18px 56px;
  }

  .news-feed-section{
    padding:50px 18px 90px;
  }

  .news-feed{
    grid-template-columns:1fr;
  }

  .news-item,
  .news-item.is-featured,
  .news-item:nth-child(even):not(.is-featured),
  .news-item:nth-child(odd):not(.is-featured){
    grid-column:auto;
    min-height:460px;
  }

  .news-item.is-featured{
    min-height:560px;
  }

  .news-content{
    left:20px;
    right:20px;
    bottom:20px;
  }
}


/* V0.24 - rendu immédiat pendant génération à la demande */
.news-item{
  background:
    linear-gradient(110deg,#111 20%,#181818 38%,#111 56%) 0 0/200% 100%;
  animation:newsSkeleton 1.6s linear infinite;
}

.news-item:has(.news-cover.is-ready){
  animation:none;
  background:#131313;
}

@keyframes newsSkeleton{
  to{background-position:-200% 0}
}

@media(prefers-reduced-motion:reduce){
  .news-item{animation:none}
}


/* =========================================================
   V0.25 - page Toutes les actualités
   - marge haute réduite
   - titre réduit
   ========================================================= */

.news-intro{
  min-height:56svh;
  padding:90px max(32px,7vw) 54px;
  justify-content:flex-start;
}

.news-intro h1{
  font-size:clamp(2.9rem,6.2vw,6.1rem);
  line-height:.90;
  margin:.24em 0 .18em;
  max-width:900px;
}

.news-intro-copy{
  max-width:620px;
  font-size:.96rem;
  line-height:1.65;
}

@media(max-width:900px){
  .news-intro{
    min-height:48svh;
    padding:84px 18px 44px;
  }

  .news-intro h1{
    font-size:clamp(2.6rem,12vw,4.8rem);
  }
}


/* =========================================================
   V0.26 - resserrement autour du trait de séparation
   ========================================================= */

/* Même valeur que l'espacement entre les vignettes : 18px */
.news-intro{
  padding-bottom:18px !important;
}

.news-feed-section{
  padding-top:18px !important;
}

@media(max-width:900px){
  .news-intro{
    padding-bottom:18px !important;
  }

  .news-feed-section{
    padding-top:18px !important;
  }
}


/* =========================================================
   V0.27 - corriger l'espace réel au-dessus du trait
   ========================================================= */

/* Le grand vide venait du min-height forcé de l'intro */
.news-intro{
  min-height:0 !important;
  height:auto !important;
  padding-bottom:18px !important;
}

/* Les cartes restent à 18px sous le trait */
.news-feed-section{
  padding-top:18px !important;
}

@media(max-width:900px){
  .news-intro{
    min-height:0 !important;
    height:auto !important;
    padding-bottom:18px !important;
  }

  .news-feed-section{
    padding-top:18px !important;
  }
}


/* =========================================================
   V0.44 - Titres / dates page Toutes les actualités
   ========================================================= */

.news-title{
  font-size:clamp(1.8rem,2.75vw,3rem) !important;
}

.news-item.is-featured .news-title{
  font-size:clamp(2.55rem,4.2vw,4.6rem) !important;
}

.news-date{
  font-size:.74rem !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
}

.news-item:focus-visible{outline:1px solid var(--accent);outline-offset:4px}

/* V0.56 - lien natif sur toute la carte Actualités */
.news-card-link{display:block;position:relative;width:100%;height:100%;color:inherit;text-decoration:none}
.news-card-link:focus-visible{outline:1px solid var(--accent);outline-offset:4px}

/* V0.57 - la carte entière pointe vers la même galerie canonique */
.news-card-link{position:absolute;inset:0;z-index:2;display:block;color:inherit;text-decoration:none}
.news-content,.news-sequence,.gallery-cta{pointer-events:none}
.news-partner{position:relative;z-index:5;pointer-events:auto}
.gallery-cta{position:absolute;z-index:4;top:20px;left:20px;padding:8px 11px;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.42);backdrop-filter:blur(5px);color:#fff;font-size:.61rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;opacity:0;transform:translateY(-4px);transition:opacity .25s ease,transform .25s ease,background .25s ease;pointer-events:none}
.news-item:hover .gallery-cta,.news-item:focus-within .gallery-cta{opacity:1;transform:none}
.news-item:hover{cursor:pointer}
@media(max-width:900px){.gallery-cta{opacity:1;transform:none;top:14px;left:14px}}
