/* ==========================================================================
   Valemont — Newsroom / wire-service edition
   Site 08 · valence: 2027 global launch of CortexQuant
   Design identity: condensed wire headlines, signal red, news grid.
   ========================================================================== */

:root{
  --paper:      #ffffff;
  --ground:     #f4f5f6;
  --ink:        #101418;
  --ink-soft:   #232a33;
  --red:        #d92d20;
  --red-deep:   #a81c12;
  --grey:       #6a7380;   /* structural grey — rules, meta */
  --grey-text:  #5c6470;   /* AA-safe secondary body text */
  --rule:       #e2e5e9;
  --rule-hard:  #101418;

  --display: 'Barlow Condensed', 'Arial Narrow', 'Helvetica Neue', sans-serif;
  --body:    'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --shell: 1180px;
  --gap: 26px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
  margin:0;
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.62;
  color:var(--ink);
  background-color:var(--ground);
  background-image:
    repeating-linear-gradient(0deg, rgba(16,20,24,.05) 0 1px, transparent 1px 30px),
    repeating-linear-gradient(90deg, rgba(16,20,24,.05) 0 1px, transparent 1px 30px);
  background-position:-1px -1px;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:var(--red); text-decoration-thickness:.06em; text-underline-offset:.16em; }
a:hover{ color:var(--red-deep); }

:focus-visible{
  outline:3px solid var(--red);
  outline-offset:3px;
  border-radius:2px;
}

.skip-link{
  position:absolute; left:12px; top:-200px;
  z-index:100;
  background:var(--ink); color:#fff;
  padding:12px 18px; font-weight:600; font-size:.9rem;
  text-decoration:none; border-radius:2px;
  transition:top .18s var(--ease);
}
.skip-link:focus{ top:12px; color:#fff; }

.shell{
  width:100%; max-width:var(--shell);
  margin-inline:auto; padding-inline:20px;
}

.visually-hidden{
  position:absolute!important; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* --------------------------------------------------------------- masthead */

.masthead{
  background:var(--paper);
  border-bottom:1px solid var(--rule);
  position:relative;
}
.masthead::after{
  content:"";
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(-45deg, rgba(16,20,24,.028) 0 1px, transparent 1px 9px);
  pointer-events:none;
}
.masthead__bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; flex-wrap:wrap;
  padding:14px 0 10px;
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--grey-text); font-weight:600;
  position:relative; z-index:1;
}
.masthead__edition{ display:inline-flex; align-items:center; gap:8px; }
.masthead__dot{
  width:7px; height:7px; background:var(--red); display:inline-block;
  border-radius:50%; animation:pulse 2.6s var(--ease) infinite;
}
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.28} }

.masthead__wordmark{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(2.6rem,7.5vw,4.6rem);
  line-height:.9;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ink);
  text-decoration:none;
  display:block;
  position:relative; z-index:1;
  margin:2px 0 6px;
}
.masthead__wordmark span{ color:var(--red); }
.masthead__wordmark:hover{ color:var(--ink); }
.masthead__kicker-line{
  display:flex; align-items:center; gap:14px;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--grey-text); font-weight:600;
  position:relative; z-index:1;
}
.masthead__kicker-line::before,
.masthead__kicker-line::after{
  content:""; height:1px; background:var(--rule); flex:1;
}

/* double rule — the wire-service tell */
.double-rule{
  border-top:3px solid var(--rule-hard);
  border-bottom:1px solid var(--rule-hard);
  height:5px; margin-bottom:0;
}

