/* ==========================================================================
   E.F. HUTTON & CO. — hutton.css (v2)
   --------------------------------------------------------------------------
   SYSTEM RATIONALE
   The wordmark is a heavy, wide, geometric grotesque (#21265D). Every choice
   below extends it: one grotesque family (Archivo variable) doing all work —
   expanded + heavy for display, normal for body. One serif moment only (the
   1970s tagline, Source Serif italic). Monospace appears solely where money
   is quoted: the tape and the ledger.
   ========================================================================== */

:root {
  /* Brand — #21265D is sampled from the supplied logo SVG */
  --indigo:     #21265D;
  --ink:        #14173F;   /* hero / dark bands */
  --ink-2:      #1A1E4E;   /* mid dark band */
  --paper:      #F7F7F4;
  --paper-dim:  #EEEEE8;

  --text:       #1D2040;
  --text-soft:  #5A5E7C;
  --rule:       #D8D8D2;
  --rule-soft:  #E6E6E0;

  --on-dark:      #F5F5F8;
  --on-dark-soft: #A9AECE;
  --on-dark-rule: rgba(255,255,255,.18);
  --peri:         #9BA3E0;  /* periwinkle: on-dark links & small accents */

  --display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --body:    "Archivo", "Helvetica Neue", Arial, sans-serif;
  --serif:   "Source Serif 4", Georgia, serif;
  --mono:    "IBM Plex Mono", Menlo, Consolas, monospace;

  --gut: 32px;
  --max: 1320px;
  --band-y: 120px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4, h5 { margin: 0; font-weight: 700; }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
hr { border: 0; border-top: 1px solid var(--rule); margin: 0; }

::selection { background: var(--indigo); color: #fff; }
:focus-visible { outline: 2px solid var(--indigo); outline-offset: 3px; }
.band--navy :focus-visible, .band--navy-mid :focus-visible { outline-color: var(--peri); }

/* ---------- Layout ---------- */
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.band { padding: var(--band-y) 0; position: relative; }
.band--tight { padding: 80px 0; }
.band--navy { background: var(--ink); color: var(--on-dark); }
.band--navy-mid { background: var(--ink-2); color: var(--on-dark); }
.band--dim { background: var(--paper-dim); }
.grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 40px var(--gut); }

/* ---------- Section marker ----------
   v2: the number is gone. A short bar in the brand indigo — an echo of the
   wordmark's slab geometry — plus a tracked grotesque label. */
.marker { margin-bottom: 52px; }
.marker::before {
  content: "";
  display: block;
  width: 56px; height: 6px;
  background: var(--indigo);
  margin-bottom: 18px;
}
.band--navy .marker::before,
.band--navy-mid .marker::before { background: var(--peri); }
.marker__no { display: none; }
.marker__label {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-soft);
}
.band--navy .marker__label,
.band--navy-mid .marker__label { color: var(--on-dark-soft); }

/* ---------- Type scale ----------
   Display = the logo's voice: wide, heavy, tight. */
.d1 {
  font-family: var(--display);
  font-weight: 750;
  font-stretch: 118%;
  font-size: clamp(2.5rem, 5.6vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -.022em;
}
.d2 {
  font-family: var(--display);
  font-weight: 720;
  font-stretch: 115%;
  font-size: clamp(1.85rem, 3.4vw, 2.8rem);
  line-height: 1.08;
  letter-spacing: -.018em;
}
.d3 {
  font-family: var(--display);
  font-weight: 700;
  font-stretch: 112%;
  font-size: clamp(1.35rem, 2.1vw, 1.7rem);
  line-height: 1.16;
  letter-spacing: -.012em;
}
.h4 {
  font-weight: 650;
  font-size: 1.0625rem;
  letter-spacing: -.006em;
  line-height: 1.35;
}
.lede {
  font-size: clamp(1.1rem, 1.45vw, 1.3rem);
  line-height: 1.55;
  font-weight: 480;
  max-width: 36ch;
}
.lede--wide { max-width: 48ch; }
.body-lg { font-size: 1.0625rem; line-height: 1.68; }
.muted { color: var(--text-soft); }
.band--navy .muted, .band--navy-mid .muted { color: var(--on-dark-soft); }
.eyebrow {
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--indigo); font-weight: 700; display: block; margin-bottom: 18px;
}
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* ---------- Links & actions ---------- */
.link {
  display: inline-block;
  font-size: 13px; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none; font-weight: 700;
  color: var(--indigo);
  border-bottom: 2px solid var(--indigo);
  padding-bottom: 4px;
  transition: opacity .2s;
}
.link:hover { opacity: .65; }
.band--navy .link, .band--navy-mid .link { color: var(--on-dark); border-bottom-color: var(--peri); }
.link::after { content: none; }

.btn {
  display: inline-block;
  font-size: 13px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700;
  text-decoration: none;
  padding: 18px 34px;
  background: var(--indigo); color: #fff;
  border: 2px solid var(--indigo);
  transition: background .2s, color .2s, border-color .2s;
}
.btn:hover { background: var(--ink); border-color: var(--ink); }
.btn--ghost { background: transparent; color: var(--indigo); }
.btn--ghost:hover { background: var(--indigo); color: #fff; }
.hero .btn, .band--navy .btn, .band--navy-mid .btn {
  background: transparent; color: var(--on-dark); border-color: var(--on-dark-rule);
}
.hero .btn:hover, .band--navy .btn:hover, .band--navy-mid .btn:hover {
  background: #fff; color: var(--ink); border-color: #fff;
}
.hero .btn--fill, .band--navy .btn--fill, .band--navy-mid .btn--fill {
  background: #fff; color: var(--ink); border-color: #fff;
}
.hero .btn--fill:hover, .band--navy .btn--fill:hover, .band--navy-mid .btn--fill:hover {
  background: transparent; border-color: var(--on-dark-rule); color: var(--on-dark);
}

/* ==========================================================================
   MASTHEAD
   ========================================================================== */
.masthead {
  position: fixed; inset: 0 0 auto 0; z-index: 90;
  background: rgba(20,23,63,0);
  transition: background .35s ease, border-color .35s ease;
  border-bottom: 1px solid transparent;
}
.masthead.is-solid { background: var(--ink); border-bottom-color: var(--on-dark-rule); }
.masthead__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px; height: 88px; transition: height .3s ease;
}
.masthead.is-solid .masthead__inner { height: 70px; }

