/* Transition Economics Institute: editorial site styles */

:root {
  --tei-navy: #121E3C;
  --tei-teal: #0C726C;
  --tei-rust: #C03C0C;
  --tei-mint: #6CCCC0;
  --tei-paper: #F5F3EE;
  --tei-muted: #5F6576;
  --tei-border: #D2D2D8;
  --tei-white: #FFFFFF;
  --tei-flag-red: #AE1E30;
  --tei-flag-navy: #3C366C;

  --tei-font-display: Georgia, "Times New Roman", "Source Serif 4", serif;
  --tei-font-body: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;

  --shell-max: 1120px;
  --measure-max: 40rem;
  --gutter: 1.25rem;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (min-width: 48rem) {
  :root { --gutter: 2rem; }
}

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

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: var(--tei-font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--tei-navy);
  background: var(--tei-paper);
  -webkit-font-smoothing: antialiased;
}

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

a {
  color: var(--tei-teal);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  transition: none;
}

a:hover { color: var(--tei-navy); }

a:focus-visible {
  outline: 2px solid var(--tei-teal);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: var(--space-4);
  top: -100px;
  z-index: 100;
  padding: var(--space-2) var(--space-4);
  background: var(--tei-white);
  color: var(--tei-navy);
  border: 1px solid var(--tei-border);
}

.skip-link:focus,
.skip-link:focus-visible {
  top: var(--space-4);
  outline: 2px solid var(--tei-teal);
  outline-offset: 3px;
}

.label-caps {
  font-family: var(--tei-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tei-muted);
}

/* Header */

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--tei-white);
  border-bottom: 1px solid var(--tei-border);
}

.site-header__inner {
  max-width: var(--shell-max);
  margin: 0 auto;
  padding: var(--space-3) var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
}

@media (min-width: 48rem) {
  .site-header__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    min-height: 3.75rem;
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
  }
}

.site-brand {
  display: flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  min-width: 0;
}

.site-brand:hover { text-decoration: none; color: inherit; }

.site-brand__lockup {
  height: 40px;
  width: auto;
  max-width: min(220px, 70vw);
  object-fit: contain;
}

@media (min-width: 48rem) {
  .site-brand__lockup {
    height: 40px;
    max-width: 220px;
  }
}

.site-nav { width: 100%; }

@media (min-width: 48rem) {
  .site-nav { width: auto; }
}

.site-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
}

@media (min-width: 48rem) {
  .site-nav ul {
    gap: 0 var(--space-5);
    justify-content: flex-end;
  }
}

.site-nav a {
  color: var(--tei-navy);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: var(--space-2) 0;
  display: inline-block;
  position: relative;
  transition: none;
}

.site-nav a::after {
  content: none;
}

.site-nav a:hover {
  color: var(--tei-teal);
  text-decoration: none;
}



.site-nav a[aria-current="page"] {
  color: var(--tei-teal);
  box-shadow: inset 0 -1px 0 var(--tei-teal);
}

@media (max-width: 29.99rem) {
  .site-nav ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2) var(--space-3);
  }
  .site-nav li:last-child { grid-column: 1 / -1; }
  .site-nav a {
    display: block;
    text-align: center;
    padding: var(--space-2);
    border: 1px solid var(--tei-border);
    border-radius: 2px;
    background: var(--tei-white);
  }
  .site-nav a::after { display: none; }
  .site-nav a[aria-current="page"] {
    border-color: var(--tei-teal);
    color: var(--tei-teal);
  }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  .site-nav a { font-size: 0.8125rem; }
  .site-nav ul { gap: 0 var(--space-4); }
}

/* Main */

.site-main {
  flex: 1;
  width: 100%;
}

#main:focus { outline: none; }

.section {
  max-width: var(--shell-max);
  margin: 0 auto;
  padding: var(--space-7) var(--gutter);
}

@media (max-width: 39.99rem) {
  .section {
    padding: var(--space-6) var(--gutter);
  }
}

.section--tight-top { padding-top: 0; }

.section--narrow {
  max-width: calc(var(--measure-max) + 2 * var(--gutter));
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.section--narrow > .panel,
.section--narrow > p,
.section--narrow > h1,
.section--narrow > .office-grid {
  max-width: none;
}

.section h1 {
  margin: 0 0 var(--space-4);
  font-family: var(--tei-font-display);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--tei-navy);
  max-width: var(--measure-max);
  letter-spacing: -0.01em;
}

.section h2 {
  margin: 0 0 var(--space-3);
  font-family: var(--tei-font-display);
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--tei-navy);
}

.section h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--tei-font-body);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
}

.section p {
  margin: 0 0 var(--space-4);
  max-width: var(--measure-max);
  font-size: 1.0625rem;
}

.section p:last-child { margin-bottom: 0; }

.lede {
  font-family: var(--tei-font-display);
  font-size: clamp(1.125rem, 1.5vw, 1.3125rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--tei-navy);
  max-width: var(--measure-max);
}

.rule {
  width: 3rem;
  height: 2px;
  background: var(--tei-rust);
  border: 0;
  margin: 0 0 var(--space-5);
}

.panel {
  background: var(--tei-white);
  border: 1px solid var(--tei-border);
  border-radius: 2px;
  padding: var(--space-5);
  max-width: var(--measure-max);
}

.panel + .panel { margin-top: var(--space-4); }

.stack-gap { margin-top: var(--space-5); }

.meta-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.meta-list li { margin-bottom: var(--space-2); }
.meta-list li:last-child { margin-bottom: 0; }

.meta-list .label {
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--tei-muted);
}

.plain-list {
  margin: 0;
  padding-left: 1.2rem;
}

.plain-list li { margin-bottom: var(--space-2); }

/* Home hero / banner */

.banner {
  position: relative;
  background: var(--tei-paper);
  color: var(--tei-navy);
  overflow: hidden;
}

.banner__frame {
  position: relative;
  overflow: hidden;
  max-height: 10rem;
  border: 1px solid var(--tei-border);
  background: var(--tei-white);
}

@media (min-width: 40rem) {
  .banner__frame { max-height: 12rem; }
}

@media (min-width: 64rem) {
  .banner__frame { max-height: 14rem; }
}

.banner__image {
  width: 100%;
  height: 100%;
  max-height: inherit;
  object-fit: cover;
  object-position: left center;
  display: block;
  opacity: 1;
  transform: none;
  animation: none;
}

.banner__caption {
  max-width: var(--shell-max);
  margin: 0 auto;
  padding: var(--space-5) var(--gutter) var(--space-6);
}

.banner__caption--quiet {
  background: var(--tei-paper);
  color: var(--tei-navy);
}

.banner__eyebrow {
  margin: 0 0 var(--space-3);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tei-muted);
}

.banner__tagline {
  margin: 0 0 var(--space-3);
  font-family: var(--tei-font-display);
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--tei-navy);
  max-width: 28rem;
  letter-spacing: -0.01em;
}

.banner__meta {
  margin: 0 0 var(--space-5);
  font-size: 0.9375rem;
  color: var(--tei-muted);
  max-width: var(--measure-max);
}

.banner__caption--quiet .banner__meta { color: var(--tei-muted); }

@media (prefers-reduced-motion: reduce) {
  .banner__image {
    animation: none;
    transform: none;
  }
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.section .hero-actions { margin-top: var(--space-5); }

@media (max-width: 39.99rem) {
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hero-actions .btn { width: 100%; text-align: center; }
}

.btn {
  display: inline-block;
  padding: 0.65rem 1.15rem;
  border-radius: 2px;
  font-family: var(--tei-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-decoration: none;
  text-align: center;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: none;
}

.btn:hover { text-decoration: none; }

.btn:focus-visible {
  outline: 2px solid var(--tei-teal);
  outline-offset: 3px;
}

.banner .btn:focus-visible,
.site-footer a:focus-visible { outline-color: var(--tei-white); }

.btn--primary {
  background: var(--tei-teal);
  color: var(--tei-white);
  border-color: var(--tei-teal);
}

.btn--primary:hover {
  background: #0a5f5a;
  border-color: #0a5f5a;
  color: var(--tei-white);
}

.btn--secondary {
  background: transparent;
  color: var(--tei-white);
  border-color: var(--tei-white);
}

.btn--secondary:hover {
  background: rgba(255, 255, 255, 0.12);
  color: var(--tei-white);
}

.banner__caption--quiet .btn--secondary {
  color: var(--tei-navy);
  border-color: var(--tei-navy);
}

.banner__caption--quiet .btn--secondary:hover {
  background: var(--tei-navy);
  color: var(--tei-white);
}

.banner__caption--quiet .btn:focus-visible { outline-color: var(--tei-teal); }

.btn--secondary-ink {
  background: transparent;
  color: var(--tei-navy);
  border-color: var(--tei-navy);
}

.btn--secondary-ink:hover {
  background: var(--tei-navy);
  color: var(--tei-white);
}

/* Feature strip / cards */

.feature-grid {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-6);
  max-width: var(--shell-max);
}

@media (min-width: 48rem) {
  .feature-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
  }
}

.feature-card {
  background: var(--tei-white);
  border: 1px solid var(--tei-border);
  border-top: 2px solid var(--tei-teal);
  padding: var(--space-5);
}

.feature-card h3 {
  font-family: var(--tei-font-display);
  font-size: 1.25rem;
  margin: 0 0 var(--space-3);
}

.feature-card p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--tei-navy);
  max-width: none;
  line-height: 1.55;
}

/* Diagrams */

.schematic {
  margin: var(--space-6) 0 0;
  max-width: var(--shell-max);
  padding: 0;
}

.schematic__caption {
  margin: 0 0 var(--space-3);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tei-muted);
}

.schematic__svg {
  width: 100%;
  height: auto;
  display: block;
  background: var(--tei-white);
  border: 1px solid var(--tei-border);
}

.schematic-pair .schematic--phone { display: block; }
.schematic-pair .schematic--desktop { display: none; }

@media (min-width: 40rem) {
  .schematic-pair .schematic--phone { display: none; }
  .schematic-pair .schematic--desktop { display: block; }
}

@media (max-width: 29.99rem) {
  .schematic--scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
  }
  .schematic--scroll .schematic__svg { min-width: 28rem; }
}

.office-map,
.focus-diagram {
  margin: var(--space-6) 0 0;
  max-width: var(--shell-max);
}

.office-map__caption,
.focus-diagram__caption {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tei-muted);
  margin-bottom: var(--space-3);
}

.office-map__svg,
.focus-diagram__svg {
  width: 100%;
  height: auto;
  border: 1px solid var(--tei-border);
  background: var(--tei-white);
}

/* Contact offices */

.office-grid {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-5);
}

@media (min-width: 40rem) {
  .office-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }
  .office-grid .contact-block {
    max-width: none;
    margin: 0;
  }
}

@media (min-width: 64rem) {
  .office-grid--three { grid-template-columns: 1fr 1fr 1fr; }
}

.contact-block {
  margin-top: var(--space-5);
}

.contact-block:first-of-type { margin-top: var(--space-4); }

.contact-block h2,
.contact-block h3 {
  margin: 0 0 var(--space-3);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tei-muted);
  font-family: var(--tei-font-body);
}

.contact-block address {
  font-style: normal;
  margin: 0;
  line-height: 1.55;
}

.contact-block p {
  margin: 0;
  max-width: none;
}

.panel-grid {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-5);
  max-width: var(--shell-max);
}

@media (min-width: 40rem) {
  .panel-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }
  .panel-grid .panel {
    max-width: none;
    margin-top: 0;
  }
}

/* Research index
   Fatima: scan-friendly rows, quiet filter rail, shell/measure grid */

.research-shell {
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-5);
}

@media (min-width: 48rem) {
  .research-shell {
    grid-template-columns: 12.5rem minmax(0, 1fr);
    align-items: start;
    gap: var(--space-7);
  }
}

.research-filters {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--tei-border);
  padding: var(--space-4) 0 0;
}

@media (min-width: 48rem) {
  .research-filters {
    position: sticky;
    top: 4.25rem;
    padding-top: var(--space-2);
    border-top: 0;
  }
}

.research-filters__status {
  margin: 0 0 var(--space-4);
  font-size: 0.8125rem;
  color: var(--tei-muted);
  line-height: 1.4;
}

.research-filters h2 {
  font-size: 0.75rem;
  margin: 0 0 var(--space-4);
  font-family: var(--tei-font-body);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tei-muted);
}

.research-filters fieldset {
  border: 0;
  margin: 0 0 var(--space-4);
  padding: 0;
}

.research-filters fieldset:last-of-type { margin-bottom: 0; }

.research-filters legend {
  font-weight: 600;
  font-size: 0.8125rem;
  margin-bottom: var(--space-2);
  color: var(--tei-navy);
}

.research-filters label {
  display: block;
  font-size: 0.875rem;
  margin-bottom: var(--space-2);
  color: var(--tei-navy);
}

.research-filters input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--tei-teal);
  outline-offset: 2px;
}

.research-filters label:has(input:disabled) { color: var(--tei-muted); }

