a:443:{s:10:"skin_color";s:7:"#636363";s:12:"smoothscroll";s:4:"true";s:14:"pages_comments";s:5:"false";s:9:"go_to_top";s:5:"false";s:13:"retina_images";s:4:"true";s:17:"responsive_images";s:4:"true";s:20:"image_resize_quality";s:3:"100";s:11:"svg_support";s:5:"false";s:26:"fullscreen_nav_logo_margin";s:3:"200";s:4:"logo";s:65:"https://jespionne.com/wp-content/uploads/2018/10/logo_v26_new.png";s:17:"light_header_logo";s:65:"https://jespionne.com/wp-content/uploads/2018/10/logo_v26_new.png";s:18:"sticky_header_logo";s:65:"https://jespionne.com/wp-content/uploads/2018/10/logo_v26_new.png";s:15:"responsive_logo";s:65:"https://jespionne.com/wp-content/uploads/2018/10/logo_v26_new.png";s:11:"footer_logo";s:0:"";s:14:"custom_favicon";s:77:"https://jespionne.com/wp-content/uploads/2018/10/jespionne_logo_round_new.png";s:11:"iphone_icon";s:0:"";s:18:"iphone_icon_retina";s:0:"";s:9:"ipad_icon";s:0:"";s:16:"ipad_icon_retina";s:0:"";s:9:"preloader";s:5:"false";s:16:"retina_preloader";s:4:"true";s:14:"preloader_logo";s:77:"https://jespionne.com/wp-content/uploads/2018/10/jespionne_logo_round_new.png";s:20:"preloader_icon_color";s:7:"#eaeaea";s:18:"preloader_bg_color";s:7:"#211a28";s:23:"section_preloader_color";s:7:"#211a28";s:19:"preloader_animation";s:10:"ball_pulse";s:21:"disable_quick_contact";s:5:"false";s:23:"quick_contact_on_single";s:4:"true";s:21:"captcha_quick_contact";s:4:"true";s:19:"quick_contact_email";s:22:"wajahatdaar2@gmail.com";s:19:"quick_contact_title";s:10:"Contact Us";s:18:"quick_contact_desc";s:89:"We're not around right now. But you can send us an email and we'll get back to you, asap.";s:20:"twitter_consumer_key";s:0:"";s:23:"twitter_consumer_secret";s:0:"";s:20:"twitter_access_token";s:0:"";s:27:"twitter_access_token_secret";s:0:"";s:17:"mailchimp_api_key";s:0:"";s:17:"mailchimp_list_id";s:0:"";s:15:"mailchimp_optin";s:5:"false";s:19:"google_maps_api_key";s:0:"";s:9:"analytics";s:0:"";s:10:"typekit_id";s:0:"";s:31:"background_selector_orientation";s:17:"full_width_layout";s:10:"grid_width";s:4:"2000";s:13:"content_width";s:2:"73";s:18:"content_responsive";s:3:"960";s:20:"responsive_nav_width";s:4:"1140";s:19:"stick_template_page";s:5:"false";s:11:"body_border";s:5:"false";s:21:"body_border_thickness";s:2:"50";s:17:"body_border_color";s:4:"#fff";s:29:"body_border_on_mobile_devices";s:5:"false";s:24:"page_title_expand_header";s:4:"true";s:24:"boxed_layout_shadow_size";s:0:"";s:29:"boxed_layout_shadow_intensity";s:0:"";s:18:"general_backgounds";s:5:"false";s:20:"bg_panel_image_style";s:0:"";s:15:"bg_panel_upload";s:0:"";s:20:"bg_panel_color_style";s:0:"";s:14:"bg_panel_color";s:0:"";s:16:"bg_panel_color_2";s:0:"";s:21:"grandient_color_style";s:0:"";s:21:"grandient_color_angle";s:0:"";s:15:"bg_panel_repeat";s:0:"";s:19:"bg_panel_attachment";s:0:"";s:17:"bg_panel_position";s:0:"";s:13:"bg_panel_size";s:0:"";s:10:"body_color";s:4:"#fff";s:19:"body_color_gradient";s:6:"single";s:12:"body_color_2";s:0:"";s:25:"body_color_gradient_style";s:6:"linear";s:25:"body_color_gradient_angle";s:8:"vertical";s:10:"body_image";s:0:"";s:9:"body_size";s:5:"false";s:13:"body_position";s:0:"";s:15:"body_attachment";s:0:"";s:11:"body_repeat";s:0:"";s:11:"body_source";s:8:"no-image";s:10:"page_color";s:4:"#fff";s:19:"page_color_gradient";s:6:"single";s:12:"page_color_2";s:0:"";s:25:"page_color_gradient_style";s:6:"linear";s:25:"page_color_gradient_angle";s:8:"vertical";s:10:"page_image";s:0:"";s:9:"page_size";s:5:"false";s:13:"page_position";s:0:"";s:15:"page_attachment";s:0:"";s:11:"page_repeat";s:0:"";s:11:"page_source";s:8:"no-image";s:12:"header_color";s:4:"#fff";s:21:"header_color_gradient";s:6:"single";s:14:"header_color_2";s:0:"";s:27:"header_color_gradient_style";s:6:"linear";s:27:"header_color_gradient_angle";s:8:"vertical";s:12:"header_image";s:0:"";s:11:"header_size";s:5:"false";s:15:"header_position";s:0:"";s:17:"header_attachment";s:0:"";s:13:"header_repeat";s:0:"";s:13:"header_source";s:8:"no-image";s:12:"banner_color";s:7:"#f7f7f7";s:21:"banner_color_gradient";s:6:"single";s:14:"banner_color_2";s:0:"";s:27:"banner_color_gradient_style";s:6:"linear";s:27:"banner_color_gradient_angle";s:8:"vertical";s:12:"banner_image";s:0:"";s:11:"banner_size";s:4:"true";s:15:"banner_position";s:0:"";s:17:"banner_attachment";s:0:"";s:13:"banner_repeat";s:0:"";s:13:"banner_source";s:8:"no-image";s:12:"footer_color";s:7:"#1b1b1b";s:21:"footer_color_gradient";s:6:"single";s:14:"footer_color_2";s:0:"";s:27:"footer_color_gradient_style";s:6:"linear";s:27:"footer_color_gradient_angle";s:8:"vertical";s:12:"footer_image";s:0:"";s:11:"footer_size";s:4:"true";s:15:"footer_position";s:0:"";s:17:"footer_attachment";s:0:"";s:13:"footer_repeat";s:0:"";s:13:"footer_source";s:8:"no-image";s:11:"body_weight";s:3:"400";s:14:"body_font_size";s:2:"14";s:16:"body_line_height";s:4:"1.66";s:15:"body_text_color";s:7:"#777777";s:7:"a_color";s:7:"#2e2e2e";s:13:"a_color_hover";s:7:"#f97352";s:12:"strong_color";s:7:"#f97352";s:6:"p_size";s:2:"16";s:13:"p_line_height";s:4:"1.66";s:7:"p_color";s:7:"#777777";s:20:"headings_line_height";s:3:"1.3";s:9:"h1_weight";s:3:"600";s:12:"h1_transform";s:9:"uppercase";s:7:"h1_size";s:2:"36";s:8:"h1_color";s:7:"#404040";s:9:"h2_weight";s:3:"600";s:12:"h2_transform";s:9:"uppercase";s:7:"h2_size";s:2:"30";s:8:"h2_color";s:7:"#404040";s:9:"h3_weight";s:3:"600";s:12:"h3_transform";s:9:"uppercase";s:7:"h3_size";s:2:"24";s:8:"h3_color";s:7:"#404040";s:9:"h4_weight";s:3:"600";s:12:"h4_transform";s:9:"uppercase";s:7:"h4_size";s:2:"18";s:8:"h4_color";s:7:"#404040";s:9:"h5_weight";s:3:"600";s:12:"h5_transform";s:9:"uppercase";s:7:"h5_size";s:2:"16";s:8:"h5_color";s:7:"#404040";s:9:"h6_weight";s:3:"600";s:12:"h6_transform";s:9:"uppercase";s:7:"h6_size";s:2:"14";s:8:"h6_color";s:7:"#404040";s:21:"header_layout_builder";s:16:"pre_built_header";s:18:"theme_header_style";s:1:"2";s:14:"secondary_menu";s:9:"dashboard";s:18:"header_burger_size";s:5:"small";s:23:"seondary_header_for_all";s:4:"true";s:18:"vertical_menu_anim";s:1:"1";s:26:"vertical_header_logo_align";s:6:"center";s:28:"vertical_header_logo_padding";s:2:"10";s:21:"vertical_header_align";s:4:"left";s:23:"vertical_menu_copyright";s:41:"Copyright All Rights Reserved &copy; 2017";s:11:"header_grid";s:4:"true";s:16:"hide_header_logo";s:4:"true";s:14:"logo_in_middle";s:5:"false";s:15:"hide_header_nav";s:4:"true";s:22:"header_search_location";s:7:"disable";s:22:"header_start_tour_text";s:0:"";s:22:"header_start_tour_page";s:0:"";s:15:"start_tour_size";s:2:"14";s:13:"loggedin_menu";s:0:"";s:13:"header_height";s:2:"50";s:17:"res_header_height";s:2:"50";s:14:"header_opacity";s:1:"1";s:27:"header_btn_border_thickness";s:1:"0";s:19:"header_border_color";s:19:"rgba(237,237,237,0)";s:16:"start_tour_color";s:4:"#333";s:19:"header_burger_color";s:0:"";s:17:"main_nav_bg_color";s:19:"rgba(255,255,255,0)";s:14:"main_nav_hover";s:1:"4";s:19:"main_nav_top_weight";s:3:"600";s:19:"main_menu_transform";s:9:"uppercase";s:17:"main_nav_top_size";s:2:"13";s:27:"main_nav_top_letter_spacing";s:0:"";s:19:"main_nav_item_space";s:2:"20";s:23:"main_nav_top_text_color";s:7:"#444444";s:23:"main_nav_top_hover_skin";s:7:"#f97352";s:28:"main_nav_top_hover_txt_color";s:4:"#fff";s:19:"main_nav_sub_weight";s:3:"400";s:22:"main_nav_sub_transform";s:9:"uppercase";s:17:"main_nav_sub_size";s:2:"12";s:27:"main_nav_sub_letter_spacing";s:1:"1";s:23:"main_nav_sub_text_color";s:7:"#b3b3b3";s:29:"main_nav_sub_text_color_hover";s:7:"#ffffff";s:27:"main_nav_sub_hover_bg_color";s:0:"";s:29:"main_nav_sub_border_top_color";s:7:"#f97352";s:21:"main_nav_sub_bg_color";s:7:"#333333";s:23:"main_nav_sub_icon_color";s:7:"#e0e0e0";s:14:"nav_sub_shadow";s:5:"false";s:26:"sub_level_box_border_color";s:0:"";s:18:"main_nav_sub_width";s:3:"230";s:25:"main_nav_mega_title_color";s:7:"#ffffff";s:23:"mega_menu_divider_color";s:0:"";s:22:"header_social_location";s:0:"";s:27:"header_social_networks_site";s:0:"";s:26:"header_social_networks_url";s:0:"";s:28:"header_social_networks_style";s:6:"circle";s:16:"header_icon_size";s:5:"small";s:19:"header_social_color";s:7:"#999999";s:25:"header_social_hover_color";s:4:"#ccc";s:27:"header_social_bg_main_color";s:7:"#232323";s:22:"header_social_bg_color";s:7:"#232323";s:26:"header_social_border_color";s:7:"#999999";s:16:"header_mobile_bg";s:7:"#1e1725";s:20:"responsive_nav_color";s:7:"#1e1725";s:29:"header_mobile_search_input_bg";s:7:"#1e1725";s:32:"header_mobile_search_input_color";s:0:"";s:24:"responsive_nav_txt_color";s:7:"#444444";s:19:"header_sticky_style";s:5:"slide";s:20:"sticky_header_offset";s:6:"header";s:20:"header_scroll_height";s:2:"55";s:21:"header_sticky_opacity";s:1:"1";s:26:"sticky_header_border_color";s:0:"";s:13:"dash_bg_color";s:4:"#444";s:25:"dash_top_menu_text_weight";s:3:"600";s:23:"dash_top_menu_transform";s:9:"uppercase";s:23:"dash_top_menu_text_size";s:2:"13";s:19:"dash_nav_link_color";s:4:"#fff";s:25:"dash_nav_link_hover_color";s:4:"#fff";s:23:"dash_nav_bg_hover_color";s:0:"";s:25:"dash_sub_menu_text_weight";s:3:"400";s:23:"dash_sub_menu_transform";s:9:"uppercase";s:23:"dash_sub_menu_text_size";s:2:"12";s:17:"dash_title_weight";s:6:"bolder";s:20:"dash_title_transform";s:9:"uppercase";s:15:"dash_title_size";s:2:"14";s:16:"dash_title_color";s:4:"#fff";s:16:"dash_text_weight";s:3:"400";s:14:"dash_text_size";s:2:"12";s:15:"dash_text_color";s:4:"#eee";s:16:"dash_links_color";s:7:"#fafafa";s:22:"dash_links_hover_color";s:0:"";s:19:"fullscreen_nav_logo";s:4:"dark";s:26:"fullscreen_nav_mobile_logo";s:4:"dark";s:33:"fullscreen_nav_mobile_logo_custom";s:0:"";s:23:"fullscreen_nav_bg_color";s:4:"#444";s:25:"fullscreen_close_btn_skin";s:5:"light";s:31:"fullscreen_nav_menu_font_weight";s:6:"bolder";s:34:"fullscreen_nav_menu_text_transform";s:9:"uppercase";s:29:"fullscreen_nav_menu_font_size";s:2:"16";s:34:"fullscreen_nav_menu_letter_spacing";s:0:"";s:26:"fullscreen_nav_menu_gutter";s:2:"25";s:25:"fullscreen_nav_link_color";s:4:"#fff";s:29:"fullscreen_nav_link_hov_color";s:4:"#444";s:32:"fullscreen_nav_link_hov_bg_color";s:4:"#fff";s:18:"enable_header_date";s:5:"false";s:22:"header_toolbar_tagline";s:0:"";s:20:"header_toolbar_login";s:5:"false";s:24:"header_toolbar_subscribe";s:5:"false";s:20:"header_toolbar_email";s:0:"";s:20:"header_toolbar_phone";s:0:"";s:17:"header_toolbar_bg";s:7:"#1e1725";s:24:"header_mobile_toolbar_bg";s:0:"";s:27:"header_toolbar_border_color";s:0:"";s:30:"header_toolbar_search_input_bg";s:0:"";s:24:"header_toolbar_txt_color";s:7:"#999999";s:25:"header_toolbar_link_color";s:7:"#999999";s:31:"header_toolbar_search_input_txt";s:7:"#c7c7c7";s:27:"header_mobile_toolbar_color";s:0:"";s:32:"header_mobile_toolbar_link_color";s:0:"";s:35:"header_toolbar_social_network_color";s:7:"#999999";s:34:"header_mobile_toolbar_social_color";s:0:"";s:17:"page_title_global";s:5:"false";s:19:"banner_border_color";s:7:"#ededed";s:21:"page_introduce_weight";s:3:"400";s:20:"page_title_transform";s:9:"uppercase";s:25:"page_introduce_title_size";s:2:"20";s:35:"page_introduce_title_letter_spacing";s:1:"2";s:16:"page_title_color";s:7:"#4d4d4d";s:17:"page_title_shadow";s:5:"false";s:28:"page_introduce_subtitle_size";s:2:"14";s:33:"page_introduce_subtitle_transform";s:4:"none";s:19:"page_subtitle_color";s:7:"#a3a3a3";s:18:"disable_breadcrumb";s:5:"false";s:15:"breadcrumb_skin";s:4:"dark";s:5:"fonts";a:1:{i:0;a:6:{s:4:"type";s:3:"all";s:10:"fontFamily";s:0:"";s:8:"elements";a:1:{i:0;s:4:"body";}s:6:"subset";s:0:"";s:12:"currentField";s:10:"font-alert";s:7:"default";s:4:"true";}}s:14:"disable_footer";s:4:"true";s:21:"footer_disable_mobile";s:5:"false";s:12:"boxed_footer";s:4:"true";s:11:"footer_type";s:1:"1";s:14:"footer_columns";s:1:"1";s:20:"footer_top_thickness";s:0:"";s:23:"footer_top_border_color";s:0:"";s:13:"footer_gutter";s:1:"2";s:22:"footer_wrapper_padding";s:1:"0";s:27:"footer_widget_margin_bottom";s:1:"0";s:19:"footer_title_weight";s:6:"bolder";s:22:"footer_title_transform";s:9:"uppercase";s:17:"footer_title_size";s:2:"14";s:18:"footer_title_color";s:4:"#fff";s:18:"footer_text_weight";s:3:"400";s:16:"footer_text_size";s:2:"14";s:17:"footer_text_color";s:7:"#808080";s:18:"footer_links_color";s:7:"#999999";s:24:"footer_links_hover_color";s:0:"";s:18:"disable_sub_footer";s:5:"false";s:17:"enable_footer_nav";s:4:"true";s:9:"copyright";s:84:"<div class="row">
<div class="col-sm-3">a</div>
<div class="col-sm-4">b</div>
</div>";s:19:"sub_footer_bg_color";s:7:"#00050c";s:14:"copyright_size";s:2:"11";s:24:"copyright_letter_spacing";s:1:"1";s:25:"sub_footer_nav_copy_color";s:7:"#8c8e91";s:15:"custom_sidebars";s:0:"";s:20:"sidebar_title_weight";s:6:"bolder";s:23:"sidebar_title_transform";s:9:"uppercase";s:18:"sidebar_title_size";s:2:"14";s:19:"sidebar_title_color";s:7:"#333333";s:19:"sidebar_text_weight";s:3:"400";s:17:"sidebar_text_size";s:2:"14";s:18:"sidebar_text_color";s:7:"#999999";s:19:"sidebar_links_color";s:7:"#999999";s:25:"sidebar_links_hover_color";s:0:"";s:18:"search_page_layout";s:5:"right";s:17:"search_page_title";s:6:"Search";s:23:"search_disable_subtitle";s:4:"true";s:13:"single_layout";s:4:"full";s:17:"single_blog_style";s:7:"compact";s:28:"single_bold_hero_full_height";s:4:"true";s:29:"single_disable_featured_image";s:4:"true";s:23:"bold_single_hero_height";s:3:"800";s:28:"single_featured_image_height";s:3:"300";s:20:"blog_single_img_crop";s:4:"true";s:17:"blog_single_title";s:4:"true";s:14:"blog_prev_next";s:4:"true";s:28:"blog_prev_next_same_category";s:4:"true";s:27:"enable_single_related_posts";s:4:"true";s:20:"blog_single_comments";s:4:"true";s:18:"enable_blog_author";s:4:"true";s:18:"single_blog_social";s:4:"true";s:19:"blog_heading_weight";s:3:"600";s:22:"blog_heading_transform";s:0:"";s:17:"blog_heading_size";s:0:"";s:18:"blog_heading_color";s:0:"";s:18:"blog_body_h1_color";s:0:"";s:18:"blog_body_h2_color";s:0:"";s:18:"blog_body_h3_color";s:0:"";s:18:"blog_body_h4_color";s:0:"";s:18:"blog_body_h5_color";s:0:"";s:18:"blog_body_h6_color";s:0:"";s:16:"blog_body_weight";s:3:"400";s:19:"blog_body_font_size";s:0:"";s:21:"blog_body_line_height";s:0:"";s:15:"blog_body_color";s:0:"";s:17:"blog_body_a_color";s:0:"";s:23:"blog_body_a_color_hover";s:0:"";s:26:"blog_body_strong_tag_color";s:0:"";s:19:"single_meta_section";s:4:"true";s:18:"diable_single_tags";s:4:"true";s:19:"archive_page_layout";s:5:"right";s:18:"archive_loop_style";s:6:"modern";s:18:"archive_page_title";s:8:"Archives";s:24:"archive_disable_subtitle";s:4:"true";s:25:"archive_blog_image_height";s:3:"350";s:17:"archive_blog_meta";s:4:"true";s:24:"archive_pagination_style";s:1:"1";s:27:"news_disable_featured_image";s:4:"true";s:26:"news_featured_image_height";s:3:"340";s:9:"news_slug";s:10:"news-posts";s:23:"portfolio_single_layout";s:4:"full";s:29:"Portfolio_single_image_height";s:3:"500";s:21:"single_portfolio_cats";s:5:"false";s:30:"enable_portfolio_similar_posts";s:4:"true";s:19:"portfolio_next_prev";s:4:"true";s:33:"portfolio_prev_next_same_category";s:4:"true";s:24:"enable_portfolio_comment";s:5:"false";s:23:"single_portfolio_social";s:4:"true";s:14:"portfolio_slug";s:15:"portfolio-posts";s:18:"portfolio_cat_slug";s:18:"portfolio_category";s:24:"stick_template_portfolio";s:5:"false";s:24:"archive_portfolio_layout";s:5:"right";s:23:"archive_portfolio_style";s:7:"classic";s:30:"archive_portfolio_image_height";s:3:"400";s:24:"archive_portfolio_column";s:1:"3";s:34:"archive_portfolio_pagination_style";s:1:"1";s:15:"shop_customizer";s:5:"false";s:20:"shop_archive_columns";s:7:"default";s:19:"woocommerce_catalog";s:5:"false";s:23:"woo_category_image_size";s:4:"crop";s:31:"woocommerce_category_page_title";s:4:"Shop";s:29:"woocommerce_use_product_title";s:5:"false";s:30:"woocommerce_use_category_title";s:5:"false";s:37:"woocommerce_use_category_filter_title";s:5:"false";s:13:"shopping_cart";s:4:"true";s:19:"add_cart_responsive";s:4:"true";s:19:"woo_loop_image_size";s:4:"crop";s:19:"woo_loop_img_height";s:3:"300";s:26:"woocommerce_loop_show_desc";s:5:"false";s:35:"woocommerce_loop_enable_love_button";s:4:"true";s:25:"woocommerce_single_layout";s:4:"full";s:32:"woocommerce_single_product_title";s:4:"true";s:20:"woo_single_prev_next";s:4:"true";s:27:"woo_prev_next_same_category";s:4:"true";s:33:"woocommerce_single_social_network";s:4:"true";s:9:"minify-js";s:4:"true";s:10:"minify-css";s:4:"true";s:17:"remove-js-css-ver";s:4:"true";s:15:"global_lazyload";s:4:"true";s:19:"portfolio-post-type";s:4:"true";s:14:"news-post-type";s:4:"true";s:13:"faq-post-type";s:4:"true";s:21:"photo_album-post-type";s:4:"true";s:17:"pricing-post-type";s:4:"true";s:17:"clients-post-type";s:4:"true";s:19:"employees-post-type";s:4:"true";s:21:"testimonial-post-type";s:4:"true";s:26:"animated-columns-post-type";s:4:"true";s:14:"edge-post-type";s:4:"true";s:20:"tab_slider-post-type";s:4:"true";s:19:"slideshow-post-type";s:5:"false";s:24:"banner_builder-post-type";s:5:"false";s:10:"custom_css";s:7242:"#music_olivia_videos .ih-item.square.effect6 .info img
{
cursor: pointer !important;
}
#mega-menu-item-3020
{
    position: absolute !important;
    right: 70px !important;
}
#mega-menu-item-3021
{
    float: right !important;
    position: absolute !important;
    right: 0 !important;
}
.mk-side-dashboard
{
width:250px !important;
}
.side-dash-bottom-widgets, .side-dash-top-widgets
{
background-color:#222222 !important;
}

@media only screen and (max-width: 601px) {
.mk-header
	{
	    position: unset !important;
	}
	
.mk-css-icon-close, .mk-css-icon-menu
	{
	display:none !important;
	}
#footer_sub_menu a {
    line-height: 1.6em !important;
}	
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column
{
width:100%;
}
#mega-menu-wrap-primary-menu #mega-menu-primary-menu input, #mega-menu-wrap-primary-menu #mega-menu-primary-menu img
{
display:none;
}
	#mega-menu-wrap-primary-menu .mega-menu-toggle .mega-toggle-blocks-right .mega-toggle-block 
	{
    margin-right: 0px !important; 
    background-color: black !important;
    width: 11% !important;
    position: fixed;
    height: auto;
    top: 50px;
    left: 0;
}
	#mega-menu-wrap-primary-menu .textwidget p
	{
	    margin: 0px !important;
    padding: 0px !important;
		    text-align: left ;
	}
}


