/* Eventus Group — site stylesheet
   Structure: tokens · base · layout · header · buttons · home · interior · components · forms · footer */

/* ── Tokens ─────────────────────────────────────────── */
:root {
  --navy-900: #0E1522;
  --navy-800: #111A2B;
  --navy-700: #1F2A44;
  --ink: #111A2B;
  --text: #111A2B;
  --muted: #111A2B;
  --line: #E3E0D9;
  --line-mid: #D9D7D1;
  --paper: #FFFFFF;
  --tint: #F6F5F2;
  --cream: #F4F1EA;
  --orange: #DF440C;
  --orange-ink: #C23A08;          /* orange for small text on white (AA) */
  --serif: 'Times New Roman', Times, 'Liberation Serif', serif;   /* 3.13: Times New Roman for headlines, display figures, names and quotes */
  --sans: 'Helvetica Neue', Helvetica, Arial, sans-serif;          /* Helvetica/Arial for body copy, navigation, labels and forms */
  --container: 1360px;
  --gutter: clamp(20px, 4vw, 48px);
  --header-h: 82px;
  --section: clamp(64px, 8vw, 112px);
}

/* ── Base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--sans); font-size: 17px; line-height: 1.62;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); text-decoration: none; transition: color 200ms ease; }
a:hover { color: var(--orange-ink); }
button { font: inherit; cursor: pointer; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 999; background: var(--navy-800); color: #FFFFFF; padding: 12px 18px; font-size: 14px; }
.skip-link:focus { left: 12px; top: 12px; color: #FFFFFF; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* ── Type ───────────────────────────────────────────── */
.display { font-family: var(--serif); font-weight: 200; font-size: clamp(2.5rem, 5.4vw, 5rem); line-height: 1.04; letter-spacing: -0.02em; text-wrap: balance; }
.h1 { font-family: var(--serif); font-weight: 300; font-size: clamp(2.1rem, 4.2vw, 3.7rem); line-height: 1.05; letter-spacing: -0.02em; color: var(--ink); text-wrap: balance; }
.h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(1.8rem, 3.2vw, 2.9rem); line-height: 1.08; letter-spacing: -0.016em; color: var(--ink); text-wrap: balance; }
.h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.4rem, 2.1vw, 1.9rem); line-height: 1.18; color: var(--ink); }
.h4 { font-family: var(--serif); font-weight: 400; font-size: 1.35rem; line-height: 1.22; color: var(--ink); }
.lede { font-size: clamp(1.02rem, 1.25vw, 1.12rem); line-height: 1.66; color: var(--text); max-width: 58ch; }
.serif-lede { font-family: var(--serif); font-weight: 300; font-size: clamp(1.3rem, 2vw, 1.75rem); line-height: 1.44; color: var(--ink); max-width: 40ch; text-wrap: pretty; }
.eyebrow { font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--orange-ink); margin-bottom: 20px; }
.on-dark .eyebrow, .eyebrow.on-dark { color: var(--orange); }
.meta { font-size: 12px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--text); }
p + p { margin-top: 1em; }

/* ── Layout ─────────────────────────────────────────── */
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: var(--section) 0; }
.section + .section { padding-top: 0; }
.section.ruled { border-top: 1px solid var(--line); padding-top: var(--section); }
.section.tint { background: var(--tint); padding-top: var(--section); }
.section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 32px; border-bottom: 1px solid var(--navy-700); padding-bottom: 24px; margin-bottom: clamp(32px, 4vw, 56px); }
.split { display: grid; gap: 28px; }
@media (min-width: 900px) {
  .split { grid-template-columns: minmax(180px, 0.5fr) minmax(0, 1.5fr); gap: 64px; align-items: start; }
  .split > .split-label { position: sticky; top: calc(var(--header-h) + 28px); }
}
.split-label { font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink); }
.stack > * + * { margin-top: 1.4em; }

/* ── Header ─────────────────────────────────────────── */
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 200; background: rgba(255,255,255,0.97); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); transition: background 260ms ease, border-color 260ms ease; }
.header-inner { min-height: var(--header-h); display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; flex: none; }
.brand img { height: 54px; width: auto; }
.brand .logo-light { display: none; }
.site-header.is-over .brand .logo-dark { display: none; }
.site-header.is-over .brand .logo-light { display: block; }
.primary-nav > ul { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 34px); }
.nav-link { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 10px 0; font-size: 12.5px; font-weight: 500; letter-spacing: 0.13em; text-transform: uppercase; color: var(--text); border-bottom: 1px solid transparent; transition: color 200ms ease, border-color 200ms ease; }
.nav-link:hover, .nav-link[aria-expanded="true"] { color: var(--ink); }
.nav-link:hover { border-bottom-color: var(--orange); }
.nav-link[data-active] { color: var(--ink); border-bottom-color: var(--orange); }
.nav-link .chev { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform 200ms ease; }
.nav-link[aria-expanded="true"] .chev { transform: rotate(-135deg) translateY(-2px); }
.has-sub { position: relative; }
.subnav { display: none; position: absolute; top: calc(100% + 14px); left: -22px; min-width: 210px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 18px 40px rgba(14,21,34,0.12); padding: 10px 0; }
.has-sub.open .subnav { display: block; }
.subnav a { display: block; padding: 11px 22px; font-size: 15px; color: var(--ink); }
.subnav a:hover, .subnav a[aria-current="page"] { color: var(--orange-ink); }
.menu-toggle { display: none; width: 46px; height: 46px; background: none; border: 1px solid var(--line-mid); align-items: center; justify-content: center; color: var(--ink); }
.menu-toggle span { display: block; width: 18px; height: 9px; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; }