.lockup { display: flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
.lockup img { height: 30px; width: auto; display: block; }
.masthead.is-solid .lockup img { height: 26px; }
.lockup img { transition: height .3s ease; }

.nav { display: flex; align-items: center; gap: 34px; }
.nav a {
  font-size: 13px; letter-spacing: .09em; text-transform: uppercase; font-weight: 650;
  text-decoration: none; color: var(--on-dark); opacity: .82;
  padding: 6px 0; border-bottom: 2px solid transparent;
  transition: opacity .2s, border-color .2s; white-space: nowrap;
}
.nav a:hover { opacity: 1; }
.nav a[aria-current="page"] { opacity: 1; border-bottom-color: var(--peri); }
.nav__cta { border: 2px solid var(--on-dark-rule) !important; padding: 12px 20px !important; opacity: 1 !important; }
.nav__cta:hover { background: #fff; color: var(--ink) !important; border-color: #fff !important; }

.burger { display: none; color: var(--on-dark); padding: 10px; margin-right: -10px; }
.burger span { display: block; width: 24px; height: 2px; background: currentColor; margin: 6px 0; transition: transform .3s, opacity .3s; }
.burger.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; }
.burger.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero { background: var(--ink); color: var(--on-dark); padding: 176px 0 0; position: relative; overflow: hidden; }

.hero__grid { align-items: end; }
.hero__main { grid-column: 1 / span 8; }
.hero__side { grid-column: 10 / span 3; padding-bottom: 10px; }

.hero__kicker {
  font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700;
  color: var(--peri); margin: 0 0 34px;
}
.hero h1 { color: #fff; }
.hero h1 em { font-style: normal; color: var(--peri); }
.hero__sub {
  margin-top: 32px; max-width: 54ch;
  font-size: clamp(1.05rem, 1.3vw, 1.2rem); line-height: 1.62; color: #C6CAE6;
}
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 44px; }

.hero__side dl { margin: 0; border-top: 1px solid var(--on-dark-rule); }
.hero__side .row {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--on-dark-rule);
}
.hero__side dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 650; color: var(--on-dark-soft); }
.hero__side dd { margin: 0; font-size: 13.5px; font-weight: 650; color: #fff; font-variant-numeric: tabular-nums; }

/* The tape */
.tape { margin-top: 72px; border-top: 1px solid var(--on-dark-rule); overflow: hidden; position: relative; }
.tape::before, .tape::after { content: ""; position: absolute; top: 0; bottom: 0; width: 280px; z-index: 2; pointer-events: none; }
.tape::before { left: 0; width: 400px; background: linear-gradient(90deg, var(--ink) 58%, rgba(20,23,63,0)); }
.tape::after { right: 0; width: 180px; background: linear-gradient(270deg, var(--ink), rgba(20,23,63,0)); }
.tape__label {
  position: absolute; top: 0; z-index: 3; left: 0;
  background: var(--ink);
  padding: 21px 22px 21px calc(max(0px, (100% - var(--max)) / 2) + var(--gut));
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--peri);
}
.tape__track { display: flex; white-space: nowrap; will-change: transform; padding: 20px 0; }
.tape__item {
  font-family: var(--mono);
  font-size: 12.5px; letter-spacing: .01em; color: var(--on-dark-soft);
  padding-right: 44px; display: inline-flex; gap: 12px; align-items: baseline;
}
.tape__item b { color: #fff; font-weight: 500; }
.tape__item i { font-style: normal; color: #7A81B3; }
.tape__item .sep { color: #3D4379; }

/* ==========================================================================
   PROSE / COLUMNS
   ========================================================================== */
.split { display: grid; grid-template-columns: 5fr 7fr; gap: 40px var(--gut); }
.split--even { grid-template-columns: 1fr 1fr; }
.split__aside .d2 { max-width: 16ch; }
.cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 56px; }
.cols3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px var(--gut); }
.cols4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px var(--gut); }

/* Definition entries */
.entry { border-top: 3px solid var(--indigo); padding-top: 20px; }
.band--navy .entry, .band--navy-mid .entry { border-top-color: var(--on-dark-rule); }
.entry__no {
  font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700;
  color: var(--text-soft); display: block; margin-bottom: 12px;
}
.band--navy .entry__no, .band--navy-mid .entry__no { color: var(--peri); }
.entry h3 { margin-bottom: 10px; }
.entry p { font-size: .96875rem; line-height: 1.6; color: var(--text-soft); }
.band--navy .entry p, .band--navy-mid .entry p { color: var(--on-dark-soft); }

/* ==========================================================================
   DIVISIONS
   ========================================================================== */
.division {
  display: grid;
  grid-template-columns: 4.5rem 1.1fr 1fr;
  gap: 0 var(--gut);
  border-top: 1px solid var(--rule);
  padding: 36px 0;
  text-decoration: none; color: inherit; position: relative;
  transition: background .25s ease;
}
.division:last-of-type { border-bottom: 1px solid var(--rule); }
.division:hover { background: #fff; }
.division:hover .division__title { color: var(--indigo); }
.division__no {
  font-size: 12px; font-weight: 700; letter-spacing: .06em;
  color: var(--indigo); padding-top: 9px; font-variant-numeric: tabular-nums;
}
.division__title {
  font-family: var(--display);
  font-weight: 700; font-stretch: 112%;
  font-size: clamp(1.3rem, 1.9vw, 1.65rem); line-height: 1.14;
  letter-spacing: -.012em;
  transition: color .2s; max-width: 22ch;
}
.division__body p { font-size: .96875rem; color: var(--text-soft); line-height: 1.6; }
.division__tags { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px 8px; }
.division__tags span {
  font-size: 11px; letter-spacing: .07em; text-transform: uppercase; font-weight: 600;
  color: var(--text-soft); border: 1px solid var(--rule); padding: 5px 9px;
}

/* Deep service blocks */
.service { border-top: 1px solid var(--rule); padding: 64px 0; display: grid; grid-template-columns: 4.5rem 1fr; gap: 0 var(--gut); }
.service:last-child { border-bottom: 1px solid var(--rule); }
.service__no { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--indigo); padding-top: 12px; }
.service__head { display: grid; grid-template-columns: 1fr 1fr; gap: 24px var(--gut); margin-bottom: 40px; }
.service__head p { color: var(--text-soft); }
.product { border-top: 1px solid var(--rule-soft); padding-top: 18px; }
.product h4 { margin-bottom: 8px; font-weight: 650; }
.product p { font-size: .9375rem; line-height: 1.58; color: var(--text-soft); }

/* ==========================================================================
   FIGURES
   ========================================================================== */
