/* ============================================================
   GTC CRANEX — news / press vocabulary (news.html + news/*.html)
   The press register: cards are TEXT-FIRST — hairline top rule,
   meta line, title, excerpt, and the photo sits at the BOTTOM
   (Danske/LOG21 move — the inverse of the portfolio archives).
   Everything else is house law: 300/700 mixing, ·-separated
   meta lines, one yellow moment, whole card is the link.
   Loads AFTER site.css; adds no globals, edits nothing shared.
   ============================================================ */

/* ---- shared meta line ---- */
.nwmeta{
  margin:0;
  font-size:clamp(11px,.85vw,13.5px);
  color:var(--soft);
  line-height:1.5;
}
.nwmeta b{font-weight:700;color:var(--ink);}

/* ===================== ARCHIVE : FEATURED ===================== */
.nwfeatband{padding:clamp(28px,3.4vw,52px) var(--gutter) 0;}
.nwfeat{
  display:grid;
  grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  gap:clamp(24px,3.4vw,64px);
  align-items:center;
}
.nwfeat__meta{margin:0 0 clamp(12px,1.4vw,20px);}
.nwfeat__title{
  margin:0;
  font-size:clamp(26px,3vw,50px);
  line-height:1.08;
  font-weight:300;
  letter-spacing:-.006em;
  transition:color .25s ease;
}
.nwfeat__title b{font-weight:700;}
.nwfeat:hover .nwfeat__title{color:var(--soft);}
.nwfeat__ex{
  margin:clamp(14px,1.6vw,24px) 0 0;
  max-width:52ch;
  font-size:clamp(13px,1vw,16px);
  line-height:1.7;
  color:var(--soft);
}
.nwfeat__lnk{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:clamp(16px,2vw,30px);
  font-size:clamp(12.5px,.95vw,15px);
  font-weight:700;
}
.nwfeat__lnk svg{width:16px;height:16px;transition:transform .3s var(--ease);}
.nwfeat:hover .nwfeat__lnk svg{transform:translate(3px,-3px);}
.nwfeat__ph{
  display:block;position:relative;overflow:hidden;
  border-radius:var(--radius);
  aspect-ratio:16/10;
  background:#16202b;
}
.nwfeat__ph img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.001);
  transition:transform .7s var(--ease);
}
.nwfeat:hover .nwfeat__ph img{transform:scale(1.045);}
.nwfeat:hover .c-arrow{opacity:1;transform:none;}

/* ===================== ARCHIVE : PRESS GRID ===================== */
.nwgridband{padding:clamp(40px,5vw,80px) var(--gutter) 0;}
.nwgrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(30px,3.6vw,52px) clamp(20px,2.4vw,40px);
}
/* .nwcell rides the shared .acell filter engine (data-tags/is-hidden);
   the later file wins the display tug-of-war — flex column so the
   photo can pin to the bottom and baselines align across the row */
.nwcell{
  position:relative;
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
  padding-top:clamp(14px,1.6vw,20px);
}
/* the top rule fills from the left with red on hover (LOG21 press move) */
.nwcell::before{
  content:"";
  position:absolute;
  top:-1px;left:0;right:0;
  height:2px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .5s var(--ease);
}
.nwcell:hover::before,
.nwcell:focus-visible::before{transform:scaleX(1);}
.nwcell__t{
  margin:clamp(8px,1vw,14px) 0 0;
  font-size:clamp(16px,1.35vw,21px);
  line-height:1.3;
  font-weight:700;
  letter-spacing:-.004em;
  transition:color .25s ease;
}
.nwcell:hover .nwcell__t{color:var(--soft);}
.nwcell__ex{
  margin:clamp(8px,.9vw,12px) 0 clamp(16px,1.9vw,26px);
  font-size:clamp(12px,.92vw,14.5px);
  line-height:1.65;
  color:var(--soft);
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.nwcell__ph{
  display:block;position:relative;overflow:hidden;
  margin-top:auto;               /* pins the photo row to the card floor */
  border-radius:14px;
  aspect-ratio:16/10;
  background:var(--card);
}
.nwcell__ph img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.001);
  transition:transform .7s var(--ease);
}
.nwcell:hover .nwcell__ph img{transform:scale(1.045);}
.nwcell:hover .c-arrow{opacity:1;transform:none;}

/* wide brief — the row-of-one closes the grid like a news brief */
.nwcell--wide{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(20px,3vw,56px);
  align-items:center;
}
.nwcell--wide .nwcell__ex{-webkit-line-clamp:2;margin-bottom:0;}
.nwcell--wide .nwcell__ph{margin-top:0;aspect-ratio:21/9;}
.nwcell__body{display:block;min-width:0;}

