/* =========================================================================
   Ember Venture Group · Executive & Consulting layer
   Loaded after styles.css on /consulting pages. Deep slate surfaces, crisp
   paper-white document sections, the Ember accent used sparingly.
   Includes a print layer so executive pages export cleanly to PDF.
   ========================================================================= */

:root {
  /* Deep slate (dark surfaces) */
  --ex-ink:        #0B1220;
  --ex-slate-950:  #0E1626;
  --ex-slate-900:  #131D30;
  --ex-slate-800:  #1C2940;
  --ex-slate-700:  #2B3A54;
  --ex-steel:      #8EA3C0;
  --ex-mist:       #C9D3E0;

  /* Paper (light document surfaces) */
  --ex-paper:      #F6F8FB;
  --ex-paper-2:    #EDF1F6;
  --ex-card:       #FFFFFF;
  --ex-text:       #121A2A;
  --ex-text-2:     #3A475C;
  --ex-text-3:     #5B6779;
  --ex-rule:       #D9E0EA;
  --ex-rule-2:     #C3CDDA;

  /* Accent: Ember on dark, a deepened Ember on paper (WCAG AA on --ex-paper) */
  --ex-accent:     #F0997B;
  --ex-accent-ink: #A8461F;
  --ex-accent-wash: rgba(168, 70, 31, 0.07);

  --ex-mono: 'Ubuntu Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

body.ex { background: var(--ex-ink); }

/* Paper sections redefine the base tokens so styles.css typography inverts */
.ex-paper {
  --text-primary:   var(--ex-text);
  --text-secondary: var(--ex-text-2);
  --text-tertiary:  var(--ex-text-3);
  --text-quiet:     var(--ex-text-3);
  --border-subtle:  var(--ex-rule);
  --border-mid:     var(--ex-rule-2);
  --accent:         var(--ex-accent-ink);
  background: var(--ex-paper);
  color: var(--ex-text);
}
.ex-paper.alt { background: var(--ex-paper-2); }
.ex-slate { background: var(--ex-slate-950); }

.ex-mono {
  font-family: var(--ex-mono);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
}

/* ---------- Hero ---------- */
.ex-hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 3.5rem;
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(142, 163, 192, 0.14), transparent 60%),
    linear-gradient(180deg, var(--ex-slate-950) 0%, var(--ex-ink) 100%);
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.08);
}
@media (min-width: 768px) { .ex-hero { padding: 6rem 0 4.5rem; } }
.ex-hero .hero-bg { opacity: 0.45; }
.ex-hero-inner { position: relative; z-index: 1; }
.ex-hero h1 { margin: 1rem 0 1.25rem; max-width: 1000px; text-wrap: balance; }
.ex-hero-sub {
  font-size: clamp(1rem, 0.5vw + 0.9rem, 1.1875rem);
  color: var(--text-secondary);
  max-width: 720px;
  line-height: 1.6;
}

/* Screen-reader-only text */
.ex-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Typed headline: the blank types each area, holds it, fades it, types the next */
/* The whole second line ("AI ___.") is coral; the line break before it is intentional */
.ex-type-line { color: var(--ex-accent); }
.ex-type { white-space: nowrap; }
.ex-type-word { transition: opacity 0.45s ease; }
.ex-type-word.is-fading { opacity: 0; }
.ex-type-caret {
  display: inline-block; width: 0.06em; height: 0.92em; margin: 0 -0.03em 0 0.03em;
  vertical-align: -0.08em; background: currentColor;
  animation: ex-caret 1s steps(1, end) infinite;
}
@keyframes ex-caret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ex-type-caret { animation: none; } .ex-type-word { transition: none; } }

/* Rotating subheading: both lines share one grid cell, so the hero keeps
   the height of the longer line and nothing below it shifts when they swap. */
.ex-rotator { display: grid; }
.ex-rotator-item {
  grid-area: 1 / 1;
  opacity: 0; visibility: hidden;
  transition: opacity 0.9s ease, visibility 0s linear 0.9s;
}
.ex-rotator-item.is-active { opacity: 1; visibility: visible; transition: opacity 0.9s ease; }
@media (prefers-reduced-motion: reduce) { .ex-rotator-item { transition: none; } }