/* header over the home hero */
.site-header.is-over { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom-color: rgba(244,241,234,0.16); }
.site-header.is-over .nav-link { color: #FFFFFF; }
.site-header.is-over .nav-link:hover, .site-header.is-over .nav-link[aria-expanded="true"] { color: #FFFFFF; }
.site-header.is-over .btn-outline { color: #FFFFFF; border-color: rgba(244,241,234,0.5); }
.site-header.is-over .btn-outline:hover { border-color: var(--orange); background: rgba(232,119,34,0.12); color: #FFFFFF; }
.site-header.is-over .menu-toggle { color: #FFFFFF; border-color: rgba(244,241,234,0.4); }

@media (max-width: 959px) {
  :root { --header-h: 66px; }
  .brand img { height: 44px; }
  .menu-toggle { display: inline-flex; }
  .primary-nav { display: none; position: fixed; inset: var(--header-h) 0 0 0; background: var(--paper); overflow-y: auto; padding: 8px var(--gutter) 40px; border-top: 1px solid var(--line); }
  .nav-open .primary-nav { display: block; }
  .nav-open { overflow: hidden; }
  .nav-open .site-header, .nav-open .site-header.is-over { background: var(--paper); border-bottom-color: var(--line); }
  .nav-open .site-header.is-over .brand .logo-dark { display: block; }
  .nav-open .site-header.is-over .brand .logo-light { display: none; }
  .nav-link:hover { border-bottom-color: transparent; }
  .nav-open .site-header.is-over .menu-toggle { color: var(--ink); border-color: var(--line-mid); }
  .nav-open .site-header.is-over .nav-link { color: var(--ink); }
  .nav-open .site-header.is-over .btn-outline { color: var(--ink); border-color: var(--navy-700); }
  .primary-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .primary-nav > ul > li { border-bottom: 1px solid var(--line); }
  .primary-nav > ul > li:last-child { border-bottom: 0; padding-top: 24px; }
  .nav-link { width: 100%; justify-content: space-between; padding: 18px 0; font-size: 14px; color: var(--ink); border-bottom: 0; min-height: 56px; }
  .nav-link[data-active] { color: var(--orange-ink); }
  .subnav { display: block; position: static; border: 0; box-shadow: none; padding: 0 0 12px; min-width: 0; }
  .has-sub .nav-link .chev { display: none; }
  .subnav a { padding: 12px 0 12px 18px; font-size: 16px; border-left: 1px solid var(--line); }
  .nav-cta { display: flex; width: 100%; }
}

/* ── Buttons & links ────────────────────────────────── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 14px 28px; font-size: 12px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; border: 1px solid transparent; background: none; text-align: center; transition: background 220ms ease, border-color 220ms ease, color 220ms ease; }
.btn-primary { background: var(--navy-700); color: #FFFFFF; }
.btn-primary:hover { background: var(--navy-900); color: #FFFFFF; }
.btn-outline { border-color: var(--navy-700); color: var(--ink); }
.btn-outline:hover { border-color: var(--orange); color: var(--orange-ink); }
.btn-light { border-color: rgba(244,241,234,0.45); color: #FFFFFF; }
.btn-light:hover { border-color: var(--orange); background: rgba(232,119,34,0.12); color: #FFFFFF; }
.nav-cta { min-height: 44px; padding: 11px 22px; }
/* Text links: the orange underline draws in on hover and keyboard focus */
.link-arrow, .x-card .more span { background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; transition: background-size 280ms ease, color 200ms ease; }
.link-arrow:hover, .link-arrow:focus-visible, .x-card:hover .more span, .x-card:focus-visible .more span { background-size: 100% 1px; }
.link-arrow { display: inline-block; font-size: 15px; color: var(--ink); padding-bottom: 3px; }
.link-arrow::after { content: " \2192"; }
.link-arrow.ext::after { content: " \2197"; }
.link-arrow:hover { color: var(--ink); }
.on-dark .link-arrow { color: #FFFFFF; }
.on-dark .link-arrow:hover { color: #FFFFFF; }

/* ── Home: hero ─────────────────────────────────────── */
.hero { position: relative; min-height: max(620px, 100svh); display: flex; flex-direction: column; background: var(--navy-900); color: #FFFFFF; overflow: hidden; }
.hero-media, .hero-media img, .hero-media::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media img { object-fit: cover; }
.hero-media::after { content: ""; background: linear-gradient(180deg, rgba(14,21,34,0.62) 0%, rgba(14,21,34,0.4) 42%, rgba(14,21,34,0.78) 100%); }
.hero-body { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: calc(var(--header-h) + 40px) var(--gutter) 72px; animation: fade 640ms ease both; }
.hero-crest { height: clamp(104px, 17vh, 168px); width: auto; }
.hero h1 { margin-top: clamp(26px, 4vh, 44px); max-width: 17ch; color: #FFFFFF; }
.hero .btn { margin-top: clamp(30px, 4.4vh, 46px); }
.hero-scroll:hover { color: #FFFFFF; }
.hero-scroll { position: relative; align-self: center; display: flex; flex-direction: column; align-items: center; gap: 9px; padding-bottom: 28px; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #FFFFFF; }
.hero-scroll::after { content: ""; width: 1px; height: 30px; background: linear-gradient(180deg, rgba(244,241,234,0.5), rgba(244,241,234,0)); animation: nudge 2.6s ease-in-out infinite; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes nudge { 0%,100% { transform: translateY(0); opacity: .55; } 50% { transform: translateY(6px); opacity: 1; } }
@media (max-height: 560px) { .hero-scroll { display: none; } }

/* ── Home: facts ────────────────────────────────────── */
.facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
@media (min-width: 900px) { .facts { grid-template-columns: repeat(4, 1fr); gap: 40px; } }
.fact { border-top: 1px solid var(--navy-700); padding-top: 20px; }
.fact dt { font-family: var(--serif); font-weight: 200; font-size: clamp(2.6rem, 4.6vw, 4rem); line-height: 1; letter-spacing: -0.02em; color: var(--ink); }
.fact dd { margin-top: 12px; font-size: 15px; line-height: 1.5; color: var(--text); max-width: 24ch; }

/* ── Home: statement ────────────────────────────────── */
/* Statement: photo and quote share a row so the quote ends level with the bottom of the photo; the caption sits below */
.statement { display: grid; gap: 0; }
.statement figure { display: contents; }
.statement .quote { margin-top: 36px; }
@media (min-width: 800px) {
  .statement { grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); column-gap: clamp(48px, 6vw, 96px); }
  .statement figure img { grid-column: 1; grid-row: 1; }
  .statement figcaption { grid-column: 1; grid-row: 2; }
  .statement .quote { grid-column: 2; grid-row: 1; align-self: end; margin: 0; }
  .statement blockquote { margin-bottom: -0.42em; }
}
.statement figure img { width: 100%; aspect-ratio: 662 / 900; object-fit: cover; object-position: center bottom; background: var(--tint); }
@media (max-width: 799px) { .statement figure img { max-width: 300px; } }
.statement figcaption { margin-top: 22px; border-top: 1px solid var(--line-mid); padding-top: 18px; }
.statement figcaption .name { font-family: var(--serif); font-size: 1.45rem; color: var(--ink); }
.statement figcaption .meta { margin-top: 6px; }
.statement figcaption .link-arrow { margin-top: 16px; }
.quote-mark { font-family: var(--serif); font-size: clamp(72px, 9vw, 128px); line-height: 0.5; height: 0.46em; color: var(--ink); user-select: none; }
.statement blockquote { margin-top: clamp(16px, 2vw, 28px); font-family: var(--serif); font-weight: 300; font-size: clamp(1.4rem, 2.5vw, 2.3rem); line-height: 1.4; letter-spacing: -0.01em; color: var(--ink); text-wrap: pretty; }

/* ── Expertise cards ────────────────────────────────── */
.cards-2 { display: grid; gap: 48px clamp(32px, 4vw, 64px); }
@media (min-width: 800px) { .cards-2 { grid-template-columns: 1fr 1fr; } }
.x-card { display: flex; flex-direction: column; color: inherit; }
.x-card .media { overflow: hidden; background: var(--navy-900); }
.x-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform 700ms ease; }
.x-card:hover img { transform: scale(1.03); }
.x-card .h3 { margin-top: 28px; }
.x-card p { margin-top: 14px; color: var(--text); max-width: 56ch; }
.x-card .more { margin: auto auto 0 0; padding-top: 22px; }
.x-card .more span { font-size: 12px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink); padding-bottom: 5px; }

/* ── Dark image band (approach / philosophy) ────────── */
.band { position: relative; background: var(--navy-800); color: #FFFFFF; overflow: hidden; }
.band-media, .band-media img, .band-media::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.band-media img { object-fit: cover; }
.band-media::after { content: ""; background: linear-gradient(180deg, rgba(14,21,34,0.62) 0%, rgba(14,21,34,0.78) 100%); }
.band-body { position: relative; padding: var(--section) 0; }
.band .h2, .band .h3, .band .display { color: #FFFFFF; }
.cols-3, .cols-4 { display: grid; gap: 44px clamp(36px, 4.5vw, 72px); border-top: 1px solid rgba(244,241,234,0.24); padding-top: 44px; margin-top: 44px; }
@media (min-width: 900px) { .cols-3 { grid-template-columns: repeat(3, 1fr); } }
.cols-4 { column-gap: clamp(28px, 3vw, 48px); }
@media (min-width: 640px) { .cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .cols-4 { grid-template-columns: repeat(4, 1fr); } }
.cols-4 .pillar .h3 { margin-top: 0; }
.cols-4 .rule-list li { font-size: 15px; }
.num { font-size: 12px; font-weight: 500; letter-spacing: 0.18em; color: var(--orange-ink); }
.on-dark .num { color: var(--orange); }
.pillar .h3 { margin-top: 16px; }
.pillar .sub { margin-top: 14px; color: #FFFFFF; max-width: 38ch; }
.rule-list { margin-top: 24px; border-top: 1px solid var(--line); }
.rule-list li { border-bottom: 1px solid var(--line); padding: 15px 0; font-size: 15.5px; line-height: 1.55; color: var(--text); }
.on-dark .rule-list, .on-dark .rule-list li { border-color: rgba(244,241,234,0.16); }
.on-dark .rule-list li { color: #FFFFFF; }

/* ── Logo strip (home) ──────────────────────────────── */
.logo-strip { display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .logo-strip { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .logo-strip { grid-template-columns: repeat(6, 1fr); } }
.logo-strip li { height: 112px; display: flex; align-items: center; justify-content: center; padding: 20px; }
.logo-strip img, .tomb .logo img { max-width: 150px; max-height: 58px; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: 0.78; transition: filter 260ms ease, opacity 260ms ease; }
.logo-strip img[src*="civinity"], .tomb .logo img[src*="civinity"] { max-width: 120px; }
.tomb .logo img[src*="kosmelita"], .tomb .logo img[src*="zalvaris-group"] { max-height: 76px; max-width: 170px; } /* logos with built-in padding */
.logo-strip li:hover img, .tomb:hover .logo img { filter: none; opacity: 1; }

/* ── CTA band ───────────────────────────────────────── */
.cta { background: var(--navy-800); color: #FFFFFF; }
.cta-inner { padding-block: clamp(56px, 7vw, 96px); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px; }
.cta .h2 { color: #FFFFFF; max-width: 26ch; }

/* ── Interior page hero ─────────────────────────────── */
.page-hero { padding: calc(var(--header-h) + clamp(40px, 6vw, 80px)) 0 0; }
.page-hero-grid { display: grid; gap: 24px; border-bottom: 1px solid var(--navy-700); padding-bottom: clamp(32px, 4vw, 52px); }
@media (min-width: 900px) { .page-hero-grid { grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: end; } }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; font-size: 13px; color: var(--muted); margin-bottom: 32px; }
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--orange-ink); }
.banner img { width: 100%; height: clamp(240px, 36vw, 460px); object-fit: cover; margin-top: clamp(32px, 4vw, 52px); }

/* ── Components ─────────────────────────────────────── */
.grid-2 { display: grid; gap: 40px clamp(32px, 4vw, 64px); }
@media (min-width: 760px) { .grid-2 { grid-template-columns: 1fr 1fr; } }
.pillar-light { border-top: 1px solid var(--navy-700); padding-top: 22px; }
.pillar-light .h3 { margin-top: 14px; }
.pillar-light .rule-list { margin-top: 20px; }

.markets { display: grid; gap: 32px; }
@media (min-width: 760px) { .markets { grid-template-columns: repeat(3, 1fr); gap: 40px; } }
.market { border-top: 1px solid var(--navy-700); padding-top: 20px; }
.market ul { margin-top: 16px; }
.market li { padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 16px; color: var(--ink); }

.timeline { border-top: 1px solid var(--navy-700); }
.timeline > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; border-bottom: 1px solid var(--line-mid); padding: 26px 0; }
.timeline dt { font-family: var(--serif); font-weight: 300; font-size: 1.8rem; line-height: 1; color: var(--orange-ink); }
.timeline dd { max-width: 58ch; color: var(--ink); }

.heritage { display: grid; gap: 40px; align-items: center; }
@media (min-width: 860px) { .heritage { grid-template-columns: 1.2fr 0.8fr; gap: 72px; } }
.heritage img { width: min(100%, 360px); margin: 0 auto; }
.heritage .motto { margin-top: 28px; max-width: 36ch; font-family: var(--serif); font-weight: 300; font-size: 1.4rem; line-height: 1.5; color: #FFFFFF; }

.next-links { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px; border-top: 1px solid var(--line-mid); padding-top: 40px; }
.next-links .h2 { max-width: 24ch; }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; }

/* disciplines (expertise) */
.discipline { border-top: 1px solid var(--navy-700); padding: clamp(32px, 4vw, 48px) 0; display: grid; gap: 24px; }
@media (min-width: 900px) { .discipline { grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.6fr); gap: 56px; } }
.discipline .h3 { margin-top: 14px; }
.service-list { margin-top: 26px; border-top: 1px solid var(--line); }
.service-list li { border-bottom: 1px solid var(--line); padding: 18px 0; display: grid; gap: 6px; }
@media (min-width: 700px) { .service-list li { grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.3fr); gap: 28px; align-items: baseline; } }
.service-list h3 { font-family: var(--sans); font-size: 16px; font-weight: 600; color: var(--ink); }
.service-list p { font-size: 15.5px; color: var(--text); }

/* company cards (group) */
.card-grid { display: grid; gap: 26px; }
@media (min-width: 640px) { .card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .card-grid { grid-template-columns: repeat(3, 1fr); } }
.co-card { border: 1px solid var(--line); background: var(--paper); display: flex; flex-direction: column; }
.co-card .media { position: relative; }
.co-card .media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.co-card .media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,21,34,0) 40%, rgba(14,21,34,0.62) 100%); }
.co-card .city { position: absolute; left: 14px; bottom: 12px; z-index: 1; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #FFFFFF; }
.co-card .body { padding: 22px 22px 26px; display: flex; flex-direction: column; flex: 1; }
.co-card .meta { margin-top: 8px; }
.co-card ul { margin: 16px 0 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.co-card li { font-size: 15px; line-height: 1.5; color: var(--text); padding: 2px 0; }
.co-card .link-arrow { margin-top: auto; align-self: flex-start; font-size: 14px; }

/* people */
.lead-card { display: grid; gap: 32px; border: 1px solid var(--line); padding: clamp(20px, 3vw, 36px); }
@media (min-width: 800px) { .lead-card { grid-template-columns: minmax(240px, 0.8fr) 1.2fr; gap: 52px; align-items: center; } }
.lead-card img { width: 100%; aspect-ratio: 662 / 900; object-fit: cover; object-position: center bottom; background: var(--tint); }
.kv { margin-top: 26px; border-top: 1px solid var(--line); }
.kv > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15.5px; }
.kv dt { color: var(--text); }
.kv dd { color: var(--ink); }
.people { display: grid; gap: 26px; grid-template-columns: repeat(2, 1fr); }
@media (max-width: 479px) { .people { grid-template-columns: 1fr; } }
@media (min-width: 800px) { .people { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .people { grid-template-columns: repeat(4, 1fr); } }
.person { border: 1px solid var(--line); }
.person img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 100%; background: #ECEBE7; }
.person img.top { object-position: center 12%; }
.person .body { padding: 20px 22px 24px; }
.person .meta { margin-top: 8px; }
.person .link-arrow { margin-top: 14px; font-size: 14px; }

/* profile */
.profile { display: grid; gap: 40px; }
@media (min-width: 900px) { .profile { grid-template-columns: minmax(280px, 0.8fr) 1.2fr; gap: 72px; align-items: start; } }
.profile img { width: 100%; max-width: 460px; aspect-ratio: 662 / 900; object-fit: cover; object-position: center bottom; }

/* credentials */
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { min-height: 44px; padding: 10px 16px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; border: 1px solid var(--line-mid); background: var(--paper); color: var(--text); transition: border-color 200ms ease, background 200ms ease, color 200ms ease; }
.chip:hover { border-color: var(--navy-700); color: var(--ink); }
.chip[aria-pressed="true"] { border-color: var(--navy-700); background: var(--navy-700); color: #FFFFFF; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 20px 40px; align-items: flex-end; justify-content: space-between; }
.filter-group .meta { margin-bottom: 10px; }
.count { margin: 26px 0 20px; font-size: 13.5px; color: var(--muted); }
.tombs { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--navy-700); border-left: 1px solid var(--line); }
@media (min-width: 700px) { .tombs { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .tombs { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1280px) { .tombs { grid-template-columns: repeat(6, 1fr); } }
.tomb { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 26px 16px 22px; text-align: center; display: flex; flex-direction: column; align-items: center; min-height: 214px; }
.tomb[hidden] { display: none; }
.tomb .logo { height: 76px; display: flex; align-items: center; justify-content: center; }
.tomb .logo .text-mark { font-family: var(--serif); font-size: 1.6rem; color: var(--ink); }
.tomb .role { margin-top: 18px; font-size: 15px; font-weight: 600; line-height: 1.35; color: var(--ink); }
.tomb .sub { font-size: 14px; color: var(--text); line-height: 1.4; margin-top: 2px; }
.tomb .year { margin-top: auto; padding-top: 12px; font-family: var(--serif); font-size: 1.2rem; color: var(--orange-ink); }
.empty { border: 1px solid var(--line-mid); padding: 56px 24px; text-align: center; }

/* contact */
.contact-people { display: grid; gap: 0 40px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.contact-person { border-top: 1px solid var(--navy-700); padding: 20px 0 30px; }
.contact-person .meta { margin: 6px 0 14px; }
.contact-person a { display: block; font-size: 15.5px; padding: 2px 0; overflow-wrap: anywhere; }
.offices { display: grid; gap: 0 40px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.office { border-top: 1px solid var(--navy-700); padding: 20px 0 30px; }
.office .meta { color: var(--orange-ink); margin-bottom: 10px; }
.office address { font-style: normal; font-size: 15.5px; color: var(--text); margin: 8px 0 10px; }
.office a { font-size: 15.5px; display: block; }

/* pending-content note (remove before launch) */
.pending { margin-top: 22px; border-left: 2px solid var(--orange); background: var(--tint); padding: 12px 16px; font-size: 13.5px; line-height: 1.55; color: var(--muted); max-width: 90ch; }
.pending strong { color: var(--ink); font-weight: 600; }

/* ── Forms ──────────────────────────────────────────── */
.form-layout { display: grid; gap: 48px; }
@media (min-width: 960px) { .form-layout { grid-template-columns: 0.8fr 1.2fr; gap: 80px; align-items: start; } }
.form { display: grid; gap: 22px; }
@media (min-width: 640px) { .form { grid-template-columns: 1fr 1fr; } .form .full { grid-column: 1 / -1; } }
.field label, .field .label { display: block; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); margin-bottom: 9px; }
.field .opt { text-transform: none; letter-spacing: 0; color: var(--muted); font-weight: 400; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea {
  width: 100%; min-height: 50px; padding: 13px 15px; font: inherit; font-size: 16px; color: var(--ink);
  background: var(--paper); border: 1px solid #A9A7A0; border-radius: 0; transition: border-color 200ms ease;
}
.field textarea { min-height: 150px; resize: vertical; }
.field input:hover, .field textarea:hover { border-color: var(--navy-700); }
.field input:focus, .field textarea:focus { outline: 2px solid var(--orange); outline-offset: 1px; border-color: var(--navy-700); }
.field input[type="file"] { width: 100%; font: inherit; font-size: 15px; padding: 12px; border: 1px dashed #A9A7A0; background: var(--tint); }
.field .hint { margin-top: 7px; font-size: 13.5px; color: var(--muted); }
.field .error { display: none; margin-top: 7px; font-size: 13.5px; color: #A32020; }
.field.invalid input, .field.invalid textarea { border-color: #A32020; }
.field.invalid .error { display: block; }
.field label.check { text-transform: none; letter-spacing: 0; font-weight: 400; margin: 0; line-height: 1.55; }
.check { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 15px; color: var(--text); }
.check input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--navy-700); }
.form-status { display: none; border-left: 2px solid var(--orange); background: var(--tint); padding: 16px 18px; font-size: 15.5px; color: var(--ink); }
.form-status.show { display: block; }

/* ── Footer ─────────────────────────────────────────── */
.site-footer { background: var(--navy-800); color: #FFFFFF; }
.cta + .site-footer { border-top: 1px solid rgba(244,241,234,0.14); }
.footer-grid { display: grid; gap: 28px 48px; grid-template-columns: repeat(2, 1fr); padding: clamp(32px, 4vw, 44px) 0 28px; border-bottom: 1px solid rgba(244,241,234,0.18); }
.footer-brand { grid-column: 1 / -1; }
@media (min-width: 1000px) { .footer-grid { grid-template-columns: 1.3fr repeat(4, auto); } .footer-brand { grid-column: auto; } }
.brand-footer img { height: 40px; }
.site-footer .tagline { margin-top: 10px; font-family: var(--serif); font-weight: 300; font-size: 1.2rem; color: #FFFFFF; }
.site-footer h2 { font-size: 11.5px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: #FFFFFF; margin-bottom: 10px; }
.site-footer li + li { margin-top: 4px; }
@media (min-width: 640px) { .site-footer .cols { columns: 2; column-gap: 32px; } .site-footer .cols li { break-inside: avoid; } }
.site-footer a, .site-footer address { font-size: 14.5px; font-style: normal; line-height: 1.6; color: #FFFFFF; overflow-wrap: anywhere; }
.site-footer a:hover { color: var(--orange); }
.footer-base { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; padding: 16px 0 20px; font-size: 13.5px; color: #FFFFFF; }
.footer-base a { font-size: 13.5px; color: #FFFFFF; }

/* ── About page additions ───────────────────────────── */
.facts-inline { margin-top: 44px; }
.facts-inline .fact dt { font-size: clamp(2rem, 3.2vw, 2.9rem); }
.division { font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--orange-ink); margin: 0 0 22px; }
.card-grid + .division { margin-top: 56px; }
.pillar-light .h3 { margin-top: 0; }

/* ── About page layout ──────────────────────────────── */
.banner-full { margin-top: clamp(36px, 5vw, 64px); }
.banner-full img { width: 100%; height: min(39.7vw, 76vh); min-height: 240px; object-fit: cover; object-position: center 55%; }
.intro { display: grid; gap: 28px; }
@media (min-width: 900px) { .intro { grid-template-columns: 1.25fr 0.75fr; gap: clamp(48px, 7vw, 120px); align-items: end; } }
.intro .serif-lede { max-width: 30ch; font-size: clamp(1.5rem, 2.6vw, 2.3rem); line-height: 1.32; letter-spacing: -0.01em; }
.grid-4 { display: grid; gap: 44px clamp(28px, 3vw, 48px); }
@media (min-width: 640px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .grid-4 { grid-template-columns: repeat(4, 1fr); } }
.why .rule-list { margin-top: 20px; }
.why .rule-list li { font-size: 15px; }

/* market map */
.map-layout { display: grid; gap: 36px; }
@media (min-width: 960px) { .map-layout { grid-template-columns: 1.1fr 0.9fr; gap: clamp(40px, 5vw, 88px); align-items: start; } }
.map-wrap { background: var(--tint); overflow: hidden; }
.map-svg { display: block; width: 100%; height: auto; }
.map-svg .c { fill: #DEDBD3; stroke: #F6F5F2; stroke-width: 1.4; stroke-linejoin: round; }
.map-svg .c.on { fill: var(--navy-700); cursor: pointer; transition: fill 200ms ease; }
.map-svg .c.on:hover, .map-svg .c.on.is-active { fill: #DF440C; }
.map-svg .pin { cursor: pointer; }
.map-svg .pin .dot { fill: #DF440C; stroke: #fff; stroke-width: 2.5; transition: r 200ms ease; }
.map-svg .pin .halo { fill: #DF440C; opacity: 0.28; transition: opacity 200ms ease; }
.map-svg .pin:hover .halo, .map-svg .pin.is-active .halo { opacity: 0.6; }
.map-svg .pin.is-active .dot { fill: #fff; stroke: #DF440C; }
.map-svg .pin-label { font-family: var(--sans); font-size: 23px; font-weight: 600; fill: var(--ink); paint-order: stroke; stroke: #F6F5F2; stroke-width: 6px; stroke-linejoin: round; pointer-events: none; }
.map-detail { border-top: 1px solid var(--navy-700); padding: 22px 0 28px; min-height: 172px; }
.map-detail .h3 { margin-top: 10px; }
.map-text { margin-top: 10px; color: var(--text); font-size: 16px; max-width: 44ch; }
.map-lists { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 32px; }
.map-h { font-size: 12px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange-ink); margin-bottom: 8px; }
.map-lists button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 7px 0; font-size: 16px; color: var(--ink); background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; transition: background-size 240ms ease; }
.map-lists button:hover, .map-lists button.is-active { background-size: 100% 1px; }
.map-lists button.is-active { font-weight: 600; }

/* ── About hero: text set into the photograph, revealed on arrival ── */
.hero-about { min-height: max(680px, 100svh); }
.hero-about .hero-media img { object-position: center 58%; }
.hero-about .hero-media::after { background: linear-gradient(180deg, rgba(14,21,34,0.66) 0%, rgba(14,21,34,0.34) 34%, rgba(14,21,34,0.62) 68%, rgba(14,21,34,0.86) 100%); }
.about-hero-body { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: calc(var(--header-h) + 32px); padding-bottom: clamp(36px, 4.5vw, 60px); }
.about-hero-body .eyebrow { color: var(--orange); }
.about-hero-body .h1 { margin-top: 0; color: #FFFFFF; max-width: 17ch; text-shadow: 0 1px 24px rgba(14,21,34,0.35); }
.about-hero-cols { display: grid; gap: 22px; margin-top: clamp(28px, 4vw, 52px); padding-top: clamp(22px, 3vw, 36px); border-top: 1px solid rgba(244,241,234,0.32); }
@media (min-width: 900px) { .about-hero-cols { grid-template-columns: 0.85fr 1.15fr; gap: clamp(40px, 6vw, 104px); align-items: start; } }
.about-hero-cols .lede { color: #FFFFFF; max-width: 46ch; }
.about-hero-cols .serif-lede { color: #FFFFFF; max-width: 34ch; font-size: clamp(1.25rem, 2vw, 1.8rem); line-height: 1.36; }
.reveal { opacity: 0; transform: translateY(22px); animation: reveal 1100ms cubic-bezier(0.2, 0.65, 0.2, 1) forwards; }
.reveal.r1 { animation-delay: 250ms; }
.reveal.r2 { animation-delay: 750ms; }
.reveal.r3 { animation-delay: 1150ms; }
@keyframes reveal { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }
.hero-about + .section { padding-top: var(--section); }

/* ── Footer (logo and contact above, site links and legal below) ── */
.footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px 64px; padding: clamp(26px, 3.2vw, 38px) 0 clamp(18px, 2.4vw, 28px); }
.brand-footer img { height: 50px; }
.site-footer .tagline { margin-top: 8px; font-size: 1.05rem; }
.footer-info { display: flex; flex-wrap: wrap; gap: 28px 72px; }
.footer-info h2 { margin-bottom: 10px; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 40px; padding: 13px 0; border-top: 1px solid rgba(244,241,234,0.18); }
.footer-links { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.site-footer .footer-links li + li { margin-top: 0; }
.footer-legal a { font-size: 13.5px; color: #FFFFFF; }
.footer-copy { padding: 0 0 16px; font-size: 13px; color: #FFFFFF; }

/* ── Why Eventus cards: picture, title, one short paragraph, link ── */
.why-grid { display: grid; gap: 48px clamp(20px, 2.4vw, 34px); }
@media (min-width: 640px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .why-grid { grid-template-columns: repeat(4, 1fr); } }
.why-card { display: flex; flex-direction: column; align-items: flex-start; }
.why-card img { width: 100%; aspect-ratio: 7 / 8; object-fit: cover; background: var(--tint); }
.why-card .h3 { margin-top: 22px; font-size: clamp(1.45rem, 1.9vw, 1.85rem); font-weight: 300; line-height: 1.14; }
.why-card p { margin-top: 12px; color: var(--text); font-size: 16px; line-height: 1.55; }
.why-card .link-arrow { margin-top: auto; }
.why-card p { margin-bottom: 20px; }
.link-arrow.caps { font-size: 12.5px; letter-spacing: 0.13em; text-transform: uppercase; padding-bottom: 5px; }

/* ── Expertise blocks: picture with the name set into it, content beside ── */
.discipline { border-top: 0; padding: 0; gap: 28px; }
.discipline + .discipline { margin-top: clamp(48px, 6vw, 88px); }
@media (min-width: 900px) { .discipline { grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.15fr); gap: clamp(40px, 5vw, 80px); align-items: start; } }
.xp-media { position: relative; overflow: hidden; background: var(--navy-900); }
.xp-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.xp-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,21,34,0.05) 30%, rgba(14,21,34,0.78) 100%); }
.xp-media .h3, .discipline .xp-media .h3 { position: absolute; left: clamp(20px, 2.4vw, 32px); right: clamp(20px, 2.4vw, 32px); bottom: clamp(18px, 2.2vw, 28px); z-index: 1; margin: 0; color: #FFFFFF; font-weight: 300; font-size: clamp(1.6rem, 2.5vw, 2.3rem); line-height: 1.12; text-shadow: 0 1px 18px rgba(14,21,34,0.45); }
.discipline .service-list { margin-top: 22px; }
.service-list.single li { display: block; }
.discipline + .pending { margin-top: 40px; }

/* ── Team: four across with short bios ──────────────── */
.person { display: flex; flex-direction: column; }
.person .body { display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.person .bio { margin-top: 14px; font-size: 15px; line-height: 1.5; color: var(--text); }
.person .bio + .bio { margin-top: 6px; }
.person .bio-pending { color: var(--muted); font-style: italic; }
.person .body .link-arrow { margin-top: auto; padding-top: 16px; }
@media (min-width: 480px) and (max-width: 899px) { .people-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .people-4 { grid-template-columns: repeat(4, 1fr); gap: 20px; } }

/* ── Home hero: slow drift of the light band plus a faint shimmering grain ── */
.home .hero-media img { animation: heroDrift 34s ease-in-out infinite alternate; will-change: transform; }
@keyframes heroDrift {
  from { transform: scale(1.06) translate3d(-1.8%, -1.2%, 0); }
  to   { transform: scale(1.15) translate3d(2%, 1.4%, 0); }
}
.home .hero-media::before {
  content: ""; position: absolute; inset: -140px; z-index: 1; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.16; mix-blend-mode: overlay;
  animation: heroGrain 1.4s steps(1) infinite;
}
@keyframes heroGrain {
  0%   { transform: translate3d(0, 0, 0); }
  14%  { transform: translate3d(-46px, 28px, 0); }
  28%  { transform: translate3d(34px, -52px, 0); }
  42%  { transform: translate3d(-28px, -34px, 0); }
  57%  { transform: translate3d(52px, 38px, 0); }
  71%  { transform: translate3d(-58px, -12px, 0); }
  85%  { transform: translate3d(22px, 56px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}

/* ── Legal text ─────────────────────────────────────── */
.legal { max-width: 72ch; }
.legal h2 { font-family: var(--serif); font-weight: 400; font-size: 1.45rem; color: var(--ink); margin: 36px 0 10px; }
.legal p, .legal li { color: var(--text); }
.legal ul { list-style: disc; padding-left: 22px; }
.legal a { border-bottom: 1px solid var(--orange); }

/* ── About hero: two equal text columns, same type, level with each other ── */
.about-hero-cols { align-items: start; }
@media (min-width: 900px) { .about-hero-cols { grid-template-columns: 1fr 1fr; } }
.about-hero-cols p { margin: 0; font-family: var(--sans); font-size: clamp(1.02rem, 1.3vw, 1.2rem); line-height: 1.62; color: #FFFFFF; max-width: 54ch; }
.about-hero-body .h1 { max-width: 20ch; }

/* ── Our Group: division titles ─────────────────────── */
.division { font-family: var(--serif); font-size: clamp(1.35rem, 1.9vw, 1.7rem); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ink); margin: 0 0 22px; }

/* ── Market coverage: location list beside a live map ── */
.lmap-layout { display: grid; gap: 28px; }
@media (min-width: 960px) { .lmap-layout { grid-template-columns: minmax(300px, 0.8fr) 1.6fr; gap: clamp(28px, 3vw, 48px); align-items: stretch; } }
.lmap-list { display: flex; flex-direction: column; min-width: 0; }
@media (min-width: 960px) { .lmap-list { max-height: 640px; overflow-y: auto; padding-right: 16px; scrollbar-width: thin; } }
.lmap-h { font-size: 12px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange-ink); margin: 0 0 4px; }
.lmap-offices + .lmap-h { margin-top: 30px; }
.lmap-offices li { border-top: 1px solid var(--navy-700); }
.lmap-offices button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 16px 0 18px; color: inherit; transition: background 200ms ease, padding 200ms ease; }
.lmap-offices button:hover, .lmap-offices button.is-active { background: var(--tint); padding-left: 14px; padding-right: 14px; }
.lmap-city { display: block; font-family: var(--serif); font-size: 1.35rem; line-height: 1.2; color: var(--ink); }
.lmap-co { display: block; margin-top: 6px; font-size: 15px; color: var(--ink); }
.lmap-addr { display: block; margin-top: 2px; font-size: 14.5px; color: var(--text); }
.lmap-tag { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 12.5px; color: var(--text); }
.lmap-tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--navy-700); }
.lmap-tag.support::before { background: var(--orange); }
.lmap-markets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.lmap-markets button { min-height: 38px; padding: 7px 13px; font-size: 14px; background: var(--paper); border: 1px solid var(--line-mid); color: var(--ink); transition: border-color 200ms ease, background 200ms ease, color 200ms ease; }
.lmap-markets button:hover { border-color: var(--navy-700); }
.lmap-markets button.is-active { background: var(--navy-700); border-color: var(--navy-700); color: #FFFFFF; }
.lmap-wrap { position: relative; min-height: 420px; background: #E4E3DF; }
.lmap { position: absolute; inset: 0; z-index: 0; font-family: var(--sans); }
@media (max-width: 959px) { .lmap-wrap { height: 70vh; max-height: 560px; } }
@media (min-width: 960px) { .lmap-wrap { min-height: 640px; } }
.lmap .leaflet-tile-pane { filter: grayscale(1) contrast(0.9) brightness(1.06); }
.lmap .leaflet-control-zoom { border: 0; box-shadow: 0 2px 10px rgba(14,21,34,0.18); margin: 16px; }
.lmap .leaflet-control-zoom a { width: 38px; height: 38px; line-height: 38px; color: var(--ink); border-radius: 0; font-weight: 400; }
.lmap .leaflet-control-attribution { font-size: 10.5px; background: rgba(255,255,255,0.82); }
.ev-pin { width: 22px; height: 22px; border-radius: 50% 50% 50% 0; background: var(--navy-700); border: 2px solid #fff; transform: rotate(-45deg); box-shadow: 0 3px 8px rgba(14,21,34,0.4); transition: background 200ms ease; }
.ev-pin.is-active, .leaflet-marker-icon:hover .ev-pin { background: var(--orange); }
.lmap .leaflet-popup-content-wrapper { border-radius: 0; box-shadow: 0 10px 30px rgba(14,21,34,0.22); }
.lmap .leaflet-popup-content { margin: 16px 18px; font-size: 14px; line-height: 1.5; color: var(--text); }
.lmap .leaflet-popup-content strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.2rem; color: var(--ink); margin-bottom: 4px; }
.lmap-reset { position: absolute; left: 16px; top: 16px; z-index: 500; min-height: 38px; padding: 8px 14px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; background: #fff; border: 0; color: var(--ink); box-shadow: 0 2px 10px rgba(14,21,34,0.18); }
.lmap-reset:hover { color: var(--orange-ink); }

/* ── Gentle reveal as sections scroll into view ─────── */
html.js .sr { opacity: 0; transform: translateY(18px); transition: opacity 800ms ease, transform 800ms cubic-bezier(0.2, 0.65, 0.2, 1); }
html.js .sr.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.js .sr { opacity: 1; transform: none; } }


/* ════════════════════════════════════════════════════════════════════
   VERSION 2 — design system overrides (later rules win over the above)
   ════════════════════════════════════════════════════════════════════ */
:root {
  --navy-900: #111A2B;
  --navy-800: #111A2B;
  --navy-700: #1F2A44;
  --ink: #111A2B;
  --text: #111A2B;
  --muted: #111A2B;
  --paper: #FFFFFF;
  --cream: #F4F1EA;
  --tint: #F4F1EA;
  --line: #D6D9DE;
  --line-mid: #D6D9DE;
  --orange: #DF440C;
  --orange-ink: #A93612;
  --container: 1336px;            /* 1240 content + 2 x 48 padding */
  --gutter: 20px;
  --header-h: 64px;
  --section: 40px;
}
@media (min-width: 768px) { :root { --gutter: 32px; --section: 56px; } }
@media (min-width: 960px) { :root { --header-h: 80px; } }
@media (min-width: 1024px) { :root { --gutter: 48px; --section: 80px; } }

html { scroll-padding-top: calc(var(--header-h) + 24px); scroll-behavior: auto; }
body { font-size: 16px; line-height: 1.6; color: var(--text); }
@media (min-width: 768px) { body { font-size: 17px; } }

/* Type scale */
.display { font-weight: 300; font-size: clamp(40px, 5vw, 72px); line-height: 1.08; letter-spacing: -0.015em; }
.h1 { font-weight: 300; font-size: clamp(36px, 4vw, 60px); line-height: 1.1; letter-spacing: -0.015em; }
.h2 { font-weight: 300; font-size: clamp(30px, 3vw, 44px); line-height: 1.15; letter-spacing: -0.01em; }
.h3, .why-card .h3, .cols-4 .pillar .h3, .commit .pillar .h3 { font-weight: 400; font-size: 24px; line-height: 1.2; }
@media (min-width: 768px) { .h3, .why-card .h3, .commit .pillar .h3 { font-size: 27px; } }
@media (max-width: 767px) { .display, .h1, .h2 { font-weight: 400; } }
.lede, .intro-2 .lede { font-size: 18px; line-height: 1.6; max-width: 65ch; color: var(--text); }
p { max-width: 70ch; }
.eyebrow, .split-label, .lmap-h, .map-h, .num { font-size: 12.5px; font-weight: 500; letter-spacing: 0.12em; color: var(--orange-ink); }
.on-dark .eyebrow, .eyebrow.on-dark, .hero-inner .eyebrow, .commit .eyebrow { color: #FFFFFF; }
.meta { font-size: 14px; letter-spacing: 0.06em; color: var(--text); }
.link-arrow { font-size: 16px; }
.link-arrow.caps, .x-card .more span { font-size: 13px; letter-spacing: 0.1em; }
.text-link { color: var(--ink); border-bottom: 1px solid var(--orange); }
.text-link:hover { color: var(--orange-ink); }

/* Layout: one shared spacing token, no accumulated gaps */
.section { padding: var(--section) 0; }
.section + .section, .hero-inner + .section, .hero-home + .section { padding-top: var(--section); }
main > .section + .section { padding-top: 0; }
main > .hero-home + .section, main > .hero-inner + .section, main > .commit + .section, main > .band + .section, main > .page-hero + .section { padding-top: var(--section); }
.section-head { border-bottom: 1px solid var(--navy-700); padding-bottom: 20px; margin-bottom: clamp(28px, 3vw, 44px); }
.page-hero { padding: calc(var(--header-h) + clamp(32px, 5vw, 64px)) 0 0; }
.page-hero-grid { padding-bottom: clamp(28px, 3vw, 44px); }

/* Header */
.site-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: #FFFFFF; border-bottom: 1px solid var(--line); }
.site-header.is-over { background: transparent; border-bottom-color: rgba(244,241,234,0.22); }
.header-inner { min-height: var(--header-h); }
.brand img { height: 50px; }
@media (max-width: 959px) { .brand img { height: 40px; } }
.nav-link { font-size: 13px; letter-spacing: 0.1em; color: var(--ink); }
.site-header.is-over .nav-link { color: #FFFFFF; }
.btn { min-height: 44px; font-size: 13px; letter-spacing: 0.1em; }
.nav-cta { min-height: 44px; padding: 10px 22px; }
.site-header.is-over .btn-outline { color: #FFFFFF; border-color: rgba(255,255,255,0.7); }
.menu-toggle { width: 44px; height: 44px; }
.menu-toggle .ico, .menu-toggle .ico::before, .menu-toggle .ico::after { display: block; width: 20px; height: 1.5px; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
.menu-toggle .ico { position: relative; }
.menu-toggle .ico::before, .menu-toggle .ico::after { content: ""; position: absolute; left: 0; }
.menu-toggle .ico::before { top: -6px; }
.menu-toggle .ico::after { top: 6px; }
.nav-open .menu-toggle .ico { background: transparent; }
.nav-open .menu-toggle .ico::before { transform: translateY(6px) rotate(45deg); }
.nav-open .menu-toggle .ico::after { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 959px) {
  .primary-nav { inset: var(--header-h) 0 0 0; }
  .nav-link { font-size: 15px; min-height: 56px; }
}

/* Home hero: clean navy, crest and headline, no texture or motion */
.hero-home { position: relative; display: flex; flex-direction: column; min-height: 520px; min-height: max(520px, 100svh); color: #FFFFFF; background: linear-gradient(165deg, #1F2A44 0%, #16203A 38%, #111A2B 100%); }   /* 3.13: the hero fills the whole first screen */
@media (min-width: 768px) { .hero-home { min-height: 600px; min-height: max(600px, 100svh); } }
.hero-home-body { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: calc(var(--header-h) + 28px) var(--gutter) 20px; }
.hero-home .hero-crest { width: 80px; height: auto; }
@media (min-width: 768px) { .hero-home .hero-crest { width: 104px; } }
.hero-home .display { margin-top: 28px; max-width: 16ch; color: #FFFFFF; text-wrap: balance; }
.hero-scroll { align-self: center; padding-bottom: 22px; font-size: 12px; letter-spacing: 0.12em; color: #FFFFFF; }
.hero-scroll::after { animation: none; height: 22px; background: rgba(244,241,234,0.6); }

/* Stats */
.facts { gap: 28px 24px; }
.fact dt { font-weight: 300; font-size: clamp(40px, 4.4vw, 60px); }
.fact dd { font-size: 16px; color: var(--text); max-width: 26ch; }

/* Shared picture treatment for the abstract artwork (not logos, not people) */
img.art { filter: saturate(0.72); }
img.art-expertise-6 { filter: saturate(0.42) brightness(0.96); }
.x-card img { aspect-ratio: 4 / 3; }
.x-card:hover img { transform: none; }
.x-card p { font-size: 17px; }

/* Selected credentials: full colour, equal cells */
.logo-strip { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.logo-strip li { height: 128px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.logo-strip img, .tomb .logo img { filter: none; opacity: 1; max-width: 148px; max-height: 56px; }

/* Founder statement */
.statement { column-gap: clamp(32px, 4vw, 64px); }
.quote-mark { font-size: 64px; color: var(--line); height: 0.42em; }
.statement blockquote { margin-top: 14px; font-size: 24px; line-height: 1.42; font-weight: 300; max-width: 30em; }
@media (min-width: 800px) { .statement blockquote { font-size: 31px; line-height: 1.36; margin-bottom: -0.4em; } }
.statement figcaption { margin-top: 16px; padding-top: 14px; }
.statement figcaption .link-arrow { margin-top: 10px; }

/* Client commitment: solid navy, two columns */
.commit { background: var(--navy-800); color: #FFFFFF; padding: var(--section) 0; }
.commit .h2, .commit .h3 { color: #FFFFFF; }
.commit-grid { display: grid; gap: 40px clamp(40px, 6vw, 96px); margin-top: 36px; padding-top: 36px; border-top: 1px solid rgba(244,241,234,0.3); }
@media (min-width: 900px) { .commit-grid { grid-template-columns: 1fr 1fr; } }
.commit .rule-list { margin-top: 16px; border-color: rgba(244,241,234,0.22); }
.commit .rule-list li { border-color: rgba(244,241,234,0.22); color: #FFFFFF; font-size: 17px; padding: 14px 0; max-width: 62ch; }
.band { background: var(--navy-800); }
.band .motto { color: #FFFFFF; }

/* About: compact image-led hero, then the introduction on white */
.hero-inner { position: relative; display: flex; align-items: flex-end; height: 320px; background: var(--navy-800); color: #FFFFFF; overflow: hidden; }
@media (min-width: 768px) { .hero-inner { height: 480px; } }
.hero-inner-media, .hero-inner-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-inner-media img { object-fit: cover; object-position: 50% 42%; }
.hero-inner-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,26,43,0.72) 0%, rgba(17,26,43,0.5) 45%, rgba(17,26,43,0.82) 100%); }
.hero-inner-body { position: relative; padding-bottom: clamp(24px, 4vw, 48px); }
.hero-inner .h1 { color: #FFFFFF; max-width: 20ch; }
.intro-2 { display: grid; gap: 20px; }
@media (min-width: 900px) { .intro-2 { grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: start; } }
.why-card img { aspect-ratio: 4 / 5; }
.why-card p { font-size: 16.5px; }
.division { font-size: 24px; }
.co-card .body { padding: 20px 20px 24px; }
.co-card h4 { min-height: 2.5em; }
.co-card ul { min-height: 5.2em; }
.co-card li { font-size: 16px; }
.co-card .city { font-size: 12.5px; letter-spacing: 0.1em; }

/* Map: flat controls, clear selected state */
.lmap .leaflet-control-zoom, .lmap-reset, .lmap .leaflet-popup-content-wrapper, .lmap .leaflet-popup-tip { box-shadow: none; border: 1px solid var(--navy-700); }
.lmap-reset { min-height: 44px; font-size: 13px; letter-spacing: 0.08em; }
.lmap .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.lmap-offices button.is-active { box-shadow: inset 3px 0 0 var(--orange); }
.lmap-markets button { min-height: 44px; font-size: 15px; }
.lmap-co, .lmap-addr { font-size: 15.5px; }
.lmap-tag { font-size: 14px; }
.ev-pin { box-shadow: none; }

/* Team: shared 4:5 portraits, positioned individually */
.people, .people-4 { grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 480px) { .people, .people-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .people, .people-4 { grid-template-columns: repeat(4, 1fr); } }
.person img, .person img.top { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; background: #ECEBE7; }   /* 3.12: no colour filter; the new portraits are cropped to 4:5 already */
.person .body { padding: 18px 20px 22px; }
.person .bio { font-size: 16px; }
.profile img { aspect-ratio: 4 / 5; object-position: 50% 20%; }

/* Expertise */
.xp-media img { aspect-ratio: 4 / 3; }
.xp-media .h3, .discipline .xp-media .h3 { font-size: clamp(26px, 2.4vw, 34px); }
.service-list h3 { font-size: 17px; }
.service-list p { font-size: 16.5px; }

/* Credentials: 2 / 3 / 4 columns, even cards, nothing looks clickable */
.tombs { grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--navy-700); }
@media (max-width: 359px) { .tombs { grid-template-columns: 1fr; } }
@media (min-width: 768px) { .tombs { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .tombs { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1280px) { .tombs { grid-template-columns: repeat(4, 1fr); } }
.tomb { padding: 28px 20px 24px; min-height: 0; cursor: default; }
.tomb .logo { height: 84px; width: 100%; }
.tomb .role { font-size: 16px; margin-top: 16px; }
.tomb .sub { font-size: 15px; }
.tomb .year { font-family: var(--sans); font-size: 15px; color: var(--text); padding-top: 10px; }
.chip { min-height: 44px; font-size: 14px; letter-spacing: 0.06em; }
.count { font-size: 15px; color: var(--text); }

/* Forms */
.form { grid-template-columns: 1fr; }
@media (min-width: 768px) { .form { grid-template-columns: 1fr 1fr; } }
.field label, .field .label { font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ink); margin-bottom: 8px; }
.field .opt { font-size: 14px; color: var(--text); }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea { min-height: 48px; font-size: 16px; border: 1px solid #6B7280; }
.field input:focus, .field textarea:focus, .field input[type="file"]:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.field input[type="file"] { border: 1px solid #6B7280; background: #FFFFFF; padding: 9px; font-size: 16px; min-height: 48px; }
.field input[type="file"]::file-selector-button { font: inherit; font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; min-height: 30px; margin-right: 14px; padding: 6px 14px; background: #FFFFFF; color: var(--ink); border: 1px solid var(--navy-700); border-radius: 0; cursor: pointer; }
.field .hint, .field .error { font-size: 14px; }
.field .error { color: #9B1C1C; }
.field label.check { font-size: 15px; line-height: 1.5; font-weight: 400; color: var(--text); align-items: start; }
.check input { margin-top: 1px; }
.form-status { font-size: 16px; border-left: 3px solid var(--navy-700); background: var(--tint); }
.form-status.bad { border-left-color: #9B1C1C; }
button[disabled] { opacity: 0.6; cursor: progress; }

/* Contact and footer */
.contact-person a, .office a, .office address { font-size: 16px; }
.office .meta { color: var(--orange-ink); }
.site-footer { background: var(--navy-800); }
.site-footer a, .site-footer address { font-size: 15.5px; color: #FFFFFF; }
.site-footer h2 { font-size: 12.5px; letter-spacing: 0.12em; color: #FFFFFF; }
.site-footer .tagline { color: #FFFFFF; }
.footer-legal a, .footer-copy { font-size: 14px; color: #FFFFFF; }
.footer-nav { border-top-color: rgba(244,241,234,0.3); }

/* Legal text */
.legal p, .legal li { font-size: 17px; }

.hero-body { animation: none; }
.intro-2 p { margin: 0; }
.field.invalid input[type="text"], .field.invalid input[type="email"], .field.invalid input[type="tel"], .field.invalid input[type="file"], .field.invalid textarea { border-color: #9B1C1C; border-width: 2px; }

/* Home hero photograph (Adobe Stock #2049586283): waves anchored to the bottom, navy veil at the top for the header and headline */
.hero-home { overflow: hidden; }
.hero-home-media, .hero-home-media img, .hero-home-media::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-home-media img { object-fit: cover; object-position: 50% 100%; }
.hero-home-media::after { content: ""; background: linear-gradient(180deg, rgba(17,26,43,0.82) 0%, rgba(17,26,43,0.55) 38%, rgba(17,26,43,0.28) 70%, rgba(17,26,43,0.5) 100%); }
.hero-home-body, .hero-home .hero-scroll { position: relative; z-index: 1; }
.hero-home .display { text-shadow: 0 1px 24px rgba(17,26,43,0.45); }

/* ════════════════════════════════════════════════════════════════════
   VERSION 2.2 — Title-case headlines, credentials carousel, Our Approach,
   About hero with the introduction, expertise pictures as supplied
   ════════════════════════════════════════════════════════════════════ */

/* Expertise pictures: natural colours and the full 16:9 frame of the originals */
.xp-media img, .x-card img, img.art-expertise-6, .x-card img.art { filter: none; aspect-ratio: 16 / 9; }

/* Section head with a link and carousel arrows side by side */
.head-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.car-nav { display: flex; gap: 8px; }
.car-btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--navy-700); background: #FFFFFF; color: var(--ink); transition: border-color 200ms ease, color 200ms ease, opacity 200ms ease; }
.car-btn:hover { border-color: var(--orange); color: var(--orange-ink); }
.car-btn[disabled] { opacity: 0.3; cursor: default; border-color: var(--navy-700); color: var(--ink); }

/* Selected Credentials: outlined cards in a scrollable row */
.car { position: relative; }
.car-track { display: flex; gap: 20px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none; padding-bottom: 1px; }
.car-track::-webkit-scrollbar { display: none; }
.cred-card { flex: 0 0 calc((100% - 60px) / 4); scroll-snap-align: start; display: flex; flex-direction: column; border: 1px solid var(--line); background: #FFFFFF; }
@media (max-width: 1023px) { .cred-card { flex-basis: calc((100% - 40px) / 3); } }
@media (max-width: 767px) { .cred-card { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 479px) { .cred-card { flex-basis: 80%; } }
.cred-logo { height: 156px; display: flex; align-items: center; justify-content: center; padding: 24px; border-bottom: 1px solid var(--line); }
.cred-logo img { max-width: 156px; max-height: 62px; width: auto; height: auto; object-fit: contain; }
.cred-logo img[src*="civinity"] { max-width: 124px; }
.cred-logo .text-mark { font-family: var(--serif); font-size: 1.7rem; color: var(--ink); }
.cred-body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.cred-year { font-size: 13px; font-weight: 500; letter-spacing: 0.08em; color: var(--orange-ink); }
.cred-name { margin-top: 8px; font-family: var(--serif); font-weight: 400; font-size: 23px; line-height: 1.2; color: var(--ink); }
.cred-role { margin-top: 10px; font-size: 15.5px; font-weight: 600; line-height: 1.45; color: var(--ink); }
.cred-sub { font-size: 15.5px; line-height: 1.45; color: var(--text); }

/* Our Approach: photo band with the four stages of a mandate and a note from the Managing Partner */
.approach { position: relative; overflow: hidden; background: var(--navy-800); color: #FFFFFF; padding: var(--section) 0; }
.approach-media, .approach-media img, .approach-media::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.approach-media img { object-fit: cover; object-position: 50% 50%; }
.approach-media::after { content: ""; background: linear-gradient(180deg, rgba(17,26,43,0.86) 0%, rgba(17,26,43,0.78) 50%, rgba(17,26,43,0.9) 100%); }
.approach-body { position: relative; z-index: 1; }
.approach .h2, .approach .h3 { color: #FFFFFF; }
.approach-intro { display: grid; gap: 20px; }
@media (min-width: 900px) { .approach-intro { grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: end; } }
.approach-lede { margin: 0; font-size: 18px; line-height: 1.6; color: #FFFFFF; max-width: 52ch; }
.steps { display: grid; gap: 36px clamp(28px, 3vw, 48px); margin-top: 44px; padding-top: 40px; border-top: 1px solid rgba(244,241,234,0.3); }
@media (min-width: 640px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .steps { grid-template-columns: repeat(4, 1fr); } }
.step-num { font-family: var(--serif); font-weight: 300; font-size: 40px; line-height: 1; color: var(--orange); }
.step .h3 { margin-top: 14px; }
.step-label { margin-top: 6px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: #FFFFFF; }
.step .rule-list { margin-top: 18px; border-color: rgba(244,241,234,0.24); }
.step .rule-list li { border-color: rgba(244,241,234,0.24); color: #FFFFFF; font-size: 16px; line-height: 1.5; padding: 12px 0; }
.mp-note { display: grid; gap: 28px; margin-top: 56px; padding-top: 48px; border-top: 1px solid rgba(244,241,234,0.3); align-items: center; }
@media (min-width: 800px) { .mp-note { grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: clamp(36px, 5vw, 80px); } }
.mp-figure img { width: 100%; max-width: 260px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; background: var(--navy-700); }
.mp-text .eyebrow { margin-bottom: 18px; }
.mp-text blockquote p { margin: 0; font-family: var(--serif); font-weight: 300; font-size: 24px; line-height: 1.42; color: #FFFFFF; max-width: 30em; text-wrap: pretty; }
@media (min-width: 800px) { .mp-text blockquote p { font-size: 30px; line-height: 1.36; } }
.mp-sign { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(244,241,234,0.3); max-width: 30em; }
.mp-sign .name { font-family: var(--serif); font-size: 22px; line-height: 1.2; color: #FFFFFF; }
.mp-sign .meta { margin-top: 4px; color: #FFFFFF; }
.mp-sign .link-arrow { margin-top: 12px; color: #FFFFFF; }
main > .approach + .section { padding-top: var(--section); }

/* About: the introduction sits beside the title inside the photo hero */
.hero-inner.hero-about2 { height: auto; min-height: 440px; }
@media (min-width: 768px) { .hero-inner.hero-about2 { min-height: 560px; } }
.hero-about2 .hero-inner-body { padding-top: calc(var(--header-h) + 40px); padding-bottom: clamp(28px, 4vw, 56px); }
.hero-about2 .hero-inner-media::after { background: linear-gradient(180deg, rgba(17,26,43,0.8) 0%, rgba(17,26,43,0.64) 45%, rgba(17,26,43,0.86) 100%); }
.hero-inner-grid { display: grid; gap: 28px; }
@media (min-width: 900px) { .hero-inner-grid { grid-template-columns: 1.1fr 0.9fr; gap: clamp(40px, 6vw, 96px); align-items: end; } }
.hero-inner-aside { border-top: 1px solid rgba(244,241,234,0.4); padding-top: 22px; }
@media (min-width: 900px) { .hero-inner-aside { border-top: 0; border-left: 1px solid rgba(244,241,234,0.4); padding: 4px 0 4px clamp(24px, 3vw, 40px); } }
.hero-inner-aside p { margin: 0; font-size: 17px; line-height: 1.6; color: #FFFFFF; max-width: 48ch; }
.hero-inner-aside p + p { margin-top: 14px; }

/* ── VERSION 2.3 — Client Commitment photograph, justified copy, linked credential cards, About hero column ── */
.approach-media img { object-position: 50% 45%; }
.approach-media::after { background: linear-gradient(180deg, rgba(17,26,43,0.78) 0%, rgba(17,26,43,0.68) 50%, rgba(17,26,43,0.84) 100%); }
.approach-intro { display: block; }
.step .rule-list li { color: #FFFFFF; text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.mp-text blockquote p { text-align: justify; }
.mp-text .eyebrow, .step-num { text-shadow: 0 1px 12px rgba(17,26,43,0.4); }
a.cred-logo { color: inherit; }
.cred-name a { color: inherit; background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; transition: background-size 280ms ease, color 200ms ease; }
.cred-card:hover .cred-name a, .cred-name a:focus-visible { background-size: 100% 1px; }
.cred-note { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 14.5px; line-height: 1.5; color: var(--text); }
.cred-more { white-space: nowrap; color: var(--ink); border-bottom: 1px solid var(--orange); }
.cred-more::after { content: " \2197"; }
.cred-more:hover { color: var(--orange-ink); }
@media (min-width: 900px) { .hero-inner-grid { grid-template-columns: 1.6fr 1fr; gap: clamp(32px, 4vw, 64px); } }
.hero-inner-aside p { max-width: none; }

/* ════════════════════════════════════════════════════════════════════
   VERSION 2.4 — The Group introduction; Our Approach on solid navy (owner's mock-up)
   ════════════════════════════════════════════════════════════════════ */

/* The Group: the same section head as the other home sections, then one reading column */
.group-intro { max-width: 780px; }
.group-intro .lede { margin: 0; max-width: none; }
.group-intro .lede + .lede { margin-top: 20px; }
.group-intro .link-arrow { margin-top: 28px; }

/* Our Approach: solid navy, heading and lede, four numbered commitments in two columns, then the Managing Partner's note */
.commit2 { background: var(--navy-800); color: #FFFFFF; padding: var(--section) 0; }
.commit2 .eyebrow { color: #FFFFFF; margin-bottom: 16px; }
.commit2 .h2 { color: #FFFFFF; }
.commit2-lede { margin: 16px 0 0; max-width: 46ch; font-size: 18px; line-height: 1.6; color: #FFFFFF; }
.commit2-grid { display: grid; gap: 0 clamp(32px, 4vw, 64px); margin-top: 40px; }
@media (min-width: 768px) { .commit2-grid { grid-template-columns: 1fr 1fr; margin-top: 48px; } }
.commit2-item { border-top: 1px solid rgba(244,241,234,0.22); padding: 24px 0 36px; }
@media (min-width: 768px) { .commit2-item { padding: 28px 0 44px; } }
.commit2-num { margin: 0; font-size: 13px; font-weight: 500; letter-spacing: 0.12em; line-height: 1; color: var(--orange); }
.commit2-title { margin-top: 16px; font-family: var(--serif); font-weight: 400; font-size: 24px; line-height: 1.2; color: #FFFFFF; }
@media (min-width: 768px) { .commit2-title { font-size: 28px; } }
.commit2-item p:not(.commit2-num) { margin: 14px 0 0; max-width: 56ch; font-size: 16.5px; line-height: 1.65; color: #FFFFFF; }
@media (min-width: 768px) { .commit2-item p:not(.commit2-num) { font-size: 17px; } }

.mp-note2 { display: grid; gap: 28px; padding-top: 44px; border-top: 1px solid rgba(244,241,234,0.22); align-items: start; }
@media (min-width: 768px) { .mp-note2 { grid-template-columns: 200px minmax(0, 1fr); gap: 40px; padding-top: 52px; } }
@media (min-width: 1024px) { .mp-note2 { grid-template-columns: 240px minmax(0, 1fr); gap: 64px; } }
.mp-note2-portrait { width: 100%; max-width: 200px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; background: var(--navy-700); }
@media (min-width: 768px) { .mp-note2-portrait { max-width: none; } }
.mp-note2-text .eyebrow { margin-bottom: 18px; }
.mp-note2-text blockquote { margin: 0; }
.mp-note2-text blockquote p { margin: 0; max-width: 32em; font-family: var(--serif); font-weight: 400; font-size: 23px; line-height: 1.42; color: #FFFFFF; text-wrap: pretty; }
@media (min-width: 768px) { .mp-note2-text blockquote p { font-size: 28px; line-height: 1.38; } }
.mp-note2-name { margin: 28px 0 0; font-family: var(--serif); font-size: 22px; line-height: 1.2; color: #FFFFFF; }
.mp-note2-role { margin: 6px 0 0; font-size: 12.5px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: #FFFFFF; }
.mp-note2-text .link-arrow { margin-top: 18px; color: #FFFFFF; }
main > .commit2 + .section { padding-top: var(--section); }

/* ════════════════════════════════════════════════════════════════════
   VERSION 2.5 — The Group picture; Our Commitment to You, contact band and footer refined as one sequence
   (navy section → light contact band → navy footer, all on the shared .container)
   ════════════════════════════════════════════════════════════════════ */

/* The Group: paragraphs left, picture right at the height of the text (cropped around the tree, never stretched) */
.group-layout { display: grid; gap: 32px; }
.group-media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: 58% 50%; background: var(--tint); }
@media (min-width: 1024px) {
  .group-layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 64px; align-items: stretch; }
  .group-intro { max-width: none; }
  .group-media { position: relative; min-height: 360px; }
  .group-media img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
}

/* Our Commitment to You */
.commit2 { background: var(--navy-800); color: #FFFFFF; }
.commit2 .eyebrow { color: #FFFFFF; }
.commit2 .h2 { color: #FFFFFF; font-size: 30px; line-height: 1.15; }
@media (min-width: 768px) { .commit2 .h2 { font-size: 38px; } }
@media (min-width: 1024px) { .commit2 .h2 { font-size: 44px; } }
.commit2-lede { color: #FFFFFF; font-size: 17px; line-height: 1.6; }
@media (min-width: 768px) { .commit2-lede { font-size: 18px; } }
.commit2-grid { gap: 40px 48px; margin-top: 40px; }
@media (min-width: 768px) { .commit2-grid { margin-top: 48px; } }
.commit2-item, .commit2-item:nth-child(n) { border-top: 1px solid rgba(244,241,234,0.16); padding: 24px 0 0; }
.commit2-num { font-size: 12.5px; letter-spacing: 0.12em; color: var(--orange); }
.commit2-title { margin-top: 14px; font-size: 22px; line-height: 1.25; color: #FFFFFF; }
@media (min-width: 768px) { .commit2-title { font-size: 26px; } }
.commit2-item p:not(.commit2-num), .commit2-item p:not(.commit2-num):nth-child(n) { margin-top: 12px; max-width: 58ch; font-size: 16px; line-height: 1.6; color: #FFFFFF; text-align: left; -webkit-hyphens: manual; hyphens: manual; }
@media (min-width: 768px) { .commit2-item p:not(.commit2-num), .commit2-item p:not(.commit2-num):nth-child(n) { font-size: 17.5px; } }

/* Managing Partner's note: 48 px to the divider, 48 px after it; portrait top level with the label */
.mp-note2 { margin-top: 40px; padding-top: 40px; border-top: 1px solid rgba(244,241,234,0.16); gap: 24px; align-items: start; }
@media (min-width: 768px) { .mp-note2 { margin-top: 48px; padding-top: 48px; grid-template-columns: 200px minmax(0, 1fr); gap: 40px; } }
@media (min-width: 1024px) { .mp-note2 { grid-template-columns: 240px minmax(0, 1fr); gap: 64px; } }
.mp-note2-portrait { display: block; width: 100%; max-width: 200px; height: auto; aspect-ratio: auto; object-fit: initial; background: none; }
@media (min-width: 768px) { .mp-note2-portrait { max-width: none; } }
.mp-note2-text .eyebrow { margin: 0 0 20px; line-height: 1; color: #FFFFFF; }
.mp-note2-text blockquote p { max-width: 34em; font-family: var(--serif); font-weight: 400; font-size: 22px; line-height: 1.45; color: #FFFFFF; text-align: left; -webkit-hyphens: manual; hyphens: manual; }
@media (min-width: 768px) { .mp-note2-text blockquote p { font-size: 26px; } }
@media (min-width: 1024px) { .mp-note2-text blockquote p { font-size: 29px; } }
.mp-note2-name { margin-top: 32px; font-size: 21px; color: #FFFFFF; }
.mp-note2-role { margin-top: 6px; color: #FFFFFF; }
.mp-note2-text .link-arrow { margin-top: 20px; color: #FFFFFF; }

/* Contact band: subtle off-white between the two navy areas */
.contact-band { background: #F5F5F2; padding: 48px 0; }
@media (min-width: 768px) { .contact-band { padding: 64px 0; } }
.contact-band-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
@media (min-width: 768px) { .contact-band-inner { flex-direction: row; align-items: center; justify-content: space-between; gap: 48px; } }
.contact-band-heading { margin: 0; font-family: var(--serif); font-weight: 300; font-size: 28px; line-height: 1.15; letter-spacing: -0.01em; color: var(--ink); }
@media (min-width: 768px) { .contact-band-heading { font-size: 32px; } }
@media (min-width: 1024px) { .contact-band-heading { font-size: 36px; } }
.contact-band-text p { margin: 12px 0 0; max-width: 54ch; font-size: 17px; line-height: 1.6; color: var(--text); }
@media (min-width: 768px) { .contact-band-text p { font-size: 18px; } }
.btn.contact-band-btn { flex: none; min-height: 52px; padding: 14px 28px; gap: 10px; background: var(--navy-700); border-color: var(--navy-700); color: #FFFFFF; font-size: 16px; font-weight: 500; letter-spacing: 0; text-transform: none; border-radius: 0; }
.btn.contact-band-btn:hover, .btn.contact-band-btn:focus-visible { background: var(--navy-900); border-color: var(--navy-900); color: #FFFFFF; }

/* Footer: quieter than the note and the contact invitation, details still easy to read */
.site-footer { background: var(--navy-800); color: #FFFFFF; }
.footer-top { gap: 32px 64px; padding: 56px 0 40px; }
@media (max-width: 767px) { .footer-top { padding: 44px 0 32px; } }
.brand-footer img { height: 44px; }
.site-footer .tagline { margin-top: 10px; font-family: var(--serif); font-weight: 300; font-size: 16px; color: #FFFFFF; }
.site-footer h2 { margin-bottom: 12px; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; color: #FFFFFF; }
.site-footer address, .site-footer .footer-info a { font-size: 15px; line-height: 1.65; color: #FFFFFF; }
.site-footer .footer-info li + li { margin-top: 2px; }
.footer-nav { padding: 18px 0; gap: 12px 40px; border-top: 1px solid rgba(244,241,234,0.14); }
.site-footer .footer-links a { font-size: 14.5px; color: #FFFFFF; }
.site-footer .footer-legal a { font-size: 13.5px; color: #FFFFFF; }
.site-footer a:hover, .site-footer .footer-links a:hover, .site-footer .footer-info a:hover { color: #FFFFFF; text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.footer-copy { margin: 0; padding: 18px 0 28px; border-top: 1px solid rgba(244,241,234,0.14); font-size: 13px; color: #FFFFFF; }
.footer-copy { max-width: none; }

/* ════════════════════════════════════════════════════════════════════
   VERSION 2.6 — About: Why Eventus cards on one row grid; How We Work
   ════════════════════════════════════════════════════════════════════ */

/* Why Eventus: picture, heading, text and link share rows across the cards (subgrid),
   so every heading, paragraph and link starts on the same line whatever its length */
@supports (grid-template-rows: subgrid) {
  .why-grid { grid-auto-rows: auto; }
  .why-card { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; align-items: start; }
  .why-card .link-arrow { align-self: end; justify-self: start; }
}
@supports not (grid-template-rows: subgrid) {
  @media (min-width: 1100px) { .why-card .h3 { min-height: 2.4em; } }
}

/* How We Work: six statements in a ruled grid, then two links */
.how-list { display: grid; gap: 0 48px; }
@media (min-width: 768px) { .how-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .how-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.how-list li { border-top: 1px solid var(--line); padding: 20px 0 28px; font-size: 17px; line-height: 1.55; color: var(--ink); max-width: 44ch; }
.how-links { display: flex; flex-wrap: wrap; gap: 12px 40px; margin-top: 12px; }

/* ── VERSION 2.7 — Our Group: four M&A advisory companies on one row; Business Services at the same card width ── */
@media (min-width: 1000px) { .card-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .card-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }

/* ════════════════════════════════════════════════════════════════════
   VERSION 2.9 — Services: The Course of a Mandate (five stages beneath the introduction)
   ════════════════════════════════════════════════════════════════════ */
.mandate { padding-top: 40px; }
.mandate-inner { padding-bottom: 40px; border-bottom: 1px solid var(--line); }
.mandate-heading { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.15; letter-spacing: -0.01em; color: var(--ink); }
@media (min-width: 768px) { .mandate-heading { font-weight: 300; font-size: 31px; } }
.mandate-intro { margin: 12px 0 0; max-width: 70ch; font-size: 17px; line-height: 1.6; color: var(--text); }
main > .mandate + .section { padding-top: 40px; }
@media (min-width: 768px) { main > .mandate + .section { padding-top: 60px; } }

/* Stages: one row of five on desktop, two columns on tablet, stacked on phones */
.mandate-stages { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); }
.mandate-stage { position: relative; padding: 20px 0; }
.mandate-stage + .mandate-stage { border-top: 1px solid var(--line); }
.mandate-stage:first-child { padding-top: 4px; }
.mandate-stage:last-child { padding-bottom: 0; }
.mandate-num { margin: 0; font-size: 12.5px; font-weight: 500; letter-spacing: 0.12em; line-height: 1; color: var(--orange-ink); }
.mandate-title { margin: 12px 0 0; font-family: var(--serif); font-weight: 400; font-size: 21px; line-height: 1.25; color: var(--ink); }
.mandate-text { margin: 10px 0 0; max-width: 46ch; font-size: 16px; line-height: 1.6; color: var(--text); text-align: left; }

@media (min-width: 768px) {
  .mandate-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; row-gap: 28px; margin-top: 32px; }
  .mandate-stage, .mandate-stage:first-child, .mandate-stage:last-child { padding: 0; }
  .mandate-stage + .mandate-stage { border-top: 0; }
  .mandate-stage:nth-child(2n)::before { content: ""; position: absolute; top: 0; bottom: 0; left: -12px; border-left: 1px solid var(--line); }
}
@media (min-width: 1024px) {
  .mandate-stages { grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: auto auto auto; column-gap: 24px; row-gap: 0; }
  .mandate-stage:nth-child(2n)::before { content: none; }
  .mandate-stage + .mandate-stage::before { content: ""; position: absolute; top: 0; bottom: 0; left: -12px; border-left: 1px solid var(--line); }
  .mandate-title { font-size: 22px; }
  /* number, heading and description share rows across the five stages, so every description starts on the same line */
  @supports (grid-template-rows: subgrid) {
    .mandate-stage { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
    .mandate-stage .mandate-title { align-self: start; }
  }
  @supports not (grid-template-rows: subgrid) { .mandate-title { min-height: 2.5em; } }
}

/* Staged reveal: the hidden state exists only once the script has added .mandate-anim (no JavaScript or reduced motion = always visible).
   Opacity and transform only, so each stage keeps its full space and nothing shifts. */
.mandate-anim .mandate-stage { opacity: 0; transform: translateY(12px); }
.mandate-anim .mandate-stage.is-in { opacity: 1; transform: none; transition: opacity 450ms cubic-bezier(0.22, 0.61, 0.36, 1), transform 450ms cubic-bezier(0.22, 0.61, 0.36, 1); } /* timing only on the way in: hiding is instant, so nothing fades out first */
@media (prefers-reduced-motion: reduce) { .mandate-anim .mandate-stage { opacity: 1; transform: none; transition: none; } }

/* ════════════════════════════════════════════════════════════════════
   VERSION 2.10 — Services page: process band and one shared layout for every service block
   (scoped to body.services-page; replaces the earlier .discipline / .xp-media / .service-list layers on this page)
   ════════════════════════════════════════════════════════════════════ */

/* The Course of a Mandate: pale band across the viewport, content on the shared container */
.services-page .page-hero-grid { border-bottom: 0; }
.services-page .mandate { background: #F3F5F7; padding: 32px 0; }
@media (min-width: 768px) { .services-page .mandate { padding: 48px 0; } }
.services-page .mandate-inner { padding-bottom: 0; border-bottom: 0; }
.services-page main > .mandate + .section { padding-top: 48px; }
@media (min-width: 768px) { .services-page main > .mandate + .section { padding-top: 64px; } }

/* Service blocks: image above content until the two columns have room, then 40 / 60 with a 56 px gap */
.services-page .discipline { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 0; border: 0; align-items: start; }
.services-page .discipline + .discipline { margin-top: 56px; }
.services-page .xp-media { position: relative; overflow: hidden; background: var(--navy-900); }
.services-page .xp-media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: 50% 50%; filter: none; }
@media (min-width: 1100px) {
  .services-page .discipline { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); column-gap: 56px; align-items: stretch; }
  .services-page .discipline + .discipline { margin-top: 72px; }
  .services-page .xp-media { min-height: 0; }   /* the text sets the row height; the picture fills it */
  .services-page .xp-media img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
}

/* Category titles: one style, bottom left, 30 px from the panel edges, over the existing dark overlay */
.services-page .xp-media .h3, .services-page .discipline .xp-media .h3 { position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 1; margin: 0; font-family: var(--serif); font-weight: 300; font-size: 26px; line-height: 1.15; letter-spacing: -0.005em; color: #FFFFFF; text-wrap: balance; text-shadow: 0 1px 18px rgba(14,21,34,0.45); }
@media (min-width: 768px) { .services-page .xp-media .h3, .services-page .discipline .xp-media .h3 { left: 30px; right: 30px; bottom: 28px; font-size: 30px; } }

/* Right-hand content: one intro style, then name / description rows at 35 / 65 with a 24 px gap */
.services-page .xp-content { min-width: 0; }
.services-page .xp-content > .lede { margin: 0 0 24px; max-width: none; font-size: 17px; line-height: 1.6; color: var(--text); }
@media (min-width: 768px) { .services-page .xp-content > .lede { font-size: 18px; } }
.services-page .service-list, .services-page .discipline .service-list { margin: 0; padding: 0; border-top: 1px solid var(--line); }
.services-page .service-list li { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 6px; column-gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--line); }
@media (min-width: 640px) { .services-page .service-list li { grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); align-items: baseline; } }
.services-page .service-list.single li { display: block; }
.services-page .service-list h3 { margin: 0; font-family: var(--sans); font-size: 17px; font-weight: 600; line-height: 1.45; color: var(--ink); }
.services-page .service-list p { margin: 0; max-width: none; font-size: 16.5px; line-height: 1.6; color: var(--text); text-align: left; -webkit-hyphens: manual; hyphens: manual; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 2.11 — Home hero without the scroll cue; Contact lists all six group offices;
   Credentials: Featured Credentials in year groups, separate cards, four filter rows
   ═══════════════════════════════════════════════════════════════════ */

/* Home hero: the "Scroll" link is removed; its height stays as space below the title so the crest and title keep their position */
.hero-home-body { padding-bottom: 92px; }
@media (max-height: 560px) { .hero-home-body { padding-bottom: 20px; } }

/* Contact: six group offices, two then three per row */
@media (min-width: 640px) { .offices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .offices { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Credentials filters: text tabs with an underline under the current choice (selects on phones) */
.cr-filters { border-bottom: 1px solid var(--line); padding: 0 0 14px; }
.cr-filter { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 6px 0; }
.cr-filter-label { font-size: 12.5px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.cr-tabs { display: none; }
.cr-tab { position: relative; min-height: 44px; padding: 0; border: 0; background: none; font-family: var(--sans); font-size: 16.5px; font-weight: 600; line-height: 1.3; color: var(--ink); white-space: nowrap; }
.cr-tab::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 3px; background: transparent; transition: background-color 200ms ease; }
.cr-tab:hover { color: var(--ink); }
.cr-tab:hover::after { background: var(--line-mid); }
.cr-tab[aria-checked="true"] { color: var(--ink); }
.cr-tab[aria-checked="true"]::after { background: var(--orange); }
.cr-tab:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }
.cr-select-wrap { position: relative; }
.cr-select { width: 100%; min-height: 48px; padding: 0 44px 0 14px; border: 1px solid var(--line-mid); border-radius: 0; background: #FFFFFF; font-family: var(--sans); font-size: 16px; font-weight: 600; color: var(--ink); -webkit-appearance: none; appearance: none; text-overflow: ellipsis; }
.cr-select:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }
.cr-select-wrap::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid var(--navy-700); border-bottom: 1.5px solid var(--navy-700); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
@media (min-width: 480px) and (max-width: 1023px) { .cr-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; } }
@media (min-width: 1024px) {
  .cr-filters { padding: 0 0 12px; }
  .cr-filter { grid-template-columns: 112px minmax(0, 1fr); gap: 0 24px; align-items: start; padding: 4px 0; }
  .cr-filter-label { line-height: 44px; }
  .cr-tabs { display: flex; flex-wrap: wrap; gap: 0 28px; }
  .cr-select-wrap { display: none; }
}

.cr-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 24px; min-height: 44px; margin: 20px 0 4px; }
.cr-count { font-size: 15px; color: var(--text); }
.cr-clear { min-height: 44px; padding: 0; border: 0; background: none; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.cr-clear:hover { color: var(--orange-ink); }
.cr-clear[hidden] { display: none; }

/* Year groups */
.cr-year { margin-top: 40px; }
.cr-year[hidden] { display: none; }
.cr-year-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 14px; margin-bottom: 24px; border-bottom: 1px solid var(--navy-700); }
.cr-year-h { font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 3.2vw, 40px); line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); }
.cr-year-count { font-size: 14px; color: var(--muted); }

/* Cards: each credential in its own outlined box (logo panel, name, service, industry and location) */
.cr-grid { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { .cr-grid { gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .cr-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .cr-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cr-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); background: #FFFFFF; transition: border-color 200ms ease; }
.cr-card:hover { border-color: var(--line-mid); }
.cr-card[hidden] { display: none; }
.cr-logo { height: 140px; display: flex; align-items: center; justify-content: center; padding: 22px; border-bottom: 1px solid var(--line); }
a.cr-logo { color: inherit; }
.cr-logo img { max-width: 168px; max-height: 66px; width: auto; height: auto; object-fit: contain; }
.cr-logo .text-mark { font-family: var(--serif); font-size: 1.6rem; line-height: 1.2; color: var(--ink); text-align: center; }
.cr-body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
.cr-name { font-family: var(--serif); font-weight: 400; font-size: 22px; line-height: 1.22; color: var(--ink); overflow-wrap: anywhere; }
.cr-name a { color: inherit; background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; transition: background-size 280ms ease, color 200ms ease; }
.cr-card:hover .cr-name a, .cr-name a:focus-visible { background-size: 100% 1px; }
.cr-role { margin-top: 10px; font-size: 15.5px; font-weight: 600; line-height: 1.45; color: var(--ink); }
.cr-sub { margin-top: 2px; font-size: 15px; line-height: 1.45; color: var(--text); }
.cr-meta { margin-top: auto; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.cr-meta::before { content: ""; display: block; height: 1px; margin: 16px 0 12px; background: var(--line); }
.cr-meta span { display: block; }
@media (max-width: 559px) {
  .cr-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
  .cr-logo { height: auto; min-height: 116px; padding: 14px 12px; border-bottom: 0; border-right: 1px solid var(--line); }
  .cr-logo img { max-width: 84px; max-height: 48px; }
  .cr-logo .text-mark { font-size: 1.1rem; }
  .cr-body { padding: 14px 16px 16px; }
  .cr-name { font-size: 19px; }
  .cr-role { margin-top: 6px; font-size: 15px; }
  .cr-sub { font-size: 14.5px; }
  .cr-meta { font-size: 13px; }
  .cr-meta::before { margin: 12px 0 10px; }
  .cr-year { margin-top: 32px; }
  .cr-year-head { margin-bottom: 16px; }
}
.cr-logo img.logo-compact { max-width: 150px; max-height: 76px; }
.cr-logo img.logo-square { max-width: 116px; max-height: 88px; }
@media (max-width: 559px) {
  .cr-logo img.logo-compact { max-width: 80px; max-height: 54px; }
  .cr-logo img.logo-square { max-width: 72px; max-height: 64px; }
}
/* Review fixes (2.11): wide wordmarks, logo-less cards, empty state, tab hit area, contrast themes */
.cr-logo img.logo-wide { max-width: 200px; max-height: 46px; }
.cr-logo:not(a):has(.text-mark), .cr-logo:has(> .text-mark) { background: var(--tint); }
.cr-logo .text-mark { font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.4; color: var(--muted); }
.empty p { margin-left: auto; margin-right: auto; }
.cr-tab::before { content: ""; position: absolute; top: 0; bottom: 0; left: -12px; right: -12px; }
@media (forced-colors: active) {
  .cr-tab[aria-checked="true"]::after { forced-color-adjust: none; background: Highlight; }
  .cr-tab:hover::after { background: transparent; }
}
@media (max-width: 559px) {
  .cr-logo img.logo-wide { max-width: 96px; max-height: 36px; }
  .cr-logo .text-mark { font-size: 11px; letter-spacing: 0.1em; }
}
/* Contact: consent checkbox beside its text; office and contact links at least 44 px tall; postcodes kept on one line */
.field label.check { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; }
.office a, .contact-person a { display: flex; align-items: center; width: fit-content; min-height: 44px; }
.nowrap { white-space: nowrap; }
.section-head:has(+ .offices), .section-head:has(+ .contact-people) { border-bottom: 0; padding-bottom: 0; }   /* the first row of items draws the single rule */

/* ═══════════════════════════════════════════════════════════════════
   VERSION 2.12 — Credentials filters as drop-down menus; closing invitations on white (Credentials, Team);
   Services: Healthcare & Life Sciences feature in place of the Sector Expertise block
   ═══════════════════════════════════════════════════════════════════ */

/* Credentials: four drop-down menus in one row (two on tablets, one on small phones) */
.cr-filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px 20px; padding: 0 0 24px; border-bottom: 1px solid var(--line); }
@media (min-width: 360px) { .cr-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; } }
@media (min-width: 560px) { .cr-filters { gap: 16px 20px; } }
@media (min-width: 1024px) {
  .cr-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-bottom: 28px; }
  .cr-filter { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 0; }
  .cr-filter-label { line-height: 1.4; }
  .cr-select-wrap { display: block; }
}
.cr-filter { display: grid; gap: 8px; padding: 0; }
.cr-filter-label { display: block; }
.cr-select { cursor: pointer; transition: border-color 200ms ease; }
.cr-select:hover { border-color: var(--navy-700); }

/* Services: Healthcare & Life Sciences — full-width photograph under a navy overlay, content in the site container */
.hc-feature { position: relative; overflow: hidden; background: #101E30; color: #FFFFFF; padding: 40px 0; }
@media (min-width: 900px) { .hc-feature { padding: 72px 0; } }
.hc-media, .hc-media img, .hc-media::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.hc-media img { object-fit: cover; object-position: 70% 50%; }
.hc-media::after { content: ""; background: rgba(16, 30, 48, 0.9); }
@media (min-width: 900px) { .hc-media::after { background: linear-gradient(90deg, rgba(16, 30, 48, 0.92) 0%, rgba(16, 30, 48, 0.9) 48%, rgba(16, 30, 48, 0.76) 100%); } }
.hc-body { position: relative; z-index: 1; }
.hc-intro { max-width: 640px; }
.hc-eyebrow { margin: 0 0 16px; font-size: 12.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #F2723F; }   /* lighter tint of the brand orange for small text on navy (AA) */
.hc-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: 34px; line-height: 1.12; letter-spacing: -0.01em; color: #FFFFFF; text-wrap: balance; }
@media (min-width: 900px) { .hc-title { font-size: 46px; } }
.hc-intro p:not(.hc-eyebrow) { margin: 20px 0 0; max-width: none; font-size: 16.5px; line-height: 1.6; color: #FFFFFF; text-align: left; }
@media (min-width: 900px) { .hc-intro p:not(.hc-eyebrow) { font-size: 18px; } }
.hc-subhead { margin: 48px 0 20px; font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #FFFFFF; }
@media (min-width: 900px) { .hc-subhead { margin-top: 56px; } }
.hc-deals { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid rgba(244, 241, 234, 0.28); background: rgba(16, 30, 48, 0.62); }
.hc-deal { display: flex; flex-direction: column; padding: 24px 0 26px; border-bottom: 1px solid rgba(244, 241, 234, 0.16); }
@media (max-width: 899px) { .hc-deals { background: none; } }
@media (min-width: 900px) {
  .hc-deals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hc-deal { padding: 28px 28px 30px; border-bottom: 0; }
  .hc-deal + .hc-deal { border-left: 1px solid rgba(244, 241, 234, 0.2); }
}
.hc-deal-meta { margin: 0; font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: #FFFFFF; }
.hc-deal-name { margin: 10px 0 0; font-family: var(--serif); font-weight: 400; font-size: 25px; line-height: 1.2; color: #FFFFFF; }
.hc-deal-role { margin: 8px 0 0; font-size: 16px; font-weight: 600; line-height: 1.45; color: #FFFFFF; }
.hc-deal-text { margin: 12px 0 0; max-width: none; font-size: 16px; line-height: 1.6; color: #FFFFFF; }
.hc-deal-link { margin-top: auto; padding-top: 18px; align-self: flex-start; font-size: 15px; color: #FFFFFF; }
.hc-deal-link span { background: linear-gradient(#F2723F, #F2723F) no-repeat 0 100% / 100% 1px; padding-bottom: 2px; }
.hc-deal-link:hover { color: #FFFFFF; }
.hc-deal-link::after { content: " \2197"; }
.hc-more { margin-top: 32px; }
.hc-feature .link-arrow { color: #FFFFFF; }
.hc-feature .link-arrow:hover { color: #FFFFFF; }
.hc-feature a:focus-visible { outline: 2px solid #F4F1EA; outline-offset: 3px; }
@media (max-width: 559px) { .cr-select { padding: 0 34px 0 12px; font-size: 16px; }   /* 16 px stops iOS zooming on focus */ .cr-select-wrap::after { right: 14px; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 2.13 — Healthcare & Life Sciences refined: WebP background (JPEG fallback) under a separate overlay,
   regular-weight title, solid off-white text, one opaque transaction panel with aligned columns
   ═══════════════════════════════════════════════════════════════════ */
.hc-feature { background-color: #101E30; }
.hc-media { display: block; z-index: 0; }
.hc-media::after { content: none; }
.hc-media img { object-position: 50% 50%; }
.hc-overlay { position: absolute; inset: 0; z-index: 1; background: rgba(16, 30, 48, 0.9); }
@media (min-width: 900px) { .hc-overlay { background: linear-gradient(90deg, rgba(16, 30, 48, 0.94) 0%, rgba(16, 30, 48, 0.88) 52%, rgba(16, 30, 48, 0.65) 100%); } }
.hc-body { z-index: 2; }
.hc-intro { max-width: 640px; }
.hc-title { font-weight: 400; }
.hc-intro p:not(.hc-eyebrow) { margin: 20px 0 0; font-weight: 400; color: #FFFFFF; }
.hc-intro .hc-title + p { margin-top: 24px; }
.hc-subhead { margin: 48px 0 20px; }
/* One continuous opaque panel; on desktop the year, name, role and description share rows across the three columns */
.hc-deals { background: #142438; border-top: 0; }
@media (max-width: 899px) { .hc-deals { background: #142438; } .hc-deal { padding: 24px 20px 26px; border-bottom: 0; } .hc-deal + .hc-deal { border-top: 1px solid rgba(244, 241, 234, 0.16); } }
@media (min-width: 900px) {
  .hc-deals { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, auto); }
  .hc-deal { padding: 28px; }
  .hc-deal + .hc-deal { border-left: 1px solid rgba(244, 241, 234, 0.16); }
  @supports (grid-template-rows: subgrid) { .hc-deal { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; align-content: start; } }
  @supports not (grid-template-rows: subgrid) { .hc-deal-name { min-height: 2.4em; } }
}
.hc-deal-meta { color: #A9B3C1; }
.hc-deal-name { font-weight: 400; color: #FFFFFF; }
.hc-deal-role { font-weight: 600; color: #FFFFFF; }
.hc-deal-text { font-weight: 400; color: #FFFFFF; align-self: start; }
.hc-more { margin-top: 28px; }

/* ── VERSION 2.14 — Header hides on scroll down, returns on scroll up ── */
.site-header { transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1), background 260ms ease, border-color 260ms ease; }
.site-header.is-hidden { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.0 — cinematic reveal (from the owner's landing-page prototype), header without the white
   flash or rule, translucent blurred bar on scroll up, logo 10 % smaller, Our Approach stage, simpler footer
   ═══════════════════════════════════════════════════════════════════ */

/* Header: transparent at the top; slides away on scroll down; translucent and blurred when it returns; no rule */
.site-header, .site-header.is-over { background: transparent; border-bottom: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.site-header { transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1), background-color 300ms ease, -webkit-backdrop-filter 300ms ease, backdrop-filter 300ms ease; }
.site-header.is-floating { background: rgba(255, 255, 255, 0.62); -webkit-backdrop-filter: blur(16px) saturate(150%); backdrop-filter: blur(16px) saturate(150%); }
.site-header.is-floating.is-over { background: rgba(17, 26, 43, 0.42); }
.nav-open .site-header, .nav-open .site-header.is-over, .nav-open .site-header.is-floating { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }
.brand img { height: 45px; }
@media (max-width: 959px) { .brand img { height: 36px; } }

/* Reveal states — only while <html class="rv"> (set in the head; never with reduced motion).
   Retuned 3.12 ("too much animation"): everything is a quiet fade with at most a short rise — no sideways
   movement, no wipes, no drawn lines — over shorter distances and durations. */
html.rv [data-rv]:not(.rv-done) { transition: transform 0.7s cubic-bezier(0.25, 0.6, 0.3, 1) var(--rv-d, 0ms), opacity 0.6s ease var(--rv-d, 0ms), border-color 0.4s ease, background-color 0.3s ease, color 0.2s ease, box-shadow 0.4s ease; }
html.rv [data-rv="up"]:not(.is-in) { opacity: 0; transform: translateY(16px); }
html.rv [data-rv="right"]:not(.is-in) { opacity: 0; transform: translateY(16px); }
html.rv [data-rv="wipe"]:not(.is-in) { opacity: 0; }
html.rv [data-rv="line"]:not(.is-in) { opacity: 0; }
html.rv .rv-mask:not(.rv-done) { overflow: hidden; padding-bottom: 0.1em; margin-bottom: -0.1em; }
.rv-mask > .rv-in { display: block; }
html.rv .rv-mask > .rv-in { transition: transform 0.8s cubic-bezier(0.25, 0.6, 0.3, 1) var(--rv-d, 0ms), opacity 0.6s ease var(--rv-d, 0ms); }
html.rv .rv-mask:not(.is-in) > .rv-in { transform: translateY(40%); opacity: 0; }
.rv-line { position: absolute; left: 0; right: 0; pointer-events: none; transition: opacity 0.8s ease var(--rv-d, 0ms); }
html.rv [data-rv-line]:not(.is-in) > .rv-line { opacity: 0; }
.rv-word { display: inline-block; }
@media print { html.rv [data-rv], html.rv .rv-in, html.rv .rv-line { opacity: 1 !important; transform: none !important; clip-path: none !important; } }

/* Home hero: the headline in three lines that rise one after another */
.hero-lines .rv-mask { display: block; }
.hero-home .display.hero-lines { max-width: none; }
.hero-home-media img { will-change: transform; }

/* Pictures zoom slowly under the pointer */
.x-card .media, .group-media { overflow: hidden; }
.x-card .media img, .group-media img { transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1); }
.x-card:hover .media img { transform: scale(1.05); }
.group-media:hover img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .x-card:hover .media img, .group-media:hover img { transform: none; } }

/* Our Approach (home): the four commitments one at a time, then the note from the Managing Partner */
.ap { position: relative; overflow: hidden; background: var(--navy-800); color: #FFFFFF; padding: clamp(88px, 11vw, 150px) 0 clamp(80px, 10vw, 140px); }
.ap-eyebrow { display: flex; align-items: center; gap: 18px; margin: 0 0 32px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: #FFFFFF; }
.ap-eyebrow-rule { display: block; flex: none; width: 56px; height: 1px; background: var(--orange); transform-origin: left center; }
.ap-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(44px, 6.4vw, 92px); line-height: 1.02; letter-spacing: -0.02em; color: #FFFFFF; }
.ap-title .rv-mask { display: inline-block; vertical-align: top; }
.ap-title em { font-style: italic; }
.ap-lede { margin: 36px 0 0; max-width: 34em; font-size: 19px; line-height: 1.65; color: #FFFFFF; }
.ap-stage { display: grid; gap: 40px; margin-top: clamp(64px, 8vw, 112px); }
@media (min-width: 960px) { .ap-stage { grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: clamp(48px, 6vw, 80px); align-items: start; } }
.ap-list { display: none; flex-direction: column; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.ap-js .ap-list { display: flex; }
.ap-tab { display: flex; align-items: center; gap: 18px; width: 100%; min-height: 64px; padding: 18px 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); background: none; color: #8A93A6; text-align: left; cursor: pointer; font: inherit; }
.ap-tab, .ap-tab.rv-done { transition: color 0.4s ease; }
.ap-tab:hover, .ap-tab.is-active { color: #FFFFFF; }
.ap-tab:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 4px; }
.ap-tab-line { flex: none; width: 12px; height: 1px; background: var(--orange); transition: width 0.6s cubic-bezier(0.77, 0, 0.18, 1); }
.ap-tab.is-active .ap-tab-line { width: 44px; }
.ap-tab-num { flex: none; font-size: 13px; letter-spacing: 0.12em; font-variant-numeric: tabular-nums; color: #F2723F; }
.ap-tab-title { font-family: var(--serif); font-size: 23px; font-weight: 400; line-height: 1.2; }
.ap-view { min-width: 0; }
.ap-panels { display: grid; gap: 48px; }
.ap-panel { position: relative; }
.ap-big { display: none; }
.ap-panel-body { position: relative; max-width: 560px; }
.ap-step { margin: 0 0 22px; font-size: 13px; letter-spacing: 0.22em; color: #F2723F; }
.ap-panel-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(34px, 4.2vw, 58px); line-height: 1.06; letter-spacing: -0.015em; color: #FFFFFF; }
.ap-panel-body > p:last-child { margin: 24px 0 0; max-width: 30em; font-size: 18px; line-height: 1.7; color: #FFFFFF; }
.ap-js .ap-panels { gap: 0; position: relative; overflow: hidden; min-height: clamp(340px, 34vw, 460px); }
.ap-js .ap-panel { grid-area: 1 / 1; display: flex; align-items: center; transition: transform 1s cubic-bezier(0.77, 0, 0.18, 1), opacity 0.8s ease; }
.ap-js .ap-panel.is-after { transform: translateX(16%); opacity: 0; }
.ap-js .ap-panel.is-before { transform: translateX(-12%); opacity: 0; }
.ap-js .ap-big { display: block; position: absolute; right: -2%; top: 50%; font-family: var(--serif); font-weight: 300; font-size: clamp(150px, 24vw, 340px); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(223, 68, 12, 0.5); transform: translateY(-50%); transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1); pointer-events: none; user-select: none; }
.ap-js .ap-panel.is-after .ap-big { transform: translateY(-50%) translateX(40%); }
.ap-js .ap-panel.is-before .ap-big { transform: translateY(-50%) translateX(-40%); }
.ap-js .ap-panel-body > * { transition: opacity 0.8s ease, transform 1s cubic-bezier(0.16, 1, 0.3, 1); }
.ap-js .ap-panel.is-active .ap-panel-body > :nth-child(1) { transition-delay: 0.35s; }
.ap-js .ap-panel.is-active .ap-panel-body > :nth-child(2) { transition-delay: 0.45s; }
.ap-js .ap-panel.is-active .ap-panel-body > :nth-child(3) { transition-delay: 0.6s; }
.ap-js .ap-panel.is-after .ap-panel-body > * { opacity: 0; transform: translateX(60px); }
.ap-js .ap-panel.is-before .ap-panel-body > * { opacity: 0; transform: translateX(-60px); }
.ap-static .ap-panel, .ap-static .ap-panel-body > *, .ap-static .ap-big { transition: none !important; }
.ap-controls { display: none; align-items: center; gap: 12px 20px; margin-top: 32px; }
.ap-js .ap-controls { display: flex; }
.ap-counter { margin: 0; min-width: 64px; font-size: 13px; letter-spacing: 0.14em; font-variant-numeric: tabular-nums; color: #FFFFFF; }
.ap-counter span { color: #FFFFFF; }
.ap-progress { position: relative; flex: 1; height: 1px; background: rgba(255, 255, 255, 0.14); overflow: hidden; }
.ap-progress span { position: absolute; inset: 0; background: var(--orange); transform-origin: left center; transform: scaleX(0); }
.ap-progress span.is-run { animation: apProgress linear forwards; }
@keyframes apProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.ap-static .ap-progress span { transition: transform 0.8s cubic-bezier(0.77, 0, 0.18, 1); }
.ap-btn { flex: none; width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid rgba(255, 255, 255, 0.3); background: none; color: #FFFFFF; cursor: pointer; transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; }
.ap-btn:hover { background: #FFFFFF; color: var(--navy-800); border-color: #FFFFFF; }
.ap-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.ap-btn[hidden] { display: none; }
.ap-btn .ap-ico-play, .ap-btn.is-paused .ap-ico-pause { display: none; }
.ap-btn.is-paused .ap-ico-play { display: block; }
.ap-divider { height: 1px; background: rgba(255, 255, 255, 0.14); margin: clamp(72px, 9vw, 120px) 0 clamp(56px, 7vw, 96px); transform-origin: left center; }
.ap-note { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .ap-note { grid-template-columns: minmax(240px, 360px) minmax(0, 1fr); gap: clamp(48px, 6vw, 88px); } }
.ap-portrait { max-width: 360px; overflow: hidden; background: #E9E7E2; }
.ap-portrait img { display: block; width: 100%; height: auto; }
.ap-note-label { margin: 0 0 28px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: #FFFFFF; }
.ap-quote { margin: 0; }
.ap-quote p { margin: 0; max-width: none; font-family: var(--serif); font-weight: 300; font-size: clamp(24px, 2.5vw, 34px); line-height: 1.4; letter-spacing: -0.005em; color: #FFFFFF; text-align: left; }
.ap-sign { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.ap-sign-name { margin: 0; font-family: var(--serif); font-size: 24px; color: #FFFFFF; }
.ap-sign-role { margin: 6px 0 0; font-size: 12.5px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: #FFFFFF; }
.ap-sign-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; color: #FFFFFF; }
.ap-sign-link:hover { color: #FFFFFF; text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 6px; }
@media (max-width: 959px) { .ap-js .ap-panels { min-height: 300px; } .ap-tab { min-height: 56px; padding: 14px 0; } .ap-tab-title { font-size: 20px; } }

/* Footer: logo with the firm motto set large, contact on the right, site links, back to top, legal line; all text white */
.site-footer.ft { background: var(--navy-800); color: #FFFFFF; padding: clamp(56px, 7vw, 88px) 0 28px; border-top: 0; }
.ft a, .ft a:hover { color: #FFFFFF; }
.ft a:hover { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.ft-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 40px 64px; }
.ft .ft-logo { display: inline-flex; }
.ft .ft-logo img { display: block; height: 40px; width: auto; }
.ft .ft-slogan { margin: 28px 0 0; max-width: none; font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.08; letter-spacing: -0.015em; color: #FFFFFF; }
.ft-contact { display: flex; flex-direction: column; align-items: flex-start; }
@media (min-width: 768px) { .ft-contact { align-items: flex-end; text-align: right; } }
.ft .ft-contact-h { margin: 0 0 4px; font-family: var(--sans); font-size: 18px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #FFFFFF; }
.ft .ft-contact a { display: inline-flex; align-items: center; min-height: 40px; font-size: 16px; line-height: 1.5; }
.ft-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; margin-top: clamp(48px, 6vw, 80px); }
.ft-links { display: flex; flex-wrap: wrap; gap: 0 32px; }
.ft .ft-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
.ft .ft-totop { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 15px; font-weight: 500; }
.ft-totop-ico { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid rgba(255, 255, 255, 0.6); transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; }
.ft .ft-totop:hover { text-decoration: none; }
.ft .ft-totop:hover .ft-totop-ico { background: #FFFFFF; color: var(--navy-800); border-color: #FFFFFF; }
.ft-base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 32px; margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.ft .ft-copy { margin: 0; font-size: 13.5px; color: #FFFFFF; }
.ft-legal { display: flex; gap: 24px; }
.ft .ft-legal a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13.5px; }
.ft a:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.ft li + li { margin-top: 0; }   /* cancels the v2 footer list spacing */
/* Approach fine-tuning: the outline numeral sits clear of the panel text; tighter stage height */
.ap-js .ap-big { font-size: clamp(140px, 19vw, 270px); right: 0; }
.ap-panel-body { max-width: 520px; }
.ap-js .ap-panels { min-height: clamp(320px, 30vw, 400px); }
.ap-sign-link { gap: 8px; }
html.rv .rv-done > .rv-in, html.rv .rv-done > .rv-line { transition: none; }   /* finished: masks and drawn lines settle at once */
@media (max-width: 599px) { .ap-js .ap-big { display: none; } }   /* phones: the outline numeral would sit behind the text */

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.1 — Private Equity page (Curantis Capital Management); one drawn underline for every text link;
   calmer Selected Credentials reveal; shorter Our Commitment to You; compact footer with LinkedIn
   ═══════════════════════════════════════════════════════════════════ */

/* Text links: one underline everywhere, as on "More about Eventus Group": a 1 px orange line drawn from the left on hover and
   keyboard focus. Links whose box is taller than their text (footer, contact details) carry it on an inner .link-line.
   Links inside running sentences (privacy text, consent notes) keep their permanent underline so they stay recognisable. */
.link-line, .cred-more, .cr-clear, .hc-deal-link span { background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; padding-bottom: 3px; transition: background-size 280ms ease, color 200ms ease; }
a:hover > .link-line, a:focus-visible > .link-line, .cred-more:hover, .cred-more:focus-visible, .cr-clear:hover, .cr-clear:focus-visible, .hc-deal-link:hover span, .hc-deal-link:focus-visible span { background-size: 100% 1px; }
.cred-more { border-bottom: 0; }
.cred-more:hover { color: var(--ink); }
.cr-clear { text-decoration: none; padding-bottom: 3px; min-height: 0; }
.cr-clear:hover { color: var(--ink); }
.office a:hover, .contact-person a:hover, .breadcrumb a:hover { color: var(--ink); }
.ft a:hover { text-decoration: none; }
.ap-sign-link, .ap-sign-link:hover { display: inline-block; min-height: 0; color: #FFFFFF; text-decoration: none; }
@media (min-width: 960px) {
  .nav-link, .nav-link:hover, .nav-link[data-active] { border-bottom: 0; }
  .nav-link { padding: 10px 0 11px; background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; transition: background-size 280ms ease, color 200ms ease; }
  .nav-link:hover, .nav-link:focus-visible, .nav-link[data-active] { background-size: 100% 1px; }
}
/* Seven menu items: labels never break; slightly tighter between 960 and 1099 px so the row still fits beside the logo */
.nav-link, .nav-cta { white-space: nowrap; }
@media (min-width: 960px) and (max-width: 1099px) {
  .primary-nav > ul { gap: 20px; }
  .nav-link { font-size: 12.5px; letter-spacing: 0.08em; }
  .nav-cta { padding: 10px 18px; }
}

/* Selected Credentials: the cards in sight glide in from the right, 160 ms apart, over 56 px with a soft ease
   (the script sets each card's delay; hidden only while <html class="rv">) */
html.rv .car-rv.is-in:not(.rv-done) .cred-card { transition: opacity 0.55s ease var(--cd, 0ms), transform 0.7s cubic-bezier(0.25, 0.6, 0.3, 1) var(--cd, 0ms); }   /* timing only on the way in: hiding is instant */
html.rv .car-rv:not(.is-in) .cred-card { opacity: 0; transform: translateY(14px); }   /* 3.12: a quiet fade-up — no sideways slide */

/* Our Commitment to You: about a third shorter — tighter padding, heading and lede side by side on desktop,
   lower stage, smaller outline numeral and portrait */
.ap { padding: clamp(64px, 7vw, 104px) 0 clamp(56px, 6.5vw, 96px); }
.ap-eyebrow { margin-bottom: 20px; }
.ap-title { font-size: clamp(40px, 4.4vw, 60px); }
.ap-lede { margin-top: 20px; font-size: 18px; }
@media (min-width: 1024px) {
  .ap-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr); column-gap: clamp(48px, 6vw, 96px); align-items: end; }
  .ap-head .ap-eyebrow { grid-column: 1 / -1; }
  .ap-lede { margin: 0; }
}
.ap-stage { margin-top: clamp(40px, 4.5vw, 64px); }
.ap-tab { min-height: 56px; padding: 14px 0; }
.ap-tab-title { font-size: 21px; }
.ap-js .ap-panels { min-height: clamp(250px, 21vw, 290px); }
.ap-js .ap-big { font-size: clamp(120px, 14vw, 200px); }
.ap-step { margin-bottom: 14px; }
.ap-panel-title { font-size: clamp(30px, 3vw, 44px); }
.ap-panel-body > p:last-child { margin-top: 16px; font-size: 17px; line-height: 1.65; }
.ap-controls { margin-top: 20px; }
.ap-btn { width: 44px; height: 44px; }
.ap-divider { margin: clamp(48px, 5vw, 72px) 0 clamp(40px, 4.5vw, 60px); }
@media (min-width: 900px) { .ap-note { grid-template-columns: minmax(200px, 250px) minmax(0, 1fr); gap: clamp(40px, 5vw, 72px); } }
.ap-portrait { max-width: 250px; }
.ap-note-label { margin-bottom: 18px; }
.ap-quote p { font-size: clamp(22px, 2vw, 28px); line-height: 1.42; }
.ap-sign { margin-top: 24px; padding-top: 18px; }
.ap-sign-name { font-size: 22px; }
@media (max-width: 959px) { .ap-js .ap-panels { min-height: 0; } }

/* Footer: one compact band — logo and motto on one line (motto sized to the wordmark, behind a hairline), contact
   details on the right; site links and back to top; legal line with the LinkedIn logo, as on rothschildandco.com */
.site-footer.ft { padding: clamp(36px, 4vw, 52px) 0 6px; }
.ft-top { align-items: center; gap: 20px 48px; }
.ft-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.ft .ft-logo img { height: 40px; }
.ft .ft-slogan { margin: 0; padding: 7px 0 7px 24px; border-left: 1px solid rgba(255, 255, 255, 0.28); font-family: var(--serif); font-weight: 300; font-size: 21px; line-height: 1.2; letter-spacing: 0; color: #FFFFFF; }
@media (max-width: 559px) { .ft .ft-slogan { flex-basis: 100%; padding: 0; border-left: 0; font-size: 19px; } }
.ft-contact { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0 28px; }
@media (min-width: 768px) { .ft-contact { align-items: center; justify-content: flex-end; text-align: left; } }
.ft .ft-contact-h { margin: 0; font-size: 16px; font-weight: 600; }
.ft .ft-contact-h a, .ft .ft-contact a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; }
.ft-row { margin-top: clamp(20px, 2.4vw, 28px); padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.ft-links { gap: 0 28px; }
.ft-base { margin-top: 6px; padding-top: 6px; }
.ft-base-end { display: flex; align-items: center; gap: 4px 20px; }
.ft .ft-social { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -11px; color: #FFFFFF; opacity: 0.88; transition: opacity 200ms ease; }
.ft .ft-social:hover { opacity: 1; }
.ft .ft-social svg { display: block; }

/* ── Private Equity: Curantis Capital Management ── */
/* Hero: navy like Our Approach; title and lede left, the fund's fact panel right (white, as on the owner's slide) */
.pe-hero { position: relative; overflow: hidden; background: var(--navy-800); color: #FFFFFF; padding: calc(var(--header-h) + clamp(48px, 6vw, 88px)) 0 clamp(56px, 7vw, 96px); }
.pe-hero-grid { display: grid; gap: 40px; }
@media (min-width: 1024px) { .pe-hero-grid { grid-template-columns: minmax(0, 1.25fr) minmax(380px, 0.75fr); column-gap: clamp(48px, 6vw, 96px); align-items: center; } }
.pe-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(38px, 4.3vw, 62px); line-height: 1.05; letter-spacing: -0.02em; color: #FFFFFF; text-wrap: balance; }
.pe-title .rv-mask { display: block; }
.pe-title em { font-style: italic; color: #FFFFFF; }
.pe-lede { margin: 28px 0 0; max-width: 34em; font-size: 18px; line-height: 1.65; color: #FFFFFF; }
@media (min-width: 768px) { .pe-lede { font-size: 19px; } }
.pe-fund { background: #FFFFFF; color: var(--text); padding: 26px 24px 20px; }
@media (min-width: 768px) { .pe-fund { padding: 32px 32px 24px; } }
.pe-fund-name { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 25px; line-height: 1.2; color: var(--ink); }
.pe-fund-tag { margin: 8px 0 0; font-family: var(--serif); font-style: italic; font-size: 17px; line-height: 1.4; color: var(--ink); }
.pe-fund-facts { margin-top: 20px; border-top: 1px solid var(--orange); }
.pe-fund-facts > div { padding: 14px 0 13px; border-bottom: 1px solid var(--line); }
.pe-fund-facts dt { font-size: 12.5px; font-weight: 600; letter-spacing: 0.1em; line-height: 1.4; text-transform: uppercase; color: var(--ink); }
.pe-fund-facts dd { margin: 4px 0 0; font-size: 16px; line-height: 1.5; color: var(--text); }
.pe-fund-facts dd.pe-fund-figure { margin-top: 2px; font-family: var(--serif); font-size: 28px; line-height: 1.15; color: var(--ink); }
.pe-fund .link-arrow { margin-top: 18px; }

/* The Mandate: the partnership statement left, four ruled points right */
.pe-mandate-grid { display: grid; gap: 32px; }
@media (min-width: 1024px) { .pe-mandate-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(48px, 6vw, 96px); align-items: start; } }
.pe-statement { margin: 0; max-width: 22em; font-family: var(--serif); font-weight: 300; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.3; letter-spacing: -0.01em; color: var(--ink); text-wrap: pretty; }
.pe-statement-rule { display: block; width: 56px; height: 1px; margin: 6px 0 24px; background: var(--orange); }
.pe-points { display: grid; gap: 0 40px; }
@media (min-width: 640px) { .pe-points { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pe-point { border-top: 1px solid var(--line); padding: 20px 0 28px; font-size: 17px; line-height: 1.6; color: var(--ink); }

/* Eventus Group Role: five stages on a line that draws from the left (desktop); a vertical line on smaller screens */
.pe-role { position: relative; overflow: hidden; background: var(--navy-800); color: #FFFFFF; padding: clamp(64px, 7vw, 104px) 0; }
.pe-role-head { display: grid; gap: 20px; }
@media (min-width: 1024px) { .pe-role-head { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); column-gap: clamp(48px, 6vw, 96px); align-items: end; } }
.pe-role-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(36px, 4.2vw, 60px); line-height: 1.05; letter-spacing: -0.02em; color: #FFFFFF; }
.pe-role-lede { margin: 0; max-width: 34em; font-size: 18px; line-height: 1.6; color: #FFFFFF; }
.pe-track { display: none; position: relative; height: 1px; margin-top: clamp(48px, 5vw, 72px); background: rgba(255, 255, 255, 0.16); }
.pe-track > span { position: absolute; inset: 0; background: var(--orange); transform-origin: left center; }
html.rv .pe-track > span:not(.rv-done) { transition: transform 1.4s cubic-bezier(0.65, 0, 0.35, 1) var(--rv-d, 0ms); }
.pe-steps { display: grid; margin: 40px 0 0; padding: 0; list-style: none; border-left: 1px solid rgba(255, 255, 255, 0.16); }
.pe-step { position: relative; padding: 4px 0 32px 28px; }
.pe-step:last-child { padding-bottom: 4px; }
.pe-step::before { content: ""; position: absolute; left: -4px; top: 14px; width: 7px; height: 7px; background: var(--orange); }
.pe-step-num { display: block; font-family: var(--serif); font-weight: 300; font-size: 44px; line-height: 1; letter-spacing: 0.01em; color: transparent; -webkit-text-stroke: 1px #F2723F; }
.pe-step-title { margin: 14px 0 0; font-family: var(--serif); font-weight: 400; font-size: 22px; line-height: 1.25; color: #FFFFFF; }
.pe-step-text { margin: 10px 0 0; max-width: 46ch; font-size: 16px; line-height: 1.6; color: #FFFFFF; }
@media (min-width: 640px) and (max-width: 1099px) {
  .pe-step { display: grid; grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); grid-template-rows: auto auto; column-gap: 32px; }
  .pe-step-num { grid-column: 1; grid-row: 1; }
  .pe-step-title { grid-column: 1; grid-row: 2; }
  .pe-step-text { grid-column: 2; grid-row: 2; align-self: start; margin: 14px 0 0; max-width: none; }
}
@media (min-width: 1100px) {
  .pe-track { display: block; }
  .pe-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 32px; margin-top: 0; border-left: 0; }
  .pe-step, .pe-step:last-child { padding: 36px 0 0; }
  .pe-step::before { left: 0; top: -4px; }
  @supports (grid-template-rows: subgrid) {
    .pe-steps { grid-template-rows: auto auto auto; }
    .pe-step { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
  }
}
@media (forced-colors: active) { .pe-step-num { color: CanvasText; -webkit-text-stroke: 0; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.2 — one way of appearing on every page (About hero included); The Course of a Mandate as a carousel after
   rothschildandco.com; Curantis logo; scroll drift on photographs; drawn rules on ruled lists; map pins; credential filters
   ═══════════════════════════════════════════════════════════════════ */

/* About hero: eyebrow, title and text appear as on Home and Private Equity; the divider beside the text is drawn
   (down on desktop, from the left on phones). The photograph drifts with the scroll like the Home hero. */
.hero-inner-aside { position: relative; }
html.rv .hero-inner-aside[data-rv="edge"] { border-color: transparent; }
html.rv .hero-inner-aside[data-rv="edge"]::before { content: ""; position: absolute; left: 0; top: -1px; width: 100%; height: 1px; background: rgba(244, 241, 234, 0.4); opacity: 0; transition: opacity 0.9s ease var(--rv-d, 0ms); }
@media (min-width: 900px) { html.rv .hero-inner-aside[data-rv="edge"]::before { left: -1px; top: 0; width: 1px; height: 100%; } }
html.rv .hero-inner-aside[data-rv="edge"].is-in::before { opacity: 1; }
[data-parallax] { will-change: transform; }
@media (prefers-reduced-motion: no-preference) { [data-parallax]:not([data-parallax="hero"]) { transform: scale(1.12); } }   /* the drift's starting zoom, so nothing jumps when a picture scrolls in */

/* Picture cards (Why Eventus, Our Group): the picture is wiped open on arrival and zooms slowly under the pointer, as on Home */
.why-card .media, .co-card .media { overflow: hidden; }
.why-card .media img, .co-card .media img { transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1); }
.why-card:hover .media img, .co-card:hover .media img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .why-card:hover .media img, .co-card:hover .media img { transform: none; } }

/* Market Coverage: the map is wiped open, then the office pins drop in one after another */
html.rv .lmap-wrap:not(.is-in) .ev-pin { opacity: 0; }
html.rv .lmap-wrap.is-in .ev-pin { animation: pinDrop 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.9s both; }
html.rv .lmap-wrap.is-in .leaflet-marker-icon:nth-child(2) .ev-pin { animation-delay: 1.02s; }
html.rv .lmap-wrap.is-in .leaflet-marker-icon:nth-child(3) .ev-pin { animation-delay: 1.14s; }
html.rv .lmap-wrap.is-in .leaflet-marker-icon:nth-child(4) .ev-pin { animation-delay: 1.26s; }
html.rv .lmap-wrap.is-in .leaflet-marker-icon:nth-child(5) .ev-pin { animation-delay: 1.38s; }
@keyframes pinDrop { from { opacity: 0; transform: translateY(-16px) rotate(-45deg); } to { opacity: 1; transform: rotate(-45deg); } }

/* Private Equity: the Curantis logo heads the fund panel, centred with the fund line as on the owner's slide */
.pe-fund-logo { margin: 0; text-align: center; }
.pe-fund-logo img { display: inline-block; width: 230px; max-width: 100%; height: auto; }
.pe-fund-logo + .pe-fund-tag { margin-top: 10px; text-align: center; }
.pe-statement-rule { margin: 6px 0 24px; }

/* Credentials: after a filter change the matching cards fade up again (the script staggers them) */
.cr-card.cr-in { animation: crIn 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) var(--cr-d, 0ms) both; }
@keyframes crIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* Services — The Course of a Mandate: navy band; large picture, current stage, small picture of the next stage.
   Stage changes use the rothschildandco.com careers-carousel timing: pictures slide 600 ms, text fades 300 ms out then 300 ms in. */
.mc { position: relative; overflow: hidden; background: var(--navy-800); color: #FFFFFF; padding: clamp(64px, 7vw, 104px) 0; }
.mc-head { display: grid; gap: 16px; }
@media (min-width: 1024px) { .mc-head { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); column-gap: clamp(48px, 6vw, 96px); align-items: end; } }
.mc-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(34px, 3.8vw, 54px); line-height: 1.06; letter-spacing: -0.02em; color: #FFFFFF; }
.mc-intro { margin: 0; max-width: 34em; font-size: 18px; line-height: 1.6; color: #FFFFFF; }
.mc-stage { margin-top: clamp(40px, 5vw, 72px); }
/* Without JavaScript: the five stages one after another */
.mc-main, .mc-small, .mc-tag, .mc-controls { display: none; }
.mc-slides { display: grid; gap: 28px; margin: 0; padding: 0; list-style: none; }
.mc-slide { border-top: 1px solid rgba(255, 255, 255, 0.16); padding-top: 20px; }
.mc-slide-num { display: block; margin-bottom: 12px; font-family: var(--sans); font-size: 13px; font-weight: 500; letter-spacing: 0.14em; color: #F2723F; }
.mc-slide-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 3.2vw, 46px); line-height: 1.08; letter-spacing: -0.015em; color: #FFFFFF; text-wrap: balance; }
.mc-slide-text { margin: 20px 0 0; max-width: 32em; font-size: 18px; line-height: 1.65; color: #FFFFFF; }
/* With JavaScript: picture | stage | next picture */
.mc-js { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.mc-js .mc-main { display: block; position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: #0E1522; touch-action: pan-y; }
.mc-js .mc-main img, .mc-js .mc-small img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; visibility: hidden; }
.mc-js img.is-active, .mc-js img.is-exiting { visibility: visible; }
.mc-content { display: flex; flex-direction: column; min-width: 0; }
.mc-js .mc-tag { display: flex; align-items: center; gap: 18px; margin: 0; font-size: 13px; font-weight: 500; letter-spacing: 0.14em; font-variant-numeric: tabular-nums; color: #FFFFFF; }
.mc-count > span { color: #FFFFFF; }
.mc-bar { position: relative; display: block; width: 96px; height: 1px; background: rgba(255, 255, 255, 0.24); }
.mc-bar > span { position: absolute; inset: 0; background: var(--orange); transform-origin: left center; transform: scaleX(0.2); transition: transform 0.6s cubic-bezier(0.33, 1, 0.68, 1); }
.mc-js .mc-slides { display: grid; gap: 0; margin-top: 24px; }
.mc-js .mc-slide { grid-area: 1 / 1; border: 0; padding: 0; visibility: hidden; }
.mc-js .mc-slide.is-active, .mc-js .mc-slide.is-exiting { visibility: visible; }
.mc-js .mc-slide-num { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }   /* the counter shows it */
.mc-js .mc-controls { display: flex; gap: 12px; margin-top: 28px; }
.mc .ap-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
@media (min-width: 768px) {
  .mc-js { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: 40px; align-items: stretch; }
  .mc-js .mc-main { aspect-ratio: 3 / 4; }
  .mc-js .mc-content { padding-top: 4px; }
  .mc-js .mc-slides { margin-top: clamp(28px, 3vw, 44px); }
  .mc-js .mc-controls { margin-top: 40px; }
}
@media (min-width: 1100px) {
  .mc-js { grid-template-columns: minmax(0, 10fr) minmax(0, 12fr) minmax(0, 7fr); column-gap: clamp(40px, 5vw, 72px); }
  .mc-js .mc-small { display: block; position: relative; overflow: hidden; align-self: end; aspect-ratio: 4 / 5; background: #0E1522; cursor: pointer; }
}
.mc-js[data-dir="next"] img.is-exiting { animation: mcOutLeft 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js[data-dir="next"] img.is-entering { animation: mcInRight 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js[data-dir="prev"] img.is-exiting { animation: mcOutRight 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js[data-dir="prev"] img.is-entering { animation: mcInLeft 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js .mc-slide.is-exiting { animation: mcFadeDown 300ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js .mc-slide.is-entering { animation: mcFadeUp 300ms cubic-bezier(0.33, 1, 0.68, 1) 300ms both; }
@keyframes mcOutLeft { from { transform: none; } to { transform: translateX(-100%); } }
@keyframes mcInRight { from { transform: translateX(100%); } to { transform: none; } }
@keyframes mcOutRight { from { transform: none; } to { transform: translateX(100%); } }
@keyframes mcInLeft { from { transform: translateX(-100%); } to { transform: none; } }
@keyframes mcFadeDown { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(20px); } }
@keyframes mcFadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.3 — About: hero without the eyebrow (its white line beside the text as in 3.2); Why Eventus appears left to
   right; How We Work redesigned as numbered principles beside the heading, with the owner's picture
   ═══════════════════════════════════════════════════════════════════ */

/* Hiding is instant everywhere: the script marks most elements after the page has been laid out, which used to start a short
   fade-out on whatever was already on screen before it faded in. Only the way in is animated. */
html.rv [data-rv]:not(.is-in) { transition: none; }

/* Why Eventus: the cards fade in left to right (the script sets each card's start); the heading, text and link
   follow with a short rise. No wipes or zooms (3.12). Hidden only while <html class="rv">; hiding is instant. */
html.rv .why-rv .why-card:not(.is-in) .media { opacity: 0; }
html.rv .why-rv .why-card:not(.is-in) > :not(.media) { opacity: 0; transform: translateY(12px); }
html.rv .why-rv .why-card.is-in:not(.rv-done) .media { transition: opacity 0.7s ease var(--wd, 0ms); }
html.rv .why-rv .why-card.is-in:not(.rv-done) > :not(.media) { transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.25, 0.6, 0.3, 1); transition-delay: calc(var(--wd, 0ms) + 200ms); }
html.rv .why-rv .why-card.is-in:not(.rv-done) > :nth-child(3) { transition-delay: calc(var(--wd, 0ms) + 280ms); }
html.rv .why-rv .why-card.is-in:not(.rv-done) > :nth-child(4) { transition-delay: calc(var(--wd, 0ms) + 360ms); }

/* How We Work: a pale band; heading and the two links on the left (held in view on desktop), the six principles as a
   numbered two-column grid with hairline rules on the right (after the numbered principles of the large advisory firms) */
.hw { background: #F3F5F7; padding: clamp(56px, 7vw, 104px) 0; }
.hw-grid { display: grid; gap: 28px; }
@media (min-width: 1024px) {
  .hw-grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(48px, 6vw, 96px); align-items: start; }
  .hw-intro { position: sticky; top: calc(var(--header-h) + 32px); }
}
.hw-intro .h2 { margin: 0; }
.hw-links { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 24px; }
@media (min-width: 1024px) { .hw-links { margin-top: 32px; } }
.hw-list { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--navy-700); }
@media (min-width: 640px) { .hw-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hw-item { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; align-items: baseline; padding: 22px 0 26px; border-bottom: 1px solid var(--line-mid); }
@media (min-width: 640px) {
  .hw-item { padding: 26px 0 32px; }
  .hw-item:nth-child(odd) { padding-right: 32px; border-right: 1px solid var(--line-mid); }
  .hw-item:nth-child(even) { padding-left: 32px; }
}
.hw-num { font-family: var(--serif); font-weight: 300; font-size: 28px; line-height: 1; letter-spacing: 0.01em; color: var(--orange-ink); }
.hw-item p { margin: 0; max-width: none; font-family: var(--serif); font-weight: 400; font-size: 20px; line-height: 1.38; color: var(--ink); text-wrap: pretty; }
@media (min-width: 1024px) { .hw-item p { font-size: 22px; } }
/* How We Work: the same headline as Why Eventus and Group Network, on white, with the same space above and below as the
   neighbouring sections; the owner's "ABOUT US 1" picture (steel panels) fills the left column to the full height of the
   list (cover crop, never stretched), the two links beneath it */
.hw { background: none; padding: var(--section) 0; }
main > .hw + .section { padding-top: 0; }
.hw-grid { display: grid; gap: 28px; }
@media (min-width: 1024px) { .hw-grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(48px, 6vw, 96px); align-items: stretch; } }
.hw-side { display: flex; flex-direction: column; min-width: 0; }
.hw-media { position: relative; overflow: hidden; margin: 0; aspect-ratio: 4 / 3; background: #E4E7EC; }
.hw-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; }
@media (min-width: 1024px) { .hw-media { flex: 1 1 auto; aspect-ratio: auto; min-height: 300px; } }
.hw-links { margin-top: 24px; }
.hw-list { border-top: 0; }
.hw-item:first-child { padding-top: 0; }
@media (min-width: 640px) { .hw-item:nth-child(2) { padding-top: 0; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.7 — Services: the four service categories as typographic two-column sections on white (picture panels removed)
   ═══════════════════════════════════════════════════════════════════ */
/* Each category: a navy rule, then number, heading, introduction and link (35 %) beside the services (65 %), 56 px apart;
   tops aligned, heights follow the content. Stacked below 900 px. */
.svc-cat { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 28px; border-top: 1px solid var(--navy-700); }
.svc-cat + .svc-cat { margin-top: 52px; }
@media (min-width: 900px) {
  .svc-cat { grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); column-gap: 56px; align-items: start; padding-top: 32px; }
  .svc-cat + .svc-cat { margin-top: 76px; }
}
.svc-num { margin: 0; font-size: 12.5px; font-weight: 500; line-height: 1; letter-spacing: 0.12em; color: var(--orange-ink); }
.svc-title { margin: 14px 0 0; font-family: var(--serif); font-weight: 400; font-size: 28px; line-height: 1.2; letter-spacing: -0.005em; color: var(--ink); text-wrap: balance; }
@media (min-width: 768px) { .svc-title { font-size: 32px; } }
@media (min-width: 1100px) { .svc-title { font-size: 34px; } }
.svc-lede { margin: 16px 0 0; max-width: 34em; font-size: 17px; line-height: 1.6; color: var(--text); }
.svc-link { margin-top: 22px; }
/* Service rows: name above description on phones (8 px apart, about 24 px between entries); from 640 px name 36 % /
   description 64 % with a 24 px gap and 22 px vertical padding; thin rules between rows */
.svc-list { margin: 0; padding: 0; list-style: none; }
.svc-list li { padding: 12px 0; }
.svc-list li:first-child { padding-top: 0; }
.svc-list li:last-child { padding-bottom: 0; }
.svc-list li + li { border-top: 1px solid var(--line); }
.svc-list h3 { margin: 0; font-family: var(--sans); font-size: 17px; font-weight: 600; line-height: 1.45; color: var(--ink); }
.svc-list p { margin: 8px 0 0; max-width: none; font-size: 16px; line-height: 1.6; color: var(--text); }
@media (min-width: 640px) {
  .svc-list li { display: grid; grid-template-columns: minmax(0, 36fr) minmax(0, 64fr); column-gap: 24px; align-items: baseline; padding: 22px 0; }
  .svc-list p { margin: 0; font-size: 16.5px; }
}
@media (min-width: 1024px) { .svc-list h3 { font-size: 18px; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.8 — Services: each category opens with its picture (the owner's pictures 1–4) as a wide band
   ═══════════════════════════════════════════════════════════════════ */
/* The band spans the content width above the two columns and takes the place of the navy rule; no text on it, so the
   typography below is unchanged. Wiped open from the left on arrival, then drifts gently with the scroll (data-parallax).
   120 px tall on phones, up to 200 px on desktop; cover crop, never stretched. */
.svc-cat { border-top: 0; padding-top: 0; }
.svc-band { grid-column: 1 / -1; position: relative; overflow: hidden; height: clamp(120px, 14vw, 200px); background: #0E1522; }
.svc-band img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
@media (min-width: 900px) { .svc-cat { row-gap: 36px; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.9 — Services: the four service categories as a scroll-driven split screen
   ═══════════════════════════════════════════════════════════════════ */
/* After the sticky chapter column on rothschildandco.com, the pinned "one discipline in focus" sequence on award-winning
   advisory sites and Lazard's persistent index. From 1024 px the categories scroll in the left column while a sticky panel
   on the right holds the owner's pictures 1–4 (whole-form 3:2 crops discipline-1..4.jpg) and an index of the four
   categories. When a category's top passes 45 % of the screen, its picture is wiped open from the left over the previous
   one and settles from a slight zoom; scrolling back retracts it; the index marks the category. Below 1024 px (and
   without JavaScript) every category shows its own picture: beside its text and held in view on tablets, above it on
   phones. Everything is scoped to .svc so it outranks the VERSION 3.7 / 3.8 rules for the same classes. */

/* Phones (base): one column; each category = navy rule, picture 3:2, number, heading, introduction, link, services */
.svc .svc-grid { display: block; }
.svc .svc-stage { display: none; }
.svc .svc-flow { min-width: 0; }
.svc .svc-cat { position: relative; display: block; margin: 0; padding: 24px 0 64px; border-top: 1px solid var(--navy-700); }
.svc .svc-cat:last-child { padding-bottom: 0; }
.svc .svc-media { position: relative; overflow: hidden; margin: 0 0 28px; aspect-ratio: 3 / 2; background: #0E1522; }
.svc .svc-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.svc .svc-num { margin: 0; font-size: 13px; font-weight: 500; line-height: 1; letter-spacing: 0.14em; font-variant-numeric: tabular-nums; color: var(--orange-ink); }
.svc .svc-title { margin: 16px 0 0; max-width: 16em; font-family: var(--serif); font-weight: 400; font-size: 30px; line-height: 1.12; letter-spacing: -0.01em; color: var(--ink); text-wrap: balance; }
.svc .svc-lede { margin: 16px 0 0; max-width: 34em; font-size: 17px; line-height: 1.6; color: var(--text); }
.svc .svc-link { margin-top: 20px; }
.svc .svc-list { margin: 32px 0 0; padding: 0; list-style: none; }
.svc .svc-list > li { display: block; padding: 18px 0 20px; border-top: 1px solid var(--line); }
.svc .svc-list > li:last-child { padding-bottom: 0; }
.svc .svc-list h3 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 20px; line-height: 1.3; letter-spacing: 0; color: var(--ink); text-wrap: balance; }
.svc .svc-list p { margin: 6px 0 0; max-width: 60ch; font-size: 16px; line-height: 1.6; color: var(--text); }

/* Tablets (768 px and up; also desktop without JavaScript): picture 4:5 (5/12), held in view while its own category
   scrolls past; number, heading, introduction, link and services beside it (7/12) */
@media (min-width: 768px) {
  .svc .svc-cat { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0 32px; align-items: start; padding: 32px 0 88px; }
  .svc .svc-cat:last-child { padding-bottom: 0; }
  .svc .svc-media { grid-column: 1; grid-row: 1 / span 2; position: sticky; top: calc(var(--header-h) + 24px); margin: 0; aspect-ratio: 4 / 5; }
  .svc .svc-intro { grid-column: 2; grid-row: 1; min-width: 0; }
  .svc .svc-list { grid-column: 2; grid-row: 2; min-width: 0; margin-top: 32px; }
  .svc .svc-title { font-weight: 300; font-size: 34px; line-height: 1.1; letter-spacing: -0.015em; }
  .svc .svc-list h3 { font-size: 21px; }
  .svc .svc-list p { font-size: 16.5px; }
}

/* Desktop (1024 px and up, script running): text 6/11 | sticky panel 5/11 */
@media (min-width: 1024px) {
  .svc.svc-js .svc-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); column-gap: clamp(56px, 6.5vw, 104px); align-items: start; }
  .svc.svc-js .svc-flow { grid-column: 1; grid-row: 1; }
  .svc.svc-js .svc-stage { display: block; grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--header-h) + 24px); }
  .svc.svc-js .svc-cat { display: block; padding: 28px 0 clamp(96px, 10vw, 144px); }
  .svc.svc-js .svc-cat:last-child { padding-bottom: 0; }
  .svc.svc-js .svc-media { display: none; }
  .svc .svc-title { margin-top: 20px; font-size: clamp(34px, 3.05vw, 44px); line-height: 1.08; }
  .svc .svc-lede { margin-top: 20px; font-size: 18px; }
  .svc .svc-link { margin-top: 24px; }
  .svc .svc-list { margin-top: 40px; }
  .svc .svc-list > li { padding: 20px 0 22px; }
  .svc .svc-list > li:last-child { padding-bottom: 0; }
  .svc .svc-list h3 { font-size: 22px; }
}

/* The panel: one fixed 3:2 frame (about 520 x 350 at 1440 px, 2.3x picture density), the index beneath it */
.svc-frame { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: #0E1522; }
.svc-drift { position: absolute; inset: 0; transform: scale(1.08); will-change: transform; }   /* the script moves it ±3 % with the scroll */
.svc-pic { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 100% 0 0); transform: scale(1.06); transition: clip-path 1.1s cubic-bezier(0.77, 0, 0.18, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1); }
.svc-pic:first-child, .svc-pic.is-shown { clip-path: inset(0 0 0 0); transform: none; }   /* later pictures lie on top of earlier ones */
.svc-now .svc-pic, .svc-now .svc-index-line { transition: none; }                          /* anchor arrival, resizing, before the panel has arrived: no wipe */
.svc-index { margin-top: 28px; }
.svc-index ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.svc-index li { border-bottom: 1px solid var(--line); }
.svc-index a { display: flex; align-items: center; gap: 14px; min-height: 48px; padding: 8px 0; font-size: 15px; font-weight: 500; line-height: 1.35; color: var(--text); transition: color 0.3s ease; }
.svc-index a:hover, .svc-index a.is-active { color: var(--ink); }
.svc-index-line { flex: none; width: 40px; height: 1px; background: currentColor; transform: scaleX(0.3); transform-origin: left center; transition: transform 0.6s cubic-bezier(0.77, 0, 0.18, 1), background-color 0.3s ease; }
.svc-index a.is-active .svc-index-line { transform: none; background: var(--orange); }
.svc-index-num { flex: none; min-width: 24px; font-size: 13px; letter-spacing: 0.12em; font-variant-numeric: tabular-nums; }
.svc-index a.is-active .svc-index-num { color: var(--orange-ink); }
@media (min-width: 1024px) and (max-width: 1199px) { .svc-index a { font-size: 14px; } }
/* Short desktop windows: the picture alone keeps the panel within the screen */
@media (min-width: 1024px) and (max-height: 640px) { .svc-index { display: none; } }
@media (forced-colors: active) { .svc-index a.is-active .link-line { text-decoration: underline; } }
@media (prefers-reduced-motion: reduce) { .svc-drift, .svc-pic { transform: none; } }
@media print { .svc .svc-stage { display: none; } .svc .svc-media { display: none; } .svc .svc-grid { display: block; } .svc .svc-cat { display: block; padding-bottom: 32px; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.10 — Services: the owner's M&A Advisory graphic (assets/js/ma-graphic.js) in place of the M&A picture
   ═══════════════════════════════════════════════════════════════════ */
/* The graphic fills the first picture slot of the desktop panel and the M&A picture on tablets and phones. Its scene is a
   1200 x 800 stage scaled to the slot (the script sets the scale); the chapter title and steps are set in page pixels so
   they stay legible. Until the script starts (or without it) the M&A picture shows. */
.svc-anim { position: absolute; inset: 0; overflow: hidden; background: #060a13; }
.svc-anim-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ma-on .svc-anim-poster { display: none; }
.ma-stage { position: absolute; left: 0; top: 0; width: 1200px; height: 800px; transform-origin: 0 0; pointer-events: none; }
.ma-beam { position: absolute; }
.ma-beam-a { left: 140px; top: -250px; width: 1200px; height: 900px; transform: rotate(-28deg); }
.ma-beam-b { left: 280px; top: 270px; width: 1100px; height: 800px; transform: rotate(-35deg); }
.ma-vignette { position: absolute; inset: 0; background: radial-gradient(ellipse 75% 75% at 50% 50%, transparent 55%, #060a13 100%); }
.ma-cam { position: absolute; inset: 0; transform-origin: 600px 430px; }
.ma-svg { position: absolute; inset: 0; overflow: visible; }
.ma-label { position: absolute; width: 280px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ma-label span { width: 1px; height: 18px; background: rgba(214, 228, 245, 0.26); }
.ma-label em { font-family: var(--serif); font-weight: 300; font-style: italic; font-size: 30px; line-height: 1.2; color: #FFFFFF; white-space: nowrap; }
.ma-grain { position: absolute; inset: 0; opacity: 0.12; mix-blend-mode: overlay; }
.ma-chapters, .ma-chapter { position: absolute; inset: 0; pointer-events: none; }
.ma-chapter { visibility: hidden; }
.ma-ch-head { position: absolute; left: 18px; top: 16px; margin: 0; display: flex; align-items: baseline; gap: 10px; max-width: none; }
.ma-ch-n { font-size: 11px; font-weight: 500; letter-spacing: 0.14em; color: #E0662F; }
.ma-ch-t { font-family: var(--serif); font-weight: 300; font-size: 19px; line-height: 1.1; color: #FFFFFF; }
.ma-steps { position: absolute; left: 18px; right: 18px; bottom: 14px; margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.ma-steps li { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ma-bar { position: relative; display: block; height: 1px; background: rgba(214, 228, 245, 0.26); }
.ma-bar > span { position: absolute; left: 0; top: -0.5px; height: 2px; width: 0; background: rgba(214, 228, 245, 0.6); }
.ma-steps li.is-on .ma-bar > span { background: #E0662F; }
.ma-step { display: flex; gap: 6px; align-items: baseline; font-size: 11px; line-height: 1.3; color: rgba(214, 228, 245, 0.6); }
.ma-steps li.is-on .ma-step { color: #FFFFFF; }
.ma-step-n { flex: none; font-size: 10px; letter-spacing: 0.1em; }
.ma-steps li.is-on .ma-step-n { color: #E0662F; }
/* desktop panel: the frame is scaled 108 % and drifts, so keep the titles and steps clear of its edges */
.svc-frame .ma-ch-head { left: 30px; top: 28px; }
.svc-frame .ma-steps { left: 30px; right: 30px; bottom: 26px; }
/* tablets: the M&A graphic keeps its own 3:2 shape (the other pictures are 4:5) */
@media (min-width: 768px) { .svc #ma-advisory .svc-media-anim { aspect-ratio: 3 / 2; } }
@media (max-width: 479px) { .ma-ch-t { font-size: 17px; } .ma-step { font-size: 10px; } .ma-steps { gap: 8px; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.11 — Services: "Our Services" showcase — the Course of a Mandate carousel now holds the three service
   categories, each with the owner's animated graphic (assets/js/services.js) and its explanation; the split-screen
   services section and Analysis and Valuation were removed at the owner's request
   ═══════════════════════════════════════════════════════════════════ */
.mc-services .mc-head { display: block; }
/* below 1024 px: the graphic (3:2, full width) above the explanation */
.mc-services .mc-js { grid-template-columns: minmax(0, 1fr); gap: 28px; }
.mc-services .mc-js .mc-main { aspect-ratio: 3 / 2; }
.mc-js .mc-main .mc-anim { position: absolute; inset: 0; overflow: hidden; background: #060a13; visibility: hidden; }
.mc-js .mc-main .mc-anim.is-active, .mc-js .mc-main .mc-anim.is-exiting { visibility: visible; }
.mc-js[data-dir="next"] .mc-anim.is-exiting { animation: mcOutLeft 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js[data-dir="next"] .mc-anim.is-entering { animation: mcInRight 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js[data-dir="prev"] .mc-anim.is-exiting { animation: mcOutRight 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
.mc-js[data-dir="prev"] .mc-anim.is-entering { animation: mcInLeft 600ms cubic-bezier(0.33, 1, 0.68, 1) both; }
/* 1024 px and up: enlarged graphic (7/11 of the width, about 750 x 500 at 1440 px) | explanation (4/11) */
@media (min-width: 1024px) {
  .mc-services .mc-js { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); column-gap: clamp(40px, 4.5vw, 72px); align-items: start; }
  .mc-services .mc-js .mc-content { padding-top: 2px; }
  .mc-services .mc-js .mc-slides { margin-top: 24px; }
  .mc-services .mc-js .mc-controls { margin-top: 28px; }
}
/* the explanation on navy: category, introduction, the services (the one whose chapter is playing is marked), link */
.mc-services .mc-slide-title { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.1; }
.mc-services .mc-slide-text { margin: 16px 0 0; max-width: none; font-size: 17px; line-height: 1.6; color: #FFFFFF; }
.mc-svcs { margin: 22px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.mc-svc { position: relative; padding: 13px 0 14px 24px; border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.mc-svc::before { content: ""; position: absolute; left: 0; top: 25px; width: 10px; height: 1px; background: rgba(255, 255, 255, 0.35); transition: width 0.4s ease, background-color 0.3s ease; }
.mc-svc.is-playing::before { width: 14px; background: var(--orange); }
.mc-svc h4 { margin: 0; }
.mc-svc-btn { display: block; padding: 0; border: 0; background: none; font-family: var(--serif); font-weight: 400; font-size: 19px; line-height: 1.3; color: #FFFFFF; text-align: left; cursor: pointer; transition: color 0.3s ease; }
.mc-svc.is-playing .mc-svc-btn, .mc-svc-btn:hover { color: #FFFFFF; }
.mc-svc-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.mc-svc p { margin: 4px 0 0; max-width: none; font-size: 15px; line-height: 1.55; color: #A9B3C1; }
.mc-svc-bar { position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; pointer-events: none; }
.mc-svc-bar > span { position: absolute; left: 0; top: 0; height: 1px; width: 0; background: var(--orange); }
.mc-services .mc-slide-link { margin-top: 20px; color: #FFFFFF; }
.mc-services .mc-slide-link:hover { color: #FFFFFF; }
.mc-services .link-arrow:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
@media (max-width: 1023px) { .mc-svc-btn { font-size: 18px; } }
/* the graphics: chapter title and steps sit inside the 1200 x 800 scene at the original positions and sizes (title 54 px,
   steps 23 px, 64 px from the sides, 50 px from the bottom), scaled with the scene; a minimum on-screen size keeps them
   legible on small screens (--k = the scene's scale, set by the script); on phones the steps show as numbered bars only */
.ma-side { position: absolute; font-family: var(--serif); font-weight: 300; font-style: italic; font-size: 30px; line-height: 1.2; color: #FFFFFF; white-space: nowrap; }
.ma-stage .ma-chapters, .ma-stage .ma-chapter { position: absolute; inset: 0; pointer-events: none; }
.ma-stage .ma-chapter { visibility: inherit; }   /* follows its slide; services.js hides the chapters not playing */
.ma-stage .ma-ch-head { position: absolute; left: 64px; top: 52px; margin: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; max-width: 1072px; }
.ma-stage .ma-ch-n { font-size: max(20px, calc(10px / var(--k, 1))); font-weight: 500; letter-spacing: 0.14em; line-height: 1; color: #E0662F; }
.ma-stage .ma-ch-t { font-family: var(--serif); font-weight: 300; font-size: max(54px, calc(15px / var(--k, 1))); line-height: 1; letter-spacing: -0.01em; color: #FFFFFF; }
.ma-stage .ma-steps { position: absolute; left: 64px; right: 64px; bottom: 50px; top: auto; margin: 0; padding: 0; list-style: none; display: grid; gap: 28px; }
.ma-stage .ma-steps li { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ma-stage .ma-bar { position: relative; display: block; height: max(1px, calc(1px / var(--k, 1))); background: rgba(214, 228, 245, 0.26); }
.ma-stage .ma-bar > span { position: absolute; left: 0; top: 0; height: 200%; width: 0; background: rgba(214, 228, 245, 0.6); }
.ma-stage .ma-steps li.is-on .ma-bar > span { background: #E0662F; }
.ma-stage .ma-step { display: flex; gap: 12px; align-items: baseline; font-size: max(23px, calc(10.5px / var(--k, 1))); line-height: 1.25; color: rgba(214, 228, 245, 0.6); }
.ma-stage .ma-steps li.is-on .ma-step { color: #FFFFFF; font-weight: 500; }
.ma-stage .ma-step-n { flex: none; font-size: max(17px, calc(9px / var(--k, 1))); letter-spacing: 0.1em; }
.ma-stage .ma-steps li.is-on .ma-step-n { color: #E0662F; }
.ma-stage[data-small] .ma-step-l { display: none; }
.ma-stage[data-small] .ma-steps { bottom: 40px; }
@media (min-width: 1024px) and (max-width: 1199px) { .mc-services .mc-js { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); } }   /* narrower desktops: more room for the explanation */

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.12 — Helvetica/Arial site-wide, quieter reveals (retuned in place above), new team portraits on
   frameless navy cards without biographies, borderless Selected Credentials cards, Sector Expertise as a
   typographic section on the Services page
   ═══════════════════════════════════════════════════════════════════ */

/* Our team: frameless navy cards — picture flush on top, name and position on navy */
.person { border: 0; background: var(--navy-800); }
.person .body { padding: 20px 22px 24px; }
.person .h4 { color: #FFFFFF; }
.person .meta { color: #FFFFFF; }
.person .body .link-arrow { color: #FFFFFF; }
.person .body .link-arrow:hover, .person .body .link-arrow:focus-visible { color: #FFFFFF; }
.person a:focus-visible { outline: 2px solid #F4F1EA; outline-offset: 3px; }

/* Selected Credentials (home): borderless cards — the logo on a quiet stone panel, the facts beneath it */
.cred-card { border: 0; background: transparent; }
.cred-logo { height: 150px; background: #F4F3F0; border-bottom: 0; }
.cred-body { padding: 18px 6px 0 0; }
.cred-note { border-top: 0; padding-top: 0; }

/* Services: Sector Expertise as a typographic section (replaces the Healthcare & Life Sciences photo band) */
.sx-grid { display: grid; gap: 24px; }
@media (min-width: 900px) { .sx-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); } }
.sx-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(26px, 3vw, 36px); line-height: 1.12; letter-spacing: -0.01em; color: var(--ink); text-wrap: balance; }
.sx-body p { margin: 0; max-width: 58ch; font-size: 17px; line-height: 1.62; color: var(--text); }
.sx-body p + p { margin-top: 14px; }
.sx-body .sx-link { margin-top: 24px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.14 — larger hero headline and crest; the four highlights appear one by one on scroll (delays in
   index.html); text colours normalised: white on dark panes, ink on light (sweep above); landing approach lede removed
   ═══════════════════════════════════════════════════════════════════ */
.hero-home .hero-crest { width: 108px; }
@media (min-width: 768px) { .hero-home .hero-crest { width: 148px; } }
.hero-home .display { margin-top: 32px; font-size: clamp(2.9rem, 6.6vw, 6.2rem); line-height: 1.05; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.15 — the four highlights live inside the hero: the pinned hero shows the headline first, then the
   highlights take its place one by one (script above the approach rotator in site.js); the glance band is gone.
   Selected Credentials cards sit on navy for emphasis.
   ═══════════════════════════════════════════════════════════════════ */

/* Static layout (no JavaScript, or reduced motion): one screen, the highlights resting along the hero's foot */
.hero-home { display: block; min-height: 0; overflow: visible; }
.hero-stick { position: relative; display: flex; flex-direction: column; overflow: hidden; min-height: 520px; min-height: max(520px, 100svh); }
@media (min-width: 768px) { .hero-stick { min-height: 600px; min-height: max(600px, 100svh); } }
.hero-facts { position: relative; z-index: 1; width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) clamp(26px, 4vh, 48px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px clamp(24px, 3vw, 56px); }
@media (min-width: 1024px) { .hero-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hero-facts .fact { border-top: 0; padding-top: 0; margin: 0; }
.hero-facts .fact dt, .hero-facts .fact dd { color: #FFFFFF; }

/* Pinned stage (3.16, after Apple's product pages): one highlight at a time, huge and centred — each rises in
   from below, holds, and leaves upward as the next arrives; the script drives opacity and movement */
.hero-js { height: 340vh; }
.hero-js .hero-stick { position: sticky; top: 0; height: 100svh; min-height: 520px; }
.hero-js .hero-facts { position: absolute; inset: 0; z-index: 2; display: block; padding: 0; margin: 0; max-width: none; }
.hero-js .hero-facts .fact { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(92%, 840px); text-align: center; opacity: 0; }
.hero-js .hero-facts .fact dt { font-size: clamp(3.6rem, 9vw, 8rem); letter-spacing: -0.02em; }
.hero-js .hero-facts .fact dd { margin: clamp(14px, 2.4vh, 24px) auto 0; max-width: 36ch; font-size: clamp(19px, 1.9vw, 27px); line-height: 1.45; }

/* Selected Credentials: the cards sit on navy so the transactions carry the section */
.cred-card { background: var(--navy-800); }
.cred-body { padding: 18px 20px 24px; }
.cred-year { color: #F2723F; }
.cred-name, .cred-name a, .cred-role, .cred-sub, .cred-note { color: #FFFFFF; }
.cred-more { color: #FFFFFF; }
.cred-more:hover { color: #FFFFFF; }
.cred-card a:focus-visible { outline: 2px solid #F4F1EA; outline-offset: 2px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.17 — Why Eventus uses the owner's four abstract pictures (4:5 crops, no colour filter); Our
   Commitment to You: the "Our Approach" eyebrow is gone and each commitment shows its own photograph beside
   the text in place of the outline number
   ═══════════════════════════════════════════════════════════════════ */
.ap-pic { display: none; }
.ap-js .ap-pic { display: block; flex: 0 1 clamp(260px, 38%, 520px); width: clamp(260px, 38%, 520px); aspect-ratio: 3 / 2; object-fit: cover; margin-left: auto; transition: transform 1s cubic-bezier(0.77, 0, 0.18, 1), opacity 0.8s ease; }
.ap-js .ap-panel { gap: clamp(28px, 4vw, 64px); }
.ap-js .ap-panel.is-after .ap-pic { transform: translateX(10%); opacity: 0; }
.ap-js .ap-panel.is-before .ap-pic { transform: translateX(-8%); opacity: 0; }
.ap-static .ap-pic { transition: none !important; }
@media (max-width: 959px) { .ap-js .ap-panel { flex-direction: column; align-items: stretch; } .ap-js .ap-pic { width: 100%; max-width: 520px; flex: none; margin: 24px 0 0; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.18 — bold navigation; the Managing Partner's note moved out of Our Commitment to You onto its own
   white section (label deleted, the Discuss Your Strategic Priorities band follows); larger commitment contents
   ═══════════════════════════════════════════════════════════════════ */
.nav-link { font-weight: 700; }

/* Our Commitment to You, enlarged */
.ap-tab-title { font-size: 26px; }
.ap-tab { min-height: 72px; }
.ap-panel-title { font-size: clamp(38px, 4.8vw, 66px); }
.ap-panel-body > p:last-child { margin: 26px 0 0; max-width: 32em; font-size: clamp(19px, 1.5vw, 22px); line-height: 1.65; }
.ap-step { font-size: 14px; }
@media (max-width: 959px) { .ap-tab-title { font-size: 22px; } }

/* The Managing Partner's note on white, between the commitments and the contact band */
.mp-band .mp-grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .mp-band .mp-grid { grid-template-columns: minmax(240px, 340px) minmax(0, 1fr); gap: clamp(48px, 6vw, 88px); } }
.mp-photo { max-width: 340px; background: #ECEBE7; }
.mp-photo img { display: block; width: 100%; height: auto; }
.mp-quote2 { margin: 0; }
.mp-quote2 p { margin: 0; max-width: 36em; font-family: var(--serif); font-weight: 300; font-size: clamp(24px, 2.5vw, 34px); line-height: 1.42; letter-spacing: -0.005em; color: var(--ink); text-wrap: pretty; }
.mp-sign2 { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); max-width: 36em; }
.mp-sign2-name { margin: 0; font-family: var(--serif); font-size: 24px; color: var(--ink); }
.mp-sign2-role { margin: 6px 0 0; font-size: 12.5px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.19 — Discuss Your Strategic Priorities as a frosted dark box on plain white (after the owner's
   example), drawn up close to the Managing Partner's quote; the signature loses the rule, the Full profile
   link and the capitals
   ═══════════════════════════════════════════════════════════════════ */
.mp-band { padding-bottom: clamp(20px, 2.5vw, 36px); }
.mp-sign2 { border-top: 0; padding-top: 0; margin-top: 28px; max-width: 36em; }
.mp-sign2-role { font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; }

.contact-band { background: #FFFFFF; padding: clamp(20px, 2.5vw, 36px) 0 clamp(56px, 7vw, 96px); }
.contact-band-box { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding: clamp(32px, 4.5vw, 64px) clamp(24px, 4vw, 64px); background: rgba(31, 42, 68, 0.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
@media (min-width: 768px) { .contact-band-box { flex-direction: row; align-items: center; justify-content: space-between; gap: 48px; } }
.contact-band-heading { color: #FFFFFF; }
.contact-band-text p { color: #FFFFFF; }
.btn.contact-band-btn { flex: none; background: #FFFFFF; border-color: #FFFFFF; color: var(--navy-700); font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.btn.contact-band-btn:hover, .btn.contact-band-btn:focus-visible { background: var(--cream); border-color: var(--cream); color: var(--navy-800); }
.btn.contact-band-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.20 — the contact box is white frosted glass on white (no navy tint), dark text and the navy button;
   Our Commitment to You in one style ("You" no longer italic) with taller pictures; footer without its grey
   rules, Back to top, e-mail and phone — only the Contact us link remains
   ═══════════════════════════════════════════════════════════════════ */
.contact-band-box { background: rgba(255, 255, 255, 0.72); }
.contact-band-heading { color: var(--ink); }
.contact-band-text p { color: var(--ink); }
.btn.contact-band-btn { background: var(--navy-700); border-color: var(--navy-700); color: #FFFFFF; }
.btn.contact-band-btn:hover, .btn.contact-band-btn:focus-visible { background: var(--navy-900); border-color: var(--navy-900); color: #FFFFFF; }
.btn.contact-band-btn:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 3px; }

.ap-title em { font-style: normal; }
.ap-js .ap-pic { flex-basis: clamp(280px, 40%, 560px); width: clamp(280px, 40%, 560px); aspect-ratio: 4 / 3; }
.ap-js .ap-panels { min-height: clamp(380px, 36vw, 500px); }

.ft .ft-slogan { border-left: 0; padding-left: 0; }
.ft-row, .ft-base { border-top: 0; padding-top: 0; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.21 — the contact box IS the example's smoked-glass panel: a visible neutral-grey frosted box on the
   white pane (no blue), white text, white CONTACT US button; the footer links run in two columns
   ═══════════════════════════════════════════════════════════════════ */
.contact-band-box { background: rgba(84, 80, 75, 0.85); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.contact-band-heading { color: #FFFFFF; }
.contact-band-text p { color: #FFFFFF; }
.btn.contact-band-btn { background: #FFFFFF; border-color: #FFFFFF; color: var(--navy-700); }
.btn.contact-band-btn:hover, .btn.contact-band-btn:focus-visible { background: var(--cream); border-color: var(--cream); color: var(--navy-800); }
.btn.contact-band-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

.ft-links { display: grid; grid-auto-flow: column; grid-template-rows: repeat(4, auto); justify-content: start; gap: 0 clamp(48px, 7vw, 96px); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.22 — compact one-line footer: logo | grey rule | slogan, the links on the same line to the right;
   a slim base line with the copyright, Privacy Policy and LinkedIn
   ═══════════════════════════════════════════════════════════════════ */
.site-footer.ft { padding: 26px 0 16px; }
.ft-line { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.ft-logo { flex: none; }
.ft-logo img { display: block; height: 34px; width: auto; }
.ft .ft-slogan { margin: 0; padding: 6px 0 6px 24px; border-left: 1px solid rgba(255, 255, 255, 0.35); font-size: 17px; line-height: 1.2; }
.ft-line nav { margin-left: auto; }
.ft-links { display: flex; flex-wrap: wrap; gap: 0 clamp(14px, 1.8vw, 26px); }
.ft .ft-links a { min-height: 40px; font-size: 15px; }
.ft-base { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 24px; }
.ft-copy { font-size: 13px; }
@media (max-width: 1023px) { .ft-line nav { margin-left: 0; width: 100%; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.23 — the four highlights live in The Group beside its single paragraph (after the Blackstone
   example); the landing section heads lose their underlines and the "all services / all credentials" links;
   Selected Credentials cards are white with all-black content (stone logo plate kept, borderless)
   ═══════════════════════════════════════════════════════════════════ */
.home .section-head { border-bottom: 0; padding-bottom: 0; }

/* The Group: paragraph left, the figures right, no rules above them */
.group-layout-facts { align-items: center; }
.group-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 4.5vw, 52px) clamp(24px, 3vw, 48px); margin: 0; }
@media (max-width: 559px) { .group-facts { grid-template-columns: 1fr; gap: 28px; } }
.group-facts .fact { border-top: 0; padding-top: 0; }
.group-facts .fact dd { max-width: 24ch; }

/* Selected Credentials: white cards, black content, the stone plate behind the logos, no frames */
.cred-card { background: transparent; }
.cred-year { color: var(--ink); }
.cred-name, .cred-name a, .cred-role, .cred-sub, .cred-note { color: var(--ink); }
.cred-more { color: var(--ink); }
.cred-more:hover { color: var(--orange-ink); }
.cred-body { padding: 18px 6px 0 0; }
.cred-card a:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.24 — the four highlights overlaid on the Group photograph, each in a frosted box; the credential
   logo plate turns grey while the description stays on plain white
   ═══════════════════════════════════════════════════════════════════ */
.group-visual { position: relative; margin-top: clamp(28px, 4vw, 44px); overflow: hidden; }
.group-visual-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.group-visual .group-facts { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 22px); margin: 0; padding: clamp(18px, 4vw, 48px); }
@media (min-width: 1100px) { .group-visual .group-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: clamp(40px, 5vw, 72px) clamp(24px, 3.5vw, 56px); } }
.group-visual .fact { border-top: 0; padding: 22px 24px 26px; background: rgba(17, 26, 43, 0.52); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.group-visual .fact dt, .group-visual .fact dd { color: #FFFFFF; }
.group-visual .fact dd { max-width: none; }
@media (max-width: 559px) { .group-visual .fact { padding: 16px 18px 18px; } }

/* Selected Credentials: grey behind the logo only, the description on plain white */
.cred-logo { background: #EBEDEF; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.25 — the highlight boxes sit above the Group photograph (frosted boxes kept); the commitment
   rotator is manual: no step numbers, counter or orange progress line, and the arrows are plain drawn arrows
   ═══════════════════════════════════════════════════════════════════ */
.group-visual { overflow: visible; }
.group-visual-img { position: static; display: block; width: 100%; height: auto; aspect-ratio: 2.35 / 1; object-fit: cover; margin-top: clamp(14px, 1.8vw, 22px); }
@media (max-width: 767px) { .group-visual-img { aspect-ratio: 4 / 3; } }
.group-visual .group-facts { padding: 0; }
.group-visual .fact { background: rgba(17, 26, 43, 0.92); }

.ap-controls { justify-content: flex-end; gap: 12px; margin-top: 30px; }
.ap-arrow { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px; border: 0; background: none; color: #FFFFFF; cursor: pointer; transition: color 0.3s ease, transform 0.3s ease; }
.ap-arrow:hover { color: #F2723F; }
.ap-arrow:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.26 — the highlight boxes and the contact box take the credential logo-plate grey (#EBEDEF) with ink
   text; the commitment tabs lose their small rules and the numbers turn white; the credential cards get a single
   outer frame; the commitment panel sits closer to the tab list, top-aligned with its first entry
   ═══════════════════════════════════════════════════════════════════ */
.group-visual .fact { background: #EBEDEF; -webkit-backdrop-filter: none; backdrop-filter: none; }
.group-visual .fact dt, .group-visual .fact dd { color: var(--ink); }

.contact-band-box { background: #EBEDEF; -webkit-backdrop-filter: none; backdrop-filter: none; }
.contact-band-heading { color: var(--ink); }
.contact-band-text p { color: var(--ink); }
.btn.contact-band-btn { background: var(--navy-700); border-color: var(--navy-700); color: #FFFFFF; }
.btn.contact-band-btn:hover, .btn.contact-band-btn:focus-visible { background: var(--navy-900); border-color: var(--navy-900); color: #FFFFFF; }
.btn.contact-band-btn:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 3px; }

.ap-tab-line { display: none; }
.ap-tab-num { color: #FFFFFF; }

.cred-card { border: 1px solid var(--line-mid); }
.cred-body { padding: 18px 20px 22px; }

@media (min-width: 960px) { .ap-stage { grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: 44px; } }
.ap-js .ap-panel { align-items: flex-start; }
.ap-panel-body { padding-top: 14px; }
.ap-js .ap-panels { min-height: clamp(340px, 32vw, 440px); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.27 — one drawn arrow everywhere (credentials navigation, service cards, why-card links); a navy
   rule on the left of each highlight box; "Learn More About Us" in bold; About: hero text removed, section
   underlines off, themed Why Eventus pictures, Blackstone-style How We Work, borderless Group Network cards
   ═══════════════════════════════════════════════════════════════════ */
.line-arrow { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px; border: 0; background: none; color: var(--ink); cursor: pointer; transition: color 0.3s ease, opacity 0.3s ease; }
a.line-arrow { justify-content: flex-start; padding: 8px 0; }
.line-arrow:hover { color: var(--orange-ink); }
.line-arrow:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 3px; }
.line-arrow[disabled] { opacity: 0.25; cursor: default; }
.line-arrow[disabled]:hover { color: var(--ink); }

.x-card .more-arrow { margin: auto auto 0 0; padding-top: 22px; color: var(--ink); transition: color 0.3s ease, transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1); }
.x-card:hover .more-arrow { color: var(--orange-ink); transform: translateX(8px); }

.group-visual .fact { border-left: 3px solid var(--navy-700); }
.link-strong { font-weight: 700; font-size: 16px; }

.about-page .section-head { border-bottom: 0; padding-bottom: 0; }
.why-card .line-arrow { margin-top: auto; }

/* How We Work after the owner's example: statement, then the picture beside the numbered principles */
.hw-statement { margin: 0 0 clamp(32px, 4.5vw, 56px); max-width: 24em; font-family: var(--serif); font-weight: 300; font-size: clamp(23px, 2.5vw, 34px); line-height: 1.32; letter-spacing: -0.01em; color: var(--ink); text-wrap: pretty; }
.hw-grid2 { display: grid; gap: 40px; }
@media (min-width: 900px) { .hw-grid2 { grid-template-columns: minmax(260px, 400px) minmax(0, 1fr); gap: clamp(48px, 7vw, 110px); align-items: start; } }
.hw-side2 { display: flex; flex-direction: column; align-items: flex-start; }
.hw-media2 { width: 100%; }
.hw-media2 img { display: block; width: 100%; height: auto; }
.hw-link2 { margin-top: 20px; }
.hw-list2 { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(22px, 2.8vw, 34px); max-width: 680px; }
.hw-num2 { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; letter-spacing: 0.12em; color: var(--navy-700); }
.hw-list2 p { margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--ink); }

.co-card { border: 0; }
.co-card .body { padding: 18px 0 0; }
.co-card ul { border-top: 0; padding-top: 0; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.28 — Why Eventus: the owner's Deal Originator and Sector Expertise pictures; How We Work: titled,
   expanded principles at a larger size filling the picture's height, no commitment link; Group Network cards
   framed like the credential cards
   ═══════════════════════════════════════════════════════════════════ */
.hw-grid2 { align-items: stretch; }
.hw-list2 { max-width: 720px; height: 100%; align-content: space-between; gap: clamp(20px, 2.4vw, 30px); }
.hw-t2 { margin: 0 0 8px; font-family: var(--serif); font-weight: 400; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.25; color: var(--ink); }
.hw-num2 { margin-bottom: 8px; }
.hw-list2 p { font-size: clamp(16.5px, 1.3vw, 18px); line-height: 1.6; max-width: 62ch; }

.co-card { border: 1px solid var(--line-mid); }
.co-card .body { padding: 20px 20px 24px; }
@media (min-width: 900px) { .hw-side2 { align-self: stretch; } .hw-media2 { flex: 1; } .hw-media2 img { height: 100%; object-fit: cover; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.29 — How We Work without numbers, wider picture and larger text; Group Network rebuilt to the
   owner's card spec: City, Country heading, muted company name, services, bottom "Visit website" link; 3/2/1
   columns, 24px gaps, outer hairline that darkens on hover (square corners per the house rule)
   ═══════════════════════════════════════════════════════════════════ */
@media (min-width: 900px) { .hw-grid2 { grid-template-columns: minmax(320px, 500px) minmax(0, 1fr); gap: clamp(40px, 5vw, 76px); } }
.hw-list2 { max-width: none; }
.hw-t2 { font-size: clamp(21px, 1.9vw, 26px); }
.hw-list2 p { font-size: clamp(17px, 1.35vw, 19px); line-height: 1.62; max-width: 68ch; }

.co-grid { display: grid; gap: 24px; grid-template-columns: 1fr; list-style: none; margin: 0 0 48px; padding: 0; }
@media (min-width: 640px) { .co-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .co-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.co-card2 { display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid var(--line-mid); transition: border-color 0.25s ease; }
.co-card2:hover { border-color: var(--navy-700); }
.co-pic { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.co-body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.co-city { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 22px; line-height: 1.25; color: var(--ink); }
.co-name { margin: 6px 0 0; font-size: 15px; line-height: 1.45; color: #5C6472; }
.co-services { margin: 14px 0 0; padding: 0; list-style: none; }
.co-services li { font-size: 15px; line-height: 1.5; color: var(--ink); padding: 1px 0; }
.co-link { margin-top: auto; padding-top: 24px; align-self: flex-start; font-size: 15px; }
.division { margin: 0 0 24px; }
.co-grid + .division { margin-top: 0; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.30 — Services page, from the design critique: a named index above the showcase so all three
   services are visible and jumpable; a pause control for the looping animation; the site's plain drawn arrows
   instead of boxed chevrons; section-head underlines off; spaced en dash in the sector copy
   ═══════════════════════════════════════════════════════════════════ */
.services-page .section-head { border-bottom: 0; padding-bottom: 0; }

.mc-index { display: flex; flex-wrap: wrap; gap: 4px clamp(24px, 3.5vw, 48px); margin: 18px 0 0; }
.mc-ix { display: inline-flex; align-items: baseline; gap: 10px; min-height: 44px; padding: 6px 0; border: 0; background: none; cursor: pointer; font-family: var(--serif); font-size: clamp(17px, 1.5vw, 21px); line-height: 1.2; color: #8A93A6; transition: color 0.3s ease; text-align: left; }
.mc-ix:hover { color: #FFFFFF; }
.mc-ix.is-active { color: #FFFFFF; }
.mc-ix:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 4px; }
.mc-ix-num { font-family: var(--sans); font-size: 12px; font-weight: 500; letter-spacing: 0.12em; color: inherit; }
.mc-ix.is-active .mc-ix-num { color: #F2723F; }

.mc-services .mc-controls { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.mc-pause { min-width: 44px; }
.mc-pause .mc-ico-play { display: none; }
.mc-pause.is-paused .mc-ico-pause { display: none; }
.mc-pause.is-paused .mc-ico-play { display: block; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.31 — Our Services as a full-screen "movie": the navy section fills the viewport like the landing
   hero, the explanation sits LEFT and the animation RIGHT filling the column's full height; the orange SERVICES
   eyebrow, the 01/03 counter line and the View credentials link are gone (markup)
   ═══════════════════════════════════════════════════════════════════ */
.mc-services { display: flex; align-items: stretch; min-height: 100svh; }
.mc-services > .container { display: flex; flex-direction: column; width: 100%; }
.mc-services .mc-stage { flex: 1; }
@media (min-width: 1024px) {
  .mc-services .mc-js { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); align-items: stretch; }
  .mc-services .mc-js .mc-main { order: 2; aspect-ratio: auto; height: 100%; min-height: 480px; }
  .mc-js .mc-content { order: 1; display: flex; flex-direction: column; justify-content: center; }
  .mc-services .mc-controls { margin-top: 32px; justify-content: flex-start; }
}
@media (min-width: 1024px) and (max-width: 1199px) { .mc-services .mc-js { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.32 — the Services page as an Apple-style presentation: the whole page navy, no hero or section
   heading — the film opens on the service names (a centred chapter picker under the transparent header), the
   animation and its explanation fill the first screen, and Sector Expertise and the closing move onto navy
   ═══════════════════════════════════════════════════════════════════ */
.services-page { background: var(--navy-800); }
.services-page #main { background: var(--navy-800); }

/* the opening scene: chapter picker, then the stage */
.mc-cine { padding-top: calc(var(--header-h) + clamp(20px, 3.5vh, 44px)); padding-bottom: clamp(32px, 4.5vh, 56px); }
.mc-cine .mc-head { margin: 0 0 clamp(22px, 3.5vh, 40px); }
.mc-cine .mc-index { justify-content: center; margin: 0; gap: 6px clamp(28px, 4vw, 64px); }
.mc-cine .mc-ix { font-size: clamp(18px, 1.7vw, 23px); }
.mc-services .mc-slide-title { font-size: clamp(34px, 3.4vw, 52px); }
.mc-services .mc-slide-text { font-size: clamp(17px, 1.35vw, 19px); }

/* the scenes after the film: Sector Expertise and the closing, on navy */
.services-page .section { background: var(--navy-800); color: #FFFFFF; }
.services-page .sx .h2, .services-page .sx-title { color: #FFFFFF; }
.services-page .sx-body p { color: #FFFFFF; }
.services-page .sx .link-arrow { color: #F4F1EA; }
.services-page .sx .link-arrow:hover { color: #FFFFFF; }
.services-page .next-links { border-top: 0; }
.services-page .next-links .h2 { color: #FFFFFF; }
.services-page .btn-outline { border-color: rgba(255, 255, 255, 0.6); color: #FFFFFF; }
.services-page .btn-outline:hover { border-color: #FFFFFF; color: #FFFFFF; }
.services-page .btn-primary { background: #FFFFFF; border-color: #FFFFFF; color: var(--navy-700); }
.services-page .btn-primary:hover { background: var(--cream); border-color: var(--cream); color: var(--navy-800); }
.services-page a:focus-visible, .services-page button:focus-visible { outline-color: #FFFFFF; }
.mc-js .mc-main { min-width: 0; position: relative; overflow: hidden; }   /* the 1200px scene must never widen its grid column */

/* The chapter overlay now lives on the host (page space), so the full-height cover crop never cuts it */
.mc-anim > .ma-chapters, .mc-anim > .ma-chapters .ma-chapter { position: absolute; inset: 0; pointer-events: none; }
.mc-anim > .ma-chapters .ma-chapter { visibility: inherit; }   /* the script drives it; '' must fall back to the host, not to hidden */
.mc-anim > .ma-chapters .ma-ch-head { position: absolute; left: clamp(26px, 5%, 64px); top: clamp(24px, 6%, 56px); right: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; max-width: none; }
.mc-anim > .ma-chapters .ma-ch-n { font-family: var(--sans); font-size: 13px; font-weight: 500; letter-spacing: 0.14em; line-height: 1; color: #F2723F; }
.mc-anim > .ma-chapters .ma-ch-t { font-family: var(--serif); font-weight: 300; font-size: clamp(26px, 2.6vw, 42px); line-height: 1.05; letter-spacing: -0.01em; color: #FFFFFF; }
.mc-anim > .ma-chapters .ma-steps { position: absolute; left: clamp(26px, 5%, 64px); right: clamp(26px, 5%, 64px); bottom: clamp(22px, 5%, 48px); top: auto; display: grid; gap: clamp(12px, 1.6vw, 26px); margin: 0; padding: 0; list-style: none; }
.mc-anim > .ma-chapters .ma-steps li { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.mc-anim > .ma-chapters .ma-bar { position: relative; display: block; height: 1px; background: rgba(214, 228, 245, 0.26); }
.mc-anim > .ma-chapters .ma-bar > span { position: absolute; left: 0; top: -0.5px; height: 2px; width: 0; background: rgba(214, 228, 245, 0.6); }
.mc-anim > .ma-chapters .ma-steps li.is-on .ma-bar > span { background: #E0662F; }
.mc-anim > .ma-chapters .ma-step { display: flex; gap: 8px; align-items: baseline; font-size: clamp(11px, 0.95vw, 14px); line-height: 1.3; color: rgba(214, 228, 245, 0.6); }
.mc-anim > .ma-chapters .ma-steps li.is-on .ma-step { color: #FFFFFF; font-weight: 500; }
.mc-anim > .ma-chapters .ma-step-n { font-variant-numeric: tabular-nums; }
.mc-anim > .ma-chapters .ma-steps li.is-on .ma-step-n { color: #F2723F; }
.mc-anim[data-small] > .ma-chapters .ma-step-l { display: none; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.33 — Services film: Sector Expertise and the Contact us button deleted (markup); the animation
   screen widened (the text column cedes space) and the scene now CONTAINS instead of cropping, so the whole
   1200×800 picture is always in frame
   ═══════════════════════════════════════════════════════════════════ */
@media (min-width: 1024px) { .mc-services .mc-js { grid-template-columns: minmax(0, 1fr) minmax(0, 2.1fr); } }
@media (min-width: 1024px) and (max-width: 1199px) { .mc-services .mc-js { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.34 — the Services page as a scroll-told chapter film (Apple's pacing, Eventus's identity): hero
   with the assembling graphic, slim sticky chapter bar, three pinned scene chapters with advancing steps,
   static subservice details, the experience cards and the closing contact scene — all on navy
   ═══════════════════════════════════════════════════════════════════ */
.ch-eyebrow, .ch-label { margin: 0 0 18px; font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; }
.ch-eyebrow { color: #F2723F; }
.ch-label { color: #8A93A6; }

/* 1. hero */
.ch-hero { padding: calc(var(--header-h) + clamp(28px, 6vh, 72px)) 0 clamp(36px, 6vh, 64px); }
.ch-hero-grid { display: grid; gap: 36px; align-items: center; }
@media (min-width: 1024px) { .ch-hero-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 5vw, 80px); } }
.ch-h1 { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(40px, 4.8vw, 72px); line-height: 1.04; letter-spacing: -0.02em; color: #FFFFFF; text-wrap: balance; }
.ch-hero-sub { margin: 24px 0 0; max-width: 46ch; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: #FFFFFF; }
.ch-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin-top: 34px; }
.btn.ch-btn { background: #FFFFFF; border-color: #FFFFFF; color: var(--navy-700); }
.btn.ch-btn:hover { background: var(--cream); border-color: var(--cream); color: var(--navy-800); }
.btn.ch-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.ch-more { color: #FFFFFF; font-size: 15px; }
.ch-more:hover { color: #FFFFFF; }
.ch-fig { position: relative; width: 100%; aspect-ratio: 3 / 2; min-height: 280px; }
.ch-fig .ma-grain, .ch-fig .ma-vignette { display: none; }   /* no framed panel: the scene sits straight on the navy */
.ch-fig .mc-anim, .ch-fig { background: transparent; }

/* 2. the slim chapter bar (the site header floats over it when it returns) */
.ch-nav { position: sticky; top: 0; z-index: 30; background: rgba(17, 26, 43, 0.88); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.ch-nav-inner { display: flex; align-items: center; gap: clamp(18px, 3vw, 44px); min-height: 56px; overflow-x: auto; scrollbar-width: none; }
.ch-nav-inner::-webkit-scrollbar { display: none; }
.ch-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #8A93A6; border-bottom: 2px solid transparent; white-space: nowrap; transition: color 0.3s ease, border-color 0.3s ease; }
.ch-nav a:hover { color: #FFFFFF; }
.ch-nav a.is-on { color: #FFFFFF; border-bottom-color: var(--orange); }
.ch-nav a:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.ch-nav .ch-nav-contact { margin-left: auto; color: #FFFFFF; }
#ma, #capital, #strategy, #experience { scroll-margin-top: 64px; }

/* 3. chapters */
.ch { padding: clamp(64px, 10vh, 120px) 0 0; }
.ch-headline { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(34px, 4vw, 60px); line-height: 1.06; letter-spacing: -0.015em; color: #FFFFFF; text-wrap: balance; }
.ch-intro { margin: 20px 0 0; max-width: 56ch; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.62; color: #FFFFFF; }

/* the pinned scene: the picture holds while the steps advance; phones and reduced motion read it as a still */
.ch-scroll { position: relative; margin-top: clamp(28px, 5vh, 56px); }
.ch-stick { position: sticky; top: 56px; min-height: 0; height: calc(100svh - 72px); display: flex; align-items: center; }
.ch-stage-grid { display: grid; gap: 28px; width: 100%; align-items: center; }
@media (min-width: 900px) { .ch-stage-grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); } }
.ch-scene-wrap { min-width: 0; }
.ch-scene { position: relative; width: 100%; height: min(66vh, 620px); min-height: 300px; background: transparent; }
.ch-scene .ma-grain, .ch-scene .ma-vignette { display: none; }
.ch-note { margin: 10px 0 0; font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #8A93A6; }
.ch-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: clamp(18px, 3vh, 30px); }
.ch-step { opacity: 0.35; transition: opacity 0.45s ease; }
.ch-step.is-on { opacity: 1; }
.ch-step-k { display: block; margin-bottom: 7px; font-size: 12.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #8A93A6; }
.ch-step.is-on .ch-step-k { color: #F2723F; }
.ch-step p { margin: 0; font-size: clamp(16px, 1.25vw, 18px); line-height: 1.6; color: #FFFFFF; max-width: 34ch; }
/* phones / reduced motion: no pinning, the still with every step readable */
.ch-static .ch-stick { position: static; height: auto; }
.ch-static .ch-scene { height: auto; aspect-ratio: 3 / 2; }
@media (prefers-reduced-motion: reduce) { .ch-scroll { height: auto !important; } }
@media (max-width: 899px) { .ch-scroll { height: auto !important; } .ch-stick { position: static; height: auto; } .ch-scene { height: auto; aspect-ratio: 3 / 2; min-height: 0; } }

/* 4. the quiet half of each chapter: subservice details and the next step */
.ch-sub { padding: clamp(36px, 6vh, 64px) 0 0; }
.ch-svcs { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px 32px; }
@media (min-width: 900px) { .ch-svcs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ch-svc h3 { margin: 0 0 8px; font-family: var(--serif); font-weight: 400; font-size: clamp(19px, 1.6vw, 23px); line-height: 1.25; color: #FFFFFF; }
.ch-svc p { margin: 0; font-size: 15.5px; line-height: 1.55; color: #FFFFFF; }
.ch-link { display: inline-block; margin-top: 30px; color: #F4F1EA; font-size: 15px; }
.ch-link:hover { color: #FFFFFF; }

/* 5. selected advisory experience: restrained static cards */
.ch-exp .exp-grid { list-style: none; margin: clamp(32px, 5vh, 52px) 0 0; padding: 0; display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ch-exp .exp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ch-exp .exp-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ch-exp .cred-card { border: 1px solid rgba(255, 255, 255, 0.18); background: transparent; }
.ch-exp .cred-year { color: #F2723F; }
.ch-exp .cred-name, .ch-exp .cred-name a, .ch-exp .cred-role, .ch-exp .cred-sub, .ch-exp .cred-note { color: #FFFFFF; }
.ch-exp .cred-more { color: #FFFFFF; }
.ch-exp .cred-card a:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; }

/* 6. the closing scene */
.ch-contact { padding-bottom: clamp(72px, 10vh, 120px); }
.ch-fig, .ch-scene { overflow: hidden; }   /* the scene's glow beams otherwise spill into page overflow */

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.35 — the chapter scenes PLAY on their own (no scroll-driving, no pinning): each chapter is a normal
   section whose scene loops its own segment while on screen, the steps lighting in time with it; a pause control
   sits by the caption. Header legibility fixed over the new sections (DARK list in site.js).
   ═══════════════════════════════════════════════════════════════════ */
.ch-play { position: static; margin-top: clamp(28px, 5vh, 56px); }
.ch-frame { position: static; height: auto; display: block; }
.ch-play .ch-scene { height: auto; aspect-ratio: 3 / 2; max-height: min(64vh, 620px); min-height: 280px; }
@media (min-width: 900px) { .ch-play .ch-stage-grid { align-items: center; } }
.ch-note-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 6px; }
.ch-note-row .ch-note { margin: 0; }
.ch-pause { color: #8A93A6; }
.ch-pause:hover { color: #FFFFFF; }
.ch-pause .mc-ico-play { display: none; }
.ch-pause.is-paused .mc-ico-pause { display: none; }
.ch-pause.is-paused .mc-ico-play { display: block; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.36 — the intro hero and chapter bar deleted: the page opens straight on the chapters; the service
   NAME is the dominant heading (serif, no capitals) with the benefit line beneath it; step numbers gone;
   the "Recent mandates." heading removed
   ═══════════════════════════════════════════════════════════════════ */
#ma { padding-top: calc(var(--header-h) + clamp(32px, 6vh, 72px)); }
.ch-name { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(40px, 4.6vw, 68px); line-height: 1.04; letter-spacing: -0.02em; text-transform: none; color: #FFFFFF; text-wrap: balance; }
.ch-headline-sub { margin: 16px 0 0; font-family: var(--serif); font-weight: 300; font-size: clamp(21px, 2vw, 30px); line-height: 1.25; letter-spacing: -0.01em; color: #FFFFFF; text-wrap: balance; }
.ch-exp .exp-grid { margin-top: clamp(24px, 4vh, 40px); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.37 — every mandate's animation plays: each chapter scene runs its graphic's FULL sequence (all
   services in turn), the in-scene chapter titles and step bars pinned to the frame; the side panel is the
   service list, marking and jumping to the one playing
   ═══════════════════════════════════════════════════════════════════ */
.ch-scene > .ma-chapters, .ch-scene > .ma-chapters .ma-chapter { position: absolute; inset: 0; pointer-events: none; }
.ch-scene > .ma-chapters .ma-chapter { visibility: inherit; }
.ch-scene > .ma-chapters .ma-ch-head { position: absolute; left: clamp(22px, 4.5%, 56px); top: clamp(20px, 5.5%, 48px); right: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; margin: 0; max-width: none; }
.ch-scene > .ma-chapters .ma-ch-n { font-family: var(--sans); font-size: 12.5px; font-weight: 500; letter-spacing: 0.14em; line-height: 1; color: #F2723F; }
.ch-scene > .ma-chapters .ma-ch-t { font-family: var(--serif); font-weight: 300; font-size: clamp(22px, 2.1vw, 34px); line-height: 1.08; letter-spacing: -0.01em; color: #FFFFFF; }
.ch-scene > .ma-chapters .ma-steps { position: absolute; left: clamp(22px, 4.5%, 56px); right: clamp(22px, 4.5%, 56px); bottom: clamp(18px, 4.5%, 40px); top: auto; display: grid; gap: clamp(10px, 1.4vw, 22px); margin: 0; padding: 0; list-style: none; }
.ch-scene > .ma-chapters .ma-steps li { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.ch-scene > .ma-chapters .ma-bar { position: relative; display: block; height: 1px; background: rgba(214, 228, 245, 0.26); }
.ch-scene > .ma-chapters .ma-bar > span { position: absolute; left: 0; top: -0.5px; height: 2px; width: 0; background: rgba(214, 228, 245, 0.6); }
.ch-scene > .ma-chapters .ma-steps li.is-on .ma-bar > span { background: #E0662F; }
.ch-scene > .ma-chapters .ma-step { display: flex; gap: 7px; align-items: baseline; font-size: clamp(10.5px, 0.9vw, 13px); line-height: 1.3; color: rgba(214, 228, 245, 0.6); }
.ch-scene > .ma-chapters .ma-steps li.is-on .ma-step { color: #FFFFFF; font-weight: 500; }
.ch-scene > .ma-chapters .ma-step-n { font-variant-numeric: tabular-nums; }
.ch-scene > .ma-chapters .ma-steps li.is-on .ma-step-n { color: #F2723F; }
.ch-scene[data-small] > .ma-chapters .ma-step-l { display: none; }

.ch-panel { margin: 0; }
.ch-panel .mc-svc h3 { margin: 0; }
.ch-panel .mc-svc p { color: #FFFFFF; }
@media (min-width: 900px) { .ch-stage-grid { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1.1fr); } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.38 — captions, the experience link and the Selected Advisory Experience section deleted; the
   capital chapter renamed Capital Raising & Financing Advisory; the pause control keeps the caption row's spot
   ═══════════════════════════════════════════════════════════════════ */
.ch-note-row { justify-content: flex-end; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.39 — the owner's rewritten service copy; the side panel fills the animation's full height with the
   rows distributed evenly and larger type; the chapter links are gone
   ═══════════════════════════════════════════════════════════════════ */
@media (min-width: 900px) {
  .ch-stage-grid { align-items: stretch; }
  .ch-scene-wrap { display: flex; flex-direction: column; min-width: 0; }
  .ch-play .ch-scene { flex: 1 1 auto; height: auto; aspect-ratio: auto; max-height: none; min-height: 420px; }
  .ch-panel { height: 100%; display: flex; flex-direction: column; margin: 0; }
  .ch-panel .mc-svc { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; padding-top: 18px; padding-bottom: 20px; }
}
.ch-panel .mc-svc-btn { font-size: clamp(20px, 1.7vw, 25px); line-height: 1.22; }
.ch-panel .mc-svc p { margin-top: 8px; font-size: clamp(15.5px, 1.2vw, 17px); line-height: 1.58; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.40 — the simplified chapter layout: taglines gone, the in-scene title gone (the right column marks
   the playing service instead), one description at a time in a fixed-height area, the illustration enlarged a
   fifth within its frame; the owner's shorter copy
   ═══════════════════════════════════════════════════════════════════ */
.ch-scene .ma-ch-head { display: none; }                       /* the service name lives in the right column only */
.ch-js .mc-svc > p { display: none; }                          /* one description at a time, in the fixed area below */
.ch-side { display: flex; flex-direction: column; justify-content: center; height: 100%; min-width: 0; }
.ch-panel { margin: 0; }
@media (min-width: 900px) {
  .ch-panel { height: auto; display: block; }
  .ch-panel .mc-svc { display: block; padding: 15px 0 16px 24px; }
}
.ch-desc { margin: 22px 0 0; padding-left: 24px; min-height: 7.2em; font-size: clamp(16px, 1.3vw, 18px); line-height: 1.6; color: #FFFFFF; }
@media (max-width: 899px) { .ch-desc { min-height: 0; padding-left: 0; } }
.ch-scene > .ma-chapters .ma-ch-head { display: none; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.41 — the side panel shows ONLY the playing service: its name large with the full description,
   crossfading as the animation moves on; pause plus left/right arrows under the scene; reduced motion and
   no-JavaScript keep the complete static list
   ═══════════════════════════════════════════════════════════════════ */
.ch-live { display: none; }
.ch-js .ch-live { display: block; opacity: 1; transition: opacity 0.26s ease; min-height: clamp(260px, 34vh, 360px); }
.ch-js .ch-live.is-swap { opacity: 0; }
.ch-js .ch-fallback { display: none; }
.ch-live-name { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(28px, 2.6vw, 42px); line-height: 1.12; letter-spacing: -0.012em; color: #FFFFFF; text-wrap: balance; }
.ch-live-desc { margin: 20px 0 0; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.62; color: #FFFFFF; max-width: 36ch; }
.ch-fallback { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.ch-fallback h3 { margin: 0 0 6px; font-family: var(--serif); font-weight: 400; font-size: clamp(19px, 1.6vw, 23px); color: #FFFFFF; }
.ch-fallback p { margin: 0; font-size: 15.5px; line-height: 1.55; color: #FFFFFF; }
.ch-note-row { justify-content: flex-end; gap: 10px; }
@media (max-width: 899px) { .ch-js .ch-live { min-height: 15em; } }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.42 — the Private Equity page as full-bleed photographic chapters (after Centerview's About page):
   each section a Curantis picture with a left gradient and quiet text; a white facts interlude; the process
   steps on navy; the grey contact box closes
   ═══════════════════════════════════════════════════════════════════ */
.pe-band { position: relative; display: flex; align-items: center; min-height: clamp(540px, 86svh, 920px); overflow: hidden; background: var(--navy-900); color: #FFFFFF; padding: clamp(72px, 10vh, 120px) 0; }
.pe-band:first-of-type { padding-top: calc(var(--header-h) + clamp(40px, 7vh, 88px)); }
.pe-band-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pe-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 16, 28, 0.86) 0%, rgba(10, 16, 28, 0.6) 46%, rgba(10, 16, 28, 0.18) 100%); }
.pe-band-body { position: relative; z-index: 1; }
.pe-band-eyebrow { margin: 0 0 20px; font-size: 12.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: #F2723F; }
.pe-band-title { margin: 0; max-width: 16em; font-family: var(--serif); font-weight: 300; font-size: clamp(38px, 4.4vw, 64px); line-height: 1.05; letter-spacing: -0.018em; color: #FFFFFF; text-wrap: balance; text-shadow: 0 1px 22px rgba(10, 16, 28, 0.4); }
.pe-band-text { margin: 24px 0 0; max-width: 52ch; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.62; color: #FFFFFF; }
.pe-band-link { margin: 26px 0 0; }
.pe-ext { color: #FFFFFF; font-size: 15px; }
.pe-ext:hover { color: #FFFFFF; }
.pe-band-points { list-style: none; margin: 28px 0 0; padding: 0; max-width: 56ch; display: grid; gap: 14px; }
.pe-band-points li { position: relative; padding-left: 26px; font-size: clamp(15.5px, 1.2vw, 17px); line-height: 1.55; color: #FFFFFF; }
.pe-band-points li::before { content: ""; position: absolute; left: 0; top: 0.72em; width: 14px; height: 1px; background: var(--orange); }
.pe-band a:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

.pe-facts { background: #FFFFFF; }
.pe-facts-grid { display: grid; gap: 32px clamp(32px, 4vw, 64px); align-items: center; }
@media (min-width: 900px) { .pe-facts-grid { grid-template-columns: minmax(180px, 230px) minmax(0, 1fr); } }
.pe-facts-logo { margin: 0; }
.pe-facts-logo img { display: block; width: 100%; max-width: 210px; height: auto; }
.pe-facts-list { margin: 0; display: grid; gap: 24px clamp(24px, 3vw, 48px); }
@media (min-width: 700px) { .pe-facts-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .pe-facts-list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pe-facts-list dt { font-size: 12.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); }
.pe-facts-list dd { margin: 8px 0 0; font-size: 16.5px; line-height: 1.5; color: var(--ink); }
.pe-facts-list dd [data-countup] { font-family: var(--serif); font-size: 26px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.43 — the Private Equity page rebuilt on the owner's "PE Mandate v3" concept, translated into the
   site's own language: full-bleed hero with the mixed-weight headline anchored at its foot, a white overview
   with the giant committed-capital figure, the split-screen mandate panel, and the role as ledger rows
   ═══════════════════════════════════════════════════════════════════ */
.pe2-eyebrow { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #F2723F; }
.pe2-eyebrow-ink { color: var(--orange-ink); }

/* hero: photo, bottom-anchored title */
.pe2-hero { position: relative; display: flex; align-items: flex-end; min-height: min(78vh, 760px); overflow: hidden; background: var(--navy-900); color: #FFFFFF; }
.pe2-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pe2-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 16, 28, 0.25) 0%, rgba(10, 16, 28, 0.05) 35%, rgba(10, 16, 28, 0.78) 100%); }
.pe2-hero-body { position: relative; z-index: 1; width: 100%; padding-bottom: clamp(44px, 7vw, 84px); display: flex; flex-direction: column; gap: 18px; }
.pe2-title { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(46px, 7.4vw, 104px); line-height: 1; letter-spacing: -0.025em; color: #FFFFFF; text-wrap: balance; text-shadow: 0 1px 24px rgba(10, 16, 28, 0.45); }
.pe2-title strong { font-weight: 700; }

/* overview: the statement beside the giant figure, three facts under a rule */
.pe2-ov-grid { display: grid; gap: clamp(40px, 6vw, 92px); align-items: end; }
@media (min-width: 1000px) { .pe2-ov-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.pe2-statement { margin: 26px 0 0; max-width: 24em; font-family: var(--serif); font-weight: 300; font-size: clamp(23px, 2.4vw, 33px); line-height: 1.32; letter-spacing: -0.01em; color: var(--ink); text-wrap: pretty; }
.pe2-link { margin: 26px 0 0; }
.pe2-figure { border-left: 1px solid var(--ink); padding-left: clamp(24px, 3vw, 48px); }
.pe2-figure-num { margin: 0; font-family: var(--serif); font-weight: 700; font-size: clamp(80px, 11vw, 164px); line-height: 0.95; letter-spacing: -0.04em; color: var(--ink); }
.pe2-figure-label { margin: 10px 0 0; font-size: 18px; color: var(--ink); }
.pe2-facts { margin: clamp(56px, 7vw, 104px) 0 0; padding: 0; display: grid; gap: 24px clamp(24px, 3vw, 48px); border-top: 1px solid var(--ink); }
@media (min-width: 760px) { .pe2-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pe2-facts dt { padding-top: 26px; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); }
.pe2-facts dd { margin: 10px 0 0; font-family: var(--serif); font-size: clamp(19px, 1.7vw, 23px); line-height: 1.35; color: var(--ink); text-wrap: pretty; }

/* mandate: photo half, navy half */
.pe2-mandate { display: grid; background: var(--navy-900); color: #FFFFFF; }
@media (min-width: 1000px) { .pe2-mandate { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pe2-mandate-media { min-height: clamp(300px, 44vw, 560px); overflow: hidden; }
.pe2-mandate-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pe2-mandate-panel { padding: clamp(52px, 7vw, 108px) clamp(20px, 5vw, 88px); display: flex; flex-direction: column; gap: 26px; }
.pe2-h2 { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(34px, 4.2vw, 58px); line-height: 1.04; letter-spacing: -0.02em; color: #FFFFFF; text-wrap: balance; }
.pe2-h2 strong { font-weight: 700; }
.pe2-h2-ink { color: var(--ink); font-size: clamp(40px, 5.4vw, 80px); }
.pe2-lede { margin: 0; max-width: 32em; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.58; color: #FFFFFF; }
.pe2-rows { list-style: none; margin: 4px 0 0; padding: 0; max-width: 37em; }
.pe2-rows li { padding: 17px 0; border-top: 1px solid rgba(255, 255, 255, 0.2); font-size: 16px; line-height: 1.6; color: #FFFFFF; text-wrap: pretty; }

/* role: head pair, then the five ledger rows */
.pe2-role-head { display: grid; gap: clamp(28px, 4vw, 72px); align-items: end; margin-bottom: clamp(40px, 5vw, 72px); }
@media (min-width: 1000px) { .pe2-role-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.pe2-role-head .pe2-h2-ink { margin-top: 22px; }
.pe2-role-lede { margin: 0; max-width: 30em; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.58; color: var(--ink); }
.pe2-steps { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--ink); }
.pe2-step { display: grid; gap: 12px clamp(32px, 4vw, 64px); padding: clamp(24px, 3vw, 34px) 0; border-top: 1px solid var(--ink); transition: background-color 0.25s ease; }
@media (min-width: 900px) { .pe2-step { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: baseline; } }
.pe2-step:hover { background: #F6F6F3; }
.pe2-step-head { display: flex; gap: clamp(16px, 2vw, 26px); align-items: baseline; }
.pe2-step-num { font-size: 14px; font-weight: 600; letter-spacing: 0.08em; color: var(--orange-ink); min-width: 28px; }
.pe2-step-title { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(22px, 2.2vw, 31px); line-height: 1.15; letter-spacing: -0.015em; color: var(--ink); }
.pe2-step-text { margin: 0; max-width: 40em; font-size: 16px; line-height: 1.6; color: var(--ink); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.44 — PE page distilled: the full S.A. name alone on the hero; the Overview header in the landing
   style; "Visit website"; the figure and the three facts as the landing's grey highlight boxes (the €97M keeps
   its size in a bigger box); the mandate, role, steps and contact box deleted
   ═══════════════════════════════════════════════════════════════════ */
.pe-page .section-head { border-bottom: 0; padding-bottom: 0; }
.pe2-figure { background: #EBEDEF; border-left: 3px solid var(--navy-700); padding: clamp(30px, 3.5vw, 48px) clamp(26px, 3vw, 48px) clamp(32px, 3.5vw, 52px); }
.pe2-figure-label { font-size: 17px; }
.pe2-facts { border-top: 0; gap: clamp(14px, 1.8vw, 22px); margin-top: clamp(40px, 5vw, 72px); }
.pe2-facts > div { background: #EBEDEF; border-left: 3px solid var(--navy-700); padding: 22px 24px 26px; }
.pe2-facts dt { padding-top: 0; }
.pe2-facts dd { margin-top: 10px; }
.pe2-ov { padding-bottom: clamp(72px, 10vw, 128px); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.45 — Mandate and Role sections restored without their orange eyebrows and step numbers; the figure
   and facts lose the grey boxes — a navy vertical rule carries all four; labels no longer capitals
   ═══════════════════════════════════════════════════════════════════ */
.pe2-figure { background: transparent; padding: 6px 0 8px clamp(24px, 3vw, 44px); }
.pe2-facts > div { background: transparent; padding: 4px 0 6px 22px; border-left: 3px solid var(--navy-700); }
.pe2-facts dt { text-transform: none; letter-spacing: 0.02em; font-size: 15px; }
.pe2-step-head { gap: 0; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.46 — the Curantis logo on a small white plate in the hero; the owner's new hero photograph and the
   Luxembourg picture for the mandate; the role lede deleted
   ═══════════════════════════════════════════════════════════════════ */
.pe2-hero-logo { margin: 0 0 10px; }
.pe2-hero-logo img { display: block; width: clamp(150px, 15vw, 205px); height: auto; background: #FFFFFF; padding: 10px 14px; }
.pe2-hero::after { background: linear-gradient(180deg, rgba(10, 16, 28, 0.2) 0%, rgba(10, 16, 28, 0) 40%, rgba(10, 16, 28, 0.62) 100%); }
.pe2-role-head { grid-template-columns: 1fr; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.47 — the Curantis logo as a knockout (no white plate) and the "Curantis" picture back as the hero,
   with its stronger foot gradient
   ═══════════════════════════════════════════════════════════════════ */
.pe2-hero-logo img { background: none; padding: 0; width: clamp(180px, 18vw, 250px); }
.pe2-hero::after { background: linear-gradient(180deg, rgba(10, 16, 28, 0.3) 0%, rgba(10, 16, 28, 0.08) 38%, rgba(10, 16, 28, 0.8) 100%); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.48 — the PE hero dimmed further so the knockout logo carries
   ═══════════════════════════════════════════════════════════════════ */
.pe2-hero::after { background: linear-gradient(180deg, rgba(10, 16, 28, 0.55) 0%, rgba(10, 16, 28, 0.42) 40%, rgba(10, 16, 28, 0.85) 100%); }
.pe2-hero::after { background: linear-gradient(90deg, rgba(10, 16, 28, 0.72) 0%, rgba(10, 16, 28, 0.38) 42%, rgba(10, 16, 28, 0.1) 75%), linear-gradient(180deg, rgba(10, 16, 28, 0.38) 0%, rgba(10, 16, 28, 0.2) 40%, rgba(10, 16, 28, 0.8) 100%); }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.49 — Credentials: the eyebrow, lede, year counts and the hero rule gone; the cards in the landing
   strip's exact dress (grey logo plate, outer hairline, black content); the filters without box frames
   ═══════════════════════════════════════════════════════════════════ */
.credentials-page .page-hero-grid { border-bottom: 0; padding-bottom: 0; }
.cr-card { border: 1px solid var(--line-mid); }
.cr-logo { background: #EBEDEF; border-bottom: 0; height: 150px; }
.cr-body { padding: 18px 20px 22px; }
.cr-name { font-size: 23px; }
.cr-role { font-size: 15.5px; font-weight: 600; color: var(--ink); }
.cr-sub, .cr-meta { font-size: 14.5px; color: var(--ink); }
@media (max-width: 559px) { .cr-logo { border-right: 0; background: #EBEDEF; } }
.cr-select { border: 0; background: transparent; padding-left: 0; }
.cr-select:focus-visible { outline: 2px solid var(--navy-700); outline-offset: 2px; }
.cr-select-wrap::after { right: 10px; }

/* ═══════════════════════════════════════════════════════════════════
   VERSION 3.50 — Credentials to EXACT landing parity: the "Showing all" row and the filters' rule deleted; the
   cards carry the year line, no inner divider, identical spacing
   ═══════════════════════════════════════════════════════════════════ */
.cr-filters { border-bottom: 0; padding-bottom: 8px; }
.cr-list { margin-top: 18px; }
.cr-body { padding: 18px 20px 22px; }
.cr-body .cred-year { margin: 0 0 8px; }
.cr-meta::before { display: none; }
.cr-meta { margin-top: auto; padding-top: 14px; font-size: 14.5px; color: var(--ink); }
.cr-sub { color: var(--ink); }

/* ============================================================
   VERSION 3.51 — team page: hero removed, underlines off, plain-case
   positions, SSE Riga line, Selected International Representation grid
   ============================================================ */
.team-page .section-head { border-bottom: 0; padding-bottom: 0; }
.team-page main > .section:first-child { padding-top: calc(var(--header-h) + clamp(40px, 6vw, 72px)); }
.team-page .person .meta { text-transform: none; letter-spacing: 0; font-size: 15px; }
.team-page .person .bio { color: #FFFFFF; font-size: 14.5px; line-height: 1.5; margin-top: 10px; }
.ir-grid { display: grid; grid-template-columns: 1fr; gap: 36px 32px; }
@media (min-width: 640px) { .ir-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ir-grid { grid-template-columns: repeat(4, 1fr); } }
.ir-country { border-left: 3px solid var(--navy-700); padding-left: 18px; }
.ir-name { font-family: var(--sans); font-weight: 700; font-size: 15px; color: var(--text); margin: 0 0 10px; }
.ir-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.ir-people li { font-family: var(--serif); font-size: 19px; line-height: 1.35; color: var(--text); }
.ir-people a { color: var(--text); text-decoration: none; background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 100% / 0 1px; transition: background-size 280ms ease; padding-bottom: 2px; }
.ir-people a::after { content: " \2197"; font-family: var(--sans); font-size: 0.72em; }
.ir-people a:hover, .ir-people a:focus-visible { background-size: 100% 1px; }
