/* ============================================================
   Site tokens. Colour values are the analysis report's palette,
   analysis-report/charts-design-style/mistra_barometer.py; the
   comment on each names the constant it takes.
   ============================================================ */
:root{
  /* Brand core */
  --mistra-gold:#D6B983;        /* CAT_4 */
  --mistra-gold-deep:#A85A1E;   /* COPPER_700 */
  --mistra-tan:#D6B983;         /* CAT_4 */
  --mistra-orange:#EA9052;      /* COPPER_500 */
  --mistra-orange-deep:#A85A1E; /* COPPER_700 */
  --mistra-charcoal:#003845;    /* CAT_1 */
  --mistra-espresso:#3D3127;    /* BROWN_900 */

  /* Report figure accents (the sub-brand) */
  --teal:#36555A;
  --teal-50:#EAF0EE;
  --teal-100:#DDE6E3;
  --sage:#5E817A;
  --sage-light:#8FAAA3;
  --rust:#C25D33;
  --cream:#F1DBA9;
  --ochre:#D9A852;

  /* Neutral ramp (warm grey) */
  --grey-50:#FAFAF9;            /* GREY_050 */
  --grey-100:#F3F2EF;
  --grey-150:#ECEAE6;
  --grey-200:#D8D9DA;           /* GREY_200 */
  --grey-300:#B0B1B3;           /* GREY_300 */
  --grey-400:#ABA59B;
  --grey-500:#85878B;           /* GREY_500 */
  --grey-600:#595B61;           /* GREY_600 */
  --grey-700:#2C2E35;           /* INK_800 */
  --grey-800:#24262C;
  --grey-900:#1C1D22;

  /* Gold ramp */
  --gold-50:#F7EFDF;
  --gold-100:#EACD98;           /* FUNNEL_GOLD[0] */
  --gold-200:#D6B983;           /* CAT_4 */
  --gold-300:#D6B983;           /* CAT_4 */
  --gold-400:#826425;           /* FUNNEL_GOLD[1] */
  --gold-500:#6A511B;           /* CAT_4_DEEP */

  /* Orange / clay ramp */
  --clay-100:#FDC1AB;           /* FUNNEL_RUST[0] */
  --clay-500:#774430;           /* CAT_2 */

  /* Status */
  --success:#2F7D72;            /* CAT_3 */

  /* Semantic aliases */
  --surface-page:var(--grey-100);
  --surface-raised:#FFFFFF;
  --surface-sunken:var(--grey-150);
  --text-strong:#1E4149;        /* INK_DISPLAY, headings */
  --text-body:var(--grey-700);
  --text-muted:var(--grey-500);
  --text-on-dark:#F7F5F1;
  --text-on-dark-muted:#C9C4BB;
  --border-subtle:var(--grey-200);
  --border-default:var(--grey-200);
  --border-strong:var(--grey-300);
  --brand-primary:var(--mistra-tan);
  --brand-primary-hover:#C4A56C;
  --brand-on-primary:var(--grey-900);
  --brand-accent:var(--mistra-orange-deep);
  --brand-accent-hover:#774430;  /* CAT_2 */
  --brand-on-accent:#FFFFFF;
  --brand-accent-bar:linear-gradient(90deg,var(--teal) 0 25%,var(--sage) 25% 50%,var(--mistra-gold) 50% 75%,var(--rust) 75%);
  --focus-ring:0 0 0 3px rgba(217,169,78,.38);

  /* Radii, shadows, motion */
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:16px;
  --radius-pill:999px;
  --shadow-sm:0 2px 6px rgba(46,40,32,.09);
  --shadow-md:0 6px 18px rgba(46,40,32,.12);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:120ms;
  --dur-base:200ms;

  /* Type & layout */
  --font-sans:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --display:var(--font-sans);
  --heading:'Anton','Impact','Haettenschweiler','Arial Narrow Bold',sans-serif;
  --maxw:1140px;
}

/* ---- Base ---- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{ margin:0; font-family:var(--font-sans); background:var(--surface-raised); color:var(--text-body);
  font-size:1.0625rem; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
::selection{ background:var(--gold-100); color:var(--gold-500); }
img{ max-width:100%; display:block; }
h1,h2,h3,h4,h5,h6{ margin:0 0 1rem; color:var(--text-strong); line-height:1.08; letter-spacing:-.01em; text-wrap:balance; }
p{ margin:0 0 1rem; text-wrap:pretty; }
a{ color:var(--mistra-gold-deep); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:2px; }
.btn:hover,.hdr-nav a:hover,.brand:hover,.prev-item:hover,.foot-col a:hover,.foot-bottom a:hover{ text-decoration:none; }
:focus-visible{ outline:none; box-shadow:var(--focus-ring); border-radius:3px; }
.container{ max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2.5rem); }
.section{ padding-block:clamp(2.6rem,5vw,4.4rem); }
.band-dim{ background:var(--surface-page); }
.band-gold{ background:var(--gold-50); }
.band-dark{ background:var(--mistra-charcoal); color:var(--text-on-dark); }
.accent-bar{ height:5px; background:var(--brand-accent-bar); }

/* ---- Display type ---- */
.eyebrow2{ font-family:var(--font-sans); font-weight:700; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mistra-gold-deep); }
.lead{ font-size:1.18rem; line-height:1.62; color:var(--text-body); }
.mono{ font-family:var(--mono); }
a.inline{ color:var(--mistra-gold-deep); text-underline-offset:2px; }

/* ---- Badges (MISTRA Badge component, soft variant) ---- */
.badge{ display:inline-flex; align-items:center; gap:5px; font-family:var(--font-sans); font-weight:700; font-size:.6875rem;
  letter-spacing:.08em; text-transform:uppercase; padding:4px 10px; border-radius:var(--radius-pill); line-height:1.2; white-space:nowrap; }
.badge-terracotta{ background:var(--clay-100); color:var(--clay-500); }
.badge-gold{ background:var(--gold-100); color:var(--gold-500); }
.badge-neutral{ background:var(--grey-200); color:var(--grey-700); }

