commit 6c04c1bac7642066417b93d58f62b85bff97fc41 Author: Senad Uka Date: Sat Aug 19 09:17:34 2023 +0200 Initial commit diff --git a/401.html b/401.html new file mode 100644 index 0000000..483edc2 --- /dev/null +++ b/401.html @@ -0,0 +1,44 @@ + + + + + + Protected page + + + + + + + + + + + + + + + +
+
+
+

Protected Page

+
+
Incorrect password. Please try again.
+
+ + +
+
+
+ + + + + \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 0000000..ddad5c0 --- /dev/null +++ b/404.html @@ -0,0 +1,37 @@ + + + + + + Not Found + + + + + + + + + + + + + + + +
+
+
+
Page Not Found
+
The page you are looking for doesn't exist or has been moved.
+
+ +
Go Back to Safety
+
+
+
+ + + + + \ No newline at end of file diff --git a/5cdc268dd7274d5c05c6009a_Business SEO.jpg b/5cdc268dd7274d5c05c6009a_Business SEO.jpg new file mode 100644 index 0000000..4cd4fee Binary files /dev/null and b/5cdc268dd7274d5c05c6009a_Business SEO.jpg differ diff --git a/about.html b/about.html new file mode 100644 index 0000000..14c8372 --- /dev/null +++ b/about.html @@ -0,0 +1,118 @@ + + + + + + About + + + + + + + + + + + + + + + + +
+
+
+
About Us
+
+
+
+
+
We’re a group of creative thinkers who have built a business to change the world.
+
+
+
+

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn’t listen.

She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane.

+
+
+
+
+
+
+
+
What we are best at
+

Our Services

+
+
+
+
Support
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts
+
+
+
Strategy
+
Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life
+
+
+
Management
+
Blind texts it is an almost unorthographic life One day however a small line of blind text by the name
+
+
+
Events
+
Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life
+
+
+
Training
+
Blind texts it is an almost unorthographic life One day however a small line of blind text by the name
+
+
+
Consulting
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+
+ +
+ + + + + \ No newline at end of file diff --git a/blog.html b/blog.html new file mode 100644 index 0000000..547e1dc --- /dev/null +++ b/blog.html @@ -0,0 +1,97 @@ + + + + + + Blog + + + + + + + + + + + + + + + + +
+
+
+
Our Blog
+
+
+
+
+
+
+
Aperiam harum
+

Our Stories

+
+
+
+
+ +
+ +
+
+
+
+
+
+
No items found.
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+
+ +
+ + + + + \ No newline at end of file diff --git a/contact.html b/contact.html new file mode 100644 index 0000000..3b8ceaa --- /dev/null +++ b/contact.html @@ -0,0 +1,163 @@ + + + + + + Contact + + + + + + + + + + + + + + + + +
+
+
+
Contact Us
+
+
+
+
+
+
+
+
+

Contact us

+
Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar.
+
+
+
+
+
Thank you! Your submission has been received!
+
+
+
Oops! Something went wrong while submitting the form.
+
+
+
+
+
+
Our offices
+
Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic.
+
+
+
OUR OFFICE
+
908 Broadway,
San Francisco,
CA 94133
+
+
+
WORKING HOURS
+
9AM - 3PM, Mon to Fri
+
+
+
CONTACT
+ contact@business.com +
01 (650) 658 6822
+
+
+
+
+
+
+
+
+
+
+
+
What we are best at
+

Our Services

