/* AGS Capital shared design system.
   One source for colour, type, nav, footer and the institutional page components.
   Page files keep only page-specific styles. */

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

:root {
  --bg: #0a0a0a;
  --bg-elevated: #131316;
  --bg-card: #18181b;
  --gold: #c9a96e;
  --gold-dim: #9e845b;
  --gold-bright: #d4b88a;
  --text: #e8e4df;
  --text-secondary: #bdb5a8;
  --text-muted: #9d9486; /* WCAG AA on --bg, --bg-elevated and --bg-card */
  --border: #23201d;
  --border-strong: #34302b;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --max-width: 1200px;
  --nav-height: 96px;
  --gutter: clamp(16px, 5vw, 64px);
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
::selection { background: var(--gold); color: var(--bg); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

/* ─── NAV ─── */
.ags-nav {
  position: fixed; top: 0; left: 0; right: 0;
  height: var(--nav-height);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--gutter);
  z-index: 1000;
  border-bottom: 1px solid var(--border);
}
/* The blur sits on a layer behind the bar, not on the bar itself: a backdrop-filter on the bar
   makes it the containing block for the fixed mobile menu, which then collapses to the bar's
   height and cannot be seen or tapped (Safari and Chrome on phones). */
.ags-nav::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(10, 10, 10, 0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.ags-nav .nav-logo-box {
  width: 64px; height: 64px;
  border: 1.5px solid #ffffff;
  padding: 10px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ags-nav .nav-logo-img { width: 130%; height: auto; margin-top: -15%; display: block; }
.ags-nav .nav-links { display: flex; gap: clamp(20px, 2.4vw, 36px); align-items: center; }
.ags-nav .nav-links a {
  font-size: 14px; font-weight: 500; letter-spacing: 0.08em;
  color: var(--text-secondary);
  transition: color 0.2s;
  padding: 6px 0;
  border-bottom: 1px solid transparent;
}
.ags-nav .nav-links a:hover { color: var(--text); }
.ags-nav .nav-links a[aria-current="page"] { color: var(--text); border-bottom-color: var(--gold-dim); }
.nav-toggle {
  display: none;
  background: none; border: 1px solid var(--border-strong);
  width: 44px; height: 44px; cursor: pointer;
  flex-direction: column; justify-content: center; align-items: center; gap: 6px;
}
.nav-toggle span { display: block; width: 18px; height: 1.5px; background: var(--text); transition: transform 0.25s; }
.ags-nav.open .nav-toggle span:first-child { transform: translateY(3.75px) rotate(45deg); }
.ags-nav.open .nav-toggle span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

@media (max-width: 1024px) {
  .nav-toggle { display: flex; }
  .ags-nav .nav-links {
    position: fixed; top: var(--nav-height); left: 0; right: 0; bottom: 0;
    flex-direction: column; align-items: flex-start; gap: 0;
    background: var(--bg);
    padding: 24px var(--gutter);
    display: none;
    overflow-y: auto;
  }
  .ags-nav.open .nav-links { display: flex; }
  .ags-nav .nav-links a {
    font-family: var(--serif); font-size: 24px; font-weight: 400; letter-spacing: 0;
    color: var(--text); width: 100%; padding: 16px 0; border-bottom: 1px solid var(--border);
  }
}

/* ─── PAGE HERO (interior pages) ─── */
.page-hero {
  padding: calc(var(--nav-height) + clamp(64px, 9vw, 120px)) var(--gutter) clamp(56px, 7vw, 96px);
  border-bottom: 1px solid var(--border);
}
.page-hero-inner { max-width: var(--max-width); margin: 0 auto; }
.eyebrow {
  font-size: 12.5px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 24px;
  display: flex; align-items: center; gap: 16px;
}
.eyebrow::after { content: ''; height: 1px; width: 48px; background: var(--gold-dim); opacity: 0.6; }
.page-hero h1 {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(34px, 5vw, 60px); line-height: 1.12;
  max-width: 900px; margin-bottom: 28px;
}
.page-hero .lede {
  font-size: clamp(16px, 1.6vw, 19px); color: var(--text-secondary);
  max-width: 720px; line-height: 1.75;
}

/* ─── SECTIONS ─── */
.block { padding: clamp(64px, 8vw, 112px) var(--gutter); border-bottom: 1px solid var(--border); }
.block.alt { background: var(--bg-elevated); }

/* Editorial light sections: white sections alternating with the dark ones, as institutional
   sites do. Components inherit the swapped tokens, so nothing else needs a light variant. */
.tone-ivory, .block.alt {
  --bg: #ffffff;
  --bg-elevated: #ffffff;
  --bg-card: #f6f6f4;
  --text: #111111;
  --text-secondary: #3a3a3a;
  --text-muted: #5c5c5c;
  --border: rgba(17, 17, 17, 0.12);
  --border-strong: rgba(17, 17, 17, 0.22);
  --gold: #7d5f2a;
  --gold-dim: #7d5f2a;
  --gold-bright: #6a4f20;
  background: var(--bg);
  color: var(--text);
}
.tone-ivory ::selection, .block.alt ::selection { background: #111111; color: #ffffff; }

/* Quiet link motion: an underline that draws from the left. No lifts, no glow. */
.prose a, .link-arrow, .section-body a, .exhibit-sources a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s ease, color .2s; }
.prose a:hover, .link-arrow:hover, .section-body a:hover, .exhibit-sources a:hover { background-size: 100% 1px; }
.block-inner { max-width: var(--max-width); margin: 0 auto; }
.block-head { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.block-head .eyebrow { margin-bottom: 0; padding-top: 10px; }
.h2 {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(26px, 3.2vw, 40px); line-height: 1.2; margin-bottom: 24px;
}
.h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(19px, 2vw, 23px); line-height: 1.3; margin-bottom: 12px; }
.prose p { font-size: 17.5px; color: var(--text-secondary); line-height: 1.85; margin-bottom: 20px; }
.prose p:last-child { margin-bottom: 0; }
.prose strong { color: var(--text); font-weight: 500; }
.prose a, a.inline { color: var(--gold); border-bottom: 1px solid rgba(201,169,110,0.35); }
.prose a:hover, a.inline:hover { border-bottom-color: var(--gold); }
.muted { color: var(--text-muted); }
.small { font-size: 14.5px; }

.link-arrow {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--gold); font-size: 14.5px; font-weight: 500; letter-spacing: 0.08em;
  transition: gap 0.2s;
}
.link-arrow:hover { gap: 14px; }
.link-arrow::after { content: '\2192'; }

.btn {
  display: inline-block; padding: 14px 32px;
  border: 1px solid var(--gold-dim); color: var(--gold);
  font-family: var(--sans); font-size: 14px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  background: transparent; cursor: pointer; transition: background 0.2s, color 0.2s;
}
.btn:hover { background: var(--gold); color: var(--bg); }

/* ─── GRIDS & CARDS ─── */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.cell { background: var(--bg); padding: clamp(28px, 3vw, 40px); }
.block.alt .cell { background: var(--bg-elevated); }
.cell p { font-size: 16px; color: var(--text-secondary); line-height: 1.75; }
.cell .num { font-family: var(--serif); font-size: 16px; color: var(--gold); margin-bottom: 20px; letter-spacing: 0.05em; }
.cell-kicker { font-size: 12.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-dim); margin-bottom: 14px; }

/* ─── TABLE ─── */
.table-wrap { overflow-x: auto; border: 1px solid var(--border); }
table.data { width: 100%; border-collapse: collapse; min-width: 560px; }
table.data th, table.data td { text-align: left; vertical-align: top; padding: 18px 22px; border-bottom: 1px solid var(--border); font-size: 16px; line-height: 1.65; }
table.data thead th { font-size: 12.5px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); background: var(--bg-elevated); }
table.data tbody th { font-weight: 500; color: var(--text); width: 26%; }
table.data td { color: var(--text-secondary); }
table.data tr:last-child th, table.data tr:last-child td { border-bottom: none; }