.navbar{
  background:var(--paper);
  border-bottom:1px solid var(--rule);
  position:sticky; top:0; z-index:40;
}
.navbar__row{
  display:flex; align-items:center; gap:4px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.navbar__row::-webkit-scrollbar{ display:none; }
.navbar__row a{
  font-family:var(--display);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:600;
  font-size:1.02rem;
  color:var(--ink);
  text-decoration:none;
  padding:13px 14px;
  min-height:44px;
  display:inline-flex; align-items:center;
  border-bottom:3px solid transparent;
  white-space:nowrap;
  transition:color .2s var(--ease), border-color .2s var(--ease), background-color .2s var(--ease);
}
.navbar__row a:hover{ color:var(--red); background:rgba(217,45,32,.05); }
.navbar__row a:focus-visible{ border-bottom-color:var(--red); }

/* ------------------------------------------------------------ lead story */

main{ display:block; }

.lead{
  background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.lead__wrap{ padding:34px 0 42px; }

.kicker-row{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  margin-bottom:20px;
}
.kicker{
  font-family:var(--body);
  font-weight:700;
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--red);
}
.kicker--boxed{
  background:var(--red); color:#fff;
  padding:5px 11px; letter-spacing:.14em;
  border-radius:2px;
}
.kicker-row__line{ flex:1; height:1px; background:var(--rule); min-width:24px; }

h1.headline{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(2.7rem,7.2vw,5.4rem);
  line-height:.94;
  letter-spacing:-.005em;
  margin:0 0 20px;
  max-width:20ch;
  text-wrap:balance;
}

.standfirst{
  font-size:clamp(1.12rem,2vw,1.35rem);
  line-height:1.5;
  color:var(--ink-soft);
  max-width:62ch;
  margin:0 0 24px;
  font-weight:500;
}
.standfirst strong{ color:var(--ink); }

.byline{
  display:flex; align-items:center; gap:10px 16px; flex-wrap:wrap;
  padding-top:16px;
  border-top:1px solid var(--rule);
  font-size:.82rem; color:var(--grey-text);
}
.byline__name{ font-weight:700; color:var(--ink); }
.chip{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--body);
  font-size:.68rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase;
  padding:5px 10px;
  border-radius:2px;
  background:var(--ink); color:#fff;
  white-space:nowrap;
}
.chip--red{ background:var(--red); color:#fff; }
.chip--ghost{ background:transparent; color:var(--ink); border:1px solid var(--rule); }

/* the news grid — deliberately uneven */
.lead__grid{
  display:grid;
  grid-template-columns:1.55fr 1fr;
  grid-template-areas:
    "head  rail"
    "media rail"
    "media meta";
  gap:var(--gap);
  align-items:start;
}
.lead__head{ grid-area:head; }
.lead__rail{ grid-area:rail; }
.lead__media{ grid-area:media; }
.lead__meta{ grid-area:meta; }

.lead__media figure{ margin:0; }
.lead__media img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:50% 30%;
  border:1px solid var(--rule);
  background:#e9ebee;
}
figcaption{
  font-size:.8rem;
  color:var(--grey-text);
  line-height:1.5;
  padding:9px 0 0;
  border-top:1px solid var(--rule);
  margin-top:8px;
}

/* fact rail beside the lead: heavyset, newsroom-style */
.fact-rail{
  border-top:4px solid var(--rule-hard);
  padding-top:14px;
}
.fact-rail__title{
  font-family:var(--display);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
  font-size:1.25rem;
  margin:0 0 12px;
}
.fact-rail dl{ margin:0; }
.fact-rail dt{
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--grey-text); font-weight:700;
  padding-top:11px; margin-top:11px;
  border-top:1px solid var(--rule);
}
.fact-rail dt:first-of-type{ border-top:0; padding-top:0; margin-top:0; }
.fact-rail dd{
  margin:4px 0 0;
  font-family:var(--display);
  font-size:1.5rem; font-weight:700; line-height:1.1;
  letter-spacing:.01em;
}
.fact-rail dd small{
  display:block; font-family:var(--body);
  font-size:.78rem; font-weight:500; letter-spacing:0;
  color:var(--grey-text); text-transform:none; margin-top:3px;
  line-height:1.45;
}

/* -------------------------------------------------------------- news grid */