.elementor-element-1420273, .elementor-element-f0151d6, .elementor-element-d25c2f6, .elementor-element-72d5f45, .elementor-element-8f190cb    {
overflow: hidden;}
 .elementor-element-1420273 a,  .elementor-element-f0151d6 a,  .elementor-element-d25c2f6 a,  .elementor-element-72d5f45   a,  .elementor-element-8f190cb     a
{
  height: 100%;
  width: 100%;
  transition: all 0.5s ease;
}
.elementor-element-1420273 a:hover,  .elementor-element-f0151d6 a:hover, .elementor-element-d25c2f6 a:hover, .elementor-element-72d5f45   a:hover, .elementor-element-8f190cb     a:hover
{
  transform: scale(1.2);
}
.paddingnon .elementor-column-gap-default>.elementor-row>.elementor-column>.elementor-element-populated { padding:0;}
.paddingnon .elementor-widget:not(:last-child) { margin-bottom:0px;}
.ball-pulse {display:none;}
body,html
{

	transition:1s !important;
}


/*info pages */
.info_pages p.detail {
    font-family: Cinzel_Regular !important;
    line-height: 1.5em !important;
    text-align: left !important;
    color: black !important;
    text-align: justify !important;
    font-size: 20px !important;
    text-transform: none !important;
    letter-spacing: unset !important;
    width: 60%;
    margin: 0px auto;
	color:black !important;
}
.info_pages p.line {
    border-bottom: 2px solid !important;
    width: 5%;
    margin: 0px auto 5% auto !important;
		color:black !important;
}
.info_pages p.title {
    font-size: 75px !important;
    font-family: KorolevCompressedThin !important;
    text-align: center !important;
    margin: 0px !important;
    line-height: 1em !important;
		margin-top: 3% !important;
		color:black !important;
}
.info_pages .title span {
		font-weight: bold!important;
		color:black !important;
}
/*contributor*/