.figures { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px var(--gut); }
.figure { border-top: 3px solid var(--indigo); padding-top: 20px; }
.figure__val {
  font-family: var(--display); font-weight: 780; font-stretch: 116%;
  font-size: clamp(2.3rem, 3.8vw, 3.4rem); line-height: 1; color: var(--indigo);
  letter-spacing: -.02em; font-variant-numeric: tabular-nums;
}
.figure__lab {
  margin-top: 14px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 650; color: var(--text-soft); line-height: 1.55;
}
.band--navy .figure, .band--navy-mid .figure { border-top-color: var(--peri); }
.band--navy .figure__val, .band--navy-mid .figure__val { color: #fff; }
.band--navy .figure__lab, .band--navy-mid .figure__lab { color: var(--on-dark-soft); }

/* ==========================================================================
   LEDGER
   ========================================================================== */
.ledger { border-top: 3px solid var(--indigo); }
.band--navy .ledger { border-top-color: var(--on-dark-rule); }
.ledger__head {
  display: grid;
  grid-template-columns: 88px minmax(0,2.4fr) 128px minmax(0,1.15fr) minmax(0,1.25fr);
  gap: 0 24px; padding: 14px 0; border-bottom: 1px solid var(--rule);
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--text-soft);
}
.deal {
  display: grid;
  grid-template-columns: 88px minmax(0,2.4fr) 128px minmax(0,1.15fr) minmax(0,1.25fr);
  gap: 4px 24px; padding: 20px 0;
  border-bottom: 1px solid var(--rule-soft); align-items: baseline;
  transition: background .2s;
}
.deal:hover { background: #fff; }
.deal__date { font-size: 12px; font-weight: 600; letter-spacing: .05em; color: var(--text-soft); text-transform: uppercase; }
.deal__name { font-weight: 600; font-size: 1rem; line-height: 1.35; }
.deal__name small {
  display: block; font-size: 11px; font-weight: 600; letter-spacing: .04em;
  color: var(--text-soft); margin-top: 5px;
}
.deal__val { font-family: var(--mono); font-size: 13.5px; font-variant-numeric: tabular-nums; color: var(--indigo); font-weight: 500; }
.deal__type { font-size: .875rem; color: var(--text-soft); }
.deal__role { font-size: .875rem; font-weight: 600; }

/* Newsroom variant */
.ledger--news .deal { grid-template-columns: 88px minmax(0,1fr) 84px; align-items: start; }
.ledger--news .deal__name { font-weight: 500; }
.ledger--news .deal__role { text-align: right; }

/* Filters */
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 34px; }
.filters button {
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 650;
  padding: 10px 16px; border: 2px solid var(--rule); color: var(--text-soft);
  transition: all .2s;
}
.filters button:hover { border-color: var(--indigo); color: var(--indigo); }
.filters button.is-on { background: var(--indigo); border-color: var(--indigo); color: #fff; }
.ledger__count { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 650; color: var(--text-soft); margin-top: 28px; }

/* ==========================================================================
   HERITAGE PULL — the one serif on the site
   ========================================================================== */
.pull {
  font-family: var(--serif);
  font-weight: 500; font-style: italic;
  font-size: clamp(1.9rem, 4vw, 3.1rem);
  line-height: 1.16; color: #fff; letter-spacing: -.01em; max-width: 20ch;
}
.pull__note { margin-top: 28px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--peri); }

/* ==========================================================================
   PEOPLE
   ========================================================================== */
.person { border-top: 3px solid var(--indigo); padding-top: 18px; }
.person__name { font-family: var(--display); font-weight: 700; font-stretch: 110%; font-size: 1.25rem; line-height: 1.2; letter-spacing: -.01em; }
.person__role { margin-top: 8px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 650; color: var(--text-soft); }
.roster { columns: 3; column-gap: var(--gut); border-top: 1px solid var(--rule); padding-top: 24px; }
.roster li { break-inside: avoid; margin-bottom: 18px; }
.roster .n { font-weight: 650; display: block; }
.roster .r { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--text-soft); }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact-card { border: 1px solid var(--on-dark-rule); padding: 40px; }
.contact-card h3 { margin-bottom: 18px; }
.contact-card p { color: var(--on-dark-soft); font-size: .96875rem; }
.contact-card a { color: #fff; text-decoration: none; border-bottom: 2px solid var(--peri); font-weight: 600; }

.form { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--text-soft); }
.field input, .field select, .field textarea {
  font-family: var(--body); font-size: 1rem; color: var(--text);
  background: #fff; border: 1px solid var(--rule);
  padding: 13px 14px; border-radius: 0;
  transition: border-color .2s;
}
.field textarea { resize: vertical; min-height: 112px; }
.field select {
  -webkit-appearance: none; appearance: none; cursor: pointer; padding-right: 34px;
  background-image: linear-gradient(45deg, transparent 50%, var(--indigo) 50%),
                    linear-gradient(135deg, var(--indigo) 50%, transparent 50%);
  background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--indigo); }

/* ==========================================================================
   PAGE HEADER
   ========================================================================== */