.research-filters__authors label {
  font-size: 0.8125rem;
  color: var(--tei-muted);
  font-weight: 400;
}

.research-filters__authors legend {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--tei-muted);
  text-transform: none;
  letter-spacing: 0;
}

.research-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--tei-border);
}

.research-list__empty {
  padding: var(--space-5) 0;
  background: transparent;
  border: 0;
  color: var(--tei-muted);
}

.research-card {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--tei-border);
  border-left: 0;
  padding: var(--space-4) 0;
  transition: none;
}

.research-card:hover { border-left-color: transparent; }

.research-card__title {
  margin: 0 0 var(--space-2);
  font-family: var(--tei-font-display);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--tei-navy);
}

.research-card__title a {
  color: var(--tei-navy);
  text-decoration: none;
}

.research-card__title a:hover {
  color: var(--tei-teal);
  text-decoration: underline;
}

.research-card__meta {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--tei-muted);
}

.research-card__byline {
  color: var(--tei-muted);
  font-weight: 400;
}

.research-card__date { color: var(--tei-muted); }
.research-card__region { color: var(--tei-muted); }

.research-placeholder {
  margin: var(--space-5) 0 0;
  max-width: var(--measure-max);
  border-left: 2px solid var(--tei-rust);
}

.research-placeholder h2 {
  font-size: 0.9375rem;
  margin-bottom: var(--space-2);
  font-family: var(--tei-font-body);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: var(--tei-muted);
}

.research-placeholder p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--tei-muted);
  max-width: none;
}

.byline-quiet {
  font-size: 0.875rem;
  color: var(--tei-muted);
  max-width: var(--measure-max);
}

.muted-note {
  font-size: 0.8125rem;
  color: var(--tei-muted);
  margin-top: var(--space-2);
}

/* Article column
   Calmer reading measure */

.article.section {
  max-width: 47.5rem; /* 760px: design 720-760 */
  width: 100%;
  background: var(--tei-white);
  border: 0;
  border-top: 1px solid var(--tei-border);
  padding: var(--space-7) var(--gutter);
  margin-top: var(--space-4);
  margin-bottom: var(--space-7);
  box-shadow: none;
}

@media (min-width: 48rem) {
  .article.section {
    padding: var(--space-7) var(--space-7);
  }
}

.article__back {
  margin: 0 0 var(--space-5);
  font-family: var(--tei-font-body);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--tei-teal);
}

.article__back a {
  color: var(--tei-teal);
  text-decoration: none;
}

.article__back a:hover {
  text-decoration: underline;
}

.article h1 {
  font-family: var(--tei-font-display);
  font-size: clamp(2rem, 1.2vw + 1.6rem, 2.25rem); /* 32-36px */
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--tei-navy);
  margin: 0 0 var(--space-4);
  max-width: none;
}

.article__dek {
  font-family: var(--tei-font-display);
  font-size: clamp(1.125rem, 0.4vw + 1rem, 1.25rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.45;
  color: var(--tei-navy);
  margin: 0 0 var(--space-4);
  max-width: none;
}

.article__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35em;
  align-items: baseline;
  margin: 0 0 var(--space-6); /* 32px to body */
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--tei-border);
  font-family: var(--tei-font-body);
  font-size: 0.875rem; /* 14px */
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--tei-muted);
  max-width: none;
}

.article__byline,
.article__date {
  color: var(--tei-muted);
  font-weight: 400;
  font-size: inherit;
  letter-spacing: inherit;
}

.article__body {
  font-family: var(--tei-font-display);
  font-size: 1.125rem; /* 18px */
  line-height: 1.7;
  color: var(--tei-navy);
  max-width: none;
}

.article__body p {
  margin: 0 0 1.05em;
  max-width: none;
}

.article__body strong {
  font-weight: 700;
  color: var(--tei-navy);
}

.article__body h2 {
  font-family: var(--tei-font-display);
  font-size: 1.375rem; /* 22px: calmer than 24 */
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--tei-navy);
  margin: var(--space-6) 0 var(--space-4);
  max-width: none;
}

.article__body > h2:first-child {
  margin-top: var(--space-5);
}

.article__body h3 {
  font-family: var(--tei-font-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--tei-navy);
  margin: var(--space-5) 0 var(--space-3);
  max-width: none;
}

.article__body ul,
.article__body ol {
  margin: 0 0 1.05em;
  padding-left: 1.25rem;
  font-family: var(--tei-font-display);
  font-size: 1.125rem;
  line-height: 1.65;
  color: var(--tei-navy);
}

.article__body li {
  margin-bottom: var(--space-2);
}

.article__body a {
  color: var(--tei-teal);
}

.article__body a:hover {
  text-decoration: underline;
}

.article__sources {
  margin-top: var(--space-7);
  padding-top: var(--space-5);
  border-top: 1px solid var(--tei-border); /* quiet rule; rust reserved */
}

.article__sources h2 {
  font-family: var(--tei-font-display);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--tei-navy);
  margin: 0 0 var(--space-4);
  max-width: none;
}

.article__sources ul,
.article__sources ol {
  margin: 0;
  padding-left: 1.25rem;
  font-family: var(--tei-font-body);
  font-size: 0.9375rem; /* 15px */
  line-height: 1.5;
  color: var(--tei-navy);
}

.article__sources li {
  margin-bottom: 0.625rem;
  color: var(--tei-navy);
}

.article__sources a {
  color: var(--tei-teal);
  word-break: break-word;
  text-decoration: none;
}

.article__sources a:hover {
  text-decoration: underline;
}

/* Footer */

.site-footer {
  margin-top: auto;
  background: var(--tei-navy);
  color: #e8e6e0;
  padding: var(--space-8) var(--gutter) var(--space-5);
}

.site-footer a {
  color: var(--tei-mint);
  text-decoration: none;
  transition: none;
}

.site-footer a:hover {
  color: var(--tei-white);
  text-decoration: underline;
}

.site-footer__inner {
  max-width: var(--shell-max);
  margin: 0 auto;
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 40rem) {
  .site-footer__inner {
    grid-template-columns: 1.4fr 1.2fr 1fr;
    gap: var(--space-6);
  }
}

.site-footer h2 {
  margin: 0 0 var(--space-3);
  font-size: 0.6875rem;
  font-weight: 600;
  font-family: var(--tei-font-body);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #b0aea6;
}

.site-footer p,
.site-footer address {
  margin: 0 0 var(--space-2);
  font-style: normal;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #e8e6e0;
}

.site-footer__inner p { margin: 0; }

.site-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  font-size: 0.875rem;
}

.site-footer__satellites {
  margin-top: var(--space-3);
  font-size: 0.8125rem;
  color: #b0aea6;
}

.site-footer__brand {
  max-width: var(--shell-max);
  margin: var(--space-5) auto var(--space-3);
  padding: 0;
}

.site-footer__brand img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  opacity: 0.85;
}

.site-footer__note {
  max-width: var(--shell-max);
  margin: var(--space-4) auto 0;
  padding-top: var(--space-4);
  border-top: 1px solid #3a4050;
  font-size: 0.8125rem;
  color: #b0aea6;
}

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

/* Consulting photography blocks */

.media-split {
  display: grid;
  gap: var(--space-6);
  align-items: center;
}

@media (min-width: 48rem) {
  .media-split {
    grid-template-columns: 1fr 1.05fr;
    gap: var(--space-7);
  }
}

.media-split__figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--tei-border);
  background: var(--tei-navy);
}

.media-split__figure img {
  width: 100%;
  height: auto;
  display: block;
}

.page-hero-still {
  margin: 0 0 var(--space-6);
  overflow: hidden;
  border: 1px solid var(--tei-border);
}

.page-hero-still img {
  width: 100%;
  max-height: 22rem;
  object-fit: cover;
  object-position: center;
}

.section--media {
  padding-top: var(--space-7);
}

/* Banner strip: still image, left crop, capped height */
.banner__frame {
  overflow: hidden;
  background: var(--tei-white);
}

.banner__frame .banner__image {
  width: 100%;
  height: 100%;
  min-height: 8rem;
  max-height: 10rem;
  object-fit: cover;
  object-position: left center;
  opacity: 1;
  transform: none;
  animation: none;
}

@media (min-width: 40rem) {
  .banner__frame .banner__image {
    max-height: 12rem;
    min-height: 10rem;
  }
}

@media (min-width: 64rem) {
  .banner__frame .banner__image {
    max-height: 14rem;
    min-height: 12rem;
  }
}

/* Feature cards: two-up between phone and desktop three-up */
@media (min-width: 40rem) and (max-width: 47.99rem) {
  .feature-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Practice photo: full-bleed feel on phone, contained on desktop */
@media (max-width: 47.99rem) {
  .media-split__figure img {
    max-height: 16rem;
    width: 100%;
    object-fit: cover;
  }

  .page-hero-still img {
    max-height: 14rem;
  }
}


/* Recent research rail (Home) */
.recent-research {
  margin-top: var(--space-5);
}

.recent-research__list {
  list-style: none;
  margin: var(--space-4) 0 0;
  padding: 0;
  border-top: 1px solid var(--tei-border);
}

.recent-research__item {
  border-bottom: 1px solid var(--tei-border);
  padding: var(--space-4) 0;
}

.recent-research__title {
  margin: 0 0 var(--space-2);
  font-family: var(--tei-font-display);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
}

.recent-research__title a {
  color: var(--tei-navy);
  text-decoration: none;
}

.recent-research__title a:hover {
  color: var(--tei-teal);
  text-decoration: underline;
}

.recent-research__meta {
  margin: 0;
  font-size: 0.875rem;
  color: var(--tei-muted);
}

.recent-research__more {
  margin-top: var(--space-4);
  font-size: 0.9375rem;
}

/* Practice-area links */
.practice-areas {
  list-style: none;
  margin: var(--space-4) 0 0;
  padding: 0;
  border-top: 1px solid var(--tei-border);
}

.practice-areas li {
  border-bottom: 1px solid var(--tei-border);
  padding: var(--space-3) 0;
  font-size: 1.0625rem;
}

.practice-areas a {
  color: var(--tei-teal);
  text-decoration: none;
  font-weight: 600;
}

.practice-areas a:hover {
  text-decoration: underline;
}

.practice-areas__note {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--tei-muted);
}

/* Collaborate engagement tracks */
.engage-tracks {
  display: grid;
  gap: var(--space-4);
  margin: var(--space-5) 0 var(--space-6);
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--tei-border);
}

@media (min-width: 40rem) {
  .engage-tracks {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
  }
}

.engage-tracks > li {
  border-bottom: 1px solid var(--tei-border);
  padding: var(--space-4) 0;
}

@media (min-width: 40rem) {
  .engage-tracks > li {
    border-bottom: 0;
    border-left: 1px solid var(--tei-border);
    padding: var(--space-3) 0 var(--space-3) var(--space-4);
  }
  .engage-tracks > li:first-child {
    border-left: 0;
    padding-left: 0;
  }
}

.engage-tracks h2 {
  margin: 0 0 var(--space-2);
  font-size: 1.125rem;
}

.engage-tracks p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--tei-muted);
}

.text-link-row {
  margin-top: var(--space-5);
  font-size: 0.9375rem;
}

.text-link-row a {
  color: var(--tei-teal);
}

/* Home pillars: Consulting, Research, News */
.pillars__grid {
  list-style: none;
  margin: var(--space-5) 0 0;
  padding: 0;
  display: grid;
  gap: var(--space-5);
  border-top: 1px solid var(--tei-border);
}
.pillar {
  padding: var(--space-5) 0 0;
}
.pillar__title {
  margin: 0 0 var(--space-2);
  font-family: var(--tei-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
}
.pillar__title a { color: var(--tei-navy); text-decoration: none; }
.pillar__title a:hover { color: var(--tei-teal); text-decoration: underline; }
.pillar__text { margin: 0 0 var(--space-3); color: var(--tei-navy); }
.pillar__link { margin: 0; font-size: 0.9375rem; font-weight: 600; }
.pillar__link a { color: var(--tei-teal); }
@media (min-width: 48rem) {
  .pillars__grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
}
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .site-nav ul { gap: 0 var(--space-4); }
}

/* Consulting: service lines (same register as pillars and engage-tracks) */
.service-lines {
  list-style: none;
  margin: var(--space-5) 0 0;
  padding: 0;
  border-top: 1px solid var(--tei-border);
}
.service-line {
  padding: var(--space-5) 0;
  border-bottom: 1px solid var(--tei-border);
}
.service-line__title {
  margin: 0 0 var(--space-2);
  font-family: var(--tei-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--tei-navy);
}
.service-line__text { margin: 0 0 var(--space-2); max-width: var(--measure-max); }
.service-line__markets {
  margin: 0;
  font-size: 0.875rem;
  color: var(--tei-muted);
}
.service-line__link { margin: var(--space-2) 0 0; font-size: 0.9375rem; font-weight: 600; }
.service-line__link a { color: var(--tei-teal); }
@media (min-width: 48rem) {
  .service-line {
    display: grid;
    grid-template-columns: 16rem 1fr;
    column-gap: var(--space-6);
  }
  .service-line__title { grid-row: 1 / span 3; }
}