+
+
+
+
+
+
Amanda Peterson
+
CEO
+
+
+
+ ceo@business.com +
01 (650) 658 6823
+
+
+
+
+
+
Jason Smith
+
CTO
+
+
+
+ cto@business.com +
01 (650) 658 6824
+
+
+
+
+
+
Michael Fassbender
+
Design Director
+
+
+
+ design@business.com +
01 (650) 658 6825
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+
+ +
+ + + + + \ No newline at end of file diff --git a/css/normalize.css b/css/normalize.css new file mode 100644 index 0000000..411d0b2 --- /dev/null +++ b/css/normalize.css @@ -0,0 +1,355 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} +/** + * Remove default margin. + */ +body { + margin: 0; +} +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; +} +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ +a:active, +a:hover { + outline: 0; +} +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; +} +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; +} +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} +/** + * Address differences between Firefox and other browsers. + */ +hr { + box-sizing: content-box; + height: 0; +} +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ +} +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; +} +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; +} +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. CUSTOM FOR WEBFLOW: Removed the input[type="submit"] selector to reduce + * specificity and defer to the .w-button selector + */ +button, +html input[type="button"], +input[type="reset"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; +} +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type='checkbox'], +input[type='radio'] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type='number']::-webkit-inner-spin-button, +input[type='number']::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. CUSTOM FOR WEBFLOW: changed from `textfield` to `none` to normalize iOS rounded input + * 2. CUSTOM FOR WEBFLOW: box-sizing: content-box rule removed + * (similar to normalize.css >=4.0.0) + */ +input[type='search'] { + -webkit-appearance: none; + /* 1 */ +} +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} diff --git a/css/webflow.css b/css/webflow.css new file mode 100644 index 0000000..fb1f01a --- /dev/null +++ b/css/webflow.css @@ -0,0 +1,1832 @@ +@font-face { + font-family: 'webflow-icons'; + src: url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBiUAAAC8AAAAYGNtYXDpP+a4AAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5ZmhS2XEAAAGAAAADHGhlYWQTFw3HAAAEnAAAADZoaGVhCXYFgQAABNQAAAAkaG10eCe4A1oAAAT4AAAAMGxvY2EDtALGAAAFKAAAABptYXhwABAAPgAABUQAAAAgbmFtZSoCsMsAAAVkAAABznBvc3QAAwAAAAAHNAAAACAAAwP4AZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAwPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAQAAAAAwACAACAAQAAQAg5gPpA//9//8AAAAAACDmAOkA//3//wAB/+MaBBcIAAMAAQAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEBIAAAAyADgAAFAAAJAQcJARcDIP5AQAGA/oBAAcABwED+gP6AQAABAOAAAALgA4AABQAAEwEXCQEH4AHAQP6AAYBAAcABwED+gP6AQAAAAwDAAOADQALAAA8AHwAvAAABISIGHQEUFjMhMjY9ATQmByEiBh0BFBYzITI2PQE0JgchIgYdARQWMyEyNj0BNCYDIP3ADRMTDQJADRMTDf3ADRMTDQJADRMTDf3ADRMTDQJADRMTAsATDSANExMNIA0TwBMNIA0TEw0gDRPAEw0gDRMTDSANEwAAAAABAJ0AtAOBApUABQAACQIHCQEDJP7r/upcAXEBcgKU/usBFVz+fAGEAAAAAAL//f+9BAMDwwAEAAkAABcBJwEXAwE3AQdpA5ps/GZsbAOabPxmbEMDmmz8ZmwDmvxmbAOabAAAAgAA/8AEAAPAAB0AOwAABSInLgEnJjU0Nz4BNzYzMTIXHgEXFhUUBw4BBwYjNTI3PgE3NjU0Jy4BJyYjMSIHDgEHBhUUFx4BFxYzAgBqXV6LKCgoKIteXWpqXV6LKCgoKIteXWpVSktvICEhIG9LSlVVSktvICEhIG9LSlVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoZiEgb0tKVVVKS28gISEgb0tKVVVKS28gIQABAAABwAIAA8AAEgAAEzQ3PgE3NjMxFSIHDgEHBhUxIwAoKIteXWpVSktvICFmAcBqXV6LKChmISBvS0pVAAAAAgAA/8AFtgPAADIAOgAAARYXHgEXFhUUBw4BBwYHIxUhIicuAScmNTQ3PgE3NjMxOAExNDc+ATc2MzIXHgEXFhcVATMJATMVMzUEjD83NlAXFxYXTjU1PQL8kz01Nk8XFxcXTzY1PSIjd1BQWlJJSXInJw3+mdv+2/7c25MCUQYcHFg5OUA/ODlXHBwIAhcXTzY1PTw1Nk8XF1tQUHcjIhwcYUNDTgL+3QFt/pOTkwABAAAAAQAAmM7nP18PPPUACwQAAAAAANciZKUAAAAA1yJkpf/9/70FtgPDAAAACAACAAAAAAAAAAEAAAPA/8AAAAW3//3//QW2AAEAAAAAAAAAAAAAAAAAAAAMBAAAAAAAAAAAAAAAAgAAAAQAASAEAADgBAAAwAQAAJ0EAP/9BAAAAAQAAAAFtwAAAAAAAAAKABQAHgAyAEYAjACiAL4BFgE2AY4AAAABAAAADAA8AAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADQAAAAEAAAAAAAIABwCWAAEAAAAAAAMADQBIAAEAAAAAAAQADQCrAAEAAAAAAAUACwAnAAEAAAAAAAYADQBvAAEAAAAAAAoAGgDSAAMAAQQJAAEAGgANAAMAAQQJAAIADgCdAAMAAQQJAAMAGgBVAAMAAQQJAAQAGgC4AAMAAQQJAAUAFgAyAAMAAQQJAAYAGgB8AAMAAQQJAAoANADsd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") format('truetype'); + font-weight: normal; + font-style: normal; +} +[class^="w-icon-"], +[class*=" w-icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'webflow-icons' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.w-icon-slider-right:before { + content: "\e600"; +} +.w-icon-slider-left:before { + content: "\e601"; +} +.w-icon-nav-menu:before { + content: "\e602"; +} +.w-icon-arrow-down:before, +.w-icon-dropdown-toggle:before { + content: "\e603"; +} +.w-icon-file-upload-remove:before { + content: "\e900"; +} +.w-icon-file-upload-icon:before { + content: "\e903"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + height: 100%; +} +body { + margin: 0; + min-height: 100%; + background-color: #fff; + font-family: Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333; +} +img { + max-width: 100%; + vertical-align: middle; + display: inline-block; +} +html.w-mod-touch * { + background-attachment: scroll !important; +} +.w-block { + display: block; +} +.w-inline-block { + max-width: 100%; + display: inline-block; +} +.w-clearfix:before, +.w-clearfix:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-clearfix:after { + clear: both; +} +.w-hidden { + display: none; +} +.w-button { + display: inline-block; + padding: 9px 15px; + background-color: #3898EC; + color: white; + border: 0; + line-height: inherit; + text-decoration: none; + cursor: pointer; + border-radius: 0; +} +input.w-button { + -webkit-appearance: button; +} +html[data-w-dynpage] [data-w-cloak] { + color: transparent !important; +} +.w-webflow-badge, +.w-webflow-badge * { + position: static; + left: auto; + top: auto; + right: auto; + bottom: auto; + z-index: auto; + display: block; + visibility: visible; + overflow: visible; + overflow-x: visible; + overflow-y: visible; + box-sizing: border-box; + width: auto; + height: auto; + max-height: none; + max-width: none; + min-height: 0; + min-width: 0; + margin: 0; + padding: 0; + float: none; + clear: none; + border: 0 none transparent; + border-radius: 0; + background: none; + background-image: none; + background-position: 0% 0%; + background-size: auto auto; + background-repeat: repeat; + background-origin: padding-box; + background-clip: border-box; + background-attachment: scroll; + background-color: transparent; + box-shadow: none; + opacity: 1; + transform: none; + transition: none; + direction: ltr; + font-family: inherit; + font-weight: inherit; + color: inherit; + font-size: inherit; + line-height: inherit; + font-style: inherit; + font-variant: inherit; + text-align: inherit; + letter-spacing: inherit; + text-decoration: inherit; + text-indent: 0; + text-transform: inherit; + list-style-type: disc; + text-shadow: none; + font-smoothing: auto; + vertical-align: baseline; + cursor: inherit; + white-space: inherit; + word-break: normal; + word-spacing: normal; + word-wrap: normal; +} +.w-webflow-badge { + position: fixed !important; + display: inline-block !important; + visibility: visible !important; + z-index: 2147483647 !important; + top: auto !important; + right: 12px !important; + bottom: 12px !important; + left: auto !important; + color: #AAADB0 !important; + background-color: #fff !important; + border-radius: 3px !important; + padding: 6px 8px 6px 6px !important; + font-size: 12px !important; + opacity: 1 !important; + line-height: 14px !important; + text-decoration: none !important; + transform: none !important; + margin: 0 !important; + width: auto !important; + height: auto !important; + overflow: visible !important; + white-space: nowrap; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0px 1px 3px rgba(0, 0, 0, 0.1); + cursor: pointer; +} +.w-webflow-badge > img { + display: inline-block !important; + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: bold; + margin-bottom: 10px; +} +h1 { + font-size: 38px; + line-height: 44px; + margin-top: 20px; +} +h2 { + font-size: 32px; + line-height: 36px; + margin-top: 20px; +} +h3 { + font-size: 24px; + line-height: 30px; + margin-top: 20px; +} +h4 { + font-size: 18px; + line-height: 24px; + margin-top: 10px; +} +h5 { + font-size: 14px; + line-height: 20px; + margin-top: 10px; +} +h6 { + font-size: 12px; + line-height: 18px; + margin-top: 10px; +} +p { + margin-top: 0; + margin-bottom: 10px; +} +blockquote { + margin: 0 0 10px 0; + padding: 10px 20px; + border-left: 5px solid #E2E2E2; + font-size: 18px; + line-height: 22px; +} +figure { + margin: 0; + margin-bottom: 10px; +} +figcaption { + margin-top: 5px; + text-align: center; +} +ul, +ol { + margin-top: 0px; + margin-bottom: 10px; + padding-left: 40px; +} +.w-list-unstyled { + padding-left: 0; + list-style: none; +} +.w-embed:before, +.w-embed:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-embed:after { + clear: both; +} +.w-video { + width: 100%; + position: relative; + padding: 0; +} +.w-video iframe, +.w-video object, +.w-video embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +button, +[type='button'], +[type='reset'] { + border: 0; + cursor: pointer; + -webkit-appearance: button; +} +.w-form { + margin: 0 0 15px; +} +.w-form-done { + display: none; + padding: 20px; + text-align: center; + background-color: #dddddd; +} +.w-form-fail { + display: none; + margin-top: 10px; + padding: 10px; + background-color: #ffdede; +} +label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} +.w-input, +.w-select { + display: block; + width: 100%; + height: 38px; + padding: 8px 12px; + margin-bottom: 10px; + font-size: 14px; + line-height: 1.42857143; + color: #333333; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; +} +.w-input:-moz-placeholder, +.w-select:-moz-placeholder { + color: #999; +} +.w-input::-moz-placeholder, +.w-select::-moz-placeholder { + color: #999; + opacity: 1; +} +.w-input:-ms-input-placeholder, +.w-select:-ms-input-placeholder { + color: #999; +} +.w-input::-webkit-input-placeholder, +.w-select::-webkit-input-placeholder { + color: #999; +} +.w-input:focus, +.w-select:focus { + border-color: #3898EC; + outline: 0; +} +.w-input[disabled], +.w-select[disabled], +.w-input[readonly], +.w-select[readonly], +fieldset[disabled] .w-input, +fieldset[disabled] .w-select { + cursor: not-allowed; +} +.w-input[disabled]:not(.w-input-disabled), +.w-select[disabled]:not(.w-input-disabled), +.w-input[readonly], +.w-select[readonly], +fieldset[disabled]:not(.w-input-disabled) .w-input, +fieldset[disabled]:not(.w-input-disabled) .w-select { + background-color: #eeeeee; +} +textarea.w-input, +textarea.w-select { + height: auto; +} +.w-select { + background-color: #f3f3f3; +} +.w-select[multiple] { + height: auto; +} +.w-form-label { + display: inline-block; + cursor: pointer; + font-weight: normal; + margin-bottom: 0px; +} +.w-radio { + display: block; + margin-bottom: 5px; + padding-left: 20px; +} +.w-radio:before, +.w-radio:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-radio:after { + clear: both; +} +.w-radio-input { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; + float: left; + margin-left: -20px; +} +.w-radio-input { + margin-top: 3px; +} +.w-file-upload { + display: block; + margin-bottom: 10px; +} +.w-file-upload-input { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -100; +} +.w-file-upload-default, +.w-file-upload-uploading, +.w-file-upload-success { + display: inline-block; + color: #333333; +} +.w-file-upload-error { + display: block; + margin-top: 10px; +} +.w-file-upload-default.w-hidden, +.w-file-upload-uploading.w-hidden, +.w-file-upload-error.w-hidden, +.w-file-upload-success.w-hidden { + display: none; +} +.w-file-upload-uploading-btn { + display: flex; + font-size: 14px; + font-weight: normal; + cursor: pointer; + margin: 0; + padding: 8px 12px; + border: 1px solid #cccccc; + background-color: #fafafa; +} +.w-file-upload-file { + display: flex; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + border: 1px solid #cccccc; + background-color: #fafafa; +} +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} +.w-file-remove-link { + margin-top: 3px; + margin-left: 10px; + width: auto; + height: auto; + padding: 3px; + display: block; + cursor: pointer; +} +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} +.w-file-upload-error-msg { + display: inline-block; + color: #ea384c; + padding: 2px 0; +} +.w-file-upload-info { + display: inline-block; + line-height: 38px; + padding: 0 12px; +} +.w-file-upload-label { + display: inline-block; + font-size: 14px; + font-weight: normal; + cursor: pointer; + margin: 0; + padding: 8px 12px; + border: 1px solid #cccccc; + background-color: #fafafa; +} +.w-icon-file-upload-icon, +.w-icon-file-upload-uploading { + display: inline-block; + margin-right: 8px; + width: 20px; +} +.w-icon-file-upload-uploading { + height: 20px; +} +.w-container { + margin-left: auto; + margin-right: auto; + max-width: 940px; +} +.w-container:before, +.w-container:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-container:after { + clear: both; +} +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} +.w-row:before, +.w-row:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-row:after { + clear: both; +} +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} +.w-col { + position: relative; + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; +} +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} +.w-col-1 { + width: 8.33333333%; +} +.w-col-2 { + width: 16.66666667%; +} +.w-col-3 { + width: 25%; +} +.w-col-4 { + width: 33.33333333%; +} +.w-col-5 { + width: 41.66666667%; +} +.w-col-6 { + width: 50%; +} +.w-col-7 { + width: 58.33333333%; +} +.w-col-8 { + width: 66.66666667%; +} +.w-col-9 { + width: 75%; +} +.w-col-10 { + width: 83.33333333%; +} +.w-col-11 { + width: 91.66666667%; +} +.w-col-12 { + width: 100%; +} +.w-hidden-main { + display: none !important; +} +@media screen and (max-width: 991px) { + .w-container { + max-width: 728px; + } + .w-hidden-main { + display: inherit !important; + } + .w-hidden-medium { + display: none !important; + } + .w-col-medium-1 { + width: 8.33333333%; + } + .w-col-medium-2 { + width: 16.66666667%; + } + .w-col-medium-3 { + width: 25%; + } + .w-col-medium-4 { + width: 33.33333333%; + } + .w-col-medium-5 { + width: 41.66666667%; + } + .w-col-medium-6 { + width: 50%; + } + .w-col-medium-7 { + width: 58.33333333%; + } + .w-col-medium-8 { + width: 66.66666667%; + } + .w-col-medium-9 { + width: 75%; + } + .w-col-medium-10 { + width: 83.33333333%; + } + .w-col-medium-11 { + width: 91.66666667%; + } + .w-col-medium-12 { + width: 100%; + } + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} +@media screen and (max-width: 767px) { + .w-hidden-main { + display: inherit !important; + } + .w-hidden-medium { + display: inherit !important; + } + .w-hidden-small { + display: none !important; + } + .w-row, + .w-container .w-row { + margin-left: 0; + margin-right: 0; + } + .w-col { + width: 100%; + left: auto; + right: auto; + } + .w-col-small-1 { + width: 8.33333333%; + } + .w-col-small-2 { + width: 16.66666667%; + } + .w-col-small-3 { + width: 25%; + } + .w-col-small-4 { + width: 33.33333333%; + } + .w-col-small-5 { + width: 41.66666667%; + } + .w-col-small-6 { + width: 50%; + } + .w-col-small-7 { + width: 58.33333333%; + } + .w-col-small-8 { + width: 66.66666667%; + } + .w-col-small-9 { + width: 75%; + } + .w-col-small-10 { + width: 83.33333333%; + } + .w-col-small-11 { + width: 91.66666667%; + } + .w-col-small-12 { + width: 100%; + } +} +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + .w-hidden-main { + display: inherit !important; + } + .w-hidden-medium { + display: inherit !important; + } + .w-hidden-small { + display: inherit !important; + } + .w-hidden-tiny { + display: none !important; + } + .w-col { + width: 100%; + } + .w-col-tiny-1 { + width: 8.33333333%; + } + .w-col-tiny-2 { + width: 16.66666667%; + } + .w-col-tiny-3 { + width: 25%; + } + .w-col-tiny-4 { + width: 33.33333333%; + } + .w-col-tiny-5 { + width: 41.66666667%; + } + .w-col-tiny-6 { + width: 50%; + } + .w-col-tiny-7 { + width: 58.33333333%; + } + .w-col-tiny-8 { + width: 66.66666667%; + } + .w-col-tiny-9 { + width: 75%; + } + .w-col-tiny-10 { + width: 83.33333333%; + } + .w-col-tiny-11 { + width: 91.66666667%; + } + .w-col-tiny-12 { + width: 100%; + } +} +.w-widget { + position: relative; +} +.w-widget-map { + width: 100%; + height: 400px; +} +.w-widget-map label { + width: auto; + display: inline; +} +.w-widget-map img { + max-width: inherit; +} +.w-widget-map .gm-style-iw { + text-align: center; +} +.w-widget-map .gm-style-iw > button { + display: none !important; +} +.w-widget-twitter { + overflow: hidden; +} +.w-widget-twitter-count-shim { + display: inline-block; + vertical-align: top; + position: relative; + width: 28px; + height: 20px; + text-align: center; + background: white; + border: #758696 solid 1px; + border-radius: 3px; +} +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + position: relative; + font-size: 15px; + line-height: 12px; + text-align: center; + color: #999; + font-family: serif; +} +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + position: relative; + display: block; +} +.w-widget-twitter-count-shim.w--large { + width: 36px; + height: 28px; +} +.w-widget-twitter-count-shim.w--large .w-widget-twitter-count-inner { + font-size: 18px; + line-height: 18px; +} +.w-widget-twitter-count-shim:not(.w--vertical) { + margin-left: 5px; + margin-right: 8px; +} +.w-widget-twitter-count-shim:not(.w--vertical).w--large { + margin-left: 6px; +} +.w-widget-twitter-count-shim:not(.w--vertical):before, +.w-widget-twitter-count-shim:not(.w--vertical):after { + top: 50%; + left: 0; + border: solid transparent; + content: ' '; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-color: rgba(117, 134, 150, 0); + border-right-color: #5d6c7b; + border-width: 4px; + margin-left: -9px; + margin-top: -4px; +} +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-left: -10px; + margin-top: -5px; +} +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-color: rgba(255, 255, 255, 0); + border-right-color: white; + border-width: 4px; + margin-left: -8px; + margin-top: -4px; +} +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-left: -9px; + margin-top: -5px; +} +.w-widget-twitter-count-shim.w--vertical { + width: 61px; + height: 33px; + margin-bottom: 8px; +} +.w-widget-twitter-count-shim.w--vertical:before, +.w-widget-twitter-count-shim.w--vertical:after { + top: 100%; + left: 50%; + border: solid transparent; + content: ' '; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +.w-widget-twitter-count-shim.w--vertical:before { + border-color: rgba(117, 134, 150, 0); + border-top-color: #5d6c7b; + border-width: 5px; + margin-left: -5px; +} +.w-widget-twitter-count-shim.w--vertical:after { + border-color: rgba(255, 255, 255, 0); + border-top-color: white; + border-width: 4px; + margin-left: -4px; +} +.w-widget-twitter-count-shim.w--vertical .w-widget-twitter-count-inner { + font-size: 18px; + line-height: 22px; +} +.w-widget-twitter-count-shim.w--vertical.w--large { + width: 76px; +} +.w-background-video { + position: relative; + overflow: hidden; + height: 500px; + color: white; +} +.w-background-video > video { + background-size: cover; + background-position: 50% 50%; + position: absolute; + margin: auto; + width: 100%; + height: 100%; + right: -100%; + bottom: -100%; + top: -100%; + left: -100%; + object-fit: cover; + z-index: -100; +} +.w-background-video > video::-webkit-media-controls-start-playback-button { + display: none !important; + -webkit-appearance: none; +} +.w-background-video--control { + position: absolute; + bottom: 1em; + right: 1em; + background-color: transparent; + padding: 0; +} +.w-background-video--control > [hidden] { + display: none !important; +} +.w-slider { + position: relative; + height: 300px; + text-align: center; + background: #dddddd; + clear: both; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); +} +.w-slider-mask { + position: relative; + display: block; + overflow: hidden; + z-index: 1; + left: 0; + right: 0; + height: 100%; + white-space: nowrap; +} +.w-slide { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + height: 100%; + white-space: normal; + text-align: left; +} +.w-slider-nav { + position: absolute; + z-index: 2; + top: auto; + right: 0; + bottom: 0; + left: 0; + margin: auto; + padding-top: 10px; + height: 40px; + text-align: center; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); +} +.w-slider-nav.w-round > div { + border-radius: 100%; +} +.w-slider-nav.w-num > div { + width: auto; + height: auto; + padding: 0.2em 0.5em; + font-size: inherit; + line-height: inherit; +} +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px rgba(51, 51, 51, 0.4); +} +.w-slider-nav-invert { + color: #fff; +} +.w-slider-nav-invert > div { + background-color: rgba(34, 34, 34, 0.4); +} +.w-slider-nav-invert > div.w-active { + background-color: #222; +} +.w-slider-dot { + position: relative; + display: inline-block; + width: 1em; + height: 1em; + background-color: rgba(255, 255, 255, 0.4); + cursor: pointer; + margin: 0 3px 0.5em; + transition: background-color 100ms, color 100ms; +} +.w-slider-dot.w-active { + background-color: #fff; +} +.w-slider-dot:focus { + outline: none; + box-shadow: 0px 0px 0px 2px #fff; +} +.w-slider-dot:focus.w-active { + box-shadow: none; +} +.w-slider-arrow-left, +.w-slider-arrow-right { + position: absolute; + width: 80px; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + cursor: pointer; + overflow: hidden; + color: white; + font-size: 40px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.w-slider-arrow-left [class^='w-icon-'], +.w-slider-arrow-right [class^='w-icon-'], +.w-slider-arrow-left [class*=' w-icon-'], +.w-slider-arrow-right [class*=' w-icon-'] { + position: absolute; +} +.w-slider-arrow-left:focus, +.w-slider-arrow-right:focus { + outline: 0; +} +.w-slider-arrow-left { + z-index: 3; + right: auto; +} +.w-slider-arrow-right { + z-index: 4; + left: auto; +} +.w-icon-slider-left, +.w-icon-slider-right { + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 1em; + height: 1em; +} +.w-slider-aria-label { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.w-slider-force-show { + display: block !important; +} +.w-dropdown { + display: inline-block; + position: relative; + text-align: left; + margin-left: auto; + margin-right: auto; + z-index: 900; +} +.w-dropdown-btn, +.w-dropdown-toggle, +.w-dropdown-link { + position: relative; + vertical-align: top; + text-decoration: none; + color: #222222; + padding: 20px; + text-align: left; + margin-left: auto; + margin-right: auto; + white-space: nowrap; +} +.w-dropdown-toggle { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + display: inline-block; + cursor: pointer; + padding-right: 40px; +} +.w-dropdown-toggle:focus { + outline: 0; +} +.w-icon-dropdown-toggle { + position: absolute; + top: 0; + right: 0; + bottom: 0; + margin: auto; + margin-right: 20px; + width: 1em; + height: 1em; +} +.w-dropdown-list { + position: absolute; + background: #dddddd; + display: none; + min-width: 100%; +} +.w-dropdown-list.w--open { + display: block; +} +.w-dropdown-link { + padding: 10px 20px; + display: block; + color: #222222; +} +.w-dropdown-link.w--current { + color: #0082f3; +} +.w-dropdown-link:focus { + outline: 0; +} +@media screen and (max-width: 767px) { + .w-nav-brand { + padding-left: 10px; + } +} +/** + * ## Note + * Safari (on both iOS and OS X) does not handle viewport units (vh, vw) well. + * For example percentage units do not work on descendants of elements that + * have any dimensions expressed in viewport units. It also doesn’t handle them at + * all in `calc()`. + */ +/** + * Wrapper around all lightbox elements + * + * 1. Since the lightbox can receive focus, IE also gives it an outline. + * 2. Fixes flickering on Chrome when a transition is in progress + * underneath the lightbox. + */ +.w-lightbox-backdrop { + color: #000; + cursor: auto; + font-family: serif; + font-size: medium; + font-style: normal; + font-variant: normal; + font-weight: normal; + letter-spacing: normal; + line-height: normal; + list-style: disc; + text-align: start; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + color: #fff; + font-family: "Helvetica Neue", Helvetica, Ubuntu, "Segoe UI", Verdana, sans-serif; + font-size: 17px; + line-height: 1.2; + font-weight: 300; + text-align: center; + background: rgba(0, 0, 0, 0.9); + z-index: 2000; + outline: 0; + /* 1 */ + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -webkit-tap-highlight-color: transparent; + -webkit-transform: translate(0, 0); + /* 2 */ +} +/** + * Neat trick to bind the rubberband effect to our canvas instead of the whole + * document on iOS. It also prevents a bug that causes the document underneath to scroll. + */ +.w-lightbox-backdrop, +.w-lightbox-container { + height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.w-lightbox-content { + position: relative; + height: 100vh; + overflow: hidden; +} +.w-lightbox-view { + position: absolute; + width: 100vw; + height: 100vh; + opacity: 0; +} +.w-lightbox-view:before { + content: ""; + height: 100vh; +} +/* .w-lightbox-content */ +.w-lightbox-group, +.w-lightbox-group .w-lightbox-view, +.w-lightbox-group .w-lightbox-view:before { + height: 86vh; +} +.w-lightbox-frame, +.w-lightbox-view:before { + display: inline-block; + vertical-align: middle; +} +/* + * 1. Remove default margin set by user-agent on the
element. + */ +.w-lightbox-figure { + position: relative; + margin: 0; + /* 1 */ +} +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} +/** + * IE adds image dimensions as width and height attributes on the IMG tag, + * but we need both width and height to be set to auto to enable scaling. + */ +.w-lightbox-img { + width: auto; + height: auto; + max-width: none; +} +/** + * 1. Reset if style is set by user on "All Images" + */ +.w-lightbox-image { + display: block; + float: none; + /* 1 */ + max-width: 100vw; + max-height: 100vh; +} +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} +.w-lightbox-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 0.5em 1em; + background: rgba(0, 0, 0, 0.4); + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.w-lightbox-embed { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; +} +.w-lightbox-control { + position: absolute; + top: 0; + width: 4em; + background-size: 24px; + background-repeat: no-repeat; + background-position: center; + cursor: pointer; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.w-lightbox-left { + display: none; + bottom: 0; + left: 0; + /* */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); +} +.w-lightbox-right { + display: none; + right: 0; + bottom: 0; + /* */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); +} +/* + * Without specifying the with and height inside the SVG, all versions of IE render the icon too small. + * The bug does not seem to manifest itself if the elements are tall enough such as the above arrows. + * (http://stackoverflow.com/questions/16092114/background-size-differs-in-internet-explorer) + */ +.w-lightbox-close { + right: 0; + height: 2.6em; + /* */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; +} +/** + * 1. All IE versions add extra space at the bottom without this. + */ +.w-lightbox-strip { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 0 1vh; + line-height: 0; + /* 1 */ + white-space: nowrap; + overflow-x: auto; + overflow-y: hidden; +} +/* + * 1. We use content-box to avoid having to do `width: calc(10vh + 2vw)` + * which doesn’t work in Safari anyway. + * 2. Chrome renders images pixelated when switching to GPU. Making sure + * the parent is also rendered on the GPU (by setting translate3d for + * example) fixes this behavior. + */ +.w-lightbox-item { + display: inline-block; + width: 10vh; + padding: 2vh 1vh; + box-sizing: content-box; + /* 1 */ + cursor: pointer; + -webkit-transform: translate3d(0, 0, 0); + /* 2 */ +} +.w-lightbox-active { + opacity: 0.3; +} +.w-lightbox-thumbnail { + position: relative; + height: 10vh; + background: #222; + overflow: hidden; +} +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} +.w-lightbox-thumbnail .w-lightbox-tall { + top: 50%; + width: 100%; + -webkit-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.w-lightbox-thumbnail .w-lightbox-wide { + left: 50%; + height: 100%; + -webkit-transform: translate(-50%, 0); + -ms-transform: translate(-50%, 0); + transform: translate(-50%, 0); +} +/* + * Spinner + * + * Absolute pixel values are used to avoid rounding errors that would cause + * the white spinning element to be misaligned with the track. + */ +.w-lightbox-spinner { + position: absolute; + top: 50%; + left: 50%; + box-sizing: border-box; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + border: 5px solid rgba(0, 0, 0, 0.4); + border-radius: 50%; + -webkit-animation: spin 0.8s infinite linear; + animation: spin 0.8s infinite linear; +} +.w-lightbox-spinner:after { + content: ""; + position: absolute; + top: -4px; + right: -4px; + bottom: -4px; + left: -4px; + border: 3px solid transparent; + border-bottom-color: #fff; + border-radius: 50%; +} +/* + * Utility classes + */ +.w-lightbox-hide { + display: none; +} +.w-lightbox-noscroll { + overflow: hidden; +} +@media (min-width: 768px) { + .w-lightbox-content { + height: 96vh; + margin-top: 2vh; + } + .w-lightbox-view, + .w-lightbox-view:before { + height: 96vh; + } + /* .w-lightbox-content */ + .w-lightbox-group, + .w-lightbox-group .w-lightbox-view, + .w-lightbox-group .w-lightbox-view:before { + height: 84vh; + } + .w-lightbox-image { + max-width: 96vw; + max-height: 96vh; + } + .w-lightbox-group .w-lightbox-image { + max-width: 82.3vw; + max-height: 84vh; + } + .w-lightbox-left, + .w-lightbox-right { + display: block; + opacity: 0.5; + } + .w-lightbox-close { + opacity: 0.8; + } + .w-lightbox-control:hover { + opacity: 1; + } +} +.w-lightbox-inactive, +.w-lightbox-inactive:hover { + opacity: 0; +} +.w-richtext:before, +.w-richtext:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-richtext:after { + clear: both; +} +.w-richtext[contenteditable="true"]:before, +.w-richtext[contenteditable="true"]:after { + white-space: initial; +} +.w-richtext ol, +.w-richtext ul { + overflow: hidden; +} +.w-richtext .w-richtext-figure-selected.w-richtext-figure-type-video div:after, +.w-richtext .w-richtext-figure-selected[data-rt-type="video"] div:after { + outline: 2px solid #2895f7; +} +.w-richtext .w-richtext-figure-selected.w-richtext-figure-type-image div, +.w-richtext .w-richtext-figure-selected[data-rt-type="image"] div { + outline: 2px solid #2895f7; +} +.w-richtext figure.w-richtext-figure-type-video > div:after, +.w-richtext figure[data-rt-type="video"] > div:after { + content: ''; + position: absolute; + display: none; + left: 0; + top: 0; + right: 0; + bottom: 0; +} +.w-richtext figure { + position: relative; + max-width: 60%; +} +.w-richtext figure > div:before { + cursor: default!important; +} +.w-richtext figure img { + width: 100%; +} +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: 0.6; +} +.w-richtext figure div { + /* fix incorrectly sized selection border in the data manager */ + font-size: 0px; + color: transparent; +} +.w-richtext figure.w-richtext-figure-type-image, +.w-richtext figure[data-rt-type="image"] { + display: table; +} +.w-richtext figure.w-richtext-figure-type-image > div, +.w-richtext figure[data-rt-type="image"] > div { + display: inline-block; +} +.w-richtext figure.w-richtext-figure-type-image > figcaption, +.w-richtext figure[data-rt-type="image"] > figcaption { + display: table-caption; + caption-side: bottom; +} +.w-richtext figure.w-richtext-figure-type-video, +.w-richtext figure[data-rt-type="video"] { + width: 60%; + height: 0; +} +.w-richtext figure.w-richtext-figure-type-video iframe, +.w-richtext figure[data-rt-type="video"] iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.w-richtext figure.w-richtext-figure-type-video > div, +.w-richtext figure[data-rt-type="video"] > div { + width: 100%; +} +.w-richtext figure.w-richtext-align-center { + margin-right: auto; + margin-left: auto; + clear: both; +} +.w-richtext figure.w-richtext-align-center.w-richtext-figure-type-image > div, +.w-richtext figure.w-richtext-align-center[data-rt-type="image"] > div { + max-width: 100%; +} +.w-richtext figure.w-richtext-align-normal { + clear: both; +} +.w-richtext figure.w-richtext-align-fullwidth { + width: 100%; + max-width: 100%; + text-align: center; + clear: both; + display: block; + margin-right: auto; + margin-left: auto; +} +.w-richtext figure.w-richtext-align-fullwidth > div { + display: inline-block; + /* padding-bottom is used for aspect ratios in video figures + we want the div to inherit that so hover/selection borders in the designer-canvas + fit right*/ + padding-bottom: inherit; +} +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} +.w-richtext figure.w-richtext-align-floatleft { + float: left; + margin-right: 15px; + clear: none; +} +.w-richtext figure.w-richtext-align-floatright { + float: right; + margin-left: 15px; + clear: none; +} +.w-nav { + position: relative; + background: #dddddd; + z-index: 1000; +} +.w-nav:before, +.w-nav:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-nav:after { + clear: both; +} +.w-nav-brand { + position: relative; + float: left; + text-decoration: none; + color: #333333; +} +.w-nav-link { + position: relative; + display: inline-block; + vertical-align: top; + text-decoration: none; + color: #222222; + padding: 20px; + text-align: left; + margin-left: auto; + margin-right: auto; +} +.w-nav-link.w--current { + color: #0082f3; +} +.w-nav-menu { + position: relative; + float: right; +} +[data-nav-menu-open] { + display: block !important; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: #C8C8C8; + text-align: center; + overflow: visible; + min-width: 200px; +} +.w--nav-link-open { + display: block; + position: relative; +} +.w-nav-overlay { + position: absolute; + overflow: hidden; + display: none; + top: 100%; + left: 0; + right: 0; + width: 100%; +} +.w-nav-overlay [data-nav-menu-open] { + top: 0; +} +.w-nav[data-animation="over-left"] .w-nav-overlay { + width: auto; +} +.w-nav[data-animation="over-left"] .w-nav-overlay, +.w-nav[data-animation="over-left"] [data-nav-menu-open] { + right: auto; + z-index: 1; + top: 0; +} +.w-nav[data-animation="over-right"] .w-nav-overlay { + width: auto; +} +.w-nav[data-animation="over-right"] .w-nav-overlay, +.w-nav[data-animation="over-right"] [data-nav-menu-open] { + left: auto; + z-index: 1; + top: 0; +} +.w-nav-button { + position: relative; + float: right; + padding: 18px; + font-size: 24px; + display: none; + cursor: pointer; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.w-nav-button:focus { + outline: 0; +} +.w-nav-button.w--open { + background-color: #C8C8C8; + color: white; +} +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} +.w-nav[data-collapse="all"] .w-nav-button { + display: block; +} +.w--nav-dropdown-open { + display: block; +} +.w--nav-dropdown-toggle-open { + display: block; +} +.w--nav-dropdown-list-open { + position: static; +} +@media screen and (max-width: 991px) { + .w-nav[data-collapse="medium"] .w-nav-menu { + display: none; + } + .w-nav[data-collapse="medium"] .w-nav-button { + display: block; + } +} +@media screen and (max-width: 767px) { + .w-nav[data-collapse="small"] .w-nav-menu { + display: none; + } + .w-nav[data-collapse="small"] .w-nav-button { + display: block; + } + .w-nav-brand { + padding-left: 10px; + } +} +@media screen and (max-width: 479px) { + .w-nav[data-collapse="tiny"] .w-nav-menu { + display: none; + } + .w-nav[data-collapse="tiny"] .w-nav-button { + display: block; + } +} +.w-tabs { + position: relative; +} +.w-tabs:before, +.w-tabs:after { + content: " "; + display: table; + grid-column-start: 1; + grid-row-start: 1; + grid-column-end: 2; + grid-row-end: 2; +} +.w-tabs:after { + clear: both; +} +.w-tab-menu { + position: relative; +} +.w-tab-link { + position: relative; + display: inline-block; + vertical-align: top; + text-decoration: none; + padding: 9px 30px; + text-align: left; + cursor: pointer; + color: #222222; + background-color: #dddddd; +} +.w-tab-link.w--current { + background-color: #C8C8C8; +} +.w-tab-link:focus { + outline: 0; +} +.w-tab-content { + position: relative; + display: block; + overflow: hidden; +} +.w-tab-pane { + position: relative; + display: none; +} +.w--tab-active { + display: block; +} +@media screen and (max-width: 479px) { + .w-tab-link { + display: block; + } +} +.w-ix-emptyfix:after { + content: ""; +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.w-dyn-empty { + padding: 10px; + background-color: #dddddd; +} +.w-dyn-hide { + display: none !important; +} +.w-dyn-bind-empty { + display: none !important; +} +.w-condition-invisible { + display: none !important; +} +.wf-layout-layout { + display: grid !important; +} +.wf-layout-cell { + display: flex !important; +} diff --git a/css/zdravo-stopalo.webflow.css b/css/zdravo-stopalo.webflow.css new file mode 100644 index 0000000..6ee2ffb --- /dev/null +++ b/css/zdravo-stopalo.webflow.css @@ -0,0 +1,2329 @@ +.w-layout-grid { + display: -ms-grid; + display: grid; + grid-auto-columns: 1fr; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + -ms-grid-rows: auto auto; + grid-template-rows: auto auto; + grid-row-gap: 16px; + grid-column-gap: 16px; +} + +body { + font-family: Montserrat, sans-serif; + color: #1a1b1f; + font-size: 16px; + line-height: 28px; + font-weight: 400; +} + +h1 { + margin-top: 20px; + margin-bottom: 15px; + font-size: 44px; + line-height: 62px; + font-weight: 400; +} + +h2 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 36px; + line-height: 50px; + font-weight: 400; +} + +h3 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 30px; + line-height: 46px; + font-weight: 400; +} + +h4 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 24px; + line-height: 38px; + font-weight: 400; +} + +h5 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 20px; + line-height: 34px; + font-weight: 500; +} + +h6 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 16px; + line-height: 28px; + font-weight: 500; +} + +p { + margin-bottom: 10px; +} + +a { + display: block; + -webkit-transition: opacity 200ms ease; + transition: opacity 200ms ease; + color: #1a1b1f; + text-decoration: underline; +} + +a:hover { + color: #32343a; +} + +a:active { + color: #43464d; +} + +ul { + margin-top: 20px; + margin-bottom: 10px; + padding-left: 40px; + list-style-type: disc; +} + +li { + margin-bottom: 10px; +} + +img { + display: block; +} + +label { + margin-bottom: 10px; + font-size: 12px; + line-height: 20px; + font-weight: 500; + letter-spacing: 1px; + text-transform: uppercase; +} + +blockquote { + margin-top: 25px; + margin-bottom: 25px; + padding: 15px 30px; + border-left: 5px solid #e2e2e2; + font-size: 20px; + line-height: 34px; +} + +figure { + margin-top: 25px; + padding-bottom: 20px; +} + +figcaption { + margin-top: 5px; + opacity: 0.6; + font-size: 14px; + line-height: 26px; + text-align: center; +} + +.divider { + height: 1px; + background-color: #eee; +} + +.styleguide-content-wrap { + text-align: center; +} + +.section { + margin-right: 30px; + margin-left: 30px; +} + +.section.cc-cta { + padding-right: 80px; + padding-left: 80px; + background-color: #f4f4f4; +} + +.styleguide-block { + display: block; + margin-top: 80px; + margin-bottom: 80px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + text-align: left; +} + +.container { + width: 100%; + max-width: 1140px; + margin-right: auto; + margin-left: auto; +} + +.paragraph-tiny { + font-size: 12px; + line-height: 20px; +} + +.paragraph-bigger { + margin-bottom: 10px; + opacity: 1; + font-size: 20px; + line-height: 34px; + font-weight: 400; +} + +.paragraph-bigger.cc-bigger-light { + opacity: 0.6; +} + +.paragraph-bigger.cc-bigger-white-light { + opacity: 0.6; +} + +.button { + padding: 12px 25px; + border-radius: 0px; + background-color: #1a1b1f; + -webkit-transition: background-color 400ms ease, opacity 400ms ease, color 400ms ease; + transition: background-color 400ms ease, opacity 400ms ease, color 400ms ease; + color: #fff; + font-size: 12px; + line-height: 20px; + letter-spacing: 2px; + text-decoration: none; + text-transform: uppercase; +} + +.button:hover { + background-color: #32343a; + color: #fff; +} + +.button:active { + background-color: #43464d; +} + +.button.cc-jumbo-button { + padding: 16px 35px; + font-size: 14px; + line-height: 26px; +} + +.button.cc-jumbo-button.cc-jumbo-white { + background-color: #fff; + color: #000; +} + +.button.cc-jumbo-button.cc-jumbo-white:hover { + background-color: #f1f1f1; +} + +.button.cc-jumbo-button.cc-jumbo-white:active { + background-color: #e1e1e1; +} + +.button.cc-contact-us { + position: relative; + z-index: 5; +} + +.button.cc-white-button { + padding: 16px 35px; + background-color: #fff; + color: #202020; + font-size: 14px; + line-height: 26px; +} + +.button.cc-white-button:hover { + background-color: hsla(0, 0%, 100%, 0.8); +} + +.button.cc-white-button:active { + background-color: hsla(0, 0%, 100%, 0.9); +} + +.label { + margin-bottom: 10px; + font-size: 12px; + line-height: 20px; + font-weight: 500; + letter-spacing: 1px; + text-transform: uppercase; +} + +.label.cc-styleguide-label { + margin-bottom: 25px; +} + +.label.cc-light { + opacity: 0.6; +} + +.label.cc-blog-date { + margin-top: 20px; + opacity: 0.6; +} + +.heading-jumbo-tiny { + margin-top: 10px; + margin-bottom: 10px; + font-size: 18px; + line-height: 32px; + font-weight: 500; + text-transform: uppercase; +} + +.rich-text { + width: 70%; + margin-right: auto; + margin-bottom: 100px; + margin-left: auto; +} + +.rich-text p { + margin-top: 15px; + margin-bottom: 25px; + opacity: 0.6; +} + +.paragraph-light { + opacity: 0.6; +} + +.heading-jumbo { + margin-top: 10px; + margin-bottom: 10px; + font-size: 64px; + line-height: 80px; + text-transform: none; +} + +.heading-jumbo-small { + margin-top: 10px; + margin-bottom: 15px; + font-size: 36px; + line-height: 50px; + font-weight: 400; + text-transform: none; +} + +.styleguide-button-wrap { + margin-top: 10px; + margin-bottom: 10px; +} + +.styleguide-header-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + height: 460px; + padding: 30px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #1a1b1f; + color: #fff; + text-align: center; +} + +.paragraph-small { + font-size: 14px; + line-height: 26px; +} + +.logo-link { + z-index: 1; +} + +.logo-link:hover { + opacity: 0.8; +} + +.logo-link:active { + opacity: 0.7; +} + +.menu { + position: absolute; + left: 0%; + top: 0%; + right: 0%; + bottom: 0%; + z-index: 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.navigation-wrap { + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.navigation { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + padding: 30px 50px; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: transparent; +} + +.navigation-item { + padding-top: 9px; + padding-bottom: 9px; + opacity: 0.6; + font-size: 12px; + line-height: 20px; + font-weight: 500; + letter-spacing: 1px; + text-transform: uppercase; +} + +.navigation-item:hover { + opacity: 0.9; +} + +.navigation-item:active { + opacity: 0.8; +} + +.navigation-item.w--current { + opacity: 1; + color: #1a1b1f; + font-weight: 600; +} + +.navigation-item.w--current:hover { + opacity: 0.8; + color: #32343a; +} + +.navigation-item.w--current:active { + opacity: 0.7; + color: #32343a; +} + +.logo-image { + display: block; +} + +.navigation-items { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +.footer-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + padding-top: 70px; + padding-bottom: 70px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.webflow-link { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + opacity: 0.5; + -webkit-transition: opacity 400ms ease; + transition: opacity 400ms ease; + text-decoration: none; +} + +.webflow-link:hover { + opacity: 1; +} + +.webflow-link:active { + opacity: 0.8; +} + +.webflow-logo-tiny { + margin-top: -2px; + margin-right: 8px; +} + +.cta-text { + width: 70%; + margin-right: auto; + margin-bottom: 35px; + margin-left: auto; +} + +.cta-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + padding-top: 110px; + padding-bottom: 120px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.intro-header { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + height: 620px; + margin-bottom: 100px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #f4f4f4; + background-image: url('../images/Untitled-design.png'); + background-position: 0px 0px; + background-size: cover; + color: #fff; +} + +.intro-header.cc-subpage { + height: 480px; + background-color: #000; + background-image: none; + color: #fff; +} + +.intro-content { + width: 70%; + max-width: 1140px; + text-align: center; +} + +.intro-content.cc-homepage { + margin-bottom: 20px; +} + +.motto-wrap { + width: 80%; + margin-right: auto; + margin-bottom: 85px; + margin-left: auto; + text-align: center; +} + +.about-story-wrap { + width: 80%; + margin: 80px auto; + text-align: center; +} + +.our-services-grid { + margin-bottom: 120px; + grid-column-gap: 80px; + grid-row-gap: 60px; + -ms-grid-rows: auto 60px auto; + grid-template-areas: ". . ." + ". . ."; + -ms-grid-columns: 1fr 80px 1fr 80px 1fr; + grid-template-columns: 1fr 1fr 1fr; +} + +.section-heading-wrap { + margin-top: 80px; + margin-bottom: 80px; + text-align: center; +} + +.service-icon { + margin-bottom: 30px; +} + +.status-message { + padding: 9px 30px; + background-color: #202020; + color: #fff; + font-size: 14px; + line-height: 26px; + text-align: center; +} + +.status-message.cc-success-message { + background-color: #12b878; +} + +.status-message.cc-error-message { + background-color: #db4b68; +} + +.status-message.cc-no-data { + display: block; + width: 70%; + margin: 100px auto; +} + +.contact-form-wrap { + padding: 45px 50px 50px; + border-style: solid; + border-width: 1px; + border-color: #eee; +} + +.contact-form-grid { + margin-top: 100px; + margin-bottom: 100px; + -webkit-box-align: start; + -webkit-align-items: start; + -ms-flex-align: start; + align-items: start; + grid-column-gap: 80px; + grid-row-gap: 30px; + grid-template-areas: ". ."; + -ms-grid-columns: 2.5fr 80px 1fr; + grid-template-columns: 2.5fr 1fr; + -ms-grid-rows: auto; + grid-template-rows: auto; +} + +.details-wrap { + margin-bottom: 30px; +} + +.get-in-touch-form { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} + +.text-field { + margin-bottom: 18px; + padding: 21px 20px; + border: 1px solid #e4e4e4; + border-radius: 0px; + -webkit-transition: border-color 400ms ease; + transition: border-color 400ms ease; + font-size: 14px; + line-height: 26px; +} + +.text-field:hover { + border-color: #e3e6eb; +} + +.text-field:active { + border-color: #43464d; +} + +.text-field:focus { + border-color: #43464d; +} + +.text-field::-webkit-input-placeholder { + color: rgba(50, 52, 58, 0.4); +} + +.text-field:-ms-input-placeholder { + color: rgba(50, 52, 58, 0.4); +} + +.text-field::-ms-input-placeholder { + color: rgba(50, 52, 58, 0.4); +} + +.text-field::placeholder { + color: rgba(50, 52, 58, 0.4); +} + +.text-field.cc-contact-field { + margin-bottom: 25px; +} + +.text-field.cc-textarea { + height: 200px; + padding-top: 12px; +} + +.contact-form { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-right: auto; + margin-bottom: 0px; + margin-left: auto; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; +} + +.contact-form-heading-wrap { + margin-bottom: 40px; +} + +.contact-heading { + margin-top: 0px; + margin-bottom: 15px; + font-weight: 400; +} + +.map { + height: 460px; + margin-bottom: 100px; + line-height: 20px; +} + +.contact-team-name-wrap { + margin-bottom: 30px; +} + +.our-contacts { + margin-bottom: 120px; + grid-column-gap: 80px; + grid-row-gap: 60px; + grid-template-areas: ". . ."; + -ms-grid-columns: 1fr 80px 1fr 80px 1fr; + grid-template-columns: 1fr 1fr 1fr; + -ms-grid-rows: auto; + grid-template-rows: auto; + text-align: center; +} + +.contact-team-details-wrap { + margin-top: 30px; +} + +.contact-team-pic { + height: 150px; + margin-bottom: 30px; + background-color: #f4f4f4; +} + +.team-pic { + width: 100%; + height: 420px; + margin-bottom: 40px; + background-color: #f4f4f4; +} + +.team-members { + margin-bottom: 60px; + grid-column-gap: 30px; + grid-row-gap: 30px; + -ms-grid-rows: auto 30px auto; + grid-template-areas: ". . ." + ". . ."; + -ms-grid-columns: 1fr 30px 1fr 30px 1fr; + grid-template-columns: 1fr 1fr 1fr; +} + +.team-member-title-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-bottom: 60px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} + +.team-member-name { + margin-bottom: 5px; + opacity: 1; + font-size: 20px; + line-height: 34px; + font-weight: 400; +} + +.projects-grid { + margin-bottom: 60px; + grid-column-gap: 30px; + grid-row-gap: 30px; + grid-template-areas: "." + "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto 30px auto 30px auto; + grid-template-rows: auto auto auto; +} + +.project-name-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-bottom: 60px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + text-align: center; +} + +.project-name-link { + margin-bottom: 5px; + font-size: 20px; + line-height: 34px; + font-weight: 400; + text-decoration: none; +} + +.project-name-link:hover { + opacity: 0.8; +} + +.project-name-link:active { + opacity: 0.7; +} + +.project-cover-link { + margin-bottom: 40px; +} + +.project-cover-link:hover { + opacity: 0.8; +} + +.project-cover-link:active { + opacity: 0.7; +} + +.project-overview-header { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + height: 620px; + margin-bottom: 100px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #f4f4f4; + background-image: url('../images/portfolio-1---wide.svg'); + background-position: 50% 50%; + background-size: cover; + color: #fff; +} + +.project-overview-header.cc-project-2-header { + background-image: url('../images/portfolio-2---wide.svg'); + background-position: 50% 50%; +} + +.project-overview-header.cc-project-3-header { + background-image: url('../images/portfolio-3---wide.svg'); + background-size: cover; +} + +.project-details-grid { + margin-top: 100px; + margin-bottom: 100px; + -webkit-box-align: start; + -webkit-align-items: start; + -ms-flex-align: start; + align-items: start; + grid-column-gap: 80px; + grid-row-gap: 30px; + grid-template-areas: ". ."; + -ms-grid-columns: 1fr 80px 2fr; + grid-template-columns: 1fr 2fr; + -ms-grid-rows: auto; + grid-template-rows: auto; +} + +.project-pics { + margin-bottom: 120px; +} + +.detail-image { + width: 100%; + margin-bottom: 30px; +} + +.blog-detail-header-wrap { + width: 70%; + margin: 60px auto; +} + +.detail-header-image { + display: block; + width: 100%; + height: 620px; + margin-bottom: 60px; + background-image: url('https://d3e54v103j8qbb.cloudfront.net/img/background-image.svg'); + background-position: 0px 0px; + background-size: cover; +} + +.detail-header-image.w--current { + margin-bottom: 60px; +} + +.blog-list-wrap { + margin-bottom: 100px; +} + +.blog-item { + display: block; + margin-right: auto; + margin-bottom: 80px; + margin-left: auto; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.blog-preview-image { + display: block; + width: 100%; + height: 620px; + margin-bottom: 45px; + background-image: url('https://d3e54v103j8qbb.cloudfront.net/img/background-image.svg'); + background-position: 0px 0px; + background-size: cover; + -webkit-transition: opacity 600ms ease; + transition: opacity 600ms ease; +} + +.blog-preview-image:hover { + opacity: 0.8; +} + +.blog-preview-image:active { + opacity: 0.7; +} + +.blog-summary-wrap { + width: 70%; + margin-right: auto; + margin-bottom: 20px; + margin-left: auto; + text-align: left; +} + +.blog-heading-link { + margin-bottom: 10px; + font-size: 30px; + line-height: 46px; + font-weight: 400; + text-decoration: none; +} + +.blog-heading-link:hover { + opacity: 0.8; +} + +.blog-heading-link:active { + opacity: 0.7; +} + +.contact-email-link { + margin-bottom: 5px; + opacity: 0.6; +} + +.contact-email-link:hover { + opacity: 1; +} + +.contact-email-link:active { + opacity: 0.8; +} + +.protected-form { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} + +.protected-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + padding-top: 90px; + padding-bottom: 100px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} + +.protected-heading { + margin-bottom: 30px; +} + +.utility-page-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100vw; + height: 100vh; + max-height: 100%; + max-width: 100%; + padding: 30px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + color: #fff; + text-align: center; +} + +._404-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; + height: 100%; + padding: 30px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + background-color: #1a1b1f; +} + +._404-content-wrap { + margin-bottom: 20px; +} + +.home-content-wrap { + margin-top: 80px; + margin-bottom: 120px; +} + +.home-section-wrap { + margin-bottom: 30px; +} + +.section-heading { + margin-top: 10px; + margin-bottom: 20px; + font-weight: 400; +} + +.about-grid { + margin-bottom: 80px; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + grid-column-gap: 80px; + grid-row-gap: 30px; + grid-template-areas: ". ."; + -ms-grid-columns: 1fr 80px 2fr; + grid-template-columns: 1fr 2fr; + -ms-grid-rows: auto; + grid-template-rows: auto; +} + +.about-grid.cc-about-2 { + grid-template-areas: ". ."; + -ms-grid-columns: 2fr 1fr; + grid-template-columns: 2fr 1fr; +} + +.intro-text { + width: 80%; + margin-right: auto; + margin-bottom: 35px; + margin-left: auto; +} + +.collection-wrap { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-right: -15px; + margin-left: -15px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; +} + +.work-heading { + margin-top: 10px; + margin-bottom: 20px; + font-weight: 400; +} + +.blog-heading { + margin-bottom: 60px; + text-align: center; +} + +.blog-preview-wrap { + width: 33.33%; + padding-right: 45px; + padding-bottom: 30px; + padding-left: 15px; +} + +.collection-list-wrapper { + margin-bottom: 120px; +} + +.business-article-heading { + margin-top: 10px; + margin-bottom: 10px; + font-size: 24px; + line-height: 38px; + font-weight: 500; + text-decoration: none; +} + +.business-article-heading:hover { + opacity: 0.8; +} + +.business-article-heading:active { + opacity: 0.7; +} + +.div-block { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; +} + +@media screen and (max-width: 991px) { + .section.cc-cta { + padding-right: 0px; + padding-left: 0px; + } + + .styleguide-block { + text-align: center; + } + + .button { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + + .button.cc-contact-us { + display: none; + } + + .heading-jumbo { + font-size: 56px; + line-height: 70px; + } + + .logo-link.w--current { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + } + + .menu-icon { + display: block; + } + + .menu { + position: static; + margin-left: 30px; + } + + .navigation-wrap { + background-color: #fff; + } + + .navigation { + padding: 25px 30px; + } + + .navigation-item { + padding: 15px 30px; + -webkit-transition: background-color 400ms ease, opacity 400ms ease, color 400ms ease; + transition: background-color 400ms ease, opacity 400ms ease, color 400ms ease; + text-align: center; + } + + .navigation-item:hover { + background-color: #f7f8f9; + } + + .navigation-item:active { + background-color: #eef0f3; + } + + .menu-button { + padding: 0px; + } + + .menu-button.w--open { + background-color: transparent; + } + + .navigation-items { + background-color: #fff; + } + + .cta-text { + width: auto; + } + + .cta-wrap { + width: auto; + padding: 80px 50px 90px; + } + + .our-services-grid { + width: 80%; + margin-right: auto; + margin-left: auto; + grid-template-areas: ". ." + ". ." + ". ."; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + -ms-grid-rows: auto auto auto; + grid-template-rows: auto auto auto; + text-align: center; + } + + .service-icon { + display: inline-block; + } + + .contact-form-grid { + width: 80%; + margin-right: auto; + margin-left: auto; + grid-row-gap: 50px; + grid-template-areas: "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto 50px auto; + grid-template-rows: auto auto; + text-align: center; + } + + .get-in-touch-form { + text-align: left; + } + + .our-contacts { + width: 80%; + margin-right: auto; + margin-left: auto; + grid-template-areas: "." + "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto auto auto; + grid-template-rows: auto auto auto; + } + + .team-members { + grid-template-areas: ". ." + ". ." + ". ."; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + -ms-grid-rows: auto auto auto; + grid-template-rows: auto auto auto; + } + + .team-member-title-wrap { + margin-bottom: 30px; + } + + .project-details-grid { + width: 80%; + margin-right: auto; + margin-left: auto; + grid-row-gap: 50px; + grid-template-areas: "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto 50px auto; + grid-template-rows: auto auto; + text-align: center; + } + + .blog-detail-header-wrap { + width: 70%; + } + + .detail-header-image { + height: 460px; + } + + .blog-item { + width: 80%; + } + + .blog-preview-image { + height: 460px; + } + + .blog-summary-wrap { + width: 100%; + } + + .about-grid { + grid-row-gap: 50px; + grid-template-areas: "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto 50px auto; + grid-template-rows: auto auto; + text-align: center; + } + + .about-grid.cc-about-2 { + grid-template-areas: "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + } + + .intro-text { + width: auto; + } + + .collection-wrap { + margin-right: 0px; + margin-left: 0px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + + .blog-preview-wrap { + width: 80%; + padding-right: 15px; + text-align: center; + } +} + +@media screen and (max-width: 767px) { + .section { + margin-right: 15px; + margin-left: 15px; + } + + .section.cc-cta { + padding: 15px; + } + + .section.cc-home-wrap { + margin-right: 15px; + margin-left: 15px; + } + + .section.cc-store-home-wrap { + margin-right: 15px; + margin-left: 15px; + } + + .container { + text-align: center; + } + + .paragraph-bigger { + font-size: 16px; + line-height: 28px; + } + + .rich-text { + width: 90%; + max-width: 470px; + text-align: left; + } + + .heading-jumbo { + font-size: 50px; + line-height: 64px; + } + + .heading-jumbo-small { + font-size: 30px; + line-height: 52px; + } + + .logo-link { + padding-left: 0px; + } + + .navigation { + padding: 20px 30px; + } + + .cta-wrap { + padding-right: 30px; + padding-left: 30px; + } + + .intro-content { + width: 80%; + } + + .our-services-grid { + grid-row-gap: 60px; + grid-template-areas: "." + "." + "." + "." + "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto 60px auto 60px auto 60px auto 60px auto 60px auto; + grid-template-rows: auto auto auto auto auto auto; + } + + .status-message.cc-no-data { + width: 80%; + max-width: 470px; + } + + .contact-form-wrap { + padding: 30px; + } + + .text-field.cc-contact-field { + text-align: left; + } + + .text-field.cc-textarea { + text-align: left; + } + + .team-pic { + height: 300px; + margin-bottom: 30px; + } + + .team-member-name { + font-size: 16px; + line-height: 28px; + } + + .project-name-wrap { + margin-bottom: 30px; + } + + .project-name-link { + font-size: 16px; + line-height: 28px; + } + + .detail-image { + margin-bottom: 15px; + } + + .blog-detail-header-wrap { + width: 90%; + max-width: 470px; + text-align: left; + } + + .blog-item { + width: 90%; + max-width: 470px; + } + + .blog-summary-wrap { + text-align: center; + } + + .utility-page-wrap { + padding: 15px; + } + + ._404-wrap { + padding: 30px; + } +} + +@media screen and (max-width: 479px) { + h1 { + font-size: 36px; + line-height: 52px; + } + + .rich-text { + width: 100%; + max-width: none; + } + + .heading-jumbo { + font-size: 36px; + line-height: 48px; + } + + .menu { + margin-left: 15px; + } + + .navigation { + padding-right: 20px; + padding-left: 20px; + } + + .menu-button { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + } + + .menu-button.w--open { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + } + + .cta-wrap { + padding-right: 15px; + padding-left: 15px; + } + + .status-message.cc-no-data { + width: 100%; + } + + .contact-form-grid { + width: 100%; + } + + .our-contacts { + width: 90%; + } + + .team-members { + grid-template-areas: "." + "." + "." + "." + "." + "."; + -ms-grid-columns: 1fr; + grid-template-columns: 1fr; + -ms-grid-rows: auto auto auto auto auto auto; + grid-template-rows: auto auto auto auto auto auto; + } + + .project-details-grid { + width: 100%; + } + + .blog-detail-header-wrap { + width: 100%; + max-width: none; + } + + .blog-item { + width: 100%; + max-width: none; + } +} + +#w-node-_86e64837-0616-515b-4568-76c147234d3f-14cbd857 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_86e64837-0616-515b-4568-76c147234d41-14cbd857 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_86e64837-0616-515b-4568-76c147234d4c-14cbd857 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-ca1212d8-4247-8b87-bc90-543393b118e6-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-ca1212d8-4247-8b87-bc90-543393b118ec-b4cbd85f { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-ca1212d8-4247-8b87-bc90-543393b118f2-b4cbd85f { + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-ca1212d8-4247-8b87-bc90-543393b118f8-b4cbd85f { + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +#w-node-ca1212d8-4247-8b87-bc90-543393b118fe-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +#w-node-ca1212d8-4247-8b87-bc90-543393b11905-b4cbd85f { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +#w-node-_3f61509a-fac7-b0d5-3763-509be705858e-c4cbd861 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_3f61509a-fac7-b0d5-3763-509be70585a6-c4cbd861 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-cb4222c2-e34c-f4e1-7796-79bb93a2fb08-c4cbd861 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-cb4222c2-e34c-f4e1-7796-79bb93a2fb15-c4cbd861 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-cb4222c2-e34c-f4e1-7796-79bb93a2fb22-c4cbd861 { + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_421df62a-c217-12af-eee8-27f88a387918-17cbd863 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_421df62a-c217-12af-eee8-27f88a387928-17cbd863 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_421df62a-c217-12af-eee8-27f88a387918-13cbd864 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_421df62a-c217-12af-eee8-27f88a387928-13cbd864 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_421df62a-c217-12af-eee8-27f88a387918-40cbd865 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_421df62a-c217-12af-eee8-27f88a387928-40cbd865 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_2878ffd7-26fe-9471-3c4e-7763e2d38cdc-cbcbd866 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-_2878ffd7-26fe-9471-3c4e-7763e2d38ce3-cbcbd866 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +#w-node-_2878ffd7-26fe-9471-3c4e-7763e2d38cea-cbcbd866 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-row-span: 1; + grid-row-end: 4; +} + +#w-node-c28cc763-f708-1e61-f196-6bd9fce9803c-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-c28cc763-f708-1e61-f196-6bd9fce98043-eecbd868 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-c28cc763-f708-1e61-f196-6bd9fce9804a-eecbd868 { + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-row-span: 1; + grid-row-end: 2; +} + +#w-node-c28cc763-f708-1e61-f196-6bd9fce98051-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +#w-node-c28cc763-f708-1e61-f196-6bd9fce98058-eecbd868 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +#w-node-c28cc763-f708-1e61-f196-6bd9fce9805f-eecbd868 { + -ms-grid-column: 3; + grid-column-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 4; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; +} + +@media screen and (max-width: 991px) { + #w-node-_86e64837-0616-515b-4568-76c147234d3f-14cbd857 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + } + + #w-node-_86e64837-0616-515b-4568-76c147234d41-14cbd857 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-_86e64837-0616-515b-4568-76c147234d4c-14cbd857 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 1; + grid-row-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 2; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b118f2-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b118f8-b4cbd85f { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row-span: 1; + grid-row-end: 4; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b118fe-b4cbd85f { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b11905-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 4; + } + + #w-node-_3f61509a-fac7-b0d5-3763-509be70585a6-c4cbd861 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-cb4222c2-e34c-f4e1-7796-79bb93a2fb15-c4cbd861 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-cb4222c2-e34c-f4e1-7796-79bb93a2fb22-c4cbd861 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 4; + } + + #w-node-_421df62a-c217-12af-eee8-27f88a387928-17cbd863 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-_421df62a-c217-12af-eee8-27f88a387928-13cbd864 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-_421df62a-c217-12af-eee8-27f88a387928-40cbd865 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce9804a-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce98051-eecbd868 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce98058-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 4; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce9805f-eecbd868 { + -ms-grid-column: 2; + grid-column-start: 2; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 3; + -ms-grid-row-span: 1; + grid-row-end: 4; + } +} + +@media screen and (max-width: 767px) { + #w-node-ca1212d8-4247-8b87-bc90-543393b118ec-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b118f2-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 4; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b118f8-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 6; + grid-row-start: 6; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 7; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b118fe-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 4; + grid-row-start: 4; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 5; + } + + #w-node-ca1212d8-4247-8b87-bc90-543393b11905-b4cbd85f { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 5; + grid-row-start: 5; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 6; + } +} + +@media screen and (max-width: 479px) { + #w-node-c28cc763-f708-1e61-f196-6bd9fce98043-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 2; + grid-row-start: 2; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 3; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce9804a-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 3; + grid-row-start: 3; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 4; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce98051-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 4; + grid-row-start: 4; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 5; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce98058-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 5; + grid-row-start: 5; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 6; + } + + #w-node-c28cc763-f708-1e61-f196-6bd9fce9805f-eecbd868 { + -ms-grid-column: 1; + grid-column-start: 1; + -ms-grid-row: 6; + grid-row-start: 6; + -ms-grid-column-span: 1; + grid-column-end: 2; + -ms-grid-row-span: 1; + grid-row-end: 7; + } +} + diff --git a/detail_post.html b/detail_post.html new file mode 100644 index 0000000..b1dbe17 --- /dev/null +++ b/detail_post.html @@ -0,0 +1,75 @@ + + + + + + Zdravo Stopalo + + + + + + + + + + + + + + +
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/images/Icon-1.svg b/images/Icon-1.svg new file mode 100644 index 0000000..10349ac --- /dev/null +++ b/images/Icon-1.svg @@ -0,0 +1,26 @@ + + + + Icon 1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/Icon-1_1.svg b/images/Icon-1_1.svg new file mode 100644 index 0000000..cca22ad --- /dev/null +++ b/images/Icon-1_1.svg @@ -0,0 +1,26 @@ + + + + Icon 1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/Icon-2.svg b/images/Icon-2.svg new file mode 100644 index 0000000..fb58ce0 --- /dev/null +++ b/images/Icon-2.svg @@ -0,0 +1,25 @@ + + + + Icon 2 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/Icon-3.svg b/images/Icon-3.svg new file mode 100644 index 0000000..f87fdbf --- /dev/null +++ b/images/Icon-3.svg @@ -0,0 +1,30 @@ + + + + Icon 3 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/Screenshot-2022-06-18-at-07.52.57-p-500.png b/images/Screenshot-2022-06-18-at-07.52.57-p-500.png new file mode 100644 index 0000000..4796662 Binary files /dev/null and b/images/Screenshot-2022-06-18-at-07.52.57-p-500.png differ diff --git a/images/Screenshot-2022-06-18-at-07.52.57-p-800.png b/images/Screenshot-2022-06-18-at-07.52.57-p-800.png new file mode 100644 index 0000000..3183901 Binary files /dev/null and b/images/Screenshot-2022-06-18-at-07.52.57-p-800.png differ diff --git a/images/Screenshot-2022-06-18-at-07.52.57.png b/images/Screenshot-2022-06-18-at-07.52.57.png new file mode 100644 index 0000000..775e7fc Binary files /dev/null and b/images/Screenshot-2022-06-18-at-07.52.57.png differ diff --git a/images/Screenshot-2022-06-18-at-08.05.26-p-500.png b/images/Screenshot-2022-06-18-at-08.05.26-p-500.png new file mode 100644 index 0000000..84359c4 Binary files /dev/null and b/images/Screenshot-2022-06-18-at-08.05.26-p-500.png differ diff --git a/images/Screenshot-2022-06-18-at-08.05.26-p-800.png b/images/Screenshot-2022-06-18-at-08.05.26-p-800.png new file mode 100644 index 0000000..4161e70 Binary files /dev/null and b/images/Screenshot-2022-06-18-at-08.05.26-p-800.png differ diff --git a/images/Screenshot-2022-06-18-at-08.05.26.png b/images/Screenshot-2022-06-18-at-08.05.26.png new file mode 100644 index 0000000..08a17e0 Binary files /dev/null and b/images/Screenshot-2022-06-18-at-08.05.26.png differ diff --git a/images/Untitled-design-p-1080.png b/images/Untitled-design-p-1080.png new file mode 100644 index 0000000..843e13e Binary files /dev/null and b/images/Untitled-design-p-1080.png differ diff --git a/images/Untitled-design-p-1600.png b/images/Untitled-design-p-1600.png new file mode 100644 index 0000000..d32b382 Binary files /dev/null and b/images/Untitled-design-p-1600.png differ diff --git a/images/Untitled-design-p-500.png b/images/Untitled-design-p-500.png new file mode 100644 index 0000000..6464456 Binary files /dev/null and b/images/Untitled-design-p-500.png differ diff --git a/images/Untitled-design-p-800.png b/images/Untitled-design-p-800.png new file mode 100644 index 0000000..256abb0 Binary files /dev/null and b/images/Untitled-design-p-800.png differ diff --git a/images/Untitled-design.png b/images/Untitled-design.png new file mode 100644 index 0000000..0781ef1 Binary files /dev/null and b/images/Untitled-design.png differ diff --git a/images/android-chrome-192x192.png b/images/android-chrome-192x192.png new file mode 100644 index 0000000..75467cd Binary files /dev/null and b/images/android-chrome-192x192.png differ diff --git a/images/android-chrome-512x512.png b/images/android-chrome-512x512.png new file mode 100644 index 0000000..0143c58 Binary files /dev/null and b/images/android-chrome-512x512.png differ diff --git a/images/apple-touch-icon.png b/images/apple-touch-icon.png new file mode 100644 index 0000000..888e848 Binary files /dev/null and b/images/apple-touch-icon.png differ diff --git a/images/favicon-16x16.png b/images/favicon-16x16.png new file mode 100644 index 0000000..fd115b7 Binary files /dev/null and b/images/favicon-16x16.png differ diff --git a/images/favicon-32x32.png b/images/favicon-32x32.png new file mode 100644 index 0000000..e91dd2a Binary files /dev/null and b/images/favicon-32x32.png differ diff --git a/images/favicon.ico b/images/favicon.ico new file mode 100644 index 0000000..6dc4240 Binary files /dev/null and b/images/favicon.ico differ diff --git a/images/menu-icon_1menu-icon.png b/images/menu-icon_1menu-icon.png new file mode 100644 index 0000000..7305596 Binary files /dev/null and b/images/menu-icon_1menu-icon.png differ diff --git a/images/placeholder-1.svg b/images/placeholder-1.svg new file mode 100644 index 0000000..4b7c05c --- /dev/null +++ b/images/placeholder-1.svg @@ -0,0 +1,48 @@ + + + + placeholder 1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/portfolio-1---wide.svg b/images/portfolio-1---wide.svg new file mode 100644 index 0000000..b0d0d61 --- /dev/null +++ b/images/portfolio-1---wide.svg @@ -0,0 +1,33 @@ + + + + portfolio 1 - wide + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/portfolio-2---wide.svg b/images/portfolio-2---wide.svg new file mode 100644 index 0000000..20a6bd7 --- /dev/null +++ b/images/portfolio-2---wide.svg @@ -0,0 +1,34 @@ + + + + portfolio 2 - wide + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/portfolio-3---wide.svg b/images/portfolio-3---wide.svg new file mode 100644 index 0000000..e0cf916 --- /dev/null +++ b/images/portfolio-3---wide.svg @@ -0,0 +1,34 @@ + + + + portfolio 3 - wide + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/portfolio-4---wide.svg b/images/portfolio-4---wide.svg new file mode 100644 index 0000000..b7a6bc8 --- /dev/null +++ b/images/portfolio-4---wide.svg @@ -0,0 +1,33 @@ + + + + portfolio 4 - wide + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/site.webmanifest b/images/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/images/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/images/zdravostopalo-p-500.png b/images/zdravostopalo-p-500.png new file mode 100644 index 0000000..8bf4fb2 Binary files /dev/null and b/images/zdravostopalo-p-500.png differ diff --git a/images/zdravostopalo.png b/images/zdravostopalo.png new file mode 100644 index 0000000..e66dd31 Binary files /dev/null and b/images/zdravostopalo.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..55604fa --- /dev/null +++ b/index.html @@ -0,0 +1,154 @@ + + + + + + Zdravo Stopalo - Medicinska pedikura, urasli nokat, gljivice + + + + + + + + + + + + + + + + + + +
+
+
+
+
Salon za medicinsku pedikuru
+
Sve sto Vaša stopala trebaju - na jednom mjestu.
+
+ +
Više informacija
+
+
+
+
+
+
Cjenovnik
+
+
+
+
Estetska pedikura (60min) 35 KM
+Medicinska pedikura I (60min) 
+Kupka, rezanje noktiju, pedikura –kurije oko, natisci, urasli nokti,dijabetičko stopalo, zadebljala koža,raspucala koža (pojedinačno) 60KM Medicinska pedikura II (90min)vrlo problematično stopalo 80KMKontrola (15min)djelimična njega stopala, preglednakon medicinske pedicure20KMVanjska pedikura (40-60min)usluga na terenu samo za starije, teškopokretne osobe80KMProtetika noktaNadomještanje jednog noktaveća ploča (do25min)Nadomještanje jednog noktamanja ploča (do 25min)Izrada i postavljanje kopče za uraslinokat (60min)Nadogradnja već postojeće kopče(45min)Rezanje nokata (30min)60KM30KM200KM65KM10KMSkidanje trajnog gela / laka(20min) 15KMMasaža stopala (20min) 20KMParafin kupka (20min)preporuka nakon pedikure 20KMPaket usluga (90min)KRALJEVSKA PEDIKURAestetska pedikura+masaža stopala+parafinska kupka)70KMSavjeti o njezi stopala gratisEdukacija budućih medicinskihpedikerapodogovoruProdaja medicinskih ikozmetičkih proizvoda za njegustopala
+
+
+
+
+
Aesthetic pedicure (60min) 35KM
+Medical pedicure I (60min)
+Bath, nail cutting, pedicure - eye curls,
+prints, ingrown nails, diabetic foot,
+thickened skin, cracked skin (singles)
+60KM
+Medical pedicure II (90min)
+very problematic foot
+80KM
+Control (15min)
+partial foot care, examination after
+medical pedicure
+20KM
+Outdoor pedicure (40-60min)
+field service only for elderly immobile
+people
+80KM
+Nail prosthetics
+Replacement of one nail (larger plate)
+(up to 25min)
+Replacement of one nail (smaller plate)
+(up to 25min)
+Making and installing clasps for ingrown
+nails (60min)
+Upgrade existing buckles
+(45min)
+Nail cutting (30min)
+60KM
+30KM
+200KM
+65KM
+10KM
+Removing permanent gel / nail
+polish (20min)
+15KM
+Foot massage (20min) 20KM
+Paraffin bath (20min)
+recommendation after pedicure
+20KM
+Package of services (90min)
+ROYAL PEDICURE
+aesthetic pedicure+foot
+massage+paraffin bath
+70KM
+Foot care tips gratis
+Education of future medical
+pedicurists
+po
+dogovoru
+Sales of medical and cosmetic
+foot care products +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + diff --git a/js/webflow.js b/js/webflow.js new file mode 100644 index 0000000..b070ff4 --- /dev/null +++ b/js/webflow.js @@ -0,0 +1,4487 @@ +/*! + * Webflow: Front-end site library + * @license MIT + * Inline scripts may access the api using an async handler: + * var Webflow = Webflow || []; + * Webflow.push(readyFunction); + */ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 3); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document, navigator, WEBFLOW_ENV_TEST */ + +/* eslint-disable no-var */ + +/** + * Webflow: Core site library + */ + +var Webflow = {}; +var modules = {}; +var primary = []; +var secondary = window.Webflow || []; +var $ = window.jQuery; +var $win = $(window); +var $doc = $(document); +var isFunction = $.isFunction; + +var _ = Webflow._ = __webpack_require__(5); + +var tram = Webflow.tram = __webpack_require__(1) && $.tram; +var domready = false; +var destroyed = false; +tram.config.hideBackface = false; +tram.config.keepInherited = true; +/** + * Webflow.define - Define a named module + * @param {string} name + * @param {function} factory + * @param {object} options + * @return {object} + */ + +Webflow.define = function (name, factory, options) { + if (modules[name]) { + unbindModule(modules[name]); + } + + var instance = modules[name] = factory($, _, options) || {}; + bindModule(instance); + return instance; +}; +/** + * Webflow.require - Require a named module + * @param {string} name + * @return {object} + */ + + +Webflow.require = function (name) { + return modules[name]; +}; + +function bindModule(module) { + // If running in Webflow app, subscribe to design/preview events + if (Webflow.env()) { + isFunction(module.design) && $win.on('__wf_design', module.design); + isFunction(module.preview) && $win.on('__wf_preview', module.preview); + } // Subscribe to front-end destroy event + + + isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module + + if (module.ready && isFunction(module.ready)) { + addReady(module); + } +} + +function addReady(module) { + // If domready has already happened, run ready method + if (domready) { + module.ready(); + return; + } // Otherwise add ready method to the primary queue (only once) + + + if (_.contains(primary, module.ready)) { + return; + } + + primary.push(module.ready); +} + +function unbindModule(module) { + // Unsubscribe module from window events + isFunction(module.design) && $win.off('__wf_design', module.design); + isFunction(module.preview) && $win.off('__wf_preview', module.preview); + isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue + + if (module.ready && isFunction(module.ready)) { + removeReady(module); + } +} + +function removeReady(module) { + primary = _.filter(primary, function (readyFn) { + return readyFn !== module.ready; + }); +} +/** + * Webflow.push - Add a ready handler into secondary queue + * @param {function} ready Callback to invoke on domready + */ + + +Webflow.push = function (ready) { + // If domready has already happened, invoke handler + if (domready) { + isFunction(ready) && ready(); + return; + } // Otherwise push into secondary queue + + + secondary.push(ready); +}; +/** + * Webflow.env - Get the state of the Webflow app + * @param {string} mode [optional] + * @return {boolean} + */ + + +Webflow.env = function (mode) { + var designFlag = window.__wf_design; + var inApp = typeof designFlag !== 'undefined'; + + if (!mode) { + return inApp; + } + + if (mode === 'design') { + return inApp && designFlag; + } + + if (mode === 'preview') { + return inApp && !designFlag; + } + + if (mode === 'slug') { + return inApp && window.__wf_slug; + } + + if (mode === 'editor') { + return window.WebflowEditor; + } + + if (mode === 'test') { + return false || window.__wf_test; + } + + if (mode === 'frame') { + return window !== window.top; + } +}; // Feature detects + browser sniffs ಠ_ಠ + + +var userAgent = navigator.userAgent.toLowerCase(); +var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; +var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); +var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); +Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices + +var touchTarget; // Listen for both events to support touch/mouse hybrid devices + +touch && $doc.on('touchstart mousedown', function (evt) { + touchTarget = evt.target; +}); +/** + * Webflow.validClick - validate click target against current touch target + * @param {HTMLElement} clickTarget Element being clicked + * @return {Boolean} True if click target is valid (always true on non-touch) + */ + +Webflow.validClick = touch ? function (clickTarget) { + return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); +} : function () { + return true; +}; +/** + * Webflow.resize, Webflow.scroll - throttled event proxies + */ + +var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow'; +var scrollEvents = 'scroll.webflow ' + resizeEvents; +Webflow.resize = eventProxy($win, resizeEvents); +Webflow.scroll = eventProxy($win, scrollEvents); +Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events + +function eventProxy(target, types) { + // Set up throttled method (using custom frame-based _.throttle) + var handlers = []; + var proxy = {}; + proxy.up = _.throttle(function (evt) { + _.each(handlers, function (h) { + h(evt); + }); + }); // Bind events to target + + if (target && types) { + target.on(types, proxy.up); + } + /** + * Add an event handler + * @param {function} handler + */ + + + proxy.on = function (handler) { + if (typeof handler !== 'function') { + return; + } + + if (_.contains(handlers, handler)) { + return; + } + + handlers.push(handler); + }; + /** + * Remove an event handler + * @param {function} handler + */ + + + proxy.off = function (handler) { + // If no arguments supplied, clear all handlers + if (!arguments.length) { + handlers = []; + return; + } // Otherwise, remove handler from the list + + + handlers = _.filter(handlers, function (h) { + return h !== handler; + }); + }; + + return proxy; +} // Webflow.location - Wrap window.location in api + + +Webflow.location = function (url) { + window.location = url; +}; + +if (Webflow.env()) { + // Ignore redirects inside a Webflow design/edit environment + Webflow.location = function () {}; +} // Webflow.ready - Call primary and secondary handlers + + +Webflow.ready = function () { + domready = true; // Restore modules after destroy + + if (destroyed) { + restoreModules(); // Otherwise run primary ready methods + } else { + _.each(primary, callReady); + } // Run secondary ready methods + + + _.each(secondary, callReady); // Trigger resize + + + Webflow.resize.up(); +}; + +function callReady(readyFn) { + isFunction(readyFn) && readyFn(); +} + +function restoreModules() { + destroyed = false; + + _.each(modules, bindModule); +} +/** + * Webflow.load - Add a window load handler that will run even if load event has already happened + * @param {function} handler + */ + + +var deferLoad; + +Webflow.load = function (handler) { + deferLoad.then(handler); +}; + +function bindLoad() { + // Reject any previous deferred (to support destroy) + if (deferLoad) { + deferLoad.reject(); + $win.off('load', deferLoad.resolve); + } // Create deferred and bind window load event + + + deferLoad = new $.Deferred(); + $win.on('load', deferLoad.resolve); +} // Webflow.destroy - Trigger a destroy event for all modules + + +Webflow.destroy = function (options) { + options = options || {}; + destroyed = true; + $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests + + if (options.domready != null) { + domready = options.domready; + } // Unbind modules + + + _.each(modules, unbindModule); // Clear any proxy event handlers + + + Webflow.resize.off(); + Webflow.scroll.off(); + Webflow.redraw.off(); // Clear any queued ready methods + + primary = []; + secondary = []; // If load event has not yet fired, replace the deferred + + if (deferLoad.state() === 'pending') { + bindLoad(); + } +}; // Listen for domready + + +$(Webflow.ready); // Listen for window.onload and resolve deferred + +bindLoad(); // Export commonjs module + +module.exports = window.Webflow = Webflow; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* eslint-disable eslint-comments/no-unlimited-disable */ + +/* eslint-disable */ + +/*! + * tram.js v0.8.2-global + * Cross-browser CSS3 transitions in JavaScript + * https://github.com/bkwld/tram + * MIT License + */ + +/* prettier-ignore */ + +var _interopRequireDefault = __webpack_require__(2); + +var _typeof2 = _interopRequireDefault(__webpack_require__(6)); + +window.tram = function (a) { + function b(a, b) { + var c = new M.Bare(); + return c.init(a, b); + } + + function c(a) { + return a.replace(/[A-Z]/g, function (a) { + return "-" + a.toLowerCase(); + }); + } + + function d(a) { + var b = parseInt(a.slice(1), 16), + c = b >> 16 & 255, + d = b >> 8 & 255, + e = 255 & b; + return [c, d, e]; + } + + function e(a, b, c) { + return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); + } + + function f() {} + + function g(a, b) { + j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); + } + + function h(a, b, c) { + j("Units do not match [" + a + "]: " + b + ", " + c); + } + + function i(a, b, c) { + if (void 0 !== b && (c = b), void 0 === a) return c; + var d = c; + return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; + } + + function j(a) { + U.debug && window && window.console.warn(a); + } + + function k(a) { + for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { + var e = a[b]; + e && d.push(e); + } + + return d; + } + + var l = function (a, b, c) { + function d(a) { + return "object" == (0, _typeof2["default"])(a); + } + + function e(a) { + return "function" == typeof a; + } + + function f() {} + + function g(h, i) { + function j() { + var a = new k(); + return e(a.init) && a.init.apply(a, arguments), a; + } + + function k() {} + + i === c && (i = h, h = Object), j.Bare = k; + var l, + m = f[a] = h[a], + n = k[a] = j[a] = new f(); + return n.constructor = j, j.mixin = function (b) { + return k[a] = j[a] = g(j, b)[a], j; + }, j.open = function (a) { + if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { + b.call(l, c) && (n[c] = l[c]); + } + return e(n.init) || (n.init = h), j; + }, j.open(i); + } + + return g; + }("prototype", {}.hasOwnProperty), + m = { + ease: ["ease", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); + }], + "ease-in": ["ease-in", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); + }], + "ease-out": ["ease-out", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); + }], + "ease-in-out": ["ease-in-out", function (a, b, c, d) { + var e = (a /= d) * a, + f = e * a; + return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); + }], + linear: ["linear", function (a, b, c, d) { + return c * a / d + b; + }], + "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { + return c * (a /= d) * a + b; + }], + "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { + return -c * (a /= d) * (a - 2) + b; + }], + "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; + }], + "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { + return c * (a /= d) * a * a + b; + }], + "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { + return c * ((a = a / d - 1) * a * a + 1) + b; + }], + "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; + }], + "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { + return c * (a /= d) * a * a * a + b; + }], + "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { + return -c * ((a = a / d - 1) * a * a * a - 1) + b; + }], + "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; + }], + "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { + return c * (a /= d) * a * a * a * a + b; + }], + "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { + return c * ((a = a / d - 1) * a * a * a * a + 1) + b; + }], + "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; + }], + "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { + return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; + }], + "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { + return c * Math.sin(a / d * (Math.PI / 2)) + b; + }], + "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { + return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; + }], + "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { + return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; + }], + "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { + return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; + }], + "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { + return 0 === a ? b : a === d ? b + c : (a /= d / 2) < 1 ? c / 2 * Math.pow(2, 10 * (a - 1)) + b : c / 2 * (-Math.pow(2, -10 * --a) + 2) + b; + }], + "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { + return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; + }], + "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { + return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; + }], + "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { + return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; + }], + "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { + return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; + }], + "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { + return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; + }], + "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { + return void 0 === e && (e = 1.70158), (a /= d / 2) < 1 ? c / 2 * a * a * (((e *= 1.525) + 1) * a - e) + b : c / 2 * ((a -= 2) * a * (((e *= 1.525) + 1) * a + e) + 2) + b; + }] + }, + n = { + "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", + "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", + "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" + }, + o = document, + p = window, + q = "bkwld-tram", + r = /[\-\.0-9]/g, + s = /[A-Z]/, + t = "number", + u = /^(rgb|#)/, + v = /(em|cm|mm|in|pt|pc|px)$/, + w = /(em|cm|mm|in|pt|pc|px|%)$/, + x = /(deg|rad|turn)$/, + y = "unitless", + z = /(all|none) 0s ease 0s/, + A = /^(width|height)$/, + B = " ", + C = o.createElement("a"), + D = ["Webkit", "Moz", "O", "ms"], + E = ["-webkit-", "-moz-", "-o-", "-ms-"], + F = function F(a) { + if (a in C.style) return { + dom: a, + css: a + }; + var b, + c, + d = "", + e = a.split("-"); + + for (b = 0; b < e.length; b++) { + d += e[b].charAt(0).toUpperCase() + e[b].slice(1); + } + + for (b = 0; b < D.length; b++) { + if (c = D[b] + d, c in C.style) return { + dom: c, + css: E[b] + a + }; + } + }, + G = b.support = { + bind: Function.prototype.bind, + transform: F("transform"), + transition: F("transition"), + backface: F("backface-visibility"), + timing: F("transition-timing-function") + }; + + if (G.transition) { + var H = G.timing.dom; + if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { + m[I][0] = n[I]; + } + } + + var J = b.frame = function () { + var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; + return a && G.bind ? a.bind(p) : function (a) { + p.setTimeout(a, 16); + }; + }(), + K = b.now = function () { + var a = p.performance, + b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); + return b && G.bind ? b.bind(a) : Date.now || function () { + return +new Date(); + }; + }(), + L = l(function (b) { + function d(a, b) { + var c = k(("" + a).split(B)), + d = c[0]; + b = b || {}; + var e = Y[d]; + if (!e) return j("Unsupported property: " + d); + + if (!b.weak || !this.props[d]) { + var f = e[0], + g = this.props[d]; + return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; + } + } + + function e(a, b, c) { + if (a) { + var e = (0, _typeof2["default"])(a); + if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ + duration: a, + context: this, + complete: h + }), void (this.active = !0); + + if ("string" == e && b) { + switch (a) { + case "hide": + o.call(this); + break; + + case "stop": + l.call(this); + break; + + case "redraw": + p.call(this); + break; + + default: + d.call(this, a, c && c[1]); + } + + return h.call(this); + } + + if ("function" == e) return void a.call(this, this); + + if ("object" == e) { + var f = 0; + u.call(this, a, function (a, b) { + a.span > f && (f = a.span), a.stop(), a.animate(b); + }, function (a) { + "wait" in a && (f = i(a.wait, 0)); + }), t.call(this), f > 0 && (this.timer = new S({ + duration: f, + context: this + }), this.active = !0, b && (this.timer.complete = h)); + var g = this, + j = !1, + k = {}; + J(function () { + u.call(g, a, function (a) { + a.active && (j = !0, k[a.name] = a.nextStyle); + }), j && g.$el.css(k); + }); + } + } + } + + function f(a) { + a = i(a, 0), this.active ? this.queue.push({ + options: a + }) : (this.timer = new S({ + duration: a, + context: this, + complete: h + }), this.active = !0); + } + + function g(a) { + return this.active ? (this.queue.push({ + options: a, + args: arguments + }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); + } + + function h() { + if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { + var a = this.queue.shift(); + e.call(this, a.options, !0, a.args); + } + } + + function l(a) { + this.timer && this.timer.destroy(), this.queue = [], this.active = !1; + var b; + "string" == typeof a ? (b = {}, b[a] = 1) : b = "object" == (0, _typeof2["default"])(a) && null != a ? a : this.props, u.call(this, b, v), t.call(this); + } + + function m(a) { + l.call(this, a), u.call(this, a, w, x); + } + + function n(a) { + "string" != typeof a && (a = "block"), this.el.style.display = a; + } + + function o() { + l.call(this), this.el.style.display = "none"; + } + + function p() { + this.el.offsetHeight; + } + + function r() { + l.call(this), a.removeData(this.el, q), this.$el = this.el = null; + } + + function t() { + var a, + b, + c = []; + this.upstream && c.push(this.upstream); + + for (a in this.props) { + b = this.props[a], b.active && c.push(b.string); + } + + c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); + } + + function u(a, b, e) { + var f, + g, + h, + i, + j = b !== v, + k = {}; + + for (f in a) { + h = a[f], f in Z ? (k.transform || (k.transform = {}), k.transform[f] = h) : (s.test(f) && (f = c(f)), f in Y ? k[f] = h : (i || (i = {}), i[f] = h)); + } + + for (f in k) { + if (h = k[f], g = this.props[f], !g) { + if (!j) continue; + g = d.call(this, f); + } + + b.call(this, g, h); + } + + e && i && e.call(this, i); + } + + function v(a) { + a.stop(); + } + + function w(a, b) { + a.set(b); + } + + function x(a) { + this.$el.css(a); + } + + function y(a, c) { + b[a] = function () { + return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); + }; + } + + function A(a, b) { + var c, + d = this.children.length; + + for (c = 0; d > c; c++) { + a.apply(this.children[c], b); + } + + return this; + } + + b.init = function (b) { + if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { + var c = W(this.el, "transition"); + c && !z.test(c) && (this.upstream = c); + } + + G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); + }, y("add", d), y("start", e), y("wait", f), y("then", g), y("next", h), y("stop", l), y("set", m), y("show", n), y("hide", o), y("redraw", p), y("destroy", r); + }), + M = l(L, function (b) { + function c(b, c) { + var d = a.data(b, q) || a.data(b, q, new L.Bare()); + return d.el || d.init(b), c ? d.start(c) : d; + } + + b.init = function (b, d) { + var e = a(b); + if (!e.length) return this; + if (1 === e.length) return c(e[0], d); + var f = []; + return e.each(function (a, b) { + f.push(c(b, d)); + }), this.children = f, this; + }; + }), + N = l(function (a) { + function b() { + var a = this.get(); + this.update("auto"); + var b = this.get(); + return this.update(a), b; + } + + function c(a, b, c) { + return void 0 !== b && (c = b), a in m ? a : c; + } + + function d(a) { + var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); + return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); + } + + var f = { + duration: 500, + ease: "ease", + delay: 0 + }; + a.init = function (a, b, d, e) { + this.$el = a, this.el = a[0]; + var g = b[0]; + d[2] && (g = d[2]), X[g] && (g = X[g]), this.name = g, this.type = d[1], this.duration = i(b[1], this.duration, f.duration), this.ease = c(b[2], this.ease, f.ease), this.delay = i(b[3], this.delay, f.delay), this.span = this.duration + this.delay, this.active = !1, this.nextStyle = null, this.auto = A.test(this.name), this.unit = e.unit || this.unit || U.defaultUnit, this.angle = e.angle || this.angle || U.defaultAngle, U.fallback || e.fallback ? this.animate = this.fallback : (this.animate = this.transition, this.string = this.name + B + this.duration + "ms" + ("ease" != this.ease ? B + m[this.ease][0] : "") + (this.delay ? B + this.delay + "ms" : "")); + }, a.set = function (a) { + a = this.convert(a, this.type), this.update(a), this.redraw(); + }, a.transition = function (a) { + this.active = !0, a = this.convert(a, this.type), this.auto && ("auto" == this.el.style[this.name] && (this.update(this.get()), this.redraw()), "auto" == a && (a = b.call(this))), this.nextStyle = a; + }, a.fallback = function (a) { + var c = this.el.style[this.name] || this.convert(this.get(), this.type); + a = this.convert(a, this.type), this.auto && ("auto" == c && (c = this.convert(this.get(), this.type)), "auto" == a && (a = b.call(this))), this.tween = new R({ + from: c, + to: a, + duration: this.duration, + delay: this.delay, + ease: this.ease, + update: this.update, + context: this + }); + }, a.get = function () { + return W(this.el, this.name); + }, a.update = function (a) { + V(this.el, this.name, a); + }, a.stop = function () { + (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); + var a = this.tween; + a && a.context && a.destroy(); + }, a.convert = function (a, b) { + if ("auto" == a && this.auto) return a; + var c, + e = "number" == typeof a, + f = "string" == typeof a; + + switch (b) { + case t: + if (e) return a; + if (f && "" === a.replace(r, "")) return +a; + c = "number(unitless)"; + break; + + case u: + if (f) { + if ("" === a && this.original) return this.original; + if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); + } + + c = "hex or rgb string"; + break; + + case v: + if (e) return a + this.unit; + if (f && b.test(a)) return a; + c = "number(px) or string(unit)"; + break; + + case w: + if (e) return a + this.unit; + if (f && b.test(a)) return a; + c = "number(px) or string(unit or %)"; + break; + + case x: + if (e) return a + this.angle; + if (f && b.test(a)) return a; + c = "number(deg) or string(angle)"; + break; + + case y: + if (e) return a; + if (f && w.test(a)) return a; + c = "number(unitless) or string(unit or %)"; + } + + return g(c, a), a; + }, a.redraw = function () { + this.el.offsetHeight; + }; + }), + O = l(N, function (a, b) { + a.init = function () { + b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); + }; + }), + P = l(N, function (a, b) { + a.init = function () { + b.init.apply(this, arguments), this.animate = this.fallback; + }, a.get = function () { + return this.$el[this.name](); + }, a.update = function (a) { + this.$el[this.name](a); + }; + }), + Q = l(N, function (a, b) { + function c(a, b) { + var c, d, e, f, g; + + for (c in a) { + f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); + } + } + + a.init = function () { + b.init.apply(this, arguments), this.current || (this.current = {}, Z.perspective && U.perspective && (this.current.perspective = U.perspective, V(this.el, this.name, this.style(this.current)), this.redraw())); + }, a.set = function (a) { + c.call(this, a, function (a, b) { + this.current[a] = b; + }), V(this.el, this.name, this.style(this.current)), this.redraw(); + }, a.transition = function (a) { + var b = this.values(a); + this.tween = new T({ + current: this.current, + values: b, + duration: this.duration, + delay: this.delay, + ease: this.ease + }); + var c, + d = {}; + + for (c in this.current) { + d[c] = c in b ? b[c] : this.current[c]; + } + + this.active = !0, this.nextStyle = this.style(d); + }, a.fallback = function (a) { + var b = this.values(a); + this.tween = new T({ + current: this.current, + values: b, + duration: this.duration, + delay: this.delay, + ease: this.ease, + update: this.update, + context: this + }); + }, a.update = function () { + V(this.el, this.name, this.style(this.current)); + }, a.style = function (a) { + var b, + c = ""; + + for (b in a) { + c += b + "(" + a[b] + ") "; + } + + return c; + }, a.values = function (a) { + var b, + d = {}; + return c.call(this, a, function (a, c, e) { + d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); + }), d; + }; + }), + R = l(function (b) { + function c(a) { + 1 === n.push(a) && J(g); + } + + function g() { + var a, + b, + c, + d = n.length; + if (d) for (J(g), b = K(), a = d; a--;) { + c = n[a], c && c.render(b); + } + } + + function i(b) { + var c, + d = a.inArray(b, n); + d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); + } + + function j(a) { + return Math.round(a * o) / o; + } + + function k(a, b, c) { + return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); + } + + var l = { + ease: m.ease[1], + from: 0, + to: 1 + }; + b.init = function (a) { + this.duration = a.duration || 0, this.delay = a.delay || 0; + var b = a.ease || l.ease; + m[b] && (b = m[b][1]), "function" != typeof b && (b = l.ease), this.ease = b, this.update = a.update || f, this.complete = a.complete || f, this.context = a.context || this, this.name = a.name; + var c = a.from, + d = a.to; + void 0 === c && (c = l.from), void 0 === d && (d = l.to), this.unit = a.unit || "", "number" == typeof c && "number" == typeof d ? (this.begin = c, this.change = d - c) : this.format(d, c), this.value = this.begin + this.unit, this.start = K(), a.autoplay !== !1 && this.play(); + }, b.play = function () { + this.active || (this.start || (this.start = K()), this.active = !0, c(this)); + }, b.stop = function () { + this.active && (this.active = !1, i(this)); + }, b.render = function (a) { + var b, + c = a - this.start; + + if (this.delay) { + if (c <= this.delay) return; + c -= this.delay; + } + + if (c < this.duration) { + var d = this.ease(c, 0, 1, this.duration); + return b = this.startRGB ? k(this.startRGB, this.endRGB, d) : j(this.begin + d * this.change), this.value = b + this.unit, void this.update.call(this.context, this.value); + } + + b = this.endHex || this.begin + this.change, this.value = b + this.unit, this.update.call(this.context, this.value), this.complete.call(this.context), this.destroy(); + }, b.format = function (a, b) { + if (b += "", a += "", "#" == a.charAt(0)) return this.startRGB = d(b), this.endRGB = d(a), this.endHex = a, this.begin = 0, void (this.change = 1); + + if (!this.unit) { + var c = b.replace(r, ""), + e = a.replace(r, ""); + c !== e && h("tween", b, a), this.unit = c; + } + + b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; + }, b.destroy = function () { + this.stop(), this.context = null, this.ease = this.update = this.complete = f; + }; + var n = [], + o = 1e3; + }), + S = l(R, function (a) { + a.init = function (a) { + this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); + }, a.render = function (a) { + var b = a - this.start; + b < this.duration || (this.complete.call(this.context), this.destroy()); + }; + }), + T = l(R, function (a, b) { + a.init = function (a) { + this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; + var b, c; + + for (b in a.values) { + c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ + name: b, + from: this.current[b], + to: c, + duration: a.duration, + delay: a.delay, + ease: a.ease, + autoplay: !1 + })); + } + + this.play(); + }, a.render = function (a) { + var b, + c, + d = this.tweens.length, + e = !1; + + for (b = d; b--;) { + c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); + } + + return e ? void (this.update && this.update.call(this.context)) : this.destroy(); + }, a.destroy = function () { + if (b.destroy.call(this), this.tweens) { + var a, + c = this.tweens.length; + + for (a = c; a--;) { + this.tweens[a].destroy(); + } + + this.tweens = null, this.current = null; + } + }; + }), + U = b.config = { + debug: !1, + defaultUnit: "px", + defaultAngle: "deg", + keepInherited: !1, + hideBackface: !1, + perspective: "", + fallback: !G.transition, + agentTests: [] + }; + + b.fallback = function (a) { + if (!G.transition) return U.fallback = !0; + U.agentTests.push("(" + a + ")"); + var b = new RegExp(U.agentTests.join("|"), "i"); + U.fallback = b.test(navigator.userAgent); + }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { + return new R(a); + }, b.delay = function (a, b, c) { + return new S({ + complete: b, + duration: a, + context: c + }); + }, a.fn.tram = function (a) { + return b.call(null, this, a); + }; + var V = a.style, + W = a.css, + X = { + transform: G.transform && G.transform.css + }, + Y = { + color: [O, u], + background: [O, u, "background-color"], + "outline-color": [O, u], + "border-color": [O, u], + "border-top-color": [O, u], + "border-right-color": [O, u], + "border-bottom-color": [O, u], + "border-left-color": [O, u], + "border-width": [N, v], + "border-top-width": [N, v], + "border-right-width": [N, v], + "border-bottom-width": [N, v], + "border-left-width": [N, v], + "border-spacing": [N, v], + "letter-spacing": [N, v], + margin: [N, v], + "margin-top": [N, v], + "margin-right": [N, v], + "margin-bottom": [N, v], + "margin-left": [N, v], + padding: [N, v], + "padding-top": [N, v], + "padding-right": [N, v], + "padding-bottom": [N, v], + "padding-left": [N, v], + "outline-width": [N, v], + opacity: [N, t], + top: [N, w], + right: [N, w], + bottom: [N, w], + left: [N, w], + "font-size": [N, w], + "text-indent": [N, w], + "word-spacing": [N, w], + width: [N, w], + "min-width": [N, w], + "max-width": [N, w], + height: [N, w], + "min-height": [N, w], + "max-height": [N, w], + "line-height": [N, y], + "scroll-top": [P, t, "scrollTop"], + "scroll-left": [P, t, "scrollLeft"] + }, + Z = {}; + G.transform && (Y.transform = [Q], Z = { + x: [w, "translateX"], + y: [w, "translateY"], + rotate: [x], + rotateX: [x], + rotateY: [x], + scale: [t], + scaleX: [t], + scaleY: [t], + skew: [x], + skewX: [x], + skewY: [x] + }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); + var $ = /ms/, + _ = /s|\./; + return a.tram = b; +}(window.jQuery); + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(4); +__webpack_require__(7); +__webpack_require__(8); +__webpack_require__(9); +__webpack_require__(10); +__webpack_require__(11); +__webpack_require__(12); +__webpack_require__(13); +__webpack_require__(18); +module.exports = __webpack_require__(21); + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals document, window, navigator */ + +/* eslint-disable no-var */ + +/** + * Webflow: Brand pages on the subdomain + */ + +var Webflow = __webpack_require__(0); + +Webflow.define('brand', module.exports = function ($) { + var api = {}; + var doc = document; + var $html = $('html'); + var $body = $('body'); + var namespace = '.w-webflow-badge'; + var location = window.location; + var isPhantom = /PhantomJS/i.test(navigator.userAgent); + var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; + var brandElement; // ----------------------------------- + // Module methods + + api.ready = function () { + var shouldBrand = $html.attr('data-wf-status'); + var publishedDomain = $html.attr('data-wf-domain') || ''; + + if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { + shouldBrand = true; + } + + if (shouldBrand && !isPhantom) { + brandElement = brandElement || createBadge(); + ensureBrand(); + setTimeout(ensureBrand, 500); + $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); + } + }; + + function onFullScreenChange() { + var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement); + $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); + } + + function createBadge() { + var $brand = $('').attr('href', 'https://webflow.com?utm_campaign=brandjs'); + var $logoArt = $('').attr('src', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ + marginRight: '8px', + width: '16px' + }); + var $logoText = $('').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); + $brand.append($logoArt, $logoText); + return $brand[0]; + } + + function ensureBrand() { + var found = $body.children(namespace); + var match = found.length && found.get(0) === brandElement; + var inEditor = Webflow.env('editor'); + + if (match) { + // Remove brand when Editor is active + if (inEditor) { + found.remove(); + } // Exit early, brand is in place + + + return; + } // Remove any invalid brand elements + + + if (found.length) { + found.remove(); + } // Append the brand (unless Editor is active) + + + if (!inEditor) { + $body.append(brandElement); + } + } // Export module + + + return api; +}); + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file +// Include tram for frame-throttling + +/* globals window */ + +/* eslint-disable no-var */ + +var $ = window.$; +var tram = __webpack_require__(1) && $.tram; +/*! + * Webflow._ (aka) Underscore.js 1.6.0 (custom build) + * _.each + * _.map + * _.find + * _.filter + * _.any + * _.contains + * _.delay + * _.defer + * _.throttle (webflow) + * _.debounce + * _.keys + * _.has + * _.now + * + * http://underscorejs.org + * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Underscore may be freely distributed under the MIT license. + * @license MIT + */ + +module.exports = function () { + var _ = {}; // Current version. + + _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. + + var breaker = {}; // Save bytes in the minified (but not gzipped) version: + + /* eslint-disable one-var */ + + var ArrayProto = Array.prototype, + ObjProto = Object.prototype, + FuncProto = Function.prototype; + /* eslint-enable one-var */ + // Create quick reference variables for speed access to core prototypes. + + /* eslint-disable one-var, no-unused-vars */ + + var push = ArrayProto.push, + slice = ArrayProto.slice, + concat = ArrayProto.concat, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + /* eslint-enable one-var, no-unused-vars */ + // All **ECMAScript 5** native function implementations that we hope to use + // are declared here. + + /* eslint-disable one-var, no-unused-vars */ + + var nativeForEach = ArrayProto.forEach, + nativeMap = ArrayProto.map, + nativeReduce = ArrayProto.reduce, + nativeReduceRight = ArrayProto.reduceRight, + nativeFilter = ArrayProto.filter, + nativeEvery = ArrayProto.every, + nativeSome = ArrayProto.some, + nativeIndexOf = ArrayProto.indexOf, + nativeLastIndexOf = ArrayProto.lastIndexOf, + nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeBind = FuncProto.bind; + /* eslint-enable one-var, no-unused-vars */ + // Collection Functions + // -------------------- + // The cornerstone, an `each` implementation, aka `forEach`. + // Handles objects with the built-in `forEach`, arrays, and raw objects. + // Delegates to **ECMAScript 5**'s native `forEach` if available. + + var each = _.each = _.forEach = function (obj, iterator, context) { + /* jshint shadow:true */ + if (obj == null) return obj; + + if (nativeForEach && obj.forEach === nativeForEach) { + obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion + } else if (obj.length === +obj.length) { + for (var i = 0, length = obj.length; i < length; i++) { + if (iterator.call(context, obj[i], i, obj) === breaker) return; + } + } else { + var keys = _.keys(obj); // eslint-disable-next-line no-redeclare + + + for (var i = 0, length = keys.length; i < length; i++) { + if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; + } + } + + return obj; + }; // Return the results of applying the iterator to each element. + // Delegates to **ECMAScript 5**'s native `map` if available. + + + _.map = _.collect = function (obj, iterator, context) { + var results = []; + if (obj == null) return results; + if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); + each(obj, function (value, index, list) { + results.push(iterator.call(context, value, index, list)); + }); + return results; + }; // Return the first value which passes a truth test. Aliased as `detect`. + + + _.find = _.detect = function (obj, predicate, context) { + var result; + any(obj, function (value, index, list) { + if (predicate.call(context, value, index, list)) { + result = value; + return true; + } + }); + return result; + }; // Return all the elements that pass a truth test. + // Delegates to **ECMAScript 5**'s native `filter` if available. + // Aliased as `select`. + + + _.filter = _.select = function (obj, predicate, context) { + var results = []; + if (obj == null) return results; + if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); + each(obj, function (value, index, list) { + if (predicate.call(context, value, index, list)) results.push(value); + }); + return results; + }; // Determine if at least one element in the object matches a truth test. + // Delegates to **ECMAScript 5**'s native `some` if available. + // Aliased as `any`. + + + var any = _.some = _.any = function (obj, predicate, context) { + predicate || (predicate = _.identity); + var result = false; + if (obj == null) return result; + if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); + each(obj, function (value, index, list) { + if (result || (result = predicate.call(context, value, index, list))) return breaker; + }); + return !!result; // eslint-disable-line no-implicit-coercion + }; // Determine if the array or object contains a given value (using `===`). + // Aliased as `include`. + + + _.contains = _.include = function (obj, target) { + if (obj == null) return false; + if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq + return obj.indexOf(target) != -1; + return any(obj, function (value) { + return value === target; + }); + }; // Function (ahem) Functions + // -------------------- + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + + + _.delay = function (func, wait) { + var args = slice.call(arguments, 2); + return setTimeout(function () { + return func.apply(null, args); + }, wait); + }; // Defers a function, scheduling it to run after the current call stack has + // cleared. + + + _.defer = function (func) { + return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); + }; // Returns a function, that, when invoked, will only be triggered once every + // browser animation frame - using tram's requestAnimationFrame polyfill. + + + _.throttle = function (func) { + // eslint-disable-next-line one-var + var wait, args, context; + return function () { + if (wait) return; + wait = true; + args = arguments; + context = this; + tram.frame(function () { + wait = false; + func.apply(context, args); + }); + }; + }; // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. If `immediate` is passed, trigger the function on the + // leading edge, instead of the trailing. + + + _.debounce = function (func, wait, immediate) { + // eslint-disable-next-line one-var + var timeout, args, context, timestamp, result; + + var later = function later() { + var last = _.now() - timestamp; + + if (last < wait) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + + if (!immediate) { + result = func.apply(context, args); + context = args = null; + } + } + }; + + return function () { + context = this; + args = arguments; + timestamp = _.now(); + var callNow = immediate && !timeout; + + if (!timeout) { + timeout = setTimeout(later, wait); + } + + if (callNow) { + result = func.apply(context, args); + context = args = null; + } + + return result; + }; + }; // Object Functions + // ---------------- + // Fill in a given object with default properties. + + + _.defaults = function (obj) { + if (!_.isObject(obj)) return obj; + + for (var i = 1, length = arguments.length; i < length; i++) { + var source = arguments[i]; + + for (var prop in source) { + // eslint-disable-next-line no-void + if (obj[prop] === void 0) obj[prop] = source[prop]; + } + } + + return obj; + }; // Retrieve the names of an object's properties. + // Delegates to **ECMAScript 5**'s native `Object.keys` + + + _.keys = function (obj) { + if (!_.isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + + for (var key in obj) { + if (_.has(obj, key)) keys.push(key); + } + + return keys; + }; // Shortcut function for checking if an object has a given property directly + // on itself (in other words, not on a prototype). + + + _.has = function (obj, key) { + return hasOwnProperty.call(obj, key); + }; // Is a given variable an object? + + + _.isObject = function (obj) { + return obj === Object(obj); + }; // Utility Functions + // ----------------- + // A (possibly faster) way to get the current timestamp as an integer. + + + _.now = Date.now || function () { + return new Date().getTime(); + }; // By default, Underscore uses ERB-style template delimiters, change the + // following template settings to use alternative delimiters. + + + _.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g + }; // When customizing `templateSettings`, if you don't want to define an + // interpolation, evaluation or escaping regex, we need one that is + // guaranteed not to match. + + var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a + // string literal. + + var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + "\u2028": 'u2028', + "\u2029": 'u2029' + }; + var escaper = /\\|'|\r|\n|\u2028|\u2029/g; + + var escapeChar = function escapeChar(match) { + return '\\' + escapes[match]; + }; // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + // NB: `oldSettings` only exists for backwards compatibility. + + + _.template = function (text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. + + var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join('|') + '|$', 'g'); // Compile the template source, escaping string literals appropriately. + + var index = 0; + var source = "__p+='"; + text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escaper, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } // Adobe VMs need the match returned to produce the correct offest. + + + return match; + }); + source += "';\n"; // If a variable is not specified, place data values in local scope. + + if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; + source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; + + try { + // eslint-disable-next-line no-new-func + var render = new Function(settings.variable || 'obj', '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function template(data) { + return render.call(this, data, _); + }; // Provide the compiled source as a convenience for precompilation. + + + var argument = settings.variable || 'obj'; + template.source = 'function(' + argument + '){\n' + source + '}'; + return template; + }; // Export underscore + + + return _; +}(); +/* eslint-enable */ + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + +function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + +function _typeof(obj) { + if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + module.exports = _typeof = function _typeof(obj) { + return _typeof2(obj); + }; + } else { + module.exports = _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + } + + return _typeof(obj); +} + +module.exports = _typeof; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: focus-visible + */ + +var Webflow = __webpack_require__(0); +/* + * This polyfill comes from https://github.com/WICG/focus-visible + */ + + +Webflow.define('focus-visible', module.exports = function () { + /** + * Applies the :focus-visible polyfill at the given scope. + * A scope in this case is either the top-level Document or a Shadow Root. + * + * @param {(Document|ShadowRoot)} scope + * @see https://github.com/WICG/focus-visible + */ + function applyFocusVisiblePolyfill(scope) { + var hadKeyboardEvent = true; + var hadFocusVisibleRecently = false; + var hadFocusVisibleRecentlyTimeout = null; + var inputTypesAllowlist = { + text: true, + search: true, + url: true, + tel: true, + email: true, + password: true, + number: true, + date: true, + month: true, + week: true, + time: true, + datetime: true, + 'datetime-local': true + }; + /** + * Helper function for legacy browsers and iframes which sometimes focus + * elements like document, body, and non-interactive SVG. + * @param {Element} el + */ + + function isValidFocusTarget(el) { + if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) { + return true; + } + + return false; + } + /** + * Computes whether the given element should automatically trigger the + * `focus-visible` class being added, i.e. whether it should always match + * `:focus-visible` when focused. + * @param {Element} el + * @return {boolean} + */ + + + function focusTriggersKeyboardModality(el) { + var type = el.type; + var tagName = el.tagName; + + if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) { + return true; + } + + if (tagName === 'TEXTAREA' && !el.readOnly) { + return true; + } + + if (el.isContentEditable) { + return true; + } + + return false; + } + + function addFocusVisibleAttribute(el) { + if (el.getAttribute('data-wf-focus-visible')) { + return; + } + + el.setAttribute('data-wf-focus-visible', 'true'); + } + + function removeFocusVisibleAttribute(el) { + if (!el.getAttribute('data-wf-focus-visible')) { + return; + } + + el.removeAttribute('data-wf-focus-visible'); + } + /** + * If the most recent user interaction was via the keyboard; + * and the key press did not include a meta, alt/option, or control key; + * then the modality is keyboard. Otherwise, the modality is not keyboard. + * Apply `focus-visible` to any current active element and keep track + * of our keyboard modality state with `hadKeyboardEvent`. + * @param {KeyboardEvent} e + */ + + + function onKeyDown(e) { + if (e.metaKey || e.altKey || e.ctrlKey) { + return; + } + + if (isValidFocusTarget(scope.activeElement)) { + addFocusVisibleAttribute(scope.activeElement); + } + + hadKeyboardEvent = true; + } + /** + * If at any point a user clicks with a pointing device, ensure that we change + * the modality away from keyboard. + * This avoids the situation where a user presses a key on an already focused + * element, and then clicks on a different element, focusing it with a + * pointing device, while we still think we're in keyboard modality. + * @param {Event} e + */ + + + function onPointerDown() { + hadKeyboardEvent = false; + } + /** + * On `focus`, add the `focus-visible` class to the target if: + * - the target received focus as a result of keyboard navigation, or + * - the event target is an element that will likely require interaction + * via the keyboard (e.g. a text box) + * @param {Event} e + */ + + + function onFocus(e) { + // Prevent IE from focusing the document or HTML element. + if (!isValidFocusTarget(e.target)) { + return; + } + + if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { + addFocusVisibleAttribute(e.target); + } + } + /** + * On `blur`, remove the `focus-visible` class from the target. + * @param {Event} e + */ + + + function onBlur(e) { + if (!isValidFocusTarget(e.target)) { + return; + } + + if (e.target.hasAttribute('data-wf-focus-visible')) { + // To detect a tab/window switch, we look for a blur event followed + // rapidly by a visibility change. + // If we don't see a visibility change within 100ms, it's probably a + // regular focus change. + hadFocusVisibleRecently = true; + window.clearTimeout(hadFocusVisibleRecentlyTimeout); + hadFocusVisibleRecentlyTimeout = window.setTimeout(function () { + hadFocusVisibleRecently = false; + }, 100); + removeFocusVisibleAttribute(e.target); + } + } + /** + * If the user changes tabs, keep track of whether or not the previously + * focused element had .focus-visible. + * @param {Event} e + */ + + + function onVisibilityChange() { + if (document.visibilityState === 'hidden') { + // If the tab becomes active again, the browser will handle calling focus + // on the element (Safari actually calls it twice). + // If this tab change caused a blur on an element with focus-visible, + // re-apply the class when the user switches back to the tab. + if (hadFocusVisibleRecently) { + hadKeyboardEvent = true; + } + + addInitialPointerMoveListeners(); + } + } + /** + * Add a group of listeners to detect usage of any pointing devices. + * These listeners will be added when the polyfill first loads, and anytime + * the window is blurred, so that they are active when the window regains + * focus. + */ + + + function addInitialPointerMoveListeners() { + document.addEventListener('mousemove', onInitialPointerMove); + document.addEventListener('mousedown', onInitialPointerMove); + document.addEventListener('mouseup', onInitialPointerMove); + document.addEventListener('pointermove', onInitialPointerMove); + document.addEventListener('pointerdown', onInitialPointerMove); + document.addEventListener('pointerup', onInitialPointerMove); + document.addEventListener('touchmove', onInitialPointerMove); + document.addEventListener('touchstart', onInitialPointerMove); + document.addEventListener('touchend', onInitialPointerMove); + } + + function removeInitialPointerMoveListeners() { + document.removeEventListener('mousemove', onInitialPointerMove); + document.removeEventListener('mousedown', onInitialPointerMove); + document.removeEventListener('mouseup', onInitialPointerMove); + document.removeEventListener('pointermove', onInitialPointerMove); + document.removeEventListener('pointerdown', onInitialPointerMove); + document.removeEventListener('pointerup', onInitialPointerMove); + document.removeEventListener('touchmove', onInitialPointerMove); + document.removeEventListener('touchstart', onInitialPointerMove); + document.removeEventListener('touchend', onInitialPointerMove); + } + /** + * When the polfyill first loads, assume the user is in keyboard modality. + * If any event is received from a pointing device (e.g. mouse, pointer, + * touch), turn off keyboard modality. + * This accounts for situations where focus enters the page from the URL bar. + * @param {Event} e + */ + + + function onInitialPointerMove(e) { + // Work around a Safari quirk that fires a mousemove on whenever the + // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯ + if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { + return; + } + + hadKeyboardEvent = false; + removeInitialPointerMoveListeners(); + } // For some kinds of state, we are interested in changes at the global scope + // only. For example, global pointer input, global key presses and global + // visibility change should affect the state at every scope: + + + document.addEventListener('keydown', onKeyDown, true); + document.addEventListener('mousedown', onPointerDown, true); + document.addEventListener('pointerdown', onPointerDown, true); + document.addEventListener('touchstart', onPointerDown, true); + document.addEventListener('visibilitychange', onVisibilityChange, true); + addInitialPointerMoveListeners(); // For focus and blur, we specifically care about state changes in the local + // scope. This is because focus / blur events that originate from within a + // shadow root are not re-dispatched from the host element if it was already + // the active element in its own scope: + + scope.addEventListener('focus', onFocus, true); + scope.addEventListener('blur', onBlur, true); + } + + function ready() { + if (typeof document !== 'undefined') { + try { + // check for native support; this will throw if the selector is not considered valid + document.querySelector(':focus-visible'); + } catch (e) { + // :focus-visible pseudo-selector is not supported natively + applyFocusVisiblePolyfill(document); + } + } + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: focus-within + */ + +var Webflow = __webpack_require__(0); // polyfill based off of https://github.com/matteobad/focus-within-polyfill + + +Webflow.define('focus-within', module.exports = function () { + /** + * Calculate the entire event path. + * + * @param {Element} node + * @return {Array} computedPath + */ + function computeEventPath(node) { + var path = [node]; + var parent = null; + + while (parent = node.parentNode || node.host || node.defaultView) { + path.push(parent); + node = parent; + } + + return path; + } + + function addFocusWithinAttribute(el) { + if (typeof el.getAttribute !== 'function' || el.getAttribute('data-wf-focus-within')) { + return; + } + + el.setAttribute('data-wf-focus-within', 'true'); + } + + function removeFocusWithinAttribute(el) { + if (typeof el.getAttribute !== 'function' || !el.getAttribute('data-wf-focus-within')) { + return; + } + + el.removeAttribute('data-wf-focus-within'); + } + /** + * Attach event listerns to initiate polyfill + * @return {boolean} + */ + + + function loadFocusWithinPolyfill() { + var handler = function handler(e) { + var running; + /** + * Request animation frame callback. + * Remove previously applied attributes. + * Add new attributes. + */ + + function action() { + running = false; + + if ('blur' === e.type) { + Array.prototype.slice.call(computeEventPath(e.target)).forEach(removeFocusWithinAttribute); + } + + if ('focus' === e.type) { + Array.prototype.slice.call(computeEventPath(e.target)).forEach(addFocusWithinAttribute); + } + } + + if (!running) { + window.requestAnimationFrame(action); + running = true; + } + }; + + document.addEventListener('focus', handler, true); + document.addEventListener('blur', handler, true); + addFocusWithinAttribute(document.body); + return true; + } + + function ready() { + if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within')) { + try { + // check for native support; this will throw if the selector is not considered valid + document.querySelector(':focus-within'); + } catch (e) { + loadFocusWithinPolyfill(); + } + } + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals document, MouseEvent */ + +/* eslint-disable no-var */ + +/** + * Webflow: focus + */ + +var Webflow = __webpack_require__(0); +/* + * Safari has a weird bug where it doesn't support :focus for links with hrefs, + * buttons, and input[type=button|submit], so we listen for mousedown events + * instead and force the element to emit a focus event in those cases. + + * See these webkit bugs for reference: + * https://bugs.webkit.org/show_bug.cgi?id=22261 + * https://bugs.webkit.org/show_bug.cgi?id=229895 + */ + + +Webflow.define('focus', module.exports = function () { + var capturedEvents = []; + var capturing = false; + + function captureEvent(e) { + if (capturing) { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + capturedEvents.unshift(e); + } + } + /* + * The only mousedown events we care about here are ones emanating from + * (A) anchor links with href attribute, + * (B) non-disabled buttons, + * (C) non-disabled textarea, + * (D) non-disabled inputs of type "button", "reset", "checkbox", "radio", "submit" + * (E) non-interactive elements (button, a, input, textarea, select) that have a tabindex with a numeric value + * (F) audio elements + * (G) video elements with controls attribute + */ + + + function isPolyfilledFocusEvent(e) { + var el = e.target; + var tag = el.tagName; + return /^a$/i.test(tag) && el.href != null || // (A) + /^(button|textarea)$/i.test(tag) && el.disabled !== true || // (B) (C) + /^input$/i.test(tag) && /^(button|reset|submit|radio|checkbox)$/i.test(el.type) && !el.disabled || // (D) + !/^(button|input|textarea|select|a)$/i.test(tag) && !Number.isNaN(Number.parseFloat(el.tabIndex)) || // (E) + /^audio$/i.test(tag) || // (F) + /^video$/i.test(tag) && el.controls === true // (G) + ; + } + + function handler(e) { + if (isPolyfilledFocusEvent(e)) { + // start capturing possible out-of-order mouse events + capturing = true; + /* + * enqueue the focus event _after_ the current batch of events, which + * includes any blur events. The correct order of events is: + * + * [this element] MOUSEDOWN <-- this event + * [previously active element] BLUR + * [previously active element] FOCUSOUT + * [this element] FOCUS <-- forced event + * [this element] FOCUSIN <-- forced event + * [this element] MOUSEUP <-- possibly captured event (it may have fired _before_ the FOCUS event) + * [this element] CLICK <-- possibly captured event (it may have fired _before_ the FOCUS event) + */ + + setTimeout(function () { + // stop capturing possible out-of-order mouse events + capturing = false; // trigger focus event + + e.target.focus(); // re-dispatch captured mouse events in order + + while (capturedEvents.length > 0) { + var event = capturedEvents.pop(); + event.target.dispatchEvent(new MouseEvent(event.type, event)); + } + }, 0); + } + } + + function ready() { + if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within') && Webflow.env.safari) { + document.addEventListener('mousedown', handler, true); + document.addEventListener('mouseup', captureEvent, true); + document.addEventListener('click', captureEvent, true); + } + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Auto-select links to current page or section + */ + +var Webflow = __webpack_require__(0); + +Webflow.define('links', module.exports = function ($, _) { + var api = {}; + var $win = $(window); + var designer; + var inApp = Webflow.env(); + var location = window.location; + var tempLink = document.createElement('a'); + var linkCurrent = 'w--current'; + var indexPage = /index\.(html|php)$/; + var dirList = /\/$/; + var anchors; + var slug; // ----------------------------------- + // Module methods + + api.ready = api.design = api.preview = init; // ----------------------------------- + // Private methods + + function init() { + designer = inApp && Webflow.env('design'); + slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors + + Webflow.scroll.off(scroll); + anchors = []; // Test all links for a selectable href + + var links = document.links; + + for (var i = 0; i < links.length; ++i) { + select(links[i]); + } // Listen for scroll if any anchors exist + + + if (anchors.length) { + Webflow.scroll.on(scroll); + scroll(); + } + } + + function select(link) { + var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); + tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes + + if (href.indexOf(':') >= 0) { + return; + } + + var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page + + if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { + // Ignore any hrefs with Google Translate type hash + // Example: jQuery can't parse $('#googtrans(en|es)') + // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 + if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { + return; + } + + var $section = $(tempLink.hash); + $section.length && anchors.push({ + link: $link, + sec: $section, + active: false + }); + return; + } // Ignore empty # links + + + if (href === '#' || href === '') { + return; + } // Determine whether the link should be selected + + + var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); + setClass($link, linkCurrent, match); + } + + function scroll() { + var viewTop = $win.scrollTop(); + var viewHeight = $win.height(); // Check each anchor for a section in view + + _.each(anchors, function (anchor) { + var $link = anchor.link; + var $section = anchor.sec; + var top = $section.offset().top; + var height = $section.outerHeight(); + var offset = viewHeight * 0.5; + var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; + + if (anchor.active === active) { + return; + } + + anchor.active = active; + setClass($link, linkCurrent, active); + }); + } + + function setClass($elem, className, add) { + var exists = $elem.hasClass(className); + + if (add && exists) { + return; + } + + if (!add && !exists) { + return; + } + + add ? $elem.addClass(className) : $elem.removeClass(className); + } // Export module + + + return api; +}); + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Smooth scroll + */ + +var Webflow = __webpack_require__(0); + +Webflow.define('scroll', module.exports = function ($) { + /** + * A collection of namespaced events found in this module. + * Namespaced events encapsulate our code, and make it safer and easier + * for designers to apply custom code overrides. + * @see https://api.jquery.com/on/#event-names + * @typedef {Object.} NamespacedEventsCollection + */ + var NS_EVENTS = { + WF_CLICK_EMPTY: 'click.wf-empty-link', + WF_CLICK_SCROLL: 'click.wf-scroll' + }; + var loc = window.location; + var history = inIframe() ? null : window.history; + var $win = $(window); + var $doc = $(document); + var $body = $(document.body); + + var animate = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) { + window.setTimeout(fn, 15); + }; + + var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; + var headerSelector = 'header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'; + var emptyHrefSelector = 'a[href="#"]'; + /** + * Select only links whose href: + * - contains a # + * - is not one of our namespaced TabLink elements + * - is not _only_ a # + */ + + var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; + var scrollTargetOutlineCSS = '.wf-force-outline-none[tabindex="-1"]:focus{outline:none;}'; + var focusStylesEl = document.createElement('style'); + focusStylesEl.appendChild(document.createTextNode(scrollTargetOutlineCSS)); + + function inIframe() { + try { + return Boolean(window.frameElement); + } catch (e) { + return true; + } + } + + var validHash = /^#[a-zA-Z0-9][\w:.-]*$/; + /** + * Determine if link navigates to current page + * @param {HTMLAnchorElement} link + */ + + function linksToCurrentPage(link) { + return validHash.test(link.hash) && link.host + link.pathname === loc.host + loc.pathname; + } + /** + * Check if the designer has indicated that this page should + * have no scroll animation, or if the end user has set + * prefers-reduced-motion in their OS + */ + + + var reducedMotionMediaQuery = typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)'); + + function reducedMotionEnabled() { + return document.body.getAttribute('data-wf-scroll-motion') === 'none' || reducedMotionMediaQuery.matches; + } + + function setFocusable($el, action) { + var initialTabindex; + + switch (action) { + case 'add': + initialTabindex = $el.attr('tabindex'); + + if (initialTabindex) { + $el.attr('data-wf-tabindex-swap', initialTabindex); + } else { + $el.attr('tabindex', '-1'); + } + + break; + + case 'remove': + initialTabindex = $el.attr('data-wf-tabindex-swap'); + + if (initialTabindex) { + $el.attr('tabindex', initialTabindex); + $el.removeAttr('data-wf-tabindex-swap'); + } else { + $el.removeAttr('tabindex'); + } + + break; + } + + $el.toggleClass('wf-force-outline-none', action === 'add'); + } + /** + * Determine if we should execute custom scroll + */ + + + function validateScroll(evt) { + var target = evt.currentTarget; + + if ( // Bail if in Designer + Webflow.env('design') || // Ignore links being used by jQuery mobile + window.$.mobile && /(?:^|\s)ui-link(?:$|\s)/.test(target.className)) { + return; + } + + var hash = linksToCurrentPage(target) ? target.hash : ''; + if (hash === '') return; + var $el = $(hash); + + if (!$el.length) { + return; + } + + if (evt) { + evt.preventDefault(); + evt.stopPropagation(); + } + + updateHistory(hash, evt); + window.setTimeout(function () { + scroll($el, function setFocus() { + setFocusable($el, 'add'); + $el.get(0).focus({ + preventScroll: true + }); + setFocusable($el, 'remove'); + }); + }, evt ? 0 : 300); + } + + function updateHistory(hash) { + // Push new history state + if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. + !(Webflow.env.chrome && loc.protocol === 'file:')) { + var oldHash = history.state && history.state.hash; + + if (oldHash !== hash) { + history.pushState({ + hash: hash + }, '', hash); + } + } + } + + function scroll($targetEl, cb) { + var start = $win.scrollTop(); + var end = calculateScrollEndPosition($targetEl); + if (start === end) return; + var duration = calculateScrollDuration($targetEl, start, end); + var clock = Date.now(); + + var step = function step() { + var elapsed = Date.now() - clock; + window.scroll(0, getY(start, end, elapsed, duration)); + + if (elapsed <= duration) { + animate(step); + } else if (typeof cb === 'function') { + cb(); + } + }; + + animate(step); + } + + function calculateScrollEndPosition($targetEl) { + // If a fixed header exists, offset for the height + var $header = $(headerSelector); + var offsetY = $header.css('position') === 'fixed' ? $header.outerHeight() : 0; + var end = $targetEl.offset().top - offsetY; // If specified, scroll so that the element ends up in the middle of the viewport + + if ($targetEl.data('scroll') === 'mid') { + var available = $win.height() - offsetY; + var elHeight = $targetEl.outerHeight(); + + if (elHeight < available) { + end -= Math.round((available - elHeight) / 2); + } + } + + return end; + } + + function calculateScrollDuration($targetEl, start, end) { + if (reducedMotionEnabled()) return 0; + var mult = 1; // Check for custom time multiplier on the body and the scroll target + + $body.add($targetEl).each(function (_, el) { + var time = parseFloat(el.getAttribute('data-scroll-time')); + + if (!isNaN(time) && time >= 0) { + mult = time; + } + }); + return (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; + } + + function getY(start, end, elapsed, duration) { + if (elapsed > duration) { + return end; + } + + return start + (end - start) * ease(elapsed / duration); + } + + function ease(t) { + return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; + } + + function ready() { + var WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, + WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; + $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); + /** + * Prevent empty hash links from triggering scroll. + * Legacy feature to preserve: use the default "#" link + * to trigger an interaction, and do not want the page + * to scroll to the top. + */ + + $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { + e.preventDefault(); + }); + document.head.insertBefore(focusStylesEl, document.head.firstChild); + } // Export module + + + return { + ready: ready + }; +}); + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals document, window */ + +/* eslint-disable no-var */ + +/** + * Webflow: Touch events + * Supports legacy 'tap' event + * Adds a 'swipe' event to desktop and mobile + */ + +var Webflow = __webpack_require__(0); + +Webflow.define('touch', module.exports = function ($) { + var api = {}; + var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' + + $.event.special.tap = { + bindType: 'click', + delegateType: 'click' + }; + + api.init = function (el) { + el = typeof el === 'string' ? $(el).get(0) : el; + return el ? new Touch(el) : null; + }; + + function Touch(el) { + var active = false; + var useTouch = false; + var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); + var startX; + var lastX; + el.addEventListener('touchstart', start, false); + el.addEventListener('touchmove', move, false); + el.addEventListener('touchend', end, false); + el.addEventListener('touchcancel', cancel, false); + el.addEventListener('mousedown', start, false); + el.addEventListener('mousemove', move, false); + el.addEventListener('mouseup', end, false); + el.addEventListener('mouseout', cancel, false); + + function start(evt) { + // We don’t handle multi-touch events yet. + var touches = evt.touches; + + if (touches && touches.length > 1) { + return; + } + + active = true; + + if (touches) { + useTouch = true; + startX = touches[0].clientX; + } else { + startX = evt.clientX; + } + + lastX = startX; + } + + function move(evt) { + if (!active) { + return; + } + + if (useTouch && evt.type === 'mousemove') { + evt.preventDefault(); + evt.stopPropagation(); + return; + } + + var touches = evt.touches; + var x = touches ? touches[0].clientX : evt.clientX; + var velocityX = x - lastX; + lastX = x; // Allow swipes while pointer is down, but prevent them during text selection + + if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { + triggerEvent('swipe', evt, { + direction: velocityX > 0 ? 'right' : 'left' + }); + cancel(); + } + } + + function end(evt) { + if (!active) { + return; + } + + active = false; + + if (useTouch && evt.type === 'mouseup') { + evt.preventDefault(); + evt.stopPropagation(); + useTouch = false; + return; + } + } + + function cancel() { + active = false; + } + + function destroy() { + el.removeEventListener('touchstart', start, false); + el.removeEventListener('touchmove', move, false); + el.removeEventListener('touchend', end, false); + el.removeEventListener('touchcancel', cancel, false); + el.removeEventListener('mousedown', start, false); + el.removeEventListener('mousemove', move, false); + el.removeEventListener('mouseup', end, false); + el.removeEventListener('mouseout', cancel, false); + el = null; + } // Public instance methods + + + this.destroy = destroy; + } // Wrap native event to supoprt preventdefault + stopPropagation + + + function triggerEvent(type, evt, data) { + var newEvent = $.Event(type, { + originalEvent: evt + }); + $(evt.target).trigger(newEvent, data); + } // Listen for touch events on all nodes by default. + + + api.instance = api.init(document); // Export module + + return api; +}); + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals + window, + document, + FormData, + WEBFLOW_FORM_API_HOST, + WEBFLOW_FORM_OLDIE_HOST +*/ + +/* eslint-disable no-var */ + +/** + * Webflow: Forms + */ + +var _interopRequireDefault = __webpack_require__(2); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(14)); + +var Webflow = __webpack_require__(0); + +Webflow.define('forms', module.exports = function ($, _) { + var api = {}; + var $doc = $(document); + var $forms; + var loc = window.location; + var retro = window.XDomainRequest && !window.atob; + var namespace = '.w-form'; + var siteId; + var emailField = /e(-)?mail/i; + var emailValue = /^\S+@\S+$/; + var alert = window.alert; + var inApp = Webflow.env(); + var listening; + var formUrl; + var signFileUrl; // MailChimp domains: list-manage.com + mirrors + + var chimpRegex = /list-manage[1-9]?.com/i; + + var disconnected = _.debounce(function () { + alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); + }, 100); + + api.ready = api.design = api.preview = function () { + // Init forms + init(); // Wire document events on published site only once + + if (!inApp && !listening) { + addListeners(); + } + }; + + function init() { + siteId = $('html').attr('data-wf-site'); + formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit + + if (retro && formUrl.indexOf("https://webflow.com") >= 0) { + formUrl = formUrl.replace("https://webflow.com", "http://formdata.webflow.com"); + } + + signFileUrl = "".concat(formUrl, "/signFile"); + $forms = $(namespace + ' form'); + + if (!$forms.length) { + return; + } + + $forms.each(build); + } + + function build(i, el) { + // Store form state using namespace + var $el = $(el); + var data = $.data(el, namespace); + + if (!data) { + data = $.data(el, namespace, { + form: $el + }); + } // data.form + + + reset(data); + var wrap = $el.closest('div.w-form'); + data.done = wrap.find('> .w-form-done'); + data.fail = wrap.find('> .w-form-fail'); + data.fileUploads = wrap.find('.w-file-upload'); + data.fileUploads.each(function (j) { + initFileUpload(j, data); + }); // Accessiblity fixes + + var formName = data.form.attr('aria-label') || data.form.attr('data-name') || 'Form'; + + if (!data.done.attr('aria-label')) { + data.form.attr('aria-label', formName); + } + + data.done.attr('tabindex', '-1'); + data.done.attr('role', 'region'); + + if (!data.done.attr('aria-label')) { + data.done.attr('aria-label', formName + ' success'); + } + + data.fail.attr('tabindex', '-1'); + data.fail.attr('role', 'region'); + + if (!data.fail.attr('aria-label')) { + data.fail.attr('aria-label', formName + ' failure'); + } + + var action = data.action = $el.attr('action'); + data.handler = null; + data.redirect = $el.attr('data-redirect'); // MailChimp form + + if (chimpRegex.test(action)) { + data.handler = submitMailChimp; + return; + } // Custom form action + + + if (action) { + return; + } // Webflow forms for hosting accounts + + + if (siteId) { + data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; + return; + } // Alert for disconnected Webflow forms + + + disconnected(); + } + + function addListeners() { + listening = true; // Handle form submission for Webflow forms + + $doc.on('submit', namespace + ' form', function (evt) { + var data = $.data(this, namespace); + + if (data.handler) { + data.evt = evt; + data.handler(data); + } + }); // handle checked ui for custom checkbox and radio button + + var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; + var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; + var CHECKED_CLASS = 'w--redirected-checked'; + var FOCUSED_CLASS = 'w--redirected-focus'; + var FOCUSED_VISIBLE_CLASS = 'w--redirected-focus-visible'; + var focusVisibleSelectors = ':focus-visible, [data-wf-focus-visible]'; + var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; + $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { + $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); + }); + $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { + $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { + return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); + }); + var $target = $(evt.target); + + if (!$target.hasClass('w-radio-input')) { + $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); + } + }); + CUSTOM_CONTROLS.forEach(function (_ref) { + var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), + controlType = _ref2[0], + customControlClassName = _ref2[1]; + + $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { + $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); + $(evt.target).filter(focusVisibleSelectors).siblings(customControlClassName).addClass(FOCUSED_VISIBLE_CLASS); + }); + $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { + $(evt.target).siblings(customControlClassName).removeClass("".concat(FOCUSED_CLASS, " ").concat(FOCUSED_VISIBLE_CLASS)); + }); + }); + } // Reset data common to all submit handlers + + + function reset(data) { + var btn = data.btn = data.form.find(':input[type="submit"]'); + data.wait = data.btn.attr('data-wait') || null; + data.success = false; + btn.prop('disabled', false); + data.label && btn.val(data.label); + } // Disable submit button + + + function disableBtn(data) { + var btn = data.btn; + var wait = data.wait; + btn.prop('disabled', true); // Show wait text and store previous label + + if (wait) { + data.label = btn.val(); + btn.val(wait); + } + } // Find form fields, validate, and set value pairs + + + function findFields(form, result) { + var status = null; + result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas + + form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { + var field = $(el); + var type = field.attr('type'); + var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); + var value = field.val(); + + if (type === 'checkbox') { + value = field.is(':checked'); + } else if (type === 'radio') { + // Radio group value already processed + if (result[name] === null || typeof result[name] === 'string') { + return; + } + + value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; + } + + if (typeof value === 'string') { + value = $.trim(value); + } + + result[name] = value; + status = status || getStatus(field, type, name, value); + }); + return status; + } + + function findFileUploads(form) { + var result = {}; + form.find(':input[type="file"]').each(function (i, el) { + var field = $(el); + var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); + var value = field.attr('data-value'); + + if (typeof value === 'string') { + value = $.trim(value); + } + + result[name] = value; + }); + return result; + } + + var trackingCookieNameMap = { + _mkto_trk: 'marketo' // __hstc: 'hubspot', + + }; + + function collectEnterpriseTrackingCookies() { + var cookies = document.cookie.split('; ').reduce(function (acc, cookie) { + var splitCookie = cookie.split('='); + var name = splitCookie[0]; + + if (name in trackingCookieNameMap) { + var mappedName = trackingCookieNameMap[name]; + var value = splitCookie.slice(1).join('='); + acc[mappedName] = value; + } + + return acc; + }, {}); + return cookies; + } + + function getStatus(field, type, name, value) { + var status = null; + + if (type === 'password') { + status = 'Passwords cannot be submitted.'; + } else if (field.attr('required')) { + if (!value) { + status = 'Please fill out the required field: ' + name; + } else if (emailField.test(field.attr('type'))) { + if (!emailValue.test(value)) { + status = 'Please enter a valid email address for: ' + name; + } + } + } else if (name === 'g-recaptcha-response' && !value) { + status = 'Please confirm you’re not a robot.'; + } + + return status; + } + + function exportedSubmitWebflow(data) { + preventDefault(data); + afterSubmit(data); + } // Submit form to MailChimp + + + function submitMailChimp(data) { + reset(data); + var form = data.form; + var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead + + if (/^https/.test(loc.href) && !/^https/.test(data.action)) { + form.attr('method', 'post'); + return; + } + + preventDefault(data); // Find & populate all fields + + var status = findFields(form, payload); + + if (status) { + return alert(status); + } // Disable submit button + + + disableBtn(data); // Use special format for MailChimp params + + var fullName; + + _.each(payload, function (value, key) { + if (emailField.test(key)) { + payload.EMAIL = value; + } + + if (/^((full[ _-]?)?name)$/i.test(key)) { + fullName = value; + } + + if (/^(first[ _-]?name)$/i.test(key)) { + payload.FNAME = value; + } + + if (/^(last[ _-]?name)$/i.test(key)) { + payload.LNAME = value; + } + }); + + if (fullName && !payload.FNAME) { + fullName = fullName.split(' '); + payload.FNAME = fullName[0]; + payload.LNAME = payload.LNAME || fullName[1]; + } // Use the (undocumented) MailChimp jsonp api + + + var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups + + var userId = url.indexOf('u=') + 2; + userId = url.substring(userId, url.indexOf('&', userId)); + var listId = url.indexOf('id=') + 3; + listId = url.substring(listId, url.indexOf('&', listId)); + payload['b_' + userId + '_' + listId] = ''; + $.ajax({ + url: url, + data: payload, + dataType: 'jsonp' + }).done(function (resp) { + data.success = resp.result === 'success' || /already/.test(resp.msg); + + if (!data.success) { + console.info('MailChimp error: ' + resp.msg); + } + + afterSubmit(data); + }).fail(function () { + afterSubmit(data); + }); + } // Common callback which runs after all Ajax submissions + + + function afterSubmit(data) { + var form = data.form; + var redirect = data.redirect; + var success = data.success; // Redirect to a success url if defined + + if (success && redirect) { + Webflow.location(redirect); + return; + } // Show or hide status divs + + + data.done.toggle(success); + data.fail.toggle(!success); + + if (success) { + data.done.focus(); + } else { + data.fail.focus(); + } // Hide form on success + + + form.toggle(!success); // Reset data and enable submit button + + reset(data); + } + + function preventDefault(data) { + data.evt && data.evt.preventDefault(); + data.evt = null; + } + + function initFileUpload(i, form) { + if (!form.fileUploads || !form.fileUploads[i]) { + return; + } + + var file; + var $el = $(form.fileUploads[i]); + var $defaultWrap = $el.find('> .w-file-upload-default'); + var $uploadingWrap = $el.find('> .w-file-upload-uploading'); + var $successWrap = $el.find('> .w-file-upload-success'); + var $errorWrap = $el.find('> .w-file-upload-error'); + var $input = $defaultWrap.find('.w-file-upload-input'); + var $label = $defaultWrap.find('.w-file-upload-label'); + var $labelChildren = $label.children(); + var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); + var $fileEl = $successWrap.find('.w-file-upload-file'); + var $removeEl = $successWrap.find('.w-file-remove-link'); + var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); + var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); + var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); + var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); // Accessiblity fixes + // The file upload Input is not stylable by the designer, so we are + // going to pretend the Label is the input. ¯\_(ツ)_/¯ + + if (!inApp) { + $label.on('click keydown', function (e) { + if (e.type === 'keydown' && e.which !== 13 && e.which !== 32) { + return; + } + + e.preventDefault(); + $input.click(); + }); + } // Both of these are added through CSS + + + $label.find('.w-icon-file-upload-icon').attr('aria-hidden', 'true'); + $removeEl.find('.w-icon-file-upload-remove').attr('aria-hidden', 'true'); + + if (!inApp) { + $removeEl.on('click keydown', function (e) { + if (e.type === 'keydown') { + if (e.which !== 13 && e.which !== 32) { + return; + } + + e.preventDefault(); + } + + $input.removeAttr('data-value'); + $input.val(''); + $fileNameEl.html(''); + $defaultWrap.toggle(true); + $successWrap.toggle(false); + $label.focus(); + }); + $input.on('change', function (e) { + file = e.target && e.target.files && e.target.files[0]; + + if (!file) { + return; + } // Show uploading + + + $defaultWrap.toggle(false); + $errorWrap.toggle(false); + $uploadingWrap.toggle(true); + $uploadingWrap.focus(); // Set filename + + $fileNameEl.text(file.name); // Disable submit button + + if (!isUploading()) { + disableBtn(form); + } + + form.fileUploads[i].uploading = true; + signFile(file, afterSign); + }); // Setting input width 1px and height equal label + // This is so the browser required error will show up + + var height = $label.outerHeight(); + $input.height(height); + $input.width(1); + } else { + $input.on('click', function (e) { + e.preventDefault(); + }); + $label.on('click', function (e) { + e.preventDefault(); + }); + $labelChildren.on('click', function (e) { + e.preventDefault(); + }); + } + + function parseError(err) { + var errorMsg = err.responseJSON && err.responseJSON.msg; + var userError = genericErrMsg; + + if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { + userError = typeErrMsg; + } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { + userError = sizeErrMsg; + } + + $errorMsgEl.text(userError); + $input.removeAttr('data-value'); + $input.val(''); + $uploadingWrap.toggle(false); + $defaultWrap.toggle(true); + $errorWrap.toggle(true); + $errorWrap.focus(); + form.fileUploads[i].uploading = false; + + if (!isUploading()) { + reset(form); + } + } + + function afterSign(err, data) { + if (err) { + return parseError(err); + } + + var fileName = data.fileName; + var postData = data.postData; + var fileId = data.fileId; + var s3Url = data.s3Url; + $input.attr('data-value', fileId); + uploadS3(s3Url, postData, file, fileName, afterUpload); + } + + function afterUpload(err) { + if (err) { + return parseError(err); + } // Show success + + + $uploadingWrap.toggle(false); + $successWrap.css('display', 'inline-block'); + $successWrap.focus(); + form.fileUploads[i].uploading = false; + + if (!isUploading()) { + reset(form); + } + } + + function isUploading() { + var uploads = form.fileUploads && form.fileUploads.toArray() || []; + return uploads.some(function (value) { + return value.uploading; + }); + } + } + + function signFile(file, cb) { + var payload = new URLSearchParams({ + name: file.name, + size: file.size + }); + $.ajax({ + type: 'GET', + url: "".concat(signFileUrl, "?").concat(payload), + crossDomain: true + }).done(function (data) { + cb(null, data); + }).fail(function (err) { + cb(err); + }); + } + + function uploadS3(url, data, file, fileName, cb) { + var formData = new FormData(); + + for (var k in data) { + formData.append(k, data[k]); + } + + formData.append('file', file, fileName); + $.ajax({ + type: 'POST', + url: url, + data: formData, + processData: false, + contentType: false + }).done(function () { + cb(null); + }).fail(function (err) { + cb(err); + }); + } // Export module + + + return api; +}); + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithHoles = __webpack_require__(15); + +var iterableToArrayLimit = __webpack_require__(16); + +var nonIterableRest = __webpack_require__(17); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray; + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles; + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + +function _iterableToArrayLimit(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit; + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); +} + +module.exports = _nonIterableRest; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Navbar component + */ + +var Webflow = __webpack_require__(0); + +var IXEvents = __webpack_require__(19); + +var KEY_CODES = { + ARROW_LEFT: 37, + ARROW_UP: 38, + ARROW_RIGHT: 39, + ARROW_DOWN: 40, + ESCAPE: 27, + SPACE: 32, + ENTER: 13, + HOME: 36, + END: 35 +}; +Webflow.define('navbar', module.exports = function ($, _) { + var api = {}; + var tram = $.tram; + var $win = $(window); + var $doc = $(document); + var debounce = _.debounce; + var $body; + var $navbars; + var designer; + var inEditor; + var inApp = Webflow.env(); + var overlay = '
'; + var namespace = '.w-nav'; + var navbarOpenedButton = 'w--open'; + var navbarOpenedDropdown = 'w--nav-dropdown-open'; + var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; + var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; + var navbarOpenedLink = 'w--nav-link-open'; + var ix = IXEvents.triggers; + var menuSibling = $(); // ----------------------------------- + // Module methods + + api.ready = api.design = api.preview = init; + + api.destroy = function () { + menuSibling = $(); + removeListeners(); + + if ($navbars && $navbars.length) { + $navbars.each(teardown); + } + }; // ----------------------------------- + // Private methods + + + function init() { + designer = inApp && Webflow.env('design'); + inEditor = Webflow.env('editor'); + $body = $(document.body); // Find all instances on the page + + $navbars = $doc.find(namespace); + + if (!$navbars.length) { + return; + } + + $navbars.each(build); // Wire events + + removeListeners(); + addListeners(); + } + + function removeListeners() { + Webflow.resize.off(resizeAll); + } + + function addListeners() { + Webflow.resize.on(resizeAll); + } + + function resizeAll() { + $navbars.each(resize); + } + + function build(i, el) { + var $el = $(el); // Store state in data + + var data = $.data(el, namespace); + + if (!data) { + data = $.data(el, namespace, { + open: false, + el: $el, + config: {}, + selectedIdx: -1 + }); + } + + data.menu = $el.find('.w-nav-menu'); + data.links = data.menu.find('.w-nav-link'); + data.dropdowns = data.menu.find('.w-dropdown'); + data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); + data.dropdownList = data.menu.find('.w-dropdown-list'); + data.button = $el.find('.w-nav-button'); + data.container = $el.find('.w-container'); + data.overlayContainerId = 'w-nav-overlay-' + i; + data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the + // default setting, then add an aria-label + + var navBrandLink = $el.find('.w-nav-brand'); + + if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { + navBrandLink.attr('aria-label', 'home'); + } // VoiceOver bug, when items that disallow user selection are focused + // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ツ)_/¯ + + + data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element + + if (data.button.attr('aria-label') == null) { + data.button.attr('aria-label', 'menu'); + } + + data.button.attr('role', 'button'); + data.button.attr('tabindex', '0'); + data.button.attr('aria-controls', data.overlayContainerId); + data.button.attr('aria-haspopup', 'menu'); + data.button.attr('aria-expanded', 'false'); // Remove old events + + data.el.off(namespace); + data.button.off(namespace); + data.menu.off(namespace); // Set config from data attributes + + configure(data); // Add events based on mode + + if (designer) { + removeOverlay(data); + data.el.on('setting' + namespace, handler(data)); + } else { + addOverlay(data); + data.button.on('click' + namespace, toggle(data)); + data.menu.on('click' + namespace, 'a', navigate(data)); + data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); + data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); + } // Trigger initial resize + + + resize(i, el); + } + + function teardown(i, el) { + var data = $.data(el, namespace); + + if (data) { + removeOverlay(data); + $.removeData(el, namespace); + } + } + + function removeOverlay(data) { + if (!data.overlay) { + return; + } + + close(data, true); + data.overlay.remove(); + data.overlay = null; + } + + function addOverlay(data) { + if (data.overlay) { + return; + } + + data.overlay = $(overlay).appendTo(data.el); + data.overlay.attr('id', data.overlayContainerId); + data.parent = data.menu.parent(); + close(data, true); + } + + function configure(data) { + var config = {}; + var old = data.config || {}; // Set config options from data attributes + + var animation = config.animation = data.el.attr('data-animation') || 'default'; + config.animOver = /^over/.test(animation); + config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed + + if (old.animation !== animation) { + data.open && _.defer(reopen, data); + } + + config.easing = data.el.attr('data-easing') || 'ease'; + config.easing2 = data.el.attr('data-easing2') || 'ease'; + var duration = data.el.attr('data-duration'); + config.duration = duration != null ? Number(duration) : 400; + config.docHeight = data.el.attr('data-doc-height'); // Store config in data + + data.config = config; + } + + function handler(data) { + return function (evt, options) { + options = options || {}; + var winWidth = $win.width(); + configure(data); + options.open === true && open(data, true); + options.open === false && close(data, true); // Reopen if media query changed after setting + + data.open && _.defer(function () { + if (winWidth !== $win.width()) { + reopen(data); + } + }); + }; + } + + function makeToggleButtonKeyboardHandler(data) { + return function (evt) { + switch (evt.keyCode) { + case KEY_CODES.SPACE: + case KEY_CODES.ENTER: + { + // Toggle returns a function + toggle(data)(); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ESCAPE: + { + close(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ARROW_RIGHT: + case KEY_CODES.ARROW_DOWN: + case KEY_CODES.HOME: + case KEY_CODES.END: + { + if (!data.open) { + evt.preventDefault(); + return evt.stopPropagation(); + } + + if (evt.keyCode === KEY_CODES.END) { + data.selectedIdx = data.links.length - 1; + } else { + data.selectedIdx = 0; + } + + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + } + }; + } + + function makeLinksKeyboardHandler(data) { + return function (evt) { + if (!data.open) { + return; + } // Realign selectedIdx with the menu item that is currently in focus. + // We need this because we do not track the `Tab` key activity! + + + data.selectedIdx = data.links.index(document.activeElement); + + switch (evt.keyCode) { + case KEY_CODES.HOME: + case KEY_CODES.END: + { + if (evt.keyCode === KEY_CODES.END) { + data.selectedIdx = data.links.length - 1; + } else { + data.selectedIdx = 0; + } + + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ESCAPE: + { + close(data); // Focus toggle button + + data.button.focus(); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ARROW_LEFT: + case KEY_CODES.ARROW_UP: + { + data.selectedIdx = Math.max(-1, data.selectedIdx - 1); + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + + case KEY_CODES.ARROW_RIGHT: + case KEY_CODES.ARROW_DOWN: + { + data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); + focusSelectedLink(data); + evt.preventDefault(); + return evt.stopPropagation(); + } + } + }; + } + + function focusSelectedLink(data) { + if (data.links[data.selectedIdx]) { + var selectedElement = data.links[data.selectedIdx]; + selectedElement.focus(); + navigate(selectedElement); + } + } + + function reopen(data) { + if (!data.open) { + return; + } + + close(data, true); + open(data, true); + } + + function toggle(data) { + // Debounce toggle to wait for accurate open state + return debounce(function () { + data.open ? close(data) : open(data); + }); + } + + function navigate(data) { + return function (evt) { + var link = $(this); + var href = link.attr('href'); // Avoid late clicks on touch devices + + if (!Webflow.validClick(evt.currentTarget)) { + evt.preventDefault(); + return; + } // Close when navigating to an in-page anchor + + + if (href && href.indexOf('#') === 0 && data.open) { + close(data); + } + }; + } + + function outside(data) { + // Unbind previous click handler if it exists + if (data.outside) { + $doc.off('click' + namespace, data.outside); + } + + return function (evt) { + var $target = $(evt.target); // Ignore clicks on Editor overlay UI + + if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { + return; + } // Close menu when clicked outside, debounced to wait for state + + + outsideDebounced(data, $target); + }; + } + + var outsideDebounced = debounce(function (data, $target) { + if (!data.open) { + return; + } + + var menu = $target.closest('.w-nav-menu'); + + if (!data.menu.is(menu)) { + close(data); + } + }); + + function resize(i, el) { + var data = $.data(el, namespace); // Check for collapsed state based on button display + + var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) + + if (data.open && !collapsed && !designer) { + close(data, true); + } // Set max-width of links + dropdowns to match container + + + if (data.container.length) { + var updateEachMax = updateMax(data); + data.links.each(updateEachMax); + data.dropdowns.each(updateEachMax); + } // If currently open, update height to match body + + + if (data.open) { + setOverlayHeight(data); + } + } + + var maxWidth = 'max-width'; + + function updateMax(data) { + // Set max-width of each element to match container + var containMax = data.container.css(maxWidth); + + if (containMax === 'none') { + containMax = ''; + } + + return function (i, link) { + link = $(link); + link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists + + if (link.css(maxWidth) === 'none') { + link.css(maxWidth, containMax); + } + }; + } + + function addMenuOpen(i, el) { + el.setAttribute('data-nav-menu-open', ''); + } + + function removeMenuOpen(i, el) { + el.removeAttribute('data-nav-menu-open'); + } + + function open(data, immediate) { + if (data.open) { + return; + } + + data.open = true; + data.menu.each(addMenuOpen); + data.links.addClass(navbarOpenedLink); + data.dropdowns.addClass(navbarOpenedDropdown); + data.dropdownToggle.addClass(navbarOpenedDropdownToggle); + data.dropdownList.addClass(navbarOpenedDropdownList); + data.button.addClass(navbarOpenedButton); + var config = data.config; + var animation = config.animation; + + if (animation === 'none' || !tram.support.transform || config.duration <= 0) { + immediate = true; + } + + var bodyHeight = setOverlayHeight(data); + var menuHeight = data.menu.outerHeight(true); + var menuWidth = data.menu.outerWidth(true); + var navHeight = data.el.height(); + var navbarEl = data.el[0]; + resize(0, navbarEl); + ix.intro(0, navbarEl); + Webflow.redraw.up(); // Listen for click outside events + + if (!designer) { + $doc.on('click' + namespace, data.outside); + } // No transition for immediate + + + if (immediate) { + complete(); + return; + } + + var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay + + if (data.overlay) { + menuSibling = data.menu.prev(); + data.overlay.show().append(data.menu); + } // Over left/right + + + if (config.animOver) { + tram(data.menu).add(transConfig).set({ + x: config.animDirect * menuWidth, + height: bodyHeight + }).start({ + x: 0 + }).then(complete); + data.overlay && data.overlay.width(menuWidth); + return; + } // Drop Down + + + var offsetY = navHeight + menuHeight; + tram(data.menu).add(transConfig).set({ + y: -offsetY + }).start({ + y: 0 + }).then(complete); + + function complete() { + data.button.attr('aria-expanded', 'true'); + } + } + + function setOverlayHeight(data) { + var config = data.config; + var bodyHeight = config.docHeight ? $doc.height() : $body.height(); + + if (config.animOver) { + data.menu.height(bodyHeight); + } else if (data.el.css('position') !== 'fixed') { + bodyHeight -= data.el.outerHeight(true); + } + + data.overlay && data.overlay.height(bodyHeight); + return bodyHeight; + } + + function close(data, immediate) { + if (!data.open) { + return; + } + + data.open = false; + data.button.removeClass(navbarOpenedButton); + var config = data.config; + + if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { + immediate = true; + } + + ix.outro(0, data.el[0]); // Stop listening for click outside events + + $doc.off('click' + namespace, data.outside); + + if (immediate) { + tram(data.menu).stop(); + complete(); + return; + } + + var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; + var menuHeight = data.menu.outerHeight(true); + var menuWidth = data.menu.outerWidth(true); + var navHeight = data.el.height(); // Over left/right + + if (config.animOver) { + tram(data.menu).add(transConfig).start({ + x: menuWidth * config.animDirect + }).then(complete); + return; + } // Drop Down + + + var offsetY = navHeight + menuHeight; + tram(data.menu).add(transConfig).start({ + y: -offsetY + }).then(complete); + + function complete() { + data.menu.height(''); + tram(data.menu).set({ + x: 0, + y: 0 + }); + data.menu.each(removeMenuOpen); + data.links.removeClass(navbarOpenedLink); + data.dropdowns.removeClass(navbarOpenedDropdown); + data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); + data.dropdownList.removeClass(navbarOpenedDropdownList); + + if (data.overlay && data.overlay.children().length) { + // Move menu back to parent at the original location + menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); + data.overlay.attr('style', '').hide(); + } // Trigger event so other components can hook in (dropdown) + + + data.el.triggerHandler('w-close'); + data.button.attr('aria-expanded', 'false'); + } + } // Export module + + + return api; +}); + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ +// eslint-disable-next-line strict + + +var IXEvents = __webpack_require__(20); + +function dispatchCustomEvent(element, eventName) { + var event = document.createEvent('CustomEvent'); + event.initCustomEvent(eventName, true, true, null); + element.dispatchEvent(event); +} +/** + * Webflow: IX Event triggers for other modules + */ + + +var $ = window.jQuery; +var api = {}; +var namespace = '.w-ix'; +var eventTriggers = { + reset: function reset(i, el) { + IXEvents.triggers.reset(i, el); + }, + intro: function intro(i, el) { + IXEvents.triggers.intro(i, el); + dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); + }, + outro: function outro(i, el) { + IXEvents.triggers.outro(i, el); + dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); + } +}; +api.triggers = {}; +api.types = { + INTRO: 'w-ix-intro' + namespace, + OUTRO: 'w-ix-outro' + namespace +}; +$.extend(api.triggers, eventTriggers); +module.exports = api; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// @wf-will-never-add-flow-to-this-file + +/* globals window */ + +/* eslint-disable no-var */ + +/** + * Webflow: IX Event triggers for other modules + */ +// eslint-disable-next-line strict + + +var $ = window.jQuery; +var api = {}; +var eventQueue = []; +var namespace = '.w-ix'; +var eventTriggers = { + reset: function reset(i, el) { + el.__wf_intro = null; + }, + intro: function intro(i, el) { + if (el.__wf_intro) { + return; + } + + el.__wf_intro = true; + $(el).triggerHandler(api.types.INTRO); + }, + outro: function outro(i, el) { + if (!el.__wf_intro) { + return; + } + + el.__wf_intro = null; + $(el).triggerHandler(api.types.OUTRO); + } +}; +api.triggers = {}; +api.types = { + INTRO: 'w-ix-intro' + namespace, + OUTRO: 'w-ix-outro' + namespace +}; // Trigger any events in queue + restore trigger methods + +api.init = function () { + var count = eventQueue.length; + + for (var i = 0; i < count; i++) { + var memo = eventQueue[i]; + memo[0](0, memo[1]); + } + + eventQueue = []; + $.extend(api.triggers, eventTriggers); +}; // Replace all triggers with async wrapper to queue events until init + + +api.async = function () { + for (var key in eventTriggers) { + var func = eventTriggers[key]; + + if (!eventTriggers.hasOwnProperty(key)) { + continue; + } // Replace trigger method with async wrapper + + + api.triggers[key] = function (i, el) { + eventQueue.push([func, el]); + }; + } +}; // Default triggers to async queue + + +api.async(); +module.exports = api; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // @wf-will-never-add-flow-to-this-file + +/* globals window, document */ + +/* eslint-disable no-var */ + +/** + * Webflow: Maps widget + */ + +var Webflow = __webpack_require__(0); + +Webflow.define('maps', module.exports = function ($, _) { + var api = {}; + var $doc = $(document); + var google = null; + var $maps; + var namespace = '.w-widget-map'; // The API key is injected here from the Webflow Integrations tab on the site's dashboard + + var googleMapsApiKey = ''; // ----------------------------------- + // Module methods + + api.ready = function () { + // Init Maps on the front-end + if (!Webflow.env()) { + initMaps(); + } + }; + + api.destroy = removeListeners; // ----------------------------------- + // Private methods + + function initMaps() { + $maps = $doc.find(namespace); + + if (!$maps.length) { + return; + } + + if (google === null) { + $.getScript('https://maps.googleapis.com/maps/api/js?v=3.31&sensor=false&callback=_wf_maps_loaded&key=' + googleMapsApiKey); + window._wf_maps_loaded = mapsLoaded; + } else { + mapsLoaded(); + } + + function mapsLoaded() { + window._wf_maps_loaded = function () {}; + + google = window.google; + $maps.each(renderMap); + removeListeners(); + addListeners(); + } + } + + function removeListeners() { + Webflow.resize.off(resizeMaps); + Webflow.redraw.off(resizeMaps); + } + + function addListeners() { + Webflow.resize.on(resizeMaps); + Webflow.redraw.on(resizeMaps); + } // Render map onto each element + + + function renderMap(i, el) { + var data = $(el).data(); + getState(el, data); + } + + function resizeMaps() { + $maps.each(resizeMap); + } // Resize map when window changes + + + function resizeMap(i, el) { + var state = getState(el); + google.maps.event.trigger(state.map, 'resize'); + state.setMapPosition(); + } // Store state on element data + + + var store = 'w-widget-map'; + + function getState(el, data) { + var state = $.data(el, store); + + if (state) { + return state; + } + + var hasTooltip = typeof data.widgetTooltip === 'string' && data.widgetTooltip !== ''; + var $el = $(el); + var title = $el.attr('title'); + var markerTitle = 'Map pin'; + + if (title && data.widgetTooltip) { + markerTitle = "Map pin on ".concat(title, " showing location of ").concat(data.widgetTooltip); + } else if (title && !data.widgetTooltip) { + markerTitle = "Map pin on ".concat(title); + } else if (!title && data.widgetTooltip) { + markerTitle = "Map pin showing location of ".concat(data.widgetTooltip); + } + + state = $.data(el, store, { + // Default options + latLng: '51.511214,-0.119824', + tooltip: '', + style: 'roadmap', + zoom: 12, + // Marker + marker: new google.maps.Marker({ + draggable: false, + title: markerTitle + }), + // Tooltip infowindow + infowindow: new google.maps.InfoWindow({ + disableAutoPan: true + }) + }); // LatLng center point + + if (typeof data.widgetLatlng === 'string' && data.widgetLatlng.length !== '') { + state.latLng = data.widgetLatlng; + } + + var coords = state.latLng.split(','); + var latLngObj = new google.maps.LatLng(coords[0], coords[1]); + state.latLngObj = latLngObj; // Disable touch events + + var mapDraggable = !(Webflow.env.touch && !data.enableTouch); // Map instance + + state.map = new google.maps.Map(el, { + center: state.latLngObj, + zoom: state.zoom, + maxZoom: 20, + mapTypeControl: false, + panControl: false, + streetViewControl: false, + scrollwheel: data.enableScroll, + draggable: mapDraggable, + zoomControl: true, + zoomControlOptions: { + style: google.maps.ZoomControlStyle.SMALL + }, + mapTypeId: state.style + }); + state.marker.setMap(state.map); // Set map position and offset + + state.setMapPosition = function () { + state.map.setCenter(state.latLngObj); + var offsetX = 0; + var offsetY = 0; + var padding = $el.css(['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft']); + offsetX -= parseInt(padding.paddingLeft, 10); + offsetX += parseInt(padding.paddingRight, 10); + offsetY -= parseInt(padding.paddingTop, 10); + offsetY += parseInt(padding.paddingBottom, 10); + + if (offsetX || offsetY) { + state.map.panBy(offsetX, offsetY); + } + + $el.css('position', ''); // Remove injected position + }; // Fix position after first tiles have loaded + + + google.maps.event.addListener(state.map, 'tilesloaded', function () { + google.maps.event.clearListeners(state.map, 'tilesloaded'); + state.setMapPosition(); + }); // Set initial position + + state.setMapPosition(); + state.marker.setPosition(state.latLngObj); + state.infowindow.setPosition(state.latLngObj); // Draw tooltip + + if (hasTooltip) { + var tooltip = data.widgetTooltip; + state.tooltip = tooltip; + state.infowindow.setContent(tooltip); + + if (!state.infowindowOpen) { + state.infowindow.open(state.map, state.marker); + state.infowindowOpen = true; + } + } // Map style - options.style + + + var style = data.widgetStyle; + + if (style) { + state.map.setMapTypeId(style); + } // Zoom - options.zoom + + + var zoom = data.widgetZoom; + + if (zoom != null) { + state.zoom = zoom; + state.map.setZoom(Number(zoom)); + } // Click marker to open in google maps + + + google.maps.event.addListener(state.marker, 'click', function () { + window.open('https://maps.google.com/?z=' + state.zoom + '&daddr=' + state.latLng); + }); + return state; + } // Export module + + + return api; +}); + +/***/ }) +/******/ ]); \ No newline at end of file diff --git a/projects.html b/projects.html new file mode 100644 index 0000000..0289055 --- /dev/null +++ b/projects.html @@ -0,0 +1,105 @@ + + + + + + Projects + + + + + + + + + + + + + + + + +
+
+
+
Our work
+
+
+
+
+
+
+
Our Work
+

Team projects

+
+
+
+ +
+ Project #1 +
Art direction
+
+
+
+ +
+ Project #2 +
Product Design
+
+
+
+ +
+ Project #3 +
Animation
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..e69de29 diff --git a/styleguide.html b/styleguide.html new file mode 100644 index 0000000..bde197d --- /dev/null +++ b/styleguide.html @@ -0,0 +1,106 @@ + + + + + + Styleguide + + + + + + + + + + + + + + + + +
+
+
Styleguide
+
Source of truth of this template.
+
+
+
+
+
Headings
+
Heading Jumbo
+
Heading Jumbo
+
Heading Jumbo
+

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
Heading 5
+
Heading 6
+
+
+
+
Paragraphs & Links
+

Paragraph-bigger

+

Paragraph

+

Paragraph-de-emphasized

+

Paragraph-smaller

+

Paragraph-tiny

+
Label
+ A text link +
+
+
+
Buttons & Form Elements
+ + +
+
+
+
Rich Text Element
+
+

What’s a Rich Text element?

+

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

+
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
+

Static and dynamic content editing

+

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

+
+
+
+

How to customize formatting for each rich text

+

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

+
    +
  • The rich text element allows you to create and format headings
  • +
  • Headings, paragraphs, blockquotes, figures, images, and figure captions
  • +
  • A rich text element can be used with static or dynamic content.
  • +
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/team.html b/team.html new file mode 100644 index 0000000..5bbfcf8 --- /dev/null +++ b/team.html @@ -0,0 +1,126 @@ + + + + + + Team + + + + + + + + + + + + + + + + +
+
+
+
Team
+
+
+
+
+
+
+
Our people
+

Our world-class team

+
+
+
+
+
+
Michael Fassbender
+
CEO
+
+
+
+
+
+
Jason Smith
+
Product Designer
+
+
+
+
+
+
Amanda Peterson
+
Design Director
+
+
+
+
+
+
Billy Maxwell
+
Lead Developer
+
+
+
+
+
+
Joshua Harris
+
CTO
+
+
+
+
+
+
Esther Ford
+
Recruiter
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/work/project-1.html b/work/project-1.html new file mode 100644 index 0000000..58f6e3a --- /dev/null +++ b/work/project-1.html @@ -0,0 +1,100 @@ + + + + + + Project 1 + + + + + + + + + + + + + + + + +
+
+
+
Project #1
+
+
+
+
+
+
+
+
+
DESCRIPTION
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast.
+
+
+
When
+
January 2017
+
+
+
Who
+
Jason Davis, John Anderson, Mirco Cattabriga, Aaron Jones, Amanda Johnson, Steve McQueen
+
+
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/work/project-2.html b/work/project-2.html new file mode 100644 index 0000000..da361f2 --- /dev/null +++ b/work/project-2.html @@ -0,0 +1,100 @@ + + + + + + Project 2 + + + + + + + + + + + + + + + + +
+
+
+
Project #2
+
+
+
+
+
+
+
+
+
DESCRIPTION
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast.
+
+
+
When
+
January 2017
+
+
+
Who
+
Jason Davis, John Anderson, Mirco Cattabriga, Aaron Jones, Amanda Johnson, Steve McQueen
+
+
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/work/project-3.html b/work/project-3.html new file mode 100644 index 0000000..23978f7 --- /dev/null +++ b/work/project-3.html @@ -0,0 +1,100 @@ + + + + + + Project 3 + + + + + + + + + + + + + + + + +
+
+
+
Project #3
+
+
+
+
+
+
+
+
+
DESCRIPTION
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast.
+
+
+
When
+
January 2017
+
+
+
Who
+
Jason Davis, John Anderson, Mirco Cattabriga, Aaron Jones, Amanda Johnson, Steve McQueen
+
+
+
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Telefon / Viber
+
061 266 088
+
+
+
Adresa
+
Trg Heroja 17
71000 Sarajevo
+
+
+
Email
+
pedikura@zdravostopalo.com

+
+
+
+
+
+ + + + + + \ No newline at end of file