.pagehead { background: var(--ink); color: var(--on-dark); padding: 168px 0 76px; border-bottom: 1px solid var(--on-dark-rule); }
.pagehead h1 { color: #fff; max-width: 20ch; }
.pagehead .lede { color: #C6CAE6; max-width: 52ch; margin-top: 26px; }
.pagehead__kicker { font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--peri); margin-bottom: 26px; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer { background: var(--ink); color: var(--on-dark); padding: 84px 0 40px; }
.footer__top { display: grid; grid-template-columns: 1.55fr .9fr 1.35fr .95fr .55fr; gap: 40px 56px; }
.footer h4 { font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--peri); font-weight: 700; margin-bottom: 18px; }
.footer ul li { margin-bottom: 11px; }
.footer a { color: var(--on-dark); text-decoration: none; font-size: .9375rem; opacity: .82; }
.footer a:hover { opacity: 1; }
.footer address { font-style: normal; color: var(--on-dark-soft); font-size: .9375rem; line-height: 1.7; }
.footer__mark img { height: 26px; width: auto; }
.footer__legal { margin-top: 64px; padding-top: 26px; border-top: 1px solid var(--on-dark-rule); font-size: .8125rem; color: var(--on-dark-soft); line-height: 1.7; }
.footer__legal p { max-width: 90ch; }
.footer__meta { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 8px 0; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 650; }

/* ---------- Motion ---------- */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  :root { --band-y: 92px; --gut: 24px; }
  .hero__main { grid-column: 1 / span 12; }
  .hero__side { grid-column: 1 / span 12; padding-bottom: 0; margin-top: 48px; }
  .figures { grid-template-columns: repeat(2, 1fr); }
  .footer__top { grid-template-columns: 1fr 1fr; }
  .roster { columns: 2; }
}
@media (max-width: 1150px) {
  .nav {
    position: fixed; inset: 0 0 auto 0; background: var(--ink);
    flex-direction: column; align-items: flex-start; gap: 0;
    padding: 96px 24px 34px;
    transform: translateY(-100%);
    transition: transform .38s cubic-bezier(.4,0,.2,1);
    border-bottom: 1px solid var(--on-dark-rule);
  }
  .nav.is-open { transform: none; }
  .nav a { width: 100%; padding: 16px 0; border-bottom: 1px solid var(--on-dark-rule); font-size: 14px; }
  .nav__cta { border: 2px solid var(--on-dark-rule) !important; margin-top: 20px; text-align: center; }
  .burger { display: block; z-index: 95; }
  .masthead { background: var(--ink); }

  .split, .split--even, .cols2, .cols3, .cols4, .service__head, .form { grid-template-columns: 1fr; }
  .division { grid-template-columns: 1fr; gap: 12px; }
  .division__no { padding-top: 0; }
  .division__title { max-width: none; }
  .service { grid-template-columns: 1fr; gap: 20px; padding: 48px 0; }

  .ledger__head { display: none; }
  .deal { grid-template-columns: 1fr auto; gap: 6px 20px; }
  .deal__date { grid-column: 1; order: 1; }
  .deal__val { grid-column: 2; order: 2; text-align: right; }
  .deal__name { grid-column: 1 / -1; order: 3; }
  .deal__type { grid-column: 1 / -1; order: 4; }
  .deal__role { grid-column: 1 / -1; order: 5; }
  .ledger--news .deal { grid-template-columns: 1fr; }
  .ledger--news .deal__role { text-align: left; }

  .marker { margin-bottom: 40px; }
  .hero { padding-top: 136px; }
  .tape { margin-top: 56px; }
  .tape__label { display: none; }
  .pagehead { padding: 130px 0 60px; }
  .lede { max-width: none; }
  .roster { columns: 1; }
  .footer__top { grid-template-columns: 1fr; }
  .contact-card { padding: 28px; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .figures { grid-template-columns: 1fr; }
  .lockup img { height: 24px !important; }
}

/* ==========================================================================
   v3 additions — photography and tombstones
   ========================================================================== */

/* People with photographs */
.person--photo { display: block; text-decoration: none; color: inherit; border-top: 3px solid var(--indigo); padding-top: 0; }
.person__img {
  display: block; overflow: hidden; background: var(--paper-dim);
  aspect-ratio: 1 / 1; margin-bottom: 18px;
}
.person__img img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(28%);
  transition: filter .3s ease, transform .5s ease;
}
.person--photo:hover .person__img img { filter: grayscale(0%); transform: scale(1.03); }
.person--photo .person__name { display: block; }
.person--photo .person__role { display: block; }
.person--photo:hover .person__name { color: var(--indigo); }
.people-grid { row-gap: 56px; }

/* Featured tombstones */
.featured { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px var(--gut); }
.tomb {
  display: block; text-decoration: none; color: inherit;
  border: 1px solid var(--rule); background: #fff;
  padding: 28px 28px 26px;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.tomb:hover { border-color: var(--indigo); transform: translateY(-3px); box-shadow: 0 14px 34px rgba(33,38,93,.10); }
.tomb__img {
  display: flex; align-items: center; justify-content: flex-start;
  height: 64px; margin-bottom: 22px;
}
.tomb__img img { max-height: 56px; max-width: 78%; width: auto; object-fit: contain; }
.tomb__date { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 650; color: var(--text-soft); margin-bottom: 10px; }
.tomb__name { display: block; font-weight: 650; font-size: 1.05rem; line-height: 1.3; }
.tomb__name i { font-style: normal; display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--text-soft); margin-top: 4px; }
.tomb__val { display: block; margin-top: 14px; font-family: var(--display); font-weight: 760; font-stretch: 114%; font-size: 1.5rem; color: var(--indigo); letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.tomb__role { display: block; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--rule-soft); font-size: .8125rem; color: var(--text-soft); }