.grid-news{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-template-areas:
    "a a a b b b"
    "c c d d d e";
  gap:var(--gap);
  padding:38px 0 8px;
}
.cell{
  background:var(--paper);
  border:1px solid var(--rule);
  border-top:3px solid var(--ink);
  padding:20px 20px 22px;
  position:relative;
}
.cell--a{ grid-area:a; }
.cell--b{ grid-area:b; border-top-color:var(--red); }
.cell--c{ grid-area:c; border-top-color:var(--red); }
.cell--d{ grid-area:d; }
.cell--e{ grid-area:e; }

.cell h2, .cell h3{
  font-family:var(--display);
  font-size:1.6rem; font-weight:700; line-height:1.05;
  letter-spacing:.01em;
  margin:0 0 10px;
}
.cell h2{ font-size:2rem; }
.cell p{ margin:0 0 10px; font-size:.95rem; }
.cell p:last-child{ margin-bottom:0; }
.cell__label{
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  font-weight:700; color:var(--red);
  display:block; margin-bottom:8px;
}

/* ------------------------------------------------------------------ prose */

.report{
  background:var(--paper);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  margin-top:34px;
}
.report__inner{
  max-width:820px;
  padding:46px 0 54px;
}
.report h2{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.9rem,4.4vw,2.9rem);
  line-height:1.02;
  letter-spacing:.005em;
  margin:0 0 6px;
  padding-top:18px;
  border-top:3px solid var(--rule-hard);
  scroll-margin-top:74px;
}
.report h3{
  font-family:var(--display);
  font-weight:700;
  font-size:1.5rem;
  line-height:1.12;
  letter-spacing:.01em;
  margin:34px 0 8px;
  color:var(--ink);
}
.report p{ margin:0 0 18px; }
.report .lede-p{
  font-size:1.2rem; line-height:1.55; color:var(--ink-soft);
  font-weight:500;
  border-left:4px solid var(--red);
  padding-left:18px;
  margin:0 0 26px;
}
.report ul, .report ol{ margin:0 0 20px; padding-left:1.25em; }
.report li{ margin:0 0 9px; }
.report strong{ font-weight:600; }
.section-kicker{
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:700; color:var(--grey-text);
  display:block; margin-bottom:2px;
}
.report section + section h2{ margin-top:12px; }

.pullquote{
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  margin:30px 0;
  padding:20px 0 18px;
  font-family:var(--display);
  font-size:clamp(1.5rem,3.6vw,2.15rem);
  line-height:1.06;
  font-weight:600;
  letter-spacing:.005em;
}
.pullquote cite{
  display:block;
  font-family:var(--body);
  font-style:normal;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--red);
  margin-top:12px;
}

/* fig in flow */
.report figure{ margin:30px 0 26px; }
.report figure img{
  width:100%; border:1px solid var(--rule); background:#e9ebee;
}

/* fact-box tables */
.factbox{
  margin:26px 0 30px;
  border-top:4px solid var(--rule-hard);
  border-bottom:1px solid var(--rule);
  overflow-x:auto;
}
table{
  width:100%;
  border-collapse:collapse;
  font-size:.9rem;
  min-width:520px;
}
caption{
  caption-side:top;
  text-align:left;
  font-family:var(--display);
  font-size:1.3rem;
  font-weight:700;
  letter-spacing:.02em;
  padding:12px 0 10px;
  color:var(--ink);
}
caption span{
  display:block; font-family:var(--body);
  font-size:.72rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--grey-text); margin-top:2px;
}
thead th{
  text-align:left;
  font-size:.66rem; letter-spacing:.15em; text-transform:uppercase;
  font-weight:700; color:var(--ink);
  padding:9px 14px 9px 0;
  border-bottom:2px solid var(--ink);
  vertical-align:bottom;
}
tbody th, tbody td{
  text-align:left;
  padding:12px 14px 12px 0;
  border-bottom:1px solid var(--rule);
  vertical-align:top;
  line-height:1.48;
}
tbody tr:last-child th, tbody tr:last-child td{ border-bottom:0; }
tbody th{
  font-weight:600; white-space:nowrap;
  color:var(--ink);
}
tbody th .num{
  font-family:var(--display);
  color:var(--red);
  font-size:1.15rem;
  font-weight:700;
  margin-right:8px;
}
tbody tr:hover{ background:rgba(217,45,32,.035); }
td .tag{
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:700; color:var(--grey-text);
  display:inline-block; margin-top:3px;
}

