/* ── COMMON GOOD BRAND — SHARED ARTICLE STYLES ── */
/* Identical in Part One, Part Two and Part Three  */
:root {
  --forest:   #1A3D28;
  --grove:    #2D6647;
  --tawny:    #B8710A;
  --tawny-l:  #D9920E;
  --ink:      #1C1917;
  --mid:      #3A3530;
  --light:    #7A7268;
  --rule:     #DDD8CE;
  --page:     #F8F5EE;
  --warm:     #F0EBE0;
  --parch:    #EAE4D8;
  --cream:    #F8F5EE;
  --column:   660px;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--page); color:var(--ink); font-family:'Source Serif 4',Georgia,serif; font-size:19px; font-weight:300; line-height:1.78; -webkit-font-smoothing:antialiased; }

/* MASTHEAD */
.masthead { background:var(--forest); padding:18px 40px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; border-bottom:3px solid var(--tawny); }
.masthead-brand { display:flex; align-items:center; gap:14px; }
.masthead-logotype { display:flex; flex-direction:column; line-height:1; }
.mh-common { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--cream); line-height:.92; }
.mh-good { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:700; font-style:italic; color:var(--tawny-l); line-height:.92; }
.masthead-right { text-align:right; }
.masthead-pub { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.3); margin-bottom:4px; display:block; }
.masthead-tag { font-family:'Cormorant Garamond',serif; font-size:14px; font-style:italic; color:rgba(255,255,255,.42); }

/* SERIES BANNER */
.series-banner { background:var(--ink); color:var(--page); padding:12px 40px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; display:flex; align-items:center; gap:14px; flex-wrap:wrap; border-bottom:1px solid rgba(255,255,255,.08); }
.series-banner a { color:var(--tawny-l); text-decoration:none; border-bottom:1px solid rgba(217,146,14,.4); }
.series-banner .sep { color:rgba(255,255,255,.2); }

/* ARTICLE HEADER */
.article-header { max-width:var(--column); margin:60px auto 0; padding:0 24px; }
.article-kicker { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--forest); margin-bottom:20px; }
h1 { font-family:'Playfair Display',Georgia,serif; font-size:clamp(34px,5vw,52px); font-weight:900; line-height:1.1; letter-spacing:-.5px; color:var(--ink); margin-bottom:22px; }
.article-deck { font-size:20px; font-weight:300; font-style:italic; color:var(--mid); line-height:1.6; margin-bottom:24px; border-left:3px solid var(--tawny); padding-left:20px; }
.article-byline { font-family:'DM Mono',monospace; font-size:12px; color:var(--light); letter-spacing:1px; text-transform:uppercase; padding-bottom:32px; border-bottom:1px solid var(--rule); margin-bottom:48px; }

/* BODY */
.article-body { max-width:var(--column); margin:0 auto; padding:0 24px 100px; }
.drop-cap::first-letter { font-family:'Playfair Display',Georgia,serif; font-size:88px; font-weight:900; float:left; line-height:0.72; margin:8px 10px -4px 0; color:var(--tawny); }
p { margin-bottom:24px; }

/* HEADS */
h2 { font-family:'Playfair Display',Georgia,serif; font-size:26px; font-weight:700; color:var(--ink); margin:60px 0 18px; line-height:1.25; }
h2::before { content:''; display:block; width:40px; height:3px; background:var(--forest); margin-bottom:16px; }
h3 { font-family:'Playfair Display',Georgia,serif; font-size:20px; font-weight:700; font-style:italic; color:var(--ink); margin:40px 0 14px; }

/* PULLQUOTE */
.pullquote { margin:44px -20px; padding:28px 36px; border-top:2px solid var(--forest); border-bottom:2px solid var(--forest); font-family:'Playfair Display',Georgia,serif; font-size:23px; font-style:italic; line-height:1.5; color:var(--ink); text-align:center; }

/* STAT */
.stat-line { font-family:'Playfair Display',Georgia,serif; font-size:56px; font-weight:900; color:var(--tawny); line-height:1; display:block; margin:40px 0 4px; text-align:center; }
.stat-caption { text-align:center; font-family:'DM Mono',monospace; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--light); margin-bottom:40px; }

/* ASIDE */
.aside { background:var(--warm); border-left:3px solid var(--tawny); padding:18px 24px; margin:32px 0; font-size:16px; color:var(--mid); line-height:1.7; }
.aside strong { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--tawny); display:block; margin-bottom:8px; }
.aside p { margin-bottom:10px; font-size:16px; }
.aside p:last-child { margin-bottom:0; }

/* STATE BOXES */
.state-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:32px 0; }
.state-box { border:1px solid var(--rule); padding:20px; }
.state-box .sb-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; margin-bottom:10px; display:block; }
.state-box.current .sb-label { color:var(--tawny); }
.state-box.future  .sb-label { color:var(--grove); }
.state-box.current { border-top:3px solid var(--tawny); }
.state-box.future  { border-top:3px solid var(--grove); }
.state-box p { font-size:15px; margin-bottom:10px; line-height:1.65; }
.state-box p:last-child { margin-bottom:0; }