@media (max-width: 1080px) { .featured { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .featured { grid-template-columns: 1fr; } }

/* The famous line, in the historic voice */
.d1--line {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 550;
  font-stretch: 100%;
  font-size: clamp(2.7rem, 6vw, 5rem);
  line-height: 1.06;
  letter-spacing: -.015em;
  max-width: 15ch;
}

/* ==========================================================================
   v4 — photography layer (bulge-bracket treatment)
   Architecture and cityscape imagery, always pulled into the brand with an
   indigo overlay. Photography sets the scale; it never competes with type.
   ========================================================================== */

/* Hero with full-bleed image */
.hero--img {
  background:
    linear-gradient(100deg, rgba(15,17,48,.94) 0%, rgba(20,23,63,.80) 46%, rgba(23,27,74,.52) 100%),
    var(--hero-img) center 30% / cover no-repeat,
    url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%201440%20560%22%20preserveAspectRatio%3D%22xMidYMax%20slice%22%3E%3Crect%20width%3D%221440%22%20height%3D%22560%22%20fill%3D%22%2314173F%22/%3E%3Cg%20fill%3D%22%231A1E4E%22%3E%3Crect%20x%3D%22-20%22%20y%3D%22360%22%20width%3D%2290%22%20height%3D%22200%22/%3E%3Crect%20x%3D%2280%22%20y%3D%22320%22%20width%3D%2260%22%20height%3D%22240%22/%3E%3Crect%20x%3D%22150%22%20y%3D%22380%22%20width%3D%2280%22%20height%3D%22180%22/%3E%3Crect%20x%3D%22240%22%20y%3D%22300%22%20width%3D%2255%22%20height%3D%22260%22/%3E%3Crect%20x%3D%22305%22%20y%3D%22350%22%20width%3D%2295%22%20height%3D%22210%22/%3E%3Crect%20x%3D%22410%22%20y%3D%22280%22%20width%3D%2260%22%20height%3D%22280%22/%3E%3Crect%20x%3D%22480%22%20y%3D%22360%22%20width%3D%2270%22%20height%3D%22200%22/%3E%3Crect%20x%3D%22560%22%20y%3D%22315%22%20width%3D%2285%22%20height%3D%22245%22/%3E%3Crect%20x%3D%22655%22%20y%3D%22240%22%20width%3D%2250%22%20height%3D%22320%22/%3E%3Crect%20x%3D%22715%22%20y%3D%22345%22%20width%3D%2290%22%20height%3D%22215%22/%3E%3Crect%20x%3D%22815%22%20y%3D%22295%22%20width%3D%2260%22%20height%3D%22265%22/%3E%3Crect%20x%3D%22885%22%20y%3D%22365%22%20width%3D%2280%22%20height%3D%22195%22/%3E%3Crect%20x%3D%22975%22%20y%3D%22265%22%20width%3D%2255%22%20height%3D%22295%22/%3E%3Crect%20x%3D%221040%22%20y%3D%22335%22%20width%3D%2290%22%20height%3D%22225%22/%3E%3Crect%20x%3D%221140%22%20y%3D%22310%22%20width%3D%2260%22%20height%3D%22250%22/%3E%3Crect%20x%3D%221210%22%20y%3D%22355%22%20width%3D%2285%22%20height%3D%22205%22/%3E%3Crect%20x%3D%221305%22%20y%3D%22285%22%20width%3D%2260%22%20height%3D%22275%22/%3E%3Crect%20x%3D%221375%22%20y%3D%22340%22%20width%3D%2285%22%20height%3D%22220%22/%3E%3C/g%3E%3Cg%20fill%3D%22%2321265D%22%3E%3Crect%20x%3D%2230%22%20y%3D%22415%22%20width%3D%2270%22%20height%3D%22145%22/%3E%3Crect%20x%3D%22120%22%20y%3D%22435%22%20width%3D%2255%22%20height%3D%22125%22/%3E%3Crect%20x%3D%22200%22%20y%3D%22400%22%20width%3D%2245%22%20height%3D%22160%22/%3E%3Crect%20x%3D%22270%22%20y%3D%22450%22%20width%3D%2285%22%20height%3D%22110%22/%3E%3Crect%20x%3D%22380%22%20y%3D%22410%22%20width%3D%2255%22%20height%3D%22150%22/%3E%3Crect%20x%3D%22455%22%20y%3D%22365%22%20width%3D%2260%22%20height%3D%22195%22/%3E%3Crect%20x%3D%22472%22%20y%3D%22330%22%20width%3D%2226%22%20height%3D%2240%22/%3E%3Crect%20x%3D%22482%22%20y%3D%22300%22%20width%3D%226%22%20height%3D%2234%22/%3E%3Crect%20x%3D%22540%22%20y%3D%22430%22%20width%3D%2270%22%20height%3D%22130%22/%3E%3Crect%20x%3D%22630%22%20y%3D%22395%22%20width%3D%2250%22%20height%3D%22165%22/%3E%3Crect%20x%3D%22695%22%20y%3D%22445%22%20width%3D%2280%22%20height%3D%22115%22/%3E%3Crect%20x%3D%22790%22%20y%3D%22378%22%20width%3D%2272%22%20height%3D%22182%22/%3E%3Crect%20x%3D%22804%22%20y%3D%22348%22%20width%3D%2244%22%20height%3D%2234%22/%3E%3Crect%20x%3D%22818%22%20y%3D%22320%22%20width%3D%2216%22%20height%3D%2232%22/%3E%3Crect%20x%3D%22880%22%20y%3D%22425%22%20width%3D%2260%22%20height%3D%22135%22/%3E%3Crect%20x%3D%22955%22%20y%3D%22402%22%20width%3D%2245%22%20height%3D%22158%22/%3E%3Crect%20x%3D%221015%22%20y%3D%22450%22%20width%3D%2285%22%20height%3D%22110%22/%3E%3Crect%20x%3D%221115%22%20y%3D%22415%22%20width%3D%2255%22%20height%3D%22145%22/%3E%3Crect%20x%3D%221185%22%20y%3D%22385%22%20width%3D%2265%22%20height%3D%22175%22/%3E%3Crect%20x%3D%221265%22%20y%3D%22440%22%20width%3D%2270%22%20height%3D%22120%22/%3E%3Crect%20x%3D%221350%22%20y%3D%22408%22%20width%3D%2255%22%20height%3D%22152%22/%3E%3C/g%3E%3Cg%20fill%3D%22%239BA3E0%22%20opacity%3D%22.55%22%3E%3Crect%20x%3D%22470%22%20y%3D%22392%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22486%22%20y%3D%22414%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22806%22%20y%3D%22400%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22826%22%20y%3D%22424%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22644%22%20y%3D%22412%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%221198%22%20y%3D%22405%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%221214%22%20y%3D%22430%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22252%22%20y%3D%22462%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22908%22%20y%3D%22440%22%20width%3D%225%22%20height%3D%227%22/%3E%3Crect%20x%3D%22672%22%20y%3D%22252%22%20width%3D%224%22%20height%3D%226%22/%3E%3C/g%3E%3Cg%20fill%3D%22%239BA3E0%22%3E%3Crect%20x%3D%22455%22%20y%3D%22363%22%20width%3D%2260%22%20height%3D%222%22/%3E%3Crect%20x%3D%22790%22%20y%3D%22376%22%20width%3D%2272%22%20height%3D%222%22/%3E%3Crect%20x%3D%22655%22%20y%3D%22238%22%20width%3D%2250%22%20height%3D%222%22/%3E%3C/g%3E%3C/svg%3E") center bottom / cover no-repeat,
    var(--ink);
}
.hero--img .tape { background: rgba(15,17,48,.55); backdrop-filter: blur(2px); }
.hero--img .tape::before { width: 400px; background: linear-gradient(90deg, #101233 58%, rgba(16,18,51,0)); }
.hero--img .tape::after  { background: linear-gradient(270deg, #101233, rgba(16,18,51,0)); }
.hero--img .tape__label  { background: transparent; }

/* Wide photographic bridge band */
.bridge {
  position: relative;
  min-height: clamp(320px, 44vw, 520px);
  background: var(--bridge-img) center 55% / cover no-repeat, var(--ink);
  display: flex; align-items: flex-end;
  border-top: 1px solid var(--on-dark-rule);
  border-bottom: 1px solid var(--on-dark-rule);
}
.bridge::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,23,63,.28) 0%, rgba(15,17,48,.78) 100%);
}
.bridge .wrap { position: relative; padding-top: 64px; padding-bottom: 44px; }
.bridge__cap {
  display: flex; flex-wrap: wrap; gap: 10px 32px; align-items: baseline;
  color: #fff;
}
.bridge__cap .t { font-family: var(--display); font-weight: 730; font-stretch: 114%; font-size: clamp(1.3rem, 2.4vw, 1.9rem); letter-spacing: -.014em; }
.bridge__cap .s { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--peri); }

/* Split section with a photo column */
.split--photo { grid-template-columns: 5fr 6fr; align-items: start; }
.figblock { position: relative; overflow: hidden; }
.figblock img { width: 100%; height: 100%; object-fit: cover; display: block; }
.figblock::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(33,38,93,.10), rgba(20,23,63,.22));
  pointer-events: none;
}
.figblock--tall { aspect-ratio: 4 / 5; }
.figblock--wide { aspect-ratio: 16 / 10; }
.figblock figcaption {
  position: absolute; left: 0; bottom: 0; z-index: 2;
  background: var(--ink); color: var(--peri);
  font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  padding: 10px 16px;
}
figure.figblock { margin: 0; }