/* Enquiries block: post and phone only */
.enquiry-block {
  margin-top: var(--space-7);
  padding-top: var(--space-5);
  border-top: 2px solid var(--tei-navy);
  max-width: var(--measure-max);
}
.enquiry-block h2 { margin: 0 0 var(--space-3); font-size: 1.25rem; }
.enquiry-block address { font-style: normal; line-height: 1.6; }

/* News: index list and brief template */
.news-list {
  list-style: none;
  margin: var(--space-5) 0 0;
  padding: 0;
  border-top: 1px solid var(--tei-border);
  max-width: 46rem;
}
.news-item {
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--tei-border);
}
.news-item__meta,
.brief__meta {
  margin: 0 0 var(--space-1);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tei-muted);
}
.news-item__title {
  margin: 0 0 var(--space-2);
  font-family: var(--tei-font-display);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
}
.news-item__title a { color: var(--tei-navy); text-decoration: none; }
.news-item__title a:hover { color: var(--tei-teal); text-decoration: underline; }
.news-item__summary { margin: 0; font-size: 0.9375rem; }
.news-empty { margin-top: var(--space-5); color: var(--tei-muted); }

.brief {
  max-width: var(--measure-max);
  margin: 0 auto;
  padding: var(--space-7) var(--gutter);
}
.brief__title {
  margin: 0 0 var(--space-3);
  font-family: var(--tei-font-display);
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  line-height: 1.25;
}
.brief__body p { margin: 0 0 var(--space-4); }
.brief__source {
  margin-top: var(--space-5);
  padding-top: var(--space-3);
  border-top: 1px solid var(--tei-border);
  font-size: 0.875rem;
  color: var(--tei-navy);
}
.brief__source a { color: var(--tei-teal); overflow-wrap: anywhere; }
.brief__back { margin-top: var(--space-5); font-size: 0.9375rem; }

/* Seven-item nav: keep one line on desktop, wrap cleanly on tablet */
@media (min-width: 64rem) {
  .site-nav ul { gap: 0 var(--space-4); flex-wrap: nowrap; }
  .site-nav a { font-size: 0.8125rem; }
}

/* Responsive image wrappers keep the existing img layout */
.banner__frame picture,
.site-brand picture {
  display: contents;
}

.research-card__desk,
.article__desk {
  display: block;
  margin: 0 0 var(--space-1, 0.25rem);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tei-rust);
}
.article__desk { display: inline; margin: 0; font-size: 0.8125rem; }
.research-card__byline,
.article__byline { font-size: 0.75rem; color: var(--tei-muted); }
.research-filters__more { margin-top: var(--space-4); border-top: 1px solid var(--tei-border); padding-top: var(--space-3, 0.75rem); }
.research-filters__more summary { cursor: pointer; font-weight: 600; font-size: 0.8125rem; color: var(--tei-navy); }
.research-filters__more fieldset { margin-top: var(--space-3, 0.75rem); }
.desk-list { list-style: none; margin: var(--space-4) 0 var(--space-6); padding: 0; display: grid; gap: var(--space-3, 0.75rem) var(--space-5); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.desk-list li { border-top: 1px solid var(--tei-border); padding-top: var(--space-2); }
.desk-list a { font-weight: 700; color: var(--tei-navy); }
.desk-list span { display: block; font-size: 0.875rem; color: var(--tei-muted); line-height: 1.45; }

@media (min-width: 48rem) {
  .site-header__inner { padding-top: var(--space-2); padding-bottom: var(--space-2); }
  .site-brand__lockup { height: 32px; width: auto; }
}

.kicker {
  display: inline-block;
  font-family: var(--tei-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tei-rust);
  text-decoration: none;
  margin-bottom: var(--space-2);
}
.kicker:hover { text-decoration: underline; color: var(--tei-rust); }
.meta { margin: var(--space-2) 0 0; font-size: 0.8125rem; color: var(--tei-muted); }
.meta a { color: var(--tei-teal); }

.section-label {
  margin: 0;
  font-family: var(--tei-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tei-navy);
}
.block-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-4);
  border-top: 2px solid var(--tei-navy);
  padding-top: var(--space-3);
  margin-bottom: var(--space-5);
}
.more-link, .more-link a { font-size: 0.875rem; font-weight: 600; color: var(--tei-teal); }

.desk-rail { background: var(--tei-white); border-bottom: 1px solid var(--tei-border); }
.desk-rail__inner {
  max-width: var(--shell-max);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  overflow-x: auto;
  scrollbar-width: none;
}
.desk-rail__inner::-webkit-scrollbar { display: none; }
.desk-rail__label {
  flex: none;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tei-muted);
}
.desk-rail ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-5); white-space: nowrap; }
.desk-rail a {
  display: inline-block;
  padding: var(--space-3) 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--tei-navy);
  text-decoration: none;
}
.desk-rail a:hover { color: var(--tei-teal); box-shadow: inset 0 -2px 0 var(--tei-teal); }

/* Newsroom shell */
.newsroom { max-width: var(--shell-max); margin: 0 auto; padding: var(--space-6) var(--gutter) var(--space-8); width: 100%; }
.newsroom > section + section { margin-top: var(--space-8); }

/* Lead + latest */
.front { display: grid; gap: var(--space-6); }
@media (min-width: 64rem) {
  .front { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--space-7); }
  .latest { border-left: 1px solid var(--tei-border); padding-left: var(--space-6); }
}
.lead__media, .card__media { display: block; overflow: hidden; background: var(--tei-navy); }
.lead__media img, .card__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.lead__body { padding-top: var(--space-4); }
.lead__title {
  margin: 0;
  font-family: var(--tei-font-display);
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.625rem);
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.lead__title a, .latest__title a, .card__title a, .news-row__title a { color: var(--tei-navy); text-decoration: none; }
.lead__title a:hover, .latest__title a:hover, .card__title a:hover, .news-row__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.latest .section-label { border-top: 2px solid var(--tei-navy); padding-top: var(--space-3); }
.latest__list { list-style: none; margin: 0; padding: 0; }
.latest__item { padding: var(--space-4) 0; border-bottom: 1px solid var(--tei-border); }
.latest__item .kicker { margin-bottom: var(--space-1); }
.latest__title { margin: 0; font-family: var(--tei-font-display); font-size: 1.0625rem; line-height: 1.3; font-weight: 700; }
.latest .more-link { margin-top: var(--space-4); }

/* News rows */
.news-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.news-row { padding: var(--space-4) 0; border-bottom: 1px solid var(--tei-border); }
.news-row__title { margin: 0; font-family: var(--tei-font-display); font-size: 1.125rem; line-height: 1.3; font-weight: 700; }
@media (min-width: 48rem) {
  .news-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-6); }
}

.card-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-6) var(--space-5); }
@media (min-width: 40rem) { .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.card .kicker { margin-top: var(--space-3); margin-bottom: var(--space-1); }
.card__title { margin: 0; font-family: var(--tei-font-display); font-size: 1.1875rem; line-height: 1.25; font-weight: 700; }

/* Consulting block */
.consulting-block { display: grid; gap: var(--space-5); background: var(--tei-white); border-top: 2px solid var(--tei-navy); }
.consulting-block__media img { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.consulting-block__body { padding: var(--space-5); }
.consulting-block__title { margin: var(--space-3) 0 var(--space-4); font-family: var(--tei-font-display); font-size: 1.5rem; line-height: 1.25; font-weight: 700; color: var(--tei-navy); }
.consulting-block__lines { list-style: none; margin: 0 0 var(--space-5); padding: 0; border-top: 1px solid var(--tei-border); }
.consulting-block__lines li { padding: var(--space-3) 0; border-bottom: 1px solid var(--tei-border); font-size: 0.9375rem; }
@media (min-width: 64rem) {
  .consulting-block { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; }
  .consulting-block__body { padding: var(--space-6) var(--space-7); }
}

.site-footer__desks ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: var(--space-5); }
.site-footer__desks li { font-size: 0.875rem; margin-bottom: var(--space-2); break-inside: avoid; }
@media (min-width: 48rem) {
  .site-footer__inner { grid-template-columns: 1.2fr 1.1fr 1.2fr 0.9fr; }
}

/* Slim sticky header on phones: one scrolling row instead of a button grid */
@media (max-width: 47.99rem) {
  .site-header__inner { flex-direction: row; align-items: center; gap: var(--space-3); padding-top: var(--space-2); padding-bottom: var(--space-2); }
  .site-brand { flex: none; }
  .site-brand__lockup { height: 32px; width: auto; }
  .site-nav { width: auto; min-width: 0; flex: 1; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav ul { display: flex; flex-wrap: nowrap; gap: 0 var(--space-4); white-space: nowrap; padding-right: var(--space-5); }
  .site-nav li:last-child { grid-column: auto; }
  .site-nav a { display: inline-block; border: 0; border-radius: 0; background: none; padding: var(--space-2) 0; text-align: left; font-size: 0.8125rem; }
  .site-nav a[aria-current="page"] { background: none; border: 0; color: var(--tei-teal); box-shadow: inset 0 -2px 0 var(--tei-teal); }
}

/* Home letterhead strip (Sofia: 72 to 96px, still, Home only, hidden on small phones) */
.letterhead-strip { background: var(--tei-white); border-bottom: 1px solid var(--tei-border); line-height: 0; }
.letterhead-strip picture { display: block; max-width: var(--shell-max); margin: 0 auto; padding: 0 var(--gutter); }
.letterhead-strip img { display: block; width: 100%; height: 80px; object-fit: contain; object-position: center; }
@media (min-width: 64rem) { .letterhead-strip img { height: 96px; } }
@media (max-width: 29.99rem) {
  .letterhead-strip { display: none; }
  .site-brand__lockup { height: 28px; }
}

/* Priya: newsroom polish
   Colour, type and spacing refinements on top of Lina's newsroom build.
   Self-contained block; later blocks may append after it. */

/* Section rhythm: 32px phone, 48px desktop */
.newsroom { padding-top: var(--space-6); padding-bottom: var(--space-6); }
.newsroom > section + section,
.newsroom > nav + section,
.newsroom > section + nav { margin-top: var(--space-6); }
.block-head { margin-bottom: var(--space-4); }
@media (min-width: 48rem) {
  .newsroom { padding-top: var(--space-7); padding-bottom: var(--space-7); }
  .newsroom > section + section,
  .newsroom > nav + section,
  .newsroom > section + nav { margin-top: var(--space-7); }
  .block-head { margin-bottom: var(--space-5); }
}

.kicker,
.research-card__desk,
.article__desk,
.label-caps {
  font-family: var(--tei-font-body);
  font-size: 0.75rem;
  font-weight: 700;
  font-variant-caps: normal;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--tei-teal);
}
.kicker:hover { color: var(--tei-navy); text-decoration: underline; text-underline-offset: 2px; }
.section-label,
.desk-rail__label,
.site-footer h2 { letter-spacing: 0.08em; }

/* Headline scale and tight leading */
.lead__title { font-size: clamp(1.75rem, 1.1rem + 2.2vw, 2.75rem); line-height: 1.15; letter-spacing: -0.012em; }
.latest__title { font-size: 1.0625rem; line-height: 1.25; }
.card__title { font-size: clamp(1.125rem, 1rem + 0.35vw, 1.25rem); line-height: 1.22; }
.news-row__title, .news-item__title { line-height: 1.25; }
.research-card__title { line-height: 1.25; }
.article h1 { font-size: clamp(1.875rem, 1.3rem + 1.8vw, 2.625rem); line-height: 1.15; letter-spacing: -0.012em; }
.meta, .research-card__meta, .article__meta { font-size: 0.8125rem; color: var(--tei-muted); }
.research-card__byline, .article__byline { font-size: 0.75rem; color: var(--tei-muted); }

/* Article measure: about 700px of text */
.article.section { max-width: 50rem; }

/* Hairline rules, not boxes; 2px radius at most */
.card, .research-card, .latest__item, .news-row, .news-item, .service-line, .panel, .feature-card {
  box-shadow: none;
  border-radius: 0;
}
.card { border-top: 1px solid var(--tei-border); padding-top: var(--space-4); background: transparent; }
.card__media { margin-bottom: 0; }
.latest__item:last-child { border-bottom: 0; }
.btn, .site-nav a, input, .research-filters__more summary { border-radius: 2px; }
.consulting-block { border-top: 2px solid var(--tei-navy); box-shadow: none; }
.consulting-block__body .btn { border-radius: 2px; }

/* Consistent card imagery: 16:9, cropped, navy while loading */
.lead__media, .card__media, .consulting-block__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--tei-navy);
  border-radius: 0;
}
.lead__media img, .card__media img, .consulting-block__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}
.card .kicker { margin-top: var(--space-3); }

/* Home letterhead strip: whole banner, never cropped, about 180px tall */
.letterhead-strip picture { max-width: 720px; margin: 0 auto; padding: 0 var(--gutter); }
.letterhead-strip img { width: 100%; height: auto; object-fit: initial; }
@media (max-width: 29.99rem) {
  .letterhead-strip { display: none; }
}

