PageSourceSearch

https://jf-staging.webflow.io/contact-us

html jf-staging.webflow.io collected 2026-10-03 13:14:22 UTC 64,260 bytes, 919 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Fri Oct 02 2026 14:56:03 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="jf-staging.webflow.io" data-wf-page="67ae080a89e64a58e21d4eb0" data-wf-site="67ae080a89e64a58e21d4e2d" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Contact Joele Frank | Strategic Communications Advisory</title><meta content="Contact Joele Frank to discuss strategic communications advisory services, including investor relations, activism defense, crisis management, and transactional communications." name="description"/><meta content="Contact Joele Frank" property="og:title"/><meta content="Get in touch to discuss strategic communications advisory needs." property="og:description"/><meta content="Contact Joele Frank" name="twitter:title"/><meta content="Get in touch to discuss strategic communications advisory needs." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="hnt4fWI8XtyR1S6tKBNcKMoxdF-sBBB-YNj1byeTYU0" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/css/jf-staging.shared.2cc29602f.min.css" rel="stylesheet" type="text/css" integrity="sha384-LMKWAv27JLsyuVoJC9Z++ROZJEWr8QEjphhlTES+VMmLnwNsexGX5Ucn2UQg3ytU" crossorigin="anonymous"/><style>html.w-mod-js:not(.w-mod-ix3) :is(.take-control-text.hero-heading, [data-wf-component-id="3a5b1ae8-82bf-08ec-9f81-63535f729198"]:is(.page-heading), [data-wf-component-id="3a5b1ae8-82bf-08ec-9f81-63535f729198"] :is(.page-heading)) {visibility: hidden !important;}</style><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/>
1<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
1<script type="text/javascript">WebFont.load({  google: {    families: ["Geist Mono:400,500,600,700,800,900","Geist Mono:300,400,500,600,700"]  }});</script>
1<script src="https://use.typekit.net/eti5boy.js" type="text/javascript"></script>
1<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/67ae080a89e64a58e21d4e72_favicon-32x32.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/67ae080a89e64a58e21d4e6e_webclip-256x256.png" rel="apple-touch-icon"/>
1<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push.apply(w[g],Array.isArray(i)?i:[i]);})(window,['G-WP7295WCT3'],'google_tags_first_party');</script>
1<script async="" src="/9i1h7htkfq16NjdhZTA4MGE4OWU2NGE1OGUyMWQ0ZTJk/l52nBIiqbTVyv7JgWohqm3YeoOI"></script>
1<script type="text/javascript">window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('set', 'developer_id.dZGVlNj', true);gtag('set', 'developer_id.dYWYxNW', true);gtag('js', new Date());gtag('config', 'G-WP7295WCT3');</script>
1<!-- Google Tag Manager -->
2<script>
vendor: 327 bytes, lines 2-6
2(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
3new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
4j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
5'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
6})(window,document,'script','dataLayer','
6GTM-NKV98RJP
vendor: 3 bytes, line 6
6');
6</script>
6
7<!-- End Google Tag Manager -->
8
9<meta name="google-site-verification" content="qJz_IW58H6ykZ7wFNBCwPVL67yVGMDhJ_4gOF0fVcCE" />
10
11<script id="jetboost-script" type="text/javascript"> window.JETBOOST_SITE_ID = "cmah83nrp00020rvk9bcofbh1"; (function(d) { var s = d.createElement("script"); s.src = "https://cdn.jetboost.io/jetboost.js"; s.async = 1; d.getElementsByTagName("head")[0].appendChild(s); })(document); </script>
11
12<style>
13@view-transition {
14    navigation: auto;
15}
16
17::view-transition-old(root) {
18    animation: fade-out 0.4s ease forwards;
19}
20
21::view-transition-new(root) {
22    animation: fade-in 0.4s ease forwards;
23}
24
25@keyframes fade-out {
26    to { opacity: 0; }
27}
28
29@keyframes fade-in {
30    from { opacity: 0; }
31}
32</style></head><body><div class="page-wrapper"><div class="global-styles w-embed"><style>
33
34  html { font-size: 1rem; }
35  @media screen and (max-width:1920px) { html { font-size: 1rem; } }
36  @media screen and (max-width:1279px) { html { font-size: calc(0.1964285714285715rem + 0.8928571428571428vw); } }
37  @media screen and (max-width:991px) { html { font-size: 1rem; } }
38
39
40
41  /* Make text look crisper and more legible in all browsers and stops IOS scroll bounce*/
42  body {
43    -webkit-font-smoothing: antialiased;
44    -moz-osx-font-smoothing: grayscale;
45    font-smoothing: antialiased;
46    text-rendering: optimizeLegibility;
47    overscroll-behavior: none;
48    overscroll-behavior-y: none;
49  }
50
51  /* Focus state style for keyboard navigation for the focusable elements */
52  *[tabindex]:focus-visible,
53  input[type="file"]:focus-visible {
54    outline: 0.125rem solid #4d65ff;
55    outline-offset: 0.125rem;
56  }
57
58  /* Set color style to inherit */
59  .inherit-color * {
60    color: inherit;
61  }
62
63  /* Get rid of top margin on first element in any rich text element */
64  .w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
65    margin-top: 0 !important;
66  }
67
68  /* Get rid of bottom margin on last element in any rich text element */
69  .w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
70    margin-bottom: 0 !important;
71  }
72
73
74  /* Make sure containers never lose their center alignment */
75  .container-medium,.container-small, .container-large {
76    margin-right: auto !important;
77    margin-left: auto !important;
78  }
79
80  /* 
81  Make the following elements inherit typography styles from the parent and not have hardcoded values. 
82  Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
83  Uncomment this CSS to use it in the project. Leave this message for future hand-off.
84  */
85  /*
86  a,
87  .w-input,
88  .w-select,
89  .w-tab-link,
90  .w-nav-link,
91  .w-dropdown-btn,
92  .w-dropdown-toggle,
93  .w-dropdown-link {
94  color: inherit;
95  text-decoration: inherit;
96  font-size: inherit;
97  }
98  */
99
100  /* Apply "..." after 3 lines of text */
101  .text-style-3lines {
102    display: -webkit-box;
103    overflow: hidden;
104    -webkit-line-clamp: 3;
105    -webkit-box-orient: vertical;
106  }
107
108  /* Apply "..." after 2 lines of text */
109  .text-style-2lines {
110    display: -webkit-box;
111    overflow: hidden;
112    -webkit-line-clamp: 2;
113    -webkit-box-orient: vertical;
114  }
115
116  /* These classes are never overwritten */
117  .hide {
118    display: none !important;
119  }
120
121  @media screen and (max-width: 991px) {
122    .hide, .hide-tablet {
123      display: none !important;
124    }
125  }
126  @media screen and (max-width: 767px) {
127    .hide-mobile-landscape{
128      display: none !important;
129    }
130  }
131  @media screen and (max-width: 479px) {
132    .hide-mobile{
133      display: none !important;
134    }
135  }
136
137  .margin-0 {
138    margin: 0rem !important;
139  }
140
141  .padding-0 {
142    padding: 0rem !important;
143  }
144
145  .spacing-clean {
146    padding: 0rem !important;
147    margin: 0rem !important;
148  }
149
150  .margin-top {
151    margin-right: 0rem !important;
152    margin-bottom: 0rem !important;
153    margin-left: 0rem !important;
154  }
155
156  .padding-top {
157    padding-right: 0rem !important;
158    padding-bottom: 0rem !important;
159    padding-left: 0rem !important;
160  }
161
162  .margin-right {
163    margin-top: 0rem !important;
164    margin-bottom: 0rem !important;
165    margin-left: 0rem !important;
166  }
167
168  .padding-right {
169    padding-top: 0rem !important;
170    padding-bottom: 0rem !important;
171    padding-left: 0rem !important;
172  }
173
174  .margin-bottom {
175    margin-top: 0rem !important;
176    margin-right: 0rem !important;
177    margin-left: 0rem !important;
178  }
179
180  .padding-bottom {
181    padding-top: 0rem !important;
182    padding-right: 0rem !important;
183    padding-left: 0rem !important;
184  }
185
186  .margin-left {
187    margin-top: 0rem !important;
188    margin-right: 0rem !important;
189    margin-bottom: 0rem !important;
190  }
191
192  .padding-left {
193    padding-top: 0rem !important;
194    padding-right: 0rem !important;
195    padding-bottom: 0rem !important;
196  }
197
198  .margin-horizontal {
199    margin-top: 0rem !important;
200    margin-bottom: 0rem !important;
201  }
202
203  .padding-horizontal {
204    padding-top: 0rem !important;
205    padding-bottom: 0rem !important;
206  }
207
208  .margin-vertical {
209    margin-right: 0rem !important;
210    margin-left: 0rem !important;
211  }
212
213  .padding-vertical {
214    padding-right: 0rem !important;
215    padding-left: 0rem !important;
216  }
217
218  [data-theme="dark"] .page-hero_content h1 {
219    color: white;
220  }
221
222  [data-theme="dark"] .page-hero_content svg {
223    color: white;
224  }
225
226  /* Hide scrollbar for Chrome, Safari and Opera */
227  [hide-scrollbar]::-webkit-scrollbar {
228    display: none;
229  }
230
231  /* Hide scrollbar for IE, Edge and Firefox */
232  [hide-scrollbar] {
233    -ms-overflow-style: none;  /* IE and Edge */
234    scrollbar-width: none;  /* Firefox */
235  }
236
237  [data-theme="dark"] .section-header_component h2 {
238    color: var(--text--invert)
239  }
240
241  [data-theme="dark"] .section-header_component .section_subheading {
242    color: var(--text--invert)
243  }
244
245  [data-theme="dark"] .section-header_component {
246    border-color: var(--text--invert)
247  }
248
249  @media (min-width: 2560px) {
250    .home-news_content {
251      justify-content: center;
252      min-height: 70vh;
253    }
254  }
255
256  .button.is-icon:hover .icon-1x1-small {
257    margin-left: 0.25rem;
258  }
259
260  .form_input.is-text-area {
261    resize: vertical; /* Allows resizing only in height */
262    max-width: 100%; /* Ensures the width doesn't exceed its container */
263  }
264
265  @media (min-width: 768px) and (max-width: 991px) {
266    .navbar_hamburguer-icon {
267      display: flex !important;
268      opacity: 1 !important;
269    }
270  }
271
272  @media (min-width: 769px) and (max-width: 1200px) {
273    .side-menu_x-icon {
274      margin-bottom: 2rem;
275      margin-left: auto;
276      margin-top: 2rem;
277    }
278  }
279
280  @media only screen and (max-width: 991px) and (orientation: landscape) {
281    .navbar_side-menu {
282      height: 100dvh;
283      overflow: auto;
284    }
285
286    .side-menu_x-icon {
287      margin-left: auto;
288    }
289
290    .page-hero_component, .home-hero_text-mask {
291      padding-bottom: 2rem;
292    }
293
294    .hero-arrow_icon {
295      width: 1.5rem;
296    }
297  }
298
299  @media only screen and (max-width: 991px) and (orientation: landscape) {
300    .section_main-hero {
301      font-size: clamp(4rem, 10vw, 12.5rem);
302    }
303  }
304  
305  .jetboost-filter-active:checked + .filter_button-label {
306  font-weight: 700;
307}
308[data-looping-words-list] > * {
309  display: block;
310  width: 100%;
311}
312
313[data-looping-content-list] > * {
314  position: absolute;
315  top: 0;
316  left: 0;
317  width: 100%;
318}
319</style></div><div><code-island data-loader="{&quot;tag&quot;:&quot;FEDERATION&quot;,&quot;val&quot;:{&quot;clientModuleUrl&quot;:&quot;https://code-components.website-files.com/6abacc52b5e2ade957b367d9%2Fmodule%2Fwf-manifest.json&quot;,&quot;moduleId&quot;:&quot;_6abacc52b5e2ade957b367d9&quot;,&quot;submoduleId&quot;:&quot;Nav&quot;,&quot;exportPath&quot;:&quot;default&quot;,&quot;serverModuleUrl&quot;:&quot;_&quot;}}" data-props="{&quot;logoLabel&quot;:&quot;Joele Frank – home&quot;,&quot;menuLabel&quot;:&quot;Menu&quot;,&quot;closeLabel&quot;:&quot;Close menu&quot;,&quot;showSearch&quot;:true,&quot;searchLabel&quot;:&quot;Search&quot;,&quot;searchPlaceholder&quot;:&quot;Search site…&quot;,&quot;backLabel&quot;:&quot;Back&quot;,&quot;searchPath&quot;:&quot;/search&quot;,&quot;searchParam&quot;:&quot;query&quot;,&quot;theme&quot;:&quot;Auto&quot;,&quot;background&quot;:&quot;After hero&quot;,&quot;solidColor&quot;:&quot;White&quot;,&quot;adaptToDarkSections&quot;:true,&quot;heroSwitchPoint&quot;:50,&quot;hideOnScroll&quot;:true,&quot;hideAfter&quot;:50,&quot;lockScroll&quot;:true,&quot;closeOnOutsideClick&quot;:true,&quot;heroSelector&quot;:&quot;main header&quot;,&quot;darkSectionSelector&quot;:&quot;[data-theme=\&quot;dark\&quot;]:not(.sticky-footer)&quot;,&quot;zIndex&quot;:1003,&quot;designerPreviewOpen&quot;:false,&quot;elementId&quot;:&quot;&quot;}" data-slots="[&quot;links&quot;]" data-hydrate="true" data-webflow-context="{&quot;mode&quot;:&quot;publish&quot;,&quot;interactive&quot;:true,&quot;locale&quot;:&quot;en&quot;}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6abacc52b5e2ade957b367d9%2Fmodule%2Fe7661fce0d8d877984ca.css"/><div data-root="true" style="display:contents"><!--$--><div class="Ojbqa7bJuWUnXKULa8_I" data-theme="light" data-solid-color="white" data-state="closed" style="--nav-z:1003"><div class="rkS8iToPj3mOaCLcdyvM"><div class="Zm7boXwhQZIr9hM5lrKe"><a class="BbhxQP70tkB8_6iDhqes" href="/" aria-label="Joele Frank – home"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 88 42" class="Xw4KfzwyU_PNXtWJrk16" aria-hidden="true" focusable="false">
319<path fill-rule="evenodd" clip-rule="evenodd" d="M-0.000976562 42.0099H87.359V19.374H-0.000976562V42.0099Z" fill="#7AC100"></path><path class="nIJgM4LzafYrYnziOdcz" fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" d="M5.81445 23.2607H16.7991V26.2331H8.9876V29.3948H15.8741V32.3709H8.9876V38.1223H5.81445V23.2607ZM27.2966 30.4805C28.9012 30.4805 29.8168 29.6322 29.8168 28.3789V28.3368C29.8168 26.9336 28.8371 26.2116 27.2337 26.2116H23.9664V30.4805H27.2966ZM20.6761 23.2607H27.5124C29.4126 23.2607 30.884 23.7945 31.8687 24.768C32.6999 25.599 33.1476 26.7656 33.1476 28.1675V28.2084C33.1476 30.6098 31.8486 32.117 29.9458 32.818L33.5991 38.1223H29.7521L26.5515 33.3691H23.9672V38.1223H20.6761V23.2607ZM42.6038 27.16L44.5497 31.9467H40.6617L42.6038 27.16ZM44.129 23.2607H41.1641L34.8921 38.1223H38.1758L39.5087 34.8144H45.697L47.0361 38.1223H50.3998L44.129 23.2607ZM51.6929 23.2607H54.6441L61.4592 32.4142V23.2607H64.616V38.1223H61.8936L54.8509 28.6765V38.1223H51.6929V23.2607ZM71.6169 23.2607H68.4912V38.1223H71.6169V33.5808L73.2562 31.7975L77.6602 38.1223H81.4143L75.3686 29.567L81.1491 23.2607H77.3747L71.6169 29.759V23.2607Z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" d="M10.1371 15.5077C8.95192 15.5077 7.95426 15.2848 7.15372 14.8331C6.35318 14.3813 5.69328 13.8399 5.17041 13.2162L7.27392 10.8568C7.70905 11.3365 8.14297 11.7119 8.58531 11.9808C9.02765 12.2497 9.51566 12.3841 10.0482 12.3841C10.6852 12.3841 11.1828 12.1855 11.5434 11.7858C11.9065 11.3861 12.0868 10.7406 12.0868 9.85279V0H15.5089V10.0054C15.5089 10.9235 15.3899 11.7168 15.1447 12.3841C14.8995 13.0551 14.5437 13.6231 14.0797 14.0894C13.6181 14.5569 13.0508 14.9094 12.38 15.148C11.7081 15.3902 10.9617 15.5077 10.1371 15.5077ZM27.4831 12.9851C28.1477 12.9851 28.7642 12.8602 29.3264 12.6065C29.8935 12.3541 30.3739 12.004 30.7712 11.5586C31.1685 11.1107 31.4804 10.596 31.7043 10.0058C31.9294 9.4193 32.0414 8.79201 32.0414 8.12017V8.07686C32.0414 7.40626 31.9294 6.77401 31.7043 6.17888C31.4804 5.58375 31.1613 5.0641 30.7507 4.61744C30.3378 4.17203 29.849 3.8194 29.2855 3.55834C28.7196 3.29851 28.1032 3.16736 27.4398 3.16736C26.7595 3.16736 26.1395 3.29232 25.5832 3.54596C25.0258 3.79961 24.5478 4.15099 24.1505 4.59517C23.7508 5.04183 23.439 5.56025 23.215 6.14671C22.9899 6.73442 22.8779 7.36295 22.8779 8.03108V8.07686C22.8779 8.74623 22.9899 9.37724 23.215 9.9736C23.439 10.5687 23.7592 11.0896 24.1698 11.5363C24.5827 11.9805 25.0679 12.3343 25.6254 12.5954C26.1816 12.8552 26.8005 12.9851 27.4831 12.9851ZM27.4406 16.1538C26.2668 16.1538 25.1868 15.9423 24.2031 15.5191C23.2207 15.0972 22.3695 14.5206 21.6531 13.8006C20.9367 13.0792 20.3781 12.2305 19.9796 11.2555C19.5822 10.2817 19.3848 9.23749 19.3848 8.12023V8.07692C19.3848 6.9609 19.5883 5.91664 19.9928 4.94167C20.3985 3.9667 20.9596 3.11051 21.676 2.37433C22.3935 1.63815 23.2436 1.05787 24.238 0.634721C25.2277 0.210337 26.3101 0 27.484 0C28.6579 0 29.7354 0.210337 30.7179 0.634721C31.7003 1.05787 32.5564 1.63196 33.2715 2.35329C33.9879 3.07463 34.5441 3.92216 34.9415 4.89713C35.3388 5.8721 35.5386 6.9176 35.5386 8.03114V8.07692C35.5386 9.19171 35.3364 10.2384 34.9318 11.2122C34.5261 12.1871 33.965 13.0409 33.2487 13.7783C32.5323 14.5145 31.6775 15.0972 30.6866 15.5191C29.6933 15.9423 28.6109 16.1538 27.4406 16.1538ZM50.2928 0H38.7688V15.5077H50.3995V12.4735H42.0908V9.21691H49.3084V6.18146H42.0908V3.03422H50.2928V0ZM54.9224 0H58.288V12.4305H65.907V15.5077H54.9224V0ZM81.262 0H69.7224V15.458H81.3688V12.4335H73.0514V9.18735H80.2738V6.16163H73.0514V3.02449H81.262V0Z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none" class="Yigy_hMMCaTlQ1YJAALE" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 40H40V0H0V40Z" fill="var(--background--invert, #000)"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="var(--text--invert, #fff)" d="M10.6541 29.9989C9.07791 29.9989 7.7511 29.7115 6.68646 29.1289C5.62182 28.5463 4.7442 27.8481 4.04883 27.0438L6.84632 24.0011C7.425 24.6196 8.00208 25.1038 8.59035 25.4506C9.17862 25.7973 9.82764 25.9707 10.5358 25.9707C11.383 25.9707 12.0448 25.7146 12.5244 25.1991C13.0072 24.6837 13.247 23.8512 13.247 22.7063V10H17.7981V22.9031C17.7981 24.087 17.6398 25.1101 17.3137 25.9707C16.9876 26.836 16.5144 27.5686 15.8974 28.1699C15.2835 28.7728 14.529 29.2273 13.637 29.535C12.7434 29.8474 11.7507 29.9989 10.6541 29.9989Z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#7AC100" d="M20.2988 10H34.0481V13.9998H24.2706V18.2546H32.8903V22.2593H24.2706V29.9989H20.2988V10Z"></path></svg></a><button type="button" class="SZOpYZzePxD8aX1wRoge" aria-expanded="false" aria-controls="jf-nav-panel">Menu</button></div></div><aside id="jf-nav-panel" class="TOdV9u8EXH1CDXcTJQvU" role="dialog" aria-modal="true" aria-label="Menu" aria-hidden="true" data-view="menu" data-lenis-prevent=""><button type="button" class="GHHIUYQIO1Rd5hpVz0D2" aria-label="Close menu"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none" aria-hidden="true" focusable="false">
319<path d="M8 8L24 24M24 8L8 24" stroke="currentColor" stroke-width="2.5" stroke-linecap="square"></path></svg></button><div class="ybWpM2_uFDc9uqGGFpwB"></div><div class="bFnHHhOtBY2VBfcnJPyu"><nav class="ezotmrySU2YtO8aL2TuN" aria-label="Main"><slot name="links"></slot><button type="button" class="HUg2IVkE9yhKR1vlXfO_" aria-expanded="false" aria-controls="jf-nav-search"><span>Search</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none" aria-hidden="true" focusable="false"><path d="M35 35L27.75 27.75M31.6667 18.3333C31.6667 25.6971 25.6971 31.6667 18.3333 31.6667C10.9695 31.6667 5 25.6971 5 18.3333C5 10.9695 10.9695 5 18.3333 5C25.6971 5 31.6667 10.9695 31.6667 18.3333Z" stroke="currentColor" stroke-width="4" stroke-linecap="square"></path></svg></button></nav><form id="jf-nav-search" class="aR46lopUV3pGeTyfqatt" role="search" aria-hidden="true" action="/search" method="get"><button type="button" class="OhswCxgyTBYubsY4D4wC"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" aria-hidden="true" focusable="false"><path d="M19 12H5M11 6L5 12L11 18" stroke="currentColor" stroke-width="2" stroke-linecap="square"></path></svg><span>Back</span></button><div class="jfABABW0eQDJmaCCvHxw"><input class="CjOVRsHgoTo34B54bgtU" type="search" placeholder="Search site…" aria-label="Search" autoComplete="off" required="" tabindex="-1" name="query"/><button type="submit" class="v3PqZqOD47emwKbWMYRr" aria-label="Search" tabindex="-1"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 16" fill="none" aria-hidden="true" focusable="false"><path d="M0 8H38M31 1L38 8L31 15" stroke="currentColor" stroke-width="2" stroke-linecap="square"></path></svg></button></div></form></div></aside></div><!--/$--></div></template><div slot="links"><a href="/" class="side-menu_link">Home</a><link rel="prefetch" href="/"/><a href="/the-jf-difference" class="side-menu_link">The JF Difference</a><link rel="prefetch" href="/the-jf-difference"/><a href="/what-we-do" class="side-menu_link">What We Do</a><link rel="prefetch" href="/what-we-do"/><a href="/our-people" class="side-menu_link">Our People</a><link rel="prerender" href="/our-people"/><a href="/news" class="side-menu_link">News &amp; Insights</a><link rel="prefetch" href="/news"/><a href="/contact-us" aria-current="page" class="side-menu_link w--current">Contact Us</a><link rel="prefetch" href="/contact-us"/></div></code-island></div><main class="main-wrapper"><header data-theme="dark" data-wf--section-hero--variant="base" data-wf-component-id="3a5b1ae8-82bf-08ec-9f81-63535f729198" data-wf-variant-state="base" class="section_page-hero"><div class="padding-global"><div class="container-xlarge"><div class="page-hero_component"><div class="page-hero_content"><h1 class="page-heading">Contact  Us</h1></div></div></div></div><div class="page-hero_img-wrapper"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68128d1c5dd252de8123e9dc_contact-us-hero-v2.webp" loading="eager" width="70" alt="" class="page-hero_background-img"/></div></header><section id="intro" class="section_contact-offices"><div class="padding-global"><div class="container-xlarge"><div class="padding-section-medium bottom-padding-large"><div class="contact-offices_content"><div class="contact-offices_column"><div class="contact-office_heading-wrapper"><h2>New York</h2></div><div class="contact-office_image-wrapper"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6157e32be46e4dff1e_new-york-office-img.webp" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6157e32be46e4dff1e_new-york-office-img-p-500.webp 500w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6157e32be46e4dff1e_new-york-office-img-p-800.webp 800w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6157e32be46e4dff1e_new-york-office-img-p-1080.webp 1080w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6157e32be46e4dff1e_new-york-office-img.webp 1200w" alt="" class="contact-office_image"/></div><div class="contact-office_info-wrapper"><div class="contact-office_address"><p>22 Vanderbilt Avenue, 18th Floor</p><p>New York, NY 10017</p></div><div class="contact-office_phones"><p>Tel: 212.355.4449</p></div><a href="mailto:[email protected]?subject=Contact%20from%20website" class="decoration-none">[email protected]</a></div></div><div class="contact-offices_column"><div class="contact-office_heading-wrapper"><h2>San Francisco</h2></div><div class="contact-office_image-wrapper"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6115045b3eb75d4e22_san-francisco-office-img.webp" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6115045b3eb75d4e22_san-francisco-office-img-p-500.webp 500w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6115045b3eb75d4e22_san-francisco-office-img-p-800.webp 800w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6115045b3eb75d4e22_san-francisco-office-img-p-1080.webp 1080w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/68406b6115045b3eb75d4e22_san-francisco-office-img.webp 1200w" alt="" class="contact-office_image"/></div><div class="contact-office_info-wrapper"><div class="contact-office_address"><p>One California Street, Suite 1800</p><p>San Francisco, CA 94111</p></div><div class="contact-office_phones"><p>Tel: 415.869.3950</p></div><a href="mailto:[email protected]?subject=Contact%20from%20website" class="decoration-none">[email protected]</a></div></div></div></div></div></div></section><section class="section_contact-form"><div class="padding-global"><div class="container-xlarge"><div class="padding-section-medium contact"><div class="contact-form_content"><h2>Get in touch</h2><div class="contact_form-block w-form"><form id="wf-form-Contact-Form" name="wf-form-Contact-Form" data-name="Contact Form" method="get" class="contact_form" data-wf-page-id="67ae080a89e64a58e21d4eb0" data-wf-element-id="84aae46d-eb9a-5e89-0da4-cb478e12d8e4"><div class="form_input-wrapper"><label for="First-Name" class="form_label">First Name</label><input class="form_input w-input" maxlength="256" name="First-Name" data-name="First Name" placeholder="" type="text" id="First-Name" required=""/></div><div class="form_input-wrapper"><label for="Last-Name" class="form_label">Last Name</label><input class="form_input w-input" maxlength="256" name="Last-Name" data-name="Last Name" placeholder="" type="text" id="Last-Name" required=""/></div><div class="form_input-wrapper"><label for="Job-Title" class="form_label">Job Title</label><input class="form_input w-input" maxlength="256" name="Job-Title" data-name="Job Title" placeholder="" type="text" id="Job-Title"/></div><div class="form_input-wrapper"><label for="Organization" class="form_label">Organization</label><input class="form_input w-input" maxlength="256" name="Organization" data-name="Organization" placeholder="" type="text" id="Organization"/></div>
319<div id="w-node-_07bfc662-c401-65c2-6638-7bf1e736a1b9-e21d4eb0" class="form_input-wrapper"><label for="Topic-of-Interest" class="form_label">Topic of Interest</label><input class="form_input w-input" maxlength="256" name="Topic-of-Interest" data-name="Topic of Interest" placeholder="" type="text" id="Topic-of-Interest"/></div><div id="w-node-_08ac00eb-e174-eb58-06da-ad420284b0c7-e21d4eb0" class="form_input-wrapper"><label for="Email" class="form_label">Email</label><input class="form_input w-input" maxlength="256" name="Email" data-name="Email" placeholder="" type="email" id="Email"/></div><div id="w-node-_996db3ce-3932-deef-ac8c-8643425bd3c5-e21d4eb0" class="form_input-wrapper"><label for="Message" class="form_label">Message (Please share any additional details)</label><textarea required="" placeholder="" maxlength="5000" id="Message" name="Message" data-name="Message" class="form_input is-text-area w-input"></textarea></div><input type="submit" data-wait="Please wait..." id="w-node-_84aae46d-eb9a-5e89-0da4-cb478e12d8eb-e21d4eb0" class="button w-button" value="Submit"/></form><div class="success-message w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div></div></div></div></div></section><section class="section_contact-join-our-team"><div class="padding-global"><div class="container-xlarge"><div class="padding-section-medium bottom-padding-large"><div class="contact-join-our-team_content"><div data-wf--section-header--variant="on-dark" class="section-header_component w-variant-b1b8a6d8-ef00-bc15-746c-5efef98f0d6d"><h2 id="w-node-_1480b3ee-dd5f-34bb-120c-9138ce294727-ce294726" class="heading-2">Join  Our  Team</h2><div id="w-node-_1480b3ee-dd5f-34bb-120c-9138ce294729-ce294726" class="subheading_wrapper"><a href="/join-our-team" class="button is-icon left-aligned w-variant-b1b8a6d8-ef00-bc15-746c-5efef98f0d6d w-inline-block"><div>Learn More</div><div class="icon-1x1-small w-embed"><svg aria-hidden="true" fill='currentColor' role="img" viewBox="0 0 20 21" xmlns="http://www.w3.org/2000/svg"><title>Arrow Right</title><polygon points="16.172 9 10.101 2.929 11.515 1.515 20 10 19.293 10.707 11.515 18.485 10.101 17.071 16.172 11 0 11 0 9"/></svg></div></a></div></div><div class="contact-join-our-team_images"><div hide-scrollbar="" class="join-our-team_grid"><div class="image-square join-our-team"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717185d3010e037b5d69_join-our-team-img-1.webp" loading="lazy" sizes="(max-width: 479px) 100vw, 420px" srcset="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717185d3010e037b5d69_join-our-team-img-1-p-500.webp 500w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717185d3010e037b5d69_join-our-team-img-1-p-800.webp 800w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717185d3010e037b5d69_join-our-team-img-1.webp 876w" alt="" class="default-image"/></div><div class="image-square join-our-team"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717159433586aa110648_join-our-team-img-2.webp" loading="lazy" sizes="(max-width: 479px) 100vw, 420px" srcset="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717159433586aa110648_join-our-team-img-2-p-500.webp 500w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717159433586aa110648_join-our-team-img-2-p-800.webp 800w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717159433586aa110648_join-our-team-img-2.webp 876w" alt="" class="default-image"/></div><div class="image-square join-our-team"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/684071712a0699f1b89f792d_join-our-team-img-3.webp" loading="lazy" sizes="(max-width: 479px) 100vw, 420px" srcset="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/684071712a0699f1b89f792d_join-our-team-img-3-p-500.webp 500w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/684071712a0699f1b89f792d_join-our-team-img-3-p-800.webp 800w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/684071712a0699f1b89f792d_join-our-team-img-3.webp 876w" alt="" class="default-image"/></div><div class="image-square join-our-team"><img src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717144f2093e0cf8515a_join-our-team-img-4.webp" loading="lazy" sizes="(max-width: 479px) 100vw, 420px" srcset="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717144f2093e0cf8515a_join-our-team-img-4-p-500.webp 500w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717144f2093e0cf8515a_join-our-team-img-4-p-800.webp 800w, https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/6840717144f2093e0cf8515a_join-our-team-img-4.webp 876w" alt="" class="default-image"/></div></div></div></div></div></div></div></section></main><footer data-theme="dark" class="footer"><div class="padding-global"><div class="container-xlarge"><div class="padding-section-small"><div class="footer_component"><div id="w-node-_7df444d8-7f11-8a15-a637-e2d4a4e881d5-a4e881d1" class="footer_left"><a aria-label="navigate to home" href="/" class="footer_mobile-logo w-inline-block">
319<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 52 35" fill="none" class="monogram_logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.4407 34.6422C8.71043 34.6422 6.41213 34.1444 4.56794 33.1352C2.72376 32.1261 1.20356 30.9167 -0.000976562 29.5233L4.84485 24.2528C5.84724 25.3242 6.84687 26.163 7.86587 26.7636C8.88488 27.3642 10.0091 27.6646 11.2358 27.6646C12.7034 27.6646 13.8498 27.2208 14.6805 26.328C15.5167 25.4352 15.9321 23.9931 15.9321 22.0099V0H23.8156V22.3508C23.8156 24.4016 23.5414 26.1738 22.9765 27.6646C22.4116 29.1634 21.592 30.4324 20.5232 31.474C19.4599 32.5184 18.1529 33.3057 16.6077 33.8387C15.0598 34.3798 13.3403 34.6422 11.4407 34.6422Z" fill="white" STYLE="fill:white;fill-opacity:1;"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M28.1475 0H51.964V6.92845H35.0274V14.2986H49.9584V21.2357H35.0274V34.6422H28.1475V0Z" fill="#7AC100" STYLE="fill:#7AC100;fill:color(display-p3 0.4784 0.7569 0.0000);fill-opacity:1;"></path></svg></a><div class="footer_menu"><a href="/" class="footer_link">Home</a><a href="/the-jf-difference" class="footer_link">The JF Difference</a><a href="/what-we-do" class="footer_link">What We Do</a><a href="/our-people" class="footer_link">Our People</a><a href="/news" class="footer_link">News &amp; Insights</a></div><div class="footer_menu"><a href="/join-our-team" class="footer_link">Join Our Team</a><a href="/contact-us" aria-current="page" class="footer_link w--current">Contact Us</a><a href="https://www.linkedin.com/company/joele-frank/" target="_blank" class="footer_link hide">LinkedIn</a><a aria-label="Follow us on LinkedIn" href="https://www.linkedin.com/company/joele-frank/" target="_blank" class="footer_link icon-1x1-medium w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24" fill="none"><path d="M19.039 19.043H16.078V14.4C16.078 13.294 16.055 11.87 14.534 11.87C12.99 11.87 12.754 13.07 12.754 14.319V19.041H9.792V9.50001H12.637V10.8H12.676C12.9609 10.3131 13.3725 9.91263 13.867 9.6411C14.3614 9.36957 14.9203 9.23717 15.484 9.25801C18.484 9.25801 19.04 11.233 19.04 13.804V19.042L19.039 19.043ZM6.447 8.19401C6.1069 8.19381 5.7745 8.09279 5.4918 7.90372C5.2091 7.71465 4.98879 7.44601 4.85874 7.13176C4.72868 6.81751 4.6947 6.47176 4.7611 6.13821C4.8275 5.80465 4.99129 5.49827 5.23178 5.25778C5.47226 5.0173 5.77865 4.8535 6.1122 4.7871C6.44575 4.72071 6.79151 4.75468 7.10575 4.88474C7.42 5.0148 7.68864 5.2351 7.87771 5.5178C8.06678 5.8005 8.1678 6.13291 8.168 6.47301C8.16826 6.69909 8.12393 6.923 8.03753 7.13192C7.95114 7.34084 7.82438 7.53066 7.66452 7.69052C7.50466 7.85039 7.31483 7.97714 7.10591 8.06354C6.89699 8.14993 6.67308 8.19427 6.447 8.19401ZM7.932 19.043H4.963V9.50001H7.932V19.043ZM20.521 2.00001H3.476C3.28445 1.99763 3.0943 2.03302 2.91643 2.10417C2.73856 2.17531 2.57646 2.28081 2.43938 2.41464C2.30231 2.54846 2.19295 2.70799 2.11756 2.8841C2.04217 3.06021 2.00222 3.24945 2 3.44101V20.559C2.00222 20.7506 2.04217 20.9398 2.11756 21.1159C2.19295 21.292 2.30231 21.4515 2.43938 21.5854C2.57646 21.7192 2.73856 21.8247 2.91643 21.8958C3.0943 21.967 3.28445 22.0024 3.476 22H20.518C20.9055 22.0051 21.2792 21.8562 21.5571 21.586C21.8349 21.3159 21.9942 20.9465 22 20.559V3.44101C21.9939 3.05359 21.8346 2.68438 21.5568 2.41427C21.279 2.14416 20.9054 1.99519 20.518 2.00001H20.521Z" fill="currentColor"></path></svg></a></div><div class="footer_menu"><a href="/terms-of-use" class="footer_link">Terms Of Use</a><a href="/privacy-policy" class="footer_link">Privacy Policy</a></div></div><div id="w-node-_7df444d8-7f11-8a15-a637-e2d4a4e881ed-a4e881d1" class="footer_right"><div id="w-node-_7df444d8-7f11-8a15-a637-e2d4a4e881ef-a4e881d1" class="footer_info-content"><div class="footer_info-title">New York</div><div class="text-rich-text text-color-invert-secondary w-richtext"><p>22 Vanderbilt Avenue<br/>18th Floor<br/>New York, NY 10017</p></div></div><div id="w-node-_7df444d8-7f11-8a15-a637-e2d4a4e881f9-a4e881d1" class="footer_info-content"><div class="footer_info-title">San Francisco</div><div class="text-rich-text text-color-invert-secondary w-richtext"><p>One California Street<br/>Suite 1800<br/>San Francisco, CA 94111</p></div></div></div></div><div class="footer_bottom"><a aria-label="navigate to home" href="/" class="footer_logo-wrapper w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 88 42" fill="none" class="footer_logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M-0.000976562 42.0099H87.359V19.374H-0.000976562V42.0099Z" fill="#7AC100"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M5.81445 23.2607H16.7991V26.2331H8.9876V29.3948H15.8741V32.3709H8.9876V38.1223H5.81445V23.2607ZM27.2966 30.4805C28.9012 30.4805 29.8168 29.6322 29.8168 28.3789V28.3368C29.8168 26.9336 28.8371 26.2116 27.2337 26.2116H23.9664V30.4805H27.2966ZM20.6761 23.2607H27.5124C29.4126 23.2607 30.884 23.7945 31.8687 24.768C32.6999 25.599 33.1476 26.7656 33.1476 28.1675V28.2084C33.1476 30.6098 31.8486 32.117 29.9458 32.818L33.5991 38.1223H29.7521L26.5515 33.3691H23.9672V38.1223H20.6761V23.2607ZM42.6038 27.16L44.5497 31.9467H40.6617L42.6038 27.16ZM44.129 23.2607H41.164
3191L34.8921 38.1223H38.1758L39.5087 34.8144H45.697L47.0361 38.1223H50.3998L44.129 23.2607ZM51.6929 23.2607H54.6441L61.4592 32.4142V23.2607H64.616V38.1223H61.8936L54.8509 28.6765V38.1223H51.6929V23.2607ZM71.6169 23.2607H68.4912V38.1223H71.6169V33.5808L73.2562 31.7975L77.6602 38.1223H81.4143L75.3686 29.567L81.1491 23.2607H77.3747L71.6169 29.759V23.2607Z" fill="black"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1371 15.5077C8.95192 15.5077 7.95426 15.2848 7.15372 14.8331C6.35318 14.3813 5.69328 13.8399 5.17041 13.2162L7.27392 10.8568C7.70905 11.3365 8.14297 11.7119 8.58531 11.9808C9.02765 12.2497 9.51566 12.3841 10.0482 12.3841C10.6852 12.3841 11.1828 12.1855 11.5434 11.7858C11.9065 11.3861 12.0868 10.7406 12.0868 9.85279V0H15.5089V10.0054C15.5089 10.9235 15.3899 11.7168 15.1447 12.3841C14.8995 13.0551 14.5437 13.6231 14.0797 14.0894C13.6181 14.5569 13.0508 14.9094 12.38 15.148C11.7081 15.3902 10.9617 15.5077 10.1371 15.5077ZM27.4831 12.9851C28.1477 12.9851 28.7642 12.8602 29.3264 12.6065C29.8935 12.3541 30.3739 12.004 30.7712 11.5586C31.1685 11.1107 31.4804 10.596 31.7043 10.0058C31.9294 9.4193 32.0414 8.79201 32.0414 8.12017V8.07686C32.0414 7.40626 31.9294 6.77401 31.7043 6.17888C31.4804 5.58375 31.1613 5.0641 30.7507 4.61744C30.3378 4.17203 29.849 3.8194 29.2855 3.55834C28.7196 3.29851 28.1032 3.16736 27.4398 3.16736C26.7595 3.16736 26.1395 3.29232 25.5832 3.54596C25.0258 3.79961 24.5478 4.15099 24.1505 4.59517C23.7508 5.04183 23.439 5.56025 23.215 6.14671C22.9899 6.73442 22.8779 7.36295 22.8779 8.03108V8.07686C22.8779 8.74623 22.9899 9.37724 23.215 9.9736C23.439 10.5687 23.7592 11.0896 24.1698 11.5363C24.5827 11.9805 25.0679 12.3343 25.6254 12.5954C26.1816 12.8552 26.8005 12.9851 27.4831 12.9851ZM27.4406 16.1538C26.2668 16.1538 25.1868 15.9423 24.2031 15.5191C23.2207 15.0972 22.3695 14.5206 21.6531 13.8006C20.9367 13.0792 20.3781 12.2305 19.9796 11.2555C19.5822 10.2817 19.3848 9.23749 19.3848 8.12023V8.07692C19.3848 6.9609 19.5883 5.91664 19.9928 4.94167C20.3985 3.9667 20.9596 3.11051 21.676 2.37433C22.3935 1.63815 23.2436 1.05787 24.238 0.634721C25.2277 0.210337 26.3101 0 27.484 0C28.6579 0 29.7354 0.210337 30.7179 0.634721C31.7003 1.05787 32.5564 1.63196 33.2715 2.35329C33.9879 3.07463 34.5441 3.92216 34.9415 4.89713C35.3388 5.8721 35.5386 6.9176 35.5386 8.03114V8.07692C35.5386 9.19171 35.3364 10.2384 34.9318 11.2122C34.5261 12.1871 33.965 13.0409 33.2487 13.7783C32.5323 14.5145 31.6775 15.0972 30.6866 15.5191C29.6933 15.9423 28.6109 16.1538 27.4406 16.1538ZM50.2928 0H38.7688V15.5077H50.3995V12.4735H42.0908V9.21691H49.3084V6.18146H42.0908V3.03422H50.2928V0ZM54.9224 0H58.288V12.4305H65.907V15.5077H54.9224V0ZM81.262 0H69.7224V15.458H81.3688V12.4335H73.0514V9.18735H80.2738V6.16163H73.0514V3.02449H81.262V0Z" fill="currentColor"></path></svg></a><div class="copyright-catchphrase"><div class="take-control-footer-text">Take Control.</div><p class="footer_copyright">Joele Frank, Wilkinson Brimmer Katcher ©<span data-current-year="">20??</span></p></div></div></div></div></div></footer></div>
319<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=67ae080a89e64a58e21d4e2d" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
319<script src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/js/jf-staging.schunk.01b56ef8c8bd111c.js" type="text/javascript" integrity="sha384-iYCaTaSJwo7SLv+5Fpais23xfjuXE4ZoLekLYLRLibhpj99yMyQiXSRZk4pg0rtX" crossorigin="anonymous"></script>
319<script src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/js/jf-staging.schunk.68aa3daa3667a7cf.js" type="text/javascript" integrity="sha384-Jht3XbYqtSOzyfUz4OCJ2wBO0lP0WeYDcZQdAEwDB/FoYgd4DdGGC3Rvr4MJ20tr" crossorigin="anonymous"></script>
319<script src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/js/jf-staging.schunk.cbba674e0228ffda.js" type="text/javascript" integrity="sha384-mqOlk4a/FiSVBHtFuuDQBG7kqakEunZKXuXG6Dz03RcQfiK7me2NSozDkzU6xPZ5" crossorigin="anonymous"></script>
319<script src="https://cdn.prod.website-files.com/67ae080a89e64a58e21d4e2d/js/jf-staging.2120f5c2.f04005896ae68972.js" type="text/javascript" integrity="sha384-D5aDrLl6jtAtnE5EpOmqTL84bh9USZKgjnnrI6rSM7+6JJuAUgGHGJUbOl2lcbQv" crossorigin="anonymous"></script>
319<script src="https://cdn.prod.website-files.com/gsap/3.15.0/gsap.min.js" type="text/javascript"></script>
319<script src="https://cdn.prod.website-files.com/gsap/3.15.0/Flip.min.js" type="text/javascript"></script>
319<script src="https://cdn.prod.website-files.com/gsap/3.15.0/ScrollTrigger.min.js" type="text/javascript"></script>
319<script src="https://cdn.prod.website-files.com/gsap/3.15.0/SplitText.min.js" type="text/javascript"></script>
319<script src="https://cdn.prod.website-files.com/gsap/3.15.0/Draggable.min.js" type="text/javascript"></script>
319<script src="https://cdn.prod.website-files.com/gsap/3.15.0/InertiaPlugin.min.js" type="text/javascript"></script>
319<script type="text/javascript">gsap.registerPlugin(Flip,ScrollTrigger,SplitText,Draggable,InertiaPlugin);</script>
319<!-- Lenis script -->
320<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/lenis.css">
321<script src="https://unpkg.com/[email protected]/dist/lenis.min.js"></script>
vendor: 1 bytes, line 321
321
322<script>
323let lenis = new Lenis({
324  lerp: 0.1,
325  wheelMultiplier: 0.7,
326  gestureOrientation: "vertical",
327  normalizeWheel: false,
328  smoothTouch: false,
329});
330function raf(time) {
331  lenis.raf(time);
332  requestAnimationFrame(raf);
333}
334requestAnimationFrame(raf);
335$("[data-lenis-start]").on("click", function (e) {
336  if (e.target === this) {
337    console.log('Enabling scroll');
338    lenis.start();
339  }
340});
341$("[data-lenis-stop]").on("click", function (e) {
342  if (e.target === this) {
343    console.log('Disabling scroll');
344    lenis.stop();
345  }
346});
347$("[data-lenis-toggle]").on("click", function (e) {
348  if (e.target === this) {
349    $(this).toggleClass("stop-scroll");
350    if ($(this).hasClass("stop-scroll")) {
351      console.log('toggle stop');
352      lenis.stop();
353    } else {
354      console.log('toggle start');
355      lenis.start();
356    }
357  }
358});
359</script>
359
360
361<script>
362  // Ensure GSAP and ScrollTrigger are loaded
363  gsap.registerPlugin(ScrollTrigger);
364
365  // Function to initialize fade-in animations
366  function initFadeInAnimations() {
367    // Select all elements with the `fade-in` attribute
368    document.querySelectorAll('[fade-in]').forEach((el) => {
369      // Create a ScrollTrigger animation for each element
370      gsap.fromTo(
371        el,
372        { opacity: 0, y: 40 }, // Start state: transparent and shifted down
373        { 
374          opacity: 1, 
375          y: 0, 
376          duration: 1, 
377          ease: "power2.out", 
378          scrollTrigger: {
379            trigger: el, // Use the element as the trigger
380            start: "top 90%", // Start animation when the element enters the viewport
381            toggleActions: "play none none none" // Play animation once
382          }
383        }
384      );
385    });
386  }
387
388  // Initialize fade-in animations on page load
389  document.addEventListener('DOMContentLoaded', initFadeInAnimations);
390</script>
390
391
392<script>
393  function initDynamicCurrentYear() {  
394  const currentYear = new Date().getFullYear();
395  const currentYearElements = document.querySelectorAll('[data-current-year]');
396  currentYearElements.forEach(currentYearElement => {
397    currentYearElement.textContent = currentYear;
398  });
399}
400
401// Initialize Dynamic Current Year
402document.addEventListener('DOMContentLoaded', () => {
403  initDynamicCurrentYear();
404});
405</script>
405
406
407<script>
408//Callout text animation
409//gsap.registerPlugin(ScrollTrigger, SplitText)
410  
411function initHighlightText(){
412
413  let splitHeadingTargets = document.querySelectorAll("[data-highlight-text]")
414  
415  splitHeadingTargets.forEach((heading) => {
416    
417    // Define your default ScrollTrigger start point
418    const scrollStart = heading.getAttribute("data-highlight-scroll-start") || "top 70%"
419    
420    // Default ScrollTrigger end point
421    const scrollEnd = heading.getAttribute("data-highlight-scroll-end") || "center 40%"
422    
423    // Opacity of each letter before they start animating
424    const fadedValue = heading.getAttribute("data-highlight-fade") || 0.2
425    
426    // Lower value here means a smoother reveal, feel free to test!
427    const staggerValue =  heading.getAttribute("data-highlight-stagger") || 0.1
428    
429    new SplitText(heading, {
430      type: "words, chars",
431      autoSplit: true,
432      aria: "hidden",
433      onSplit(self) {
434        // use a context to collect up all the animations
435        let ctx = gsap.context(() => {
436          let tl = gsap.timeline({
437            scrollTrigger: {
438              scrub: true,
439              trigger: heading, 
440              start: scrollStart,
441              end: scrollEnd,
442            }
443          })
444          tl.from(self.chars,{
445            autoAlpha: fadedValue,
446            stagger: staggerValue,
447            ease: "linear"
448          })
449        });
450        return ctx; // return our animations so GSAP can clean them up when onSplit fires
451      }
452    });    
453  });
454  
455}
456
457document.addEventListener("DOMContentLoaded", () =>{
458  initHighlightText();
459});
460</script>
vendor: 1 bytes, line 460
460
461<script>
462// UNIVERSAL NEWS NAVIGATION CODE - FIXED VERSION
463
464(function() {
465    'use strict';
466    
467    // Prevent multiple initializations
468    if (window.newsNavigationInitialized) {
469        return;
470    }
471    window.newsNavigationInitialized = true;
472
473    // Check if we're on the news page
474    const isNewsPage = window.location.pathname.includes('/news') || 
475                      document.querySelector('[news-page-identifier]') !== null;
476
477    document.addEventListener("DOMContentLoaded", function () {
478        
479        if (isNewsPage) {
480            // NEWS PAGE FUNCTIONALITY
481            initializeNewsPageScrolling();
482        } else {
483            // OTHER PAGES (Home, Bio, etc.) FUNCTIONALITY
484            initializeNewsLinks();
485        }
486    });
487
488    function initializeNewsLinks() {
489        let isInitialized = false;
490        
491        function setupNewsLinks() {
492            if (isInitialized) return;
493            
494            const newsItems = document.querySelectorAll("[news-item]");
495            if (newsItems.length === 0) return;
496            
497            newsItems.forEach(item => {
498                // Check if already has our listener
499                if (item.hasAttribute('data-news-listener')) return;
500                
501                item.setAttribute('data-news-listener', 'true');
502                item.addEventListener("click", handleNewsClick);
503            });
504            
505            isInitialized = true;
506        }
507
508        function handleNewsClick(event) {
509            // Prevent any default behavior that might cause reload
510            event.preventDefault();
511            event.stopPropagation();
512            
513            try {
514                const newsSlug = this.getAttribute("news-item");
515                
516                if (!newsSlug || newsSlug.trim() === '') {
517                    console.warn('News item clicked but no slug found:', this);
518                    return false;
519                }
520
521                // Store the slug
522                if (typeof(Storage) !== "undefined") {
523                    try {
524                        window.localStorage.setItem("searchParamNews", newsSlug);
525                        console.log('Stored news slug:', newsSlug);
526                    } catch (e) {
527                        console.warn('Failed to set localStorage, using URL parameter:', e);
528                        window.location.href = `/news?item=${encodeURIComponent(newsSlug)}`;
529                        return false;
530                    }
531                } else {
532                    window.location.href = `/news?item=${encodeURIComponent(newsSlug)}`;
533                    return false;
534                }
535
536                // Navigate to news page
537                window.location.href = "/news";
538                
539            } catch (error) {
540                console.error('Error handling news item click:', error);
541            }
542            
543            return false;
544        }
545
546        // Initial setup
547        setupNewsLinks();
548
549        // Handle dynamic content
550        const contentWrapper = document.querySelector("[get-no-of-items]") || document.body;
551        if (window.MutationObserver) {
552            const observer = new MutationObserver(function(mutations) {
553                let hasNewNewsItems = false;
554                
555                mutations.forEach(function(mutation) {
556                    if (mutation.type === 'childList') {
557                        mutation.addedNodes.forEach(function(node) {
558                            if (node.nodeType === 1) {
559                                if ((node.hasAttribute && node.hasAttribute('news-item')) || 
560                                    (node.querySelector && node.querySelector('[news-item]'))) {
561                                    hasNewNewsItems = true;
562                                }
563                            }
564                        });
565                    }
566                });
567                
568                if (hasNewNewsItems) {
569                    setTimeout(setupNewsLinks, 100);
570                }
571            });
572            
573            observer.observe(contentWrapper, { 
574                childList: true, 
575                subtree: true 
576            });
577        }
578    }
579
580    function initializeNewsPageScrolling() {
581        let hasProcessedNewsSlug = false;
582        let retryCount = 0;
583        const maxRetries = 30;
584        const retryDelay = 200;
585        let paginationAttempts = 0;
586        const maxPaginationAttempts = 10;
587
588        function getNewsSlugFromStorage() {
589            if (typeof(Storage) === "undefined") return null;
590            
591            try {
592                return window.localStorage.getItem("searchParamNews");
593            } catch (e) {
594                console.warn('Failed to read from localStorage:', e);
595                return null;
596            }
597        }
598
599        function getNewsSlugFromURL() {
600            try {
601                const urlParams = new URLSearchParams(window.location.search);
602                return urlParams.get('item');
603            } catch (e) {
604                console.warn('Failed to read URL parameters:', e);
605                return null;
606            }
607        }
608
609        function clearStoredNewsSlug() {
610            if (typeof(Storage) === "undefined") return;
611            
612            try {
613                window.localStorage.removeItem("searchParamNews");
614                console.log('Cleared stored news slug');
615            } catch (e) {
616                console.warn('Failed to clear localStorage:', e);
617            }
618        }
619
620        function scrollToAndOpenNews() {
621            if (hasProcessedNewsSlug) {
622                return; // Already processed
623            }
624
625            const storedNewsSlug = getNewsSlugFromStorage() || getNewsSlugFromURL();
626            if (!storedNewsSlug) {
627                console.log('No news slug found to process');
628                return;
629            }
630
631            console.log('Processing news slug:', storedNewsSlug);
632
633            const newsItems = document.querySelectorAll("[news-item]");
634            
635            if (newsItems.length === 0) {
636                if (retryCount < maxRetries) {
637                    retryCount++;
638                    console.log(`No news items found, retrying... (${retryCount}/${maxRetries})`);
639                    setTimeout(scrollToAndOpenNews, retryDelay);
640                } else {
641                    console.warn('Max retries reached, news items not found');
642                    clearStoredNewsSlug();
643                }
644                return;
645            }
646
647            let targetNewsItem = null;
648            newsItems.forEach(newsItem => {
649                if (newsItem.getAttribute("news-item") === storedNewsSlug) {
650                    targetNewsItem = newsItem;
651                }
652            });
653
654            if (!targetNewsItem) {
655                console.log('News item not found on current page, checking pagination...');
656                handlePaginatedSearch(storedNewsSlug);
657                return;
658            }
659
660            // Mark as processed BEFORE doing anything to prevent loops
661            hasProcessedNewsSlug = true;
662            clearStoredNewsSlug();
663
664            try {
665                console.log('Found target news item, scrolling...');
666                
667                // Scroll to the item
668                targetNewsItem.scrollIntoView({ 
669                    behavior: 'smooth', 
670                    block: 'center',
671                    inline: 'nearest'
672                });
673
674                // Wait for scroll to complete, then trigger click
675                setTimeout(() => {
676                    try {
677                        console.log('Triggering click on news item...');
678                        
679                        // Create a proper click event instead of just calling .click()
680                        const clickEvent = new MouseEvent('click', {
681                            bubbles: true,
682                            cancelable: true,
683                            view: window
684                        });
685                        
686                        targetNewsItem.dispatchEvent(clickEvent);
687                        
688                    } catch (e) {
689                        console.error('Failed to trigger click on news item:', e);
690                    }
691                }, 800); // Longer delay to ensure scroll completes
692
693            } catch (error) {
694                console.error('Error processing news item:', error);
695            }
696        }
697
698        function handlePaginatedSearch(newsSlug) {
699            if (paginationAttempts >= maxPaginationAttempts) {
700                console.warn('Max pagination attempts reached, giving up');
701                clearStoredNewsSlug();
702                showNewsItemNotFoundMessage(newsSlug);
703                return;
704            }
705            
706            paginationAttempts++;
707            console.log(`Searching for news item across pages... (attempt ${paginationAttempts})`);
708            
709            // Look for JetBoost pagination controls
710            const nextPageButton = document.querySelector('.jetboost-pagination-next-x1gy') ||
711                                 document.querySelector('[data-jetboost-element="pg-next"]') ||
712                                 document.querySelector('.jetboost-pagination-next') ||
713                                 document.querySelector('[jetboost-pagination="next"]') ||
714                                 document.querySelector('a[aria-label*="next"]') ||
715                                 document.querySelector('.w-pagination-next');
716            
717            const loadMoreButton = document.querySelector('[data-jetboost-element="load-more"]') ||
718                                 document.querySelector('.jetboost-load-more') ||
719                                 document.querySelector('[jetboost-pagination="load-more"]');
720            
721            // Check if we can load more content
722            if (loadMoreButton && !loadMoreButton.disabled && loadMoreButton.style.display !== 'none') {
723                console.log('Found load more button, clicking to load more items...');
724                
725                // Set up observer to watch for new content
726                const observer = new MutationObserver(function(mutations) {
727                    let hasNewItems = false;
728                    mutations.forEach(function(mutation) {
729                        if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
730                            mutation.addedNodes.forEach(function(node) {
731                                if (node.nodeType === 1 && 
732                                    ((node.hasAttribute && node.hasAttribute('news-item')) || 
733                                     (node.querySelector && node.querySelector('[news-item]')))) {
734                                    hasNewItems = true;
735                                }
736                            });
737                        }
738                    });
739                    
740                    if (hasNewItems) {
741                        observer.disconnect();
742                        // Check if our target item is now available
743                        setTimeout(() => {
744                            const targetItem = document.querySelector(`[news-item="${newsSlug}"]`);
745                            if (targetItem) {
746                                console.log('Found target item after loading more content');
747                                hasProcessedNewsSlug = true;
748                                clearStoredNewsSlug();
749                                
750                                targetItem.scrollIntoView({ 
751                                    behavior: 'smooth', 
752                                    block: 'center' 
753                                });
754                                
755                                setTimeout(() => {
756                                    const clickEvent = new MouseEvent('click', {
757                                        bubbles: true,
758                                        cancelable: true,
759                                        view: window
760                                    });
761                                    targetItem.dispatchEvent(clickEvent);
762                                }, 800);
763                            } else {
764                                // Try loading more again if button is still available
765                                setTimeout(() => {
766                                    if (!loadMoreButton.disabled && loadMoreButton.style.display !== 'none') {
767                                        handlePaginatedSearch(newsSlug);
768                                    } else {
769                                        console.warn('News item not found after loading all content');
770                                        clearStoredNewsSlug();
771                                    }
772                                }, 500);
773                            }
774                        }, 1000);
775                    }
776                });
777                
778                const newsWrapper = document.querySelector("[get-no-of-items]") || document.body;
779                observer.observe(newsWrapper, { childList: true, subtree: true });
780                
781                // Click the load more button
782                loadMoreButton.click();
783                
784            } else if (nextPageButton && !nextPageButton.classList.contains('disabled') && 
785                      !nextPageButton.disabled && nextPageButton.style.display !== 'none') {
786                console.log('Found next page button, navigating to next page...');
787                
788                // Reset flags for the new page
789                hasProcessedNewsSlug = false;
790                retryCount = 0;
791                
792                // Set up observer to detect when page content changes
793                const observer = new MutationObserver(function(mutations) {
794                    let pageContentChanged = false;
795                    mutations.forEach(function(mutation) {
796                        if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
797                            mutation.addedNodes.forEach(function(node) {
798                                if (node.nodeType === 1 && 
799                                    ((node.hasAttribute && node.hasAttribute('news-item')) || 
800                                     (node.querySelector && node.querySelector('[news-item]')))) {
801                                    pageContentChanged = true;
802                                }
803                            });
804                        }
805                    });
806                    
807                    if (pageContentChanged) {
808                        observer.disconnect();
809                        console.log('Page content changed, searching for target item...');
810                        // Wait a bit for content to fully load, then search again
811                        setTimeout(() => {
812                            scrollToAndOpenNews();
813                        }, 1500);
814                    }
815                });
816                
817                const newsWrapper = document.querySelector("[get-no-of-items]") || document.body;
818                observer.observe(newsWrapper, { childList: true, subtree: true });
819                
820                // Also set a fallback timer in case mutation observer doesn't catch the change
821                setTimeout(() => {
822                    observer.disconnect();
823                    if (!hasProcessedNewsSlug) {
824                        console.log('Fallback: Checking for target item after page navigation...');
825                        scrollToAndOpenNews();
826                    }
827                }, 3000);
828                
829                // Click the next page button
830                nextPageButton.click();
831                
832            } else {
833                // No pagination found or no more pages
834                console.warn('News item not found and no pagination options available');
835                clearStoredNewsSlug();
836                
837                // Optional: Show user message that item wasn't found
838                showNewsItemNotFoundMessage(newsSlug);
839            }
840        }
841        
842        function showNewsItemNotFoundMessage(newsSlug) {
843            // Optional: Create a temporary notification to inform the user
844            const notification = document.createElement('div');
845            notification.style.cssText = `
846                position: fixed;
847                top: 20px;
848                right: 20px;
849                background: #f44336;
850                color: white;
851                padding: 12px 20px;
852                border-radius: 4px;
853                z-index: 10000;
854                font-family: Arial, sans-serif;
855                font-size: 14px;
856                box-shadow: 0 2px 10px rgba(0,0,0,0.2);
857            `;
858            notification.textContent = 'News item not found. It may have been removed or archived.';
859            
860            document.body.appendChild(notification);
861            
862            setTimeout(() => {
863                if (notification.parentNode) {
864                    notification.parentNode.removeChild(notification);
865                }
866            }, 5000);
867        }
868
869        // Start the process
870        console.log('Initializing news page scrolling...');
871        setTimeout(scrollToAndOpenNews, 500); // Initial delay to ensure page is ready
872
873        // Set up observer for dynamically loaded content
874        const newsWrapper = document.querySelector("[get-no-of-items]");
875        if (newsWrapper && window.MutationObserver && !hasProcessedNewsSlug) {
876            const observer = new MutationObserver(function(mutations) {
877                if (hasProcessedNewsSlug) {
878                    observer.disconnect();
879                    return;
880                }
881                
882                let hasNewContent = false;
883                mutations.forEach(function(mutation) {
884                    if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
885                        mutation.addedNodes.forEach(function(node) {
886                            if (node.nodeType === 1) {
887                                if ((node.hasAttribute && node.hasAttribute('news-item')) || 
888                                    (node.querySelector && node.querySelector('[news-item]'))) {
889                                    hasNewContent = true;
890                                }
891                            }
892                        });
893                    }
894                });
895
896                if (hasNewContent) {
897                    setTimeout(scrollToAndOpenNews, 200);
898                }
899            });
900
901            observer.observe(newsWrapper, { 
902                childList: true, 
903                subtree: true 
904            });
905
906            // Clean up observer after timeout
907            setTimeout(() => {
908                observer.disconnect();
909            }, 10000);
910        }
911    }
912
913})();
914</script>
914
915
916<!-- Google Tag Manager (noscript) -->
917<noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-NKV98RJP
918height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
919<!-- End Google Tag Manager (noscript) --></body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.