@media (max-width: 900px) {
  .split--photo { grid-template-columns: 1fr; }
  .figblock--tall { aspect-ratio: 16 / 10; }
}

/* ==========================================================================
   v5 — bespoke artwork (replaces stock photography)
   ========================================================================== */
.bridge--art { background: var(--ink); min-height: 0; display: block; }
.bridge--art::before { content: none; }
.bridge__art { display: block; width: 100%; height: auto; }
.bridge--art .wrap { position: relative; padding-top: 0; padding-bottom: 40px; margin-top: -6px; }
.bridge--art .bridge__cap { border-top: 1px solid var(--on-dark-rule); padding-top: 22px; }

.wire { margin: 0; border: 1px solid var(--rule); background: #fff; padding: 26px 18px 8px; }
.wire svg { display: block; width: 100%; height: auto; }

/* ==========================================================================
   v6 — full bespoke visual system
   Everything below is drawn from the brand: the mark's outline geometry, the
   wire, the tape, and data computed from the published ledger.
   ========================================================================== */

/* Fine grid texture for dark bands — trading-floor graph paper */
.band--navy, .band--navy-mid, .pagehead {
  background-image:
    repeating-linear-gradient(0deg,  rgba(255,255,255,.035) 0 1px, transparent 1px 72px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 72px);
  background-color: var(--ink);
}
.band--navy-mid { background-color: var(--ink-2); }

/* Hero: the mark as an architectural watermark */
.hero { isolation: isolate; }
.hero__wm {
  position: absolute; right: -6%; top: 13%;
  width: min(62vw, 900px); opacity: .05;
  pointer-events: none; z-index: 0;
}
.hero .wrap, .hero .tape { position: relative; z-index: 1; }
.hero {
  background-image:
    repeating-linear-gradient(0deg,  rgba(255,255,255,.03) 0 1px, transparent 1px 72px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 72px);
}

/* Outlined display numerals — the wordmark's outlined-EF logic applied to figures */
.division__no, .service__no {
  font-family: var(--display);
  font-weight: 800; font-stretch: 116%;
  font-size: clamp(2.2rem, 3.4vw, 3rem);
  line-height: .9; letter-spacing: 0;
  color: transparent;
  -webkit-text-stroke: 2px var(--indigo);
  padding-top: 0;
}
.division:hover .division__no { color: var(--indigo); -webkit-text-stroke: 2px var(--indigo); }

/* Diagram plates */
.plate { border: 1px solid var(--rule); background: #fff; padding: 24px 20px 14px; max-width: 720px; margin-left: 0; margin-right: 0; }
.plate svg { display: block; width: 100%; height: auto; }
.plate--dark { border-color: var(--on-dark-rule); background: rgba(255,255,255,.03); }

/* Deal-mix chart */
.mix { border-top: 3px solid var(--indigo); padding-top: 24px; }
.mix__title { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--text-soft); margin-bottom: 22px; }
.mix__row { display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 16px; margin-bottom: 16px; }
.mix__lab { font-size: .875rem; font-weight: 600; }
.mix__bar { height: 22px; background: var(--paper-dim); position: relative; }
.mix__bar i { position: absolute; inset: 0 auto 0 0; background: var(--indigo); display: block; }
.mix__row:nth-child(odd) .mix__bar i { background: var(--ink-2); }
.mix__val { font-family: var(--mono); font-size: 12.5px; color: var(--text-soft); text-align: right; font-variant-numeric: tabular-nums; }
.mix__note { margin-top: 16px; font-size: .78125rem; color: var(--text-soft); }

/* Skyline enrichment */
.bridge--art { padding-top: 26px; }

@media (max-width: 900px) {
  .hero__wm { width: 120vw; right: -30%; top: 2%; opacity: .04; }
  .mix__row { grid-template-columns: 120px 1fr; }
  .division__no, .service__no { font-size: 1.9rem; -webkit-text-stroke-width: 1.5px; }
}

/* ==========================================================================
   v7 — photography returns (honest treatment) + the ribbon
   ========================================================================== */
:root { --flag-red: #8E94A6; }

/* The ribbon: every section marker becomes a quiet tricolor —
   indigo field, paper gap, a thread of Old Glory red. Subtle, systemic. */
.marker::before {
  width: 56px; height: 13px;
  background: linear-gradient(180deg, var(--indigo) 0 6px, transparent 6px 9px, var(--flag-red) 9px 13px);
  box-shadow: none;
  margin-bottom: 20px;
}
.band--navy .marker::before,
.band--navy-mid .marker::before {
  background: linear-gradient(180deg, var(--peri) 0 6px, transparent 6px 9px, var(--flag-red) 9px 13px);
  box-shadow: none;
}
.tape__label::before {
  content: ""; display: inline-block; width: 7px; height: 7px;
  background: var(--flag-red); margin-right: 10px; vertical-align: 1px;
}

/* Photo bridge (image variant) */
.bridge--photo {
  min-height: clamp(340px, 46vw, 560px);
  display: flex; align-items: flex-end;
}
.bridge--photo::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,23,63,.30) 0%, rgba(15,17,48,.82) 100%);
}
.bridge--photo .wrap { position: relative; padding-top: 64px; padding-bottom: 44px; }