/* Footer: navy, muted text, mint links (AA on navy) */
.site-footer { color: #C9CCD4; }
.site-footer p, .site-footer address { color: #C9CCD4; }
.site-footer h2 { color: #AEB3BF; }
.site-footer a { color: var(--tei-mint); }
.site-footer a:hover { color: var(--tei-white); text-decoration: underline; text-underline-offset: 2px; }
.site-footer__satellites, .site-footer__note { color: #AEB3BF; }
.site-footer__note { border-top-color: rgba(255, 255, 255, 0.14); }
.site-footer a:focus-visible { outline: 2px solid var(--tei-mint); outline-offset: 2px; }

/* Visible focus on light grounds */
.kicker:focus-visible,
.lead__title a:focus-visible, .latest__title a:focus-visible, .card__title a:focus-visible,
.research-card__title a:focus-visible, .desk-rail a:focus-visible, .site-nav a:focus-visible {
  outline: 2px solid var(--tei-teal);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .site-main *, .site-footer * { transition: none !important; animation: none !important; }
}
/* End Priya: newsroom polish */

/* Classy pass: region kicker above headline */
.article__kicker { margin: var(--space-4, 1rem) 0 var(--space-2, 0.5rem); font-family: var(--tei-font-body); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.3; }
.article__kicker a { color: var(--tei-teal); text-decoration: none; }
.article__kicker a:hover { color: var(--tei-navy); text-decoration: underline; text-underline-offset: 2px; }
.article__meta { margin-top: var(--space-3, 0.75rem); font-size: 0.875rem; color: var(--tei-muted); letter-spacing: 0; text-transform: none; }
.article__meta .article__byline { font-size: inherit; color: inherit; }
.research-card__desk { background: none; border: 0; padding: 0; border-radius: 0; }
.research-card__byline { font-size: inherit; }

/* Coverage map (geo.py) */
.map-page h1 { margin-bottom: var(--space-2, 0.5rem); }
.map-layout { display: grid; gap: var(--space-5, 1.5rem); margin-top: var(--space-5, 1.5rem); align-items: start; }
@media (min-width: 64rem) { .map-layout { grid-template-columns: minmax(0, 2.2fr) minmax(18rem, 1fr); } }
.map-figure { margin: 0; background: var(--tei-white); border-top: 2px solid var(--tei-navy); padding: var(--space-4, 1rem); }
.world-map { display: block; width: 100%; height: auto; }
.world-map .c { stroke: #ffffff; stroke-width: 0.5; stroke-linejoin: round; transition: fill 120ms ease; }
.world-map .t0 { fill: #E2DFD6; }
.world-map .t1 { fill: #B5D8D2; } .world-map .t2 { fill: #7DBAB2; } .world-map .t3 { fill: #3B958D; } .world-map .t4 { fill: #0C726C; }
.world-map .dot { stroke-width: 0.8; }
.world-map [role="button"] { cursor: pointer; }
.world-map [role="button"]:hover { fill: #0A5E59; }
.world-map [role="button"]:focus { outline: none; }
.world-map [role="button"]:focus-visible { stroke: var(--tei-navy); stroke-width: 1.6; }
.world-map .is-selected, .world-map .is-selected:hover { fill: var(--tei-navy); stroke: #ffffff; stroke-width: 0.8; }
.map-legend { margin-top: var(--space-3, 0.75rem); font-size: 0.75rem; color: var(--tei-muted); display: flex; align-items: center; gap: var(--space-2, 0.5rem); }
.map-legend__scale { display: inline-flex; }
.map-legend__scale i { width: 1.25rem; height: 0.5rem; display: inline-block; }
.map-legend__scale .t1 { background: #B5D8D2; } .map-legend__scale .t2 { background: #7DBAB2; } .map-legend__scale .t3 { background: #3B958D; } .map-legend__scale .t4 { background: #0C726C; }
.map-panel { background: var(--tei-white); border-top: 2px solid var(--tei-teal); padding: var(--space-4, 1rem) var(--space-5, 1.5rem); outline: none; }
@media (min-width: 64rem) { .map-panel { position: sticky; top: 5rem; max-height: calc(100vh - 6rem); overflow-y: auto; } }
.map-panel__kicker { margin: 0 0 var(--space-1, 0.25rem); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tei-teal); }
.map-panel__title { margin: 0; font-family: var(--tei-font-display); font-size: 1.5rem; line-height: 1.2; color: var(--tei-navy); }
.map-panel__hint, .map-panel__count { margin: var(--space-2, 0.5rem) 0 var(--space-3, 0.75rem); font-size: 0.875rem; color: var(--tei-muted); }
.map-articles { list-style: none; margin: 0; padding: 0; }
.map-articles li { padding: var(--space-3, 0.75rem) 0; border-bottom: 1px solid var(--tei-border); }
.map-articles a { display: block; font-family: var(--tei-font-display); font-weight: 700; font-size: 1rem; line-height: 1.3; color: var(--tei-navy); text-decoration: none; }
.map-articles a:hover { color: var(--tei-teal); text-decoration: underline; text-underline-offset: 2px; }
.map-articles time { display: block; margin-top: 0.2rem; font-size: 0.75rem; color: var(--tei-muted); }
.map-panel__all { margin: var(--space-4, 1rem) 0 0; font-size: 0.875rem; font-weight: 600; }
.map-list { margin-top: var(--space-6, 2rem); }
.country-search { width: 100%; max-width: 24rem; margin: var(--space-3, 0.75rem) 0; padding: 0.55rem 0.75rem; font: inherit; font-size: 0.9375rem; border: 1px solid var(--tei-border); border-radius: 0; background: var(--tei-white); }
.country-search:focus-visible { outline: 2px solid var(--tei-teal); outline-offset: 1px; }
.country-list { list-style: none; margin: 0; padding: 0; columns: 2 11rem; column-gap: var(--space-5, 1.5rem); }
.country-list li { break-inside: avoid; border-bottom: 1px solid var(--tei-border); }
.country-list a, .country-list button { display: flex; justify-content: space-between; width: 100%; padding: 0.5rem 0; background: none; border: 0; font: inherit; font-size: 0.9375rem; color: var(--tei-navy); text-align: left; cursor: pointer; text-decoration: none; }
.country-list button:hover, .country-list button[aria-pressed="true"] { color: var(--tei-teal); }
.country-list button:focus-visible { outline: 2px solid var(--tei-teal); outline-offset: 2px; }
.country-list__n { font-size: 0.8125rem; color: var(--tei-muted); font-variant-numeric: tabular-nums; }
@media (min-width: 48rem) { .country-list { columns: 4 11rem; } }
.map-worldwide { margin-top: var(--space-6, 2rem); }
.map-worldwide__note { font-size: 0.875rem; color: var(--tei-muted); margin: var(--space-2, 0.5rem) 0; }
.map-attrib { margin-top: var(--space-5, 1.5rem); font-size: 0.6875rem; color: var(--tei-muted); }
.map-attrib a { color: inherit; }
.country-filter-note { font-size: 0.875rem; color: var(--tei-navy); margin: 0 0 var(--space-2, 0.5rem); }
/* Home teaser */
.map-teaser__grid { display: grid; gap: var(--space-5, 1.5rem); background: var(--tei-white); border-top: 2px solid var(--tei-navy); padding: var(--space-4, 1rem); }
@media (min-width: 48rem) { .map-teaser__grid { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); align-items: center; } }
.map-teaser__media img { display: block; width: 100%; height: auto; }
.map-teaser__lede { margin: 0 0 var(--space-3, 0.75rem); font-size: 0.9375rem; color: var(--tei-navy); }
.map-teaser__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--tei-border); }
.map-teaser__list li { display: flex; justify-content: space-between; padding: 0.45rem 0; border-bottom: 1px solid var(--tei-border); font-size: 0.875rem; }
.map-teaser__list span { color: var(--tei-muted); font-variant-numeric: tabular-nums; }

/* Banner C letterhead (cream, shown whole on all widths) */
.letterhead-strip { display: block; background: #F5F3EE; border-bottom: 1px solid var(--tei-border); line-height: 0; }
.letterhead-strip picture { display: block; max-width: 720px; margin: 0 auto; padding: 0 var(--gutter); }
.letterhead-strip img { display: block; width: 100%; height: auto; object-fit: initial; }
@media (max-width: 29.99rem) {
  .letterhead-strip { display: block; }
  .letterhead-strip picture { padding: 0; }
}

/* Mobile nav: wrap tidily under the brand instead of running off the edge */
@media (max-width: 47.99rem) {
  .site-header__inner { flex-wrap: wrap; row-gap: 0; }
  .site-nav { flex: 1 1 100%; width: 100%; overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .site-nav ul { display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between; gap: 0 var(--space-3, 0.75rem); padding-right: 0; white-space: nowrap; }
  .site-nav a { padding: var(--space-2, 0.5rem) 0; }
}
@media (max-width: 21rem) { .site-nav ul { grid-template-columns: repeat(3, auto); } }

/* Article lead images */
.article__figure { margin: var(--space-4, 1rem) 0 var(--space-5, 1.5rem); }
.article__figure img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; background: #e9e6df; }
.article__figure figcaption { margin-top: 0.5rem; font-size: 0.8125rem; line-height: 1.45; color: var(--tei-muted, #5b6470); }
.article__credit { display: block; margin-top: 0.15rem; font-size: 0.75rem; }
.article__credit a { color: inherit; }
.card__media img, .lead__media img { object-fit: cover; }

/* ---- Search (overlay + page) and Events ---- */
.search-toggle { display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; margin-left:0.5rem; flex:0 0 auto; border:1px solid transparent; border-radius:50%; background:none; color:var(--tei-navy); cursor:pointer; }
.search-toggle:hover, .search-toggle:focus-visible { border-color:var(--tei-border); color:var(--tei-teal); outline:none; }
html.search-open { overflow:hidden; }
.search-overlay { position:fixed; inset:0; z-index:1000; background:rgba(18,30,60,0.55); display:flex; justify-content:center; align-items:flex-start; padding:6vh 1rem 1rem; }
.search-overlay[hidden] { display:none; }
.search-overlay__panel { width:100%; max-width:46rem; max-height:86vh; overflow:auto; background:var(--tei-white); border-top:4px solid var(--tei-navy); box-shadow:0 20px 60px rgba(0,0,0,0.25); padding:1.25rem 1.5rem 1rem; }
.search-overlay__bar { display:flex; align-items:center; gap:0.75rem; border-bottom:2px solid var(--tei-navy); padding-bottom:0.5rem; color:var(--tei-navy); }
.search-overlay__input, .search-page__input { flex:1; width:100%; border:0; background:none; font-family:var(--tei-font-display); font-size:1.6rem; color:var(--tei-navy); padding:0.25rem 0; }
.search-overlay__input:focus, .search-page__input:focus { outline:none; }
.search-overlay__close { border:1px solid var(--tei-border); background:var(--tei-paper); font:inherit; font-size:0.75rem; letter-spacing:0.06em; text-transform:uppercase; padding:0.3rem 0.6rem; cursor:pointer; color:var(--tei-muted); }
.search-filters { display:flex; flex-wrap:wrap; gap:0.5rem; margin:0.75rem 0 0.25rem; }
.search-filters select { font:inherit; font-size:0.85rem; padding:0.35rem 0.5rem; border:1px solid var(--tei-border); background:var(--tei-white); color:var(--tei-navy); max-width:14rem; }
.search-status { font-size:0.8rem; color:var(--tei-muted); margin:0.5rem 0; letter-spacing:0.02em; }
.sr-list { list-style:none; margin:0; padding:0; }
.sr-item a, .sr-all a { display:block; padding:0.8rem 0.5rem; border-bottom:1px solid var(--tei-border); text-decoration:none; color:inherit; }
.sr-item.is-active a, .sr-item a:hover, .sr-item a:focus { background:var(--tei-paper); }
.sr-item.is-active a { box-shadow:inset 3px 0 0 var(--tei-rust); }
.sr-meta { display:block; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-teal); font-weight:600; }
.sr-title { display:block; font-family:var(--tei-font-display); font-size:1.15rem; line-height:1.3; color:var(--tei-navy); margin:0.15rem 0 0.25rem; }
.sr-snip { display:block; font-size:0.9rem; line-height:1.5; color:var(--tei-muted); }
.sr-list mark { background:rgba(108,204,192,0.35); color:inherit; padding:0 0.05em; }
.sr-all a { font-weight:600; color:var(--tei-teal); text-align:center; }
.search-overlay__hint { font-size:0.75rem; color:var(--tei-muted); margin:0.75rem 0 0; }
.search-overlay__hint kbd { font:inherit; border:1px solid var(--tei-border); border-bottom-width:2px; padding:0 0.3rem; margin-right:0.15rem; background:var(--tei-paper); }
.search-page { max-width:48rem; }
.search-page__form { border-bottom:2px solid var(--tei-navy); padding-bottom:0.5rem; margin-bottom:0.5rem; }
.sr-list--page .sr-title { font-size:1.3rem; }
.event-grid { list-style:none; margin:1.5rem 0; padding:0; display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(17rem,1fr)); }
.event-card { border-top:3px solid var(--tei-navy); padding-top:0.75rem; }
.event-card .kicker { font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-teal); font-weight:600; margin:0; }
.event-card__title { font-family:var(--tei-font-display); font-size:1.25rem; line-height:1.25; margin:0.35rem 0; }
.event-card__title a { color:var(--tei-navy); text-decoration:none; }
.event-card__title a:hover { color:var(--tei-rust); }
.event-card__summary { font-size:0.92rem; line-height:1.5; color:#333; margin:0.25rem 0 0.5rem; }
.event-card .meta { font-size:0.78rem; color:var(--tei-muted); margin:0; }
.event-grid--compact { grid-template-columns:repeat(auto-fill,minmax(14rem,1fr)); }
.events-block { margin:2.5rem 0; }
.event { max-width:46rem; }
.event h1 { font-family:var(--tei-font-display); font-size:clamp(1.9rem,4vw,2.6rem); color:var(--tei-navy); line-height:1.15; margin:0.25rem 0 1rem; }
.event__facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(10rem,1fr)); gap:0.75rem 1.5rem; margin:0 0 1.25rem; padding:0.9rem 0; border-top:1px solid var(--tei-border); border-bottom:1px solid var(--tei-border); }
.event__facts dt { font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-muted); }
.event__facts dd { margin:0.15rem 0 0; font-size:0.95rem; color:var(--tei-navy); }
.event__links { font-size:0.9rem; margin:1rem 0 2rem; }
.event__links a { color:var(--tei-teal); }
.timeline { list-style:none; margin:1rem 0 2rem; padding:0 0 0 1.25rem; border-left:2px solid var(--tei-border); }
.timeline__item { position:relative; padding:0 0 1.25rem 0.5rem; }
.timeline__item::before { content:""; position:absolute; left:-1.72rem; top:0.35rem; width:0.65rem; height:0.65rem; border-radius:50%; background:var(--tei-rust); border:2px solid var(--tei-white); }
.timeline__item time { display:block; font-size:0.78rem; color:var(--tei-muted); }
.timeline__item .kicker { font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-teal); font-weight:600; margin-right:0.4rem; }
.timeline__item a { font-family:var(--tei-font-display); font-size:1.1rem; color:var(--tei-navy); text-decoration:none; line-height:1.3; }
.timeline__item a:hover { color:var(--tei-rust); }
@media (max-width:40rem) {
  .search-overlay { padding:0; }
  .search-overlay__panel { max-height:100vh; height:100%; padding:1rem; }
  .search-overlay__input, .search-page__input { font-size:1.25rem; }
  .search-filters select { flex:1 1 45%; max-width:none; }
  .search-overlay__hint { display:none; }
}

/* ---- Home event hook band ---- */
.event-hook { background:var(--tei-navy); color:#E9ECF3; border-top:4px solid var(--tei-rust); }
.event-hook a { color:#fff; }
.event-hook__inner { max-width:var(--shell-max); margin:0 auto; padding:2rem var(--gutter) 1.5rem; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:2.5rem; }
.event-hook__tag { display:inline-flex; align-items:center; gap:0.5rem; margin:0 0 0.6rem; font-size:0.72rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; font-variant:small-caps; color:#F2A27F; }
.event-hook__dot { width:0.55rem; height:0.55rem; border-radius:50%; background:#E8622D; box-shadow:0 0 0 0 rgba(232,98,45,0.6); animation:tei-pulse 2s ease-out infinite; }
@keyframes tei-pulse { 0% { box-shadow:0 0 0 0 rgba(232,98,45,0.6); } 70% { box-shadow:0 0 0 0.55rem rgba(232,98,45,0); } 100% { box-shadow:0 0 0 0 rgba(232,98,45,0); } }
.event-hook__title { font-family:var(--tei-font-display); font-size:clamp(1.9rem,4.2vw,3rem); line-height:1.08; margin:0 0 0.6rem; letter-spacing:-0.01em; }
.event-hook__title a { text-decoration:none; }
.event-hook__title a:hover, .event-hook__title a:focus-visible { text-decoration:underline; text-decoration-color:#E8622D; text-underline-offset:0.15em; }
.event-hook__summary { font-family:var(--tei-font-display); font-size:1.15rem; line-height:1.5; color:#DCE2EE; margin:0 0 0.75rem; max-width:40rem; }
.event-hook__meta { font-size:0.8rem; color:#AEB8CC; margin:0 0 1.1rem; letter-spacing:0.02em; }
.event-hook__cta { display:inline-flex; align-items:center; gap:0.5rem; background:var(--tei-rust); color:#fff; font-weight:600; font-size:0.95rem; padding:0.7rem 1.15rem; text-decoration:none; border:2px solid var(--tei-rust); transition:background 0.2s, color 0.2s; }
.event-hook__cta:hover, .event-hook__cta:focus-visible { background:transparent; color:#fff; outline:none; }
.event-hook__latest { border-left:1px solid rgba(255,255,255,0.18); padding-left:1.75rem; }
.event-hook__label { font-family:inherit; font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#8FD9CF; margin:0 0 0.5rem; }
.event-hook__latest ol { list-style:none; margin:0; padding:0; }
.event-hook__latest li { padding:0.7rem 0; border-bottom:1px solid rgba(255,255,255,0.14); }
.event-hook__latest li:last-child { border-bottom:0; }
.event-hook__latest time { display:block; font-size:0.72rem; color:#AEB8CC; margin-bottom:0.15rem; }
.event-hook__latest a { font-family:var(--tei-font-display); font-size:1.02rem; line-height:1.3; text-decoration:none; }
.event-hook__latest a:hover, .event-hook__latest a:focus-visible { text-decoration:underline; }
.event-hook__more { max-width:var(--shell-max); margin:0 auto; padding:0.7rem var(--gutter); display:flex; align-items:baseline; gap:1rem; border-top:1px solid rgba(255,255,255,0.14); }
.event-hook__more .event-hook__label { margin:0; white-space:nowrap; }
.event-hook__more ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:0.35rem 1.4rem; }
.event-hook__more a { font-size:0.85rem; color:#DCE2EE; text-decoration:none; }
.event-hook__more a:hover, .event-hook__more a:focus-visible { color:#fff; text-decoration:underline; }
.event-hook a:focus-visible { outline:2px solid #8FD9CF; outline-offset:2px; }
@media (max-width:48rem) {
  .event-hook__inner { grid-template-columns:1fr; gap:1.25rem; padding-top:1.5rem; }
  .event-hook__latest { border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,0.18); padding-top:1rem; }
  .event-hook__more { flex-direction:column; gap:0.4rem; }
  .event-hook__cta { width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) { .event-hook__dot { animation:none; } .event-hook__cta { transition:none; } }
@media (max-width:48rem) { .site-header__inner { position:relative; } .search-toggle { position:absolute; top:0.45rem; right:var(--gutter); margin:0; } }

/* ---- The TEI Briefing newsletter ---- */
.nl { display:grid; gap:1rem 2rem; align-items:end; }
.nl__kicker { margin:0 0 0.3rem; font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--tei-rust); }
.nl__title { font-family:var(--tei-font-display); font-size:1.6rem; line-height:1.15; color:var(--tei-navy); margin:0 0 0.35rem; }
.nl__blurb { margin:0; font-size:0.95rem; line-height:1.5; color:var(--tei-muted); max-width:34rem; }
.nl__form { display:flex; flex-wrap:wrap; gap:0.5rem; margin:0; }
.nl__input { flex:1 1 14rem; min-width:0; font:inherit; font-size:1rem; padding:0.7rem 0.85rem; border:1px solid #9AA0AE; background:var(--tei-white); color:var(--tei-navy); border-radius:0; }
.nl__input:focus { outline:2px solid var(--tei-teal); outline-offset:1px; border-color:var(--tei-teal); }
.nl__btn { font:inherit; font-weight:600; font-size:0.95rem; padding:0.7rem 1.3rem; background:var(--tei-navy); color:#fff; border:2px solid var(--tei-navy); cursor:pointer; border-radius:0; }
.nl__btn:hover, .nl__btn:focus-visible { background:var(--tei-rust); border-color:var(--tei-rust); outline:none; }
.nl__btn:disabled { opacity:0.7; cursor:progress; }
.nl__note { flex-basis:100%; margin:0.25rem 0 0; font-size:0.9rem; color:var(--tei-teal); font-weight:600; }
.nl__form.is-done .nl__input, .nl__form.is-done .nl__btn { display:none; }
.nl-band { margin:2.5rem 0; padding:2rem 0; border-top:3px solid var(--tei-navy); border-bottom:1px solid var(--tei-border); }
@media (min-width:48rem) { .nl--band, .nl--page { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.nl--article { margin:2.5rem 0 1rem; padding:1.5rem; background:var(--tei-white); border-top:3px solid var(--tei-rust); }
.nl--article .nl__title { font-size:1.35rem; }
.nl--page { margin:2rem 0; padding:1.75rem; background:var(--tei-white); border-top:3px solid var(--tei-rust); }
.nl--footer { max-width:var(--shell-max); margin:0 auto; padding:1.5rem var(--gutter); border-top:1px solid rgba(127,127,127,0.3); grid-template-columns:1fr; }
@media (min-width:48rem) { .nl--footer { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.nl--footer .nl__kicker { display:none; }
.nl--footer .nl__title { font-size:1.2rem; color:inherit; }
.nl--footer .nl__blurb { color:inherit; opacity:0.85; }
/* phone header: brand and search icon share the top row */
@media (max-width:47.99rem) {
  .site-header__inner { position:relative; }
  .site-brand { padding-right:3rem; }
  .site-header .search-toggle { position:absolute; top:var(--space-3); right:var(--gutter); margin:0; }
}
.nl--footer .nl__btn { background:var(--tei-rust); border-color:var(--tei-rust); } .nl--footer .nl__btn:hover, .nl--footer .nl__btn:focus-visible { background:transparent; border-color:#fff; } .nl--footer .nl__note { color:#8FD9CF; }

/* ---- Events hub and event pages (live coverage style) ---- */
.ev-pill { display:inline-flex; align-items:center; gap:0.4rem; font-size:0.68rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; padding:0.22rem 0.55rem; border-radius:2px; line-height:1.2; }
.ev-pill--live { background:var(--tei-rust); color:#fff; }
.ev-pill--developing { background:#E6F2F0; color:#0A5F5A; border:1px solid #9CCFC8; }
.ev-pill--archived { background:#ECEBE6; color:#4D5262; }
.ev-pill__dot { width:0.45rem; height:0.45rem; border-radius:50%; background:#fff; animation:tei-pulse-w 2s ease-out infinite; }
@keyframes tei-pulse-w { 0% { box-shadow:0 0 0 0 rgba(255,255,255,0.7); } 70% { box-shadow:0 0 0 0.45rem rgba(255,255,255,0); } 100% { box-shadow:0 0 0 0 rgba(255,255,255,0); } }
.ev-hub-head h1 { font-family:var(--tei-font-display); font-size:clamp(2.2rem,5vw,3.2rem); color:var(--tei-navy); margin:0.2rem 0 0.4rem; }
.ev-hub-head .lede { margin:0 0 1.5rem; }
.ev-feature { display:grid; background:var(--tei-navy); color:#E9ECF3; border-top:4px solid var(--tei-rust); }
@media (min-width:56rem) { .ev-feature { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); } }
.ev-feature__media { display:block; min-height:14rem; overflow:hidden; background:var(--tei-navy); }
.ev-feature__img, .ev-card__img, .ev-hero__img, .ev-graphic { display:block; width:100%; height:100%; object-fit:cover; }
.ev-feature__body { padding:1.75rem 1.75rem 2rem; display:flex; flex-direction:column; justify-content:center; }
.ev-feature__title { font-family:var(--tei-font-display); font-size:clamp(1.8rem,3.6vw,2.6rem); line-height:1.1; margin:0.6rem 0; }
.ev-feature__title a, .ev-feature a { color:#fff; text-decoration:none; }
.ev-feature__title a:hover { text-decoration:underline; text-decoration-color:var(--tei-rust); }
.ev-feature__summary { font-family:var(--tei-font-display); font-size:1.05rem; line-height:1.55; color:#DCE2EE; margin:0 0 0.8rem; }
.ev-feature .ev-card__meta, .ev-feature .ev-card__region { color:#AEB8CC; }
.ev-cta { align-self:flex-start; margin-top:0.6rem; background:var(--tei-rust); color:#fff !important; font-weight:600; padding:0.65rem 1.1rem; text-decoration:none; border:2px solid var(--tei-rust); }
.ev-cta:hover, .ev-cta:focus-visible { background:transparent; }
.ev-credit { font-size:0.72rem; color:var(--tei-muted); margin:0.4rem 0 0; line-height:1.4; }
.ev-credit a { color:inherit; }
.ev-chips { display:flex; flex-wrap:wrap; gap:0.5rem; margin:2rem 0 1.25rem; }
.ev-chip { font:inherit; font-size:0.82rem; padding:0.4rem 0.8rem; border:1px solid var(--tei-border); background:var(--tei-white); color:var(--tei-navy); border-radius:999px; cursor:pointer; }
.ev-chip span { color:var(--tei-muted); font-size:0.75rem; margin-left:0.15rem; }
.ev-chip:hover { border-color:var(--tei-navy); }
.ev-chip.is-on { background:var(--tei-navy); border-color:var(--tei-navy); color:#fff; }
.ev-chip.is-on span { color:#C9D1E0; }
.ev-chip:focus-visible { outline:2px solid var(--tei-teal); outline-offset:2px; }
.ev-grid { list-style:none; margin:0 0 2rem; padding:0; display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr)); }
.ev-card { background:var(--tei-white); border-top:3px solid var(--tei-navy); display:flex; flex-direction:column; }
.ev-card[hidden] { display:none; }
.ev-card__media { display:block; aspect-ratio:16/9; overflow:hidden; background:var(--tei-navy); }
.ev-card__body { padding:1rem 1.1rem 1.2rem; }
.ev-card__top { display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; margin:0; }
.ev-card__region { font-size:0.7rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-teal); }
.ev-card__title { font-family:var(--tei-font-display); font-size:1.3rem; line-height:1.2; margin:0.55rem 0 0.4rem; }
.ev-card__title a { color:var(--tei-navy); text-decoration:none; }
.ev-card__title a:hover { color:var(--tei-rust); }
.ev-card__summary { font-size:0.9rem; line-height:1.5; color:#3A3F4C; margin:0 0 0.6rem; }
.ev-card__meta { font-size:0.78rem; color:var(--tei-muted); margin:0; }
.ev-empty { color:var(--tei-muted); font-size:0.9rem; }
.ev-hero { position:relative; display:grid; background:var(--tei-navy); color:#fff; border-top:4px solid var(--tei-rust); overflow:hidden; }
.ev-hero__media { position:absolute; inset:0; }
.ev-hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(18,30,60,0.96) 0%, rgba(18,30,60,0.85) 45%, rgba(18,30,60,0.35) 100%); }
.ev-hero__body { position:relative; padding:2.5rem 2rem 2.25rem; max-width:44rem; }
.ev-hero__crumb { font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:#AEB8CC; margin:0 0 0.8rem; }
.ev-hero__crumb a { color:#8FD9CF; text-decoration:none; }
.ev-hero__title { font-family:var(--tei-font-display); font-size:clamp(2rem,5vw,3.3rem); line-height:1.05; margin:0.6rem 0 0.7rem; color:#fff; }
.ev-hero__summary { font-family:var(--tei-font-display); font-size:1.15rem; line-height:1.5; color:#E3E8F1; margin:0 0 0.8rem; }
.ev-hero__meta { font-size:0.8rem; color:#C3CBDA; margin:0; }
.ev-layout { display:grid; gap:2.5rem; margin-top:2rem; }
@media (min-width:60rem) { .ev-layout { grid-template-columns:minmax(0,1fr) 19rem; } }
.ev-h2 { font-family:inherit; font-size:0.78rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--tei-navy); border-top:3px solid var(--tei-navy); padding-top:0.6rem; margin:0 0 1rem; }
.ev-why p { font-family:var(--tei-font-display); font-size:1.2rem; line-height:1.55; color:#1E2740; margin:0 0 2rem; }
.ev-numbers ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(10rem,1fr)); gap:1px; background:var(--tei-border); border:1px solid var(--tei-border); }
.ev-numbers li { background:var(--tei-white); padding:1rem 1.1rem; }
.ev-num { display:block; font-family:var(--tei-font-display); font-size:1.7rem; line-height:1.1; color:var(--tei-rust); font-weight:700; }
.ev-num__label { display:block; font-size:0.82rem; line-height:1.35; color:#3A3F4C; margin-top:0.35rem; }
.ev-note { font-size:0.72rem; color:var(--tei-muted); margin:0.4rem 0 2rem; }
.ev-devlist { list-style:none; margin:0 0 2rem; padding:0 0 0 1.4rem; border-left:2px solid var(--tei-border); }
.ev-devlist li { position:relative; padding:0 0 1.2rem 0.4rem; }
.ev-devlist li::before { content:""; position:absolute; left:-1.87rem; top:0.3rem; width:0.7rem; height:0.7rem; border-radius:50%; background:var(--tei-rust); border:2px solid var(--tei-paper); }
.ev-devlist time { display:block; font-size:0.75rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--tei-teal); }
.ev-devlist p { margin:0.2rem 0 0; font-family:var(--tei-font-display); font-size:1.08rem; line-height:1.4; color:var(--tei-navy); }
.ev-devlist a { font-family:var(--tei-font-body, inherit); font-size:0.82rem; color:var(--tei-teal); white-space:nowrap; }
.ev-count { float:right; font-weight:600; color:var(--tei-muted); letter-spacing:0.04em; text-transform:none; }
.ev-filter { display:flex; flex-wrap:wrap; align-items:center; gap:0.4rem; margin:0 0 0.6rem; }
.ev-filter__label { font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--tei-muted); width:4rem; }
.ev-artlist { list-style:none; margin:1rem 0 0; padding:0; }
.ev-art { display:grid; grid-template-columns:7.5rem minmax(0,1fr); gap:1rem; padding:0.85rem 0; border-bottom:1px solid var(--tei-border); }
.ev-art[hidden] { display:none; }
.ev-art time { font-size:0.78rem; color:var(--tei-muted); padding-top:0.15rem; }
.ev-art__kick { margin:0 0 0.15rem; font-size:0.68rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-teal); }
.ev-art__also { color:var(--tei-rust); text-decoration:none; }
.ev-art__title { font-family:var(--tei-font-display); font-size:1.08rem; line-height:1.3; color:var(--tei-navy); text-decoration:none; }
.ev-art__title:hover { color:var(--tei-rust); }
.ev-map img { display:block; width:100%; height:auto; background:var(--tei-white); border:1px solid var(--tei-border); }
.ev-map__key { font-size:0.75rem; color:var(--tei-muted); margin:0.5rem 0 0.2rem; display:flex; align-items:center; gap:0.35rem; flex-wrap:wrap; }
.k { display:inline-block; width:0.8rem; height:0.8rem; } .k--main { background:#0C726C; } .k--soft { background:#9CCFC8; margin-left:0.6rem; }
.ev-side__p { font-size:0.88rem; color:#3A3F4C; margin:0 0 1.5rem; }
.ev-facts { margin:0 0 1.5rem; display:grid; gap:0.7rem; }
.ev-facts dt { font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tei-muted); }
.ev-facts dd { margin:0.1rem 0 0; font-size:0.92rem; color:var(--tei-navy); }
.ev-side__links { display:flex; flex-direction:column; gap:0.4rem; margin:0 0 1.75rem; font-size:0.9rem; }
.ev-side__links a { color:var(--tei-teal); }
.ev-related ul { list-style:none; margin:0; padding:0; display:grid; gap:0.75rem; }
.ev-related a { display:block; padding:0.8rem 0.9rem; background:var(--tei-white); border-left:3px solid var(--tei-teal); text-decoration:none; }
.ev-related a:hover { border-left-color:var(--tei-rust); }
.ev-related__top { display:flex; align-items:center; gap:0.5rem; font-size:0.75rem; color:var(--tei-muted); }
.ev-related__name { display:block; font-family:var(--tei-font-display); font-size:1.05rem; color:var(--tei-navy); margin-top:0.35rem; }
@media (max-width:40rem) {
  .ev-feature__body { padding:1.25rem 1.1rem 1.5rem; }
  .ev-hero__body { padding:1.75rem 1.1rem 1.6rem; }
  .ev-hero__media::after { background:linear-gradient(180deg, rgba(18,30,60,0.75) 0%, rgba(18,30,60,0.95) 100%); }
  .ev-art { grid-template-columns:1fr; gap:0.2rem; }
  .ev-filter__label { width:100%; }
  .ev-count { float:none; display:block; margin-top:0.3rem; }
  .ev-cta { align-self:stretch; text-align:center; }
}
@media (prefers-reduced-motion:reduce) { .ev-pill__dot { animation:none; } }
.ev-wrap { max-width:var(--shell-max); margin:0 auto; padding:var(--space-6) var(--gutter) var(--space-7); }
.ev-wrap .label-caps { margin:0; }
.ev-wrap p { margin-top:0; }
.ev-hero { grid-template-columns:1fr; }
.ev-hero__media { position:relative; inset:auto; min-height:12rem; order:-1; }
.ev-hero__media::after { display:none; }
@media (min-width:52rem) { .ev-hero { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); } .ev-hero__media { order:2; min-height:100%; } }

/* ---- Header 'Sign up' newsletter button and panel ---- */
.nl-cta { display:inline-flex; align-items:center; gap:0.5rem; margin-left:1rem; padding:0.55rem 1rem; background:var(--tei-rust); color:#fff; font-size:0.9rem; font-weight:600; letter-spacing:0.02em; text-decoration:none; border:2px solid var(--tei-rust); white-space:nowrap; flex:0 0 auto; }
.nl-cta:hover, .nl-cta:focus-visible { background:var(--tei-navy); border-color:var(--tei-navy); color:#fff; text-decoration:none; outline:none; }
.nl-cta:focus-visible { box-shadow:0 0 0 3px rgba(12,114,108,0.45); }
.nl-pop { position:absolute; z-index:900; background:var(--tei-white); border-top:4px solid var(--tei-rust); box-shadow:0 18px 50px rgba(18,30,60,0.22); padding:1.25rem 1.25rem 1rem; }
.nl-pop[hidden] { display:none; }
.nl-pop__close { position:absolute; top:0.4rem; right:0.5rem; border:0; background:none; font-size:1.5rem; line-height:1; color:var(--tei-muted); cursor:pointer; padding:0.2rem 0.4rem; }
.nl-pop__close:hover { color:var(--tei-navy); }
.nl--pop { grid-template-columns:1fr !important; gap:0.8rem; }
.nl--pop .nl__title { font-size:1.35rem; }
.nl--pop .nl__blurb { font-size:0.88rem; }
.nl-pop__more { margin:0.2rem 0 0; font-size:0.8rem; }
.nl-pop__more a { color:var(--tei-teal); }
@media (min-width:48rem) { .site-header__inner > .site-nav { margin-left:auto; } }
@media (max-width:47.99rem) {
  .site-brand { padding-right:6rem; }
  .nl-cta { position:absolute; top:var(--space-3); right:calc(var(--gutter) + 2.9rem); margin:0; width:2.5rem; height:2.5rem; padding:0; justify-content:center; border-radius:50%; }
  .nl-cta__text { display:none; }
}

/* ---- Careers form ---- */
.careers-form { margin:1.5rem 0 0; padding:1.5rem; background:var(--tei-white); border-top:3px solid var(--tei-rust); max-width:46rem; }
.cf-grid { display:grid; gap:1rem 1.25rem; grid-template-columns:1fr; }
@media (min-width:40rem) { .cf-grid { grid-template-columns:1fr 1fr; } .cf-wide { grid-column:1 / -1; } }
.cf-grid label { display:flex; flex-direction:column; gap:0.35rem; font-size:0.85rem; font-weight:600; color:var(--tei-navy); }
.cf-opt { font-weight:400; color:var(--tei-muted); }
.cf-grid input, .cf-grid select, .cf-grid textarea { font:inherit; font-size:1rem; font-weight:400; padding:0.6rem 0.7rem; border:1px solid #9AA0AE; background:var(--tei-white); color:var(--tei-navy); border-radius:0; }
.cf-grid input:focus, .cf-grid select:focus, .cf-grid textarea:focus { outline:2px solid var(--tei-teal); outline-offset:1px; border-color:var(--tei-teal); }
.cf-help { font-size:0.85rem; color:var(--tei-muted); margin:1rem 0; }
.cf-done { margin:0.8rem 0 0; font-size:0.9rem; color:var(--tei-teal); font-weight:600; }

/* ---- News wire ---- */
.wire__tabs { display:flex; flex-wrap:wrap; gap:0; border-bottom:2px solid var(--tei-navy); margin:1.5rem 0 0.5rem; }
.wire__tab { font:inherit; font-size:0.85rem; font-weight:600; padding:0.55rem 0.9rem; border:0; background:none; color:var(--tei-muted); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; }
.wire__tab span { font-weight:400; font-size:0.75rem; }
.wire__tab:hover { color:var(--tei-navy); }
.wire__tab.is-on { color:var(--tei-navy); border-bottom-color:var(--tei-rust); }
.wire__status { font-size:0.78rem; color:var(--tei-muted); margin:0.4rem 0 0.5rem; }
.wire { list-style:none; margin:0; padding:0; max-width:52rem; }
.wire__item { display:grid; grid-template-columns:8.5rem minmax(0,1fr); gap:1.25rem; padding:1rem 0; border-bottom:1px solid var(--tei-border); }
.wire__item[hidden] { display:none; }
.wire__item time { font-size:0.8rem; color:var(--tei-muted); padding-top:0.1rem; font-variant-numeric:tabular-nums; }
.wire__region { margin:0 0 0.2rem; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; font-variant:small-caps; color:var(--tei-rust); }
.section .wire__title, .wire__title { font-family:var(--tei-font-display); font-size:1.15rem; line-height:1.3; margin:0 0 0.3rem; }
.wire__title a { color:var(--tei-navy); text-decoration:none; }
.wire__title a:hover { color:var(--tei-rust); text-decoration:underline; }
.section .wire__sum, .wire__sum { font-size:0.92rem; line-height:1.5; color:#3A3F4C; margin:0; max-width:44rem; }
.wire__chips { margin:0.45rem 0 0 !important; display:flex; flex-wrap:wrap; gap:0.35rem; }
.wire__chip { font-size:0.72rem; padding:0.15rem 0.55rem; border:1px solid #9CCFC8; background:#E6F2F0; color:#0A5F5A; border-radius:999px; text-decoration:none; }
.wire__chip:hover { border-color:var(--tei-teal); }
.wire__more { font:inherit; font-weight:600; margin:1.5rem 0 0; padding:0.7rem 1.4rem; background:var(--tei-white); color:var(--tei-navy); border:2px solid var(--tei-navy); cursor:pointer; }
.wire__more:hover { background:var(--tei-navy); color:#fff; }
@media (max-width:40rem) { .wire__item { grid-template-columns:1fr; gap:0.2rem; } .wire__tabs { overflow-x:auto; flex-wrap:nowrap; } .wire__tab { white-space:nowrap; } }

/* ---- News briefs ---- */
.brief { max-width:44rem; }
.brief h1 { font-family:var(--tei-font-display); font-size:clamp(1.8rem,3.4vw,2.4rem); line-height:1.15; color:var(--tei-navy); margin:0.3rem 0 0.6rem; }
.brief__body p { font-family:var(--tei-font-display); font-size:1.1rem; line-height:1.65; color:#1E2740; margin:0 0 1rem; }
.brief__full { margin:1.5rem 0 2rem; }
.brief__full a { display:inline-flex; gap:0.4rem; background:var(--tei-navy); color:#fff; font-weight:600; padding:0.7rem 1.2rem; text-decoration:none; border:2px solid var(--tei-navy); }
.brief__full a:hover, .brief__full a:focus-visible { background:var(--tei-rust); border-color:var(--tei-rust); }
.brief__related h2 { font-size:0.78rem !important; font-family:inherit !important; letter-spacing:0.12em; text-transform:uppercase; border-top:3px solid var(--tei-navy); padding-top:0.6rem; }
.brief__related ul { list-style:none; margin:0; padding:0; }
.brief__related li { padding:0.6rem 0; border-bottom:1px solid var(--tei-border); }
.brief__related span { display:block; font-size:0.75rem; color:var(--tei-muted); }
.brief__related a { font-family:var(--tei-font-display); color:var(--tei-navy); text-decoration:none; }
.brief__related a:hover { color:var(--tei-rust); }

/* ---- News front page (broadsheet grid) ---- */
.np-masthead { font-family:var(--tei-font-display); font-size:clamp(2.4rem,6vw,4rem) !important; letter-spacing:-0.01em; text-align:center; border-bottom:4px double var(--tei-navy); padding-bottom:0.4rem; max-width:none !important; }
.np { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:8px; grid-auto-flow:row dense; column-gap:0; margin:1rem -1rem 0; }
.np__item { align-self:start; padding:0.9rem 1rem 1rem; border-left:1px solid var(--tei-border); border-top:1px solid var(--tei-border); background:transparent; }
.np__item[hidden] { display:none; }
.np__media { display:none; margin:0 0 0.6rem; }
.np__media img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.np__kicker { margin:0 0 0.25rem !important; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; font-variant:small-caps; color:var(--tei-rust); }
.section .np__title, .np__title { font-family:var(--tei-font-display); font-size:1.05rem; line-height:1.22; font-weight:700; margin:0 0 0.3rem; color:var(--tei-navy); }
.np__title a { color:inherit; text-decoration:none; }
.np__title a:hover { color:var(--tei-rust); text-decoration:underline; text-underline-offset:0.12em; }
.np__dateline { margin:0 0 0.35rem !important; font-size:0.72rem; color:var(--tei-muted); text-transform:uppercase; letter-spacing:0.06em; }
.section .np__sum, .np__sum { font-family:var(--tei-font-display); font-size:0.9rem; line-height:1.5; color:#2A3145; margin:0 !important; }
.np__chips { margin:0.5rem 0 0 !important; display:flex; flex-wrap:wrap; gap:0.3rem; }
.np__chips .wire__chip { font-size:0.68rem; }
.np__item.is-lead { grid-column:span 2; border-top:3px solid var(--tei-navy); }
.np__item.is-lead .np__media, .np__item.is-second .np__media, .np__item.is-feature .np__media { display:block; }
.section .np__item.is-lead .np__title { font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1.12; }
.section .np__item.is-lead .np__sum { font-size:1.05rem; }
.np__item.is-second { border-top:3px solid var(--tei-navy); }
.section .np__item.is-second .np__title { font-size:1.3rem; }
.section .np__item.is-feature .np__title { font-size:1.2rem; }
.wire__tabs { justify-content:center; }
@media (max-width:64rem) { .np { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:52rem) { .np { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:36rem) { .np { grid-template-columns:1fr; margin:1rem 0 0; } .np__item { border-left:0; padding:0.9rem 0; } .np__item.is-lead { grid-column:auto; } }

/* ---- Interactive home events banner ---- */
.ehk__tabs { max-width:var(--shell-max); margin:0 auto; padding:0.9rem var(--gutter) 0; display:flex; gap:0.4rem; overflow-x:auto; scrollbar-width:thin; border-bottom:1px solid rgba(255,255,255,0.14); }
.ehk__tab { font:inherit; font-size:0.8rem; font-weight:600; letter-spacing:0.02em; white-space:nowrap; padding:0.5rem 0.85rem 0.6rem; background:none; border:0; border-bottom:3px solid transparent; color:#AEB8CC; cursor:pointer; }
.ehk__tab:hover { color:#fff; }
.ehk__tab.is-on { color:#fff; border-bottom-color:var(--tei-rust); }
.ehk__tab:focus-visible { outline:2px solid #8FD9CF; outline-offset:-2px; }
.ehk__stage { display:grid; max-width:var(--shell-max); margin:0 auto; }
.ehk__panel { grid-area:1 / 1; padding:1.75rem var(--gutter) 1.75rem; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:2.5rem; opacity:0; transition:opacity 0.45s ease; }
.ehk__panel.is-on { opacity:1; }
.ehk__panel[hidden] { display:none; }
.ehk__main { display:flex; flex-direction:column; justify-content:center; }
.ehk__main .event-hook__cta { align-self:flex-start; }
.ehk__side { border-left:1px solid rgba(255,255,255,0.18); padding-left:1.75rem; }
.ehk__img { margin:0 0 0.8rem; }
.ehk__img img { display:block; width:100%; aspect-ratio:16/8; object-fit:cover; }
.ehk__credit { margin:0.25rem 0 0; font-size:0.66rem; color:#8D98AE; }
.ehk__list { list-style:none; margin:0; padding:0; }
.ehk__list li { padding:0.55rem 0; border-bottom:1px solid rgba(255,255,255,0.14); }
.ehk__list li:last-child { border-bottom:0; }
.ehk__list time { display:block; font-size:0.7rem; color:#AEB8CC; }
.ehk__list a { font-family:var(--tei-font-display); font-size:0.98rem; line-height:1.3; color:#fff; text-decoration:none; }
.ehk__list a:hover, .ehk__list a:focus-visible { text-decoration:underline; }
@media (max-width:48rem) {
  .ehk__panel { grid-template-columns:1fr; gap:1.25rem; padding-top:1.25rem; }
  .ehk__side { border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,0.18); padding-top:1rem; }
  .ehk__main .event-hook__cta { align-self:stretch; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) { .ehk__panel { transition:none; } }
/* News by region sections */
.np-sec { margin:2.25rem 0 0; }
.np-sec__h { font:600 0.8rem/1.2 var(--font-sans, sans-serif); letter-spacing:0.14em; text-transform:uppercase; font-variant:small-caps; color:var(--navy,#0b2340); border-top:3px double currentColor; border-bottom:1px solid currentColor; padding:0.45rem 0 0.4rem; margin:0; }
.np--sec { margin-top:0.5rem; }
.np-sec__more { margin:0.4rem 0 0; text-align:right; font-size:0.88rem; border-top:1px solid #d8d2c6; padding-top:0.45rem; }
.np-sec__more a { font-weight:600; color:var(--rust,#a2471f); text-decoration:none; }
.np-sec__more a::after { content:" \203A"; }
.np-sec__more a:hover { text-decoration:underline; }

/* WAPP model pitch on Research */
.research-model-pitch { margin: var(--space-5) 0 var(--space-6); }
.research-model-pitch .label-caps { margin: 0 0 var(--space-2); }
.research-model-pitch .consulting-block__title { margin-top: 0; }
.research-model-pitch p { font-size: 0.9375rem; line-height: 1.55; color: var(--tei-ink); }

/* Priya: tablet grid + pitch */
/* News: respect hidden on the full wire grid, then even rows instead of masonry, so every column ends on the same line */
.np[hidden] { display: none; }
.np { grid-auto-rows: auto; grid-auto-flow: row dense; }
.np > .np__item { grid-row-end: auto !important; align-self: stretch; }
@media (min-width:52.0625rem) and (max-width:64rem) {
  .np__item.is-lead { grid-column: 1 / -1; }
  .np__item:last-child:nth-child(3n) { grid-column: span 2; }
  .np__item:last-child:nth-child(3n+2) { grid-column: 1 / -1; }
}
@media (min-width:36.0625rem) and (max-width:52rem) {
  .np__item.is-lead { grid-column: 1 / -1; }
  .np__item:last-child:nth-child(2n) { grid-column: 1 / -1; }
}
@media (min-width:64.0625rem) {
  .np__item.is-lead { grid-column: span 2; }
  .np__item:last-child:nth-child(4n+2) { grid-column: span 2; }
  .np__item:last-child:nth-child(4n+1) { grid-column: span 3; }
  .np__item:last-child:nth-child(4n) { grid-column: 1 / -1; }
}
/* Research: WAPP pitch sits inside the 50rem measure */
.research-model-pitch { max-width: 50rem; margin: var(--space-5) 0 var(--space-6); }
@media (max-width:48rem) { .research-model-pitch { grid-template-columns: 1fr; } }
/* End Priya: tablet grid + pitch */

/* Priya: region view fill */
#wire.np:not([hidden]) { display: flex; flex-wrap: wrap; align-items: stretch; }
#wire.np > .np__item { flex: 1 1 calc(25% - 1px); min-width: 0; grid-column: auto !important; }
#wire.np > .np__item.is-lead { flex-basis: 50%; }
@media (max-width:64rem) {
  #wire.np > .np__item { flex-basis: calc(33.333% - 1px); }
  #wire.np > .np__item.is-lead { flex-basis: 100%; }
}
@media (max-width:52rem) { #wire.np > .np__item { flex-basis: calc(50% - 1px); } }
@media (max-width:36rem) { #wire.np > .np__item, #wire.np > .np__item.is-lead { flex-basis: 100%; } }
/* End Priya: region view fill */

/* Priya: pitch caption */
/* The source line is baked into the map image (about 11px at 1280 wide), so it shrinks to about 3px on phones.
   Crop the image above the baked line and the empty band below the map. A real HTML caption is still needed. */
.research-model-pitch .consulting-block__media {
  aspect-ratio: 1280 / 440;
  background: #F5F3EE;
}
.research-model-pitch .consulting-block__media img {
  width: 100%;
  height: auto !important;
  aspect-ratio: 1280 / 440;
  object-fit: cover;
  object-position: 50% 0;
}
.research-model-pitch .consulting-block__media figcaption,
.research-model-pitch .pitch-caption {
  position: static;
  margin: 0;
  padding: 0.5rem var(--space-4, 1rem) 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #5F6576;
  background: #F5F3EE;
}
@media (min-width:48.0625rem) {
  .research-model-pitch .consulting-block__media { align-self: start; }
}
/* End Priya: pitch caption */

/* Lina: Research order and mobile nav (15 Oct) */
.pitch-banner { margin: 0 0 var(--space-5, 1.5rem); padding: var(--space-2, 0.5rem) 0; border-top: 1px solid var(--tei-border); border-bottom: 1px solid var(--tei-border); font-size: 0.9375rem; }
.pitch-banner .label-caps { margin-right: 0.5rem; }
.research-model-pitch { margin-top: var(--space-7, 3rem); scroll-margin-top: 5rem; }
@media (max-width: 47.99rem) {
  .site-nav { flex: 1 1 100%; width: 100%; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav ul { display: flex; flex-wrap: nowrap; gap: 0 var(--space-4, 1rem); white-space: nowrap; padding-right: var(--space-5, 1.5rem); }
}
@media (max-width: 21rem) { .site-nav ul { display: flex; } }
/* End Lina: Research order and mobile nav */

/* Partners cards (About) */
.partners-grid {
  display: grid;
  gap: var(--space-5, 1.5rem);
  margin-top: var(--space-5, 1.5rem);
  align-items: stretch;
}
@media (min-width: 48.0625rem) {
  .partners-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 52rem;
    margin-inline: auto;
  }
}
.partner.panel {
  display: flex;
  flex-direction: column;
  margin: 0;
  height: 100%;
}
.partner.panel + .partner.panel { margin-top: 0; }
.partner__role {
  margin: 0 0 var(--space-3, 0.75rem);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tei-muted, #5F6576);
}
.partner__bio {
  margin: 0 0 var(--space-5, 1.5rem);
  flex: 1 1 auto;
}
.partner.panel h3 {
  margin: 0 0 var(--space-2, 0.5rem);
}
/* Distinguished Fellow (About) — own row, centered single card */
.fellow-grid {
  display: grid;
  gap: var(--space-5, 1.5rem);
  margin-top: var(--space-5, 1.5rem);
  justify-items: center;
}
@media (min-width: 48.0625rem) {
  .fellow-grid {
    grid-template-columns: minmax(0, 28rem);
    justify-content: center;
    max-width: 52rem;
    margin-inline: auto;
  }
}
.fellow-grid .fellow {
  width: 100%;
}
/* End Partners cards (About) */

/* Shell centering and page widths (15 Oct) */
:root {
  --shell-max: 1200px;
  --measure-max: 45rem; /* ~720px article measure */
}
.site-header__inner,
.site-footer__inner,
.banner__caption,
.home-grid,
.section {
  max-width: var(--shell-max);
  width: 100%;
  margin-inline: auto;
}
/* Non-article pages: full shell width for headings and body */
.section:not(.article) > h1,
.section:not(.article) > h2,
.section:not(.article) > h3,
.section:not(.article) > p,
.section:not(.article) > .lede,
.section:not(.article) > .panel,
.section:not(.article) > .office-grid,
.section:not(.article) > .partners-grid,
.section:not(.article) > ul,
.section:not(.article) > .practice-areas,
.section--narrow > h1,
.section--narrow > p,
.section--narrow > .lede,
.section--narrow > .panel,
.section--narrow > .office-grid {
  max-width: none;
}
.section--narrow {
  max-width: var(--shell-max);
  margin-inline: auto;
}
/* Article body: ~720px, centered */
.article.section {
  max-width: 45rem;
  width: 100%;
  margin-inline: auto;
}
/* Outlook index cards use the shell */
.section.outlook-index {
  max-width: var(--shell-max);
  margin-inline: auto;
}
/* End Shell centering and page widths (15 Oct) */

/* Priya: research quiet rows (16 Oct) */
/* Section padding: works with or without the section--research class */
.section:has(> .research-shell) { padding-top: var(--space-6, 2rem); padding-bottom: var(--space-7, 3rem); }
@media (max-width: 47.99rem) {
  .section:has(> .research-shell) { padding-top: var(--space-5, 1.5rem); padding-bottom: var(--space-6, 2rem); }
}
/* Index rows: hairline rules, no card chrome */
.research-shell .research-list { gap: 0; border-top: 1px solid rgba(108, 114, 132, 0.35); }
.research-shell .research-card {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid rgba(108, 114, 132, 0.28);
  padding: 0.875rem 0 0.9375rem;
  margin: 0;
}
.research-shell .research-card:hover { background: transparent; border-left: 0; }
.research-shell .research-card > p:first-child {
  margin: 0 0 0.3125rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-variant: small-caps;
  line-height: 1.3;
  color: #6C7284;
}
.research-shell .research-card__title {
  margin: 0 0 0.5rem;
  font-family: var(--tei-font-display);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.32;
  color: #121E3C;
}
.research-shell .research-card__title a { color: #121E3C; }
.research-shell .research-card__title a:hover,
.research-shell .research-card__title a:focus-visible { color: #0C726C; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.research-shell .research-card__meta { margin: 0; font-size: 0.8125rem; line-height: 1.45; color: #6C7284; }
/* End Priya: research quiet rows (16 Oct) */

/* Design pass 1021 (quiet labels, hamburger, news fill, home cues, portal) */
.kicker, .research-card__desk, .article__desk, .label-caps, .article__kicker, .np__kicker, .map-panel__kicker, .event-card .kicker, .timeline__item .kicker {
  text-transform: none; font-variant-caps: all-small-caps; font-variant: all-small-caps; font-weight: 500; letter-spacing: 0.06em; font-size: 0.85rem; color: var(--tei-muted);
}
.np__kicker { color: var(--tei-navy); opacity: 0.72; }
.article__kicker a, .kicker:hover { color: inherit; }
.np__item { align-self: stretch; }
.letterhead-strip { display: none; }
.ehk__tabs, .desk-rail__inner {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 1.25rem, #000 calc(100% - 2.5rem), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 1.25rem, #000 calc(100% - 2.5rem), transparent 100%);
}
.nav-toggle { display: none; }
@media (max-width: 48rem) {
  .site-header__inner { position: relative; flex-wrap: wrap; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; position: absolute; top: 0.45rem; right: calc(var(--gutter) + 5.6rem); width: 2.5rem; height: 2.5rem; background: none; border: 1px solid var(--tei-border); color: var(--tei-navy); cursor: pointer; padding: 0; }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { display: block; width: 18px; height: 2px; background: currentColor; position: relative; content: ""; }
  .nav-toggle span::before { position: absolute; top: -6px; } .nav-toggle span::after { position: absolute; top: 6px; }
  .js-nav .site-nav { display: none; width: 100%; order: 10; }
  .js-nav.nav-open .site-nav { display: block; }
  .site-brand { padding-right: 9rem; }
  .js-nav .site-nav ul { display: flex; flex-direction: column; flex-wrap: nowrap; overflow: visible; gap: 0; padding: 0.5rem 0; }
  .js-nav .site-nav li { border-top: 1px solid var(--tei-border); }
  .js-nav .site-nav a { display: block; padding: 0.7rem 0; }
}
.portal-card { max-width: 30rem; margin: clamp(2rem,6vw,4rem) auto; background: #fff; border: 1px solid var(--tei-border); border-top: 3px solid var(--tei-navy); padding: clamp(1.5rem,4vw,2.5rem); }
.portal-card input[type=email], .portal-card input[type=password], .portal-card input[type=text] { width: 100%; box-sizing: border-box; }
.portal-card h1 { font-family: var(--tei-font-display); font-weight: 400; }

/* Sections 1021: Research listing and long-form template */
.rl { display: block; max-width: 52rem; }
.rl-bar { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: end; padding: .75rem 0 1rem; border-top: 3px solid var(--tei-navy); border-bottom: 1px solid var(--tei-border); }
.rl-f { display: flex; flex-direction: column; gap: .2rem; }
.rl-f span { font-variant: all-small-caps; letter-spacing: .06em; color: var(--tei-muted); font-size: .85rem; }
.rl-f select { font: inherit; font-size: .9rem; padding: .4rem 1.8rem .4rem .6rem; border: 1px solid var(--tei-border); background: #fff; color: var(--tei-navy); max-width: 100%; }
.rl-status { margin: 0 0 0 auto; font-size: .82rem; color: var(--tei-muted); }
.rl-list { list-style: none; margin: 0; padding: 0; }
.rl-item { padding: 1.5rem 0 1.4rem; border-bottom: 1px solid var(--tei-border); }
.rl-kick { margin: 0 0 .35rem; font-variant: all-small-caps; letter-spacing: .06em; font-size: .85rem; color: var(--tei-muted); }
.rl-title { font-family: var(--tei-font-display); font-weight: 400; font-size: clamp(1.35rem, 2.2vw, 1.7rem); line-height: 1.2; margin: 0 0 .5rem; }
.rl-item.is-top .rl-title { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.rl-title a { color: var(--tei-navy); text-decoration: none; }
.rl-title a:hover { text-decoration: underline; text-underline-offset: .12em; }
.rl-dek { font-family: var(--tei-font-display); font-size: 1.05rem; line-height: 1.5; color: #2A3145; margin: 0 0 .5rem; max-width: 44rem; }
.rl-meta { font-size: .8rem; color: var(--tei-muted); margin: 0; }
.rl-more { text-align: center; margin: 1.75rem 0 0; }
.rl-btn { font: inherit; font-weight: 600; font-size: .9rem; padding: .65rem 1.4rem; background: transparent; color: var(--tei-navy); border: 1px solid var(--tei-navy); cursor: pointer; }
.rl-btn:hover { background: var(--tei-navy); color: #fff; }
@media (max-width: 36rem) { .rl-status { margin: 0; flex-basis: 100%; } .rl-f { flex: 1 1 45%; } }
/* long-form article template */
body.is-research .article__body { max-width: 44rem; font-size: 1.12rem; line-height: 1.7; }
body.is-research .article__body h2 { font-family: var(--tei-font-display); font-weight: 400; font-size: 1.55rem; margin: 2.2rem 0 .6rem; padding-top: .8rem; border-top: 1px solid var(--tei-border); scroll-margin-top: 5rem; }
body.is-research .article__body figure { margin: 2rem 0; padding: 1rem 0; border-top: 2px solid var(--tei-navy); border-bottom: 1px solid var(--tei-border); }
body.is-research .article__body figcaption { font-size: .85rem; color: var(--tei-muted); margin-top: .6rem; line-height: 1.45; }
body.is-research .article__body figure img, body.is-research .article__body figure svg { max-width: 100%; height: auto; }
.lf-toc { margin: 1.5rem 0 2rem; padding: 1rem 1.2rem; border-left: 3px solid var(--tei-navy); background: rgba(18,30,60,.035); max-width: 44rem; }
.lf-toc p { margin: 0 0 .4rem; font-variant: all-small-caps; letter-spacing: .06em; font-size: .85rem; color: var(--tei-muted); }
.lf-toc ol { margin: 0; padding-left: 1.2rem; font-size: .95rem; line-height: 1.6; }
.lf-toc a { color: var(--tei-navy); text-decoration: none; } .lf-toc a:hover { text-decoration: underline; }
.lf-kind { font-variant: all-small-caps; letter-spacing: .06em; color: var(--tei-muted); }
.site-nav a[aria-current="page"], .site-nav a.is-section { color: var(--tei-navy); box-shadow: inset 0 -2px 0 var(--tei-rust); }
body.is-research .section.article { max-width: 54rem; }
body.is-research .article h1 { font-size: clamp(2rem, 4vw, 3rem); max-width: 22ch; }

/* 2026-10-23: footer brand/notes align with the footer columns (.site-footer p was overriding the auto margins) */
.site-footer .site-footer__note { margin-left: auto; margin-right: auto; }
.site-footer .site-footer__note + .site-footer__note { margin-top: var(--space-2); padding-top: 0; border-top: 0; }

/* compact country map on listings */
.mini-map{float:right;width:420px;max-width:42%;margin:0 0 .75rem 1.5rem;padding:0;border:0}
.mini-map__toggle{display:none}
.mini-map__svg{height:160px;max-height:160px;overflow:hidden;display:flex;justify-content:flex-end}
.mini-map__svg svg.world-map{display:block;width:auto!important;height:100%!important;max-width:100%;max-height:160px;min-height:0}
.mini-map__cap{font-variant:small-caps;letter-spacing:.06em;font-size:.72rem;color:#6b665e;margin:.2rem 0 0;text-align:right}
.mini-map__note{text-align:right;font-size:.82rem;margin:.15rem 0 0}
.mini-map__clear{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
@media (max-width:48rem){
 .mini-map{float:none;width:auto;max-width:none;margin:0 0 .75rem}
 .mini-map__toggle{display:inline-block;background:none;border:1px solid #cfc9bf;padding:.2rem .7rem;font-variant:small-caps;letter-spacing:.08em;font-size:.8rem;cursor:pointer;color:inherit}
 .mini-map__body{display:none;margin-top:.5rem}
 .mini-map.is-open .mini-map__body{display:block}
 .mini-map__svg{height:150px;justify-content:center}
 .mini-map__cap,.mini-map__note{text-align:center}
}
.article__archive,.label-archive{font-variant:small-caps;letter-spacing:.08em;font-size:.78rem;color:#7a746b;margin:0 0 .4rem}
.archive-year{margin-top:2rem}
.archive-list{list-style:none;padding:0;margin:0}
.archive-list li{padding:.55rem 0;border-bottom:1px solid var(--rule,#e6e1d9)}
.archive-list time{display:block;font-size:.82rem;color:#7a746b;font-variant:small-caps;letter-spacing:.05em}