.info_pages .contributor #row_featured_curators_row0 p 
{
    text-align: center !important;
    color: white !important;
    padding: 2% 5% 0% 5% !important;
    font-family: Dorsa !important;
    font-size: 75px !important;
}
.info_pages .contributor #row_featured_curators {
    background-color: rgb(62,6,0) !important;
}
.info_pages .contributor #row_featured_curators_row1
{
    padding: 1% 0px 5% 0px !important;
}


.info_pages .contributor .info_para_sports1,
.info_pages .contributor .info_para_sports2,
.info_pages .contributor .info_para_sports3,
.info_pages .contributor .info_para_sports4,
.info_pages .contributor .info_para_sports5,
.info_pages .contributor .info_para_sports6,
.info_pages .contributor .info_para_sports7,
.info_pages .contributor .info_para_sports8
 {
    position: absolute !important;
    left: 0 !important;
    display: table-cell !important;
    vertical-align: middle !important;
    top: 40% !important;
    text-align: center !important;
    width: 100% !important;
opacity:0;
}

.info_pages .contributor .div_sport_1,
.info_pages .contributor .div_sport_2,
.info_pages .contributor .div_sport_3,
.info_pages .contributor .div_sport_4,
.info_pages .contributor .div_sport_5,
.info_pages .contributor .div_sport_6,
.info_pages .contributor .div_sport_7,
.info_pages .contributor .div_sport_8
{
    display: table !important;
padding: 0px 1% !important;
}