/* ===================== ARCHIVE : FOLLOW ROW ===================== */
.nwfollow{padding:clamp(56px,7vw,110px) var(--gutter) 0;}
.nwfollow__row{
  display:flex;align-items:center;gap:clamp(14px,1.6vw,22px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:clamp(18px,2.2vw,30px) 2px;
}
.nwfollow__body{flex:1;min-width:0;}
.nwfollow__t{margin:0;font-size:clamp(15px,1.3vw,20px);font-weight:700;letter-spacing:-.004em;transition:color .25s ease;}
.nwfollow__row:hover .nwfollow__t{color:var(--soft);}
.nwfollow__s{margin:4px 0 0;font-size:clamp(11px,.85vw,13.5px);color:var(--soft);}
.nwfollow__row .c-arrow{position:static;opacity:1;transform:none;background:var(--card);transition:background-color .25s ease,color .25s ease;}
.nwfollow__row:hover .c-arrow{background:var(--ink);color:#fff;}

/* ===================== SINGLE : ARTICLE HEAD ===================== */
.arthead{padding:clamp(40px,5vw,84px) var(--gutter) 0;}
.arthead .crumb{margin-bottom:clamp(18px,2.2vw,30px);}
.arthead .nwmeta{margin-bottom:clamp(14px,1.6vw,22px);}
.arttitle{
  margin:0;
  max-width:24ch;
  font-size:clamp(28px,3.4vw,56px);
  line-height:1.07;
  font-weight:300;
  letter-spacing:-.006em;
}
.arttitle b{font-weight:700;}
.artlead{
  margin:clamp(16px,2vw,30px) 0 0;
  max-width:56ch;
  font-size:clamp(14px,1.12vw,18px);
  line-height:1.65;
  color:var(--soft);
}

/* ===================== SINGLE : HERO FIGURE ===================== */
.arthero{padding:clamp(24px,3vw,48px) var(--gutter) 0;}
.arthero figure{margin:0;}
.arthero__ph{
  display:block;overflow:hidden;
  border-radius:var(--radius);
  aspect-ratio:21/9;
  background:#16202b;
}
.arthero__ph img{width:100%;height:100%;object-fit:cover;}

/* ===================== SINGLE : BODY ===================== */
.artwrap{padding:clamp(36px,4.6vw,72px) var(--gutter) 0;}
.artbody{max-width:780px;}
.artbody p{
  margin:0 0 1.25em;
  font-size:clamp(13.5px,1.04vw,16.5px);
  line-height:1.8;
  color:rgba(20,25,34,.78);
}
.artbody p:last-child{margin-bottom:0;}
.artbody a{
  font-weight:700;color:var(--ink);
  text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(20,25,34,.28);
  transition:color .2s ease;
}
.artbody a:hover{color:var(--soft);}
.artbody h2{
  margin:2em 0 .7em;
  font-size:clamp(17px,1.5vw,25px);
  font-weight:700;
  letter-spacing:-.004em;
}
.artbody ul{
  list-style:none;margin:0 0 1.4em;padding:0;
  display:flex;flex-direction:column;gap:clamp(8px,.9vw,12px);
}
.artbody li{
  display:flex;align-items:baseline;
  font-size:clamp(12.5px,.98vw,15.5px);
  line-height:1.65;
  color:rgba(20,25,34,.78);
}
.artbody li .tri{flex:none;margin-top:.1em;}
.artbody li b{font-weight:700;margin-right:.35em;}
.artbody .terms{margin:1.8em 0;max-width:640px;}
.artbody figure{margin:2em 0;}
.artbody figure .arthero__ph{aspect-ratio:16/9;border-radius:16px;}

/* pullquote — the article's one accent */
.artq{
  margin:2em 0;
  padding-left:clamp(16px,2vw,28px);
  border-left:2px solid var(--yellow);
  max-width:30ch;
  font-size:clamp(18px,1.8vw,29px);
  line-height:1.42;
  font-weight:300;
  letter-spacing:-.004em;
  color:var(--ink);
}
.artq b{font-weight:700;}

/* end row */
.artend{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
  margin-top:clamp(40px,5vw,72px);
  border-top:1px solid var(--line);
  padding-top:clamp(14px,1.6vw,22px);
  max-width:780px;
}
.artend .lnk{color:var(--ink);font-weight:700;white-space:nowrap;font-size:clamp(12px,.92vw,14.5px);}
.artend .lnk:hover{color:var(--soft);}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1180px){
  .nwgrid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:960px){
  .nwfeat{grid-template-columns:1fr;gap:clamp(16px,3vw,24px);}
  .nwfeat__ph{order:-1;}
  .nwcell--wide{grid-template-columns:1fr;gap:clamp(14px,2.4vw,20px);}
  .nwcell--wide .nwcell__ph{order:-1;aspect-ratio:16/10;}
  .nwcell--wide .nwcell__ex{margin-bottom:0;}
  .arthero__ph{aspect-ratio:16/10;}
}
@media (max-width:760px){
  .nwgrid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .nwfeat__ph img,.nwcell__ph img,.nwfeat__lnk svg,.nwcell::before{transition:none !important;}
}