/* The three timeline commitments under the hero headline */
.ex-hero-path {
  display: flex; flex-wrap: wrap; gap: 0.375rem 1.25rem;
  margin-top: 1.25rem;
  font-family: var(--ex-mono); font-size: 0.875rem; letter-spacing: 0.02em;
  color: var(--ex-accent);
}
.ex-hero-path span { white-space: nowrap; }
.ex-hero-trust {
  margin-top: 1rem;
  font-size: clamp(1rem, 0.4vw + 0.9rem, 1.125rem);
  color: var(--ex-mist);
}
.ex-hero-trust strong { color: #FFFFFF; font-weight: 500; }

/* Profile hero: portrait + identity */
.ex-profile {
  display: grid;
  gap: 2rem;
  align-items: end;
}
@media (min-width: 820px) {
  .ex-profile { grid-template-columns: 260px 1fr; gap: 3rem; }
}
.ex-portrait {
  position: relative;
  width: 100%;
  max-width: 260px;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background:
    linear-gradient(160deg, var(--ex-slate-800), var(--ex-slate-950));
  border: 0.5px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.ex-portrait img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(0.92) contrast(1.02);
}
/* Monogram shows if the portrait file is missing (img removed by onerror) */
.ex-portrait-monogram {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 3.5rem; font-weight: 300; letter-spacing: 0.04em;
  color: var(--ex-steel);
  z-index: 0;
}
.ex-portrait img { position: relative; z-index: 1; }
.ex-portrait::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(90deg, var(--ex-accent), transparent);
  z-index: 2;
}
.ex-name {
  font-size: clamp(2rem, 4vw + 1rem, 3.25rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: #FFFFFF;
  margin: 0.75rem 0 0.75rem;
}
.ex-titles {
  display: flex; flex-wrap: wrap; gap: 0.5rem 0;
  font-size: clamp(0.9375rem, 0.5vw + 0.85rem, 1.0625rem);
  color: var(--ex-mist);
  font-weight: 500;
}
.ex-titles span + span::before {
  content: '·';
  color: var(--ex-accent);
  margin: 0 0.625rem;
}
.ex-affiliation {
  margin-top: 0.875rem;
  color: var(--text-tertiary);
  font-size: 0.9375rem;
}
.ex-contact-line {
  display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem;
  margin-top: 1.25rem;
  color: var(--text-tertiary);
}
.ex-contact-line a { color: var(--ex-mist); transition: color 0.15s ease; }
.ex-contact-line a:hover { color: #FFFFFF; }

@media (max-width: 640px) {
  .ex-titles { flex-direction: column; gap: 0.25rem; }
  .ex-titles span + span::before { display: none; }
}

/* ---------- Buttons ---------- */
.ex-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.ex-btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.8125rem 1.375rem;
  border-radius: var(--radius-md);
  font-size: 0.9375rem; font-weight: 500; letter-spacing: 0.01em;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.2;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.ex-btn:hover { transform: translateY(-1px); }
.ex-btn-primary { background: var(--ex-accent); color: var(--ex-ink); border-color: var(--ex-accent); }
.ex-btn-primary:hover { background: #F4AE95; border-color: #F4AE95; }
.ex-btn-ghost { background: transparent; color: #FFFFFF; border-color: rgba(255, 255, 255, 0.28); }
.ex-btn-ghost:hover { border-color: #FFFFFF; }
.ex-paper .ex-btn-primary { background: var(--ex-text); color: #FFFFFF; border-color: var(--ex-text); }
.ex-paper .ex-btn-primary:hover { background: var(--ex-slate-700); border-color: var(--ex-slate-700); }
.ex-paper .ex-btn-ghost { color: var(--ex-text); border-color: var(--ex-rule-2); }
.ex-paper .ex-btn-ghost:hover { border-color: var(--ex-text); }
.ex-btn svg { width: 16px; height: 16px; flex-shrink: 0; }

/* ---------- Signal strip (key facts) ---------- */
.ex-signals {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 0.5px solid rgba(255, 255, 255, 0.12);
  margin-top: 3rem;
}
@media (min-width: 820px) { .ex-signals { grid-template-columns: repeat(4, 1fr); } }
.ex-signal {
  padding: 1.25rem 1rem 0 0;
}
.ex-signal-value {
  font-size: clamp(1.375rem, 1.5vw + 0.9rem, 1.875rem);
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.ex-signal-label {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: var(--text-tertiary);
  line-height: 1.45;
}

/* ---------- Section scaffolding ---------- */
.ex-section-head { margin-bottom: 2.5rem; }
.ex-section-head h2 { margin-top: 0.625rem; }
.ex-section-head p { margin-top: 1rem; font-size: 1.0625rem; line-height: 1.7; max-width: 760px; }
.ex-kicker {
  display: inline-flex; align-items: center; gap: 0.625rem;
}


/* ---------- Executive summary ---------- */
.ex-summary {
  display: grid; gap: 2.5rem;
}
@media (min-width: 900px) { .ex-summary { grid-template-columns: 1.6fr 1fr; gap: 3.5rem; } }
.ex-summary-body p {
  font-size: clamp(1rem, 0.4vw + 0.92rem, 1.125rem);
  line-height: 1.75;
  margin-bottom: 1.25rem;
}
.ex-summary-body p:first-child::first-line { color: var(--ex-text); font-weight: 500; }
.ex-pull {
  margin: 2rem 0 0;
  padding: 0.25rem 0 0.25rem 1.25rem;
  border-left: 2px solid var(--accent);
  font-size: clamp(1.125rem, 0.6vw + 1rem, 1.3125rem);
  line-height: 1.5;
  color: var(--text-primary);
  font-weight: 400;
}
.ex-facts {
  background: var(--ex-card);
  border: 0.5px solid var(--ex-rule);
  border-radius: var(--radius-lg);
  padding: 1.5rem 1.5rem 0.5rem;
  align-self: start;
}
.ex-facts dl { display: grid; }
.ex-facts div { padding: 0.875rem 0; border-bottom: 0.5px solid var(--ex-rule); }
.ex-facts div:last-child { border-bottom: 0; }
.ex-facts dt {
  font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--ex-text-3);
}
.ex-facts dd { margin-top: 0.25rem; font-size: 0.9375rem; color: var(--ex-text); line-height: 1.5; }
.ex-facts a { color: var(--ex-accent-ink); }
.ex-chips { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.375rem; }
.ex-chip {
  display: inline-block;
  padding: 0.1875rem 0.5625rem;
  border: 0.5px solid var(--ex-rule-2);
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--ex-text-2);
  background: var(--ex-paper);
}

/* ---------- Competency matrix ---------- */
.ex-matrix {
  display: grid; gap: 1px;
  background: var(--ex-rule);
  border: 0.5px solid var(--ex-rule);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
@media (min-width: 640px) { .ex-matrix { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .ex-matrix { grid-template-columns: repeat(3, 1fr); } }
.ex-matrix-cell {
  background: var(--ex-card);
  padding: 1.5rem 1.5rem 1.75rem;
}
.ex-matrix-cell h3 {
  display: flex; align-items: baseline; gap: 0.625rem;
  font-size: 1rem; margin-bottom: 1rem;
}
.ex-matrix-cell h3 .ex-mono { color: var(--ex-accent-ink); font-size: 0.75rem; }
.ex-matrix-cell li {
  position: relative;
  padding-left: 1rem;
  font-size: 0.9063rem;
  line-height: 1.55;
  color: var(--ex-text-2);
  margin-bottom: 0.5rem;
}
.ex-matrix-cell li::before {
  content: '';
  position: absolute; left: 0; top: 0.6em;
  width: 5px; height: 5px; border-radius: 1px;
  background: var(--ex-steel);
}
.ex-matrix-cell.stack { background: var(--ex-slate-950); }
.ex-matrix-cell.stack h3 { color: #FFFFFF; }
.ex-matrix-cell.stack h3 .ex-mono { color: var(--ex-accent); }
.ex-matrix-cell.stack li { color: var(--ex-mist); padding-left: 0; font-family: var(--ex-mono); font-size: 0.8438rem; }
.ex-matrix-cell.stack li::before { display: none; }
.ex-matrix-cell.stack li b { color: var(--ex-steel); font-weight: 400; display: block; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; font-family: 'Ubuntu', sans-serif; }

/* ---------- Timeline ---------- */
.ex-filters {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin-bottom: 2rem;
}
.ex-filter {
  font-family: inherit;
  font-size: 0.8125rem; font-weight: 500;
  padding: 0.4375rem 0.875rem;
  border-radius: 999px;
  border: 0.5px solid var(--ex-rule-2);
  background: var(--ex-card);
  color: var(--ex-text-2);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ex-filter:hover { border-color: var(--ex-text); }
.ex-filter[aria-pressed="true"] { background: var(--ex-text); color: #FFFFFF; border-color: var(--ex-text); }
.ex-filter-count { opacity: 0.6; margin-left: 0.25rem; }

.ex-timeline { position: relative; }
.ex-timeline::before {
  content: '';
  position: absolute; top: 0.5rem; bottom: 0.5rem; left: 7px;
  width: 1px; background: var(--ex-rule-2);
}
@media (min-width: 820px) { .ex-timeline::before { left: 167px; } }

.ex-role {
  position: relative;
  display: grid;
  gap: 0.5rem;
  padding: 0 0 2.25rem 2rem;
}
@media (min-width: 820px) {
  .ex-role { grid-template-columns: 140px 1fr; gap: 3.25rem; padding-left: 0; }
}
.ex-role[hidden] { display: none; }
.ex-role::before {
  content: '';
  position: absolute; top: 0.45rem; left: 2px;
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--ex-paper);
  border: 2px solid var(--ex-steel);
}
@media (min-width: 820px) { .ex-role::before { left: 162px; } }
.ex-role.current::before { border-color: var(--ex-accent-ink); background: var(--ex-accent-ink); box-shadow: 0 0 0 4px var(--ex-accent-wash); }

.ex-role-when {
  font-family: var(--ex-mono);
  font-size: 0.8125rem;
  color: var(--ex-text-3);
  line-height: 1.5;
  padding-top: 0.125rem;
}
@media (min-width: 820px) { .ex-role-when { text-align: right; } }
.ex-role-when .now { color: var(--ex-accent-ink); }

.ex-role-body h3 { font-size: 1.125rem; line-height: 1.3; }
.ex-role-title {
  margin-top: 0.25rem;
  color: var(--ex-accent-ink);
  font-size: 0.875rem; font-weight: 500;
}
.ex-role-meta { color: var(--ex-text-3); font-size: 0.8125rem; margin-top: 0.125rem; }
.ex-role-lede { margin-top: 0.75rem; font-size: 0.9688rem; line-height: 1.7; }
.ex-role-points { margin-top: 0.75rem; }
.ex-role-points li {
  position: relative; padding-left: 1rem;
  font-size: 0.9375rem; line-height: 1.65; color: var(--ex-text-2);
  margin-bottom: 0.4375rem;
}
.ex-role-points li::before {
  content: '';
  position: absolute; left: 0.125rem; top: calc(0.7em - 2.5px);
  width: 5px; height: 5px; border-radius: 50%; background: var(--ex-text-3);
}

/* Expandable mandates inside a role */
.ex-mandates {
  margin-top: 1rem;
  border: 0.5px solid var(--ex-rule);
  border-radius: var(--radius-lg);
  background: var(--ex-card);
}
.ex-mandates > summary {
  list-style: none;
  cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 0.875rem 1.125rem;
  font-size: 0.875rem; font-weight: 500; color: var(--ex-text);
}
.ex-mandates > summary::-webkit-details-marker { display: none; }
.ex-mandates > summary::after {
  content: '+';
  font-family: var(--ex-mono);
  font-size: 1.125rem; line-height: 1;
  color: var(--ex-accent-ink);
  transition: transform 0.2s ease;
}
.ex-mandates[open] > summary::after { transform: rotate(45deg); }
.ex-mandates > summary:focus-visible { outline: 2px solid var(--ex-accent-ink); outline-offset: 2px; border-radius: var(--radius-lg); }
.ex-mandate-list { padding: 0 1.125rem 0.5rem; }
.ex-mandate {
  display: grid; gap: 0.25rem;
  padding: 0.9375rem 0;
  border-top: 0.5px solid var(--ex-rule);
}
@media (min-width: 640px) { .ex-mandate { grid-template-columns: 170px 1fr; gap: 1.25rem; } }
.ex-mandate-where { font-size: 0.8125rem; font-weight: 500; color: var(--ex-text); line-height: 1.45; }
.ex-mandate-where small { display: block; font-weight: 400; color: var(--ex-text-3); font-size: 0.75rem; margin-top: 0.125rem; }
.ex-mandate p { font-size: 0.9063rem; line-height: 1.65; }
.ex-mandate a { color: var(--ex-accent-ink); font-weight: 500; }

/* ---------- Two-column credentials ---------- */
.ex-creds { display: grid; gap: 1.25rem; }
@media (min-width: 820px) { .ex-creds { grid-template-columns: repeat(3, 1fr); } }
.ex-cred {
  background: var(--ex-card);
  border: 0.5px solid var(--ex-rule);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
}
.ex-cred h3 { font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ex-text-3); font-weight: 500; margin-bottom: 1rem; }
.ex-cred-item + .ex-cred-item { margin-top: 1rem; padding-top: 1rem; border-top: 0.5px solid var(--ex-rule); }
.ex-cred-item strong { display: block; font-size: 0.9688rem; color: var(--ex-text); }
.ex-cred-item span { display: block; font-size: 0.875rem; color: var(--ex-text-2); margin-top: 0.125rem; line-height: 1.55; }
.ex-cred-item a { color: var(--ex-accent-ink); font-weight: 500; font-size: 0.875rem; }

/* ---------- Cards (consulting hub) ---------- */
.ex-grid-2 { display: grid; gap: 1.25rem; }
@media (min-width: 820px) { .ex-grid-2 { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
.ex-grid-4 { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .ex-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .ex-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.ex-offer {
  display: flex; flex-direction: column;
  background: var(--ex-card);
  border: 0.5px solid var(--ex-rule);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  position: relative;
}
.ex-offer.featured { border-color: var(--ex-text); box-shadow: 0 16px 40px rgba(18, 26, 42, 0.08); }
.ex-offer[id] { scroll-margin-top: 5.5rem; } /* homepage How We Work links land below the sticky nav */
@media (max-width: 860px) { .ex-offer[id] { scroll-margin-top: 8.5rem; } }
.ex-offer-tag {
  font-family: var(--ex-mono); font-size: 0.75rem; color: var(--ex-accent-ink);
}
.ex-offer h3 { margin-top: 0.75rem; font-size: 1.1875rem; }
.ex-offer-price {
  margin-top: 1.25rem;
  font-size: 1.5rem; font-weight: 500; color: var(--ex-text); letter-spacing: -0.01em;
  line-height: 1.2;
}
.ex-offer-terms { font-size: 0.8125rem; color: var(--ex-text-3); margin-top: 0.25rem; }
.ex-offer > p { margin-top: 1rem; font-size: 0.9375rem; line-height: 1.65; }
.ex-offer ul { margin-top: 1rem; padding-top: 1rem; border-top: 0.5px solid var(--ex-rule); flex: 1; }
.ex-offer li {
  position: relative; padding-left: 1.25rem;
  font-size: 0.875rem; line-height: 1.55; color: var(--ex-text-2);
  margin-bottom: 0.5rem;
}
.ex-offer li::before {
  content: '';
  position: absolute; left: 0; top: 0.5em;
  width: 8px; height: 4px;
  border-left: 1.5px solid var(--ex-accent-ink);
  border-bottom: 1.5px solid var(--ex-accent-ink);
  transform: rotate(-45deg);
}
.ex-offer-fit { margin-top: 1.25rem; font-size: 0.8125rem; color: var(--ex-text-3); line-height: 1.5; }
.ex-offer-fit strong { color: var(--ex-text); font-weight: 500; }
.ex-offer-cta { margin-top: 1.25rem; justify-content: center; width: 100%; font-size: 0.8125rem; padding: 0.75rem 0.75rem; white-space: nowrap; }
.ex-offer-per { font-size: 0.9375rem; font-weight: 400; color: var(--ex-text-3); white-space: nowrap; }
.ex-offer.featured .ex-offer-cta { background: var(--ex-text); color: #FFFFFF; border-color: var(--ex-text); }
.ex-offer-note { margin-top: 1.5rem; font-size: 0.875rem; color: var(--ex-text-3); max-width: 760px; }

/* People cards */
.ex-person {
  display: grid; grid-template-columns: 96px 1fr; gap: 1.25rem; align-items: start;
  background: var(--ex-card);
  border: 0.5px solid var(--ex-rule);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.ex-person:hover { border-color: var(--ex-text); transform: translateY(-2px); }
.ex-person img { width: 96px; height: 128px; object-fit: cover; border-radius: var(--radius-md); background: var(--ex-paper-2); }
.ex-person h3 { font-size: 1.125rem; }
.ex-person .ex-role-title { margin-top: 0.25rem; }
.ex-person p { margin-top: 0.75rem; font-size: 0.9063rem; line-height: 1.6; }
.ex-person-link { display: inline-block; margin-top: 0.875rem; color: var(--ex-accent-ink); font-size: 0.875rem; font-weight: 500; }

/* Problems list */
.ex-problems { display: grid; gap: 0; border-top: 0.5px solid rgba(255, 255, 255, 0.12); }
@media (min-width: 820px) { .ex-problems { grid-template-columns: 1fr 1fr; column-gap: 3rem; } }
.ex-problem {
  display: grid; grid-template-columns: 2.25rem 1fr; gap: 0.5rem;
  padding: 1.125rem 0;
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.12);
  color: var(--ex-mist);
  font-size: 0.9688rem; line-height: 1.6;
}
.ex-problem .ex-mono { color: var(--ex-accent); padding-top: 0.125rem; }

/* What we hear, what we deliver: client quote paired with our answer */
/* Heading: "What we hear" recedes so "what we deliver" carries the line */
.ex-heading-quiet { color: var(--ex-mist); opacity: 0.75; }
.ex-map { display: grid; border-top: 0.5px solid rgba(255, 255, 255, 0.12); }
.ex-map-row {
  display: grid; gap: 0.375rem;
  padding: 1.25rem 0;
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.12);
}
@media (min-width: 820px) {
  .ex-map-row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 2.5rem; align-items: baseline; }
}
.ex-map-q { color: var(--ex-mist); font-style: italic; font-size: 0.9688rem; line-height: 1.6; }
.ex-map-a { color: #FFFFFF; font-size: 1rem; line-height: 1.6; }
.ex-map-a strong { color: var(--ex-accent); font-weight: 500; }

/* Partnering: a quieter row under the four client-facing offers */
.ex-partner {
  display: grid; gap: 1rem; align-items: center;
  margin-top: 2rem; padding-top: 1.5rem;
  border-top: 0.5px solid var(--ex-rule-2);
  scroll-margin-top: 5.5rem;
}
@media (min-width: 820px) { .ex-partner { grid-template-columns: minmax(0, 1fr) auto; gap: 2.5rem; } }
.ex-partner h3 { margin-top: 0.5rem; font-size: 1.0625rem; }
/* Full-scale transformation: the largest engagement, set as a wide feature row */
.ex-partner-lead { padding: 1.75rem; border: 1px solid var(--ex-text); border-radius: var(--radius-lg); background: var(--ex-card); }
.ex-partner-lead h3 { font-size: 1.3125rem; line-height: 1.3; text-wrap: balance; }
.ex-partner p { margin-top: 0.5rem; font-size: 0.9375rem; line-height: 1.65; max-width: 760px; }

/* Glimpses: field photos framed on the boundary between two sections.
   The band's background is split between the colours above and below, so
   the frame appears to sit across the seam. */
.ex-glimpse { background: linear-gradient(to bottom, var(--above) 50%, var(--below) 50%); }
.ex-glimpse-fig { margin: 0 auto; }
.ex-glimpse-frame {
  position: relative; overflow: hidden;
  height: clamp(170px, 24vw, 320px);
  border-radius: var(--radius-lg);
  background: var(--ex-slate-950);
  box-shadow: 0 18px 44px rgba(14, 22, 38, 0.16);
}
.ex-glimpse-frame img {
  position: absolute; left: 0; top: -12%;
  width: 100%; height: 124%; object-fit: cover;
  filter: saturate(0.82) contrast(1.03);
  will-change: transform;
}
/* A tightly cropped photo shown whole: the frame takes the photo's shape and drifts less */
.ex-glimpse-frame.ex-glimpse-whole { height: auto; aspect-ratio: 1400 / 683; max-height: 480px; }
.ex-glimpse-whole img { top: -4%; height: 108%; }
.ex-glimpse-frame::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(14, 22, 38, 0.55), rgba(14, 22, 38, 0) 45%);
}
.ex-glimpse figcaption {
  position: relative; z-index: 1;
  margin: -2.25rem 0 0; padding: 0 1.25rem 1rem;
  font-family: var(--ex-mono); font-size: 0.75rem; letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.88);
}
/* Reveal: armed by executive.js, opened when the frame scrolls into view */
.ex-glimpse.is-armed .ex-glimpse-frame {
  clip-path: inset(9% 7% round 18px);
  transition: clip-path 1.2s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ex-glimpse.is-armed figcaption { opacity: 0; transform: translateY(6px); transition: opacity 0.8s ease 0.5s, transform 0.8s ease 0.5s; }
.ex-glimpse.is-armed.is-in .ex-glimpse-frame { clip-path: inset(0 0 round 12px); }
.ex-glimpse.is-armed.is-in figcaption { opacity: 1; transform: none; }

/* Process steps */
.ex-steps { display: grid; gap: 1.25rem; counter-reset: step; }
@media (min-width: 820px) { .ex-steps { grid-template-columns: repeat(4, 1fr); } }
.ex-step { border-top: 2px solid var(--ex-text); padding-top: 1rem; }
.ex-step .ex-mono { color: var(--ex-accent-ink); }
.ex-step h3 { font-size: 1rem; margin-top: 0.5rem; }
.ex-step p { font-size: 0.9063rem; line-height: 1.6; margin-top: 0.5rem; }

/* ---------- Case studies ---------- */
.ex-case {
  display: grid; gap: 2rem;
  padding: 2.5rem 0;
  border-top: 0.5px solid var(--ex-rule);
}
.ex-case:first-of-type { border-top: 0; padding-top: 0; }
@media (min-width: 900px) { .ex-case { grid-template-columns: 340px 1fr; gap: 3.5rem; } }
.ex-case-aside .ex-mono { color: var(--ex-accent-ink); }
.ex-case-aside h3 { font-size: clamp(1.25rem, 1vw + 0.9rem, 1.5rem); margin-top: 0.75rem; }
.ex-case-client { margin-top: 0.75rem; color: var(--ex-text-3); font-size: 0.875rem; line-height: 1.5; }
.ex-case-metric {
  margin-top: 1.5rem; padding: 1.125rem 1.25rem;
  background: var(--ex-slate-950); color: #FFFFFF;
  border-radius: var(--radius-lg);
}
.ex-case-metric + .ex-case-metric { margin-top: 0.75rem; }
.ex-case-metric strong { display: block; font-size: 1.75rem; font-weight: 500; color: #FFFFFF; letter-spacing: -0.01em; line-height: 1.1; }
.ex-case-metric span { display: block; margin-top: 0.375rem; font-size: 0.8125rem; color: var(--ex-mist); line-height: 1.5; }
.ex-case-body dl { display: grid; gap: 1.25rem; }
.ex-case-body dt {
  font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ex-text-3);
}
.ex-case-body dd { margin-top: 0.375rem; font-size: 0.9688rem; line-height: 1.7; color: var(--ex-text-2); }
.ex-case-body dd ul li { position: relative; padding-left: 1rem; margin-bottom: 0.375rem; }
.ex-case-body dd ul li::before { content: ''; position: absolute; left: 0.125rem; top: calc(0.7em - 2.5px); width: 5px; height: 5px; border-radius: 50%; background: var(--ex-text-3); }
.ex-case-note {
  margin-top: 1.25rem; font-size: 0.8125rem; color: var(--ex-text-3); line-height: 1.55;
  padding-left: 0.875rem; border-left: 1px solid var(--ex-rule-2);
}

.ex-portfolio { display: grid; gap: 1px; background: var(--ex-rule); border: 0.5px solid var(--ex-rule); border-radius: var(--radius-lg); overflow: hidden; margin-top: 2.5rem; }
@media (min-width: 820px) { .ex-portfolio { grid-template-columns: repeat(2, 1fr); } }
.ex-portfolio > div { background: var(--ex-card); padding: 1.375rem 1.5rem; }
.ex-portfolio .ex-mono { color: var(--ex-accent-ink); font-size: 0.75rem; }
.ex-portfolio p { margin-top: 0.5rem; font-size: 0.9063rem; line-height: 1.6; color: var(--ex-text); }

/* ---------- Terms list ---------- */
.ex-terms { display: grid; gap: 0; max-width: 860px; }
.ex-term {
  display: grid; gap: 0.25rem;
  padding: 1rem 0; border-bottom: 0.5px solid var(--ex-rule);
}
@media (min-width: 700px) { .ex-term { grid-template-columns: 220px 1fr; gap: 1.5rem; } }
.ex-term dt { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.02em; text-transform: uppercase; color: var(--ex-text-3); }
.ex-term dd { font-size: 0.9375rem; color: var(--ex-text); line-height: 1.6; }

/* ---------- Diligence form ---------- */
.ex-gate { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .ex-gate { grid-template-columns: 1fr 1.25fr; gap: 3.5rem; } }
.ex-gate-copy p { margin-top: 1rem; line-height: 1.7; }
.ex-gate-copy ul { margin-top: 1.5rem; }
/* First-conversation steps under the closing call to action */
.ex-next { list-style: none; counter-reset: next; margin: 1.5rem 0 1.25rem; padding: 0; display: grid; gap: 1rem; }
.ex-gate-copy .ex-next li { counter-increment: next; position: relative; padding-left: 2.25rem; margin-bottom: 0; color: var(--ex-mist); font-size: 0.9688rem; line-height: 1.6; }
.ex-gate-copy .ex-next li::before {
  content: counter(next, decimal-leading-zero); position: absolute; left: 0; top: 0.125rem;
  width: auto; height: auto; border: 0; border-radius: 0;
  font-family: var(--ex-mono); font-size: 0.8125rem; color: var(--ex-accent);
}
.ex-gate-copy .ex-next li strong { display: block; color: #FFFFFF; font-weight: 500; }
.ex-gate-copy li {
  position: relative; padding-left: 1.5rem; margin-bottom: 0.75rem;
  color: var(--ex-mist); font-size: 0.9375rem; line-height: 1.55;
}
.ex-gate-copy li::before {
  content: ''; position: absolute; left: 0; top: 0.55em;
  width: 8px; height: 8px; border: 1px solid var(--ex-accent); border-radius: 2px;
}
.ex-form {
  background: var(--ex-card);
  color: var(--ex-text);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  display: grid; gap: 1rem;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
@media (min-width: 640px) { .ex-form { grid-template-columns: 1fr 1fr; padding: 2.25rem; } }
.ex-field { display: grid; gap: 0.375rem; }
.ex-field.full { grid-column: 1 / -1; }
.ex-field label, .ex-field legend {
  font-size: 0.75rem; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--ex-text-2);
}
.ex-field .req { color: var(--ex-accent-ink); }
.ex-field input, .ex-field select, .ex-field textarea {
  font-family: inherit; font-size: 0.9375rem; color: var(--ex-text);
  background: var(--ex-paper);
  border: 1px solid var(--ex-rule-2);
  border-radius: var(--radius-md);
  padding: 0.6875rem 0.8125rem;
  width: 100%;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ex-field textarea { min-height: 120px; resize: vertical; }
.ex-field input:focus, .ex-field select:focus, .ex-field textarea:focus {
  outline: none; border-color: var(--ex-text); box-shadow: 0 0 0 3px rgba(18, 26, 42, 0.12);
}
.ex-field fieldset { border: 0; display: grid; gap: 0.5rem; }
.ex-radios { display: grid; gap: 0.5rem; }
@media (min-width: 640px) { .ex-radios { grid-template-columns: repeat(3, 1fr); } }
.ex-radio {
  display: flex; gap: 0.625rem; align-items: flex-start;
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--ex-rule-2); border-radius: var(--radius-md);
  cursor: pointer; font-size: 0.875rem; line-height: 1.4; color: var(--ex-text);
  text-transform: none; letter-spacing: 0; font-weight: 400;
}
.ex-field label.ex-radio, .ex-field label.ex-check {
  text-transform: none; letter-spacing: 0; font-weight: 400;
}
.ex-field label.ex-radio { font-size: 0.875rem; color: var(--ex-text); }
.ex-field label.ex-check { font-size: 0.8438rem; color: var(--ex-text-2); }
.ex-field input[type="radio"], .ex-field input[type="checkbox"] {
  width: auto; padding: 0; flex-shrink: 0;
}
.ex-radio:has(input:checked) { border-color: var(--ex-text); background: var(--ex-paper); }
.ex-radio input { margin-top: 0.15rem; accent-color: var(--ex-text); }
.ex-check {
  display: flex; gap: 0.625rem; align-items: flex-start;
  font-size: 0.8438rem; color: var(--ex-text-2); line-height: 1.5;
}
.ex-check input { margin-top: 0.2rem; accent-color: var(--ex-text); }
.ex-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ex-form .ex-btn-primary { background: var(--ex-text); color: #FFFFFF; border-color: var(--ex-text); }
.ex-form .ex-btn-primary:hover { background: var(--ex-slate-700); border-color: var(--ex-slate-700); }
.ex-form .ex-btn-primary:disabled { opacity: 0.6; cursor: wait; }
.ex-form-foot { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; }
.ex-form-status { font-size: 0.875rem; color: var(--ex-text-2); }
.ex-form-status.ok { color: #1F6B45; }
.ex-form-status.err { color: #A3261F; }

/* ---------- Closing band ---------- */
.ex-band {
  background: var(--ex-slate-950);
  border-top: 0.5px solid rgba(255, 255, 255, 0.08);
}
.ex-band-inner { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 900px) { .ex-band-inner { grid-template-columns: 1.4fr 1fr; } }
.ex-band .ex-actions { margin-top: 0; }
@media (min-width: 900px) { .ex-band .ex-actions { justify-content: flex-end; } }

/* ---------- Policy documents (/company/*) ---------- */
.ex-doc-meta {
  display: flex; flex-wrap: wrap; gap: 0.5rem 2rem;
  margin-top: 1.75rem; padding-top: 1.25rem;
  border-top: 0.5px solid rgba(255, 255, 255, 0.12);
  font-size: 0.8125rem; color: var(--text-tertiary);
}
.ex-doc-meta b { display: block; font-weight: 500; color: var(--ex-mist); font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.125rem; }
.ex-doc { display: grid; gap: 3rem; }
@media (min-width: 1000px) { .ex-doc { grid-template-columns: 220px 1fr; gap: 4rem; } }
.ex-toc { align-self: start; font-size: 0.875rem; }
@media (min-width: 1000px) { .ex-toc { position: sticky; top: 5.5rem; } }
.ex-toc h2 { font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ex-text-3); font-weight: 500; margin-bottom: 0.75rem; }
.ex-toc li { margin-bottom: 0.5rem; }
.ex-toc a { color: var(--ex-text-2); }
.ex-toc a:hover { color: var(--ex-accent-ink); }
.ex-doc-body { max-width: 820px; }
.ex-doc-part {
  font-family: var(--ex-mono); font-size: 0.75rem; color: var(--ex-accent-ink);
  letter-spacing: 0.04em; margin: 3.5rem 0 0.5rem; display: block;
}
.ex-doc-part:first-child { margin-top: 0; }
.ex-doc-body h2 { font-size: clamp(1.375rem, 1.2vw + 1rem, 1.75rem); margin: 0 0 1rem; }
.ex-doc-body h3 { font-size: 1.0625rem; margin: 2.25rem 0 0.75rem; }
.ex-doc-body > p, .ex-doc-body section > p { font-size: 1rem; line-height: 1.75; margin-bottom: 1rem; }
.ex-doc-body section { scroll-margin-top: 5.5rem; }
@media (max-width: 860px) { .ex-doc-body section { scroll-margin-top: 8.5rem; } } /* stacked nav is up to 114px tall */
.ex-lead { font-size: clamp(1.0625rem, 0.4vw + 1rem, 1.1875rem) !important; color: var(--ex-text) !important; }
.ex-doc-list li {
  position: relative; padding-left: 1.125rem; margin-bottom: 0.625rem;
  font-size: 0.9688rem; line-height: 1.65; color: var(--ex-text-2);
}
.ex-doc-list li::before { content: ''; position: absolute; left: 0.125rem; top: calc(0.7em - 2.5px); width: 5px; height: 5px; border-radius: 50%; background: var(--ex-accent-ink); }
.ex-doc-list strong { color: var(--ex-text); }
.ex-commit {
  width: 100%; border-collapse: collapse; margin: 0.5rem 0 1.5rem;
  font-size: 0.9063rem; line-height: 1.55;
  background: var(--ex-card); border: 0.5px solid var(--ex-rule); border-radius: var(--radius-lg); overflow: hidden;
}
.ex-commit th {
  text-align: left; font-weight: 500; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ex-text-3); background: var(--ex-paper-2); padding: 0.75rem 1rem; border-bottom: 0.5px solid var(--ex-rule);
}
.ex-commit td { padding: 0.875rem 1rem; vertical-align: top; color: var(--ex-text-2); border-bottom: 0.5px solid var(--ex-rule); }
.ex-commit tr:last-child td { border-bottom: 0; }
.ex-commit td:first-child { font-weight: 500; color: var(--ex-text); width: 22%; }
.ex-commit td:nth-child(2) { width: 46%; }
@media (max-width: 700px) {
  .ex-commit, .ex-commit tbody, .ex-commit tr, .ex-commit td { display: block; width: 100% !important; }
  .ex-commit thead { display: none; }
  .ex-commit tr { border-bottom: 0.5px solid var(--ex-rule); padding: 0.5rem 0; }
  .ex-commit td { border: 0; padding: 0.375rem 1rem; }
  .ex-commit td[data-label]:not(:first-child)::before { content: attr(data-label); display: block; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ex-text-3); }
}
.ex-callout {
  margin: 1.5rem 0; padding: 1.25rem 1.5rem;
  background: var(--ex-slate-950); color: var(--ex-mist); border-radius: var(--radius-lg);
  font-size: 0.9375rem; line-height: 1.65;
}
.ex-callout strong { color: #FFFFFF; }
.ex-approval { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
@media (min-width: 700px) { .ex-approval { grid-template-columns: 1fr 1fr; } }
.ex-signatory { margin: 0; }
.ex-signatory strong { display: block; font-size: 1.0625rem; font-weight: 700; color: var(--ex-text); }
.ex-signatory span { display: block; font-size: 0.9375rem; color: var(--ex-text-2); margin-top: 0.125rem; }

/* ---------- Full-width technical stack panel ---------- */
.ex-stack {
  margin-top: 1.25rem;
  background: var(--ex-slate-950);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
}
@media (min-width: 768px) { .ex-stack { padding: 2.25rem; } }
.ex-stack-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 2rem; margin-bottom: 1.5rem; }
.ex-stack-head h3 { color: #FFFFFF; font-size: 1.125rem; }
.ex-stack-head p { color: var(--ex-steel); font-size: 0.9063rem; }
.ex-stack-langs { flex-basis: 100%; color: var(--ex-mist) !important; font-size: 0.875rem !important; padding-top: 0.75rem; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.ex-stack-langs span { color: var(--ex-accent); font-family: var(--ex-mono); font-size: 0.75rem; margin-right: 0.75rem; }
.ex-stages { display: grid; gap: 1px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: var(--radius-md); overflow: hidden; }
@media (min-width: 640px) { .ex-stages { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .ex-stages { grid-template-columns: repeat(3, 1fr); } }
.ex-stage { background: var(--ex-slate-950); padding: 1.125rem 1.25rem 1.25rem; }
.ex-stage .ex-mono { color: var(--ex-accent); font-size: 0.75rem; }
.ex-stage h4 { color: #FFFFFF; font-size: 0.9375rem; font-weight: 500; margin: 0.25rem 0 0.5rem; }
.ex-stage p { color: var(--ex-mist); font-size: 0.8438rem; line-height: 1.6; }

.ex-print-only { display: none; }
.ex-doc-brand { display: none; align-items: center; gap: 8pt; font-size: 9pt; font-weight: 500; color: #111827; margin-bottom: 8pt; }
.ex-doc-brand img { width: 18pt; height: 18pt; }
.ex-email-print { display: none; vertical-align: middle; }

/* =========================================================================
   PRINT · executive pages export to a clean, light, single-column document
   ========================================================================= */
@media print {
  @page { size: Letter; margin: 14mm 15mm 16mm; }

  :root {
    --text-primary: #111827; --text-secondary: #2E3A4D; --text-tertiary: #4B5563;
    --text-quiet: #4B5563; --border-subtle: #D1D5DB; --border-mid: #C3CDDA;
    --accent: #8A3A19;
  }
  html, body, body.ex { background: #FFFFFF !important; color: #111827 !important; }
  body { font-size: 9.2pt; line-height: 1.4; }
  * { box-shadow: none !important; text-shadow: none !important; transition: none !important; }

  .nav, .footer, .ex-no-print, .ex-actions, .ex-filters, .ex-band, .hero-bg { display: none !important; }
  .ex-print-only { display: block !important; }
  .ex-stack { background: #FFFFFF !important; border: 0.5pt solid #C3CDDA; border-radius: 4pt; padding: 7pt 8pt; margin-top: 6pt; break-inside: avoid; }
  .ex-stack-head { margin-bottom: 4pt; }
  .ex-stack-head h3 { color: #111827 !important; font-size: 9.6pt; }
  .ex-stack-head p { color: #4B5563 !important; font-size: 8pt; }
  .ex-stack-langs { color: #2E3A4D !important; font-size: 8pt !important; padding-top: 3pt; border-top: 0.5pt solid #E5E7EB; }
  .ex-stack-langs span { color: #8A3A19 !important; font-size: 7pt; }
  .ex-stages { grid-template-columns: repeat(3, 1fr) !important; background: #E5E7EB !important; border-color: #E5E7EB !important; }
  .ex-stage { background: #FFFFFF !important; padding: 4pt 6pt; }
  .ex-stage .ex-mono { color: #8A3A19 !important; font-size: 7pt; }
  .ex-stage h4 { color: #111827 !important; font-size: 8.4pt; margin: 0 0 1pt; }
  .ex-stage p { color: #2E3A4D !important; font-size: 7.8pt; line-height: 1.35; }

  /* Policy documents */
  .ex-doc { display: block !important; }
  .ex-toc { display: none !important; }
  .ex-doc-body { max-width: none; }
  .ex-doc-part { margin: 12pt 0 2pt; font-size: 7.8pt; color: #8A3A19; }
  .ex-doc-body h2 { font-size: 12pt; margin: 0 0 5pt; }
  .ex-doc-body h3 { font-size: 10pt; margin: 8pt 0 3pt; break-after: avoid; }
  .ex-doc-body > p, .ex-doc-body section > p { font-size: 9pt; line-height: 1.45; margin-bottom: 5pt; }
  .ex-lead { font-size: 9.6pt !important; color: #111827 !important; }
  .ex-doc-list li { font-size: 8.8pt; line-height: 1.4; margin-bottom: 2.5pt; break-inside: avoid; }
  .ex-commit { font-size: 8.2pt; line-height: 1.35; border: 0.5pt solid #C3CDDA; margin: 3pt 0 8pt; }
  .ex-commit th { font-size: 6.8pt; padding: 3pt 6pt; background: #F1F4F8 !important; }
  .ex-commit td { padding: 4pt 6pt; }
  .ex-commit tr { break-inside: avoid; }
  .ex-callout { background: #F1F4F8 !important; color: #2E3A4D !important; border-left: 2pt solid #8A3A19; border-radius: 0; padding: 6pt 9pt; font-size: 8.8pt; margin: 6pt 0; }
  .ex-callout strong { color: #111827 !important; }
  .ex-doc-meta { border-top: 0.5pt solid #C3CDDA; color: #2E3A4D !important; margin-top: 8pt; padding-top: 6pt; font-size: 8pt; gap: 3pt 18pt; }
  .ex-doc-meta b { color: #4B5563 !important; font-size: 6.8pt; }
  .ex-hero h1 { font-size: 19pt; color: #111827 !important; margin: 2pt 0 4pt; max-width: none; }
  .ex-hero .ex-hero-sub { color: #2E3A4D !important; font-size: 9.4pt; max-width: none; }
  .ex-rotator-item:not(.is-active) { display: none !important; }
  .ex-type-caret { display: none !important; }
  .ex-type-line { color: #A8461F !important; }
  .ex-hero-path { color: #A8461F !important; font-size: 8.6pt; }
  .ex-hero-trust, .ex-hero-trust strong { color: #111827 !important; font-size: 9.4pt; }
  .ex-map-q { color: #5B6779 !important; }
  .ex-heading-quiet { color: #5B6779 !important; opacity: 1; }
  .ex-glimpse { display: none !important; }
  .ex-map-a, .ex-map-a strong { color: #111827 !important; }
  .ex-map, .ex-map-row { border-color: #C3CDDA !important; }
  .ex-hero .ex-doc-brand { display: flex !important; }
  .ex-approval { grid-template-columns: 1fr 1fr !important; gap: 10pt !important; break-inside: avoid; }
  .ex-doc-body section#approval, .ex-doc-body section#governance { break-inside: avoid; }
  .ex-signatory strong { font-size: 10pt; }
  .ex-signatory span { font-size: 8.8pt; }
  .ex-email-screen { display: none !important; }
  .ex-email-print { display: inline-block !important; }

  .container { max-width: none; padding: 0 !important; }
  .section, .ex-section { padding: 0 !important; border: 0 !important; }
  .ex-paper, .ex-paper.alt, .ex-slate { background: #FFFFFF !important; }
  section { margin-top: 12pt; }
  .ex-pull { display: none; }

  h1, h2, h3 { color: #111827 !important; break-after: avoid; }
  h2 { font-size: 12.5pt; letter-spacing: 0; padding-bottom: 3pt; border-bottom: 0.75pt solid #111827; margin-bottom: 8pt; }
  .ex-section-head { margin-bottom: 8pt; max-width: none; }
  .ex-section-head p { font-size: 9.6pt; margin-top: 4pt; }
  .eyebrow, .ex-kicker { display: none !important; }

  /* Hero becomes a letterhead */
  .ex-hero { background: #FFFFFF !important; padding: 0 0 10pt !important; border-bottom: 1.5pt solid #111827 !important; }
  .ex-profile { grid-template-columns: 0.95in 1fr !important; gap: 14pt !important; align-items: center !important; }
  .ex-portrait { max-width: 0.95in; border: 0.5pt solid #C3CDDA; border-radius: 4pt; }
  .ex-portrait::after { display: none; }
  .ex-name { color: #111827 !important; font-size: 22pt; margin: 0 0 3pt; }
  .ex-titles { color: #2E3A4D !important; font-size: 10.5pt; }
  .ex-titles span + span::before { color: #8A3A19; }
  .ex-affiliation, .ex-contact-line, .ex-contact-line a { color: #2E3A4D !important; font-size: 9pt; margin-top: 3pt; }
  .ex-signals { grid-template-columns: repeat(4, 1fr) !important; margin-top: 10pt; border-top: 0.5pt solid #C3CDDA; }
  .ex-signal { padding-top: 6pt; }
  .ex-signal-value { color: #111827 !important; font-size: 12pt; }
  .ex-signal-label { color: #4B5563 !important; font-size: 7.8pt; }

  .ex-summary { grid-template-columns: 1.7fr 1fr !important; gap: 14pt !important; }
  .ex-summary-body p { font-size: 9.2pt; line-height: 1.45; margin-bottom: 5pt; }
  .ex-pull { font-size: 10.5pt; margin-top: 6pt; }
  .ex-facts { border: 0.5pt solid #C3CDDA; padding: 6pt 9pt 0; break-inside: avoid; }
  .ex-facts div { padding: 4pt 0; }
  .ex-facts dd { font-size: 8.8pt; }
  .ex-chip { font-size: 7.5pt; padding: 0 4pt; background: #FFFFFF; }

  .ex-matrix { grid-template-columns: repeat(3, 1fr) !important; gap: 0 !important; border: 0.5pt solid #C3CDDA; background: #FFFFFF; border-radius: 4pt;  break-inside: avoid; }
  .ex-matrix-cell { break-inside: avoid; border: 0.25pt solid #D9E0EA; }
  .ex-matrix-cell, .ex-matrix-cell.stack { background: #FFFFFF !important; padding: 7pt 8pt; }
  .ex-matrix-cell h3, .ex-matrix-cell.stack h3 { color: #111827 !important; font-size: 9.6pt; margin-bottom: 4pt; }
  .ex-matrix-cell li, .ex-matrix-cell.stack li { color: #2E3A4D !important; font-size: 8.3pt; line-height: 1.35; margin-bottom: 2pt; }
  .ex-matrix-cell.stack li b { color: #4B5563 !important; }

  .ex-timeline::before { display: none; }
  .ex-role, .ex-role[hidden] { display: block !important; padding: 0 0 9pt 0 !important; position: relative; }
  .ex-role-when { position: static; width: auto; white-space: nowrap; margin-bottom: 1pt; }
  .ex-role-body h3, .ex-role-title, .ex-role-meta { break-after: avoid; }
  .ex-role-points li { break-inside: avoid; }
  .ex-role::before { display: none; }
  .ex-role-when { text-align: left !important; font-size: 8.4pt; color: #4B5563 !important; }
  .ex-role-body h3 { font-size: 10.5pt; }
  .ex-role-title { color: #8A3A19 !important; font-size: 9pt; }
  .ex-role-lede, .ex-role-points li { font-size: 8.7pt; line-height: 1.38; margin-top: 2pt; margin-bottom: 1pt; }
  .ex-mandates { border: 0; background: transparent; margin-top: 4pt; }
  .ex-mandates > summary { padding: 0 0 2pt; font-size: 8.6pt; color: #4B5563; }
  .ex-mandates > summary::after { display: none; }
  .ex-mandate-list { padding: 0; display: block !important; }
  .ex-mandate { display: block !important; padding-left: 1.2in !important; padding: 3pt 0; border-top: 0.5pt solid #E5E7EB; break-inside: avoid; }
  .ex-mandate p, .ex-mandate-where { font-size: 8.6pt; line-height: 1.4; }
  .ex-mandate-where { float: left; width: 1.1in; margin-left: -1.2in; }
  .ex-mandate::after { content: ''; display: block; clear: both; }
  .ex-section-head h2 { break-after: avoid; }
  .ex-section-head { break-after: avoid; break-inside: avoid; }

  .ex-creds { grid-template-columns: repeat(3, 1fr) !important; gap: 8pt !important; }
  .ex-cred { border: 0.5pt solid #C3CDDA; padding: 7pt 8pt; break-inside: avoid; }
  .ex-cred-item + .ex-cred-item { margin-top: 4pt; padding-top: 4pt; }
  .ex-cred-item strong { font-size: 9pt; }
  .ex-cred-item span { font-size: 8.4pt; }
  .ex-cred-item a { font-size: 8.4pt; font-weight: 400; }

  a { color: inherit !important; text-decoration: none; }
  .ex-print-url::after { content: ' (' attr(href) ')'; font-size: 7.5pt; color: #4B5563; word-break: break-all; }

  .ex-print-foot { break-before: avoid; page-break-before: avoid; }
  .ex-creds { margin-bottom: 0; }
  .ex-print-foot {
    margin-top: 6pt; padding-top: 4pt; border-top: 0.5pt solid #C3CDDA;
    font-size: 7.8pt; color: #4B5563;
  }
}