.info_pages .contributor .sports_info_para1_1,
.info_pages .contributor .sports_info_para2_1,
.info_pages .contributor .sports_info_para3_1,
.info_pages .contributor .sports_info_para4_1,
.info_pages .contributor .sports_info_para5_1,
.info_pages .contributor .sports_info_para6_1,
.info_pages .contributor .sports_info_para7_1,
.info_pages .contributor .sports_info_para8_1
 {
    font-family: KorolevCompressedThin !important;
    color: white !important;
margin:0px !important;
    font-size: 23px !important;
}


.info_pages .contributor .sports_info_para1_2,
.info_pages .contributor .sports_info_para2_2,
.info_pages .contributor .sports_info_para3_2,
.info_pages .contributor .sports_info_para4_2,
.info_pages .contributor .sports_info_para5_2,
.info_pages .contributor .sports_info_para6_2,
.info_pages .contributor .sports_info_para7_2,
.info_pages .contributor .sports_info_para8_2
 {
    font-family: KorolevCompressedThin !important;
    color: white !important;
    margin: 0px !important;
    font-size: 18px !important;
    opacity: 1 !important;
    font-weight: bold !important;
    line-height: 1em !important;
}
.info_pages .contributor .sa_owl_theme .owl-nav .owl-next {
    right: -20px !important;
}
.info_pages .contributor .sa_owl_theme .owl-nav .owl-prev {
    left: -20px !important;
}

