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 & 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 & 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 » Feed" href="https://fpdesign.com/feed/" /><link rel="alternate" type="application/rss+xml" title="f/p design » 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&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='{"name":"Fade in","visible":"","hidden":""}
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 & 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.