/* ---- Buttons (MISTRA tokens, as anchors for a links-only site) ---- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem; font-family:var(--font-sans);
  font-weight:700; font-size:.95rem; letter-spacing:.01em; line-height:1; padding:13px 24px; border-radius:var(--radius-sm);
  border:1.5px solid transparent; cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.btn:active{ transform:translateY(1px); }
.btn svg{ width:18px; height:18px; flex:none; }
.btn-lg{ padding:16px 28px; font-size:1.05rem; }
.btn-primary{ background:var(--brand-primary); color:var(--brand-on-primary); border-color:var(--brand-primary); }
.btn-primary:hover{ background:var(--brand-primary-hover); border-color:var(--brand-primary-hover); color:var(--brand-on-accent); }
.btn-accent{ background:var(--brand-accent); color:var(--brand-on-accent); border-color:var(--brand-accent); }
.btn-accent:hover{ background:var(--brand-accent-hover); border-color:var(--brand-accent-hover); }
.btn-secondary{ background:transparent; color:var(--text-strong); border-color:var(--grey-500); }  /* GREY_500, 3:1 or better as a control outline */
.btn-secondary:hover{ border-color:var(--mistra-gold-deep); color:var(--mistra-gold-deep); background:var(--gold-50); }

/* ---- Header ---- */
.site-header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:saturate(1.1) blur(8px);
  border-bottom:1px solid var(--border-default); }
.hdr{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:.85rem; }
.brand{ display:flex; flex-direction:column; gap:2px; text-decoration:none; line-height:1; }
.brand .bm{ font-family:var(--font-sans); font-weight:300; font-size:.7rem; letter-spacing:.42em; text-transform:uppercase; color:var(--text-strong); line-height:1; }
.brand .bn{ font-family:var(--display); font-weight:700; font-size:1.18rem; letter-spacing:-.02em; color:var(--text-strong); }
.hdr-nav{ display:flex; align-items:center; gap:1.6rem; margin-left:auto; }
.hdr-nav a{ font-family:var(--font-sans); font-size:.9rem; font-weight:500; color:var(--text-body); text-decoration:none; white-space:nowrap; }
.hdr-nav a:hover{ color:var(--mistra-gold-deep); }
.hdr-actions{ display:flex; align-items:center; gap:1rem; }
@media(max-width:860px){ .hdr-nav{ display:none; } }

/* ---- Hero ---- */
.hero{ padding-top:clamp(2.6rem,5vw,4rem); padding-bottom:clamp(2.4rem,5vw,3.6rem); }
.pub-lockup{ display:flex; align-items:center; gap:.85rem; margin-bottom:1.8rem; }
.pub-lockup img{ height:42px; width:auto; }
.hero h1{ font-family:var(--display); font-weight:700; font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.07; letter-spacing:-.025em;
  color:var(--text-strong); margin:0; text-wrap:balance; }
.hero h1 .g{ color:var(--mistra-gold-deep); }
.hero .lead{ margin-top:1.5rem; max-width:60ch; }
.hero-cta{ margin-top:2rem; display:flex; gap:.9rem; flex-wrap:wrap; }
.hero-fine{ margin-top:1.2rem; display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; font-family:var(--mono); font-size:.8rem; color:var(--text-muted); }
.hero-fine .dot{ width:4px; height:4px; border-radius:50%; background:var(--border-strong); }

/* ---- Seat bar figure ---- */
.seatfig{ margin:0; margin-top:clamp(2.4rem,5vw,3.4rem); }
.seatfig .frame{ padding:clamp(1.4rem,3vw,2.2rem); }
.seatfig svg{ width:100%; height:auto; display:block; }
.seatfig figcaption{ margin:0 0 1.1rem; font-size:.92rem; color:var(--grey-600); max-width:74ch; line-height:1.55; }
.seatfig figcaption b{ color:var(--text-body); font-weight:600; }
#methodology .seatfig{ margin-top:0; margin-bottom:1.4rem; }

/* ---- Stat strip ---- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border-default);
  border:1px solid var(--border-default); border-radius:var(--radius-md); overflow:hidden; margin-top:2.4rem; }
.stat{ background:var(--surface-raised); padding:1.5rem 1.4rem; }
.stat .sv{ font-family:var(--display); font-weight:700; font-size:2.2rem; line-height:1.05; color:var(--text-strong); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.stat .sv.ph{ color:var(--mistra-gold-deep); }
/* The noun sits on its own line so all four tiles align line for line. It is
   clamped rather than fixed: the grid stays four columns down to 760px, and a
   flat 1.12rem wraps "administrations" at that end of the range. */
.stat .sn{ margin-top:.3rem; font-family:var(--display); font-weight:600; font-size:clamp(.95rem,1.6vw,1.12rem); line-height:1.25; color:var(--text-body); }
.stat .sl{ margin-top:.5rem; font-size:.86rem; color:var(--text-muted); line-height:1.4; }
@media(max-width:760px){ .stats{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.stats-head{ display:block; margin-top:2.4rem; margin-bottom:.8rem; }
.stats-head + .stats{ margin-top:0; }

/* ---- Generic section head ---- */
.shead{ max-width:62ch; margin-bottom:2.4rem; }
.shead .eyebrow2{ margin-bottom:.7rem; display:block; }
.shead h2{ font-family:var(--display); font-weight:700; font-size:clamp(1.65rem,2.9vw,2.2rem); line-height:1.12; letter-spacing:-.02em; color:var(--text-strong); margin:0; }
.shead .rule{ width:60px; height:3px; border-radius:999px; background:var(--brand-accent-bar); margin-top:1.1rem; }
.shead p{ margin-top:1.1rem; margin-bottom:0; color:var(--text-body); font-size:1.05rem; line-height:1.6; }

/* ---- What it tracks ---- */
.grid2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
@media(max-width:760px){ .grid2{ grid-template-columns:1fr; } }
.track{ background:var(--surface-raised); border:1px solid var(--border-default); border-radius:var(--radius-lg); padding:1.7rem 1.7rem;
  display:flex; gap:1.1rem; }
.track .tn{ font-family:var(--mono); font-size:.86rem; font-weight:500; color:var(--mistra-gold-deep); flex:none; padding-top:.15rem; }
.track h3{ font-family:var(--display); font-weight:600; font-size:1.18rem; color:var(--text-strong); margin:0 0 .4rem; }
.track p{ font-size:.95rem; color:var(--text-body); line-height:1.55; margin:0 0 .7rem; }
.track .fields{ display:flex; flex-wrap:wrap; gap:.4rem; }
.chiptag{ font-family:var(--mono); font-size:.72rem; color:var(--text-muted); background:var(--surface-sunken);
  border:1px solid var(--border-default); border-radius:var(--radius-pill); padding:3px 9px; }

/* ---- Dark section (shaded depth) ---- */
.band-dark .eyebrow2{ color:var(--mistra-gold); }
.band-dark .shead h2{ color:#fff; }
.band-dark .shead p{ color:var(--text-on-dark-muted); }
.band-dark .track{ background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.12); }
.band-dark .track h3{ color:#fff; }
.band-dark .track p{ color:var(--text-on-dark-muted); }
.band-dark .track .tn{ color:var(--mistra-gold); }
.band-dark .chiptag{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); color:var(--text-on-dark-muted); }

/* ---- Downloads ---- */
.dl-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; margin-bottom:2rem; }
.dl-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.4rem; }
@media(max-width:900px){ .dl-grid{ grid-template-columns:minmax(0,1fr); } }
.dl-card{ background:var(--surface-raised); border:1px solid var(--border-default); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); padding:clamp(1.6rem,3vw,2.2rem); display:flex; flex-direction:column; }
.dl-card.feature{ border-color:var(--gold-300); box-shadow:0 10px 30px -14px rgba(176,101,38,.4); }
.dl-top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.dl-ic{ width:50px; height:50px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; flex:none; }
.dl-ic svg{ width:26px; height:26px; }
.dl-ic.gold{ background:var(--gold-100); color:var(--gold-500); }
.dl-ic.clay{ background:var(--clay-100); color:var(--clay-500); }
.dl-ic.ink{ background:var(--surface-sunken); color:var(--text-strong); }
.dl-card h3{ font-family:var(--display); font-weight:600; font-size:1.45rem; color:var(--text-strong); margin:0 0 .5rem; }
.dl-card .dl-desc{ font-size:.98rem; color:var(--text-body); line-height:1.55; margin:0 0 1.3rem; }
.dl-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:auto; }
.dl-meta{ margin-top:1.1rem; display:flex; flex-wrap:wrap; gap:.4rem 1.1rem; font-family:var(--mono); font-size:.76rem; color:var(--text-muted); }
.dl-side{ display:flex; flex-direction:column; gap:1.4rem; }
.dl-mini{ background:var(--surface-raised); border:1px solid var(--border-default); border-radius:var(--radius-lg); padding:1.5rem 1.6rem; flex:1; display:flex; flex-direction:column; }
.dl-mini h4{ font-family:var(--display); font-weight:600; font-size:1.12rem; color:var(--text-strong); margin:0 0 .4rem; display:flex; align-items:center; gap:.6rem; }
.dl-mini p{ font-size:.92rem; color:var(--text-body); line-height:1.5; margin:0 0 1rem; }
.dl-mini a.filelink{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-sans); font-weight:600; font-size:.92rem;
  color:var(--mistra-gold-deep); text-decoration:none; margin-top:auto; }