/*contributor*/

/*info pages */



/*popups */
#sgpb-popup-dialog-main-div
{
    padding:0 !Important;
    margin: 0px auto;
overflow:hidden !important;
}
.newsletter-section .wpb_single_image.vc_align_center {
    text-align: center;
    margin-bottom: 0;
}
.newsletter-section h1
{
font-family: D-DINCondensed;
    text-align: center;
    font-size: 60px;
    padding: 0;
    margin: 0;
    font-weight: bold;
	color:black;
}
.newsletter-section img
{
width:750px;
}

.newsletter-section .heading span
{
color:#fe3030;
	padding:0;
	margin:0;
}
.newsletter-section .para
{
font-family: D-DINCondensed;
    font-size: 25px;
    color: black;
    font-style: italic;
    text-align: center;
    margin: 0;
    padding: 0;
    font-weight: 600;
}
.tnp-subscription div.tnp-field label {
    display: none !important;
}
.tnp-subscription div.tnp-field {
	display:inline-block;
}
.tnp-field.tnp-field-email {
    width: 350px;
}
.tnp-subscription .tnp-field .tnp-submit {
    width: 200px !important;

    background: #fe3030;
    color: white;
    font-family: D-DINCondensed;
    text-transform: uppercase;
    font-size: 20px;
    letter-spacing: 7px;
    padding: 15px 10px;
    margin: 0 !IMPORTANT;
    text-align: center;
}
.tnp-subscription
{
max-width:unset !important;
	text-align:center;
}

.tnp-field.tnp-field-email .tnp-email {
    font-family: D-DINCondensed;
    font-size: 20px;
}

/*end popups */";s:9:"custom_js";s:40970:"if (location.protocol != 'https:')
{
 location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
}


/*hide social media icons*/
 if
 (
	(
	(window.location.href.indexOf("jespionne.com/art/") > -1) 
	|| 
	(window.location.href.indexOf("jespionne.com/sports/") > -1)
	)
	||
	(window.location.href.indexOf("jespionne.com/travel/") > -1) 
)
 {
 jQuery("div[id^=social-network]").hide();
 }





 if(window.location.href.indexOf("jespionne.com/agency/") > -1) 
 {
	 
 jQuery(".hb-custom-header #mk-page-introduce, .mk-header, .hb-custom-header > div, .mk-header-bg, .mk-header-nav-container, .mk-classic-menu-wrapper, .mk-classic-nav-bg, #mega-menu-wrap-primary-menu").css("background-color","white");
	 
jQuery(".social_media_section,.reference_sources,.reference_magzine").css({"padding":"0 5%"});	 

 }





 if(window.location.href.indexOf("/interview-") > -1) 
 {
 jQuery(".linedivider1 img").css("padding","18% 0");
 }