/* MESSAGE BLOCKS */
.message-block { border:1px solid var(--rule); margin:28px 0; overflow:hidden; }
.message-block .mb-head { background:var(--forest); color:var(--page); padding:10px 20px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; }
.mb-head.nations  { background:var(--forest); }
.mb-head.cities   { background:var(--grove); }
.mb-head.towns    { background:var(--tawny); }
.mb-head.taxpayer { background:var(--ink); }
.message-block .mb-body { padding:20px 24px; font-size:16px; line-height:1.75; }
.message-block .mb-body p { margin-bottom:14px; }
.message-block .mb-body p:last-child { margin-bottom:0; }

/* PHASE TABLE */
.phase-table { width:100%; border-collapse:collapse; margin:28px 0; font-size:15px; }
.phase-table th { background:var(--forest); color:var(--page); padding:10px 14px; text-align:left; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; font-weight:500; }
.phase-table td { padding:12px 14px; border-bottom:1px solid var(--rule); vertical-align:top; line-height:1.6; }
.phase-table tr:nth-child(even) td { background:var(--warm); }

/* SAVINGS TABLE */
.savings-table { width:100%; border-collapse:collapse; margin:28px 0; font-size:15px; }
.savings-table th { background:var(--forest); color:var(--page); padding:10px 14px; text-align:left; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; font-weight:500; }
.savings-table td { padding:12px 14px; border-bottom:1px solid var(--rule); vertical-align:top; line-height:1.6; }
.savings-table tr:nth-child(even) td { background:var(--warm); }
.savings-table .total td { background:var(--forest); color:var(--page); font-weight:600; }

/* NATIONS GRID */
.nations-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:32px 0; }
.nation-card { border:1px solid var(--rule); border-top:3px solid var(--forest); padding:16px; }
.nation-card.devolved { border-top-color:var(--grove); }
.nation-card.london   { border-top-color:var(--tawny); }
.nation-card .nc-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--light); margin-bottom:4px; }
.nation-card .nc-name { font-family:'Playfair Display',Georgia,serif; font-size:18px; font-weight:700; color:var(--ink); margin-bottom:6px; }
.nation-card .nc-modern { font-size:13px; color:var(--mid); line-height:1.5; }

/* FISCAL FLOW */
.fiscal-flow { margin:32px 0; border:1px solid var(--rule); overflow:hidden; }
.flow-header { background:var(--forest); color:var(--page); padding:10px 24px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; display:grid; grid-template-columns:180px 1fr 120px; gap:16px; }
.flow-level { padding:18px 24px; border-bottom:1px solid var(--rule); display:grid; grid-template-columns:180px 1fr 120px; gap:16px; align-items:center; }
.flow-level:last-child { border-bottom:none; }
.flow-level.l3 { background:#f0f7f2; }
.flow-level.l2 { background:#f5f7f0; }
.flow-level.l1 { background:#f9f7f0; }
.flow-level.uk { background:var(--warm); }
.flow-level .fl-name { font-family:'DM Mono',monospace; font-size:11px; font-weight:500; letter-spacing:1px; text-transform:uppercase; color:var(--mid); }
.flow-level .fl-desc { font-size:15px; color:var(--mid); line-height:1.55; }
.flow-level .fl-arrow { font-family:'DM Mono',monospace; font-size:12px; color:var(--forest); text-align:right; letter-spacing:1px; }

/* TEST BOX */
.test-box { border:2px solid var(--forest); padding:24px 28px; margin:32px 0; position:relative; }
.test-box .tb-label { position:absolute; top:-12px; left:20px; background:var(--page); padding:0 8px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--forest); font-weight:500; }
.test-box p { font-size:16px; margin-bottom:12px; }
.test-box p:last-child { margin-bottom:0; }
.test-box .test-q { font-family:'Playfair Display',serif; font-size:18px; font-style:italic; font-weight:700; color:var(--forest); margin-bottom:12px; }

/* FOOTER */
.article-footer { background:var(--forest); padding:32px 40px; display:flex; align-items:center; gap:20px; border-top:3px solid var(--tawny); flex-wrap:wrap; }
.footer-text { flex:1; }
.footer-logotype { display:flex; align-items:baseline; gap:6px; margin-bottom:6px; }
.ft-common { font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--cream); }
.ft-good { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:700; font-style:italic; color:var(--tawny-l); }
.footer-tag { font-family:'Cormorant Garamond',serif; font-size:14px; font-style:italic; color:rgba(255,255,255,.4); }

/* MISC */
.refs { font-size:14px; color:var(--light); line-height:1.7; margin-top:48px; padding-top:24px; border-top:1px solid var(--rule); font-family:'Source Serif 4',serif; font-style:italic; }
hr { border:none; border-top:1px solid var(--rule); margin:48px 0; }
em.key { font-style:normal; font-weight:600; color:var(--forest); }

@media(max-width:600px){
  .masthead,.article-footer { padding:16px 20px; }
  .series-banner { padding:10px 20px; font-size:10px; }
  .article-header,.article-body { padding:0 16px; }
  .pullquote { margin:32px 0; padding:20px; font-size:19px; }
  .state-grid,.nations-grid { grid-template-columns:1fr 1fr; }
  .stat-line { font-size:40px; }
  .flow-level,.flow-header { grid-template-columns:1fr; }
  .flow-level .fl-arrow { text-align:left; }
}