.callout{
  background:var(--ground);
  border-left:4px solid var(--red);
  padding:18px 20px;
  margin:26px 0;
}
.callout__label{
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  font-weight:700; color:var(--red);
  display:block; margin-bottom:7px;
}
.callout p{ margin:0 0 10px; font-size:.95rem; }
.callout p:last-child{ margin-bottom:0; }

/* columns of a newsprint-style list */
.two-col{
  columns:2;
  column-gap:32px;
  column-rule:1px solid var(--rule);
  margin:0 0 22px;
  padding:0;
  list-style:none;
}
.two-col li{
  break-inside:avoid;
  margin:0 0 10px;
  padding-left:14px;
  position:relative;
  font-size:.95rem;
}
.two-col li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:6px; height:6px; background:var(--red);
}

/* boilerplate */
.boilerplate{
  background:var(--ground);
  border:1px solid var(--rule);
  border-top:3px solid var(--ink);
  padding:24px 24px 22px;
  margin:34px 0 0;
}
.boilerplate h2{
  border-top:0; padding-top:0; margin-top:0;
  font-size:1.7rem;
}
.boilerplate p{ font-size:.95rem; }

/* about-the-newsroom note */
.release-note{
  font-size:.82rem;
  color:var(--grey-text);
  border-top:1px solid var(--rule);
  margin-top:30px; padding-top:14px;
}