//travel product pages start
 if(window.location.href.indexOf("jespionne.com/olivia-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/oliviawanefitzgerald/';});}
 if(window.location.href.indexOf("jespionne.com/emelie-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("jespionne.com/kristen-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/kristenripleyearhart/';});}
 if(window.location.href.indexOf("jespionne.com/ingrun-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("jespionne.com/alessandra-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/alessandraperon/';});}
 if(window.location.href.indexOf("jespionne.com/meena-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/meenajehan/';});}
 if(window.location.href.indexOf("jespionne.com/iva-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/anastasiaivaaxavier';});}
 if(window.location.href.indexOf("jespionne.com/sophia-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sophiabernini/';});}
 if(window.location.href.indexOf("jespionne.com/topaz-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/topazjonezgoodall/';});}
 if(window.location.href.indexOf("jespionne.com/tao-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/taokublaicrown/';});}
 if(window.location.href.indexOf("jespionne.com/linn-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("jespionne.com/napoleon-travel/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/napoleonwindsor/';});}
//travel product pages end






 if(window.location.href.indexOf("travel/oliviawane/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/oliviawanefitzgerald/';});}
 if(window.location.href.indexOf("travel/emelierosebeauvoir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("travel/kristenripleyearhart/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/kristenripleyearhart/';});}
 if(window.location.href.indexOf("travel/ingrunvonhollmes/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("travel/alessandraperon/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/alessandraperon/';});}
 if(window.location.href.indexOf("travel/meenajehan/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/meenajehan/';});}
 if(window.location.href.indexOf("travel/ivaxavier/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/anastasiaivaaxavier';});}
 if(window.location.href.indexOf("travel/sophiabernini/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sophiabernini/';});}
 if(window.location.href.indexOf("travel/topazjonezgoodall/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/topazjonezgoodall/';});}
 if(window.location.href.indexOf("travel/taokublaicrown/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/taokublaicrown/';});}
 if(window.location.href.indexOf("travel/linnbjorkborgsdottir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("travel/napoleonwindsor/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/napoleonwindsor/';});}






//sports pages
 if(window.location.href.indexOf("sports/oliviawane/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/oliviawanefitzgerald/';});}
 if(window.location.href.indexOf("sports/emelierosebeauvoir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("sports/kristenripleyearhart/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/kristenripleyearhart/';});}
 if(window.location.href.indexOf("sports/ingrunvonhollmes/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("sports/alessandraperon/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/alessandraperon/';});}
 if(window.location.href.indexOf("sports/meenajehan/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/meenajehan/';});}
 if(window.location.href.indexOf("sports/ivaxavier/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/anastasiaivaaxavier';});}
 if(window.location.href.indexOf("sports/sophiabernini/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sophiabernini/';});}
 if(window.location.href.indexOf("sports/topazjonezgoodall/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/topazjonezgoodall/';});}
 if(window.location.href.indexOf("sports/taokublaicrown/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/taokublaicrown/';});}
 if(window.location.href.indexOf("sports/linnbjorkborgsdottir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("sports/napoleonwindsor/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/napoleonwindsor/';});}






//modus pages
 if(window.location.href.indexOf("modusoperandi/oliviawane/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/oliviawanefitzgerald/';});}
 if(window.location.href.indexOf("modusoperandi/emelierosebeauvoir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("modusoperandi/kristenripleyearhart/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/kristenripleyearhart/';});}
 if(window.location.href.indexOf("modusoperandi/ingrunvonhollmes/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("modusoperandi/alessandraperon/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/alessandraperon/';});}
 if(window.location.href.indexOf("modusoperandi/meenajehan/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/meenajehan/';});}
 if(window.location.href.indexOf("modusoperandi/ivaxavier/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/anastasiaivaaxavier';});}
 if(window.location.href.indexOf("modusoperandi/sophiabernini/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sophiabernini/';});}
 if(window.location.href.indexOf("modusoperandi/topazjonezgoodall/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/topazjonezgoodall/';});}
 if(window.location.href.indexOf("modusoperandi/taokublaicrown/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/taokublaicrown/';});}
 if(window.location.href.indexOf("modusoperandi/linnbjorkborgsdottir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("modusoperandi/napoleonwindsor/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/napoleonwindsor/';});}



 if(window.location.href.indexOf("jespionne.com/olivia-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/oliviawane/';});}
 if(window.location.href.indexOf("jespionne.com/emelie-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("jespionne.com/kristen-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/kristenripleyearhart/';});}
 if(window.location.href.indexOf("jespionne.com/ingrun-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("jespionne.com/alessandra-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/alessandraperon/';});}
 if(window.location.href.indexOf("jespionne.com/meena-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/meenajehan/';});}
 if(window.location.href.indexOf("jespionne.com/iva-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/ivaxavier/';});}
 if(window.location.href.indexOf("jespionne.com/sophia-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/sophiabernini/';});}
 if(window.location.href.indexOf("jespionne.com/topaz-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/topazjonezgoodall/';});}
 if(window.location.href.indexOf("jespionne.com/tao-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/taokublaicrown/';});}
 if(window.location.href.indexOf("jespionne.com/linn-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("jespionne.com/napoleon-sport/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sports/napoleonwindsor/';});}

//end sports pages




//art pages
 if(window.location.href.indexOf("jespionne.com/art/") > -1) {
 jQuery(".modus_float_image").css({"filter":"grayscale(1)","cursor":"pointer"});
 jQuery(".modus_float_image").hover(
function(){jQuery(".modus_float_image").css({"filter":"none","transition":"1s"});},
function(){jQuery(".modus_float_image").css({"filter":"grayscale(1)","transition":"1s"});}
);
}
 if(window.location.href.indexOf("art/oliviawane/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/oliviawanefitzgerald/';});}
 if(window.location.href.indexOf("art/emelierosebeauvoir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("art/kristenripleyearhart/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/kristenripleyearhart/';});}
 if(window.location.href.indexOf("art/ingrunvonhollmes/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("art/alessandraperon/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/alessandraperon/';});}
 if(window.location.href.indexOf("art/meenajehan/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/meenajehan/';});}
 if(window.location.href.indexOf("art/ivaxavier/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/anastasiaivaaxavier';});}
 if(window.location.href.indexOf("art/sophiabernini/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/sophiabernini/';});}
 if(window.location.href.indexOf("art/topazjonezgoodall/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/topazjonezgoodall/';});}
 if(window.location.href.indexOf("art/taokublaicrown/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/taokublaicrown/';});}
 if(window.location.href.indexOf("art/linnbjorkborgsdottir/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("art/napoleonwindsor/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/napoleonwindsor/';});}











 if(window.location.href.indexOf("jespionne.com/oliviawane-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/oliviawane/';});}
 if(window.location.href.indexOf("jespionne.com/emelie-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/emelierosebeauvoir/';});}
 if(window.location.href.indexOf("jespionne.com/kristen-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/kristenripleyearhart/';});}
 if(window.location.href.indexOf("jespionne.com/ingrun-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/ingrunvonhollmes/';});}
 if(window.location.href.indexOf("jespionne.com/alessandra-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/alessandraperon/';});}
 if(window.location.href.indexOf("jespionne.com/meena-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/meenajehan/';});}
 if(window.location.href.indexOf("jespionne.com/iva-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/ivaxavier/';});}
 if(window.location.href.indexOf("jespionne.com/sophia-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/sophiabernini/';});}
 if(window.location.href.indexOf("jespionne.com/topaz-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/topazjonezgoodall/';});}
 if(window.location.href.indexOf("jespionne.com/tao-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/taokublaicrown/';});}
 if(window.location.href.indexOf("jespionne.com/linn-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/linnbjorkborgsdottir/';});}
 if(window.location.href.indexOf("jespionne.com/napoleon-art/") > -1) {jQuery(".modus_float_image").click(function(){window.location = 'https://www.jespionne.com/art/napoleonwindsor/';});}


//end art pages




//info pages
jQuery(".contributor .div_sport_1").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_1 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports1").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_1 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports1").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_2").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_2 img").css({"opacity":"0.3","transition":"1s"});			jQuery(".contributor .info_para_sports2").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_2 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports2").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_3").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_3 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports3").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_3 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports3").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_4").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_4 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports4").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_4 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports4").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_5").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_5 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports5").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_5 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports5").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_6").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_6 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports6").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_6 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports6").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_7").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_7 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports7").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_7 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports7").css({"opacity":"0","transition":"0.6s"});			}
});


jQuery(".contributor .div_sport_8").live({
    mouseenter: function () {	jQuery(".contributor .div_sport_8 img").css({"opacity":"0.3","transition":"1s"});		jQuery(".contributor .info_para_sports8").css({"opacity":"1","transition":"1s"});		},
    mouseleave: function () {	jQuery(".contributor .div_sport_8 img").css({"opacity":"1","transition":"0.6s"});  		jQuery(".contributor .info_para_sports8").css({"opacity":"0","transition":"0.6s"});			}
});

//end info pages















jQuery("#mega-menu-primary-menu").append("<div class='sticky_custom_logo' style='opacity:0;position: absolute;top: 5px;left: 6%; width:193px;'><a href='https://jespionne.com'><img src='https://jespionne.com/wp-content/uploads/2018/10/logo_v26_new.png'></a></div>");

jQuery(document).ready(function()
{
	
	
if(window.location.href.indexOf("jespionne.com/modusoperandi/") > -1)
{
	jQuery(".modus_dj #submit_details").css({"position":"absolute !important","right":"10px !important","bottom":"10px !important"});
	jQuery( "a:contains('MORE INFO')" ).attr( "target", "_blank" );
}	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

if(window.location.href.indexOf("jespionne.com/modusoperandi/") > -1)	
{
if(typeof revapi30!== 'undefined') {revapi30.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi31!== 'undefined') {revapi31.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi32!== 'undefined') {revapi32.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi33!== 'undefined') {revapi33.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi34!== 'undefined') {revapi34.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi35!== 'undefined') {revapi35.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi36!== 'undefined') {revapi36.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi37!== 'undefined') {revapi37.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi38!== 'undefined') {revapi38.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi39!== 'undefined') {revapi39.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi40!== 'undefined') {revapi40.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi41!== 'undefined') {revapi41.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi42!== 'undefined') {revapi42.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi43!== 'undefined') {revapi43.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi44!== 'undefined') {revapi44.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi45!== 'undefined') {revapi45.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

if(typeof revapi46!== 'undefined') {revapi46.bind("revolution.slide.onchange",function (e,data) { var vid = document.getElementsByTagName("video"); var count_image_contact;
for (count_image_contact = 0; count_image_contact < vid.length; count_image_contact++) {  vid[count_image_contact].muted = false;} });}

}	

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
if(window.location.href.indexOf("jespionne.com/art/art-") > -1)
{
	var send_button = document.getElementsByName("send");
	var count_send_button;
	for (count_send_button = 0; count_send_button < send_button.length; count_send_button++) {
  var link = send_button[count_send_button].innerHTML = "INQUIRE";
	}

}	
	
	
	jQuery(window).scroll(function()
	{
		if(jQuery(window).scrollTop()>30)
		{
	    		jQuery(".sticky_custom_logo").css({"opacity":"1","transition":"0.1s linear"});
	  	}
		if(jQuery(window).scrollTop()<=30)
		{
	    		jQuery(".sticky_custom_logo").css({"opacity":"0","transition":"0.1s linear"});
	  	}
		if(jQuery(window).scrollTop()>20)
		{
	    		jQuery("#mega-menu-wrap-primary-menu").css({"background-color":"white","transition":"0.5s linear"});
	  	}
		if(jQuery(window).scrollTop()<=20)
		{
	    		jQuery("#mega-menu-wrap-primary-menu").css({"background-color":"transparent","transition":"0.5s linear"});
	  	}

		

		
	});
	
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
  if (prevScrollpos > currentScrollPos) {
    jQuery("header, .mk-header-nav-container").css({"top":"0px","transition":"0.5s"});
  } else {
    jQuery("header, .mk-header-nav-container").css({"top":"-110px","transition":"0.5s"});
  }
  prevScrollpos = currentScrollPos;
}
			
	
});


jQuery(document).ready(function()
{
	

	//method for on click open link - agency landing page 

jQuery("#slider_8488_slide01 .info").click(function(){location.href = 'https://www.jespionne.com/oliviawanefitzgerald/';});
jQuery("#slider_8488_slide02 .info").click(function(){location.href = 'https://www.jespionne.com/emelierosebeauvoir/';});
jQuery("#slider_8488_slide03 .info").click(function(){location.href = 'https://www.jespionne.com/kristenripleyearhart/';});
jQuery("#slider_8488_slide04 .info").click(function(){location.href = 'https://www.jespionne.com/ingrunvonhollmes/';});
jQuery("#slider_8488_slide05 .info").click(function(){location.href = 'https://www.jespionne.com/alessandraperon/';});
jQuery("#slider_8488_slide06 .info").click(function(){location.href = 'https://www.jespionne.com/meenajehan/';});
jQuery("#slider_8488_slide07 .info").click(function(){location.href = 'https://www.jespionne.com/sophiabernini/';});
jQuery("#slider_8488_slide08 .info").click(function(){location.href = 'https://www.jespionne.com/anastasiaivaaxavier/';});
jQuery("#slider_8488_slide09 .info").click(function(){location.href = 'https://www.jespionne.com/topazjonezgoodall/';});
jQuery("#slider_8488_slide10 .info").click(function(){location.href = 'https://www.jespionne.com/taokublaicrown/';});
jQuery("#slider_8488_slide11 .info").click(function(){location.href = 'https://www.jespionne.com/linnbjorkborgsdottir/';});	

	
//method for table agency page table row color change 
jQuery(".tableFixHead thead tr").css({"color":"#7b639f","transition":"1s"});	


	
jQuery("#slider_8488 .owl-nav").click(function() {
	
if(jQuery(".active #slider_8488_slide01").length > 0)
{
jQuery("#row1").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#7b639f","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row10").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row0');
    container.scrollTop = scrollTo.offsetTop;
}

if(jQuery(".active #slider_8488_slide02").length > 0)
{
jQuery("#row2").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#e41f02","transition":"1s"});	
jQuery("#row1,#row3,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row1');
    container.scrollTop = scrollTo.offsetTop;
}

if(jQuery(".active #slider_8488_slide03").length > 0)
{
jQuery("#row3").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#8eb388","transition":"1s"});	
jQuery("#row2,#row1,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row2');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide04").length > 0)
{
jQuery("#row4").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#8da1a0","transition":"1s"});	
jQuery("#row2,#row3,#row1,#row5,#row6,#row7,#row8,#row9,#row10,#row10").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row3');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide05").length > 0)
{
jQuery("#row5").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#0e73ab","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row1,#row6,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row4');
    container.scrollTop = scrollTo.offsetTop;
}
	
if(jQuery(".active #slider_8488_slide06").length > 0)
{
jQuery("#row6").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#ff7a03","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row1,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row5');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide07").length > 0)
{
jQuery("#row7").css({"color":"white","transition":"1s"});
		jQuery(".tableFixHead thead tr").css({"color":"#9d0e12","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row1,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row6');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide08").length > 0)
{
jQuery("#row8").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#e4caa9","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row1,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row7');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide09").length > 0)
{
jQuery("#row9").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#feb7a8","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row8,#row1,#row10,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row8');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide10").length > 0)
{
jQuery("#row10").css({"color":"white","transition":"1s"});
	jQuery(".tableFixHead thead tr").css({"color":"#fec401","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row8,#row9,#row1,#row11").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row9');
    container.scrollTop = scrollTo.offsetTop;
}
if(jQuery(".active #slider_8488_slide11").length > 0)
{
jQuery("#row11").css({"color":"white","transition":"1s"});
	
	jQuery(".tableFixHead thead tr").css({"color":"#fdfe00","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row1").css({"color":"#777777","transition":"1s"});

    var container = document.getElementsByClassName('tableFixHead')[0]; 
    var scrollTo = document.getElementById('row10');
    container.scrollTop = scrollTo.offsetTop;
}


});
	


});













 if(window.location.href.indexOf("jespionne.com/agency/") > -1) 
 {
 jQuery("#row1a").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 0);
jQuery("#row1a").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#e41f02","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });

  
 jQuery("#row2").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 1);
jQuery("#row2").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#e41f02","transition":"1s"});	
jQuery("#row1a,#row3,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
  jQuery("#row3").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 2);
jQuery("#row3").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#8eb388","transition":"1s"});	
jQuery("#row2,#row1a,#row4,#row5,#row6,#row7,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
  
  jQuery("#row4").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 3);
jQuery("#row4").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#8da1a0","transition":"1s"});	
jQuery("#row2,#row3,#row5,#row6,#row7,#row1a,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
  jQuery("#row5").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 4);
jQuery("#row5").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#0e73ab","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row6,#row7,#row1a,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
 jQuery("#row6").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 5);
jQuery("#row6").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#ff7a03","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row7,#row1a,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
  jQuery("#row7").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 6);
jQuery("#row7").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#9d0e12","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row1a,#row8,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
  
  jQuery("#row8").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 7);
jQuery("#row8").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#e4caa9","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row1a,#row9,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
  jQuery("#row9").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 8);
jQuery("#row9").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#feb7a8","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row1a,#row8,#row10,#row11").css({"color":"#777777","transition":"1s"});
  });
  
 jQuery("#row10").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 9);
jQuery("#row10").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#fec401","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row1a,#row8,#row9,#row11").css({"color":"#777777","transition":"1s"});
  });
  
jQuery("#row11").click(function(){
jQuery("#slider_8488").trigger("to.owl.carousel", 10);
jQuery("#row11").css({"color":"white","transition":"1s"});
jQuery(".tableFixHead thead tr").css({"color":"#fdfe00","transition":"1s"});	
jQuery("#row2,#row3,#row4,#row5,#row6,#row7,#row1a,#row8,#row9,#row10").css({"color":"#777777","transition":"1s"});
  });
 
 
 }



 if
 (
		(window.location.href.indexOf("jespionne.com/") > -1) 
	)
 {
	 if(window.location.href!== "https://jespionne.com/")
	 {
			var url      = window.location.href;
		 var title = jQuery(document).filter('title').text();

			jQuery(".mk-side-dashboard").before("<div class='wpb_raw_code wpb_content_element wpb_raw_html social_section' id='add_to_any_section'>		<div class='wpb_wrapper'>			<div class='addtoany_shortcode'><div class='a2a_kit a2a_kit_size_ addtoany_list' data-a2a-url='"+url+"' data-a2a-title='' style='line-height: 16px;'><a class='a2a_button_facebook' href='/#facebook' title='Facebook' rel='nofollow noopener' target='_blank'><img src='https://jespionne.com//fonts/facebook.svg' width='30' alt='Facebook'></a><a class='a2a_button_twitter' href='/#twitter' title='Twitter' rel='nofollow noopener' target='_blank'><img src='https://jespionne.com//fonts/twitter.svg' width='30' alt='Twitter'></a><a class='a2a_button_pinterest' href='/#pinterest' title='Pinterest' rel='nofollow noopener' target='_blank'><img src='https://jespionne.com//fonts/pinterest.svg' width='30' alt='Pinterest'></a><a class='a2a_button_tumblr' href='https://www.addtoany.com/add_to/tumblr?linkurl="+url+"&amp;linkname="+title+"&amp;linknote=' title='Tumblr' rel='nofollow noopener' target='_blank'><img src='https://jespionne.com//fonts/tumblr.png' width='30' alt='Tumblr'></a><a class='a2a_button_linkedin' href='https://www.addtoany.com/add_to/linkedin?linkurl="+url+"&amp;linkname="+title+"&amp;linknote=' title='LinkedIn' rel='nofollow noopener' target='_blank'><img src='https://jespionne.com//fonts/linkedin.png' width='30' alt='LinkedIn'></a></div></div>	<div class='wpb_raw_code wpb_content_element wpb_raw_html'>		<div class='wpb_wrapper'>			<style>.addtoany_list a, .widget .addtoany_list a{display: block !important;}.addtoany_list {    display: inline-block !important;}.social_section{    position: fixed;    top: 50%;left:0; z-index:999;}</style>		</div>	</div>		</div>	</div>");	 
		 
	 }
						
 }";s:20:"theme_import_options";s:0:"";s:18:"theme_header_align";s:6:"center";s:20:"theme_toolbar_toggle";s:5:"false";s:14:"button_clicked";s:22:"save_theme_options_top";s:7:"_source";s:0:"";s:6:"_image";s:0:"";s:15:"_color_gradient";s:0:"";s:6:"_color";s:0:"";s:8:"_color_2";s:0:"";s:21:"_color_gradient_style";s:0:"";s:21:"_color_gradient_angle";s:0:"";s:5:"_size";s:0:"";s:9:"_position";s:0:"";s:11:"_attachment";s:0:"";s:7:"_repeat";s:0:"";s:24:"sticky_header_logo_width";s:2:"50";}