/* In-body photography */
.figblock--frame { border: 1px solid var(--on-dark-rule); padding: 10px; background: rgba(255,255,255,.03); }
.figblock--frame img { display:block; }
.band .figblock--paper { border: 1px solid var(--rule); padding: 10px; background: #fff; }

@media (max-width: 900px) { .bridge--photo { min-height: 260px; } }


/* Cascade fix: grid + gradient + photo + skyline + ink, one authoritative stack */
.hero--img {
  background: var(--ink);
}
.hero__bg {
  position: absolute; inset: 0; z-index: 0;
  background: url("hero-street.jpg") center 32% / cover no-repeat;
  transform-origin: 60% 40%;
  animation: heroDrift 14s cubic-bezier(.22,.6,.3,1) 1 forwards;
}
.hero--img::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    repeating-linear-gradient(0deg,  rgba(255,255,255,.03) 0 1px, transparent 1px 72px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 72px),
    linear-gradient(100deg, rgba(15,17,48,.94) 0%, rgba(20,23,63,.78) 46%, rgba(23,27,74,.42) 100%);
}
.hero--img .wrap { position: relative; z-index: 2; }
@keyframes heroDrift {
  from { transform: scale(1.12) translateX(-2.4%); }
  to   { transform: scale(1) translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__bg { animation: none; }
}

/* Legibility over photography */
.hero--img .hero__side dl {
  background: rgba(13,15,42,.72);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  padding: 6px 18px 10px; border: 1px solid var(--on-dark-rule); border-top: 0;
}
.hero--img .hero__side dl { border-top: 1px solid var(--on-dark-rule); }
.masthead:not(.is-solid) { background: linear-gradient(180deg, rgba(13,15,42,.62), rgba(13,15,42,0)); }

/* Full-width editorial banners — fills the section, no orphan columns */
.figblock--banner { aspect-ratio: 21 / 8; width: 100%; }
.figblock--banner img { object-position: center 38%; }
.service .figblock--banner { margin: 6px 0 44px; }
@media (max-width: 900px) { .figblock--banner { aspect-ratio: 16 / 10; } }

/* Larger hero actions (colleague request) */
.hero__actions--lg .btn { padding: 22px 44px; font-size: 14px; }

/* ==========================================================================
   Expandable team biographies
   ========================================================================== */
.person--toggle { text-align: left; width: 100%; padding: 0; border-top: 3px solid var(--indigo); cursor: pointer; }
.person--toggle:hover .person__name { color: var(--indigo); }
.person__more {
  display: inline-block; margin-top: 12px;
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
  color: var(--indigo); border-bottom: 2px solid var(--indigo); padding-bottom: 3px;
}
.person--toggle[aria-expanded="true"] .person__more::after { content: " \2212"; }
.person--toggle[aria-expanded="false"] .person__more::after { content: " +"; }

.bio { grid-column: 1 / -1; }
.bio__inner {
  background: #fff; border: 1px solid var(--rule); border-top: 3px solid var(--indigo);
  padding: 36px 40px; margin: 4px 0 12px;
}
.bio__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; margin-bottom: 16px; }
.bio__name { font-family: var(--display); font-weight: 700; font-stretch: 112%; font-size: 1.3rem; letter-spacing: -.01em; }
.bio__role { font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 650; color: var(--text-soft); }
.bio__inner p { font-size: .96875rem; line-height: 1.68; color: var(--text); max-width: 90ch; }
.bio__pending { color: var(--text-soft); font-style: italic; }
@media (max-width: 900px) { .bio__inner { padding: 24px 20px; } }

/* Ledger pagination */
.pager { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 34px; }
.pager button {
  min-width: 42px; height: 42px; padding: 0 12px;
  font-size: 13px; font-weight: 700; letter-spacing: .02em;
  font-variant-numeric: tabular-nums;
  border: 2px solid var(--rule); color: var(--text-soft); background: #fff;
  transition: border-color .2s, color .2s, background .2s;
}
.pager button:hover:not(:disabled) { border-color: var(--indigo); color: var(--indigo); }
.pager button.is-on { background: var(--indigo); border-color: var(--indigo); color: #fff; }
.pager button:disabled { opacity: .35; cursor: default; }

/* Typographic tombstones — self-contained, in the classic idiom */
.tomb {
  text-align: center;
  border: 1px solid var(--indigo);
  outline: 1px solid var(--indigo);
  outline-offset: -5px;
  padding: 34px 26px 28px;
}
.tomb__date { margin-bottom: 16px; }
.tomb__name { font-family: var(--display); font-weight: 720; font-stretch: 112%; font-size: 1.2rem; letter-spacing: -.01em; }
.tomb__name i { margin-top: 6px; }
.tomb__val { margin-top: 16px; font-size: 1.7rem; }
.tomb__role { margin-top: 14px; padding-top: 14px; }

/* Team monogram fallback — photo covers it when it loads */
.person__img { position: relative; }
.person__init {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--display); font-weight: 780; font-stretch: 116%;
  font-size: clamp(2.4rem, 4vw, 3.4rem); letter-spacing: .02em;
  color: var(--indigo); opacity: .55;
}
.person__img img { position: relative; z-index: 1; }

/* Hide broken-image alt text visually; screen readers still get it */
.person__img img { color: transparent; font-size: 0; }

/* Tombstone logo, centered above the engraving */
.tomb__logo { display: flex; justify-content: center; align-items: center; height: 44px; margin-bottom: 18px; }
.tomb__logo img { max-height: 40px; max-width: 60%; width: auto; object-fit: contain; }

/* Legal prose */
.legal-prose p { font-size: 1rem; line-height: 1.75; margin-bottom: 20px; color: var(--text); }