.dl-mini a.filelink:hover{ text-decoration:underline; }
.dl-mini a.filelink svg{ width:17px; height:17px; flex:none; }
.dl-files{ margin-top:auto; display:flex; flex-direction:column; gap:.55rem; }
.dl-files .filelink{ margin-top:0; }
.dl-scripts{ margin-top:1.3rem; padding-top:1.2rem; border-top:1px solid var(--border-default); }
.dl-scripts p{ font-size:.92rem; color:var(--text-body); line-height:1.5; margin:0 0 .6rem; }
.dl-scripts a.filelink{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-sans);
  font-weight:600; font-size:.92rem; color:var(--mistra-gold-deep); text-decoration:none; }
.dl-scripts a.filelink:hover{ text-decoration:underline; }
.dl-scripts a.filelink svg{ width:17px; height:17px; flex:none; }
.prev-editions{ margin-top:2.2rem; border-top:1px solid var(--gold-300); padding-top:1.6rem; }
.prev-editions h4{ font-family:var(--font-sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mistra-gold-deep); margin:0 0 1rem; }
.prev-list{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; }
@media(max-width:760px){ .prev-list{ grid-template-columns:minmax(0,1fr); } }
.prev-item{ display:flex; align-items:center; justify-content:space-between; gap:1rem; background:var(--surface-raised);
  border:1px solid var(--border-default); border-radius:var(--radius-md); padding:1rem 1.2rem; text-decoration:none;
  transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.prev-item:hover{ border-color:var(--mistra-gold-deep); box-shadow:var(--shadow-sm); }
.prev-item .pt{ display:block; font-family:var(--font-sans); font-weight:600; font-size:.96rem; color:var(--text-strong); line-height:1.3; }
.prev-item .py{ display:block; font-family:var(--mono); font-size:.78rem; color:var(--text-muted); margin-top:.25rem; }
.prev-item .pd{ margin-top:.1rem; }
.prev-item > svg{ width:18px; height:18px; color:var(--mistra-gold-deep); flex:none; }
.prev-ic{ width:38px; height:38px; border-radius:var(--radius-md); background:var(--gold-50); color:var(--mistra-gold-deep);
  display:flex; align-items:center; justify-content:center; flex:none; }
.prev-ic svg{ width:20px; height:20px; }
.prev-txt{ flex:1; min-width:0; }

/* ---- Methodology ---- */
.cred-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:0 clamp(2rem,5vw,4rem); }
.cred-grid li{ display:flex; gap:.85rem; align-items:flex-start; padding:1.1rem 0; font-size:1.04rem; color:var(--text-body); border-top:1px solid var(--border-default); }
.cred-grid li svg{ width:21px; height:21px; color:var(--success); flex:none; margin-top:2px; }
@media(max-width:860px){ .cred-grid{ grid-template-columns:1fr; } }

/* ---- Citation / media ---- */
.cite-grid{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:1.4rem; }
@media(max-width:860px){ .cite-grid{ grid-template-columns:minmax(0,1fr); } }
.cite-box{ background:var(--mistra-charcoal); color:var(--text-on-dark); border-radius:var(--radius-lg); padding:clamp(1.6rem,3vw,2.2rem); }
.cite-box h3{ font-family:var(--font-sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mistra-tan); margin:0 0 1rem; }
.cite-string{ font-family:var(--mono); font-size:.92rem; line-height:1.7; color:#EDE9E1; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-md); padding:1.1rem 1.2rem; overflow-wrap:anywhere; }
.cite-string .doi{ color:var(--mistra-gold); }
.cite-row{ margin-top:1.2rem; display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; font-size:.9rem; color:var(--text-on-dark-muted); }
.cite-row b{ color:#fff; font-weight:500; }
.media-card{ background:var(--surface-raised); border:1px solid var(--border-default); border-radius:var(--radius-lg); padding:clamp(1.6rem,3vw,2.2rem); }
.media-card h3{ font-family:var(--display); font-weight:600; font-size:1.3rem; color:var(--text-strong); margin:0 0 .9rem; }
.media-list{ list-style:none; margin:0; padding:0; }
.media-list li{ display:flex; align-items:center; gap:.8rem; padding:.75rem 0; border-bottom:1px solid var(--border-default); font-size:.96rem; }
.media-list li > span{ min-width:0; overflow-wrap:anywhere; }
.media-list li:last-child{ border-bottom:none; }
.media-list svg{ width:19px; height:19px; color:var(--mistra-gold-deep); flex:none; }
.media-list a{ color:var(--mistra-gold-deep); text-decoration:none; }
.media-list a:hover{ text-decoration:underline; }

/* ---- About ---- */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
@media(max-width:860px){ .about-grid{ grid-template-columns:1fr; } }
.about-photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); position:relative; }
.about-photo img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.about-photo .cred{ position:absolute; bottom:0; left:0; right:0; padding:.6rem .9rem; font-size:.72rem; color:rgba(255,255,255,.85);
  background:linear-gradient(0deg, rgba(44,40,35,.8), transparent); }