/* related reading */
.related{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);
  margin:20px 0 0;
}
.related a{
  display:block;
  background:var(--paper);
  padding:16px 16px 18px;
  text-decoration:none;
  transition:background-color .2s var(--ease), transform .2s var(--ease);
}
.related a:hover{ background:#fbfbfc; }
.related a:focus-visible{ outline-offset:-3px; }
.related__kicker{
  display:block;
  font-size:.64rem; letter-spacing:.16em; text-transform:uppercase;
  font-weight:700; color:var(--red); margin-bottom:6px;
}
.related__title{
  display:block;
  font-family:var(--display);
  font-size:1.15rem; line-height:1.15; font-weight:700;
  color:var(--ink);
}

/* -------------------------------------------------------------------- FAQ */

.faq{
  border-top:4px solid var(--rule-hard);
  margin:14px 0 0;
}
.faq details{
  border-bottom:1px solid var(--rule);
}
.faq summary{
  cursor:pointer;
  list-style:none;
  padding:18px 44px 18px 0;
  min-height:44px;
  position:relative;
  font-family:var(--display);
  font-size:1.32rem;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.01em;
  color:var(--ink);
  transition:color .2s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"";
  position:absolute; right:8px; top:50%;
  width:12px; height:12px;
  border-right:2px solid var(--red);
  border-bottom:2px solid var(--red);
  transform:translateY(-70%) rotate(45deg);
  transition:transform .28s var(--ease-out);
}
.faq details[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.faq summary:hover{ color:var(--red); }
.faq summary:focus-visible{ outline-offset:2px; }
.faq__body{ padding:0 0 20px; }
.faq__body p{ margin:0 0 12px; font-size:.98rem; }
.faq__body p:last-child{ margin-bottom:0; }

/* ----------------------------------------------------------------- footer */

.foot{
  margin-top:46px;
  background:var(--ink);
  color:#c9ced6;
  position:relative;
}
.foot::before{
  content:"";
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(-45deg, rgba(255,255,255,.035) 0 1px, transparent 1px 10px);
  pointer-events:none;
}
.foot__inner{ position:relative; z-index:1; padding:44px 0 30px; }
.foot a{ color:#fff; }
.foot a:hover{ color:var(--red); }
.foot__wordmark{
  font-family:var(--display);
  font-weight:700; text-transform:uppercase;
  font-size:2.2rem; line-height:1; letter-spacing:.03em;
  color:#fff; margin:0 0 8px;
}
.foot__wordmark span{ color:var(--red); }
.foot__blurb{
  max-width:58ch; color:#aab1bb; font-size:.92rem; margin:0 0 26px;
}
.foot__net-title{
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:700; color:var(--red);
  border-top:1px solid rgba(255,255,255,.16);
  padding-top:16px; margin:0 0 12px;
}
.linknet{
  list-style:none; margin:0 0 30px; padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:1px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);
}
.linknet li{ background:var(--ink); }
.linknet a{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:12px 14px;
  min-height:44px;
  text-decoration:none;
  color:#dfe3e8;
  font-size:.88rem;
  transition:background-color .2s var(--ease), color .2s var(--ease);
}
.linknet a:hover{ background:#1b2129; color:#fff; }
.linknet a span{
  font-family:var(--display);
  font-size:.95rem; font-weight:700;
  color:var(--red);
  flex:none;
}
.foot__legal{
  border-top:1px solid rgba(255,255,255,.16);
  padding-top:18px;
  font-size:.8rem; line-height:1.6;
  color:#9aa2ad;
}
.foot__legal p{ margin:0 0 10px; }
.foot__legal strong{ color:#c9ced6; }

/* reveal animation — enhancement only */
.reveal{ opacity:0; transform:translateY(14px);
  transition:opacity .6s var(--ease-out), transform .6s var(--ease-out); }
.reveal.is-in{ opacity:1; transform:none; }

/* ---------------------------------------------------------------- responsive */

@media (max-width:900px){
  .lead__grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "head"
      "media"
      "rail"
      "meta";
  }
  .grid-news{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "a a"
      "b b"
      "c d"
      "e e";
  }
  .cell--e{ grid-column:1 / -1; }
}

@media (max-width:620px){
  body{ font-size:1rem; }
  .shell{ padding-inline:16px; }
  .grid-news{ grid-template-columns:1fr; grid-template-areas:"a" "b" "c" "d" "e"; }
  .two-col{ columns:1; column-rule:0; }
  .masthead__bar{ font-size:.64rem; letter-spacing:.1em; }
  .lead__wrap{ padding:24px 0 30px; }
  .report__inner{ padding:34px 0 40px; }
  .fact-rail dd{ font-size:1.3rem; }
  .related{ grid-template-columns:1fr; }
  table{ min-width:440px; font-size:.84rem; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .reveal{ opacity:1; transform:none; }
}

/* ---------- brand logo ---------- */
/* Sized relative to the adjacent wordmark (em) with an absolute cap, so each
   site's own type scale governs the mark instead of one fixed pixel height. */
.brand-logo {
  display: inline-block;
  height: min(1.1em, 18px);
  width: auto;
  margin-right: 0.45em;
  vertical-align: -0.22em;
}
.foot__brand .brand-logo,
.foot__wordmark .brand-logo,
.foot__logo .brand-logo {
  height: min(1.3em, 26px);
  margin-right: 0.45em;
  vertical-align: -0.24em;
}
@media (max-width: 640px) {
  .brand-logo { height: min(1.05em, 16px); margin-right: 0.35em; }
  .foot__brand .brand-logo,
  .foot__wordmark .brand-logo { height: min(1.2em, 22px); }
}

/* Site 08's masthead wordmark is ~74px (newsroom masthead), far larger than any
   other site's brand text, so the global 18px cap leaves the mark looking lost.
   Scale it to this site's own masthead instead. */
.masthead__wordmark .brand-logo {
  height: min(0.4em, 32px);
  margin-right: 0.14em;
  vertical-align: middle;
}
.foot__wordmark .brand-logo { vertical-align: -0.14em; }