/* ─── LIST OF STANDARDS ─── */
.standards { list-style: none; border-top: 1px solid var(--border); }
.standards li { display: grid; grid-template-columns: 1fr 2fr; gap: 32px; padding: 24px 0; border-bottom: 1px solid var(--border); }
.standards li strong { font-family: var(--serif); font-weight: 400; font-size: 19px; color: var(--text); }
.standards li span { color: var(--text-secondary); font-size: 16.5px; line-height: 1.75; }

/* ─── EXHIBIT (sourced statistics) ─── */
.exhibit { border: 1px solid var(--border); }
.exhibit-head { display: flex; justify-content: space-between; gap: 24px; align-items: baseline; padding: 20px 28px; border-bottom: 1px solid var(--border); background: var(--bg-elevated); }
.exhibit-head .label { font-size: 12.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }
.exhibit-head .title { font-family: var(--serif); font-size: 18px; color: var(--text); }
.exhibit-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.exhibit-item { padding: 32px 28px; border-right: 1px solid var(--border); }
.exhibit-item:last-child { border-right: none; }
.exhibit-value { font-family: var(--serif); font-size: clamp(36px, 4vw, 52px); line-height: 1; color: var(--text); margin-bottom: 16px; }
.exhibit-value sup, .fn { font-family: var(--sans); font-size: 12.5px; color: var(--gold); vertical-align: super; margin-left: 2px; }
.exhibit-desc { font-size: 15.5px; color: var(--text-secondary); line-height: 1.65; }
.exhibit-sources { padding: 20px 28px; border-top: 1px solid var(--border); }
.exhibit-sources ol { padding-left: 18px; }
.exhibit-sources li { font-size: 14px; color: var(--text-muted); line-height: 1.7; margin-bottom: 4px; }
.exhibit-sources a { color: var(--text-secondary); border-bottom: 1px solid var(--border-strong); }

