PageSourceSearch

https://fpdesign.com/design-services/

html fpdesign.com collected 2026-10-07 01:23:50 UTC 298,037 bytes, 2,941 lines download raw bytes

1<!DOCTYPE html><html lang="en-US"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="profile" href="http://gmpg.org/xfn/11" /><link rel="pingback" href="https://fpdesign.com/xmlrpc.php" /><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /><style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style><link rel="alternate" hreflang="en" href="https://fpdesign.com/design-services/" /><link rel="alternate" hreflang="de" href="https://fpdesign.com/leistungen/?lang=de" /><link rel="alternate" hreflang="ja" href="https://fpdesign.com/services/?lang=ja" /><link rel="alternate" hreflang="x-default" href="https://fpdesign.com/design-services/" />  
1<script defer id="google_gtagjs-js-consent-mode-data-layer" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2NvbnNlbnQnLCAnZGVmYXVsdCcsIHsiYWRfcGVyc29uYWxpemF0aW9uIjoiZGVuaWVkIiwiYWRfc3RvcmFnZSI6ImRlbmllZCIsImFkX3VzZXJfZGF0YSI6ImRlbmllZCIsImFuYWx5dGljc19zdG9yYWdlIjoiZGVuaWVkIiwiZnVuY3Rpb25hbGl0eV9zdG9yYWdlIjoiZGVuaWVkIiwic2VjdXJpdHlfc3RvcmFnZSI6ImRlbmllZCIsInBlcnNvbmFsaXphdGlvbl9zdG9yYWdlIjoiZGVuaWVkIiwicmVnaW9uIjpbIkFUIiwiQkUiLCJCRyIsIkNIIiwiQ1kiLCJDWiIsIkRFIiwiREsiLCJFRSIsIkVTIiwiRkkiLCJGUiIsIkdCIiwiR1IiLCJIUiIsIkhVIiwiSUUiLCJJUyIsIklUIiwiTEkiLCJMVCIsIkxVIiwiTFYiLCJNVCIsIk5MIiwiTk8iLCJQTCIsIlBUIiwiUk8iLCJTRSIsIlNJIiwiU0siXSwid2FpdF9mb3JfdXBkYXRlIjo1MDB9KTsKd2luZG93Ll9nb29nbGVzaXRla2l0Q29uc2VudENhdGVnb3J5TWFwID0geyJzdGF0aXN0aWNzIjpbImFuYWx5dGljc19zdG9yYWdlIl0sIm1hcmtldGluZyI6WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sImZ1bmN0aW9uYWwiOlsiZnVuY3Rpb25hbGl0eV9zdG9yYWdlIiwic2VjdXJpdHlfc3RvcmFnZSJdLCJwcmVmZXJlbmNlcyI6WyJwZXJzb25hbGl6YXRpb25fc3RvcmFnZSJdfTsKd2luZG93Ll9nb29nbGVzaXRla2l0Q29uc2VudHMgPSB7ImFkX3BlcnNvbmFsaXphdGlvbiI6ImRlbmllZCIsImFkX3N0b3JhZ2UiOiJkZW5pZWQiLCJhZF91c2VyX2RhdGEiOiJkZW5pZWQiLCJhbmFseXRpY3Nfc3RvcmFnZSI6ImRlbmllZCIsImZ1bmN0aW9uYWxpdHlfc3RvcmFnZSI6ImRlbmllZCIsInNlY3VyaXR5X3N0b3JhZ2UiOiJkZW5pZWQiLCJwZXJzb25hbGl6YXRpb25fc3RvcmFnZSI6ImRlbmllZCIsInJlZ2lvbiI6WyJBVCIsIkJFIiwiQkciLCJDSCIsIkNZIiwiQ1oiLCJERSIsIkRLIiwiRUUiLCJFUyIsIkZJIiwiRlIiLCJHQiIsIkdSIiwiSFIiLCJIVSIsIklFIiwiSVMiLCJJVCIsIkxJIiwiTFQiLCJMVSIsIkxWIiwiTVQiLCJOTCIsIk5PIiwiUEwiLCJQVCIsIlJPIiwiU0UiLCJTSSIsIlNLIl0sIndhaXRfZm9yX3VwZGF0ZSI6NTAwfTsKLyogXV0+ICovCg=="></script>
1 <link media="all" href="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_9b963ecdf460cbfebee0017542e67167.php" rel="stylesheet"><title>industrial design services, brand &amp; ux/ui | f/p design</title><meta name="description" content="explore f/p design services: industrial and product design, ux/ui, brand design, design consulting, communication design and architectural design." /><link rel="canonical" href="https://fpdesign.com/design-services/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="industrial design services, brand &amp; ux/ui | f/p design" /><meta property="og:description" content="explore f/p design services: industrial and product design, ux/ui, brand design, design consulting, communication design and architectural design." /><meta property="og:url" content="https://fpdesign.com/design-services/" /><meta property="og:site_name" content="f/p design" /><meta property="article:publisher" content="https://www.facebook.com/fpdesignstudios" /><meta property="article:modified_time" content="2026-10-04T09:03:27+00:00" /><meta name="twitter:card" content="summary_large_image" /> 
1<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://fpdesign.com/design-services/","url":"https://fpdesign.com/design-services/","name":"industrial design services, brand & ux/ui | f/p design","isPartOf":{"@id":"https://fpdesign.com/#website"},"datePublished":"2021-08-04T15:17:47+00:00","dateModified":"2026-10-04T09:03:27+00:00","description":"explore f/p design services: industrial and product design, ux/ui, brand design, design consulting, communication design and architectural design.","breadcrumb":{"@id":"https://fpdesign.com/design-services/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://fpdesign.com/design-services/"]}],"mainEntity":[{"@id":"https://fpdesign.com/design-services/#fp-cms-service"}]},{"@type":"BreadcrumbList","@id":"https://fpdesign.com/design-services/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://fpdesign.com/"},{"@type":"ListItem","position":2,"name":"services"}]},{"@type":"WebSite","@id":"https://fpdesign.com/#website","url":"https://fpdesign.com/","name":"f/p design","description":"","publisher":{"@id":"https://fpdesign.com/#organization"},"alternateName":"f/p design GmbH","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://fpdesign.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://fpdesign.com/#organization","name":"f/p design GmbH","alternateName":"f/p design","url":"https://fpdesign.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://fpdesign.com/#/schema/logo/image/","url":"https://fpdesign.com/wp-content/uploads/2025/06/fp-design-logo-2.svg","contentUrl":"https://fpdesign.com/wp-content/uploads/2025/06/fp-design-logo-2.svg","width":190,"height":44,"caption":"f/p design GmbH"},"image":{"@id":"https://fpdesign.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/fpdesignstudios","https://www.instagram.com/fp_design/","https://linkedin.com/company/f-p-design-gmbh"]},{"@type":"OfferCatalog","@id":"https://fpdesign.com/design-services/#fp-cms-offers","name":"f/p design services","url":"https://fpdesign.com/design-services/","numberOfItems":7,"itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/industrial-design/#fp-cms-service","name":"industrial design","url":"https://fpdesign.com/industrial-design/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/industrial-design/"},"description":"f/p design specialises in industrial design that transforms complex technical requirements into innovative, market-ready solutions. our expertise combines functional precision, minimalist aesthetics and a commitment to sustainability, ensuring your product stands out in a competitive global market. from the first concept sketch through to photorealistic visualisations, prototyping and optional serial production support, we guide your product deve"}},{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/design-services/brand-design/#fp-cms-service","name":"brand design","url":"https://fpdesign.com/design-services/brand-design/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/brand-design/"},"description":"a consistent brand design is one of the most important foundations for brand awareness and the success of a company and its products. our design consulting combines qualitative company and competitor analyses, brand development workshops, creation of corporate design manuals and develops customised design strategies and design languages ​​to convey your corporate identity."}},{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/design-services/ux-ui-design/#fp-cms-service","name":"ux / ui design","url":"https://fpdesign.com/design-services/ux-ui-design/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/ux-ui-design/"},"description":"the safe and easy handling of complex systems requires understandable interfaces. f/p design develops user interfaces and user experiences (ux/ui design) with a focus on usability to make your products intuitive to use for everyone."}},{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/design-services/design-consulting/#fp-cms-service","name":"design consulting","url":"https://fpdesign.com/design-services/design-consulting/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/design-consulting/"},"description":"f/p design shares knowledge and expertise with your company to develop your in-house design team and support you in brand development. we offer professional design consulting and conduct workshops on various topics, from life-centered design to design thinking, and ensure that your brand reflects the corporate identity on all levels."}},{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/design-services/architectural-design/#fp-cms-service","name":"architectural design","url":"https://fpdesign.com/design-services/architectural-design/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/architectural-design/"},"description":"architectural design is an important element of corporate identity and brand design. f/p design offers interior design, showroom design, retail design and exhibition stand design suitable for your company for a holistic brand appearance. our design process undergoes several phases of research, conception, development and implementation. each phase is optional and can be selected upon request. we offer the first consultation for free to determine "}},{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/design-services/communication-design/#fp-cms-service","name":"communication design","url":"https://fpdesign.com/design-services/communication-design/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/communication-design/"},"description":"communication media with a strong corporate and brand design reinforce the corporate identity of a company and help to achieve a clear recognition value. f/p design offers services such as graphic design, animation design, web design and the design of advertising material for online and print. our design process undergoes several phases of research, conception, development and implementation. each phase is optional and can be selected upon reques"}},{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://fpdesign.com/design-services/design-for-startups/#fp-cms-service","name":"design for startups","url":"https://fpdesign.com/design-services/design-for-startups/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/design-for-startups/"},"description":"f/p design supports startups from the first idea to market launch and scaling. we combine industrial design and product development, ux/ui, brand strategy and communication to turn complex ideas into clear, feasible and distinctive products."}}]},{"@type":"Service","@id":"https://fpdesign.com/design-services/#fp-cms-service","name":"services","url":"https://fpdesign.com/design-services/","provider":{"@id":"https://fpdesign.com/#organization"},"mainEntityOfPage":{"@id":"https://fpdesign.com/design-services/"},"description":"f/p design offers industrial design, brand design, ux/ui design, design consulting, architectural design, communication design and dedicated design programs for startups. our international, multidisciplinary teams help organizations develop new products, strengthen brand identity, improve user experiences and bring ideas to market successfully.","hasOfferCatalog":{"@id":"https://fpdesign.com/design-services/#fp-cms-offers"}}]}</script>
1 <link rel='dns-prefetch' href='//www.googletagmanager.com' /><link rel="alternate" type="application/rss+xml" title="f/p design &raquo; Feed" href="https://fpdesign.com/feed/" /><link rel="alternate" type="application/rss+xml" title="f/p design &raquo; Comments Feed" href="https://fpdesign.com/comments/feed/" /><link rel="ard" type="application/json" href="https://fpdesign.com/.well-known/ard.json"><link rel="ai-catalog" type="application/json" href="https://fpdesign.com/.well-known/ai-catalog.json"><style id='cf-frontend-style-inline-css' type='text/css'>@font-face {
2	font-family: 'Raleway';
3	font-style: normal;
4	font-weight: 100;
5	font-display: auto;
6	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-100.woff2') format('woff2'),
7		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-100.woff') format('woff'),
8		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-100.ttf') format('truetype'),
9		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-100.eot?#iefix') format('embedded-opentype'),
10		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-100.svg') format('svg');
11}
12@font-face {
13	font-family: 'Raleway';
14	font-style: normal;
15	font-weight: 100;
16	font-display: auto;
17	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-200.woff2') format('woff2'),
18		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-200.woff') format('woff'),
19		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-200.ttf') format('truetype'),
20		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-200.eot?#iefix') format('embedded-opentype');
21}
22@font-face {
23	font-family: 'Raleway';
24	font-style: normal;
25	font-weight: 100;
26	font-display: auto;
27	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-300.woff2') format('woff2'),
28		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-300.woff') format('woff'),
29		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-300.ttf') format('truetype'),
30		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-300.eot?#iefix') format('embedded-opentype'),
31		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-300.svg') format('svg');
32}
33@font-face {
34	font-family: 'Raleway';
35	font-style: normal;
36	font-weight: 400;
37	font-display: auto;
38	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-regular.woff2') format('woff2'),
39		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-regular.woff') format('woff'),
40		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-regular.ttf') format('truetype'),
41		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-regular.eot?#iefix') format('embedded-opentype');
42}
43@font-face {
44	font-family: 'Raleway';
45	font-style: normal;
46	font-weight: 500;
47	font-display: auto;
48	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-500.woff2') format('woff2'),
49		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-500.woff') format('woff'),
50		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-500.ttf') format('truetype'),
51		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-500.eot?#iefix') format('embedded-opentype'),
52		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-500.svg') format('svg');
53}
54@font-face {
55	font-family: 'Raleway';
56	font-style: normal;
57	font-weight: 600;
58	font-display: auto;
59	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-600.woff2') format('woff2'),
60		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-600.woff') format('woff'),
61		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-600.ttf') format('truetype'),
62		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-600.eot?#iefix') format('embedded-opentype'),
63		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-600.svg') format('svg');
64}
65@font-face {
66	font-family: 'Raleway';
67	font-style: normal;
68	font-weight: 700;
69	font-display: auto;
70	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-700.woff2') format('woff2'),
71		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-700.woff') format('woff'),
72		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-700.ttf') format('truetype'),
73		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-700.eot?#iefix') format('embedded-opentype'),
74		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-700.svg') format('svg');
75}
76@font-face {
77	font-family: 'Raleway';
78	font-style: normal;
79	font-weight: 800;
80	font-display: auto;
81	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-800.woff2') format('woff2'),
82		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-800.woff') format('woff'),
83		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-800.ttf') format('truetype'),
84		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-800.eot?#iefix') format('embedded-opentype'),
85		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-800.svg') format('svg');
86}
87@font-face {
88	font-family: 'Raleway';
89	font-style: normal;
90	font-weight: 900;
91	font-display: auto;
92	src: url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-900.woff2') format('woff2'),
93		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-900.woff') format('woff'),
94		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-900.ttf') format('truetype'),
95		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-900.eot?#iefix') format('embedded-opentype'),
96		url('https://fpdesign.com/wp-content/uploads/2022/01/raleway-v22-latin-900.svg') format('svg');
97}</style><style id='classic-theme-styles-inline-css' type='text/css'>/*! This file is auto-generated */
98.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;
98padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}</style><style id='html5-player-audio-style-inline-css' type='text/css'>.h5vp-audio-editor-preview,.wp-block-html5-player-audio{box-sizing:border-box;width:100%}.editor-styles-wrapper .wp-block[data-align=center].wp-block-html5-player-audio,.editor-styles-wrapper .wp-block[data-align=left].wp-block-html5-player-audio,.editor-styles-wrapper .wp-block[data-align=right].wp-block-html5-player-audio,.wp-block-html5-player-audio.aligncenter,.wp-block-html5-player-audio.alignleft,.wp-block-html5-player-audio.alignright,.wp-block-html5-player-audio[data-align=center],.wp-block-html5-player-audio[data-align=left],.wp-block-html5-player-audio[data-align=right],.wp-block.aligncenter:has(>.h5vp-audio-editor-preview),.wp-block.alignleft:has(>.h5vp-audio-editor-preview),.wp-block.alignright:has(>.h5vp-audio-editor-preview){clear:both!important;float:none!important;margin-left:auto!important;margin-right:auto!important;margin-inline-end:auto!important;margin-inline-start:auto!important;width:100%!important}.editor-styles-wrapper .wp-block[data-align=left].wp-block-html5-player-audio,.editor-styles-wrapper .wp-block[data-align=right].wp-block-html5-player-audio,.wp-block-html5-player-audio.alignleft,.wp-block-html5-player-audio.alignright,.wp-block-html5-player-audio[data-align=left],.wp-block-html5-player-audio[data-align=right],.wp-block.alignleft:has(>.h5vp-audio-editor-preview),.wp-block.alignright:has(>.h5vp-audio-editor-preview){max-width:var(--wp--style--global--content-size,100%)!important}.wp-block-html5-player-audio.alignleft .h5vp-audio-container,.wp-block-html5-player-audio[data-align=left] .h5vp-audio-container{margin-left:0!important;margin-right:auto!important}.wp-block-html5-player-audio.aligncenter .h5vp-audio-container,.wp-block-html5-player-audio[data-align=center] .h5vp-audio-container{margin-left:auto!important;margin-right:auto!important}.wp-block-html5-player-audio.alignright .h5vp-audio-container,.wp-block-html5-player-audio[data-align=right] .h5vp-audio-container{margin-left:auto!important;margin-right:0!important}.h5vp-audio-container{--h5vp-audio-primary:#005aff;--h5vp-audio-bg:#1e2227;--h5vp-audio-text:#f0f3f6;--h5vp-audio-muted:color-mix(in srgb,var(--h5vp-audio-text) 68%,transparent);--h5vp-audio-rail:color-mix(in srgb,var(--h5vp-audio-text) 18%,transparent);--h5vp-audio-buffered:color-mix(in srgb,var(--h5vp-audio-text) 32%,transparent);--h5vp-audio-border:color-mix(in srgb,var(--h5vp-audio-text) 12%,transparent);--h5vp-track-h:24px;--h5vp-rail-h:5px;--h5vp-rail-r:3px;--h5vp-thumb:12px;--h5vp-thumb-scale:0;--h5vp-play-btn:38px;--h5vp-play-svg:20px;--h5vp-skip-btn:30px;--h5vp-skip-svg:18px;--h5vp-skip-badge:8px;--h5vp-icon-btn:28px;--h5vp-icon-svg:18px;--h5vp-time-size:12px;--h5vp-time-min:34px;--h5vp-speed-pad:3px 7px;--h5vp-speed-bg:12%;--h5vp-speed-bg-hover:22%;--h5vp-speed-item-pad:5px 12px;--h5vp-speed-anchor-left:auto;--h5vp-speed-anchor-right:0;box-sizing:border-box;color:var(--h5vp-audio-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
98min-width:200px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;-webkit-font-smoothing:antialiased}.h5vp-audio-container *,.h5vp-audio-container :after,.h5vp-audio-container :before{box-sizing:border-box}.h5vp-audio-container .h5vp-btn,.h5vp-audio-container [role=slider],.h5vp-audio-container a,.h5vp-audio-container button,.h5vp-audio-container input{outline:none!important;-webkit-tap-highlight-color:rgba(0,0,0,0)}.h5vp-audio-container .h5vp-btn:active,.h5vp-audio-container .h5vp-btn:focus,.h5vp-audio-container .h5vp-btn:focus-visible,.h5vp-audio-container [role=slider]:active,.h5vp-audio-container [role=slider]:focus,.h5vp-audio-container [role=slider]:focus-visible,.h5vp-audio-container a:active,.h5vp-audio-container a:focus,.h5vp-audio-container a:focus-visible,.h5vp-audio-container button:active,.h5vp-audio-container button:focus,.h5vp-audio-container button:focus-visible,.h5vp-audio-container input:active,.h5vp-audio-container input:focus,.h5vp-audio-container input:focus-visible{box-shadow:none!important;outline:none!important}.h5vp-audio-container .h5vp-audio-native-el{display:none!important}.h5vp-skin-type-minimal{--h5vp-play-btn:36px;--h5vp-play-svg:22px;--h5vp-time-min:0}.h5vp-skin-type-compact{--h5vp-track-h:20px;--h5vp-rail-h:4px;--h5vp-rail-r:2px;--h5vp-thumb:8px;--h5vp-thumb-scale:1;--h5vp-play-btn:30px;--h5vp-play-svg:16px;--h5vp-icon-btn:26px;--h5vp-icon-svg:16px;--h5vp-time-size:11px;--h5vp-time-min:0}.h5vp-btn{align-items:center;background:transparent;border:0!important;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;margin:0;opacity:.75;outline:none!important;padding:0;position:relative;text-decoration:none;transition:transform .15s ease,opacity .15s ease,background-color .15s ease}.h5vp-btn,.h5vp-btn:hover{color:var(--h5vp-audio-text)}.h5vp-btn:hover{opacity:1;transform:scale(1.06)}.h5vp-btn:active{transform:scale(.96)}.h5vp-btn:focus,.h5vp-btn:focus-visible{box-shadow:none!important;outline:none!important}.h5vp-btn svg{height:20px;width:20px}.h5vp-btn-play{background:var(--h5vp-audio-primary);color:#fff;height:var(--h5vp-play-btn);opacity:1;width:var(--h5vp-play-btn)}.h5vp-btn-play svg{fill:currentColor;height:var(--h5vp-play-svg);width:var(--h5vp-play-svg)}.h5vp-btn-skip{color:var(--h5vp-audio-text);height:var(--h5vp-skip-btn);opacity:.75;width:var(--h5vp-skip-btn)}.h5vp-btn-skip:hover{color:var(--h5vp-audio-text);opacity:1}.h5vp-btn-skip svg{height:var(--h5vp-skip-svg);width:var(--h5vp-skip-svg)}.h5vp-btn-skip .h5vp-skip-badge{color:var(--h5vp-audio-text);font-size:var(--h5vp-skip-badge);font-weight:700;position:absolute;top:10px}.h5vp-btn-download,.h5vp-btn-volume{color:var(--h5vp-audio-text);height:var(--h5vp-icon-btn);opacity:.75;width:var(--h5vp-icon-btn)}.h5vp-btn-download:hover,.h5vp-btn-volume:hover{color:var(--h5vp-audio-text);opacity:1}.h5vp-btn-download svg,.h5vp-btn-volume svg{display:block;height:var(--h5vp-icon-svg);width:var(--h5vp-icon-svg)}.h5vp-time{color:var(--h5vp-audio-text);flex-shrink:0;font-size:var(--h5vp-time-size);font-variant-numeric:tabular-nums;min-width:var(--h5vp-time-min);opacity:.75}.h5vp-time-current{text-align:right}.h5vp-time-duration{text-align:left}.h5vp-progress-wrapper{align-items:center;cursor:pointer;display:flex;flex:1 1 auto;height:var(--h5vp-track-h);position:relative;touch-action:none}.h5vp-progress-wrapper:hover .h5vp-progress-thumb{transform:translateY(-50%) scale(1)}.h5vp-progress-rail{background:var(--h5vp-audio-rail);border-radius:var(--h5vp-rail-r);height:var(--h5vp-rail-h);overflow:visible;position:relative;width:100%}.h5vp-progress-buffered,.h5vp-progress-played{border-radius:var(--h5vp-rail-r);height:100%;left:0;position:absolute;top:0}.h5vp-progress-buffered{background:var(--h5vp-audio-buffered);transition:width .2s ease}.h5vp-progress-played{background:var(--h5vp-audio-primary)}.h5vp-progress-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.4);height:var(--h5vp-thumb);position:absolute;right:calc(var(--h5vp-thumb)/-2);top:50%;transform:translateY(-50%) scale(var(--h5vp-thumb-scale));transition:transform .12s ease;width:var(--h5vp-thumb)}.h5vp-hover-tooltip{background:#000;border-radius:4px;bottom:24px;box-shadow:0 2px 6px rgba(0,0,0,.3);color:#fff;font-size:10px;font-weight:600;padding:3px 6px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:2}.h5vp-speed-wrapper{align-items:center;display:flex;flex-shrink:0;position:relative}.h5vp-btn-speed{background:color-mix(in srgb,var(--h5vp-audio-text) var(--h5vp-speed-bg),transparent);border-radius:6px;color:var(--h5vp-audio-text);font-size:11px;font-weight:700;opacity:.85;
98padding:var(--h5vp-speed-pad)}.h5vp-btn-speed.is-active,.h5vp-btn-speed:hover{background:color-mix(in srgb,var(--h5vp-audio-text) var(--h5vp-speed-bg-hover),transparent);color:var(--h5vp-audio-text);opacity:1}.h5vp-speed-popover{background:var(--h5vp-audio-bg);border:1px solid var(--h5vp-audio-border);border-radius:8px;bottom:calc(100% + 8px);box-shadow:0 6px 20px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:2px;left:var(--h5vp-speed-anchor-left);padding:4px;position:absolute;right:var(--h5vp-speed-anchor-right);z-index:10}.h5vp-speed-popover .h5vp-speed-item{background:transparent;border:0;border-radius:4px;color:var(--h5vp-audio-text);cursor:pointer;font-size:11px;font-weight:600;opacity:.8;padding:var(--h5vp-speed-item-pad);text-align:center;transition:background-color .1s ease,color .1s ease}.h5vp-speed-popover .h5vp-speed-item:hover{background:color-mix(in srgb,var(--h5vp-audio-text) 14%,transparent);color:var(--h5vp-audio-text);opacity:1}.h5vp-speed-popover .h5vp-speed-item.is-selected{background:var(--h5vp-audio-primary);color:#fff;opacity:1}.h5vp-vol-wrapper{align-items:center;display:flex;flex-shrink:0;justify-content:center;position:relative}.h5vp-vol-popover{align-items:center;animation:h5vpAudioSlideUp .18s cubic-bezier(.16,1,.3,1);background:var(--h5vp-audio-bg,#1e1e24);border:1px solid var(--h5vp-audio-border,hsla(0,0%,100%,.14));border-radius:20px;bottom:calc(100% + 10px);box-shadow:0 8px 24px rgba(0,0,0,.45);display:flex;flex-direction:column;padding:10px 8px;z-index:99}.h5vp-vol-popover,.h5vp-vol-popover:after{left:50%;position:absolute;transform:translateX(-50%)}.h5vp-vol-popover:after{border:5px solid transparent;border-top:5px solid var(--h5vp-audio-bg,#1e1e24);content:"";top:100%}@keyframes h5vpAudioSlideUp{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.h5vp-vol-track{align-items:center;cursor:pointer;display:flex;height:75px;justify-content:center;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.h5vp-vol-rail{background:var(--h5vp-audio-rail,hsla(0,0%,100%,.2));border-radius:2px;height:100%;position:relative;width:4px}.h5vp-vol-fill{background:var(--h5vp-audio-primary,#005aff);border-radius:2px;bottom:0;left:0;position:absolute;width:100%}.h5vp-vol-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.4);height:10px;left:50%;position:absolute;top:0;transform:translate(-50%,-50%);width:10px}.h5vp-skin-default{background:var(--h5vp-audio-bg);border:1px solid var(--h5vp-audio-border);border-radius:var(--h5vp-audio-radius,12px);box-shadow:0 4px 16px rgba(0,0,0,.12);color:var(--h5vp-audio-text);padding:12px 18px}.h5vp-skin-default .h5vp-default-controls{align-items:center;display:flex;gap:12px;width:100%}.h5vp-skin-minimal{align-items:center;background:var(--h5vp-audio-bg);border:1px solid var(--h5vp-audio-border);border-radius:var(--h5vp-audio-radius,16px);box-shadow:0 4px 16px rgba(0,0,0,.12);color:var(--h5vp-audio-text);display:flex;gap:14px;padding:12px 18px}.h5vp-skin-minimal .h5vp-wave__track{align-items:center;cursor:pointer;display:flex;flex:1 1 auto;gap:2px;height:34px;min-width:0;overflow:hidden;touch-action:none}.h5vp-skin-minimal .h5vp-wave__bar{background:var(--h5vp-audio-rail);border-radius:2px;flex:0 0 2px;min-height:3px;opacity:.85;transition:height .3s ease,background-color .12s linear}.h5vp-skin-minimal .h5vp-wave__bar.is-played{background:var(--h5vp-audio-primary);opacity:1}.h5vp-skin-compact .h5vp-compact-pill{align-items:center;background:var(--h5vp-audio-bg);border:1px solid var(--h5vp-audio-border);border-radius:var(--h5vp-audio-radius,40px);box-shadow:0 2px 10px rgba(0,0,0,.1);color:var(--h5vp-audio-text);display:flex;gap:10px;padding:6px 14px}@media(max-width:480px){.h5vp-skin-type-default{--h5vp-time-size:11px}.h5vp-skin-default{padding:8px 12px}.h5vp-skin-default .h5vp-default-controls{gap:6px}.h5vp-skin-default .h5vp-btn-skip{display:none}.h5vp-skin-compact .h5vp-compact-pill{gap:6px;padding:5px 10px}}</style><style id='html5-player-playlist-style-inline-css' type='text/css'>.h5vp_playlist{--h5vp-accent:#00b2ff;--h5vp-accent-wash:rgba(0,178,255,.04);--h5vp-accent-wash:color-mix(in srgb,var(--h5vp-accent) 5%,transparent);--h5vp-accent-wash-strong:rgba(0,178,255,.07);--h5vp-accent-wash-strong:color-mix(in srgb,var(--h5vp-accent) 9%,transparent);--plyr-color-main:var(--h5vp-accent);width:100%}.h5vp_playlist,.h5vp_playlist *{box-sizing:border-box}.h5vp_playlist .h5vp_playlist_container{margin:0 auto;width:100%}.h5vp_playlist .video__wrapper{background:#000;border-radius:8px;margin-bottom:16px;overflow:hidden;position:relative;width:100%}.h5vp_playlist .h5vp_playlist_items.simplelist{display:flex;flex-direction:column;gap:8px;list-style:none!important;margin:0!important;padding:0!important}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;
98cursor:pointer;display:flex;gap:12px;outline:none;padding:12px 16px;transition:all .2s ease}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item:hover{background:var(--h5vp-accent-wash);border-color:var(--h5vp-accent)}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item:focus-visible{box-shadow:0 0 0 2px var(--h5vp-accent)}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item.active{background:var(--h5vp-accent-wash-strong);border-color:var(--h5vp-accent)}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item.active .video_title .title{color:#0f172a;font-weight:600}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item.active .play_pause_svg{background:var(--h5vp-accent);color:#fff}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .play_pause_svg{align-items:center;background:#f1f5f9;border-radius:50%;color:#64748b;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:all .2s ease;width:32px}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .play_pause_svg svg{height:14px;width:14px}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .video_title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .video_title .title{color:#334155;font-size:14px;line-height:1.4;transition:color .2s ease}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .h5vp_pl_simple_eq{align-items:flex-end;display:inline-flex;flex-shrink:0;gap:2px;height:14px}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .h5vp_pl_simple_eq i{animation:h5vpEq .8s ease-in-out infinite alternate;background:var(--h5vp-accent);border-radius:1px;display:inline-block;width:3px}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .h5vp_pl_simple_eq i:first-child{animation-delay:.1s;height:60%}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .h5vp_pl_simple_eq i:nth-child(2){animation-delay:.3s;height:100%}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .h5vp_pl_simple_eq i:nth-child(3){animation-delay:.2s;height:40%}.h5vp_playlist .h5vp_playlist_items.simplelist .h5vp_playlist_item .h5vp_playlist_badge--duration{color:#64748b;flex-shrink:0;font-size:12px;font-weight:500;margin-left:auto}.h5vp_playlist .h5vp_upnext_overlay{align-items:center;animation:h5vpFadeIn .3s ease;backdrop-filter:blur(4px);background:rgba(0,0,0,.75);bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:absolute;right:0;top:0;z-index:100}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card{background:#1e293b;border:1px solid #334155;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.5);max-width:360px;padding:24px;text-align:center;width:100%}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_label{color:var(--h5vp-accent);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_title{color:#fff;font-size:16px;font-weight:600;line-height:1.4;margin:12px 0 20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_actions{display:flex;gap:12px;justify-content:center}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_actions .h5vp_upnext_btn{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;padding:8px 18px;transition:all .2s ease}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_actions .h5vp_upnext_btn--cancel{background:#334155;color:#cbd5e1}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_actions .h5vp_upnext_btn--cancel:hover{background:#475569;color:#fff}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_actions .h5vp_upnext_btn--play{background:var(--h5vp-accent);color:#fff}.h5vp_playlist .h5vp_upnext_overlay .h5vp_upnext_card .h5vp_upnext_actions .h5vp_upnext_btn--play:hover{opacity:.9}
98@keyframes h5vpEq{0%{height:20%}to{height:100%}}@keyframes h5vpFadeIn{0%{opacity:0}to{opacity:1}}</style><style id='safe-svg-svg-icon-style-inline-css' type='text/css'>.safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{fill:currentColor;height:100%;max-height:100%;max-width:100%;width:100%}</style><style id='wpml-legacy-horizontal-list-0-inline-css' type='text/css'>.wpml-ls-statics-shortcode_actions{background-color:#ffffff;}.wpml-ls-statics-shortcode_actions, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu, .wpml-ls-statics-shortcode_actions a {border-color:#818181;}.wpml-ls-statics-shortcode_actions a, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:link, .wpml-ls-statics-shortcode_actions li:not(.wpml-ls-current-language) .wpml-ls-link, .wpml-ls-statics-shortcode_actions li:not(.wpml-ls-current-language) .wpml-ls-link:link {color:#333333;background-color:#ffffff;}.wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:hover,.wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:focus, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:link:hover, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu a:link:focus {color:#000000;background-color:#eeeeee;}.wpml-ls-statics-shortcode_actions .wpml-ls-current-language > a {color:#333333;background-color:#ffffff;}.wpml-ls-statics-shortcode_actions .wpml-ls-current-language:hover>a, .wpml-ls-statics-shortcode_actions .wpml-ls-current-language>a:focus {color:#000000;background-color:#eeeeee;}</style><style id='wpml-menu-item-0-inline-css' type='text/css'>.wpml-ls-slot-65, .wpml-ls-slot-65 a, .wpml-ls-slot-65 a:visited{background-color:#ffffff;color:#818181;}.wpml-ls-slot-65:hover, .wpml-ls-slot-65:hover a, .wpml-ls-slot-65 a:hover{color:#333333;}.wpml-ls-slot-65.wpml-ls-current-language, .wpml-ls-slot-65.wpml-ls-current-language a, .wpml-ls-slot-65.wpml-ls-current-language a:visited{color:#333333;background-color:#ffffff;}.wpml-ls-slot-65.wpml-ls-current-language:hover, .wpml-ls-slot-65.wpml-ls-current-language:hover a, .wpml-ls-slot-65.wpml-ls-current-language a:hover{color:#333333;}
99.wpml-ls-slot-63, .wpml-ls-slot-63 a, .wpml-ls-slot-63 a:visited{color:#b8b8b8;}.wpml-ls-slot-63:hover, .wpml-ls-slot-63:hover a, .wpml-ls-slot-63 a:hover{color:#7a7a7a;}.wpml-ls-slot-63.wpml-ls-current-language, .wpml-ls-slot-63.wpml-ls-current-language a, .wpml-ls-slot-63.wpml-ls-current-language a:visited{color:#333333;}.wpml-ls-slot-63.wpml-ls-current-language:hover, .wpml-ls-slot-63.wpml-ls-current-language:hover a, .wpml-ls-slot-63.wpml-ls-current-language a:hover{color:#7a7a7a;}.wpml-ls-slot-63.wpml-ls-current-language .wpml-ls-slot-63, .wpml-ls-slot-63.wpml-ls-current-language .wpml-ls-slot-63 a, .wpml-ls-slot-63.wpml-ls-current-language .wpml-ls-slot-63 a:visited{color:#b8b8b8;}.wpml-ls-slot-63.wpml-ls-current-language .wpml-ls-slot-63:hover, .wpml-ls-slot-63.wpml-ls-current-language .wpml-ls-slot-63:hover a, .wpml-ls-slot-63.wpml-ls-current-language .wpml-ls-slot-63 a:hover {color:#7a7a7a;}</style><style id='bridge-stylesheet-inline-css' type='text/css'>.page-id-21305.disabled_footer_top .footer_top_holder, .page-id-21305.disabled_footer_bottom .footer_bottom_holder { display: none;}</style><link rel='stylesheet' id='bridge-style-dynamic-css' href='https://fpdesign.com/wp-content/themes/bridge/css/style_dynamic_callback.php' type='text/css' media='all' /><link rel='stylesheet' id='bridge-style-dynamic-responsive-css' href='https://fpdesign.com/wp-content/themes/bridge/css/style_dynamic_responsive_callback.php' type='text/css' media='all' /><style id='the-grid-inline-css' type='text/css'>.tolb-holder{background:rgba(0,0,0,0.8)}.tolb-holder .tolb-close,.tolb-holder .tolb-title,.tolb-holder .tolb-counter,.tolb-holder .tolb-next i,.tolb-holder .tolb-prev i{color:#ffffff}.tolb-holder .tolb-load{border-color:rgba(1,0,0,0.2);border-left:3px solid #ffffff}
100.to-heart-icon,.to-heart-icon svg,.to-post-like,.to-post-like .to-like-count{position:relative;display:inline-block}.to-post-like{width:auto;cursor:pointer;font-weight:400}.to-heart-icon{float:left;margin:0 4px 0 0}.to-heart-icon svg{overflow:visible;width:15px;height:14px}.to-heart-icon g{-webkit-transform:scale(1);transform:scale(1)}.to-heart-icon path{-webkit-transform:scale(1);transform:scale(1);transition:fill .4s ease,stroke .4s ease}.no-liked .to-heart-icon path{fill:#999;stroke:#999}.empty-heart .to-heart-icon path{fill:transparent!important;stroke:#999}
100.liked .to-heart-icon path,.to-heart-icon svg:hover path{fill:#ff6863!important;stroke:#ff6863!important}@keyframes heartBeat{0%{transform:scale(1)}20%{transform:scale(.8)}30%{transform:scale(.95)}45%{transform:scale(.75)}50%{transform:scale(.85)}100%{transform:scale(.9)}}@-webkit-keyframes heartBeat{0%,100%,50%{-webkit-transform:scale(1)}20%{-webkit-transform:scale(.8)}30%{-webkit-transform:scale(.95)}45%{-webkit-transform:scale(.75)}}.heart-pulse g{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.to-post-like a{color:inherit!important;fill:inherit!important;stroke:inherit!important}</style> 
100<script defer src="https://www.googletagmanager.com/gtm.js?id=GTM-NSQ57BG9" id="fp-gtm-nsq57bg9-js"></script>
100<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
100 
100<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
100 
100<script defer id="cookie-law-info-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgQ2xpX0RhdGEgPSB7Im5uX2Nvb2tpZV9pZHMiOlsiX2dhIiwiX2dpZCIsIl9nYXQiXSwiY29va2llbGlzdCI6W10sIm5vbl9uZWNlc3NhcnlfY29va2llcyI6eyJwZXJmb3JtYW5jZSI6WyJfZ2F0Il0sImFuYWx5dGljcyI6WyJfZ2EiLCJfZ2lkIl19LCJjY3BhRW5hYmxlZCI6IiIsImNjcGFSZWdpb25CYXNlZCI6IiIsImNjcGFCYXJFbmFibGVkIjoiIiwic3RyaWN0bHlFbmFibGVkIjpbIm5lY2Vzc2FyeSIsIm9ibGlnYXRvaXJlIl0sImNjcGFUeXBlIjoiZ2RwciIsImpzX2Jsb2NraW5nIjoiMSIsImN1c3RvbV9pbnRlZ3JhdGlvbiI6IiIsInRyaWdnZXJEb21SZWZyZXNoIjoiIiwic2VjdXJlX2Nvb2tpZXMiOiIifTsKdmFyIGNsaV9jb29raWViYXJfc2V0dGluZ3MgPSB7ImFuaW1hdGVfc3BlZWRfaGlkZSI6IjUwMCIsImFuaW1hdGVfc3BlZWRfc2hvdyI6IjUwMCIsImJhY2tncm91bmQiOiIjZmZmZmZmIiwiYm9yZGVyIjoiI2IxYTZhNmMyIiwiYm9yZGVyX29uIjoiIiwiYnV0dG9uXzFfYnV0dG9uX2NvbG91ciI6IiNmOGM0MjQiLCJidXR0b25fMV9idXR0b25faG92ZXIiOiIjYzY5ZDFkIiwiYnV0dG9uXzFfbGlua19jb2xvdXIiOiIjMDAwMDAwIiwiYnV0dG9uXzFfYXNfYnV0dG9uIjoiMSIsImJ1dHRvbl8xX25ld193aW4iOiIiLCJidXR0b25fMl9idXR0b25fY29sb3VyIjoiIzMzMyIsImJ1dHRvbl8yX2J1dHRvbl9ob3ZlciI6IiMyOTI5MjkiLCJidXR0b25fMl9saW5rX2NvbG91ciI6IiM0NDQiLCJidXR0b25fMl9hc19idXR0b24iOiIiLCJidXR0b25fMl9oaWRlYmFyIjoiIiwiYnV0dG9uXzNfYnV0dG9uX2NvbG91ciI6IiNkZWRmZTAiLCJidXR0b25fM19idXR0b25faG92ZXIiOiIjYjJiMmIzIiwiYnV0dG9uXzNfbGlua19jb2xvdXIiOiIjMzMzMzMzIiwiYnV0dG9uXzNfYXNfYnV0dG9uIjoiMSIsImJ1dHRvbl8zX25ld193aW4iOiIiLCJidXR0b25fNF9idXR0b25fY29sb3VyIjoiI2RlZGZlMCIsImJ1dHRvbl80X2J1dHRvbl9ob3ZlciI6IiNiMmIyYjMiLCJidXR0b25fNF9saW5rX2NvbG91ciI6IiMzMzMzMzMiLCJidXR0b25fNF9hc19idXR0b24iOiIxIiwiYnV0dG9uXzdfYnV0dG9uX2NvbG91ciI6IiNGOEM0MjQiLCJidXR0b25fN19idXR0b25faG92ZXIiOiIjYzY5ZDFkIiwiYnV0dG9uXzdfbGlua19jb2xvdXIiOiIjMGEwYTBhIiwiYnV0dG9uXzdfYXNfYnV0dG9uIjoiMSIsImJ1dHRvbl83X25ld193aW4iOiIiLCJmb250X2ZhbWlseSI6ImluaGVyaXQiLCJoZWFkZXJfZml4IjoiMSIsIm5vdGlmeV9hbmltYXRlX2hpZGUiOiIxIiwibm90aWZ5X2FuaW1hdGVfc2hvdyI6IjEiLCJub3RpZnlfZGl2X2lkIjoiI2Nvb2tpZS1sYXctaW5mby1iYXIiLCJub3RpZnlfcG9zaXRpb25faG9yaXpvbnRhbCI6InJpZ2h0Iiwibm90aWZ5X3Bvc2l0aW9uX3ZlcnRpY2FsIjoiYm90dG9tIiwic2Nyb2xsX2Nsb3NlIjoiIiwic2Nyb2xsX2Nsb3NlX3JlbG9hZCI6IiIsImFjY2VwdF9jbG9zZV9yZWxvYWQiOiIiLCJyZWplY3RfY2xvc2VfcmVsb2FkIjoiIiwic2hvd2FnYWluX3RhYiI6IiIsInNob3dhZ2Fpbl9iYWNrZ3JvdW5kIjoiI2ZmZiIsInNob3dhZ2Fpbl9ib3JkZXIiOiIjMDAwIiwic2hvd2FnYWluX2Rpdl9pZCI6IiNjb29raWUtbGF3LWluZm8tYWdhaW4iLCJzaG93YWdhaW5feF9wb3NpdGlvbiI6IjEwMHB4IiwidGV4dCI6IiMzMzMzMzMiLCJzaG93X29uY2VfeW4iOiIiLCJzaG93X29uY2UiOiIxMDAwMCIsImxvZ2dpbmdfb24iOiIiLCJhc19wb3B1cCI6IiIsInBvcHVwX292ZXJsYXkiOiIxIiwiYmFyX2hlYWRpbmdfdGV4dCI6IiIsImNvb2tpZV9iYXJfYXMiOiJiYW5uZXIiLCJwb3B1cF9zaG93YWdhaW5fcG9zaXRpb24iOiJib3R0b20tcmlnaHQiLCJ3aWRnZXRfcG9zaXRpb24iOiJyaWdodCJ9Owp2YXIgbG9nX29iamVjdCA9IHsiYWpheF91cmwiOiJodHRwczpcL1wvZnBkZXNpZ24uY29tXC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAifTsKLyogXV0+ICovCg=="></script>
100 
100<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_194741c7fd05319b68161cfcd66a3cc0.php" id="cookie-law-info-js"></script>
100 
100<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_02e33f3cf54a6fa5794c76db9d147592.php" id="wpfm-frontend-js-js"></script>
vendor: 89 bytes, lines 100-101
100 
101 <script defer type="text/javascript" src="https://www.googletagmanager.com/gtag/js?id=
101GT-KT542PRK
vendor: 34 bytes, line 101
101" id="google_gtagjs-js"></script> 
101<script defer id="google_gtagjs-js-after" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoInNldCIsImxpbmtlciIseyJkb21haW5zIjpbImZwZGVzaWduLmNvbSJdfSk7Cmd0YWcoImpzIiwgbmV3IERhdGUoKSk7Cmd0YWcoInNldCIsICJkZXZlbG9wZXJfaWQuZFpUTmlNVCIsIHRydWUpOwpndGFnKCJjb25maWciLCAiR1QtS1Q1NDJQUksiLCB7Imdvb2dsZXNpdGVraXRfcG9zdF90eXBlIjoicGFnZSJ9KTsKIHdpbmRvdy5fZ29vZ2xlc2l0ZWtpdCA9IHdpbmRvdy5fZ29vZ2xlc2l0ZWtpdCB8fCB7fTsgd2luZG93Ll9nb29nbGVzaXRla2l0LnRocm90dGxlZEV2ZW50cyA9IFtdOyB3aW5kb3cuX2dvb2dsZXNpdGVraXQuZ3RhZ0V2ZW50ID0gKG5hbWUsIGRhdGEpID0+IHsgdmFyIGtleSA9IEpTT04uc3RyaW5naWZ5KCB7IG5hbWUsIGRhdGEgfSApOyBpZiAoICEhIHdpbmRvdy5fZ29vZ2xlc2l0ZWtpdC50aHJvdHRsZWRFdmVudHNbIGtleSBdICkgeyByZXR1cm47IH0gd2luZG93Ll9nb29nbGVzaXRla2l0LnRocm90dGxlZEV2ZW50c1sga2V5IF0gPSB0cnVlOyBzZXRUaW1lb3V0KCAoKSA9PiB7IGRlbGV0ZSB3aW5kb3cuX2dvb2dsZXNpdGVraXQudGhyb3R0bGVkRXZlbnRzWyBrZXkgXTsgfSwgNSApOyBndGFnKCAiZXZlbnQiLCBuYW1lLCB7IC4uLmRhdGEsIGV2ZW50X3NvdXJjZTogInNpdGUta2l0IiB9ICk7IH07IAovKiBdXT4gKi8K"></script>
101 <link rel="https://api.w.org/" href="https://fpdesign.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://fpdesign.com/wp-json/wp/v2/pages/21305" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://fpdesign.com/xmlrpc.php?rsd" /><meta name="generator" content="WordPress 6.8.11" /><link rel='shortlink' href='https://fpdesign.com/?p=21305' /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://fpdesign.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ffpdesign.com%2Fdesign-services%2F" /><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://fpdesign.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ffpdesign.com%2Fdesign-services%2F&#038;format=xml" /><meta name="generator" content="WPML ver:4.9.7 stt:60,1,3,27,28,50;" /><meta name="generator" content="Site Kit by Google 1.189.0" /><style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style><meta name="generator" content="Powered by WPBakery Page Builder - drag and drop page builder for WordPress."/><style data-type="vc_custom-css">/* f/p: service overview image zoom, scoped to this WPBakery page and grid. */ body.page-id-21305 #grid-22589 .tg-item-media-holder, body.page-id-21305 #grid-22589 .tg-item-media-inner { overflow: hidden; } body.page-id-21305 #grid-22589 .tg-item-media-content { background-color: transparent !important; } body.page-id-21305 #grid-22589 .tg-item-overlay { background-color: transparent !important; opacity: 0 !important; visibility: hidden !important; } body.page-id-21305 #grid-22589 .tg-item-media-inner .tg-item-image { opacity: 1 !important; filter: none !important; transform: scale(1) !important; transform-origin: center center; transition: transform 2000ms cubic-bezier(0.65, 0, 0.35, 1) !important; } @media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) { body.page-id-21305 #grid-22589 .tg-item:hover .tg-item-media-inner .tg-item-image { transform: scale(1.20) !important; } } @media (prefers-reduced-motion: reduce) { body.page-id-21305 #grid-22589 .tg-item-media-inner .tg-item-image { transform: none !important; transition: none !important; } } /* End f/p service overview image zoom. */</style><style class="wpcode-css-snippet">/* Location row: match the native CentralStationCRM field grid. */
102.fp-cscrm-public .fp-contact-location-row,
103.fp-cscrm-native-test .fp-contact-location-row {
104  display: grid !important;
105  grid-template-columns: 220px minmax(0, 1fr) !important;
106  column-gap: 30px !important;
107  align-items: center !important;
108  width: 100% !important;
109  margin: 0 0 30px !important;
110  padding: 0 !important;
111  box-sizing: border-box !important;
112}
113
114.fp-cscrm-public .fp-contact-location-row > label,
115.fp-cscrm-native-test .fp-contact-location-row > label {
116  display: block !important;
117  width: auto !important;
118  margin: 0 !important;
119  padding: 0 !important;
120  font-family: inherit !important;
121  font-size: inherit !important;
122  font-weight: inherit !important;
123  line-height: inherit !important;
124  color: #333 !important;
125}
126
127.fp-cscrm-public .fp-contact-location-row > select,
128.fp-cscrm-native-test .fp-contact-location-row > select {
129  display: block !important;
130  width: 100% !important;
131  min-width: 0 !important;
132  height: 55px !important;
133  margin: 0 !important;
134  padding: 0 12px !important;
135  box-sizing: border-box !important;
136  border: 1px solid #bdbdbd !important;
137  border-radius: 0 !important;
138  background: #fff !important;
139  font-family: inherit !important;
140  font-size: inherit !important;
141  font-weight: inherit !important;
142  line-height: 55px !important;
143  color: #555 !important;
144  box-shadow: none !important;
145}
146
147@media (max-width: 767px) {
148  .fp-cscrm-public .fp-contact-location-row,
149  .fp-cscrm-native-test .fp-contact-location-row {
150    display: block !important;
151    margin-bottom: 24px !important;
152  }
153
154  .fp-cscrm-public .fp-contact-location-row > label,
155  .fp-cscrm-native-test .fp-contact-location-row > label {
156    margin-bottom: 8px !important;
157  }
158
159  .fp-cscrm-public .fp-contact-location-row > select,
160  .fp-cscrm-native-test .fp-contact-location-row > select {
161    width: 100% !important;
162  }
163}</style><style class="wpcode-css-snippet">/* f/p emergency mobile navigation guard.
164   Mirrors Bridge's intended <=1000px vertical-menu responsive state,
165   independent of WordPress wp_is_mobile() and Autoptimize bundling. */
166@media only screen and (max-width:1000px){
167  aside.vertical_menu_area,
168  .vertical_menu_area_bottom_logo{
169    display:none!important;
170  }
171
172  body.vertical_menu_enabled header.page_header{
173    display:block!important;
174    position:relative!important;
175    left:0!important;
176    top:0!important;
177    margin:0!important;
178  }
179
180  body.vertical_menu_enabled header .header_inner{
181    display:block!important;
182  }
183
184  body.vertical_menu_enabled .content .container,
185  body.vertical_menu_enabled .full_width,
186  body.vertical_menu_enabled .q_slider,
187  body.vertical_menu_enabled .title_outer,
188  body.vertical_menu_enabled footer{
189    padding-left:0!important;
190  }
191
192  body.vertical_menu_enabled .content .container,
193  body.vertical_menu_enabled .q_slider,
194  body.vertical_menu_enabled footer{
195    width:100%!important;
196  }
197
198  body.vertical_menu_enabled .carousel-inner:not(.relative_position){
199    left:0!important;
200  }
201
202  .main_menu{
203    display:none!important;
204  }
205
206  .mobile_menu_button{
207    display:table!important;
208  }
209
210  nav.mobile_menu{
211    display:block!important;
212  }
213}</style><style class="wpcode-css-snippet">/* Test-only spacing after the native CentralStationCRM form. */
214.fp-cscrm-native-test {
215  display: flow-root;
216  margin-bottom: 90px !important;
217}
218.fp-cscrm-native-test .cscrm_webform_container {
219  display: flow-root;
220}
221.fp-cscrm-native-test .cscrm_webform_container_inner {
222  padding-bottom: 0 !important;
223}
224@media (max-width: 767px) {
225  .fp-cscrm-native-test {
226    margin-bottom: 70px !important;
227  }
228}</style><style class="wpcode-css-snippet">.fp-bridge-compat-social .screen-reader-text{
229  position:absolute!important;
230  width:1px!important;
231  height:1px!important;
232  padding:0!important;
233  margin:-1px!important;
234  overflow:hidden!important;
235  clip:rect(0,0,0,0)!important;
236  white-space:nowrap!important;
237  border:0!important;
238}</style><meta id="fp-webmcp-origin-trial" http-equiv="origin-trial" content="Av7UcMM6X2FPDgWxzaPc2DSLbg5bFH8Zud5DljUR2WPT0YWSoGtEuFt89Uo2KNOlP/5Vhpu0xKUJ+UyPpT0eKgcAAABfeyJvcmlnaW4iOiJodHRwczovL2ZwZGVzaWduLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViTUNQIiwiZXhwaXJ5IjoxODA2MzY0ODAwLCJpc1N1YmRvbWFpbiI6dHJ1ZX0="><style class="wpcode-css-snippet">/* f/p: replace The Grid hover overlay with a subtle image zoom.
239   Scoped to Insights and Case Studies only. */
240
241.tg-news-grid .tg-item-media-holder,
242.tg-works-2filters-grid .tg-item-media-holder {
243  overflow: hidden;
244}
245
246.tg-news-grid .tg-item-overlay,
247.tg-news-grid .tg-item-media-holder:hover .tg-item-overlay,
248.tg-works-2filters-grid .tg-item-overlay,
249.tg-works-2filters-grid .tg-item-media-holder:hover .tg-item-overlay {
250  opacity: 0 !important;
251  visibility: hidden !important;
252  background: transparent !important;
253}
254
255.tg-news-grid .tg-item-image,
256.tg-works-2filters-grid .tg-item-image {
257  transform: scale(1);
258  transform-origin: center center;
259  transition: transform 550ms cubic-bezier(.2,.65,.3,1) !important;
260  will-change: transform;
261}
262
263@media (hover: hover) and (pointer: fine) {
264  .tg-news-grid .tg-item-media-holder:hover .tg-item-image,
265  .tg-works-2filters-grid .tg-item-media-holder:hover .tg-item-image {
266    transform: scale(1.045);
267  }
268}
269
270@media (prefers-reduced-motion: reduce) {
271  .tg-news-grid .tg-item-image,
272  .tg-works-2filters-grid .tg-item-image {
273    transition: none !important;
274  }
275}</style><style class="wpcode-css-snippet">#menu-social-icons .wpml-ls-slot-65 > a,
276#menu-social-icons .wpml-ls-slot-65 > a .wpml-ls-display {
277    color: #000000 !important;
278}
279
280#menu-social-icons .wpml-ls-slot-65 > a {
281    display: inline-block;
282    padding: 0 8px !important;
283    box-sizing: border-box;
284}
285
286#menu-social-icons .wpml-ls-slot-65.wpml-ls-current-language > a,
287#menu-social-icons .wpml-ls-slot-65.wpml-ls-current-language > a .wpml-ls-display {
288    color: #ffffff !important;
289    background-color: #000000 !important;
290}
291
292#menu-social-icons .wpml-ls-slot-65 > a:focus-visible {
293    outline: 2px solid #000000;
294    outline-offset: 3px;
295}</style>
295<script defer src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsNCiAgICB2YXIgbG9jYXRpb25QYWdlSWRzID0gWw0KICAgICAgICAzNDIxMSwgMzQyMjIsIDM0MzQ4LCAzNDY2NywgMzQ3NDQsIDM1MTU5LCAzNDc1NiwNCiAgICAgICAgMzQyMzgsIDM0NDU2LCAzMjY0MywgMzUxNjcsIDM0MDk4LCAzNDIzNiwgMzQ0ODQsDQogICAgICAgIDM0NjU0LCAzNDIzNCwgMzQ0NjYsIDM0MjMyLCAzNDQ1NCwgMzQ1MTAsIDM1NDg0DQogICAgXTsNCg0KICAgIGZ1bmN0aW9uIGdldExhYmVscygpIHsNCiAgICAgICAgdmFyIGxhbmd1YWdlID0gKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nIHx8ICdlbicpLnRvTG93ZXJDYXNlKCkuc3BsaXQoJy0nKVswXTsNCg0KICAgICAgICBpZiAobGFuZ3VhZ2UgPT09ICdkZScpIHsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgcGhvbmU6ICdhbnJ1ZmVuOiAnLA0KICAgICAgICAgICAgICAgIGVtYWlsOiAnZS1tYWlsIHNlbmRlbiBhbiAnLA0KICAgICAgICAgICAgICAgIGFwcG9pbnRtZW50OiAndGVybWluIHZlcmVpbmJhcmVuJw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChsYW5ndWFnZSA9PT0gJ2phJykgew0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICBwaG9uZTogJ+mbu+ipseOBmeOCizogJywNCiAgICAgICAgICAgICAgICBlbWFpbDogJ+ODoeODvOODq+OCkumAgeS/oTogJywNCiAgICAgICAgICAgICAgICBhcHBvaW50bWVudDogJ+aJk+OBoeWQiOOCj+OBm+OCkuS6iOe0hCcNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgcGhvbmU6ICdjYWxsICcsDQogICAgICAgICAgICBlbWFpbDogJ2VtYWlsICcsDQogICAgICAgICAgICBhcHBvaW50bWVudDogJ2Jvb2sgYW4gYXBwb2ludG1lbnQnDQogICAgICAgIH07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbWFya0ljb25zRGVjb3JhdGl2ZShtZW51KSB7DQogICAgICAgIG1lbnUucXVlcnlTZWxlY3RvckFsbCgnYSBpbWcnKS5mb3JFYWNoKGZ1bmN0aW9uIChpbWFnZSkgew0KICAgICAgICAgICAgaWYgKCFpbWFnZS5oYXNBdHRyaWJ1dGUoJ2FsdCcpKSBpbWFnZS5zZXRBdHRyaWJ1dGUoJ2FsdCcsICcnKTsNCiAgICAgICAgICAgIGlmIChpbWFnZS5nZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJykgIT09ICd0cnVlJykgaW1hZ2Uuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7DQogICAgICAgIH0pOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGltcHJvdmVNZW51QWNjZXNzaWJpbGl0eShtZW51KSB7DQogICAgICAgIHZhciBsYWJlbHMgPSBnZXRMYWJlbHMoKTsNCiAgICAgICAgdmFyIHBob25lQnV0dG9uID0gbWVudS5xdWVyeVNlbGVjdG9yKCdhW2hyZWZePSJ0ZWw6Il0nKTsNCiAgICAgICAgdmFyIGVtYWlsQnV0dG9uID0gbWVudS5xdWVyeVNlbGVjdG9yKCdhW2hyZWZePSJtYWlsdG86Il0nKTsNCiAgICAgICAgdmFyIGFwcG9pbnRtZW50QnV0dG9uID0gbWVudS5xdWVyeVNlbGVjdG9yKCdhW2hyZWYqPSJvdXRsb29rLm9mZmljZTM2NS5jb20vYm9vay8iXSwgYVtocmVmKj0iYm9va2luZ3MiXSwgYVtocmVmKj0iYXBwb2ludG1lbnQiXScpOw0KDQogICAgICAgIGlmIChwaG9uZUJ1dHRvbiAmJiAhcGhvbmVCdXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykpIHsNCiAgICAgICAgICAgIHZhciBwaG9uZVRleHQgPSAocGhvbmVCdXR0b24udGV4dENvbnRlbnQgfHwgJycpLnRyaW0oKSB8fA0KICAgICAgICAgICAgICAgIChwaG9uZUJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSB8fCAnJykucmVwbGFjZSgvXnRlbDovaSwgJycpOw0KICAgICAgICAgICAgcGhvbmVCdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgbGFiZWxzLnBob25lICsgcGhvbmVUZXh0KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChlbWFpbEJ1dHRvbiAmJiAhZW1haWxCdXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykpIHsNCiAgICAgICAgICAgIHZhciBlbWFpbFRleHQgPSAoZW1haWxCdXR0b24uZ2V0QXR0cmlidXRlKCdocmVmJykgfHwgJycpDQogICAgICAgICAgICAgICAgLnJlcGxhY2UoL15tYWlsdG86L2ksICcnKS5zcGxpdCgnPycpWzBdOw0KICAgICAgICAgICAgZW1haWxCdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgbGFiZWxzLmVtYWlsICsgZW1haWxUZXh0KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChhcHBvaW50bWVudEJ1dHRvbiAmJiAhYXBwb2ludG1lbnRCdXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykpIHsNCiAgICAgICAgICAgIGFwcG9pbnRtZW50QnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGxhYmVscy5hcHBvaW50bWVudCk7DQogICAgICAgIH0NCg0KICAgICAgICBtYXJrSWNvbnNEZWNvcmF0aXZlKG1lbnUpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIG9ic2VydmVNZW51SW1hZ2VzKG1lbnUpIHsNCiAgICAgICAgaWYgKCF3aW5kb3cuTXV0YXRpb25PYnNlcnZlciB8fCBtZW51LmdldEF0dHJpYnV0ZSgnZGF0YS1mcC1hMTF5LW9ic2VydmVkJykgPT09ICd0cnVlJykgcmV0dXJuOw0KICAgICAgICBtZW51LnNldEF0dHJpYnV0ZSgnZGF0YS1mcC1hMTF5LW9ic2VydmVkJywgJ3RydWUnKTsNCg0KICAgICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAoY2hhbmdlcykgew0KICAgICAgICAgICAgdmFyIG5lZWRzVXBkYXRlID0gY2hhbmdlcy5zb21lKGZ1bmN0aW9uIChjaGFuZ2UpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gY2hhbmdlLnR5cGUgPT09ICdjaGlsZExpc3QnICYmIGNoYW5nZS5hZGRlZE5vZGVzLmxlbmd0aCA+IDA7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGlmIChuZWVkc1VwZGF0ZSkgaW1wcm92ZU1lbnVBY2Nlc3NpYmlsaXR5KG1lbnUpOw0KICAgICAgICB9KS5vYnNlcnZlKG1lbnUsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRhY3RCdXR0b25zKCkgew0KICAgICAgICB2Y
295XIgbWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53cGZtLW1lbnUtbmF2Jyk7DQogICAgICAgIGlmICghbWVudSkgcmV0dXJuIGZhbHNlOw0KDQogICAgICAgIHZhciBsYWJlbHMgPSBnZXRMYWJlbHMoKTsNCiAgICAgICAgdmFyIHBob25lU291cmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYVtocmVmXj0idGVsOiJdOm5vdCgud3BmbS1tZW51LWxpbmspJyk7DQogICAgICAgIHZhciBlbWFpbFNvdXJjZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FbaHJlZl49Im1haWx0bzoiXTpub3QoLndwZm0tbWVudS1saW5rKScpOw0KICAgICAgICB2YXIgcGhvbmVCdXR0b24gPSBtZW51LnF1ZXJ5U2VsZWN0b3IoJ2FbaHJlZl49InRlbDoiXScpOw0KICAgICAgICB2YXIgZW1haWxCdXR0b24gPSBtZW51LnF1ZXJ5U2VsZWN0b3IoJ2FbaHJlZl49Im1haWx0bzoiXScpOw0KICAgICAgICB2YXIgYXBwb2ludG1lbnRCdXR0b24gPSBtZW51LnF1ZXJ5U2VsZWN0b3IoJ2FbaHJlZio9Im91dGxvb2sub2ZmaWNlMzY1LmNvbS9ib29rLyJdLCBhW2hyZWYqPSJib29raW5ncyJdLCBhW2hyZWYqPSJhcHBvaW50bWVudCJdJyk7DQoNCiAgICAgICAgaWYgKHBob25lQnV0dG9uKSB7DQogICAgICAgICAgICB2YXIgaXNLeW90b0phcGFuZXNlID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ3BhZ2UtaWQtMzQ3NTYnKSAmJg0KICAgICAgICAgICAgICAgIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyB8fCAnJykudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdqYScpID09PSAwOw0KICAgICAgICAgICAgdmFyIHBob25lSHJlZiA9IHBob25lU291cmNlDQogICAgICAgICAgICAgICAgPyBwaG9uZVNvdXJjZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKQ0KICAgICAgICAgICAgICAgIDogKGlzS3lvdG9KYXBhbmVzZSA/ICd0ZWw6KzgxNzU3MDg2ODE0JyA6IHBob25lQnV0dG9uLmdldEF0dHJpYnV0ZSgnaHJlZicpKTsNCiAgICAgICAgICAgIHZhciBwaG9uZUxhYmVsID0gcGhvbmVCdXR0b24ucXVlcnlTZWxlY3RvcignLndwZm0tbWVudS1uYW1lJyk7DQogICAgICAgICAgICB2Y
295XIgcGhvbmVUZXh0ID0gcGhvbmVTb3VyY2UNCiAgICAgICAgICAgICAgICA/IChwaG9uZVNvdXJjZS50ZXh0Q29udGVudCB8fCAnJykudHJpbSgpDQogICAgICAgICAgICAgICAgOiAoaXNLeW90b0phcGFuZXNlID8gJys4MSA3NSA3MDggNjgxNCcgOiAnJyk7DQogICAgICAgICAgICBwaG9uZVRleHQgPSBwaG9uZVRleHQgfHwgKHBob25lTGFiZWwgPyAocGhvbmVMYWJlbC50ZXh0Q29udGVudCB8fCAnJykudHJpbSgpIDogJycpIHx8IHBob25lSHJlZi5yZXBsYWNlKC9edGVsOi9pLCAnJyk7DQogICAgICAgICAgICBwaG9uZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBwaG9uZUhyZWYpOw0KICAgICAgICAgICAgcGhvbmVCdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgbGFiZWxzLnBob25lICsgcGhvbmVUZXh0KTsNCiAgICAgICAgICAgIGlmIChwaG9uZUxhYmVsKSBwaG9uZUxhYmVsLnRleHRDb250ZW50ID0gcGhvbmVUZXh0Ow0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGVtYWlsQnV0dG9uKSB7DQogICAgICAgICAgICB2YXIgZW1haWxIcmVmID0gZW1haWxTb3VyY2UgPyBlbWFpbFNvdXJjZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA6IGVtYWlsQnV0dG9uLmdldEF0dHJpYnV0ZSgnaHJlZicpOw0KICAgICAgICAgICAgdmFyIGVtYWlsVGV4dCA9IGVtYWlsSHJlZi5yZXBsYWNlKC9ebWFpbHRvOi9pLCAnJykuc3BsaXQoJz8nKVswXTsNCiAgICAgICAgICAgIGVtYWlsQnV0dG9uLnNldEF0dHJpYnV0ZSgnaHJlZicsIGVtYWlsSHJlZik7DQogICAgICAgICAgICBlbWFpbEJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBsYWJlbHMuZW1haWwgKyBlbWFpbFRleHQpOw0KICAgICAgICAgICAgdmFyIGVtYWlsTGFiZWwgPSBlbWFpbEJ1dHRvbi5xdWVyeVNlbGVjdG9yKCcud3BmbS1tZW51LW5hbWUnKTsNCiAgICAgICAgICAgIGlmIChlbWFpbExhYmVsKSBlbWFpbExhYmVsLnRleHRDb250ZW50ID0gZW1haWxUZXh0Ow0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGFwcG9pbnRtZW50QnV0dG9uKSB7DQogICAgICAgICAgICBhcHBvaW50bWVudEJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBsYWJlbHMuYXBwb2ludG1lbnQpOw0KICAgICAgICB9DQoNCiAgICAgICAgbWFya0ljb25zRGVjb3JhdGl2ZShtZW51KTsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaW5pdGlhbGl6ZUNvbnRhY3RCdXR0b25zKCkgew0KICAgICAgICB2Y
295XIgYXR0ZW1wdHMgPSAwOw0KICAgICAgICB2YXIgdGltZXI7DQoNCiAgICAgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZU1lbnUoKSB7DQogICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53cGZtLW1lbnUtbmF2Jyk7DQogICAgICAgICAgICBpZiAoIW1lbnUpIHJldHVybiBmYWxzZTsNCg0KICAgICAgICAgICAgaW1wcm92ZU1lbnVBY2Nlc3NpYmlsaXR5KG1lbnUpOw0KICAgICAgICAgICAgb2JzZXJ2ZU1lbnVJbWFnZXMobWVudSk7DQoNCiAgICAgICAgICAgIHZhciBpc0xvY2F0aW9uUGFnZSA9IGxvY2F0aW9uUGFnZUlkcy5zb21lKGZ1bmN0aW9uIChpZCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygncGFnZS1pZC0nICsgaWQpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBpZiAoaXNMb2NhdGlvblBhZ2UpIHVwZGF0ZUNvbnRhY3RCdXR0b25zKCk7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChpbml0aWFsaXplTWVudSgpKSByZXR1cm47DQoNCiAgICAgICAgdGltZXIgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgYXR0ZW1wdHMgKz0gMTsNCiAgICAgICAgICAgIGlmIChpbml0aWFsaXplTWVudSgpIHx8IGF0dGVtcHRzID49IDIwKSB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aW1lcik7DQogICAgICAgIH0sIDUwMCk7DQogICAgfQ0KDQogICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgew0KICAgICAgICBkb2
295N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdGlhbGl6ZUNvbnRhY3RCdXR0b25zKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBpbml0aWFsaXplQ29udGFjdEJ1dHRvbnMoKTsNCiAgICB9DQp9KSgpOw=="></script>
295<script defer src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsNCiAgICBpZiAod2luZG93LmZwQ29udGFjdENsaWNrVHJhY2tpbmdWMikgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KDQogICAgd2luZG93LmZwQ29udGFjdENsaWNrVHJhY2tpbmdWMiA9IHRydWU7DQoNCiAgICBmdW5jdGlvbiBnZXRMYW5ndWFnZSgpIHsNCiAgICAgICAgdmFyIGh0bWxMYW5nID0gKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nIHx8ICdlbicpLnRvTG93ZXJDYXNlKCk7DQogICAgICAgIHJldHVybiBodG1sTGFuZy5zcGxpdCgnLScpWzBdIHx8ICdlbic7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gZ2V0UGFnZVR5cGUoKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnaG9tZScpKSByZXR1cm4gJ2hvbWUnOw0KICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc05hbWUuaW5kZXhPZigncGFnZS1pZC0nKSAhPT0gLTEgJiYNCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53cGZtLW1lbnUtbmF2JykpIHJldHVybiAnbG9jYXRpb24nOw0KICAgICAgICByZXR1cm4gJ2NvbnRlbnQnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGdldENsaWNrTG9jYXRpb24obGluaykgew0KICAgICAgICBpZiAobGluay5jbG9zZXN0KCcud3BmbS1tZW51LW5hdicpKSByZXR1cm4gJ2Zsb2F0aW5nX2N0YSc7DQogICAgICAgIGlmIChsaW5rLmNsb3Nlc3QoJ2hlYWRlciwgLmhlYWRlcl9pbm5lciwgbmF2JykpIHJldHVybiAnaGVhZGVyJzsNCiAgICAgICAgaWYgKGxpbmsuY2xvc2VzdCgnZm9vdGVyJykpIHJldHVybiAnZm9vdGVyJz
295sNCiAgICAgICAgcmV0dXJuICdjb250ZW50JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBnZXRDb250YWN0TWV0aG9kKGxpbmssIGhyZWYpIHsNCiAgICAgICAgaWYgKGhyZWYuaW5kZXhPZignbWFpbHRvOicpID09PSAwKSByZXR1cm4gJ2VtYWlsJzsNCiAgICAgICAgaWYgKGhyZWYuaW5kZXhPZigndGVsOicpID09PSAwKSByZXR1cm4gJ3Bob25lJzsNCiAgICAgICAgaWYgKA0KICAgICAgICAgICAgbGluay5jbG9zZXN0KCcud3BmbS1tZW51LW5hdicpICYmDQogICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgaHJlZi5pbmRleE9mKCdvdXRsb29rLm9mZmljZTM2NS5jb20vYm9vay8nKSAhPT0gLTEgfHwNCiAgICAgICAgICAgICAgICBocmVmLmluZGV4T2YoJ2Jvb2tpbmdzJykgIT09IC0xIHx8DQogICAgICAgICAgICAgICAgaHJlZi5pbmRleE9mKCdhcHBvaW50bWVudCcpICE9PSAtMQ0KICAgICAgICAgICAgKQ0KICAgICAgICApIHJldHVybiAnYXBwb2ludG1lbnQnOw0KICAgICAgICByZXR1cm4gJyc7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gc2VuZENvbnRhY3RFdmVudChtZXRob2QsIGNsaWNrTG9jYXRpb24pIHsNCiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZ3RhZyAhPT0gJ2Z1bmN0aW9uJykgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgd2luZG93Lmd0YWcoJ2V2ZW50JywgJ2NvbnRhY3RfY2xpY2snLCB7DQogICAgICAgICAgICBjb250YWN0X21ldGhvZDogbWV0aG9kLA0KICAgICAgICAgICAgY2xpY2tfbG9jYXRpb246IGNsaWNrTG9jYXRpb24sDQogICAgICAgICAgICBwYWdlX3R5cGU6IGdldFBhZ2VUeXBlKCksDQogICAgICAgICAgICBwYWdlX2xhbmd1YWdlOiBnZXRMYW5ndWFnZSgpLA0KICAgICAgICAgICAgcGFnZV9wYXRoOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsDQogICAgICAgICAgICB0cmFuc3BvcnRfdHlwZTogJ2JlYWNvbicNCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsNCiAgICAgICAgdmFyIGxpbmsgPSBldmVudC50YXJnZXQuY2xvc2VzdCgnYVtocmVmXScpOw0KICAgICAgICBpZiAoIWxpbmspIHJldHVybjsNCg0KICAgICAgICB2Y
295XIgaHJlZiA9IChsaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgdmFyIG1ldGhvZCA9IGdldENvbnRhY3RNZXRob2QobGluaywgaHJlZik7DQogICAgICAgIGlmICghbWV0aG9kKSByZXR1cm47DQoNCiAgICAgICAgc2VuZENvbnRhY3RFdmVudChtZXRob2QsIGdldENsaWNrTG9jYXRpb24obGluaykpOw0KICAgIH0sIHRydWUpOw0KfSkoKTs="></script>
295 
295<script type="text/javascript" id="spai_js" data-cfasync="false" data-spai-excluded="true">document.documentElement.className += " spai_has_js";
296                (function(w, d){
297                    var b = d.getElementsByTagName('head')[0];
298                    var s = d.createElement("script");
299                    var v = ("IntersectionObserver" in w) ? "" : "-compat";
300                    s.async = true; // This includes the script as async.
301                    s.src = "https://cdn.shortpixel.ai/assets/js/bundles/spai-lib-bg" + v
302                        + ".1.1.min.js?v=3.11.6";
303                    w.spaiDomain = "cdn.shortpixel.ai";
304                    w.spaiData = {
305                        version: "3.11.6",
306                        key: "spai",
307                        customKeys: [],
308                        quality: "glossy",
309                        convert: "auto",
310                        lqip: false,
311                                                rootMargin: "500px",
312                        crop: false,
313                        sizeBreakpoints: {"on":false,"base":50,"rate":10},
314                        backgroundsMaxWidth: 1920,
315                        resizeStyleBackgrounds: true,
316                        nativeLazyLoad: false,
317                        safeLazyBackgrounds: true,
318                        asyncInitialParsing: true,
319                        debug: false,
320                        doSelectors: [{"selectors":"img","type":"attr","targetAttr":"src","attrType":"url","lazy":true,"resize":true},{"selectors":"[data-spai-bg-on]","type":"attr","targetAttr":"style","attrType":"style"},{"selectors":"style","type":"inner","attrType":"style"}],
321                        exclusions: {"selectors":{".tg-item-image":{"lazy":0,"cdn":1,"resize":1,"lqip":0,"crop":0}},"urls":{"regex:\/\\\/\\\/([^\\\/]*\\.|)gravatar.com\\\/\/":{"lazy":0,"cdn":0,"resize":0,"lqip":0,"crop":-1},"https:\/\/fpdesign.com\/wp-content\/uploads\/2023\/03\/fpdesign-logo.webp":{"lazy":0,"cdn":0,"resize":0,"lqip":0,"crop":-1},"path:\/wp-content\/uploads\/2017\/03\/fpdesign-morita-x800-dental-x-ray-12-w.jpg":{"lazy":0,"cdn":1,"resize":1,"lqip":0,"crop":0}}},
322                        sizeFromImageSuffix: true,
323                        ajax_url: "https://fpdesign.com/wp-admin/admin-ajax.php"
324                    };
325                    b.appendChild(s);
326                }(window, document));</script>
326 <link rel="icon" href="https://cdn.shortpixel.ai/spai/ret_img/fpdesign.com/wp-content/uploads/2025/05/fp-favicon-3.svg" data-spai-egr="1" sizes="32x32" /><link rel="icon" href="https://cdn.shortpixel.ai/spai/ret_img/fpdesign.com/wp-content/uploads/2025/05/fp-favicon-3.svg" data-spai-egr="1" sizes="192x192" /><link rel="apple-touch-icon" href="https://cdn.shortpixel.ai/spai/ret_img/fpdesign.com/wp-content/uploads/2025/05/fp-favicon-3.svg" data-spai-egr="1" /><meta name="msapplication-TileImage" content="https://fpdesign.com/wp-content/uploads/2025/05/fp-favicon-3.svg" /><style id="fp-footer-contrast">.footer_bottom_holder .footer_bottom,.footer_bottom_holder .footer_bottom p{color:#666666}</style><style id="fp-qode-accordion-compat-css">.fp-qode-accordion{
327  width:100%;
328  border-top:1px solid #d9d9d9;
329}
330.fp-qode-accordion-item{
331  border-bottom:1px solid #d9d9d9;
332  margin:0;
333  padding:0;
334}
335.fp-qode-accordion-title{
336  list-style:none;
337  cursor:pointer;
338  position:relative;
339  padding:18px 42px 18px 0;
340  font:inherit;
341  font-weight:600;
342  color:#333;
343}
344.fp-qode-accordion-title::-webkit-details-marker{display:none}
345.fp-qode-accordion-title::after{
346  content:"+";
347  position:absolute;
348  right:0;
349  top:50%;
350  transform:translateY(-50%);
351  font-size:24px;
352  line-height:1;
353  font-weight:300;
354}
355.fp-qode-accordion-item[open]>.fp-qode-accordion-title::after{content:"−"}
356.fp-qode-accordion-content{
357  padding:0 0 22px 0;
358  color:#333;
359}
360.fp-qode-accordion-content .wpb_content_element{margin-bottom:0}
361.fp-qode-accordion-content p:last-child{margin-bottom:0}</style><style id="fp-bridge-compat-action-css">.fp-bridge-compat-action{box-sizing:border-box}
362.fp-bridge-compat-action .call_to_action_text{color:#333!important;font-size:inherit!important;line-height:inherit!important;letter-spacing:normal!important}
363.fp-bridge-compat-action .fp-bridge-compat-action-button{background-color:inherit}
364.fp-bridge-compat-action .fp-bridge-compat-action-button:hover{
365color:var(--fp-action-hover-color,inherit)!important;
366background-color:var(--fp-action-hover-bg,inherit)!important;
367border-color:var(--fp-action-hover-border,currentColor)!important
368}
369@media only screen and (max-width:600px){
370.fp-bridge-compat-action .two_columns_75_25>.column1,
371.fp-bridge-compat-action .two_columns_75_25>.column2{width:100%;float:none}
372.fp-bridge-compat-action .column2.button_wrapper{text-align:left;margin-top:16px}
373.fp-bridge-compat-action .column2.button_wrapper .qbutton{
374position:static!important;
375transform:none!important
376}
377}</style><style id="fp-bridge-compat-shortcodes-css">.fp-bridge-compat-button:hover{color:var(--fp-qbutton-hover-color,inherit)!important;background-color:var(--fp-qbutton-hover-bg,inherit)!important;border-color:var(--fp-qbutton-hover-border,currentColor)!important}.fp-bridge-compat-social:hover .simple_social{color:var(--fp-social-hover,#f8c424)!important}.fp-bridge-compat-social:hover .fa-stack{background-color:var(--fp-social-bg-hover,inherit)!important;border-color:var(--fp-social-border-hover,inherit)!important}</style><style type="text/css" id="wp-custom-css">/*work page adjustments */
378
379.work-meta {display:none !important}
380
381.single-work .fp-work-title-clean {
382  margin: 0 0 60px 0;
383}
384
385.single-work .fp-work-title-clean .work-title {
386  font-size: 1.5rem !important;
387  line-height: 1.02 !important;
388  letter-spacing: -0.02em !important;
389  font-weight: 700 !important;
390  margin: 0 !important;
391  color: #333 !important;
392	padding-top:5px;
393}
394
395@media (max-width: 568px){
396  .single-work .fp-work-title-clean { margin-bottom: 32px; }
397  .single-work .fp-work-title-clean .work-title { font-size: 1.3rem !important; }
398}
399
400
401
402/* breakpoint burger menu 1000px */
403
404.fp_title h1 {
405    display: block;
406    font-size: 1.5rem !important;
407    font-family: 'FrutigerLTCom Roman',Arial,sans-serif;
408    line-height: 102%;
409    letter-spacing: -0.1px;
410    margin: 0 0 11%;
411    text-transform: lowercase;
412    font-weight: bold !important;
413		color: #333 !important;
414}
415
416.fp_title h2 {letter-spacing:-0.1px !important;
417font-weight:600 !important}
418
419/* Japanese bilingual title spacing */
420html[lang^="ja"] .fp_title h1:has(+ h2),
421html[lang^="ja"] .fp_title h1:has(+ h3) {
422  margin-bottom: 6px !important;
423}
424html[lang^="ja"] .fp_title h1 + h2,
425html[lang^="ja"] .fp_title h1 + h3 {
426  margin-top: 0 !important;
427}
428
429h1 {color:#333; font-size:1rem; font-weight:400; line-height: 1.6}
430
431
432/*h1 news */
433
434div.blog-content-wrapper > h1 {font-size: 1.35rem !important; letter-spacing: -0.5px }
435
436/* Legacy Insights batch: Japanese article titles, page-scoped. */
437html[lang^="ja"] #post-31531 .entry_title,
438html[lang^="ja"] #post-31679 .entry_title,
439html[lang^="ja"] #post-31792 .entry_title,
440html[lang^="ja"] #post-32590 .entry_title,
441html[lang^="ja"] #post-32807 .entry_title,
442html[lang^="ja"] #post-32822 .entry_title { font-size: 16px !important; }
443
444
445/*second line in heading */
446.fp_title h1 {line-height:180%}
447.fp_title h1:first-line {line-height:102% !important}
448	
449
450	
451/* mobile menu margin bottom */
452.header_inner.clearfix {margin-bottom: 50px}
453
454
455
456/*global font adjusments*/
457.fpd-description-block {color:#333 !important}
458.fpd-image-text-block {font-size: 15px !important}
459
460h2 {text-transform: lowercase}
461h3 {text-transform: lowercase}
462
463/*buttons lower case */
464.qbutton {text-transform: lowercase;}
465/*buttons font size */
466.qbutton {font-size: 13px !important}
467/*lists font size */
468.fp-custom-list {font-size: 15px; color:#333}
469
470/*
471.fpd-description-block {font-size: 14px !important}*/
472.fpd-description-block-large {font-size: 15px !important; color:#333 !important;}
473.fp-awards-list {font-size: 15px !important}
474
475
476
477/*language component neu*/
478
479.fp-language-component {display: none !important;}
480
481.wpml-ls-slot-65, .wpml-ls-slot-65 a, .wpml-ls-slot-65 a:visited {display:inline !important}
482
483
484#menu-item-wpml-ls-65-de::before,
485#menu-item-wpml-ls-65-ja:before,
486#menu-item-wpml-ls-65-zh-hans:before,
487#menu-item-wpml-ls-65-it:before,
488#menu-item-wpml-ls-65-sr:before
489{content: " . "; }
490
491.wpml-ls-current-language {
492  font-weight: bold;
493}
494
495@media only screen and (min-width: 768px) { .wpml_custom  {
496    display:none
497	}}
498
499
500
501/*language mobile only main menu*/
502
503#nav-menu-item-wpml-ls-63-en, #nav-menu-item-wpml-ls-63-de, #nav-menu-item-wpml-ls-63-ja, #nav-menu-item-wpml-ls-63-ru,
504#nav-menu-item-wpml-ls-63-zh-hans, #nav-menu-item-wpml-ls-63-it,
505#nav-menu-item-wpml-ls-63-sr
506{display:none}
507
508.wpml-ls-display, .wpml-ls-native {padding-left:0em !important}
509
510@media only screen and (max-width: 1000px) { #menu-social-icons-1  {
511    display:none !important
512	}}
513
514
515/*language menu 2 different names */
516
517 .wpml-ls-slot-63 .wpml-ls-native:lang(en)::after {
518    content: 'lish';
519}
520
521
522.wpml-ls-slot-63 .wpml-ls-native:lang(de)::after {
523    content: 'man';
524}
525
526
527.wpml-ls-slot-63 .wpml-ls-native:lang(ru)::after {
528    content: 'sian';
529}
530
531.wpml-ls-slot-63 .wpml-ls-native:lang(ja)::before {
532    content: 'japanese'; color:#b8b8b8;
533}
534
535.wpml-ls-slot-63 .wpml-ls-native:lang(it)::after {
536    content: 'lian'; color:#b8b8b8;
537}
538
539.wpml-ls-slot-63 .wpml-ls-native:lang(sr) {
540    font-size:0
541}
542.wpml-ls-slot-63 .wpml-ls-native:lang(sr)::after {
543    content: 'serbian'; color:#b8b8b8; font-size: 16px
544}
545
546
547.wpml-ls-slot-63 .wpml-ls-native:lang(ja):hover::before {color:#7a7a7a}
548
549.wpml-ls-slot-63 .wpml-ls-native:lang(ja) {
550    color:white;
551}
552
553
554
555/* f/p language switcher: readable links and a distinct current language. */
556nav.mobile_menu li.wpml-ls-menu-item > a,
557nav.mobile_menu li.wpml-ls-menu-item > a:visited {
558  color: #333333 !important;
559  background-color: #ffffff !important;
560  font-weight: 400 !important;
561  opacity: 1 !important;
562}
563nav.mobile_menu li.wpml-ls-menu-item > a span,
564nav.mobile_menu li.wpml-ls-menu-item > a span::before,
565nav.mobile_menu li.wpml-ls-menu-item > a span::after {
566  color: inherit !important;
567  font-weight: inherit !important;
568}
569/* Keep the old Japanese abbreviation visually hidden until native labels are normalized. */
570nav.mobile_menu .wpml-ls-slot-63 .wpml-ls-native:lang(ja) {
571  font-size: 0 !important;
572}
573nav.mobile_menu .wpml-ls-slot-63 .wpml-ls-native:lang(ja)::before {
574  font-size: 16px;
575}
576nav.mobile_menu li.wpml-ls-menu-item > a:hover {
577  color: #333333 !important;
578  background-color: #f2f2f2 !important;
579}
580nav.mobile_menu li.wpml-ls-current-language > a,
581nav.mobile_menu li.wpml-ls-current-language > a:visited {
582  color: #333333 !important;
583  background-color: #f2f2f2 !important;
584  font-weight: 700 !important;
585  box-shadow: inset 2px 0 0 #333333;
586}
587nav.mobile_menu li.wpml-ls-menu-item > a:focus-visible {
588  outline: 2px solid #333333;
589  outline-offset: -2px;
590}
591/* Actual menu names use their own class, not CSS-generated word fragments. */
592nav.mobile_menu .fp-language-name {
593  color: inherit !important;
594  font-size: inherit !important;
595  font-weight: inherit !important;
596}
597nav.mobile_menu .fp-language-name::before,
598nav.mobile_menu .fp-language-name::after {
599  content: none !important;
600}
601/* End f/p language switcher readability. */
602
603/* f/p: 1px yellow underline on the visible menu label; text stays black. */
604@media (hover: hover) {
605  .wrapper nav.vertical_menu li > a,
606  .wrapper nav.main_menu li > a,
607  .wrapper nav.mobile_menu li > a {
608    color: #333333 !important;
609    background: transparent !important;
610    text-decoration: none !important;
611  }
612
613  .wrapper nav.vertical_menu li > a > span:not(.plus):not(.qode-featured-icon),
614  .wrapper nav.main_menu li > a > span:not(.plus):not(.qode-featured-icon),
615  .wrapper nav.mobile_menu li > a > span:first-child {
616    display: inline-block;
617    border-bottom: 1px solid transparent;
618    padding-bottom: 1px;
619  }
620
621  .wrapper nav.vertical_menu li > a:hover,
622  .wrapper nav.vertical_menu li > a:focus,
623  .wrapper nav.vertical_menu li > a:active,
624  .wrapper nav.main_menu li > a:hover,
625  .wrapper nav.main_menu li > a:focus,
626  .wrapper nav.main_menu li > a:active,
627  .wrapper nav.mobile_menu li > a:hover,
628  .wrapper nav.mobile_menu li > a:focus,
629  .wrapper nav.mobile_menu li > a:active {
630    color: #333333 !important;
631    background: transparent !important;
632    background-color: transparent !important;
633    background-image: none !important;
634    box-shadow: none !important;
635  }
636
637  .wrapper nav.vertical_menu li > a:hover > span:not(.plus):not(.qode-featured-icon),
638  .wrapper nav.vertical_menu li > a:focus > span:not(.plus):not(.qode-featured-icon),
639  .wrapper nav.vertical_menu li > a:active > span:not(.plus):not(.qode-featured-icon),
640  .wrapper nav.main_menu li > a:hover > span:not(.plus):not(.qode-featured-icon),
641  .wrapper nav.main_menu li > a:focus > span:not(.plus):not(.qode-featured-icon),
642  .wrapper nav.main_menu li > a:active > span:not(.plus):not(.qode-featured-icon),
643  .wrapper nav.mobile_menu li > a:hover > span:first-child,
644  .wrapper nav.mobile_menu li > a:focus > span:first-child,
645  .wrapper nav.mobile_menu li > a:active > span:first-child {
646    color: #333333 !important;
647    background: transparent !important;
648    background-color: transparent !important;
649    background-image: none !important;
650    box-shadow: none !important;
651    border-bottom-color: #f8c424 !important;
652  }
653
654  .wrapper nav.vertical_menu li > a:active::before,
655  .wrapper nav.vertical_menu li > a:active::after,
656  .wrapper nav.vertical_menu li > a:active > span::before,
657  .wrapper nav.vertical_menu li > a:active > span::after,
658  .wrapper nav.main_menu li > a:active::before,
659  .wrapper nav.main_menu li > a:active::after,
660  .wrapper nav.mobile_menu li > a:active::before,
661  .wrapper nav.mobile_menu li > a:active::after {
662    background: transparent !important;
663    background-color: transparent !important;
664    box-shadow: none !important;
665  }
666
667  .wrapper nav.vertical_menu li > a:hover .fp-language-name,
668  .wrapper nav.main_menu li > a:hover .fp-language-name,
669  .wrapper nav.mobile_menu li > a:hover .fp-language-name {
670    color: #333333 !important;
671  }
672}
673/* End f/p navigation hover. */
674
675/* f/p: keep menu hover underline exactly to visible lettering width. */
676@media (hover: hover) {
677  .wrapper nav.vertical_menu li:not(.current-menu-item):not(.current_page_item):not(.active) > a:hover > span:not(.plus):not(.qode-featured-icon),
678  .wrapper nav.main_menu li:not(.current-menu-item):not(.current_page_item):not(.active) > a:hover > span:not(.plus):not(.qode-featured-icon),
679  .wrapper nav.mobile_menu li:not(.current-menu-item):not(.current_page_item):not(.active) > a:hover > span:first-child {
680    border-bottom-color: transparent !important;
681    background-image: linear-gradient(#f8c424, #f8c424) !important;
682    background-repeat: no-repeat !important;
683    background-position: left bottom !important;
684    background-size: calc(100% - 1px) 1px !important;
685  }
686}
687/* End f/p exact-width menu underline. */
688
689/* f/p: true text-width underline for primary navigation hover. */
690@media (hover: hover) {
691  .wrapper nav.vertical_menu li:not(.current-menu-item):not(.current_page_item):not(.active) > a:hover > span:not(.plus):not(.qode-featured-icon),
692  .wrapper nav.main_menu li:not(.current-menu-item):not(.current_page_item):not(.active) > a:hover > span:not(.plus):not(.qode-featured-icon),
693  .wrapper nav.mobile_menu li:not(.current-menu-item):not(.current_page_item):not(.active) > a:hover > span:first-child {
694    border-bottom: 0 !important;
695    background-image: none !important;
696    text-decoration-line: underline !important;
697    text-decoration-color: #f8c424 !important;
698    text-decoration-thickness: 1px !important;
699    text-underline-offset: 3px !important;
700    text-decoration-skip-ink: auto !important;
701  }
702}
703/* End f/p true text-width menu underline. */
704
705/* f/p: current/active menu item uses black label with white text. */
706.wrapper nav.vertical_menu li:is(.current-menu-item,.current_page_item,.active) > a,
707.wrapper nav.vertical_menu li:is(.current-menu-item,.current_page_item,.active) > a.current,
708.wrapper nav.main_menu li:is(.current-menu-item,.current_page_item,.active) > a,
709.wrapper nav.mobile_menu li:is(.current-menu-item,.current_page_item,.active) > a {
710  color: #ffffff !important;
711  background: transparent !important;
712  background-color: transparent !important;
713  background-image: none !important;
714  box-shadow: none !important;
715}
716
717.wrapper nav.vertical_menu li:is(.current-menu-item,.current_page_item,.active) > a > span:not(.plus):not(.qode-featured-icon),
718.wrapper nav.main_menu li:is(.current-menu-item,.current_page_item,.active) > a > span:not(.plus):not(.qode-featured-icon),
719.wrapper nav.mobile_menu li:is(.current-menu-item,.current_page_item,.active) > a > span:first-child {
720  color: #ffffff !important;
721  background: #333333 !important;
722  background-color: #333333 !important;
723  background-image: none !important;
724  box-shadow: none !important;
725  border-bottom-color: transparent !important;
726  padding-left: 6px;
727  padding-right: 6px;
728}
729/* End f/p active menu state. */
730
731/* f/p: prevent browser text-selection flash on navigation labels. */
732.wrapper nav.vertical_menu a,
733.wrapper nav.main_menu a,
734.wrapper nav.mobile_menu a,
735.wrapper .fp-social-icons-component a {
736  -webkit-user-select: none !important;
737  user-select: none !important;
738}
739/* End f/p navigation selection reset. */
740
741/* f/p: never paint browser text selection inside navigation. */
742.wrapper nav.vertical_menu a::selection,
743.wrapper nav.vertical_menu a span::selection,
744.wrapper nav.main_menu a::selection,
745.wrapper nav.main_menu a span::selection,
746.wrapper nav.mobile_menu a::selection,
747.wrapper nav.mobile_menu a span::selection,
748.wrapper .fp-social-icons-component a::selection,
749.wrapper .fp-social-icons-component a span::selection {
750  background: transparent !important;
751  color: #333333 !important;
752}
753
754.wrapper nav.vertical_menu a::-moz-selection,
755.wrapper nav.vertical_menu a span::-moz-selection,
756.wrapper nav.main_menu a::-moz-selection,
757.wrapper nav.main_menu a span::-moz-selection,
758.wrapper nav.mobile_menu a::-moz-selection,
759.wrapper nav.mobile_menu a span::-moz-selection,
760.wrapper .fp-social-icons-component a::-moz-selection,
761.wrapper .fp-social-icons-component a span::-moz-selection {
762  background: transparent !important;
763  color: #333333 !important;
764}
765/* End f/p navigation selection paint reset. */
766
767/* f/p contact form: render Google reCAPTCHA branding in neutral grey. */
768.fp-cscrm-public iframe[title="reCAPTCHA"] {
769  -webkit-filter: grayscale(1) !important;
770  filter: grayscale(1) !important;
771}
772/* End f/p contact reCAPTCHA grey. */
773
774/* f/p contact form: hide visual required asterisks; native required validation stays active. */
775.fp-cscrm-public label.label_required::before,
776.fp-cscrm-public label.label_required::after {
777  content: none !important;
778  display: none !important;
779}
780/* End f/p contact required marker reset. */
781
782/* f/p works filters: black labels, selected filter with 1px yellow underline. */
783.tg-grid-wrapper .tg-filter,
784.tg-grid-wrapper .tg-filter .tg-filter-name,
785.tg-grid-wrapper .tg-filter span:not(.tg-filter-count) {
786  color: #000000 !important;
787}
788
789.tg-grid-wrapper .tg-filter.tg-filter-active .tg-filter-name,
790.tg-grid-wrapper .tg-filter.tg-filter-active span:not(.tg-filter-count) {
791  color: #000000 !important;
792  border-bottom: 1px solid #f8c424 !important;
793  padding-bottom: 2px;
794}
795/* End f/p works filter state. */
796
797
798
799/* f/p: 1px yellow underline in footer and language switcher; text/icons stay black. */
800@media (hover: hover) {
801  .wrapper :is(#menu-social-icons, #menu-social-icons-1) .wpml-ls-menu-item > a {
802    color: #333333 !important;
803    text-decoration: none !important;
804  }
805
806  .wrapper :is(#menu-social-icons, #menu-social-icons-1) .wpml-ls-menu-item > a > span,
807  .wrapper footer .footer_bottom .textwidget a {
808    display: inline-block;
809    border-bottom: 1px solid transparent;
810    padding-bottom: 1px;
811    text-decoration: none !important;
812  }
813
814  .wrapper :is(#menu-social-icons, #menu-social-icons-1) .wpml-ls-menu-item > a:hover > span,
815  .wrapper footer .footer_bottom .textwidget a:hover {
816    color: #333333 !important;
817    border-bottom-color: #f8c424 !important;
818  }
819
820  .wrapper footer .footer_bottom .q_social_icon_holder > a {
821    display: inline-block;
822    border-bottom: 1px solid transparent;
823    padding-bottom: 2px;
824    text-decoration: none !important;
825  }
826
827  .wrapper footer .footer_bottom .q_social_icon_holder > a:hover {
828    border-bottom-color: #f8c424 !important;
829  }
830
831  .wrapper footer .footer_bottom .q_social_icon_holder > a:hover i {
832    color: #000000 !important;
833  }
834}
835/* End f/p language and footer hover. */
836
837/* awards list alignment */
838.table_simple td {
839    padding: 5px 10px;
840    padding-top: 5px;
841    padding-right: 10px;
842    padding-bottom: 5px;
843    padding-left: 1px;
844}
845
846/*position awards block*/
847@media only screen and (min-width:768px){.wrapper .fpd-awards-block {margin-top: 55px !important}}
848@media only screen and (max-width:768px){.wrapper .fpd-awards-block{margin-top:35px!important;font-size:15px;color:#333}
849}
850
851/* button alignment and button radius */
852.qbutton.medium.white.default {border:none!important; border-radius:0!important}
853
854/*h5 lower case */
855.fpd-description-block h5 {text-transform: lowercase;}
856
857
858
859/*space between columns*/
860@media only screen and (min-width:768px){.fp-column-left {padding-right:16px}
861.fp-column-right  {padding-left:16px}}
862
863@media only screen and (min-width:768px) {.fp-column-middle {padding-left:8px; padding-right:8px}}
864
865
866
867
868/* THE GRID Filter Menü - V2 */
869 
870.tg-filter.tg-nav-color.tg-nav-border.tg-nav-font.tg-show-filter::before {display:none;
871}
872
873.tg-filter-name.tg-nav-color.tg-nav-font:hover {color:#535353 !important;
874}
875
876.tg-filter-name.tg-nav-color.tg-nav-font {color:#818181 !important; font-weight: normal;
877margin-left:0px; margin-right:0px;}
878
879.tg-filter.tg-nav-color.tg-nav-border.tg-nav-font.tg-show-filter.tg-filter-active span {color:#333333 !important; font-weight: bold}
880
881.tg-filter-name, .tg-filter.tg-show-filter {
882    display: inline-block;
883	}
884
885.tg-filter-name {padding-left: 0px}
886
887.tg-filter-name {font-size:16px !important}
888
889/* THE GRID loading icons lowercase*/
890.tg-ajax-scroll-holder {text-transform: lowercase !important}
891
892/* the grid dont show _empty_ */
893.tg-post-26255, .tg-post-26268, .tg-post-26269, .tg-post-26270, .tg-post-26271 {display:none}
894
895
896
897/* service grid title overlay */
898.tg-grid-holder .tg-item {
899  position: relative;
900}
901/* EN grid: title exists in content holder, so move it onto image */
902.tg-grid-holder .tg-fp_categories .tg-item-content-holder {
903  position: static !important;
904}
905.tg-grid-holder .tg-fp_categories .tg-item-content-holder .fp_client_skin_title {
906  position: absolute !important;
907  z-index: 10 !important;
908  left: 5% !important;
909  top: 31% !important;
910  visibility: visible !important;
911  opacity: 1 !important;
912  height: auto !important;
913  margin: 0 !important;
914  padding: 0 !important;
915  overflow: visible !important;
916  font-size: 24px !important;
917  line-height: 1.2 !important;
918}
919.tg-grid-holder .tg-fp_categories .tg-item-content-holder .fp_client_skin_title a {
920  font-size: 24px !important;
921  line-height: 1.2 !important;
922}
923
924/* EN contrast: match DE grid skin */
925.tg-grid-holder .tg-fp_categories:has(.tg-item-media-holder.tg-light) .fp_client_skin_title a {
926  color: #fff !important;
927}
928.tg-grid-holder .tg-fp_categories:has(.tg-item-media-holder.tg-dark) .fp_client_skin_title a {
929  color: #333 !important;
930}
931
932/* DE/other skins: use native overlay title */
933.tg-grid-holder .tg-item-media-content .fp_client_skin_title {
934  visibility: visible !important;
935  opacity: 1 !important;
936  font-size: 24px !important;
937  line-height: 1.2 !important;
938}
939.tg-grid-holder .tg-item-media-content .fp_client_skin_title a {
940  font-size: 24px !important;
941  line-height: 1.2 !important;
942}
943
944/*mobile and global adjustments font-size*/ 
945.tg-item-title, .tg-item-meta-data, .tg-element-2  {line-height: 26p
945x !important}
946
947
948	
949/**/
950@media only screen and (max-width:480px){
951
952.fp_title h1 {font-size: 1.3rem !important}
953/*.fp_title h1 {font-size: 1.35rem !important}*/
954.fp_title h4 {font-size: 1rem !important}
955.fp_title h2 {font-size: 1.3rem}
956/*.fp_title h2 {font-size: 1rem}*/
957	
958.tg-item-title.tg-element-7, .tg-item-title.tg-element-3.fp_client_skin_title a {font-size:0.9rem !important} 
959.tg-item-meta-data {font-size:12px !important;}
960.tg-item-media-content .tg-element-2 {display:none !important}
961.tg-filter-name {font-size: 12px !important}
962.tg-item-meta-data.tg-element-1 {display:none !important}
963.tg-item-title.tg-element-7 {padding-top: 16px !important}
964.tg-element-5 {padding-top: 5px !important}
965.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {font-size:1rem !important}
966.fpd-description-block, .fpd-description-block-large {font-size:14px !important}
967	
968.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-name 
969{font-size: 12px !important}
970.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-description
971{font-size: 12px !important}
972.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title 
973{font-size:16px !important}
974.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-link {font-size:12px !important}
975	.hover_feature_holder_title_inner {padding-bottom: 35px !important}
976}
977
978
979@media only screen and (min-width:480px) and (max-width:770px){
980
981.fp_title h1 {font-size: 1.5rem !important}
982	/*.fp_title h1 {font-size: 1.8rem !important}*/
983.fp_title h4 {font-size: 1rem !important}
984/*.fp_title h2 {font-size: 1.5rem}*/
985/*.fp_title h2 {font-size: 1.3rem}*/
986	
987
988.tg-item-title.tg-element-7, .tg-item-title.tg-element-3.fp_client_skin_title a {font-size:1.3rem !important} 
989.tg-item-meta-data {font-size:13px !important;}
990.tg-element-2 {font-size:13px !important}
991.tg-filter-name {font-size: 13px !important}
992.tg-item-meta-data.tg-element-1 {padding-top: 3px !important}
993.tg-element-2 {padding-top: 3px !important}
994	.fpd-description-block, .fpd-description-block-large {font-size:14px !important}
995.tg-item-meta-data.tg-element-1 {display:none !important}
996.tg-item-title.tg-element-7 {padding-top: 12px !important}
997.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {font-size:1.3rem !important} 
998	
999.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-name 
1000{font-size: 13px !important}
1001.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-description
1002{font-size: 13px !important}
1003.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title 
1004{font-size:22px !important; padding-top:5px}
1005.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-link {font-size:14px !important; padding-top:5px}
1006	.hover_feature_holder_title_inner {padding-bottom: 20px !important}
1007
1008}
1009
1010
1011@media only screen and (min-width:600px) and (max-width:770px){.tg-item-title.tg-element-7 {padding-top: 18px !important}
1012.hover_feature_holder_title_inner {padding-bottom: 0px !important}
1013
1014}
1015
1016
1017@media only screen and (min-width:770px) and (max-width:1260px) 
1018{.tg-item-title.tg-element-7 {font-size:1.6rem !important}
1019 .tg-item-title.tg-element-3.fp_client_skin_title a {font-size:1.3rem !important}
1020.tg-item-meta-data {font-size:14px !important}
1021.tg-element-2 {font-size:14px !important}
1022.tg-filter-name {font-size: 14px !important}
1023.tg-item-title.tg-element-7  {padding-top: 5px !important}
1024.tg-item-meta-data.tg-element-1 {padding-top: 3px !important}
1025
1026	.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-name 
1027{font-size: 14px !important}
1028.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-description
1029{font-size: 14px !important}
1030.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title 
1031{font-size:30px !important}
1032.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-link {font-size:14px !important}
1033}
1034
1035
1036@media only screen and (min-width:1260px) and (max-width:1400px) {.tg-item-title.tg-element-7  {font-size:2rem !important} 
1037.tg-item-meta-data {font-size:15px !important}
1038.tg-element-2 {font-size:15px !important}
1039.tg-filter-name {font-size: 15px !important}
1040.tg-item-title.tg-element-7  {padding-top: 5px !important}
1041.tg-item-meta-data.tg-element-1 {padding-top: 4px !important}
1042}
1043
1044
1045@media only screen and (min-width:1260px) {.tg-item-title.tg-element-7  {font-size:1.5rem !important} }
1046
1047/**/
1048
1049
1050/*letter spacing global h1, h2 und the grid */
1051
1052@media only screen and (min-width:600px) {
1053.tg-item-title {letter-spacing: -0.2px !important}
1054.tg-item-meta-data {letter-spacing: -0.5px}
1055.tg-element-2 {letter-spacing: -0.2px}
1056/*h1 {letter-spacing: -1px !important}*/
1057	h2 {letter-spacing:-0.1px}
1058}
1059@media only screen and (max-width:600px) {
1060.tg-item-title {letter-spacing: -0.1px !important}
1061.tg-item-meta-data {letter-spacing: -0.2px}
1062.tg-element-2 {letter-spacing: -0.1px}
1063	h1 {letter-spacing: -0.3px !important}
1064}
1065
1066/*client girs 3_2 font-size */
1067
1068@media only screen and (min-width:600px) {
1069	.tg-fp_clients.f184 .tg-item-title.tg-element-7, .tg-fp_clients.f186 .tg-item-title.tg-element-7, .tg-fp_clients.f187 .tg-item-title.tg-element-7 {font-size:1.4rem !important}
1070}
1071
1072
1073/*possible slider font */
1074@media only screen and (max-width:600px){
1075.swiper-slide-content .text-title {font-size:1.2rem !important} 	
1076	}
1077
1078@media only screen and (min-width:600px) and (max-width:1200px) {.swiper-slide-content .text-title {font-size:2rem !important}
1079}
1080
1081@media only screen and (min-width:1200px) {
1082.swiper-slide-content .text-title {font-size:2rem !important}
1083}
1084
1085@media only screen and (max-width:568px) {
1086.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {margin: 0 0 20px !important}
1087}
1088
1089
1090
1091
1092/*zusätzlich zeilenumbrüche auf mobile entfernen */
1093
1094@media only screen and (max-width:768px) {
1095#fp-display-none {display:none !important}
1096}
1097
1098
1099/*list line-breaks aligned */
1100
1101.fp-custom-list ul 	{ 
1102   list-style-position:outside !important; padding-left: 1em !important;
1103 }
1104@media only screen and (min-width:1200px) {
1105.fp-custom-list li span	{position:relative; left:10px !important}
1106}
1107@media only screen and (max-width:1200px) {
1108.fp-custom-list li span	{position:relative; left:15px !important}
1109}
1110
1111
1112/* footer adjusments */
1113.footer_bottom {
1114    font-family: 'FrutigerLTCom Roman',Arial,sans-serif!important; font-size: 14px;vertical-align: bottom; 
1115}
1116
1117.footer_bottom .textwidget {display:inline-block !important; position:relative; left: 0px; margin-right: 30px }
1118
1119.q_social_icon_holder.normal_social {}
1120
1121.footer_inner {position:relative; bottom: -34px;}
1122
1123@media only screen and (max-width:768px) {.footer_bottom .textwidget {display:block !important; margin-bottom: 20px; margin-right:0px }
1124}
1125
1126
1127/* cookie bar */
1128
1129.cli-tab-footer .wt-cli-privacy-accept-btn {background-color:#f8c424; color: black}
1130
1131#cookie-law-info-bar, .cli-modal-content.cli-bar-popup, .cli-nav-link.cli-settings-mobile {text-transform:lowercase !important}
1132
1133@media only screen and (min-width:1000px) {
1134#menu-social-icons, .footer_inner.clearfix span {margin-bottom: 40px}
1135}
1136
1137
1138/*alternative: move bar up to make the language menu visible 
1139#cookie-law-info-bar{
1140position: fixed;
1141bottom: 100px !important;
1142}
1143*/
1144
1145/*cookie logo ausblenden */
1146.wt-cli-ckyes-brand-logo {display:none}
1147
1148
1149
1150/* awards list */
1151
1152
1153
1154/* f/p global image zoom v1 - reference: /design-services/ (2026-10-06).
1155   Exact reference motion: 2000ms, cubic-bezier(0.65, 0, 0.35, 1), scale 1.20.
1156   Content media only; no navigation, footer icons, customer logos or slide containers.
1157   Add fp-no-image-zoom to a content block to exclude it. */
1158.wrapper .content :is(
1159  .tg-grid-wrapper .tg-item-media-holder,
1160  .tg-grid-wrapper .tg-item-media-inner,
1161  .fp-list-component .projects_holder article span.image,
1162  .fp-image-hover,
1163  .wpb_single_image .vc_single_image-wrapper,
1164  .blog-image-wrapper,
1165  .blog-content-wrapper p:has(> img:only-child),
1166  .blog-content-wrapper p:has(> a:only-child > img:only-child)
1167):not(.fp-logo-list, .fp-logo-list *, .fp-no-image-zoom, .fp-no-image-zoom *) {
1168  overflow: hidden;
1169}
1170.wrapper .content .fp-image-hover img:not(.fp-logo-list *, .fp-no-image-zoom *) {
1171  object-fit: cover;
1172}
1173.wrapper .content .tg-grid-wrapper .tg-item-media-content {
1174  background-color: transparent !important;
1175}
1176.wrapper .content .tg-grid-wrapper .tg-item-overlay,
1177.wrapper .content .fp-list-component .projects_holder article .portfolio_shader {
1178  background-color: transparent !important;
1179  opacity: 0 !important;
1180  visibility: hidden !important;
1181}
1182.wrapper .content .fp-list-component .projects_holder article span.image::before {
1183  background: transparent !important;
1184  opacity: 0 !important;
1185}
1186.wrapper .content :is(
1187  .tg-grid-wrapper .tg-item-media-inner .tg-item-image,
1188  .fp-list-component .projects_holder article span.image img,
1189  .fp-image-hover img,
1190  .wpb_single_image .vc_single_image-wrapper img,
1191  .blog-image-wrapper > img,
1192  .blog-image-wrapper > a > img,
1193  .blog-content-wrapper p > img:only-child,
1194  .blog-content-wrapper p > a:only-child > img:only-child
1195):not(.fp-logo-list, .fp-logo-list *, .fp-no-image-zoom, .fp-no-image-zoom *) {
1196  opacity: 1 !important;
1197  filter: none !important;
1198  transform: scale(1) !important;
1199  transform-origin: center center;
1200  transition: transform 2000ms cubic-bezier(0.65, 0, 0.35, 1) !important;
1201}
1202@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
1203.wrapper .content :is(
1204  .tg-grid-wrapper .tg-item:hover .tg-item-media-inner .tg-item-image,
1205  .fp-list-component .projects_holder article:hover span.image img,
1206  .fp-image-hover:hover img,
1207  .wpb_single_image .vc_single_image-wrapper:hover img,
1208  .blog-image-wrapper:hover > img,
1209  .blog-image-wrapper:hover > a > img,
1210  .blog-content-wrapper p:hover > img:only-child,
1211  .blog-content-wrapper p:hover > a:only-child > img:only-child
1212):not(.fp-logo-list, .fp-logo-list *, .fp-no-image-zoom, .fp-no-image-zoom *) {
1213  transform: scale(1.20) !important;
1214}
1215}
1216@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
1217.wrapper .content :is(
1218  .tg-grid-wrapper .tg-item-media-inner .tg-item-image,
1219  .fp-list-component .projects_holder article span.image img,
1220  .fp-image-hover img,
1221  .wpb_single_image .vc_single_image-wrapper img,
1222  .blog-image-wrapper > img,
1223  .blog-image-wrapper > a > img,
1224  .blog-content-wrapper p > img:only-child,
1225  .blog-content-wrapper p > a:only-child > img:only-child
1226):not(.fp-logo-list, .fp-logo-list *, .fp-no-image-zoom, .fp-no-image-zoom *) {
1227  transform: none !important;
1228  transition: none !important;
1229}
1230}
1231/* Slider images stay at their original scale; Swiper moves only the slide wrapper. */
1232.wrapper .content .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .image > img {
1233  transform: none !important;
1234  transition: none !important;
1235}
1236/* End f/p global image zoom v1. */
1237
1238
1239
1240/*privacy */
1241.fp-dsgvo {text-transform: lowercase; color: #333!important}
1242.fp-dsgvo h1 {margin-bottom: 44px}
1243.fp-dsgvo h2 {font-size: 22px; margin-bottom:22px; margin-top: 44px}
1244.fp-dsgvo h3 {letter-spacing: -0.5px; Font-size: 17px; margin-bottom:22px; margin-top:22px}
1245.fp-dsgvo h4 {letter-spacing: -0.5px; Font-size: 14px; font-weight: bold; margin-top: 22px}
1246.fp-dsgvo h5 {letter-spacing: -0.5px; Font-size: 14px; font-weight: bold; margin-top: 22px; text-transform: lowercase}
1247
1248/*imprint*/
1249
1250.fp-imprint {text-transform: lowercase; color: #333!important}
1251.fp-imprint h1 {margin-bottom: 44px}
1252.fp-imprint h2 {Font-size: 16px; margin-bottom:16px; margin-top: 16px}
1253.fp-imprint h3 {letter-spacing: -0.5px; Font-size: 14px; margin-top:22px}
1254
1255/*button on the right side
1256.fp-button-right {text-align: right;}*/
1257
1258
1259/*japanese language font */
1260
1261html[lang="ja"] body p {
1262    font-family: 'FrutigerLTCom Roman','Noto Sans JP',Arial,sans-serif !important;
1263}
1264
1265
1266
1267/* date lowercase */
1268.tg-item-date  {
1269  text-transform: lowercase;
1270}
1271
1272
1273
1274/*sector pages smart slider */
1275
1276.fp-sp-text p, .fp-sp-text a  {
1277    font-family: 'FrutigerLTCom Roman','Noto Sans JP',Arial,sans-serif !important; font-size: 15px !important; line-height: 26px !important; 
1278}
1279
1280.fp-sp-heading div {font-family: 'FrutigerLTCom Bold',Arial,sans-serif !important; font-size:32px !important}
1281
1282
1283.call_to_action_text  {
1284    font-family: 'FrutigerLTCom Roman','Noto Sans JP',Arial,sans-serif !important; font-size: 15px !important; line-height: 26px !important; 
1285}
1286
1287@media only screen and (max-width:1199px) {
1288	.n2-ss-slide-background {display:none} 
1289.fp-sp-heading div {font-size:22px !important}
1290	.fp-sp-text p, .fp-sp-text a {font-size:14px !important}
1291	.call_to_action_text p {font-size:14px !important}
1292}
1293
1294.call_to_action.normal {padding:50px}
1295
1296/*test to remove ghost pictures - only archive pages */
1297.project_category.list-description p {display:none !important}
1298.project_category.list-description + p {display:none !important}
1299.project_category.list-description > div {display:none !important}
1300
1301/* hide view more on mobile */
1302@media only screen and (max-width:568px){.text-link {display:none}
1303}
1304
1305/* ausrichtung title */
1306.content .container .container_inner.page_container_inner, .full_page_container_inner {padding: 70px 0 0 !important}
1307
1308
1309@media only screen and (max-width:1000px){.content .container .container_inner.page_container_inner, .full_page_container_inner {padding: 0px 0 0 !important}
1310}
1311
1312/* ausrichtung title client page */
1313.full_page_container_inner, .single.single-client .content .container .container_inner.page_container_inner {padding: 70px 0 0 !important}
1314
1315@media only screen and (max-width:1000px) {.full_page_container_inner, .single.single-client .content .container .container_inner.page_container_inner {padding: 0px 0 0 !important}}
1316
1317
1318
1319 h1.client_title {padding-bottom:60px !important}
1320
1321
1322/* ausrichtung title works page */
1323
1324
1325.work-template-default h1.php_title {padding: 70px 0 0 }
1326.single-work .blog_holder article .post_text .post_text_inner {
1327    padding: 60px 0 0;
1328}
1329
1330@media only screen and (max-width:1000px){
1331.work-template-default h1.php_title {padding: 0px 0 70px !important}}
1332
1333
1334/* client color on client page */
1335
1336.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-name {color: #333}
1337
1338/* the grid distance single filter */
1339.tg-grid-area-top2 {
1340    padding-bottom: 16px !important;
1341}
1342
1343/*links in bold*/
1344.fpd-description-block a:link {font-weight:bold}
1345
1346
1347.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide:before {background: rgba(0, 0, 0, .02)}
1348
1349
1350
1351/* sidebar adjustments */
1352.wpfm_fp, .wpfm2_fp {margin-bottom:7px !important; transform: translateX(-50px) !important; padding:0 10px; 
1353/*border-top-left-radius: 5px;
1354border-bottom-left-radius: 5px; */
1355	padding-top:5px;
1356padding-bottom:5px; box-shadow: -1px 1px 3px 0px rgba(0, 0, 0, 0.3);
1357text-align:right !important
1358	}
1359.wpfm_fp img, .wpfm2_fp img {margin-top:9px; margin-left:9px}
1360.wpfm-menu-name {margin-left:-50px !important; font-size: 15px !important; font-weight: 300 !important}
1361
1362
1363#wpfm-floating-menu-nav > ul > li:nth-child(2) > a > span.wpfm-menu-name-tooltip-wrap > span {text-transform:lowercase}
1364
1365
1366/* wp floating menu sidebar language */
1367
1368#wpfm-floating-menu-nav > ul > li.wpfm2_fp.pum-trigger > a > span.wpfm-menu-name-tooltip-wrap > span:lang(de):before {content: "Jetzt Testen!";}
1369
1370#wpfm-floating-menu-nav > ul > li.wpfm2_fp.pum-trigger > a > span.wpfm-menu-name-tooltip-wrap > span:lang(en):before {content: "Test Now!";}
1371
1372#wpfm-floating-menu-nav > ul > li.wpfm2_fp.pum-trigger > a > span.wpfm-menu-name-tooltip-wrap > span:lang(fr):before {content: "Essayez-le!";}
1373
1374/*hide floating cta in japan */
1375#wpfm-floating-menu-nav:lang(ja) {display:none}
1376
1377
1378
1379
1380/* neu 2026 */
1381
1382
1383
1384/* logo client list start */
1385.fp-logo-list {
1386  display: grid;
1387  grid-template-columns: repeat(8, 1fr);
1388  column-gap: 25px;
1389  row-gap: 12.5px;
1390  align-items: center;
1391  justify-items: center;
1392
1393  margin: 0;
1394  padding-left: 0;
1395  width: 100%;
1396}
1397
1398/* Container für jedes Logo */
1399.fp-logo-list a,
1400.fp-logo-list span {
1401  display: inline-flex;
1402  align-items: center;
1403  justify-content: center;
1404  min-height: 60px;
1405}
1406
1407/* Logos */
1408.fp-logo-list img {
1409  display: block;
1410  max-width: 180px;
1411  max-height: 80px;
1412  width: auto;
1413  height: auto;
1414
1415  opacity: 0.85;
1416  transition: opacity 0.25s ease, transform 0.25s ease;
1417
1418  pointer-events: none; /* 🔑 verhindert Klick-Probleme */
1419}
1420
1421/* Hover Effekt (für beide!) */
1422.fp-logo-list a:hover img,
1423.fp-logo-list span:hover img {
1424  opacity: 1;
1425  transform: scale(1.03);
1426}
1427
1428/* Cursor */
1429.fp-logo-list a {
1430  cursor: pointer;
1431}
1432
1433.fp-logo-list span {
1434  cursor: default;
1435}
1436
1437/* logo client list end */
1438
1439
1440/* ===== TABLET ===== */
1441@media (max-width: 1024px) {
1442  .fp-logo-list {
1443    grid-template-columns: repeat(4, 1fr);
1444    column-gap: 60px;
1445    row-gap: 40px;
1446  }
1447
1448  .fp-logo-list img {
1449    max-height: 70px;
1450  }
1451}
1452
1453/* ===== MOBILE (4 SPALTEN ZENTRIERT) ===== */
1454@media (max-width: 767px) {
1455  .fp-logo-list {
1456    display: flex !important;
1457    flex-wrap: wrap !important;
1458    justify-content: center !important;
1459    width: 100% !important;
1460    max-width: 100% !important;
1461    margin: 0 auto !important;
1462    padding: 0 8px !important;
1463    box-sizing: border-box !important;
1464
1465    column-gap: 0 !important;
1466    row-gap: 12px !important;
1467    gap: 12px 0 !important;
1468  }
1469
1470  .fp-logo-list > a,
1471  .fp-logo-list > span {
1472    flex: 0 0 25% !important;
1473    max-width: 40% !important;
1474    width: 40% !important;
1475    display: flex !important;
1476    align-items: center !important;
1477    justify-content: center !important;
1478    padding: 8px 4px !important;
1479    margin: 0 !important;
1480    box-sizing: border-box !important;
1481  }
1482
1483  .fp-logo-list > a img,
1484  .fp-logo-list > span img {
1485    display: block !important;
1486    width: 82% !important;
1487    max-width: 100% !important;
1488    height: auto !important;
1489    margin: 0 auto !important;
1490  }
1491}
1492/* logo client list end */
1493
1494
1495/*accordion*/
1496/* Padding links entfernen */
1497.qode-tab-title-inner {
1498    padding-left: 0 !important;
1499}
1500
1501/* alle Accordion States ohne Hintergrund */
1502.ui-accordion-header,
1503.ui-accordion-header-active,
1504.ui-accordion-header-collapsed,
1505.ui-state-active,
1506.ui-state-hover,
1507.ui-state-focus {
1508    background: transparent !important;
1509    color: #333 !important;
1510}
1511
1512/* auch beim Hover */
1513.ui-accordion-header:hover,
1514.ui-state-hover:hover {
1515    background: transparent !important;
1516    color: #333 !important;
1517}
1518
1519/*farbe der liste im inneren*/
1520.qode-accordion-content-inner {color:#333}
1521
1522/*menu */
1523/*
1524*
1525*
1526*/
1527
1528@media only screen and (max-width:480px) {
1529  .footer_bottom_border.in_grid,.footer_top_border.in_grid,.header_bottom .container_inner,.title_border_in_grid_holder,footer .container_inner,nav.mobile_menu>ul {
1530  width:300px
1531}
1532}
1533
1534nav.mobile_menu .sub_menu a {font-weight:400 !important}
1535
1536
1537/* test 2 */
1538
1539/* Cleaned slider/swiper CSS (consolidated, deduped, formatted) */
1540/* Global */
1541.fp-slider-component {
1542  position: relative;
1543}
1544
1545.fp-slider-component .swiper-container {
1546  height: 100%;
1547  width: 100%;
1548}
1549
1550.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide {
1551  background-size: cover;
1552}
1553
1554.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .image {
1555  display: block;
1556  overflow: hidden;
1557  position: relative;
1558  width: 100%;
1559  z-index: -1;
1560}
1561
1562.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .image img {
1563  display: block;
1564  position: relative;
1565  width: 100%;
1566}
1567
1568.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content {
1569  left: 100px;
1570  max-width: 500px;
1571  -ms-transform: translateY(-50%);
1572  padding-right: 30px;
1573  position: absolute;
1574  top: 50%;
1575  transform: translateY(-50%);
1576  -webkit-transform: translateY(-50%);
1577  z-index: 10;
1578}
1579
1580.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {
1581  display: block;
1582  font-family: 'FrutigerLTCom Bold',Arial,sans-serif;
1583  font-size: 60px;
1584  letter-spacing: -1.5px;
1585  line-height: 102%;
1586  margin: 0 0 25px;
1587  text-transform: lowercase;
1588}
1589
1590.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-description {
1591  font-size: 16px;
1592  letter-spacing: -.8px;
1593  line-height: 140%;
1594  margin: 0 0 14px;
1595}
1596
1597.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-description strong {
1598  font-family: 'FrutigerLTCom Bold',Arial,sans-serif;
1599  font-size: 16px;
1600}
1601
1602.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-description.text-description-first {
1603  margin: 0 0 25px;
1604}
1605
1606.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-link {
1607  font-family: 'FrutigerLTCom Bold',Arial,sans-serif;
1608  font-size: 16px;
1609}
1610
1611.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-dark {
1612  color: #333;
1613}
1614
1615.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-dark .text-link {
1616  color: #333;
1617}
1618
1619.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-light {
1620  color: #fff;
1621}
1622
1623.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-light .text-link {
1624  color: #fff;
1625}
1626
1627
1628.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide:before {
1629  background: rgba(0,0,0,.02);
1630  content: '';
1631  height: 100%;
1632  position: absolute;
1633  width: 100%;
1634}
1635
1636
1637.fp-slider-component .swiper-pagination {
1638  bottom: 0;
1639  display: none;
1640  width: 100%;
1641}
1642
1643.fp-slider-component .swiper-pagination .swiper-pagination-bullet {
1644  margin: 0 3px 0 3px;
1645}
1646
1647.fp-slider-component .swiper-pagination .swiper-pagination-bullet-active {
1648  background: #333;
1649}
1650
1651.fp-slider-component .swiper-info {
1652  bottom: 0;
1653  position: absolute;
1654  width: 70px;
1655  z-index: 10;
1656}
1657
1658.fp-slider-component .swiper-info .swiper-navigation-wrapper {
1659  background: rgba(14,14,14,.8);
1660  height: 100%;
1661  left: 0;
1662  -moz-user-select: none;
1663  -ms-user-select: none;
1664  position: absolute;
1665  top: 0;
1666  user-select: none;
1667  -webkit-user-select: none;
1668  width: 100%;
1669}
1670
1671.fp-slider-component .swiper-info .swiper-navigation-wrapper .swiper-current-slide {
1672  margin: 15px 0 0;
1673  text-align: center;
1674}
1675
1676.fp-slider-component .swiper-info .swiper-navigation-wrapper .swiper-current-slide .swiper-current {
1677  color: #fff;
1678  font-family: 'FrutigerLTCom Bold',Arial,sans-serif;
1679  font-size: 28px;
1680}
1681
1682.fp-slider-component .swiper-info .swiper-navigation-wrapper .swiper-current-slide .swiper-total {
1683  color: #fff;
1684  font-size: 18px;
1685  opacity: .35;
1686}
1687
1688
1689
1690
1691
1692.fp-slider-component.fp-slider-component-right .swiper-info {
1693  right: 100px;
1694}
1695
1696.fp-slider-component.fp-slider-component-left .swiper-info {
1697  left: 100px;
1698}
1699
1700@media print {
1701  .swiper-container {
1702    overflow: visible!important;
1703  }
1704
1705  .swiper-slide,.swiper-wrapper {
1706    display: block!important;
1707    -ms-transform: none!important;
1708    position: static!important;
1709    transform: none!important;
1710    -webkit-transform: none!important;
1711    width: 100%;
1712  }
1713
1714  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide {
1715    display: none!important;
1716    max-width: 100%!important;
1717  }
1718
1719  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide.swiper-slide-active {
1720    display: block!important;
1721  }
1722
1723
1724  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide:before {
1725    background: 0 0!important;
1726  }
1727
1728  .fp-slider-component .swiper-info .swiper-navigation-wrapper {
1729    display: none;
1730  }
1731
1732  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .image,.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .image img {
1733    display: block;
1734    height: auto;
1735    margin: 0 auto!important;
1736    max-width: 100%!important;
1737    -ms-transform: none!important;
1738    overflow: visible!important;
1739    position: static!important;
1740    transform: none!important;
1741    -webkit-transform: none!important;
1742    z-index: 100!important;
1743  }
1744
1745  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content {
1746    color: #fff!important;
1747    left: 30px!important;
1748    max-width: 100%!important;
1749    -ms-transform: none!important;
1750    text-align: left;
1751    top: 40px!important;
1752    transform: none!important;
1753    -webkit-transform: none!important;
1754    width: 100%!important;
1755  }
1756
1757  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-description,.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {
1758    font-size: 45px;
1759    max-width: 370px;
1760  }
1761
1762  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-description p,.fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {
1763    color: #fff!important;
1764  }
1765
1766  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-light p {
1767    color: #fff!important;
1768    font-size: 14px;
1769  }
1770
1771  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-light span {
1772    color: #fff!important;
1773    font-size: 30px;
1774  }
1775
1776  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-light .text-link {
1777    color: #fff!important;
1778    font-size: 14px;
1779  }
1780
1781  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-dark p {
1782    color: #333!important;
1783    font-size: 14px;
1784  }
1785
1786  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-dark span {
1787    color: #333!important;
1788    font-size: 30px;
1789  }
1790
1791  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content.fp-slide-theme-dark .text-link {
1792    color: #333!important;
1793    font-size: 14px;
1794  }
1795
1796}
1797
1798@media only screen and (min-width:530px) and (max-width:949px),only screen and (min-width:800px) and (max-width:1000px),only screen and (min-width:768px) and (max-width:1024px) and (orientation:landscape),only screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait) {
1799  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content {
1800    left: 50px;
1801  }
1802
1803  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {
1804    font-size: 45px;
1805    margin: 0 0 15px;
1806  }
1807
1808  .fp-slider-component .swiper-info {
1809    left: inherit!important;
1810    right: 20px!important;
1811  }
1812
1813}
1814
1815@media only screen and (max-width:568px) {
1816  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content {
1817    left: 0;
1818    padding: 28px 30px 0;
1819  }
1820
1821  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {
1822    font-size: 26px;
1823    line-height: 90%;
1824    margin: 0 0 5px;
1825  }
1826
1827  .fp-slider-component .swiper-pagination {
1828    display: block;
1829  }
1830
1831  .fp-slider-component .swiper-info {
1832    height: 50px;
1833    left: inherit!important;
1834    right: 0!important;
1835  }
1836
1837  .fp-slider-component .swiper-info .swiper-navigation-wrapper .swiper-button-next,.fp-sli
1837der-component .swiper-info .swiper-navigation-wrapper .swiper-button-prev {
1838    display: none;
1839  }
1840
1841  .fp-slider-component .swiper-info .swiper-navigation-wrapper {
1842    display: none;
1843  }
1844
1845  .fp-slider-component.fp-slider-component-right .swiper-info {
1846    right: 0;
1847  }
1848
1849  .fp-slider-component.fp-slider-component-left .swiper-info {
1850    left: 0;
1851  }
1852
1853}
1854
1855@media only screen and (max-width:1366px) {
1856  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-title {
1857    font-size: 48px;
1858  }
1859
1860  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-link {
1861    font-size: 15px;
1862  }
1863
1864  .fp-slider-component .swiper-info {
1865    left: inherit!important;
1866    right: 100px!important;
1867  }
1868
1869}
1870
1871@media only screen and (max-width:568px),only screen and (max-width:600px) {
1872  .fp-slider-component .swiper-container .swiper-wrapper .swiper-slide .swiper-slide-content .text-description {
1873    display: none;
1874  }
1875
1876
1877}
1878
1879/* social zeugs  */
1880
1881.fp-social-icons-component {
1882  position:absolute;
1883  bottom:38px
1884}
1885
1886.fp-social-icons-component ul {
1887  display:inline-block
1888}
1889
1890.fp-social-icons-component ul li.social-icon {
1891  display:inline-block
1892}
1893
1894.fp-social-icons-component ul li.social-icon a {
1895  display:block;
1896  padding:0 12px;
1897  font-size:8px;
1898  vertical-align:middle
1899}
1900
1901.fp-social-icons-component ul li.social-icon .icon-instagram:before {
1902  content:'';
1903  background:url(https://cdn.shortpixel.ai/spai/w_1920+q_glossy+ret_img+to_auto/fpdesign.com/design-services/frontend/images/instagram.png);
1904  width:17px;
1905  height:17px
1906}
1907
1908
1909
1910.fp-prev-next-component {
1911  margin:30px 23px 0;
1912  margin:30px 0 0;
1913  padding:30px 0;
1914  border-top:1px solid #f5f5f5
1915}
1916
1917@media only screen and (max-width:568px),only screen and (min-width:768px) and (max-width:1024px) and (orientation:landscape) {
1918  .fp-prev-next-component {
1919  margin:30px 3px 0
1920}
1921}
1922
1923.fp-prev-next-component a {
1924  position:relative;
1925  font-size:16px;
1926  color:#333;
1927  font-family:'FrutigerLTCom Bold',Arial,sans-serif;
1928z-index: 99999 !important;
1929}
1930
1931.fp-prev-next-component a:before {
1932  content:'';
1933  display:block;
1934  width:9px;
1935  height:15px;
1936  position:absolute;
1937  top:5px;
1938z-index: 99999 !important;
1939}
1940
1941
1942
1943/* social zeugs 2 */
1944
1945/* Position des Social-Menüs (ursprünglich im Footer/Vertical-Menu verankert) */
1946.fp-social-icons-component {
1947    position: absolute;
1948    bottom: 38px;
1949}
1950
1951/* UL und LI-Layout */
1952.fp-social-icons-component ul {
1953    display: inline-block;
1954}
1955
1956.fp-social-icons-component ul li.social-icon {
1957    display: inline-block;
1958}
1959
1960/* Link-Stil im Social-Menü */
1961.fp-social-icons-component ul li.social-icon a {
1962    display: block;
1963    padding: 0 12px;
1964    font-size: 8px;
1965    vertical-align: middle;
1966}
1967
1968/* Beispiel für Instagram-Icon (Bild als Icon) */
1969.fp-social-icons-component ul li.social-icon .icon-instagram:before {
1970    content: '';
1971    background: url(https://cdn.shortpixel.ai/spai/w_1920+q_glossy+ret_img+to_auto/fpdesign.com/design-services/frontend/images/instagram.png);
1972    width: 17px;
1973    height: 17px;
1974}
1975
1976/* Außenabstände des ersten/letzten Social-Links */
1977.fp-social-icons-component ul li.social-icon:first-child a {
1978    padding-left: 0;
1979}
1980.fp-social-icons-component ul li.social-icon:last-child a {
1981    padding-right: 0;
1982}
1983
1984.fp-footer-component .fp-social-icons-component {
1985    position: relative;   /* oder relative; je nach Wunsch */
1986    bottom: auto;
1987}
1988
1989
1990.fp-social-icons-component{
1991  position:fixed !important;
1992  bottom:38px !important;
1993left: 76px !important;
1994z-index: 99999 !important;
1995}
1996
1997/* f/p global language navigation: keep all languages inside the left rail. */
1998@media only screen and (min-width:1001px) {
1999  nav.fp-social-icons-component {
2000    width:190px;
2001    max-width:calc(100vw - 96px);
2002    box-sizing:border-box;
2003    white-space:normal;
2004  }
2005  nav.fp-social-icons-component > ul {
2006    display:grid !important;
2007    grid-template-columns:repeat(3,minmax(0,1fr));
2008    gap:6px 8px;
2009    width:100%;
2010    max-width:100%;
2011    margin:0;
2012    padding:0;
2013    list-style:none;
2014    box-sizing:border-box;
2015    white-space:normal;
2016  }
2017  nav.fp-social-icons-component > ul > li.wpml-ls-slot-65 {
2018    display:block !important;
2019    float:none !important;
2020    width:auto !important;
2021    min-width:0;
2022    margin:0 !important;
2023    padding:0 !important;
2024  }
2025  nav.fp-social-icons-component > ul > li.wpml-ls-slot-65::before {
2026    content:none !important;
2027    display:none !important;
2028  }
2029  nav.fp-social-icons-component > ul > li.wpml-ls-slot-65 > a {
2030    display:inline-block !important;
2031    max-width:100%;
2032    box-sizing:border-box;
2033    padding:2px 6px !important;
2034    line-height:1.5;
2035    white-space:nowrap;
2036  }
2037}
2038/* End f/p global language navigation. */
2039
2040@media only screen and (max-width:1000px) {
2041  .fp-social-icons-component {
2042  display:none;
2043  }
2044}
2045
2046/*temp*/
2047.fp-blog-page .fp-prev-next-component{
2048  display:block !important;
2049}
2050
2051
2052/* 4) Items und deren Inneres sichtbar machen */
2053.fp-list-component .portfolio_item,
2054.fp-list-component .portfolio_item .item_holder,
2055.fp-list-component .portfolio_item .image,
2056.fp-list-component .portfolio_item .text_holder,
2057.fp-list-component .portfolio_item .text_outer,
2058.fp-list-component .portfolio_item .text_inner {
2059  visibility: visible !important;
2060  opacity: 1 !important;
2061}
2062
2063
2064
2065
2066/* === FP CLIENT / WORK TEXT VISIBILITY & POSITION FIX === */
2067
2068/* Text-Container grundsätzlich sichtbar */
2069.fp-list-component .text_holder,
2070.fp-list-component .text_outer,
2071.fp-list-component .text_inner,
2072.fp-list-component .hover_feature_holder_title,
2073.fp-list-component .hover_feature_holder_title_inner {
2074  visibility: visible !important;
2075  opacity: 1 !important;
2076  transform: none !important;
2077}
2078
2079/* Text über dem Bild zentrieren (wie fpdesign.com) */
2080.fp-list-component .text_holder {
2081  position: absolute !important;
2082  top: 50% !important;
2083  left: 50% !important;
2084  transform: translate(-50%, -50%) !important;
2085  width: 100%;
2086  text-align: center;
2087  pointer-events: none; /* wichtig für Hover */
2088}
2089
2090/* Typo: Client-Name */
2091.fp-list-component .list-name {
2092  display: block;
2093  font-size: 16px;
2094  letter-spacing: 0.04em;
2095  margin-bottom: 6px;
2096}
2097
2098/* Typo: Projekt-Titel */
2099.fp-list-component .list-title {
2100  display: block;
2101  font-size: 22px;
2102  line-height: 1.2;
2103}
2104
2105/* Beschreibung */
2106.fp-list-component .list-description {
2107  display: block;
2108  margin-top: 8px;
2109  font-size: 14px;
2110}
2111
2112/* View details Link */
2113.fp-list-component .list-link {
2114  display: block;
2115  margin-top: 10px;
2116}
2117
2118/* Hover darf Text nicht ausblenden */
2119.fp-list-component .portfolio_item:hover .text_holder {
2120  opacity: 1 !important;
2121  visibility: visible !important;
2122}
2123
2124/* Sicherstellen, dass Text über Shader liegt */
2125.fp-list-component .text_holder {
2126  z-index: 5;
2127}
2128.fp-list-component .portfolio_shader {
2129  z-index: 1;
2130}
2131
2132
2133
2134
2135/* === Client/Work: Text links ausrichten wie fpdesign.com === */
2136.fp-list-component .portfolio_item .text_holder{
2137  left: 0 !important;
2138  right: auto !important;
2139  transform: translate(0, -50%) !important; /* behält vertikale Zentrierung */
2140  width: auto !important;
2141  text-align: left !important;
2142  padding-left: 40px !important;  /* Abstand vom linken Rand – ggf. anpassen */
2143}
2144
2145/* falls du ihn eher unten willst statt mittig */
2146.fp-list-component .portfolio_item .text_holder{
2147  top: auto !important;
2148  bottom: 35px !important;
2149  transform: none !important;
2150}
2151
2152/* damit der Link klickbar bleibt */
2153.fp-list-component .portfolio_item .text_holder{
2154  pointer-events: auto !important;
2155}
2156
2157
2158/* 
2159   FP Client/Work tiles – text look like fpdesign.com
2160   */
2161
2162/* 1) Ensure the overlay is visible (your earlier fix) */
2163.fp-list-component .text_holder,
2164.fp-list-component .text_outer,
2165.fp-list-component .text_inner,
2166.fp-list-component .hover_feature_holder_title,
2167.fp-list-component .hover_feature_holder_title_inner{
2168  visibility: visible !important;
2169  opacity: 1 !important;
2170  transform: none !important;
2171}
2172
2173/* 2) Position: left side, vertically centered (like original) */
2174.fp-list-component .portfolio_item .item_holder{
2175  position: relative !important;
2176}
2177
2178.fp-list-component .portfolio_item .text_holder{
2179  position: absolute !important;
2180  top: 50% !important;
2181  left: 0 !important;
2182  right: auto !important;
2183  transform: translate(0, -50%) !important;
2184  width: auto !important;
2185  text-align: left !important;
2186  padding-left: 70px !important;   /* adjust if needed */
2187  z-index: 5 !important;
2188  pointer-events: auto !important;
2189}
2190
2191/* 3) Typography */
2192.fp-list-component .list-name,
2193.fp-list-component .portfolio_title.list-name{
2194  display: block !important;
2195  font-size: 15px !important;
2196  line-height: 1.1 !important;
2197  font-weight: 400 !important;
2198  letter-spacing: 0.02em !important;
2199  margin: 0 0 18px 0 !important;
2200  color: #333 !important;
2201}
2202
2203.fp-list-component .list-title,
2204.fp-list-component .project_name.list-title{
2205  display: block !important;
2206  font-size: 52px !important;
2207  line-height: 1.05 !important;
2208  font-weight: 700 !important;
2209  margin: 0 0 22px 0 !important;
2210  color: #333 !important;
2211}
2212
2213.fp-list-component .list-description{
2214  display: block !important;
2215  font-size: 14px !important;
2216  line-height: 1.4 !important;
2217  margin: 0 0 18px 0 !important;
2218  color: #333 !important;
2219}
2220
2221/* 4) "/ view details" look */
2222.fp-list-component .list-link a{
2223  display: inline-block !important;
2224  font-size: 14px !important;
2225  line-height: 1.2 !important;
2226  font-weight: 400 !important;
2227  color: #333 !important;
2228  text-decoration: none !important;
2229}
2230
2231.fp-list-component .list-link a::before{
2232  content: "/ " !important;
2233}
2234
2235/* 5) Keep shader behind text */
2236.fp-list-component .portfolio_shader{ z-index: 1 !important; }
2237
2238/* 6) Light theme option (if you use fp-list-theme-light) */
2239.fp-list-component .fp-list-theme-light .list-name,
2240.fp-list-component .fp-list-theme-light .list-title,
2241.fp-list-component .fp-list-theme-light .list-description,
2242.fp-list-component .fp-list-theme-light .list-link a{
2243  color: #fff !important;
2244}
2245
2246/* 7) Responsive tweaks */
2247@media (max-width: 900px){
2248  .fp-list-component .portfolio_item .text_holder{
2249    padding-left: 30px !important;
2250  }
2251  .fp-list-component .list-title{
2252    font-size: 34px !important;
2253  }
2254}
2255
2256@media (max-width: 550px){
2257  .fp-list-component .portfolio_item .text_holder{
2258    top: auto !important;
2259    bottom: 30px !important;
2260    transform: none !important;
2261  }
2262}
2263
2264
2265/* =========================================================
2266   FP Client / Work – final text alignment + background
2267   ========================================================= */
2268
2269/* 1) Text-Overlay linksbündig erzwingen */
2270.fp-list-component .text_holder,
2271.fp-list-component .list-name,
2272.fp-list-component .list-description,
2273.fp-list-component .list-link,
2274.fp-list-component .list-link a{
2275  text-align: left !important;
2276}
2277
2278/* kleine Texte optisch wie Original */
2279.fp-list-component .list-name{
2280  font-size: 15px !important;
2281  font-weight: 400 !important;
2282  margin-bottom: 16px !important;
2283}
2284
2285/* === FP overlay like original (rgba(0,0,0,.05)) === */
2286
2287/* Stelle sicher, dass der Bild-Wrapper eine Position-Basis hat */
2288.fp-list-component .projects_holder article .item_holder,
2289.fp-list-component .projects_holder article a.portfolio_link_for_touch,
2290.fp-list-component .projects_holder article span.image{
2291  position: relative !important;
2292}
2293
2294/* Overlay auf der aktuellen Struktur: span.image */
2295.fp-list-component .projects_holder article span.image::before{
2296  content: '' !important;
2297  position: absolute !important;
2298  inset: 0 !important;              /* top/right/bottom/left:0 */
2299  background: rgba(0,0,0,.02) !important;
2300  z-index: 1 !important;
2301  pointer-events: none !important;
2302}
2303
2304/* Bild darunter halten (wenn img drin ist) */
2305.fp-list-component .projects_holder article span.image img{
2306  position: relative !important;
2307  z-index: 0 !important;
2308  display: block !important;
2309}
2310
2311/* Text darüber */
2312.fp-list-component .projects_holder article .text_holder{
2313  position: absolute !important;
2314  z-index: 5 !important;
2315}
2316
2317.fp-list-component .projects_holder article .text_holder {
2318    background:none
2319}
2320
2321
2322/*breite langer text und textgröße client kachel */
2323.fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title {
2324    margin-bottom: 25px !important;
2325    font-size: 1.5rem !important;
2326    max-width: 500px;
2327}
2328
2329
2330/* ================================
2331   FP mobile text rules (like original)
2332   ================================ */
2333@media only screen and (max-width:568px){
2334
2335  /* robust: niemals wieder unsichtbar */
2336  .fp-list-component .projects_holder article .text_holder,
2337  .fp-list-component .projects_holder article .text_holder *{
2338    visibility: visible !important;
2339    opacity: 1 !important;
2340    display: block !important;
2341    transform: none !important;
2342  }
2343
2344  /* Original: padding im Textblock auf mobile */
2345  .fp-list-component .projects_holder article .text_holder span span.text_inner{
2346    padding: 46px 33px 10px !important;
2347  }
2348
2349  /* Original: Typo anpassen */
2350  .fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title{
2351    font-size: 26px !important;
2352    margin-bottom: 10px !important;
2353    line-height: 105% !important;
2354  }
2355
2356  .fp-list-component.fp-list-detail .text_holder span span.text_inner .list-name{
2357    margin-bottom: 10px !important;
2358  }
2359
2360  /* Original: description wird auf mobile ausgeblendet */
2361  .fp-list-component.fp-list-detail .text_holder span span.text_inner .list-description{
2362    display: none !important;
2363  }
2364
2365  /* Optional: "/ view details" unter dem Titel lassen */
2366  .fp-list-component .list-link{
2367    margin-top: 10px !important;
2368  }
2369}
2370
2371
2372@media only screen and (max-width:568px){
2373  .fp-list-component .projects_holder article .item_holder{ position: relative !important; }
2374  .fp-list-component .projects_holder article .text_holder{ z-index: 10 !important; }
2375  .fp-list-component .projects_holder article span.image::before{ z-index: 1 !important; }
2376  .fp-list-component .projects_holder article span.image{ z-index: 2 !important; }
2377}
2378
2379
2380
2381/* 
2382   FP Client / Work – MOBILE typography like original
2383   */
2384
2385@media only screen and (max-width: 568px){
2386
2387  /* Sicherheit: Text nie ausblenden */
2388  .fp-list-component .text_holder,
2389  .fp-list-component .text_holder *{
2390    visibility: visible !important;
2391    opacity: 1 !important;
2392    transform: none !important;
2393  }
2394
2395  /* Position: links unten, kompakt */
2396  .fp-list-component .portfolio_item .text_holder{
2397    top: auto !important;
2398    bottom: 22px !important;
2399    left: 0 !important;
2400    transform: none !important;
2401    padding-left: 22px !important;
2402    padding-right: 22px !important;
2403    width: 100% !important;
2404  }
2405
2406  /* Client name – sehr klein */
2407  .fp-list-component .list-name{
2408    font-size: 12px !important;
2409    line-height: 1.2 !important;
2410    margin-bottom: 6px !important;
2411    letter-spacing: 0.02em !important;
2412  }
2413
2414  /* Project title – deutlich kleiner als Desktop */
2415  .fp-list-component .list-title{
2416    font-size: 20px !important;
2417    line-height: 1.15 !important;
2418    margin-bottom: 8px !important;
2419    font-weight: 600 !important;
2420  }
2421
2422  /* Beschreibung wie im Original aus */
2423  .fp-list-component .list-description{
2424    display: none !important;
2425  }
2426
2427  /* / view details – klein & ruhig */
2428  .fp-list-component .list-link a{
2429    font-size: 12px !important;
2430    line-height: 1.2 !important;
2431    opacity: 0.9 !important;
2432  }
2433
2434  /* Hintergrund-Overlay bleibt subtil */
2435  .fp-list-component .projects_holder article span.image::before{
2436    background: rgba(0,0,0,0.05) !important;
2437  }
2438}
2439
2440
2441/* eigene anpassungen */
2442@media only screen and (max-width: 480px) {
2443    .fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title {
2444        font-size: 1rem !important;
2445    }
2446}
2447
2448@media only screen and (max-width: 568px) {
2449    .fp-list-component.fp-list-detail .text_holder span span.text_inner .list-title {
2450        font-size: 1rem !important;
2451        margin-bottom: 10px !important;
2452        line-height: 105% !important;
2453			text-align: left !important;
2454			max-width: 160px;
2455    }
2456}
2457/* 
2458   OVERRIDE: Bridge/Qode touchevents text_holder
2459 */
2460
2461/* Text auf Touch-Geräten IMMER anzeigen */
2462.touchevents .projects_holder article span.text_holder,
2463.touchevents .projects_holder article span.text_holder * {
2464  display: block !important;
2465  height: auto !important;
2466  width: auto !important;
2467  opacity: 1 !important;
2468  visibility: visible !important;
2469  transform: none !important;
2470}
2471
2472/* touchevents: Text wieder sauber vertikal zentrieren */
2473.touchevents .projects_holder article span.text_holder{
2474  top: 50% !important;
2475  bottom: auto !important;
2476  left: 0 !important;
2477  right: auto !important;
2478  transform: translate(0, -50%) !important;
2479  margin: 0 !important;
2480  padding-left: 70px !important;  /* ggf. anpassen */
2481  display: block !important;
2482}
2483
2484@media only screen and (max-width: 568px) {.touchevents .projects_holder article span.text_holder{  padding-left: 0px !important; } 
2485}
2486	
2487/* 
2488   Hide "view details" ONLY on small screens
2489   (≤ 568px, like original)
2490*/
2491
2492@media only screen and (max-width: 568px){
2493  .fp-list-component .list-link,
2494  .fp-list-component .list-link a{
2495    display: none !important;
2496    visibility: hidden !important;
2497    opacity: 0 !important;
2498  }
2499}
2500
2501	
2502/* Hide "view details" ONLY</style><noscript><style>.wpb_animate_when_almost_visible { opacity: 1; }</style></noscript>
2502<link href="https://cdn.shortpixel.ai" rel="preconnect" crossorigin><style id="spai_bg_lazr">html.spai_has_js [data-spai-bg-on]:not([data-spai-bg-prepared]){background-image: none !important;}</style></head><body class="wp-singular page-template-default page page-id-21305 page-parent wp-theme-bridge wp-child-theme-bridge-child bridge-core-3.3.5  vertical_menu_enabled qode-title-hidden qode_grid_1300 side_area_uncovered_from_content qode-child-theme-ver-1.0.0 qode-theme-ver-30.8.9.2 qode-theme-bridge disabled_footer_top qode_header_in_grid qode-wpml-enabled wpb-js-composer js-comp-ver-9.0.1 vc_responsive" itemscope itemtype="http://schema.org/WebPage">
vendor: 68 bytes, line 2502
2502 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2502GTM-NSQ57BG9
vendor: 82 bytes, line 2502
2502" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2502<section class="side_menu right "> <a href="#" target="_self" class="close_side_menu "> </a></section><div class="wrapper"><div class="wrapper_inner"><aside class="vertical_menu_area with_scroll  " ><div class="vertical_menu_area_inner"><div class="vertical_area_background" ></div><div class="vertical_logo_wrapper" ><div class="q_logo_vertical"> <a itemprop="url" href="https://fpdesign.com/" > <img itemprop="image" class="normal" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"> <img itemprop="image" class="light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"/> <img itemprop="image" class="dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"/> </a></div></div><nav class="vertical_menu dropdown_animation vertical_menu_toggle"><ul id="menu-main-menu" class=""><li id="nav-menu-item-21567" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-21305 current_page_item menu-item-has-children active has_sub narrow"><a href="https://fpdesign.com/design-services/" class=" current "><i class="menu_icon blank fa"></i><span>services</span><span class="plus"></span></a><div class="second"><div class="inner"><ul><li id="nav-menu-item-21778" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/industrial-design/" class=""><i class="menu_icon blank fa"></i><span>industrial design</span><span class="plus"></span></a></li><li id="nav-menu-item-21774" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/brand-design/" class=""><i class="menu_icon blank fa"></i><span>brand design</span><span class="plus"></span></a></li><li id="nav-menu-item-21773" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/design-consulting/" class=""><i class="menu_icon blank fa"></i><span>design consulting</span><span class="plus"></span></a></li><li id="nav-menu-item-21777" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/ux-ui-design/" class=""><i class="menu_icon blank fa"></i><span>ux / ui design</span><span class="plus"></span></a></li><li id="nav-menu-item-21776" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/architectural-design/" class=""><i class="menu_icon blank fa"></i><span>architectural design</span><span class="plus"></span></a></li><li id="nav-menu-item-21775" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/communication-design/" class=""><i class="menu_icon blank fa"></i><span>communication design</span><span class="plus"></span></a></li><li id="nav-menu-item-35630" class="menu-item menu-item-type-custom menu-item-object-custom "><a href="https://fpdesign.com/design-services/design-for-startups/" class=""><i class="menu_icon blank fa"></i><span>design for startups</span><span class="plus"></span></a></li></ul></div></div></li><li id="nav-menu-item-27305" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children  has_sub narrow">
2502<a href="https://fpdesign.com/works/" class=""><i class="menu_icon blank fa"></i><span>case studies</span><span class="plus"></span></a><div class="second"><div class="inner"><ul><li id="nav-menu-item-27306" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/medical-design/" class=""><i class="menu_icon blank fa"></i><span>medical</span><span class="plus"></span></a></li><li id="nav-menu-item-27307" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/laboratory-design/" class=""><i class="menu_icon blank fa"></i><span>laboratory</span><span class="plus"></span></a></li><li id="nav-menu-item-27308" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/transportation-design/" class=""><i class="menu_icon blank fa"></i><span>transportation</span><span class="plus"></span></a></li><li id="nav-menu-item-27309" class="menu-item menu-item-type-post_type menu-item-object-page ">
2502<a href="https://fpdesign.com/works/industrial-design/" class=""><i class="menu_icon blank fa"></i><span>industry</span><span class="plus"></span></a></li><li id="nav-menu-item-27310" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/office-design/" class=""><i class="menu_icon blank fa"></i><span>office</span><span class="plus"></span></a></li><li id="nav-menu-item-27311" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/home-design/" class=""><i class="menu_icon blank fa"></i><span>home</span><span class="plus"></span></a></li></ul></div></div></li><li id="nav-menu-item-22155" class="menu-item menu-item-type-post_type menu-item-object-page  narrow"><a href="https://fpdesign.com/clients/" class=""><i class="menu_icon blank fa"></i><span>clients</span><span class="plus"></span></a></li><li id="nav-menu-item-21534" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children  has_sub narrow"><a href="https://fpdesign.com/about/" class=""><i class="menu_icon blank fa"></i><span>about</span><span class="plus"></span></a><div class="second"><div class="inner"><ul><li id="nav-menu-item-34554" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-agency-munich/" class=""><i class="menu_icon blank fa"></i><span>munich design studio</span><span class="plus"></span></a></li><li id="nav-menu-item-34680" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-agency-berlin/" class=""><i class="menu_icon blank fa"></i><span>berlin design studio</span><span class="plus"></span></a></li><li id="nav-menu-item-35095" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-japan/" class=""><i class="menu_icon blank fa"></i><span>kyoto design studio</span><span class="plus"></span></a></li><li id="nav-menu-item-34580" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-zurich/" class=""><i class="menu_icon blank fa"></i><span>zurich design hub</span><span class="plus"></span></a></li><li id="nav-menu-item-34709" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-verona/" class=""><i class="menu_icon blank fa"></i><span>verona design hub</span><span class="plus"></span></a></li><li id="nav-menu-item-34707" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-belgrade/" class=""><i class="menu_icon blank fa"></i><span>belgrade design hub</span><span class="plus"></span></a></li><li id="nav-menu-item-34592" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-mumbai/" class=""><i class="menu_icon blank fa"></i><span>mumbai design hub</span><span class="plus"></span></a></li><li id="nav-menu-item-34574" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-china/" class=""><i class="menu_icon blank fa"></i><span>beijing design hub</span><span class="plus"></span></a></li></ul></div></div></li><li id="nav-menu-item-15654" class="menu-item menu-item-type-post_type menu-item-object-page  narrow"><a href="https://fpdesign.com/news/" class=""><i class="menu_icon blank fa"></i><span>Insights</span><span class="plus"></span></a></li><li id="nav-menu-item-21577" class="menu-item menu-item-type-post_type menu-item-object-page  narrow"><a href="https://fpdesign.com/contact/" class=""><i class="menu_icon blank fa"></i><span>contact</span><span class="plus"></span></a></li><li id="nav-menu-item-wpml-ls-63-en" class="menu-item-language menu-item-language-current menu-item wpml-ls-slot-63 wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-has-children  has_sub narrow"><a title="english" href="https://fpdesign.com/design-services/" class=""><i class="menu_icon blank fa"></i><span><span class="fp-language-name" lang="en">english</span></span><span class="plus"></span><span class="qode-featured-icon " aria-hidden="true"></span></a><div class="second"><div class="inner"><ul><li id="nav-menu-item-wpml-ls-63-de" class="menu-item-language menu-item wpml-ls-slot-63 wpml-ls-item wpml-ls-item-de wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item "><a title="german" href="https://fpdesign.com/leistungen/?lang=de" class=""><i class="menu_icon blank fa"></i><span><span class="fp-language-name" lang="en">german</span></span><span class="plus"></span><span class="qode-featured-icon " aria-hidden="true"></span></a></li><li id="nav-menu-item-wpml-ls-63-ja" class="menu-item-language menu-item wpml-ls-slot-63 wpml-ls-item wpml-ls-item-ja wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item "><a title="japanese" href="https://fpdesign.com/services/?lang=ja" class=""><i class="menu_icon blank fa"></i><span><span class="fp-language-name" lang="en">
2502japanese</span></span><span class="plus"></span><span class="qode-featured-icon " aria-hidden="true"></span></a></li></ul></div></div></li></ul></nav><div class="vertical_menu_area_widget_holder"></div></div></aside><header class="page_header   centered_logo fixed   "><div class="header_inner clearfix"><div class="header_bottom clearfix" style='' ><div class="container"><div class="container_inner clearfix"><div class="header_inner_left"><div class="mobile_menu_button"> <span> <i class="qode_icon_font_awesome fa fa-bars " ></i> </span></div><div class="logo_wrapper" ><div class="q_logo"> <a itemprop="url" href="https://fpdesign.com/" > <img itemprop="image" class="normal" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"> <img itemprop="image" class="light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"/> <img itemprop="image" class="dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"/> <img itemprop="image" class="sticky" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNzYgMjAwIiB3aWR0aD0iMzc2IiBoZWlnaHQ9IjIwMCIgZGF0YS11PSJodHRwcyUzQSUyRiUyRmZwZGVzaWduLmNvbSUyRndwLWNvbnRlbnQlMkZ0aGVtZXMlMkZicmlkZ2UlMkZpbWclMkZsb2dvX2JsYWNrLnBuZyIgZGF0YS13PSIzNzYiIGRhdGEtaD0iMjAwIiBkYXRhLWJpcD0iIj48L3N2Zz4=" data-spai="1" alt="Logo"/> <img itemprop="image" class="mobile" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDQiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGdXBsb2FkcyUyRjIwMjUlMkYwNiUyRmZwLWRlc2lnbi1sb2dvLTIuc3ZnIiBkYXRhLXc9IjE5MCIgZGF0YS1oPSI0NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" alt="Logo"/> </a></div></div></div></div></div><nav class="mobile_menu"><ul id="menu-main-menu-1" class=""><li id="mobile-menu-item-21567" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-21305 current_page_item menu-item-has-children active has_sub"><a href="https://fpdesign.com/design-services/" class=" current "><span>services</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span><ul class="sub_menu"><li id="mobile-menu-item-21778" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/industrial-design/" class=""><span>industrial design</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21774" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/brand-design/" class=""><span>brand design</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21773" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/design-consulting/" class=""><span>design consulting</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21777" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/ux-ui-design/" class=""><span>ux / ui design</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21776" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/architectural-design/" class=""><span>architectural design</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21775" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-services/communication-design/" class=""><span>communication design</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-35630" class="menu-item menu-item-type-custom menu-item-object-custom "><a href="https://fpdesign.com/design-services/design-for-startups/" class=""><span>design for startups</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li></ul></li><li id="mobile-menu-item-27305" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children  has_sub">
2502<a href="https://fpdesign.com/works/" class=""><span>case studies</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span><ul class="sub_menu"><li id="mobile-menu-item-27306" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/medical-design/" class=""><span>medical</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-27307" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/laboratory-design/" class=""><span>laboratory</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-27308" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/transportation-design/" class=""><span>transportation</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-27309" class="menu-item menu-item-type-post_type menu-item-object-page ">
2502<a href="https://fpdesign.com/works/industrial-design/" class=""><span>industry</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-27310" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/office-design/" class=""><span>office</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-27311" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/works/home-design/" class=""><span>home</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li></ul></li><li id="mobile-menu-item-22155" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/clients/" class=""><span>clients</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21534" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children  has_sub"><a href="https://fpdesign.com/about/" class=""><span>about</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span><ul class="sub_menu"><li id="mobile-menu-item-34554" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-agency-munich/" class=""><span>munich design studio</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-34680" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-agency-berlin/" class=""><span>berlin design studio</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-35095" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-japan/" class=""><span>kyoto design studio</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-34580" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-zurich/" class=""><span>zurich design hub</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-34709" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-verona/" class=""><span>verona design hub</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-34707" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-belgrade/" class=""><span>belgrade design hub</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-34592" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-mumbai/" class=""><span>mumbai design hub</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-34574" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/design-studio-china/" class=""><span>beijing design hub</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li></ul></li><li id="mobile-menu-item-15654" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/news/" class=""><span>Insights</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-21577" class="menu-item menu-item-type-post_type menu-item-object-page "><a href="https://fpdesign.com/contact/" class=""><span>contact</span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-wpml-ls-63-en" class="menu-item-language menu-item-language-current menu-item wpml-ls-slot-63 wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-has-children  has_sub"><a title="english" href="https://fpdesign.com/design-services/" class=""><span><span class="fp-language-name" lang="en">english</span></span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span><ul class="sub_menu"><li id="mobile-menu-item-wpml-ls-63-de" class="menu-item-language menu-item wpml-ls-slot-63 wpml-ls-item wpml-ls-item-de wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item "><a title="german" href="https://fpdesign.com/leistungen/?lang=de" class=""><span><span class="fp-language-name" lang="en">german</span></span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li><li id="mobile-menu-item-wpml-ls-63-ja" class="menu-item-language menu-item wpml-ls-slot-63 wpml-ls-item wpml-ls-item-ja wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item "><a title="japanese" href="https://fpdesign.com/services/?lang=ja" class=""><span><span class="fp-language-name" lang="en">
2502japanese</span></span></a><span class="mobile_arrow"><i class="fa fa-angle-right"></i><i class="fa fa-angle-down"></i></span></li></ul></li></ul></nav></div></div></header><nav class="fp-social-icons-component"><ul id="menu-social-icons" class=""><li id="menu-item-wpml-ls-65-en" class="menu-item-language menu-item-language-current menu-item wpml-ls-slot-65 wpml-ls-item wpml-ls-item-en wpml-ls-current-language wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-65-en"><a href="https://fpdesign.com/design-services/" aria-current="page"><span><span class="wpml-ls-display">eng</span></span></a></li><li id="menu-item-wpml-ls-65-de" class="menu-item-language menu-item wpml-ls-slot-65 wpml-ls-item wpml-ls-item-de wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-65-de"><a href="https://fpdesign.com/leistungen/?lang=de" title="Switch to ger" aria-label="Switch to ger"><span><span class="wpml-ls-display">ger</span></span></a></li><li id="menu-item-wpml-ls-65-ja" class="menu-item-language menu-item wpml-ls-slot-65 wpml-ls-item wpml-ls-item-ja wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-65-ja"><a href="https://fpdesign.com/services/?lang=ja" title="Switch to jpn" aria-label="Switch to jpn"><span><span class="wpml-ls-display">jpn</span></span></a></li></ul></nav><div class="content content_top_margin" id="main-content" role="main"><div class="content_inner  "><div class="container"><div class="container_inner default_template_holder clearfix page_container_inner" ><div class="wpb-content-wrapper" id="wpb-content-root"><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="wpb_text_column wpb_content_element fp_title" ><div class="wpb_wrapper"><h1 style="font-size: 24px; line-height: 1.2;"><strong style="font-size: 24px; line-height: 1.2;">design services</strong></h1></div></div><div class="vc_empty_space"   style="height: 50px"><span class="vc_empty_space_inner"></span></div><div class="wpb_text_column wpb_content_element fpd-description-block-large" ><div class="wpb_wrapper"><p>f/p design offers industrial design, brand design, ux/ui design, design consulting, architectural design, communication design and dedicated design programs for startups. our international, multidisciplinary teams help organizations develop new products, strengthen brand identity, improve user experiences and bring ideas to market successfully.</p></div></div><div class="vc_empty_space"   style="height: 25px"><span class="vc_empty_space_inner"></span></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><a itemprop="url" href="https://outlook.office365.com/owa/calendar/[email protected]/bookings/" target="_blank" rel="noopener noreferrer" class="qbutton medium white default fp-bridge-compat-button" style="color:#333333;background-color:#f8c424;--fp-qbutton-hover-border:#333333">shape what’s next together</a></div></div></div></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"   style="height: 75px"><span class="vc_empty_space_inner"></span></div><div class="tg-grid-wrapper tg-categories-grid tg-grid-loading tg-txt" id="grid-22589" data-version="2.8.2"><style class="tg-grid-styles" type="text/css">#grid-22589 .tg-nav-color:not(.dots):not(.tg-dropdown-value):not(.tg-dropdown-title):hover,#grid-22589 .tg-nav-color:hover .tg-nav-color,#grid-22589 .tg-page-number.tg-page-current,#grid-22589 .tg-filter.tg-filter-active span{color:#ff6863}#grid-22589 .tg-filter:before,#grid-22589 .tg-filter.tg-filter-active:before{color:#999999}#grid-22589 .tg-dropdown-holder,#grid-22589 .tg-search-inner,#grid-22589 .tg-sorter-order{border:1px solid #DDDDDD}#grid-22589 .tg-search-clear,#grid-22589 .tg-search-clear:hover{border:none;border-left:1px solid #DDDDDD}.tg-txt .tg-nav-font,.tg-txt input[type=text].tg-search{font-size:14px;font-weight:600}.tg-txt .tg-search::-webkit-input-placeholder{font-size:14px}.tg-txt .tg-search::-moz-placeholder{font-size:14px}.tg-txt .tg-search:-ms-input-placeholder{font-size:14px}.tg-txt .tg-icon-left-arrow:before{content:"\e604";font-size:32px;font-weight:100}.tg-txt .tg-icon-right-arrow:before{content:"\e602";font-size:32px;font-weight:100}.tg-txt .tg-icon-dropdown-open:before,.tg-txt .tg-icon-sorter-down:before{content:"\e60a"}.tg-txt .tg-icon-sorter-up:before{content:"\e609"}.tg-txt .tg-search-clear:before{content:"\e611";font-weight:300}.tg-txt .tg-search-icon:before{content:"\e62e";font-size:16px;font-weight:600}#grid-22589 .tg-nav-color,#grid-22589 .tg-search-icon:hover:before,#grid-22589 .tg-search-icon:hover input,#grid-22589 .tg-disabled:hover .tg-icon-left-arrow,#grid-22589 .tg-disabled:hover .tg-icon-right-arrow,#grid-22589 .tg-dropdown-title.tg-nav-color:hover{color:#999999}#grid-22589 input.tg-search:hover{color:#999999 !important}#grid-22589 input.tg-search::-webkit-input-placeholder{color:#999999}#grid-22589 input.tg-search::-moz-placeholder{color:#999999;opacity:1}#grid-22589 input.tg-search:-ms-input-placeholder{color:#999999}
2502.grid-22589 .tg-dropdown-item{color:#777777;background:#ffffff}.grid-22589 .tg-filter-active,.grid-22589 .tg-dropdown-item:hover{color:#444444;background:#f5f6fa}#grid-22589 .tg-slider-bullets li.tg-active-item span{background:#59585b}#grid-22589 .tg-slider-bullets li span{background:#DDDDDD}#grid-22589 .tg-grid-area-top1{text-align:left;padding-bottom:32px}.tg-fp_categories a:not([class*="tg-element-"]),.tg-fp_categories a:not([class*="tg-element-"]):active,.tg-fp_categories a:not([class*="tg-element-"]):focus,.tg-fp_categories [class*="tg-element-"] *:not(del){margin:0;padding:0;color:inherit !important;text-align:inherit;font-size:inherit;font-style:inherit;line-height:inherit;font-weight:inherit;text-transform:inherit;text-decoration:inherit;-webkit-box-shadow:none;box-shadow:none;border:none}.tg-fp_categories [class*="tg-element-"],.tg-fp_categories .tg-item-overlay,.tg-fp_categories .tg-center-holder,.tg-fp_categories .tg-center-inner > *{vertical-align:middle}.tg-fp_categories .tg-item-overlay{position:absolute;display:block;top:0;left:0;bottom:0;right:0;opacity:0;visibility:hidden;-webkit-transition:all 400ms ease !important;-moz-transition:all 400ms ease !important;-ms-transition:all 400ms ease !important;transition:all 400ms ease !important}.tg-fp_categories:not(.tg-force-play):not(.tg-is-playing):hover .tg-item-overlay{opacity:1;visibility:visible}.tg-fp_categories .tg-item-media-holder:hover .tg-item-overlay{background-color:rgba(221,51,51,0.01)}
2502.tg-fp_categories .tg-item-content-holder[data-position="bottom"]{position:relative;min-height:1px;display:block}.tg-fp_categories div.tg-item-media-content{background-color:rgba(0,0,0,0.05)}.tg-fp_categories .tg-element-3{position:relative;font-size:16px;line-height:26px;color:#b8b8b8;font-weight:600;text-transform:lowercase;display:block;margin:0;padding:40px 0 12px}.tg-fp_categories .tg-element-2{position:relative;font-size:14px !important;line-height:26px !important;font-weight:400;display:block;margin:0;padding:0}.tg-fp_categories .tg-element-5{position:relative;font-size:14px;line-height:26px;font-weight:600;display:block;margin:0 0 25px;padding:3px 0 0}.tg-item .tg-dark div,.tg-item .tg-dark h1,.tg-item .tg-dark h1 a,.tg-item .tg-dark h2,.tg-item .tg-dark h2 a,.tg-item .tg-dark h3,.tg-item .tg-dark h3 a,.tg-item .tg-dark h4,.tg-item .tg-dark h4 a,.tg-item .tg-dark h5,.tg-item .tg-dark h5 a,.tg-item .tg-dark h6,.tg-item .tg-dark h6 a,.tg-item .tg-dark a,.tg-item .tg-dark a.tg-link-url,.tg-item .tg-dark i,.tg-item .tg-dark .tg-media-button,.tg-item .tg-dark .tg-item-price span{color:#444444;fill:#444444;stroke:#444444;border-color:#444444}.tg-item .tg-dark p,.tg-item .tg-dark ol,.tg-item .tg-dark ul,.tg-item .tg-dark li{color:#444444;fill:#444444;stroke:#444444;border-color:#444444}.tg-item .tg-dark span,.tg-item .tg-dark .no-liked .to-heart-icon path,.tg-item .tg-dark .empty-heart .to-heart-icon path,.tg-item .tg-dark .tg-item-comment i,.tg-item .tg-dark .tg-item-price del span{color:#444444;fill:#444444;stroke:#444444;border-color:#444444}.tg-item .tg-light div,.tg-item .tg-light h1,.tg-item .tg-light h1 a,.tg-item .tg-light h2,.tg-item .tg-light h2 a,.tg-item .tg-light h3,.tg-item .tg-light h3 a,.tg-item .tg-light h4,.tg-item .tg-light h4 a,.tg-item .tg-light h5,.tg-item .tg-light h5 a,.tg-item .tg-light h6,.tg-item .tg-light h6 a,.tg-item .tg-light a,.tg-item .tg-light a.tg-link-url,.tg-item .tg-light i,.tg-item .tg-light .tg-media-button,.tg-item .tg-light .tg-item-price span{color:#ffffff;fill:#ffffff;stroke:#ffffff;border-color:#ffffff}.tg-item .tg-light p,.tg-item .tg-light ol,.tg-item .tg-light ul,.tg-item .tg-light li{color:#ffffff;fill:#ffffff;stroke:#ffffff;border-color:#ffffff}.tg-item .tg-light span,.tg-item .tg-light .no-liked .to-heart-icon path,.tg-item .tg-light .empty-heart .to-heart-icon path,.tg-item .tg-light .tg-item-comment i,.tg-item .tg-light .tg-item-price del span{color:#ffffff;fill:#ffffff;stroke:#ffffff;border-color:#ffffff}#grid-22589 .tg-item-content-holder{background-color:#ffffff}#grid-22589 .tg-item-overlay{background-color:rgba(255,255,255,0.6)}</style><div class="tg-grid-sizer"></div><div class="tg-gutter-sizer"></div><div class="tg-grid-holder tg-layout-masonry"  data-name="categories"  data-style="masonry" data-row="1" data-layout="vertical" data-rtl="" data-fitrows="1" data-filtercomb="" data-filterlogic="AND" data-filterload ="" data-sortbyload ="" data-orderload ="false" data-fullwidth="" data-fullheight="null" data-gutters="[[320,16],[480,16],[768,32],[980,32],[1200,32],[9999,32]]" data-slider='{"itemNav":"null","swingSpeed":0.1,"cycleBy":"null","cycle":5000,"startAt":1}' data-ratio="2.00" data-cols="[[320,1],[480,1],[768,1],[980,2],[1200,2],[9999,2]]" data-rows="[[320,200],[480,200],[768,220],[980,220],[1200,240],[9999,240]]" data-animation='{&quot;name&quot;:&quot;Fade in&quot;,&quot;visible&quot;:&quot;&quot;,&quot;hidden&quot;:&quot;&quot;}
2502' data-transition="700ms" data-ajaxmethod="load_more" data-ajaxdelay="100" data-preloader="1" data-itemdelay="100" data-gallery="" data-ajax=""><article class="tg-item tg-post-21670 tg-fp_categories f184 tg-item-reveal" data-row="1" data-col="1"><div class="tg-item-inner"><div class="tg-item-media-holder tg-light"><div class="tg-item-media-inner"><img fetchpriority="high" decoding="async" class="tg-item-image" alt="industrial design, brand and corporate design by f/p design" width="1000" height="500" src="https://cdn.shortpixel.ai/spai/q_glossy+ret_img+to_auto/fpdesign.com/wp-content/uploads/2024/02/brand-design-corporate-design-1000x500.png" data-spai-egr="1"></div><div class="tg-item-media-content "><div class="tg-item-overlay" style="background-color:rgba(0,0,0,0.4)"></div><a class="tg-element-absolute tg-element-above" target="_self" href="https://fpdesign.com/design-services/brand-design/"></a></div></div><div class="tg-item-content-holder tg-dark image-format" data-position="bottom"><h2 class="tg-item-title tg-element-3 fp_client_skin_title"><a target="_self" href="https://fpdesign.com/design-services/brand-design/">brand design</a></h2><p class="tg-item-excerpt tg-element-2">a consistent brand design is one of the most important foundations for brand awareness and the success of a company and its products. f/p design develops custom design strategies and design languages to</p><div class="tg-element-5"><a target="_self" href="https://fpdesign.com/design-services/brand-design/">/ read more</a></div><div class="tg-item-clear"></div></div></div></article><article class="tg-item tg-post-21673 tg-fp_categories f184 tg-item-reveal" data-row="1" data-col="1"><div class="tg-item-inner"><div class="tg-item-media-holder tg-dark"><div class="tg-item-media-inner"><img decoding="async" class="tg-item-image" alt="industrial design, professor fritz frenkler of f/p design" width="1000" height="500" src="https://cdn.shortpixel.ai/spai/q_glossy+ret_img+to_auto/fpdesign.com/wp-content/uploads/2021/08/fpdesign-fritz-frenkler-1000x500.png" data-spai-egr="1"></div><div class="tg-item-media-content "><div class="tg-item-overlay"></div><a class="tg-element-absolute tg-element-above" target="_self" href="https://fpdesign.com/design-services/design-consulting/"></a></div></div><div class="tg-item-content-holder tg-dark image-format" data-position="bottom"><h2 class="tg-item-title tg-element-3 fp_client_skin_title"><a target="_self" href="https://fpdesign.com/design-services/design-consulting/">design consulting</a></h2><p class="tg-item-excerpt tg-element-2">f/p design shares knowledge and expertise with your company to develop your in-house design team and support you in brand development. we offer professional design consulting and ensure that your brand</p><div class="tg-element-5"><a target="_self" href="https://fpdesign.com/design-services/design-consulting/">/ read more</a></div><div class="tg-item-clear"></div></div></div></article><article class="tg-item tg-post-21651 tg-fp_categories f184 tg-item-reveal" data-row="1" data-col="1"><div class="tg-item-inner"><div class="tg-item-media-holder tg-dark"><div class="tg-item-media-inner"><img decoding="async" class="tg-item-image" alt="industrial design, morita x800 dental x-ray system" width="1000" height="500" src="https://cdn.shortpixel.ai/spai/q_glossy+ret_img+to_auto/fpdesign.com/wp-content/uploads/2017/03/fpdesign-morita-x800-dental-x-ray-12-w-1000x500.jpg" data-spai-egr="1"></div><div class="tg-item-media-content "><div class="tg-item-overlay"></div><a class="tg-element-absolute tg-element-above" target="_self" href="https://fpdesign.com/industrial-design/"></a></div></div><div class="tg-item-content-holder tg-dark image-format" data-position="bottom"><h2 class="tg-item-title tg-element-3 fp_client_skin_title"><a target="_self" href="https://fpdesign.com/industrial-design/">industrial design</a></h2><p class="tg-item-excerpt tg-element-2">modern product design has to meet a variety of requirements. f/p design supports companies in translating product standards into sustainable options for different markets.</p><div class="tg-element-5"><a target="_self" href="https://fpdesign.com/industrial-design/">/ read more</a></div><div class="tg-item-clear"></div></div></div></article><article class="tg-item tg-post-21657 tg-fp_categories f184 tg-item-reveal" data-row="1" data-col="1"><div class="tg-item-inner"><div class="tg-item-media-holder tg-light"><div class="tg-item-media-inner"><img decoding="async" class="tg-item-image" alt="industrial design, ux and ui design by f/p design" width="1000" height="500" src="https://cdn.shortpixel.ai/spai/q_glossy+ret_img+to_auto/fpdesign.com/wp-content/uploads/2017/01/fpdesign-work-overview-interface-01-1000x500.jpg" data-spai-egr="1"></div><div class="tg-item-media-content "><div class="tg-item-overlay" style="background-color:rgba(0,0,0,0.4)"></div><a class="tg-element-absolute tg-element-above" target="_self" href="https://fpdesign.com/design-services/ux-ui-design/"></a></div></div><div class="tg-item-content-holder tg-dark image-format" data-position="bottom"><h2 class="tg-item-title tg-element-3 fp_client_skin_title"><a target="_self" href="https://fpdesign.com/design-services/ux-ui-design/">ux / ui design</a></h2><p class="tg-item-excerpt tg-element-2">the safe and easy handling of complex systems requires understandable interfaces. f/p design develops user interfaces and user experiences (ui / ux design) with a focus on usability to make your products</p><div class="tg-element-5"><a target="_self" href="https://fpdesign.com/design-services/ux-ui-design/">/ read more</a></div><div class="tg-item-clear"></div></div></div></article><article class="tg-item tg-post-21659 tg-fp_categories f184 tg-item-reveal" data-row="1" data-col="1"><div class="tg-item-inner"><div class="tg-item-media-holder tg-light"><div class="tg-item-media-inner"><img decoding="async" class="tg-item-image" alt="industrial design, morita showroom design by f/p design" width="1000" height="500" src="https://cdn.shortpixel.ai/spai/q_glossy+ret_img+to_auto/fpdesign.com/wp-content/uploads/2016/11/fpdesign-morita-showroom-01-1000x500.jpg" data-spai-egr="1"></div><div class="tg-item-media-content "><div class="tg-item-overlay" style="background-color:rgba(0,0,0,0.4)"></div><a class="tg-element-absolute tg-element-above" target="_self" href="https://fpdesign.com/design-services/architectural-design/"></a></div></div><div class="tg-item-content-holder tg-dark image-format" data-position="bottom"><h2 class="tg-item-title tg-element-3 fp_client_skin_title"><a target="_self" href="https://fpdesign.com/design-services/architectural-design/">architectural design</a></h2><p class="tg-item-excerpt tg-element-2">architectural design is an important element of corporate identity. f/p design offers interior design, showroom design, retail design and exhibition stand design suitable for your company for a holistic brand</p><div class="tg-element-5"><a target="_self" href="https://fpdesign.com/design-services/architectural-design/">/ read more</a></div><div class="tg-item-clear"></div></div></div></article><article class="tg-item tg-post-21668 tg-fp_categories f184 tg-item-reveal" data-row="1" data-col="1"><div class="tg-item-inner"><div class="tg-item-media-holder tg-dark"><div class="tg-item-media-inner"><img decoding="async" class="tg-item-image" alt="industrial design, communication design by f/p design" width="1000" height="500" src="https://cdn.shortpixel.ai/spai/q_glossy+ret_img+to_auto/fpdesign.com/wp-content/uploads/2021/10/fpdesign-work-overview-communication-02b-1-1000x500.jpg" data-spai-egr="1"></div><div class="tg-item-media-content "><div class="tg-item-overlay"></div><a class="tg-element-absolute tg-element-above" target="_self" href="https://fpdesign.com/design-services/communication-design/"></a></div></div><div class="tg-item-content-holder tg-dark image-format" data-position="bottom"><h2 class="tg-item-title tg-element-3 fp_client_skin_title"><a target="_self" href="https://fpdesign.com/design-services/communication-design/">communication design</a></h2><p class="tg-item-excerpt tg-element-2">communication media with a strong corporate design underline the corporate identity of a company and help to achieve a clear recognition value. f/p design creates unique communication concepts and tools</p><div class="tg-element-5"><a target="_self" href="https://fpdesign.com/design-services/communication-design/">/ read more</a></div><div class="tg-item-clear"></div></div></div></article></div><div class="tg-grid-preloader"><style class="tg-grid-preloader-styles" type="text/css">@-webkit-keyframes ball-beat{50%{opacity:.2;-webkit-transform:scale(.75);transform:scale(.75)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes ball-beat{50%{opacity:.2;-webkit-transform:scale(.75);transform:scale(.75)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.ball-beat>div{background-color:#fff;width:15px;height:15px;border-radius:100%;margin:2px;display:inline-block;-webkit-animation:ball-beat .7s 0s infinite linear;animation:ball-beat .7s 0s infinite linear}.ball-beat>div:nth-child(2n-1){-webkit-animation-delay:-.35s!important;animation-delay:-.35s!important}#grid-22589 .tg-grid-preloader-inner>div{background:#f8c424}#grid-22589 .tg-grid-preloader-scale{transform:scale(0.78)}</style><div class="tg-grid-preloader-holder"><div class="tg-grid-preloader-scale"><div class="tg-grid-preloader-inner ball-beat"><div></div><div></div><div></div></div></div></div></div></div></div></div></div></div><div class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"   style="height: 65px"><span class="vc_empty_space_inner"></span></div><div class="wpb_text_column wpb_content_element fpd-description-block-large" ><div class="wpb_wrapper"><h2 style="margin-bottom: 24px;"><span style="color: #333333; font-size: 24px; line-height: 1.2;"><strong>design for startups</strong></span></h2><p><span style="color: #333333;">focused design support for startups from pre-seed to scale-up: workshops, industrial and digital product development, ux/ui, brand development and design coaching, adapted to your stage, technical requirements and budget.</sp
2502an></p></div></div><div class="vc_empty_space"   style="height: 20px"><span class="vc_empty_space_inner"></span></div><a itemprop="url" href="https://fpdesign.com/design-services/design-for-startups/" target="_self" class="qbutton medium white default fp-bridge-compat-button" style="color:#333333;background-color:#f8c424;--fp-qbutton-hover-border:#333333">explore design for startups</a></div></div></div></div></div></div></div></div></div><footer ><div class="footer_inner clearfix"><div class="footer_top_holder"><div class="footer_top"><div class="container"><div class="container_inner"><div class="four_columns clearfix"><div class="column1 footer_col1"><div class="column_inner"></div></div><div class="column2 footer_col2"><div class="column_inner"></div></div><div class="column3 footer_col3"><div class="column_inner"></div></div><div class="column4 footer_col4"><div class="column_inner"></div></div></div></div></div></div></div><div class="footer_bottom_holder"><div class="container"><div class="container_inner"><div class="two_columns_50_50 footer_bottom_columns clearfix"><div class="column1 footer_bottom_column"><div class="column_inner"><div class="footer_bottom"><div class="textwidget"><p><a href="https://fpdesign.com/all-works/">all works</a> . <a href="https://fpdesign.com/design-awards/">awards</a> . <a href="https://fpdesign.com/legal-notice">legal notice</a> . <a href="https://fpdesign.com/privacy/">privacy</a></p></div> <span class="q_social_icon_holder normal_social fp-bridge-compat-social" style="--fp-social-hover:#000000"><a itemprop="url" href="https://www.instagram.com/fp_design/" target="_blank" rel="noopener noreferrer"><i class="qode_icon_font_awesome fa fa-instagram simple_social" style="color:#000000;font-size:25px" aria-hidden="true"></i><span class="screen-reader-text">instagram</span></a></span><span class="q_social_icon_holder normal_social fp-bridge-compat-social" style="--fp-social-hover:#000000"><a itemprop="url" href="https://www.linkedin.com/company/fpdesign-studio/posts/?feedView=all" target="_blank" rel="noopener noreferrer"><i class="qode_icon_font_awesome fa fa-linkedin simple_social" style="color:#000000;font-size:25px" aria-hidden="true"></i><span class="screen-reader-text">linkedin</span></a></span><span class="q_social_icon_holder normal_social fp-bridge-compat-social" style="--fp-social-hover:#000000"><a itemprop="url" href="https://www.facebook.com/fpdesignstudios" target="_blank" rel="noopener noreferrer"><i class="qode_icon_font_awesome fa fa-facebook simple_social" style="color:#000000;font-size:25px" aria-hidden="true"></i><span class="screen-reader-text">facebook</span></a></span></div></div></div><div class="column2 footer_bottom_column"><div class="column_inner"><div class="footer_bottom"></div></div></div></div></div></div></div></div></footer></div></div> 
2502<script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/bridge-child\/*","\/wp-content\/themes\/bridge\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script>
2502 <div id="cookie-law-info-bar" data-nosnippet="true"><span><div class="cli-bar-container cli-style-v2"><div class="cli-bar-message">We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.</div><div class="cli-bar-btn_container"><a role='button' class="medium cli-plugin-button cli-plugin-main-button cli_settings_button" style="margin:0px 5px 0px 0px">Cookie Settings</a><a id="wt-cli-accept-all-btn" role='button' data-cli_action="accept_all" class="wt-cli-element medium cli-plugin-button wt-cli-accept-all-btn cookie_action_close_header cli_action_button">Accept All</a></div></div></span></div><div id="cookie-law-info-again" data-nosnippet="true"><span id="cookie_hdr_showagain">Manage consent</span></div><div class="cli-modal" data-nosnippet="true" id="cliSettingsPopup" tabindex="-1" role="dialog" aria-labelledby="cliSettingsPopup" aria-hidden="true"><div class="cli-modal-dialog" role="document"><div class="cli-modal-content cli-bar-popup"> <button type="button" class="cli-modal-close" id="cliModalClose"> <svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg> <span class="wt-cli-sr-only">Close</span> </button><div class="cli-modal-body"><div class="cli-container-fluid cli-tab-container"><div class="cli-row"><div class="cli-col-12 cli-align-items-stretch cli-px-0"><div class="cli-privacy-overview"><h4>Privacy Overview</h4><div class="cli-privacy-content"><div class="cli-privacy-content-text">This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.</div></div> <a class="cli-privacy-readmore" aria-label="Show more" role="button" data-readmore-text="Show more" data-readless-text="Show less"></a></div></div><div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container"><div class="cli-tab-section"><div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="necessary" data-toggle="cli-toggle-tab"> Necessary </a><div class="wt-cli-necessary-checkbox"> <input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-necessary" data-id="checkbox-necessary" checked="checked" /> <label class="form-check-label" for="wt-cli-checkbox-necessary">Necessary</label></div> <span class="cli-necessary-caption">Always Enabled</span></div><div class="cli-tab-content"><div class="cli-tab-pane cli-fade" data-id="necessary"><div class="wt-cli-cookie-description"> Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.<table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duration</th><th class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-analytics</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-necessary</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-performance</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">viewed_cookie_policy</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.</td></tr></tbody></table></div></div></div></div><div class="cli-tab-section"><div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="performance" data-toggle="cli-toggle-tab"> Performance </a><div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-performance" class="cli-user-preference-checkbox" data-id="checkbox-performance" checked='checked' /> <label for="wt-cli-checkbox-performance" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Performance</span></label></div></div><div class="cli-tab-content"><div class="cli-tab-pane cli-fade" data-id="performance"><div class="wt-cli-cookie-description"> Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.<table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duration</th><th class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gat</td><td class="cookielawinfo-column-3">1 minute</td><td class="cookielawinfo-column-4">This cookie is installed by Google Universal Analytics to restrain request rate and thus limit the collection of data on high traffic sites.</td></tr></tbody></table></div></div></div></div><div class="cli-tab-section"><div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="analytics" data-toggle="cli-toggle-tab"> Analytics </a><div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-analytics" class="cli-user-preference-checkbox" data-id="checkbox-analytics" checked='checked' /> <label for="wt-cli-checkbox-analytics" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Analytics</span></label></div></div><div class="cli-tab-content"><div class="cli-tab-pane cli-fade" data-id="analytics"><div class="wt-cli-cookie-description"> Analytical cookies are used to understand how visitors interact with the website. These 
2502cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.<table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duration</th><th class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_ga</td><td class="cookielawinfo-column-3">2 years</td><td class="cookielawinfo-column-4">The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gid</td><td class="cookielawinfo-column-3">1 day</td><td class="cookielawinfo-column-4">Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.</td></tr></tbody></table></div></div></div></div></div></div></div></div><div class="cli-modal-footer"><div class="wt-cli-element cli-container-fluid cli-tab-container"><div class="cli-row"><div class="cli-col-12 cli-align-items-stretch cli-px-0"><div class="cli-tab-footer wt-cli-privacy-overview-actions"> <a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">SAVE &amp; ACCEPT</a></div><div class="wt-cli-ckyes-footer-section"><div class="wt-cli-ckyes-brand-logo">Powered by <a href="https://www.cookieyes.com/"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDAgNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iNjAiIGRhdGEtdT0iaHR0cHMlM0ElMkYlMkZmcGRlc2lnbi5jb20lMkZ3cC1jb250ZW50JTJGcGx1Z2lucyUyRmNvb2tpZS1sYXctaW5mbyUyRmxlZ2FjeSUyRnB1YmxpYyUyRmltYWdlcyUyRmxvZ28tY29va2lleWVzLnN2ZyIgZGF0YS13PSIzMDAiIGRhdGEtaD0iNjAiIGRhdGEtYmlwPSIiPjwvc3ZnPg==" data-spai="1" alt="CookieYes Logo"></a></div></div></div></div></div></div></div></div></div><div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div><div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div><div class="wpfm-floating-wh-wrapper " ><div class="wpfm-menu-wrapper wpfm-4808 wpfm-template-2" template-type="template-2" menu-id="1" data-scroll-call="0" data-scroll-value="100" data-pos-offset-var="0" 
2503 0><nav id="wpfm-floating-menu-nav" class="wpfm-menu-nav wpfm wpfm-position-right"><ul><li class=" wpfm_fp " data-li-key="1"> <a title="" class="wpfm-menu-link" href="tel:+498990901590" target="_blank" target="_blank" rel=" "> <span class='wpfm-icon-block wpfm-image-icon-block'> <img class="wpfm-image-icon" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNjAgMzYwIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjM2MCIgZGF0YS11PSJodHRwcyUzQSUyRiUyRmZwZGVzaWduLmNvbSUyRndwLWNvbnRlbnQlMkZ1cGxvYWRzJTJGMjAyNSUyRjA2JTJGZnAtcGhvbmUtbGFyZ2Uuc3ZnIiBkYXRhLXc9IjM2MCIgZGF0YS1oPSIzNjAiIGRhdGEtYmlwPSIiPjwvc3ZnPg==" data-spai="1" > </span> <span class='wpfm-menu-name-tooltip-wrap'> <span class='name wpfm-menu-name'> +49 89 9090 1590 </span> </span> </a></li><li class=" wpfm_fp " data-li-key="2"> <a title="" class="wpfm-menu-link" href="mailto:[email protected]"   rel=" "> <span class='wpfm-icon-block wpfm-image-icon-block'> <img class="wpfm-image-icon" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNjQgMzY0IiB3aWR0aD0iMzY0IiBoZWlnaHQ9IjM2NCIgZGF0YS11PSJodHRwcyUzQSUyRiUyRmZwZGVzaWduLmNvbSUyRndwLWNvbnRlbnQlMkZ1cGxvYWRzJTJGMjAyNSUyRjA2JTJGZnAtbWFpbC1sYXJnZS5zdmciIGRhdGEtdz0iMzY0IiBkYXRhLWg9IjM2NCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" > </span> <span class='wpfm-menu-name-tooltip-wrap'> <span class='name wpfm-menu-name'> [email protected] </span> </span> </a></li><li class=" wpfm_fp " data-li-key="3"> <a title="" class="wpfm-menu-link" href="https://outlook.office365.com/book/[email protected]" target="_blank" target="_blank" rel=" "> <span class='wpfm-icon-block wpfm-image-icon-block'> <img class="wpfm-image-icon" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNjAgMzYwIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjM2MCIgZGF0YS11PSJodHRwcyUzQSUyRiUyRmZwZGVzaWduLmNvbSUyRndwLWNvbnRlbnQlMkZ1cGxvYWRzJTJGMjAyNSUyRjA2JTJGZnAtbWVldGluZy1sYXJnZS5zdmciIGRhdGEtdz0iMzYwIiBkYXRhLWg9IjM2MCIgZGF0YS1iaXA9IiI+PC9zdmc+" data-spai="1" > </span> <span class='wpfm-menu-name-tooltip-wrap'> <span class='name wpfm-menu-name'> get in touch </span> </span> </a></li></ul></nav><div class="wpfm-menu-additional-content-wrap"></div><div class="wpfm-menu-additional-content-overlay" id="wpfm-menu-additional-content-overlay-1"></div></div><style type="text/css">
2503/* Font Icon Background*/
2504            .wpfm-4808.wpfm-template-1 ul li,
2505        .wpfm-4808.wpfm-template-1 ul li .wpfm-icon-block,
2506        .wpfm-4808.wpfm-template-1 .wpfm-position-right ul li:hover .wpfm-icon-block, 
2507        .wpfm-4808.wpfm-template-1 .wpfm-position-top-right ul li:hover .wpfm-icon-block,
2508        .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-right ul li:hover .wpfm-icon-block,
2509        .wpfm-4808.wpfm-template-1 .wpfm-position-top-left ul li.wpfm-title-hidden:hover .wpfm-icon-block, 
2510        .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-left ul li.wpfm-title-hidden:hover .wpfm-icon-block,
2511        .wpfm-4808.wpfm-template-1 .wpfm-position-left ul li.wpfm-title-hidden:hover .wpfm-icon-block,
2512        .wpfm-4808.wpfm-template-1 .wpfm-position-top-right ul li.wpfm-title-hidden:hover .wpfm-icon-block ,
2513        .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-right ul li.wpfm-title-hidden:hover .wpfm-icon-block,
2514        .wpfm-4808.wpfm-template-1 .wpfm-position-right ul li.wpfm-title-hidden:hover .wpfm-icon-block,
2515        .wpfm-4808.wpfm-template-1 .wpfm-position-left ul li:hover .wpfm-icon-block,
2516        .wpfm-4808.wpfm-template-1 .wpfm-position-top-left ul li:hover .wpfm-icon-block,
2517        .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-left ul li:hover .wpfm-icon-block,
2518        .wpfm-4808.wpfm-template-2 .wpfm-menu-nav.wpfm-position-left ul li,
2519        .wpfm-4808.wpfm-template-2 .wpfm-menu-nav.wpfm-position-top-left ul li,
2520        .wpfm-4808.wpfm-template-2 .wpfm-menu-nav.wpfm-position-bottom-left ul li,
2521        .wpfm-4808.wpfm-template-2 .wpfm-menu-nav.wpfm-position-right ul li,
2522        .wpfm-4808.wpfm-template-2 .wpfm-menu-nav.wpfm-position-top-right ul li,
2523        .wpfm-4808.wpfm-template-2 .wpfm-menu-nav.wpfm-position-bottom-right ul li,
2524        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul > li > a span.wpfm-icon-block,
2525        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-left ul > li > a span.wpfm-icon-block,
2526        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-left ul > li > a span.wpfm-icon-block,
2527        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul li:hover,
2528        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-left ul li:hover,
2529        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-left ul li:hover,
2530        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul > li > a span.wpfm-icon-block,
2531        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul > li > a span.wpfm-icon-block,
2532        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-right ul > li > a span.wpfm-icon-block,
2533        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-right ul > li > a span.wpfm-icon-block,
2534        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul li:hover,
2535        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-right ul li:hover,
2536        .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-right ul li:hover,
2537        .wpfm-4808.wpfm-template-4 ul li .wpfm-icon-block,
2538        .wpfm-4808.wpfm-template-7 ul > li > a,
2539        .wpfm-4808.wpfm-template-8 .wpfm-menu-nav a .wpfm-icon-block, 
2540        .wpfm-4808.wpfm-template-8 .wpfm-menu-nav a::before,
2541        .wpfm-4808.wpfm-template-9 .wpfm-menu-nav a .wpfm-icon-block, 
2542        .wpfm-4808.wpfm-template-9 .wpfm-menu-nav a::before,
2543        .wpfm-4808.wpfm-template-10 ul li a span, 
2544        .wpfm-4808.wpfm-template-10 ul li:before,
2545        .wpfm-4808.wpfm-template-12 .wpfm-menu-nav ul li a,
2546        .wpfm-4808.wpfm-template-13 .wpfm-menu-nav ul li a,
2547        .wpfm-4808.wpfm-template-14 .wpfm-menu-link .wpfm-icon-block img, 
2548        .wpfm-4808.wpfm-template-15 .wpfm-menu-link .wpfm-icon-block img, 
2549        .wpfm-4808.wpfm-template-14 .wpfm-menu-link .wpfm-icon-block i,
2550        .wpfm-4808.wpfm-template-15 .wpfm-menu-link .wpfm-icon-block i,
2551        .wpfm-4808.wpfm-template-14 .wpfm-menu-nav.wpfm-position-top-left .wpfm-menu-name,
2552        .wpfm-4808.wpfm-template-14 .wpfm-menu-nav.wpfm-position-left .wpfm-menu-name,
2553        .wpfm-4808.wpfm-template-14 .wpfm-menu-nav.wpfm-position-bottom-left .wpfm-menu-name,
2554        .wpfm-4808.wpfm-template-14 .wpfm-menu-name,
2555        .wpfm-4808.wpfm-template-15 .wpfm-menu-name,
2556        .wpfm-4808.wpfm-template-16 .wpfm-menu-nav .wpfm-nav-strech-trigger,
2557        .wpfm-4808.wpfm-template-16 .wpfm-menu-nav ul li a,
2558        .wpfm-4808.wpfm-template-16 .wpfm-position-bottom-right .wpfm-menu-name,
2559        .wpfm-4808.wpfm-template-16 .wpfm-position-right .wpfm-menu-name,
2560        .wpfm-4808.wpfm-template-16 .wpfm-position-top-right .wpfm-menu-name,
2561        .wpfm-4808.wpfm-template-17 .wpfm-menu-nav .wpfm-nav-hover-trigger,
2562        .wpfm-4808.wpfm-template-17 .wpfm-menu-link .wpfm-icon-block img,
2563        .wpfm-4808.wpfm-template-17 .wpfm-menu-link .wpfm-icon-block i,
2564        .wpfm-4808.wpfm-template-17 .wpfm-menu-name,
2565        .wpfm-4808.wpfm-template-18 li a.wpfm-menu-link .wpfm-icon-block,
2566        .wpfm-4808.wpfm-template-20 li a.wpfm-menu-link .wpfm-icon-block
2567        { 
2568            background: #f8c424;                    
2569        }
2570    
2571    .wpfm-template-19 .wpfm-menu-nav.wpfm-position-top-right li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap::before,
2572    .wpfm-template-19 .wpfm-menu-nav.wpfm-position-right li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap::before,
2573    .wpfm-template-19 .wpfm-menu-nav.wpfm-position-bottom-right li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap::before
2574    {
2575        border-left: 6px solid ;
2576    }
2577
2578    .wpfm-template-19 .wpfm-menu-nav.wpfm-position-top-left li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap::before,
2579    .wpfm-template-19 .wpfm-menu-nav.wpfm-position-left li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap::before,
2580    .wpfm-template-19 .wpfm-menu-nav.wpfm-position-bottom-left li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap::before{
2581        border-right: 6px solid ;
2582    }
2583    /* Menu Title Line for template 7 */
2584    .wpfm-4808 .wpfm-template-7 span.name.wpfm-menu-name:after
2585    {
2586        border-bottom: 2px solid ;
2587    }
2588    /* Menu Background for template 5,6,8,9. New: Template 19 */
2589    .wpfm-4808.wpfm-template-5 ul,.wpfm-template-5 .wpfm-nav-strech-trigger span,
2590    .wpfm-4808.wpfm-template-6 .wpfm-menu-nav ul:before,.wpfm-template-6 .wpfm-nav-strech-trigger span,
2591    .wpfm-4808.wpfm-template-6 .wpfm-menu-name,
2592    .wpfm-4808.wpfm-template-7 span.name.wpfm-menu-name:after,
2593    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav:before,
2594    .wpfm-4808.wpfm-template-9 .wpfm-menu-nav .wpfm-nav:before,
2595    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul, 
2596    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav ul,
2597    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav ul
2598    {
2599        background: ;
2600    }
2601
2602    /* For Title Color, Font Family*/   
2603    .wpfm-4808.wpfm-template-1 .wpfm-menu-nav.wpfm-position-right ul li > a:hover > span.wpfm-menu-name,
2604    .wpfm-4808.wpfm-template-1 .wpfm-menu-nav.wpfm-position-top-right ul li > a:hover > span.wpfm-menu-name,
2605    .wpfm-4808.wpfm-template-1 .wpfm-menu-nav.wpfm-position-bottom-right ul li > a:hover > span.wpfm-menu-name,
2606    .wpfm-4808.wpfm-template-1 ul li .wpfm-menu-name,
2607    .wpfm-4808.wpfm-template-2 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2608    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul li a span.wpfm-menu-name,
2609    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul li a span.wpfm-menu-name,
2610    .wpfm-4808.wpfm-template-4 ul li .wpfm-menu-name,.wpfm-template-3 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2611    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2612    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2613    .wpfm-4808.wpfm-template-6 .wpfm-menu-name,
2614    .wpfm-4808.wpfm-template-7 .wpfm-menu-name,
2615    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav:hover .wpfm-menu-name,
2616    .wpfm-4808.wpfm-template-9 .wpfm-menu-nav .wpfm-menu-name,
2617    .wpfm-4808.wpfm-template-10 .wpfm-menu-nav ul li .wpfm-tooltip span.wpfm-menu-name,
2618    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2619    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper span.wpfm-menu-name,
2620    .wpfm-4808.wpfm-template-13 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper span.wpfm-menu-name
2621    { 
2622        color:#333333;
2623        font-family:default; 
2624    }
2625    /* For Title Font Size, Text Transformation */  
2626    .wpfm-4808.wpfm-template-1 a span.wpfm-menu-name,
2627    .wpfm-4808.wpfm-template-2 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2628    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2629    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2630    .wpfm-4808.wpfm-template-4 ul li .wpfm-menu-name,
2631    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2632    .wpfm-4808.wpfm-template-6 .wpfm-menu-name,
2633    .wpfm-4808.wpfm-template-7 .wpfm-menu-name,
2634    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav:hover .wpfm-menu-name,
2635    .wpfm-4808.wpfm-template-9.wpfm-position-left  .wpfm-nav:hover .wpfm-menu-name,
2636    .wpfm-4808.wpfm-template-9.wpfm-position-top-left  .wpfm-nav:hover .wpfm-menu-name,
2637    .wpfm-4808.wpfm-template-9.wpfm-position-bottom-left  .wpfm-nav:hover .wpfm-menu-name,
2638    .wpfm-4808.wpfm-template-9.wpfm-position-right  .wpfm-nav:hover .wpfm-menu-name,
2639    .wpfm-4808.wpfm-template-9.wpfm-position-top-right  .wpfm-nav:hover .wpfm-menu-name,
2640    .wpfm-4808.wpfm-template-9.wpfm-position-bottom-right  .wpfm-nav:hover .wpfm-menu-name,
2641    .wpfm-4808.wpfm-template-10 .wpfm-menu-nav ul li .wpfm-tooltip span.wpfm-menu-name,
2642    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li a span.wpfm-menu-name,
2643    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper span.wpfm-menu-name,
2644    .wpfm-4808.wpfm-template-13 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper span.wpfm-menu-name
2645    { 
2646        font-size:14px;
2647        text-transform:lowercase;
2648    }
2649    /* For Icon Size */   
2650    .wpfm-4808.wpfm-template-1 .wpfm-menu-nav ul li > a .wpfm-icon-block i,
2651    .wpfm-4808.wpfm-template-2 .wpfm-menu-nav ul li a span i,
2652    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav ul li a span i,
2653    .wpfm-4808.wpfm-template-4 .wpfm-menu-nav ul li a span i,
2654    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a span.wpfm-icon-block i,
2655    .wpfm-4808.wpfm-template-6 .wpfm-icon-block i,.wpfm-template-6 .wpfm-nav-close-trigger span,
2656    .wpfm-4808.wpfm-template-6 .wpfm-nav-strech-trigger span,
2657    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav a .wpfm-icon-block i,
2658    .wpfm-4808.wpfm-template-9 .wpfm-menu-nav a .wpfm-icon-block i,
2659    .wpfm-4808.wpfm-template-10 .wpfm-tooltip .wpfm-icon-block i,
2660    .wpfm-4808.wpfm-template-11 .wpfm-tooltip .wpfm-icon-block i
2661    {
2662        font-size:26px;
2663    }
2664    .wpfm-4808.wpfm-template-1 .wpfm-menu-nav ul li a img,
2665    .wpfm-4808.wpfm-template-2 .wpfm-menu-nav ul li a span img.wpfm-image-icon,
2666    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav ul li a span img.wpfm-image-icon,
2667    .wpfm-4808.wpfm-template-4 .wpfm-menu-nav ul li a span img.wpfm-image-icon,
2668    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a span.wpfm-icon-block img.wpfm-image-icon,
2669    .wpfm-4808.wpfm-template-6 .wpfm-icon-block img,
2670    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav a .wpfm-icon-block img,
2671    .wpfm-4808.wpfm-template-9 .wpfm-menu-nav a .wpfm-icon-block img,
2672    .wpfm-4808.wpfm-template-10 .wpfm-tooltip .wpfm-icon-block img,
2673    .wpfm-4808.wpfm-template-11 .wpfm-tooltip .wpfm-icon-block img
2674    {
2675        width:26px !important;
2676    }
2677    /* For height width of icon hover transform for template 7 */
2678    .wpfm-4808.wpfm-template-7 ul > li > a:hover,
2679    .wpfm-4808.wpfm-template-7 ul > li.wpfm-active-nav a
2680    { 
2681        background: ;
2682        -webkit-transform:scale(1) translate3d(0,0,0);
2683        transform:scale(1) translate3d(0,0,0);
2684    }
2685            .wpfm-4808.wpfm-template-18 li.wpfm-active-nav a.wpfm-menu-link .wpfm-icon-block, 
2686        .wpfm-4808.wpfm-template-18 li a.wpfm-menu-link:hover .wpfm-icon-block {
2687            background: #1abc9c !important;
2688        }
2689    
2690    /* Title Background Color For Template 4,6 and 10 */
2691    .wpfm-4808.wpfm-template-4 .wpfm-menu-nav ul li >a:hover >span.wpfm-menu-name,
2692    .wpfm-4808.wpfm-template-10 .wpfm-tooltip,
2693    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper,
2694    .wpfm-4808.wpfm-template-7 .wpfm-menu-name,
2695    .wpfm-4808.wpfm-template-13 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper
2696    { 
2697        background:; 
2698    }
2699    .wpfm-4808.wpfm-template-7 span.name.wpfm-menu-name:after{    
2700        border-bottom: 2px solid ;
2701    }
2702    /* For Icon margin */  
2703    .wpfm-4808.wpfm-template-1 ul li,
2704    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul li,
2705    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-left ul li,
2706    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-left ul li,
2707    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul li,
2708    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-right ul li,
2709    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-right ul li,
2710    .wpfm-4808.wpfm-template-4 ul li,
2711    .wpfm-4808.wpfm-template-4 ul li a,
2712    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a,
2713    .wpfm-4808.wpfm-template-6 ul li a,
2714    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav a,
2715    .wpfm-4808.wpfm-template-9 .wpfm-menu-nav a,
2716    .wpfm-4808.wpfm-template-14 nav ul li,
2717    .wpfm-4808.wpfm-template-15 nav ul li,
2718    .wpfm-4808.wpfm-template-17 nav ul li,
2719    .wpfm-4808.wpfm-template-18 nav ul li,
2720    .wpfm-4808.wpfm-template-19 li,
2721    .wpfm-4808.wpfm-template-20 nav ul li
2722    
2723    {
2724        margin-bottom:px;
2725    }
2726    /** Tooltip Title */
2727    .wpfm-4808.wpfm-template-1 ul li > .wpfm-tootltip-title, 
2728    .wpfm-4808.wpfm-template-2 ul li > .wpfm-tootltip-title, 
2729    .wpfm-4808.wpfm-template-3 ul li > .wpfm-tootltip-title, 
2730    .wpfm-4808.wpfm-template-4 ul li > .wpfm-tootltip-title,
2731    .wpfm-4808.wpfm-template-8.wpfm-position-right .wpfm-tootltip-title,
2732    .wpfm-4808.wpfm-template-8.wpfm-position-top-right .wpfm-tootltip-title,
2733    .wpfm-4808.wpfm-template-8.wpfm-position-bottom-right .wpfm-tootltip-title,
2734    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li > span.wpfm-tootltip-title,
2735    .wpfm-4808.wpfm-template-6 .wpfm-menu-nav ul li  span.wpfm-tootltip-title,
2736    .wpfm-4808.wpfm-template-7 ul li > .wpfm-tootltip-title,
2737    .wpfm-4808.wpfm-template-8 .wpfm-tootltip-title,
2738    .wpfm-4808.wpfm-template-9 .wpfm-tootltip-title,
2739    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li .wpfm-tootltip-title,
2740    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav ul li .wpfm-tootltip-title,
2741    .wpfm-4808.wpfm-template-13 .wpfm-menu-nav ul li .wpfm-tootltip-title,
2742    .wpfm-4808.wpfm-template-14 nav ul li .tooltip.wpfm-tootltip-title,
2743    .wpfm-4808.wpfm-template-15 nav ul li .tooltip.wpfm-tootltip-title,
2744    .wpfm-4808.wpfm-template-16 .wpfm-position-top-right .tooltip,
2745    .wpfm-4808.wpfm-template-16 .wpfm-position-right .tooltip,
2746    .wpfm-4808.wpfm-template-16 .wpfm-position-bottom-right .tooltip,
2747    .wpfm-4808.wpfm-template-17 nav ul li .tooltip.wpfm-tootltip-title,
2748    .wpfm-4808.wpfm-template-18 .wpfm-menu-nav.wpfm-position-top-left .tooltip,
2749    .wpfm-4808.wpfm-template-18 .wpfm-menu-nav.wpfm-position-left .tooltip,
2750    .wpfm-4808.wpfm-template-18 .wpfm-menu-nav.wpfm-position-bottom-left .tooltip,
2751    .wpfm-4808.wpfm-template-18 .wpfm-menu-nav.wpfm-position-top-right .tooltip,
2752    .wpfm-4808.wpfm-template-18 .wpfm-menu-nav.wpfm-position-right .tooltip,
2753    .wpfm-4808.wpfm-template-18 .wpfm-menu-nav.wpfm-position-bottom-right .tooltip,
2754    .wpfm-4808.wpfm-template-20 .wpfm-menu-nav.wpfm-position-top-left ul li .tooltip,
2755    .wpfm-4808.wpfm-template-20 .wpfm-menu-nav.wpfm-position-left ul li .tooltip,
2756    .wpfm-4808.wpfm-template-20 .wpfm-menu-nav.wpfm-position-bottom-left ul li .tooltip,
2757    .wpfm-4808.wpfm-template-20 .wpfm-menu-nav.wpfm-position-top-right ul li .tooltip,
2758    .wpfm-4808.wpfm-template-20 .wpfm-menu-nav.wpfm-position-right ul li .tooltip,
2759    .wpfm-4808.wpfm-template-20 .wpfm-menu-nav.wpfm-position-bottom-right ul li .tooltip
2760    {
2761        color: #333333;
2762        background: ;
2763        font-size: 8px;
2764        font-family: default;
2765        text-transform: uppercase;
2766    }
2767
2768    .wpfm-template-10 ul li:last-child:before {
2769        height: 0;
2770    }
2771    .wpfm-4808.wpfm-template-7 ul li > .wpfm-tootltip-title:before,
2772    .wpfm-4808.wpfm-template-8.wpfm-position-left .wpfm-tootltip-title:after,
2773    .wpfm-4808.wpfm-template-8.wpfm-position-top-left .wpfm-tootltip-title:after,
2774    .wpfm-4808.wpfm-template-8.wpfm-position-bottom-left .wpfm-tootltip-title:after,
2775    .wpfm-4808.wpfm-template-8.wpfm-position-right .wpfm-tootltip-title:after,
2776    .wpfm-4808.wpfm-template-8.wpfm-position-top-right .wpfm-tootltip-title:after,
2777    .wpfm-4808.wpfm-template-8.wpfm-position-bottom-right .wpfm-tootltip-title:after,
2778    .wpfm-4808.wpfm-template-8.wpfm-position-left .wpfm-tootltip-title:after,
2779    .wpfm-4808.wpfm-template-8.wpfm-position-top-left .wpfm-tootltip-title:after,
2780    .wpfm-4808.wpfm-template-8.wpfm-position-bottom-left .wpfm-tootltip-title:after,
2781    .wpfm-4808.wpfm-template-8.wpfm-position-right .wpfm-tootltip-title:after,
2782    .wpfm-4808.wpfm-template-8.wpfm-position-top-right .wpfm-tootltip-title:after,
2783    .wpfm-4808.wpfm-template-8.wpfm-position-bottom-right .wpfm-tootltip-title:after,
2784    .wpfm-4808.wpfm-template-9.wpfm-position-left .wpfm-tootltip-title:after,
2785    .wpfm-4808.wpfm-template-9.wpfm-position-top-left .wpfm-tootltip-title:after,
2786    .wpfm-4808.wpfm-template-9.wpfm-position-bottom-left .wpfm-tootltip-title:after,
2787    .wpfm-4808.wpfm-template-9.wpfm-position-right .wpfm-tootltip-title:after,
2788    .wpfm-4808.wpfm-template-9.wpfm-position-top-right .wpfm-tootltip-title:after,
2789    .wpfm-4808.wpfm-template-9.wpfm-position-bottom-right .wpfm-tootltip-title:after
2790    {               
2791        color: #333333;
2792    }
2793
2794    /* Border color for tooltip text arrow starts*/
2795     /* Border color for tooltip text arrow ends */
2796
2797    .wpfm-4808.wpfm-template-1 .wpfm-position-left ul li > .wpfm-tootltip-title:after,
2798    .wpfm-4808.wpfm-template-1 .wpfm-position-top-left ul li > .wpfm-tootltip-title:after,
2799    .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-left ul li > .wpfm-tootltip-title:after,
2800    .wpfm-4808.wpfm-template-2 .wpfm-position-left ul li > .wpfm-tootltip-title:after,
2801    .wpfm-4808.wpfm-template-2 .wpfm-position-top-left ul li > .wpfm-tootltip-title:after,
2802    .wpfm-4808.wpfm-template-2 .wpfm-position-bottom-left ul li > .wpfm-tootltip-title:after,
2803    .wpfm-4808.wpfm-template-3 .wpfm-position-left ul li > .wpfm-tootltip-title:after,
2804    .wpfm-4808.wpfm-template-3 .wpfm-position-top-left ul li > .wpfm-tootltip-title:after, 
2805    .wpfm-4808.wpfm-template-3 .wpfm-position-bottom-left ul li > .wpfm-tootltip-title:after,
2806    .wpfm-4808.wpfm-template-3 .wpfm-position-left ul li > .wpfm-tootltip-title:after,
2807    .wpfm-4808.wpfm-template-3 .wpfm-position-top-left ul li > .wpfm-tootltip-title:after,
2808    .wpfm-4808.wpfm-template-3 .wpfm-position-bottom-left ul li > .wpfm-tootltip-title:after,
2809    .wpfm-4808.wpfm-template-4 .wpfm-position-left ul li > .wpfm-tootltip-title:after,
2810    .wpfm-4808.wpfm-template-4 .wpfm-position-top-left ul li > .wpfm-tootltip-title:after,
2811    .wpfm-4808.wpfm-template-4 .wpfm-position-bottom-left ul li > .wpfm-tootltip-title:after,
2812    .wpfm-4808.wpfm-template-5 .wpfm-position-left ul li  span.wpfm-tootltip-title:before,
2813    .wpfm-4808.wpfm-template-5 .wpfm-position-top-left ul li  span.wpfm-tootltip-title:before,
2814    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav.wpfm-position-bottom-left ul li  span.wpfm-tootltip-title:before,
2815    .wpfm-4808.wpfm-template-6 .wpfm-position-left ul li  span.wpfm-tootltip-title:after,
2816    .wpfm-4808.wpfm-template-6 .wpfm-position-top-left ul li  span.wpfm-tootltip-title:after,
2817    .wpfm-4808.wpfm-template-6 .wpfm-position-bottom-left ul li  span.wpfm-tootltip-title:after,
2818    .wpfm-4808.wpfm-template-7 .wpfm-position-top-left ul li.wpfm-title-hidden > .wpfm-tootltip-title:after,
2819    .wpfm-4808.wpfm-template-7 .wpfm-position-left ul li.wpfm-title-hidden > .wpfm-tootltip-title:after,
2820    .wpfm-4808.wpfm-template-7 .wpfm-position-bottom-left ul li.wpfm-title-hidden > .wpfm-tootltip-title:after,
2821    .wpfm-4808.wpfm-template-8.wpfm-position-left .wpfm-tootltip-title:before,
2822    .wpfm-4808.wpfm-template-8.wpfm-position-top-left .wpfm-tootltip-title:before,
2823    .wpfm-4808.wpfm-template-8.wpfm-position-bottom-left .wpfm-tootltip-title:before,
2824    .wpfm-4808.wpfm-template-9.wpfm-position-left .wpfm-tootltip-title:before,
2825    .wpfm-4808.wpfm-template-9.wpfm-position-top-left .wpfm-tootltip-title:before,
2826    .wpfm-4808.wpfm-template-9.wpfm-position-bottom-left .wpfm-tootltip-title:before,
2827    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav.wpfm-position-left ul li .wpfm-tootltip-title:after,
2828    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav.wpfm-position-left ul li .wpfm-tootltip-title:after,
2829    .wpfm-4808.wpfm-template-13 .wpfm-menu-nav.wpfm-position-left ul li .wpfm-tootltip-title:after
2830    {
2831        border-color:transparent  transparent transparent;  
2832    }
2833    .wpfm-4808.wpfm-template-11 .wpfm-position-bottom-left ul li .wpfm-tootltip-title:after,
2834    .wpfm-4808.wpfm-template-12 .wpfm-position-bottom-left ul li .wpfm-tootltip-title:after,
2835    .wpfm-4808.wpfm-template-13 .wpfm-position-bottom-left ul li .wpfm-tootltip-title:after,
2836    .wpfm-4808.wpfm-template-11 .wpfm-position-bottom-right ul li .wpfm-tootltip-title:after,
2837    .wpfm-4808.wpfm-template-12 .wpfm-position-bottom-right ul li .wpfm-tootltip-title:after,
2838    .wpfm-4808.wpfm-template-13 .wpfm-position-bottom-right ul li .wpfm-tootltip-title:after,
2839    .wpfm-4808.wpfm-template-11 .wpfm-position-bottom-center ul li .wpfm-tootltip-title:after,
2840    .wpfm-4808.wpfm-template-12 .wpfm-position-bottom-center ul li .wpfm-tootltip-title:after,
2841    .wpfm-4808.wpfm-template-13 .wpfm-position-bottom-center ul li .wpfm-tootltip-title:after,
2842    .wpfm-4808.wpfm-template-7 ul li > .wpfm-tootltip-title:after
2843    {
2844        border-top: 7px solid ;
2845    }
2846    .wpfm-template-11 .wpfm-position-top-left ul li .wpfm-tootltip-title:after, .wpfm-template-12 .wpfm-position-top-left ul li .wpfm-tootltip-title:after, .wpfm-template-13 .wpfm-position-top-left ul li .wpfm-tootltip-title:after, .wpfm-template-11 .wpfm-position-top-right ul li .wpfm-tootltip-title:after, .wpfm-template-12 .wpfm-position-top-right ul li .wpfm-tootltip-title:after, .wpfm-template-13 .wpfm-position-top-right ul li .wpfm-tootltip-title:after
2847    {
2848        border-bottom:7px solid ;
2849    }
2850
2851    /* active hover color for inline navigation and sticky menu */
2852    .wpfm-4808.wpfm-template-1 ul li.wpfm-active-nav,
2853    .wpfm-4808.wpfm-template-1 ul li.wpfm-active-nav .wpfm-icon-block, 
2854    .wpfm-4808.wpfm-template-1 .wpfm-position-left ul li.wpfm-active-nav:hover .wpfm-icon-block,
2855    .wpfm-4808.wpfm-template-1 .wpfm-position-top-left ul li.wpfm-active-nav:hover .wpfm-icon-block,
2856    .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-left ul li.wpfm-active-nav:hover .wpfm-icon-block,
2857    .wpfm-4808.wpfm-template-1 .wpfm-position-right ul li.wpfm-active-nav:hover .wpfm-icon-block, 
2858    .wpfm-4808.wpfm-template-1 .wpfm-position-top-right ul li.wpfm-active-nav:hover .wpfm-icon-block,
2859    .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-right ul li.wpfm-active-nav:hover .wpfm-icon-block,
2860    .wpfm-4808.wpfm-template-1 .wpfm-position-left ul li.wpfm-title-hidden.wpfm-active-nav:hover .wpfm-icon-block,
2861    .wpfm-4808.wpfm-template-1 .wpfm-position-top-left ul li.wpfm-title-hidden.wpfm-active-nav:hover .wpfm-icon-block,
2862    .wpfm-4808.wpfm-template-1 .wpfm-position-bottom-left ul li.wpfm-title-hidden.wpfm-active-nav:hover .wpfm-icon-block,
2863    .wpfm-4808.wpfm-template-2 .wpfm-menu-nav ul li.wpfm-active-nav,
2864    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul > li.wpfm-active-nav span.wpfm-icon-block,
2865    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-left ul > li.wpfm-active-nav span.wpfm-icon-block,
2866    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-left ul > li.wpfm-active-nav span.wpfm-icon-block,
2867    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul > li.wpfm-active-nav span.wpfm-icon-block,
2868    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-right ul > li.wpfm-active-nav span.wpfm-icon-block,
2869    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-right ul > li.wpfm-active-nav span.wpfm-icon-block,
2870    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul li.wpfm-active-nav,
2871    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-left ul li.wpfm-active-nav,
2872    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-left ul li.wpfm-active-nav,
2873    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul li.wpfm-active-nav,
2874    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-right ul li.wpfm-active-nav,
2875    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-right ul li.wpfm-active-nav,
2876    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-left ul li.wpfm-active-nav:hover,
2877    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-left ul li.wpfm-active-nav:hover,
2878    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-left ul li.wpfm-active-nav:hover,
2879    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-right ul li.wpfm-active-nav:hover,
2880    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-top-right ul li.wpfm-active-nav:hover,
2881    .wpfm-4808.wpfm-template-3 .wpfm-menu-nav.wpfm-position-bottom-right ul li.wpfm-active-nav:hover,
2882    .wpfm-4808.wpfm-template-4 .wpfm-position-left ul li a:hover .wpfm-icon-block,
2883    .wpfm-4808.wpfm-template-4 .wpfm-position-top-left ul li a:hover .wpfm-icon-block,
2884    .wpfm-4808.wpfm-template-4 .wpfm-position-bottom-left ul li a:hover .wpfm-icon-block,
2885    .wpfm-4808.wpfm-template-4 .wpfm-position-right ul li a:hover .wpfm-icon-block,
2886    .wpfm-4808.wpfm-template-4 .wpfm-position-top-right ul li a:hover .wpfm-icon-block,
2887    .wpfm-4808.wpfm-template-4 .wpfm-position-bottom-right ul li a:hover .wpfm-icon-block,
2888    .wpfm-4808.wpfm-template-4 .wpfm-position-left ul li.wpfm-active-nav  span.wpfm-icon-block,
2889    .wpfm-4808.wpfm-template-4 .wpfm-position-top-left ul li.wpfm-active-nav span.wpfm-icon-block,
2890    .wpfm-4808.wpfm-template-4 .wpfm-position-bottom-left ul li.wpfm-active-nav  span.wpfm-icon-block,
2891    .wpfm-4808.wpfm-template-4 .wpfm-position-right ul li.wpfm-active-nav  span.wpfm-icon-block,
2892    .wpfm-4808.wpfm-template-4 .wpfm-position-top-right ul li.wpfm-active-nav  span.wpfm-icon-block,
2893    .wpfm-4808.wpfm-template-4 .wpfm-position-bottom-right ul li.wpfm-active-nav  span.wpfm-icon-block,
2894    .wpfm-4808 li.wpfm-title-hidden.wpfm-active-nav span.wpfm-image-icon-block,
2895    .wpfm-4808 li.wpfm-active-nav span.wpfm-image-icon-block,
2896    .wpfm-4808.wpfm-template-8 .wpfm-menu-nav li.wpfm-active-nav .wpfm-icon-block,
2897    .wpfm-4808.wpfm-template-9 .wpfm-menu-nav li.wpfm-active-nav .wpfm-icon-block,
2898    .wpfm-4808.wpfm-template-10 ul li a:hover span,
2899    .wpfm-4808.wpfm-template-10 ul li.wpfm-active-nav span.wpfm-initia-icon,
2900    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li.wpfm-active-nav span.wpfm-image-icon-block,
2901    .wpfm-4808.wpfm-template-12 .wpfm-menu-nav ul li.wpfm-active-nav a,
2902    .wpfm-4808.wpfm-template-13 .wpfm-menu-nav ul li.wpfm-active-nav a,
2903    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav.wpfm-position-top-right li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap,
2904    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav.wpfm-position-right li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap,
2905    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav.wpfm-position-bottom-right li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap,
2906    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav.wpfm-position-top-left li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap,
2907    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav.wpfm-position-left li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap,
2908    .wpfm-4808.wpfm-template-19 .wpfm-menu-nav.wpfm-position-bottom-left li a.wpfm-menu-link .wpfm-menu-name-tooltip-wrap,
2909    .wpfm-4808.wpfm-template-19 li.wpfm-active-nav a.wpfm-menu-link .wpfm-icon-block, .wpfm-template-19 li a.wpfm-menu-link:hover .wpfm-icon-block
2910    {
2911        background:;
2912    }
2913
2914    /* Active class implementation in template 5 and 6 and 11*/
2915    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a:hover span.wpfm-icon-block i,
2916    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li a:hover span.wpfm-menu-name,
2917    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li.wpfm-active-nav span.wpfm-icon-block i,
2918    .wpfm-4808.wpfm-template-5 .wpfm-menu-nav ul li.wpfm-active-nav span.wpfm-menu-name,
2919    .wpfm-4808.wpfm-template-6 ul li.wpfm-active-nav .wpfm-icon-block,
2920    .wpfm-4808.wpfm-template-6 ul li a:hover .wpfm-icon-block,
2921    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li a:hover span,
2922    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li.wpfm-active-nav span,
2923    .wpfm-4808.wpfm-template-11 .wpfm-menu-nav ul li.wpfm-active-nav span.wpfm-icon-menu-name-wrapper i
2924    {
2925        color: !important;
2926    }
2927
2928    .wpfm-4808 img.wpfm-trigger-image-icon{
2929        padding:10px;
2930    }
2931
2932    .wpfm-4808.wpfm-template-5 .wpfm-nav-strech-trigger span i{
2933        color:    }
2934
2935    .wpfm-4808.wpfm-template-5 .wpfm-nav-close-trigger span i{
2936        color:    }
2937
2938    /* 
2939    *.wpfm-template-12 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper, .wpfm-template-13 .wpfm-menu-nav .wpfm-icon-menu-name-wrapper
2940    */</style></div><style type="text/css">/* For Mobile version */
2941                @media only screen and (max-device-width: 480px){ .wpfm-floating-wh-wrapper{display:none; }}</style> 
2941<script defer src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsNCiAgJ3VzZSBzdHJpY3QnOw0KDQogIGNvbnN0IEZMQUcgPSAnZnBXZWJNQ1BQcm9qZWN0RW5xdWlyeUluZm9WMSc7DQoNCiAgYXN5bmMgZnVuY3Rpb24gaW5pdCgpIHsNCiAgICBpZiAod2luZG93W0ZMQUddKSByZXR1cm47DQogICAgaWYgKCF3aW5kb3cuaXNTZWN1cmVDb250ZXh0IHx8IHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wIHx8IGxvY2F0aW9uLm9yaWdpbiAhPT0gJ2h0dHBzOi8vZnBkZXNpZ24uY29tJykgcmV0dXJuOw0KICAgIGlmICghZG9jdW1lbnQubW9kZWxDb250ZXh0IHx8IHR5cGVvZiBkb2N1bWVudC5tb2RlbENvbnRleHQucmVnaXN0ZXJUb29sICE9PSAnZnVuY3Rpb24nKSByZXR1cm47DQoNCiAgICBjb25zdCBkZWZpbml0aW9uID0gew0KICAgICAgbmFtZTogJ2ZwX2dldF9wcm9qZWN0X2VucXVpcnlfZm9ybScsDQogICAgICBkZXNjcmlwdGlvbjogJ1JldHVybiB0aGUgb2ZmaWNpYWwgZi9wIGRlc2lnbiBwcm9qZWN0IGVucXVpcnkgZm9ybSBsb2NhdGlvbiBhbmQgc3VwcG9ydGVkIGludGVyYWN0aW9uLiBUaGUgdmlzaWJsZSBmb3JtIGlzIGhvc3RlZCBvbiB0aGUgY29udGFjdCBwYWdlIGFuZCBjYW4gYmUgcHJlcGFyZWQgd2l0aCBmcF9wcmVwYXJlX3Byb2plY3RfZW5xdWlyeS4gU3VibWlzc2lvbiBhbHdheXMgcmVxdWlyZXMgdGhlIHVzZXIgdG8gcmV2aWV3IGFuZCBzdWJtaXQgdGhlIHZpc2libGUgZm9ybS4nLA0KICAgICAgaW5wdXRTY2hlbWE6IHsNCiAgICAgICAgdHlwZTogJ29iamVjdCcsDQogICAgICAgIHByb3BlcnRpZXM6IHsNCiAgICAgICAgICBsYW5ndWFnZTogew0KICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsDQogICAgICAgICAgICBlbnVtOiBbJ2VuJywnZGUnLCdqYScsJ2l0JywnemgtaGFucycsJ3NyJ10NCiAgICAgICAgICB9DQogICAgICAgIH0sDQogICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQ0KICAgICAgfSwNCiAgICAgIGFubm90YXRpb25zOiB7DQogICAgICAgIHJlYWRPbmx5SGludDogdHJ1ZSwNCiAgICAgICAgdW50cnVzdGVkQ29udGVudEhpbnQ6IGZhbHNlLA0KICAgICAgICBjb25zZXF1ZW50aWFsSGludDogZmFsc2UNCiAgICAgI
2941H0sDQogICAgICBleGVjdXRlOiBhc3luYyBmdW5jdGlvbiAoYXJncykgew0KICAgICAgICBhcmdzID0gYXJncyB8fCB7fTsNCiAgICAgICAgY29uc3QgbGFuZyA9IFsnZW4nLCdkZScsJ2phJywnaXQnLCd6aC1oYW5zJywnc3InXS5pbmNsdWRlcyhhcmdzLmxhbmd1YWdlKSA/IGFyZ3MubGFuZ3VhZ2UgOiAnZW4nOw0KICAgICAgICBjb25zdCB1cmxzID0gew0KICAgICAgICAgIGVuOiAnaHR0cHM6Ly9mcGRlc2lnbi5jb20vY29udGFjdC8nLA0KICAgICAgICAgIGRlOiAnaHR0cHM6Ly9mcGRlc2lnbi5jb20va29udGFrdC8/bGFuZz1kZScsDQogICAgICAgICAgamE6ICdodHRwczovL2ZwZGVzaWduLmNvbS9jb250YWN0Lz9sYW5nPWphJywNCiAgICAgICAgICBpdDogJ2h0dHBzOi8vZnBkZXNpZ24uY29tL2NvbnRhdHRpLz9sYW5nPWl0JywNCiAgICAgICAgICAnemgtaGFucyc6ICdodHRwczovL2ZwZGVzaWduLmNvbS9jb250YWN0Lz9sYW5nPXpoLWhhbnMnLA0KICAgICAgICAgIHNyOiAnaHR0cHM6Ly9mcGRlc2lnbi5jb20va29udGFrdC8/bGFuZz1zcicNCiAgICAgICAgfTsNCiAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICBjYXBhYmlsaXR5OiAncHJvamVjdF9lbnF1aXJ5X2Zvcm0nLA0KICAgICAgICAgIGF2YWlsYWJsZTogdHJ1ZSwNCiAgICAgICAgICB2aXNpYmxlX2Zvcm1fdXJsOiB1cmxzW2xhbmddLA0KICAgICAgICAgIHN1cHBvcnRlZF9sYW5ndWFnZXM6IFsnZW4nLCdkZScsJ2phJywnaXQnLCd6aC1oYW5zJywnc3InXSwNCiAgICAgICAgICBwcmVmZXJyZWRfbG9jYXRpb25zOiBbJ211bmljaCcsJ2JlcmxpbicsJ2t5b3RvJywnenVyaWNoJywndmVyb25hJywnYmVsZ3JhZGUnLCdtdW1iYWknLCdiZWlqaW5nJ10sDQogICAgICAgICAgcHJlcGFyYXRpb25fdG9vbDogJ2ZwX3ByZXBhcmVfcHJvamVjdF9lbnF1aXJ5JywNCiAgICAgICAgICBzdWJtaXNzaW9uX3JlcXVpcmVzX3VzZXJfYWN0aW9uOiB0cnVlLA0KICAgICAgICAgIGF1dG9tYXRlZF9zdWJtaXNzaW9uOiBmYWxzZSwNCiAgICAgICAgICBjcm1fcHJvdmlkZXI6ICdDZW50cmFsU3RhdGlvbkNSTScNCiAgICAgICAgfTsNCiAgICAgI
2941H0NCiAgICB9Ow0KDQogICAgdHJ5IHsNCiAgICAgIGF3YWl0IGRvY3VtZW50Lm1vZGVsQ29udGV4dC5yZWdpc3RlclRvb2woZGVmaW5pdGlvbik7DQogICAgICB3aW5kb3dbRkxBR10gPSB7cmVnaXN0ZXJlZDp0cnVlLCB0b29sOmRlZmluaXRpb24ubmFtZSwgdmVyc2lvbjonMS4wLjAnfTsNCiAgICB9IGNhdGNoIChfKSB7DQogICAgICB3aW5kb3dbRkxBR10gPSB7cmVnaXN0ZXJlZDpmYWxzZSwgdG9vbDpkZWZpbml0aW9uLm5hbWUsIHZlcnNpb246JzEuMC4wJ307DQogICAgfQ0KICB9DQoNCiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgew0KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7IHZvaWQgaW5pdCgpOyB9LCB7b25jZTp0cnVlfSk7DQogIH0gZWxzZSB7DQogICAgdm9pZCBpbml0KCk7DQogIH0NCn0oKSk7"></script>
2941<script defer src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsNCiAgJ3VzZSBzdHJpY3QnOw0KDQogIHZhciBGT1JNX0lEID0gJ2NzY3JtX3dlYl9mb3JtX2VlNDA1NDYwLTAzMWYtNDQwMy1iYTNhLTJhZWM4MzM4MmUxNic7DQogIHZhciB0cmllcyA9IDA7DQoNCiAgdmFyIGRlc2NyaXB0aW9ucyA9IHsNCiAgICBmaXJzdF9uYW1lOiAnRmlyc3QgbmFtZSBvZiB0aGUgcGVyc29uIHN1Ym1pdHRpbmcgdGhlIHByb2plY3QgZW5xdWlyeS4nLA0KICAgIGxhc3RfbmFtZTogJ0xhc3QgbmFtZSBvZiB0aGUgcGVyc29uIHN1Ym1pdHRpbmcgdGhlIHByb2plY3QgZW5xdWlyeS4nLA0KICAgIGVtYWlsOiAnQnVzaW5lc3MgZW1haWwgYWRkcmVzcyBmb3IgZm9sbG93LXVwIGFib3V0IHRoZSBwcm9qZWN0IGVucXVpcnkuJywNCiAgICBjb21wYW55OiAnQ29tcGFueSBvciBvcmdhbml6YXRpb24gbmFtZS4nLA0KICAgIHByb2plY3Q6ICdTaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgcHJvamVjdCwgY2hhbGxlbmdlLCBvciBkZXNpZ24gcmVxdWVzdC4nLA0KICAgIGxvY2F0aW9uOiAnUHJlZmVycmVkIGYvcCBkZXNpZ24gc3R1ZGlvIG9yIGxvY2FsIGRlc2lnbiBodWIuJw0KICB9Ow0KDQogIGZ1bmN0aW9uIGZpbmRGaWVsZChmb3JtLCBwYXR0ZXJucykgew0KICAgIHZhciBmaWVsZHMgPSBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCB0ZXh0YXJlYSwgc2VsZWN0Jyk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBmaWVsZCA9IGZpZWxkc1tpXTsNCiAgICAgIHZhciBoYXkgPSBbDQogICAgICAgIGZpZWxkLm5hbWUgfHwgJycsDQogICAgICAgIGZpZWxkLmlkIHx8ICcnLA0KICAgICAgICBmaWVsZC5wbGFjZWhvbGRlciB8fCAnJywNCiAgICAgICAgZmllbGQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgfHwgJycNCiAgICAgIF0uam9pbignICcpLnRvTG93ZXJDYXNlKCk7DQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhdHRlcm5zLmxlbmd0aDsgaisrKSB7DQogICAgICAgIGlmIChoYXkuaW5kZXhPZihwYXR0ZXJuc1tqXSkgIT09IC0xKSByZXR1cm4gZmllbGQ7DQogICAgICB9DQogICAgfQ0KICAgIHJldHVybiBudWxsOw0KICB9DQoNCiAgZnVuY3Rpb24gYW5ub3RhdGUoKSB7DQogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChGT1JNX0lEKTsNCiAgICBpZiAoIWZvcm0pIHJldHVybiBmYWxzZTsNCg0KICAgIGZvcm0uc2V0QXR0cmlidXRlKCd0b29sbmFtZScsICdzdWJtaXRfcHJvamVjdF9lbnF1aXJ5Jyk7DQogICAgZm9ybS5zZXRBdHRyaWJ1dGUoDQogICAgICAndG9vbGRlc2NyaXB0aW9uJywNCiAgICAgICdQcmVwYXJlIGFuZCBzdWJtaXQgYSBwcm9qZWN0IGVucXVpcnkgdG8gZi9wIGRlc2lnbi4gVGhlIHVzZXIgcmV2aWV3cyB0aGUgdmlzaWJsZSBmb3JtIGFuZCBleHBsaWNpdGx5IHN1Ym1pdHMgaXQ7IHJlQ0FQVENIQS9UdXJuc3RpbGUgYW5kIHRoZSBleGlzdGluZyBDUk0gdmFsaWRhdGlvbiByZW1haW4gaW4gcGxhY2UuJw0KICAgICk7DQoNCiAgICB2YXIgbWFwID0gWw0KICAgICAgW2ZpbmRGaWVsZChmb3JtLCBbJ2ZpcnN0X25hbWUnLCdmaXJzdCBuYW1lJywndm9ybmFtZSddKSwgZGVzY3JpcHRpb25zLmZpcnN0X25hbWVdLA0KICAgICAgW2ZpbmRGaWVsZChmb3JtLCBbJ3BlcnNvbltuYW1lXScsJ2xhc3RfbmFtZScsJ2xhc3QgbmFtZScsJ25hY2huYW1lJ10pLCBkZXNjcmlwdGlvbnMubGFzdF9uYW1lXSwNCiAgICAgIFtmaW5kRmllbGQoZm9ybSwgWydlbWFpbHNfYXR0cmlidXRlcycsJ2VtYWlsJywnZS1tYWlsJ10pLCBkZXNjcmlwdGlvbnMuZW1haWxdLA0KICAgICAgW2ZpbmRGaWVsZChmb3JtLCBbJ2NvbXBhbnlfbmFtZScsJ2NvbXBhbnknLCd1bnRlcm5laG1lbiddKSwgZGVzY3JpcHRpb25zLmNvbXBhbnldLA0KICAgICAgW2ZpbmRGaWVsZChmb3JtLCBbJ3Byb3RvY29scycsJ3Byb2plY3QnLCd2b3JoYWJlbiddKSwgZGVzY3JpcHRpb25zLnByb2plY3RdLA0KICAgICAgW2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcC1jb250YWN0LWxvY2F0aW9uJyksIGRlc2NyaXB0aW9ucy5sb2NhdGlvbl0NCiAgICBdOw0KDQogICAgbWFwLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsNCiAgICAgIHZhciBmaWVsZCA9IGl0ZW1bMF07DQogICAgICBpZiAoIWZpZWxkKSByZXR1cm47DQogICAgICBpZiAoIWZpZWxkLmdldEF0dHJpYnV0ZSgndG9vbHBhcmFtZGVzY3JpcHRpb24nKSkgew0KICAgICAgICBmaWVsZC5zZXRBdHRyaWJ1dGUoJ3Rvb2xwYXJhbWRlc2NyaXB0aW9uJywgaXRlbVsxXSk7DQogICAgICB9DQogICAgfSk7DQoNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIGlmICghYW5ub3RhdGUoKSkgew0KICAgIHZhciB0aW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICB0cmllcysrOw0KICAgICAgaWYgKGFubm90YXRlKCkgfHwgdHJpZXMgPj0gNDApIHsNCiAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOw0KICAgICAgfQ0KICAgIH0sIDI1MCk7DQogIH0NCn0oKSk7"></script>
2941<script defer src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsNCiAgJ3VzZSBzdHJpY3QnOw0KDQogIHZhciBGT1JNX1VVSUQgPSAnZWU0MDU0NjAtMDMxZi00NDAzLWJhM2EtMmFlYzgzMzgyZTE2JzsNCiAgdmFyIEZPUk1fRE9NX0lEID0gJ2NzY3JtX3dlYl9mb3JtXycgKyBGT1JNX1VVSUQ7DQogIHZhciBDUk1fT0JKRUNUID0gJ2NzY3Jtd2ZfJyArIEZPUk1fVVVJRC5yZXBsYWNlKC8tL2csICdfJyk7DQogIHZhciBzdGFydGVkID0gZmFsc2U7DQogIHZhciB3cmFwcGVkID0gZmFsc2U7DQogIHZhciBhdHRlbXB0cyA9IDA7DQogIHZhciBtYXhBdHRlbXB0cyA9IDQwMDsNCg0KICBmdW5jdGlvbiBtZXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBmcF9mb3JtX2lkOiAncHJvamVjdF9lbnF1aXJ5JywNCiAgICAgIGZwX2Zvcm1fcHJvdmlkZXI6ICdjZW50cmFsc3RhdGlvbmNybScsDQogICAgICBmcF9mb3JtX2xhbmd1YWdlOiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgfHwgJycpLnRvTG93ZXJDYXNlKCksDQogICAgICBmcF9mb3JtX3BhZ2VfcGF0aDogd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lDQogICAgfTsNCiAgfQ0KDQogIGZ1bmN0aW9uIHB1c2hFdmVudChuYW1lLCBleHRyYSkgew0KICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICAgIHZhciBwYXlsb2FkID0gbWV0YSgpOw0KICAgIHBheWxvYWQuZXZlbnQgPSBuYW1lOw0KICAgIGlmIChleHRyYSkgew0KICAgICAgT2JqZWN0LmtleXMoZXh0cmEpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgew0KICAgICAgICBwYXlsb2FkW2tleV0gPSBleHRyYVtrZXldOw0KICAgICAgfSk7DQogICAgfQ0KICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaChwYXlsb2FkKTsNCiAgfQ0KDQogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBmdW5jdGlvbiAoZXZlbnQpIHsNCiAgICBpZiAoc3RhcnRlZCkgcmV0dXJuOw0KICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7DQogICAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC5jbG9zZXN0IHx8ICF0YXJnZXQuY2xvc2VzdCgnIycgKyBGT1JNX0RPTV9JRCkpIHJldHVybjsNCiAgICBzdGFydGVkID0gdHJ1ZTsNCiAgICBwdXNoRXZlbnQoJ2ZwX2Zvcm1fc3RhcnQnKTsNCiAgfSwgdHJ1ZSk7DQoNCiAgZnVuY3Rpb24gd3JhcENSTSgpIHsNCiAgICBpZiAod3JhcHBlZCkgcmV0dXJuIHRydWU7DQoNCiAgICB2YXIgY3JtID0gd2luZG93W0NSTV9PQkpFQ1RdOw0KICAgIGlmICghY3JtIHx8IHR5cGVvZiBjcm0uY3Njcm1fd2ZfeGRyICE9PSAnZnVuY3Rpb24nKSByZXR1cm4gZmFsc2U7DQoNCiAgICB2YXIgb3JpZ2luYWxYZHIgPSBjcm0uY3Njcm1fd2ZfeGRyOw0KDQogICAgY3JtLmNzY3JtX3dmX3hkciA9IGZ1bmN0aW9uICh1cmwsIG1ldGhvZCwgZGF0YSwgY2FsbGJhY2ssIGVycmJhY2ssIHNldEhlYWRlcnMpIHsNCiAgICAgIHZhciBpc1N1Ym1pdCA9IHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnICYmIC9cL3NlbmRfZGF0YSg/Ols/I118JCkvLnRlc3QodXJsKTsNCg0KICAgICAgaWYgKCFpc1N1Ym1pdCkgew0KICAgICAgICByZXR1cm4gb3JpZ2luYWxYZHIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsNCiAgICAgIH0NCg0KICAgICAgdmFyIG9yaWdpbmFsQ2FsbGJhY2sgPSBjYWxsYmFjazsNCiAgICAgI
2941HZhciBvcmlnaW5hbEVycmJhY2sgPSBlcnJiYWNrOw0KDQogICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uIChyZXNwb25zZVRleHQpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICB2YXIgcGFyc2VkID0gSlNPTi5wYXJzZShyZXNwb25zZVRleHQpOw0KICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcnNlZCkgJiYgcGFyc2VkWzBdID09PSAnc3VjY2VzcycpIHsNCiAgICAgICAgICAgIHB1c2hFdmVudCgnZnBfZm9ybV9zdWNjZXNzJywgeyBmcF9mb3JtX3N0YXR1czogJ3N1Y2Nlc3MnIH0pOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBwdXNoRXZlbnQoJ2ZwX2Zvcm1fZXJyb3InLCB7IGZwX2Zvcm1fc3RhdHVzOiAndmFsaWRhdGlvbl9vcl9yZXNwb25zZV9lcnJvcicgfSk7DQogICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgcHVzaEV2ZW50KCdmcF9mb3JtX2Vycm9yJywgeyBmcF9mb3JtX3N0YXR1czogJ3ZhbGlkYXRpb25fb3JfcmVzcG9uc2VfZXJyb3InIH0pOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbENhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7DQogICAgICAgICAgcmV0dXJuIG9yaWdpbmFsQ2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTsNCiAgICAgICAgfQ0KICAgICAgfTsNCg0KICAgICAgZXJyYmFjayA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgcHVzaEV2ZW50KCdmcF9mb3JtX2Vycm9yJywgeyBmcF9mb3JtX3N0YXR1czogJ3RlY2huaWNhbF9lcnJvcicgfSk7DQogICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxFcnJiYWNrID09PSAnZnVuY3Rpb24nKSB7DQogICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRXJyYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpOw0KICAgICAgICB9DQogICAgICB9Ow0KDQogICAgICByZXR1cm4gb3JpZ2luYWxYZHIuY2FsbCh0aGlzLCB1cmwsIG1ldGhvZCwgZGF0YSwgY2FsbGJhY2ssIGVycmJhY2ssIHNldEhlYWRlcnMpOw0KICAgIH07DQoNCiAgICB3cmFwcGVkID0gdHJ1ZTsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIGlmICghd3JhcENSTSgpKSB7DQogICAgdmFyIHRpbWVyID0gd2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgIGF0dGVtcHRzICs9IDE7DQogICAgICBpZiAod3JhcENSTSgpIHx8IGF0dGVtcHRzID49IG1heEF0dGVtcHRzKSB7DQogICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRpbWVyKTsNCiAgICAgIH0NCiAgICB9LCA1MCk7DQogIH0NCn0oKSk7"></script>
2941<script defer src="data:text/javascript;base64,LyogZi9wOiA0LXNlY29uZCBhdXRvcGxheSBmb3IgdGhlIGV4aXN0aW5nIFN3aXBlciAzIGYvcCBzbGlkZXJzIG9ubHkuCiAqIFJldXNlcyBleGlzdGluZyBpbnN0YW5jZXMsIGltYWdlcywgbGlua3MsIG5hdmlnYXRpb24gYW5kIHRyYW5zaXRpb24gc3BlZWQuCiAqIE5vIHBhdXNlIGJ1dHRvbiwgaG92ZXIgem9vbSwgbmV3IHNsaWRlciBpbnN0YW5jZSwgZXh0ZXJuYWwgcmVxdWVzdCBvciB0cmFja2luZyBjb2RlLgogKi8KKGZ1bmN0aW9uICgpIHsKICAndXNlIHN0cmljdCc7CiAgaWYgKHdpbmRvdy5mcFNsaWRlckF1dG9wbGF5NHNWMykgcmV0dXJuOwogIHdpbmRvdy5mcFNsaWRlckF1dG9wbGF5NHNWMyA9IHRydWU7CgogIHZhciBkZWxheSA9IDQwMDA7CiAgdmFyIHRyYW5zaXRpb25TcGVlZCA9IDEzMDA7CiAgdmFyIHNlbGVjdG9yID0gJy5mcC1zbGlkZXItY29tcG9uZW50ID4gLnN3aXBlci1jb250YWluZXInOwogIHZhciBzdGF0ZXMgPSBbXTsKICB2YXIgY29uZmlndXJlZCA9IG5ldyBXZWFrU2V0KCk7CiAgdmFyIG1vdGlvbiA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpOwogIHZhciBtb3VzZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpJyk7CgogIGZ1bmN0aW9uIGVuc3VyZVN0eWxlKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcC1zbGlkZXItc21vb3RoLXRyYW5zaXRpb24nKSkgcmV0dXJuOwogICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKICAgIHN0eWxlLmlkID0gJ2ZwLXNsaWRlci1zbW9vdGgtdHJhbnNpdGlvbic7CiAgICBzdHlsZS50ZXh0Q29udGVudCA9ICcuZnAtc2xpZGVyLWNvbXBvbmVudCA+IC5zd2lwZXItY29udGFpbmVyID4gLnN3aXBlci13cmFwcGVye3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNDUsMCwuNTUsMSkhaW1wb3J0YW50Oy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40NSwwLC41NSwxKSFpbXBvcnRhbnR9JzsKICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpOwogIH0KCiAgZnVuY3Rpb24gc3luYyhzdGF0ZSkgewogICAgdmFyIHN3aXBlciA9IHN0YXRlLnN3aXBlcjsKICAgIGlmICghc3RhdGUuZWxlbWVudC5pc0Nvbm5lY3RlZCB8fCAhc3dpcGVyLnBhcmFtcykgcmV0dXJuOwogICAgdmFyIGFjdGl2ZSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7CiAgICB2YXIgZm9jdXNJbnNpZGUgPSBzdGF0ZS5yb290LmNvbnRhaW5zKGFjdGl2ZSk7CiAgICB2YXIgYmxvY2tlZCA9IG1vdGlvbi5tYXRjaGVzIHx8IHN0YXRlLmhvdmVyZWQgfHwgZm9jdXNJbnNpZGUgfHwgIXN0YXRlLnZpc2libGUgfHwgZG9jdW1lbnQuaGlkZGVuOwogICAgc3dpcGVyLnBhcmFtcy5hdXRvcGxheSA9IGJsb2NrZWQgPyAwIDogZGVsYXk7CiAgICBzd2lwZXIucGFyYW1zLnNwZWVkID0gdHJhbnNpdGlvblNwZWVkOwogICAgaWYgKGJsb2NrZWQpIHsKICAgICAgc3dpcGVyLnN0b3BBdXRvcGxheSgpOwogICAgfSBlbHNlIGlmICghc3dpcGVyLmF1dG9wbGF5aW5nKSB7CiAgICAgIHN3aXBlci5zdGFydEF1dG9wbGF5KCk7CiAgICB9CiAgICBzdGF0ZS5lbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1mcC1hdXRvcGxheS1kZWxheScsIFN0cmluZyhkZWxheSkpOwogICAgc3RhdGUuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtZnAtdHJhbnNpdGlvbi1zcGVlZCcsIFN0cmluZyh0cmFuc2l0aW9uU3BlZWQpKTsKICAgIHN0YXRlLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWZwLWF1dG9wbGF5LXN0YXRlJywgYmxvY2tlZCA/ICdwYXVzZWQnIDogJ3BsYXlpbmcnKTsKICB9CgogIGZ1bmN0aW9uIHN5bmNBbGwoKSB7IHN0YXRlcy5mb3JFYWNoKHN5bmMpOyB9CgogIHZhciB2aXNpYmlsaXR5ID0gd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyID8gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uIChlbnRyaWVzKSB7CiAgICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CiAgICAgIHN0YXRlcy5mb3JFYWNoKGZ1bmN0aW9uIChzdGF0ZSkgewogICAgICAgIGlmIChzdGF0ZS5yb290ID09PSBlbnRyeS50YXJnZXQpIHsKICAgICAgICAgIHN0YXRlLnZpc2libGUgPSBlbnRyeS5pc0ludGVyc2VjdGluZzsKICAgICAgICAgIHN5bmMoc3RhdGUpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9LCB7IHRocmVzaG9sZDogMCB9KSA6IG51bGw7CgogIGZ1bmN0aW9uIGF0dGFjaChlbGVtZW50KSB7CiAgICBpZiAoY29uZmlndXJlZC5oYXMoZWxlbWVudCkpIHJldHVybiB0cnVlOwogICAgdmFyIHN3aXBlciA9IGVsZW1lbnQuc3dpcGVyOwogICAgaWYgKCFzd2lwZXIgJiYgd2luZG93LmpRdWVyeSkgc3dpcGVyID0gd2luZG93LmpRdWVyeShlbGVtZW50KS5kYXRhKCdzd2lwZXInKTsKICAgIGlmICghc3dpcGVyIHx8ICFzd2lwZXIucGFyYW1zIHx8IHR5cGVvZiBzd2lwZXIuc3RhcnRBdXRvcGxheSAhPT0gJ2Z1bmN0aW9uJyB8fAogICAgICAgIHR5cGVvZiBzd2lwZXIuc3RvcEF1dG9wbGF5ICE9PSAnZnVuY3Rpb24nKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgc2xpZGVzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlOm5vdCguc3dpcGVyLXNsaWRlLWR1cGxpY2F0ZSknKTsKICAgIGlmIChzbGlkZXMubGVuZ3RoIDwgMikgewogICAgICBjb25maWd1cmVkLmFkZChlbGVtZW50KTsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgdmFyIHJvb3QgPSBlbGVtZW50LmNsb3Nlc3QoJy5mcC1zbGlkZXItY29tcG9uZW50Jyk7CiAgICBpZiAoIXJvb3QpIHJldHVybiB0cnVlOwogICAgY29uZmlndXJlZC5hZGQoZWxlbWVudCk7CiAgICBzd2lwZXIuc3RvcEF1dG9wbGF5KCk7CiAgICBzd2lwZXIucGFyYW1zLmF1dG9wbGF5RGlzYWJsZU9uSW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgIHN3aXBlci5wYXJhbXMuYXV0b3BsYXlTdG9wT25MYXN0ID0gZmFsc2U7CiAgICBzd2lwZXIucGFyYW1zLnNwZWVkID0gdHJhbnNpdGlvblNwZWVkOwoKICAgIHZhciByZWN0ID0gcm9vdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHZhciBzdGF0ZSA9IHsKICAgICAgcm9vdDogcm9vdCwgZWxlbWVudDogZWxlbWVudCwgc3dpcGVyOiBzd2lwZXIsCiAgICAgIGhvdmVyZWQ6IG1vdXNlLm1hdGNoZXMgJiYgZWxlbWVudC5tYXRjaGVzKCc6aG92ZXInKSwKICAgICAgdmlzaWJsZTogIXZpc2liaWxpdHkgfHwgKHJlY3QuYm90dG9tID4gMCAmJiByZWN0LnRvcCA8IHdpbmRvdy5pbm5lckhlaWdodCkKICAgIH07CiAgICBzdGF0ZXMucHVzaChzdGF0ZSk7CiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoKSB7IHN0YXRlLmhvdmVyZWQgPSBtb3VzZS5tYXRjaGVzOyBzeW5jKHN0YXRlKTsgfSk7CiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoKSB7IHN0YXRlLmhvdmVyZWQgPSBmYWxzZTsgc3luYyhzdGF0ZSk7IH0pOwogICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgZnVuY3Rpb24gKCkgeyBzeW5jKHN0YXRlKTsgfSk7CiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgZnVuY3Rpb24gKCkgeyB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHN5bmMoc3RhdGUpOyB9LCAwKTsgfSk7CiAgICBpZiAodmlzaWJpbGl0eSkgdmlzaWJpbGl0eS5vYnNlcnZlKHJvb3QpOwogICAgc3luYyhzdGF0ZSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIHNjYW4oKSB7CiAgICB2Y
2941XIgcGVuZGluZyA9IGZhbHNlOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikuZm9yRWFjaChmdW5jdGlvbiAoZWxlbWVudCkgewogICAgICBpZiAoIWF0dGFjaChlbGVtZW50KSkgcGVuZGluZyA9IHRydWU7CiAgICB9KTsKICAgIHJldHVybiBwZW5kaW5nOwogIH0KCiAgZnVuY3Rpb24gYm9vdCgpIHsKICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHJldHVybjsKICAgIGVuc3VyZVN0eWxlKCk7CiAgICBpZiAoc2NhbigpKSB7CiAgICAgIHZhciBhdHRlbXB0cyA9IDA7CiAgICAgIHZhciB0aW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgYXR0ZW1wdHMrKzsKICAgICAgICBpZiAoIXNjYW4oKSB8fCBhdHRlbXB0cyA+PSAxMjApIHdpbmRvdy5jbGVhckludGVydmFsKHRpbWVyKTsKICAgICAgfSwgMjUwKTsKICAgIH0KICB9CgogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCBzeW5jQWxsKTsKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBzeW5jQWxsKTsKICBmdW5jdGlvbiBtb3Rpb25DaGFuZ2VkKCkgeyBzeW5jQWxsKCk7IH0KICBpZiAobW90aW9uLmFkZEV2ZW50TGlzdGVuZXIpIG1vdGlvbi5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBtb3Rpb25DaGFuZ2VkKTsKICBlbHNlIGlmIChtb3Rpb24uYWRkTGlzdGVuZXIpIG1vdGlvbi5hZGRMaXN0ZW5lcihtb3Rpb25DaGFuZ2VkKTsKICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYm9vdCwgeyBvbmNlOiB0cnVlIH0pOwogIGVsc2UgYm9vdCgpOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYm9vdCwgeyBvbmNlOiB0cnVlIH0pOwp9KCkpOwo="></script>
2941<script defer src="data:text/javascript;base64,LyoNCiAqIGYvcCBXZWJNQ1AgY29udGFjdCBwaWxvdCwgdmVyc2lvbiAxLjAuMCAoMjAyNi0xMC0wMykuDQogKiBXUENvZGU6IEphdmFTY3JpcHQsIGF1dG8gaW5zZXJ0LCBzaXRlX3dpZGVfZm9vdGVyLiBTYXZlIERJU0FCTEVELg0KICogTmF0aXZlIEFQSTogZG9jdW1lbnQubW9kZWxDb250ZXh0LnJlZ2lzdGVyVG9vbCgpLiBObyBwb2x5ZmlsbCBvciBuZXR3b3JrIGNhbGxzLg0KICogUmVnaXN0cmF0aW9uIGlzIGxpbWl0ZWQgdG8gcHVibGljIGNvbnRhY3QgcGFnZXMgRU4gMjA4NTksIERFIDIzODExLCBKQSAyNDA5NC4NCiAqLw0KKGZ1bmN0aW9uICgpIHsNCiAgInVzZSBzdHJpY3QiOw0KDQogIGNvbnN0IEZMQUcgPSAiZnBXZWJNQ1BDb250YWN0c1BpbG90VjEiOw0KICBjb25zdCBQQUdFX0lEUyA9IFsyMDg1OSwgMjM4MTEsIDI0MDk0XTsNCiAgY29uc3QgTUFYX0NPTlRBQ1RTID0gNjsNCiAgY29uc3QgUFJFVklFV19LRVlTID0gWw0KICAgICJwcmV2aWV3IiwgInByZXZpZXdfaWQiLCAicHJldmlld19ub25jZSIsICJjdXN0b21pemVfY2hhbmdlc2V0X3V1aWQiLA0KICAgICJ2Y19lZGl0YWJsZSIsICJ2Y19hY3Rpb24iLCAiZWxlbWVudG9yLXByZXZpZXciDQogIF07DQoNCiAgZnVuY3Rpb24gYWxsb3dlZFBhZ2UoKSB7DQogICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7DQogICAgaWYgKCFib2R5IHx8ICF3aW5kb3cuaXNTZWN1cmVDb250ZXh0IHx8IHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSByZXR1cm4gZmFsc2U7DQogICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gIT09ICJodHRwczovL2ZwZGVzaWduLmNvbSIpIHJldHVybiBmYWxzZTsNCiAgICBpZiAoIVBBR0VfSURTLnNvbWUoaWQgPT4gYm9keS5jbGFzc0xpc3QuY29udGFpbnMoInBhZ2UtaWQtIiArIGlkKSkpIHJldHVybiBmYWxzZTsNCiAgICBpZiAoWyJsb2dnZWQtaW4iLCAid3AtYWRtaW4iLCAicHJldmlldyIsICJ3cC1jdXN0b21pemVyIl0uc29tZSgNCiAgICAgIG5hbWUgPT4gYm9keS5jbGFzc0xpc3QuY29udGFpbnMobmFtZSkNCiAgICApKSByZXR1cm4gZmFsc2U7DQogICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wb3N0LXBhc3N3b3JkLWZvcm0iKSkgcmV0dXJuIGZhbHNlOw0KICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsNCiAgICByZXR1cm4gIVBSRVZJRVdfS0VZUy5zb21lKGtleSA9PiBxdWVyeS5oYXMoa2V5KSk7DQogIH0NCg0KICBmdW5jdGlvbiBub3JtYWxpemVQaG9uZSh2YWx1ZSkgew0KICAgIGNvbnN0IHRleHQgPSB2YWx1ZS5yZXBsYWNlKC9ccysvZywgIiAiKS50cmltKCk7DQogICAgLy8gT25seSB1bmFtYmlndW91cyBpbnRlcm5hdGlvbmFsIG51bWJlcnM7IGRvIG5vdCBpbmZlciBjb3VudHJ5IGNvZGVzLg0KICAgIGlmICghL15cK1sxLTldWzAtOSAuLV17NSw0NX0kLy50ZXN0KHRleHQpKSByZXR1cm4gbnVsbDsNCiAgICBjb25zdCBkaWdpdHMgPSB0ZXh0LnJlcGxhY2UoL1sgLi1dL2csICIiKTsNCiAgICByZXR1cm4gL15cK1sxLTldWzAtOV17NiwxNH0kLy50ZXN0KGRpZ2l0cykgPyAidGVsOiIgKyBkaWdpdHMgOiBudWxsOw0KICB9DQoNCiAgZnVuY3Rpb24gbm9ybWFsaXplTGluayhyYXcpIHsNCiAgICBpZiAodHlwZW9mIHJhdyAhPT0gInN0cmluZyIgfHwgcmF3Lmxlbmd0aCA+IDI1NikgcmV0dXJuIG51bGw7DQogICAgY29uc3QgbWF0Y2ggPSAvXihtYWlsdG98dGVsKTooLispJC9pLmV4ZWMocmF3LnRyaW0oKSk7DQogICAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7DQogICAgbGV0IHZhbHVlOw0KICAgIHRyeSB7DQogICAgICAvLyBPbWl0IG1haWwgc3ViamVjdC9ib2R5IGFuZCBvdGhlciBxdWVyeSBvciBmcmFnbWVudCBkYXRhLg0KICAgICAgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMl0uc3BsaXQoL1s/I10vLCAxKVswXSkudHJpbSgpOw0KICAgIH0gY2F0Y2ggKF8pIHsNCiAgICAgIHJldHVybiBudWxsOw0KICAgIH0NCiAgICBpZiAobWF0Y2hbMV0udG9Mb3dlckNhc2UoKSA9PT0gInRlbCIpIHJldHVybiBub3JtYWxpemVQaG9uZSh2YWx1ZSk7DQogICAgaWYgKHZhbHVlLmxlbmd0aCA+IDEyMCB8fCAhL15bYS16MC05XVthLXowLTkuXystXSpAZnBkZXNpZ25cLmNvbSQvaS50ZXN0KHZhbHVlKSkgew0KICAgICAgcmV0dXJuIG51bGw7DQogICAgfQ0KICAgIHJldHVybiAibWFpbHRvOiIgKyB2YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICB9DQoNCiAgZnVuY3Rpb24gcmVhZENvbnRhY3RzKCkgew0KICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1jb250ZW50Iik7DQogICAgY29uc3QgY29udGFjdHMgPSBuZXcgU2V0KCk7DQogICAgaWYgKHJvb3QpIHsNCiAgICAgIC8vIFNjb3BlIHJlYWRzIHRvIHRoZSBleGlzdGluZywgZWRpdG9yaWFsIGNvbnRhY3QgYmxvY2tzLCBub3QgZm9ybXMvY29tbWVudHMuDQogICAgICBmb3IgKGNvbnN0IGxpbmsgb2Ygcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuZnBkLWNvbnRhY3QtYmxvY2sgYVtocmVmXSIpKSB7DQogICAgICAgIGNvbnN0IGNvbnRhY3QgPSBub3JtYWxpemVMaW5rKGxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIikpOw0KICAgICAgICBpZiAoY29udGFjdCkgY29udGFjdHMuYWRkKGNvbnRhY3QpOw0KICAgICAgICBpZiAoY29udGFjdHMuc2l6ZSA+PSBNQVhfQ09OVEFDVFMpIGJyZWFrOw0KICAgICAgfQ0KICAgICAgaWYgKGNvbnRhY3RzLnNpemUgPCBNQVhfQ09OVEFDVFMpIHsNCiAgICAgICAgZm9yIChjb25zdCBwYXJhZ3JhcGggb2Ygcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuZnBkLWNvbnRhY3QtYmxvY2sgcCIpKSB7DQogICAgICAgICAgY29uc3QgdGV4dCA9IHBhcmFncmFwaC50ZXh0Q29udGVudCB8fCAiIjsNCiAgICAgICAgICBjb25zdCBjb250YWN0ID0gdGV4dC5sZW5ndGggPD0gNjQgPyBub3JtYWxpemVQaG9uZSh0ZXh0KSA6IG51bGw7DQogICAgICAgICAgaWYgKGNvbnRhY3QpIGNvbnRhY3RzLmFkZChjb250YWN0KTsNCiAgICAgICAgICBpZiAoY29udGFjdHMuc2l6ZSA+PSBNQVhfQ09OVEFDVFMpIGJyZWFrOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIGNvbnN0IHJhd0xhbmd1YWdlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgfHwgIiI7DQogICAgY29uc3QgbGFuZ3VhZ2UgPSAvXlthLXpdezIsM30oPzotW2EtejAtOV17Miw4fSkqJC9pLnRlc3QocmF3TGFuZ3VhZ2UpDQogICAgICAmJiByYXdMYW5ndWFnZS5sZW5ndGggPD0gMzUgPyByYXdMYW5ndWFnZSA6ICJ1bmQiOw0KICAgIHJldHVybi
2941BKU09OLnN0cmluZ2lmeSh7DQogICAgICBzY29wZTogImN1cnJlbnRfY29udGFjdF9wYWdlIiwNCiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZSwNCiAgICAgIGNvbnRhY3RzOiBBcnJheS5mcm9tKGNvbnRhY3RzKQ0KICAgIH0pOw0KICB9DQoNCiAgYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHsNCiAgICBpZiAoIWFsbG93ZWRQYWdlKCkgfHwgd2luZG93W0ZMQUddKSByZXR1cm47DQogICAgY29uc3QgY29udGV4dCA9IGRvY3VtZW50Lm1vZGVsQ29udGV4dDsNCiAgICBpZiAoIWNvbnRleHQgfHwgdHlwZW9mIGNvbnRleHQucmVnaXN0ZXJUb29sICE9PSAiZnVuY3Rpb24iKSByZXR1cm47DQogICAgd2luZG93W0ZMQUddID0gInJlZ2lzdGVyaW5nIjsNCiAgICB0cnkgew0KICAgICAgYXdhaXQgY29udGV4dC5yZWdpc3RlclRvb2woew0KICAgICAgICBuYW1lOiAiZnBfZ2V0X2NvbnRhY3Rfb3B0aW9ucyIsDQogICAgICAgIGRlc2NyaXB0aW9uOg0KICAgICAgICAgICJSZWFkIHVwIHRvIHNpeCBwdWJsaWMgZi9wIGJ1c2luZXNzIGVtYWlsIGFuZCBpbnRlcm5hdGlvbmFsIHRlbGVwaG9uZSAiICsNCiAgICAgICAgICAiY29udGFjdHMgZnJvbSB0aGUgY3VycmVudCBjb250YWN0IHBhZ2UsIHdpdGggaXRzIHBhZ2UgbGFuZ3VhZ2UuICIgKw0KICAgICAgICAgICJObyBwYXJhbWV0ZXJzLiBEb2VzIG5vdCBzZW5kIG1lc3NhZ2VzLCBtYWtlIGNhbGxzIG9yIGJvb2sgYXBwb2ludG1lbnRzLiIsDQogICAgICAgIGlucHV0U2NoZW1hOiB7DQogICAgICAgICAgdHlwZTogIm9iamVjdCIsDQogICAgICAgICAgcHJvcGVydGllczoge30sDQogICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlDQogICAgICAgIH0sDQogICAgICAgIGFubm90YXRpb25zOiB7DQogICAgICAgICAgcmVhZE9ubHlIaW50OiB0cnVlLA0KICAgICAgICAgIHVudHJ1c3RlZENvbnRlbnRIaW50OiB0cnVlLA0KICAgICAgICAgIGNvbnNlcXVlbnRpYWxIaW50OiBmYWxzZQ0KICAgICAgICB9LA0KICAgICAgICBleGVjdXRlOiBhc3luYyBmdW5jdGlvbiAoYXJncyA9IHt9KSB7DQogICAgICAgICAgaWYgKGFyZ3MgPT09IG51bGwgfHwgdHlwZW9mIGFyZ3MgIT09ICJvYmplY3QiIHx8IEFycmF5LmlzQXJyYXkoYXJncykNCiAgICAgICAgICAgIHx8IE9iamVjdC5rZXlzKGFyZ3MpLmxlbmd0aCAhPT0gMCkgew0KICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgZXJyb3I6ICJub19wYXJhbWV0ZXJzX2V4cGVjdGVkIiB9KTsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKCFhbGxvd2VkUGFnZSgpKSByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyBlcnJvcjogIm91dHNpZGVfcGlsb3Rfc2NvcGUiIH0pOw0KICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gcmVhZENvbnRhY3RzKCk7DQogICAgICAgICAgfSBjYXRjaCAoXykgew0KICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgZXJyb3I6ICJjb250YWN0X3JlYWRfZmFpbGVkIiB9KTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgICAgd2luZG93W0ZMQUddID0gInJlZ2lzdGVyZWQiOw0KICAgIH0gY2F0Y2ggKF8pIHsNCiAgICAgIGRlbGV0ZSB3aW5kb3dbRkxBR107DQogICAgICBjb25zb2xlLndhcm4oImYvcCBXZWJNQ1A6IGNvbnRhY3QgdG9vbCByZWdpc3RyYXRpb24gZmFpbGVkLiIpOw0KICAgIH0NCiAgfQ0KDQogIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAibG9hZGluZyIpIHsNCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgaW5pdGlhbGl6ZSwgeyBvbmNlOiB0cnVlIH0pOw0KICB9IGVsc2Ugew0KICAgIHZvaWQgaW5pdGlhbGl6ZSgpOw0KICB9DQp9KSgpOw0K"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/ui/core.min.js" id="jquery-ui-core-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/ui/tabs.min.js" id="jquery-ui-tabs-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/ui/accordion.min.js" id="jquery-ui-accordion-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_eae574630691cbf72e5796b9d7572260.php" id="doubleTapToGo-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge/js/plugins/modernizr.min.js" id="modernizr-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_72f19f5f564a43b1175f9ce86981987c.php" id="appear-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/hoverIntent.min.js" id="hoverIntent-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_93f53b07ab85f3068dd7911a2c5bc00d.php" id="prettyphoto-js"></script>
2941 
2941<script defer id="mediaelement-core-js-before" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgbWVqc0wxMG4gPSB7Imxhbmd1YWdlIjoiZW4iLCJzdHJpbmdzIjp7Im1lanMuZG93bmxvYWQtZmlsZSI6IkRvd25sb2FkIEZpbGUiLCJtZWpzLmluc3RhbGwtZmxhc2giOiJZb3UgYXJlIHVzaW5nIGEgYnJvd3NlciB0aGF0IGRvZXMgbm90IGhhdmUgRmxhc2ggcGxheWVyIGVuYWJsZWQgb3IgaW5zdGFsbGVkLiBQbGVhc2UgdHVybiBvbiB5b3VyIEZsYXNoIHBsYXllciBwbHVnaW4gb3IgZG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gaHR0cHM6XC9cL2dldC5hZG9iZS5jb21cL2ZsYXNocGxheWVyXC8iLCJtZWpzLmZ1bGxzY3JlZW4iOiJGdWxsc2NyZWVuIiwibWVqcy5wbGF5IjoiUGxheSIsIm1lanMucGF1c2UiOiJQYXVzZSIsIm1lanMudGltZS1zbGlkZXIiOiJUaW1lIFNsaWRlciIsIm1lanMudGltZS1oZWxwLXRleHQiOiJVc2UgTGVmdFwvUmlnaHQgQXJyb3cga2V5cyB0byBhZHZhbmNlIG9uZSBzZWNvbmQsIFVwXC9Eb3duIGFycm93cyB0byBhZHZhbmNlIHRlbiBzZWNvbmRzLiIsIm1lanMubGl2ZS1icm9hZGNhc3QiOiJMaXZlIEJyb2FkY2FzdCIsIm1lanMudm9sdW1lLWhlbHAtdGV4dCI6IlVzZSBVcFwvRG93biBBcnJvdyBrZXlzIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHZvbHVtZS4iLCJtZWpzLnVubXV0ZSI6IlVubXV0ZSIsIm1lanMubXV0ZSI6Ik11dGUiLCJtZWpzLnZvbHVtZS1zbGlkZXIiOiJWb2x1bWUgU2xpZGVyIiwibWVqcy52aWRlby1wbGF5ZXIiOiJWaWRlbyBQbGF5ZXIiLCJtZWpzLmF1ZGlvLXBsYXllciI6IkF1ZGlvIFBsYXllciIsIm1lanMuY2FwdGlvbnMtc3VidGl0bGVzIjoiQ2FwdGlvbnNcL1N1YnRpdGxlcyIsIm1lanMuY2FwdGlvbnMtY2hhcHRlcnMiOiJDaGFwdGVycyIsIm1lanMubm9uZSI6Ik5vbmUiLCJtZWpzLmFmcmlrYWFucyI6IkFmcmlrYWFucyIsIm1lanMuYWxiYW5pYW4iOiJBbGJhbmlhbiIsIm1lanMuYXJhYmljIjoiQXJhYmljIiwibWVqcy5iZWxhcnVzaWFuIjoiQmVsYXJ1c2lhbiIsIm1lanMuYnVsZ2FyaWFuIjoiQnVsZ2FyaWFuIiwibWVqcy5jYXRhbGFuIjoiQ2F0YWxhbiIsIm1lanMuY2hpbmVzZSI6IkNoaW5lc2UiLCJtZWpzLmNoaW5lc2Utc2ltcGxpZmllZCI6IkNoaW5lc2UgKFNpbXBsaWZpZWQpIiwibWVqcy5jaGluZXNlLXRyYWRpdGlvbmFsIjoiQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIiwibWVqcy5jcm9hdGlhbiI6IkNyb2F0aWFuIiwibWVqcy5jemVjaCI6IkN6ZWNoIiwibWVqcy5kYW5pc2giOiJEYW5pc2giLCJtZWpzLmR1dGNoIjoiRHV0Y2giLCJtZWpzLmVuZ2xpc2giOiJFbmdsaXNoIiwibWVqcy5lc3RvbmlhbiI6IkVzdG9uaWFuIiwibWVqcy5maWxpcGlubyI6IkZpbGlwaW5vIiwibWVqcy5maW5uaXNoIjoiRmlubmlzaCIsIm1lanMuZnJlbmNoIjoiRnJlbmNoIiwibWVqcy5nYWxpY2lhbiI6IkdhbGljaWFuIiwibWVqcy5nZXJtYW4iOiJHZXJtYW4iLCJtZWpzLmdyZWVrIjoiR3JlZWsiLCJtZWpzLmhhaXRpYW4tY3Jlb2xlIjoiSGFpdGlhbiBDcmVvbGUiLCJtZWpzLmhlYnJldyI6IkhlYnJldyIsIm1lanMuaGluZGkiOiJIaW5kaSIsIm1lanMuaHVuZ2FyaWFuIjoiSHVuZ2FyaWFuIiwibWVqcy5pY2VsYW5kaWMiOiJJY2VsYW5kaWMiLCJtZWpzLmluZG9uZXNpYW4iOiJJbmRvbmVzaWFuIiwibWVqcy5pcmlzaCI6IklyaXNoIiwibWVqcy5pdGFsaWFuIjoiSXRhbGlhbiIsIm1lanMuamFwYW5lc2UiOiJKYXBhbmVzZSIsIm1lanMua29yZWFuIjoiS29yZWFuIiwibWVqcy5sYXR2aWFuIjoiTGF0dmlhbiIsIm1lanMubGl0aHVhbmlhbiI6IkxpdGh1YW5pYW4iLCJtZWpzLm1hY2Vkb25pYW4iOiJNYWNlZG9uaWFuIiwibWVqcy5tYWxheSI6Ik1hbGF5IiwibWVqcy5tYWx0ZXNlIjoiTWFsdGVzZSIsIm1lanMubm9yd2VnaWFuIjoiTm9yd2VnaWFuIiwibWVqcy5wZXJzaWFuIjoiUGVyc2lhbiIsIm1lanMucG9saXNoIjoiUG9saXNoIiwibWVqcy5wb3J0dWd1ZXNlIjoiUG9ydHVndWVzZSIsIm1lanMucm9tYW5pYW4iOiJSb21hbmlhbiIsIm1lanMucnVzc2lhbiI6IlJ1c3NpYW4iLCJtZWpzLnNlcmJpYW4iOiJTZXJiaWFuIiwibWVqcy5zbG92YWsiOiJTbG92YWsiLCJtZWpzLnNsb3ZlbmlhbiI6IlNsb3ZlbmlhbiIsIm1lanMuc3BhbmlzaCI6IlNwYW5pc2giLCJtZWpzLnN3YWhpbGkiOiJTd2FoaWxpIiwibWVqcy5zd2VkaXNoIjoiU3dlZGlzaCIsIm1lanMudGFnYWxvZyI6IlRhZ2Fsb2ciLCJtZWpzLnRoYWkiOiJUaGFpIiwibWVqcy50dXJraXNoIjoiVHVya2lzaCIsIm1lanMudWtyYWluaWFuIjoiVWtyYWluaWFuIiwibWVqcy52aWV0bmFtZXNlIjoiVmlldG5hbWVzZSIsIm1lanMud2Vsc2giOiJXZWxzaCIsIm1lanMueWlkZGlzaCI6IllpZGRpc2gifX07Ci8qIF1dPiAqLwo="></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js" id="mediaelement-core-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/mediaelement/mediaelement-migrate.min.js" id="mediaelement-migrate-js"></script>
2941 
2941<script defer id="mediaelement-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgX3dwbWVqc1NldHRpbmdzID0geyJwbHVnaW5QYXRoIjoiXC93cC1pbmNsdWRlc1wvanNcL21lZGlhZWxlbWVudFwvIiwiY2xhc3NQcmVmaXgiOiJtZWpzLSIsInN0cmV0Y2hpbmciOiJyZXNwb25zaXZlIiwiYXVkaW9TaG9ydGNvZGVMaWJyYXJ5IjoibWVkaWFlbGVtZW50IiwidmlkZW9TaG9ydGNvZGVMaWJyYXJ5IjoibWVkaWFlbGVtZW50In07Ci8qIF1dPiAqLwo="></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/mediaelement/wp-mediaelement.min.js" id="wp-mediaelement-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_f556337e0f81cf84d8e083a0a0c07ea4.php" id="waitforimages-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/jquery.form.min.js" id="jquery-form-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge/js/plugins/waypoints.min.js" id="waypoints-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_38ade284e1c3428a4f273a5d7d253946.php" id="easing-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_1b177c49d026696b49a218a9c98ef774.php" id="skrollr-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge/js/default_dynamic_callback.php" id="bridge-default-dynamic-js"></script>
2941 
2941<script defer id="bridge-default-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgUW9kZUFkbWluQWpheCA9IHsiYWpheHVybCI6Imh0dHBzOlwvXC9mcGRlc2lnbi5jb21cL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCJ9Owp2YXIgcW9kZUdsb2JhbFZhcnMgPSB7InZhcnMiOnsicW9kZUFkZGluZ1RvQ2FydExhYmVsIjoiQWRkaW5nIHRvIENhcnQuLi4iLCJwYWdlX3Njcm9sbF9hbW91bnRfZm9yX3N0aWNreSI6IiIsImNvbW1lbnRTZW50TGFiZWwiOiJDb21tZW50IGhhcyBiZWVuIHNlbnQhIn19OwovKiBdXT4gKi8K"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge/js/default.min.js" id="bridge-default-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/plugins/js_composer/assets/js/dist/js_composer_front.min.js" id="wpb_composer_front_js-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge/js/plugins/jquery.nicescroll.min.js" id="niceScroll-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/plugins/bridge-core/modules/shortcodes/assets/js/nice-scroll-part.min.js" id="qode-nice-scroll-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_7be9891b13437c1fbc363a50a79060af.php" id="googlesitekit-consent-mode-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge-child/frontend/config/bower_components/Swiper/dist/js/swiper.jquery.min.js" id="swiper_js-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/themes/bridge-child/scripts.min.js" id="fp_design_js-js"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_5fda0941aef9722b51fc50b235286854.php" id="bridge-child-custom-js-js"></script>
2941 
2941<script defer id="googlesitekit-events-provider-content-events-js-before" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3aW5kb3cuX2dvb2dsZXNpdGVraXQgPSB3aW5kb3cuX2dvb2dsZXNpdGVraXQgfHwge307CndpbmRvdy5fZ29vZ2xlc2l0ZWtpdC5jb250ZW50RXZlbnRzID0geyJwb3N0SUQiOjIxMzA1LCJpc1JlYWRhYmxlU2luZ2xlUG9zdCI6ZmFsc2UsImhhc1ZpbWVvRW1iZWQiOmZhbHNlLCJ3b3JkQ291bnQiOjAsImVzdGltYXRlZFJlYWRUaW1lU2Vjb25kcyI6MCwiaXNMYXN0UGFnZU9mTXVsdGlQYWdlUG9zdCI6ZmFsc2UsInJlYWRUaW1lVGhyZXNob2xkUGVyY2VudCI6ODUsIm1pbmltdW1SZWFkVGltZVNlY29uZHMiOjV9OwovKiBdXT4gKi8K"></script>
2941 
2941<script type="text/javascript" src="https://fpdesign.com/wp-content/cache/autoptimize/autoptimize_single_9a9f588bba3eeb301de7690c346d445d.php" id="googlesitekit-events-provider-content-events-js" defer></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-includes/js/jquery/ui/effect.min.js" id="jquery-effects-core-js"></script>
2941 
2941<script defer id="the-grid-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgdGdfZ2xvYmFsX3ZhciA9IHsidXJsIjoiaHR0cHM6XC9cL2ZwZGVzaWduLmNvbVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwibm9uY2UiOiJiNmJiNDFkMTQ4IiwiaXNfbW9iaWxlIjpudWxsLCJtZWRpYWVsZW1lbnQiOiIiLCJtZWRpYWVsZW1lbnRfZXgiOm51bGwsImxpZ2h0Ym94X2F1dG9wbGF5IjoiIiwiZGVib3VuY2UiOiIiLCJtZXRhX2RhdGEiOm51bGwsIm1haW5fcXVlcnkiOnsicGFnZSI6MCwicGFnZW5hbWUiOiJkZXNpZ24tc2VydmljZXMiLCJlcnJvciI6IiIsIm0iOiIiLCJwIjowLCJwb3N0X3BhcmVudCI6IiIsInN1YnBvc3QiOiIiLCJzdWJwb3N0X2lkIjoiIiwiYXR0YWNobWVudCI6IiIsImF0dGFjaG1lbnRfaWQiOjAsIm5hbWUiOiJkZXNpZ24tc2VydmljZXMiLCJwYWdlX2lkIjowLCJzZWNvbmQiOiIiLCJtaW51dGUiOiIiLCJob3VyIjoiIiwiZGF5IjowLCJtb250aG51bSI6MCwieWVhciI6MCwidyI6MCwiY2F0ZWdvcnlfbmFtZSI6IiIsInRhZyI6IiIsImNhdCI6IiIsInRhZ19pZCI6IiIsImF1dGhvciI6IiIsImF1dGhvcl9uYW1lIjoiIiwiZmVlZCI6IiIsInRiIjoiIiwicGFnZWQiOjAsIm1ldGFfa2V5IjoiIiwibWV0YV92YWx1ZSI6IiIsInByZXZpZXciOiIiLCJzIjoiIiwic2VudGVuY2UiOiIiLCJ0aXRsZSI6IiIsImZpZWxkcyI6ImFsbCIsIm1lbnVfb3JkZXIiOiIiLCJlbWJlZCI6IiIsImNhdGVnb3J5X19pbiI6W10sImNhdGVnb3J5X19ub3RfaW4iOltdLCJjYXRlZ29yeV9fYW5kIjpbXSwicG9zdF9faW4iOltdLCJwb3N0X19ub3RfaW4iOltdLCJwb3N0X25hbWVfX2luIjpbXSwidGFnX19pbiI6W10sInRhZ19fbm90X2luIjpbXSwidGFnX19hbmQiOltdLCJ0YWdfc2x1Z19faW4iOltdLCJ0YWdfc2x1Z19fYW5kIjpbXSwicG9zdF9wYXJlbnRfX2luIjpbXSwicG9zdF9wYXJlbnRfX25vdF9pbiI6W10sImF1dGhvcl9faW4iOltdLCJhdXRob3JfX25vdF9pbiI6W10sInNlYXJjaF9jb2x1bW5zIjpbXSwiaWdub3JlX3N0aWNreV9wb3N0cyI6ZmFsc2UsInN1cHByZXNzX2ZpbHRlcnMiOmZhbHNlLCJjYWNoZV9yZXN1bHRzIjp0cnVlLCJ1cGRhdGVfcG9zdF90ZXJtX2NhY2hlIjp0cnVlLCJ1cGRhdGVfbWVudV9pdGVtX2NhY2hlIjpmYWxzZSwibGF6eV9sb2FkX3Rlcm1fbWV0YSI6dHJ1ZSwidXBkYXRlX3Bvc3RfbWV0YV9jYWNoZSI6dHJ1ZSwicG9zdF90eXBlIjoiIiwicG9zdHNfcGVyX3BhZ2UiOjIwLCJub3BhZ2luZyI6ZmFsc2UsImNvbW1lbnRzX3Blcl9wYWdlIjoiNTAiLCJub19mb3VuZF9yb3dzIjpmYWxzZSwib3JkZXIiOiJERVNDIn19OwovKiBdXT4gKi8K"></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/plugins/the-grid/frontend/assets/js/the-grid.min.js" id="the-grid-js"></script>
2941 
2941<script defer id="wp-consent-api-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgY29uc2VudF9hcGkgPSB7ImNvbnNlbnRfdHlwZSI6IiIsIndhaXRmb3JfY29uc2VudF9ob29rIjoiIiwiY29va2llX2V4cGlyYXRpb24iOiIzMCIsImNvb2tpZV9wcmVmaXgiOiJ3cF9jb25zZW50Iiwic2VydmljZXMiOltdfTsKLyogXV0+ICovCg=="></script>
2941 
2941<script defer type="text/javascript" src="https://fpdesign.com/wp-content/plugins/wp-consent-api/assets/js/wp-consent-api.min.js" id="wp-consent-api-js"></script>
2941 
2941<script id="fp-webmcp-config" type="application/json">{"api":"https:\/\/fpdesign.com\/wp-json\/fp-webmcp\/v1\/","page_id":21305,"version":"2.0.1"}</script>
2941<script defer id="fp-webmcp-v2" src="data:text/javascript;base64,LyogZi9wIFdlYk1DUCAyLjAuMS4gUmVhZC1vbmx5LCBuYXRpdmUgQVBJLCBubyBwb2x5ZmlsbCwgbm8gdGVsZW1ldHJ5LiAqLw0KKGZ1bmN0aW9uICgpIHsNCiAgJ3VzZSBzdHJpY3QnOw0KICBjb25zdCBGTEFHID0gJ2ZwV2ViTUNQVjInOw0KICBjb25zdCBMQU5HUyA9IFsnZW4nLCdkZScsJ2phJywnaXQnLCd6aC1oYW5zJywnc3InXTsNCiAgY29uc3QgTE9DUyA9IFsnbXVuaWNoJywnYmVybGluJywna3lvdG8nLCd6dXJpY2gnLCd2ZXJvbmEnLCdiZWxncmFkZScsJ211bWJhaScsJ2JlaWppbmcnXTsNCiAgY29uc3QgUFJFVklFVyA9IFsncHJldmlldycsJ3ByZXZpZXdfaWQnLCdwcmV2aWV3X25vbmNlJywnY3VzdG9taXplX2NoYW5nZXNldF91dWlkJywndmNfZWRpdGFibGUnLCd2Y19hY3Rpb24nLCdlbGVtZW50b3ItcHJldmlldyddOw0KICBsZXQgY29uZmlnOw0KICBmdW5jdGlvbiBhbGxvd2VkKCkgew0KICAgIHJldHVybiB3aW5kb3cuaXNTZWN1cmVDb250ZXh0ICYmIHdpbmRvdy5zZWxmID09PSB3aW5kb3cudG9wICYmIGxvY2F0aW9uLm9yaWdpbiA9PT0gJ2h0dHBzOi8vZnBkZXNpZ24uY29tJw0KICAgICAgJiYgZG9jdW1lbnQuYm9keSAmJiAhZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ2xvZ2dlZC1pbicpDQogICAgICAmJiAhZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBvc3QtcGFzc3dvcmQtZm9ybScpDQogICAgICAmJiAhUFJFVklFVy5zb21lKGsgPT4gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmhhcyhrKSk7DQogIH0NCiAgZnVuY3Rpb24gY2xlYW4odmFsdWUsIG1heD00MDApIHsgcmV0dXJuIFN0cmluZyh2YWx1ZSB8fCAnJykucmVwbGFjZSgvXHMrL2csJyAnKS50cmltKCkuc2xpY2UoMCxtYXgpOyB9DQogIGZ1bmN0aW9uIGxhbmd1YWdlKCkgew0KICAgIGNvbnN0IHZhbHVlPShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyB8fCAnZW4nKS50b0xvd2VyQ2FzZSgpOw0KICAgIHJldHVybiB2YWx1ZS5zdGFydHNXaXRoKCd6aCcpID8gJ3poLWhhbnMnIDogKExBTkdTLmluY2x1ZGVzKHZhbHVlLnNwbGl0KCctJylbMF0pID8gdmFsdWUuc3BsaXQoJy0nKVswXSA6ICdlbicpOw0KICB9DQogIGZ1bmN0aW9uIHNhbWVTaXRlKHJhdykgew0KICAgIGNvbnN0IHU9bmV3IFVSTChyYXcsbG9jYXRpb24ub3JpZ2luKTsNCiAgICBpZiAodS5vcmlnaW4gIT09IGxvY2F0aW9uLm9yaWdpbiB8fCB1LnVzZXJuYW1lIHx8IHUucGFzc3dvcmQgfHwgdS5wYXRobmFtZS5zdGFydHNXaXRoKCcvd3AtYWRtaW4nKSB8fCAvc2FuLWZyYW5jaXNjby9pLnRlc3QodS5wYXRobmFtZSkpIHRocm93IG5ldyBFcnJvcignZGlzYWxsb3dlZF91cmwnKTsNCiAgICByZXR1cm4gdTsNCiAgfQ0KICBhc3luYyBmdW5jdGlvbiBsb2FkKHJhdywgc2lnbmFsLCBqc29uPXRydWUpIHsNCiAgICBjb25zdCB1PXNhbWVTaXRlKHJhdyk7DQogICAgY29uc3QgY29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyKCk7DQogICAgY29uc3QgYWJvcnQ9KCk9PmNvbnRyb2xsZXIuYWJvcnQoKTsNCiAgICBpZiAoc2lnbmFsICYmIHNpZ25hbC5hYm9ydGVkKSB0aHJvdyBuZXcgRXJyb3IoJ2NhbmNlbGxlZCcpOw0KICAgIGlmIChzaWduYWwpIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsYWJvcnQse29uY2U6dHJ1ZX0pOw0KICAgIGNvbnN0IHRpbWVyPXNldFRpbWVvdXQoYWJvcnQsMTIwMDApOw0KICAgIHRyeSB7DQogICAgICBjb25zdCByPWF3YWl0IGZldGNoKHUuaHJlZix7bWV0aG9kOidHRVQnLGNyZWRlbnRpYWxzOidvbWl0JyxyZWRpcmVjdDonZXJyb3InLHJlZmVycmVyUG9saWN5Oiduby1yZWZlcnJlcicsc2lnbmFsOmNvbnRyb2xsZXIuc2lnbmFsLGhlYWRlcnM6e0FjY2VwdDpqc29uPydhcHBsaWNhdGlvbi9qc29uJzondGV4dC9odG1sJ319KTsNCiAgICAgIGlmICghci5vaykgdGhyb3cgbmV3IEVycm9yKCdodHRwXycrci5zdGF0dXMpOw0KICAgICAgY29uc3QgbWltZT1yLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSB8fCAnJzsNCiAgICAgIGlmIChqc29uID8gIW1pbWUuaW5jbHVkZXMoJ2pzb24nKSA6ICFtaW1lLmluY2x1ZGVzKCd0ZXh0L2h0bWwnKSkgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGVjdGVkX2NvbnRlbnRfdHlwZScpOw0KICAgICAgY29uc3QgcmVhZGVyPXIuYm9keS5nZXRSZWFkZXIoKTsgY29uc3QgZGVjb2Rlcj1uZXcgVGV4dERlY29kZXIoKTsgbGV0IGJ5dGVzPTA7IGxldCB0ZXh0PScnOw0KICAgICAgdHJ5IHsNCiAgICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgICBjb25zdCBwYXJ0PWF3YWl0IHJlYWRlci5yZWFkKCk7IGlmIChwYXJ0LmRvbmUpIGJyZWFrOw0KICAgICAgICAgIGJ5dGVzKz1wYXJ0LnZhbHVlLmJ5dGVMZW5ndGg7DQogICAgICAgICAgaWYgKGJ5dGVzPjMwMDAwMDApIHsgY29udHJvbGxlci5hYm9ydCgpOyB0aHJvdyBuZXcgRXJyb3IoJ3Jlc3BvbnNlX3Rvb19sYXJnZScpOyB9DQogICAgICAgICAgdGV4dCs9ZGVjb2Rlci5kZWNvZGUocGFydC52YWx1ZSx7c3RyZWFtOnRydWV9KTsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0Kz1kZWNvZGVyLmRlY29kZSgpOw0KICAgICAgfSBmaW5hbGx5IHsgcmVhZGVyLnJlbGVhc2VMb2NrKCk7IH0NCiAgICAgIHJldHVybiBqc29uID8gSlNPTi5wYXJzZSh0ZXh0KSA6IHRleHQ7DQogICAgfSBmaW5hbGx5IHsNCiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7DQogICAgICBpZiAoc2lnbmFsKSBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLGFib3J0KTsNCiAgICB9DQogIH0NCiAgZnVuY3Rpb24gYXBpKHBhdGgsIGFyZ3MsIHNpZ25hbCkgew0KICAgIGNvbnN0IHU9bmV3IFVSTChwYXRoLGNvbmZpZy5hcGkpOw0KICAgIE9iamVjdC5lbnRyaWVzKGFyZ3MpLmZvckVhY2goKFtrLHZdKT0+dS5zZWFyY2hQYXJhbXMuc2V0KGssU3RyaW5nKHYpKSk7DQogICAgcmV0dXJuIGxvYWQodS5ocmVmLHNpZ25hbCx0cnVlKTsNCiAgfQ0KICBhc3luYyBmdW5jdGlvbiBkaXJlY3RvcnkobGFuZyxzaWduYWwpIHsgcmV0dXJuIGFwaSgnZGlyZWN0b3J5Jyx7bGFuZ30sc2lnbmFsKTsgfQ0KICBhc3luYyBmdW5jdGlvbiBwYWdlRGF0YShpZCxsYW5nLHNpZ25hbCkgew0KICAgIGNvbnN0IG1ldGE9YXdhaXQgYXBpKCdwYWdlJyx7aWQsbGFuZ30sc2lnbmFsKTsNCiAgICBjb25zdCBodG1sPWF3YWl0IGxvYWQobWV0YS51cmwsc2lnbmFsLGZhbHNlKTsNCiAgICBjb25zdCBkb2M9bmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhodG1sLCd0ZXh0L2h0bWwnKTsNCiAgICBjb25zdCByb2JvdHM9QXJyYXkuZnJvbShkb2MucXVlcnlTZWxlY3RvckFsbCgnbWV0YVtuYW1lPSJyb2JvdHMiXScpKS5tYXAobj0+bi5jb250ZW50KS5qb2luKCcsJyk7DQogICAgaWYgKC9cYm5vaW5kZXhcYi9pLnRlc3Qocm9ib3RzKSB8fCBkb2MucXVlcnlTZWxlY3RvcignLnBvc3QtcGFzc3dvcmQtZm9ybScpIHx8ICFkb2MuYm9keSB8fCBkb2MuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ2xvZ2dlZC1pbicpKSB0aHJvdyBuZXcgRXJyb3IoJ25vbl9wdWJsaWNfZG9jdW1lbnQnKTsNCiAgICBpZiAoIWRvYy5ib2R5LmNsYXNzTGlzdC5jb250YWlucygncGFnZS1pZC0nK21ldGEuaWQpICYmICFkb2MuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ3Bvc3RpZC0nK21ldGEuaWQpKSB0aHJvdyBuZXcgRXJyb3IoJ3BhZ2VfaWRlbnRpdHlfbWlzbWF0Y2gnKTsNCiAgICBjb25zdCByb290PWRvYy5nZXRFbGVtZW50QnlJZCgnbWFpbi1jb250ZW50JykgfHwgZG9jLnF1ZXJ5U2VsZWN0b3IoJ21haW4sIC5jb250ZW50Jyk7DQogICAgaWYgKCFyb290KSB0aHJvdyBuZXcgRXJyb3IoJ21haW5fY29udGVudF9taXNzaW5nJyk7DQogICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHQsc3R5bGUsbm9zY3JpcHQsaWZyYW1lLGZvcm0saW5wdXQsdGV4dGFyZWEsc2VsZWN0LGJ1dHRvbixuYXYsaGVhZG
2941VyLGZvb3RlcixbaGlkZGVuXSxbYXJpYS1oaWRkZW49InRydWUiXSwjY29tbWVudHMsLmNvbW1lbnQtbGlzdCwuY2xpLW1vZGFsJykuZm9yRWFjaChuPT5uLnJlbW92ZSgpKTsNCiAgICBjb25zdCBhY3R1YWw9KGRvYy5kb2N1bWVudEVsZW1lbnQubGFuZyB8fCBtZXRhLmxhbmd1YWdlKS50b0xvd2VyQ2FzZSgpOw0KICAgIHJldHVybiB7bWV0YTp7Li4ubWV0YSxkb2N1bWVudF9sYW5ndWFnZTphY3R1YWx9LHJvb3R9Ow0KICB9DQogIGZ1bmN0aW9uIHBob25lKHJhdykgew0KICAgIGNvbnN0IHY9Y2xlYW4ocmF3LDgwKS5yZXBsYWNlKC9edGVsWy46XT9ccyovaSwnJyk7DQogICAgaWYgKCEvXlwrWzEtOV1bMC05IC4oKS1dezUsNDV9JC8udGVzdCh2KSkgcmV0dXJuIG51bGw7DQogICAgY29uc3QgZGlnaXRzPXYucmVwbGFjZSgvWyAuKCktXS9nLCcnKTsNCiAgICByZXR1cm4gL15cK1sxLTldWzAtOV17NiwxNH0kLy50ZXN0KGRpZ2l0cyk/J3RlbDonK2RpZ2l0czpudWxsOw0KICB9DQogIGZ1bmN0aW9uIGNvbnRhY3QocmF3KSB7DQogICAgY29uc3QgbT0vXihtYWlsdG98dGVsKTooLispJC9pLmV4ZWMoU3RyaW5nKHJhdyB8fCAnJykudHJpbSgpKTsgaWYgKCFtKSByZXR1cm4gbnVsbDsNCiAgICBsZXQgdmFsdWU7IHRyeSB7IHZhbHVlPWRlY29kZVVSSUNvbXBvbmVudChtWzJdLnNwbGl0KC9bPyNdLylbMF0pOyB9IGNhdGNoIChfKSB7IHJldHVybiBudWxsOyB9DQogICAgaWYgKG1bMV0udG9Mb3dlckNhc2UoKT09PSd0ZWwnKSByZXR1cm4gcGhvbmUodmFsdWUpOw0KICAgIHJldHVybiAvXlthLXowLTldW2EtejAtOS5fKy1dKkBmcGRlc2lnblwuY29tJC9pLnRlc3QodmFsdWUpICYmIHZhbHVlLmxlbmd0aDw9MTIwID8gJ21haWx0bzonK3ZhbHVlLnRvTG93ZXJDYXNlKCk6bnVsbDsNCiAgfQ0KICBmdW5jdGlvbiBjb250YWN0Um93cyhyb290KSB7DQogICAgY29uc3QgYmxvY2tzPUFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuZnBkLWNvbnRhY3QtYmxvY2snKSk7DQogICAgY29uc3Qgcm9vdHM9YmxvY2tzLmxlbmd0aD9ibG9ja3M6W3Jvb3RdOyBjb25zdCBvdXQ9W107IGNvbnN0IHNlZW49bmV3IFNldCgpOw0KICAgIGZvciAoY29uc3QgYmxvY2sgb2Ygcm9vdHMpIHsNCiAgICAgIGNvbnN0IHZhbHVlcz1uZXcgU2V0KCk7DQogICAgICBibG9jay5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZdJykuZm9yRWFjaChhPT57Y29uc3Qgdj1jb250YWN0KGEuZ2V0QXR0cmlidXRlKCdocmVmJykpO2lmKHYpdmFsdWVzLmFkZCh2KTt9KTsNCiAgICAgIGJsb2NrLnF1ZXJ5U2VsZWN0b3JBbGwoJ3AnKS5mb3JFYWNoKHA9Pntjb25zdCB2PXAudGV4dENvbnRlbnQubGVuZ3RoPDgwP3Bob25lKHAudGV4dENvbnRlbnQpOm51bGw7aWYodil2YWx1ZXMuYWRkKHYpO30pOw0KICAgICAgY29uc3QgY29udGFjdHM9QXJyYXkuZnJvbSh2YWx1ZXMpLmZpbHRlcih2PT4hc2Vlbi5oYXModikpLnNsaWNlKDAsMjApOw0KICAgICAgY29udGFjdHMuZm9yRWFjaCh2PT5zZWVuLmFkZCh2KSk7DQogICAgICBpZiAoY29udGFjdHMubGVuZ3RoKSBvdXQucHVzaCh7bGFiZWw6Y2xlYW4oYmxvY2sucXVlcnlTZWxlY3Rvcignc3Ryb25nLGgyLGgzJyk/LnRleHRDb250ZW50LDEyMCksY29udGFjdHN9KTsNCiAgICB9DQogICAgcmV0dXJuIG91dC5zbGljZSgwLDEyKTsNCiAgfQ0KICBjb25zdCBTPShtYXhMZW5ndGg9MTAwKT0+KHt0eXBlOidzdHJpbmcnLG1heExlbmd0aH0pOw0KICBjb25zdCBFPXZhbHVlcz0+KHt0eXBlOidzdHJpbmcnLGVudW06dmFsdWVzfSk7DQogIGNvbnN0IE49KG1pbmltdW0sbWF4aW11bSk9Pih7dHlwZTonaW50ZWdlcicsbWluaW11bSxtYXhpbXVtfSk7DQogIGNvbnN0IGxhbmdTY2hlbWE9RShMQU5HUyk7DQogIGNvbnN0IGRlZmluaXRpb25zPVtdOw0KICBmdW5jdGlvbiB0b29sKG5hbWUsZGVzY3JpcHRpb24scHJvcGVydGllcyxyZXF1aXJlZCxoYW5kbGVyKSB7DQogICAgZGVmaW5pdGlvbnMucHVzaCh7bmFtZSxkZXNjcmlwdGlvbixpbnB1dFNjaGVtYTp7dHlwZTonb2JqZWN0Jyxwcm9wZXJ0aWVzLHJlcXVpcmVkLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOmZhbHNlfSwNCiAgICAgIGFubm90YXRpb25zOntyZWFkT25seUhpbnQ6dHJ1ZSx1bnRydXN0ZWRDb250ZW50SGludDp0cnVlLGNvbnNlcXVlbnRpYWxIaW50OmZhbHNlfSwNCiAgICAgIGV4ZWN1dGU6YXN5bmMgZnVuY3Rpb24oYXJncz17fSxleGVjdXRpb249e30pIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICBpZiAoIWFsbG93ZWQoKSkgdGhyb3cgbmV3IEVycm9yKCdvdXRzaWRlX3B1YmxpY19zY29wZScpOw0KICAgICAgICAgIGlmICghYXJncyB8fCB0eXBlb2YgYXJncyE9PSdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoYXJncykpIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9hcmd1bWVudHMnKTsNCiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhcmdzKSkgew0KICAgICAgICAgICAgY29uc3QgcnVsZT1wcm9wZXJ0aWVzW2tleV0sdj1hcmdzW2tleV07IGlmICghcnVsZSkgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duX2FyZ3VtZW50Jyk7DQogICAgICAgICAgICBpZiAocnVsZS50eXBlPT09J3N0cmluZycgJiYgKHR5cGVvZiB2IT09J3N0cmluZycgfHwgKHJ1bGUubWF4TGVuZ3RoIT09dW5kZWZpbmVkICYmIHYubGVuZ3RoPnJ1bGUubWF4TGVuZ3RoKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZF8nK2tleSk7DQogICAgICAgICAgICBpZiAocnVsZS50eXBlPT09J2ludGVnZXInICYmICghTnVtYmVyLmlzSW50ZWdlcih2KSB8fCB2PHJ1bGUubWluaW11bSB8fCB2PnJ1bGUubWF4aW11bSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZF8nK2tleSk7DQogICAgICAgICAgICBpZiAocnVsZS5lbnVtICYmICFydWxlLmVudW0uaW5jbHVkZXModikpIHRocm93IG5ldyBFcnJvcignaW52YWxpZF8nK2tleSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmIChyZXF1aXJlZC5zb21lKGs9PiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXJncyxrKSkpIHRocm93IG5ldyBFcnJvcignbWlzc2luZ19hcmd1bWVudCcpOw0KICAgICAgICAgIGlmIChleGVjdXRpb24/LnNpZ25hbD8uYWJvcnRlZCkgdGhyb3cgbmV3IEVycm9yKCdjYW5jZWxsZWQnKTsNCiAgICAgICAgICBjb25zdCBkYXRhPWF3YWl0IGhhbmRsZXIoey4uLmFyZ3MsbGFuZzphcmdzLmxhbmd1YWdlIHx8IGxhbmd1YWdlKCl9LGV4ZWN1dGlvbj8uc2lnbmFsKTsNCiAgICAgICAgICByZXR1cm4gSl
2941NPTi5zdHJpbmdpZnkoe29rOnRydWUsZGF0YX0pOw0KICAgICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAgIGNvbnN0IGNvZGU9L15bYS16MC05X10rJC8udGVzdChlcnJvcj8ubWVzc2FnZSB8fCAnJyk/ZXJyb3IubWVzc2FnZToncmVxdWVzdF9mYWlsZWQnOw0KICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7b2s6ZmFsc2UsZXJyb3I6Y29kZX0pOw0KICAgICAgICB9DQogICAgICB9fSk7DQogIH0NCiAgdG9vbCgnZnBfZ2V0X3NlcnZpY2VzJywnTGlzdCBvciBzZWFyY2ggdGhlIGNvbXBsZXRlIGYvcCBjYXRhbG9nOiAxNjAgRW5nbGlzaCBzZXJ2aWNlIGxhYmVscyBpbiAxMSBncm91cHMuIEFsbCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlIHRocm91Z2ggZWFjaCBvZiB0aGUgZWlnaHQgbG9jYXRpb25zIHZpYSB0aGUgaW50ZXJuYXRpb25hbCBuZXR3b3JrLCBub3QgbmVjZXNzYXJpbHkgc3RhZmZlZCBsb2NhbGx5LiBTZWFyY2ggRW5nbGlzaCBsYWJlbHM7IHBhZ2UtbGluayBsYW5ndWFnZSBmYWxsYmFja3MgYXJlIGV4cGxpY2l0LiBQYWdpbmF0aW9uIHJldHVybnMgZXZlcnkgaXRlbS4nLA0KICAgIHtxdWVyeTpTKCksZ3JvdXA6RShBcnJheS5mcm9tKHtsZW5ndGg6MTF9LChfLGkpPT4nZ3JvdXAtJysoaSsxKSkpLGxvY2F0aW9uOkUoTE9DUyksb2Zmc2V0Ok4oMCwxNjApLGxpbWl0Ok4oMSwxNjApLGxhbmd1YWdlOmxhbmdTY2hlbWF9LFtdLGFzeW5jKGEscyk9PnsNCiAgICAgIGNvbnN0IGM9YXdhaXQgYXBpKCdjYXRhbG9nJyx7bGFuZzphLmxhbmd9LHMpOyBjb25zdCB
2941xPShhLnF1ZXJ5IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTsNCiAgICAgIGNvbnN0IHJvd3M9Yy5zZXJ2aWNlcy5maWx0ZXIodj0+KCFhLmdyb3VwIHx8IHYuZ3JvdXBfaWQ9PT1hLmdyb3VwKSAmJiAoIXEgfHwgKHYubmFtZSsnICcrdi5ncm91cF9uYW1lKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKSk7DQogICAgICBjb25zdCBzdGFydD1hLm9mZnNldCB8fCAwLGVuZD1zdGFydCsoYS5saW1pdCB8fCA0MCk7DQogICAgICByZXR1cm4gey4uLmMsc2VydmljZXM6cm93cy5zbGljZShzdGFydCxlbmQpLG1hdGNoZWRfdG90YWw6cm93cy5sZW5ndGgsb2Zmc2V0OnN0YXJ0LG5leHRfb2Zmc2V0OmVuZDxyb3dzLmxlbmd0aD9lbmQ6bnVsbCxzZWxlY3RlZF9sb2NhdGlvbjphLmxvY2F0aW9uIHx8IG51bGx9Ow0KICAgIH0pOw0KICB0b29sKCdmcF9nZXRfbG9jYXRpb25zJywnUmV0dXJuIHRoZSBlaWdodCBjdXJyZW50IGYvcCBzdHVkaW9zIGFuZCBsb2NhbCBkZXNpZ24gaHVicywgdGhlaXIgcmVhbCB0cmFuc2xhdGVkIHBhZ2UgbGlua3MsIGFuZCBuZXR3b3JrLXdpZGUgc2VydmljZSBhdmFpbGFiaWxpdHkuIE5vIHJldGlyZWQgbG9jYXRpb25zLicsDQogICAge2xvY2F0aW9uOkUoTE9DUyksbGFuZ3VhZ2U6bGFuZ1NjaGVtYX0sW10sYXN5bmMoYSxzKT0+e2NvbnN0IGQ9YXdhaXQgZGlyZWN0b3J5KGEubGFuZyxzKTtyZXR1cm4ge2xvY2F0aW9uczpkLmxvY2F0aW9ucy5maWx0ZXIodj0+IWEubG9jYXRpb24gfHwgdi5rZXk9PT1hLmxvY2F0aW9uKSxhdmFpbGFiaWxpdHlfbm90ZTpkLmF2YWlsYWJpbGl0eV9ub3RlfTt9KTsNCiAgdG9vbCgnZnBfc2VhcmNoX2NvbnRlbnQnLCdTZWFyY2ggb3IgYnJvd3NlIHB1Ymxpc2hlZCBmL3AgcGFnZXMsIHByb2plY3RzLCBjbGllbnRzIGFuZCBJbnNpZ2h0cy4gUmV0dXJucyBJRHMgYW5kIHNvdXJjZSBsaW5rcyBmb3IgZnBfZ2V0X2NvbnRlbnQuIFVzZXMgdGhlIHJlcXVlc3RlZCBsYW5ndWFnZSBvbmx5OyBubyBwcml2YXRlIHBvc3RzIG9yIGFkbWluIGRhdGEuIEZvbGxvdyBoYXNfbW9yZSB0byBicm93c2Ugc3Vic2VxdWVudCBwYWdlcy4nLA0KICAgIHtxdWVyeTpTKCksc2NvcGU6RShbJ2FsbCcsJ3BhZ2VzJywncHJvamVjdHMnLCdjbGllbnRzJywnaW5zaWdodHMnXSkscGFnZTpOKDEsMTAwMCksbGltaXQ6TigxLDIwKSxsYW5ndWFnZTpsYW5nU2NoZW1hfSxbXSwoYSxzKT0+YXBpKCdzZWFyY2gnLHtsYW5nOmEubGFuZyxxOmEucXVlcnkgfHwgJycsc2NvcGU6YS5zY29wZSB8fCAnYWxsJyxwYWdlOmEucGFnZSB8fCAxLGxpbWl0OmEubGltaXQgfHwgMTB9LHMpKTsNCiAgdG9vbCgnZnBfZ2V0X2NvbnRlbnQnLCdSZWFkIHB1YmxpYyBtYWluIGNvbnRlbnQgb2YgYSBXb3JkUHJlc3MgcGFnZS9wcm9qZWN0L2NsaWVudC9JbnNpZ2h0IElEIG9idGFpbmVkIGZyb20gdGhpcyB3ZWJzaXRlLiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCBwYWdlLiBSZXR1cm5zIHNvdXJjZSBVUkwsIGhlYWRpbmdzIGFuZCB0ZXh0IGNodW5rczsgZXhjbHVkZXMgZm9ybXMsIHNjcmlwdHMgYW5kIGNvbW1lbnRzLiBGb2xsb3cgbmV4dF9vZmZzZXQgdG8gcmVhZCBhbGwgdGV4dC4nLA0KICAgIHtpZDpOKDEsMjE0NzQ4MzY0Nyksb2Zmc2V0Ok4oMCwxMDAwMDAwKSxsaW1pdDpOKDIwMCwxMjAwMCksbGFuZ3VhZ2U6bGFuZ1NjaGVtYX0sW10sYXN5bmMoYSxzKT0+ew0KICAgICAgY29uc3Qge21ldGEscm9vdH09YXdhaXQgcGFnZURhdGEoYS5pZCB8fCBjb25maWcucGFnZV9pZCxhLmxhbmcscyk7DQogICAgICBjb25zdCB0ZXh0PWNsZWFuKHJvb3QudGV4dENvbnRlbnQsMTAwMDAwMCksc3RhcnQ9YS5vZmZzZXQgfHwgMCxlbmQ9c3RhcnQrKGEubGltaXQgfHwgODAwMCk7DQogICAgICByZXR1cm4ge3NvdXJjZTptZXRhLGhlYWRpbmdzOkFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCdoMSxoMixoMycpKS5zbGljZSgwLDYwKS5tYXAobj0+Y2xlYW4obi50ZXh0Q29udGVudCwyMDApKSx0ZXh0OnRleHQuc2xpY2Uoc3RhcnQsZW5kKSx0b3RhbF9jaGFyYWN0ZXJzOnRleHQubGVuZ3RoLG9mZnNldDpzdGFydCxuZXh0X29mZnNldDplbmQ8dGV4dC5sZW5ndGg/ZW5kOm51bGx9Ow0KICAgIH0pOw0KICB0b29sKCdmcF9nZXRfY29udGFjdHMnLCdSZWFkIHB1YmxpYyBmL3AgYnVzaW5lc3MgZW1haWwgYW5kIGludGVybmF0aW9uYWwgcGhvbmUgY29udGFjdHMgZnJvbSBjdXJyZW50IENNUyBwYWdlcy4gbmV0d29yayByZXR1cm5zIHRoZSBtYWluIGNvbnRhY3QgcGFnZTsgYSBuYW1lZCBzdHVkaW8vaHViIHJlYWRzIGl0cyBvd24gcGFnZS4gTm8gZW1haWwgaXMgc2VudCBhbmQgbm8gcGhvbmUgY2FsbCBpcyBwbGFjZWQuIE1pc3NpbmcgY29udGFjdHMgcmVtYWluIG1pc3NpbmcuJywNCiAgICB7bG9jYXRpb246RShbJ25ldHdvcmsnLC4uLkxPQ1NdKSxsYW5ndWFnZTpsYW5nU2NoZW1hfSxbXSxhc3luYyhhLHMpPT57DQogICAgICBjb25zdCBkPWF3YWl0IGRpcmVjdG9yeShhLmxhbmcscyk7IGNvbnN0IGNob3Nlbj1hLmxvY2F0aW9uICYmIGEubG9jYXRpb24hPT0nbmV0d29yayc/ZC5sb2NhdGlvbnMuZmluZCh4PT54LmtleT09PWEubG9jYXRpb24pPy5wYWdlOmQucGFnZXMuY29udGFjdDsNCiAgICAgIGlmICghY2hvc2VuKSB0aHJvdyBuZXcgRXJyb3IoJ2NvbnRhY3RfcGFnZV91bmF2YWlsYWJsZScpOw0KICAgICAgY29uc3Qge21ldGEscm9vdH09YXdhaXQgcGFnZURhdGEoY2hvc2VuLmlkLGEubGFuZyxzKTsNCiAgICAgIHJldHVybiB7c291cmNlOm1ldGEsbG9jYXRpb246YS5sb2NhdGlvbiB8fCAnbmV0d29yaycsY29udGFjdF9ncm91cHM6Y29udGFjdFJvd3Mocm9vdCksbmV0d29ya19jb250YWN0X3BhZ2U6ZC5wYWdlcy5jb250YWN0LGF1dG9tYXRlZF9jb250YWN0OmZhbHNlfTsNCiAgICB9KTsNCiAgdG9vbCgnZnBfZ2V0X2F3YXJkcycsJ1JlYWQgYWN0dWFsIHJvd3MgZnJvbSB0aGUgZi9wIGF3YXJkcyBwYWdlLCBpbmNsdWRpbmcgeWVhciwgcHJvamVjdCBhbmQgYXdhcmQgdGl0bGUuIE9wdGlvbmFsIHllYXIgYW5kIHRleHQgZmlsdGVycywgd2l0aCBwYWdpbmF0aW9uLiBEb2VzIG5vdCBpbnZlbnQgYXdhcmRzIG9yIHNpbGVudGx5IHN1YnN0aXR1dGUgb3RoZXIgbGlzdHMuJywNCiAgICB7cXVlcnk6UygpLHllYXI6TigxOTAwLDIxMDApLG9mZnNldDpOKDAsMTAwMDApLGxpbWl0Ok4oMSwxMDApLGxhbmd1YWdlOmxhbmdTY2hlbWF9LFtdLGFzeW5jKGEscyk9PnsNCiAgICAgIGNvbnN0IGQ9YXdhaXQgZGlyZWN0b3J5KGEubGFuZyxzKTsgaWYoIWQucGFnZXMuYXdhcmRzKSB0aHJvdyBuZXcgRXJyb3IoJ2F3YXJkc19wYWdlX3VuYXZhaWxhYmxlJyk7DQogICAgICBjb25zdCB7bWV0YSxyb290fT1hd2FpdCBwYWdlRGF0YShkLnBhZ2VzLmF3YXJkcy5pZCxhLmxhbmcscyk7IGNvbnN0IG5vZGVzPUFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuZnAtYXdhcmRzLWxpc3QnKSk7DQogICAgICBpZighbm9kZXMubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoJ2F3YXJkc19zdHJ1Y3R1cmVfbm90X2ZvdW5kJyk7DQogICAgICBsZXQgbGFzdFllYXI9bnVsbDsNCiAgICAgIGNvbnN0IHJvd3M9bm9kZXMubWFwKHJvdz0+ew0KICAgICAgICBjb25zdCB5PWNsZWFuKHJvdy5xdWVyeVNlbGVjdG9yKCcuZnAtYXdhcmRzLWxpc3QtMScpPy50ZXh0Q29udGVudCwyMCkubWF0Y2goL1xiKDE5fDIwKVxkezJ9XGIvKTsgaWYoeSlsYXN0WWVhcj1OdW1iZXIoeVswXSk7DQogICAgICAgIGNvbnN0IHByb2plY3Q9cm93LnF1ZXJ5U2VsZWN0b3IoJy5mcC1hd2FyZHMtbGlzdC0yJyksYXdhcmQ9cm93LnF1ZXJ5U2VsZWN0b3IoJy5mcC1hd2FyZHMtbGlzdC0zJyk7DQogICAgICAgIGxldCB1cmw9bnVsbDt0cnl7Y29uc3QgYT1wcm9qZWN0Py5xdWVyeVNlbGVjdG9yKCdhW2hyZWZdJyk7aWYoYSl1cmw9c2FtZVNpdGUoYS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkuaHJlZjt9Y2F0Y2goXyl7fQ0KICAgICAgICByZXR1cm4ge3llYXI6bGFzdFllYXIscHJvamVjdDpjbGVhbihwcm9qZWN0Py50ZXh0Q29udGVudCwyNTApLGF3YXJkOmNsZWFuKGF3YXJkPy50ZXh0Q29udGVudCwyNTApLHByb2plY3RfdXJsOnVybH07DQogICAgICB9KS5maWx0ZXIodj0+di5hd2FyZCAmJiAoIWEueWVhciB8fCB2LnllYXI9PT1hLnllYXIpICYmICghYS5xdWVyeSB8fCAodi5wcm9qZWN0KycgJyt2LmF3YXJkKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGEucXVlcnkudG9Mb3dlckNhc2UoKSkpKTsNCiAgICAgIGNvbnN0IHN0YXJ0PWEub2Zmc2V0IHx8IDAsZW5kPXN0YXJ0KyhhLmxpbWl0IHx8IDI1KTsNCiAgICAgI
2941HJldHVybiB7c291cmNlOm1ldGEsdG90YWw6cm93cy5sZW5ndGgsaXRlbXM6cm93cy5zbGljZShzdGFydCxlbmQpLG5leHRfb2Zmc2V0OmVuZDxyb3dzLmxlbmd0aD9lbmQ6bnVsbH07DQogICAgfSk7DQogIHRvb2woJ2ZwX2dldF9ib29raW5nX2xpbmtzJywnUmV0dXJuIHRoZSBleGlzdGluZyBNaWNyb3NvZnQgQm9va2luZ3MgbGlua3Mgb24gdGhlIGYvcCBjb250YWN0IHBhZ2UuIENob29zZSBqYXBhbiBmb3IgdGhlIEphcGFuZXNlIHN0dWRpbyBvciBpbnRlcm5hdGlvbmFsIGZvciB0aGUgZ2xvYmFsIGNvbnRhY3QgcGFnZS4gT25seSByZXR1cm5zIGxpbmtzOyBkb2VzIG5vdCBxdWVyeSBhdmFpbGFiaWxpdHksIHJlc2VydmUgYXBwb2ludG1lbnRzIG9yIHN1Ym1pdCBwZXJzb25hbCBkYXRhLicsDQogICAge3JlZ2lvbjpFKFsnaW50ZXJuYXRpb25hbCcsJ2phcGFuJ10pLGxhbmd1YWdlOmxhbmdTY2hlbWF9LFtdLGFzeW5jKGEscyk9PnsNCiAgICAgIGNvbnN0IGxhbmc9YS5yZWdpb249PT0namFwYW4nPydqYSc6KGEucmVnaW9uPT09J2ludGVybmF0aW9uYWwnPydlbic6YS5sYW5nKTsNCiAgICAgIGNvbnN0IGQ9YXdhaXQgZGlyZWN0b3J5KGxhbmcscyk7aWYoIWQucGFnZXMuY29udGFjdCl0aHJvdyBuZXcgRXJyb3IoJ2NvbnRhY3RfcGFnZV91bmF2YWlsYWJsZScpOw0KICAgICAgY29uc3Qge21ldGEscm9vdH09YXdhaXQgcGFnZURhdGEoZC5wYWdlcy5jb250YWN0LmlkLGxhbmcscyk7Y29uc3QgbGlua3M9W107Y29uc3Qgc2Vlbj1uZXcgU2V0KCk7DQogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbaHJlZl0nKS5mb3JFYWNoKG5vZGU9Pnt0cnl7DQogICAgICAgIGNvbnN0IHU9bmV3IFVSTChub2RlLmdldEF0dHJpYnV0ZSgnaHJlZicpLGxvY2F0aW9uLm9yaWdpbik7DQogICAgICAgIGlmKHUucHJvdG9jb2whPT0naHR0cHM6JyB8fCB1LnVzZXJuYW1lIHx8IHUucGFzc3dvcmQgfHwgIVsnb3V0bG9vay5vZmZpY2UuY29tJywnb3V0bG9vay5vZmZpY2UzNjUuY29tJ10uaW5jbHVkZXModS5ob3N0bmFtZSkgfHwgIS9cLyhib29rfGJvb2tpbmdzKShcL3wkKS9pLnRlc3QodS5wYXRobmFtZSkgfHwgc2Vlbi5oYXModS5ocmVmKSlyZXR1cm47DQogICAgICAgIHNlZW4uYWRkKHUuaHJlZik7bGlua3MucHVzaCh7bGFiZWw6Y2xlYW4obm9kZS50ZXh0Q29udGVudCwxNjApLHVybDp1LmhyZWZ9KTsNCiAgICAgIH1jYXRjaChfKXt9IH0pOw0KICAgICAgcmV0dXJuIHtzb3VyY2U6bWV0YSxsaW5rcyxhdmFpbGFiaWxpdHlfY2hlY2tlZDpmYWxzZSxhcHBvaW50bWVudF9ib29rZWQ6ZmFsc2V9Ow0KICAgIH0pOw0KICB0b29sKCdmcF9nZXRfc2l0ZV9vdmVydmlldycsJ1JldHVybiBjdXJyZW50IHdlYnNpdGUgc2VjdGlvbnMsIHNlcnZpY2UgZ3JvdXBzLCB0aGUgZWlnaHQgc3R1ZGlvcy9odWJzIGFuZCBleHBsaWNpdCBsYW5ndWFnZSBmYWxsYmFja3MuIFVzZSB0aGUgZGVkaWNhdGVkIHRvb2xzIHRvIHJldHJpZXZlIHNlcnZpY2UgZGV0YWlscywgY29udGFjdHMsIGF3YXJkcyBvciBwdWJsaXNoZWQgY29udGVudC4nLA0KICAgIHtsYW5ndWFnZTpsYW5nU2NoZW1hfSxbXSxhc3luYyhhLHMpPT57Y29uc3QgZD1hd2FpdCBkaXJlY3RvcnkoYS5sYW5nLHMpLGM9YXdhaXQgYXBpKCdjYXRhbG9nJyx7bGFuZzphLmxhbmd9LHMpO3JldHVybiB7Li4uZCxjYXRhbG9nOnt0b3RhbDpjLnRvdGFsLGxhbmd1YWdlOmMuY2F0YWxvZ19sYW5ndWFnZSxncm91cHM6Yy5ncm91cHN9LG1vZGU6J3JlYWRfb25seSd9O30pOw0KICBhc3luYyBmdW5jdGlvbiBpbml0KCkgew0KICAgIGlmKCFhbGxvd2VkKCkgfHwgd2luZG93W0ZMQUddKXJldHVybjsNCiAgICBjb25zdCBjb250ZXh0PWRvY3VtZW50Lm1vZGVsQ29udGV4dDsNCiAgICBpZighY29udGV4dCB8fCB0eXBlb2YgY29udGV4dC5yZWdpc3RlclRvb2whPT0nZnVuY3Rpb24nKXJldHVybjsNCiAgICB0cnl7Y29uZmlnPUpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZwLXdlYm1jcC1jb25maWcnKT8udGV4dENvbnRlbnQgfHwgJ251bGwnKTtpZighY29uZmlnIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKGNvbmZpZy5wYWdlX2lkKSB8fCBzYW1lU2l0ZShjb25maWcuYXBpKS5wYXRobmFtZSE9PScvd3AtanNvbi9mcC13ZWJtY3AvdjEvJylyZXR1cm47fWNhdGNoKF8pe3JldHVybjt9DQogICAgY29uc3Qgc3RhdGU9e3ZlcnNpb246JzIuMC4xJyxyZWdpc3RlcmVkOltdLGZhaWxlZDpbXX07d2luZG93W0ZMQUddPXN0YXRlOw0KICAgIGZvcihjb25zdCBkZWYgb2YgZGVmaW5pdGlvbnMpe3RyeXthd2FpdCBjb250ZXh0LnJlZ2lzdGVyVG9vbChkZWYpO3N0YXRlLnJlZ2lzdGVyZWQucHVzaChkZWYubmFtZSk7fWNhdGNoKF8pe3N0YXRlLmZhaWxlZC5wdXNoKGRlZi5uYW1lKTt9fQ0KICB9DQogIGlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0nbG9hZGluZycpZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsKCk9Pnt2b2lkIGluaXQoKTt9LHtvbmNlOnRydWV9KTtlbHNlIHZvaWQgaW5pdCgpOw0KfSkoKTs="></script>
2941 
2941<script defer id="fp-webmcp-project-enquiry-v1" src="data:text/javascript;base64,DQogICAgKGZ1bmN0aW9uICgpIHsNCiAgICAgICd1c2Ugc3RyaWN0JzsNCg0KICAgICAgY29uc3QgVE9PTF9OQU1FID0gJ2ZwX3ByZXBhcmVfcHJvamVjdF9lbnF1aXJ5JzsNCiAgICAgIGNvbnN0IEZMQUcgPSAnZnBXZWJNQ1BQcm9qZWN0RW5xdWlyeVYxJzsNCiAgICAgIGNvbnN0IENPTlRBQ1RfUEFUSFMgPSBbJy9jb250YWN0LycsJy9rb250YWt0LyddOw0KICAgICAgY29uc3QgTE9DQVRJT05TID0gWydtdW5pY2gnLCdiZXJsaW4nLCdreW90bycsJ3p1cmljaCcsJ3Zlcm9uYScsJ2JlbGdyYWRlJywnbXVtYmFpJywnYmVpamluZyddOw0KICAgICAgY29uc3QgTEFOR1MgPSBbJ2VuJywnZGUnLCdqYScsJ2l0JywnemgtaGFucycsJ3NyJ107DQogICAgICBjb25zdCBGT1JNX0lEID0gJ2NzY3JtX3dlYl9mb3JtX2VlNDA1NDYwLTAzMWYtNDQwMy1iYTNhLTJhZWM4MzM4MmUxNic7DQoNCiAgICAgIGZ1bmN0aW9uIGFsbG93ZWQoKSB7DQogICAgICAgIHJldHVybiB3aW5kb3cuaXNTZWN1cmVDb250ZXh0DQogICAgICAgICAgJiYgd2luZG93LnNlbGYgPT09IHdpbmRvdy50b3ANCiAgICAgICAgICAmJiBsb2NhdGlvbi5vcmlnaW4gPT09ICdodHRwczovL2ZwZGVzaWduLmNvbScNCiAgICAgICAgICAmJiBkb2N1bWVudC5ib2R5DQogICAgICAgICAgJiYgIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCdsb2dnZWQtaW4nKQ0KICAgICAgICAgICYmICFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucG9zdC1wYXNzd29yZC1mb3JtJyk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGNsZWFuKHZhbHVlLCBtYXgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZSkucmVwbGFjZSgvW1x1MDAwMC1cdTAwMWZcdTAwN2ZdL2csICcgJykudHJpbSgpLnNsaWNlKDAsIG1heCk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIGxhbmd1YWdlKCkgew0KICAgICAgICBjb25zdCB2YWx1ZSA9IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyB8fCAnZW4nKS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnemgnKSkgcmV0dXJuICd6aC1oYW5zJzsNCiAgICAgICAgY29uc3QgYmFzZSA9IHZhbHVlLnNwbGl0KCctJylbMF07DQogICAgICAgIHJldHVybiBMQU5HUy5pbmNsdWRlcyhiYXNlKSA/IGJhc2UgOiAnZW4nOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBpc0NvbnRhY3RQYWdlKCkgew0KICAgICAgICByZXR1cm4gQ09OVEFDVF9QQVRIUy5zb21lKGZ1bmN0aW9uIChwYXRoKSB7IHJldHVybiBsb2NhdGlvbi5wYXRobmFtZSA9PT0gcGF0aCB8fCBsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aChwYXRoKTsgfSkNCiAgICAgICAgICB8fCAhIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcC1wcm9qZWN0LWVucXVpcnknKTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gY29udGFjdFVybChsYW5nKSB7DQogICAgICAgIGlmIChsYW5nID09PSAnZGUnKSByZXR1cm4gJ2h0dHBzOi8vZnBkZXNpZ24uY29tL2tvbnRha3QvP2xhbmc9ZGUnOw0KICAgICAgICBpZiAobGFuZyA9PT0gJ2VuJykgcmV0dXJuICdodHRwczovL2ZwZGVzaWduLmNvbS9jb250YWN0Lyc7DQogICAgICAgIHJldHVybiAnaHR0cHM6Ly9mcGRlc2lnbi5jb20vY29udGFjdC8/bGFuZz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGxhbmcpOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBmaW5kRmllbGQoZm9ybSwgcGF0dGVybnMpIHsNCiAgICAgICAgY29uc3QgZmllbGRzID0gQXJyYXkuZnJvbShmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Om5vdChbdHlwZT0iaGlkZGVuIl0pLCB0ZXh0YXJlYSwgc2VsZWN0JykpOw0KICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykgew0KICAgICAgICAgIGNvbnN0IGhheSA9IFsNCiAgICAgICAgICAgIGZpZWxkLm5hbWUgfHwgJycsDQogICAgICAgICAgICBmaWVsZC5pZCB8fCAnJywNCiAgICAgICAgICAgIGZpZWxkLnBsYWNlaG9sZGVyIHx8ICcnLA0KICAgICAgICAgICAgZmllbGQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgfHwgJycNCiAgICAgICAgICBdLmpvaW4oJyAnKS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGlmIChwYXR0ZXJucy5zb21lKGZ1bmN0aW9uIChwKSB7IHJldHVybiBoYXkuaW5kZXhPZihwKSAhPT0gLTE7IH0pKSByZXR1cm4gZmllbGQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIHNldEZpZWxkKGZpZWxkLCB2YWx1ZSkgew0KICAgICAgICBpZiAoIWZpZWxkIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gZmFsc2U7DQogICAgICAgIGZpZWxkLnZhbHVlID0gdmFsdWU7DQogICAgICAgIGZpZWxkLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHtidWJibGVzOnRydWV9KSk7DQogICAgICAgIGZpZWxkLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7YnViYmxlczp0cnVlfSkpOw0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgIH0NCg0KICAgICAgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZShhcmdzKSB7DQogICAgICAgIGFyZ3MgPSBhcmdzIHx8IHt9Ow0KICAgICAgICBjb25zdCBsYW5nID0gTEFOR1MuaW5jbHVkZXMoYXJncy5sYW5ndWFnZSkgPyBhcmdzLmxhbmd1YWdlIDogbGFuZ3VhZ2UoKTsNCg0KICAgICAgICBpZiAoIWlzQ29udGFjdFBhZ2UoKSkgew0KICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBzdGF0dXM6ICdjb250YWN0X3BhZ2VfcmVxdWlyZWQnLA0KICAgICAgICAgICAgY29udGFjdF91cmw6IGNvbnRhY3RVcmwobGFuZyksDQogICAgICAgICAgICBzdWJtaXNzaW9uX3BlcmZvcm1lZDogZmFsc2UsDQogICAgICAgICAgICB1c2VyX2NvbmZpcm1hdGlvbl9yZXF1aXJlZDogdHJ1ZQ0KICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoRk9STV9JRCk7DQogICAgICAgIGlmICghZm9ybSkgew0KICAgICAgICAgI
2941HJldHVybiB7DQogICAgICAgICAgICBzdGF0dXM6ICdmb3JtX25vdF9yZWFkeScsDQogICAgICAgICAgICByZXRyeV9hZnRlcl9tczogNTAwLA0KICAgICAgICAgICAgc3VibWlzc2lvbl9wZXJmb3JtZWQ6IGZhbHNlLA0KICAgICAgICAgICAgdXNlcl9jb25maXJtYXRpb25fcmVxdWlyZWQ6IHRydWUNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgY29uc3QgdmFsdWVzID0gew0KICAgICAgICAgIGZpcnN0X25hbWU6IGNsZWFuKGFyZ3MuZmlyc3RfbmFtZSwgMTIwKSwNCiAgICAgICAgICBsYXN0X25hbWU6IGNsZWFuKGFyZ3MubGFzdF9uYW1lLCAxMjApLA0KICAgICAgICAgIGVtYWlsOiBjbGVhbihhcmdzLmVtYWlsLCAyMDApLA0KICAgICAgICAgIGNvbXBhbnk6IGNsZWFuKGFyZ3MuY29tcGFueSwgMjAwKSwNCiAgICAgICAgICBwcm9qZWN0OiBjbGVhbihhcmdzLnByb2plY3QsIDQwMDApLA0KICAgICAgICAgIGxvY2F0aW9uOiBjbGVhbihhcmdzLmxvY2F0aW9uLCA0MCkNCiAgICAgICAgfTsNCg0KICAgICAgICBpZiAodmFsdWVzLmVtYWlsICYmICEvXlteXHNAXStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3QodmFsdWVzLmVtYWlsKSkgew0KICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9lbWFpbCcpOw0KICAgICAgICB9DQogICAgICAgIGlmICh2YWx1ZXMubG9jYXRpb24gJiYgIUxPQ0FUSU9OUy5pbmNsdWRlcyh2YWx1ZXMubG9jYXRpb24pKSB7DQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2xvY2F0aW9uJyk7DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCBmaWVsZHMgPSB7DQogICAgICAgICAgZmlyc3RfbmFtZTogZmluZEZpZWxkKGZvcm0sIFsnZmlyc3RfbmFtZScsJ2ZpcnN0IG5hbWUnLCd2b3JuYW1lJ10pLA0KICAgICAgICAgIGxhc3RfbmFtZTogZmluZEZpZWxkKGZvcm0sIFsncGVyc29uW25hbWVdJywnbGFzdF9uYW1lJywnbGFzdCBuYW1lJywnbmFjaG5hbWUnLCduYW1lJ10pLA0KICAgICAgICAgIGVtYWlsOiBmaW5kRmllbGQoZm9ybSwgWydlbWFpbHNfYXR0cmlidXRlcycsJ2VtYWlsJywnZS1tYWlsJ10pLA0KICAgICAgICAgIGNvbXBhbnk6IGZpbmRGaWVsZChmb3JtLCBbJ2NvbXBhbnlfbmFtZScsJ2NvbXBhbnknLCd1bnRlcm5laG1lbiddKSwNCiAgICAgICAgICBwcm9qZWN0OiBmaW5kRmllbGQoZm9ybSwgWydwcm90b2NvbHMnLCdwcm9qZWN0Jywndm9yaGFiZW4nXSkNCiAgICAgICAgfTsNCiAgICAgICAgY29uc3QgbG9jYXRpb25GaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcC1jb250YWN0LWxvY2F0aW9uJykgfHwgZmluZEZpZWxkKGZvcm0sIFsnZnBfY29udGFjdF9sb2NhdGlvbicsJ2xvY2F0aW9uJywnc3RhbmRvcnQnXSk7DQoNCiAgICAgICAgY29uc3QgZmlsbGVkID0gW107DQogICAgICAgIGlmIChzZXRGaWVsZChmaWVsZHMuZmlyc3RfbmFtZSwgdmFsdWVzLmZpcnN0X25hbWUpKSBmaWxsZWQucHVzaCgnZmlyc3RfbmFtZScpOw0KICAgICAgICBpZiAoc2V0RmllbGQoZmllbGRzLmxhc3RfbmFtZSwgdmFsdWVzLmxhc3RfbmFtZSkpIGZpbGxlZC5wdXNoKCdsYXN0X25hbWUnKTsNCiAgICAgICAgaWYgKHNldEZpZWxkKGZpZWxkcy5lbWFpbCwgdmFsdWVzLmVtYWlsKSkgZmlsbGVkLnB1c2goJ2VtYWlsJyk7DQogICAgICAgIGlmIChzZXRGaWVsZChmaWVsZHMuY29tcGFueSwgdmFsdWVzLmNvbXBhbnkpKSBmaWxsZWQucHVzaCgnY29tcGFueScpOw0KICAgICAgICBpZiAoc2V0RmllbGQoZmllbGRzLnByb2plY3QsIHZhbHVlcy5wcm9qZWN0KSkgZmlsbGVkLnB1c2goJ3Byb2plY3QnKTsNCiAgICAgICAgaWYgKHNldEZpZWxkKGxvY2F0aW9uRmllbGQsIHZhbHVlcy5sb2NhdGlvbikpIGZpbGxlZC5wdXNoKCdsb2NhdGlvbicpOw0KDQogICAgICAgIGNvbnN0IG1pc3NpbmdSZXF1aXJlZCA9IFtdOw0KICAgICAgICBBcnJheS5mcm9tKGZvcm0ucXVlcnlTZWxlY3RvckFsbCgnW3JlcXVpcmVkXScpKS5mb3JFYWNoKGZ1bmN0aW9uIChmaWVsZCkgew0KICAgICAgICAgIGlmICghU3RyaW5nKGZpZWxkLnZhbHVlIHx8ICcnKS50cmltKCkpIHsNCiAgICAgICAgICAgIGNvbnN0IGtleSA9IGZpZWxkLmlkID09PSAnZnAtY29udGFjdC1sb2NhdGlvbicgPyAnbG9jYXRpb24nIDogKGZpZWxkLm5hbWUgfHwgZmllbGQuaWQgfHwgJ3JlcXVpcmVkX2ZpZWxkJyk7DQogICAgICAgICAgICBpZiAoIW1pc3NpbmdSZXF1aXJlZC5pbmNsdWRlcyhrZXkpKSBtaXNzaW5nUmVxdWlyZWQucHVzaChrZXkpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSk7DQoNCiAgICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcC1wcm9qZWN0LWVucXVpcnknKSB8fCBmb3JtOw0KICAgICAgICBpZiAod3JhcHBlciAmJiB0eXBlb2Ygd3JhcHBlci5zY3JvbGxJbnRvVmlldyA9PT0gJ2Z1bmN0aW9uJykgew0KICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLCBibG9jazonc3RhcnQnfSk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gew0KICAgICAgICAgIHN0YXR1czogJ3ByZXBhcmVkJywNCiAgICAgICAgICBmb3JtOiAncHJvamVjdF9lbnF1aXJ5JywNCiAgICAgICAgICBsYW5ndWFnZTogbGFuZywNCiAgICAgICAgICBmaWxsZWRfZmllbGRzOiBmaWxsZWQsDQogICAgICAgICAgbWlzc2luZ19yZXF1aXJlZF9maWVsZHM6IG1pc3NpbmdSZXF1aXJlZCwNCiAgICAgICAgICBzdWJtaXNzaW9uX3BlcmZvcm1lZDogZmFsc2UsDQogICAgICAgICAgdXNlcl9jb25maXJtYXRpb25fcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgbm90ZTogJ1JldmlldyB0aGUgdmlzaWJsZSBmb3JtLCBjb21wbGV0ZSBhbnkgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMgYW5kIHN1Ym1pdCBpdCB5b3Vyc2VsZi4gVGhlIHRvb2wgbmV2ZXIgY2xpY2tzIHN1Ym1pdCBhbmQgbmV2ZXIgYnlwYXNzZXMgcmVDQVBUQ0hBL1R1cm5zdGlsZS4nDQogICAgICAgIH07DQogICAgICB9DQoNCiAgICAgIGFzeW5jIGZ1bmN0aW9uIGluaXQoKSB7DQogICAgICAgIGlmICghYWxsb3dlZCgpIHx8IHdpbmRvd1tGTEFHXSkgcmV0dXJuOw0KICAgICAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQubW9kZWxDb250ZXh0Ow0KICAgICAgICBpZiAoIWNvbnRleHQgfHwgdHlwZW9mIGNvbnRleHQucmVnaXN0ZXJUb29sICE9PSAnZnVuY3Rpb24nKSByZXR1cm47DQoNCiAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHsNCiAgICAgICAgICBuYW1lOiBUT09MX05BTUUsDQogICAgICAgICAgZGVzY3JpcHRpb246ICdQcmVwYXJlIHRoZSB2aXNpYmxlIGYvcCBkZXNpZ24gcHJvamVjdCBlbnF1aXJ5IGZvcm0gZm9yIHRoZSB1c2VyLiBDYW4gcHJlZmlsbCBsb2NhdGlvbiwgbmFtZSwgZW1haWwsIGNvbXBhbnkgYW5kIHByb2plY3QgZGVzY3JpcHRpb24uIE5ldmVyIHN1Ym1pdHMgdGhlIGZvcm0sIG5ldmVyIHNvbHZlcyBvciBieXBhc3NlcyByZUNBUFRDSEEvVHVybnN0aWxlLCBhbmQgbmV2ZXIgc2VuZHMgZGF0YSB0byB0aGUgQ1JNLiBUaGUgdXNlciBtdXN0IHJldmlldyBhbmQgc3VibWl0IHRoZSBmb3JtIG1hbnVhbGx5LicsDQogICAgICAgICAgaW5wdXRTY2hlbWE6IHsNCiAgICAgICAgICAgI
2941HR5cGU6ICdvYmplY3QnLA0KICAgICAgICAgICAgcHJvcGVydGllczogew0KICAgICAgICAgICAgICBsb2NhdGlvbjoge3R5cGU6J3N0cmluZycsIGVudW06IExPQ0FUSU9OU30sDQogICAgICAgICAgICAgIGZpcnN0X25hbWU6IHt0eXBlOidzdHJpbmcnLCBtYXhMZW5ndGg6MTIwfSwNCiAgICAgICAgICAgICAgbGFzdF9uYW1lOiB7dHlwZTonc3RyaW5nJywgbWF4TGVuZ3RoOjEyMH0sDQogICAgICAgICAgICAgIGVtYWlsOiB7dHlwZTonc3RyaW5nJywgbWF4TGVuZ3RoOjIwMH0sDQogICAgICAgICAgICAgIGNvbXBhbnk6IHt0eXBlOidzdHJpbmcnLCBtYXhMZW5ndGg6MjAwfSwNCiAgICAgICAgICAgICAgcHJvamVjdDoge3R5cGU6J3N0cmluZycsIG1heExlbmd0aDo0MDAwfSwNCiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHt0eXBlOidzdHJpbmcnLCBlbnVtOiBMQU5HU30NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICByZXF1aXJlZDogW10sDQogICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UNCiAgICAgICAgICB9LA0KICAgICAgICAgIGFubm90YXRpb25zOiB7DQogICAgICAgICAgICByZWFkT25seUhpbnQ6IGZhbHNlLA0KICAgICAgICAgICAgdW50cnVzdGVkQ29udGVudEhpbnQ6IGZhbHNlLA0KICAgICAgICAgICAgY29uc2VxdWVudGlhbEhpbnQ6IGZhbHNlDQogICAgICAgICAgfSwNCiAgICAgICAgICBleGVjdXRlOiBhc3luYyBmdW5jdGlvbiAoYXJncykgew0KICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGUoYXJncyB8fCB7fSk7DQogICAgICAgICAgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgYXdhaXQgY29udGV4dC5yZWdpc3RlclRvb2woZGVmaW5pdGlvbik7DQogICAgICAgICAgd2luZG93W0ZMQUddID0ge3ZlcnNpb246JzEuMC4wJywgcmVnaXN0ZXJlZDp0cnVlLCB0b29sOlRPT0xfTkFNRX07DQogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgd2luZG93W0ZMQUddID0ge3ZlcnNpb246JzEuMC4wJywgcmVnaXN0ZXJlZDpmYWxzZSwgdG9vbDpUT09MX05BTUV9Ow0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycpIHsNCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsgdm9pZCBpbml0KCk7IH0sIHtvbmNlOnRydWV9KTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHZvaWQgaW5pdCgpOw0KICAgICAgfQ0KICAgIH0oKSk7DQogICAg"></script>
2941 
2941<script defer id="fpd-agent-accessibility-fixes" src="data:text/javascript;base64,CiAgICAoZnVuY3Rpb24gKCkgewogICAgICAgIGZ1bmN0aW9uIGltcHJvdmVBZ2VudEFjY2Vzc2liaWxpdHkocm9vdCkgewogICAgICAgICAgICB2YXIgc2NvcGUgPSByb290ICYmIHJvb3QucXVlcnlTZWxlY3RvckFsbCA/IHJvb3QgOiBkb2N1bWVudDsKCiAgICAgICAgICAgIHZhciBsYWJlbHMgPSB7CiAgICAgICAgICAgICAgICAnYnJhbmQtZGVzaWduJzogJ2JyYW5kIGRlc2lnbiDigJMgbGVhcm4gbW9yZScsCiAgICAgICAgICAgICAgICAnZGVzaWduLWNvbnN1bHRpbmcnOiAnZGVzaWduIGNvbnN1bHRpbmcg4oCTIGxlYXJuIG1vcmUnLAogICAgICAgICAgICAgICAgJ2luZHVzdHJpYWwtZGVzaWduJzogJ2luZHVzdHJpYWwgZGVzaWduIOKAkyBsZWFybiBtb3JlJywKICAgICAgICAgICAgICAgICd1eC11aS1kZXNpZ24nOiAndXgvdWkgZGVzaWduIOKAkyBsZWFybiBtb3JlJywKICAgICAgICAgICAgICAgICdhcmNoaXRlY3R1cmFsLWRlc2lnbic6ICdhcmNoaXRlY3R1cmFsIGRlc2lnbiDigJMgbGVhcm4gbW9yZScsCiAgICAgICAgICAgICAgICAnY29tbXVuaWNhdGlvbi1kZXNpZ24nOiAnY29tbXVuaWNhdGlvbiBkZXNpZ24g4oCTIGxlYXJuIG1vcmUnCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCdhLnRnLWVsZW1lbnQtYWJzb2x1dGVbaHJlZl0nKS5mb3JFYWNoKGZ1bmN0aW9uIChsaW5rKSB7CiAgICAgICAgICAgICAgICBpZiAoIWxpbmsudGV4dENvbnRlbnQudHJpbSgpICYmICFsaW5rLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnRzID0gbGluay5wYXRobmFtZS5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKTsKICAgICAgICAgICAgICAgICAgICB2Y
2941XIgc2x1ZyA9IHBhcnRzLnBvcCgpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgbGFiZWxzW3NsdWddIHx8ICd2aWV3IGRlc2lnbiBwcm9qZWN0Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgc2NvcGUucXVlcnlTZWxlY3RvckFsbCgnLmZvb3Rlcl9ib3R0b20gYVtpdGVtcHJvcD0idXJsIl0sIGZvb3RlciBhW2l0ZW1wcm9wPSJ1cmwiXScpLmZvckVhY2goZnVuY3Rpb24gKGxpbmspIHsKICAgICAgICAgICAgICAgIGlmIChsaW5rLnRleHRDb250ZW50LnRyaW0oKSB8fCBsaW5rLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBpY29uID0gbGluay5xdWVyeVNlbGVjdG9yKCdpJyk7CiAgICAgICAgICAgICAgICBpZiAoaWNvbiAmJiBpY29uLmNsYXNzTGlzdC5jb250YWlucygnZmEtaW5zdGFncmFtJykpIHsKICAgICAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdmL3AgZGVzaWduIG9uIEluc3RhZ3JhbScpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpY29uICYmIGljb24uY2xhc3NMaXN0LmNvbnRhaW5zKCdmYS1saW5rZWRpbicpKSB7CiAgICAgICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnZi9wIGRlc2lnbiBvbiBMaW5rZWRJbicpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpY29uICYmIGljb24uY2xhc3NMaXN0LmNvbnRhaW5zKCdmYS1mYWNlYm9vaycpKSB7CiAgICAgICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAnZi9wIGRlc2lnbiBvbiBGYWNlYm9vaycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChsaW5rLnRhcmdldCA9PT0gJ19ibGFuaycgJiYgIWxpbmsucmVsKSB7CiAgICAgICAgICAgICAgICAgICAgbGluay5yZWwgPSAnbm9vcGVuZXIgbm9yZWZlcnJlcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgc2NvcGUucXVlcnlTZWxlY3RvckFsbCgnYXNpZGUudmVydGljYWxfbWVudV9hcmVhW3RhYmluZGV4XScpLmZvckVhY2goZnVuY3Rpb24gKG1lbnUpIHsKICAgICAgICAgICAgICAgIGlmIChOdW1iZXIobWVudS5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykpID4gMCkgewogICAgICAgICAgICAgICAgICAgIG1lbnUucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIGltcHJvdmVBZ2VudEFjY2Vzc2liaWxpdHkoZG9jdW1lbnQpOwoKICAgICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAoY2hhbmdlcykgewogICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goZnVuY3Rpb24gKGNoYW5nZSkgewogICAgICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYXR0cmlidXRlcycpIHsKICAgICAgICAgICAgICAgICAgICBpbXByb3ZlQWdlbnRBY2Nlc3NpYmlsaXR5KGNoYW5nZS50YXJnZXQucGFyZW50Tm9kZSB8fCBkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2hhbmdlLmFkZGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGltcHJvdmVBZ2VudEFjY2Vzc2liaWxpdHkobm9kZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7CiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSwKICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSwKICAgICAgICAgICAgYXR0cmlidXRlczogdHJ1ZSwKICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ3RhYmluZGV4J10KICAgICAgICB9KTsKICAgIH0oKSk7CiAgICA="></script>
2941 
2941<script defer src="data:text/javascript;base64,dmFyIHRvX2xpa2VfcG9zdCA9IHsidXJsIjoiaHR0cHM6Ly9mcGRlc2lnbi5jb20vd3AtYWRtaW4vYWRtaW4tYWpheC5waHAiLCJub25jZSI6ImRkOWFiNDc3YmYifTshZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3QoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7dChkb2N1bWVudCkub24oImNsaWNrIiwiLnRvLXBvc3QtbGlrZTpub3QoJy50by1wb3N0LWxpa2UtdW5hY3RpdmUnKSIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBvPXQodGhpcyksbj1vLmRhdGEoInBvc3QtaWQiKSxzPXBhcnNlSW50KG8uZmluZCgiLnRvLWxpa2UtY291bnQiKS50ZXh0KCkpO3JldHVybiBvLmFkZENsYXNzKCJoZWFydC1wdWxzZSIpLHQuYWpheCh7dHlwZToicG9zdCIsdXJsOnRvX2xpa2VfcG9zdC51cmwsZGF0YTp7bm9uY2U6dG9fbGlrZV9wb3N0Lm5vbmNlLGFjdGlvbjoidG9fbGlrZV9wb3N0Iixwb3N0X2lkOm4sbGlrZV9uYjpzfSxjb250ZXh0Om8sc3VjY2VzczpmdW5jdGlvbihlKXtlJiYoKG89dCh0aGlzKSkuYXR0cigidGl0bGUiLGUudGl0bGUpLG8uZmluZCgiLnRvLWxpa2UtY291bnQiKS50ZXh0KGUuY291bnQpLG8ucmVtb3ZlQ2xhc3MoZS5yZW1vdmVfY2xhc3MrIiBoZWFydC1wdWxzZSIpLmFkZENsYXNzKGUuYWRkX2NsYXNzKSl9fSksITF9KX0pfShqUXVlcnkpOw=="></script>
2941<script defer id="fp-industrial-project-link-label" src="data:text/javascript;base64,DQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWY9Imh0dHBzOi8vZnBkZXNpZ24uY29tL3dvcmtzL2luZHVzdHJpYWwtZGVzaWduLyJdLGFbaHJlZj0iL3dvcmtzL2luZHVzdHJpYWwtZGVzaWduLyJdJykuZm9yRWFjaChmdW5jdGlvbihsaW5rKXsNCiAgICBpZiAobGluay5jbGFzc0xpc3QuY29udGFpbnMoJ3RnLWVsZW1lbnQtYWJzb2x1dGUnKSkgew0KICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsJ2luZHVzdHJpYWwgZGVzaWduIHByb2plY3RzIOKAkyBsZWFybiBtb3JlJyk7DQogICAgfQ0KfSk7DQo="></script>
2941 
2941<script defer src="data:text/javascript;base64,CgkJKGZ1bmN0aW9uKCkgewoJCQkndXNlIHN0cmljdCc7CgkJCXZhciBwYXJlbnRTZWxlY3RvciA9ICcubWVudS1pdGVtLndwbWwtbHMtY3VycmVudC1sYW5ndWFnZS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuJzsKCQkJCgkJCWZ1bmN0aW9uIHRvZ2dsZVN1Ym1lbnUobGluaywgZm9yY2VDbG9zZSkgewoJCQkJdmFyIGlzRXhwYW5kZWQgPSBsaW5rLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZSc7CgkJCQlpZiAoZm9yY2VDbG9zZSB8fCBpc0V4cGFuZGVkKSB7CgkJCQkJbGluay5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTsKCQkJCX0gZWxzZSB7CgkJCQkJbGluay5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpOwoJCQkJfQoJCQl9CgkJCQoJCQlmdW5jdGlvbiBoYW5kbGVLZXlkb3duKGUpIHsKCQkJCXZhciBrZXkgPSBlLmtleSB8fCBlLmtleUNvZGU7CgkJCQlpZiAoa2V5ID09PSAnRW50ZXInIHx8IGtleSA9PT0gJyAnIHx8IGtleSA9PT0gMTMgfHwga2V5ID09PSAzMikgewoJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQl0b2dnbGVTdWJtZW51KHRoaXMpOwoJCQkJfSBlbHNlIGlmIChrZXkgPT09ICdFc2NhcGUnIHx8IGtleSA9PT0gJ0VzYycgfHwga2V5ID09PSAyNykgewoJCQkJCWlmICh0aGlzLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZScpIHsKCQkJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJCQl0b2dnbGVTdWJtZW51KHRoaXMsIHRydWUpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQkKCQkJZnVuY3Rpb24gaGFuZGxlQmx1cihlKSB7CgkJCQl2YXIgbGluayA9IHRoaXM7CgkJCQl2YXIgcGFyZW50ID0gbGluay5jbG9zZXN0KHBhcmVudFNlbGVjdG9yKTsKCQkJCWlmICghcGFyZW50KSByZXR1cm47CgkJCQkKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CgkJCQkJaWYgKCFwYXJlbnQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHsKCQkJCQkJdG9nZ2xlU3VibWVudShsaW5rLCB0cnVlKTsKCQkJCQl9CgkJCQl9LCAxMDApOwoJCQl9CgkJCQoJCQlmdW5jdGlvbiBpbml0KCkgewoJCQkJdmFyIHBhcmVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHBhcmVudFNlbGVjdG9yKTsKCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50cy5sZW5ndGg7IGkrKykgewoJCQkJCXZhciBsaW5rID0gcGFyZW50c1tpXS5xdWVyeVNlbGVjdG9yKCdhW2FyaWEtZXhwYW5kZWRdJyk7CgkJCQkJaWYgKGxpbmspIHsKCQkJCQkJbGluay5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5ZG93bik7CgkJCQkJCWxpbmsuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGhhbmRsZUJsdXIpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQkKCQkJaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgewoJCQkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGluaXQpOwoJCQl9IGVsc2UgewoJCQkJaW5pdCgpOwoJCQl9CgkJfSkoKTsKCQk="></script>
2941 </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.