/*
Theme Name: Broadsheet
Theme URI: https://eurofinancenews.com
Author: Hugo
Description: Broadsheet — newspaper-style editorial theme. Masthead with double rules, ledger-grid background, desk-based taxonomy, serif display headlines with an orange accent. Faithful port of the eurofinancenews.com design, driven by WordPress. Reusable across niches, built for AdSense/SEO.
Version: 2.0.0
Requires at least: 6.5
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: broadsheet
*/

/* ============================================================================
   GROUND-TRUTH STYLESHEET
   Ported verbatim from the production eurofinancenews.com build. Do not
   "tidy" values — they were measured/validated pixel-for-pixel. WordPress
   -specific additions live in the clearly-marked block at the very bottom.
   ============================================================================ */

:root {
  --brand:#333f55;
  --brand-dark:#273142;
  --accent:#ea580c;
  --ink:#0f172a;
  --muted:#5d6878;
  --night:#171f2d;
  --night-2:#404752;
  --paper:#f8fafc;
  --sheet:#fff;
  --line:#e2e4e7;
  --highlight:#ee902b;
  --font-display:"Georgia", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-body:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --radius:22px;
  --shadow:0 26px 70px #171f2d24;
  --bg-grid:#171f2d0d;
  --bg-wash:linear-gradient(180deg, #fafbfc 0%, #f7f0ed 48%, #eef0f3 100%);
  --hero-wash:linear-gradient(145deg, #fff, #eeeff1 92%);
  --hero-glow:#ea580c38;
  --tile-2:linear-gradient(180deg, #fceee6, #fff);
  --tile-3:linear-gradient(180deg, #eeeff1, #fff);
  --signal-tile:#f0f1f3;
  --footer-glow:#ea580c52}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth}
body {
  color:var(--ink);
  font-family:var(--font-body);
  background-color:var(--bg-wash);
  background-image:repeating-linear-gradient(90deg, transparent 0 39px, var(--bg-grid) 39px 40px);
  text-rendering:optimizelegibility;
  -webkit-font-smoothing:antialiased;
  margin:0;
  font-size:1.02rem;
  line-height:1.62}
body::selection {
  background:color-mix(in srgb, var(--accent) 24%, transparent)}
a {
  color:var(--brand-dark);
  text-underline-offset:2px;
  text-decoration:underline;
  text-decoration-thickness:1px}
a:hover {
  color:var(--accent)}
img {
  max-width:100%;
  height:auto}
main {
  min-height:64vh}
.site-shell {
  min-height:100vh}
.site-chrome {
  isolation:isolate}
.content-stage {
  position:relative}
.skip-link {
  z-index:100;
  background:var(--night);
  color:var(--paper);
  font-family:var(--font-body);
  letter-spacing:.04em;
  border:1px solid var(--ink);
  padding:10px 14px;
  font-weight:700;
  text-decoration:none;
  position:fixed;
  top:12px;
  left:16px;
  transform:translateY(-160%)}
.skip-link:focus {
  transform:translateY(0)}
.site-masthead {
  z-index:40;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:10px clamp(16px,4vw,54px) 0;
  position:relative}
.site-brand {
  text-align:center;
  color:var(--night);
  border-top:3px double var(--ink);
  border-bottom:3px double var(--ink);
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:6px;
  padding:14px 0 10px;
  text-decoration:none;
  display:flex}
.site-brand img {
  width:auto;
  max-width:min(86vw,560px);
  height:clamp(34px,5vw,56px);
  display:block}
.site-brand span {
  color:var(--muted);
  font-family:var(--font-body);
  letter-spacing:.04em;
  text-transform:none;
  align-items:center;
  gap:10px;
  font-size:.7rem;
  font-style:italic;
  font-weight:700;
  display:inline-flex}
.site-brand span:before,.site-brand span:after {
  content:"—";
  color:var(--line);
  font-style:normal}
.site-nav {
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:2px clamp(6px,1.4vw,18px);
  padding:9px 0 11px;
  display:flex}
.site-nav a {
  color:var(--night);
  font-family:var(--font-body);
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
  padding:4px clamp(4px,.7vw,8px);
  font-size:clamp(.74rem,.8vw,.82rem);
  font-weight:700;
  text-decoration:none;
  position:relative}
.site-nav a+a:before {
  content:"";
  background:var(--line);
  width:1px;
  height:11px;
  position:absolute;
  top:50%;
  left:calc(-1*clamp(3px,.7vw,9px));
  transform:translateY(-50%)}
.site-nav a:hover {
  color:var(--accent);
  text-underline-offset:3px;
  text-decoration:underline}
.nav-toggle {
  border:1px solid var(--ink);
  background:var(--paper);
  width:42px;
  height:38px;
  color:var(--ink);
  cursor:pointer;
  border-radius:0;
  padding:10px;
  display:none;
  position:absolute;
  top:14px;
  right:clamp(16px,4vw,54px)}
.nav-toggle span {
  background:var(--ink);
  height:2px;
  margin:5px 0;
  transition:transform .18s;
  display:block}
.nav-toggle[aria-expanded=true] span:first-child {
  transform:translateY(3px)rotate(42deg)}
.nav-toggle[aria-expanded=true] span:last-child {
  transform:translateY(-4px)rotate(-42deg)}
.eyebrow,.desk-label,.pill {
  width:max-content;
  max-width:100%;
  color:var(--accent);
  font-family:var(--font-body);
  letter-spacing:.2em;
  text-transform:uppercase;
  background:0 0;
  border:0;
  align-items:center;
  gap:8px;
  padding:0;
  font-size:.76rem;
  font-weight:700;
  text-decoration:none;
  display:inline-flex}
.eyebrow:before,.desk-label:before {
  content:"";
  background:var(--accent);
  width:18px;
  height:1px}
.desk-label:hover {
  color:var(--brand-dark)}
.cta,.secondary-cta,.contact-submit {
  font-family:var(--font-body);
  letter-spacing:.04em;
  border-radius:0;
  justify-content:center;
  align-items:center;
  font-weight:700;
  text-decoration:none;
  transition:background .16s,color .16s,border-color .16s;
  display:inline-flex}
.cta {
  color:var(--paper);
  background:var(--ink);
  border:1px solid var(--ink);
  padding:11px 22px}
.cta:hover {
  color:var(--paper);
  background:var(--accent);
  border-color:var(--accent)}
.secondary-cta {
  color:var(--ink);
  border:1px solid var(--ink);
  background:0 0;
  padding:11px 22px}
.secondary-cta:hover {
  color:var(--paper);
  background:var(--ink)}
.ops-console {
  border-top:1px solid var(--ink);
  grid-template-columns:minmax(0,1fr) minmax(280px,.46fr);
  grid-template-areas:"copy lead""copy rail";
  gap:0;
  width:min(1180px,100% - 40px);
  margin:clamp(20px,3vw,34px) auto 0;
  display:grid}
.hero-panel {
  border-right:1px solid var(--line);
  background:0 0;
  grid-area:copy;
  padding:clamp(20px,3vw,36px) clamp(20px,3vw,36px) clamp(20px,3vw,32px) 0;
  position:relative}
.hero-panel .eyebrow {
  margin-bottom:8px}
.hero-panel h1 {
  max-width:18ch;
  color:var(--night);
  font-family:var(--font-display);
  letter-spacing:-.012em;
  margin:6px 0 14px;
  font-size:clamp(2.6rem,5.6vw,5rem);
  font-weight:900;
  line-height:.98;
  position:relative}
.hero-panel p {
  max-width:60ch;
  color:var(--ink);
  text-align:justify;
  -webkit-hyphens:auto;
  hyphens:auto;
  margin:0;
  font-size:1.12rem;
  line-height:1.58;
  position:relative}
.hero-panel p:first-letter {
  float:left;
  font-family:var(--font-display);
  color:var(--accent);
  padding:6px 10px 0 0;
  font-size:3.6em;
  font-weight:800;
  line-height:.72}
.hero-actions {
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
  display:flex;
  position:relative}
.lead-brief {
  color:var(--ink);
  background:0 0;
  grid-area:lead;
  align-content:start;
  gap:10px;
  padding:clamp(16px,2vw,22px) 0 clamp(16px,2vw,22px) clamp(18px,2.4vw,28px);
  text-decoration:none;
  display:grid}
.lead-brief span {
  color:var(--accent);
  letter-spacing:.2em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:700}
.lead-brief img {
  aspect-ratio:4/3;
  object-fit:cover;
  filter:grayscale(.18)contrast(1.03);
  border:1px solid var(--line);
  border-radius:0;
  width:100%}
.lead-brief strong {
  color:var(--night);
  font-family:var(--font-display);
  font-size:1.5rem;
  font-weight:800;
  line-height:1.06}
.lead-brief small {
  color:var(--muted);
  font-size:.96rem;
  line-height:1.5}
.lead-brief:hover strong {
  color:var(--accent)}
.signal-rail {
  border-top:1px solid var(--line);
  background:0 0;
  grid-area:rail;
  grid-template-columns:1fr;
  gap:0;
  padding:0 0 0 clamp(18px,2.4vw,28px);
  display:grid}
.signal-rail div {
  border-bottom:1px solid var(--line);
  background:0 0;
  grid-template-columns:auto 1fr;
  align-items:baseline;
  gap:12px;
  min-height:0;
  padding:13px 0;
  display:grid}
.signal-rail strong {
  color:var(--accent);
  font-family:var(--font-display);
  font-size:clamp(1.7rem,2.4vw,2.2rem);
  font-weight:800;
  line-height:1;
  display:block}
.signal-rail span {
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.82rem;
  font-weight:700;
  line-height:1.2}
.wrap,.legal,.reader-sheet,.notfound,.article {
  width:min(1080px,100% - 40px);
  margin:0 auto}
.wrap {
  padding:clamp(34px,5vw,56px) 0}
.legal,.reader-sheet,.notfound,.article {
  padding:clamp(34px,6vw,64px) 0}
.legal {
  max-width:760px}
.notfound {
  text-align:center;
  max-width:680px}
.lead,.reader-sheet>p,.legal>p,.article>p,.author-profile>p {
  color:var(--ink);
  font-size:1.08rem}
.section-title,.legal h1,.reader-sheet h1,.notfound h1,.author-profile h1,.article h1 {
  color:var(--night);
  font-family:var(--font-display);
  letter-spacing:-.01em;
  font-weight:800;
  line-height:1.04}
.section-title {
  margin:6px 0 0;
  font-size:clamp(1.7rem,3.4vw,2.7rem)}
.legal h1,.reader-sheet h1,.notfound h1,.article h1 {
  margin:10px 0 16px;
  font-size:clamp(2.2rem,5.4vw,4.2rem)}
.legal h2,.story-body h2,.content h2,.author-profile h2 {
  color:var(--night);
  font-family:var(--font-display);
  margin-top:34px;
  font-size:clamp(1.4rem,2.4vw,1.9rem);
  font-weight:700;
  line-height:1.16}
.desk-strip {
  border-top:3px double var(--ink);
  border-bottom:1px solid var(--ink);
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  width:min(1180px,100% - 40px);
  margin:clamp(22px,3vw,36px) auto 0;
  display:grid}
.desk-tile {
  min-height:130px;
  color:var(--ink);
  border-right:1px solid var(--line);
  background:0 0;
  align-content:start;
  padding:16px clamp(12px,1.4vw,18px);
  text-decoration:none;
  display:grid}
.desk-tile:last-child {
  border-right:0}
.desk-tile span {
  color:var(--night);
  font-family:var(--font-display);
  border-bottom:1px solid var(--line);
  margin-bottom:9px;
  padding-bottom:8px;
  font-size:1.18rem;
  font-weight:700;
  line-height:1.1}
.desk-tile p {
  color:var(--muted);
  margin:0;
  font-size:.9rem;
  line-height:1.46}
.desk-tile:hover span {
  color:var(--accent)}
.section-kicker {
  max-width:100%;
  padding-top:4px}
.briefing-layout,.archive-board {
  width:min(1080px,100% - 40px);
  margin:0 auto}
.briefing-layout {
  grid-template-columns:1fr;
  gap:0;
  display:grid}
.briefing-layout .section-kicker {
  grid-column:1/-1}
.section-kicker .eyebrow {
  margin-bottom:4px}
.feature-stack {
  border-top:1px solid var(--ink);
  counter-reset:feature-counter;
  gap:0;
  margin:18px 0 6px;
  display:grid}
.feature-row {
  border-bottom:1px solid var(--line);
  color:var(--ink);
  background:0 0;
  grid-template-columns:auto minmax(0,1fr) 96px;
  align-items:center;
  gap:16px;
  padding:14px 0;
  text-decoration:none;
  display:grid}
.feature-row:before {
  content:counter(feature-counter, decimal-leading-zero);
  counter-increment:feature-counter;
  font-family:var(--font-display);
  color:var(--line);
  grid-area:1/1/span 2;
  align-self:center;
  font-size:1.6rem;
  font-weight:800}
.feature-row span {
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.16em;
  grid-column:2;
  font-size:.68rem;
  font-weight:700}
.feature-row strong {
  font-family:var(--font-display);
  color:var(--night);
  grid-column:2;
  font-size:1.22rem;
  font-weight:700;
  line-height:1.14}
.feature-row img {
  object-fit:cover;
  filter:grayscale(.2)contrast(1.03);
  border:1px solid var(--line);
  border-radius:0;
  grid-area:1/3/span 2;
  width:96px;
  height:74px}
.feature-row:hover strong {
  color:var(--accent)}
.grid,.brief-grid,.archive-list,.cats,.policy-grid {
  border-top:1px solid var(--ink);
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  display:grid}
.brief-grid,.grid,.archive-list {
  margin-top:18px}
.brief-card {
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:0 0;
  flex-direction:column;
  min-width:0;
  padding:20px clamp(14px,1.6vw,22px) 22px;
  display:flex}
.brief-grid .brief-card:nth-child(3n),.grid .brief-card:nth-child(3n),.archive-list .brief-card:nth-child(3n) {
  border-right:0}
.brief-media {
  aspect-ratio:16/10;
  background:var(--tile-2);
  border:1px solid var(--line);
  margin-top:14px;
  display:block;
  overflow:hidden}
.brief-media img {
  object-fit:cover;
  filter:grayscale(.22)contrast(1.03);
  width:100%;
  height:100%;
  transition:filter .24s;
  display:block}
.brief-card:hover .brief-media img {
  filter:grayscale(0)contrast(1.03)}
.brief-copy {
  flex-direction:column;
  gap:9px;
  display:flex}
.brief-topline {
  border-bottom:1px solid var(--line);
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  padding-bottom:6px;
  display:flex}
.brief-topline time {
  color:var(--muted);
  white-space:nowrap;
  font-size:.74rem;
  font-style:italic;
  font-weight:700}
.brief-card h3 {
  color:var(--night);
  font-family:var(--font-display);
  margin:0;
  font-size:1.32rem;
  font-weight:700;
  line-height:1.12}
.brief-card h3 a {
  color:inherit;
  text-decoration:none}
.brief-card h3 a:hover {
  color:var(--accent)}
.brief-card p {
  color:var(--ink);
  text-align:justify;
  -webkit-hyphens:auto;
  hyphens:auto;
  margin:0;
  font-size:.96rem;
  line-height:1.5}
.brief-meta {
  color:var(--muted);
  font-size:.82rem;
  font-style:italic;
  margin-top:auto!important}
.brief-meta a {
  color:var(--brand-dark)}
.catbox,.policy-grid section {
  border:0;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  min-width:0;
  box-shadow:none;
  background:0 0;
  padding:20px clamp(14px,1.6vw,22px) 22px;
  display:block}
.cats .catbox:nth-child(3n),.policy-grid section:nth-child(3n) {
  border-right:0}
.catbox {
  color:var(--ink);
  text-decoration:none}
.catbox strong {
  color:var(--night);
  font-family:var(--font-display);
  font-size:1.2rem;
  font-weight:700;
  line-height:1.12}
.catbox p {
  color:var(--muted);
  margin:8px 0 0}
.catbox:hover strong {
  color:var(--accent)}
.reader-sheet,.article {
  max-width:740px}
.reader-sheet>.desk-label {
  margin-bottom:4px;
  display:inline-flex}
.editor-credit,.author-box,.byline {
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  box-shadow:none;
  background:0 0;
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  gap:16px;
  margin:20px 0;
  padding:16px 0;
  display:grid}
.avatar {
  object-fit:cover;
  background:var(--tile-2);
  filter:grayscale(.3)contrast(1.03);
  border:1px solid var(--line);
  border-radius:50%;
  width:64px;
  height:64px}
.editor-credit strong,.editor-credit span,.editor-credit time,.author-box strong,.author-box span,.author-box time,.byline strong,.byline span,.byline time {
  display:block}
.editor-credit strong,.author-box strong,.byline strong {
  font-family:var(--font-display);
  color:var(--night);
  font-size:1.1rem;
  font-weight:700}
.editor-credit strong a,.author-box strong a,.byline strong a {
  color:inherit;
  text-decoration:none}
.editor-credit span,.editor-credit time,.author-box span,.author-box time,.byline span,.byline time {
  color:var(--muted);
  font-size:.9rem;
  font-style:italic}
.byline .eyebrow {
  font-style:normal}
.feature-photo,.hero-img {
  aspect-ratio:16/9;
  object-fit:cover;
  border:1px solid var(--line);
  width:100%;
  box-shadow:none;
  filter:grayscale(.14)contrast(1.03);
  border-radius:0;
  margin:18px 0 8px}
.story-body,.content {
  color:var(--ink)}
.story-body>p:first-of-type:first-letter,.content>p:first-of-type:first-letter {
  float:left;
  font-family:var(--font-display);
  color:var(--accent);
  padding:6px 10px 0 0;
  font-size:3.4em;
  font-weight:800;
  line-height:.7}
.story-body p,.story-body li,.content p,.content li {
  font-size:1.08rem;
  line-height:1.66}
.story-body p,.content p {
  text-align:justify;
  -webkit-hyphens:auto;
  hyphens:auto}
.story-body h2,.content h2 {
  font-family:var(--font-display);
  color:var(--night);
  margin-top:34px;
  font-size:clamp(1.4rem,2.4vw,1.9rem);
  font-weight:700;
  line-height:1.16}
.story-body img,.content img {
  object-fit:cover;
  border:1px solid var(--line);
  width:100%;
  max-height:520px;
  box-shadow:none;
  filter:grayscale(.14)contrast(1.03);
  border-radius:0;
  margin:26px 0 8px;
  display:block}
.story-body a,.content a {
  font-weight:700}
.story-body blockquote,.content blockquote {
  border-left:3px solid var(--accent);
  font-family:var(--font-display);
  color:var(--night);
  background:0 0;
  border-radius:0;
  margin:28px 0;
  padding:6px 0 6px 22px;
  font-size:1.3rem;
  font-style:italic;
  line-height:1.3}
.story-body table,.content table {
  border-collapse:collapse;
  width:100%;
  box-shadow:none;
  border:1px solid var(--ink);
  background:0 0;
  border-radius:0;
  margin:28px 0}
.story-body th,.story-body td,.content th,.content td {
  text-align:left;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  padding:11px 13px}
.story-body th,.content th {
  background:var(--tile-3);
  color:var(--night);
  font-family:var(--font-display)}
.story-body tr:last-child td,.content tr:last-child td {
  border-bottom:0}
.next-reads,.related {
  border-top:3px double var(--ink);
  margin-top:50px;
  padding-top:8px}
.next-reads .section-title,.related .section-title {
  font-size:clamp(1.4rem,2.6vw,1.9rem)}
.author-profile>p {
  max-width:70ch;
  color:var(--ink);
  font-size:1.06rem}
.author-profile ul {
  padding-left:1.1rem}
.author-profile li {
  margin:4px 0}
.contact-page {
  max-width:920px}
.contact-card {
  border-top:3px double var(--ink);
  border-bottom:3px double var(--ink);
  background:0 0;
  border-radius:0;
  grid-template-columns:minmax(0,.85fr) minmax(300px,1.1fr);
  align-items:start;
  gap:clamp(22px,3vw,40px);
  margin:28px 0;
  padding:clamp(22px,3vw,32px) 0;
  display:grid}
.contact-card h2 {
  color:var(--night);
  font-family:var(--font-display);
  margin-top:10px;
  font-weight:800;
  line-height:1.1}
.contact-card p {
  color:var(--ink)}
.contact-form {
  gap:16px;
  display:grid}
.field-row {
  gap:6px;
  display:grid}
.field-row[aria-hidden=true] {
  width:1px;
  height:1px;
  position:absolute;
  left:-10000px;
  overflow:hidden}
.field-row label {
  color:var(--night);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.78rem;
  font-weight:700}
.field-row input,.field-row textarea {
  border:1px solid var(--ink);
  background:var(--sheet);
  width:100%;
  color:var(--ink);
  font-family:var(--font-body);
  border-radius:0;
  outline:none;
  padding:11px 13px;
  font-size:1rem;
  transition:box-shadow .16s,border-color .16s}
.field-row textarea {
  resize:vertical;
  min-height:150px}
.field-row input:focus,.field-row textarea:focus {
  border-color:var(--accent);
  box-shadow:inset 0 -2px 0 var(--accent)}
.contact-submit {
  border:1px solid var(--ink);
  background:var(--ink);
  width:max-content;
  color:var(--paper);
  cursor:pointer;
  box-shadow:none;
  padding:12px 24px}
.contact-submit:hover {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--paper)}
.form-help,.form-status {
  margin:0;
  font-size:.92rem}
.form-help {
  color:var(--muted);
  font-style:italic}
.form-status {
  min-height:1.5em;
  font-weight:700}
.form-status.success {
  color:color-mix(in srgb, var(--accent) 72%, var(--night))}
.form-status.error {
  color:#9f2f21}
.site-footer {
  color:color-mix(in srgb, var(--paper) 80%, var(--night));
  background:var(--night);
  border-top:3px double var(--highlight);
  grid-template-columns:minmax(280px,1.4fr) minmax(160px,.8fr) minmax(160px,.8fr);
  gap:clamp(22px,4vw,44px);
  margin:clamp(48px,7vw,80px) 0 0;
  padding:clamp(34px,5vw,52px) clamp(20px,5vw,64px) clamp(28px,4vw,40px);
  display:grid}
.site-footer a {
  color:color-mix(in srgb, var(--paper) 70%, var(--night))}
.site-footer a:hover {
  color:var(--paper)}
.footer-mission img {
  filter:brightness(0)invert();
  width:auto;
  height:38px;
  margin-bottom:12px}
.footer-mission p {
  max-width:52ch;
  color:color-mix(in srgb, var(--paper) 68%, var(--night));
  margin:10px 0;
  font-size:.98rem;
  line-height:1.56}
.footer-mission>a {
  font-style:italic}
.footer-list {
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  display:flex}
.footer-list strong {
  color:var(--paper);
  font-family:var(--font-body);
  letter-spacing:.2em;
  text-transform:uppercase;
  border-bottom:1px solid color-mix(in srgb, var(--paper) 24%, var(--night));
  width:100%;
  margin-bottom:8px;
  padding-bottom:8px;
  font-size:.72rem;
  font-weight:700}
.footer-list a {
  font-size:.96rem;
  text-decoration:none}
.footer-list a:hover {
  text-underline-offset:3px;
  text-decoration:underline}
.footer-note {
  border-top:1px solid color-mix(in srgb, var(--paper) 18%, var(--night));
  color:color-mix(in srgb, var(--paper) 52%, var(--night));
  grid-column:1/-1;
  margin:18px 0 0;
  padding-top:18px;
  font-size:.84rem;
  font-style:italic}
.cookie-consent {
  z-index:50;
  border:1px solid var(--ink);
  border-top:4px solid var(--accent);
  background:var(--sheet);
  width:min(420px,100vw - 36px);
  max-height:min(420px,100vh - 36px);
  color:var(--ink);
  border-radius:0;
  grid-template-rows:minmax(0,1fr) auto;
  gap:14px;
  padding:18px;
  display:grid;
  position:fixed;
  bottom:18px;
  right:18px;
  overflow:hidden;
  box-shadow:6px 6px #1c181429}
.cookie-copy {
  min-height:0;
  padding-right:2px;
  overflow:auto}
.cookie-consent strong {
  color:var(--night);
  font-family:var(--font-display);
  font-size:1.06rem;
  font-weight:700}
.cookie-consent p {
  color:var(--muted);
  margin:6px 0 10px;
  font-size:.92rem}
.cookie-consent nav {
  flex-wrap:wrap;
  gap:4px 14px;
  display:flex}
.cookie-consent nav a {
  font-size:.86rem;
  font-weight:700}
.cookie-actions {
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  display:flex}
.cookie-actions button {
  border:1px solid var(--ink);
  color:var(--night);
  font-family:var(--font-body);
  cursor:pointer;
  background:0 0;
  border-radius:0;
  padding:9px 14px;
  font-weight:700}
.cookie-actions .cookie-primary {
  border-color:var(--ink);
  background:var(--ink);
  color:var(--paper)}
.cookie-actions button:hover {
  color:var(--accent)}
.cookie-actions .cookie-primary:hover {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--paper)}
@media (max-width:1050px) {
  .ops-console {
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"copy""lead""rail"}
.hero-panel {
  border-right:0;
  border-bottom:1px solid var(--line);
  min-width:0;
  padding-bottom:24px;
  padding-right:0}
.lead-brief {
  border-bottom:1px solid var(--line);
  padding-top:20px;
  padding-left:0}
.signal-rail {
  grid-template-columns:1fr 1fr;
  gap:0 clamp(16px,3vw,32px);
  padding-left:0}
.desk-strip {
  grid-template-columns:repeat(3,minmax(0,1fr))}
.desk-tile:nth-child(3n) {
  border-right:0}
.desk-tile:nth-child(n+4) {
  border-top:1px solid var(--line)}
.grid,.brief-grid,.archive-list,.cats,.policy-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}
.brief-grid .brief-card:nth-child(3n),.grid .brief-card:nth-child(3n),.archive-list .brief-card:nth-child(3n) {
  border-right:1px solid var(--line)}
.brief-grid .brief-card:nth-child(2n),.grid .brief-card:nth-child(2n),.archive-list .brief-card:nth-child(2n) {
  border-right:0}
.cats .catbox:nth-child(3n),.policy-grid section:nth-child(3n) {
  border-right:1px solid var(--line)}
.cats .catbox:nth-child(2n),.policy-grid section:nth-child(2n) {
  border-right:0}
}
@media (max-width:820px) {
  .nav-toggle {
  display:block}
.site-nav {
  background:var(--paper);
  border-bottom:1px solid var(--ink);
  z-index:39;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  padding:8px clamp(16px,4vw,54px) 14px;
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  box-shadow:0 14px 24px #1c18141f}
.site-nav.is-open {
  display:flex}
.site-nav a {
  border-bottom:1px solid var(--line);
  width:100%;
  padding:12px 0}
.site-nav a+a:before {
  display:none}
.contact-card {
  grid-template-columns:1fr}
}
@media (max-width:640px) {
  .site-masthead {
  padding:8px 16px 0}
.site-brand img {
  height:30px}
.site-brand span {
  font-size:.64rem}
.ops-console,.desk-strip,.wrap,.legal,.reader-sheet,.notfound,.article,.briefing-layout,.archive-board {
  width:min(100% - 30px,1180px)}
.hero-panel {
  min-width:0;
  max-width:100%}
.hero-panel h1 {
  overflow-wrap:anywhere;
  word-break:break-word;
  -webkit-hyphens:auto;
  hyphens:auto;
  max-width:100%;
  font-size:clamp(2.1rem,11vw,3.2rem)}
.hero-panel p {
  overflow-wrap:anywhere;
  font-size:1rem}
.hero-actions {
  max-width:100%;
  display:grid}
.hero-actions .cta,.hero-actions .secondary-cta {
  width:100%;
  min-width:0}
.desk-strip {
  grid-template-columns:1fr 1fr}
.desk-tile {
  min-height:0}
.desk-tile:nth-child(odd) {
  border-right:1px solid var(--line)}
.desk-tile:nth-child(2n) {
  border-right:0}
.desk-tile:nth-child(n+3) {
  border-top:1px solid var(--line)}
.feature-row {
  grid-template-columns:auto minmax(0,1fr)}
.feature-row img {
  display:none}
.signal-rail,.grid,.brief-grid,.archive-list,.cats,.policy-grid {
  grid-template-columns:1fr}
.brief-card,.catbox,.policy-grid section {
  border-right:0!important}
.feature-photo,.hero-img {
  aspect-ratio:16/10}
.editor-credit,.author-box,.byline {
  grid-template-columns:54px minmax(0,1fr)}
.avatar {
  width:54px;
  height:54px}
.site-footer {
  grid-template-columns:1fr 1fr;
  padding-left:20px;
  padding-right:20px}
.footer-mission,.footer-note {
  grid-column:1/-1}
.cookie-consent {
  gap:8px;
  width:min(330px,100vw - 24px);
  max-height:min(46dvh,320px);
  padding:12px;
  bottom:12px;
  right:12px}
.cookie-consent strong {
  display:block}
.cookie-consent p {
  margin:4px 0 6px;
  font-size:.82rem;
  line-height:1.36}
.cookie-actions {
  grid-template-columns:1fr 1fr;
  gap:8px;
  display:grid}
.cookie-actions button {
  width:100%;
  min-height:42px;
  padding:9px;
  font-size:.86rem}
}
@media (prefers-reduced-motion:reduce) {
  * {
  scroll-behavior:auto!important;
  transition:none!important}
}
.site-brand span,.gv-tagline,.rail-brand span {
  display:none!important}



/* ============================================================================
   WORDPRESS-SPECIFIC ADDITIONS (not in the original static build)
   ============================================================================ */

/* a11y */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important;word-wrap:normal!important}
.screen-reader-text:focus{background:var(--paper);color:var(--ink);border:1px solid var(--ink);clip:auto;-webkit-clip-path:none;clip-path:none;height:auto;width:auto;padding:12px 16px;z-index:100000;top:8px;left:8px;text-decoration:none;font-weight:700}

/* Dynamic text logo (drives the masthead/footer wordmark from the WordPress
   Site Title, so the brand is editable from Settings/Customizer). Sized off a
   single --h var to match the original logo.svg proportions exactly:
   green rounded square with the first letter, then the full name in green. */
.brand-logo{--h:clamp(34px,5vw,56px);display:inline-flex;align-items:center;gap:calc(var(--h)*.208);height:var(--h);text-decoration:none;line-height:1}
.brand-mark{height:calc(var(--h)*.75);width:calc(var(--h)*.75);flex:0 0 auto;border-radius:calc(var(--h)*.23);background:#1f5f55;color:#fff;font-family:var(--font-display);font-weight:800;font-style:normal;font-size:calc(var(--h)*.458);display:inline-flex;align-items:center;justify-content:center;line-height:1}
.brand-word{font-family:var(--font-display);font-weight:800;font-style:normal;font-size:calc(var(--h)*.5);color:#1f5f55;letter-spacing:-.01em;white-space:nowrap;line-height:1}
/* The original styles/hides every .site-brand span (the tagline): italic grey with
   "—" dashes, display:none!important. Our logo spans live inside .site-brand too,
   so re-assert them with higher specificity and kill the pseudo dashes. */
.site-brand .brand-logo{display:inline-flex!important}
.site-brand .brand-mark{display:inline-flex!important;color:#fff;font-family:var(--font-display);font-weight:800;font-style:normal;font-size:calc(var(--h)*.458);letter-spacing:0}
.site-brand .brand-word{display:inline-block!important;color:#1f5f55;font-family:var(--font-display);font-weight:800;font-style:normal;font-size:calc(var(--h)*.5);letter-spacing:-.01em}
.site-brand .brand-logo::before,.site-brand .brand-logo::after,
.site-brand .brand-mark::before,.site-brand .brand-mark::after,
.site-brand .brand-word::before,.site-brand .brand-word::after{content:none!important}
@media (max-width:640px){.brand-logo{--h:30px}}
/* footer variant: 38px tall, white wordmark on a white blank square (matches the original inverted logo) */
.footer-mission .brand-logo{--h:38px;margin-bottom:12px}
.footer-mission .brand-mark{background:#fff;color:#fff}
.footer-mission .brand-word{color:#fff}

/* the_content() image blocks inside articles */
.story-body figure,.content figure{margin:26px 0 8px}
.story-body figure img,.content figure img{margin:0}
.story-body figcaption,.content figcaption{color:var(--muted);font-size:.86rem;font-style:italic;margin-top:8px;text-align:center}
.story-body .alignleft,.content .alignleft{float:left;margin:6px 22px 12px 0;max-width:50%}
.story-body .alignright,.content .alignright{float:right;margin:6px 0 12px 22px;max-width:50%}
.story-body .aligncenter,.content .aligncenter{margin-left:auto;margin-right:auto;display:block}
.story-body ul,.content ul,.legal ul,.author-profile ul{padding-left:1.2rem;margin:14px 0}
.story-body ol,.content ol{padding-left:1.3rem;margin:14px 0}
.story-body li,.content li{margin:6px 0}

/* WordPress admin bar: masthead is position:relative, so no offset needed,
   but keep the fixed skip-link clear of the 32px bar. */
.admin-bar .skip-link{top:44px}

/* Pagination (archives) */
.efn-pagination{border-top:1px solid var(--ink);width:min(1080px,100% - 40px);margin:24px auto 0;padding:22px 0 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.efn-pagination .page-numbers{color:var(--night);border:1px solid var(--line);padding:8px 14px;font-family:var(--font-body);font-weight:700;font-size:.9rem;text-decoration:none;min-width:42px;text-align:center}
.efn-pagination .page-numbers.current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.efn-pagination a.page-numbers:hover{border-color:var(--accent);color:var(--accent)}