/* ─── LOGO / PARTNER STRIP ─── */
.partner-strip { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--border); }
.partner-slot { padding: 28px; border-right: 1px solid var(--border); }
.partner-slot:last-child { border-right: none; }
.partner-slot .cell-kicker { margin-bottom: 12px; }
.partner-slot p { font-size: 16px; color: var(--text-secondary); line-height: 1.7; }

/* ─── IN NUMBERS ─── */
.numbers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.numbers .n-value { font-family: var(--serif); font-size: clamp(40px, 5vw, 64px); color: var(--gold); line-height: 1; margin-bottom: 12px; }
.numbers .n-label { font-size: 15px; color: var(--text-secondary); line-height: 1.6; border-top: 1px solid var(--border-strong); padding-top: 14px; }

/* ─── CALLOUT ─── */
.callout { border: 1px solid var(--gold-dim); padding: clamp(28px, 4vw, 48px); background: linear-gradient(180deg, rgba(201,169,110,0.05), transparent); }
.callout .cell-kicker { color: var(--gold); }
.callout p { font-size: 17.5px; color: var(--text-secondary); line-height: 1.85; margin-bottom: 16px; }
.callout p:last-child { margin-bottom: 0; }
.tag { display: inline-block; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); border: 1px solid var(--gold-dim); padding: 4px 10px; }