.about-body h2{ font-family:var(--display); font-weight:700; letter-spacing:-.02em; font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.12; margin:0 0 1.2rem; }
.about-body p{ margin:0 0 1rem; line-height:1.65; }
.about-body .partners{ margin-top:1.4rem; display:flex; flex-wrap:wrap; gap:.6rem; }

/* ---- Footer ---- */
.site-footer{ background:var(--mistra-charcoal); color:var(--text-on-dark-muted); padding-top:clamp(3rem,6vw,4.5rem); }
.foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:2.4rem; padding-bottom:2.6rem; }
@media(max-width:760px){ .foot-grid{ grid-template-columns:1fr; gap:1.8rem; } }
.foot-logo{ height:46px; width:auto; margin-bottom:1.1rem; }
.foot-logo-link{ display:block; width:fit-content; }
.foot-about{ font-size:.92rem; line-height:1.6; max-width:34ch; }
.foot-col h5{ font-family:var(--font-sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-on-dark); margin:0 0 1rem; }
.foot-col a{ display:block; color:var(--text-on-dark-muted); text-decoration:none; font-size:.93rem; padding:.32rem 0; }
.foot-col a:hover{ color:#fff; }
.foot-bottom{ border-top:1px solid rgba(255,255,255,.14); padding-block:1.5rem 2.2rem; display:flex; flex-direction:column;
  gap:.4rem; font-size:.84rem; color:rgba(247,245,241,.55); }
@media(min-width:761px){ .foot-bottom{ align-items:flex-end; text-align:right; } }
.foot-bottom a{ color:rgba(247,245,241,.7); text-decoration:none; }
.foot-bottom a:hover{ color:#fff; }

/* ---- Download card tags and notes ---- */
.dl-card .note{ font-size:.86rem; color:var(--text-muted); line-height:1.5; margin:0 0 1.1rem; }

/* ---- Content pages (authors, contributors, release notes, AI use) ---- */
.page{ padding-block:clamp(2.6rem,5vw,4rem) clamp(3rem,6vw,5rem); }
.page .shead{ margin-bottom:2rem; }
.page .shead h1, .page-band .shead h1{ font-family:var(--display); font-weight:700; font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1.1; letter-spacing:-.02em; color:var(--text-strong); margin:0; }
.prose{ max-width:68ch; }
.prose h2{ font-family:var(--display); font-weight:600; font-size:clamp(1.65rem,2.9vw,2.2rem); line-height:1.12; color:var(--text-strong); margin:2rem 0 .6rem; }
.prose p{ line-height:1.7; }
.prose b{ color:var(--text-strong); font-weight:600; }
.bio{ border-top:1px solid var(--border-default); padding-top:1.3rem; margin-top:1.3rem; }
.bio h2{ margin-top:0; }
.draft-notice{ background:var(--clay-100); color:var(--clay-500); border-radius:var(--radius-md); padding:1rem 1.2rem; font-size:.95rem; line-height:1.55; margin-bottom:1.6rem; }
.draft-notice b{ color:var(--clay-500); }
.illustrative{ color:var(--text-muted); font-style:italic; }
.illustrative .il{ font-style:normal; font-family:var(--mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; margin-right:.4rem; }
.hdr-nav a[aria-current="page"]{ color:var(--mistra-gold-deep); }
.tag-preview{ font-family:var(--font-sans); font-weight:700; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-500); background:var(--gold-100); border-radius:var(--radius-pill); padding:2px 8px; margin-left:.3rem; }
.dl-scripts .dl-files{ gap:.55rem; }

/* ---- People page ---- */
.person{ display:grid; grid-template-columns:264px 1fr; gap:1.4rem; align-items:start; border-top:1px solid var(--border-default); padding-top:1.4rem; margin-top:1.4rem; }
.person h3{ font-family:var(--display); font-weight:600; font-size:1.2rem; color:var(--text-strong); margin:0 0 .5rem; }
.person p{ line-height:1.7; margin:0; }
.portrait{ width:132px; aspect-ratio:4/5; border-radius:var(--radius-md); background:var(--surface-sunken); border:1px dashed var(--border-strong); display:flex; align-items:flex-end; justify-content:center; padding:.6rem; text-align:center; }
.portrait span{ font-size:.72rem; line-height:1.3; color:var(--text-muted); }
@media(max-width:560px){ .person{ grid-template-columns:1fr; } }
.credits{ margin-top:2.4rem; }
.credits h2{ margin-top:1.8rem; }
.credit-list{ list-style:none; margin:0; padding:0; }
.credit-list li{ display:flex; flex-wrap:wrap; gap:.2rem 1rem; padding:.55rem 0; border-bottom:1px solid var(--border-default); }
.credit-list li:last-child{ border-bottom:none; }
.credit-list .cn{ font-weight:600; color:var(--text-strong); min-width:15rem; }
.credit-list .cr{ color:var(--text-body); }
.credit-sub{ color:var(--text-muted); font-size:.95rem; margin:-.2rem 0 .4rem; }

/* ---- Headings: Anton, the report's display face, in capitals ----
   h1, h2 and the stat numerals only; every other face stays Poppins. Anton has
   one weight, so the weight is set to 400 to stop a synthesised bold. */
.hero h1, .shead h1, .shead h2, .page .shead h1, .page-band .shead h1, .about-body h2, .prose h2, .stat .sv{
  font-family:var(--heading); font-weight:400; text-transform:uppercase; letter-spacing:.01em; }
.hero h1{ line-height:1.02; }

/* ---- Methodology: what we record ---- */
.record-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem 1.4rem; }
@media(max-width:700px){ .record-grid{ grid-template-columns:1fr; } }
.record-item{ background:var(--surface-raised); border:1px solid var(--border-default); border-radius:var(--radius-md); padding:1.2rem 1.4rem; }
.record-item p{ margin:0; font-size:1.02rem; line-height:1.6; }
.record-item b{ display:block; margin-bottom:.3rem; color:var(--text-strong); font-weight:700; }
.record-item{ display:flex; flex-direction:column; }
.record-item .dl-actions{ margin-top:1rem; }

/* ---- Hero headline: two set lines at desktop, natural wrap below ---- */
.hero h1 .br-desk{ display:none; }
@media(min-width:1000px){ .hero h1 .br-desk{ display:inline; } }

/* ---- Header wordmark in Anton, capitals ---- */
.brand .bn{ font-family:var(--heading); font-weight:400; text-transform:uppercase; letter-spacing:.02em; font-size:1.3rem; }

/* ---- Licence line under the citation ---- */
.cite-licence{ margin:1rem 0 0; font-size:.9rem; line-height:1.55; color:var(--text-on-dark-muted); }
.cite-licence a{ color:var(--mistra-gold); text-decoration:underline; text-underline-offset:2px; }

/* ---- Report card: content from the top, spare height at the bottom ---- */
#download-report .dl-actions{ margin-top:0; }

/* ---- Narrow-screen menu (the header links hide at 860px) ---- */
.nav-toggle{ display:none; align-items:center; gap:.45rem; font-family:var(--font-sans); font-weight:600; font-size:.9rem;
  color:var(--text-strong); background:transparent; border:1.5px solid var(--grey-500); border-radius:var(--radius-sm);
  padding:10px 14px; line-height:1; cursor:pointer; }
.nav-toggle svg{ width:18px; height:18px; flex:none; }
.nav-toggle[aria-expanded="true"]{ background:var(--gold-50); border-color:var(--mistra-gold-deep); color:var(--mistra-gold-deep); }
.mobile-nav{ border-top:1px solid var(--border-default); background:var(--surface-raised); }
.mobile-nav .container{ display:flex; flex-direction:column; padding-block:.4rem .8rem; }
.mobile-nav a{ display:block; padding:.8rem 0; font-weight:500; color:var(--text-body); border-bottom:1px solid var(--border-default); }
.mobile-nav a:last-child{ border-bottom:none; }
.mobile-nav a[aria-current="page"]{ color:var(--mistra-gold-deep); }
@media(max-width:860px){ .nav-toggle{ display:inline-flex; } }
@media(min-width:861px){ .mobile-nav{ display:none !important; } }
@media(max-width:520px){
  .hdr{ gap:.6rem; padding-block:.45rem; }
  .hdr-actions{ gap:.5rem; }
  .brand{ gap:3px; }
  .brand .bm{ font-size:.58rem; letter-spacing:.36em; }
  .brand .bn{ font-size:1rem; line-height:.95; }
  .hdr-actions .btn{ padding:10px 12px; font-size:.84rem; gap:.4rem; }
  .nav-toggle{ padding:10px 11px; }
}
@media(max-width:520px){
  .hero-cta .btn{ white-space:normal; text-align:left; max-width:100%; }
  .hero-cta .btn-lg{ padding:14px 20px; }
}


/* ============================================================
   2026 homepage: MISTRA brown and gold frame, report teal accents
   ============================================================ */
.btn-primary:hover{ color:var(--brand-on-primary); }

/* Header on espresso */
.site-header{ background:rgba(61,49,39,.97); border-bottom:1px solid rgba(255,255,255,.12); }
.brand .bm{ color:var(--mistra-gold); }
.brand .bn{ color:#fff; }
.hdr-nav a{ color:#D9D1C4; }
.hdr-nav a:hover,.hdr-nav a[aria-current="page"]{ color:var(--mistra-gold); }
.nav-toggle{ color:#fff; border-color:rgba(255,255,255,.4); }
.nav-toggle[aria-expanded="true"]{ background:rgba(255,255,255,.08); border-color:var(--mistra-gold); color:var(--mistra-gold); }
.mobile-nav{ background:var(--mistra-espresso); border-top-color:rgba(255,255,255,.12); }
.mobile-nav a{ color:#E6DED1; border-bottom-color:rgba(255,255,255,.12); }
.mobile-nav a[aria-current="page"]{ color:var(--mistra-gold); }

/* Hero band */
.hero-band{ background:var(--mistra-espresso); color:var(--text-on-dark); padding-bottom:clamp(8rem,14vw,11rem); }
.hero-band .hero{ padding-top:clamp(2.6rem,5vw,4rem); padding-bottom:0; }
.hero-band .hero h1{ color:#fff; }
.hero-band .hero h1 .g{ color:var(--mistra-gold); }
.hero-band .lead{ color:#E6DED1; }

/* Anchor jumps land below the sticky header, the cards with a little room above them */
html{ scroll-padding-top:4.25rem; }
#download{ scroll-margin-top:1.5rem; }

/* Deliverable cards, overlapping the hero */
.deliverables{ padding-bottom:clamp(2.6rem,5vw,4.4rem); }
.dv-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin-top:clamp(-9rem,-11vw,-6rem); position:relative; }
@media(max-width:900px){ .dv-grid{ grid-template-columns:minmax(0,1fr); } }
.dv-card{ --dv:var(--teal); --dv-soft:var(--teal-50); --dv-stripe:var(--teal-100); --dv-ink:var(--teal); --dv-on:#fff;
  background:#fff; border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column;
  border-top:6px solid var(--dv); box-shadow:0 14px 40px -12px rgba(40,30,20,.4); scroll-margin-top:6rem; }
.dv-report{ --dv:var(--mistra-orange-deep); --dv-soft:#F6E6DA; --dv-stripe:#EFD9C8; --dv-ink:var(--mistra-orange-deep); --dv-on:#fff; }
.dv-data{ --dv:var(--mistra-gold); --dv-soft:#F7EFDF; --dv-stripe:#EFE3C9; --dv-ink:var(--gold-400); --dv-on:var(--grey-700); }
.dv-visual{ aspect-ratio:16/8; background:repeating-linear-gradient(135deg,var(--dv-soft) 0 12px,var(--dv-stripe) 12px 24px);
  display:flex; align-items:center; justify-content:center; }
.dv-visual span{ font-family:var(--mono); font-size:.8rem; color:var(--dv-ink); }
.dv-visual img{ width:100%; height:100%; object-fit:cover; }
.dv-body{ padding:1.5rem 1.6rem 1.6rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.dv-top{ display:flex; align-items:center; gap:.6rem; }
.dv-top .tag-preview{ margin-left:0; color:var(--teal); background:var(--teal-100); }
.dv-eyebrow{ font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dv-ink); }
.dv-card h3{ font-weight:600; font-size:1.35rem; line-height:1.2; color:var(--mistra-espresso); margin:0; }
.dv-card p{ font-size:.96rem; line-height:1.55; margin:0; }
.dv-meta{ display:flex; flex-wrap:wrap; gap:.3rem 1rem; font-family:var(--mono); font-size:.76rem; color:var(--text-muted); }
.dv-actions{ margin-top:auto; padding-top:.6rem; }
.dv-btn{ background:var(--dv); color:var(--dv-on); border-color:var(--dv); white-space:normal; text-align:left; max-width:100%; line-height:1.3; }
@media(min-width:901px) and (max-width:1080px){ .dv-body{ padding-inline:1.2rem; } .dv-btn{ padding-inline:16px; } }
.dv-btn:hover{ filter:brightness(.92); }
.dv-links{ display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; margin-top:.2rem; }
.dv-links .filelink, .dl-links .filelink{ display:inline-flex; align-items:center; gap:.45rem; font-weight:600; font-size:.9rem; color:var(--mistra-orange-deep); }
.dv-links .filelink svg, .dl-links .filelink svg{ width:16px; height:16px; flex:none; }

/* Stats: open, with coloured rules */
.deliverables .stats-head{ margin-top:clamp(2.6rem,5vw,3.6rem); color:var(--teal); }
.deliverables .stats{ background:none; border:none; border-radius:0; gap:1.5rem; }
.deliverables .stat{ background:none; padding:0 0 0 1.1rem; border-left:3px solid var(--mistra-espresso); }
.deliverables .stat:nth-child(2){ border-left-color:var(--teal); }
.deliverables .stat:nth-child(3){ border-left-color:var(--mistra-orange-deep); }
.deliverables .stat:nth-child(4){ border-left-color:var(--mistra-gold); }
.deliverables .stat .sv{ color:var(--teal); }

/* Other surfaces */
.cite-box{ background:var(--teal); }
.site-footer{ background:var(--mistra-espresso); }


/* Cards on the light background, one button style, rows shared across the three cards (subgrid) so the buttons align */
.hero-band{ padding-bottom:clamp(2.6rem,5vw,4rem); }
.deliverables{ padding-top:clamp(2.4rem,4.5vw,3.6rem); }
.dv-grid{ margin-top:0; grid-template-rows:auto; }
.dv-card{ border-top:none; border:1px solid var(--border-default); box-shadow:0 1px 2px rgba(40,30,20,.05),0 10px 24px -14px rgba(40,30,20,.22);
  display:grid; grid-template-rows:subgrid; grid-row:span 4; row-gap:0; padding-bottom:1.6rem; }
.dv-body{ display:contents; }
.dv-text{ display:flex; flex-direction:column; gap:.6rem; padding:1.5rem 1.6rem .4rem; }
.dv-actions{ margin-top:0; padding:.6rem 1.6rem 0; }
.dv-links{ padding:.7rem 1.6rem 0; margin-top:0; align-content:start; }
.dv-eyebrow{ color:var(--text-muted); }
.dv-head{ margin-top:0; }
@media(min-width:901px) and (max-width:1080px){ .dv-text{ padding-inline:1.2rem; } .dv-actions,.dv-links{ padding-inline:1.2rem; } }


/* Section eyebrows on the index share the teal of the deliverables headings */
.prev-editions h4, #media .eyebrow2{ color:var(--teal); }

/* Hero lead and hung council caption across the full column at desktop */
@media(min-width:1000px){
  .hero .lead{ max-width:none; font-size:1.25rem; }
  .seatfig figcaption{ max-width:none; font-size:1.15rem; }
}


/* The deliverables heading sits in the dark band, just above its lower edge */
.hero-band{ padding-bottom:clamp(1rem,1.8vw,1.4rem); }
.hero-band .dv-head{ margin-top:clamp(2.6rem,5vw,4rem); margin-bottom:0; color:var(--mistra-gold); }
.deliverables{ padding-top:clamp(1.2rem,2.5vw,1.8rem); }


/* Each deliverable card is one link, lifted off the page: headline, image, text, action line */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero-band .dv-head{ font-family:var(--heading); font-weight:400; text-transform:uppercase; letter-spacing:.01em;
  font-size:clamp(1.65rem,2.9vw,2.2rem); line-height:1.12; color:var(--mistra-gold); }
.dv-map{ --dv-line:var(--teal); --dv-cta:var(--teal); }
.dv-report{ --dv-line:var(--mistra-orange-deep); --dv-cta:var(--mistra-orange-deep); }
.dv-data{ --dv-line:var(--mistra-gold); --dv-cta:var(--gold-400); }
.dv-card{ grid-row:span 4; color:var(--text-body); text-decoration:none; cursor:pointer;
  border:1.5px solid var(--dv-line); border-radius:var(--radius-lg);
  box-shadow:0 2px 4px rgba(40,30,20,.08),0 12px 28px -12px rgba(40,30,20,.34);
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.dv-card:hover, .dv-card:focus-visible{ text-decoration:none; transform:translateY(-4px);
  box-shadow:0 4px 8px rgba(40,30,20,.10),0 22px 40px -14px rgba(40,30,20,.45); }
.dv-card:focus-visible{ outline:3px solid var(--mistra-espresso); outline-offset:3px; border-radius:var(--radius-lg); }
@media (prefers-reduced-motion: reduce){ .dv-card, .dv-card:hover, .dv-card:focus-visible{ transform:none; transition:none; } }
.dv-card .dv-top{ padding:1.4rem 1.6rem 1.1rem; flex-wrap:nowrap; align-items:flex-start; gap:.7rem; }
.dv-card .dv-top h3{ flex:0 1 auto; min-width:0; }
.dv-card .dv-top .tag-preview{ flex:none; }
.dv-card .dv-top .tag-preview{ margin-top:.3rem; }
.dv-card .dv-text{ display:block; padding:1.1rem 1.6rem 0; margin:0; }
.dv-cta{ padding:1rem 1.6rem 0; font-weight:700; font-size:1rem; color:var(--dv-cta); }
.dv-card:hover .dv-cta, .dv-card:focus-visible .dv-cta{ text-decoration:underline; text-underline-offset:3px; }
@media(min-width:901px) and (max-width:1080px){ .dv-card .dv-top, .dv-card .dv-text, .dv-cta{ padding-inline:1.2rem; } }

/* Downloads page */
.dlp .shead{ max-width:none; }
.dl-sec{ max-width:56rem; margin-top:2.6rem; scroll-margin-top:1rem; }
.dl-sec h2{ font-family:var(--display); font-weight:600; font-size:1.3rem; color:var(--text-strong); margin:0 0 .7rem; }
.dl-sec > p{ max-width:68ch; line-height:1.7; }
.dl-sec .prev-list{ margin-top:1rem; }
.dl-sec .prev-item .py{ font-family:var(--mono); }
.prev-item:focus-visible{ box-shadow:none; outline:3px solid var(--mistra-espresso); outline-offset:2px; border-radius:var(--radius-md); }
.dl-lead{ margin-top:1.6rem; }
/* Downloads: the scripts and release notes links, in the front page's earlier icon-and-label style (.dv-links .filelink) */
.dl-links{ margin-top:1.6rem; }
.dlp code{ font-family:var(--mono); font-size:.88em; color:var(--text-strong); overflow-wrap:anywhere; }
.csv-list{ list-style:none; padding:0; margin:0; border-top:1px solid var(--border-default); max-width:68ch; }
.csv-list li{ padding:.65rem 0; border-bottom:1px solid var(--border-default); line-height:1.55; }
.csv-list li code{ display:block; font-weight:500; margin-bottom:.15rem; }


/* G1: MISTRA logo in the header */
.brand{ display:block; }
.brand img{ height:40px; width:auto; }
@media(max-width:520px){ .brand img{ height:34px; } }

/* G1: hero headline, MISTRA in light Poppins over COALITIONS BAROMETER in Anton, as on the report cover */
.hero h1 .h-mistra{ display:block; font-family:var(--font-sans); font-weight:300; font-size:.4em; letter-spacing:.42em;
  line-height:1; margin-bottom:.35em; color:#fff; }
.hero-band .hero h1 .h-cb{ display:block; color:var(--mistra-gold); }

/* G1: the band ends after the lead; the heading sits on the light background above the cards */
.hero-band{ padding-bottom:clamp(1.6rem,3vw,2.4rem); }
.deliverables{ padding-top:clamp(2rem,3.6vw,2.8rem); }
.deliverables .dv-head{ font-family:var(--heading); font-weight:400; text-transform:uppercase; letter-spacing:.01em;
  font-size:clamp(1.65rem,2.9vw,2.2rem); line-height:1.12; color:var(--text-strong); margin:0 0 1.4rem; }

/* G1: card numbers, and the Preview tag beside the map's action line */
.dv-num{ font-family:var(--heading); font-weight:400; font-size:3rem; line-height:.85; color:var(--dv-cta); flex:none; }
.dv-card .dv-top{ align-items:flex-start; gap:.9rem; }
.dv-card .dv-top h3{ padding-top:.1rem; }
.dv-foot{ display:flex; align-items:center; flex-wrap:wrap; gap:.4rem .8rem; padding:1rem 1.6rem 0; }
.dv-foot .dv-cta{ padding:0; }
.dv-foot .tag-preview{ margin:0; }
@media(min-width:901px) and (max-width:1080px){ .dv-foot{ padding-inline:1.2rem; } }

/* G2: the section heading in Poppins semibold */
.deliverables .dv-head{ font-family:var(--font-sans); font-weight:600; text-transform:none; letter-spacing:-.015em;
  font-size:clamp(1.45rem,2.5vw,1.9rem); line-height:1.2; color:var(--text-strong); }

/* G2: white cards; the accent shows only on the number, the border and the action line. */
.dv-card{ background:#fff; }
/* G3: one fixed size on every card, spanning a two-line headline from its cap top to its second baseline;
   the line box is the figure's height and the margin sets its top level with the first line's cap top */
.dv-num{ font-size:2.975rem; line-height:2.5575rem; margin-top:.356rem; color:var(--dv-cta); }
.dv-card .dv-top h3{ padding-top:0; }
.dv-foot .tag-preview{ color:var(--grey-600); background:var(--grey-150); }

/* G3, G5: masthead across 80 per cent of the content width on one line, sized to the hero container (Anton, 8.94em wide) */
.hero-band{ overflow-x:clip; }
.hero-band .hero{ container-type:inline-size; }
.hero-band .hero h1{ font-size:min(calc((100vw - 5rem) / 11.25),5.8rem); font-size:8.95cqi; white-space:nowrap; margin-bottom:0; }
/* G4, G5: subheading in Poppins semibold, sentence case; one line as wide as the masthead (29.9em at 2.67cqi), wrapping below 1.4rem */
.hero-sub{ font-family:var(--font-sans); font-weight:600; letter-spacing:-.01em; line-height:1.25;
  font-size:clamp(1.4rem,2.3vw,1.8rem); font-size:max(1.4rem,2.67cqi); color:#fff; margin:clamp(.9rem,1.6vw,1.3rem) 0 0; text-wrap:balance; }
.hero-sub .g{ color:var(--mistra-gold); }

/* G4: MISTRA back to its G2 size, .4 of clamp(2.5rem,5.5vw,4rem): 25.6px at 1400, 22px at 1000, 16px at 390 */
.hero-band .hero h1 .h-mistra{ font-size:clamp(1rem,2.2vw,1.6rem); }

/* G6: the Coalitions Barometer series, two quiet link cards: cover, title in Anton, authors and date */
.series-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
@media(max-width:760px){ .series-grid{ grid-template-columns:minmax(0,1fr); gap:1rem; } }
.series-item{ position:relative; display:flex; align-items:flex-start; gap:clamp(1rem,2vw,1.5rem); padding:clamp(1rem,1.8vw,1.4rem);
  padding-right:clamp(2.4rem,4vw,3rem); background:#fff; color:var(--text-body); text-decoration:none;
  border:1px solid var(--border-default); border-radius:var(--radius-lg); box-shadow:0 1px 2px rgba(40,30,20,.05);
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.series-item:hover, .series-item:focus-visible{ text-decoration:none; transform:translateY(-2px); border-color:var(--grey-300);
  box-shadow:0 2px 4px rgba(40,30,20,.06),0 10px 22px -12px rgba(40,30,20,.3); }
.series-item:focus-visible{ outline:3px solid var(--mistra-espresso); outline-offset:3px; }
@media (prefers-reduced-motion: reduce){ .series-item, .series-item:hover, .series-item:focus-visible{ transform:none; transition:none; } }
.series-item img{ flex:none; width:clamp(96px,28%,150px); height:auto; border-radius:2px; box-shadow:0 1px 3px rgba(0,0,0,.22); }
.series-txt{ min-width:0; }
.series-txt .badge{ margin-bottom:.7rem; }
.series-t{ display:block; font-family:var(--heading); font-weight:400; text-transform:uppercase; letter-spacing:.01em;
  font-size:clamp(1.25rem,2vw,1.6rem); line-height:1.1; color:var(--text-strong); text-wrap:balance; }
.series-by{ display:block; margin-top:.75rem; font-size:.95rem; line-height:1.45; color:var(--text-body); }
.series-d{ display:block; margin-top:.15rem; font-size:.9rem; color:var(--grey-600); }
.series-ext{ position:absolute; top:clamp(1rem,1.8vw,1.4rem); right:clamp(.9rem,1.6vw,1.2rem); width:18px; height:18px; color:var(--grey-600); }
.series-item:hover .series-t, .series-item:focus-visible .series-t{ text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }

/* G7, G8: the citation box across the content width, dataset and report citations side by side, each under a small label,
   stacking below 861px; the licence line runs beneath both */
.cite-pair{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem 1.6rem; }
@media(max-width:860px){ .cite-pair{ grid-template-columns:minmax(0,1fr); } }
.cite-item{ display:flex; flex-direction:column; min-width:0; }
.cite-item .cite-string{ flex:1; }
.cite-label{ margin:0 0 .5rem; font-size:.88rem; font-weight:600; color:#fff; }
.cite-box .cite-licence{ margin-top:1.3rem; }

/* G8: contact details as one row of four beneath the citation box, two columns below 1080px, one below 560px */
.contact-row{ margin-top:clamp(1.8rem,3vw,2.4rem); }
.contact-head, .source-list h3{ font-family:var(--font-sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--teal); margin:0 0 .4rem; }
.contact-list{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:1.6rem; }
@media(max-width:1079px){ .contact-list{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:559px){ .contact-list{ grid-template-columns:minmax(0,1fr); } }
.contact-list li, .contact-list li:last-child{ align-items:flex-start; border-bottom:none; border-top:1px solid var(--border-default); padding:.9rem 0; }
.contact-list svg{ margin-top:.2rem; }

/* Secondary pages: the front page's dark band as the page header (padding as .hero-band .hero, title white as on the front page) */
.page-band{ padding-top:clamp(2.6rem,5vw,4rem); }
.page-band .shead{ margin-bottom:0; }
.page-band .shead h1{ color:#fff; }

/* Downloads: the six CSV files as a table, ruled and spaced like the list it replaces */
.csv-table{ width:100%; border-collapse:collapse; font-size:.96rem; line-height:1.55; }
.csv-table th, .csv-table td{ text-align:left; vertical-align:top; padding:.65rem 1rem .65rem 0; border-bottom:1px solid var(--border-default); }
.csv-table th{ font-weight:600; color:var(--text-strong); }
.csv-table .n{ text-align:right; padding-right:0; font-variant-numeric:tabular-nums; }
.csv-table code{ overflow-wrap:normal; }

/* Sources: the groupings as subheadings under the source list, the entries in smaller type */
.source-list h3{ margin-top:1.8rem; }
.source-list p{ font-size:.92rem; line-height:1.6; }

/* Contributors: each photo at twice the placeholder portrait's width, with its corner radius */
.person-photo{ width:264px; height:auto; border-radius:var(--radius-md); }

/* Downloads: the scripts' note under the report cards, set like the hung council caption */
.dl-note{ margin:1.4rem 0 0; font-size:.92rem; line-height:1.55; color:var(--grey-600); }
/* Downloads: the licence panel without citations starts at its padding */
.cite-box > .cite-licence:first-child{ margin-top:0; }

/* Secondary pages: all content to the full width of the content column */
.page .prose{ max-width:none; }

/* Hero lead below the 760px breakpoint: 1rem (16px) so it reads as body text under the tagline, not as a second heading. Desktop unchanged. */
@media(max-width:760px){ .hero .lead{ font-size:1rem; line-height:1.6; } }

/* In the news (in-the-news.html): rows separated by hairline rules, each a two-column grid.
   These rules apply to this page's classes only; no existing rule is edited. */
.news-noscript, .news-empty{ font-size:1.02rem; line-height:1.6; color:var(--text-muted); margin:0; }
.news-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--border-default); }
.news-row{ position:relative; display:grid; grid-template-columns:11rem minmax(0,1fr); column-gap:2.5rem; align-items:start; padding:1.15rem 0; border-bottom:1px solid var(--border-default); }
.news-row:hover, .news-row:focus-within{ background:var(--surface-sunken); }
.news-left > span{ display:block; }
.news-outlet{ font-weight:700; font-size:1rem; line-height:1.35; color:var(--text-body); overflow-wrap:anywhere; }
.news-date{ margin-top:.2rem; font-size:.95rem; line-height:1.45; color:var(--text-muted); }
.news-type{ margin-top:.35rem; font-family:var(--font-sans); font-weight:700; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--mistra-gold-deep); }
.news-left > .news-sep{ display:none; color:var(--text-muted); }
.news-title{ margin:0; font-size:1.08rem; font-weight:600; line-height:1.35; }
.news-link{ color:var(--text-strong); text-decoration:none; -webkit-user-drag:none; }
/* The title is the row's only link; its ::after stretches the clickable area over the whole row. */
.news-link::after{ content:""; position:absolute; inset:0; }
.news-row:hover .news-link, .news-row:focus-within .news-link{ text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.news-ext{ width:16px; height:16px; vertical-align:-2px; color:var(--grey-600); }
.news-line{ margin:.35rem 0 0; font-weight:400; font-size:.95rem; line-height:1.55; color:var(--text-muted); }
/* The title and byline are <p> inside .prose, whose .prose p line-height (0,1,1) outranks a single class;
   these list-scoped selectors (0,2,0) restore the line-heights declared above. */
.news-list .news-title{ line-height:1.35; }
.news-list .news-line{ line-height:1.55; }
@media(max-width:640px){
  .news-row{ grid-template-columns:minmax(0,1fr); row-gap:.4rem; padding:.86rem 0; }
  .news-left > span, .news-left > .news-sep{ display:inline; margin-top:0; }
  .news-outlet{ overflow-wrap:normal; font-size:.95rem; }
  .news-date, .news-line{ font-size:.95rem; }
  .news-type{ white-space:nowrap; }
  .news-title{ font-size:1rem; }
}