/* Ledger view toggle */
.viewtoggle { display: flex; margin: 26px 0; }
.viewtoggle button {
  padding: 12px 22px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 700; border: 2px solid var(--indigo); color: var(--indigo); background: #fff;
}
.viewtoggle button + button { border-left: 0; }
.viewtoggle button.is-on { background: var(--indigo); color: #fff; }

/* Tombstone view: the same ledger rows, re-dressed as engraved cards */
.ledger.is-tombs .ledger__head { display: none; }
.ledger.is-tombs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; border-top: 0; }
.ledger.is-tombs .deal {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  text-align: center; gap: 0; padding: 30px 22px 26px;
  border: 1px solid var(--indigo); outline: 1px solid var(--indigo); outline-offset: -5px;
  border-bottom: 1px solid var(--indigo); background: #fff;
}
.ledger.is-tombs .deal__date { order: 1; margin-bottom: 14px; }
.ledger.is-tombs .deal__name { order: 2; font-family: var(--display); font-weight: 720; font-stretch: 112%; font-size: 1.1rem; letter-spacing: -.01em; }
.ledger.is-tombs .deal__name small { display: block; margin-top: 6px; }
.ledger.is-tombs .deal__val { order: 3; margin-top: 14px; font-size: 1.45rem; padding-bottom: 12px; border-bottom: 1px solid var(--rule); width: 70%; }
.ledger.is-tombs .deal__type { order: 4; margin-top: auto; padding-top: 12px; width: 100%; }
.ledger.is-tombs .deal__role { order: 5; margin-top: 4px; font-weight: 700; }
@media (max-width: 1000px) { .ledger.is-tombs { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .ledger.is-tombs { grid-template-columns: 1fr; } }


/* Tombstone logos: hidden in list view, engraved above the date in card view */
.ledger .deal__logo { display: none; }
.ledger.is-tombs .deal__logo {
  display: flex; order: 0; align-items: center; justify-content: center;
  height: 64px; margin-bottom: 14px; width: 100%;
}
.ledger.is-tombs .deal__logo img { max-height: 58px; max-width: 78%; object-fit: contain; }

/* Division & community photographs */
.divphoto { margin: 0 0 34px; border: 1px solid var(--indigo); padding: 6px; background: #fff; }
.divphoto img { display: block; width: 100%; height: auto; }
.divphoto--tight { margin-bottom: 0; }
.divphoto--cell { margin: 0; }


/* Tombstone leveling: fixed zones so rows align across cards */
.ledger.is-tombs .deal__name { min-height: 4.6em; display: flex; flex-direction: column; justify-content: flex-start; align-items: center; }
.ledger.is-tombs .deal__role { min-height: 2.5em; }

/* Homepage mini ledger */
.ledger--mini .ledger__head { }


/* Unify section breaks: service sections carry the same ribbon dash */
.service { position: relative; border-top: 0; }
.service::before {
  content: ""; position: absolute; top: 0; left: 0;
  width: 56px; height: 13px;
  background: linear-gradient(180deg, var(--indigo) 0 6px, transparent 6px 9px, var(--flag-red) 9px 13px);
}
.service:last-child { border-bottom: 0; }


/* Linked transactions (item 12) */
a.deal { color: inherit; text-decoration: none; }
a.deal:hover { background: rgba(33,38,93,.04); }
.ledger.is-tombs a.deal:hover { outline-color: var(--flag-red); }

.pager__gap { padding: 0 6px; color: var(--text-soft); align-self: center; }
.footer__legal p { max-width: none; }

/* R3.5a — tombstone leveling: fixed title block, anchored fields */
.ledger.is-tombs .deal__name{height:5.4em;display:block;overflow:hidden}
.ledger.is-tombs .deal__val,.ledger.is-tombs .deal__type,.ledger.is-tombs .deal__role{display:block}
/* R3.2 — tombstone hover pop (all tombstones sitewide) */
.ledger.is-tombs .deal,.tombs .card,.home-tombs .deal{transition:transform .18s ease,box-shadow .18s ease}
.ledger.is-tombs .deal:hover,.tombs .card:hover,.home-tombs .deal:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 14px 34px rgba(16,20,42,.14)}
@media (prefers-reduced-motion: reduce){.ledger.is-tombs .deal:hover,.tombs .card:hover,.home-tombs .deal:hover{transform:none}}
/* R4.1 — Lazard-style hover: color-plate reveal + expanding underline */
.person--photo .person__name{width:fit-content;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 2px;transition:background-size .4s ease,color .2s ease;padding-bottom:3px}
.person--photo:hover .person__name{background-size:100% 2px}
.person__img{position:relative}
.person--photo .person__img::after{content:'';position:absolute;inset:0;background:var(--peri);opacity:0;mix-blend-mode:multiply;transition:opacity .35s ease}
.person--photo:hover .person__img::after{opacity:.5}

/* R3.1 — charity photos (duotone, divphoto frame) */
.charity__photo{margin:0 0 18px;border:1px solid var(--indigo);padding:6px;background:#fff}
.charity__photo img{display:block;width:100%;aspect-ratio:2.08/1;object-fit:cover}

/* R3.6 — footer meta: baseline alignment + LinkedIn mark */
.footer__meta { align-items: baseline; }
.footer__li { color: var(--on-dark-soft); display: flex; width: fit-content; margin-top: 2px; transition: color .15s ease; }
.footer__li:hover { color: #fff; }
.footer__li svg { display: block; }

/* R7 — Form CRS inline preview */
.crs-embed { margin: 28px 0 34px; border: 1px solid var(--rule); background: #fff; }
.crs-embed object { display: block; width: 100%; height: 1005px; }
@media (max-width: 700px) { .crs-embed object { height: 520px; } }

/* R9.4 — interpunct between all bottom-bar segments */
.footer__meta span + span::before { content: "\00B7"; margin: 0 12px; opacity: .7; }

/* R9.1 — separator as a site element: one fixed height, weight, color everywhere */
.ledger.is-tombs .deal__logo img.lkp, .deal__logo img.lkp { max-height: 46px; max-width: 32%; object-fit: contain; }
.deal__logo .lksep { flex: none; width: 1px; height: 34px; background: #484c73; margin: 0 12px; }

/* R10 — three-mark cards: tighter part cap so two separators fit */
.ledger.is-tombs .deal__logo--3 img.lkp, .deal__logo--3 img.lkp { max-width: 24%; }

/* R10 — mobile: stack bottom-bar segments, no dangling interpuncts */
@media (max-width: 700px) {
  .footer__meta { gap: 6px 0; }
  .footer__meta span { display: block; width: 100%; }
  .footer__meta span + span::before { content: ""; margin: 0; }
}

/* Compliance (Blackman, Sep 16): BrokerCheck line + footer link styling */
.bio__bc { margin-top: 14px; font-size: 12.5px; color: #5a5e77; }
.bio__bc a { color: inherit; text-decoration: underline; }
.footer__legal a, .footer__meta a { color: inherit; font-size: inherit; text-decoration: underline; text-underline-offset: 2px; }

.tlink { color: inherit; font-size: inherit; text-decoration: underline; text-underline-offset: 2px; }
.tlink:hover { opacity: .65; }

.mix__axis { display: grid; grid-template-columns: 170px 1fr; gap: 16px; margin-top: 2px; }
.mix__axisline { display: flex; justify-content: space-between; border-top: 1px solid var(--rule); padding-top: 5px; }
.mix__axisline b { font-family: var(--mono); font-weight: 400; font-size: 11px; color: var(--text-soft); font-variant-numeric: tabular-nums; }
@media (max-width: 720px) { .mix__axis { grid-template-columns: 120px 1fr; } }