/* ─── FOOTER ─── */
.ags-footer { border-top: 1px solid var(--border); padding: clamp(56px, 7vw, 88px) var(--gutter) 40px; background: var(--bg); }
.ags-footer .f-inner { max-width: var(--max-width); margin: 0 auto; }
.ags-footer .f-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid var(--border); }
.ags-footer .f-brand img { height: 56px; width: auto; display: block; margin-bottom: 20px; }
.ags-footer .f-brand p { font-size: 15px; color: var(--text-secondary); line-height: 1.7; max-width: 300px; }
.ags-footer h4 { font-size: 12.5px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-dim); margin-bottom: 18px; }
.ags-footer ul { list-style: none; }
.ags-footer li { margin-bottom: 10px; }
.ags-footer li a { font-size: 15.5px; color: var(--text-secondary); transition: color 0.2s; }
.ags-footer li a:hover { color: var(--text); }
.ags-footer .f-bottom { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-top: 28px; font-size: 13.5px; color: var(--text-muted); }
.ags-footer .f-bottom a { color: var(--text-secondary); }
.ags-footer .f-bottom > div:last-child { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.ags-footer .f-legal { margin-top: 20px; font-size: 13px; color: var(--text-muted); line-height: 1.7; max-width: 900px; }

/* ─── COOKIE BANNER ─── */
.cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999; background: #111111; border-top: 1px solid var(--border); padding: 24px var(--gutter); display: none; }
.cookie-banner.show { display: block; animation: agsSlideUp 0.4s ease forwards; }
@keyframes agsSlideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
.cookie-inner { max-width: var(--max-width); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.cookie-text { font-size: 14.5px; color: var(--text-secondary); line-height: 1.6; flex: 1; }
.cookie-text a { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }
.cookie-buttons { display: flex; gap: 12px; flex-shrink: 0; }
.cookie-btn { padding: 10px 24px; font-size: 14.5px; font-family: var(--sans); letter-spacing: 0.05em; border: none; cursor: pointer; }
.cookie-accept { background: var(--gold); color: var(--bg); }
.cookie-reject { background: transparent; color: var(--text-secondary); border: 1px solid var(--border-strong); }

/* ─── REVEAL ─── */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.8s, transform 0.8s; }
.reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ─── RESPONSIVE ─── */
@media (max-width: 1024px) {
  .grid-4, .exhibit-grid, .partner-strip, .numbers { grid-template-columns: repeat(2, 1fr); }
  .exhibit-item:nth-child(2n), .partner-slot:nth-child(2n) { border-right: none; }
  .exhibit-item:nth-child(-n+2), .partner-slot:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .ags-footer .f-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .block-head, .standards li { grid-template-columns: 1fr; gap: 12px; }
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .cookie-inner { flex-direction: column; align-items: stretch; }
  .cookie-btn { flex: 1; }
}
@media (max-width: 560px) {
  .grid-4, .exhibit-grid, .partner-strip, .numbers { grid-template-columns: 1fr; }
  .exhibit-item, .partner-slot { border-right: none; border-bottom: 1px solid var(--border); }
  .exhibit-item:last-child, .partner-slot:last-child { border-bottom: none; }
  .ags-footer .f-top { grid-template-columns: 1fr; }
  .exhibit-head { flex-direction: column; gap: 6px; }
}

/* Pages with a global link underline on hover must not underline the chrome */
.ags-nav a:hover, .ags-footer a:hover, .cookie-banner a:hover { text-decoration: none; }
.block-head > *, .grid-2 > *, .grid-3 > * { min-width: 0; }
.exhibit-grid.three { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 760px) { .exhibit-grid.three { grid-template-columns: 1fr; } .exhibit-grid.three .exhibit-item { border-right: none; border-bottom: 1px solid var(--border); } .exhibit-grid.three .exhibit-item:last-child { border-bottom: none; } }
@media (max-width: 640px) {
  table.data { min-width: 0; }
  table.data th, table.data td { padding: 14px 12px; font-size: 15px; }
  table.data tbody th { width: auto; }
}

/* ─── PRODUCT TEASER ─── */
.teaser { position: relative; border: 1px solid var(--border); background: #0a0a0a; overflow: hidden; }
.teaser video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.teaser-note { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 14px; font-size: 14px; color: var(--text-muted); }

/* ─── FILM MODAL ─── */
.film-trigger { display: inline-flex; align-items: center; gap: 12px; background: none; border: none; cursor: pointer; color: var(--text); font-family: var(--sans); font-size: 14.5px; font-weight: 500; letter-spacing: 0.08em; padding: 0; }
.film-trigger .play { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gold-dim); display: inline-flex; align-items: center; justify-content: center; transition: background 0.25s, transform 0.25s; }
.film-trigger .play svg { width: 14px; height: 14px; fill: var(--gold); margin-left: 3px; transition: fill 0.25s; }
.film-trigger:hover .play { background: var(--gold); transform: scale(1.06); }
.film-trigger:hover .play svg { fill: var(--bg); }
.film-poster { position: relative; display: block; width: 100%; border: 1px solid var(--border); padding: 0; background: #0a0a0a; cursor: pointer; overflow: hidden; }
.film-poster img { display: block; width: 100%; height: auto; transition: transform 0.8s ease, opacity 0.4s; opacity: 0.85; }
.film-poster:hover img { transform: scale(1.02); opacity: 1; }
.film-poster .play-lg { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 88px; height: 88px; border-radius: 50%; background: rgba(10,10,10,0.55); border: 1px solid var(--gold); display: flex; align-items: center; justify-content: center; backdrop-filter: blur(6px); transition: background 0.25s; }
.film-poster .play-lg svg { width: 24px; height: 24px; fill: var(--gold); margin-left: 5px; }
.film-poster:hover .play-lg { background: var(--gold); }
.film-poster:hover .play-lg svg { fill: var(--bg); }
.film-modal { position: fixed; inset: 0; z-index: 3000; background: rgba(5,5,5,0.94); display: none; align-items: center; justify-content: center; padding: 24px; backdrop-filter: blur(8px); }
.film-modal.open { display: flex; animation: filmIn 0.35s ease; }
@keyframes filmIn { from { opacity: 0; } to { opacity: 1; } }
.film-modal video { width: min(1280px, 100%); max-height: calc(100vh - 120px); aspect-ratio: 16 / 9; background: #000; border: 1px solid var(--border); }
.film-close { position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; border: 1px solid var(--border-strong); background: transparent; color: var(--text); font-size: 22px; cursor: pointer; }
.film-close:hover { border-color: var(--gold-dim); }

/* Wide tables (cookie list) scroll inside themselves on phones instead of widening the page. */
@media (max-width: 640px) { main table { display: block; overflow-x: auto; max-width: 100%; } }

/* Readability: navigation and labels read at a glance, as on institutional sites. */
.ags-nav .nav-links a { font-size: 15px; font-weight: 500; letter-spacing: 0.02em; }
.cell-kicker, .exhibit-head .label, .ags-footer h4, table.data thead th, .section-label, .eyebrow { font-weight: 600; letter-spacing: 0.14em; }

/* Governance: division of responsibilities, set as a report exhibit. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.division-lede { font-size: 18px; line-height: 1.75; color: var(--text-secondary); max-width: 640px; margin-top: 20px; }
.ags-anim.division { margin-top: clamp(40px, 5vw, 64px); }
.division-cols { display: grid; grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr); padding: 0 clamp(24px, 3vw, 40px); }
.division-col { padding: clamp(32px, 4vw, 48px) 0 clamp(28px, 3vw, 40px); }
.division-kicker { font-size: 12.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.division-title { font-family: var(--serif); font-weight: 400; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.25; color: var(--text); margin-bottom: 28px; }
.division-list { list-style: none; margin: 0; padding: 0; }
.division-list li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 0 12px; padding: 18px 0; border-top: 1px solid var(--border); }
.division-list li:last-child { border-bottom: 1px solid var(--border); }
.division-list .n { font-family: var(--serif); font-size: 18px; color: var(--gold); line-height: 1.5; }
.division-list b { display: block; font-weight: 500; font-size: 17px; color: var(--text); margin-bottom: 4px; }
.division-list li span:not(.n) { display: block; font-size: 15.5px; line-height: 1.65; color: var(--text-secondary); }
.division-rule { position: relative; display: flex; justify-content: center; }
.division-rule::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px dashed var(--border-strong); transform-origin: top; transition: transform 1.2s var(--ease-move, ease) .9s; }
.division-rule span { position: relative; align-self: center; writing-mode: vertical-rl; transform: rotate(180deg); background: var(--bg); padding: 14px 0; font-size: 11.5px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-muted); }
.ags-anim.armed:not(.done) .division-rule::before { transform: scaleY(0); }
.ags-anim.armed.playing .division-rule::before { transform: none; }
.division-facts { width: 100%; border-collapse: collapse; border-top: 1px solid var(--border); }
.division-facts tr { display: grid; grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr); padding: 0 clamp(24px, 3vw, 40px); border-bottom: 1px solid var(--border); position: relative; }
.division-facts th { grid-column: 1 / -1; text-align: left; font-size: 12.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); padding: 22px 0 6px; }
.division-facts td { padding: 6px 0 24px; font-size: 15.5px; line-height: 1.7; color: var(--text-secondary); vertical-align: top; }
.division-facts td + td { grid-column: 3; }
.division-facts td strong { color: var(--text); font-weight: 500; }
.division-facts .who { display: none; }
.division .exhibit-sources { padding: 18px clamp(24px, 3vw, 40px); }
.division .exhibit-sources p { font-size: 14.5px; color: var(--text-muted); margin: 0; }
@media (max-width: 860px) {
  .division-cols { grid-template-columns: 1fr; }
  .division-rule { height: 44px; }
  .division-rule::before { top: 50%; bottom: auto; left: 0; right: 0; border-left: 0; border-top: 1px dashed var(--border-strong); transform-origin: left; }
  .ags-anim.armed:not(.done) .division-rule::before { transform: scaleX(0); }
  .division-rule span { writing-mode: horizontal-tb; transform: none; padding: 0 12px; }
  .division-facts tr { grid-template-columns: 1fr; }
  .division-facts td + td { grid-column: 1; }
  .division-facts .who { display: block; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 2px; }
  .division-facts td { padding: 8px 0 12px; }
  .division-facts tr td:last-child { padding-bottom: 22px; }
}

/* Data protection: legal framework table gives the framework name room to sit on one or two lines. */
table.data.frameworks tbody th { width: 18%; }
table.data.frameworks thead th:nth-child(2), table.data.frameworks td:nth-of-type(1) { width: 30%; }
