From df6315b220d6be4f8b351ce54f58cdade2a7c3dc Mon Sep 17 00:00:00 2001 From: Omar Date: Tue, 26 Feb 2019 23:39:25 +1100 Subject: [PATCH] added cube portfolio as a jquery plugin --- .DS_Store | Bin 0 -> 8196 bytes cubeportfolio/css/cubeportfolio.css | 3919 ++++++++++ cubeportfolio/css/cubeportfolio.min.css | 10 + cubeportfolio/img/cbp-sprite.png | Bin 0 -> 8717 bytes cubeportfolio/img/cbp-sprite.psd | Bin 0 -> 5693446 bytes cubeportfolio/js/jquery.cubeportfolio.js | 6357 +++++++++++++++++ cubeportfolio/js/jquery.cubeportfolio.min.js | 12 + documentation/css/main.css | 196 + documentation/css/prettify.css | 140 + documentation/css/reset.css | 54 + documentation/index.html | 1582 ++++ documentation/js/main.js | 86 + documentation/js/prettify.js | 33 + readme.txt | 11 + templates/.DS_Store | Bin 0 -> 8196 bytes templates/agency/ajax-agency/loadMore.html | 66 + templates/agency/index.html | 238 + templates/agency/js/main.js | 41 + .../ajax-awesome-work/loadMore.html | 40 + .../ajax-awesome-work/project1.html | 60 + .../ajax-awesome-work/project10.html | 60 + .../ajax-awesome-work/project2.html | 60 + .../ajax-awesome-work/project3.html | 60 + .../ajax-awesome-work/project4.html | 60 + .../ajax-awesome-work/project5.html | 60 + .../ajax-awesome-work/project6.html | 66 + .../ajax-awesome-work/project7.html | 60 + .../ajax-awesome-work/project8.html | 60 + .../ajax-awesome-work/project9.html | 60 + templates/awesome-work/index.html | 114 + templates/awesome-work/js/main.js | 62 + templates/blog-posts/index.html | 215 + templates/blog-posts/js/main.js | 42 + templates/clients/index.html | 114 + templates/clients/js/main.js | 35 + templates/faq/index.html | 290 + templates/faq/js/main.js | 15 + .../full-width/ajax-full-width/loadMore.html | 315 + templates/full-width/index.html | 267 + templates/full-width/js/main.js | 50 + .../ajax-juicy-projects/loadMore.html | 106 + .../ajax-juicy-projects/project1.html | 93 + .../ajax-juicy-projects/project10.html | 89 + .../ajax-juicy-projects/project11.html | 89 + .../ajax-juicy-projects/project12.html | 89 + .../ajax-juicy-projects/project13.html | 89 + .../ajax-juicy-projects/project14.html | 89 + .../ajax-juicy-projects/project15.html | 89 + .../ajax-juicy-projects/project16.html | 89 + .../ajax-juicy-projects/project17.html | 89 + .../ajax-juicy-projects/project18.html | 89 + .../ajax-juicy-projects/project2.html | 89 + .../ajax-juicy-projects/project3.html | 89 + .../ajax-juicy-projects/project4.html | 89 + .../ajax-juicy-projects/project5.html | 89 + .../ajax-juicy-projects/project6.html | 89 + .../ajax-juicy-projects/project7.html | 89 + .../ajax-juicy-projects/project8.html | 89 + .../ajax-juicy-projects/project9.html | 89 + templates/juicy-projects/index.html | 287 + templates/juicy-projects/js/main.js | 75 + templates/lightbox-gallery/.DS_Store | Bin 0 -> 6148 bytes .../ajax-lightbox-gallery/loadMore.html | 60 + .../ajax-lightbox-gallery/project1.html | 57 + .../ajax-lightbox-gallery/project10.html | 41 + .../ajax-lightbox-gallery/project11.html | 41 + .../ajax-lightbox-gallery/project12.html | 41 + .../ajax-lightbox-gallery/project13.html | 41 + .../ajax-lightbox-gallery/project2.html | 45 + .../ajax-lightbox-gallery/project3.html | 41 + .../ajax-lightbox-gallery/project4.html | 57 + .../ajax-lightbox-gallery/project5.html | 41 + .../ajax-lightbox-gallery/project6.html | 41 + .../ajax-lightbox-gallery/project7.html | 41 + .../ajax-lightbox-gallery/project8.html | 41 + .../ajax-lightbox-gallery/project9.html | 41 + templates/lightbox-gallery/index.html | 192 + templates/lightbox-gallery/js/main.js | 71 + .../ajax-masonry-projects/loadMore.html | 102 + .../ajax-masonry-projects/project1.html | 60 + .../ajax-masonry-projects/project10.html | 60 + .../ajax-masonry-projects/project11.html | 60 + .../ajax-masonry-projects/project12.html | 66 + .../ajax-masonry-projects/project13.html | 60 + .../ajax-masonry-projects/project14.html | 60 + .../ajax-masonry-projects/project15.html | 60 + .../ajax-masonry-projects/project16.html | 60 + .../ajax-masonry-projects/project17.html | 60 + .../ajax-masonry-projects/project18.html | 60 + .../ajax-masonry-projects/project2.html | 60 + .../ajax-masonry-projects/project3.html | 60 + .../ajax-masonry-projects/project4.html | 60 + .../ajax-masonry-projects/project5.html | 60 + .../ajax-masonry-projects/project6.html | 66 + .../ajax-masonry-projects/project7.html | 60 + .../ajax-masonry-projects/project8.html | 60 + .../ajax-masonry-projects/project9.html | 60 + templates/masonry-projects/index.html | 261 + templates/masonry-projects/js/main.js | 72 + templates/masonry/index.html | 226 + templates/masonry/js/main.js | 41 + .../ajax-meet-the-team/member1.html | 12 + .../ajax-meet-the-team/member10.html | 12 + .../ajax-meet-the-team/member11.html | 12 + .../ajax-meet-the-team/member12.html | 12 + .../ajax-meet-the-team/member2.html | 12 + .../ajax-meet-the-team/member3.html | 12 + .../ajax-meet-the-team/member4.html | 12 + .../ajax-meet-the-team/member5.html | 12 + .../ajax-meet-the-team/member6.html | 12 + .../ajax-meet-the-team/member7.html | 12 + .../ajax-meet-the-team/member8.html | 12 + .../ajax-meet-the-team/member9.html | 12 + templates/meet-the-team/index.html | 235 + templates/meet-the-team/js/main.js | 58 + .../ajax-mosaic-flat/loadMore.html | 56 + templates/mosaic-flat/index.html | 166 + templates/mosaic-flat/js/main.js | 50 + templates/mosaic-projects/index.html | 144 + templates/mosaic-projects/js/main.js | 40 + templates/mosaic/ajax-mosaic/loadMore.html | 60 + templates/mosaic/index.html | 246 + templates/mosaic/js/main.js | 50 + .../ajax-juicy-projects/loadMore.html | 102 + .../ajax-juicy-projects/project1.html | 66 + .../ajax-juicy-projects/project10.html | 66 + .../ajax-juicy-projects/project11.html | 66 + .../ajax-juicy-projects/project12.html | 66 + .../ajax-juicy-projects/project13.html | 66 + .../ajax-juicy-projects/project14.html | 66 + .../ajax-juicy-projects/project15.html | 66 + .../ajax-juicy-projects/project16.html | 66 + .../ajax-juicy-projects/project17.html | 66 + .../ajax-juicy-projects/project18.html | 66 + .../ajax-juicy-projects/project2.html | 66 + .../ajax-juicy-projects/project3.html | 66 + .../ajax-juicy-projects/project4.html | 66 + .../ajax-juicy-projects/project5.html | 66 + .../ajax-juicy-projects/project6.html | 66 + .../ajax-juicy-projects/project7.html | 66 + .../ajax-juicy-projects/project8.html | 66 + .../ajax-juicy-projects/project9.html | 66 + templates/multiple-grids/index.html | 693 ++ templates/multiple-grids/js/main.js | 176 + templates/slider-projects/index.html | 695 ++ templates/slider-projects/js/main.js | 69 + templates/slider-team/index.html | 214 + templates/slider-team/js/main.js | 38 + templates/slider-testimonials/index.html | 57 + templates/slider-testimonials/js/main.js | 25 + templates/slider-thumbnail/index.html | 61 + templates/slider-thumbnail/js/main.js | 33 + templates/tabs/index.html | 49 + templates/tabs/js/main.js | 13 + templates/testimonials/index.html | 59 + templates/testimonials/js/main.js | 25 + 156 files changed, 24416 insertions(+) create mode 100644 .DS_Store create mode 100644 cubeportfolio/css/cubeportfolio.css create mode 100644 cubeportfolio/css/cubeportfolio.min.css create mode 100644 cubeportfolio/img/cbp-sprite.png create mode 100644 cubeportfolio/img/cbp-sprite.psd create mode 100644 cubeportfolio/js/jquery.cubeportfolio.js create mode 100644 cubeportfolio/js/jquery.cubeportfolio.min.js create mode 100644 documentation/css/main.css create mode 100644 documentation/css/prettify.css create mode 100644 documentation/css/reset.css create mode 100644 documentation/index.html create mode 100644 documentation/js/main.js create mode 100644 documentation/js/prettify.js create mode 100644 readme.txt create mode 100644 templates/.DS_Store create mode 100644 templates/agency/ajax-agency/loadMore.html create mode 100644 templates/agency/index.html create mode 100644 templates/agency/js/main.js create mode 100644 templates/awesome-work/ajax-awesome-work/loadMore.html create mode 100644 templates/awesome-work/ajax-awesome-work/project1.html create mode 100644 templates/awesome-work/ajax-awesome-work/project10.html create mode 100644 templates/awesome-work/ajax-awesome-work/project2.html create mode 100644 templates/awesome-work/ajax-awesome-work/project3.html create mode 100644 templates/awesome-work/ajax-awesome-work/project4.html create mode 100644 templates/awesome-work/ajax-awesome-work/project5.html create mode 100644 templates/awesome-work/ajax-awesome-work/project6.html create mode 100644 templates/awesome-work/ajax-awesome-work/project7.html create mode 100644 templates/awesome-work/ajax-awesome-work/project8.html create mode 100644 templates/awesome-work/ajax-awesome-work/project9.html create mode 100644 templates/awesome-work/index.html create mode 100644 templates/awesome-work/js/main.js create mode 100644 templates/blog-posts/index.html create mode 100644 templates/blog-posts/js/main.js create mode 100644 templates/clients/index.html create mode 100644 templates/clients/js/main.js create mode 100644 templates/faq/index.html create mode 100644 templates/faq/js/main.js create mode 100644 templates/full-width/ajax-full-width/loadMore.html create mode 100644 templates/full-width/index.html create mode 100644 templates/full-width/js/main.js create mode 100644 templates/juicy-projects/ajax-juicy-projects/loadMore.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project1.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project10.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project11.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project12.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project13.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project14.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project15.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project16.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project17.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project18.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project2.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project3.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project4.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project5.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project6.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project7.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project8.html create mode 100644 templates/juicy-projects/ajax-juicy-projects/project9.html create mode 100644 templates/juicy-projects/index.html create mode 100644 templates/juicy-projects/js/main.js create mode 100644 templates/lightbox-gallery/.DS_Store create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/loadMore.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project1.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project10.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project11.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project12.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project13.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project2.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project3.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project4.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project5.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project6.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project7.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project8.html create mode 100644 templates/lightbox-gallery/ajax-lightbox-gallery/project9.html create mode 100644 templates/lightbox-gallery/index.html create mode 100644 templates/lightbox-gallery/js/main.js create mode 100644 templates/masonry-projects/ajax-masonry-projects/loadMore.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project1.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project10.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project11.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project12.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project13.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project14.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project15.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project16.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project17.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project18.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project2.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project3.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project4.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project5.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project6.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project7.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project8.html create mode 100644 templates/masonry-projects/ajax-masonry-projects/project9.html create mode 100644 templates/masonry-projects/index.html create mode 100644 templates/masonry-projects/js/main.js create mode 100644 templates/masonry/index.html create mode 100644 templates/masonry/js/main.js create mode 100644 templates/meet-the-team/ajax-meet-the-team/member1.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member10.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member11.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member12.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member2.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member3.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member4.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member5.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member6.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member7.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member8.html create mode 100644 templates/meet-the-team/ajax-meet-the-team/member9.html create mode 100644 templates/meet-the-team/index.html create mode 100644 templates/meet-the-team/js/main.js create mode 100644 templates/mosaic-flat/ajax-mosaic-flat/loadMore.html create mode 100644 templates/mosaic-flat/index.html create mode 100644 templates/mosaic-flat/js/main.js create mode 100644 templates/mosaic-projects/index.html create mode 100644 templates/mosaic-projects/js/main.js create mode 100644 templates/mosaic/ajax-mosaic/loadMore.html create mode 100644 templates/mosaic/index.html create mode 100644 templates/mosaic/js/main.js create mode 100644 templates/multiple-grids/ajax-juicy-projects/loadMore.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project1.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project10.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project11.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project12.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project13.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project14.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project15.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project16.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project17.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project18.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project2.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project3.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project4.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project5.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project6.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project7.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project8.html create mode 100644 templates/multiple-grids/ajax-juicy-projects/project9.html create mode 100644 templates/multiple-grids/index.html create mode 100644 templates/multiple-grids/js/main.js create mode 100644 templates/slider-projects/index.html create mode 100644 templates/slider-projects/js/main.js create mode 100644 templates/slider-team/index.html create mode 100644 templates/slider-team/js/main.js create mode 100644 templates/slider-testimonials/index.html create mode 100644 templates/slider-testimonials/js/main.js create mode 100644 templates/slider-thumbnail/index.html create mode 100644 templates/slider-thumbnail/js/main.js create mode 100644 templates/tabs/index.html create mode 100644 templates/tabs/js/main.js create mode 100644 templates/testimonials/index.html create mode 100644 templates/testimonials/js/main.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..599c3ad9b504f3a0af3b27d306027659e4d92856 GIT binary patch literal 8196 zcmeHMO-~a+7=8y)w?$<6Mx)6_VnQM@5I_!wP%B2!187k})VkXp%Eo1;+1*kQF}-;8 zEjK0j{S}Z zN6cufDpYhJiVj4-ndl6K$hRZUk>Nlx3QcVkFbeEdK%D)pP=GRcKzHTuAq2puLtgMg z?qQTzSXZ$O{E~*=p-it5mo)RUR| z7RA%7n=E_UpW{5-_FeBmKr4B>>pEwN8!#G4a^O=8dHgV7KCfhXnfb9CC#O0rD`lnf zcHhRv$jI2BGcq=`Ip}PRj}Hwxqa#-~H&a&c#o>wRXDjP3HePPNdMhUdMDH=srk=O! zt;46hnu}P-SrMbe2(94bHHeUQ1*K(pE#hK9QGwOT`W~Zq%X%R5=*oKFl5f&nzv)G@1XyU&z~SaUtSiILqT82{>DL z9OHg6ozRtOw#4y`tGIv6ltfqjfJQOm9?txe(Di6I!?HX{_{xGCMJ_AS?7D~)qv1qm zBPvFc@6MInLcogslRxm=gVvv!tvLhAv7ui%qI01teaj}PImQ`H^=IzrUJEY4HMk8q zScVF`fh~9kAK(*wh41i_G?N~3fm|Y^WP(hRTjVaeN9M?V@`x-dep7A7I0!7k!w3xo?#It u;;ITI1uL13Bg%9far+NL^c@TpoQ%e*LTo|%=NAFy{D;__|MI)n$klHde%ibM literal 0 HcmV?d00001 diff --git a/cubeportfolio/css/cubeportfolio.css b/cubeportfolio/css/cubeportfolio.css new file mode 100644 index 0000000..d3203ba --- /dev/null +++ b/cubeportfolio/css/cubeportfolio.css @@ -0,0 +1,3919 @@ +/*! + * Cube Portfolio - Responsive jQuery Grid Plugin + * + * version: 4.4.0 (1 August, 2018) + * require: jQuery v1.8+ + * + * Copyright 2013-2018, Mihai Buricea (http://scriptpie.com/cubeportfolio/live-preview/) + * Licensed under CodeCanyon License (http://codecanyon.net/licenses) + * + */ +.cbp-l-filters-alignCenter .cbp-filter-counter:after, .cbp-l-filters-alignRight .cbp-filter-counter:after, .cbp-l-filters-button .cbp-filter-counter:after, .cbp-l-filters-buttonCenter .cbp-filter-counter:after, .cbp-l-filters-text .cbp-filter-counter:after, .cbp, .cbp *, +.cbp *:after, .cbp:after, .cbp-l-filters-dropdownHeader:after, .cbp-popup-wrap, .cbp-popup-wrap *, .cbp-popup-wrap:before, .cbp-popup-loadingBox:after, .cbp-search *, .cbp-l-direction:after { + box-sizing: border-box; } + +.cbp-l-grid-agency-title, .cbp-l-grid-agency-desc, .cbp-l-grid-work-title, .cbp-l-grid-work-desc, .cbp-l-grid-blog-title, .cbp-l-grid-projects-title, .cbp-l-grid-projects-desc, .cbp-l-grid-masonry-projects-title, .cbp-l-grid-masonry-projects-desc { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + +.cbp-l-filters-alignCenter, .cbp-l-filters-alignCenter *, .cbp-l-filters-alignLeft, .cbp-l-filters-alignLeft *, .cbp-l-filters-alignRight, .cbp-l-filters-alignRight *, .cbp-l-filters-button, .cbp-l-filters-button *, .cbp-l-filters-buttonCenter, .cbp-l-filters-buttonCenter *, .cbp-l-filters-dropdown, .cbp-l-filters-dropdown *, .cbp-l-filters-list, .cbp-l-filters-list *, .cbp-l-filters-work, .cbp-l-filters-work *, .cbp-l-filters-big, .cbp-l-filters-big *, .cbp-l-filters-text, .cbp-l-filters-text *, .cbp-l-filters-underline, .cbp-l-filters-underline *, .cbp-l-filters-holder, .cbp-l-filters-holder *, .cbp-l-loadMore-bgbutton, .cbp-l-loadMore-bgbutton *, .cbp-l-loadMore-button, .cbp-l-loadMore-button *, .cbp-l-loadMore-text, .cbp-l-loadMore-text *, .cbp-search, .cbp-l-dropdown, .cbp-l-dropdown * { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent; + box-sizing: border-box; } + +.cbp:after, .cbp-lazyload:after, .cbp-popup-loadingBox:after, .cbp-popup-singlePageInline:after { + content: ''; + position: absolute; + width: 34px; + height: 34px; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + -webkit-animation: cbp-rotation .8s infinite linear; + animation: cbp-rotation .8s infinite linear; + border-left: 3px solid rgba(114, 144, 182, 0.15); + border-right: 3px solid rgba(114, 144, 182, 0.15); + border-bottom: 3px solid rgba(114, 144, 182, 0.15); + border-top: 3px solid rgba(114, 144, 182, 0.8); + border-radius: 100%; } + +.cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-alignRight .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-button .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-buttonCenter .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter { + opacity: 1; + -webkit-transform: translateY(-44px); + transform: translateY(-44px); } + +.cbp-l-filters-alignCenter .cbp-filter-counter, .cbp-l-filters-alignRight .cbp-filter-counter, .cbp-l-filters-button .cbp-filter-counter, .cbp-l-filters-buttonCenter .cbp-filter-counter, .cbp-l-filters-text .cbp-filter-counter { + font: 400 11px/18px "Open Sans", sans-serif; + border-radius: 3px; + color: #FFFFFF; + margin: 0 auto; + padding: 4px 0; + text-align: center; + width: 34px; + position: absolute; + bottom: 0; + left: 0; + right: 0; + opacity: 0; + -webkit-transition: -webkit-transform .25s, opacity .25s; + transition: transform .25s, opacity .25s; } + .cbp-l-filters-alignCenter .cbp-filter-counter:after, .cbp-l-filters-alignRight .cbp-filter-counter:after, .cbp-l-filters-button .cbp-filter-counter:after, .cbp-l-filters-buttonCenter .cbp-filter-counter:after, .cbp-l-filters-text .cbp-filter-counter:after { + content: ""; + position: absolute; + bottom: -4px; + left: 0; + right: 0; + margin: 0 auto; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; } + +/* --------------------------------------------------------------- + Default style for plugin. Please change them carefully! + --------------------------------------------------------------- */ +.cbp-item { + display: inline-block; + margin: 0 10px 20px 0; } + +.cbp { + position: relative; + margin: 0 auto; + z-index: 1; + height: 400px; } + .cbp > * { + visibility: hidden; } + .cbp .cbp-item { + list-style-type: none; + margin: 0; + padding: 0; + overflow: hidden; } + .cbp img { + display: block; + border: 0; + width: 100%; + height: auto; } + .cbp a, + .cbp a:hover, + .cbp a:active { + text-decoration: none; + outline: 0; } + +.cbp-lazyload { + position: relative; + background: #fff; + display: block; } + .cbp-lazyload img { + opacity: 1; } + .cbp-lazyload img[data-cbp-src] { + opacity: 0; } + .cbp-lazyload img:not([data-cbp-src]) { + -webkit-transition: opacity .7s ease-in-out; + transition: opacity .7s ease-in-out; } + .cbp-lazyload:after { + z-index: 0; } + +.cbp-wrapper-outer { + overflow: hidden; + position: relative; + margin: 0 auto; } + +.cbp-wrapper-outer, +.cbp-wrapper, +.cbp-wrapper-helper { + list-style-type: none; + padding: 0; + width: 100%; + height: 100%; + z-index: 1; } + +.cbp-wrapper, +.cbp-wrapper-helper { + margin: 0; } + +.cbp-ready > * { + visibility: visible; } + +.cbp-ready:after { + display: none; + visibility: hidden; } + +.cbp-ready .cbp-item { + position: absolute; + top: 0; + left: 0; } + +.cbp-ready .cbp-wrapper, +.cbp-ready .cbp-wrapper-helper { + position: absolute; + top: 0; + left: 0; } + +.cbp-item-off { + z-index: -1; + pointer-events: none; + visibility: hidden; } + +.cbp-item-on2off { + z-index: 0; } + +.cbp-item-off2on { + z-index: 1; } + +.cbp-item-on2on { + z-index: 2; } + +.cbp-item-wrapper { + width: 100%; + height: 100%; + position: relative; + top: 0; + left: 0; } + +.cbp-l-project-related-wrap img, +.cbp-l-inline img { + display: block; + width: 100%; + height: auto; + border: 0; } + +.cbp-updateItems { + -webkit-transition: height .5s ease-in-out !important; + transition: height .5s ease-in-out !important; + will-change: height; } + .cbp-updateItems .cbp-item { + -webkit-transition: top .5s ease-in-out, left .5s ease-in-out; + transition: top .5s ease-in-out, left .5s ease-in-out; } + .cbp-updateItems .cbp-item-loading { + -webkit-animation: fadeIn .5s ease-in-out; + animation: fadeIn .5s ease-in-out; + -webkit-transition: none; + transition: none; } + +.cbp-removeItem { + -webkit-animation: fadeOut .5s ease-in-out; + animation: fadeOut .5s ease-in-out; } + +/* END - Default style for plugin. Please change them carefully! */ +.cbp-panel { + width: 94%; + max-width: 1170px; + margin: 0 auto; } + +.cbp-misc-video { + position: relative; + height: 0; + padding-bottom: 56.25%; + background: #000; + text-align: center; } + +.cbp-misc-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +@-webkit-keyframes cbp-rotation { + 0% { + -webkit-transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); } } + +@keyframes cbp-rotation { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +@keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +.clearfix:after { + content: " "; + display: block; + height: 0; + clear: both; } + +.cbp-l-filters-left { + float: left; } + +.cbp-l-filters-right { + float: right; } + +.cbp-l-center { + display: flex; + justify-content: center; + align-items: center; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-left, + .cbp-l-filters-right { + width: 100%; } } + +@media only screen and (max-width: 800px) { + .cbp-l-center { + flex-direction: column; } } + +/* general caption style */ +.cbp-caption, +.cbp-caption-defaultWrap, +.cbp-caption-activeWrap { + display: block; } + +.cbp-caption-activeWrap { + background-color: #282727; } + +.cbp-caption-active .cbp-caption, +.cbp-caption-active .cbp-caption-defaultWrap, +.cbp-caption-active .cbp-caption-activeWrap { + overflow: hidden; + position: relative; + z-index: 1; } + +.cbp-caption-active .cbp-caption-defaultWrap { + top: 0; } + +.cbp-caption-active .cbp-caption-activeWrap { + width: 100%; + position: absolute; + z-index: 2; + height: 100%; } + +/* --------------------------------------------------------------- + caption miscellaneous style + --------------------------------------------------------------- */ +.cbp-l-caption-title { + color: #fff; + font: 400 16px/21px "Open Sans", sans-serif; } + +.cbp-l-caption-desc { + color: #aaa; + font: 400 12px/16px "Open Sans", sans-serif; } + +.cbp-l-caption-text { + font: 400 14px/21px "Open Sans", sans-serif; + color: #fff; + letter-spacing: 3px; + padding: 0 6px; } + +.cbp-l-caption-buttonLeft, +.cbp-l-caption-buttonRight { + background-color: #547EB1; + color: #FFFFFF; + display: inline-block; + font: 400 12px/30px "Open Sans", sans-serif; + min-width: 90px; + text-align: center; + margin: 4px; + padding: 0 6px; } + +.cbp-l-caption-buttonLeft:hover, +.cbp-l-caption-buttonRight:hover { + opacity: 0.9; } + +/* END - caption miscellaneous style */ +/* --------------------------------------------------------------- + none caption + --------------------------------------------------------------- */ +.cbp-caption-none .cbp-caption-activeWrap { + display: none; } + +/* END - none caption */ +/* --------------------------------------------------------------- + caption layout align left + --------------------------------------------------------------- */ +.cbp-l-caption-alignLeft .cbp-l-caption-body { + padding: 12px 30px; } + +.cbp-caption-fadeIn .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-minimal .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-moveRight .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-overlayRightAlong .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-pushDown .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-pushTop .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-revealBottom .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-revealLeft .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-revealTop .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-zoom .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-opacity .cbp-l-caption-alignLeft .cbp-l-caption-body { + padding-top: 30px; } + +/* END - caption layout left */ +/* --------------------------------------------------------------- + caption layout center vertically and horizontally + --------------------------------------------------------------- */ +.cbp-l-caption-alignCenter { + display: table; + width: 100%; + height: 100%; } + +.cbp-l-caption-alignCenter .cbp-l-caption-body { + display: table-cell; + vertical-align: middle; + text-align: center; + padding: 15px 0; } + +.cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + position: relative; + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft { + -webkit-transform: translateX(-20px); + transform: translateX(-20px); } + +.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight, +.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight, +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + -webkit-transform: translateX(20px); + transform: translateX(20px); } + +.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + -webkit-transform: translateX(0); + transform: translateX(0); } + +/* END - caption layout center vertically and horizontally */ +@media only screen and (max-width: 480px) { + .cbp-l-caption-alignLeft .cbp-l-caption-body { + padding: 9px 11px; } + .cbp-l-caption-title { + font-size: 14px; + line-height: 21px; } + .cbp-l-caption-desc { + font-size: 11px; + line-height: 14px; } + .cbp-l-caption-buttonLeft, + .cbp-l-caption-buttonRight { + font-size: 11px; + line-height: 28px; + min-width: 69px; + margin: 3px; + padding: 0 4px; } + .cbp-l-caption-text { + font-size: 13px; + letter-spacing: 1px; } } + +@media only screen and (max-width: 374px) { + .cbp-l-caption-alignLeft .cbp-l-caption-body { + padding: 8px 10px; } + .cbp-l-caption-title { + font-size: 13px; + line-height: 20px; } + .cbp-l-caption-desc { + font-size: 11px; + line-height: 14px; } + .cbp-l-caption-buttonLeft, + .cbp-l-caption-buttonRight { + font-size: 10px; + line-height: 28px; + min-width: 62px; + margin: 1px; + padding: 0 4px; } } + +.cbp-caption-fadeIn .cbp-caption-activeWrap { + opacity: 0; + top: 0; + background-color: rgba(0, 0, 0, 0.85); + -webkit-transition: opacity .5s; + transition: opacity .5s; } + +.cbp-caption-fadeIn .cbp-caption:hover .cbp-caption-activeWrap { + opacity: 1; } + +.cbp-caption-minimal .cbp-l-caption-title, +.cbp-caption-minimal .cbp-l-caption-desc { + position: relative; + left: 0; + opacity: 0; + -webkit-transition: -webkit-transform .35s ease-out; + transition: transform .35s ease-out; } + +.cbp-caption-minimal .cbp-l-caption-title { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.cbp-caption-minimal .cbp-l-caption-desc { + -webkit-transform: translateY(70%); + transform: translateY(70%); } + +.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-title, +.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-desc { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); } + +.cbp-caption-minimal .cbp-caption-activeWrap { + top: 0; + background-color: black; + background-color: rgba(0, 0, 0, 0.8); + opacity: 0; } + +.cbp-caption-minimal .cbp-caption:hover .cbp-caption-activeWrap { + opacity: 1; } + +.cbp-caption-moveRight .cbp-caption-activeWrap { + left: -100%; + top: 0; + -webkit-transition: -webkit-transform .35s; + transition: transform .35s; } + +.cbp-caption-moveRight .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateX(100%); + transform: translateX(100%); } + +.cbp-caption-overlayBottom .cbp-caption-activeWrap { + height: 60px; + background-color: #181616; + background-color: rgba(24, 22, 22, 0.7); + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottom .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + -webkit-transition-duration: .35s; + transition-duration: .35s; } + +.cbp-caption-overlayBottomAlong .cbp-caption-defaultWrap, +.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .35s; + transition: transform .35s; } + +.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap { + height: auto; } + +.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-34px); + transform: translateY(-34px); } + +.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-overlayBottomPush .cbp-caption-defaultWrap, +.cbp-caption-overlayBottomPush .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottomPush .cbp-caption-activeWrap { + height: 69px; + -webkit-transform: translateY(0); + transform: translateY(0); } + +.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-68px); + transform: translateY(-68px); } + +.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-69px); + transform: translateY(-69px); } + +.cbp-caption-overlayBottomReveal .cbp-caption-defaultWrap { + z-index: 2; + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottomReveal .cbp-caption-activeWrap { + bottom: 0; + z-index: 1; + height: auto; } + +.cbp-caption-overlayBottomReveal .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-68px); + transform: translateY(-68px); } + +.cbp-caption-overlayRightAlong .cbp-caption-defaultWrap, +.cbp-caption-overlayRightAlong .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-overlayRightAlong .cbp-caption-activeWrap { + top: 0; + left: -50%; + width: 50%; } + +.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateX(25%); + transform: translateX(25%); } + +.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateX(100%); + transform: translateX(100%); } + +.cbp-caption-pushDown .cbp-caption-defaultWrap, +.cbp-caption-pushDown .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-pushDown .cbp-caption-activeWrap { + top: -100%; } + +.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-defaultWrap, +.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(100%); + transform: translateY(100%); } + +.cbp-caption-pushTop .cbp-caption-activeWrap, +.cbp-caption-pushTop .cbp-caption-defaultWrap { + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-pushTop .cbp-caption-activeWrap { + height: 102%; } + +.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-99%); + transform: translateY(-99%); } + +.cbp-caption-revealBottom .cbp-caption-defaultWrap { + z-index: 2; + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-revealBottom .cbp-caption-activeWrap { + top: 0; + z-index: 1; } + +.cbp-caption-revealBottom .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-revealLeft .cbp-caption-activeWrap { + left: 100%; + top: 0; + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-revealLeft .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + +.cbp-caption-revealTop .cbp-caption-defaultWrap { + z-index: 2; + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-revealTop .cbp-caption-activeWrap { + top: 0; + z-index: 1; } + +.cbp-caption-revealTop .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(100%); + transform: translateY(100%); } + +.cbp-caption-zoom .cbp-caption-defaultWrap { + -webkit-transition: -webkit-transform .35s ease-out; + transition: transform .35s ease-out; } + +.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: scale(1.25); + transform: scale(1.25); } + +.cbp-caption-zoom .cbp-caption-activeWrap { + opacity: 0; + top: 0; + background-color: rgba(0, 0, 0, 0.9); + -webkit-transition: opacity .4s; + transition: opacity .4s; } + +.cbp-caption-zoom .cbp-caption:hover .cbp-caption-activeWrap { + opacity: 1; } + +.cbp-caption-opacity .cbp-item { + padding: 1px; } + +.cbp-caption-opacity .cbp-caption, +.cbp-caption-opacity .cbp-caption-activeWrap, +.cbp-caption-opacity .cbp-caption-defaultWrap { + background-color: transparent; } + +.cbp-caption-opacity .cbp-caption { + border: 1px solid transparent; } + +.cbp-caption-opacity .cbp-caption:hover { + border-color: #EDEDED; } + +.cbp-caption-opacity .cbp-caption-defaultWrap { + opacity: 1; + -webkit-transition: opacity .4s; + transition: opacity .4s; } + +.cbp-caption-opacity .cbp-caption:hover .cbp-caption-defaultWrap { + opacity: .8; } + +.cbp-caption-opacity .cbp-caption:hover .cbp-caption-activeWrap { + top: 0; } + +.cbp-caption-expand .cbp-caption { + border-bottom: 1px dotted #eaeaea; } + +.cbp-caption-expand .cbp-caption-activeWrap { + height: auto; + background-color: transparent; } + +.cbp-caption-expand .cbp-caption-defaultWrap { + cursor: pointer; + font: 500 15px/23px "Roboto", sans-serif; + color: #474747; + padding: 12px 0 11px 26px; } + +.cbp-caption-expand .cbp-caption-defaultWrap svg { + position: absolute; + top: 16px; + left: 0; } + +.cbp-caption-expand .cbp-l-caption-body { + font: 400 13px/21px "Roboto", sans-serif; + color: #888; + padding: 0 0 20px 26px; } + +.cbp-caption-expand-active { + -webkit-transition: height .4s !important; + transition: height .4s !important; } + +.cbp-caption-expand-active .cbp-item { + -webkit-transition: left .4s, top .4s !important; + transition: left .4s, top .4s !important; } + +.cbp-caption-expand-open .cbp-caption-activeWrap { + -webkit-transition: height .4s; + transition: height .4s; } + +.cbp-l-filters-alignCenter { + margin-bottom: 30px; + text-align: center; + font: 400 12px/21px sans-serif; + color: #DADADA; } + .cbp-l-filters-alignCenter .cbp-filter-item { + color: #949494; + cursor: pointer; + font: 400 13px/21px "Open Sans", sans-serif; + padding: 0 12px; + position: relative; + overflow: visible; + margin: 0 0 10px; + display: inline-block; + -webkit-transition: color .3s ease-in-out; + transition: color .3s ease-in-out; } + .cbp-l-filters-alignCenter .cbp-filter-item:hover { + color: #2D2C2C; } + .cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); } + .cbp-l-filters-alignCenter .cbp-filter-item.cbp-filter-item-active { + color: #2D2C2C; + cursor: default; } + .cbp-l-filters-alignCenter .cbp-filter-counter { + background-color: #626161; } + .cbp-l-filters-alignCenter .cbp-filter-counter:after { + border-top: 4px solid #626161; } + +.cbp-l-filters-alignLeft { + margin-bottom: 30px; } + .cbp-l-filters-alignLeft .cbp-filter-item { + background-color: #fff; + border: 1px solid #cdcdcd; + cursor: pointer; + font: 400 12px/30px "Open Sans", sans-serif; + padding: 0 13px; + position: relative; + overflow: visible; + margin: 0 4px 10px 4px; + display: inline-block; + color: #888888; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; } + .cbp-l-filters-alignLeft .cbp-filter-item:hover { + color: #111; } + .cbp-l-filters-alignLeft .cbp-filter-item.cbp-filter-item-active { + background-color: #6C7A89; + border: 1px solid #6C7A89; + color: #fff; + cursor: default; } + .cbp-l-filters-alignLeft .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-alignLeft .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-alignLeft .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-alignLeft { + text-align: center; } } + +.cbp-l-filters-alignRight { + margin-bottom: 30px; + text-align: right; } + .cbp-l-filters-alignRight .cbp-filter-item { + background-color: transparent; + color: #8B8B8B; + cursor: pointer; + font: 400 11px/31px "Open Sans", sans-serif; + padding: 0 14px; + position: relative; + overflow: visible; + margin: 0 3px 10px 3px; + border: 1px solid #E4E2E2; + text-transform: uppercase; + display: inline-block; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; } + .cbp-l-filters-alignRight .cbp-filter-item:hover { + color: #2B3444; } + .cbp-l-filters-alignRight .cbp-filter-item.cbp-filter-item-active { + color: #FFFFFF; + background-color: #049372; + border-color: #049372; + cursor: default; } + .cbp-l-filters-alignRight .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-alignRight .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-alignRight .cbp-filter-counter { + background-color: #049372; } + .cbp-l-filters-alignRight .cbp-filter-counter:after { + border-top: 4px solid #049372; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-alignRight { + text-align: center; } } + +.cbp-l-filters-button { + margin-bottom: 30px; } + .cbp-l-filters-button .cbp-filter-item { + background-color: #FFFFFF; + border: 1px solid #ECECEC; + color: #888888; + cursor: pointer; + font: 400 12px/32px "Open Sans", sans-serif; + margin: 0 5px 10px 5px; + overflow: visible; + padding: 0 17px; + position: relative; + display: inline-block; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out; } + .cbp-l-filters-button .cbp-filter-item:hover { + color: #545454; + border-color: #DADADA; } + .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active { + background-color: #545454; + color: #fff; + border-color: #5d5d5d; + cursor: default; } + .cbp-l-filters-button .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-button .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-button .cbp-filter-counter { + background-color: #545454; } + .cbp-l-filters-button .cbp-filter-counter:after { + border-top: 4px solid #545454; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-button { + text-align: center; } } + +.cbp-l-filters-buttonCenter { + margin-bottom: 30px; + text-align: center; } + .cbp-l-filters-buttonCenter .cbp-filter-item { + background-color: #FFFFFF; + border: 1px solid #ECECEC; + color: #888888; + cursor: pointer; + font: 400 12px/32px "Roboto", sans-serif; + margin: 0 5px 10px 5px; + overflow: visible; + padding: 0 17px; + position: relative; + display: inline-block; + -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out; + transition: color .3s ease-in-out, border-color .3s ease-in-out; } + .cbp-l-filters-buttonCenter .cbp-filter-item:hover { + color: #5d5d5d; } + .cbp-l-filters-buttonCenter .cbp-filter-item.cbp-filter-item-active { + color: #3B9CB3; + border-color: #8CD2E5; + cursor: default; } + .cbp-l-filters-buttonCenter .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-buttonCenter .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-buttonCenter .cbp-filter-counter { + background-color: #68ABBC; } + .cbp-l-filters-buttonCenter .cbp-filter-counter:after { + border-top: 4px solid #68ABBC; } + +.cbp-l-filters-dropdown { + margin-bottom: 40px; + height: 38px; + position: relative; + z-index: 5; } + +.cbp-l-filters-dropdownWrap { + width: 200px; + position: absolute; + right: 0; + background: #4d4c4d; } + +.cbp-l-filters-dropdownHeader { + font: 400 12px/38px "Open Sans", sans-serif; + margin: 0 17px; + color: #FFF; + cursor: default; + position: relative; } + +.cbp-l-filters-dropdownHeader:after { + border-color: #FFFFFF rgba(0, 0, 0, 0); + border-style: solid; + border-width: 5px 5px 0; + content: ""; + height: 0; + position: absolute; + right: 0; + top: 50%; + width: 0; + margin-top: -1px; } + +.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownHeader:after { + border-width: 0 5px 5px; } + +.cbp-l-filters-dropdownList { + display: none; + list-style: none outside none; + margin: 0; + padding: 0; } + +.cbp-l-filters-dropdownList > li { + margin: 0; + list-style: none; } + +.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownList { + display: block; + margin: 0; } + +.cbp-l-filters-dropdownList .cbp-filter-item { + background: transparent; + color: #b3b3b3; + width: 100%; + text-align: left; + font: 400 12px/40px "Open Sans", sans-serif; + margin: 0; + padding: 0 17px; + cursor: pointer; + border: none; + border-top: 1px solid #595959; } + +.cbp-l-filters-dropdownList .cbp-filter-item:hover { + color: #e6e6e6; } + +.cbp-l-filters-dropdownList .cbp-filter-item-active { + color: #fff; + cursor: default; } + +.cbp-l-filters-dropdownWrap .cbp-filter-counter { + display: inline; } + +.cbp-l-filters-dropdown-floated { + float: right; + margin-top: -2px; + margin-left: 20px; + width: 200px; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-dropdown-floated { + width: 100%; + margin-top: 0; + margin-left: 0; } + .cbp-l-filters-dropdownWrap { + right: 0; + left: 0; + margin: 0 auto; } } + +.cbp-l-filters-list { + margin-bottom: 30px; + /* clearfix */ + content: ""; + display: table; + clear: both; } + +.cbp-l-filters-list .cbp-filter-item { + background-color: transparent; + color: #585252; + cursor: pointer; + font: 400 12px/35px "Open Sans", sans-serif; + padding: 0 18px; + position: relative; + overflow: visible; + margin: 0 0 10px; + float: left; + border: 1px solid #3288C4; + border-right-width: 0; + -webkit-transition: left .3s ease-in-out; + transition: left .3s ease-in-out; } + +.cbp-l-filters-list .cbp-filter-item:hover { + color: #000; } + +.cbp-l-filters-list .cbp-filter-item.cbp-filter-item-active { + cursor: default; + color: #FFFFFF; + background-color: #3288C4; } + +.cbp-l-filters-list-first { + border-radius: 6px 0 0 6px; } + +.cbp-l-filters-list-last { + border-radius: 0 6px 6px 0; + border-right-width: 1px !important; } + +.cbp-l-filters-list .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 600px) { + .cbp-l-filters-list .cbp-filter-item { + margin-right: 5px; + border-radius: 6px; + border-right-width: 1px; } } + +.cbp-l-filters-work { + margin-bottom: 30px; + text-align: center; } + .cbp-l-filters-work .cbp-filter-item { + background-color: #FFFFFF; + color: #888; + cursor: pointer; + font: 600 11px/37px "Open Sans", sans-serif; + margin: 0 3px 15px 3px; + overflow: visible; + padding: 0 16px; + position: relative; + display: inline-block; + text-transform: uppercase; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out; } + .cbp-l-filters-work .cbp-filter-item:hover { + color: #fff; + background: #607D8B; } + .cbp-l-filters-work .cbp-filter-item.cbp-filter-item-active { + background-color: #607D8B; + color: #fff; + cursor: default; } + .cbp-l-filters-work .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-work .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-work .cbp-filter-counter { + font: 600 11px/37px "Open Sans", sans-serif; + text-align: center; + display: inline-block; + margin-left: 8px; } + .cbp-l-filters-work .cbp-filter-counter:before { + content: '('; } + .cbp-l-filters-work .cbp-filter-counter:after { + content: ')'; } + +.cbp-l-filters-big { + margin-bottom: 30px; + text-align: center; } + .cbp-l-filters-big .cbp-filter-item { + color: #444; + cursor: pointer; + font: 400 15px/22px "Roboto", sans-serif; + margin: 0 8px 10px 8px; + padding: 10px 23px; + position: relative; + display: inline-block; + border: 1px solid transparent; + text-transform: uppercase; + -webkit-transition: color .3s ease-in-out, border .3s ease-in-out; + transition: color .3s ease-in-out, border .3s ease-in-out; } + .cbp-l-filters-big .cbp-filter-item:hover { + color: #888; } + .cbp-l-filters-big .cbp-filter-item.cbp-filter-item-active { + border-color: #d5d5d5; + color: #444; + cursor: default; } + .cbp-l-filters-big .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-big .cbp-filter-item:last-child { + margin-right: 0; } + +.cbp-l-filters-text { + margin-bottom: 30px; + text-align: center; + font: 400 12px/36px "Lato", sans-serif; + color: #DADADA; + padding: 0 15px; } + .cbp-l-filters-text .cbp-filter-item { + color: #949494; + cursor: pointer; + font: 400 13px/21px "Lato", sans-serif; + padding: 0 12px; + position: relative; + overflow: visible; + margin: 0 0 10px; + display: inline-block; + -webkit-transition: color .3s ease-in-out; + transition: color .3s ease-in-out; } + .cbp-l-filters-text .cbp-filter-item:hover { + color: #2D2C2C; } + .cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); } + .cbp-l-filters-text .cbp-filter-item.cbp-filter-item-active { + color: #2D2C2C; + cursor: default; } + .cbp-l-filters-text .cbp-filter-counter { + background-color: #626161; + font: 400 11px/18px "Lato", sans-serif; } + .cbp-l-filters-text .cbp-filter-counter:after { + border-top: 4px solid #626161; } + +.cbp-l-filters-text-sort { + display: inline-block; + font: 400 13px/21px "Lato", sans-serif; + color: #949494; + margin-right: 15px; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-text-sort { + display: block; + margin-bottom: 10px; } } + +.cbp-l-filters-underline { + margin-bottom: 30px; } + .cbp-l-filters-underline .cbp-filter-item { + border-bottom: 3px solid transparent; + cursor: pointer; + font: 600 14px/21px "Open Sans", sans-serif; + padding: 8px 10px; + position: relative; + overflow: visible; + margin: 0 10px 10px 10px; + display: inline-block; + color: #787878; + -webkit-transition: color .25s ease-in-out, border-color .25s ease-in-out; + transition: color .25s ease-in-out, border-color .25s ease-in-out; } + .cbp-l-filters-underline .cbp-filter-item:hover { + color: #111; } + .cbp-l-filters-underline .cbp-filter-item.cbp-filter-item-active { + border-bottom-color: #666; + color: #444; + cursor: default; } + .cbp-l-filters-underline .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-underline .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-underline .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-underline { + text-align: center; } } + +.cbp-l-filters-holder { + text-align: center; } + .cbp-l-filters-holder .cbp-filter-item { + cursor: pointer; + font: 600 16px/21px "Open Sans", sans-serif; + padding: 8px 10px; + position: relative; + overflow: visible; + margin: 0 10px 10px 10px; + display: inline-block; + color: #555; + -webkit-transition: color .25s ease-in-out; + transition: color .25s ease-in-out; + letter-spacing: 0.3px; } + .cbp-l-filters-holder .cbp-filter-item:hover { + color: #d8b345; } + .cbp-l-filters-holder .cbp-filter-item.cbp-filter-item-active { + color: #d8b345; + cursor: default; } + .cbp-l-filters-holder .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-holder .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-holder .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-holder { + text-align: center; } } + +.cbp-l-subfilters { + display: none; + opacity: 0; + margin-bottom: 40px; + text-align: center; } + .cbp-l-subfilters .cbp-filter-item { + position: relative; + font: 13px "Open Sans", sans-serif; + display: inline-block; + color: #9e9e9e; + margin: 0 15px; + cursor: pointer; + margin: 0 10px 10px 10px; + letter-spacing: 0.3px; } + .cbp-l-subfilters .cbp-filter-item:hover { + color: #555; } + .cbp-l-subfilters .cbp-filter-item:after { + content: ''; + background-color: #dfb947; + width: 0; + height: 2px; + position: absolute; + left: 50%; + bottom: -6px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + -webkit-transition: width .3s; + transition: width .3s; } + .cbp-l-subfilters .cbp-filter-item-active { + color: #555; } + .cbp-l-subfilters .cbp-filter-item-active:after { + width: 100%; } + +.cbp-l-subfilters--active { + display: block; + -webkit-animation: fadeIn .5s ease both; + animation: fadeIn .5s ease both; } + +.cbp-animation-quicksand { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-quicksand .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-quicksand .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-quicksand .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-quicksand .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: quicksand-off .6s ease-out both; + animation: quicksand-off .6s ease-out both; } + +.cbp-animation-quicksand .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: quicksand-on .6s ease-out both; + animation: quicksand-on .6s ease-out both; } + +/* in */ +@-webkit-keyframes quicksand-off { + 100% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0); } } + +@keyframes quicksand-off { + 100% { + opacity: 0; + transform: scale3d(0, 0, 0); } } + +/* out */ +@-webkit-keyframes quicksand-on { + 0% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0); } } + +@keyframes quicksand-on { + 0% { + opacity: 0; + transform: scale3d(0, 0, 0); } } + +.cbp-animation-fadeOut, +.cbp-animation-boxShadow { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-fadeOut .cbp-item, +.cbp-animation-boxShadow .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-fadeOut .cbp-item, +.cbp-animation-boxShadow .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-fadeOut .cbp-item-wrapper, +.cbp-animation-boxShadow .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-fadeOut .cbp-item-on2off .cbp-item-wrapper, +.cbp-animation-boxShadow .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: fadeOut-off .6s ease-in-out both; + animation: fadeOut-off .6s ease-in-out both; } + +.cbp-animation-fadeOut .cbp-item-off2on .cbp-item-wrapper, +.cbp-animation-boxShadow .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: fadeOut-on .6s ease-in-out both; + animation: fadeOut-on .6s ease-in-out both; } + +/* in */ +@-webkit-keyframes fadeOut-off { + 0% { + opacity: 1; } + 80%, 100% { + opacity: 0; } } + +@keyframes fadeOut-off { + 0% { + opacity: 1; } + 80%, 100% { + opacity: 0; } } + +/* out */ +@-webkit-keyframes fadeOut-on { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@keyframes fadeOut-on { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +.cbp-animation-flipOut { + -webkit-transition: height .7s ease-in-out; + transition: height .7s ease-in-out; + will-change: height; } + +.cbp-animation-flipOut .cbp-item { + -webkit-transition: -webkit-transform .7s ease-in-out; + transition: transform .7s ease-in-out; } + +.cbp-animation-flipOut .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-flipOut .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-flipOut .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: flipOut-out .7s both ease-in; + animation: flipOut-out .7s both ease-in; } + +.cbp-animation-flipOut .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: flipOut-in .7s ease-out both; + animation: flipOut-in .7s ease-out both; } + +/* out */ +@-webkit-keyframes flipOut-out { + 50%, 100% { + -webkit-transform: translateZ(-1000px) rotateY(-90deg); + opacity: 0.2; } } + +@keyframes flipOut-out { + 50%, 100% { + transform: translateZ(-1000px) rotateY(-90deg); + opacity: 0.2; } } + +/* in */ +@-webkit-keyframes flipOut-in { + 0%, 50% { + -webkit-transform: translateZ(-1000px) rotateY(90deg); + opacity: 0.2; } } + +@keyframes flipOut-in { + 0%, 50% { + transform: translateZ(-1000px) rotateY(90deg); + opacity: 0.2; } } + +.cbp-animation-flipBottom { + -webkit-transition: height .7s ease-in-out; + transition: height .7s ease-in-out; + will-change: height; } + +.cbp-animation-flipBottom .cbp-item { + -webkit-transition: -webkit-transform .7s ease-in-out; + transition: transform .7s ease-in-out; } + +.cbp-animation-flipBottom .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-flipBottom .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-flipBottom .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: flipBottom-out .7s both ease-in; + animation: flipBottom-out .7s both ease-in; } + +.cbp-animation-flipBottom .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: flipBottom-in .7s ease-out both; + animation: flipBottom-in .7s ease-out both; } + +/* out */ +@-webkit-keyframes flipBottom-out { + 50%, 100% { + -webkit-transform: translateZ(-1000px) rotateX(-90deg); + opacity: 0.2; } } + +@keyframes flipBottom-out { + 50%, 100% { + transform: translateZ(-1000px) rotateX(-90deg); + opacity: 0.2; } } + +/* in */ +@-webkit-keyframes flipBottom-in { + 0%, 50% { + -webkit-transform: translateZ(-1000px) rotateX(90deg); + opacity: 0.2; } } + +@keyframes flipBottom-in { + 0%, 50% { + transform: translateZ(-1000px) rotateX(90deg); + opacity: 0.2; } } + +.cbp-animation-scaleSides { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-scaleSides .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-scaleSides .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-scaleSides .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-scaleSides .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: scaleSides-out .9s both; + animation: scaleSides-out .9s both; } + +.cbp-animation-scaleSides .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: scaleSides-in .9s both; + animation: scaleSides-in .9s both; } + +/* out */ +@-webkit-keyframes scaleSides-out { + 50%, 100% { + -webkit-transform: scale(0.6); + opacity: 0; } } + +@keyframes scaleSides-out { + 50%, 100% { + transform: scale(0.6); + opacity: 0; } } + +/* in */ +@-webkit-keyframes scaleSides-in { + 0%, 50% { + -webkit-transform: scale(0.6); + opacity: 0; } } + +@keyframes scaleSides-in { + 0%, 50% { + transform: scale(0.6); + opacity: 0; } } + +.cbp-animation-skew { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-skew .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-skew .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-skew .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-skew .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: skew-off .6s ease-out both; + animation: skew-off .6s ease-out both; } + +.cbp-animation-skew .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: skew-on .6s ease-out both; + animation: skew-on .6s ease-out both; } + +/* in */ +@-webkit-keyframes skew-off { + 100% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0) skew(20deg, 0); } } + +@keyframes skew-off { + 100% { + opacity: 0; + transform: scale3d(0, 0, 0) skew(20deg, 0); } } + +/* out */ +@-webkit-keyframes skew-on { + 0% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0) skew(0, 20deg); } } + +@keyframes skew-on { + 0% { + opacity: 0; + transform: scale3d(0, 0, 0) skew(0, 20deg); } } + +.cbp-animation-fadeOutTop { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-fadeOutTop .cbp-wrapper-outer { + overflow: visible; } + +.cbp-animation-fadeOutTop .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; + overflow: visible; } + +.cbp-animation-fadeOutTop .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-fadeOutTop .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-out .6s both ease-in-out; + animation: fadeOutTop-out .6s both ease-in-out; } + +.cbp-animation-fadeOutTop .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-in .6s both ease-in-out; + animation: fadeOutTop-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes fadeOutTop-out { + 0% { + -webkit-transform: translateY(0); + opacity: 1; } + 50%, 100% { + -webkit-transform: translateY(-30px); + opacity: 0; } } + +@keyframes fadeOutTop-out { + 0% { + transform: translateY(0); + opacity: 1; } + 50%, 100% { + transform: translateY(-30px); + opacity: 0; } } + +/* out */ +@-webkit-keyframes fadeOutTop-in { + 0%, 50% { + -webkit-transform: translateY(-30px); + opacity: 0; } + 100% { + -webkit-transform: translateY(0); + opacity: 1; } } + +@keyframes fadeOutTop-in { + 0%, 50% { + transform: translateY(-30px); + opacity: 0; } + 100% { + transform: translateY(0); + opacity: 1; } } + +.cbp-animation-slideLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-slideLeft .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-slideLeft .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-slideLeft .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: slideLeft-out .8s both ease-in-out; + animation: slideLeft-out .8s both ease-in-out; } + +.cbp-animation-slideLeft .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: slideLeft-in .8s both ease-in-out; + animation: slideLeft-in .8s both ease-in-out; } + +/* out */ +@-webkit-keyframes slideLeft-out { + 0% { + opacity: 1; + transform: scale(1); } + 25% { + opacity: .75; + -webkit-transform: scale(0.8); } + 75% { + opacity: .75; + -webkit-transform: scale(0.8) translateX(-200%); } + 100% { + opacity: .75; + -webkit-transform: scale(0.8) translateX(-200%); } } + +@keyframes slideLeft-out { + 0% { + opacity: 1; + transform: scale(1); } + 25% { + opacity: .75; + transform: scale(0.8); } + 75% { + opacity: .75; + transform: scale(0.8) translateX(-200%); } + 100% { + opacity: .75; + transform: scale(0.8) translateX(-200%); } } + +/* in */ +@-webkit-keyframes slideLeft-in { + 0%, 25% { + opacity: .75; + -webkit-transform: scale(0.8) translateX(200%); } + 75% { + opacity: .75; + -webkit-transform: scale(0.8); } + 100% { + opacity: 1; + -webkit-transform: scale(1) translateX(0); } } + +@keyframes slideLeft-in { + 0%, 25% { + opacity: .75; + transform: scale(0.8) translateX(200%); } + 75% { + opacity: .75; + transform: scale(0.8); } + 100% { + opacity: 1; + transform: scale(1) translateX(0); } } + +.cbp-animation-sequentially { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-sequentially .cbp-wrapper-outer { + overflow: visible; } + +.cbp-animation-sequentially .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; + overflow: visible; } + +.cbp-animation-sequentially .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-sequentially .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-out .6s both ease; + animation: fadeOutTop-out .6s both ease; } + +.cbp-animation-sequentially .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-in .6s both ease-out; + animation: fadeOutTop-in .6s both ease-out; } + +.cbp-animation-3dflip { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-3dflip .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-3dflip .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-3dflip .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; + -webkit-animation: flip-out 0.6s both ease-in-out; + animation: flip-out 0.6s both ease-in-out; } + +.cbp-animation-3dflip .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-animation: flip-in 0.6s both ease-in-out; + animation: flip-in 0.6s both ease-in-out; } + +@-webkit-keyframes flip-out { + 100% { + opacity: 0; + -webkit-transform: rotateY(90deg); } } + +@keyframes flip-out { + 100% { + opacity: 0; + transform: rotateY(90deg); } } + +@-webkit-keyframes flip-in { + 0% { + opacity: 0; + -webkit-transform: rotateY(-90deg); } + 100% { + opacity: 1; + -webkit-transform: rotateY(0deg); } } + +@keyframes flip-in { + 0% { + opacity: 0; + transform: rotateY(-90deg); } + 100% { + opacity: 1; + transform: rotateY(0deg); } } + +.cbp-animation-flipOutDelay { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-flipOutDelay .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-flipOutDelay .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-flipOutDelay .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: flipOut-out 1s both ease-in; + animation: flipOut-out 1s both ease-in; } + +.cbp-animation-flipOutDelay .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: flipOut-in 1s both ease-out; + animation: flipOut-in 1s both ease-out; } + +.cbp-animation-slideDelay { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-slideDelay .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-slideDelay .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-slideDelay .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: slideDelay-out 0.5s both ease-in-out; + animation: slideDelay-out 0.5s both ease-in-out; } + +.cbp-animation-slideDelay .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: slideDelay-in 0.5s both ease-in-out; + animation: slideDelay-in 0.5s both ease-in-out; } + +/* out */ +@-webkit-keyframes slideDelay-out { + 100% { + -webkit-transform: translateX(-100%); } } + +@keyframes slideDelay-out { + 100% { + transform: translateX(-100%); } } + +@-webkit-keyframes slideDelay-in { + 0% { + -webkit-transform: translateX(100%); } + 100% { + -webkit-transform: translateX(0); } } + +@keyframes slideDelay-in { + 0% { + transform: translateX(100%); } + 100% { + transform: translateX(0); } } + +.cbp-animation-rotateSides { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-rotateSides .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-rotateSides .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-rotateSides .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: -50% 50%; + -webkit-animation: rotateSides-out .5s both ease-in; + transform-origin: -50% 50%; + animation: rotateSides-out .5s both ease-in; } + +.cbp-animation-rotateSides .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 150% 50%; + -webkit-animation: rotateSides-in .6s both ease-out; + transform-origin: 150% 50%; + animation: rotateSides-in .6s both ease-out; } + +/* out */ +@-webkit-keyframes rotateSides-out { + 100% { + opacity: 0; + -webkit-transform: translateZ(-500px) rotateY(90deg); } } + +@keyframes rotateSides-out { + 100% { + opacity: 0; + transform: translateZ(-500px) rotateY(90deg); } } + +/* in */ +@-webkit-keyframes rotateSides-in { + 0% { + opacity: 0; + -webkit-transform: translateZ(-500px) rotateY(-90deg); } + 40% { + opacity: 0; + -webkit-transform: translateZ(-500px) rotateY(-90deg); } } + +@keyframes rotateSides-in { + 0% { + opacity: 0; + transform: translateZ(-500px) rotateY(-90deg); } + 40% { + opacity: 0; + transform: translateZ(-500px) rotateY(-90deg); } } + +.cbp-animation-foldLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-foldLeft .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-foldLeft .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-foldLeft .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-animation: foldLeft-out .7s both; + animation: foldLeft-out .7s both; } + +.cbp-animation-foldLeft .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: foldLeft-in .7s both; + animation: foldLeft-in .7s both; } + +/* out */ +@-webkit-keyframes foldLeft-out { + 100% { + opacity: 0; + -webkit-transform: translateX(-100%) rotateY(-90deg); } } + +@keyframes foldLeft-out { + 100% { + opacity: 0; + transform: translateX(-100%) rotateY(-90deg); } } + +/* in */ +@-webkit-keyframes foldLeft-in { + 0% { + opacity: 0.3; + -webkit-transform: translateX(100%); } } + +@keyframes foldLeft-in { + 0% { + opacity: 0.3; + transform: translateX(100%); } } + +.cbp-animation-unfold { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-unfold .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-unfold .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-unfold .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: unfold-out .8s both; + animation: unfold-out .8s both; } + +.cbp-animation-unfold .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 0% 50%; + -webkit-animation: unfold-in .8s both; + transform-origin: 0% 50%; + animation: unfold-in .8s both; } + +/* out */ +@-webkit-keyframes unfold-out { + 90% { + opacity: 0.3; } + 100% { + opacity: 0; + -webkit-transform: translateX(-100%); } } + +@keyframes unfold-out { + 90% { + opacity: 0.3; } + 100% { + opacity: 0; + transform: translateX(-100%); } } + +/* in */ +@-webkit-keyframes unfold-in { + 0% { + opacity: 0; + -webkit-transform: translateX(100%) rotateY(90deg); } } + +@keyframes unfold-in { + 0% { + opacity: 0; + transform: translateX(100%) rotateY(90deg); } } + +.cbp-animation-scaleDown { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-scaleDown .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-scaleDown .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-scaleDown .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: scaleDown-out .7s both; + animation: scaleDown-out .7s both; } + +.cbp-animation-scaleDown .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: scaleDown-in .6s both; + animation: scaleDown-in .6s both; } + +/* out */ +@-webkit-keyframes scaleDown-out { + 100% { + opacity: 0; + -webkit-transform: scale(0.8); } } + +@keyframes scaleDown-out { + 100% { + opacity: 0; + transform: scale(0.8); } } + +/* in */ +@-webkit-keyframes scaleDown-in { + 0% { + -webkit-transform: translateX(100%); } } + +@keyframes scaleDown-in { + 0% { + transform: translateX(100%); } } + +.cbp-animation-frontRow { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-frontRow .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-frontRow .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-frontRow .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: frontRow-out .7s both ease; + animation: frontRow-out .7s both ease; } + +.cbp-animation-frontRow .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: frontRow-in .6s both ease; + animation: frontRow-in .6s both ease; } + +/* out */ +@-webkit-keyframes frontRow-out { + 100% { + -webkit-transform: translateX(-60%) scale(0.8); + opacity: 0; } } + +@keyframes frontRow-out { + 100% { + transform: translateX(-60%) scale(0.8); + opacity: 0; } } + +/* in */ +@-webkit-keyframes frontRow-in { + 0% { + -webkit-transform: translateX(100%) scale(0.8); } + 100% { + opacity: 1; + -webkit-transform: translateX(0%) scale(1); } } + +@keyframes frontRow-in { + 0% { + transform: translateX(100%) scale(0.8); } + 100% { + opacity: 1; + transform: translateX(0%) scale(1); } } + +.cbp-animation-rotateRoom { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-rotateRoom .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-rotateRoom .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-rotateRoom .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-animation: rotateRoom-out .8s both ease; + animation: rotateRoom-out .8s both ease; } + +.cbp-animation-rotateRoom .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; + -webkit-animation: rotateRoom-in .8s both ease; + animation: rotateRoom-in .8s both ease; } + +/* out */ +@-webkit-keyframes rotateRoom-out { + 90% { + opacity: .3; } + 100% { + opacity: 0; + -webkit-transform: translateX(-100%) rotateY(90deg); } } + +@keyframes rotateRoom-out { + 90% { + opacity: .3; } + 100% { + opacity: 0; + transform: translateX(-100%) rotateY(90deg); } } + +/* in */ +@-webkit-keyframes rotateRoom-in { + 0% { + opacity: .3; + -webkit-transform: translateX(100%) rotateY(-90deg); } } + +@keyframes rotateRoom-in { + 0% { + opacity: .3; + transform: translateX(100%) rotateY(-90deg); } } + +.cbp-animation-bounceBottom { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-bounceBottom .cbp-wrapper-helper { + -webkit-animation: bounceBottom-out .6s both ease-in-out; + animation: bounceBottom-out .6s both ease-in-out; } + +.cbp-animation-bounceBottom .cbp-wrapper { + -webkit-animation: bounceBottom-in .6s both ease-in-out; + animation: bounceBottom-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes bounceBottom-out { + 100% { + -webkit-transform: translateY(100%); + opacity: 0; } } + +@keyframes bounceBottom-out { + 100% { + transform: translateY(100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes bounceBottom-in { + 0% { + -webkit-transform: translateY(100%); + opacity: 0; } + 100% { + -webkit-transform: translateY(0); + opacity: 1; } } + +@keyframes bounceBottom-in { + 0% { + transform: translateY(100%); + opacity: 0; } + 100% { + transform: translateY(0); + opacity: 1; } } + +.cbp-animation-bounceLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-bounceLeft .cbp-wrapper-helper { + -webkit-animation: bounceLeft-out .6s both ease-in-out; + animation: bounceLeft-out .6s both ease-in-out; } + +.cbp-animation-bounceLeft .cbp-wrapper { + -webkit-animation: bounceLeft-in .6s both ease-in-out; + animation: bounceLeft-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes bounceLeft-out { + 100% { + -webkit-transform: translateX(-100%); + opacity: 0; } } + +@keyframes bounceLeft-out { + 100% { + transform: translateX(-100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes bounceLeft-in { + 0% { + -webkit-transform: translateX(-100%); + opacity: 0; } + 100% { + -webkit-transform: translateX(0); + opacity: 1; } } + +@keyframes bounceLeft-in { + 0% { + transform: translateX(-100%); + opacity: 0; } + 100% { + transform: translateX(0); + opacity: 1; } } + +.cbp-animation-bounceTop { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-bounceTop .cbp-wrapper-helper { + -webkit-animation: bounceTop-out .6s both ease-in-out; + animation: bounceTop-out .6s both ease-in-out; } + +.cbp-animation-bounceTop .cbp-wrapper { + -webkit-animation: bounceTop-in .6s both ease-in-out; + animation: bounceTop-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes bounceTop-out { + 100% { + -webkit-transform: translateY(-100%); + opacity: 0; } } + +@keyframes bounceTop-out { + 100% { + transform: translateY(-100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes bounceTop-in { + 0% { + -webkit-transform: translateY(-100%); + opacity: 0; } + 100% { + -webkit-transform: translateY(0); + opacity: 1; } } + +@keyframes bounceTop-in { + 0% { + transform: translateY(-100%); + opacity: 0; } + 100% { + transform: translateY(0); + opacity: 1; } } + +.cbp-animation-moveLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-moveLeft .cbp-wrapper-helper { + -webkit-animation: moveLeft-out .6s both ease-in-out; + animation: moveLeft-out .6s both ease-in-out; } + +.cbp-animation-moveLeft .cbp-wrapper { + -webkit-animation: moveLeft-in .6s both ease-in-out; + animation: moveLeft-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes moveLeft-out { + 100% { + -webkit-transform: translateX(-100%); + opacity: 0; } } + +@keyframes moveLeft-out { + 100% { + transform: translateX(-100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes moveLeft-in { + 0% { + -webkit-transform: translateX(100%); + opacity: 0; } + 100% { + -webkit-transform: translateX(0); + opacity: 1; } } + +@keyframes moveLeft-in { + 0% { + transform: translateX(100%); + opacity: 0; } + 100% { + transform: translateX(0); + opacity: 1; } } + +.cbp-displayType-bottomToTop { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-displayType-bottomToTop .cbp-item { + -webkit-animation: fadeInBottomToTop .3s both ease-in; + animation: fadeInBottomToTop .3s both ease-in; } + +@-webkit-keyframes fadeInBottomToTop { + 0% { + opacity: 0; + -webkit-transform: translateY(50px); } + 100% { + opacity: 1; + -webkit-transform: translateY(0); } } + +@keyframes fadeInBottomToTop { + 0% { + opacity: 0; + transform: translateY(50px); } + 100% { + opacity: 1; + transform: translateY(0); } } + +.cbp-displayType-fadeIn { + -webkit-animation: fadeIn .5s both ease-in; + animation: fadeIn .5s both ease-in; } + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@keyframes fadeIn { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +.cbp-displayType-fadeInToTop { + -webkit-perspective: 1000px; + perspective: 1000px; + -webkit-animation: fadeInToTop .5s both ease-in; + animation: fadeInToTop .5s both ease-in; } + +@-webkit-keyframes fadeInToTop { + 0% { + opacity: 0; + -webkit-transform: translateY(30px); } + 100% { + opacity: 1; + -webkit-transform: translateY(0); } } + +@keyframes fadeInToTop { + 0% { + opacity: 0; + transform: translateY(30px); } + 100% { + opacity: 1; + transform: translateY(0); } } + +.cbp-displayType-sequentially .cbp-item { + -webkit-animation: fadeIn .5s both ease-in; + animation: fadeIn .5s both ease-in; } + +.cbp-lightbox img { + display: block; + border: 0; + width: 100%; + height: auto; } + +.cbp-popup-ie8bg { + position: absolute; + width: 100%; + height: 100%; + min-height: 100%; + top: 0; + left: 0; + z-index: -1; + background: #000; } + +.cbp-popup-wrap { + height: 100%; + text-align: center; + position: fixed; + width: 100%; + left: 0; + top: 0; + display: none; + z-index: 99990; + padding: 0 10px; } + .cbp-popup-wrap video { + outline: 0 none; } + +.cbp-popup-lightbox { + background: rgba(0, 0, 0, 0.8); + display: flex; + justify-content: center; + align-items: center; } + +.cbp-popup-singlePage { + background: white; + padding: 0; } + +.cbp-popup-wrap:before { + content: ""; + display: inline-block; + height: 100%; + vertical-align: middle; } + +.cbp-popup-content-wrap { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow-y: hidden; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; } + +.cbp-popup-content { + position: relative; + display: inline-block; + vertical-align: middle; + text-align: left; + max-width: 100%; } + +.cbp-popup-lightbox .cbp-popup-content { + display: flex; } + +.cbp-popup-singlePage .cbp-popup-content { + position: relative; + z-index: 1; + margin-top: 145px; + max-width: 1024px; + vertical-align: top; + width: 94%; } + +.cbp-popup-singlePage .cbp-popup-content-basic { + position: relative; + z-index: 1; + margin-top: 104px; + vertical-align: top; + width: 100%; + display: inline-block; + text-align: left; } + +.cbp-popup-lightbox-figure { + width: 100%; + position: relative; + padding: 20px 0; } + +.cbp-popup-lightbox-bottom { + position: relative; + margin-top: 3px; } + +.cbp-popup-lightbox-title { + padding-right: 50px; + font: 400 12px/18px "Open Sans", sans-serif; + color: #eee; } + +.cbp-popup-lightbox-counter { + position: absolute; + top: 0; + right: 0; + font: 400 12px/18px "Open Sans", sans-serif; + color: #eee; } + +.cbp-popup-lightbox-img { + width: auto; + max-width: 100%; + height: auto; + display: block; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); } + +.cbp-popup-lightbox-img[data-action] { + cursor: pointer; } + +.cbp-popup-lightbox-isIframe .cbp-popup-content { + width: 75%; + display: inline-block; } + +@media only screen and (max-width: 768px) { + .cbp-popup-lightbox-isIframe .cbp-popup-content { + width: 95%; } } + +.cbp-popup-lightbox-isIframe .cbp-lightbox-bottom { + left: 0; + position: absolute; + top: 100%; + width: 100%; + margin-top: 3px; } + +.cbp-popup-lightbox-iframe { + position: relative; + height: 0; + padding-bottom: 56.25%; + /* 16/9 ratio */ + background: #000; } + +.cbp-popup-lightbox-iframe iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); } + +.cbp-popup-lightbox-iframe audio { + margin-top: 27%; } + +.cbp-popup-lightbox-iframe .cbp-popup-lightbox-bottom { + position: absolute; + left: 0; + top: 100%; + width: 100%; } + +/* NAVIGATION BUTTONS */ +.cbp-popup-singlePage .cbp-popup-navigation-wrap { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 10; + height: 104px; + background-color: #3D4750; } + +.cbp-popup-singlePage .cbp-popup-navigation { + position: relative; + width: 100%; + height: 100%; } + +.cbp-popup-singlePage-sticky .cbp-popup-navigation-wrap { + position: fixed; } + +.cbp-popup-singlePage-counter { + color: #fff; + position: absolute; + margin: auto; + right: 40px; + top: 0; + bottom: 0; + font: 400 13px/30px "Open Sans", sans-serif; + height: 30px; } + +@media only screen and (max-width: 768px) { + .cbp-popup-singlePage-counter { + right: 3%; } } + +.cbp-popup-next, +.cbp-popup-prev, +.cbp-popup-close { + padding: 0; + border: medium none; + position: absolute; + cursor: pointer; + outline: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.cbp-popup-lightbox .cbp-popup-prev, +.cbp-popup-lightbox .cbp-popup-next, +.cbp-popup-lightbox .cbp-popup-close { + visibility: hidden; } + +/* NAVOGATION BUTTONS */ +.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-next, +.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-prev, +.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-close { + visibility: visible; } + +/* PREVIOUS BUTTON LIGHBOX */ +.cbp-popup-lightbox .cbp-popup-prev { + background: url("../img/cbp-sprite.png") no-repeat scroll 0 0 transparent; + width: 44px; + height: 44px; + top: 0; + bottom: 0; + left: 20px; + margin: auto; } + +.cbp-popup-lightbox .cbp-popup-prev:hover { + background-position: 0 -46px; } + +/* PREVIOUS BUTTON SINGLEPAGE */ +.cbp-popup-singlePage .cbp-popup-prev { + background: url("../img/cbp-sprite.png") no-repeat scroll 0 -92px transparent; + width: 44px; + height: 44px; + margin: auto; + top: 0; + right: 108px; + bottom: 0; + left: 0; } + +.cbp-popup-singlePage .cbp-popup-prev:hover { + background-position: 0 -138px; } + +/* NEXT BUTTON LIGHTBOX */ +.cbp-popup-lightbox .cbp-popup-next { + background: url("../img/cbp-sprite.png") no-repeat scroll -46px 0 transparent; + width: 44px; + height: 44px; + top: 0; + bottom: 0; + right: 20px; + margin: auto; } + +.cbp-popup-lightbox .cbp-popup-next:hover { + background-position: -46px -46px; } + +/* NEXT BUTTON SINGLEPAGE */ +.cbp-popup-singlePage .cbp-popup-next { + background: url("../img/cbp-sprite.png") no-repeat scroll -46px -92px transparent; + width: 44px; + height: 44px; + margin: auto; + top: 0; + right: 0; + bottom: 0; + left: 108px; } + +.cbp-popup-singlePage .cbp-popup-next:hover { + background-position: -46px -138px; } + +/* CLOSE BUTTON LIGTHBOX */ +.cbp-popup-lightbox .cbp-popup-close { + background: url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent; + height: 40px; + width: 40px; + right: 20px; + top: 20px; } + +.cbp-popup-lightbox .cbp-popup-close:hover { + background-position: -92px -46px; } + +/* CLOSE BUTTON SINGLEPAGE */ +.cbp-popup-singlePage .cbp-popup-close { + background: url("../img/cbp-sprite.png") no-repeat scroll -92px -92px transparent; + height: 44px; + width: 44px; + margin: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; } + +.cbp-popup-singlePage .cbp-popup-close:hover { + background-position: -92px -138px; } + +.cbp-popup-singlePage .cbp-popup-ie8bg { + background-color: #fff; } + +@media only screen and (max-width: 360px), (max-height: 600px) { + .cbp-popup-next, + .cbp-popup-prev, + .cbp-popup-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); } + .cbp-popup-lightbox .cbp-popup-close { + right: 10px; + top: 10px; } + .cbp-popup-lightbox .cbp-popup-next { + right: 10px; } + .cbp-popup-lightbox .cbp-popup-prev { + left: 10px; } + .cbp-popup-singlePage .cbp-popup-navigation-wrap { + height: 84px; } + .cbp-popup-singlePage .cbp-popup-content { + margin-top: 120px; } } + +.cbp-popup-loadingBox { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; } + +.cbp-popup-lightbox .cbp-popup-loadingBox:after { + border-left: 3px solid rgba(255, 255, 255, 0.3); + border-right: 3px solid rgba(255, 255, 255, 0.3); + border-bottom: 3px solid rgba(255, 255, 255, 0.3); + border-top: 3px solid rgba(255, 255, 255, 0.85); } + +.cbp-popup-ready .cbp-popup-loadingBox { + visibility: hidden; + display: none; } + +.cbp-popup-loading .cbp-popup-loadingBox { + visibility: visible; + display: block; } + +.cbp-popup-transitionend .cbp-popup-content-wrap { + overflow-y: scroll; } + +.cbp-popup-singlePage { + -webkit-transform: translateX(100%); + transform: translateX(100%); + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-popup-singlePage.cbp-popup-loading .cbp-popup-content { + opacity: 0; } + +.cbp-popup-singlePage-fade { + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 0; + -webkit-transition: opacity .25s ease-in-out; + transition: opacity .25s ease-in-out; } + +.cbp-popup-singlePage-open.cbp-popup-singlePage-fade { + opacity: 1; } + +.cbp-popup-singlePage-right { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-popup-singlePage-open { + -webkit-transform: none; + transform: none; } + +.cbp-l-project-title { + color: #454444; + font: 600 42px/46px "Open Sans", sans-serif; + letter-spacing: 2px; + margin-bottom: 15px; + text-align: center; + text-transform: uppercase; } + +.cbp-l-project-subtitle { + color: #787878; + font: 400 14px/21px "Open Sans", sans-serif; + margin: 0 auto 50px; + max-width: 500px; + text-align: center; } + +.cbp-popup-singlePage .cbp-popup-content .cbp-l-project-img { + display: block; + margin: 0 auto; + max-width: 100%; } + +.cbp-l-project-container { + overflow: hidden; + margin: 40px auto 0; + clear: both; } + +.cbp-l-project-desc { + float: left; + width: 62%; } + +.cbp-l-project-details { + float: right; + width: 38%; + padding-left: 60px; + margin-bottom: 15px; } + +@media only screen and (max-width: 768px) { + .cbp-l-project-title { + font-size: 30px; + line-height: 34px; } + .cbp-l-project-desc { + width: 100%; } + .cbp-l-project-details { + width: 100%; + margin-top: 20px; + padding-left: 0; } } + +.cbp-l-project-desc-title { + border-bottom: 1px solid #cdcdcd; + margin-bottom: 22px; + color: #444; } + +.cbp-l-project-desc-title span, +.cbp-l-project-details-title span { + border-bottom: 1px solid #747474; + display: inline-block; + margin: 0 0 -1px 0; + font: 400 16px/36px "Open Sans", sans-serif; + padding: 0 5px 0 0; } + +.cbp-l-project-desc-text { + font: 400 13px/20px "Open Sans", sans-serif; + color: #555; + margin-bottom: 20px; } + +.cbp-l-project-details-title { + border-bottom: 1px solid #cdcdcd; + margin-bottom: 19px; + color: #444; } + +.cbp-l-project-details-list { + margin: 0; + padding: 0; + list-style: none; } + +.cbp-l-project-details-list > li, +.cbp-l-project-details-list > div { + border-bottom: 1px dotted #DFDFDF; + padding: inherit; + color: #666; + font: 400 12px/30px "Open Sans", sans-serif; } + +.cbp-l-project-details-list > li:last-child, +.cbp-l-project-details-list > div:last-child { + border: none; } + +.cbp-l-project-details-list strong { + display: inline-block; + color: #696969; + font-weight: 600; + min-width: 100px; } + +.cbp-l-project-details-item { + display: flex; } + +.cbp-l-project-details-name { + color: #696969; + font-weight: 600; + min-width: 80px; + margin-right: 20px; } + +.cbp-l-project-details-visit { + color: #FFFFFF; + float: right; + clear: both; + text-decoration: none; + font: 400 11px/18px "Open Sans", sans-serif; + margin-top: 25px; + background-color: #62B57B; + padding: 8px 19px; + text-transform: uppercase; + letter-spacing: .5px; } + +.cbp-l-project-details-visit:hover { + opacity: 0.9; + color: #fff; } + +.cbp-l-project-related-wrap { + font-size: 0; + margin: 0; + padding: 0; } + +.cbp-l-project-related-item { + margin-left: 5%; + max-width: 30%; + float: left; } + +.cbp-l-project-related-item:first-child { + margin-left: 0; } + +.cbp-l-project-related-title { + font: 700 14px/18px "Open Sans", sans-serif; + color: #474747; + margin-top: 20px; } + +.cbp-l-project-related-link { + text-decoration: none; } + +.cbp-l-project-related-link:hover { + opacity: 0.9; } + +.cbp-l-member-img { + float: left; + width: 40%; + margin-top: 20px; } + +.cbp-l-member-img img { + border: 1px solid #e2e2e2; + width: auto; + max-width: 100%; + height: auto; + display: inline-block; + border: 0; } + +.cbp-l-member-info { + margin-top: 20px; + padding-left: 25px; + float: left; + width: 60%; } + +@media only screen and (max-width: 768px) { + .cbp-l-member-img { + width: 100%; + text-align: center; } + .cbp-l-member-info { + width: 100%; + padding-left: 0; } } + +.cbp-l-member-name { + font: 400 28px/28px "Open Sans", sans-serif; + color: #474747; } + +.cbp-l-member-position { + font: 400 13px/21px "Open Sans", sans-serif; + color: #888; + margin-top: 6px; } + +.cbp-l-member-desc { + font: 400 12px/18px "Open Sans", sans-serif; + margin-top: 25px; + color: #474747; } + +/* SINGLE PAGE INLINE */ +.cbp-popup-singlePageInline-open { + -webkit-transition: height .5s 0s !important; + transition: height .5s 0s !important; } + .cbp-popup-singlePageInline-open .cbp-item { + -webkit-transition: -webkit-transform .5s 0s !important; + transition: transform .5s 0s !important; } + +.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline:after { + display: none; + visibility: hidden; } + +.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-content, +.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-navigation { + -webkit-transition-delay: 0; + transition-delay: 0; } + +.cbp-popup-singlePageInline { + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 0; + overflow: hidden; + /* CLOSE BUTTON singlePageInline */ } + .cbp-popup-singlePageInline .cbp-popup-content { + opacity: 0; + width: 100%; + z-index: 1; + min-height: 300px; } + .cbp-popup-singlePageInline .cbp-popup-content, + .cbp-popup-singlePageInline .cbp-popup-navigation { + -webkit-transition: opacity .4s ease-in .2s; + transition: opacity .4s ease-in .2s; } + .cbp-popup-singlePageInline .cbp-popup-navigation { + opacity: 0; + position: absolute; + top: 0; + right: 0; + z-index: 2; + width: 40px; + height: 40px; } + .cbp-popup-singlePageInline .cbp-popup-close { + background: url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent; + height: 40px; + width: 40px; + right: 20px; + top: 30px; } + .cbp-popup-singlePageInline .cbp-popup-close:hover { + opacity: 0.7; } + +.cbp-popup-singlePageInline-ready { + z-index: 4; } + .cbp-popup-singlePageInline-ready .cbp-popup-content, + .cbp-popup-singlePageInline-ready .cbp-popup-navigation { + opacity: 1; } + .cbp-popup-singlePageInline-ready:after { + display: none; + visibility: hidden; } + +.cbp-singlePageInline-active { + opacity: 0.6 !important; } + +.cbp-l-inline { + margin: 20px 0; + overflow: hidden; + background: #FAFAFA; + padding: 30px; } + +.cbp-l-inline-left { + float: left; + width: 44%; } + +.cbp-l-project-img { + max-width: 100%; } + +.cbp-l-inline-right { + float: right; + width: 56%; + padding-left: inherit; } + +@media only screen and (max-width: 768px) { + .cbp-l-inline-left { + width: 100%; + text-align: center; + margin-top: 40px; } + .cbp-l-inline-right { + width: 100%; + padding-left: 0; + margin-top: 20px; } } + +.cbp-l-inline-title { + font: 400 28px/30px "Open Sans", sans-serif; + color: #474747; } + +.cbp-l-inline-subtitle { + font: 400 13px/21px "Open Sans", sans-serif; + color: #888; + margin-top: 7px; } + +.cbp-l-inline-desc { + font: 400 13px/20px "Open Sans", sans-serif; + color: #474747; + margin-top: 25px; + margin-bottom: 20px; } + +.cbp-l-inline-view-wrap { + text-align: right; } + +.cbp-l-inline-view { + font: 400 13px/35px "Open Sans", sans-serif; + color: #9C9C9C; + margin-top: 40px; + display: inline-block; + padding: 0 20px; + border: 1px solid #ccc; + text-decoration: none; } + +.cbp-l-inline-view:hover { + color: #757575; } + +.cbp-l-inline-details { + margin-bottom: 15px; + font: 13px/22px "Open Sans", sans-serif; } + +/* default state */ +.cbp-l-loadMore-defaultText, +.cbp-l-loadMore-button-defaultText { + display: block; } + +.cbp-l-loadMore-loadingText, +.cbp-l-loadMore-noMoreLoading, +.cbp-l-loadMore-button-loadingText, +.cbp-l-loadMore-button-noMoreLoading { + display: none; } + +/* loading state */ +.cbp-l-loadMore-loading .cbp-l-loadMore-loadingText, +.cbp-l-loadMore-loading .cbp-l-loadMore-button-loadingText { + display: block; } + +.cbp-l-loadMore-loading .cbp-l-loadMore-defaultText, +.cbp-l-loadMore-loading .cbp-l-loadMore-noMoreLoading, +.cbp-l-loadMore-loading .cbp-l-loadMore-button-defaultText, +.cbp-l-loadMore-loading .cbp-l-loadMore-button-noMoreLoading { + display: none; } + +/* no more loading */ +.cbp-l-loadMore-stop .cbp-l-loadMore-noMoreLoading, +.cbp-l-loadMore-stop .cbp-l-loadMore-button-noMoreLoading { + display: block; } + +.cbp-l-loadMore-stop .cbp-l-loadMore-defaultText, +.cbp-l-loadMore-stop .cbp-l-loadMore-loadingText, +.cbp-l-loadMore-stop .cbp-l-loadMore-button-defaultText, +.cbp-l-loadMore-stop .cbp-l-loadMore-button-loadingText { + display: none; } + +.cbp-l-loadMore-bgbutton { + text-align: center; } + .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link { + border: 1px solid #DEDEDE; + color: #7E7B7B; + display: inline-block; + font: 400 13px/40px "Lato", sans-serif; + min-width: 80px; + text-decoration: none; + padding: 0 50px; + margin-top: 50px; + outline: 0; + box-shadow: none; + letter-spacing: 1px; + -webkit-transition: color .25s; + transition: color .25s; } + .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link:hover, .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-loading { + color: #B0B0B0; } + .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-stop { + color: #B0B0B0; + cursor: default; } + +.cbp-l-loadMore-button { + text-align: center; } + .cbp-l-loadMore-button .cbp-l-loadMore-link, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link { + border: 1px solid #DEDEDE; + color: #7E7B7B; + display: inline-block; + font: 400 12px/36px "Open Sans", sans-serif; + min-width: 80px; + text-decoration: none; + padding: 0 30px; + outline: 0; + margin-top: 40px; + box-shadow: none; + -webkit-transition: color .25s; + transition: color .25s; } + .cbp-l-loadMore-button .cbp-l-loadMore-link:hover, .cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-loading, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link:hover, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-loading { + color: #B0B0B0; } + .cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-stop, .cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-button-stop, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-stop, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-button-stop { + cursor: default; + color: #B0B0B0; } + +.cbp-l-loadMore-text { + text-align: center; } + .cbp-l-loadMore-text .cbp-l-loadMore-link, + .cbp-l-loadMore-text .cbp-l-loadMore-text-link { + font: 400 15px "Open Sans", sans-serif; + color: #7E7B7B; + text-decoration: none; + cursor: pointer; + margin-top: 50px; + display: block; } + .cbp-l-loadMore-text .cbp-l-loadMore-stop, + .cbp-l-loadMore-text .cbp-l-loadMore-text-stop { + color: #B0B0B0; + cursor: default; } + +.cbp-mode-slider { + -webkit-transition: height .35s; + transition: height .35s; } + +.cbp-mode-slider .cbp-wrapper, +.cbp-mode-slider .cbp-item { + -webkit-transition: -webkit-transform .35s; + transition: transform .35s; } + +.cbp-mode-slider .cbp-wrapper { + cursor: -webkit-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; } + +.cbp-mode-slider-dragStart * { + cursor: move !important; + cursor: -ms-grabbing !important; + cursor: -webkit-grabbing !important; + cursor: -moz-grabbing !important; + cursor: grabbing !important; } + +.cbp-mode-slider-dragStart .cbp-wrapper { + -webkit-transition: none; + transition: none; } + +.cbp-nav-next, +.cbp-nav-prev { + position: relative; + background: #7c8b90; + cursor: pointer; + display: inline-block; + margin-left: 1px; + height: 22px; + width: 21px; } + +.cbp-nav-next { + border-radius: 0 2px 2px 0; } + +.cbp-nav-prev { + border-radius: 2px 0 0 2px; } + +.cbp-nav-next:hover, +.cbp-nav-prev:hover { + opacity: 0.8; } + +.cbp-nav-next:after, +.cbp-nav-prev:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + background: url("../img/cbp-sprite.png") no-repeat; + height: 10px; + width: 7px; } + +.cbp-nav-next:after { + background-position: -134px 0; } + +.cbp-nav-prev:after { + background-position: -134px -12px; } + +.cbp-nav-stop { + opacity: 0.5 !important; + cursor: default !important; } + +.cbp-nav { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.cbp-nav-controls { + position: absolute; + top: -51px; + right: 0; + z-index: 100; } + +.cbp-nav-pagination { + position: absolute; + bottom: -30px; + right: 0; + z-index: 100; + left: 0; + text-align: center; } + +.cbp-nav-pagination-item { + position: relative; + width: 10px; + height: 10px; + border-radius: 50%; + margin: 0 4px; + display: inline-block; + cursor: pointer; + background: #c2c2c2; + -webkit-transition: background 0.5s; + transition: background 0.5s; } + +.cbp-nav-pagination-active { + background: #797979; } + +.cbp-pagination-item { + max-width: 100px; + display: inline-block; + cursor: pointer; + margin-top: 10px; + margin-right: 5px; + position: relative; } + .cbp-pagination-item img { + display: block; + width: 100%; + height: auto; + border: 0; } + .cbp-pagination-item:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + -webkit-transition: background .5s ease-in-out; + transition: background .5s ease-in-out; } + +.cbp-pagination-active:after { + background: rgba(0, 0, 0, 0); } + +.cbp-slider-wrap, +.cbp-slider-item { + margin: 0; + padding: 0; + list-style-type: none; } + +.cbp-slider .cbp-nav-controls { + position: static; } + +.cbp-slider .cbp-nav-next, +.cbp-slider .cbp-nav-prev { + background: transparent; + position: absolute; + margin: auto; + top: 0; + bottom: 0; + z-index: 100; + width: 44px; + height: 44px; } + +.cbp-slider .cbp-nav-next { + right: 25px; + left: auto; } + +.cbp-slider .cbp-nav-prev { + left: 25px; + right: auto; } + +.cbp-slider .cbp-nav-next:after, +.cbp-slider .cbp-nav-prev:after { + background: url("../img/cbp-sprite.png") no-repeat; + width: 44px; + height: 44px; } + +.cbp-slider .cbp-nav-next:after { + background-position: -46px -92px; } + +.cbp-slider .cbp-nav-next:hover:after { + background-position: -46px -46px; } + +.cbp-slider .cbp-nav-prev:after { + background-position: 0 -92px; } + +.cbp-slider .cbp-nav-prev:hover:after { + background-position: 0 -46px; } + +.cbp-slider .cbp-nav-pagination { + text-align: right; + bottom: 20px; + right: 25px; + left: auto; } + +.cbp-slider-edge .cbp-nav-controls { + position: static; } + +.cbp-slider-edge .cbp-nav-next, +.cbp-slider-edge .cbp-nav-prev { + background: transparent; + position: absolute; + margin: auto; + top: 0; + bottom: 0; + z-index: 100; + width: 44px; + height: 44px; } + +.cbp-slider-edge .cbp-nav-next { + right: 0; + left: auto; } + +.cbp-slider-edge .cbp-nav-prev { + left: 0; + right: auto; } + +.cbp-slider-edge .cbp-nav-next:after, +.cbp-slider-edge .cbp-nav-prev:after { + background: url("../img/cbp-sprite.png") no-repeat; + width: 9px; + height: 16px; } + +.cbp-slider-edge .cbp-nav-next:after { + background-position: -134px -24px; } + +.cbp-slider-edge .cbp-nav-prev:after { + background-position: -134px -42px; } + +.cbp-slider-edge .cbp-nav-pagination { + bottom: -50px; } + +.cbp-slider-edge .cbp-nav-pagination-item { + border: 2px solid #0f0f0f; + opacity: 0.4; + background: transparent; } + +.cbp-slider-edge .cbp-nav-pagination-active { + background: #000; } + +.cbp-slider-inline { + position: relative; } + .cbp-slider-inline .cbp-slider-item { + position: absolute; + width: 100%; + top: 0; + -webkit-transition: left .5s; + transition: left .5s; } + .cbp-slider-inline .cbp-slider-item--active { + position: relative; + z-index: 2; } + +.cbp-slider-wrapper { + position: relative; + overflow: hidden; } + +.cbp-slider-controls { + position: absolute; + top: 0; + right: 0; + z-index: 100; + opacity: 0; + -webkit-transition: opacity .7s ease-in-out; + transition: opacity .7s ease-in-out; } + +.cbp-slider-inline-ready .cbp-slider-controls { + opacity: 1; } + +.cbp-slider-next, +.cbp-slider-prev { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + float: left; + cursor: pointer; + position: relative; + width: 36px; + height: 36px; + background: #547EB1; } + +.cbp-slider-next { + margin-left: 1px; } + +.cbp-slider-next:after, +.cbp-slider-prev:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + background: url("../img/cbp-sprite.png") no-repeat; + width: 9px; + height: 16px; } + +.cbp-slider-next:after { + background-position: -134px -60px; } + +.cbp-slider-prev:after { + background-position: -134px -78px; } + +.cbp-l-grid-agency .cbp-caption:after { + position: absolute; + content: ''; + width: 0; + height: 0; + border-bottom: 10px solid #fff; + border-right: 10px solid transparent; + border-left: 10px solid transparent; + bottom: 0px; + left: 50%; + margin-left: -5px; + z-index: 1; } + +.cbp-l-grid-agency.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: scale(1.15); + transform: scale(1.15); } + +.cbp-l-grid-agency-title { + margin-top: 18px; + font: 700 17px/24px "Lato", sans-serif; + color: #666; + text-align: center; + padding: 0 4px; } + +.cbp-item:hover .cbp-l-grid-agency-title { + color: #222; } + +.cbp-l-grid-agency-desc { + font: 400 12px/21px "Open Sans", sans-serif; + color: #aaa; + text-align: center; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-agency-title { + font-size: 15px; + line-height: 21px; } } + +.cbp-l-grid-work.cbp-caption-zoom .cbp-caption-activeWrap { + background-color: rgba(0, 0, 0, 0.7); } + +.cbp-l-grid-work .cbp-item { + padding: 3px; } + +.cbp-l-grid-work .cbp-item-wrapper { + background-color: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + padding: 7px 7px 27px; + border-top: 1px solid #F4F4F4; } + +.cbp-l-grid-work-title { + margin-top: 17px; + font: 400 17px/25px "Roboto Condensed", sans-serif; + color: #607D8B; + text-align: center; + text-transform: uppercase; + display: block; } + +.cbp-l-grid-work-title:hover { + color: #365D67; } + +.cbp-l-grid-work-desc { + font: 400 11px/16px "Open Sans", sans-serif; + color: #888888; + text-align: center; + text-transform: uppercase; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-work-title { + font-size: 15px; + line-height: 21px; + margin-top: 15px; } + .cbp-l-grid-work .cbp-item-wrapper { + padding-bottom: 18px; } } + +.cbp-l-grid-blog-title { + font: 400 18px/30px "Open Sans", sans-serif; + color: #444; + display: block; + margin-top: 17px; } + +.cbp-l-grid-blog-title:hover { + color: #787878; } + +.cbp-l-grid-blog-date { + font: 400 12px/18px "Open Sans", sans-serif; + color: #787878; + display: inline-block; } + +.cbp-l-grid-blog-comments { + font: 400 12px/18px "Open Sans", sans-serif; + color: #3C6FBB; + display: inline-block; } + +.cbp-l-grid-blog-comments:hover { + opacity: .8; } + +.cbp-l-grid-blog-desc { + font: 400 13px/18px "Open Sans", sans-serif; + color: #9B9B9B; + margin-top: 9px; } + +.cbp-l-grid-blog-split { + margin: 0 4px; + font: 400 13px/16px "Open Sans", sans-serif; + color: #787878; + display: inline-block; } + +.cbp-l-grid-clients { + height: 180px; } + +.cbp-l-clients-title-block { + font: 400 32px/53px "Roboto", sans-serif; + color: #666464; + text-align: center; + margin-bottom: 40px; } + +.cbp-l-grid-faq .cbp-item { + width: 100%; } + +.cbp-l-grid-projects-title { + font: 700 14px/21px "Open Sans", sans-serif; + color: #474747; + margin-top: 15px; } + +.cbp-l-grid-projects-desc { + font: 400 12px/18px "Open Sans", sans-serif; + color: #888888; + margin-top: 5px; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-projects-title { + margin-top: 12px; } + .cbp-l-grid-projects-desc { + margin-top: 3px; } } + +.cbp-l-grid-masonry-projects .cbp-caption-activeWrap { + background-color: #59a3b6; + background-color: rgba(89, 163, 182, 0.95); } + +.cbp-l-grid-masonry-projects .cbp-l-caption-buttonLeft, +.cbp-l-grid-masonry-projects .cbp-l-caption-buttonRight { + background-color: #545454; } + +.cbp-l-grid-masonry-projects-title { + font: 500 15px/22px "Roboto", sans-serif; + color: #59a3b6; + text-align: center; + display: block; + margin-top: 12px; } + +.cbp-l-grid-masonry-projects-title:hover { + color: #457C8B; } + +.cbp-l-grid-masonry-projects-desc { + font: 400 12px/18px "Roboto", sans-serif; + color: #b2b2b2; + text-align: center; } + +.cbp-l-grid-team-name { + font: 400 17px/24px "Open Sans", sans-serif; + color: #456297; + display: block; + text-align: center; + margin-top: 18px; } + +.cbp-l-grid-team-name:hover { + color: #34425C; } + +.cbp-l-grid-team-position { + font: italic 400 13px/21px "Open Sans", sans-serif; + color: #999; + text-align: center; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-team-name { + font-size: 15px; + line-height: 22px; + margin-top: 13px; } + .cbp-l-grid-team-position { + font-size: 12px; + line-height: 18px; } } + +.cbp-l-grid-mosaic-flat .cbp-caption-activeWrap { + background-color: #64C28E; + background-color: rgba(101, 199, 150, 0.95); } + +.cbp-l-grid-mosaic-flat .cbp-l-caption-title { + color: #FFFFFF; + font: 400 14px/21px "Lato", sans-serif; + text-transform: uppercase; + letter-spacing: 2px; + display: inline-block; } + +.cbp-l-grid-mosaic-flat .cbp-l-caption-title:after { + content: ''; + display: block; + width: 40%; + height: 1px; + background-color: #fff; + margin: 8px auto 0; } + +@media only screen and (max-width: 800px) { + .cbp-l-grid-mosaic-flat .cbp-l-caption-title:after { + display: none; } } + +.cbp-l-grid-mosaic-projects .cbp-caption-activeWrap { + background-color: #59a3b6; + background-color: rgba(89, 163, 182, 0.97); } + +.cbp-l-grid-mosaic .cbp-caption-activeWrap { + background-color: #FFEA71; + background-color: rgba(255, 234, 113, 0.95); } + +.cbp-l-grid-mosaic .cbp-l-caption-title { + color: #5A5A5A; + font: 500 18px/22px "Roboto", sans-serif; + text-transform: uppercase; + margin-bottom: 5px; } + +.cbp-l-grid-mosaic .cbp-l-caption-desc { + color: #585858; + font: 400 13px/20px "Roboto", sans-serif; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-mosaic .cbp-l-caption-title { + font-size: 16px; + line-height: 22px; + margin-bottom: 0px; } + .cbp-l-grid-mosaic .cbp-l-caption-desc { + font-size: 12px; + line-height: 18px; } } + +.cbp-l-slider-title-block { + border-bottom: 1px solid #cdcdcd; + margin-bottom: 22px; } + +.cbp-l-slider-title-block div { + padding: 0 2px 6px 0; + display: inline-block; + border-bottom: 1px solid #a9a5a5; + color: #5e5e5e; + margin-bottom: -1px; + font: 15px/21px "Roboto", sans-serif; } + +.cbp-l-grid-slider-team-name { + float: left; + font: 20px/30px "Roboto", sans-serif; + color: #494949; + margin-top: 16px; } + +.cbp-l-grid-slider-team-position { + clear: both; + font: 14px/21px "Roboto", sans-serif; + color: #A6A6A6; } + +.cbp-l-grid-slider-team-desc { + font: 13px/20px "Roboto", sans-serif; + color: #969696; + margin-top: 15px; } + +.cbp-l-grid-slider-team-social { + float: right; + margin-top: 22px; } + .cbp-l-grid-slider-team-social a { + margin-left: 4px; } + .cbp-l-grid-slider-team-social a:hover { + opacity: 0.8; } + +@media only screen and (max-width: 600px) { + .cbp-l-grid-slider-team-wrap { + float: left; + width: 100%; + margin-bottom: 10px; } + .cbp-l-grid-slider-team-name { + font-size: 17px; + line-height: 26px; + width: 100%; + margin-top: 12px; + text-align: center; } + .cbp-l-grid-slider-team-social { + width: 100%; + text-align: center; + margin-top: 8px; } + .cbp-l-grid-slider-team-position { + font-size: 13px; + line-height: 20px; + text-align: center; } + .cbp-l-grid-slider-team-desc { + font-size: 12px; + line-height: 18px; + margin-top: 10px; + text-align: center; } } + +.cbp-l-slider-testimonials-wrap { + background: #f8f9f9; + padding: 80px 0 110px; + border-width: 1px 0; + border-style: solid; + border-color: #dce1e2; } + +.cbp-l-grid-slider-testimonials-body { + color: #424242; + max-width: 800px; + margin: 0 auto; + font: 20px/32px sans-serif; + text-align: center; + padding: 0 40px; } + +.cbp-l-grid-slider-testimonials-footer { + font: 12px/19px "Roboto", sans-serif; + color: #777; + text-align: center; + margin-bottom: 10px; + margin-top: 30px; } + +.cbp-l-grid-tabs { + height: 100px; } + +.cbp-l-grid-tabs .cbp-item { + font: 14px/24px "Lato", sans-serif; + max-width: 700px; + width: 100%; + margin: 0 auto; + right: 0; + text-align: center; + color: #5a5a5a; } + +.cbp-l-testimonials-title-block { + position: relative; + text-align: center; + font: 26px/36px "Roboto", sans-serif; + color: #E7E7E7; + margin-bottom: 60px; } + .cbp-l-testimonials-title-block:after { + content: ''; + position: absolute; + margin: 0 auto; + width: 23px; + height: 2px; + bottom: -6px; + background-color: #C2C2C2; + left: 0; + right: 0; } + +.cbp-l-testimonials-wrap { + background: #2D2D2D; + padding: 60px 0 110px; } + +.cbp-l-grid-testimonials-body { + color: #e7e7e7; + max-width: 800px; + margin: 0 auto; + font: 20px/32px "Roboto", sans-serif; + text-align: center; + padding: 0 20px; } + +.cbp-l-grid-testimonials-footer { + font: 12px/19px "Roboto", sans-serif; + color: #C2C2C2; + text-align: center; + margin-bottom: 40px; + margin-top: 35px; } + +.cbp-search { + position: relative; + width: 220px; + margin-bottom: 40px; } + .cbp-search .cbp-search-nothing { + display: none; } + +.cbp-search-icon { + position: absolute; + width: 32px; + height: 100%; + top: 0; + right: 0; + text-align: center; + cursor: pointer; + pointer-events: none; } + +.cbp-search-icon:after { + content: ''; + display: block; + background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTEyMTYgODMycTAtMTg1LTEzMS41LTMxNi41VDc2OCAzODQgNDUxLjUgNTE1LjUgMzIwIDgzMnQxMzEuNSAzMTYuNVQ3NjggMTI4MHQzMTYuNS0xMzEuNVQxMjE2IDgzMnptNTEyIDgzMnEwIDUyLTM4IDkwdC05MCAzOHEtNTQgMC05MC0zOGwtMzQzLTM0MnEtMTc5IDEyNC0zOTkgMTI0LTE0MyAwLTI3My41LTU1LjV0LTIyNS0xNTAtMTUwLTIyNVQ2NCA4MzJ0NTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTBUNzY4IDEyOHQyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNVQxNDcyIDgzMnEwIDIyMC0xMjQgMzk5bDM0MyAzNDNxMzcgMzcgMzcgOTB6Ii8+PC9zdmc+") no-repeat scroll center center; + width: 100%; + height: 100%; + pointer-events: none; } + +.cbp-search-input { + height: 36px; + padding: 0 32px 0 12px; + margin: 0; + border-radius: 1px; + border: 1px solid #c6c3c4; + font: 400 12px "Open Sans", sans-serif; + width: 100%; } + +.cbp-search-input[value] + .cbp-search-icon { + pointer-events: auto; } + +.cbp-search-input[value] + .cbp-search-icon:after { + background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTE0OTAgMTMyMnEwIDQwLTI4IDY4bC0xMzYgMTM2cS0yOCAyOC02OCAyOHQtNjgtMjhsLTI5NC0yOTQtMjk0IDI5NHEtMjggMjgtNjggMjh0LTY4LTI4bC0xMzYtMTM2cS0yOC0yOC0yOC02OHQyOC02OGwyOTQtMjk0LTI5NC0yOTRxLTI4LTI4LTI4LTY4dDI4LTY4bDEzNi0xMzZxMjgtMjggNjgtMjh0NjggMjhsMjk0IDI5NCAyOTQtMjk0cTI4LTI4IDY4LTI4dDY4IDI4bDEzNiAxMzZxMjggMjggMjggNjh0LTI4IDY4bC0yOTQgMjk0IDI5NCAyOTRxMjggMjggMjggNjh6Ii8+PC9zdmc+"); } + +.cbp-search-nothing { + position: absolute; + top: 0; + padding: 0 0 30px; + text-align: center; + width: 100%; + font: 13px "Open Sans", sans-serif; } + +@media only screen and (max-width: 600px) { + .cbp-search { + width: 100%; } } + +.cbp-l-project-social { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + +.cbp-social-fb, +.cbp-social-twitter, +.cbp-social-googleplus, +.cbp-social-pinterest { + margin-right: 9px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .cbp-social-fb:hover, + .cbp-social-twitter:hover, + .cbp-social-googleplus:hover, + .cbp-social-pinterest:hover { + opacity: .8; } + .cbp-social-fb:focus, + .cbp-social-twitter:focus, + .cbp-social-googleplus:focus, + .cbp-social-pinterest:focus { + outline: none; } + +.cbp-social-fb path { + fill: #415C9B; } + +.cbp-social-twitter path { + fill: #55acee; } + +.cbp-social-googleplus path { + fill: #E57371; } + +.cbp-social-pinterest path { + fill: #cb2027; } + +.cbp-l-sort { + margin-bottom: 30px; + display: flex; + justify-content: center; } + +.cbp-l-direction { + display: inline-block; + background: #4d4c4d; + float: left; + height: 38px; + width: 38px; + position: relative; + border-left: 1px solid #6b6a6a; } + .cbp-l-direction:hover { + opacity: .9; } + +.cbp-l-direction-item { + height: 100%; + width: 100%; + cursor: pointer; + display: none; + z-index: 1; + background: transparent; + position: relative; } + +.cbp-l-direction:after { + border-color: #FFFFFF rgba(0, 0, 0, 0); + border-style: solid; + border-width: 5px 5px 0; + content: ""; + height: 0; + position: absolute; + right: 0; + left: 0; + top: 50%; + width: 0; + margin: -3px auto 0; + cursor: pointer; + z-index: 0; } + +.cbp-l-direction--second:after { + border-width: 0 5px 5px; } + +.cbp-l-direction--first div:first-child { + display: block; } + +.cbp-l-direction--second div:nth-child(2) { + display: block; } + +.cbp-l-sort--simple { + margin-left: 70px; } + .cbp-l-sort--simple .cbp-l-dropdown-wrap { + background: transparent; } + .cbp-l-sort--simple .cbp-l-dropdown-header { + font: 400 13px/36px "Lato", sans-serif; + color: #787878; + margin: 0; } + .cbp-l-sort--simple .cbp-l-dropdown-list { + background: white; + box-shadow: 0 0 2px 0px #e2e2e2; + border: 1px solid #ddd; } + .cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item { + border-top: 0; + color: #787878; } + .cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item:hover { + color: #b3b3b3; } + .cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item--active { + color: #b3b3b3; } + +.cbp-l-text-sort { + font: 400 13px/36px "Lato", sans-serif; + color: #949494; + margin-right: 15px; } + +.cbp-l-dropdown { + height: 38px; + position: relative; + z-index: 5; + width: 170px; + float: left; } + +.cbp-l-dropdown-wrap { + width: 100%; + position: absolute; + background: #4d4c4d; } + +.cbp-l-dropdown-header { + font: 400 12px/38px "Open Sans", sans-serif; + margin: 0 17px; + color: #FFF; + cursor: default; + position: relative; } + +.cbp-l-dropdown-list { + display: none; } + +.cbp-l-dropdown-wrap.cbp-l-dropdown-wrap--open .cbp-l-dropdown-list { + display: block; + margin: 0; } + +.cbp-l-dropdown-list .cbp-l-dropdown-item { + background: transparent; + color: #b3b3b3; + width: 100%; + text-align: left; + font: 400 12px/40px "Open Sans", sans-serif; + margin: 0; + padding: 0 17px; + cursor: pointer; + border: none; + border-top: 1px solid #595959; } + +.cbp-l-dropdown-list .cbp-l-dropdown-item:hover { + color: #e6e6e6; } + +.cbp-l-dropdown-list .cbp-l-dropdown-item--active { + color: #fff; + cursor: default; } + +.cbp-l-dropdown-floated { + float: right; + margin-top: -2px; + margin-left: 20px; + width: 200px; } + +@media only screen and (max-width: 480px) { + .cbp-l-dropdown-floated { + width: 100%; + margin-top: 0; + margin-left: 0; } + .cbp-l-dropdown-wrap { + right: 0; + left: 0; + margin: 0 auto; } } diff --git a/cubeportfolio/css/cubeportfolio.min.css b/cubeportfolio/css/cubeportfolio.min.css new file mode 100644 index 0000000..669be12 --- /dev/null +++ b/cubeportfolio/css/cubeportfolio.min.css @@ -0,0 +1,10 @@ +/*! + * Cube Portfolio - Responsive jQuery Grid Plugin + * + * version: 4.4.0 (1 August, 2018) + * require: jQuery v1.8+ + * + * Copyright 2013-2018, Mihai Buricea (http://scriptpie.com/cubeportfolio/live-preview/) + * Licensed under CodeCanyon License (http://codecanyon.net/licenses) + * + */.cbp-l-filters-alignCenter .cbp-filter-counter:after,.cbp-l-filters-alignRight .cbp-filter-counter:after,.cbp-l-filters-button .cbp-filter-counter:after,.cbp-l-filters-buttonCenter .cbp-filter-counter:after,.cbp-l-filters-text .cbp-filter-counter:after,.cbp,.cbp *,.cbp *:after,.cbp:after,.cbp-l-filters-dropdownHeader:after,.cbp-popup-wrap,.cbp-popup-wrap *,.cbp-popup-wrap:before,.cbp-popup-loadingBox:after,.cbp-search *,.cbp-l-direction:after{box-sizing:border-box}.cbp-l-grid-agency-title,.cbp-l-grid-agency-desc,.cbp-l-grid-work-title,.cbp-l-grid-work-desc,.cbp-l-grid-blog-title,.cbp-l-grid-projects-title,.cbp-l-grid-projects-desc,.cbp-l-grid-masonry-projects-title,.cbp-l-grid-masonry-projects-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cbp-l-filters-alignCenter,.cbp-l-filters-alignCenter *,.cbp-l-filters-alignLeft,.cbp-l-filters-alignLeft *,.cbp-l-filters-alignRight,.cbp-l-filters-alignRight *,.cbp-l-filters-button,.cbp-l-filters-button *,.cbp-l-filters-buttonCenter,.cbp-l-filters-buttonCenter *,.cbp-l-filters-dropdown,.cbp-l-filters-dropdown *,.cbp-l-filters-list,.cbp-l-filters-list *,.cbp-l-filters-work,.cbp-l-filters-work *,.cbp-l-filters-big,.cbp-l-filters-big *,.cbp-l-filters-text,.cbp-l-filters-text *,.cbp-l-filters-underline,.cbp-l-filters-underline *,.cbp-l-filters-holder,.cbp-l-filters-holder *,.cbp-l-loadMore-bgbutton,.cbp-l-loadMore-bgbutton *,.cbp-l-loadMore-button,.cbp-l-loadMore-button *,.cbp-l-loadMore-text,.cbp-l-loadMore-text *,.cbp-search,.cbp-l-dropdown,.cbp-l-dropdown *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box}.cbp:after,.cbp-lazyload:after,.cbp-popup-loadingBox:after,.cbp-popup-singlePageInline:after{content:'';position:absolute;width:34px;height:34px;left:0;right:0;top:0;bottom:0;margin:auto;-webkit-animation:cbp-rotation .8s infinite linear;animation:cbp-rotation .8s infinite linear;border-left:3px solid rgba(114,144,182,0.15);border-right:3px solid rgba(114,144,182,0.15);border-bottom:3px solid rgba(114,144,182,0.15);border-top:3px solid rgba(114,144,182,0.8);border-radius:100%}.cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-alignRight .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-button .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-buttonCenter .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter{opacity:1;-webkit-transform:translateY(-44px);transform:translateY(-44px)}.cbp-l-filters-alignCenter .cbp-filter-counter,.cbp-l-filters-alignRight .cbp-filter-counter,.cbp-l-filters-button .cbp-filter-counter,.cbp-l-filters-buttonCenter .cbp-filter-counter,.cbp-l-filters-text .cbp-filter-counter{font:400 11px/18px "Open Sans", sans-serif;border-radius:3px;color:#FFFFFF;margin:0 auto;padding:4px 0;text-align:center;width:34px;position:absolute;bottom:0;left:0;right:0;opacity:0;-webkit-transition:-webkit-transform .25s, opacity .25s;transition:transform .25s, opacity .25s}.cbp-l-filters-alignCenter .cbp-filter-counter:after,.cbp-l-filters-alignRight .cbp-filter-counter:after,.cbp-l-filters-button .cbp-filter-counter:after,.cbp-l-filters-buttonCenter .cbp-filter-counter:after,.cbp-l-filters-text .cbp-filter-counter:after{content:"";position:absolute;bottom:-4px;left:0;right:0;margin:0 auto;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent}.cbp-item{display:inline-block;margin:0 10px 20px 0}.cbp{position:relative;margin:0 auto;z-index:1;height:400px}.cbp>*{visibility:hidden}.cbp .cbp-item{list-style-type:none;margin:0;padding:0;overflow:hidden}.cbp img{display:block;border:0;width:100%;height:auto}.cbp a,.cbp a:hover,.cbp a:active{text-decoration:none;outline:0}.cbp-lazyload{position:relative;background:#fff;display:block}.cbp-lazyload img{opacity:1}.cbp-lazyload img[data-cbp-src]{opacity:0}.cbp-lazyload img:not([data-cbp-src]){-webkit-transition:opacity .7s ease-in-out;transition:opacity .7s ease-in-out}.cbp-lazyload:after{z-index:0}.cbp-wrapper-outer{overflow:hidden;position:relative;margin:0 auto}.cbp-wrapper-outer,.cbp-wrapper,.cbp-wrapper-helper{list-style-type:none;padding:0;width:100%;height:100%;z-index:1}.cbp-wrapper,.cbp-wrapper-helper{margin:0}.cbp-ready>*{visibility:visible}.cbp-ready:after{display:none;visibility:hidden}.cbp-ready .cbp-item{position:absolute;top:0;left:0}.cbp-ready .cbp-wrapper,.cbp-ready .cbp-wrapper-helper{position:absolute;top:0;left:0}.cbp-item-off{z-index:-1;pointer-events:none;visibility:hidden}.cbp-item-on2off{z-index:0}.cbp-item-off2on{z-index:1}.cbp-item-on2on{z-index:2}.cbp-item-wrapper{width:100%;height:100%;position:relative;top:0;left:0}.cbp-l-project-related-wrap img,.cbp-l-inline img{display:block;width:100%;height:auto;border:0}.cbp-updateItems{-webkit-transition:height .5s ease-in-out !important;transition:height .5s ease-in-out !important;will-change:height}.cbp-updateItems .cbp-item{-webkit-transition:top .5s ease-in-out, left .5s ease-in-out;transition:top .5s ease-in-out, left .5s ease-in-out}.cbp-updateItems .cbp-item-loading{-webkit-animation:fadeIn .5s ease-in-out;animation:fadeIn .5s ease-in-out;-webkit-transition:none;transition:none}.cbp-removeItem{-webkit-animation:fadeOut .5s ease-in-out;animation:fadeOut .5s ease-in-out}.cbp-panel{width:94%;max-width:1170px;margin:0 auto}.cbp-misc-video{position:relative;height:0;padding-bottom:56.25%;background:#000;text-align:center}.cbp-misc-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}@-webkit-keyframes cbp-rotation{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes cbp-rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.clearfix:after{content:" ";display:block;height:0;clear:both}.cbp-l-filters-left{float:left}.cbp-l-filters-right{float:right}.cbp-l-center{display:flex;justify-content:center;align-items:center}@media only screen and (max-width: 480px){.cbp-l-filters-left,.cbp-l-filters-right{width:100%}}@media only screen and (max-width: 800px){.cbp-l-center{flex-direction:column}}.cbp-caption,.cbp-caption-defaultWrap,.cbp-caption-activeWrap{display:block}.cbp-caption-activeWrap{background-color:#282727}.cbp-caption-active .cbp-caption,.cbp-caption-active .cbp-caption-defaultWrap,.cbp-caption-active .cbp-caption-activeWrap{overflow:hidden;position:relative;z-index:1}.cbp-caption-active .cbp-caption-defaultWrap{top:0}.cbp-caption-active .cbp-caption-activeWrap{width:100%;position:absolute;z-index:2;height:100%}.cbp-l-caption-title{color:#fff;font:400 16px/21px "Open Sans", sans-serif}.cbp-l-caption-desc{color:#aaa;font:400 12px/16px "Open Sans", sans-serif}.cbp-l-caption-text{font:400 14px/21px "Open Sans", sans-serif;color:#fff;letter-spacing:3px;padding:0 6px}.cbp-l-caption-buttonLeft,.cbp-l-caption-buttonRight{background-color:#547EB1;color:#FFFFFF;display:inline-block;font:400 12px/30px "Open Sans", sans-serif;min-width:90px;text-align:center;margin:4px;padding:0 6px}.cbp-l-caption-buttonLeft:hover,.cbp-l-caption-buttonRight:hover{opacity:0.9}.cbp-caption-none .cbp-caption-activeWrap{display:none}.cbp-l-caption-alignLeft .cbp-l-caption-body{padding:12px 30px}.cbp-caption-fadeIn .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-minimal .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-moveRight .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-overlayRightAlong .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-pushDown .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-pushTop .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-revealBottom .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-revealLeft .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-revealTop .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-zoom .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-opacity .cbp-l-caption-alignLeft .cbp-l-caption-body{padding-top:30px}.cbp-l-caption-alignCenter{display:table;width:100%;height:100%}.cbp-l-caption-alignCenter .cbp-l-caption-body{display:table-cell;vertical-align:middle;text-align:center;padding:15px 0}.cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{position:relative;-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft{-webkit-transform:translateX(-20px);transform:translateX(-20px)}.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight,.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight,.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{-webkit-transform:translateX(20px);transform:translateX(20px)}.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{-webkit-transform:translateX(0);transform:translateX(0)}@media only screen and (max-width: 480px){.cbp-l-caption-alignLeft .cbp-l-caption-body{padding:9px 11px}.cbp-l-caption-title{font-size:14px;line-height:21px}.cbp-l-caption-desc{font-size:11px;line-height:14px}.cbp-l-caption-buttonLeft,.cbp-l-caption-buttonRight{font-size:11px;line-height:28px;min-width:69px;margin:3px;padding:0 4px}.cbp-l-caption-text{font-size:13px;letter-spacing:1px}}@media only screen and (max-width: 374px){.cbp-l-caption-alignLeft .cbp-l-caption-body{padding:8px 10px}.cbp-l-caption-title{font-size:13px;line-height:20px}.cbp-l-caption-desc{font-size:11px;line-height:14px}.cbp-l-caption-buttonLeft,.cbp-l-caption-buttonRight{font-size:10px;line-height:28px;min-width:62px;margin:1px;padding:0 4px}}.cbp-caption-fadeIn .cbp-caption-activeWrap{opacity:0;top:0;background-color:rgba(0,0,0,0.85);-webkit-transition:opacity .5s;transition:opacity .5s}.cbp-caption-fadeIn .cbp-caption:hover .cbp-caption-activeWrap{opacity:1}.cbp-caption-minimal .cbp-l-caption-title,.cbp-caption-minimal .cbp-l-caption-desc{position:relative;left:0;opacity:0;-webkit-transition:-webkit-transform .35s ease-out;transition:transform .35s ease-out}.cbp-caption-minimal .cbp-l-caption-title{-webkit-transform:translateY(-50%);transform:translateY(-50%)}.cbp-caption-minimal .cbp-l-caption-desc{-webkit-transform:translateY(70%);transform:translateY(70%)}.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-title,.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-desc{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.cbp-caption-minimal .cbp-caption-activeWrap{top:0;background-color:#000;background-color:rgba(0,0,0,0.8);opacity:0}.cbp-caption-minimal .cbp-caption:hover .cbp-caption-activeWrap{opacity:1}.cbp-caption-moveRight .cbp-caption-activeWrap{left:-100%;top:0;-webkit-transition:-webkit-transform .35s;transition:transform .35s}.cbp-caption-moveRight .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateX(100%);transform:translateX(100%)}.cbp-caption-overlayBottom .cbp-caption-activeWrap{height:60px;background-color:#181616;background-color:rgba(24,22,22,0.7);-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottom .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{-webkit-transition-duration:.35s;transition-duration:.35s}.cbp-caption-overlayBottomAlong .cbp-caption-defaultWrap,.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .35s;transition:transform .35s}.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap{height:auto}.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-34px);transform:translateY(-34px)}.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-overlayBottomPush .cbp-caption-defaultWrap,.cbp-caption-overlayBottomPush .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottomPush .cbp-caption-activeWrap{height:69px;-webkit-transform:translateY(0);transform:translateY(0)}.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-68px);transform:translateY(-68px)}.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-69px);transform:translateY(-69px)}.cbp-caption-overlayBottomReveal .cbp-caption-defaultWrap{z-index:2;-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottomReveal .cbp-caption-activeWrap{bottom:0;z-index:1;height:auto}.cbp-caption-overlayBottomReveal .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-68px);transform:translateY(-68px)}.cbp-caption-overlayRightAlong .cbp-caption-defaultWrap,.cbp-caption-overlayRightAlong .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-overlayRightAlong .cbp-caption-activeWrap{top:0;left:-50%;width:50%}.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateX(25%);transform:translateX(25%)}.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateX(100%);transform:translateX(100%)}.cbp-caption-pushDown .cbp-caption-defaultWrap,.cbp-caption-pushDown .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-pushDown .cbp-caption-activeWrap{top:-100%}.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-defaultWrap,.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(100%);transform:translateY(100%)}.cbp-caption-pushTop .cbp-caption-activeWrap,.cbp-caption-pushTop .cbp-caption-defaultWrap{-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-pushTop .cbp-caption-activeWrap{height:102%}.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-99%);transform:translateY(-99%)}.cbp-caption-revealBottom .cbp-caption-defaultWrap{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-revealBottom .cbp-caption-activeWrap{top:0;z-index:1}.cbp-caption-revealBottom .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-revealLeft .cbp-caption-activeWrap{left:100%;top:0;-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-revealLeft .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.cbp-caption-revealTop .cbp-caption-defaultWrap{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-revealTop .cbp-caption-activeWrap{top:0;z-index:1}.cbp-caption-revealTop .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(100%);transform:translateY(100%)}.cbp-caption-zoom .cbp-caption-defaultWrap{-webkit-transition:-webkit-transform .35s ease-out;transition:transform .35s ease-out}.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:scale(1.25);transform:scale(1.25)}.cbp-caption-zoom .cbp-caption-activeWrap{opacity:0;top:0;background-color:rgba(0,0,0,0.9);-webkit-transition:opacity .4s;transition:opacity .4s}.cbp-caption-zoom .cbp-caption:hover .cbp-caption-activeWrap{opacity:1}.cbp-caption-opacity .cbp-item{padding:1px}.cbp-caption-opacity .cbp-caption,.cbp-caption-opacity .cbp-caption-activeWrap,.cbp-caption-opacity .cbp-caption-defaultWrap{background-color:transparent}.cbp-caption-opacity .cbp-caption{border:1px solid transparent}.cbp-caption-opacity .cbp-caption:hover{border-color:#EDEDED}.cbp-caption-opacity .cbp-caption-defaultWrap{opacity:1;-webkit-transition:opacity .4s;transition:opacity .4s}.cbp-caption-opacity .cbp-caption:hover .cbp-caption-defaultWrap{opacity:.8}.cbp-caption-opacity .cbp-caption:hover .cbp-caption-activeWrap{top:0}.cbp-caption-expand .cbp-caption{border-bottom:1px dotted #eaeaea}.cbp-caption-expand .cbp-caption-activeWrap{height:auto;background-color:transparent}.cbp-caption-expand .cbp-caption-defaultWrap{cursor:pointer;font:500 15px/23px "Roboto", sans-serif;color:#474747;padding:12px 0 11px 26px}.cbp-caption-expand .cbp-caption-defaultWrap svg{position:absolute;top:16px;left:0}.cbp-caption-expand .cbp-l-caption-body{font:400 13px/21px "Roboto", sans-serif;color:#888;padding:0 0 20px 26px}.cbp-caption-expand-active{-webkit-transition:height .4s !important;transition:height .4s !important}.cbp-caption-expand-active .cbp-item{-webkit-transition:left .4s, top .4s !important;transition:left .4s, top .4s !important}.cbp-caption-expand-open .cbp-caption-activeWrap{-webkit-transition:height .4s;transition:height .4s}.cbp-l-filters-alignCenter{margin-bottom:30px;text-align:center;font:400 12px/21px sans-serif;color:#DADADA}.cbp-l-filters-alignCenter .cbp-filter-item{color:#949494;cursor:pointer;font:400 13px/21px "Open Sans", sans-serif;padding:0 12px;position:relative;overflow:visible;margin:0 0 10px;display:inline-block;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.cbp-l-filters-alignCenter .cbp-filter-item:hover{color:#2D2C2C}.cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter{-webkit-transform:translateY(-30px);transform:translateY(-30px)}.cbp-l-filters-alignCenter .cbp-filter-item.cbp-filter-item-active{color:#2D2C2C;cursor:default}.cbp-l-filters-alignCenter .cbp-filter-counter{background-color:#626161}.cbp-l-filters-alignCenter .cbp-filter-counter:after{border-top:4px solid #626161}.cbp-l-filters-alignLeft{margin-bottom:30px}.cbp-l-filters-alignLeft .cbp-filter-item{background-color:#fff;border:1px solid #cdcdcd;cursor:pointer;font:400 12px/30px "Open Sans", sans-serif;padding:0 13px;position:relative;overflow:visible;margin:0 4px 10px 4px;display:inline-block;color:#888888;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out}.cbp-l-filters-alignLeft .cbp-filter-item:hover{color:#111}.cbp-l-filters-alignLeft .cbp-filter-item.cbp-filter-item-active{background-color:#6C7A89;border:1px solid #6C7A89;color:#fff;cursor:default}.cbp-l-filters-alignLeft .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-alignLeft .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-alignLeft .cbp-filter-counter{display:inline}@media only screen and (max-width: 480px){.cbp-l-filters-alignLeft{text-align:center}}.cbp-l-filters-alignRight{margin-bottom:30px;text-align:right}.cbp-l-filters-alignRight .cbp-filter-item{background-color:transparent;color:#8B8B8B;cursor:pointer;font:400 11px/31px "Open Sans", sans-serif;padding:0 14px;position:relative;overflow:visible;margin:0 3px 10px 3px;border:1px solid #E4E2E2;text-transform:uppercase;display:inline-block;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out}.cbp-l-filters-alignRight .cbp-filter-item:hover{color:#2B3444}.cbp-l-filters-alignRight .cbp-filter-item.cbp-filter-item-active{color:#FFFFFF;background-color:#049372;border-color:#049372;cursor:default}.cbp-l-filters-alignRight .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-alignRight .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-alignRight .cbp-filter-counter{background-color:#049372}.cbp-l-filters-alignRight .cbp-filter-counter:after{border-top:4px solid #049372}@media only screen and (max-width: 480px){.cbp-l-filters-alignRight{text-align:center}}.cbp-l-filters-button{margin-bottom:30px}.cbp-l-filters-button .cbp-filter-item{background-color:#FFFFFF;border:1px solid #ECECEC;color:#888888;cursor:pointer;font:400 12px/32px "Open Sans", sans-serif;margin:0 5px 10px 5px;overflow:visible;padding:0 17px;position:relative;display:inline-block;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out}.cbp-l-filters-button .cbp-filter-item:hover{color:#545454;border-color:#DADADA}.cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active{background-color:#545454;color:#fff;border-color:#5d5d5d;cursor:default}.cbp-l-filters-button .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-button .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-button .cbp-filter-counter{background-color:#545454}.cbp-l-filters-button .cbp-filter-counter:after{border-top:4px solid #545454}@media only screen and (max-width: 480px){.cbp-l-filters-button{text-align:center}}.cbp-l-filters-buttonCenter{margin-bottom:30px;text-align:center}.cbp-l-filters-buttonCenter .cbp-filter-item{background-color:#FFFFFF;border:1px solid #ECECEC;color:#888888;cursor:pointer;font:400 12px/32px "Roboto", sans-serif;margin:0 5px 10px 5px;overflow:visible;padding:0 17px;position:relative;display:inline-block;-webkit-transition:color .3s ease-in-out, border-color .3s ease-in-out;transition:color .3s ease-in-out, border-color .3s ease-in-out}.cbp-l-filters-buttonCenter .cbp-filter-item:hover{color:#5d5d5d}.cbp-l-filters-buttonCenter .cbp-filter-item.cbp-filter-item-active{color:#3B9CB3;border-color:#8CD2E5;cursor:default}.cbp-l-filters-buttonCenter .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-buttonCenter .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-buttonCenter .cbp-filter-counter{background-color:#68ABBC}.cbp-l-filters-buttonCenter .cbp-filter-counter:after{border-top:4px solid #68ABBC}.cbp-l-filters-dropdown{margin-bottom:40px;height:38px;position:relative;z-index:5}.cbp-l-filters-dropdownWrap{width:200px;position:absolute;right:0;background:#4d4c4d}.cbp-l-filters-dropdownHeader{font:400 12px/38px "Open Sans", sans-serif;margin:0 17px;color:#FFF;cursor:default;position:relative}.cbp-l-filters-dropdownHeader:after{border-color:#fff rgba(0,0,0,0);border-style:solid;border-width:5px 5px 0;content:"";height:0;position:absolute;right:0;top:50%;width:0;margin-top:-1px}.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownHeader:after{border-width:0 5px 5px}.cbp-l-filters-dropdownList{display:none;list-style:none outside none;margin:0;padding:0}.cbp-l-filters-dropdownList>li{margin:0;list-style:none}.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownList{display:block;margin:0}.cbp-l-filters-dropdownList .cbp-filter-item{background:transparent;color:#b3b3b3;width:100%;text-align:left;font:400 12px/40px "Open Sans", sans-serif;margin:0;padding:0 17px;cursor:pointer;border:none;border-top:1px solid #595959}.cbp-l-filters-dropdownList .cbp-filter-item:hover{color:#e6e6e6}.cbp-l-filters-dropdownList .cbp-filter-item-active{color:#fff;cursor:default}.cbp-l-filters-dropdownWrap .cbp-filter-counter{display:inline}.cbp-l-filters-dropdown-floated{float:right;margin-top:-2px;margin-left:20px;width:200px}@media only screen and (max-width: 480px){.cbp-l-filters-dropdown-floated{width:100%;margin-top:0;margin-left:0}.cbp-l-filters-dropdownWrap{right:0;left:0;margin:0 auto}}.cbp-l-filters-list{margin-bottom:30px;content:"";display:table;clear:both}.cbp-l-filters-list .cbp-filter-item{background-color:transparent;color:#585252;cursor:pointer;font:400 12px/35px "Open Sans", sans-serif;padding:0 18px;position:relative;overflow:visible;margin:0 0 10px;float:left;border:1px solid #3288C4;border-right-width:0;-webkit-transition:left .3s ease-in-out;transition:left .3s ease-in-out}.cbp-l-filters-list .cbp-filter-item:hover{color:#000}.cbp-l-filters-list .cbp-filter-item.cbp-filter-item-active{cursor:default;color:#FFFFFF;background-color:#3288C4}.cbp-l-filters-list-first{border-radius:6px 0 0 6px}.cbp-l-filters-list-last{border-radius:0 6px 6px 0;border-right-width:1px !important}.cbp-l-filters-list .cbp-filter-counter{display:inline}@media only screen and (max-width: 600px){.cbp-l-filters-list .cbp-filter-item{margin-right:5px;border-radius:6px;border-right-width:1px}}.cbp-l-filters-work{margin-bottom:30px;text-align:center}.cbp-l-filters-work .cbp-filter-item{background-color:#FFFFFF;color:#888;cursor:pointer;font:600 11px/37px "Open Sans", sans-serif;margin:0 3px 15px 3px;overflow:visible;padding:0 16px;position:relative;display:inline-block;text-transform:uppercase;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out}.cbp-l-filters-work .cbp-filter-item:hover{color:#fff;background:#607D8B}.cbp-l-filters-work .cbp-filter-item.cbp-filter-item-active{background-color:#607D8B;color:#fff;cursor:default}.cbp-l-filters-work .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-work .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-work .cbp-filter-counter{font:600 11px/37px "Open Sans", sans-serif;text-align:center;display:inline-block;margin-left:8px}.cbp-l-filters-work .cbp-filter-counter:before{content:'('}.cbp-l-filters-work .cbp-filter-counter:after{content:')'}.cbp-l-filters-big{margin-bottom:30px;text-align:center}.cbp-l-filters-big .cbp-filter-item{color:#444;cursor:pointer;font:400 15px/22px "Roboto", sans-serif;margin:0 8px 10px 8px;padding:10px 23px;position:relative;display:inline-block;border:1px solid transparent;text-transform:uppercase;-webkit-transition:color .3s ease-in-out, border .3s ease-in-out;transition:color .3s ease-in-out, border .3s ease-in-out}.cbp-l-filters-big .cbp-filter-item:hover{color:#888}.cbp-l-filters-big .cbp-filter-item.cbp-filter-item-active{border-color:#d5d5d5;color:#444;cursor:default}.cbp-l-filters-big .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-big .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-text{margin-bottom:30px;text-align:center;font:400 12px/36px "Lato", sans-serif;color:#DADADA;padding:0 15px}.cbp-l-filters-text .cbp-filter-item{color:#949494;cursor:pointer;font:400 13px/21px "Lato", sans-serif;padding:0 12px;position:relative;overflow:visible;margin:0 0 10px;display:inline-block;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.cbp-l-filters-text .cbp-filter-item:hover{color:#2D2C2C}.cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter{-webkit-transform:translateY(-30px);transform:translateY(-30px)}.cbp-l-filters-text .cbp-filter-item.cbp-filter-item-active{color:#2D2C2C;cursor:default}.cbp-l-filters-text .cbp-filter-counter{background-color:#626161;font:400 11px/18px "Lato", sans-serif}.cbp-l-filters-text .cbp-filter-counter:after{border-top:4px solid #626161}.cbp-l-filters-text-sort{display:inline-block;font:400 13px/21px "Lato", sans-serif;color:#949494;margin-right:15px}@media only screen and (max-width: 480px){.cbp-l-filters-text-sort{display:block;margin-bottom:10px}}.cbp-l-filters-underline{margin-bottom:30px}.cbp-l-filters-underline .cbp-filter-item{border-bottom:3px solid transparent;cursor:pointer;font:600 14px/21px "Open Sans", sans-serif;padding:8px 10px;position:relative;overflow:visible;margin:0 10px 10px 10px;display:inline-block;color:#787878;-webkit-transition:color .25s ease-in-out, border-color .25s ease-in-out;transition:color .25s ease-in-out, border-color .25s ease-in-out}.cbp-l-filters-underline .cbp-filter-item:hover{color:#111}.cbp-l-filters-underline .cbp-filter-item.cbp-filter-item-active{border-bottom-color:#666;color:#444;cursor:default}.cbp-l-filters-underline .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-underline .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-underline .cbp-filter-counter{display:inline}@media only screen and (max-width: 480px){.cbp-l-filters-underline{text-align:center}}.cbp-l-filters-holder{text-align:center}.cbp-l-filters-holder .cbp-filter-item{cursor:pointer;font:600 16px/21px "Open Sans", sans-serif;padding:8px 10px;position:relative;overflow:visible;margin:0 10px 10px 10px;display:inline-block;color:#555;-webkit-transition:color .25s ease-in-out;transition:color .25s ease-in-out;letter-spacing:0.3px}.cbp-l-filters-holder .cbp-filter-item:hover{color:#d8b345}.cbp-l-filters-holder .cbp-filter-item.cbp-filter-item-active{color:#d8b345;cursor:default}.cbp-l-filters-holder .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-holder .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-holder .cbp-filter-counter{display:inline}@media only screen and (max-width: 480px){.cbp-l-filters-holder{text-align:center}}.cbp-l-subfilters{display:none;opacity:0;margin-bottom:40px;text-align:center}.cbp-l-subfilters .cbp-filter-item{position:relative;font:13px "Open Sans", sans-serif;display:inline-block;color:#9e9e9e;margin:0 15px;cursor:pointer;margin:0 10px 10px 10px;letter-spacing:0.3px}.cbp-l-subfilters .cbp-filter-item:hover{color:#555}.cbp-l-subfilters .cbp-filter-item:after{content:'';background-color:#dfb947;width:0;height:2px;position:absolute;left:50%;bottom:-6px;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:width .3s;transition:width .3s}.cbp-l-subfilters .cbp-filter-item-active{color:#555}.cbp-l-subfilters .cbp-filter-item-active:after{width:100%}.cbp-l-subfilters--active{display:block;-webkit-animation:fadeIn .5s ease both;animation:fadeIn .5s ease both}.cbp-animation-quicksand{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-quicksand .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-quicksand .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-quicksand .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-quicksand .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:quicksand-off .6s ease-out both;animation:quicksand-off .6s ease-out both}.cbp-animation-quicksand .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:quicksand-on .6s ease-out both;animation:quicksand-on .6s ease-out both}@-webkit-keyframes quicksand-off{100%{opacity:0;-webkit-transform:scale3d(0, 0, 0)}}@keyframes quicksand-off{100%{opacity:0;transform:scale3d(0, 0, 0)}}@-webkit-keyframes quicksand-on{0%{opacity:0;-webkit-transform:scale3d(0, 0, 0)}}@keyframes quicksand-on{0%{opacity:0;transform:scale3d(0, 0, 0)}}.cbp-animation-fadeOut,.cbp-animation-boxShadow{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-fadeOut .cbp-item,.cbp-animation-boxShadow .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-fadeOut .cbp-item,.cbp-animation-boxShadow .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-fadeOut .cbp-item-wrapper,.cbp-animation-boxShadow .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-fadeOut .cbp-item-on2off .cbp-item-wrapper,.cbp-animation-boxShadow .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:fadeOut-off .6s ease-in-out both;animation:fadeOut-off .6s ease-in-out both}.cbp-animation-fadeOut .cbp-item-off2on .cbp-item-wrapper,.cbp-animation-boxShadow .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:fadeOut-on .6s ease-in-out both;animation:fadeOut-on .6s ease-in-out both}@-webkit-keyframes fadeOut-off{0%{opacity:1}80%,100%{opacity:0}}@keyframes fadeOut-off{0%{opacity:1}80%,100%{opacity:0}}@-webkit-keyframes fadeOut-on{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut-on{0%{opacity:0}100%{opacity:1}}.cbp-animation-flipOut{-webkit-transition:height .7s ease-in-out;transition:height .7s ease-in-out;will-change:height}.cbp-animation-flipOut .cbp-item{-webkit-transition:-webkit-transform .7s ease-in-out;transition:transform .7s ease-in-out}.cbp-animation-flipOut .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-flipOut .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-flipOut .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:flipOut-out .7s both ease-in;animation:flipOut-out .7s both ease-in}.cbp-animation-flipOut .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:flipOut-in .7s ease-out both;animation:flipOut-in .7s ease-out both}@-webkit-keyframes flipOut-out{50%,100%{-webkit-transform:translateZ(-1000px) rotateY(-90deg);opacity:0.2}}@keyframes flipOut-out{50%,100%{transform:translateZ(-1000px) rotateY(-90deg);opacity:0.2}}@-webkit-keyframes flipOut-in{0%,50%{-webkit-transform:translateZ(-1000px) rotateY(90deg);opacity:0.2}}@keyframes flipOut-in{0%,50%{transform:translateZ(-1000px) rotateY(90deg);opacity:0.2}}.cbp-animation-flipBottom{-webkit-transition:height .7s ease-in-out;transition:height .7s ease-in-out;will-change:height}.cbp-animation-flipBottom .cbp-item{-webkit-transition:-webkit-transform .7s ease-in-out;transition:transform .7s ease-in-out}.cbp-animation-flipBottom .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-flipBottom .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-flipBottom .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:flipBottom-out .7s both ease-in;animation:flipBottom-out .7s both ease-in}.cbp-animation-flipBottom .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:flipBottom-in .7s ease-out both;animation:flipBottom-in .7s ease-out both}@-webkit-keyframes flipBottom-out{50%,100%{-webkit-transform:translateZ(-1000px) rotateX(-90deg);opacity:0.2}}@keyframes flipBottom-out{50%,100%{transform:translateZ(-1000px) rotateX(-90deg);opacity:0.2}}@-webkit-keyframes flipBottom-in{0%,50%{-webkit-transform:translateZ(-1000px) rotateX(90deg);opacity:0.2}}@keyframes flipBottom-in{0%,50%{transform:translateZ(-1000px) rotateX(90deg);opacity:0.2}}.cbp-animation-scaleSides{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-scaleSides .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-scaleSides .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-scaleSides .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-scaleSides .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:scaleSides-out .9s both;animation:scaleSides-out .9s both}.cbp-animation-scaleSides .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:scaleSides-in .9s both;animation:scaleSides-in .9s both}@-webkit-keyframes scaleSides-out{50%,100%{-webkit-transform:scale(0.6);opacity:0}}@keyframes scaleSides-out{50%,100%{transform:scale(0.6);opacity:0}}@-webkit-keyframes scaleSides-in{0%,50%{-webkit-transform:scale(0.6);opacity:0}}@keyframes scaleSides-in{0%,50%{transform:scale(0.6);opacity:0}}.cbp-animation-skew{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-skew .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-skew .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-skew .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-skew .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:skew-off .6s ease-out both;animation:skew-off .6s ease-out both}.cbp-animation-skew .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:skew-on .6s ease-out both;animation:skew-on .6s ease-out both}@-webkit-keyframes skew-off{100%{opacity:0;-webkit-transform:scale3d(0, 0, 0) skew(20deg, 0)}}@keyframes skew-off{100%{opacity:0;transform:scale3d(0, 0, 0) skew(20deg, 0)}}@-webkit-keyframes skew-on{0%{opacity:0;-webkit-transform:scale3d(0, 0, 0) skew(0, 20deg)}}@keyframes skew-on{0%{opacity:0;transform:scale3d(0, 0, 0) skew(0, 20deg)}}.cbp-animation-fadeOutTop{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-fadeOutTop .cbp-wrapper-outer{overflow:visible}.cbp-animation-fadeOutTop .cbp-item{-webkit-perspective:1000px;perspective:1000px;overflow:visible}.cbp-animation-fadeOutTop .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-fadeOutTop .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:fadeOutTop-out .6s both ease-in-out;animation:fadeOutTop-out .6s both ease-in-out}.cbp-animation-fadeOutTop .cbp-wrapper .cbp-item-wrapper{-webkit-animation:fadeOutTop-in .6s both ease-in-out;animation:fadeOutTop-in .6s both ease-in-out}@-webkit-keyframes fadeOutTop-out{0%{-webkit-transform:translateY(0);opacity:1}50%,100%{-webkit-transform:translateY(-30px);opacity:0}}@keyframes fadeOutTop-out{0%{transform:translateY(0);opacity:1}50%,100%{transform:translateY(-30px);opacity:0}}@-webkit-keyframes fadeOutTop-in{0%,50%{-webkit-transform:translateY(-30px);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@keyframes fadeOutTop-in{0%,50%{transform:translateY(-30px);opacity:0}100%{transform:translateY(0);opacity:1}}.cbp-animation-slideLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-slideLeft .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-slideLeft .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-slideLeft .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:slideLeft-out .8s both ease-in-out;animation:slideLeft-out .8s both ease-in-out}.cbp-animation-slideLeft .cbp-wrapper .cbp-item-wrapper{-webkit-animation:slideLeft-in .8s both ease-in-out;animation:slideLeft-in .8s both ease-in-out}@-webkit-keyframes slideLeft-out{0%{opacity:1;transform:scale(1)}25%{opacity:.75;-webkit-transform:scale(0.8)}75%{opacity:.75;-webkit-transform:scale(0.8) translateX(-200%)}100%{opacity:.75;-webkit-transform:scale(0.8) translateX(-200%)}}@keyframes slideLeft-out{0%{opacity:1;transform:scale(1)}25%{opacity:.75;transform:scale(0.8)}75%{opacity:.75;transform:scale(0.8) translateX(-200%)}100%{opacity:.75;transform:scale(0.8) translateX(-200%)}}@-webkit-keyframes slideLeft-in{0%,25%{opacity:.75;-webkit-transform:scale(0.8) translateX(200%)}75%{opacity:.75;-webkit-transform:scale(0.8)}100%{opacity:1;-webkit-transform:scale(1) translateX(0)}}@keyframes slideLeft-in{0%,25%{opacity:.75;transform:scale(0.8) translateX(200%)}75%{opacity:.75;transform:scale(0.8)}100%{opacity:1;transform:scale(1) translateX(0)}}.cbp-animation-sequentially{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-sequentially .cbp-wrapper-outer{overflow:visible}.cbp-animation-sequentially .cbp-item{-webkit-perspective:1000px;perspective:1000px;overflow:visible}.cbp-animation-sequentially .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-sequentially .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:fadeOutTop-out .6s both ease;animation:fadeOutTop-out .6s both ease}.cbp-animation-sequentially .cbp-wrapper .cbp-item-wrapper{-webkit-animation:fadeOutTop-in .6s both ease-out;animation:fadeOutTop-in .6s both ease-out}.cbp-animation-3dflip{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-3dflip .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-3dflip .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-3dflip .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:0% 50%;transform-origin:0% 50%;-webkit-animation:flip-out 0.6s both ease-in-out;animation:flip-out 0.6s both ease-in-out}.cbp-animation-3dflip .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:flip-in 0.6s both ease-in-out;animation:flip-in 0.6s both ease-in-out}@-webkit-keyframes flip-out{100%{opacity:0;-webkit-transform:rotateY(90deg)}}@keyframes flip-out{100%{opacity:0;transform:rotateY(90deg)}}@-webkit-keyframes flip-in{0%{opacity:0;-webkit-transform:rotateY(-90deg)}100%{opacity:1;-webkit-transform:rotateY(0deg)}}@keyframes flip-in{0%{opacity:0;transform:rotateY(-90deg)}100%{opacity:1;transform:rotateY(0deg)}}.cbp-animation-flipOutDelay{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-flipOutDelay .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-flipOutDelay .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-flipOutDelay .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:flipOut-out 1s both ease-in;animation:flipOut-out 1s both ease-in}.cbp-animation-flipOutDelay .cbp-wrapper .cbp-item-wrapper{-webkit-animation:flipOut-in 1s both ease-out;animation:flipOut-in 1s both ease-out}.cbp-animation-slideDelay{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-slideDelay .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-slideDelay .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-slideDelay .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:slideDelay-out 0.5s both ease-in-out;animation:slideDelay-out 0.5s both ease-in-out}.cbp-animation-slideDelay .cbp-wrapper .cbp-item-wrapper{-webkit-animation:slideDelay-in 0.5s both ease-in-out;animation:slideDelay-in 0.5s both ease-in-out}@-webkit-keyframes slideDelay-out{100%{-webkit-transform:translateX(-100%)}}@keyframes slideDelay-out{100%{transform:translateX(-100%)}}@-webkit-keyframes slideDelay-in{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes slideDelay-in{0%{transform:translateX(100%)}100%{transform:translateX(0)}}.cbp-animation-rotateSides{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-rotateSides .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-rotateSides .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-rotateSides .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:-50% 50%;-webkit-animation:rotateSides-out .5s both ease-in;transform-origin:-50% 50%;animation:rotateSides-out .5s both ease-in}.cbp-animation-rotateSides .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:150% 50%;-webkit-animation:rotateSides-in .6s both ease-out;transform-origin:150% 50%;animation:rotateSides-in .6s both ease-out}@-webkit-keyframes rotateSides-out{100%{opacity:0;-webkit-transform:translateZ(-500px) rotateY(90deg)}}@keyframes rotateSides-out{100%{opacity:0;transform:translateZ(-500px) rotateY(90deg)}}@-webkit-keyframes rotateSides-in{0%{opacity:0;-webkit-transform:translateZ(-500px) rotateY(-90deg)}40%{opacity:0;-webkit-transform:translateZ(-500px) rotateY(-90deg)}}@keyframes rotateSides-in{0%{opacity:0;transform:translateZ(-500px) rotateY(-90deg)}40%{opacity:0;transform:translateZ(-500px) rotateY(-90deg)}}.cbp-animation-foldLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-foldLeft .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-foldLeft .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-foldLeft .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:foldLeft-out .7s both;animation:foldLeft-out .7s both}.cbp-animation-foldLeft .cbp-wrapper .cbp-item-wrapper{-webkit-animation:foldLeft-in .7s both;animation:foldLeft-in .7s both}@-webkit-keyframes foldLeft-out{100%{opacity:0;-webkit-transform:translateX(-100%) rotateY(-90deg)}}@keyframes foldLeft-out{100%{opacity:0;transform:translateX(-100%) rotateY(-90deg)}}@-webkit-keyframes foldLeft-in{0%{opacity:0.3;-webkit-transform:translateX(100%)}}@keyframes foldLeft-in{0%{opacity:0.3;transform:translateX(100%)}}.cbp-animation-unfold{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-unfold .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-unfold .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-unfold .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:unfold-out .8s both;animation:unfold-out .8s both}.cbp-animation-unfold .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:0% 50%;-webkit-animation:unfold-in .8s both;transform-origin:0% 50%;animation:unfold-in .8s both}@-webkit-keyframes unfold-out{90%{opacity:0.3}100%{opacity:0;-webkit-transform:translateX(-100%)}}@keyframes unfold-out{90%{opacity:0.3}100%{opacity:0;transform:translateX(-100%)}}@-webkit-keyframes unfold-in{0%{opacity:0;-webkit-transform:translateX(100%) rotateY(90deg)}}@keyframes unfold-in{0%{opacity:0;transform:translateX(100%) rotateY(90deg)}}.cbp-animation-scaleDown{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-scaleDown .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-scaleDown .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-scaleDown .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:scaleDown-out .7s both;animation:scaleDown-out .7s both}.cbp-animation-scaleDown .cbp-wrapper .cbp-item-wrapper{-webkit-animation:scaleDown-in .6s both;animation:scaleDown-in .6s both}@-webkit-keyframes scaleDown-out{100%{opacity:0;-webkit-transform:scale(0.8)}}@keyframes scaleDown-out{100%{opacity:0;transform:scale(0.8)}}@-webkit-keyframes scaleDown-in{0%{-webkit-transform:translateX(100%)}}@keyframes scaleDown-in{0%{transform:translateX(100%)}}.cbp-animation-frontRow{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-frontRow .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-frontRow .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-frontRow .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:frontRow-out .7s both ease;animation:frontRow-out .7s both ease}.cbp-animation-frontRow .cbp-wrapper .cbp-item-wrapper{-webkit-animation:frontRow-in .6s both ease;animation:frontRow-in .6s both ease}@-webkit-keyframes frontRow-out{100%{-webkit-transform:translateX(-60%) scale(0.8);opacity:0}}@keyframes frontRow-out{100%{transform:translateX(-60%) scale(0.8);opacity:0}}@-webkit-keyframes frontRow-in{0%{-webkit-transform:translateX(100%) scale(0.8)}100%{opacity:1;-webkit-transform:translateX(0%) scale(1)}}@keyframes frontRow-in{0%{transform:translateX(100%) scale(0.8)}100%{opacity:1;transform:translateX(0%) scale(1)}}.cbp-animation-rotateRoom{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-rotateRoom .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-rotateRoom .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-rotateRoom .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:rotateRoom-out .8s both ease;animation:rotateRoom-out .8s both ease}.cbp-animation-rotateRoom .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:0% 50%;transform-origin:0% 50%;-webkit-animation:rotateRoom-in .8s both ease;animation:rotateRoom-in .8s both ease}@-webkit-keyframes rotateRoom-out{90%{opacity:.3}100%{opacity:0;-webkit-transform:translateX(-100%) rotateY(90deg)}}@keyframes rotateRoom-out{90%{opacity:.3}100%{opacity:0;transform:translateX(-100%) rotateY(90deg)}}@-webkit-keyframes rotateRoom-in{0%{opacity:.3;-webkit-transform:translateX(100%) rotateY(-90deg)}}@keyframes rotateRoom-in{0%{opacity:.3;transform:translateX(100%) rotateY(-90deg)}}.cbp-animation-bounceBottom{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-bounceBottom .cbp-wrapper-helper{-webkit-animation:bounceBottom-out .6s both ease-in-out;animation:bounceBottom-out .6s both ease-in-out}.cbp-animation-bounceBottom .cbp-wrapper{-webkit-animation:bounceBottom-in .6s both ease-in-out;animation:bounceBottom-in .6s both ease-in-out}@-webkit-keyframes bounceBottom-out{100%{-webkit-transform:translateY(100%);opacity:0}}@keyframes bounceBottom-out{100%{transform:translateY(100%);opacity:0}}@-webkit-keyframes bounceBottom-in{0%{-webkit-transform:translateY(100%);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@keyframes bounceBottom-in{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}.cbp-animation-bounceLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-bounceLeft .cbp-wrapper-helper{-webkit-animation:bounceLeft-out .6s both ease-in-out;animation:bounceLeft-out .6s both ease-in-out}.cbp-animation-bounceLeft .cbp-wrapper{-webkit-animation:bounceLeft-in .6s both ease-in-out;animation:bounceLeft-in .6s both ease-in-out}@-webkit-keyframes bounceLeft-out{100%{-webkit-transform:translateX(-100%);opacity:0}}@keyframes bounceLeft-out{100%{transform:translateX(-100%);opacity:0}}@-webkit-keyframes bounceLeft-in{0%{-webkit-transform:translateX(-100%);opacity:0}100%{-webkit-transform:translateX(0);opacity:1}}@keyframes bounceLeft-in{0%{transform:translateX(-100%);opacity:0}100%{transform:translateX(0);opacity:1}}.cbp-animation-bounceTop{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-bounceTop .cbp-wrapper-helper{-webkit-animation:bounceTop-out .6s both ease-in-out;animation:bounceTop-out .6s both ease-in-out}.cbp-animation-bounceTop .cbp-wrapper{-webkit-animation:bounceTop-in .6s both ease-in-out;animation:bounceTop-in .6s both ease-in-out}@-webkit-keyframes bounceTop-out{100%{-webkit-transform:translateY(-100%);opacity:0}}@keyframes bounceTop-out{100%{transform:translateY(-100%);opacity:0}}@-webkit-keyframes bounceTop-in{0%{-webkit-transform:translateY(-100%);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@keyframes bounceTop-in{0%{transform:translateY(-100%);opacity:0}100%{transform:translateY(0);opacity:1}}.cbp-animation-moveLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-moveLeft .cbp-wrapper-helper{-webkit-animation:moveLeft-out .6s both ease-in-out;animation:moveLeft-out .6s both ease-in-out}.cbp-animation-moveLeft .cbp-wrapper{-webkit-animation:moveLeft-in .6s both ease-in-out;animation:moveLeft-in .6s both ease-in-out}@-webkit-keyframes moveLeft-out{100%{-webkit-transform:translateX(-100%);opacity:0}}@keyframes moveLeft-out{100%{transform:translateX(-100%);opacity:0}}@-webkit-keyframes moveLeft-in{0%{-webkit-transform:translateX(100%);opacity:0}100%{-webkit-transform:translateX(0);opacity:1}}@keyframes moveLeft-in{0%{transform:translateX(100%);opacity:0}100%{transform:translateX(0);opacity:1}}.cbp-displayType-bottomToTop{-webkit-perspective:1000px;perspective:1000px}.cbp-displayType-bottomToTop .cbp-item{-webkit-animation:fadeInBottomToTop .3s both ease-in;animation:fadeInBottomToTop .3s both ease-in}@-webkit-keyframes fadeInBottomToTop{0%{opacity:0;-webkit-transform:translateY(50px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInBottomToTop{0%{opacity:0;transform:translateY(50px)}100%{opacity:1;transform:translateY(0)}}.cbp-displayType-fadeIn{-webkit-animation:fadeIn .5s both ease-in;animation:fadeIn .5s both ease-in}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.cbp-displayType-fadeInToTop{-webkit-perspective:1000px;perspective:1000px;-webkit-animation:fadeInToTop .5s both ease-in;animation:fadeInToTop .5s both ease-in}@-webkit-keyframes fadeInToTop{0%{opacity:0;-webkit-transform:translateY(30px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInToTop{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}.cbp-displayType-sequentially .cbp-item{-webkit-animation:fadeIn .5s both ease-in;animation:fadeIn .5s both ease-in}.cbp-lightbox img{display:block;border:0;width:100%;height:auto}.cbp-popup-ie8bg{position:absolute;width:100%;height:100%;min-height:100%;top:0;left:0;z-index:-1;background:#000}.cbp-popup-wrap{height:100%;text-align:center;position:fixed;width:100%;left:0;top:0;display:none;z-index:99990;padding:0 10px}.cbp-popup-wrap video{outline:0 none}.cbp-popup-lightbox{background:rgba(0,0,0,0.8);display:flex;justify-content:center;align-items:center}.cbp-popup-singlePage{background:#fff;padding:0}.cbp-popup-wrap:before{content:"";display:inline-block;height:100%;vertical-align:middle}.cbp-popup-content-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:hidden;overflow-x:hidden;-webkit-overflow-scrolling:touch}.cbp-popup-content{position:relative;display:inline-block;vertical-align:middle;text-align:left;max-width:100%}.cbp-popup-lightbox .cbp-popup-content{display:flex}.cbp-popup-singlePage .cbp-popup-content{position:relative;z-index:1;margin-top:145px;max-width:1024px;vertical-align:top;width:94%}.cbp-popup-singlePage .cbp-popup-content-basic{position:relative;z-index:1;margin-top:104px;vertical-align:top;width:100%;display:inline-block;text-align:left}.cbp-popup-lightbox-figure{width:100%;position:relative;padding:20px 0}.cbp-popup-lightbox-bottom{position:relative;margin-top:3px}.cbp-popup-lightbox-title{padding-right:50px;font:400 12px/18px "Open Sans", sans-serif;color:#eee}.cbp-popup-lightbox-counter{position:absolute;top:0;right:0;font:400 12px/18px "Open Sans", sans-serif;color:#eee}.cbp-popup-lightbox-img{width:auto;max-width:100%;height:auto;display:block;box-shadow:0 0 8px rgba(0,0,0,0.6)}.cbp-popup-lightbox-img[data-action]{cursor:pointer}.cbp-popup-lightbox-isIframe .cbp-popup-content{width:75%;display:inline-block}@media only screen and (max-width: 768px){.cbp-popup-lightbox-isIframe .cbp-popup-content{width:95%}}.cbp-popup-lightbox-isIframe .cbp-lightbox-bottom{left:0;position:absolute;top:100%;width:100%;margin-top:3px}.cbp-popup-lightbox-iframe{position:relative;height:0;padding-bottom:56.25%;background:#000}.cbp-popup-lightbox-iframe iframe{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6)}.cbp-popup-lightbox-iframe audio{margin-top:27%}.cbp-popup-lightbox-iframe .cbp-popup-lightbox-bottom{position:absolute;left:0;top:100%;width:100%}.cbp-popup-singlePage .cbp-popup-navigation-wrap{position:absolute;top:0;left:0;width:100%;z-index:10;height:104px;background-color:#3D4750}.cbp-popup-singlePage .cbp-popup-navigation{position:relative;width:100%;height:100%}.cbp-popup-singlePage-sticky .cbp-popup-navigation-wrap{position:fixed}.cbp-popup-singlePage-counter{color:#fff;position:absolute;margin:auto;right:40px;top:0;bottom:0;font:400 13px/30px "Open Sans", sans-serif;height:30px}@media only screen and (max-width: 768px){.cbp-popup-singlePage-counter{right:3%}}.cbp-popup-next,.cbp-popup-prev,.cbp-popup-close{padding:0;border:medium none;position:absolute;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cbp-popup-lightbox .cbp-popup-prev,.cbp-popup-lightbox .cbp-popup-next,.cbp-popup-lightbox .cbp-popup-close{visibility:hidden}.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-next,.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-prev,.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-close{visibility:visible}.cbp-popup-lightbox .cbp-popup-prev{background:url("../img/cbp-sprite.png") no-repeat scroll 0 0 transparent;width:44px;height:44px;top:0;bottom:0;left:20px;margin:auto}.cbp-popup-lightbox .cbp-popup-prev:hover{background-position:0 -46px}.cbp-popup-singlePage .cbp-popup-prev{background:url("../img/cbp-sprite.png") no-repeat scroll 0 -92px transparent;width:44px;height:44px;margin:auto;top:0;right:108px;bottom:0;left:0}.cbp-popup-singlePage .cbp-popup-prev:hover{background-position:0 -138px}.cbp-popup-lightbox .cbp-popup-next{background:url("../img/cbp-sprite.png") no-repeat scroll -46px 0 transparent;width:44px;height:44px;top:0;bottom:0;right:20px;margin:auto}.cbp-popup-lightbox .cbp-popup-next:hover{background-position:-46px -46px}.cbp-popup-singlePage .cbp-popup-next{background:url("../img/cbp-sprite.png") no-repeat scroll -46px -92px transparent;width:44px;height:44px;margin:auto;top:0;right:0;bottom:0;left:108px}.cbp-popup-singlePage .cbp-popup-next:hover{background-position:-46px -138px}.cbp-popup-lightbox .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent;height:40px;width:40px;right:20px;top:20px}.cbp-popup-lightbox .cbp-popup-close:hover{background-position:-92px -46px}.cbp-popup-singlePage .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -92px -92px transparent;height:44px;width:44px;margin:auto;top:0;right:0;bottom:0;left:0}.cbp-popup-singlePage .cbp-popup-close:hover{background-position:-92px -138px}.cbp-popup-singlePage .cbp-popup-ie8bg{background-color:#fff}@media only screen and (max-width: 360px), (max-height: 600px){.cbp-popup-next,.cbp-popup-prev,.cbp-popup-close{-webkit-transform:scale(0.8);transform:scale(0.8)}.cbp-popup-lightbox .cbp-popup-close{right:10px;top:10px}.cbp-popup-lightbox .cbp-popup-next{right:10px}.cbp-popup-lightbox .cbp-popup-prev{left:10px}.cbp-popup-singlePage .cbp-popup-navigation-wrap{height:84px}.cbp-popup-singlePage .cbp-popup-content{margin-top:120px}}.cbp-popup-loadingBox{width:100%;height:100%;position:absolute;top:0;left:0}.cbp-popup-lightbox .cbp-popup-loadingBox:after{border-left:3px solid rgba(255,255,255,0.3);border-right:3px solid rgba(255,255,255,0.3);border-bottom:3px solid rgba(255,255,255,0.3);border-top:3px solid rgba(255,255,255,0.85)}.cbp-popup-ready .cbp-popup-loadingBox{visibility:hidden;display:none}.cbp-popup-loading .cbp-popup-loadingBox{visibility:visible;display:block}.cbp-popup-transitionend .cbp-popup-content-wrap{overflow-y:scroll}.cbp-popup-singlePage{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-popup-singlePage.cbp-popup-loading .cbp-popup-content{opacity:0}.cbp-popup-singlePage-fade{-webkit-transform:translateX(0);transform:translateX(0);opacity:0;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.cbp-popup-singlePage-open.cbp-popup-singlePage-fade{opacity:1}.cbp-popup-singlePage-right{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-popup-singlePage-open{-webkit-transform:none;transform:none}.cbp-l-project-title{color:#454444;font:600 42px/46px "Open Sans", sans-serif;letter-spacing:2px;margin-bottom:15px;text-align:center;text-transform:uppercase}.cbp-l-project-subtitle{color:#787878;font:400 14px/21px "Open Sans", sans-serif;margin:0 auto 50px;max-width:500px;text-align:center}.cbp-popup-singlePage .cbp-popup-content .cbp-l-project-img{display:block;margin:0 auto;max-width:100%}.cbp-l-project-container{overflow:hidden;margin:40px auto 0;clear:both}.cbp-l-project-desc{float:left;width:62%}.cbp-l-project-details{float:right;width:38%;padding-left:60px;margin-bottom:15px}@media only screen and (max-width: 768px){.cbp-l-project-title{font-size:30px;line-height:34px}.cbp-l-project-desc{width:100%}.cbp-l-project-details{width:100%;margin-top:20px;padding-left:0}}.cbp-l-project-desc-title{border-bottom:1px solid #cdcdcd;margin-bottom:22px;color:#444}.cbp-l-project-desc-title span,.cbp-l-project-details-title span{border-bottom:1px solid #747474;display:inline-block;margin:0 0 -1px 0;font:400 16px/36px "Open Sans", sans-serif;padding:0 5px 0 0}.cbp-l-project-desc-text{font:400 13px/20px "Open Sans", sans-serif;color:#555;margin-bottom:20px}.cbp-l-project-details-title{border-bottom:1px solid #cdcdcd;margin-bottom:19px;color:#444}.cbp-l-project-details-list{margin:0;padding:0;list-style:none}.cbp-l-project-details-list>li,.cbp-l-project-details-list>div{border-bottom:1px dotted #DFDFDF;padding:inherit;color:#666;font:400 12px/30px "Open Sans", sans-serif}.cbp-l-project-details-list>li:last-child,.cbp-l-project-details-list>div:last-child{border:none}.cbp-l-project-details-list strong{display:inline-block;color:#696969;font-weight:600;min-width:100px}.cbp-l-project-details-item{display:flex}.cbp-l-project-details-name{color:#696969;font-weight:600;min-width:80px;margin-right:20px}.cbp-l-project-details-visit{color:#FFFFFF;float:right;clear:both;text-decoration:none;font:400 11px/18px "Open Sans", sans-serif;margin-top:25px;background-color:#62B57B;padding:8px 19px;text-transform:uppercase;letter-spacing:.5px}.cbp-l-project-details-visit:hover{opacity:0.9;color:#fff}.cbp-l-project-related-wrap{font-size:0;margin:0;padding:0}.cbp-l-project-related-item{margin-left:5%;max-width:30%;float:left}.cbp-l-project-related-item:first-child{margin-left:0}.cbp-l-project-related-title{font:700 14px/18px "Open Sans", sans-serif;color:#474747;margin-top:20px}.cbp-l-project-related-link{text-decoration:none}.cbp-l-project-related-link:hover{opacity:0.9}.cbp-l-member-img{float:left;width:40%;margin-top:20px}.cbp-l-member-img img{border:1px solid #e2e2e2;width:auto;max-width:100%;height:auto;display:inline-block;border:0}.cbp-l-member-info{margin-top:20px;padding-left:25px;float:left;width:60%}@media only screen and (max-width: 768px){.cbp-l-member-img{width:100%;text-align:center}.cbp-l-member-info{width:100%;padding-left:0}}.cbp-l-member-name{font:400 28px/28px "Open Sans", sans-serif;color:#474747}.cbp-l-member-position{font:400 13px/21px "Open Sans", sans-serif;color:#888;margin-top:6px}.cbp-l-member-desc{font:400 12px/18px "Open Sans", sans-serif;margin-top:25px;color:#474747}.cbp-popup-singlePageInline-open{-webkit-transition:height .5s 0s !important;transition:height .5s 0s !important}.cbp-popup-singlePageInline-open .cbp-item{-webkit-transition:-webkit-transform .5s 0s !important;transition:transform .5s 0s !important}.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline:after{display:none;visibility:hidden}.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-content,.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-navigation{-webkit-transition-delay:0;transition-delay:0}.cbp-popup-singlePageInline{width:100%;position:absolute;top:0;left:0;z-index:0;overflow:hidden}.cbp-popup-singlePageInline .cbp-popup-content{opacity:0;width:100%;z-index:1;min-height:300px}.cbp-popup-singlePageInline .cbp-popup-content,.cbp-popup-singlePageInline .cbp-popup-navigation{-webkit-transition:opacity .4s ease-in .2s;transition:opacity .4s ease-in .2s}.cbp-popup-singlePageInline .cbp-popup-navigation{opacity:0;position:absolute;top:0;right:0;z-index:2;width:40px;height:40px}.cbp-popup-singlePageInline .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent;height:40px;width:40px;right:20px;top:30px}.cbp-popup-singlePageInline .cbp-popup-close:hover{opacity:0.7}.cbp-popup-singlePageInline-ready{z-index:4}.cbp-popup-singlePageInline-ready .cbp-popup-content,.cbp-popup-singlePageInline-ready .cbp-popup-navigation{opacity:1}.cbp-popup-singlePageInline-ready:after{display:none;visibility:hidden}.cbp-singlePageInline-active{opacity:0.6 !important}.cbp-l-inline{margin:20px 0;overflow:hidden;background:#FAFAFA;padding:30px}.cbp-l-inline-left{float:left;width:44%}.cbp-l-project-img{max-width:100%}.cbp-l-inline-right{float:right;width:56%;padding-left:inherit}@media only screen and (max-width: 768px){.cbp-l-inline-left{width:100%;text-align:center;margin-top:40px}.cbp-l-inline-right{width:100%;padding-left:0;margin-top:20px}}.cbp-l-inline-title{font:400 28px/30px "Open Sans", sans-serif;color:#474747}.cbp-l-inline-subtitle{font:400 13px/21px "Open Sans", sans-serif;color:#888;margin-top:7px}.cbp-l-inline-desc{font:400 13px/20px "Open Sans", sans-serif;color:#474747;margin-top:25px;margin-bottom:20px}.cbp-l-inline-view-wrap{text-align:right}.cbp-l-inline-view{font:400 13px/35px "Open Sans", sans-serif;color:#9C9C9C;margin-top:40px;display:inline-block;padding:0 20px;border:1px solid #ccc;text-decoration:none}.cbp-l-inline-view:hover{color:#757575}.cbp-l-inline-details{margin-bottom:15px;font:13px/22px "Open Sans", sans-serif}.cbp-l-loadMore-defaultText,.cbp-l-loadMore-button-defaultText{display:block}.cbp-l-loadMore-loadingText,.cbp-l-loadMore-noMoreLoading,.cbp-l-loadMore-button-loadingText,.cbp-l-loadMore-button-noMoreLoading{display:none}.cbp-l-loadMore-loading .cbp-l-loadMore-loadingText,.cbp-l-loadMore-loading .cbp-l-loadMore-button-loadingText{display:block}.cbp-l-loadMore-loading .cbp-l-loadMore-defaultText,.cbp-l-loadMore-loading .cbp-l-loadMore-noMoreLoading,.cbp-l-loadMore-loading .cbp-l-loadMore-button-defaultText,.cbp-l-loadMore-loading .cbp-l-loadMore-button-noMoreLoading{display:none}.cbp-l-loadMore-stop .cbp-l-loadMore-noMoreLoading,.cbp-l-loadMore-stop .cbp-l-loadMore-button-noMoreLoading{display:block}.cbp-l-loadMore-stop .cbp-l-loadMore-defaultText,.cbp-l-loadMore-stop .cbp-l-loadMore-loadingText,.cbp-l-loadMore-stop .cbp-l-loadMore-button-defaultText,.cbp-l-loadMore-stop .cbp-l-loadMore-button-loadingText{display:none}.cbp-l-loadMore-bgbutton{text-align:center}.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link{border:1px solid #DEDEDE;color:#7E7B7B;display:inline-block;font:400 13px/40px "Lato", sans-serif;min-width:80px;text-decoration:none;padding:0 50px;margin-top:50px;outline:0;box-shadow:none;letter-spacing:1px;-webkit-transition:color .25s;transition:color .25s}.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link:hover,.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-loading{color:#B0B0B0}.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-stop{color:#B0B0B0;cursor:default}.cbp-l-loadMore-button{text-align:center}.cbp-l-loadMore-button .cbp-l-loadMore-link,.cbp-l-loadMore-button .cbp-l-loadMore-button-link{border:1px solid #DEDEDE;color:#7E7B7B;display:inline-block;font:400 12px/36px "Open Sans", sans-serif;min-width:80px;text-decoration:none;padding:0 30px;outline:0;margin-top:40px;box-shadow:none;-webkit-transition:color .25s;transition:color .25s}.cbp-l-loadMore-button .cbp-l-loadMore-link:hover,.cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-loading,.cbp-l-loadMore-button .cbp-l-loadMore-button-link:hover,.cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-loading{color:#B0B0B0}.cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-stop,.cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-button-stop,.cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-stop,.cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-button-stop{cursor:default;color:#B0B0B0}.cbp-l-loadMore-text{text-align:center}.cbp-l-loadMore-text .cbp-l-loadMore-link,.cbp-l-loadMore-text .cbp-l-loadMore-text-link{font:400 15px "Open Sans", sans-serif;color:#7E7B7B;text-decoration:none;cursor:pointer;margin-top:50px;display:block}.cbp-l-loadMore-text .cbp-l-loadMore-stop,.cbp-l-loadMore-text .cbp-l-loadMore-text-stop{color:#B0B0B0;cursor:default}.cbp-mode-slider{-webkit-transition:height .35s;transition:height .35s}.cbp-mode-slider .cbp-wrapper,.cbp-mode-slider .cbp-item{-webkit-transition:-webkit-transform .35s;transition:transform .35s}.cbp-mode-slider .cbp-wrapper{cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.cbp-mode-slider-dragStart *{cursor:move !important;cursor:-ms-grabbing !important;cursor:-webkit-grabbing !important;cursor:-moz-grabbing !important;cursor:grabbing !important}.cbp-mode-slider-dragStart .cbp-wrapper{-webkit-transition:none;transition:none}.cbp-nav-next,.cbp-nav-prev{position:relative;background:#7c8b90;cursor:pointer;display:inline-block;margin-left:1px;height:22px;width:21px}.cbp-nav-next{border-radius:0 2px 2px 0}.cbp-nav-prev{border-radius:2px 0 0 2px}.cbp-nav-next:hover,.cbp-nav-prev:hover{opacity:0.8}.cbp-nav-next:after,.cbp-nav-prev:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;background:url("../img/cbp-sprite.png") no-repeat;height:10px;width:7px}.cbp-nav-next:after{background-position:-134px 0}.cbp-nav-prev:after{background-position:-134px -12px}.cbp-nav-stop{opacity:0.5 !important;cursor:default !important}.cbp-nav{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cbp-nav-controls{position:absolute;top:-51px;right:0;z-index:100}.cbp-nav-pagination{position:absolute;bottom:-30px;right:0;z-index:100;left:0;text-align:center}.cbp-nav-pagination-item{position:relative;width:10px;height:10px;border-radius:50%;margin:0 4px;display:inline-block;cursor:pointer;background:#c2c2c2;-webkit-transition:background 0.5s;transition:background 0.5s}.cbp-nav-pagination-active{background:#797979}.cbp-pagination-item{max-width:100px;display:inline-block;cursor:pointer;margin-top:10px;margin-right:5px;position:relative}.cbp-pagination-item img{display:block;width:100%;height:auto;border:0}.cbp-pagination-item:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);-webkit-transition:background .5s ease-in-out;transition:background .5s ease-in-out}.cbp-pagination-active:after{background:rgba(0,0,0,0)}.cbp-slider-wrap,.cbp-slider-item{margin:0;padding:0;list-style-type:none}.cbp-slider .cbp-nav-controls{position:static}.cbp-slider .cbp-nav-next,.cbp-slider .cbp-nav-prev{background:transparent;position:absolute;margin:auto;top:0;bottom:0;z-index:100;width:44px;height:44px}.cbp-slider .cbp-nav-next{right:25px;left:auto}.cbp-slider .cbp-nav-prev{left:25px;right:auto}.cbp-slider .cbp-nav-next:after,.cbp-slider .cbp-nav-prev:after{background:url("../img/cbp-sprite.png") no-repeat;width:44px;height:44px}.cbp-slider .cbp-nav-next:after{background-position:-46px -92px}.cbp-slider .cbp-nav-next:hover:after{background-position:-46px -46px}.cbp-slider .cbp-nav-prev:after{background-position:0 -92px}.cbp-slider .cbp-nav-prev:hover:after{background-position:0 -46px}.cbp-slider .cbp-nav-pagination{text-align:right;bottom:20px;right:25px;left:auto}.cbp-slider-edge .cbp-nav-controls{position:static}.cbp-slider-edge .cbp-nav-next,.cbp-slider-edge .cbp-nav-prev{background:transparent;position:absolute;margin:auto;top:0;bottom:0;z-index:100;width:44px;height:44px}.cbp-slider-edge .cbp-nav-next{right:0;left:auto}.cbp-slider-edge .cbp-nav-prev{left:0;right:auto}.cbp-slider-edge .cbp-nav-next:after,.cbp-slider-edge .cbp-nav-prev:after{background:url("../img/cbp-sprite.png") no-repeat;width:9px;height:16px}.cbp-slider-edge .cbp-nav-next:after{background-position:-134px -24px}.cbp-slider-edge .cbp-nav-prev:after{background-position:-134px -42px}.cbp-slider-edge .cbp-nav-pagination{bottom:-50px}.cbp-slider-edge .cbp-nav-pagination-item{border:2px solid #0f0f0f;opacity:0.4;background:transparent}.cbp-slider-edge .cbp-nav-pagination-active{background:#000}.cbp-slider-inline{position:relative}.cbp-slider-inline .cbp-slider-item{position:absolute;width:100%;top:0;-webkit-transition:left .5s;transition:left .5s}.cbp-slider-inline .cbp-slider-item--active{position:relative;z-index:2}.cbp-slider-wrapper{position:relative;overflow:hidden}.cbp-slider-controls{position:absolute;top:0;right:0;z-index:100;opacity:0;-webkit-transition:opacity .7s ease-in-out;transition:opacity .7s ease-in-out}.cbp-slider-inline-ready .cbp-slider-controls{opacity:1}.cbp-slider-next,.cbp-slider-prev{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;float:left;cursor:pointer;position:relative;width:36px;height:36px;background:#547EB1}.cbp-slider-next{margin-left:1px}.cbp-slider-next:after,.cbp-slider-prev:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;background:url("../img/cbp-sprite.png") no-repeat;width:9px;height:16px}.cbp-slider-next:after{background-position:-134px -60px}.cbp-slider-prev:after{background-position:-134px -78px}.cbp-l-grid-agency .cbp-caption:after{position:absolute;content:'';width:0;height:0;border-bottom:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent;bottom:0px;left:50%;margin-left:-5px;z-index:1}.cbp-l-grid-agency.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:scale(1.15);transform:scale(1.15)}.cbp-l-grid-agency-title{margin-top:18px;font:700 17px/24px "Lato", sans-serif;color:#666;text-align:center;padding:0 4px}.cbp-item:hover .cbp-l-grid-agency-title{color:#222}.cbp-l-grid-agency-desc{font:400 12px/21px "Open Sans", sans-serif;color:#aaa;text-align:center}@media only screen and (max-width: 480px){.cbp-l-grid-agency-title{font-size:15px;line-height:21px}}.cbp-l-grid-work.cbp-caption-zoom .cbp-caption-activeWrap{background-color:rgba(0,0,0,0.7)}.cbp-l-grid-work .cbp-item{padding:3px}.cbp-l-grid-work .cbp-item-wrapper{background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.2);padding:7px 7px 27px;border-top:1px solid #F4F4F4}.cbp-l-grid-work-title{margin-top:17px;font:400 17px/25px "Roboto Condensed", sans-serif;color:#607D8B;text-align:center;text-transform:uppercase;display:block}.cbp-l-grid-work-title:hover{color:#365D67}.cbp-l-grid-work-desc{font:400 11px/16px "Open Sans", sans-serif;color:#888888;text-align:center;text-transform:uppercase}@media only screen and (max-width: 480px){.cbp-l-grid-work-title{font-size:15px;line-height:21px;margin-top:15px}.cbp-l-grid-work .cbp-item-wrapper{padding-bottom:18px}}.cbp-l-grid-blog-title{font:400 18px/30px "Open Sans", sans-serif;color:#444;display:block;margin-top:17px}.cbp-l-grid-blog-title:hover{color:#787878}.cbp-l-grid-blog-date{font:400 12px/18px "Open Sans", sans-serif;color:#787878;display:inline-block}.cbp-l-grid-blog-comments{font:400 12px/18px "Open Sans", sans-serif;color:#3C6FBB;display:inline-block}.cbp-l-grid-blog-comments:hover{opacity:.8}.cbp-l-grid-blog-desc{font:400 13px/18px "Open Sans", sans-serif;color:#9B9B9B;margin-top:9px}.cbp-l-grid-blog-split{margin:0 4px;font:400 13px/16px "Open Sans", sans-serif;color:#787878;display:inline-block}.cbp-l-grid-clients{height:180px}.cbp-l-clients-title-block{font:400 32px/53px "Roboto", sans-serif;color:#666464;text-align:center;margin-bottom:40px}.cbp-l-grid-faq .cbp-item{width:100%}.cbp-l-grid-projects-title{font:700 14px/21px "Open Sans", sans-serif;color:#474747;margin-top:15px}.cbp-l-grid-projects-desc{font:400 12px/18px "Open Sans", sans-serif;color:#888888;margin-top:5px}@media only screen and (max-width: 480px){.cbp-l-grid-projects-title{margin-top:12px}.cbp-l-grid-projects-desc{margin-top:3px}}.cbp-l-grid-masonry-projects .cbp-caption-activeWrap{background-color:#59a3b6;background-color:rgba(89,163,182,0.95)}.cbp-l-grid-masonry-projects .cbp-l-caption-buttonLeft,.cbp-l-grid-masonry-projects .cbp-l-caption-buttonRight{background-color:#545454}.cbp-l-grid-masonry-projects-title{font:500 15px/22px "Roboto", sans-serif;color:#59a3b6;text-align:center;display:block;margin-top:12px}.cbp-l-grid-masonry-projects-title:hover{color:#457C8B}.cbp-l-grid-masonry-projects-desc{font:400 12px/18px "Roboto", sans-serif;color:#b2b2b2;text-align:center}.cbp-l-grid-team-name{font:400 17px/24px "Open Sans", sans-serif;color:#456297;display:block;text-align:center;margin-top:18px}.cbp-l-grid-team-name:hover{color:#34425C}.cbp-l-grid-team-position{font:italic 400 13px/21px "Open Sans", sans-serif;color:#999;text-align:center}@media only screen and (max-width: 480px){.cbp-l-grid-team-name{font-size:15px;line-height:22px;margin-top:13px}.cbp-l-grid-team-position{font-size:12px;line-height:18px}}.cbp-l-grid-mosaic-flat .cbp-caption-activeWrap{background-color:#64C28E;background-color:rgba(101,199,150,0.95)}.cbp-l-grid-mosaic-flat .cbp-l-caption-title{color:#FFFFFF;font:400 14px/21px "Lato", sans-serif;text-transform:uppercase;letter-spacing:2px;display:inline-block}.cbp-l-grid-mosaic-flat .cbp-l-caption-title:after{content:'';display:block;width:40%;height:1px;background-color:#fff;margin:8px auto 0}@media only screen and (max-width: 800px){.cbp-l-grid-mosaic-flat .cbp-l-caption-title:after{display:none}}.cbp-l-grid-mosaic-projects .cbp-caption-activeWrap{background-color:#59a3b6;background-color:rgba(89,163,182,0.97)}.cbp-l-grid-mosaic .cbp-caption-activeWrap{background-color:#FFEA71;background-color:rgba(255,234,113,0.95)}.cbp-l-grid-mosaic .cbp-l-caption-title{color:#5A5A5A;font:500 18px/22px "Roboto", sans-serif;text-transform:uppercase;margin-bottom:5px}.cbp-l-grid-mosaic .cbp-l-caption-desc{color:#585858;font:400 13px/20px "Roboto", sans-serif}@media only screen and (max-width: 480px){.cbp-l-grid-mosaic .cbp-l-caption-title{font-size:16px;line-height:22px;margin-bottom:0px}.cbp-l-grid-mosaic .cbp-l-caption-desc{font-size:12px;line-height:18px}}.cbp-l-slider-title-block{border-bottom:1px solid #cdcdcd;margin-bottom:22px}.cbp-l-slider-title-block div{padding:0 2px 6px 0;display:inline-block;border-bottom:1px solid #a9a5a5;color:#5e5e5e;margin-bottom:-1px;font:15px/21px "Roboto", sans-serif}.cbp-l-grid-slider-team-name{float:left;font:20px/30px "Roboto", sans-serif;color:#494949;margin-top:16px}.cbp-l-grid-slider-team-position{clear:both;font:14px/21px "Roboto", sans-serif;color:#A6A6A6}.cbp-l-grid-slider-team-desc{font:13px/20px "Roboto", sans-serif;color:#969696;margin-top:15px}.cbp-l-grid-slider-team-social{float:right;margin-top:22px}.cbp-l-grid-slider-team-social a{margin-left:4px}.cbp-l-grid-slider-team-social a:hover{opacity:0.8}@media only screen and (max-width: 600px){.cbp-l-grid-slider-team-wrap{float:left;width:100%;margin-bottom:10px}.cbp-l-grid-slider-team-name{font-size:17px;line-height:26px;width:100%;margin-top:12px;text-align:center}.cbp-l-grid-slider-team-social{width:100%;text-align:center;margin-top:8px}.cbp-l-grid-slider-team-position{font-size:13px;line-height:20px;text-align:center}.cbp-l-grid-slider-team-desc{font-size:12px;line-height:18px;margin-top:10px;text-align:center}}.cbp-l-slider-testimonials-wrap{background:#f8f9f9;padding:80px 0 110px;border-width:1px 0;border-style:solid;border-color:#dce1e2}.cbp-l-grid-slider-testimonials-body{color:#424242;max-width:800px;margin:0 auto;font:20px/32px sans-serif;text-align:center;padding:0 40px}.cbp-l-grid-slider-testimonials-footer{font:12px/19px "Roboto", sans-serif;color:#777;text-align:center;margin-bottom:10px;margin-top:30px}.cbp-l-grid-tabs{height:100px}.cbp-l-grid-tabs .cbp-item{font:14px/24px "Lato", sans-serif;max-width:700px;width:100%;margin:0 auto;right:0;text-align:center;color:#5a5a5a}.cbp-l-testimonials-title-block{position:relative;text-align:center;font:26px/36px "Roboto", sans-serif;color:#E7E7E7;margin-bottom:60px}.cbp-l-testimonials-title-block:after{content:'';position:absolute;margin:0 auto;width:23px;height:2px;bottom:-6px;background-color:#C2C2C2;left:0;right:0}.cbp-l-testimonials-wrap{background:#2D2D2D;padding:60px 0 110px}.cbp-l-grid-testimonials-body{color:#e7e7e7;max-width:800px;margin:0 auto;font:20px/32px "Roboto", sans-serif;text-align:center;padding:0 20px}.cbp-l-grid-testimonials-footer{font:12px/19px "Roboto", sans-serif;color:#C2C2C2;text-align:center;margin-bottom:40px;margin-top:35px}.cbp-search{position:relative;width:220px;margin-bottom:40px}.cbp-search .cbp-search-nothing{display:none}.cbp-search-icon{position:absolute;width:32px;height:100%;top:0;right:0;text-align:center;cursor:pointer;pointer-events:none}.cbp-search-icon:after{content:'';display:block;background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTEyMTYgODMycTAtMTg1LTEzMS41LTMxNi41VDc2OCAzODQgNDUxLjUgNTE1LjUgMzIwIDgzMnQxMzEuNSAzMTYuNVQ3NjggMTI4MHQzMTYuNS0xMzEuNVQxMjE2IDgzMnptNTEyIDgzMnEwIDUyLTM4IDkwdC05MCAzOHEtNTQgMC05MC0zOGwtMzQzLTM0MnEtMTc5IDEyNC0zOTkgMTI0LTE0MyAwLTI3My41LTU1LjV0LTIyNS0xNTAtMTUwLTIyNVQ2NCA4MzJ0NTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTBUNzY4IDEyOHQyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNVQxNDcyIDgzMnEwIDIyMC0xMjQgMzk5bDM0MyAzNDNxMzcgMzcgMzcgOTB6Ii8+PC9zdmc+") no-repeat scroll center center;width:100%;height:100%;pointer-events:none}.cbp-search-input{height:36px;padding:0 32px 0 12px;margin:0;border-radius:1px;border:1px solid #c6c3c4;font:400 12px "Open Sans", sans-serif;width:100%}.cbp-search-input[value]+.cbp-search-icon{pointer-events:auto}.cbp-search-input[value]+.cbp-search-icon:after{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTE0OTAgMTMyMnEwIDQwLTI4IDY4bC0xMzYgMTM2cS0yOCAyOC02OCAyOHQtNjgtMjhsLTI5NC0yOTQtMjk0IDI5NHEtMjggMjgtNjggMjh0LTY4LTI4bC0xMzYtMTM2cS0yOC0yOC0yOC02OHQyOC02OGwyOTQtMjk0LTI5NC0yOTRxLTI4LTI4LTI4LTY4dDI4LTY4bDEzNi0xMzZxMjgtMjggNjgtMjh0NjggMjhsMjk0IDI5NCAyOTQtMjk0cTI4LTI4IDY4LTI4dDY4IDI4bDEzNiAxMzZxMjggMjggMjggNjh0LTI4IDY4bC0yOTQgMjk0IDI5NCAyOTRxMjggMjggMjggNjh6Ii8+PC9zdmc+")}.cbp-search-nothing{position:absolute;top:0;padding:0 0 30px;text-align:center;width:100%;font:13px "Open Sans", sans-serif}@media only screen and (max-width: 600px){.cbp-search{width:100%}}.cbp-l-project-social{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.cbp-social-fb,.cbp-social-twitter,.cbp-social-googleplus,.cbp-social-pinterest{margin-right:9px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.cbp-social-fb:hover,.cbp-social-twitter:hover,.cbp-social-googleplus:hover,.cbp-social-pinterest:hover{opacity:.8}.cbp-social-fb:focus,.cbp-social-twitter:focus,.cbp-social-googleplus:focus,.cbp-social-pinterest:focus{outline:none}.cbp-social-fb path{fill:#415C9B}.cbp-social-twitter path{fill:#55acee}.cbp-social-googleplus path{fill:#E57371}.cbp-social-pinterest path{fill:#cb2027}.cbp-l-sort{margin-bottom:30px;display:flex;justify-content:center}.cbp-l-direction{display:inline-block;background:#4d4c4d;float:left;height:38px;width:38px;position:relative;border-left:1px solid #6b6a6a}.cbp-l-direction:hover{opacity:.9}.cbp-l-direction-item{height:100%;width:100%;cursor:pointer;display:none;z-index:1;background:transparent;position:relative}.cbp-l-direction:after{border-color:#fff rgba(0,0,0,0);border-style:solid;border-width:5px 5px 0;content:"";height:0;position:absolute;right:0;left:0;top:50%;width:0;margin:-3px auto 0;cursor:pointer;z-index:0}.cbp-l-direction--second:after{border-width:0 5px 5px}.cbp-l-direction--first div:first-child{display:block}.cbp-l-direction--second div:nth-child(2){display:block}.cbp-l-sort--simple{margin-left:70px}.cbp-l-sort--simple .cbp-l-dropdown-wrap{background:transparent}.cbp-l-sort--simple .cbp-l-dropdown-header{font:400 13px/36px "Lato", sans-serif;color:#787878;margin:0}.cbp-l-sort--simple .cbp-l-dropdown-list{background:white;box-shadow:0 0 2px 0px #e2e2e2;border:1px solid #ddd}.cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item{border-top:0;color:#787878}.cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item:hover{color:#b3b3b3}.cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item--active{color:#b3b3b3}.cbp-l-text-sort{font:400 13px/36px "Lato", sans-serif;color:#949494;margin-right:15px}.cbp-l-dropdown{height:38px;position:relative;z-index:5;width:170px;float:left}.cbp-l-dropdown-wrap{width:100%;position:absolute;background:#4d4c4d}.cbp-l-dropdown-header{font:400 12px/38px "Open Sans", sans-serif;margin:0 17px;color:#FFF;cursor:default;position:relative}.cbp-l-dropdown-list{display:none}.cbp-l-dropdown-wrap.cbp-l-dropdown-wrap--open .cbp-l-dropdown-list{display:block;margin:0}.cbp-l-dropdown-list .cbp-l-dropdown-item{background:transparent;color:#b3b3b3;width:100%;text-align:left;font:400 12px/40px "Open Sans", sans-serif;margin:0;padding:0 17px;cursor:pointer;border:none;border-top:1px solid #595959}.cbp-l-dropdown-list .cbp-l-dropdown-item:hover{color:#e6e6e6}.cbp-l-dropdown-list .cbp-l-dropdown-item--active{color:#fff;cursor:default}.cbp-l-dropdown-floated{float:right;margin-top:-2px;margin-left:20px;width:200px}@media only screen and (max-width: 480px){.cbp-l-dropdown-floated{width:100%;margin-top:0;margin-left:0}.cbp-l-dropdown-wrap{right:0;left:0;margin:0 auto}} diff --git a/cubeportfolio/img/cbp-sprite.png b/cubeportfolio/img/cbp-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..1802880cb52194cb4965cde3419ee80708265205 GIT binary patch literal 8717 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 Chx$tZ literal 0 HcmV?d00001 diff --git a/cubeportfolio/img/cbp-sprite.psd b/cubeportfolio/img/cbp-sprite.psd new file mode 100644 index 0000000000000000000000000000000000000000..22415f025693f276c5dde130812635086d423a09 GIT binary patch literal 5693446 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 z zWC{ItJOPBYyaBnU@4uLUkrOO$_MTrzgH?%#CqS|gast}zGGriBCsN|XSy0$>mb{#!4`AnD%4)l@-=(TOm zqo_7(=?5gIL&i85u=mrSwuTYi)}PY%!?<;DH2egLzmNVDzBAYAQ~Ev_ybg|u|BYhr zqrYg;;tTq|(6~4RN~Y7_d_zx{Kwxle9ENm7^J#j%2rTK~=r{zm_?)IcZxIXvBOPvS zwT6E1L3&Lqax1aZA??feJ3I^k;Hg9oUjHkIo3f`)Y-^Fjq#HD|3wt@A|U}!-m7_a(+); zKO?aG>QQ*tAI5_4uD>Nlg76lEcO41uC|G92{#E>HUktkZUqyPB54gXsJxSx=?zN}s zU)G+Xcdb23?^t^t!VrCa?FDcz(HDt(5!{P#eF5A{#J#YV2KPK%WA_}mD9k+z*S`X{ z(D@8~2|}*y9L|UFS4@x1#|4_n7n@Hu-)uRUa^W)Kvf?u1va>jV2oFQ2(q2)Q$2q1F zeHbq`1p#TM#R*9NgKfGQ%#mtK)&S!b!cAa3FkVC45avs@A@ip2d@8(_xEZ)D$vi4N zm#PJ!Vb&bu`|uj#w!o=bIcm^W?|Wzc!82zLu3s83v@M54!p$U#sk`V)fBpLPnl)el z3d@IgO;y0$pfjj>=O<3nzr9vCsCTQzja&5|RQTF&^yw!$lQqJQef0Lbx|~GOUGCaW z?{knf!qHFA^o%wzy{F9#ntmc0uMv)le}&#R6xPEI-ABI?k5>do#Vn$~PCJaE(!Qn_ z#azUTNN3ZZwL6HS+I>dP7G1)NgzfZC-Cz}Ix1VSSUL-8(a*)394-|bPeXt8&5-gfS zKe`u1&7$YvPM>ySM|-$xyQ5r&B%=H1iD!|x>)@uRk+|vLt}r!f5`B+I(q`A*4&cwH z*E9mB(Hc4*oDO?;wGkWWg)oUH>2CUyB$yqP^a*`;63qKqNE^hZ7YktoZW6sZ0rHrz znx1qDi3=~5iQhh9If>#+=~YPxC9R@MVS~VQTa3Ve#3|o58|{hiUp@nCjH@^HUJe6lfCOzIgHN1fXg9`APAy zZ(&|jY=b2i%E~S*X#l+NjgSDO+i)3Oj8HMXtRbY^bN6P*jv2Dq=zY2jvROvI-w3j4 zhWwOXbi$k_DA2_7NHP(M2Z%T!`=r2I5 zu!#PBFtnT-f2S8EkcGpzeLd6~+E?p`nDzw=hx7K)+sZmYJM2`pjoz1s7Y;+SJwxwV zbZ2JI=8YRS@0oe$qCNB(+-ylxpY{uV@$cR1)~s2#`|peNFVk>S$KAqEx@_aoGiQ!& zTvm#^McqFV{6yF7pOC|=#}hCVB&;A|1qu7#kg#iis?)!Ekg#={zn|*itwY@+2sy0o zV3q*Jp?H+Q{l!? zz_+C(-e)GN`6lpPz?+!BlA9lg25xo{7T+YE6*`WD1K4f0_4ZUMfbw7BHi z{NTLtZzbh7@%yU<$6@8X{_2h6f2aOxED5e_8j06^)BG%ML+j}c&2eLjYPFT#*qpSX zmRso`o0B%watru~6$`#i%}E;q-{$6|3Aflnf5&(>V-K{i7SIkM4%%Fh9xUP@4``b~ zzM-_jl4tV6zZKSP3#{ALS1WGUdwo@ui~k?xAzjYvuNKma7r%16$q&z0RQz(tajdab zUN`!z#*+L;lWYpSehSc`tG1V=PZm71^t6zx3?!? zogh983PJPeTJqVB?M#Ow)>grjWj)x@uB3eJwad9&Sj;@DZ2W<%eR2) z?>kk4;u~#$~w)ne|1innue`gRM zdV!|P4UAXx6iuJbX8h)WhzBERH?ZdyCT)DP$^Ve zn@y?KT7fVL4MA2k5jl_#Ns$uuL0;rXxtRHI15N-Z1dK^Q4p;}w0b7!y-sBgDupf>| zYcP3K6uIcwPBb1#+IAUK$psGLl?IacD0piDN8`>LWK(Y#HU50R*WHJ@6?&QzKAmyY zt#9=kSmw3b3LODyt|Q;+?w|7KhpSVhPJ929F{*4?w%6z=aAr>OIdUcq9ci0XXw%tK z1`bH*SC(E@LW|F$<#8bn(9L-lp2kuw^S~pWN9*a8YNGqH0cU?x=bbw9w`G7z}L@b&r2U+vILWZ ztNtkkfq*wXEv>Y)v`?v`kH?pvM(K1q%tkIx1&UPvM0dbimg@F*VwkXeOb)-z=kx}g z9=8ELV}2OUUi-L(164<|#@mvwG90KC(29Gu+q@FiAK19M*ux zH`3#A4PZ(>yucIi_zOHsfYMDOxA#70HC8trDUm;d?cky zSIN?qnqD#mU=+rLp{&3o+hcd;O{~a6E>Bk~fK51$Fv^NNpf>H+fRz`QaM~cBerXuu zFvv-LVzerR*HjgD8&?zFVxNmtxZRfKa5;(`?tmX^gNm#TyDdG><14ZT23Wmbm(ym& z6`oe&wg;=x%hpT3v=C`s=bB4|%X~yL;-V`zCN3)7=y7>`P(zLZihgNT1&38xC_2k% z9PabvIbDtc{t<%=(k!!4P3hF?RCymNoJ|;Am3&MdTQNph@3uMo(6aq(1u|WQRHMO~ z9~sKlugf`rkqdT@&1p{$_i%~et|Ii<<9sb$J5WUbTK6uH1WRcX&9 ztaYh6nGEEa+Li~r)mE$AQ6uZ(Vn9M>(aH^4GbNL0O(ru%X=Q4Kp3<6(a*f8Q&_WI2 z?s1v26E2iaC8Ja_tyyliP?X7}HJFV?gW8}}spJN;Uc--zLZ+m&Iwhsht4$^oMd|bw zgGDPd%1o5pU@$_X0J;W~&TLlc)oO)Kua>JU{LnQ~CbLQ<(`gkZGcJ*V(#lOLs4=bFqEQ%i{J2U0{d9+ya`)a8kjoVoy~0B23^kSr)Nmg=?vT(0DN3W1Y2-4s7CNMc zvKZ7RrOIg3=~W8jl`}FK3y z4yZ$0l51*i$JOOXN6B;+y!bBog5I->w$&I43g1w<%}RBCcQa zz4FSdUvB`ZivP?Ci%hPqxo2<~$s^kl#>l8v=`}JX)W5P8)vt(Tq=i~DVS%QQ>Geik zEf}dH84<8$3X|NR(HbqLT7V7mykZwIYE^QhQLEJ}RchX~Mw#Sli&+H{S)nj1psyK~ zO2As7R4DZtrJ**AR7y%G1F5Psm?3Wlg&u2Fom{E2PzELcE+Pj#13FM6GcmoNv}^#G zlB+akwOr1-XmY*Qq&MkxV6&TXjF>tu>k~U{4rvGv(c~)fCQ(%1kK@pq@eN>#%jCqD+)pN2$&HbEH;i zwOW~3D}&UrroCd}uU6I-BXwOd($o=}-nFJv zo0UqVLTxrHi9FJ&Kvcp>q0|`^&@A{fGE+v785RxLiKMUTRFuW6Geffkb|(H3Qm-(m z^+uB%IvWve21;qtQegC}4H~1|$iHZMu+7an==8==%QnbmTD`@r(JO0_BZEPqQmf36 ziK}do2BT50RT*S5$OdWIp!>BNnOd$jnpHYO%_c1?YK`(b%8^lltIH@;sF@rQBSL1; zz<8V9D3kNAeiJl2r5PT`uC~)!G%Ax0+A{?bn(h7Y*lL#Rz^*mbqSl}#g1sMUu*1Wz zQV)i$0r2D9vMVvt8r23F*x5RjQKqVeon46$JizMII<3-dfhy4P2fHF8VvT4mW*8d) zb*tj9AS*J`>nvcYDHU?1-mK7R_*=CWtpVywW;SX=?Z^O6>NYACZoQwv50BlK}Fs>Ae}(WnO7LJ93uR*gDh8b#!ARrp|7wS!&Ejdd`L30*up zyXwI}c1*dbD6OioXn(+50>jk7Veg1xMD|Yq$cbJ@+6af=Q|z-j%q1{v7aIGr`;1x<1=pJ zGQ7iXt)72rfx~^dR}Bm+LRCEzzb7wHYV|qv`Ox$(|NevF7kNWP#x=?CtAXF+E^+v3 zQvp!TR(QANfD!OKpQlLbEVAZ1(sGNu(tt-=<0}THxM4j0!Ls_TC0Ezb>1ra9!0GRqyqs)C%>*it?-OUwRnVfyW=c z8tdRH2gI(Xe^KcwUAlr2>Z|VR%UJLA6?(@n$iu7eU+^BMp8JtE*jtS^{e zq)Jx^_C_7nm!*E|i_)f3LVeX;eZkx4dX$Iqbh#F~m|$`k_@Knm2yk&w@bL(6@j;2B5#ZvW;NubC z;)4=LBf!N$!N()O#RnyhMu3Zhf{#aliw{a1jQ|%11s{(97ax>38UZd23O*hIEcZpy1;X;NpW4MQhv^tp|p z3wI!NF(lXJ=VFHD2THgLbCJu$T|hBItPQrp{9(Cw+8})fKo%LY)&2;(RBHDW=Vo~J z;2e@;kk4Hy%;2g_XYkoaj&cVqokqCGCj{904KBO1s_+qhSAc{MFLPy#V5w0;iNgk) z(ZHVTus1zZ7if6?a6emV*pG?9B^5fvk;ky9knBjGjNUI!wZP6 z@{kAk!<3o=<>Mp;hG${$%bDW0-mDaHO>kekzc^Z5Mfp;2>bv|B_~b#DsD%_U_>m#m{`_!p44JaJ0wb;Y5mXIr4!F-z z7Rd5vj?5myikCPxID$C7z~h^wcRBOj!NNCU3ZKaaLq1~djy!8I5qI%;N2MyrN3+3^ zs{6&Saka3EIL;TtC4 zpALRkX~2uaajuhd3$b5}yIislG6?=w*q_h%aaT&tW&9b~Z!dB~0~g~wd+kMb?EeD% z50w<-hA$Zc{s&5&j#BV%27hN)agh`JSfVBuIjqnbqcCQj0}fjO_+{Wv@{Jq;S}Cd@ zLUBp?VgB4Oe*jt_&?2M9JCW3hw7ac`6t6Sqy-6PPM3`gqr03J*DVu&;wDmOq88tU!a{e3!aNH=7K8SZJQfPeosZDU z`w?pOb11CyOJG<{M`*?Ru=2FP?IrAkHcp4F4+fMwY9!z&tM`PZ*9WJ^eGWuwV!E&t zw`v=FZKT*I^}}a@9MaT^jrfXh49iwnK6;OEOIPZUJh{jh?|Ir79gVI=FQc!~ z-#FeVH%>CXW}Iq_HzpZp8Q(Bw8W$N=#(bkz{G(BI##P3*jJ3v1#;wNf#@)t!#*d6g zj0WQ;#x~;_qscIhpBpb4zcKz`yk`8>c-#2E_|*737K;_eTE#lVy2g%*9TO{ymB&WL z#>B?Qro^VlX2vd#&5JFLt%zL}TOGS8_MO<>u^+@9i9H$H5o?P5EcUC|?_;mW-irM* z_E|g;FNt@I_lzGK9}*uKKP^5v{*CzT_`LXK@hjqM;y1@P#2<)17T+3givK+RoA_(- zx8t8Aj6};sX`)Z!_{7M>*u+_h3li0drHN}2Hzw{#JdkKe>`XkD_>aVEiFXo*@(S`g z@<-=S%%71z zFTXB-ZT=nkKhEEhzd!#s`G3v-w4k7%wBWdclM2o#m|3u(;L3t^1@{&-7VIhbRlyqt zpA;4rb}cL`Jh||!!pg$sg=-7%DtxSPcj2!K|5|vksAbVnMdd{kiY_QxTy%ZW9Yv28 zJzMnaqQ4h?-lA=bV_J-EaaM~(tRzGPs@*pgW#D@txId8lMh z$?r=(YSpUMv8_&RbwR7;t!{4hNUMFVUTt--b%)l2TTg6#N$YD{Z*0A_^{-pM*QQ0A zW7?e7=At%Nw7H|rQ*D0P=AE`J+8*0>Y}?AV*RmPJ*l|I} zn>s$;@r8~bbZXyeSf}$kUEXP9r(K<1D@~LhTRO3HQRywEKPmlf>1UmLc0R51+|J+b z+|c>goey;B-sRLTbGzKwrLoIzx_s8Pch~V<7k0g^>$a|c?3UMUV7F=A>biZu+x~9v zbnn>xYu&55-`M>p-T$*kyvM*E(|cUmZq7RQV{X8tjE9`oEW2aY}N z*z=FAKX%)(Zywj>xQWMIaonckUg_Ve|0(@1>;FLimj)CJ7&&0!fO`kLI50kN_`vxC zHxB$|S-fmSSxwo!WxpDfKWNmT#e*Ig^te(<)z?+xiU zx$a^1+Ej>;c( z`lxG1Ju~Xi=neh;-#z)yQwC01I%Vh7_|!>LzdQAnGmklQ@tNDsGR~TK)_2eP zzI^u2F6wsCqKkHYv&}avzxmX~`4^vm@uL_2tMaVM2P!|AGjYy6b3UjVTXkpE+n1br z$@eaKYwpQ&zccsm)hAbfr~1u#C(rxtytn3`GXIYG@6?Q~xx41W1!pX{Z^40uXDxha zp|$AzMUAyZwHMd!SloW`!o{gedtG|@rN3HIwq)&+*Df1<+3lBouypd$A1{k7o4suN z@{Z!o)Gt=_Uva~V*H?~NxpC#ey7TIuy1d=xi!cAhs)4J%z3T5*Ot|8~EAy_bx^nMT zeXjb}Rj*%t+SNa}CU(u7YxZ8-_u4hr{`ImL4A@wXO!>;GJT!u8*|{^Ql>uim+) z=bG!*ym3Rt4V%`sUb}Sd@9Mu+e_t{$S(AL>+b4eeu5W*N<0Usff71y!-Eq^u)>W;0 ze*Mt(8`fJlSKs`?EhBFE{;dVKF241*x1Dm^!{2H5oh!cc#&@TFckB0hfA7ZceSG^j zZ~xgH!|u56&f+^)-1*vuDI2!m)$gub@A}u>^Y8x6#?v=8-qYirZ{Ks^-b?QN_4iNx ze#3n|@4M-~&+f0e|K%T4{9x+?$3Ae!4-0;{@`r!>(Rn|5?!l1{KJw#kKfdY5Up%z< zq1PUs{&4D%lOB2G(H@W9vMIi4#iq9&oAua>kB@tNd&BV!KWHp%yy*$!i4{-$LRa-yUHh1~ zSI_?XlwUXf$GHD6Uz+&R&wq2~Z+`XLbAS8t?`Hk(wU;k>`OV)i`u&Ihx$-|h|HE~! z$`&{u;y`N}foMv2NTq^#R$hk&u@up+GSYIx_m#MWS zBCNw$bZ*x^w1MV z4=wNQ{F{WL3nOuVES=l^aku|L_b1ZpGEjUK#KhYTv5d)ikM!e+^-4dE*s6|^U&`6pt^$pK(;WB zuNCu#VwpC~v!}1+11l6$l*`2bE5AEytXe)G8yZEm%Z7>hFI}H#^Fz5SR#IEJxMt$? z38G}9s~M*)9w(oL*Ti>v1ZRR=xt})S95*i!WlUH)adGH$w$n=7bybv_${zU6h#`8r zLfleCacYd*(qE$E@QHD!CpGObVOhouxN+KqrOt%A>Sn^S2}_-PB!e^Jl(A_~U2T|t zshajLa>iFy^6qaKJ!-3$iupnH{=nm4pS3EaeMhx0+WkUB=?$k=A#RI$N8)nlK+LTW zi8W;+%!}oii^Yj(i3t>OV*kaC78|mM!+#e}sa!R8X>ajQAc=qDyZUlbNs1{Y(T^u@ z`wUUfUs%mdM7OT3TqaKS2{X>At65$(-3=l6Cx$BZ;m&ljIiQ+r1>&;?KK4tmh z+x?P}wJR3&He$QoeX4oQf35kY^A^d`@J<3_y@ih8)8uT?#kI$qg$07 zu9bL*-ez;=u9VNjnW~xd5XHlk4^9r_K1kKdIe$g8Y_NN`I`w6LnMYJ>@vk$Bprd7= z+?MCFVU(9A>r?wg4k8a{U5~bC#bOyRUq6Kz|E#=t8f1I%53w&5$MP0cu3D;;pIOhF80a)VW$1 z56egQ6{+IB87{|{U(#OqR>$JwtIYF6UE{ng^0g_&22 z6=zTD`ayw#(H4-yFu`d3?_|iz6^rp4)4I{DAdh4Vw#mq%sqS1ON?+v3M?;)#EyfLwi#Q9&m zchu`f{!#CKalX9sw0hcF{3j!Cq4jiYu{GKHL#fy*{eyLektn>|y6lfe;xg;5qD1$9 z{$sdUAO4Szx+lh2TU(0tmRqfH@$0O0e=y?ftn1>9Usj2=sxKSjFMlvWtWEgf<@iT` z87|g_z41ZZ`eT_`8~Df1#o9o7?V~q_siW_^Eq?Fz(kObqQ5?O|x=xI@MUA(`8lTSN zpWPEh_t^Q}QzSEgS!MpRHCa54*1N0);&IHgcD0s|d8YNQe9XPx`C^7NP$~(blF%yJ z?K0tZnf0b{6RvZtkIxgX=Y4F=`9iv1W4-rH;r`9{tZU@+kS`wc!PR-dF4;(gItS*=c3 z^}3Vq)Bm6O{*4vQ|B!H8k#Hr9!kgbeNxVALS3%8zKaX@ajG3RkHOk$Xb@1)CL$5wV z%FmHy0*5Zoh ze|)8x9{5sZn)S!QFGZ$@4p@giOMGsE_y6?3cVf4u#E;t!^FxdvzT~^gv&9sj zvwqs*#q#rHk+>7cb3+^-F>J!rWeerH_!6g<`9iuk%xT={9)9qCQaaeDvXlHEQxjZKJ*vZN`HJ08h zTgjuUy`6&{YmXog%Gh)tdRzT;+sdGHjP6yn5HhS(+}7VJ zOs(46vaQpfTGt(kU8+yr%+p>CO(nF}Mv@f zou%$0y)TzocSPApKaS8G^cY!VWE+*glatz1d!4-Otn@e;x!bYsV^X7}+v>d3Be#Eu z1~PA*ujESarW7})c|sz>cx|jYN~%Y z$3&3M!tO(FtDoYCZYzFz#?dWRE1i>!b9<31s-3;lj@J8hKdLj?UVgb@a$UETP1MnJ zjNT)+Wk>e69p&_)I#>Ovj#S@HPj*bYUwaJIpWLegW&iRkJ%n0Ud*u-sC6C!LY8bWO zZEvs0P`T=jRqfSr&oMQk+*V`i5ZOqzm7U0MCtmHBdsMUxmg{QE4$3$t+sPQ!!d{mx zt_ot7g zhp@M0&uXV!IPKM%-by#n0Ww6l(Y?zJ^`CAl59w{OkP-T@-Y0kHSiN+P>zy)2KLpiE z_oMd6PTjV4|CuqmKXFKnXUD41Ra@QOKBijQX~=%1n$t}8xiSbdvU1DlyfK z>_m>{=}fKaAF{DLs+WO&?Hrurx>pq|f2ejUPdh=e&{^m{MR(q@Jvr!p)p6ZareSyK zgXNcAV1%ceSKv7-K`nz-YsrgF<2OGk-D>OXtw z#_RsnSUSLMEBlpW$lYPzS=u<`>ZR&UkEyyB+oCshO!X;$;i{opWru zy&OnA4mnOB2iQ^v;VW>WWVx1v0JXFrH+uh_2ZJq)M4j` zTH3L?U-!6*)nmx+Hu|2 zrEBLe8tE}*W7UD&PWK_(>HgF~-CpeS#MoP6pFM_L)BoAa%>Gm#s!!F6Zlybvz3Mjd zxb994FTP}eIwY5}L-|8}>p;&jH&(ULUCLP5i&%;uD%jb!_o!B?PdS|2k}dRqa$SDu zrfMl$%dT`>`nX=x$LwBoGu4;c@3xceRTrvXz2UZzL;J>+u}%ZKt%}gS>RjyhDl|Q? zYNp1O-Rk|iFWrycrys0{l@XqtPg`8y)NISMFC`x{1joJp1Ijr$4(N8K9av z%~VQuYR*_rN1p!VSh}HJ+5^eGauj>1wq%(47C%)JXInounYTTty>!CmUKOKzQ*q*l z{7?OG+R1Izr)sYQ+_v_?^q6+63{#;h(&$q4&D`B?Zu009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5J2F6h(Lbl^2&Ah?=;Pw_phrQ);YiVhZSYC9J%%A6}wE+e7a%NriQ1*%B~fo zTW8NG%4j)itl}2ovc7iesD8bB_Zu~}cD-=Ar6LxdQIyeY#QycB`OwTkEz-lc7&P-C z)2#2G-jiO7GFpu?^(k}P^v>x4^;+lY+svn?`u7?}l+kjuc;$XG8OTN+>6|q8SH|U9 z`YXz4HA;M;*)%^dJ)n0jZ+?@xFe9NTqxHy@=Jv_n95UA@Z#OHwd!me1<4iQ49q%2` zzdrt1)01wL(Q4$f&E_nB3Ypup%q?Zko+zW$81bZeeZmJF8XLSLh)_px#@wkt({}u)>0meGFp#4+I+NKNET%~7klrf?H)Bp$|zrS z{^FhPiRI}eOSC7#yXr)%efgK0GrR}w^|Ho2)4ll^Gt9aI!|+GvPv6rRmQXM{)_?m0 zozeq!dSH8h_s*!J^}$ZhY#opebJhlJ+3ULk4A{C$bQg>szjwq+0~T=qn0I!6B|b{a+?T6Z$8=?R}u zmgso3dGEbuwddSX9jIvCmHAj7y<-3D{j@nHV~4ZR=dpc;;g5C>PBEYE?X0V1w&+-$ zY1X+fbf<}m)*Jp2+CFG54}B+;Z3Nj(-g5K7^vhT7$rj!2PSd-Oo}sPl&C4?`&AMThGgKTD z7wvlg=c4fF4tL5^x!Szbmyn9q!-Two+k_@Gb$>Ga^)AzC<9V=ZH8fgW2CK!n6RUPF zjCL~>t=Fr}h5o*blBBsRAhb|l4+GKptIT9cpo_3*ag(T4Z?qECo?C}(s-krtA$I`7 zXpsy&W#XDHE>yv2p_2^WaKfTHrEe1Q*5TgE#Bi!_olo!%DfgGun=3Pg25fyM?0%ZR z(yR~a7$MQ!@Acj!=9%|)*9nN9I$CcQtO|X<(W>5DTj(|rD>KYh;#KF5E?jHYxAKPB z>mkvj9?Q5<);>1MZKtE{&C%w=f$M=d)cV#di`)i=(e7b$wA}PX7hQR)|CJ@9LZkb5 z`!kBtmtiMbwls{E-!-S}wdQ`FZGKl>VWNz-#~*KQKkWPY&fA>#^HE0Ygybg}{|(MZ z70>*<6IHZ5s`!K#_7>Wc(+qQSnX?&Xv^~ZYbJtjBxUl8eUEX_sl+pI+bIcu+!V=N@ zChaiic#lRIt;dPinoasr?j2XJC#svw+Ke+M%4mE1_?-Rb+VJ_PHRk>~8R>}Gs|ceV zkTah$x13$-Y&px)v$vQ}o#||)mr+LBqsSS`2hT6_Ttth?&VR7E`OK)I?S#|}?v8b} zQ%Cge-MjCIskQ5N9B#fhqG;!NuxGe;KE7$w<6`dl$mYW%iFPu|?>ww}{R6vAbN2)5 ztB;^w5M8vB5zFQTqO92D*0;k|HEz^mz zVv}3n3Ma~nO>TXwbc`q~Ho5h!@`K7Yl=4jlRC12q}5n!$>V zj4Y@*@Ml$rvYR=JV07%ncVA4;_!!+^eD_3m+V}AFol$RnHq+@_FGDIe>cGs;-bzp8 zxJ^Q$JFc^ya}((e)bLZS7Y8?2_Ta@4L()(v`e`)Bj@osoa}*!N_~ zX5keZd1U6te+dYMN3XV;x)?^6CTq29m;O@GdNVj5KH~L*Gt!~%TKEjNIy~dx>;589 zmgv=1s-NlD*mbEW1ZQ;o$P~U0YXl?LJD%jbG_t&Z(7h2yb+F&*MrhT(SciCgr*IRqU zNuBZKdA@?@bNdEsW5%UfH_dW}ih~6kt%mj){b#FJcHJva<<-_+^|DVlX}-SGAvB@T zijC}2rsJz0$*V&$SPc@F!8NkJv&OwJ+9@5TzSFkRy2pDnRjtA*Hu6B>Jyv68ZBXtF zixxMDHLCQOx5jhpaHHi)Sj9%{ENQgv_B~~~1{1tr6x?k!1`8@-(cRNG33=;q?`20) z-)YleZO9Y~so2PeQ@Fuu2o&R-icLoCsPFUMo5T&)^L=G|^>qaGopue@;~8bGkcy4y ztHtA1Ls&H?Bzn@T>+RvyV*RV>8RjFY@3h}>U$LjXQ-krH{D1<&o0*)V_=Tzb_GCv>eljFG%g47y4VP;&)T$?M^MoNGQr^ zm5y<7YU^aZ7WQ-U*3`w`{ZU4%an49R6ZRX}ZVuy~Nu@u$8Bs>7AqV~>b)h?U=*oqu zrv^F)qKsB!#OqVn`6u+8!R=+@x>UV=3Pl;MM;p6$n}5E_myVdC-MV*d^wDaB;#*Va z2F4HUn4Y>-{XS%r(R$F)snFjS9k{*LdpB+Oa7q<&e9`%}+uak(^BA&3dm_B6PPE#W zzcO{c_n^IA*6{2!Z$8HPDfwIM{^^wb{T6=1;Tr{(V(2cpOAd1_EP4`(eTy3L~0U2a01?n*66Ph;t5-F8@N zU2t}{Y)jw|W{TFOh8adkbj9xU-|{)>7-7-zd8rM~-|uWl>IHb+m3gC$-4!#aS8j zlU)_gy1QJInqwGY(G|OX5)=xJu1z7eQOOP zBwGBr%rn8i0Sk|woBE!ZPHX?Y)ZC183>B?+{dl{-G&At=-M({2MUL41W5WnW%VXnq zKkk2(Wr?1fy0cxoJN@YxDq83BbffQdE^7!)$LQa%-7o^tx|4Cc{jaht(eb&djT=*Q zJ?D<e1fLUbSrd!_>0ScS80EnbCIByk)5$X3o)Pi*9#EDs@L-hS-zO(+&MI@-bT0r&fq7 zU*JnW1O8|gRf8sXTwaI;qp4V$Jh>1<%mdYg2U@muB5`#P)}>oX`1n zskOdxlQ=`eqC4C!PvyBO{~r{oXgy5GE4WQ)LR0qDhrixsI_Ybz{kTJ;J8nqL73WTD zu6tqhM(g!CsRj1V^rECb75odQ1^Rjzh|a$}74jD8y4LueUp&44)bn3@}>w!4b`sORV&ttnEr}W?NWJVWV zakKxGCA$rc&i?m1cHcUombay*>9yv5o|V#nZysf|J^r}V*2BJ^@4RKNeUFVYS|=nw z!T4`*KB{=;=bfmc?NP-iys)>>o}A84{ltAk5oNSJZte*ai_nseRv^{iX zYTLv>7VeIT+ftS8hFFO*T8|T7l-jK?<=%1idSdSG)S`?tCdz1g{CMTQ)SB@5sMV=` z!T&#*=%O8vsZXY!IxCP-=~+*uo}B8$q?b`f+oQ-C${(JW`S&~L{jjN}c2{>-c$sr^w_Y;x;cr4wbvCbzy-ItKL}?cn}&YDap9uVUjwbz5?}w@ByIV0_Vu z)0fzP;^DMY%Pi3uG3gB_TJ7;yZ0xXZHOq#2^T|@*Neo?96P8f0zGHN`w9+#()2i~) z^rXSz>pR_RSGXULb%r4o8+BmdirVzVlKo)B?;8iJK`lc+T~a;5qDPPYY1eNUEb6JD{AM+Pok5D*HFKDq7!F>l`Tg1VDsyYyGH z^_{LY%Y7vl)i6uNMjjimyvFwj47y?yoNGV1?!w~Y3;pRdTi@xnAT*t3>pKIM`-OD9 zz+XEuVq@wqx~Oi9=iE_`)l)CtmWR0$pR6&brUjXSDeQ72)&(c?=n82uBzC(!^jpbo-FZ{WrT_iPdH_2N73$56Q-*=gGURXMz(H*`0 z8Tsiy7j~j`LQz(1a_id$in3ypTi-e%>O1xmqZi)Vk$oV_icM~P+X+QkvB|A(oluk& zo80=gfvE3@->lA3JF>@8v!ZWsM-Sywf2$bbPu zCRVN6BF5Q%VJv%#T>7v2oApjjFMnUXYTmK_R^{Jo7>TRDv>JN`_ZvpfM(fL~6JbYk z$p32V-O8{o^uEe>t*bMRUSxeTGh>HuW9BE;#lBsJabkmI{chQ)lJtR+QOka3Sq&$q z_o%f*qxDdpZ=Y{7?;)$veaz>7@!nCseI%$-N)h@5jn<*H`R-=MO8(kI){Sv@*UKMFaM$(9 zYAaP*nzB~=c2D@=Wx400zYO;sNUX7*f8JW-$z25ud*cH)Fo*Ng`r|;inY~iF&$9Lf zp2LBE{9GRY=#62%_%3^_`g&_m7vJt-Z@lm9$>scS{Ibevrk3JqS|d(^*c$hVvkzB& z*(lepvu?C^s73eZtTpPzkhjKq&T}pq#*Oatb<&&GN^hIs`bz7qlkC0S|M`#f6VUg0 z?@4fj^?YBq?eKs6Qw>*iPx^c|CcV1e4G=5qU!CM`US{26pU*kIep~Od7P!4+U72U? zYHc5!X}x>c*L$ybzL??kmGkvMc)BlPr<2U(W!9UHr#vvn`uM!efXuD)KDOq#ds;nh zEp|7ut}L{kb{?;YiLbK`uFi5z%v*iXT9K+rXJHU9Vk1CAeGwQlo!A@|dN@A~PCQP6Yj>Mg(e z)UrPP)t1$VeLvu|YHpeFdg-{%^CA>4&2=5!ro;d7QO3*DJ@6H;-{l%PhZWEf9wAH)eIfli}lAc|Nhur zmUWl=M#(v9->;p`sFu0De~2m%r{90){fW~yie=z@?z&gLvQ}Gr)!WMSkP|-meR?Ch zHUI1VaPP08%S8A5Z@hntG^KIY7SHE}?&%K+3GvavbH{4A#Tp-JB6jB)_tPVI{~2{o zxxc@SIHSqd%jwT5WuCWJhEbfpRF=MMO^!GbyZfBqpGTcmuJ8Y&&PRUU@xGxB886|T zuLwE*)$Ypq^UGH|e6Y8iJ|6{}fAxE=vEKV;_FljFo^?(3qfs2m`SV>ANqGCr;q#-n zS%mAC{LOl6UJw5OJ?6b-{p}L}-v3XwbN>7rbyi3A`8w(>y#3qr;qU+Hl~?}s{$c0a zy)C0!|LW%lqRNzh5kLR|1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5J2Fo7qIw3009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmdXNQ37B6zjj2A2q1s}0tg_000IagfB*srAbFtw*oeWt!&G4VyMK zJS|pstr*=pdqz=4%TZ$$w+NT@wNpp+>)pHGsHwHGw#Pw#rD7dhF5WqwPYnDBHQ%dpB+O zs5w$b`J(d|?{rTrPbXQTJrUkjCtB^xzucVRJ!r3&HSU@2&BvHw))g3rKRSQ&bvncyzT&NTgGpk&foQ*z@?K2F2v~zHZ`E+k* zT`jXk$LdV8&V8XfO;ohr@Q={;L34TNJE3eN$ZqnMn-8X6zH(2t=yrFS=AD7-uP2{f zPx#&+w@jKV#g#AcrJn(RvT-o2h8MUS%%y_hpnM%~b)Rh5C9Jh|XVSCQAZcghh*+M74UOm8kaII%HE7 zt@{YM0~kh&WZ)?i*K~2A3PuZ^WblR)7Tqa*laRL#_g*H3Q+?}vf_F%{zogz=nJF}2 z>oZ~Z)BKfYeNe{;iSB-{_a-sVytlhfK>XCvdb40v==+UU_2$|_w}DuhVXhLdI)8NG zTC={DH_ToSi5~S>#*MP}u~BY29c^!pHXjaL55%F?w_aJ~HZY8K51XUqrZ2ka%3J-f zEEyFV-N)OXQIx(6JJGVGVYK|NIbE+c_w#J?yXp!PWwbs1cys$<-_Lj6=DeSeGFm4j zKf(BKa6YPd=I5QLqU}+|C%mw?(4L%Tn48O-%_yVoF{YTi#yZ1=EywQi-t(i3wnv|1 z?wAyoh~778hdIZ4G|Ff_PQ2D^(wB1YxOzQN-DK8goH0>G+vCUQ>^Ikj&qu8>_s_{l zN6cPD80~{4gTS(cu?#eC{aXDhvoGTI(R&QLyhewpVYT2yxagU!unMip%* zq-Jn;tgD?mqHpiseMd~KUANVb$v& z*ln7-A6Q>~1oeXGqMeLbHYX5e#U{7DWtLG^Y;x;cW)o$_Cbzz2Hb#^co80szH`L|L)Pt#6f2logxY`c~;gS+U8jZ+-Gm-_d8S{WD!V zQahro*yPr?&d*n|aZ*3&{hPh>8%_ioE$Uh&b z$(Yp)R%~QsLCt|bt2&h3%vl7ZV<*1*VtU5M=>FonC%V(Vhp+F9dh4^9PTzVNQn677 zW`6codLqYd5)$2Uo%NiXQ1|Dob#`q^_^Ltz8Mq>t?%4mHFcGvc5Sk5(4*Two3HPT z{L9C_CrdU9uh_^VGe7=IKqx$Vwbj(cFuF8Zt7W_Nmx|V#!TInJuOFO|4t3YUXSmhj z83$kY7m2b&ueMU9r73?p&DM8DzHulloo4GhGY-As6Vmkpf9=Rftg)Vd-df{1chm#& z)C>IelmQ=F8IvonPqqq)3YcSkm|3>U79G3GvhH$U=uYRJdWt`vPA^%vXU;s^jk1j( z59i-*z2uqS7JITqm+rHyeSv8UPd@no(358Z{WS24>U;Rj49g@Lnkhl!4k@cN5?uF4#=`i)3wvE<3-kYgv6;`p42MX`8 z8Z&Eya&K6)xJj&0rN_KAo?C|-Emy)SHezQA zC~JjOY(!rz9=968sxcwalU`kK53d&MUro<2A4z?u{f_&JJ?)(ujIX{^eBTcLD@!&C zjV|-{XB4{={%*7$F3O5cZhhMiKgxk|HZ6_3E#U{7D zbwW{AY;x<{28yy`lUv_*LPnGoo80=gGorqe^=}27=ZyM}Bf;|D6NnYG>e{#ekn-{& z{rh%pRS@{#mf35R(Q>4`HoZomCh_`ruf@f*VtM$2?!T?IrS8+oKauyysF*HK2xF%6@8`Ot2@LG=NVYPX@~ zp3iPkN2_7GmJbejQk;xB3@*?3{2yhs8nb=*31J`VoP3OSCzN~AjWSvd+4A`E&|kH2 z^D#P?4_3cjC-+1dtwxL;UEU|lx#MIM>r;NT9TH`<92s$1M_*_RP=hM@?+GbXq3@-m-ktNy_ z;azp2)xKD-P@a~9PUz&#$0#lDC2l4D=vb!{28AUQ5?wrafM?z|f571MeMm>^6!V98 z4!Bvj96Z!_1t=bTg6J+7-EL_5rRO#`LZb7!mmlXQlz&`#_w=)(qjl?6<^4RjP`gKw zj{m+M?^iB{3=?nAML&L>Rloo-;*WxcPKyFFhZimY*6XnCyN(7;KZC0Znum*>|Jzj!43)?X(apFYpko|eal zrehQzKg2Ks(Ylj%L;X)#mS}Mf_3xi??x+q_wC<|h`x}sASJ9B*6R0AK%7z+-KU()8 zpUfedHIJ;(y~@jbIj!8Kiq>2H5%LC>_sqEPIE}K7AOd1N%Lk@kzOqHOXz^r;r_AZo zS$gsbJOhcN)s@c)b(dM50eL*$tNdtRi7iXCJe8eSncK5??=H^;{S`bz^F%@+Lam3C zWjUY4Mf+&~Lk^GDudHA~Dq80g@(K=5DEt*HItfcB{OTYtgL2gLg;D3=eZ7ZW;lxvR zR6r>73MbP!D)3~9yb|Gkg)ryOviUB%l0ABh2pv+59u#)9ZJ`abhJJYKPvS7hDa#$ zVV9O4B^dnC0x~Qe@$MuL-DXe^CmFfyF(_T8($V(OHvUV8-k;Y`_UL|z%aUsEi;f@F z&;QDjO+urKy!{#R^!3w;)`N+6pqZs=HwW)Z$MpNv$fE7>+LaH^>HU0k(K?|hKf&bI zw+$pd;T`4^MrnEa{vBnsolu9IJ}*ZZZ70;Ve2C`*y1mm~bQt2FPlzts9`wK2d`oll zQGIfnkNPi1JI_i-F$34p{e0x?&F?7Y>(ajn=j=A3jJ5|+^O>cY^O>d1&u2yy?L6xL zUh};ot0-rdc|OqZ!1+k*{{7_D5N<$*pgdPLvg!-1=7Odh^Lr-$@KzRuh&`NPVZvrInulXO&i!m!^Md{qXgj?zJo28FT$$LMk@u zz`zx?zG}GK9TMH*w7S`DLak=kotFOf;ltKHzwo3dge1j=6ky> zSn7MSWaF&!y~e<$3j#vn(I?kkAWBm$FQ_{?BOUL2Z*V@mYt8b^zctZqvs7&4!2!!_ zGJb(U?8*{-a@~c+#TWY1X|}%8Z9!-{&DM7YEcXj#sTah?)LnE@-5AfgqaLiMUf{2% zbXZb1SjG5%WUG*(T9> zp64rgJ{L`^J0s)LtQ&<_Y~-=T8Fkarv&qdxm#9-&oYcO*AZfn7(;_sX@K>;%PWoD_ z(+R&ih|8e5?u>CSjNWLy9#-EGPuawPQ0Ns-rZX|{WQo0D(c&gCMxC1RF`iq8Ov7_M z3|4H!@q+1rrz~52M?6{6gVX6@(XG-q33=;q?`7iUpsGPKv9RBOkb4WK)m3B)g;Z>0 zV4|XKn(tJWyF;SeitCO%q`$;9wlqIIOX@`H{HX7^&y!wB|1Ox` zj`9;sZhhN{Mp?1Rt#3P_C@VI(^=&6aeaAj^gTJe5AISdu#{cDtO*8XRA${A=Sfmx3 z+^Ru#M$~t*|E+*c6y*$eZhbpv5%nEMf+Ye7AbmvCA~gryDkHYIs_# z>{>Cpb@q&+jFzLuDsB-j>uaZu>est>zfn_b*9)gxDq`UoMH#I|>|bx156v9ZB0YSI zK{FpR&HDc7J?XV5qtz%=pE9>i@0=b`uXUcj&3tOAf3IOg87)VPSME2Hfo$ZF&Pj8B zWn8YMzoLv*qr?}QP4n~81A5o;<~NxOGZKn2T8~_5ZlCPUA#;85cC*sEC(39w&P4Os z@!kRb>*Jp_J?Tantwt`}Y|iqhkhwj}+*0Q3i85M^5l@=eC!Ep3mx=4mqlVX41aX~^gWGX2?e8L z{kK2RDLqi92e$Wj?~FQHAMEtZ)&c1-XKm1yy}m2JfUUbkcfsiKd$$a7TBVmE(QRwZ zjc!7nHk!3<-EbYPH;0?+J-1Lhq-<+bg&VC`TC6vR8%9WUMbp-xP*`+)zIk^?-C4)G z&H0{7zK+(1s?1v7$c8a!^KO4ShEZ!)8Ae!i#qP~Pq0s1g<{cg6U>)u-=Vc74qV=BS z{=n_K?8#leCrgG--Cu7QA<>30e%F%$q44Nxm5@lMIwKw3x8C*e&Jmf%jDd|!_O&MC zz=)j>8%8i%#*Axf9GDSn7+IpL%?<6^ZSbd~qje9vp7fp0Wlw~rWAuMwr(p!5btmJR zp704}iH=vB_ugw(d(Iuzfr{2$nUD3+EB4RcPn%ORb~qb-9@}Ra{%Ggm6!Yoc&bnG= zi;mTqW}W*&cbceZz2P6B?Stm>(04-FMv&d)EjJ%bzkKDMY|-uRG|f8$*I!RQyPoj9 zKW>>cSBfiN;7dOP{%93eu+mJn%xsV)y2I^eO^tcGdX;$^c%HA|8QQwuygcL5tQ%%I zL&ZUH(XRJ@E((wCaHl+#tIa!o38`p3Ovo#^O=v<>_b0<&?=qb>o(HQ|L!-rIuv(lu zv1<3iXg5>QdcDeA=D0}GQ(UYUUmNH!nJ07 zD{q*+9uht3v5XsK?PH_db~@VL9Bn=vxE_c@t#7@u$ZcR4?H)Eq%S~T&(UrIQUs*CL zG`f$sKcgsp8Fr#&OT%dSU30o#YwqXS=6BTy@yyRVQAOLMicff9Z=pRo%`i8YIh#>N+ha^Ica3$13tNue<-O-e8Eua~$J{X~ zED^nL(hhTu_h^*SdYpKz*`zP!-f{JMqPoef%{XJCjJC&*&)ILT4WEx%WA2}mk&c+X ziZI#%IrAxV%h{#Qma{B9dyDzhna);v8D+FRikzW*@cc5*MYO2w{0Ezx&x|VCPDst* z?pRklbwuCZz59-sTDxw?;pTfIigum{dxm@Gk|HtT6mUOqCFAbRVP~Q^H*%_z>$AGP?IsM z8LZgI$by;!e^zxUyP2~HM#oNk_r>&#kJ0_bcTaSueGgyX8THm@Go8NmGNfXo4$S=Q zt@K2W+ax5q<2vg(H=*v&S?lcDifD7#`p(F=5Be*-x&{-RuQO&Hd^;!<7M)mYncZ~8 z-Arq(nn~1~I$E!XRcuDR`KdphX6ie$K7BJN6k6Z8!D{L%NA22V-JnOee>Pv=8Tprw zeNUEb7GANDM`nKfmw-@s^lGcAi(zzWvR2D>=`R(nH-q!xBVIo^BOU6lh0k!S!!r)P z?k^H$iC%4`N=sAzbegU2jC|uzSUSztcV--V!zZNc1^(KRkyv9r|Gc%vbMB}InQ_1v@#}FT%T+e5*0AV`Y^L>l`T4Umu21MzR;b{J@piSKAm2&ZqJ-~wi{&|K_1S( z-FnG0zb*D;i!R+~S^EOh7M^?p^_|v@)&|d{f}M?cf350qq4k}j4OXLX+BZvdmpxW} zy|qW2)EQr%=PP(Vw{NgEW?Y(e(=2DGI9RaJYG|L)f3|vM*S+#oUTy7FFZ*M>h z2IbzcXmOKRqe_o?Ydp6OH(IWQRcyr0l1A%p-&3Y*Fv0sp!QED4u%Hqa-93Gikhc!^ zUUnq)oi+{DhD@Q5ij90Yg&VAfKrzm#*ksg>`abWyN!(yP-&eL*Uq?{iY1d#qo>A5c zso03VT0CwwgjHigq9?t&-X2~p*1wvbVLp=jPWv7A6?@t{H5gxgr}(}d{#TZ46dGOT z?awH7C;Z)LJzSI(o80=gAAXb-o80==2~pp%pBTOH){g80QC4hn>)TE!%8E^Hed~mx ztk~q%w+$3!#U{7D?SzadD>k|HZD&M%C+pt|IL{gN9Y=!YzbBArbM)AY7hji5Ubpz- zvHjZkKS%mHjWSveRos8t^~q%NTXic|)O|~=TtBUU#(SvDbfS!wBgKZ!5iXUJhacCq zw6yDS!zWh?r#V9dA8vJ4QAVo~y3bA~mz~_p^Rc3!*U8J0$=RL{0y-7>GsqxBOpHhIl3y%zR!*fq(q-u+QVt8vPctA}_8^sf(DojftUFUn{&O3$m3 zr=*7qTRSCrRZnMsl+kL8`0V6N-wErC?JVOnle6uRD5LdogX^yi`v~sjqL%HhsUIAD zv>KuClH}Ji#tz*WmApjFcSISj2kxI-5uCp0;SFaiBOR}Ic+0QUSqKB@zI+##cbiBe%NTgHYc}eSNJ>ab>pipU1Gn#9S6uIVvSjG+ z`q_pN5^WemuD>E66dpZ6B_z_Bkdcn=Tkl$S-7%TRjGmXT2}#E|=DKBu5sa3Nhpf5W z|0>H8Jt0|BQc~kjNB6DMxc&;?>D+6T|5Vn2Jyu<37=dVgY{(7%S6Pa@Zj5Cte{y#}j(R!fZ8CpC$c}|GXG1o26ay}={ zNzV3vE((vC9~ZiYm6SmeD) zR3sOrYj`?Z=Oeho-fxJfY*t2D_v`8@^hf8<3VX5)BP9B`l^Hk6$t#c335cIM+TQG+ zTo$+_p3!qM|l88T|DNeaQ3k zq~u)vel@~qd$=LVYYzKs=cA&Ec5)Cia95oa$f(UpS7n>8i!9pCNX}4R_Vr$#i*kOi zuV2>Od}dV9c0y_f_u7jm4?m_$X=#^ZhEKlu+QZHFMilKlXZ8&DwQ@dOSS{DrIizopk5GNw389b<^-aw*yPr?%reS~O>TY5Y@)2#25}*f>$$mYnXL0di_EzUaj1OYA@KaN4P5mgtO_^oA3y_V_C{c38KX zWkbFBh&hqa`p(d0HDL*bM0dHg(ld?Os`AqGFRdTGzSF&S#lZ9fkZU0o8x=5cMQzA0 zFoZ<6IIV8Bn^3FSb*H5#`3_s(>9%-zS!OzNPA$B?Q?`6@P$(=qc1qnWd#0&mR^2I{ zkC-}I4;WUl>Aq;0Kb>akJ7voj1%*QEJ7elDPzjY>P&X#y;Wl62>9%00@5z#lv(EP# z1D7rc2!%(VTz7$(#&3B+-N_m0c;|bA^Wj}$28&1}ygrWr>cBsk`W+x-p(}M?KhP>N_2l)P>IlWvkez z4hPpQNl)L(Jz1kG>gqCUgKo6yNK}wAYcR!Cb>TBF*(x@&oA`t}-#lx!Xz^r;r%Vr> z{;8t%W}sqIIK8eSP%IF!St>TNm%NI)=|@)I5vTGgr>K)!k8b~Lw!Tv|t?rDBOS5hi zUa^tK5@*y+^Uu+TN0+EmS)A0q8Sm!nJ1s&J3V#LL>7=i&_VW!sw0G z>tXdB@sv#r2!&N_WEY8vfhSAs4T}~xi7~pqGsbi4kbNAszB4`Wl<68wNPXvwy6Hz& z-)WV;NyuA=doMeZ`cC1rI^XY;g;Z?hBTH1&P4k_~a(75{TXEfyhxC`Y4yAvY?+EHU z;-t>3qJ~s#M9+C5%zrA&0Yjqu&OcqJqJN$~zpuM_B=w!5^Co$w62mJt;tvNWofnpl zQ?bdY26goIXXK~etsU7!)OVb7CHs>4PIeoPAbkC6$nRWUx$gd*rn&R}b(O<9=Qsbzql}g#w;sJ>muZ?$ zH*DI}@U&RjwPJMZ>={KFEk})2+#+1o*G?VPuXpc$qo&rb7f!cS#KJR*GFpw;zuq(- znmMRNdiWNDWpXp%`P5YZUc-noT8b?7X?!DmNd+(B5wEvmyySFFFf&2cy`F%g@ zmv3iho_U^U-&1#HPiOPIG-sjPN6u$t!|p;;oF8?kX`YnkZHG9s`s#QwyfRrin)c0d zTBwvp+BdmUs#ppoZlo0w%AhFC#re*5PE#fd;oF?GeRgmk5+J3sADjrIT3IbCIxljdXQ zEp-{bhZodn3X6(PSUQ(sbfg(3qNc!wkiK+0=MZrxUgZw2n~z#l8Kh2QhS?j0zDAW0 zRJn*@T&1aut-(G_CCe~wq~o2R_wD<+)*W7&*HBZSsm{amb=_fxL7_GFJINn+1Cx*GRJ846v z)0rtXbTJDj&0lCO^!d@5p*s_DXMw8m$#DKCH(wg#PP*@BPUmMX{jb8GntaXtxcfZk zEYkD29DE6Ar8%)qvz+s~t24Nf?*EB1A;I|x*UA(b6y@bwLwn72&Q^8Jd`34llq8Z) zd#?7mNME}DXS6EEJ3rGn#7XmJbXst4U56$tou}X4sXM(DH_HWerAap!PwI{#Ug{Wy zY@9S7j&Z)K)y4Ff=X~9T(5rlZ=pya=x^rF+7ZrNaWRQsGCR*O{ilKvM<)nEXIwJtX zbe-o?WTa0g9hIvzp)=2Qz|oT)C=U{J=#a)TVvf_z`{O!7()b>8owL-0hL%?Aji2=-tM$fsCSVUb9*Yq zgs_gZHAgj2CgoVAe7v-98RA^z(jSndULXFhimC`7zhScv4!hAK@%-cRqhhnK+;Kq%`jkeS*;ra2ixz z>gOF#NefoV6Q14_TH(_)XYp|H(v#AHjq%Q!aM7IJIlM+W=6h0FupaHKctXz+KJJMM zXS6calhV8$uOw#!-<2!v@?r1z24|A0#&}X%ukWdC;0Z;DO+?;Oer6+f6ZcaD##*;fXH>aC=!+3JX=H_&B?s#&?=H_%$cRaac zb91^mIG)_GxjEgOJB%lHY;I0B=Z`0MY;I0B=Z+_LY;I0BUwN>)`qU*tDKTxi3hCPXV4Hk1K&Tga?63U<`&BbYVYy?5efu;o2s;29X z4VCPa&~$*?hZ3@hCs%1h!0Gk!iVrh*{pkQ{*|+`u9qaL{&x^YGv(AnUm+<`6f5&pNS-Zo_@4>jP*D)_OpL8XpC+$6lb>7ZuIpm%KC|*4weM9=oD-r;Yucm#!RhC8WE*^B1<^Hfr^@2KFz!b>Xw^{T<7pOPa!> z+4Og8Xv*`K4!IE0mwuaVxRqgUZD8M~`Q(F><}Y2>!-MuWPm@KZkp2ocmprX`zjl+z zjr7~BW6&Un)}1!@cPs~6^xSE4e`i|DK@A~(zd*Zp#CX5Mu3X8!qo_OF4Jq~uwEHPT z&$Ft<6^W0#9TH9;nmw=HwsI$J_=07>kQ%zET(O^`^=IH__7nBWvyjQ11)A*p3ANe^1WvP)c+EfoH^?CX3)7{_c@;PhQEc?2VzO|m6JD05| zm0EQu%FDGr_se6yQgzLIRyQ@2BzF3W&FiPq?{2^Hwnkc&-)0-RW-n)Hdw-|Du0y&z zHdG~bN3(xKdxv?hyFsKIe24Duyd!mtf=lh}@AR>=Un>VwE|=bp4Nd6$HEUPz4boUW zX);K>!)-nKyrUR8BxxGZ+p!^$J?!k4nj+)(U|h$GPG7Qi*9{dt>A~_KL5B`$EbGYr zPVYSSb2TBI9UFQ(oj+&uTsGsx9UIl&(S0kGgT!ChmG{y7+|hykoxXW&u4-FLXUB%< z>YB^u>FvhoNI$XXeZf3;dVi0+!rYPloqiSn>ZZsq?!jpGce?$nLff)vCSB>_N_|W> zX~AET=FNF>$L8jA3%Bpd9h;le%{zqs9id?OlXCA!Nbuy2&CTf+9P;Fj&CTiN9rEOk z&CTf+0C{r9=H_$@4l$nGvAH?jf=Afjar<2XvCOc)Ba*=RKO^8f$oTTR|15Vn%K!Q9 z%K?LQAH-zMo|L9mdWB?EI~2zj*>|(Zz$X{sl-vB z^ZuwOrKvk!FE4S-b$QIEDTC%Zmb|QeU&4dZ)F$Kgilc72?pv$m-PGxIj#pF;c~Y8l zhk4mi`XnFH`+Tz0@v<`BlhT}>v5soJH?SoiY}F3=;f?X6G-q;Hq2oo#wr=1>N6|1b z!IRRQ4X?S5x3mj-qH*Eu{gz{{P=!1x&07m^EYq%6Y1|=8w55&Vo|onE4NsFC>Qse&I-zm$7(hKCjs^-*t6&c!|pw zX1dIGm>EV#dQ6@CT|UtrMo-#ny5n>4`#YaIrYpL9UYgGw?MRfgh=GR-YsQFS>73|@ zW*9x`F*Sv*gmk6j9sl6Jzw-}Ayrh=~IB7m+?h=>bd$?V%yB@z}4#Vh3ldsEEyM6~u zUpmh553-!r?;nmhl{*Y4%||UL*KW-W%dOMY9ZoW+d;!C_O4Br3U9Ps3xsi@@eAc(` zXIgg{PMY_p%C4!-!}E0AVTR9T4^!sla2~MG0dIaNgHN49J8c`E@t7R`3pyupBT%X`~2IHt~(PF zEU2Z0tUl?Ef2-H%-AVWT)ZzHlWrbMbPgUL!l|M}PxsI8n=W{vu63|L>Vx49>=5nKn zoXL$esme2EaFtpXB_Tz5xz^BLa~zqfu9?poRKCznefG_C%+YK&ks7Ke-TxC>mE#=R zFBEaoycwMq+*{Y7@k{3Fw|DA}+}8^Ctt&m?b4MJhJBB!^V^m7>;b_MzLZp1^G1uYx z4X0Q5{?J9*ceX?48!CFzWRQsCCR*NcilKv=<)nH0X2*N3<3-oG4$aqPm@e-*0_k|6 zl_n$XT-8Pgr&dpTpgc&>p+g$W7(qAhkLw6Y<9p0;%v9H*p~aPY@PqqN=m{4FJo!WipGY2G3F1fw0`G^o7P&pV!y7OavdJiRHj!l&mP zh0=t=lhT68Cmq#c3hOSxuxjO)?@4LFbd;lPoQoGy#JDm?lypG?o|NY8cqKaO_^w=O zmk)c#)j1MXHO7hJG7`|q~aGd(3OIK-{@mc5%eK9GKYCvbe?yJhXI_j*WLEC*pdygYmH z;%u_^+_Cj=k4TFi`3?$*d+)m%hok1Z_u@LRU*I`u(IcGOBH+m#o14>3y~O@b8)fCm z9h;le%{l4G9h;leP2Iu%4p%6ydq-R}_IG#;^i#ce#Kn7Z$L8jAbMAO@$L8jAbM7$M z-{Cn(pW@yTAEDW?5v6WV4O4E?iF+^_Y45O9;VT|uKJM&BS|uZ2h|*k)cE?5#yFDS@ zsPxCp{*JdXJweYQ*Zm#l)|4p4%1qCw6nW90{r#Q6Ni(GfWZpxa9UCrT*vuq(VM(|d z^1iX_Zcx|I%wJ0m_55{asJyDy?*7j0$r;*RExjEZ&iwFJE3Wiv0rZj!pm6 z%#oao_Cweqxknq%U60I6ReuG;t@N18%rP!16#FUK{he+xnUSj16*045!B4zap1mS7 zW4b9L7#2=&|k~dsCu)jkp^(0j*)7h~hnth0vwklJDI@0&eP_1!?&A5;EOp+EZ z-R$pldG-nA2AJ-S4SC!51wfwMvAH?jyhGUE z5ekMsDff zALfO`gh(5?H?RBSgJVrGrr@{{*5E+%2%|ABa71))Y`}=vfWUx2OH7P8$Pz^adobgf zDCTu0j!9$u7z;C!NoCTRXoj(bO$@Vyjhn!M>O($B#1zJhyJQ$|a(#2PCoI_t0@DywEJn= zuX7%GY<6l?%&T!3e$jE$6Otdj_iR<&y?zO?kKX%S-~|5(so`-m62`uf7B}UMr>4fd z@oJ1U_TI-vcY9=Z$n2!lq_~VIzu8HN$>|}pAH6p!HYGYPgoJ7IsC)f5k&IU#y*HF5 z_)VKI(JwqDEzU1+r2mK*{~&+AAmd15fH^og_+dYjztMk`ziE`wG{P7h5?~7P_xBTy zdq;O8p-0kU<3lFfA_a5g>d|{=WMrgDpEx5WBPD%CN~&M@lt91d5|U$6 zGSeR!r4^Q~%X;E$Q5kWg37vouM*k5;(^R81B+x&^96a1VfG|=h;UzUXCZxnB#J{f9 zVKRl71Be=>4uzyv2Pw_isEnu%X;I1wdL9`?5i5{$icC%(7al$_EhRo7F>ZAF<08U? zjMku_5vGwwr5c5tt{z)T%uGr+G&v?Noz(1fu>kp|!WCm!)O2;MSiXq~qxpUzHYFw@ zHbnN$KRzbd8gKF+5o-z{joug=JtEo|9X%o{E;=eGDkd;4J}8i{Iz)x+m%^r7)j=^a z!KT<)^N1KD=?IAGs1eqf=Wai+@l+sL^5zHw6cW2Uti6(dN;{ zy>nWO)~EbqQzu1huSPwtH~M>V6k=3m!QxHM#YOD2faU4i66wBn2K|`Og(a2ALwlOoTeAOQzuV>#;kJtVVxpWT?p+ z92y)NNUG<5?2*+(2!)0c6}AY{Gur-hMZ^(XXrw975)kSiYW~lQKQxT=s`Ot(K%~FP z(tgX37@5@dh%yQf3JeYQH5&5hA_7QT3pbky>i~0rIW*WD zb~B0s%|@#~=~c~P5yZE!fKWQBT1{qaq%q9g@g`y-;|v)CgZ*uM>*s1VfowDd21f*$ zOdY;8Q>eujY74cJIeP^4$YM5yT1n?^j*JMi`A2sA)&eY6Q-s-{3_*bboT3Ob8AQm) z9vl`H+L2CHtdId#t1W``%aNqJrTr{v84+OtMyn;5blT?7_Qz#W5gEqGh-fidEc|dt zx>}PZlFV5mBFIQ!>3BCnhB1pdATZ1r$-@q{l8LD;AR@>bY9`}b$2}sGA0z1yNv|Df zq>QX&5)~e1F$LO!jHCcM4m;2oXbvJx!5APE|9{#a1)6^;MS&4P{*gu#0ZR+bXpJ-( zZ2`vcpwIx)9a%a)90l4ULQR&iNdHi|W?RB-kz_s*POE8$Yj%*4x)K;+G>4JlnT+~Y zIy(w9+KfR~V^BoLJqil2SSG}|mjGU*Qr3l2Ahcl_2u z$=p1`N*aB*T(iSW{+7_lh~QB3O?VU*77!Q|7(tx)nH4fDJUrAA80PO!+~8_98T&24 z{y`>7ctoHztoorOy#M6Q3|ae=$&8 zQ%*`6rMDKHo)IyNEK>{1-l}CpF=zVJ*Hhz0O^!=XnVA+77cq-0+sSL+bWM)49x^UD zJtK-N=Z&+CraevqdHf|qX$0wyEy01pl$=bV$ZC3onXJVa$y9_}YMwAbnN?nu6V!_E z1hw?3noRN9nd$Q$DYCk#eL5|H>`X)@DrBhFH=|xhg^QW733PSyb@gH+x4Jnc?lpC+ zyt>IPTBk;(rN>e7kKQYyS8faNYnC(*SAro?F?1n%bPU}nh>Lw>lqyzsOPejhwb0t9 z%j;HTb+12jMqF}RTMfJ_PRhNK^pyCF%&4@u(CMV=wY~qr>r-dYDsHb2|2g?*;(pZs9~Dh*oiQ__lBdVTjvgg8OfllWs=SOIFE6tNz6C9aF3UlyvL9J@aMNLvXA58_J#7AmGR59 zuLw_;7kRxXFeCu;jbE_5B0XDPMoWkh<@L*z7uk*WV1H-|Fkr8qxo6AE zisvt~xb};cmpQn-)wG{8pErdBSVGKbU%y~^wY&QH^U6#0zU_bYe4byCQ?H1MYr~oq zRQ)A$K9;=7P2M6OHCud*++}@LTK)Vb1KK5=UsAWE3q~Xq9SHzeM<_`$z$KyRNC3Dx zLP?SVE(t|P0>IS~N|Fq4NhmrJ0IrTul4O8OLeY@`aCL-|Bm-O$ijD+;t0R;o8Q_vo zbR+;=9ib%20GEWKBLU#*2qj4dxFi%E2>@3|C`mHFC86j@0Ju6rNs<9B2}MT&z||2- zk_>Q3C^`}Vu8vTWWPnRT(UAafb%c^616&e{js$?KBa|c=;F3^uBmi6;p(M!wmxQ7t z0pRKgB}oRjBorM909QvSNix7Cq3B2exH>{fk^wFWMMna_)e%aP3~)&(Iud9TS2y_& zv&SWqzs8!#s5OohprE70+A@w^(1*{S4@&g+?-5|hZs zPfUw>{CVCiEj{nkT(}Q2mYfab*9e3&SF#UsX}x%9`uW&fLYepE;^;3E+{H=WroQ&R z$X$2kKFNoHt0@oB`oS>W#3Eq4I1es!v16H0@$n=jk$iUIVhlpecVB!d#h6Hnfq8*^ ziZX#*%m_J#)7ea}8S=vm46A#1AEU{-N$k%_<5*DD(r*!fc{NvJ}O&m`vzCmTjmrEnjv`6X8U5v9Sba$SfmNGL{71b$)`=e4q zd+HG}g=**jN)*x2Giqi=%9yz1xHS3~nn(mg|GJYP+>IBeF*Idd(sVy^^7Q?Clb<|L zbhX4Hg|Cj8kUm}69TTUb5;LYoO;<_viison;$~-zOCLLR!g#TJ=^{p}guBj2NqZwS zF=2YLaPz(Sn;$Di6F)k~#>Gd?Zoq(ZsGcPGU@Lo3d;#357}`MDNSogX{L zh51(4n~Ns>V2`om6OvQBNcB%5V+s95g=x>f;MaLAss3F_t0NUXDkeR3!jwol95UqB z7X0YXF7TSTPtw}1Y~_2qO(Vum^z&1sbtKp~CN+%=Du#(fI3Sk%h6xG3L&Axf8L2d$ zdOaZeRT}o9O>RIMagc;>rQzv(m^P&W(R}!E8jej$CKcR^`kWe@6idSn5}r3}Caw71 z<4JhVtc18s65dS0_b1LwN+4m{qYg-liz1EDhcdfABQ9nJ3Hy_9kF=?i$*AP>2*Y&g zF7HPX`<3%$*;yFrA8&c z&M^Ev(_BnHm!GuYqWOvx=@%z)Wo8((T8@)*%5f>*lfIdZUfv(danWBe zOxa%;=GGl@-2LB@iPbv{Q@T!ZKZ9s}QT(7yLR`#93RF7U6_6y|2Nd>3QhUEvgD;`~NvEAfAvQQ?-tkB2A6#mA+^k-tUg_bjPp3CYt*aVN(n zaKFuykgWRA5`~8UFq=XH4f6Gx1p5Eb$_)7JNT$!a0gU(Q)r?R7?u_?K|0F2}sochQ zeU_mu@435=^7WpCNjmqb`tbT2x%5g;;D!YzeDYMkn3-v_co83Z@+EVg-pl~zHs&to zK4u6rf-y0{%&(ZonF!_y=4oas^E~q#CWe{8B#|GD%4B}e{E3;vyvKaVe8POm{EPX4 zSm&Gg8>q)PvUcdI5?)9428(!~tec<)E*Y{pIUZq|QUaP#ec2=wg@$T+D$on4e5#AQ>aPOzRU+|9iPV@eQ_q*PodVlYo=UwT&%zKmfKJQcBEk2!m z`uq6#jPUuD&sd*ld}4fF^ZA3%e4j6U7WtI=ID9tw?Dsk6)9TyP_YU9Tz9GKje5d(N z_s#U3;JAKp1-l@LRhE4}N zUGChu^KG4ncYd_<)19L_XLO#^`HRjuo$ESp?0mR$bC>R2?(Smh64~X2F3DZ~+~w0Q zSzT(oZ0vHh%eAh3x<1e~r0dgNW4pfI^>1B&=vvuzUDv~1uXXF&?V)aucAMJmm2Q9P z_IbCwZcDrE>UObv_wM(0w|1Y@J)!$s-9PW1-+g)a{oPx7^y@LKM|h8ydd%$cL63z! z>U(VOaj|F5o)7kXyypu&GkSi|b8*ilJ@@o%?$y87$X?@m#rFDRudjNQ_S)F%Oz*C} zALt$0`!~Jc=>2K$qTcIzpX$@K&x3u!`$YBmL!YnuRP_0&&*i@T`x^T`-8ZT4{JvRz zSM)vBuXDc#`$hDN?e|W-f8VkCj>~u6b?2BnQ}6uZ&LwxAx@*u~kKgsm zUH`bN_O9c1_rH7e-3fR9jRbtW<2oO1Ir$0dhnqK zpL=lbgJlmMd+64O#y#}LL)j1Q8q#yfV?$mW^8Jv_Lpu$%41IOzH$&GC^BNX7Y{sy! zhOHa!H9Tl|!tif~Z+O`EVe7-m4}bsgPa}Ga2putNMD~dNBL|HfKl0Bb%SN6Vb^oXr zMtwAD*{D|kK>tMlAN+S3`x&1w{@GY*ykHteehcm^)8>Gl0g(ZJ3@8scZys)rGyl`P zEwF#!guuChje$3Uf`ih6@`8>B-yi&P@YlgVSq4}pTIO4pTYarz)<0UStt}xzAsHcs zA!mOz;#aT!D(hFr9(m}IxJQ0?%Pa_U99xFMpx) z3(vl=;DyUCM!fjRi-%tdd}+>0TYvq~uV?>y#cyu^P2z8Ae%t%EQNJyE+4tq=Ue0>? zdeqZV-$z}J9vA&}^tqVun9pKP#y%eVkJ#gJkH-By?r8j@@qdp$HvQ4*A5T9%B#UVZx2g|D)S&n4QEx+J}vRFT{-`PF1c%3Ue5Q#PayPo0yx z@3oNEK6&k2+LLJu(hcdqPA|_GKqgbGXAYV9mzn!#jh^+@tme#TGmB>Tot->;_3Oi4 z|Lf~V--vwU$KUzO=K0J^n78(?0e}7C zudVOKzPs{0|Mxz9@A~|h`77TyzW@3A><955to>Wi-~Rbwrw@}q-1^aDA1(TO-@m`{ z_k$l#__*{Re*bv)AD2G)?I$ZfHGlfA&$@j!^Rs=QkN>>?@GUa@cU2y-Ra-6{(a!f~|#57B&`Hit>sdDE_*nf62S0hSJwd&y~$6+gJX4`G$%oDjF+)RasIs zvT9-VJ=I^;46ONEZMWKYYT3Fs>Mqx()}Lya-f*z-w~afOOk1+qG0CxZ>61&BJ0qP- zmW3{>TmIJ=d?Dpp!nmaPg}Rk}KGb;+8*H6?3<)|RddURS=}y1sJ5BO7WrKDM!8 zlWmi8^SI5cwmh|E!`5fEZu{w_pZ0Bw-F9qy;`Z}9X6?AP^Q~RJyWZX1XZNRj?%4DF z-l2Q#`-1k>?6>V-ePGIgod;tMo;;L(==$Mzj`Te8>CwB7EDR((A3`1%tso;Z9m z_2jivb58d?{q>n4XNu20es=Y_Y3B}~Pdm?En1AuMiwiHAFEw7CczMs2q$}5&-fh0E zc~Og{W!cr|t{%OXdA;-X&un=8lWw~dK0o-hWP6p<4*Y|MO&yY`UKGB;A zWn!5W@+*;Xj31eF%plhS9-$7*33??p2@8W~G3Ebm7&HDrSznyJ`4{k@59R=>M)G-l67;+$On1O8@K&ANNn{;b zS|8+k@b732W<(NMHza47p^vb9O>e9-S)xoQf0bWaHRf`DPct%IlG4p&{fpn9=>2aR zW$2LVCF_CHGl69A}#av|6<)pZ! z>|v*ZM)B8U$dF1lr$*B&{ve9=7sf?R+_FPtx@rZS35`q>7u-2Dk?E0XqCXUaXmNbF z%#+`Jn4H2b`*#uTbFAp-&oFl+#ix<=L2iDa;2_jmPNd%e?!@$6%}MbW;$8(A7WoM8 z*!(&PZ0>TtN?Vv?*`rjN9?}-(%j{V` zhVKiw+BD;jN8jQiIUeM02#@(BqBFgYNlKnV!&HDY78(_s9!r}<0Qv95?>CbWEizy7 zUplB{(#%9Z#!x54aoH1oUiOsfiPSos%F5Qc4ZPYK-aqmK-^mOyN@rJMTmqkKcze0X zEh@7`$IYT8@f4R$yhU=G^ya7;=_a{cV*Mr3G(%k-SM{krbqbf8{5mrcx|a&lYg(Tf z#$=i|*Rh27K>QHHytTxc$yA=UpU$eEl@Auulhe~knonZX>uFS9;_C^q^qTyCk6y`CLv|GUZmI~b|AV0Mse{>YO0nk=!mU>4E4`vrOn3)O?(;&JpA zv?B0*45`bsZHt}Ee?f0yX}7oFRwe%T_ZDkay~X3R`%JoRZReNkpI>L*`d!pft{)gk zItBVR%AMr@t>i!LJH`LB9})le6T-9#Id~FX|R;iT3H4`b2%B zJ`TLd^zL-$<8KzPJ;$==))v1RerKnP%w@*A-;Y-chI7H?K1{81LV(m!Ch(ct3xcefb8{%6JDKV`m*?yl1h;gImeU zg^#zLUFdU=>EyGJwUdbn%XmL`2 zw38jncz6DieQh`6{Tlm47w^FrP6U#0;E9Way=`o1cM|Si%G$i%V(0HxgzK}H*ytOS`ybddza`v%dxrf3EeBt6 z%gt~5kh1Z4yP2I&%7&KVA6nTQt_-u-)<2LkBxN0Yggrj}4pP>4Oh3*ZiER<<#pYB? zH&QRUSyDIi^+K#nXNu>?M2r|ZbVNkV{Ngi0Ws&E zQ1UicVYzlk=js17|F^K7`3DjrSCEiMkcPn@!Dm0#cS-+--_4w82`4D3{ z+5D0av>v-61}%p!i2_0Un@NYl9hQSFVsPkrHd=^f25x3Qk)FtU+1byfxqH7n_A9|8 z*-lVi^s%#Fi;gip?Ch74SnoXcb19{79-G@$w9~KRU;I-#HRkR=)kCw>|1|7Q&ew3` zQWM+8$K@v0i@kKEnf1Q->!>p=&E9W6?AxcMuh;9HyEk_=ywSC(TiYL8ZFFm0@UCN? zwl)z@-G4MwPn%kZr%fM!aA^ zNv7!FNNrq7dI z$Vfn+_(*z?IdVe!t29gwGGCIOiA^5wAt)i`h(u>}%Imhmw4N)|`}5wb;*{yXMEL)_ zzhaNsvGYz+m2L>*_%*Tuc$NG=q&u$fX1!^>6NPWEUSv*ogv1zFrj=f>``AuYf@lzh zI_AR`_Wx}!=yNU(5C8!X009sH0T2LzpG$x|OW*(j5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5crt{*#B)u>-DB9 z&DY!as`YAf^VQb&<*qkhX}azz=MWCHf{VM?Ru$!CD&tGv=UrdZWy|kceZ?kyCHXo`l zs5>rQ%7HBGI-r znke>6eeU|J>d33>bL(9SYh7`_bxy_Aik#JoD>1k+uU@)SF7Bwk(!~_Z zo~g8};kMT2Z4`AV&Z~1)h*u`z5U!Wz?i5p0=Ys{+%Ikx9OEfpnr(Ru>cTg!;U7)&@ zl6K}U6~b!!%kBE|*3|q7JNMUW@ zc&=11O@(#ZRQbBDut~gFovT-G`P4nxd>v5U|GA>IVpg5=_I$BkE-TiB&*!;XEV4P0 zzgf+DB3S(5YMfJ4RX)LvL}iu*=3DlGCd#3c5UE| z6wuM)6QbO%f61D+ek0Y%{Y4i<33}d}uXK~fv=-FRlYEqIAmPGoas&yTSnT4!wn7rW zp-dLropnIC_-T<0uPJ}8^8Qyf$Qig$YoW$GyOJP1RW98ZFMlFylP2Sd@>49kgwhp{ zojH8JvOP5%MQQ$gqqt5T!Lr-So7nA@+F|Zgj%M7sT)CZXDpxhW zUAfeO9l7$|lgstw{v`X?iZnfMNxjxQd!+C@yGk<>5TO$q2U_b_vgZrM-h$V%Bl{q` zJy&`6EW5Mlnry!*Pt~fMs<`HxfMw#?CLtPw2?iTr|EikRj;X3yTl&O zYm)6>$x*SXvMcn9!OM9k*g9$G5@X4E&o`<&Ti(E)$kR@AR%I*OGR=G}r&(!VrQ%|Z zPA_vd?-X0NOkr0Do-E$18lFiLJz+nqmfKaaxlCn&G|@bT{i_9g)fsfk|3v;7P4nln z9L>=*!Nz6mnS6CK*|GR2yE|L$z+St;K3kz_MmNe``tMyOm)Xsg$}Wl8Kc1%n+g!Ps zy%WlxiJVN9z8O3evch$I*O^dG=Jr5w^8nIb{#9y*w|w_6TFpl0NhRb3gOtcP`>MJ3;3Rp zBpoNMSz({8*A@VgDIh(rbgZwW^Nzg*l46!^T0n;c^>Lo7$yY0-{&fF7g}`>{E}gW4 zlkcD1ZC5B3ax`6%v$huVHMB@lOok{;E2GjIi?}?SilvcO)}aVpv{RZ2``2qof855g zqJ$qHw`c1ZmGhm?;(Pw45>-LT0z#;+n);`(&mQ2)*F{i>I8i7*HB@RxN>!GIO5t*A zp}GrDNs;=&jmb*;?6M-)5)gA;E2p)JJC0>*x(YFYo;PJn{dje`vi2&4NL?=C`%#ts z*77p9Guyg?E0Tt7i)hj59=jLGL(!FjI$aqOd9|#(l}l6EXRnr&UeL{QwI=VJB4I<8 zY()`GdbliQdpMU@qklgaN=t+UwSBg^%r18jvgVUzdFnd1F-x~{t;|w)MrZTNxVfmT zi3=UJmx-OY#y)$aK7Xaw=hjU{RoY3{(8;z5f-g#F6=`Wxb< z);>X4Sg}EAt!Z0jzD|8RS8I2ikkpXQ`h>$?t1KhI!lwMnZOV!5)wrN9o zQRCKw7n)nHUOc*eNpbON{W`I)wxnXs?vqU|ElnqPuc;`hRd#dY{juzY)y2h2wjaHC zwWayO!L5x&Ka%P$>n^pV+fw$DR}J`wd>Q>D0mPJ9ZvE zt*u(B{!dc+KNxU#|CbN!SifrRwgc_l*o|YmH?3a1Y4vC&%DXU5AK1cQnvAdF0A1x|crz)KD>xzoh z^IIz1ydvANPuT-q-Bp{bm>O#BUoOwr_F-f$RaBzwMmJdIZC$6bHxd*phi6H&s92bG)HGjNky;L6bj>+%6>~xowBGzrQF%67y&nA zsc9$#4=D!Vvw3dJlX+tuouiXOWxuhsjqa|dLiBBa_6~(bO>jrHh^DooMw6zvY%1lK zag_FVNh^E`K`D5yNT{|qirwB86?PU29l^R{w><|DJCeVPN-OMNuW-;9x5xS-zAkOH z%QG<@;VbsdTWP!MEfutS>?&#V_F47{_vqVP(TROfkqhxWR?c-7*t#{?*A++sdO*u*5 zQK;AQl^IXvktQwQ|4(IN{Z}rWvzg0=fi~V$RyUKO>N-0Catz|zc?JwmY z2sA>f%MEqc*#i|~*QH8QUYw~oz+SJ@cEw5wKD>-9Wl8tnTHaoHvFtvw{;{cAIXJm0 zB{5g4H<9%Z{n?;0!xr)kBH3@rZ$HCv(rqtQK9MW6DZ)#ZlJy_`L0cik?#oxK|6EaZ z@JcZ`eBRyqn=HbGme;$ke`!SM zoGLiYHtMW@DrIPRse?UfZ?848?7{pNx%{t{@XH2TUCQgjWQAmPE!Vp#qqX7dq$fLH zsP`PHmfWFS|7C02?yhOppDJ6}9aZi1E9|AJ9c)WEY257`Ye@$v)qi$fo2wd}suiS* zI8)kgJvm-Vx`<^f+Of{E4P-!-?eEXK+)j=gCG_dKu-$%QOCb^4=(3!s)qXjT^rW)= zi={iY5}NCy#dH?BvQ882a#=^$22OIDMJ{QIh@GY6X+*Zqt}0U`>ILh$uICK5m7$j| z#2w7#dgvwX4FF|iG*Q|=Rmjaq+-g2i!0#e8(s8qmqn@8x9Vk53h7eh$Eubw_asTWJ zT5j%-iaI{+)WSXPg~Z9 z>h_oBx;{)&>Gio{XREQ#ZpvGt)4#9GqiscToGmTXc?3FCSSmbLiK46Wbk+&4FUgY@ z)U@{5eHFR8G#(r*C~W?Jv(=ai~S8Y^^PaR^*oJ%}g&Yx0i3fAUqPW*H3RLE?Cnf;!(GM zG4|Z1lALPird_-DY*}8LXJ5;8XJVp!zP`6%ap{t^+jsBYzII9J;)cDV&$0*?IV?~}ludHsvareuAWNmT(^6J98yu#|``*rK1 z;7QBz4RvKiT}9)TlNu-W?F;$-2TuPx?O#2 zzDKndrIBntvaz--J1e)We)BQ)@~dk65p$j2Sh%>tv2N$Cog0=`<>ajq`+YH8IN#XQ zu&}s(<+k0sx2>!%Uf8fltmGQG(`)i_s+Mjb>ee|bvkEt=Jay&YygDy`(;2avw4U8o zobA+`^6e{Mv`l_auX*pXMdfm{mR-2y%r4$`RvZ(qpV^e3w_4FlxY*xYn!QuasCB=+ z$Yoq=axQMrRQU@Hi=B#=&AaeZk$t~toR7J-GrM%J*gs|8rAT)T z9<}pTzE1GNRf3PHuH(-8HSeNo#dmQ}$O`)_i?kvvTdbTvRdG)gr?V8@%=O~UE}8aa zaRBP8TvF5#MRaN;+rOlJ0gI$ol`1>SBjoX)Oe$-YYPK)n>ya|9mezoi1xLiVE&n_z z2HAaIOY^p!bUjtJzc<@uR$pEy)n%&SdJ&zp3d^ga#y$UbDYeacByoe>4oE`~sswxB zN4f4?&fcrEzt*K#%ko7d!r4jM$C+ZyW7WPNwFHjQUeKZFFW7a9`F?S~!aRACWv$YF zwfNj38m%f6L*jXB8F~M%T-*5eEL2noDtd{$d)HK^+KpPDMIAV>Sk=9)CU-3Hzpi~- zw%WCmIh1>WT~(th6KZeI0`*vMy=E1AAy+DAD#EVKI?Eo+lHt?1?fKVb`^~~DiZp>9 z4f1moA3;7(=bT_0bo!`$i_{J{$op?OVv!5E*H&&(BO&Wg*^2eQCdHeXBujOU&TQgb z&T&@v?c1GSAC;UW0cS0HJV!OnC6UWr-qSpmrFj3ZX_3@ksH!8Sq;hBvYQI)luLOb1 zWlL3sLf$NLv46PSS*dKyBddwCm58wUd*p6&u-0`Fj<**n^8{N4h#&<-kT# z!=?JqI1tDUhwqOqNL%_P4q$ zm|fQH-;s93HW#VO>AdtNzhrG+5t(4Fs*$eA-HV;Un#J-1@(sFSE#Lo9sgsm4URK}Q zWjkG>RlnACAzxGWL}FzL`PeQm((L|GG*9}01t&!Hr^zds3j1ueVueGHxvZM@Z7!t~ z=k3K;L=EISI19C^-C*ghcDkhd3VWW_RO9V=R8yc|E_yW zu0q{)b;rZm*__SQ&{YN8mD`UN?j0(H{i|gSZiQ*W8sWvmjXHiRGBycIJ7){lC}LfM z4cxnC3j6HNHdi*!76>)^dYjWkGO=srjjb(^>zb?igZwvbl=j)WVp_m%jw*3qm)+ae z1aRkqy@G-p#cj-hnv3f=F_rx*`Kq~%poc##RW#kTi`{N699}H9`!m_Dl~dGNo6px` zm3{Vn4(VZZkEM&1!-I3No0Y`_i@^w?>+(7OC%e*+Qvx zDc#+)P~B%AUgYxP92GxZm?w_T8vE>}GR^#s%I_|8d6jeR;zrGAM&7Ax%+^-<6NQE9 zIR{m@*ep|tkd8*8&_cc_M#{SAv;pR37t5$x*s;x4SVYrb*|U!PvXy&I($1*m?A|pMd3DO7r%L%_Yhg*<)}t4RuGWi3x7L+N@5hP) z{P{>-Ud5WdXX!Fp)5$$6%kmw{W~pPJWiPHTEiW#wtgI|AEH7KG6j!OfvA4FoxRl71 zmll`T?$wzv@#1Hfmk~u&U2%Eodi7eSu6>g2!v3FDtzNZdpK`oZ8RsvqAKkTn_3HJz zj;iKAu7YRwZ6WG@a$O~KXWvzYXJXvhzkce_uI)PxooH+IlX`Ui*xv2i_a1X;3mR`* zP8`~?eb=E=F1?Gc{i{10s|yS0kzduY*>zMDm7iGIP{N57l-8}3#&t1OIyY@@sLJQ$ z3Tx_B@3!gI|K_!&1$CPao^H9?a+Z9-x1e~1ehu7PT~xeg*YPV?uUy@L8hn^ubMa1*L11gN*C_|70&)Ep-n>QPbwqoQ-mW6;+?B%56BRsPZ?C zHsn^Rrk9*#>&Bc?6~RlZ%j`diN?h;%dR^{vZJD>OD{y(}+m=_M?vaVg!xeekWX)XY zQhC8Tt?w<%bIE%o!lAkUrjlH}k>z-y;_WkY!ZUjB48ukg4kg1 zC-)POoeSi`ZOW?@b7;>^CBoZAD*F!UwM4BvozGT?kw;ZGDaH!t^^3@?nm;PI`LcMW zKA*|wpQDxb_w%pBsRgC0*u^g(EA3ah#l>Y>R>(Kp zZHru+nW&YV&k5gvXf9OGMHC`jkhi9=zb8vs#dz^;2jy(n_-{J3s^-;eTzXV8Pv=_P z#(dW#SsCfMv-Xfnh5Z_S-(D%R@$PRGmut#sf3v4Rar@V8QxyVy@ErFh)iwD&xmEvE z$b7m>ylAK+A=&;3^%oGS)EeVA^due^?bPE6vBNfx3nxxe z><+L?2uaC)Ynig=BGPNkUrYIgz|O)e?4}B#=aLeyO^KDlT%d(~mGO#t-n%D^I*>eB zRm0blK1j0Pl1mF$J~o+L%#%f>)2!3=A@$nRQF1;SYH*VEA9ds3`RIr2%qOKP!O8E* zRjmIsWvOPl)nl{NI_cF}H|t-m@$sq~bJh@7HIs$|GhTX4Ijj?Ps`W3;`d|ELO@3;_zM9Fh?@n?Zh|lJb@89zMwn7cdelljW>Y7{s z)cBwF%JLWARY|djl`Dzpy(6*H+mVY>PA3v_id8KR{87@^*p~OiP z$M(=UTn^!54e27J`p>SaRi@GKpGIpOAn#SOCrjnc3@*c`k7yb$FVdh~6-;`P@3Xg! z{)@s0-6xUl@5<$eH-*3-9#^#qmisd-%Go24{nWBfk%J5VWGAO}#d37=Sh0ERwD27f zO>532LxF7nyj{JpNJZWpryN81Ege$1qc!kJ8n;A$q(I{IfmMEr+cGL!%)O6( z-&MBHI!nbA`TWY8a+qzbrWePQFY2DORVf7c;8A`ct8Nri4k?Rq=V>vzbSVib>>p`! z`HQrE`wlK^rFNhY6$HgUA}9L1b2Cu`(p?S`)s4jhL0*=l`sK3^n**oRLULr zL6`tmxS~@x(_Rs44F%LP1_#JYxwMEBQcgIy>VoA1FT%Jahc~L17b6HQ< zlb z(3SP&iz}9IIe6^Y!7a-x7MHJ=omPsm`x~?K8`teQcJ%13HT8LRr>cnb?32~E9jnTV z7A{&?P`Z4(;vQ9M$;I_Uo9c?Q7cI&zuG@6zx;9n5KD~W;X#r7JRK9A5aso^w^zGBE z*PEM~+URFQ?KiFxu^Zx*`!f;K`*U{g?Ymd?OQwkSaRvbp009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X0D=D& z0uv@M!-%h4n9hcNj5i4x$Unw#JLAiR87A5=SPH*l7$V4c5g8*xKAAhn|1^V%3lAXS z59TH?K0@9f$ay`}?fP2`^H3l092%Pv9p^W3MoLCX`izuRzwjx6e$OQ&$EIYaGbVpy zK#0*l#ANX^T0;W-L(IWM1>^m#LH6xiFG>IWZ@r~(B^4w`Cxf>j+evvJhP&kZFg&Qd z4=;nL!!XiI*3D~Un6V^4h)8EK9%m2$0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X 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
    1vXB1G{{4Z!^LLcpvF%RHosZlV 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 z0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4ea zAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w4eaAOHd&00RHB2!!zh0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X_#Z{!f7UN8;cP$v1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) 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

    otW zWS=gbACJ~A%DSCngYS{?{P*6#!S+aQ3D~P^nlf36Uww$1Abr7ku5FkNm+rFg2s;4S-kRu zm14{w&E0o!44I_|trnU)>n;4&a>`Bzx^G3S5)L=4)&DACt3rh2fQ_%)}mKBg5 zw36%VN!=WwTi8=uuc=zB*N3vOb*a9Vv4FI=HWkqc6_BPe)ZDC$9b17dE$p%4D?+F9 zH(eX-K>JcU9$`$EcB@WUwQ2WwbLk$->QN;5iLKkUM^&`mX!RQoC!Q)f|^xjNl%$(}$DWK*{1b49)HrTSQ*{vt1#lHzV&rGPXIgO8L%B+<;k{Cc5o3#I*NrmBusa7WNosu-PE<3?`i>bIjg>yFqS* z?-(7Er1@_0aNMAP(>8iI(w8&PF?&zXD@&eQ7$o__d8<9pG~;7P>#|(CSTA(xd~ob= zBMs7?IfPUtB&0=u1y@LJa&S-^R!A;r7|OiZAiYX{hhGvO@5{LjJhnP za2vI|P?ye;m_C$wGY09|hCa^#I_PVd^-hJfu!kb7gg*Va;6_`QY|nbavg>Qoxvn;o zIY#LfSs%;!ZrG7_?4byB%(JxM!MGoOhfNh1&pS(g>7-qIO7{dq6X`0RrCfVx zcpHbb)OVxm^Pp)0{Etg}_K-7;I!{-UR_Sm$DzEvalJ@Q483H|Cmdu$9<`YUGE!jf> zY;;g_$gV;8!KfZ$mquE)hi8~Nyr&V@6#kv*Fz2JTUs|@u&cM};2Q12r*A>dwZM(E; z591li#?eK|iRKnZ8#l{mZnLyz4?QMOzBfks-uabudS#ySy|JzGz1u1su!lJr?ikO9 zlP$&N!?#U3Xb<_*%=}<`BPHphjqQU)>=$gOw8&-voQMcgIF0yp`@CpY7hU zk?q-9cfg))-?5SGDMGhqPYHHxJbQ}Lt=dzH9UIr4;&jXQlxD|9*i)=-*`Ctu*a&-y z)h*dmq8%ICo}zX8_LOSJhTBuTZqJ^Q?bwhxSE1Xr=W3owuI>ru>ZDzJO1ERf*wyHE z>?z@n4ZAAcjy>9rjXfuVe+umH1O@GqYmyfB=sPwATA&PyX@6%srG-7_d{nRFP4{;S)G_ba6c83W zHdirMHrwAZw{ZBe16^5Q+>y#&^;S=Yzm1| z`L#$3K85yow8o4(HkyoodQH-fJ=ovzIoe0`E||S{)z z_E8*~>{%bLKl`Ka-dbLM>vw;2wszd~;)`VJ_DTosS*YIs#q#pIJEJ?QpxLb$jw}|08kv;j!0hI(mCMYF<0`L*n$0Zx?z^VB4iNd)n?UFaMM0nxyCR zm8R$Zq`ds@HjRsYS^{a+p4Yx!{*?=XSB=Ile5L&BuLTV%g|uu>?(C<^?-~!b%h>o` z<)1n$y(GY8N+T`VlRHuVxs#?B!Km?#lbW< zzCCZ0f8iauLH+ohFO>hvFDsR_XHW9>@}K+7nT~#5etXg_FPXG!PwuYr`?R-(-L~ED z?0w~TIYX#)(yl$1KYiO4FR0P;_-&uQEQ~9iv}4c8Ka~H{<^{kd`FmLq}TJli6GT3;CjR-2Ba(FDR?~ zFUlVw`*i8`3panW*-$+woo~DCFQs34O#J0-ZQjZ#q=h{bU;0{0P+`;UpVd4-%h$d{ z>VnemeD?OHV10x1+_CcSc?L~{$63#!S+0ecnLGDE)Z( z-`bg#slP3MTxryn7WUlrslf8x{EaVaoy9A^_NluWGe|S`&KJKCAY_(4UH-T9V(RqY zmY-J45xRvv-?=rSUSloay7^tLh@VDo{SIS6X@2S5o4=)x!2;5!%m2&F%zx3%5xRvv zU;2ios`;CrGnvC$zj-TT0cmay8T2`QmKBiBohtvUzbZc^jUBtbEiLRRzoXkOa{u(+ zQhv!jR=#`g_zYvZv@3C`{FYw#*#0ggoqwdf{1I=WyH#vy*Pb4?)c&6R^YR16NXThH zm3FFb94P;D|Mh%cSV(&2Z_3O6Cg6W1d%pC|R!6DxwR~6kKG`$7S6jdNW$G_o+P<3E zSAN&BD<{4SNKgN_^2Z)4|8M%+*0yw^@w{+%`5whJixvuuP`bFjr~GdHxyUR%^_(!w6Y44yX{^xCKHGS7Ez4*k?o{TQXm4W6R0lRxD-MyHZ3E$lf{enQnm zXNz~0?+J9-3E>X|(wRNwcP$1~n51cuI3<4MdrDe5cvV|k*kf1$7+blke6QAJrWJsz zTHjlK*9t#SJ|^i2f05uzhqso|=BB+C344MoBv-t2w?3#1D`*k#_7^{(kw(T*v00 zSIWO{dzcbRJNB@5%D0Z^$G-AuXHhGiv}+H4g3%W^4OUKl-YJc=YY(F*JkyYtZ2E=z zJXjiO&mMNE{EP2Ntp^U@`=Y$&mrB~Vhdot(+ZzEZyn;7wD}Ty6p@R}hOZMcBmEU~2 zz%z69^v&hRlo3-RX~`azd+Jl=JI(p1d&)oclwuC$qe>zz+e6{{*UN8zC1BC`E4LTQ z*KNDBY7gTX%0GWz`c)`fZGQgGH_K;kv$SRpv-7>T{pi?h(XQU!uIOvWestSb`QB}n z*6pD+OXS19{OvpM{PvfN&4+KBbkH7(X2xqz|L`w9Uta$Czxd(lBK8ZmQ`%&Y>}Ia_ z@o$1X+q+|<65dL8kk5AS*vR&5ty{MT`#b91k;-Ov^*^UjFa}~N>drG%sLy_cF>>auGly1j{ zv8&PT*i*tC8+KK?9ecDL8+%UBpTURUkkgt4c5F7@cv$;iQ`z+kNV~eV?_&0M2KMiY zC=Wov9UHDS8`-sA`oFSx4F#q1!@EyNsgQ*eyNA8B@7DV}1AFgp^px8Nh76Nk-gy6B zgFy!A-+&n|kQUHOooXz%k8h0JgXPG%4&MsG+URpY>o3rWu&cJ?s zD2w|juw!FiY`kBeWd)>jmn%-5thg+V9lQP}`#Tdqt*G-sN=MEPiJyj)uCcm`pGx^; zx>86wf3c$CqBqf971Dl6`5irOsr|ittm2a5c-*T_3#znpF?*@vm_L1aVIk?ICn_qQ z2qdf}djdN)Yv(Iol|8d-Pk|j9etF~7it|dcn$hmvmrc7ti%(X(^G?N+`u@VE`#US= zD_$`WDlkIHoa`$V=k+ZEv$U95VwUk6aX*{y@0blT?$~gJCUeL;7`gg4HtJd=EfUhw!F9;%g?WExH87|RDFBn<-aMG{PK9nS9y9LmteksUw#T?*L-xFU zPM=x46{EEJHtf2eJH`Hv*E6OAckjsQFZ-E9U*NQQ*x$kaju;Zs-jO?g=t7BhZ0shB z)-Bmnq8%H7pxE6Y*&gig1ow_qJ`|SlH}to4$42xQ|67c1-5%`k`26@$kdJ!(dY}C| z+QV(a2LwO>1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1g?bu`!)J-`+tqhVJ3U> znT4VDrdrFYZE7Ey&*V3^cYCFS_H4}dL@lzVAs%lao2+Qh>_%aWwp%)2&r}=P(%wHY zx13Hd&rS5VlTB??g$&wuY0aMHlw~DG7PEf)*~O8BWu=z=691?K(yBcZ^;T?r&2LZ~ zt&PX5`U$<1u~JCO_T+~ML?+lSV;RCWq>by+NXz#0Taf{+QP;TqK*Z{IPsDd=q$PWX zteBxwTq7o8){uM5ze^lXmTywqk*K?i%8Luf?osaa=lS$DVAfHR?87_)j^e!w$`%#oJ^Aua3~ z)E5J4eX%ZJ4rBe+AY&%!$*6&lQF_2?u?b~btO36-=*X59_N1)9NnvV*!b&k_ zkml|?IEKv9gH{X8o%I%eYx2jI7WO1+?Rg_zU1~6y!{%xej0L56#i?k6KFbP74_e9f z^`vf&&@Jq#t=Cj7*6TxA*t%3-%UD2KT$_sMgbGO07;0`-#*VGPmKOF{@fD%d`J1i{ zcA$MJ9gi@kOS@GktlG4Dyt#CbW%VeM{KVGn+M_C3Z?t+9$KzIZ>`|qii}_xwQFW?? zq^Yy0%UqrAw`5PC2eK*K^SPql_fmbVP=Aq^Oi6J!uTnsohVlT-GTk6sy3lyuNLk$m zLUXn80^>Q~ZKZtYCT_qiO%vUA8e-aew@TxgbPIb7GuUj9c?OeClR0MZz}+A>!gq|0 zNz!~bc{pxRz-b#j9O=s$=$O5y=anT-Eew+U;k?xzXqxdcq;*-YU91-|hzr!zy5BZ^0_t=pZ_7HAUI7VHTQn-!U zU8qavNK7BfycvV^Y(t-C03Gx-%zCFnTG&GoRzjbCTyUeUOSWe{VcGRH>0DQv$sD8f zimZ?2d^hY!JN8fnI_6ng@L=4JS4$=B*u$oZi|3sszjV^BJ*9hsp^0=A&r+^EG`x*N zTI#z|^?A@V0shCOJ$uNRMxCcCNvm`?9hKMoQc3&v@C<<-FH7c32J;D}ke2MB05&?P zIb_$M{9sfMu}dQ@+ru+V9p2N3YYP9)beQu|+b=EKV`t#%#sd~*#_I~@>$Y85wTJNx zW#j0g%ZpR*N$Htx$!9NA|cY=a;$u&s}d-NTf0xeJm#k9Y(ozlV{b3Q8Ajv>Po6!J>0 zMOxTn*s<}n$_J($8~M6=d@a(#9#cM3)$N=W%4Zsd3-1OQ#ie|vA>V7PV$R^2MX9u4 zcGy@$%J-UgYz(yu?ARD2dC@gUi~b7i7ZhlKb^r?R?*!{ygS4=x(2h-@31^4IPeTSI zH32I;HruY&tK29pZx?-(R`(Wd)51?rf0YzhdA9h<9| zE1T`_nA^C98GLoVMD*9Mn?E$}?-&S~c5Dn{PSLeU3qHSY>#4qDQ|O)zJ2r(xsr*`` z1)oCuJ6dDL9UD!?KfNYt#~$qO_#EvcdKb*zJ97A3)gH{%J;7X^v}+IccjON9_l`V1 z_8Xw3*s-zOEqd=rvIqM+Had0hNaln6o#5V)%7*}Ae@CA91%3~*ojW#4b6f5m1^P>^ ze%;T06YR+@41_QI?06`2{AU-!{R`SlYC5v*l@9V*?Y?|8M7EqhbLKSJ6gqmj+ka_D zH->Gubikh0m&le2A2jt$OixerG<|S^Y^mXKQwBaGr;o&Cdsr;=F1@L$OK0OpPMZueNROR(M*1Dg;xi}w zbx24Hdlrv9W_Z1E__0Hp2N-?q7^w?Nw;pVzDn!E2) z0YYZ!s?hWFtFPtfLsg17%$64RJaxQRy~ajQA9j3=a-sM5Q;Y?rxlG&P)A|@JAYB#u z#mdSrbaR+3E$lgVN>ep*%4iN7J9V6~fV42V?XXU$fOP&!=-FpOSER9HE3l=7J)tw| zZ>y${2RqQNGj-+=W4g33hvKu)arF)1g3|AXLhrh@yl-3DY|qNM&}HLlRcASyU}BLg^wo?N{~ZBD3_8J(OusYri>@#qk7-eZOeyT$sI)(lhb=lhiLLUl$7?94s9q265WRj*u;)*>qb62FL zgEwnS3w!!P7lP|W=3=1B)-Q_|KIto<@Xo2grU5}{w(-BLnn#~#)iDk7eL)Q#s$C+*t9pJ4O_PQ#T~pLa?l z?b^fW3C|QlOE$$qC%p)#WYV5Jv^pPcms$@TwjY(({8CB#_OP1JiDbYEuON9MRO6k{ zL5ZX#d-5NI4p$kY42mVH4u?KaMofvMC3{%DCKP(j_|&{`DHN(v%%NS#l1R(;FxL2Z z=&^*fricz&Ogt8Pyix8faa;;%)gHz(l;`S3BqzE)Qg?2%eC9SwYxdA{3*~!HP`7YFnJ}mTCU3mIPD0JlM3sptz7i_1r z$)4cIy?!OX3HEI7j*ZH8E8Rgp+r48W+q1RqfIZv3V6Yy&&5n(*r&!&RJtf+)vF#~Zw`5O=c5G~Wiq`GhQ>q;sZcp*LJ$p*FV?*X# zg>KiL((Tw#BzYBkN3K1k+p(d{>s9O>Irfxr$A(>%ZpR*N$Htx$^k?wlH{|?AfgPKT zHy+mh*Hm`>0@AK-?Yo%$oq_$kB1!_tuwz4Nvyols)bV(Z%Y5aID79%^p|1BhW>{^dv@tL z7}Ji8ZBTsIo}fV{>D;@XL1fOm(&Oh=`#S@BAJEO&WPd0AfPs*4f9KtbGxihS;+YCH zN5A?0&cMD0wa(%o%sV#xO5=n30)))cmu-W{oXfnP|JihZXYjx-gE?XkCYU|vN*i|_ z&}W%BAI>gUoL*Wwt(&vy{?5RDeJG3jD6nH=Uu?WzpJfH4bC)Ylo~#ILkVyLl`i{-S zPb=z#0ova}J0!MPUByo)6!}8Z`HK}5?yCiU1!+G;w`ciS#U;h@xU~wkz^`X7RUGrD zFE1%1z4Syy#S_}@g(EHIdvJf}e1)2M=IZI=^nku&!!K>TT5(=WiWiVxe6r%5cPgIL z^C(h(1xM)0`HEKzgbIvMGAH{=#d$r2ZI%`@OUyEUBkpJO{T;JG#vL23&}0sI2g7a< zxxve{NaQbjj?pp5mKObG+TTeNA$c*iYngUz_=OFk6WDGt?(cAO#Qu(M(3bl<=PNF1 zU1r*`;pSv7R-7+xe@9v*q@{!F5V{2)^Zw3iU{D)YNUn+xWy21JL3;Y6yhyxTanj!a z7Sh5VeaD73LLcg~=cLq~amR+l)}J$VmQgx&@J(B@^XJWjDettH{hgI_%6lEg9UHRe zWo=(sv|*GUSMG0p+%pIJJ01$t!Gg1QB*u?;ChE`_ILP5Q1_19 z`6b3kDRyjx=3@7bRC}<$qyJVw<3n)Wob`6?*tq@0zqi&Mw1=V@?C*FGO?i=(L zWsEs`%FAvj`%2j#mHlPeon^O|-CFkfvYYAO=gR)?vQL(Mx$KYW-yfCTQTCt8zD`&F zfc}29>}zG;DElV;`$HX8|2|Xp#j-C^?c3?<*UCOk8op5W|CIe7^zT2F{dw8{ zOB()w%5SCe&(pszP>s)1{XeGiJ4hSX{dJQ3L;L)WvTxh+UnTk9FZ*oSEu{Na`X^fa zB3bYyD&@MrQTC_w@0)af3u*i$Nq>^Q%WccQO4&Y_eDDTV_P?u5xW1Qt@{?TlxyJk`W0ey3;oBn-%kI&MgRW5 z(fuEtTHGeC`;Y0`&9-i?AOAq$dK37AvOg>P9?j>k(`fw~%|brUKSQJRD`kH|SJZjV zXZyEkM*bnqm#^FZK1Vffb>`w7bdAsRTWMr}#+&Egv*+#CXoh~lp66d8{a@U2o^!AB z`y}tq^E;@=i+zCQZdiJLPw?2 zeZBh^?STL%fO(F2j+yX3KY`ya!@uiA;D7$nggg8-C9s(M*UgO$v1r7yBGFhwWAlJs zFr*i(B{z~cwx`DqC3h!}CRdU>niF-Ayj2#-Ma$@WN2D&%JZ3B%PyVaMhA3|-SNpGc zlhKC8b<(zDm9g=|wz_ok6Y&^H#OmXTT+=5K@%k9a#o`kM%BPZ_XsYM(@kCRu`4dfv zIG3+)%97ff2J(ze9P>gETgf z4b3xjoh)l0IpusYxuedCBxaHyOGK=?B(L2^wP!?ag2t6jh_5B(Y?;@rZJJ8n)Kp6~ zx#%~`agbbAeb z-00e7x-aF7)HhIrO$iz&H#R4l=(xeEr)EdfZ36vG$%GYco=x7^7^&x@KWZgN2`^hA z<06f-qKt05nVO_K=FQL-H4~>VZV#C?!Pu(MwdL6 zk4CF*jmAm?X``;;MsuxHxiOc#X^OG@fTOQD5^0c`2TWRgsn zu?Hbt5GAC8ETNmBTXHO+5istJfE#J@P&v(o_;m8)G>4K&Dw($Vaujw6-3}dcBAg5j zJbpvuiAPtQap`EG@mQy7siUFkY9Y4NNnA@Z$@S0x;B@zinIvw8uGXnHQ%92S%}_T} zC9Z)+4OhWO4fV57;V|VYRHj^o%ajHlRpKLsW1QTJAWS)L)V=LT$7jw32z<1+|U?bN!}1AkH`H74H{dOGo_pv z%2nwzl&i8QZ={(#i0`~CTGE6L)oYNBnC3O8gu5s58d>g0TyIJ10NL>U=yAsh3NJ=R z*YQyxxiNlL$5q&cwhQ&0G%Z86mJ_}!jVrFyJ)^Fb7X|9@=-++kA4N5C*)-uLmo1%9 zS4xWz*%JM}TdmNdK)U4xZ#8)n)%ku@w6)m+M3T+YBHNrK2P-k60ZxX|`m}?VU}w#9 z&z4QgyWPj4e+Zkjva0LsqB+2@Yl{)G+44?_%uqB| zuS8?@A{z52j~nOEjQd!#66g3Olg9Yao5)uacs0|Q;xXmb27!%EJ-!+j8;d3=a=kJ7 z!yk!3vPc7=u|5{fSvN&v^*jnz&+Eyi9Z>=!#CIq882kJ0{9VL7r-5Uii^;W={NGzr zy%US8S;n%fixYjRmZ4zLaPnWLddC)4H}d(7)rGO%)EW=+Y&BvG(fzdb&*bv#W4ZNA zW}Oap}4B@^X5eg2l{4cgqG30BJt_T|^A6bn@R0EsygXY2DLeO>KsZS7rsBlGJlKiy#m*<7{bBB`&t z7Z_U`>uIGRyR~O*jj@GpT1pJ16l4!?u(k0H3bH%K*Vx8zjz0Kz1ZW zV=pz5B>{@DwGz72GR@djJFN)q6ar1RBvmCFBtVhYLW;uZ6qz>BLJP50LNmE_j&1al zNdE?#YvoT4w*L^*h|Z>1ezJwa>6Xbnn_AM&SEziBrMu{QSDMYWIJBdJwjJqZhpEek zvuuJobb@(jG^D24a*D$3)H0h^yPjOn5X%jc>lw_kVRCTN8HL-!Y^{^R?ann;Htbdu zLyz2D_XZoIczcX(bdxic&M4mQ*kJt>Z}+nsHagsjVhl67j|DbQ1NEksdA2~~MnAuC znoUzAJ#_<{CKLSGK;C?iWm6P@r?PC2I#D{K`|rwSQdBK@;3gb}vfMqh2qY=pj2>zQ^DuIy-;Wuvpnn|jvsBP|pdjj|aULcEZ7>qvgR zXEyl>QP|7oXp*;%v*lJo)4I&YTQd~4%(32NawXj^!j>JW+(tJo-#r`oL0Z|nH*%?D zl9y48IGEq)q1aoLjk6K5l`G?SPRdp(bQxje$>b_qZ5K0OM;}{krD(Y)n;)Wxqjiz> zC6m020@9&;wucr1QMQolBiqLbW0Er+=aF|`ZXua$Un6BsmKB->VU6am>f#7Ms}x6ZLr*9~$Pvz|>Rsf0pr($PcFs$D`l$dXo? z`U|bx64FAwM_Sg}#jwAT@q6CUNwbWi=FUt$nWPemy@y$j!>~)T>2^A7UC57*=NDQz z7rG;wO{6C+tKo`gTF4q#4?Wzs%urjdA_7c3#o;EC95ampLcFG`vhV9AvU#S3;J7zN zqm)!Fw7PdjoldpesJm$dQQy-<*};2VyFDB9O>GNowuSo3B|S&VX4wMq6-6{0sX8Br zG=2G~qzTT4qek5Bd!dYmjNAE?>9Cc#y>HKy9UY{M<{Bv@N3(=#t&9e@U6isXFu8*Xas(4>QcT~JIw+l)!kNvIhnJ=bd26nYPa{58D1x*d%MIN_ z6rB%|e!MR>?ozAV zv5*ozV92q|`i_OnTxg@g&I{>Te}+vtZk0|vS8`Lbp9T&|wJpu^aY93@-}Z8A+{?Aj zE^!UKkX)?n)kRW-oGbY{+qt?f#yz7Rrsbo9mX8j;eC)A9uFZTnA(z%E3Y*%~E5)rD zw8GF@;;xPJwzDQiqOw@2MroxQ^;RnPjKV8glh^Gvd7ZDxRM5WaOm@c!jyu6a}Vmf!0iy+#&red{mgSSy9cpFuMH?_1`tty3-eLSS>GlZ1tg+?A^ z(coQkRwpmgEz9OIWm!GYRZ0^)pp`hW{suNBs%;jZQ`d=Ty=?eKaug!? zB-bN_;%Z>7o{0!kcsX-CPL7pF=flaHC>Yr2-tTx~J?=K24<|pCv;*}6TRLzjBp*tW zm**k6sIh7MZAasSNwS_t=OMcZz9JPBciYQUrroa2<8V>Em{?m1z$pUh&aS42X=*jw zolTNb9*7^bP1!ommSS)6{%uoig`NX$O0BS|Hd_~8z#Uy%hS^d)LF-V)*&G0)}pzOj0x;crVa^ z;2mNQ2){SCij=+JnI2kcgilgXX^+y>I;Y|dtYV^Mb*S6QXsGicpVEf9GX*ydla)!h zql1PCO=lV}lsTe1m8M`3(XtdmQx>5=Get|{REDBo(!>L4F?5QKnyD6#uh)_{bW(hN zLu=;-cXm9UcAZ_p0Gg`uYmRqZcD&Z=G=wo?r9yo5jsyMH%HQ3JyvDUxS?>!3z{+}0GTwS$Ovoz&4LJxFfrcCHs6nk8 z*KATs(T)gv8YY-3Zs41VWiHaqWhB%X?LVW_H0%De59| ztt@^cy|Cd$yR-vle(QrAiFD12b_>4kLB5G!0BsMAAy0WFd^UDdO`Q@tI?sC1v0 zOkbR8fa^>nhwSYD++M*K%rGIodcHz6jJ~eb)O6XuVd&`q+oHRO`b(%IU~Sai zANJTw)~^lXTGu%gS?NP*xwbazMvPBmc4J82d(WE!sEiCcnHx1C#07*2@gb7w>JGt}UIq1}GD?^_o!6fZm>g zr31=o-?V?R_qN4L`w})H-~yNz>qfcIn|eeBZM1}3b+C35N^??GSnZEt1%s%?{?y@fXGVs=vg8;Bs(GBE! z?WzFSwrnK2-1KG)8IBGkhujB%MJ#vRlz}s#YYyr4RgyQT_0=i^mW;R5+bv|V>3C$L z)>o@-!mm1Mq3p1F{y$b}9Squ9CUgvVnM8uYKaEcQ+1T{Y1G=tSFC1Gjbfna&wEI=M zO1B-l?O=Rb>-L9kf9Upywofm*s0gD*;|TRS&zcAr%#_P#Lv}= zx6B^wa3z2mJ=6Rr}hYq%VD`oThwN?M>JYF zj(Khs>YCIZOLAGk^57b^NAU6jmb;|7odlP>H#4?Autx0}xSp}i-m2Q9S{C6~T{%+A zbG3(8d?`y0ehe+?tTf)Mww>geYVp~{a_8cfxw&kY52;uT6(^*M7itgB_3Toj_anSp z;w84;6N`3`)TXKNVMtLBaD zP*8zcks6npJaXKAUx4b)Cgr^Fv!yQ_zpwrQ31U;+4))y~^>L z%F^LM_G7$<=VrE{Ty@!CVw*h^#Yu71{MXWpA$L@BNI~ge;c|u%CQK|k6^sc%rc=ce zjh7s27xrTk%ggwn3+n}1p&JM%k<5+?xq9f(UAbBJfbv8Q{ zP=#Gx+%O6T3^>Iip@)PRjoNVWFStfRs0%!OJ{T&Nu`FM__-3(XcnLm#IuJ|S%lR)- zqj}Uewz5jKOg?8_?p>$8wvuffrK%*X!_h9co|{~y_L9QsY*(Xd857SAj)8f`9Axoh zpi$k$rnkZ`vN&&!)pQ0GU3jlrHBZjJw4hdf?Y#>{L8?l!TAb#k{K?g7FDZ*HjmEO$ z*g+p`!sj51Yf%49jV_HMmFpK2={Eoxx_PD#@Oz=7rV^ zlb@))q-;;oOza?*eLO~0$9&9U>($rQnMHe4^*p|SULgI-l)#cmS6<1&Cu+|mmY}Lq zvalo%nxy3Ov*FLwo~zh?AD{hfRUOoXpZ#1_&*1l9i!?RqrAum{=6vyjYPIK*(sWgY z1bbdke10;5Qb;Zy4MNbxvWyHC`wTk^JbFRytm$uZXQrIOnb^d8=dAOq)Sfd7b5s=) z9N~QHx%ZxGl1qoi;vNL~dYDfgd#I#EwH$=8U0xwAC{D!84oyLyM6AD>WrP?$6^cSiMNhQLT6;6ODgyiDU zK>Y8R^e{fvsy&Uk^Ed76IfH0#(xcw1}{bp$#I!;QljZNWgTo z#W7EGq32o_+oZa_x1dgSUGN@O7t7Xqwj#TcHZ8tnxJsKpGsY_lgs?jNngSL{WnxKA zAaYuuDW_y261LEyCz9OTQsLNMhDCUf=_-HCC1+_`qILBO&VS?&!#He?LF} z@W|-hXKfHAmLgr6cx81d+aq}8BUZXv@QS^pnrJWK3@a@X3PHf6|hf?@pNT?#v}g`!Cu-W(Sw9YO~w0_ab5M#dg?hCoTgfo4kTG zw-wwyV@<~K62?l7XROh=+g|jYiU9J0nWV2LV8Ip)L%j4cITnp&AVR6ngavy`f5tD- zYJV=>yJ&(BVBS##m=9aH(|V(-xw-0wb=RV>Mq)^zMtT_b6&QV@0Y8v?_VC`lhtJSA z+;Ac~5FXc&m~cLF|9#&2?Drqb%6|MEx8L6%2^f=(7osIBGIhdNSQpDqS~h*klHE#w`5WgYktk>#NWt?PEBT%DNr;k3>34YL#uhvsn8}VZ>%$w9D*2P-aCl>Q@)KT} z1aEYZ;L@mLoF58BSqMFZCjlf*J0%nxdt1460M_fEhy1jBmnAc*Xrtsmkn=!&3lDb1RyXsS2m?oYAUE zLaM^aO%-#2^HR8o=OX0&()o9OFpuANJl(Ge{FBQUsp=2cgC+l%!|JMMqx{dSdL9qZ zm|a~Trm7?Za>hTeng^7ZvecF>SnD4CcTsQu&i6EcfVQ-xsp<{>OR$Uu^J4y`FW`Ib zljb!5dEYPjVpSy>_;yY6les`3DJ!mDg0-jeul!Wi?<<~4Ait!(NLAnYmER1O4sF`c zv!QF=0MYDT_!x@M9@Q@%vM8VahYU9wlN$glh#GJ>E6cUyvQ^Up_NHJY9&VEIv> zMLe}OZ~0<xU0Dlhf&2=?$3Jol<<>y`a=-c zX+caM0G;F|0q}MbBE8ILxEqS>Hr{lnaR!El*d2XZB$ja{yco}ZNGzw3SV)M(GNzc9 zjDxe25VO2K=h;y5sfi!+YE@0PWI}oF4&}MP%V+7SFXRr77J2Rt$fNo;4mBgb)GQTg;Z(12)^opC+O_CqCu-5YmPbSRRz}TiTzY=Fe%r2};2( z#BBXZpodpBZ_X5-^<_5mY=H;%60rQFW6k_we)7^O!2tomQP_Sq4Eo?-l zRKk^gt-MI!N+ECECve4HLM$J-{{e5Qd+Pfz<7}-F_tDQ|7*o zaUErj;QgLzQHkZ(Ybn|u%MmsmV*5R{hblNeNtTlU(6v#yiu6zXE@!+1&ap{C z^}8xoPw2iuyoJ+9j_JhdVmcwZobC*U8`vD7>ls<|OBm`w*e^Aao-HcW5~Xhxi|HD| z4PcI{5R}b-z_$mMupfAK&T_n?S*=HM$j;0E3wOl_O)3~PhP zp&;Zc=U2f?b_$#$Y}|z{z<>u2!jukMaE_~S7fxdQ6`rZ8nf%IlaT0)VZ6nU{H15LJ zA@C>yRq*Tgp~5GC-OdK4)0|AR9F@`@wRdi9lPf z%4w!X^bvhGs;*Og@u=WC^*LocqHR6n8Gsr$w;zcdNAN8tyo|3k+7?-u=v&X*BE8!{ zT1)rs#+2^8h`i;rmm#$*D=Ab~h__`~!Rig@Y!A}*BU!gzhR!ySc1bjWtMy9SH7!#a z*7(`voryA>t(9SC=$HUN<7Ip)2LRZo0e~|++@6r_@W+98HPCsPw3p7zs7Crn-Si=A z2k1-v6rEm@fY!k*9njif(vFDRsL>g5i?&MVxLFXcJxV{<6wqdAyZS2>I?>+(g^qXW z3bDOc=xxESJGxunp8kEqt2MO{C3n&aqaT9y<%d)4EO4H-)|Xy->x*VL_-dDpEbvu_ zd!)@NNV;lYp&-%jF;k0+YkV6eJG7}F7(17k(A;7|cZ(j|#wHaUnW1IHHgbtFp`XP@ z$(?qpAln$O*(kZw4i%&`x<=`Y+E>~r`DMK+lt$^gNSoBWqGwxUKMFFkp*uwziTq5x zD>@|`8d8u%+mA#Epyn05W;of70%dfkm`?2}8YMf?dtzuvAxfT9a4ZOQI_OxzBuUBC znxfTb`8D=Sx=sw8D4=BjB$gcnok7_w$zN1e`i@)E)n&_xp$&y7Igw=t;v53AS)!z5 z>PV5goa#714+0Nf0NCg3h7(0ZP0pMVp0_R#wa2K`!1Fl;KQwkfP3&m)}E*nc=Mw~?8A+|0D0gWhKXN}hFQ z11NdJnOQ;;U6QMEx~)Vcs+<5&ayY&|bM*-qluQjLdd4&KlHlg{Ba!2%@5DyQhAtB1 z-S#7qg{k92&)YBWCFvyHgOWRKB9UcfC6yKGFtJgxp;-hc(CNrV$%gh2l){ciE{jd* zB+)Br*Zm<>n6-`(6M9HYXd;o52>|T7Kd9VyDlrG6XT)`N8znn5e1J2$lt}W>@W-Lc zLj#?cNqgyiA{zeafYw3Rhu(GE;Ux)Z9bD1@tqmjXnnK!m(HXIhkpgP%J4FP+b}7=K zR;T0cSLr|9cIdW)@u{)fAG-aa+aKCKMd^-*?s({qhkxC8s8#;MeR#;S)a(Mr3bIp| zjUVn_-d=Q1`FD?Z7VOH-wOVttcP@O#qfvRTn1=tbZj+LrY*FeI^Pq^tBK*ql;;EA- zPf@#bQDVfPhaHP6l>hAQxBMh4y?FXyM#jO@7fad6<$k@NLnYcg_}0xrXM^(JZtw5G zqS9g`!$*60jSi2DO~WGhyzlm?^GlV=e~nBiVW+pw3mf(3z=3a$3Y)j}G%HCM`2yN4 z^YMeUkCKJ@My01;3S-9>2J~-GdiD=kc#N?WzsDU)tCSwI&#~i6)jFkzy7V|ZH@ih? zh77;0JK(lesB2PsM4n^$bBEU`J%-QCXXhfT+evV#PXc4BJZhAl9;+Bj=%Xl2ie+j& zeqblHJXd=3URKI>4u1?SJ6Y+n-nH!{&lF3)WOi;MZkc$FCHEs0)1cyzRPjRT;kJrd zSN3^?cUx&?tK6_?2T8qRaZhFkM?X?5qYtuVckE>j{uz@DZ7(kr{LmtQCQff=K3j&f zHH_*N{2u1xVHJvb*vBl+#qEV+Sp=h|N~5+Y=IN|>>V3sLwV2Ilup2ch=2`4>&xeZ1 z^K<4h8*lOx=bPnOw<>1;^K4PMf{#~o{hRDY%?g_HSonR#HJrKTsx6Ai;S9@W(Y0LY>FSGsB@`4$Bybmw_2<4qk?z zIq89=ZR7m9)M$2J$L3clmVnbGbKUEd*XFZzeHDd-bvW9&C8q-02hFLKU*gb+f;bQuU4@P*vS(6!X|P*XZ+xyeG}Qv0s4kg3PUk%;2stQ z&xvAt1|mZ!p@lm%CBm+jK`Cs#JB}x;;B#TvYIyW|mI8B1(c;p%mamgJ6ktEB6#s)4E`wsRo7Scp7Mop}pcU?q!27Kmmmo0QkzI&%sE-&@s7qb|*R@_C}wD^+Y zY8jZq65XE};}r$MJ&~mhgkMv@BB_ii{@epOZK&yZ@faj*p+yV&zDXjH{3(T{^b?6B z35kS+NF@Cr{1g0oK1=FLnQje>g_c+oOF(*)TDFPfrv!JL65OCY8~fpeha6`SBEcP} z1lMolo=i72QDi_u=&V9S4Wxzf*4|#SD+edlUFv3aCX2(?24)qvn2hJb! z{N*&{^QkPK^7(L?&kdty#exEm;em4Hk-=8GxH-%e<)SyrM{h&t!C*X+=&`}HUc#|{4CXIq+nrnX)kOpk`+xxnVek2BC#gJ z2-TV(;e(;@wxJ)`Ai;2EFyeA{VFt?cj075U!MZ-@_K znKef6L5!8f3O=xx)DT2j*{S4t6TAlx95~o}!o1{D%&I|@Sc-IM;+5s4Y=_{L?W}aU z;1zpGHPK#l4*sUYsRJ1q2TtK{I^;xawAU7A;HO#VSnix*fTUq_a@o0A;3o&k9|WO` zcORiYHF0G3VhuuVQLho*XY&L4f#~`L%>T?lbPm#M@Hhfj9WpPZ#zuzvczOARM#iRI zu!GDFE?w1Tw_$GqVQ)b@?6nh@0h3Mc{$r)v3ho{slXj$-vEn0XF*fXqvoB!YQ3RMDIc432>y=GSmDlr= zrjBeRh7@XLR=~c7&OTI+U-{MEyL0CrH8|HFnmrUA*O3@F-zRj(UEW%I|H|ddSMKBX zyE{VrJO?66rPA@p)Jv^cSJA!|ks<#6A(1Qg6=9v$rGn=>xdfgcbD)twI1@i3@a-W( z-VU4*f93&iJb*kVbI>>~yW;di^Ekh`{#{g+o&(=qkG~<27m9+`ffPLdK?T3H#TQZH zyX6+I_@ITJJ^W!unf2j~D=K((oEN;&E3TSXtbjK@1E6?{t7VymHt=sybnmb64tNWki6?1XR+zNiOzr&^wti98DbDBF~-aW0Er}xH+ z9VCGHzB&9#2(nbj6`s@A-s%Dyt7C9`{xVY&vr4t}Y zE$8)7NK#St{BKB7h7nkPCBHou`FQMY?(%`|J<cWA0A{s#$Mb$;Tfnw`%U~4H)w8)3{-(dEl<2r1-z?U z7U3`rBg_k_`^^*cMw))B4{0<+p+))A7kmwBPCWl&5O!=BQN`QEH>0Zi%^r%XK6JJp z-Z7b{xJg{GD6{!*!%^76Yci9 zCEtqYgkH)?K2=f5t`3v@V;=eJ@dT9rcPpPq0W>B&t{bT+Bm;6rJ+FKhC@*E3TH>+R zWd4!W~*D_Vi*kYLME^}k0TAcf?~ z_ahN;n|N_C-$eX8;#w6b{H5V@2}pi%^TP;$uaH0oRx%*B zr6qR&tz_so^*B9fxiL(-zKP!*hYS9-d<9TG;O+}WfdnYOg4g=P7((*o+6esbpYmR8 z-uxo(Ph=PD2oW{>7yi9X4NPYlc7tcRV>Ozd0IjM!qPzdzDIZ->?=i^TH-JrPQ4icycsTzJfp<5Y<94? zID4rKF0-OFUmQLtT__W$50Quzv(MK&S%mG^K6pW#yzk%wJ9s)~4$0?7`(b9f^vHDZ zeZQkTe+Zmgh(?w_^hPE~<2#TEcJMUl@_tx8(%vZ%DMg4B%fNhoxG&;vKoOr#p;Ckg zAWPrFJRgq>n$T@Ge&~x&G?oDHmmo*JzKQR4vx^ihhAo5h_@{XKLl8gHf|x!4`jqDl zhPRUt=_RE8_6TIR5vE%WAs8BB_l=_>vAmhbbMfql#Bvmgg@i~f{d0NVn{aj#Vpi`g zz7I@*IRnv%ZgbByxKs z<@U82)DL1j4hc4vGfJ?A5zhDne$y94#P=qO$Qp4!@^}=lrabOd-Le?B7)C_%nf&rd z6s(b#d8Uh7yuJ!A=t2=_|3QERP1R5uV08Vxv-wEfcqLoDAt4s9|=VGNFoBV_ppCp zw#*)|*>?UU8s$0q3Ez&8HjKdXt19@-&7+}a^yZtqVpR)q8fO3Umdsy-2m5%_F2VA< zn)p6}2lf)M{Fnnx{9aDn%z$A-h71ds8JBa9Hyr>#!Jfl@hBBE_30Jna^78^$&hggm z0$1!MV0oY({yDB^*|>U?erRl2@z*J~>DL z^CPEjy7*IdQ&aU%7dH`v;WTPU7~W?;H+P@Vq!+=^ldj4bJ8q-*!u>7uJY$PL z-RQ4|_m7nS>Fl9E(H^p11?=r`znA_Hpeb?&>f2+!d`@(RRQ3QMrQjPy8-tyadj%Nka9z3RX|(zCpZ&(@2i# z#OY!>A-bII42B!n9J$ynwEFr;)Ps@Nt3%yd6sRRi-zXN-HG~_$996+%A1@mTog>Tm zK785_UBu{`t}Yqez~xv^pEUmW5jd9-f9Gj|T=v<`uU_T5`v?U9a!r9V%#C|c#N4tu&jxPb{lV0>>CUh=zl(1cdJO-D^KZaQ zb_$#$Y}|z{yp6x3fj^@0wzh>DqY=C0YM2oxfn(gIC^(N1;v@j!niA)D8h7FA5O@@U zD){y9__$mgXuhVVE0VUsHP{nQzPk@d94AvYvYGS%v!$L_plCvCiazP(!s|y$ZwGm6 z+T^3~OEKEO)_C9;eU+yoPp0y#qqQh}rbnR@G;Kg^e9kbdd_QXB{_R9wdmz@x%|anC8^5pC-k&j8f8x&27wID&6E;bnZS(YDCKMBjSe?l`^Em#)T7 zX&lo1%aB@@l|(8l#M`p0VD$!cwg+kZk*r%ULuVUEyF{D7)p{lEnwF^yYy52Lv#ZGj zq?VJNp<@C7jhD@yAZXX^8UQ%M!|e%KlE&2I43E*n|ks}A=_n}5ZyO~$w5cE%JC~Ty++sp^iyqs?CKVi+p=HH3a+zsDKZ}i$JMC0KwlQ3@ zQF5mpDoAH^jnWyluh=O0rM)SjGjUy{P5Smx&$h;X6l7#WcZxO=`I&lGbV@cfq#%j5 zABhq`%`1A%aIzf*%IHopo!V10N_L|6#L$pJl!(emFOM9cBvyp>T;^%1U)FA zp*=;@;Y_;;?g5*{u#7hq<;@HhBiIa$D4GgqdQHSVJ!4qrkRh2Y zMiOGdaZQ0UjV8DUh}k=aWo5CL-a-LdI5Y*$G@0NYqGbG0+I5nW(M4jM-eq@*RDk7U z6M~Z46gbyfg1fK<7;xoEn9^Yj&NY_cE}X>Bk6DbO#ITQtijzPWinbBwdP;B?C>b6V zLzEmNoE3D778FfQSN$Zm786i1sS%V+dITk-*+lAjg=P|p3W`4I<+|5PZx7Y9InhjF z7l-B%SxkJ`$+AW`MxhfeCCCqYp9v^AJm*7D@`pL$LK9t*t8%)nL?o)?LqN&iXku~g z=Pf9i8cy_#XXqut&Fx1b$5G#jjgk#rB*?q%Mmn5Kda7hQWHjK1u3Tfj-XT&;23aGX36cGg5rAUWbosPR-rT=u>q1z6|r^ar7 z==O(he`xy@r8^$Faii`Jg)!c4tD$gyO&M g*KRwI1-kv9+Yh?^pgRt_^FVhV=*|QGKjwk|1JoRawEzGB literal 0 HcmV?d00001 diff --git a/cubeportfolio/js/jquery.cubeportfolio.js b/cubeportfolio/js/jquery.cubeportfolio.js new file mode 100644 index 0000000..504b23c --- /dev/null +++ b/cubeportfolio/js/jquery.cubeportfolio.js @@ -0,0 +1,6357 @@ +(function($, window, document, undefined) { + 'use strict'; + + function CubePortfolio(obj, options, callback) { + /*jshint validthis: true */ + var t = this; + + if ($.data(obj, 'cubeportfolio')) { + throw new Error('cubeportfolio is already initialized. Destroy it before initialize again!'); + } + + // js element + t.obj = obj; + + // jquery element + t.$obj = $(obj); + + // attached this instance to obj + $.data(t.obj, 'cubeportfolio', t); + + // rename options + if (options && (options.sortToPreventGaps !== undefined)) { + options.sortByDimension = options.sortToPreventGaps; + delete options.sortToPreventGaps; + } + + // extend options + t.options = $.extend({}, $.fn.cubeportfolio.options, options, t.$obj.data('cbp-options')); + + // store the state of the animation used for filters + t.isAnimating = true; + + // default filter for plugin + t.defaultFilter = t.options.defaultFilter; + + // registered events (observator & publisher pattern) + t.registeredEvents = []; + + // queue for this plugin + t.queue = []; + + // has wrapper + t.addedWrapp = false; + + // register callback function + if ($.isFunction(callback)) { + t.registerEvent('initFinish', callback, true); + } + + // when there are no .cbp-item + var children = t.$obj.children(); + + t.$obj.addClass('cbp'); + + if (children.length === 0 || children.first().hasClass('cbp-item')) { + t.wrapInner(t.obj, 'cbp-wrapper'); + t.addedWrapp = true; + } + + // jquery wrapper element + t.$ul = t.$obj.children().addClass('cbp-wrapper'); + + // wrap the $ul in a outside wrapper + t.wrapInner(t.obj, 'cbp-wrapper-outer'); + + t.wrapper = t.$obj.children('.cbp-wrapper-outer'); + + t.blocks = t.$ul.children('.cbp-item'); + t.blocksOn = t.blocks; + + // wrap .cbp-item-wrap div inside .cbp-item + t.wrapInner(t.blocks, 'cbp-item-wrapper'); + + // register and initialize plugins + t.plugins = {}; + $.each(CubePortfolio.plugins, function(key, value) { + var fn = value(t); + + if (fn) { + t.plugins[key] = fn; + } + }); + + // used by the filters plugin. @todo - remove from here and create proper API with position for plugins + t.triggerEvent('afterPlugins'); + + // usful when width & height is defined for an image and to keep the same aspect ratio on all devices + // on resize. e.g. from mobile to desktop + t.removeAttrAfterStoreData = $.Deferred(); + + // wait to load all images and then go further + t.loadImages(t.$obj, t.display); + } + + + $.extend(CubePortfolio.prototype, { + storeData: function(blocks, indexStart) { + var t = this; + + indexStart = indexStart || 0; // used by loadMore + + blocks.each(function(index, el) { + var item = $(el), + width = item.width(), + height = item.height(); + + item.data('cbp', { + index: indexStart + index, // used when I sort the items and I need them to revert that sorting + indexInitial: indexStart + index, // used for sort.js @todo - move this to sort.js but be carefoul when I add new items to grid + wrapper: item.children('.cbp-item-wrapper'), + + widthInitial: width, + heightInitial: height, + + width: width, // used by drag & drop wp @todo - maybe I will use widthAndGap + height: height, + + widthAndGap: width + t.options.gapVertical, + heightAndGap: height + t.options.gapHorizontal, + + left: null, + leftNew: null, + top: null, + topNew: null, + + pack: false, + }); + }); + + this.removeAttrAfterStoreData.resolve(); + }, + + + // http://bit.ly/pure-js-wrap + wrapInner: function(items, classAttr) { + var t = this, + item, i, div; + + classAttr = classAttr || ''; + + if (items.length && items.length < 1) { + return; // there are no .cbp-item + } else if (items.length === undefined) { + items = [items]; + } + + for (i = items.length - 1; i >= 0; i--) { + item = items[i]; + + div = document.createElement('div'); + + div.setAttribute('class', classAttr); + + while (item.childNodes.length) { + div.appendChild(item.childNodes[0]); + } + + item.appendChild(div); + } + }, + + removeAttrImage: function(img) { + this.removeAttrAfterStoreData.then(function() { + img.removeAttribute('width'); + img.removeAttribute('height'); + img.removeAttribute('style'); + }); + }, + + + /** + * Wait to load all images + */ + loadImages: function(elems, callback) { + var t = this; + + // wait a frame (Safari bug) + requestAnimationFrame(function() { + var imgs = elems.find('img').map(function(index, el) { + // don't wait for images that have a width & height defined + if (el.hasAttribute('width') && el.hasAttribute('height')) { + el.style.width = el.getAttribute('width') + 'px'; + el.style.height = el.getAttribute('height') + 'px'; + + if (el.hasAttribute('data-cbp-src')) { + return null; + } + + if (t.checkSrc(el) === null) { + t.removeAttrImage(el); + } else { + var img = $(''); + + img.on('load.cbp error.cbp', function() { + $(this).off('load.cbp error.cbp'); + t.removeAttrImage(el); + }); + + if (el.srcset) { + img.attr('sizes', el.sizes || '100vw'); + img.attr('srcset', el.srcset); + } else { + img.attr('src', el.src); + } + } + + return null; + } else { + return t.checkSrc(el); + } + }); + + var imgsLength = imgs.length; + + if (imgsLength === 0) { + callback.call(t); + return; + } + + $.each(imgs, function(i, el) { + var img = $(''); + + img.on('load.cbp error.cbp', function() { + $(this).off('load.cbp error.cbp'); + + imgsLength--; + + if (imgsLength === 0) { + callback.call(t); + } + }); + + // ie8 compatibility + if (el.srcset) { + img.attr('sizes', el.sizes); + img.attr('srcset', el.srcset); + } else { + img.attr('src', el.src); + } + }); + }); + }, + + + checkSrc: function(el) { + var srcset = el.srcset; + var src = el.src; + + if (src === '') { + return null; + } + + var img = $(''); + + if (srcset) { + img.attr('sizes', el.sizes || '100vw'); + img.attr('srcset', srcset); + } else { + img.attr('src', src); + } + + var node = img[0]; + + if (node.complete && node.naturalWidth !== undefined && node.naturalWidth !== 0) { + return null; + } + + return node; + }, + + + /** + * Show the plugin + */ + display: function() { + var t = this; + + // update the current grid width + t.width = t.$obj.outerWidth(); + + t.triggerEvent('initStartRead'); + t.triggerEvent('initStartWrite'); + + if (t.width > 0) { + // store to data values of t.blocks + t.storeData(t.blocks); + + // make layout + t.layoutAndAdjustment(); + } + + t.triggerEvent('initEndRead'); + t.triggerEvent('initEndWrite'); + + // plugin is ready to show and interact + t.$obj.addClass('cbp-ready'); + + t.runQueue('delayFrame', t.delayFrame); + }, + + + delayFrame: function() { + var t = this; + + requestAnimationFrame(function() { + t.resizeEvent(); + + t.triggerEvent('initFinish'); + + // animating is now false + t.isAnimating = false; + + // trigger public event initComplete + t.$obj.trigger('initComplete.cbp'); + }); + }, + + + /** + * Add resize event when browser width changes + */ + resizeEvent: function() { + var t = this; + + CubePortfolio.private.resize.initEvent({ + instance: t, + fn: function() { + // used by wp fullWidth force option + t.triggerEvent('beforeResizeGrid'); + + var newWidth = t.$obj.outerWidth(); + + if (newWidth && (t.width !== newWidth)) { + // update the current grid width + t.width = newWidth; + + if (t.options.gridAdjustment === 'alignCenter') { + t.wrapper[0].style.maxWidth = ''; + } + + // reposition the blocks with gridAdjustment set to true + t.layoutAndAdjustment(); + + t.triggerEvent('resizeGrid'); + } + + t.triggerEvent('resizeWindow'); + } + }); + }, + + + gridAdjust: function() { + var t = this; + + // if responsive + if (t.options.gridAdjustment === 'responsive') { + t.responsiveLayout(); + } else { + // reset the style attribute for all blocks so I can read a new width & height + // for the current grid width. This is usefull for the styles defined in css + // to create a custom responsive system. + // Note: reset height if it was set for addHeightToBlocks + t.blocks.removeAttr('style'); + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'), + bound = el.getBoundingClientRect(), + width = t.columnWidthTruncate(bound.right - bound.left), + height = Math.round(bound.bottom - bound.top); + + data.height = height; + data.heightAndGap = height + t.options.gapHorizontal; + + data.width = width; + data.widthAndGap = width + t.options.gapVertical; + }); + + t.widthAvailable = t.width + t.options.gapVertical; + } + + // used by slider layoutMode + t.triggerEvent('gridAdjust'); + }, + + + layoutAndAdjustment: function(updateWidth) { + var t = this; + + if (updateWidth) { + // update the current grid width + t.width = t.$obj.outerWidth(); + } + + t.gridAdjust(); + + t.layout(); + }, + + + /** + * Build the layout + */ + layout: function() { + var t = this; + + t.computeBlocks(t.filterConcat(t.defaultFilter)); + + if (t.options.layoutMode === 'slider') { + t.sliderLayoutReset(); + t.sliderLayout(); + } else { + t.mosaicLayoutReset(); + t.mosaicLayout(); + } + + // positionate the blocks + t.blocksOff.addClass('cbp-item-off'); + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + }); + + // resize main container height + t.resizeMainContainer(); + }, + + + computeFilter: function(expression) { + var t = this; + + t.computeBlocks(expression); + + t.mosaicLayoutReset(); + t.mosaicLayout(); + + // filter call layout + // this method is override by animation{PluginName} + t.filterLayout(); + }, + + + /** + * Default filter layout if nothing overrides + */ + filterLayout: function() { + var t = this; + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + }); + + // resize main container height + t.resizeMainContainer(); + + t.filterFinish(); + }, + + + /** + * Trigger when a filter is finished + */ + filterFinish: function() { + var t = this; + + t.isAnimating = false; + + t.$obj.trigger('filterComplete.cbp'); + t.triggerEvent('filterFinish'); + }, + + + computeBlocks: function(expression) { + var t = this; + + // blocks that are visible before applying the filter + t.blocksOnInitial = t.blocksOn; + + // blocks visible after applying the filter + t.blocksOn = t.blocks.filter(expression); + + // blocks off after applying the filter + t.blocksOff = t.blocks.not(expression); + + t.triggerEvent('computeBlocksFinish', expression); + }, + + + /** + * Make this plugin responsive + */ + responsiveLayout: function() { + var t = this; + + // calculate numbers of cols + t.cols = t[($.isArray(t.options.mediaQueries) ? 'getColumnsBreakpoints' : 'getColumnsAuto')](); + + t.columnWidth = t.columnWidthTruncate((t.width + t.options.gapVertical) / t.cols); + + t.widthAvailable = t.columnWidth * t.cols; + + if (t.options.layoutMode === 'mosaic') { + t.getMosaicWidthReference(); + } + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'), + cols = 1, // grid & slider layoutMode must be 1 + width; + + if (t.options.layoutMode === 'mosaic') { + cols = t.getColsMosaic(data.widthInitial); + } + + width = t.columnWidth * cols - t.options.gapVertical; + + el.style.width = width + 'px'; + data.width = width; + data.widthAndGap = width + t.options.gapVertical; + + // reset height if it was set for addHeightToBlocks + el.style.height = ''; + }); + + var imgs = []; + + t.blocks.each(function(index, el) { + $.each($(el).find('img').filter('[width][height]'), function(index, el) { + var width = 0; + + $(el).parentsUntil('.cbp-item').each(function(index, el) { + var currentWidth = $(el).width(); + + if (currentWidth > 0) { + width = currentWidth; + return false; + } + }); + + var imgWidth = parseInt(el.getAttribute('width'), 10); + var imgHeight = parseInt(el.getAttribute('height'), 10); + var ratio = parseFloat((imgWidth / imgHeight).toFixed(10)); + + imgs.push({ + el: el, + width: width, + height: Math.round(width / ratio), + }); + }); + }); + + $.each(imgs, function(index, item) { + item.el.width = item.width; + item.el.height = item.height; + item.el.style.width = item.width + 'px'; + item.el.style.height = item.height + 'px'; + }); + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'), + bound = el.getBoundingClientRect(), + height = Math.round(bound.bottom - bound.top); + + data.height = height; + data.heightAndGap = height + t.options.gapHorizontal; + }); + }, + + + getMosaicWidthReference: function() { + var t = this, + arrWidth = []; + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'); + arrWidth.push(data.widthInitial); + }); + + arrWidth.sort(function(a, b) { + return a - b; + }); + + if (arrWidth[0]) { + t.mosaicWidthReference = arrWidth[0]; + } else { + t.mosaicWidthReference = t.columnWidth; + } + }, + + + getColsMosaic: function(widthInitial) { + var t = this; + + if (widthInitial === t.width) { + return t.cols; + } + + var ratio = widthInitial / t.mosaicWidthReference; + + if (ratio % 1 >= 0.79) { + ratio = Math.ceil(ratio); + } else { + ratio = Math.floor(ratio); + } + + return Math.min(Math.max(ratio, 1), t.cols); + }, + + + /** + * Get numbers of columns when t.options.mediaQueries is not an array + */ + getColumnsAuto: function() { + var t = this; + + if (t.blocks.length === 0) { + return 1; + } + + var columnWidth = t.blocks.first().data('cbp').widthInitial + t.options.gapVertical; + + return Math.max(Math.round(t.width / columnWidth), 1); + }, + + + /** + * Get numbers of columns if t.options.mediaQueries is an array + */ + getColumnsBreakpoints: function() { + var t = this, + gridWidth = t.width, + mediaQuery; + + $.each(t.options.mediaQueries, function(index, obj) { + if (gridWidth >= obj.width) { + mediaQuery = obj; + return false; + } + }); + + if (!mediaQuery) { + mediaQuery = t.options.mediaQueries[t.options.mediaQueries.length - 1]; + } + + // the columns breakpoints is triggered + t.triggerEvent('onMediaQueries', mediaQuery.options); + + return mediaQuery.cols; + }, + + + /** + * Defines how the columns dimension & position (width, left) will be truncated + * + * If you use `Math.*` there could be some issues with the items on the right side + * that can have some pixels hidden(1 or 2, depends on the number of columns) + * but this is a known limitation. + * + * If you don't use the built-in captions effects (overlay at hover over an item) returning + * the possibly floated values may be a solution for the pixels hidden on the right side. + * + * The column width must be an integer because browsers have some visual issues + * with transform properties for caption effects. + * + * The initial behaviour was return Math.floor + * + */ + columnWidthTruncate: function(value) { + return Math.floor(value); + }, + + + /** + * Resize main container vertically + */ + resizeMainContainer: function() { + var t = this, + height = Math.max(t.freeSpaces.slice(-1)[0].topStart - t.options.gapHorizontal, 0), + maxWidth; + + // set max-width to center the grid if I need to + if (t.options.gridAdjustment === 'alignCenter') { + maxWidth = 0; + + t.blocksOn.each(function(index, el) { + var data = $(el).data('cbp'), + rightEdge = data.left + data.width; + + if (rightEdge > maxWidth) { + maxWidth = rightEdge; + } + }); + + t.wrapper[0].style.maxWidth = maxWidth + 'px'; + } + + // set container height for `overflow: hidden` to be applied + if (height === t.height) { + t.triggerEvent('resizeMainContainer'); + return; + } + + t.obj.style.height = height + 'px'; + + // if resizeMainContainer is called for the first time skip this event trigger + if (t.height !== undefined) { + if (CubePortfolio.private.modernBrowser) { + t.$obj.one(CubePortfolio.private.transitionend, function() { + t.$obj.trigger('pluginResize.cbp'); + }); + } else { + t.$obj.trigger('pluginResize.cbp'); + } + } + + t.height = height; + + t.triggerEvent('resizeMainContainer'); + }, + + + filterConcat: function(filter) { + return filter.replace(/\|/gi, ''); + }, + + + pushQueue: function(name, deferred) { + var t = this; + + t.queue[name] = t.queue[name] || []; + t.queue[name].push(deferred); + }, + + + runQueue: function(name, fn) { + var t = this, + queue = t.queue[name] || []; + + $.when.apply($, queue).then($.proxy(fn, t)); + }, + + + clearQueue: function(name) { + var t = this; + + t.queue[name] = []; + }, + + + /** + * Register event + */ + registerEvent: function(name, callbackFunction, oneTime) { + var t = this; + + if (!t.registeredEvents[name]) { + t.registeredEvents[name] = []; + } + + t.registeredEvents[name].push({ + func: callbackFunction, + oneTime: oneTime || false + }); + }, + + + /** + * Trigger event + */ + triggerEvent: function(name, param) { + var t = this, + i, len; + + if (t.registeredEvents[name]) { + for (i = 0, len = t.registeredEvents[name].length; i < len; i++) { + t.registeredEvents[name][i].func.call(t, param); + + if (t.registeredEvents[name][i].oneTime) { + t.registeredEvents[name].splice(i, 1); + // function splice change the t.registeredEvents[name] array + // if event is one time you must set the i to the same value + // next time and set the length lower + i--; + len--; + } + } + } + }, + + + addItems: function(items, callback, position) { + var t = this; + + // wrap .cbp-item-wrap div inside .cbp-item + t.wrapInner(items, 'cbp-item-wrapper'); + + t.$ul[position](items.addClass('cbp-item-loading').css({ + top: '100%', + left: 0 + })); + + if (CubePortfolio.private.modernBrowser) { + items.last().one(CubePortfolio.private.animationend, function() { + t.addItemsFinish(items, callback); + }); + } else { + t.addItemsFinish(items, callback); // @todo - on ie8 & ie9 callback triggers to early + } + + t.loadImages(items, function() { + t.$obj.addClass('cbp-updateItems'); + + if (position === 'append') { + // push to data values of items + t.storeData(items, t.blocks.length); + $.merge(t.blocks, items); + } else { + // push to data values of items + t.storeData(items); + + var itemsLen = items.length; + t.blocks.each(function(index, el) { + $(el).data('cbp').index = itemsLen + index; + }); + + // push the new items to t.blocks + t.blocks = $.merge(items, t.blocks); + } + + t.triggerEvent('addItemsToDOM', items); + + // trigger a sort before layout + t.triggerEvent('triggerSort'); + + t.layoutAndAdjustment(true); + + // if show count was actived, call show count function again + if (t.elems) { + CubePortfolio.public.showCounter.call(t.obj, t.elems); + } + }); + }, + + + addItemsFinish: function(items, callback) { + var t = this; + + t.isAnimating = false; + + t.$obj.removeClass('cbp-updateItems'); + items.removeClass('cbp-item-loading'); + + if ($.isFunction(callback)) { + callback.call(t, items); + } + + // trigger public event onAfterLoadMore + t.$obj.trigger('onAfterLoadMore.cbp', [items]); + }, + + removeItems: function(items, callback) { + var t = this; + + t.$obj.addClass('cbp-updateItems'); + + if (CubePortfolio.private.modernBrowser) { + items.last().one(CubePortfolio.private.animationend, function() { + t.removeItemsFinish(items, callback); + }); + } else { + t.removeItemsFinish(items, callback); // @todo - on ie8 & ie9 callback triggers to early + } + + items.each(function(index, el) { + t.blocks.each(function(index2, el2) { + if (el === el2) { + var removeEl = $(el2); + + // remove element from blocks + t.blocks.splice(index2, 1); + + if (CubePortfolio.private.modernBrowser) { + removeEl.one(CubePortfolio.private.animationend, function() { + removeEl.remove(); + }); + removeEl.addClass('cbp-removeItem'); + } else { + removeEl.remove(); + } + } + }); + }); + + t.blocks.each(function(index, el) { + $(el).data('cbp').index = index; + }); + + // trigger a sort before layout + t.triggerEvent('triggerSort'); + + t.layoutAndAdjustment(true); + + // if show count was actived, call show count function again + if (t.elems) { + CubePortfolio.public.showCounter.call(t.obj, t.elems); + } + }, + + + removeItemsFinish: function(items, callback) { + var t = this; + + t.isAnimating = false; + + t.$obj.removeClass('cbp-updateItems'); + + if ($.isFunction(callback)) { + callback.call(t, items); + } + }, + }); + + + /** + * jQuery plugin initializer + */ + $.fn.cubeportfolio = function(method, options, callback) { + return this.each(function() { + if (typeof method === 'object' || !method) { + return CubePortfolio.public.init.call(this, method, options); + } else if (CubePortfolio.public[method]) { + return CubePortfolio.public[method].call(this, options, callback); + } + + throw new Error('Method ' + method + ' does not exist on jquery.cubeportfolio.js'); + }); + }; + + CubePortfolio.plugins = {}; + $.fn.cubeportfolio.constructor = CubePortfolio; +})(jQuery, window, document); + +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + $.extend(CubePortfolio.prototype, { + mosaicLayoutReset: function() { + var t = this; + + // flag to be set after the blocks sorting is done + t.blocksAreSorted = false; + + // when I start the layout again all blocks must not be positionated + // reset height if it was set for addHeightToBlocks + t.blocksOn.each(function(index, el) { + $(el).data('cbp').pack = false; + + if (t.options.sortByDimension) { + el.style.height = ''; + } + }); + + // array of objects where I keep the spaces available in the grid + t.freeSpaces = [{ + leftStart: 0, + leftEnd: t.widthAvailable, + topStart: 0, + topEnd: Math.pow(2, 18) // @todo - optimize + }]; + }, + + + mosaicLayout: function() { + var t = this; + + for (var i = 0, blocksLen = t.blocksOn.length; i < blocksLen; i++) { + var spaceIndexAndBlock = t.getSpaceIndexAndBlock(); + + // if space or block are null then start sorting + if (spaceIndexAndBlock === null) { + t.mosaicLayoutReset(); + + // sort blocks to prevent gaps set to true + t.blocksAreSorted = true; + + // sort by the longer width first, followed by a comparison of the shorter height in descending order + t.sortBlocks(t.blocksOn, 'widthAndGap', 'heightAndGap', true); + + // after the sort is finished start the layout again + t.mosaicLayout(); + + return; + } + + t.generateF1F2(spaceIndexAndBlock.spaceIndex, spaceIndexAndBlock.dataBlock); + + t.generateG1G2G3G4(spaceIndexAndBlock.dataBlock); + + t.cleanFreeSpaces(); + + t.addHeightToBlocks(); + } + + // sort blocksOn from top to bottom to add properly delay from animationType and displayType options + if (t.blocksAreSorted) { + t.sortBlocks(t.blocksOn, 'topNew', 'leftNew'); + } + }, + + + /** + * Chose from freeSpaces the best space available + * Find block by verifying if it can fit in bestSpace(top-left space available) + * If block doesn't fit in the first space available & t.options.sortByDimension + * is set to true then sort the blocks and start the layout once again + * Decide the free rectangle Fi from F to pack the rectangle R into. + */ + getSpaceIndexAndBlock: function() { + var t = this, + spaceIndexAndBlock = null; + + $.each(t.freeSpaces, function(index1, space) { + var widthSpace = space.leftEnd - space.leftStart, + heightSpace = space.topEnd - space.topStart; + + t.blocksOn.each(function(index2, block) { + var data = $(block).data('cbp'); + + if (data.pack === true) { + return; + } + + if (data.widthAndGap <= widthSpace && data.heightAndGap <= heightSpace) { + // now the rectagle can be positioned + data.pack = true; + + spaceIndexAndBlock = { + spaceIndex: index1, + dataBlock: data + }; + + data.leftNew = space.leftStart; + data.topNew = space.topStart; + + // if the block is founded => return from this loop + return false; + } + }); + + // if first space don't have a block and sortByDimension is true => return from loop + if (!t.blocksAreSorted && t.options.sortByDimension && index1 > 0) { + spaceIndexAndBlock = null; + + return false; + } + + // if space & block is founded => return from loop + if (spaceIndexAndBlock !== null) { + return false; + } + }); + + return spaceIndexAndBlock; + }, + + + /** + * Use the MAXRECTS split scheme to subdivide Fi(space) into F1 and F2 and + * then remove that space from spaces + * Insert F1 & F2 in F in place of Fi + */ + generateF1F2: function(spaceIndex, block) { + var t = this, + space = t.freeSpaces[spaceIndex]; + + var F1 = { + leftStart: space.leftStart + block.widthAndGap, + leftEnd: space.leftEnd, + topStart: space.topStart, + topEnd: space.topEnd + }; + + var F2 = { + leftStart: space.leftStart, + leftEnd: space.leftEnd, + topStart: space.topStart + block.heightAndGap, + topEnd: space.topEnd + }; + + // remove Fi from F + t.freeSpaces.splice(spaceIndex, 1); + + if (F1.leftEnd > F1.leftStart && F1.topEnd > F1.topStart) { + t.freeSpaces.splice(spaceIndex, 0, F1); + spaceIndex++; + } + + if (F2.leftEnd > F2.leftStart && F2.topEnd > F2.topStart) { + t.freeSpaces.splice(spaceIndex, 0, F2); + } + }, + + + /** + * Generate G1, G2, G3, G4 from intersaction of t.freeSpaces with block + */ + generateG1G2G3G4: function(block) { + var t = this; + + var spaces = []; + + $.each(t.freeSpaces, function(index, space) { + var intersectSpace = t.intersectSpaces(space, block); + + // if block & space are the same push space in spaces and return + if (intersectSpace === null) { + spaces.push(space); + return; + } + + t.generateG1(space, intersectSpace, spaces); + t.generateG2(space, intersectSpace, spaces); + t.generateG3(space, intersectSpace, spaces); + t.generateG4(space, intersectSpace, spaces); + }); + + t.freeSpaces = spaces; + }, + + + /** + * Return the intersected rectagle of Fi and block + * If the two spaces don't intersect or are the same return null + */ + intersectSpaces: function(space1, block) { + var t = this, + space2 = { + leftStart: block.leftNew, + leftEnd: block.leftNew + block.widthAndGap, + topStart: block.topNew, + topEnd: block.topNew + block.heightAndGap, + }; + + if (space1.leftStart === space2.leftStart && + space1.leftEnd === space2.leftEnd && + space1.topStart === space2.topStart && + space1.topEnd === space2.topEnd) { + return null; + } + + var leftStart = Math.max(space1.leftStart, space2.leftStart), + leftEnd = Math.min(space1.leftEnd, space2.leftEnd), + topStart = Math.max(space1.topStart, space2.topStart), + topEnd = Math.min(space1.topEnd, space2.topEnd); + + if (leftEnd <= leftStart || topEnd <= topStart) { + return null; + } + + return { + leftStart: leftStart, + leftEnd: leftEnd, + topStart: topStart, + topEnd: topEnd + }; + }, + + + /** + * The top subdivide space + */ + generateG1: function(space, intersectSpace, spaces) { + if (space.topStart === intersectSpace.topStart) { + return; + } + + spaces.push({ + leftStart: space.leftStart, + leftEnd: space.leftEnd, + topStart: space.topStart, + topEnd: intersectSpace.topStart + }); + }, + + + /** + * The right subdivide space + */ + generateG2: function(space, intersectSpace, spaces) { + if (space.leftEnd === intersectSpace.leftEnd) { + return; + } + + spaces.push({ + leftStart: intersectSpace.leftEnd, + leftEnd: space.leftEnd, + topStart: space.topStart, + topEnd: space.topEnd + }); + }, + + + /** + * The bottom subdivide space + */ + generateG3: function(space, intersectSpace, spaces) { + if (space.topEnd === intersectSpace.topEnd) { + return; + } + + spaces.push({ + leftStart: space.leftStart, + leftEnd: space.leftEnd, + topStart: intersectSpace.topEnd, + topEnd: space.topEnd + }); + }, + + + /** + * The left subdivide space + */ + generateG4: function(space, intersectSpace, spaces) { + if (space.leftStart === intersectSpace.leftStart) { + return; + } + + spaces.push({ + leftStart: space.leftStart, + leftEnd: intersectSpace.leftStart, + topStart: space.topStart, + topEnd: space.topEnd + }); + }, + + + /** + * For every Fi check if is another Fj so Fj contains Fi + * @todo - refactor + */ + cleanFreeSpaces: function() { + var t = this; + + // sort space from top to bottom and left to right + t.freeSpaces.sort(function(space1, space2) { + if (space1.topStart > space2.topStart) { + return 1; + } else if (space1.topStart < space2.topStart) { + return -1; + } else { + if (space1.leftStart > space2.leftStart) { + return 1; + } else if (space1.leftStart < space2.leftStart) { + return -1; + } else { + return 0; + } + } + }); + + t.correctSubPixelValues(); + + t.removeNonMaximalFreeSpaces(); + }, + + + /** + * If topStart values for spaces are <= 1px then align those spaces + */ + correctSubPixelValues: function() { + var t = this, + i, len, diff, space1, space2; + + for (i = 0, len = t.freeSpaces.length - 1; i < len; i++) { + space1 = t.freeSpaces[i]; + space2 = t.freeSpaces[i + 1]; + + if ((space2.topStart - space1.topStart) <= 1) { + space2.topStart = space1.topStart; + } + } + }, + + + /** + * Remove spaces that are not maximal + * If Fi contains Fj then remove Fj from F + */ + removeNonMaximalFreeSpaces: function() { + var t = this; + + t.uniqueFreeSpaces(); + + t.freeSpaces = $.map(t.freeSpaces, function(space1, index1) { + $.each(t.freeSpaces, function(index2, space2) { + // don't compare the same free spaces + if (index1 === index2) { + return; + } + + if (space2.leftStart <= space1.leftStart && + space2.leftEnd >= space1.leftEnd && + space2.topStart <= space1.topStart && + space2.topEnd >= space1.topEnd) { + + space1 = null; + return false; + } + }); + + return space1; + }); + }, + + + /** + * Remove duplicates spaces from freeSpaces + */ + uniqueFreeSpaces: function() { + var t = this, + result = []; + + $.each(t.freeSpaces, function(index1, space1) { + $.each(result, function(index2, space2) { + if (space2.leftStart === space1.leftStart && + space2.leftEnd === space1.leftEnd && + space2.topStart === space1.topStart && + space2.topEnd === space1.topEnd) { + + space1 = null; + return false; + } + }); + + if (space1 !== null) { + result.push(space1); + } + }); + + t.freeSpaces = result; + }, + + + /** + * If freeSpaces arrray has only one space and that space overlap the + * height of the bottom blocks with 1px cut those blocks + */ + addHeightToBlocks: function() { + var t = this; + + $.each(t.freeSpaces, function(indexSpace, space) { + t.blocksOn.each(function(indexBlock, block) { + var data = $(block).data('cbp'); + + if (data.pack !== true) { + return; + } + + if (!t.intersectSpaces(space, data)) { + return; + } + + var diff = space.topStart - data.topNew - data.heightAndGap; + + if (diff === -1) { + block.style.height = (data.height - 1) + 'px'; + } + }); + }); + }, + + /** + * Generic sort blocks + */ + sortBlocks: function(blocks, compare1, compare2, order) { + compare2 = (compare2 === undefined)? 'leftNew' : compare2; + order = (order === undefined)? 1 : -1; + + blocks.sort(function(block1, block2) { + var data1 = $(block1).data('cbp'), + data2 = $(block2).data('cbp'); + + if (data1[compare1] > data2[compare1]) { + return order; + } else if (data1[compare1] < data2[compare1]) { + return -order; + } else { + if (data1[compare2] > data2[compare2]) { + return order; + } else if (data1[compare2] < data2[compare2]) { + return -order; + } else { + // order asc by index + if (data1.index > data2.index) { + return order; + } else if (data1.index < data2.index) { + return -order; + } + } + } + }); + } + }); +})(jQuery, window, document); +// Plugin default options +jQuery.fn.cubeportfolio.options = { + /** + * Define the wrapper for filters + * Values: strings that represent the elements in the document (DOM selector). + */ + filters: '', + + + /** + * Define the search input element + * Values: strings that represent the element in the document (DOM selector). + */ + search: '', + + /** + * Layout Mode for this instance + * Values: 'grid', 'mosaic' or 'slider' + */ + layoutMode: 'grid', + + /** + * Sort the items by dimension (bigger to smallest) if there are gaps in grid + * Option available only for `layoutMode: 'mosaic'` + * Values: true or false + */ + sortByDimension: false, + + /** + * Mouse and touch drag support + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + drag: true, + + /** + * Autoplay the slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + auto: false, + + /** + * Autoplay interval timeout. Time is set in milisecconds + * 1000 milliseconds equals 1 second. + * Option available only for `layoutMode: 'slider'` + * Values: only integers (ex: 1000, 2000, 5000) + */ + autoTimeout: 5000, + + /** + * Stops autoplay when user hover the slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + autoPauseOnHover: true, + + /** + * Show `next` and `prev` buttons for slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + showNavigation: true, + + /** + * Show pagination for slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + showPagination: true, + + /** + * Enable slide to first item (last item) + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + rewindNav: true, + + /** + * Scroll by page and not by item. This option affect next/prev buttons and drag support + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + scrollByPage: false, + + /** + * Default filter for plugin + * Option available only for `layoutMode: 'grid'` + * Values: strings that represent the filter name(ex: *, .logo, .web-design, .design) + */ + defaultFilter: '*', + + /** + * Enable / disable the deeplinking feature when you click on filters + * Option available only for `layoutMode: 'grid'` + * Values: true or false + */ + filterDeeplinking: false, + + /** + * Defines which animation to use for items that will be shown or hidden after a filter has been activated. + * Option available only for `layoutMode: 'grid'` + * The plugin use the best browser features available (css3 transitions and transform, GPU acceleration). + * Values: - fadeOut + * - quicksand + * - bounceLeft + * - bounceTop + * - bounceBottom + * - moveLeft + * - slideLeft + * - fadeOutTop + * - sequentially + * - skew + * - slideDelay + * - rotateSides + * - flipOutDelay + * - flipOut + * - unfold + * - foldLeft + * - scaleDown + * - scaleSides + * - frontRow + * - flipBottom + * - rotateRoom + */ + animationType: 'fadeOut', + + /** + * Adjust the layout grid + * Values: - default (no adjustment applied) + * - alignCenter (align the grid on center of the page) + * - responsive (use a fluid algorithm to resize the grid) + */ + gridAdjustment: 'responsive', + + /** + * Define `media queries` for columns layout. + * Format: [{width: a, cols: d}, {width: b, cols: e}, {width: c, cols: f}], + * where a, b, c are the grid width and d, e, f are the columns displayed. + * e.g. [{width: 1100, cols: 4}, {width: 800, cols: 3}, {width: 480, cols: 2}] means + * if (gridWidth >= 1100) => show 4 columns, + * if (gridWidth >= 800 && gridWidth < 1100) => show 3 columns, + * if (gridWidth >= 480 && gridWidth < 800) => show 2 columns, + * if (gridWidth < 480) => show 2 columns + * Keep in mind that a > b > c + * This option is available only when `gridAdjustment: 'responsive'` + * Values: - array of objects of format: [{width: a, cols: d}, {width: b, cols: e}] + * - you can define as many objects as you want + * - if this option is `false` Cube Portfolio will adjust the items + * width automatically (default option for backward compatibility) + */ + mediaQueries: false, + + /** + * Horizontal gap between items + * Values: only integers (ex: 1, 5, 10) + */ + gapHorizontal: 10, + + /** + * Vertical gap between items + * Values: only integers (ex: 1, 5, 10) + */ + gapVertical: 10, + + /** + * Caption - the overlay that is shown when you put the mouse over an item + * NOTE: If you don't want to have captions set this option to an empty string ( caption: '') + * Values: - pushTop + * - pushDown + * - revealBottom + * - revealTop + * - revealLeft + * - moveRight + * - overlayBottom + * - overlayBottomPush + * - overlayBottomReveal + * - overlayBottomAlong + * - overlayRightAlong + * - minimal + * - fadeIn + * - zoom + * - opacity + * - '' + */ + caption: 'pushTop', + + /** + * The plugin will display his content based on the following values. + * Values: - default (the content will be displayed without any animation) + * - fadeIn (the plugin will fully preload the images before displaying the items with a fadeIn effect) + * - fadeInToTop (the plugin will fully preload the images before displaying the items with a fadeIn effect from bottom to top) + * - sequentially (the plugin will fully preload the images before displaying the items with a sequentially effect) + * - bottomToTop (the plugin will fully preload the images before displaying the items with an animation from bottom to top) + */ + displayType: 'fadeIn', + + /** + * Defines the speed of displaying the items (when `displayType: 'default'` this option will have no effect) + * Values: only integers, values in ms (ex: 200, 300, 500) + */ + displayTypeSpeed: 400, + + /** + * This is used to define any clickable elements you wish to use to trigger lightbox popup on click. + * Values: strings that represent the elements in the document (DOM selector) + */ + lightboxDelegate: '.cbp-lightbox', + + /** + * Enable / disable gallery mode + * Values: true or false + */ + lightboxGallery: true, + + /** + * Attribute of the delegate item that contains caption for lightbox + * Values: html atributte + */ + lightboxTitleSrc: 'data-title', + + /** + * Markup of the lightbox counter + * Values: html markup + */ + lightboxCounter: '

    {{current}} of {{total}}
    ', + + /** + * This is used to define any clickable elements you wish to use to trigger singlePage popup on click. + * Values: strings that represent the elements in the document (DOM selector) + */ + singlePageDelegate: '.cbp-singlePage', + + /** + * Enable / disable the deeplinking feature for singlePage popup + * Values: true or false + */ + singlePageDeeplinking: true, + + /** + * Enable / disable the sticky navigation for singlePage popup + * Values: true or false + */ + singlePageStickyNavigation: true, + + /** + * Markup of the singlePage counter + * Values: html markup + */ + singlePageCounter: '
    {{current}} of {{total}}
    ', + + /** + * Defines which animation to use when singlePage appear + * Values: - left + * - fade + * - right + */ + singlePageAnimation: 'left', + + /** + * Use this callback to update singlePage content. + * The callback will trigger after the singlePage popup is open. + * Values: function + */ + singlePageCallback: null, + + /** + * This is used to define any clickable elements you wish to use to trigger singlePageInline on click. + * Values: strings that represent the elements in the document (DOM selector) + */ + singlePageInlineDelegate: '.cbp-singlePageInline', + + /** + * Enable / disable the deeplinking feature for singlePageInline + * Values: true or false + */ + singlePageInlineDeeplinking: false, + + /** + * This is used to define the position of singlePageInline block + * Values: - above ( above current element ) + * - below ( below current elemnet) + * - top ( positon top ) + * - bottom ( positon bottom ) + */ + singlePageInlinePosition: 'top', + + /** + * Push the open panel in focus and at close go back to the former stage + * Values: true or false + */ + singlePageInlineInFocus: true, + + /** + * Use this callback to update singlePageInline content. + * The callback will trigger after the singlePageInline is open. + * Values: function + */ + singlePageInlineCallback: null, + + /** + * Used by the plugins registered to set local options for the current instance + * Values: object + */ + plugins: {}, +}; +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + var $window = $(window); + + CubePortfolio.private = { + publicEvents: function(eventName, time, beforeEventCallback) { + var t = this; + + // array of objects: {instance: instance, fn: fn} + t.events = []; + + t.initEvent = function(obj) { + if (t.events.length === 0) { + t.scrollEvent(); + } + + t.events.push(obj); + }; + + t.destroyEvent = function(instance) { + t.events = $.map(t.events, function(val, index) { + if (val.instance !== instance) { + return val; + } + }); + + if (t.events.length === 0) { + // remove scroll event + $window.off(eventName); + } + }; + + t.scrollEvent = function() { + var timeout; + + // resize + $window.on(eventName, function() { + clearTimeout(timeout); + + timeout = setTimeout(function() { + if ($.isFunction(beforeEventCallback) && beforeEventCallback.call(t)) { + return; + } + + $.each(t.events, function(index, val) { + val.fn.call(val.instance); + }); + }, time); + }); + }; + }, + + /** + * Check if cubeportfolio instance exists on current element + */ + checkInstance: function(method) { + var t = $.data(this, 'cubeportfolio'); + + if (!t) { + throw new Error('cubeportfolio is not initialized. Initialize it before calling ' + method + ' method!'); + } + + t.triggerEvent('publicMethod'); + + return t; + }, + + /** + * Get info about client browser + */ + browserInfo: function() { + var t = CubePortfolio.private, + appVersion = navigator.appVersion, + transition, animation, perspective; + + if (appVersion.indexOf('MSIE 8.') !== -1) { // ie8 + t.browser = 'ie8'; + } else if (appVersion.indexOf('MSIE 9.') !== -1) { // ie9 + t.browser = 'ie9'; + } else if (appVersion.indexOf('MSIE 10.') !== -1) { // ie10 + t.browser = 'ie10'; + } else if (window.ActiveXObject || 'ActiveXObject' in window) { // ie11 + t.browser = 'ie11'; + } else if ((/android/gi).test(appVersion)) { // android + t.browser = 'android'; + } else if ((/iphone|ipad|ipod/gi).test(appVersion)) { // ios + t.browser = 'ios'; + } else if ((/chrome/gi).test(appVersion)) { + t.browser = 'chrome'; + } else { + t.browser = ''; + } + + // check if perspective is available + perspective = t.styleSupport('perspective'); + + // if perspective is not available => no modern browser + if (typeof perspective === undefined) { + return; + } + + transition = t.styleSupport('transition'); + + t.transitionend = { + WebkitTransition: 'webkitTransitionEnd', + transition: 'transitionend' + }[transition]; + + animation = t.styleSupport('animation'); + + t.animationend = { + WebkitAnimation: 'webkitAnimationEnd', + animation: 'animationend' + }[animation]; + + t.animationDuration = { + WebkitAnimation: 'webkitAnimationDuration', + animation: 'animationDuration' + }[animation]; + + t.animationDelay = { + WebkitAnimation: 'webkitAnimationDelay', + animation: 'animationDelay' + }[animation]; + + t.transform = t.styleSupport('transform'); + + if (transition && animation && t.transform) { + t.modernBrowser = true; + } + }, + + + /** + * Feature testing for css3 + */ + styleSupport: function(prop) { + var supportedProp, + // capitalize first character of the prop to test vendor prefix + webkitProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1), + div = document.createElement('div'); + + // browser supports standard CSS property name + if (prop in div.style) { + supportedProp = prop; + } else if (webkitProp in div.style) { + supportedProp = webkitProp; + } + + // avoid memory leak in IE + div = null; + + return supportedProp; + }, + }; + + CubePortfolio.private.browserInfo(); + + CubePortfolio.private.resize = new CubePortfolio.private.publicEvents('resize.cbp', 50, function() { + if (window.innerHeight == screen.height) { + // this is fulll screen mode. don't need to trigger a resize + return true; + } + }); +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + CubePortfolio.public = { + + /* + * Init the plugin + */ + init: function(options, callback) { + new CubePortfolio(this, options, callback); + }, + + /* + * Destroy the plugin + */ + destroy: function(callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'destroy'); + + t.triggerEvent('beforeDestroy'); + + // remove data + $.removeData(this, 'cubeportfolio'); + + // remove data from blocks + t.blocks.removeData('cbp'); + + // remove loading class and .cbp on container + t.$obj.removeClass('cbp-ready').removeAttr('style'); + + // remove class from ul + t.$ul.removeClass('cbp-wrapper'); + + // remove resize event + CubePortfolio.private.resize.destroyEvent(t); + + t.$obj.off('.cbp'); + + // reset blocks + t.blocks.removeClass('cbp-item-off').removeAttr('style'); + + t.blocks.find('.cbp-item-wrapper').each(function(index, el) { + var elem = $(el), + children = elem.children(); + + if (children.length) { + children.unwrap(); + } else { + elem.remove(); + } + }); + + if (t.destroySlider) { + t.destroySlider(); + } + + // remove .cbp-wrapper-outer + t.$ul.unwrap(); + + // remove .cbp-wrapper + if (t.addedWrapp) { + t.blocks.unwrap(); + } + + if (t.blocks.length === 0) { + t.$ul.remove(); + } + + $.each(t.plugins, function(key, value) { + if (typeof value.destroy === 'function') { + value.destroy(); + } + }); + + if ($.isFunction(callback)) { + callback.call(t); + } + + t.triggerEvent('afterDestroy'); + }, + + /* + * Filter the plugin by filterName + */ + filter: function(param, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'filter'), + expression; + + if (t.isAnimating) { + return; + } + + t.isAnimating = true; + + // register callback function + if ($.isFunction(callback)) { + t.registerEvent('filterFinish', callback, true); + } + + if ($.isFunction(param)) { + expression = param.call(t, t.blocks); + + if(expression === undefined) { + throw new Error('When you call cubeportfolio API `filter` method with a param of type function you must return the blocks that will be visible.'); + } + } else { + if (t.options.filterDeeplinking) { + var url = location.href.replace(/#cbpf=(.*?)([#\?&]|$)/gi, ''); + location.href = url + '#cbpf=' + encodeURIComponent(param); + + if (t.singlePage && t.singlePage.url) { + t.singlePage.url = location.href; + } + } + + t.defaultFilter = param; + expression = t.filterConcat(t.defaultFilter); + } + + t.triggerEvent('filterStart', expression); + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.computeFilter(expression); + } + }); + } else { + t.computeFilter(expression); + } + }, + + /* + * Show counter for filters + */ + showCounter: function(elems, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'showCounter'); + + // register callback function + if ($.isFunction(callback)) { + t.registerEvent('showCounterFinish', callback, true); + } + + t.elems = elems; + + elems.each(function() { + var el = $(this); + + var count = t.blocks.filter(el.data('filter')).length; + el.find('.cbp-filter-counter').text(count); + }); + + t.triggerEvent('showCounterFinish', elems); + }, + + // alias for append public method + appendItems: function(els, callback) { + CubePortfolio.public.append.call(this, els, callback); + }, + + /* + * Append elements + */ + append: function(els, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'append'), + items = $(els).filter('.cbp-item'); + + if (t.isAnimating || items.length < 1) { + if ($.isFunction(callback)) { + callback.call(t, items); + } + + return; + } + + t.isAnimating = true; + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.addItems(items, callback, 'append'); + } + }); + } else { + t.addItems(items, callback, 'append'); + } + }, + + /* + * Prepend elements + */ + prepend: function(els, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'prepend'), + items = $(els).filter('.cbp-item'); + + if (t.isAnimating || items.length < 1) { + if ($.isFunction(callback)) { + callback.call(t, items); + } + + return; + } + + t.isAnimating = true; + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.addItems(items, callback, 'prepend'); + } + }); + } else { + t.addItems(items, callback, 'prepend'); + } + }, + + /* + * Remove elements from the instance and DOM. + * els - jQuery DOM Object + */ + remove: function(els, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'remove'), + items = $(els).filter('.cbp-item'); + + if (t.isAnimating || items.length < 1) { + if ($.isFunction(callback)) { + callback.call(t, items); + } + + return; + } + + t.isAnimating = true; + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.removeItems(items, callback); + } + }); + } else { + t.removeItems(items, callback); + } + }, + + /* + * Relayout all elements in the current grid. + * Useful when all/some items need to be laid out again, or grid width is changed. + */ + layout: function(callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'layout'); + + // update the current grid width + t.width = t.$obj.outerWidth(); + + if (t.isAnimating || (t.width <= 0)) { + if ($.isFunction(callback)) { + callback.call(t); + } + + return; + } + + if (t.options.gridAdjustment === 'alignCenter') { + t.wrapper[0].style.maxWidth = ''; + } + + // store to data values of t.blocks + t.storeData(t.blocks); + + // reposition the blocks + t.layoutAndAdjustment(); + + if ($.isFunction(callback)) { + callback.call(t); + } + }, + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + // @todo - gandit cum ar trebui sa fac aici ca nu prea ar merge un plugin + // pt slider ca as extinde pe CubePortfolio.prototype la fiecare initializare + $.extend(CubePortfolio.prototype, { + updateSliderPagination: function() { + var t = this, + pages, + i; + + if (t.options.showPagination) { + // get number of pages + pages = Math.ceil(t.blocksOn.length / t.cols); + t.navPagination.empty(); + + for (i = pages - 1; i >= 0; i--) { + $('
    ', { + 'class': 'cbp-nav-pagination-item', + 'data-slider-action': 'jumpTo' + }).appendTo(t.navPagination); + } + + t.navPaginationItems = t.navPagination.children(); + } + + // enable disable the nav + t.enableDisableNavSlider(); + }, + + destroySlider: function() { + var t = this; + + if (t.options.layoutMode !== 'slider') { + return; + } + + t.$obj.removeClass('cbp-mode-slider'); + + t.$ul.removeAttr('style'); + + t.$ul.off('.cbp'); + + $(document).off('.cbp'); // @todo - don't interfer with the lightbox + + if (t.options.auto) { + t.stopSliderAuto(); + } + }, + + nextSlider: function(el) { + var t = this; + + if (t.isEndSlider()) { + if (t.isRewindNav()) { + t.sliderActive = 0; + } else { + return; + } + } else { + if (t.options.scrollByPage) { + t.sliderActive = Math.min(t.sliderActive + t.cols, t.blocksOn.length - t.cols); + } else { + t.sliderActive += 1; + } + } + + t.goToSlider(); + }, + + prevSlider: function(el) { + var t = this; + + if (t.isStartSlider()) { + if (t.isRewindNav()) { + t.sliderActive = t.blocksOn.length - t.cols; + } else { + return; + } + } else { + if (t.options.scrollByPage) { + t.sliderActive = Math.max(0, t.sliderActive - t.cols); + } else { + t.sliderActive -= 1; + } + } + + t.goToSlider(); + }, + + jumpToSlider: function(el) { + var t = this, + index = Math.min(el.index() * t.cols, t.blocksOn.length - t.cols); + + if (index === t.sliderActive) { + return; + } + + t.sliderActive = index; + + t.goToSlider(); + }, + + jumpDragToSlider: function(pos) { + var t = this, + jumpWidth, + offset, + condition, + index, + dragLeft = (pos > 0) ? true : false; + + if (t.options.scrollByPage) { + jumpWidth = t.cols * t.columnWidth; + offset = t.cols; + } else { + jumpWidth = t.columnWidth; + offset = 1; + } + + pos = Math.abs(pos); + index = Math.floor(pos / jumpWidth) * offset; + + if (pos % jumpWidth > 20) { + index += offset; + } + + if (dragLeft) { // drag to left + t.sliderActive = Math.min(t.sliderActive + index, t.blocksOn.length - t.cols); + } else { // drag to right + t.sliderActive = Math.max(0, t.sliderActive - index); + } + + t.goToSlider(); + }, + + isStartSlider: function() { + return this.sliderActive === 0; + }, + + isEndSlider: function() { + var t = this; + return (t.sliderActive + t.cols) > t.blocksOn.length - 1; + }, + + goToSlider: function() { + var t = this; + + // enable disable the nav + t.enableDisableNavSlider(); + + t.updateSliderPosition(); + }, + + startSliderAuto: function() { + var t = this; + + if (t.isDrag) { + t.stopSliderAuto(); + return; + } + + t.timeout = setTimeout(function() { + // go to next slide + t.nextSlider(); + + // start auto + t.startSliderAuto(); + + }, t.options.autoTimeout); + }, + + stopSliderAuto: function() { + clearTimeout(this.timeout); + }, + + enableDisableNavSlider: function() { + var t = this, + page, + method; + + if (!t.isRewindNav()) { + method = (t.isStartSlider()) ? 'addClass' : 'removeClass'; + t.navPrev[method]('cbp-nav-stop'); + + method = (t.isEndSlider()) ? 'addClass' : 'removeClass'; + t.navNext[method]('cbp-nav-stop'); + } + + if (t.options.showPagination) { + if (t.options.scrollByPage) { + page = Math.ceil(t.sliderActive / t.cols); + } else { + if (t.isEndSlider()) { + page = t.navPaginationItems.length - 1; + } else { + page = Math.floor(t.sliderActive / t.cols); + } + } + + // add class active on pagination's items + t.navPaginationItems.removeClass('cbp-nav-pagination-active') + .eq(page) + .addClass('cbp-nav-pagination-active'); + } + + if (t.customPagination) { + if (t.options.scrollByPage) { + page = Math.ceil(t.sliderActive / t.cols); + } else { + if (t.isEndSlider()) { + page = t.customPaginationItems.length - 1; + } else { + page = Math.floor(t.sliderActive / t.cols); + } + } + + // add class active on pagination's items + t.customPaginationItems.removeClass(t.customPaginationClass) + .eq(page) + .addClass(t.customPaginationClass); + } + }, + + /** + * If slider loop is enabled don't add classes to `next` and `prev` buttons + */ + isRewindNav: function() { + var t = this; + + if (!t.options.showNavigation) { + return true; + } + + if (t.blocksOn.length <= t.cols) { + return false; + } + + if (t.options.rewindNav) { + return true; + } + + return false; + }, + + sliderItemsLength: function() { + return this.blocksOn.length <= this.cols; + }, + + /** + * Arrange the items in a slider layout + */ + sliderLayout: function() { + var t = this; + + t.blocksOn.each(function(index, el) { + var data = $(el).data('cbp'); + + // update the values with the new ones + data.leftNew = t.columnWidth * index; + data.topNew = 0; + + t.sliderFreeSpaces.push({ + topStart: data.heightAndGap + }); + }); + + t.getFreeSpacesForSlider(); + + t.$ul.width(t.columnWidth * t.blocksOn.length - t.options.gapVertical); + }, + + getFreeSpacesForSlider: function() { + var t = this; + + t.freeSpaces = t.sliderFreeSpaces.slice(t.sliderActive, t.sliderActive + t.cols); + + t.freeSpaces.sort(function(space1, space2) { + if (space1.topStart > space2.topStart) { + return 1; + } else if (space1.topStart < space2.topStart) { + return -1; + } + }); + }, + + updateSliderPosition: function() { + var t = this, + value = -t.sliderActive * t.columnWidth; + + if (CubePortfolio.private.modernBrowser) { + t.$ul[0].style[CubePortfolio.private.transform] = 'translate3d(' + value + 'px, 0px, 0)'; + } else { + t.$ul[0].style.left = value + 'px'; + } + + t.getFreeSpacesForSlider(); + + t.resizeMainContainer(); + }, + + dragSlider: function() { + var t = this, + $document = $(document), + posInitial, + pos, + target, + ulPosition, + ulMaxWidth, + isAnimating = false, + events = {}, + isTouch = false, + touchStartEvent, + isHover = false; + + t.isDrag = false; + + if (('ontouchstart' in window) || + (navigator.maxTouchPoints > 0) || + (navigator.msMaxTouchPoints > 0)) { + + events = { + start: 'touchstart.cbp', + move: 'touchmove.cbp', + end: 'touchend.cbp' + }; + + isTouch = true; + } else { + events = { + start: 'mousedown.cbp', + move: 'mousemove.cbp', + end: 'mouseup.cbp' + }; + } + + function dragStart(e) { + if (t.sliderItemsLength()) { + return; + } + + if (!isTouch) { + e.preventDefault(); + } else { + touchStartEvent = e; + } + + if (t.options.auto) { + t.stopSliderAuto(); + } + + if (isAnimating) { + $(target).one('click.cbp', function() { + return false; + }); + return; + } + + target = $(e.target); + posInitial = pointerEventToXY(e).x; + pos = 0; + ulPosition = -t.sliderActive * t.columnWidth; + ulMaxWidth = t.columnWidth * (t.blocksOn.length - t.cols); + + $document.on(events.move, dragMove); + $document.on(events.end, dragEnd); + + t.$obj.addClass('cbp-mode-slider-dragStart'); + } + + function dragEnd(e) { + t.$obj.removeClass('cbp-mode-slider-dragStart'); + + // put the state to animate + isAnimating = true; + + if (pos !== 0) { + target.one('click.cbp', function(e) { + return false; + }); + + // wait a frame to be sure the .cbp-mode-slider-dragStart is removed from the dom + requestAnimationFrame(function() { + t.jumpDragToSlider(pos); + t.$ul.one(CubePortfolio.private.transitionend, afterDragEnd); + }); + } else { + afterDragEnd.call(t); + } + + $document.off(events.move); + $document.off(events.end); + } + + function dragMove(e) { + pos = posInitial - pointerEventToXY(e).x; + + if (pos > 8 || pos < -8) { + e.preventDefault(); + } + + t.isDrag = true; + + var value = ulPosition - pos; + + if (pos < 0 && pos < ulPosition) { // to right + value = (ulPosition - pos) / 5; + } else if (pos > 0 && (ulPosition - pos) < -ulMaxWidth) { // to left + value = -ulMaxWidth + (ulMaxWidth + ulPosition - pos) / 5; + } + + if (CubePortfolio.private.modernBrowser) { + t.$ul[0].style[CubePortfolio.private.transform] = 'translate3d(' + value + 'px, 0px, 0)'; + } else { + t.$ul[0].style.left = value + 'px'; + } + } + + function afterDragEnd() { + isAnimating = false; + t.isDrag = false; + + if (t.options.auto) { + if (t.mouseIsEntered) { + return; + } + + t.startSliderAuto(); + } + } + + function pointerEventToXY(e) { + if (e.originalEvent !== undefined && e.originalEvent.touches !== undefined) { + e = e.originalEvent.touches[0]; + } + + return { + x: e.pageX, + y: e.pageY + }; + } + + t.$ul.on(events.start, dragStart); + }, + + /** + * Reset the slider layout + */ + sliderLayoutReset: function() { + var t = this; + + t.freeSpaces = []; + + t.sliderFreeSpaces = []; + }, + }); +})(jQuery, window, document); +if (typeof Object.create !== 'function') { + Object.create = function(obj) { + function F() {} + F.prototype = obj; + return new F(); + }; +} + +// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ +// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating +// requestAnimationFrame polyfill by Erik M�ller. fixes from Paul Irish and Tino Zijdel +// MIT license +(function() { + var lastTime = 0; + var vendors = ['moz', 'webkit']; + + for (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) { + window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; + window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; + } + + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = function(callback, element) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function() { + callback(currTime + timeToCall); + }, + timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + } + + if (!window.cancelAnimationFrame) { + window.cancelAnimationFrame = function(id) { + clearTimeout(id); + }; + } +}()); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + + parent.registerEvent('computeBlocksFinish', function(expression) { + parent.blocksOn2On = parent.blocksOnInitial.filter(expression); + parent.blocksOn2Off = parent.blocksOnInitial.not(expression); + }); + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this; + + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + // [1] - blocks that are only moving with translate + t.blocksOn2On.addClass('cbp-item-on2on') + .each(function(index, el) { + var data = $(el).data('cbp'); + el.style[CubePortfolio.private.transform] = 'translate3d(' + (data.leftNew - data.left) + 'px, ' + (data.topNew - data.top) + 'px, 0)'; + }); + + // [2] - blocks than intialy are on but after applying the filter are off + t.blocksOn2Off.addClass('cbp-item-on2off'); + + // [3] - blocks that are off and it will be on + t.blocksOff2On = t.blocksOn + .filter('.cbp-item-off') + .removeClass('cbp-item-off') + .addClass('cbp-item-off2on') + .each(function(index, el) { + var data = $(el).data('cbp'); + + el.style.left = data.leftNew + 'px'; + el.style.top = data.topNew + 'px'; + }); + + if (t.blocksOn2Off.length) { + t.blocksOn2Off.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOff2On.length) { + t.blocksOff2On.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOn2On.length) { // this is used for sort feature to animate the items when sort API is triggered + t.blocksOn2On.last().one(CubePortfolio.private.transitionend, animationend); + } else { + animationend(); + } + + // resize main container height + t.resizeMainContainer(); + + function animationend() { + t.blocks.removeClass('cbp-item-on2off cbp-item-off2on cbp-item-on2on') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + + el.style[CubePortfolio.private.transform] = ''; + }); + + t.blocksOff.addClass('cbp-item-off'); + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationClassic = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['boxShadow', 'fadeOut', 'flipBottom', 'flipOut', 'quicksand', 'scaleSides', 'skew']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this, + ulClone = t.$ul[0].cloneNode(true); + + ulClone.setAttribute('class', 'cbp-wrapper-helper'); + t.wrapper[0].insertBefore(ulClone, t.$ul[0]); + + requestAnimationFrame(function() { + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + + if (t.options.animationType === 'sequentially') { + data.wrapper[0].style[CubePortfolio.private.animationDelay] = (index * 60) + 'ms'; + } + }); + + if (t.blocksOn.length) { + t.blocksOn.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOnInitial.length) { + t.blocksOnInitial.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else { + animationend(); + } + + // resize main container height + t.resizeMainContainer(); + }); + + function animationend() { + t.wrapper[0].removeChild(ulClone); + + if (t.options.animationType === 'sequentially') { + t.blocksOn.each(function(index, el) { + $(el).data('cbp').wrapper[0].style[CubePortfolio.private.animationDelay] = ''; + }); + } + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationClone = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['fadeOutTop', 'slideLeft', 'sequentially']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this, + ulCloned = t.$ul.clone(true, true); + + ulCloned[0].setAttribute('class', 'cbp-wrapper-helper'); + t.wrapper[0].insertBefore(ulCloned[0], t.$ul[0]); + + // hack for safari osx because it doesn't want to work if I set animationDelay + // on cbp-item-wrapper before I clone the t.$ul + var itemsCloned = ulCloned.find('.cbp-item').not('.cbp-item-off'); + + if (t.blocksAreSorted) { + t.sortBlocks(itemsCloned, 'top', 'left'); + } + + itemsCloned.children('.cbp-item-wrapper').each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = (index * 50) + 'ms'; + }); + + requestAnimationFrame(function() { + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + + data.wrapper[0].style[CubePortfolio.private.animationDelay] = (index * 50) + 'ms'; + }); + + var onLength = t.blocksOn.length, + offLength = itemsCloned.length; + + if (onLength === 0 && offLength === 0) { + animationend(); + } else if (onLength < offLength) { + itemsCloned.last().children('.cbp-item-wrapper').one(CubePortfolio.private.animationend, animationend); + } else { + t.blocksOn.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } + + // resize main container height + t.resizeMainContainer(); + }); + + function animationend() { + t.wrapper[0].removeChild(ulCloned[0]); + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.blocks.each(function(index, el) { + $(el).data('cbp').wrapper[0].style[CubePortfolio.private.animationDelay] = ''; + }); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationCloneDelay = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['3dflip', 'flipOutDelay', 'foldLeft', 'frontRow', 'rotateRoom', 'rotateSides', 'scaleDown', 'slideDelay', 'unfold']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this, + ulCloned = t.$ul[0].cloneNode(true); + + ulCloned.setAttribute('class', 'cbp-wrapper-helper'); + t.wrapper[0].insertBefore(ulCloned, t.$ul[0]); + + requestAnimationFrame(function() { + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + }); + + if (t.blocksOn.length) { + t.$ul.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOnInitial.length) { + $(ulCloned).one(CubePortfolio.private.animationend, animationend); + } else { + animationend(); + } + + // resize main container height + t.resizeMainContainer(); + }); + + function animationend() { + t.wrapper[0].removeChild(ulCloned); + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationWrapper = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['bounceBottom', 'bounceLeft', 'bounceTop', 'moveLeft']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + var options = parent.options; + + t.parent = parent; + + t.captionOn = options.caption; + + parent.registerEvent('onMediaQueries', function(opt) { + if (opt && opt.hasOwnProperty('caption')) { + if (t.captionOn !== opt.caption) { + t.destroy(); + t.captionOn = opt.caption; + t.init(); + } + } else if (t.captionOn !== options.caption) { + t.destroy(); + t.captionOn = options.caption; + t.init(); + } + }); + + t.init(); + } + + Plugin.prototype.init = function() { + var t = this; + + // if caption is active + if (t.captionOn == '') { + return; + } + + if (t.captionOn !== 'expand' && !CubePortfolio.private.modernBrowser) { + t.parent.options.caption = t.captionOn = 'minimal'; + } + + // .cbp-caption-active is used only for css + // so it will not generate a big css from sass if a caption is set + t.parent.$obj.addClass('cbp-caption-active cbp-caption-' + t.captionOn); + }; + + Plugin.prototype.destroy = function() { + this.parent.$obj.removeClass('cbp-caption-active cbp-caption-' + this.captionOn); + }; + + CubePortfolio.plugins.caption = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.registerEvent('initFinish', function() { + parent.$obj.on('click.cbp', '.cbp-caption-defaultWrap', function(e) { + e.preventDefault(); + + if (parent.isAnimating) { + return; + } + + parent.isAnimating = true; + + var defaultWrap = $(this), + activeWrap = defaultWrap.next(), + caption = defaultWrap.parent(), + endStyle = { + position: 'relative', + height: activeWrap.outerHeight(true) + }, + startStyle = { + position: 'relative', + height: 0 + }; + + parent.$obj.addClass('cbp-caption-expand-active'); + + // swap endStyle & startStyle + if (caption.hasClass('cbp-caption-expand-open')) { + var temp = startStyle; + startStyle = endStyle; + endStyle = temp; + caption.removeClass('cbp-caption-expand-open'); + } + + activeWrap.css(endStyle); + + parent.$obj.one('pluginResize.cbp', function() { + parent.isAnimating = false; + parent.$obj.removeClass('cbp-caption-expand-active'); + + if (endStyle.height === 0) { + caption.removeClass('cbp-caption-expand-open'); + activeWrap.attr('style', ''); + } + }); + + // reposition the blocks and set param to update width of grid + parent.layoutAndAdjustment(true); + + // set activeWrap to 0 so I can start animation in the next frame + activeWrap.css(startStyle); + + // delay animation + requestAnimationFrame(function() { + caption.addClass('cbp-caption-expand-open'); + + activeWrap.css(endStyle); + + // used by slider layoutMode + parent.triggerEvent('gridAdjust'); + + parent.triggerEvent('resizeGrid'); + }); + }); + }, true); + } + + Plugin.prototype.destroy = function() { + this.parent.$obj.find('.cbp-caption-defaultWrap').off('click.cbp').parent().removeClass('cbp-caption-expand-active'); + }; + + CubePortfolio.plugins.captionExpand = function(parent) { + if (parent.options.caption !== 'expand') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = (index * parent.options.displayTypeSpeed) + 'ms'; + }); + + parent.$obj.addClass('cbp-displayType-bottomToTop'); + + // get last element + parent.blocksOn.last().one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-bottomToTop'); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = ''; + }); + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displayBottomToTop = function(parent) { + if (!CubePortfolio.private.modernBrowser || parent.options.displayType !== 'bottomToTop' || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.obj.style[CubePortfolio.private.animationDuration] = parent.options.displayTypeSpeed + 'ms'; + + parent.$obj.addClass('cbp-displayType-fadeIn'); + + parent.$obj.one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-fadeIn'); + + parent.obj.style[CubePortfolio.private.animationDuration] = ''; + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displayFadeIn = function(parent) { + if (!CubePortfolio.private.modernBrowser || (parent.options.displayType !== 'lazyLoading' && parent.options.displayType !== 'fadeIn') || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.obj.style[CubePortfolio.private.animationDuration] = parent.options.displayTypeSpeed + 'ms'; + + parent.$obj.addClass('cbp-displayType-fadeInToTop'); + + parent.$obj.one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-fadeInToTop'); + + parent.obj.style[CubePortfolio.private.animationDuration] = ''; + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displayFadeInToTop = function(parent) { + if (!CubePortfolio.private.modernBrowser || parent.options.displayType !== 'fadeInToTop' || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = (index * parent.options.displayTypeSpeed) + 'ms'; + }); + + parent.$obj.addClass('cbp-displayType-sequentially'); + + // get last element + parent.blocksOn.last().one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-sequentially'); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = ''; + }); + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displaySequentially = function(parent) { + if (!CubePortfolio.private.modernBrowser || parent.options.displayType !== 'sequentially' || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.filters = $(parent.options.filters); + t.filterData = []; + + parent.registerEvent('afterPlugins', function(elems) { + // set default filter if it's present in url + t.filterFromUrl(); + t.registerFilter(); + }); + + // reset filters active class after the search is used + parent.registerEvent('resetFiltersVisual', function() { + var arr = parent.options.defaultFilter.split('|'); + + t.filters.each(function(index, el) { + var items = $(el).find('.cbp-filter-item'); + items.removeClass('cbp-filter-item-active'); + + $.each(arr, function(index, val) { + var item = items.filter('[data-filter="' + val + '"]'); + if (item.length) { + item.addClass('cbp-filter-item-active'); + arr.splice(index, 1); + return false; + } + }); + }); + + parent.defaultFilter = parent.options.defaultFilter; + }); + } + + Plugin.prototype.registerFilter = function() { + var t = this, + parent = t.parent, + arr = parent.defaultFilter.split('|'); + + t.wrap = t.filters.find('.cbp-l-filters-dropdownWrap') + .on({ + 'mouseover.cbp': function() { + $(this).addClass('cbp-l-filters-dropdownWrap-open'); + }, + 'mouseleave.cbp': function() { + $(this).removeClass('cbp-l-filters-dropdownWrap-open'); + } + }); + + t.filters.each(function(index, el) { + var filter = $(el), + filterName = '*', + items = filter.find('.cbp-filter-item'), + dropdown = {}; + + if (filter.hasClass('cbp-l-filters-dropdown')) { + dropdown.wrap = filter.find('.cbp-l-filters-dropdownWrap'); + dropdown.header = filter.find('.cbp-l-filters-dropdownHeader'); + dropdown.headerText = dropdown.header.text(); + } + + // activate counter for filters + parent.$obj.cubeportfolio('showCounter', items); + + $.each(arr, function(index, val) { + if (items.filter('[data-filter="' + val + '"]').length) { + filterName = val; + arr.splice(index, 1); + return false; + } + }); + + $.data(el, 'filterName', filterName); + t.filterData.push(el); + + t.filtersCallback(dropdown, items.filter('[data-filter="' + filterName + '"]'), items); + + var subFilterParent = el.getAttribute('data-filter-parent'); + if (subFilterParent) { + filter.removeClass('cbp-l-subfilters--active'); + + if (subFilterParent === t.parent.defaultFilter) { + filter.addClass('cbp-l-subfilters--active'); + } + } + + items.on('click.cbp', function() { + var item = $(this); + + if (item.hasClass('cbp-filter-item-active') || parent.isAnimating) { + return; + } + + t.filtersCallback(dropdown, item, items); + + $.data(el, 'filterName', item.data('filter')); + + var name = $.map(t.filterData, function(el, index) { + var $el = $(el); + + var isSubfilter = el.getAttribute('data-filter-parent'); + if (isSubfilter) { + if (isSubfilter === $.data(t.filterData[0], 'filterName')) { + $el.addClass('cbp-l-subfilters--active'); + } else { + $el.removeClass('cbp-l-subfilters--active'); + $.data(el, 'filterName', '*'); + $el.find('.cbp-filter-item').removeClass('cbp-filter-item-active'); + } + } + + var f = $.data(el, 'filterName'); + return (f !== "" && f !== '*') ? f : null; + }); + + if (name.length < 1) { + name = ['*']; + } + + var filterJoin = name.join('|'); + + if (parent.defaultFilter !== filterJoin) { + // filter the items + parent.$obj.cubeportfolio('filter', filterJoin); + } + }); + }); + }; + + Plugin.prototype.filtersCallback = function(dropdown, item, items) { + if (!$.isEmptyObject(dropdown)) { + dropdown.wrap.trigger('mouseleave.cbp'); + + if (dropdown.headerText) { + dropdown.headerText = ''; + } else { + dropdown.header.html(item.html()); + } + } + + items.removeClass('cbp-filter-item-active'); + item.addClass('cbp-filter-item-active'); + }; + + /** + * Check if filters are present in url + */ + Plugin.prototype.filterFromUrl = function() { + var match = /#cbpf=(.*?)([#\?&]|$)/gi.exec(location.href); + + if (match !== null) { + this.parent.defaultFilter = decodeURIComponent(match[1]); + } + }; + + Plugin.prototype.destroy = function() { + var t = this; + + t.filters.find('.cbp-filter-item').off('.cbp'); + t.wrap.off('.cbp'); + }; + + CubePortfolio.plugins.filters = function(parent) { + if (parent.options.filters === '') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); + +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var gapVerticalInitial = parent.options.gapVertical; + var gapHorizontalInitial = parent.options.gapHorizontal; + + parent.registerEvent('onMediaQueries', function(opt) { + parent.options.gapVertical = (opt && opt.hasOwnProperty('gapVertical'))? opt.gapVertical : gapVerticalInitial; + parent.options.gapHorizontal = (opt && opt.hasOwnProperty('gapHorizontal'))? opt.gapHorizontal : gapHorizontalInitial; + + parent.blocks.each(function(index, el) { + var data = $(el).data('cbp'); + + data.widthAndGap = data.width + parent.options.gapVertical; + data.heightAndGap = data.height + parent.options.gapHorizontal; + }); + }); + } + + CubePortfolio.plugins.changeGapOnMediaQueries = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = {}; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.inlineSlider); + + t.runInit(); + + parent.registerEvent('addItemsToDOM', function() { + t.runInit(); + }); + + } + + function InitSlider(slider) { + var t = this; + + if (slider.hasClass('cbp-slider-inline-ready')) { + return; + } + + slider.addClass('cbp-slider-inline-ready'); + + t.items = slider.find('.cbp-slider-wrapper').children('.cbp-slider-item'); + + t.active = t.items.filter('.cbp-slider-item--active').index(); + t.total = t.items.length - 1; + + t.updateLeft(); + + slider.find('.cbp-slider-next').on('click.cbp', function(e) { + e.preventDefault(); + + if (t.active < t.total) { + t.active++; + t.updateLeft(); + } else if (t.active === t.total) { + t.active = 0; + t.updateLeft(); + } + }); + + slider.find('.cbp-slider-prev').on('click.cbp', function(e) { + e.preventDefault(); + + if (t.active > 0) { + t.active--; + t.updateLeft(); + } else if (t.active === 0) { + t.active = t.total; + t.updateLeft(); + } + }); + }; + + InitSlider.prototype.updateLeft = function() { + var t = this; + + t.items.removeClass('cbp-slider-item--active'); + t.items.eq(t.active).addClass('cbp-slider-item--active'); + + t.items.each(function(index, el) { + el.style.left = (index - t.active) + '00%'; + }); + }; + + Plugin.prototype.runInit = function() { + var t = this; + + t.parent.$obj.find('.cbp-slider-inline').not('.cbp-slider-inline-ready').each(function(index, el) { + var slider = $(el); + var activeImage = slider.find('.cbp-slider-item--active').find('img')[0]; + + if (activeImage.hasAttribute('data-cbp-src')) { + t.parent.$obj.on('lazyLoad.cbp', function(e, image) { + if (image.src === activeImage.src) { + new InitSlider(slider); + } + }); + } else { + new InitSlider(slider); + } + }); + }; + + Plugin.prototype.destroy = function() { + var t = this; + + t.parent.$obj.find('.cbp-slider-next').off('click.cbp'); + t.parent.$obj.find('.cbp-slider-prev').off('click.cbp'); + + t.parent.$obj.off('lazyLoad.cbp'); + + t.parent.$obj.find('.cbp-slider-inline').each(function(index, el) { + var slider = $(el); + + slider.removeClass('cbp-slider-inline-ready'); + + var items = slider.find('.cbp-slider-item'); + items.removeClass('cbp-slider-item--active'); + + items.removeAttr('style'); + + items.eq(0).addClass('cbp-slider-item--active'); + }); + }; + + CubePortfolio.plugins.inlineSlider = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + loadingClass: 'cbp-lazyload', + threshold: 400, // loads images 150px before they're visible + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + var $window = $(window); + + // add scroll event to page for lazyLoad + CubePortfolio.private.lazyLoadScroll = new CubePortfolio.private.publicEvents('scroll.cbplazyLoad', 50); + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.lazyLoad); + + parent.registerEvent('initFinish', function() { + t.loadImages(); + + parent.registerEvent('resizeMainContainer', function() { + t.loadImages(); + }); + + parent.registerEvent('filterFinish', function() { + t.loadImages(); + }); + + CubePortfolio.private.lazyLoadScroll.initEvent({ + instance: t, + fn: t.loadImages + }); + }, true); + + } + + Plugin.prototype.loadImages = function() { + var t = this; + + var imgs = t.parent.$obj.find('img').filter('[data-cbp-src]'); + + if (imgs.length === 0) { + return; + } + + t.screenHeight = $window.height(); + + imgs.each(function(index, el) { + var parentNode = $(el.parentNode); + + if (!t.isElementInScreen(el)) { + parentNode.addClass(t.options.loadingClass); + return; + } + + var dataSrc = el.getAttribute('data-cbp-src'); + + if (t.parent.checkSrc($('').attr('src', dataSrc)) === null) { + t.removeLazyLoad(el, dataSrc); + parentNode.removeClass(t.options.loadingClass); + } else { + parentNode.addClass(t.options.loadingClass); + $('').on('load.cbp error.cbp', function() { + t.removeLazyLoad(el, dataSrc, parentNode); + }).attr('src', dataSrc); // for ie8 + } + }); + }; + + Plugin.prototype.removeLazyLoad = function(el, dataSrc, parentNode) { + var t = this; + + el.src = dataSrc; + el.removeAttribute('data-cbp-src'); + t.parent.removeAttrImage(el); + + // trigger public event + t.parent.$obj.trigger('lazyLoad.cbp', el); + + if (parentNode) { + if (CubePortfolio.private.modernBrowser) { + $(el).one(CubePortfolio.private.transitionend, function() { + parentNode.removeClass(t.options.loadingClass); + }); + } else { + parentNode.removeClass(t.options.loadingClass); + } + } + }; + + Plugin.prototype.isElementInScreen = function(el) { + var t = this; + + var bound = el.getBoundingClientRect(); + var bottom = bound.bottom + t.options.threshold; + var screenHeight = t.screenHeight + bottom - (bound.top - t.options.threshold); + + return bottom >= 0 && bottom <= screenHeight; + }; + + Plugin.prototype.destroy = function() { + CubePortfolio.private.lazyLoadScroll.destroyEvent(this); + }; + + CubePortfolio.plugins.lazyLoad = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + /** + * Define the wrapper for loadMore + * Values: strings that represent the elements in the document (DOM selector). + */ + element: '', + + /** + * How the loadMore functionality should behave. Load on click on the button or + * automatically when you scroll the page + * Values: - click + * - auto + */ + action: 'click', + /** + * How many items to load when you click on the loadMore button + * Values: positive integer + */ + loadItems: 3, + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.loadMore); + + t.loadMore = $(t.options.element).find('.cbp-l-loadMore-link'); + + // load click or auto action + if (t.loadMore.length === 0) { + return; + } + + t.loadItems = t.loadMore.find('.cbp-l-loadMore-loadItems'); + + if (t.loadItems.text() === '0') { + t.loadMore.addClass('cbp-l-loadMore-stop'); + } + + parent.registerEvent('filterStart', function(filter) { + t.populateItems().then(function() { + var itemsLen = t.items.filter(t.parent.filterConcat(filter)).length; + + if (itemsLen > 0) { + t.loadMore.removeClass('cbp-l-loadMore-stop'); + t.loadItems.html(itemsLen); + } else { + t.loadMore.addClass('cbp-l-loadMore-stop'); + } + }); + }); + + t[t.options.action](); + } + + Plugin.prototype.populateItems = function() { + var t = this; + + if (t.items) { + return $.Deferred().resolve(); + } + + t.items = $(); + + // perform ajax request + return $.ajax({ + url: t.loadMore.attr('href'), + type: 'GET', + dataType: 'HTML' + }).done(function(result) { + var resultFlat = $.map(result.split(/\r?\n/), function(item, index) { + return $.trim(item); + }).join(''); + + if (resultFlat.length === 0) { + return; + } + + $.each($.parseHTML(resultFlat), function(index, el) { + if ($(el).hasClass('cbp-item')) { + t.items = t.items.add(el); + } else { + $.each(el.children, function(index, el2) { + if ($(el2).hasClass('cbp-item')) { + t.items = t.items.add(el2); + } + }); + } + }); + }).fail(function() { + t.items = null; + t.loadMore.removeClass('cbp-l-loadMore-loading'); + }); + }; + + Plugin.prototype.populateInsertItems = function(callback) { + var t = this; + var insertItems = []; + var filter = t.parent.defaultFilter; + + var foundItem = 0; + t.items.each(function(index, el) { + if (foundItem === t.options.loadItems) { + return false; + } + + if (!filter || (filter === '*')) { + insertItems.push(el); + t.items[index] = null; + + foundItem++; + } else { + if ($(el).filter(t.parent.filterConcat(filter)).length) { + insertItems.push(el); + t.items[index] = null; + + foundItem++; + } + } + }); + + t.items = t.items.map(function(index, el) { + return el; + }); + + // stop the loadMore + if (insertItems.length === 0) { + t.loadMore.removeClass('cbp-l-loadMore-loading').addClass('cbp-l-loadMore-stop'); + return; + } + + t.parent.$obj.cubeportfolio('append', insertItems, callback); + } + + Plugin.prototype.click = function() { + var t = this; + + t.loadMore.on('click.cbp', function(e) { + e.preventDefault(); + + if (t.parent.isAnimating || t.loadMore.hasClass('cbp-l-loadMore-stop')) { + return; + } + + // set loading status + t.loadMore.addClass('cbp-l-loadMore-loading'); + + t.populateItems().then(function() { + t.populateInsertItems(appendCallback); + }); + }); + + function appendCallback() { + // remove class from t.loadMore + t.loadMore.removeClass('cbp-l-loadMore-loading'); + + var filter = t.parent.defaultFilter; + var itemsInLoadMore; + + if (!filter || (filter === '*')) { + itemsInLoadMore = t.items.length; + } else { + itemsInLoadMore = t.items.filter(t.parent.filterConcat(filter)).length; + } + + // check if we have more loadMore + if (itemsInLoadMore === 0) { + t.loadMore.addClass('cbp-l-loadMore-stop'); + } else { + t.loadItems.html(itemsInLoadMore); + } + } + }; + + Plugin.prototype.auto = function() { + var t = this; + var $window = $(window); + var isActive = false; + + // add scroll event to page for loadMore + CubePortfolio.private.loadMoreScroll = new CubePortfolio.private.publicEvents('scroll.loadMore', 100); + + t.parent.$obj.one('initComplete.cbp', function() { + // add events for scroll + t.loadMore + .addClass('cbp-l-loadMore-loading') + .on('click.cbp', function(e) { + e.preventDefault(); + }); + + CubePortfolio.private.loadMoreScroll.initEvent({ + instance: t, + fn: function() { + if (!t.parent.isAnimating) { + // get new items on scroll + getNewItems(); + } + } + }); + + // when the filter is completed + t.parent.$obj.on('filterComplete.cbp', function() { + getNewItems(); + }); + + // trigger method + getNewItems(); + }); + + function getNewItems() { + if (isActive || t.loadMore.hasClass('cbp-l-loadMore-stop')) { + return; + } + + // add a treshold + var topLoadMore = t.loadMore.offset().top - 200; + var topWindow = $window.scrollTop() + $window.height(); + + if (topLoadMore > topWindow) { + return; + } + + // this job is now busy + isActive = true; + + t.populateItems().then(function() { + t.populateInsertItems(appendCallback); + }).fail(function() { + // make the job inactive + isActive = false; + }); + } + + function appendCallback() { + var itemsInLoadMore; + var filter = t.parent.defaultFilter; + + if (!filter || (filter === '*')) { + itemsInLoadMore = t.items.length; + } else { + itemsInLoadMore = t.items.filter(t.parent.filterConcat(filter)).length; + } + + // check if we have more loadMore + if (itemsInLoadMore === 0) { + t.loadMore.removeClass('cbp-l-loadMore-loading').addClass('cbp-l-loadMore-stop'); + } else { + t.loadItems.html(itemsInLoadMore); + + $window.trigger('scroll.loadMore'); + } + + // make the job inactive + isActive = false; + + // remove events + if (t.items.length === 0) { + CubePortfolio.private.loadMoreScroll.destroyEvent(t); + t.parent.$obj.off('filterComplete.cbp'); + } + } + }; + + Plugin.prototype.destroy = function() { + this.loadMore.off('.cbp'); + + if (CubePortfolio.private.loadMoreScroll) { + CubePortfolio.private.loadMoreScroll.destroyEvent(this); + } + }; + + CubePortfolio.plugins.loadMore = function(parent) { + var plugins = parent.options.plugins; + + // backward compatibility + if (parent.options.loadMore) { + if (!plugins.loadMore) { + plugins.loadMore = {}; + } + + plugins.loadMore.element = parent.options.loadMore; + } + + // backward compatibility + if (parent.options.loadMoreAction) { + if (!plugins.loadMore) { + plugins.loadMore = {}; + } + + plugins.loadMore.action = parent.options.loadMoreAction; + } + + // rename options + if (plugins.loadMore && plugins.loadMore.selector !== undefined) { + plugins.loadMore.element = plugins.loadMore.selector; + delete plugins.loadMore.selector; + } + + if (!plugins.loadMore || !plugins.loadMore.element) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + var options = { + delay: 0, + }; + + var popup = { + /** + * init function for popup + * @param cubeportfolio = cubeportfolio instance + * @param type = 'lightbox' or 'singlePage' + */ + init: function(cubeportfolio, type) { + var t = this, + currentBlock; + + // remember cubeportfolio instance + t.cubeportfolio = cubeportfolio; + + // remember if this instance is for lightbox or for singlePage + t.type = type; + + // remember if the popup is open or not + t.isOpen = false; + + t.options = t.cubeportfolio.options; + + if (type === 'lightbox') { + t.cubeportfolio.registerEvent('resizeWindow', function() { + t.resizeImage(); + }); + + t.localOptions = $.extend({}, options, t.cubeportfolio.options.plugins.lightbox); + } + + if (type === 'singlePageInline') { + t.height = 0; + + // create markup, css and add events for SinglePageInline + t.createMarkupSinglePageInline(); + + t.cubeportfolio.registerEvent('resizeGrid', function() { + if (t.isOpen) { + // @todo must add support for this features in the future + t.close(); // workaround + } + }); + + if (t.options.singlePageInlineDeeplinking) { + t.url = location.href; + + if (t.url.slice(-1) === '#') { + t.url = t.url.slice(0, -1); + } + + var links = t.url.split('#cbpi='); + var url = links.shift(); // remove first item + + $.each(links, function(index, link) { + t.cubeportfolio.blocksOn.each(function(index1, el) { + var singlePageInline = $(el).find(t.options.singlePageInlineDelegate + '[href="' + link + '"]'); + + if (singlePageInline.length) { + currentBlock = singlePageInline; + return false; + } + }); + + if (currentBlock) { + return false; + } + }); + + if (currentBlock) { + t.cubeportfolio.registerEvent('initFinish', function() { + t.openSinglePageInline(t.cubeportfolio.blocksOn, currentBlock[0]); + }, true); + } + } + + t.localOptions = $.extend({}, options, t.cubeportfolio.options.plugins.singlePageInline); + + return; + } + + // create markup, css and add events for lightbox and singlePage + t.createMarkup(); + + if (type === 'singlePage') { + t.cubeportfolio.registerEvent('resizeWindow', function() { + if (t.options.singlePageStickyNavigation) { + + var width = t.contentWrap[0].clientWidth; + + if (width > 0) { + t.navigationWrap.width(width); + + // set navigation width='window width' to center the divs + t.navigation.width(width); + } + + } + }); + + if (t.options.singlePageDeeplinking) { + t.url = location.href; + + if (t.url.slice(-1) === '#') { + t.url = t.url.slice(0, -1); + } + + var links = t.url.split('#cbp='); + var url = links.shift(); // remove first item + + $.each(links, function(index, link) { + t.cubeportfolio.blocksOn.each(function(index1, el) { + var singlePage = $(el).find(t.options.singlePageDelegate + '[href="' + link + '"]'); + + if (singlePage.length) { + currentBlock = singlePage; + return false; + } + }); + + if (currentBlock) { + return false; + } + }); + + if (currentBlock) { + t.url = url; + + var self = currentBlock, + gallery = self.attr('data-cbp-singlePage'), + blocks = []; + + if (gallery) { + blocks = self.closest($('.cbp-item')).find('[data-cbp-singlePage="' + gallery + '"]'); + } else { + t.cubeportfolio.blocksOn.each(function(index, el) { + var item = $(el); + + if (item.not('.cbp-item-off')) { + item.find(t.options.singlePageDelegate).each(function(index2, el2) { + if (!$(el2).attr('data-cbp-singlePage')) { + blocks.push(el2); + } + }); + } + }); + } + + t.openSinglePage(blocks, currentBlock[0]); + } else if (links.length) { // @todo - hack to load items from loadMore + var fakeLink = document.createElement('a'); + fakeLink.setAttribute('href', links[0]); + t.openSinglePage([fakeLink], fakeLink); + } + } + + t.localOptions = $.extend({}, options, t.cubeportfolio.options.plugins.singlePage); + } + }, + + /** + * Create markup, css and add events + */ + createMarkup: function() { + var t = this, + animationCls = ''; + + if (t.type === 'singlePage') { + if (t.options.singlePageAnimation !== 'left') { + animationCls = ' cbp-popup-singlePage-' + t.options.singlePageAnimation; + } + } + + // wrap element + t.wrap = $('
    ', { + 'class': 'cbp-popup-wrap cbp-popup-' + t.type + animationCls, + 'data-action': (t.type === 'lightbox') ? 'close' : '' + }).on('click.cbp', function(e) { + if (t.stopEvents) { + return; + } + + var action = $(e.target).attr('data-action'); + + if (t[action]) { + t[action](); + e.preventDefault(); + } + }); + + if (t.type === 'singlePage') { + t.contentWrap = $('
    ', { + 'class': 'cbp-popup-content-wrap' + }).appendTo(t.wrap); + + if (CubePortfolio.private.browser === 'ios') { + t.contentWrap.css('overflow', 'auto'); + } + + // content element + t.content = $('
    ', { + 'class': 'cbp-popup-content' + }).appendTo(t.contentWrap); + } else { + // content element + t.content = $('
    ', { + 'class': 'cbp-popup-content' + }).appendTo(t.wrap); + } + + // append loading div + $('
    ', { + 'class': 'cbp-popup-loadingBox' + }).appendTo(t.wrap); + + // add background only for ie8 + if (CubePortfolio.private.browser === 'ie8') { + t.bg = $('
    ', { + 'class': 'cbp-popup-ie8bg', + 'data-action': (t.type === 'lightbox') ? 'close' : '' + }).appendTo(t.wrap); + } + + if (t.type === 'singlePage') { + if (t.options.singlePageStickyNavigation === false) { + // create navigation wrap + t.navigationWrap = $('
    ', { + 'class': 'cbp-popup-navigation-wrap' + }).appendTo(t.contentWrap); + } else { + // create navigation wrap + t.navigationWrap = $('
    ', { + 'class': 'cbp-popup-navigation-wrap' + }).appendTo(t.wrap); + } + } else { + // create navigation wrap + t.navigationWrap = $('
    ', { + 'class': 'cbp-popup-navigation-wrap' + }).appendTo(t.wrap); + } + + // create navigation block + t.navigation = $('
    ', { + 'class': 'cbp-popup-navigation' + }).appendTo(t.navigationWrap); + + // close + t.closeButton = $('
    ', { + 'class': 'cbp-popup-close', + 'title': 'Close (Esc arrow key)', + 'data-action': 'close' + }).appendTo(t.navigation); + + // next + t.nextButton = $('
    ', { + 'class': 'cbp-popup-next', + 'title': 'Next (Right arrow key)', + 'data-action': 'next' + }).appendTo(t.navigation); + + + // prev + t.prevButton = $('
    ', { + 'class': 'cbp-popup-prev', + 'title': 'Previous (Left arrow key)', + 'data-action': 'prev' + }).appendTo(t.navigation); + + + if (t.type === 'singlePage') { + if (t.options.singlePageCounter) { + // counter for singlePage + t.counter = $(t.options.singlePageCounter).appendTo(t.navigation); + t.counter.text(''); + } + + t.content.on('click.cbp', t.options.singlePageDelegate, function(e) { + e.preventDefault(); + + var i, + len = t.dataArray.length, + href = this.getAttribute('href'), + indexFound; + + for (i = 0; i < len; i++) { + if (t.dataArray[i].url === href) { + indexFound = i; + break; + } + } + + if (indexFound === undefined) { + var fakeLink = document.createElement('a'); + fakeLink.setAttribute('href', href); + + t.dataArray = [{ + url: href, + element: fakeLink + }]; + + // total numbers of elements + t.counterTotal = 1; + + t.nextButton.hide(); + t.prevButton.hide(); + + t.singlePageJumpTo(0); + } else { + t.singlePageJumpTo(indexFound - t.current); + } + + }); + + // Test via a getter in the options object to see if the passive property is accessed + // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md + var supportsOpts = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function() { + supportsOpts = { passive: true }; + } + }); + window.addEventListener('testPassive', null, opts); + window.removeEventListener('testPassive', null, opts); + } catch (e) {} + + // if there are some events than overrides the default wheel behaviour don't go to them + // https://developer.mozilla.org/en-US/docs/Web/Events/wheel + var wheel = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel'; + t.contentWrap[0].addEventListener(wheel, function(e) { + e.stopImmediatePropagation(); + }, supportsOpts); + } + + $(document).on('keydown.cbp', function(e) { + // if is not open => return + if (!t.isOpen) { + return; + } + + // if all events are stopped => return + if (t.stopEvents) { + return; + } + + if (lightboxIsOpen) { + e.stopImmediatePropagation(); + } + + if (e.keyCode === 37) { // prev key + t.prev(); + } else if (e.keyCode === 39) { // next key + t.next(); + } else if (e.keyCode === 27) { //esc key + t.close(); + } + }); + }, + + createMarkupSinglePageInline: function() { + var t = this; + + // wrap element + t.wrap = $('
    ', { + 'class': 'cbp-popup-singlePageInline' + }).on('click.cbp', function(e) { + if (t.stopEvents) { + return; + } + + var action = $(e.target).attr('data-action'); + + if (action && t[action]) { + t[action](); + e.preventDefault(); + } + }); + + // content element + t.content = $('
    ', { + 'class': 'cbp-popup-content' + }).appendTo(t.wrap); + + // append loading div + // $('
    ', { + // 'class': 'cbp-popup-loadingBox' + // }).appendTo(t.wrap); + + // create navigation block + t.navigation = $('
    ', { + 'class': 'cbp-popup-navigation' + }).appendTo(t.wrap); + + // close + t.closeButton = $('
    ', { + 'class': 'cbp-popup-close', + 'title': 'Close (Esc arrow key)', + 'data-action': 'close' + }).appendTo(t.navigation); + }, + + destroy: function() { + var t = this, + body = $('body'); + + // remove off key down + $(document).off('keydown.cbp'); + + // external lightbox and singlePageInline + body.off('click.cbp', t.options.lightboxDelegate); + body.off('click.cbp', t.options.singlePageDelegate); + + t.content.off('click.cbp', t.options.singlePageDelegate); + + t.cubeportfolio.$obj.off('click.cbp', t.options.singlePageInlineDelegate); + t.cubeportfolio.$obj.off('click.cbp', t.options.lightboxDelegate); + t.cubeportfolio.$obj.off('click.cbp', t.options.singlePageDelegate); + + t.cubeportfolio.$obj.removeClass('cbp-popup-isOpening'); + + t.cubeportfolio.$obj.find('.cbp-item').removeClass('cbp-singlePageInline-active'); + + t.wrap.remove(); + }, + + openLightbox: function(blocks, currentBlock) { + var t = this, + i = 0, + currentBlockHref, tempHref = [], + element; + + if (t.isOpen) { + return; + } + + lightboxIsOpen = true; + + // remember that the lightbox is open now + t.isOpen = true; + + // remember to stop all events after the lightbox has been shown + t.stopEvents = false; + + // array with elements + t.dataArray = []; + + // reset current + t.current = null; + + currentBlockHref = currentBlock.getAttribute('href'); + if (currentBlockHref === null) { + throw new Error('HEI! Your clicked element doesn\'t have a href attribute.'); + } + + $.each(blocks, function(index, item) { + var href = item.getAttribute('href'), + src = href, // default if element is image + type = 'isImage', // default if element is image + videoLink; + + if ($.inArray(href, tempHref) === -1) { + if (currentBlockHref === href) { + t.current = i; + } else if (!t.options.lightboxGallery) { + return; + } + + if (/youtu\.?be/i.test(href)) { + var indexVideo = href.lastIndexOf('v=') + 2; + + if (indexVideo === 1) { + indexVideo = href.lastIndexOf('/') + 1; + } + + videoLink = href.substring(indexVideo); + + if (!(/autoplay=/i.test(videoLink))) { + videoLink += '&autoplay=1'; + } + + videoLink = videoLink.replace(/\?|&/, '?'); + + // create new href + src = '//www.youtube.com/embed/' + videoLink; + + type = 'isYoutube'; + } else if (/vimeo\.com/i.test(href)) { + videoLink = href.substring(href.lastIndexOf('/') + 1); + + if (!(/autoplay=/i.test(videoLink))) { + videoLink += '&autoplay=1'; + } + + videoLink = videoLink.replace(/\?|&/, '?'); + + // create new href + src = '//player.vimeo.com/video/' + videoLink; + + type = 'isVimeo'; + } else if (/www\.ted\.com/i.test(href)) { + // create new href + src = 'http://embed.ted.com/talks/' + href.substring(href.lastIndexOf('/') + 1) + '.html'; + + type = 'isTed'; + } else if (/soundcloud\.com/i.test(href)) { + // create new href + src = href; + + type = 'isSoundCloud'; + } else if (/(\.mp4)|(\.ogg)|(\.ogv)|(\.webm)/i.test(href)) { + if (href.indexOf('|') !== -1) { + // create new href + src = href.split('|'); + } else { + // create new href + src = href.split('%7C'); + } + + type = 'isSelfHostedVideo'; + } else if (/\.mp3$/i.test(href)) { + src = href; + type = 'isSelfHostedAudio'; + } + + t.dataArray.push({ + src: src, + title: item.getAttribute(t.options.lightboxTitleSrc), + type: type + }); + + i++; + } + + tempHref.push(href); + }); + + // total numbers of elements + t.counterTotal = t.dataArray.length; + + if (t.counterTotal === 1) { + t.nextButton.hide(); + t.prevButton.hide(); + t.dataActionImg = ''; + } else { + t.nextButton.show(); + t.prevButton.show(); + t.dataActionImg = 'data-action="next"'; + } + + // append to body + t.wrap.appendTo(document.body); + + t.scrollTop = $(window).scrollTop(); + + t.originalStyle = $('html').attr('style'); + + $('html').css({ + overflow: 'hidden', + marginRight: window.innerWidth - $(document).width() + }); + + t.wrap.addClass('cbp-popup-transitionend'); + + // show the wrapper (lightbox box) + t.wrap.show(); + + // get the current element + element = t.dataArray[t.current]; + + // call function if current element is image or video (iframe) + t[element.type](element); + }, + + openSinglePage: function(blocks, currentBlock) { + var t = this, + i = 0, + currentBlockHref, tempHref = []; + + if (t.isOpen) { + return; + } + + // check singlePageInline and close it + if (t.cubeportfolio.singlePageInline && t.cubeportfolio.singlePageInline.isOpen) { + t.cubeportfolio.singlePageInline.close(); + } + + // remember that the lightbox is open now + t.isOpen = true; + + // remember to stop all events after the popup has been showing + t.stopEvents = false; + + // array with elements + t.dataArray = []; + + // reset current + t.current = null; + + currentBlockHref = currentBlock.getAttribute('href'); + if (currentBlockHref === null) { + throw new Error('HEI! Your clicked element doesn\'t have a href attribute.'); + } + + $.each(blocks, function(index, item) { + var href = item.getAttribute('href'); + + if ($.inArray(href, tempHref) === -1) { + if (currentBlockHref === href) { + t.current = i; + } + + t.dataArray.push({ + url: href, + element: item + }); + + i++; + } + + tempHref.push(href); + }); + + // total numbers of elements + t.counterTotal = t.dataArray.length; + + if (t.counterTotal === 1) { + t.nextButton.hide(); + t.prevButton.hide(); + } else { + t.nextButton.show(); + t.prevButton.show(); + } + + // append to body + t.wrap.appendTo(document.body); + + t.scrollTop = $(window).scrollTop(); + + // go to top of the page (reset scroll) + t.contentWrap.scrollTop(0); + + // show the wrapper + t.wrap.show(); + + // finish the open animation + t.finishOpen = 2; + + // if transitionend is not fulfilled + t.navigationMobile = $(); + t.wrap.one(CubePortfolio.private.transitionend, function() { + $('html').css({ + overflow: 'hidden', + marginRight: window.innerWidth - $(document).width() + }); + + t.wrap.addClass('cbp-popup-transitionend'); + + // make the navigation sticky + if (t.options.singlePageStickyNavigation) { + + t.wrap.addClass('cbp-popup-singlePage-sticky'); + t.navigationWrap.width(t.contentWrap[0].clientWidth); + } + + t.finishOpen--; + + if (t.finishOpen <= 0) { + t.updateSinglePageIsOpen.call(t); + } + }); + + if (CubePortfolio.private.browser === 'ie8' || CubePortfolio.private.browser === 'ie9') { + $('html').css({ + overflow: 'hidden', + marginRight: window.innerWidth - $(document).width() + }); + + t.wrap.addClass('cbp-popup-transitionend'); + + // make the navigation sticky + if (t.options.singlePageStickyNavigation) { + t.navigationWrap.width(t.contentWrap[0].clientWidth); + + setTimeout(function() { + t.wrap.addClass('cbp-popup-singlePage-sticky'); + }, 1000); + } + + t.finishOpen--; + } + + t.wrap.addClass('cbp-popup-loading'); + + // force reflow and then add class + t.wrap.offset(); + t.wrap.addClass('cbp-popup-singlePage-open'); + + // change link + if (t.options.singlePageDeeplinking) { + // ignore old #cbp from href + t.url = t.url.split('#cbp=')[0]; + location.href = t.url + '#cbp=' + t.dataArray[t.current].url; + } + + // run callback function + if ($.isFunction(t.options.singlePageCallback)) { + t.options.singlePageCallback.call(t, t.dataArray[t.current].url, t.dataArray[t.current].element); + } + + // ios bug to prevent + // http://stackoverflow.com/questions/9280258/prevent-body-scrolling-but-allow-overlay-scrolling + if (CubePortfolio.private.browser === 'ios') { + var element = t.contentWrap[0]; + + element.addEventListener('touchstart', function() { + var top = element.scrollTop, + totalScroll = element.scrollHeight, + currentScroll = top + element.offsetHeight; + + if (top === 0) { + element.scrollTop = 1; + } else if (currentScroll === totalScroll) { + element.scrollTop = top - 1; + } + }); + } + }, + + openSinglePageInline: function(blocks, currentBlock, fromOpen) { + var t = this, + start = 0, + currentBlockHref, + tempCurrent, + cbpitem, + parentElement; + + fromOpen = fromOpen || false; + + t.fromOpen = fromOpen; + + t.storeBlocks = blocks; + t.storeCurrentBlock = currentBlock; + + // check singlePageInline and close it + if (t.isOpen) { + tempCurrent = t.cubeportfolio.blocksOn.index($(currentBlock).closest('.cbp-item')); + + if ((t.dataArray[t.current].url !== currentBlock.getAttribute('href')) || (t.current !== tempCurrent)) { + t.cubeportfolio.singlePageInline.close('open', { + blocks: blocks, + currentBlock: currentBlock, + fromOpen: true + }); + } else { + t.close(); + } + + return; + } + + // remember that the lightbox is open now + t.isOpen = true; + + // remember to stop all events after the popup has been showing + t.stopEvents = false; + + // array with elements + t.dataArray = []; + + // reset current + t.current = null; + + currentBlockHref = currentBlock.getAttribute('href'); + if (currentBlockHref === null) { + throw new Error('HEI! Your clicked element doesn\'t have a href attribute.'); + } + + cbpitem = $(currentBlock).closest('.cbp-item')[0]; + + blocks.each(function(index, el) { + if (cbpitem === el) { + t.current = index; + } + }); + + t.dataArray[t.current] = { + url: currentBlockHref, + element: currentBlock + }; + + parentElement = $(t.dataArray[t.current].element).parents('.cbp-item').addClass('cbp-singlePageInline-active'); + + // total numbers of elements + t.counterTotal = blocks.length; + + t.wrap.insertBefore(t.cubeportfolio.wrapper); + + t.topDifference = 0; + + if (t.options.singlePageInlinePosition === 'top') { + t.blocksToMove = blocks; + t.top = 0; + } else if (t.options.singlePageInlinePosition === 'bottom') { + t.blocksToMove = $(); + t.top = t.cubeportfolio.height; + } else if (t.options.singlePageInlinePosition === 'above') { + var top = $(blocks[t.current]).data('cbp').top; + t.top = top; + + // set the top value + blocks.each(function(index, block) { + var data = $(block).data('cbp'); + var topBlock = data.top; + var bottomBlock = topBlock + data.heightAndGap; + + if (topBlock >= top) { + return; + } + + if (bottomBlock > t.top) { + t.top = bottomBlock; + t.topDifference = t.top - top; + } + }); + + // set moving blocks + t.blocksToMove = $(); + blocks.each(function(index, block) { + if (index === t.current) { + t.blocksToMove = t.blocksToMove.add(block); + return; + } + + var data = $(block).data('cbp'); + var bottomBlock = data.top + data.heightAndGap; + + if (bottomBlock > t.top) { + t.blocksToMove = t.blocksToMove.add(block); + } + }); + + t.top = Math.max(t.top - t.options.gapHorizontal, 0); + } else { // below + var currentEl = $(blocks[t.current]); + var data = currentEl.data('cbp'); + var end = data.top + data.heightAndGap; + + t.top = end; + + t.blocksToMove = $(); + + blocks.each(function(index, block) { + var data = $(block).data('cbp'); + var topEl = data.top; + var endEl = topEl + data.height; + + if (endEl <= end) { + return; + } + + if (topEl >= (end - data.height / 2)) { + t.blocksToMove = t.blocksToMove.add(block); + return; + } + + if ((endEl > end) && (topEl < end)) { + if (endEl > t.top) { + t.top = endEl; + } + + if ((endEl - end) > t.topDifference) { + t.topDifference = endEl - end; + } + } + }); + } + + t.wrap[0].style.height = t.wrap.outerHeight(true) + 'px'; + + // debouncer for inline content + t.deferredInline = $.Deferred(); + + if (t.options.singlePageInlineInFocus) { + t.scrollTop = $(window).scrollTop(); + + var goToScroll = t.cubeportfolio.$obj.offset().top + t.top - 100; + + if (t.scrollTop !== goToScroll) { + $('html,body').animate({ + scrollTop: goToScroll + }, 350) + .promise() + .then(function() { + t.resizeSinglePageInline(); + t.deferredInline.resolve(); + }); + } else { + t.resizeSinglePageInline(); + t.deferredInline.resolve(); + } + } else { + t.resizeSinglePageInline(); + t.deferredInline.resolve(); + } + + t.cubeportfolio.$obj.addClass('cbp-popup-singlePageInline-open'); + + t.wrap.css({ + top: t.top + }); + + // change link + if (t.options.singlePageInlineDeeplinking) { + // ignore old #cbpi from href + t.url = t.url.split('#cbpi=')[0]; + location.href = t.url + '#cbpi=' + t.dataArray[t.current].url; + } + + // register callback function + if ($.isFunction(t.options.singlePageInlineCallback)) { + t.options.singlePageInlineCallback.call(t, t.dataArray[t.current].url, t.dataArray[t.current].element); + } + }, + + resizeSinglePageInline: function() { + var t = this; + + t.height = ((t.top === 0) || (t.top === t.cubeportfolio.height)) ? t.wrap.outerHeight(true) : t.wrap.outerHeight(true) - t.options.gapHorizontal; + + t.height += t.topDifference; + + t.storeBlocks.each(function(index, el) { + if (CubePortfolio.private.modernBrowser) { + el.style[CubePortfolio.private.transform] = ''; + } else { + el.style.marginTop = ''; + } + }); + + t.blocksToMove.each(function(index, el) { + if (CubePortfolio.private.modernBrowser) { + el.style[CubePortfolio.private.transform] = 'translate3d(0px, ' + t.height + 'px, 0)'; + } else { + el.style.marginTop = t.height + 'px'; + } + }); + + t.cubeportfolio.obj.style.height = t.cubeportfolio.height + t.height + 'px'; + }, + + revertResizeSinglePageInline: function() { + var t = this; + + // reset deferred object + t.deferredInline = $.Deferred(); + + t.storeBlocks.each(function(index, el) { + if (CubePortfolio.private.modernBrowser) { + el.style[CubePortfolio.private.transform] = ''; + } else { + el.style.marginTop = ''; + } + }); + + t.cubeportfolio.obj.style.height = t.cubeportfolio.height + 'px'; + }, + + appendScriptsToWrap: function(scripts) { + var t = this, + index = 0, + loadScripts = function(item) { + var script = document.createElement('script'), + src = item.src; + + script.type = 'text/javascript'; + + if (script.readyState) { // ie + script.onreadystatechange = function() { + if (script.readyState == 'loaded' || script.readyState == 'complete') { + script.onreadystatechange = null; + index++; + if (scripts[index]) { + loadScripts(scripts[index]); + } + } + }; + } else { + script.onload = function() { + index++; + if (scripts[index]) { + loadScripts(scripts[index]); + } + }; + } + + if (src) { + script.src = src; + } else { + script.text = item.text; + } + + t.content[0].appendChild(script); + + }; + + loadScripts(scripts[0]); + }, + + updateSinglePage: function(html, scripts, isWrap) { + var t = this, + counterMarkup, + animationFinish; + + t.content.addClass('cbp-popup-content').removeClass('cbp-popup-content-basic'); + + if (isWrap === false) { + t.content.removeClass('cbp-popup-content').addClass('cbp-popup-content-basic'); + } + + // update counter navigation + if (t.counter) { + counterMarkup = $(t.getCounterMarkup(t.options.singlePageCounter, t.current + 1, t.counterTotal)); + t.counter.text(counterMarkup.text()); + } + + t.fromAJAX = { + html: html, + scripts: scripts + }; + + t.finishOpen--; + + if (t.finishOpen <= 0) { + t.updateSinglePageIsOpen.call(t); + } + }, + + updateSinglePageIsOpen: function() { + var t = this, + selectorSlider; + + t.wrap.addClass('cbp-popup-ready'); + t.wrap.removeClass('cbp-popup-loading'); + + t.content.html(t.fromAJAX.html); + + if (t.fromAJAX.scripts) { + t.appendScriptsToWrap(t.fromAJAX.scripts); + } + + t.fromAJAX = {}; + + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageStart.cbp'); + + // instantiate slider if exists + selectorSlider = t.content.find('.cbp-slider'); + if (selectorSlider.length) { + selectorSlider.find('.cbp-slider-item').addClass('cbp-item'); + t.slider = selectorSlider.cubeportfolio({ + layoutMode: 'slider', + mediaQueries: [{ + width: 1, + cols: 1 + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + coverRatio: '', // wp version only + }); + } else { + t.slider = null; + } + + // check for social share icons + t.checkForSocialLinks(t.content); + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageComplete.cbp'); + }, + + checkForSocialLinks: function(content) { + var t = this; + + t.createFacebookShare(content.find('.cbp-social-fb')); + t.createTwitterShare(content.find('.cbp-social-twitter')); + t.createGooglePlusShare(content.find('.cbp-social-googleplus')); + t.createPinterestShare(content.find('.cbp-social-pinterest')); + }, + + createFacebookShare: function(item) { + if (item.length && !item.attr('onclick')) { + item.attr('onclick', "window.open('http://www.facebook.com/sharer.php?u=" + encodeURIComponent(window.location.href) + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;"); + } + }, + + createTwitterShare: function(item) { + if (item.length && !item.attr('onclick')) { + item.attr('onclick', "window.open('https://twitter.com/intent/tweet?source=" + encodeURIComponent(window.location.href) + "&text=" + encodeURIComponent(document.title) + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=300'); return false;"); + } + }, + + createGooglePlusShare: function(item) { + if (item.length && !item.attr('onclick')) { + item.attr('onclick', "window.open('https://plus.google.com/share?url=" + encodeURIComponent(window.location.href) + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=450'); return false;"); + } + }, + + createPinterestShare: function(item) { + if (item.length && !item.attr('onclick')) { + var media = ''; + var firstImg = this.content.find('img')[0]; + + if (firstImg) { + media = firstImg.src; + } + + item.attr('onclick', "window.open('http://pinterest.com/pin/create/button/?url=" + encodeURIComponent(window.location.href) + "&media=" + media + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;"); + } + }, + + updateSinglePageInline: function(html, scripts) { + var t = this; + + t.content.html(html); + + if (scripts) { + t.appendScriptsToWrap(scripts); + } + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageInlineStart.cbp'); + + if (t.localOptions.delay !== 0) { + setTimeout(function() { + t.singlePageInlineIsOpen.call(t); + }, t.localOptions.delay) + } else { + t.singlePageInlineIsOpen.call(t); + } + }, + + singlePageInlineIsOpen: function() { + var t = this; + + function finishLoading() { + t.wrap.addClass('cbp-popup-singlePageInline-ready'); + t.wrap[0].style.height = ''; + + t.resizeSinglePageInline(); + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageInlineComplete.cbp'); + } + + // wait to load all images + t.cubeportfolio.loadImages(t.wrap, function() { + // instantiate slider if exists + var selectorSlider = t.content.find('.cbp-slider'); + + if (selectorSlider.length) { + selectorSlider.find('.cbp-slider-item').addClass('cbp-item'); + + selectorSlider.one('initComplete.cbp', function() { + t.deferredInline.done(finishLoading); + }); + + selectorSlider.on('pluginResize.cbp', function() { + t.deferredInline.done(finishLoading); + }); + + t.slider = selectorSlider.cubeportfolio({ + layoutMode: 'slider', + displayType: 'default', + mediaQueries: [{ + width: 1, + cols: 1 + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + coverRatio: '', // wp version only + }); + } else { + t.slider = null; + t.deferredInline.done(finishLoading); + } + + // check for social share icons + t.checkForSocialLinks(t.content); + }); + }, + + isImage: function(el) { + var t = this, + img = new Image(); + + t.tooggleLoading(true); + + t.cubeportfolio.loadImages($('
    '), function() { + t.updateImagesMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + + t.tooggleLoading(false); + }); + }, + + isVimeo: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isYoutube: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isTed: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isSoundCloud: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isSelfHostedVideo: function(el) { + var t = this; + t.updateSelfHostedVideo(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isSelfHostedAudio: function(el) { + var t = this; + t.updateSelfHostedAudio(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + getCounterMarkup: function(markup, current, total) { + if (!markup.length) { + return ''; + } + + var mapObj = { + current: current, + total: total + }; + + return markup.replace(/\{\{current}}|\{\{total}}/gi, function(matched) { + return mapObj[matched.slice(2, -2)]; + }); + }, + + updateSelfHostedVideo: function(src, title, counter) { + var t = this, + i; + + t.wrap.addClass('cbp-popup-lightbox-isIframe'); + + var markup = '
    ' + + '' + + '
    ' + + ((title) ? '
    ' + title + '
    ' : '') + + counter + + '
    ' + + '
    '; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.preloadNearbyImages(); + }, + + updateSelfHostedAudio: function(src, title, counter) { + var t = this, + i; + + t.wrap.addClass('cbp-popup-lightbox-isIframe'); + + var markup = '
    ' + + '
    ' + + '
    ' + + ((title) ? '
    ' + title + '
    ' : '') + + counter + + '
    ' + + '
    '; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.preloadNearbyImages(); + }, + + updateVideoMarkup: function(src, title, counter) { + var t = this; + t.wrap.addClass('cbp-popup-lightbox-isIframe'); + + var markup = '
    ' + + '' + + '
    ' + + ((title) ? '
    ' + title + '
    ' : '') + + counter + + '
    ' + + '
    '; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.preloadNearbyImages(); + }, + + updateImagesMarkup: function(src, title, counter) { + var t = this; + + t.wrap.removeClass('cbp-popup-lightbox-isIframe'); + + var markup = '
    ' + + '' + + '
    ' + + ((title) ? '
    ' + title + '
    ' : '') + + counter + + '
    ' + + '
    '; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.resizeImage(); + t.preloadNearbyImages(); + }, + + next: function() { + var t = this; + t[t.type + 'JumpTo'](1); + }, + + prev: function() { + var t = this; + t[t.type + 'JumpTo'](-1); + }, + + lightboxJumpTo: function(index) { + var t = this, + el; + + t.current = t.getIndex(t.current + index); + + // get the current element + el = t.dataArray[t.current]; + + // call function if current element is image or video (iframe) + t[el.type](el); + }, + + singlePageJumpTo: function(index) { + var t = this; + + t.current = t.getIndex(t.current + index); + + // register singlePageCallback function + if ($.isFunction(t.options.singlePageCallback)) { + t.resetWrap(); + + // go to top of the page (reset scroll) + t.contentWrap.scrollTop(0); + + t.wrap.addClass('cbp-popup-loading'); + + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + t.options.singlePageCallback.call(t, t.dataArray[t.current].url, t.dataArray[t.current].element); + + if (t.options.singlePageDeeplinking) { + location.href = t.url + '#cbp=' + t.dataArray[t.current].url; + } + } + }, + + resetWrap: function() { + var t = this; + + if (t.type === 'singlePage' && t.options.singlePageDeeplinking) { + location.href = t.url + '#'; + } + + if (t.type === 'singlePageInline' && t.options.singlePageInlineDeeplinking) { + location.href = t.url + '#'; + } + }, + + getIndex: function(index) { + var t = this; + + // go to interval [0, (+ or -)this.counterTotal.length - 1] + index = index % t.counterTotal; + + // if index is less then 0 then go to interval (0, this.counterTotal - 1] + if (index < 0) { + index = t.counterTotal + index; + } + + return index; + }, + + close: function(method, data) { + var t = this; + + function finishClose() { + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + t.cubeportfolio.$obj.removeClass('cbp-popup-singlePageInline-open cbp-popup-singlePageInline-close'); + + // now the popup is closed + t.isOpen = false; + + if (method === 'promise') { + if ($.isFunction(data.callback)) { + data.callback.call(t.cubeportfolio); + } + } + } + + function checkFocusInline() { + // add this to prevent the page to jump after the resetWrap + var scrollTop = $(window).scrollTop(); + t.resetWrap(); + $(window).scrollTop(scrollTop); + + if (t.options.singlePageInlineInFocus && method !== 'promise') { + $('html,body').animate({ + scrollTop: t.scrollTop + }, 350) + .promise() + .then(function() { + finishClose(); + }); + } else { + finishClose(); + } + } + + if (t.type === 'singlePageInline') { + if (method === 'open') { + t.wrap.removeClass('cbp-popup-singlePageInline-ready'); + $(t.dataArray[t.current].element).closest('.cbp-item').removeClass('cbp-singlePageInline-active'); + + // now the popup is closed + t.isOpen = false; + + t.openSinglePageInline(data.blocks, data.currentBlock, data.fromOpen); + } else { + t.height = 0; + + t.revertResizeSinglePageInline(); + t.wrap.removeClass('cbp-popup-singlePageInline-ready'); + t.cubeportfolio.$obj.addClass('cbp-popup-singlePageInline-close'); + t.cubeportfolio.$obj.find('.cbp-item').removeClass('cbp-singlePageInline-active'); + + if (CubePortfolio.private.modernBrowser) { + t.wrap.one(CubePortfolio.private.transitionend, function() { + checkFocusInline(); + }); + } else { + checkFocusInline(); + } + } + + } else if (t.type === 'singlePage') { + t.resetWrap(); + + t.stopScroll = true; + + t.wrap.removeClass('cbp-popup-ready cbp-popup-transitionend cbp-popup-singlePage-open cbp-popup-singlePage-sticky'); + + $('html').css({ + overflow: '', + marginRight: '', + position: '' + }); + + $(window).scrollTop(t.scrollTop); + + if (CubePortfolio.private.browser === 'ie8' || CubePortfolio.private.browser === 'ie9') { + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + // now the popup is closed + t.isOpen = false; + } + + t.wrap.one(CubePortfolio.private.transitionend, function() { + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + // now the popup is closed + t.isOpen = false; + }); + } else { + lightboxIsOpen = false; + + if (t.originalStyle) { + $('html').attr('style', t.originalStyle); + } else { + $('html').css({ + overflow: '', + marginRight: '' + }); + } + + $(window).scrollTop(t.scrollTop); + + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + // now the popup is closed + t.isOpen = false; + } + }, + + tooggleLoading: function(state) { + var t = this; + + t.stopEvents = state; + t.wrap[(state) ? 'addClass' : 'removeClass']('cbp-popup-loading'); + }, + + resizeImage: function() { + // if lightbox is not open go out + if (!this.isOpen) { + return; + } + + var img = this.content.find('img'); + var figure = img.parent(); + var height = $(window).height() - (figure.outerHeight(true) - figure.height()) - this.content.find('.cbp-popup-lightbox-bottom').outerHeight(true); + + img.css('max-height', height + 'px'); + }, + + preloadNearbyImages: function() { + var t = this; + var arr = [ + t.getIndex(t.current + 1), + t.getIndex(t.current + 2), + t.getIndex(t.current + 3), + t.getIndex(t.current - 1), + t.getIndex(t.current - 2), + t.getIndex(t.current - 3), + ]; + + for (var i = arr.length - 1; i >= 0; i--) { + if (t.dataArray[arr[i]].type === 'isImage') { + t.cubeportfolio.checkSrc(t.dataArray[arr[i]]); + } + } + } + }; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + // if lightboxShowCounter is false, put lightboxCounter to '' + if (parent.options.lightboxShowCounter === false) { + parent.options.lightboxCounter = ''; + } + + // if singlePageShowCounter is false, put singlePageCounter to '' + if (parent.options.singlePageShowCounter === false) { + parent.options.singlePageCounter = ''; + } + + // @todo - schedule this in future + parent.registerEvent('initStartRead', function() { + t.run(); + }, true); + } + + // little hack for keydown issue when lightbox & singlePage is open + var lightboxIsOpen = false; + var lightboxInit = false; + var singlePageInit = false; + + Plugin.prototype.run = function() { + var t = this, + p = t.parent, + body = $(document.body); + + // default value for lightbox + p.lightbox = null; + + // LIGHTBOX + if (p.options.lightboxDelegate && !lightboxInit) { + // init only one time @todo + lightboxInit = true; + + p.lightbox = Object.create(popup); + p.lightbox.init(p, 'lightbox'); + + body.on('click.cbp', p.options.lightboxDelegate, function(e) { + e.preventDefault(); + + var self = $(this), + gallery = self.attr('data-cbp-lightbox'), + scope = t.detectScope(self), + cbp = scope.data('cubeportfolio'), + blocks = []; + + // is inside a cbp + if (cbp) { + cbp.blocksOn.each(function(index, el) { + var item = $(el); + + if (item.not('.cbp-item-off')) { + item.find(p.options.lightboxDelegate).each(function(index2, el2) { + if (gallery) { + if ($(el2).attr('data-cbp-lightbox') === gallery) { + blocks.push(el2); + } + } else { + blocks.push(el2); + } + }); + } + }); + } else { + if (gallery) { + blocks = scope.find(p.options.lightboxDelegate + '[data-cbp-lightbox=' + gallery + ']'); + } else { + blocks = scope.find(p.options.lightboxDelegate); + } + } + + p.lightbox.openLightbox(blocks, self[0]); + }); + } + + // default value for singlePage + p.singlePage = null; + + // SINGLEPAGE + if (p.options.singlePageDelegate && !singlePageInit) { + // init only one time @todo + singlePageInit = true; + + p.singlePage = Object.create(popup); + p.singlePage.init(p, 'singlePage'); + + body.on('click.cbp', p.options.singlePageDelegate, function(e) { + e.preventDefault(); + + var self = $(this), + gallery = self.attr('data-cbp-singlePage'), + scope = t.detectScope(self), + cbp = scope.data('cubeportfolio'), + blocks = []; + + // is inside a cbp + if (cbp) { + cbp.blocksOn.each(function(index, el) { + var item = $(el); + + if (item.not('.cbp-item-off')) { + item.find(p.options.singlePageDelegate).each(function(index2, el2) { + if (gallery) { + if ($(el2).attr('data-cbp-singlePage') === gallery) { + blocks.push(el2); + } + } else { + blocks.push(el2); + } + }); + } + }); + } else { + if (gallery) { + blocks = scope.find(p.options.singlePageDelegate + '[data-cbp-singlePage=' + gallery + ']'); + } else { + blocks = scope.find(p.options.singlePageDelegate); + } + } + + p.singlePage.openSinglePage(blocks, self[0]); + }); + } + + // default value for singlePageInline + p.singlePageInline = null; + + // SINGLEPAGEINLINE + if (p.options.singlePageInlineDelegate) { + p.singlePageInline = Object.create(popup); + + p.singlePageInline.init(p, 'singlePageInline'); + + p.$obj.on('click.cbp', p.options.singlePageInlineDelegate, function(e) { + e.preventDefault(); + + var oldDate = $.data(this, 'cbp-locked'), + newDate = $.data(this, 'cbp-locked', +new Date()); + + if (!oldDate || ((newDate - oldDate) > 300)) { + p.singlePageInline.openSinglePageInline(p.blocksOn, this); + } + }); + } + }; + + Plugin.prototype.detectScope = function(item) { + var singlePageInline, + singlePage, + cbp; + + singlePageInline = item.closest('.cbp-popup-singlePageInline'); + if (singlePageInline.length) { + cbp = item.closest('.cbp', singlePageInline[0]); + return (cbp.length) ? cbp : singlePageInline; + } + + singlePage = item.closest('.cbp-popup-singlePage'); + if (singlePage.length) { + cbp = item.closest('.cbp', singlePage[0]); + return (cbp.length) ? cbp : singlePage; + } + + cbp = item.closest('.cbp'); + return (cbp.length) ? cbp : $(document.body); + + }; + + Plugin.prototype.destroy = function() { + var p = this.parent; + + $(document.body).off('click.cbp'); + + // @todo - remove these from here + lightboxInit = false; + singlePageInit = false; + + // destroy lightbox if enabled + if (p.lightbox) { + p.lightbox.destroy(); + } + + // destroy singlePage if enabled + if (p.singlePage) { + p.singlePage.destroy(); + } + + // destroy singlePage inline if enabled + if (p.singlePageInline) { + p.singlePageInline.destroy(); + } + }; + + CubePortfolio.plugins.popUp = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.searchInput = $(parent.options.search); + + t.searchInput.each(function(index, el) { + var selector = el.getAttribute('data-search'); + + if (!selector) { + selector = '*'; + } + + $.data(el, 'searchData', { + value: el.value, + el: selector + }); + }); + + var timeout = null; + + t.searchInput.on('keyup.cbp paste.cbp', function(e) { + e.preventDefault(); + + var el = $(this); + + clearTimeout(timeout); + timeout = setTimeout(function() { + t.runEvent.call(t, el); + }, 350); + }); + + t.searchNothing = t.searchInput.siblings('.cbp-search-nothing').detach(); + t.searchNothingHeight = null; + t.searchNothingHTML = t.searchNothing.html(); + + t.searchInput.siblings('.cbp-search-icon').on('click.cbp', function(e) { + e.preventDefault(); + + t.runEvent.call(t, $(this).prev().val('')); + }); + } + + Plugin.prototype.runEvent = function(el) { + var t = this, + value = el.val(), + searchData = el.data('searchData'), + reg = new RegExp(value, 'i'); + + if (searchData.value === value || t.parent.isAnimating) { + return; + } + + searchData.value = value; + + if (value.length > 0) { + el.attr('value', value); + } else { + el.removeAttr('value'); + } + + t.parent.$obj.cubeportfolio('filter', function(blocks) { + var blocksNew = blocks.filter(function(index, block) { + var text = $(block).find(searchData.el).text(); + + if (text.search(reg) > -1) { + return true; + } + }); + + if (blocksNew.length === 0 && t.searchNothing.length) { + var innerText = t.searchNothingHTML.replace('{{query}}', value); + t.searchNothing.html(innerText); + + t.searchNothing.appendTo(t.parent.$obj); + + if (t.searchNothingHeight === null) { + t.searchNothingHeight = t.searchNothing.outerHeight(true); + } + + t.parent.registerEvent('resizeMainContainer', function() { + t.parent.height = t.parent.height + t.searchNothingHeight; + t.parent.obj.style.height = t.parent.height + 'px'; + }, true); + } else { + t.searchNothing.detach(); + } + + // reset filters active class after the search is used + t.parent.triggerEvent('resetFiltersVisual'); + + return blocksNew; + }, function() { + el.trigger('keyup.cbp'); + }); + }; + + Plugin.prototype.destroy = function() { + var t = this; + + t.searchInput.off('.cbp'); + t.searchInput.next('.cbp-search-icon').off('.cbp'); + + t.searchInput.each(function(index, el) { + $.removeData(el); + }); + }; + + CubePortfolio.plugins.search = function(parent) { + if (parent.options.search === '') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + /** + * Pagination custom selector + * Values: strings that represent the elements in the document (DOM selector). + */ + pagination: '', + paginationClass: 'cbp-pagination-active', + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.slider); + + var customPagination = $(t.options.pagination); + + if (customPagination.length > 0) { + t.parent.customPagination = customPagination; + t.parent.customPaginationItems = customPagination.children(); + t.parent.customPaginationClass = t.options.paginationClass; + + t.parent.customPaginationItems.on('click.cbp', function(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + e.stopPropagation(); + + if (t.parent.sliderStopEvents) { + return; + } + + t.parent.jumpToSlider($(this)); + }); + } + + t.parent.registerEvent('gridAdjust', function() { + t.sliderMarkup.call(t.parent); + + t.parent.registerEvent('gridAdjust', function() { + t.updateSlider.call(t.parent); + }); + }, true); + } + + /** + * Create mark-up for slider layout + */ + Plugin.prototype.sliderMarkup = function() { + var t = this; + + t.sliderStopEvents = false; + + t.sliderActive = 0; + + t.$obj.one('initComplete.cbp', function() { + t.$obj.addClass('cbp-mode-slider'); + }); + + t.nav = $('
    ', { + 'class': 'cbp-nav' + }); + + t.nav.on('click.cbp', '[data-slider-action]', function(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + e.stopPropagation(); + + if (t.sliderStopEvents) { + return; + } + + var el = $(this), + action = el.attr('data-slider-action'); + + if (t[action + 'Slider']) { + t[action + 'Slider'](el); + } + }); + + if (t.options.showNavigation) { + t.controls = $('
    ', { + 'class': 'cbp-nav-controls' + }); + + t.navPrev = $('
    ', { + 'class': 'cbp-nav-prev', + 'data-slider-action': 'prev' + }).appendTo(t.controls); + + t.navNext = $('
    ', { + 'class': 'cbp-nav-next', + 'data-slider-action': 'next' + }).appendTo(t.controls); + + t.controls.appendTo(t.nav); + } + + if (t.options.showPagination) { + t.navPagination = $('
    ', { + 'class': 'cbp-nav-pagination' + }).appendTo(t.nav); + } + + if (t.controls || t.navPagination) { + t.nav.appendTo(t.$obj); + } + + t.updateSliderPagination(); + + if (t.options.auto) { + if (t.options.autoPauseOnHover) { + t.mouseIsEntered = false; + t.$obj.on('mouseenter.cbp', function(e) { + t.mouseIsEntered = true; + t.stopSliderAuto(); + }).on('mouseleave.cbp', function(e) { + t.mouseIsEntered = false; + t.startSliderAuto(); + }); + } + + t.startSliderAuto(); + } + + if (t.options.drag && CubePortfolio.private.modernBrowser) { + t.dragSlider(); + } + }; + + Plugin.prototype.updateSlider = function() { + var t = this; + + t.updateSliderPosition(); + + t.updateSliderPagination(); + }; + + Plugin.prototype.destroy = function() { + var t = this; + + if (t.parent.customPaginationItems) { + t.parent.customPaginationItems.off('.cbp'); + } + + if (t.parent.controls || t.parent.navPagination) { + t.parent.nav.off('.cbp'); + t.parent.nav.remove(); + } + }; + + CubePortfolio.plugins.slider = function(parent) { + if (parent.options.layoutMode !== 'slider') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + /** + * Define the wrapper for sort + * Values: strings that represent the elements in the document (DOM selector). + */ + element: '', + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.sort); + + t.element = $(t.options.element); + + if (t.element.length === 0) { + return; + } + + t.sort = ''; + t.sortBy = 'string:asc'; + + t.element.on('click.cbp', '.cbp-sort-item', function(event) { + event.preventDefault(); + + t.target = event.target; + + if ($(t.target).hasClass('cbp-l-dropdown-item--active') || parent.isAnimating) { + return; + } + + t.processSort(); + parent.$obj.cubeportfolio('filter', parent.defaultFilter); + }); + + // reset filters active class after the search is used + parent.registerEvent('triggerSort', function() { + if (t.target) { + t.processSort(); + parent.$obj.cubeportfolio('filter', parent.defaultFilter); + } + }); + + t.dropdownWrap = t.element.find('.cbp-l-dropdown-wrap') + .on({ + 'mouseover.cbp': function() { + $(this).addClass('cbp-l-dropdown-wrap--open'); + }, + 'mouseleave.cbp': function() { + $(this).removeClass('cbp-l-dropdown-wrap--open'); + } + }); + + t.dropdownHeader = t.element.find('.cbp-l-dropdown-header'); + } + + Plugin.prototype.processSort = function() { + var t = this; + var parent = t.parent; + + var target = t.target; + var hasSort = target.hasAttribute('data-sort'); + var hasSortBy = target.hasAttribute('data-sortBy'); + + if (hasSort && hasSortBy) { + t.sort = target.getAttribute('data-sort'); + t.sortBy = target.getAttribute('data-sortBy'); + } else if (hasSort) { + t.sort = target.getAttribute('data-sort'); + } else if (hasSortBy) { + t.sortBy = target.getAttribute('data-sortBy'); + } else { + return; + } + + var sortByArr = t.sortBy.split(':'); + var sortByType = 'string'; + var sortByDirection = 1; + + if (sortByArr[0] === 'int') { + sortByType = 'int'; + } else if (sortByArr[0] === 'float') { + sortByType = 'float'; + } + + if (sortByArr[1] === 'desc') { + sortByDirection = -1; + } + + if (t.sort) { + var obj = []; + + parent.blocks.each(function(index, el) { + var block = $(el); + + var sortText = block.find(t.sort).text(); + + if (sortByType === 'int') { + sortText = parseInt(sortText, 10); + } + + if (sortByType === 'float') { + sortText = parseFloat(sortText, 10); + } + + obj.push({ + sortText: sortText, + data: block.data('cbp'), + }); + }); + + obj.sort(function(obj1, obj2) { + var sortText1 = obj1.sortText; + var sortText2 = obj2.sortText; + + if (sortByType === 'string') { + sortText1 = sortText1.toUpperCase(); // ignore upper and lowercase + sortText2 = sortText2.toUpperCase(); // ignore upper and lowercase + } + + if (sortText1 < sortText2) { + return -sortByDirection; + } else if (sortText1 > sortText2) { + return sortByDirection; + } + + // names must be equal + return 0; + }); + + $.each(obj, function(index, val) { + val.data.index = index; + }); + } else { + var sortInvers = []; + + if (sortByDirection === -1) { + parent.blocks.each(function(index, el) { + sortInvers.push($(el).data('cbp').indexInitial); + }); + + // put sortInvers in inverse order + sortInvers.sort(function(a, b) { + return b - a; + }); + } + + parent.blocks.each(function(index, el) { + var data = $(el).data('cbp'); + + if (sortByDirection === -1) { + data.index = sortInvers[data.indexInitial]; + } else { + data.index = data.indexInitial; + } + }); + } + + parent.sortBlocks(parent.blocks, 'index'); + + t.dropdownWrap.trigger('mouseleave.cbp'); + + var target = $(t.target); + var targetParent = $(t.target).parent(); + + if (targetParent.hasClass('cbp-l-dropdown-list')) { + t.dropdownHeader.html(target.html()); + target.addClass('cbp-l-dropdown-item--active').siblings('.cbp-l-dropdown-item').removeClass('cbp-l-dropdown-item--active'); + } else if (targetParent.hasClass('cbp-l-direction')) { + var index = target.index(); + + if (index === 0) { + targetParent.addClass('cbp-l-direction--second').removeClass('cbp-l-direction--first'); + } else { + targetParent.addClass('cbp-l-direction--first').removeClass('cbp-l-direction--second'); + } + } + + }; + + Plugin.prototype.destroy = function() { + this.element.off('click.cbp'); + }; + + CubePortfolio.plugins.sort = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); diff --git a/cubeportfolio/js/jquery.cubeportfolio.min.js b/cubeportfolio/js/jquery.cubeportfolio.min.js new file mode 100644 index 0000000..cad562f --- /dev/null +++ b/cubeportfolio/js/jquery.cubeportfolio.min.js @@ -0,0 +1,12 @@ +/* +* Cube Portfolio - Responsive jQuery Grid Plugin +* +* version: 4.4.0 (1 August, 2018) +* require: jQuery v1.8+ +* +* Copyright 2013-2018, Mihai Buricea (http://scriptpie.com/cubeportfolio/live-preview/) +* Licensed under CodeCanyon License (http://codecanyon.net/licenses) +* +*/ + +!function(s,t,a,r){"use strict";function l(t,e,n){var i=this;if(s.data(t,"cubeportfolio"))throw new Error("cubeportfolio is already initialized. Destroy it before initialize again!");i.obj=t,i.$obj=s(t),s.data(i.obj,"cubeportfolio",i),e&&e.sortToPreventGaps!==r&&(e.sortByDimension=e.sortToPreventGaps,delete e.sortToPreventGaps),i.options=s.extend({},s.fn.cubeportfolio.options,e,i.$obj.data("cbp-options")),i.isAnimating=!0,i.defaultFilter=i.options.defaultFilter,i.registeredEvents=[],i.queue=[],i.addedWrapp=!1,s.isFunction(n)&&i.registerEvent("initFinish",n,!0);var o=i.$obj.children();i.$obj.addClass("cbp"),(0===o.length||o.first().hasClass("cbp-item"))&&(i.wrapInner(i.obj,"cbp-wrapper"),i.addedWrapp=!0),i.$ul=i.$obj.children().addClass("cbp-wrapper"),i.wrapInner(i.obj,"cbp-wrapper-outer"),i.wrapper=i.$obj.children(".cbp-wrapper-outer"),i.blocks=i.$ul.children(".cbp-item"),i.blocksOn=i.blocks,i.wrapInner(i.blocks,"cbp-item-wrapper"),i.plugins={},s.each(l.plugins,function(t,e){var n=e(i);n&&(i.plugins[t]=n)}),i.triggerEvent("afterPlugins"),i.removeAttrAfterStoreData=s.Deferred(),i.loadImages(i.$obj,i.display)}s.extend(l.prototype,{storeData:function(t,a){var r=this;a=a||0,t.each(function(t,e){var n=s(e),i=n.width(),o=n.height();n.data("cbp",{index:a+t,indexInitial:a+t,wrapper:n.children(".cbp-item-wrapper"),widthInitial:i,heightInitial:o,width:i,height:o,widthAndGap:i+r.options.gapVertical,heightAndGap:o+r.options.gapHorizontal,left:null,leftNew:null,top:null,topNew:null,pack:!1})}),this.removeAttrAfterStoreData.resolve()},wrapInner:function(t,e){var n,i,o;if(e=e||"",!(t.length&&t.length<1))for(t.length===r&&(t=[t]),i=t.length-1;0<=i;i--){for(n=t[i],(o=a.createElement("div")).setAttribute("class",e);n.childNodes.length;)o.appendChild(n.childNodes[0]);n.appendChild(o)}},removeAttrImage:function(t){this.removeAttrAfterStoreData.then(function(){t.removeAttribute("width"),t.removeAttribute("height"),t.removeAttribute("style")})},loadImages:function(e,o){var a=this;requestAnimationFrame(function(){var t=e.find("img").map(function(t,e){if(e.hasAttribute("width")&&e.hasAttribute("height")){if(e.style.width=e.getAttribute("width")+"px",e.style.height=e.getAttribute("height")+"px",e.hasAttribute("data-cbp-src"))return null;if(null===a.checkSrc(e))a.removeAttrImage(e);else{var n=s("");n.on("load.cbp error.cbp",function(){s(this).off("load.cbp error.cbp"),a.removeAttrImage(e)}),e.srcset?(n.attr("sizes",e.sizes||"100vw"),n.attr("srcset",e.srcset)):n.attr("src",e.src)}return null}return a.checkSrc(e)}),i=t.length;0!==i?s.each(t,function(t,e){var n=s("");n.on("load.cbp error.cbp",function(){s(this).off("load.cbp error.cbp"),0===--i&&o.call(a)}),e.srcset?(n.attr("sizes",e.sizes),n.attr("srcset",e.srcset)):n.attr("src",e.src)}):o.call(a)})},checkSrc:function(t){var e=t.srcset,n=t.src;if(""===n)return null;var i=s("");e?(i.attr("sizes",t.sizes||"100vw"),i.attr("srcset",e)):i.attr("src",n);var o=i[0];return o.complete&&o.naturalWidth!==r&&0!==o.naturalWidth?null:o},display:function(){var t=this;t.width=t.$obj.outerWidth(),t.triggerEvent("initStartRead"),t.triggerEvent("initStartWrite"),0=e.width)return n=e,!1}),n||(n=t.options.mediaQueries[t.options.mediaQueries.length-1]),t.triggerEvent("onMediaQueries",n.options),n.cols},columnWidthTruncate:function(t){return Math.floor(t)},resizeMainContainer:function(){var o,t=this,e=Math.max(t.freeSpaces.slice(-1)[0].topStart-t.options.gapHorizontal,0);"alignCenter"===t.options.gridAdjustment&&(o=0,t.blocksOn.each(function(t,e){var n=s(e).data("cbp"),i=n.left+n.width;oe.topStart?1:t.topStarte.leftStart?1:t.leftStart=n.leftEnd&&e.topStart<=n.topStart&&e.topEnd>=n.topEnd?(n=null,!1):void 0}),n})},uniqueFreeSpaces:function(){var e=[];l.each(this.freeSpaces,function(t,n){l.each(e,function(t,e){if(e.leftStart===n.leftStart&&e.leftEnd===n.leftEnd&&e.topStart===n.topStart&&e.topEnd===n.topEnd)return n=null,!1}),null!==n&&e.push(n)}),this.freeSpaces=e},addHeightToBlocks:function(){var o=this;l.each(o.freeSpaces,function(t,i){o.blocksOn.each(function(t,e){var n=l(e).data("cbp");!0===n.pack&&(o.intersectSpaces(i,n)&&-1===i.topStart-n.topNew-n.heightAndGap&&(e.style.height=n.height-1+"px"))})})},sortBlocks:function(t,o,a,r){a=void 0===a?"leftNew":a,r=void 0===r?1:-1,t.sort(function(t,e){var n=l(t).data("cbp"),i=l(e).data("cbp");return n[o]>i[o]?r:n[o]i[a]?r:n[a]i.index?r:n.index{{current}} of {{total}}
    ',singlePageDelegate:".cbp-singlePage",singlePageDeeplinking:!0,singlePageStickyNavigation:!0,singlePageCounter:'
    {{current}} of {{total}}
    ',singlePageAnimation:"left",singlePageCallback:null,singlePageInlineDelegate:".cbp-singlePageInline",singlePageInlineDeeplinking:!1,singlePageInlinePosition:"top",singlePageInlineInFocus:!0,singlePageInlineCallback:null,plugins:{}},function(a,o,r,t){"use strict";var s=a.fn.cubeportfolio.constructor,l=a(o);s["private"]={publicEvents:function(e,n,i){var o=this;o.events=[],o.initEvent=function(t){0===o.events.length&&o.scrollEvent(),o.events.push(t)},o.destroyEvent=function(n){o.events=a.map(o.events,function(t,e){if(t.instance!==n)return t}),0===o.events.length&&l.off(e)},o.scrollEvent=function(){var t;l.on(e,function(){clearTimeout(t),t=setTimeout(function(){a.isFunction(i)&&i.call(o)||a.each(o.events,function(t,e){e.fn.call(e.instance)})},n)})}},checkInstance:function(t){var e=a.data(this,"cubeportfolio");if(!e)throw new Error("cubeportfolio is not initialized. Initialize it before calling "+t+" method!");return e.triggerEvent("publicMethod"),e},browserInfo:function(){var t,e,n=s["private"],i=navigator.appVersion;-1!==i.indexOf("MSIE 8.")?n.browser="ie8":-1!==i.indexOf("MSIE 9.")?n.browser="ie9":-1!==i.indexOf("MSIE 10.")?n.browser="ie10":o.ActiveXObject||"ActiveXObject"in o?n.browser="ie11":/android/gi.test(i)?n.browser="android":/iphone|ipad|ipod/gi.test(i)?n.browser="ios":/chrome/gi.test(i)?n.browser="chrome":n.browser="",void 0!==typeof n.styleSupport("perspective")&&(t=n.styleSupport("transition"),n.transitionend={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[t],e=n.styleSupport("animation"),n.animationend={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"}[e],n.animationDuration={WebkitAnimation:"webkitAnimationDuration",animation:"animationDuration"}[e],n.animationDelay={WebkitAnimation:"webkitAnimationDelay",animation:"animationDelay"}[e],n.transform=n.styleSupport("transform"),t&&e&&n.transform&&(n.modernBrowser=!0))},styleSupport:function(t){var e,n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1),i=r.createElement("div");return t in i.style?e=t:n in i.style&&(e=n),i=null,e}},s["private"].browserInfo(),s["private"].resize=new s["private"].publicEvents("resize.cbp",50,function(){if(o.innerHeight==screen.height)return!0})}(jQuery,window,document),function(a,t,e,n){"use strict";var r=a.fn.cubeportfolio.constructor;r["public"]={init:function(t,e){new r(this,t,e)},destroy:function(t){var e=r["private"].checkInstance.call(this,"destroy");e.triggerEvent("beforeDestroy"),a.removeData(this,"cubeportfolio"),e.blocks.removeData("cbp"),e.$obj.removeClass("cbp-ready").removeAttr("style"),e.$ul.removeClass("cbp-wrapper"),r["private"].resize.destroyEvent(e),e.$obj.off(".cbp"),e.blocks.removeClass("cbp-item-off").removeAttr("style"),e.blocks.find(".cbp-item-wrapper").each(function(t,e){var n=a(e),i=n.children();i.length?i.unwrap():n.remove()}),e.destroySlider&&e.destroySlider(),e.$ul.unwrap(),e.addedWrapp&&e.blocks.unwrap(),0===e.blocks.length&&e.$ul.remove(),a.each(e.plugins,function(t,e){"function"==typeof e.destroy&&e.destroy()}),a.isFunction(t)&&t.call(e),e.triggerEvent("afterDestroy")},filter:function(t,e){var n,i=r["private"].checkInstance.call(this,"filter");if(!i.isAnimating){if(i.isAnimating=!0,a.isFunction(e)&&i.registerEvent("filterFinish",e,!0),a.isFunction(t)){if(void 0===(n=t.call(i,i.blocks)))throw new Error("When you call cubeportfolio API `filter` method with a param of type function you must return the blocks that will be visible.")}else{if(i.options.filterDeeplinking){var o=location.href.replace(/#cbpf=(.*?)([#\?&]|$)/gi,"");location.href=o+"#cbpf="+encodeURIComponent(t),i.singlePage&&i.singlePage.url&&(i.singlePage.url=location.href)}i.defaultFilter=t,n=i.filterConcat(i.defaultFilter)}i.triggerEvent("filterStart",n),i.singlePageInline&&i.singlePageInline.isOpen?i.singlePageInline.close("promise",{callback:function(){i.computeFilter(n)}}):i.computeFilter(n)}},showCounter:function(t,e){var n=r["private"].checkInstance.call(this,"showCounter");a.isFunction(e)&&n.registerEvent("showCounterFinish",e,!0),(n.elems=t).each(function(){var t=a(this),e=n.blocks.filter(t.data("filter")).length;t.find(".cbp-filter-counter").text(e)}),n.triggerEvent("showCounterFinish",t)},appendItems:function(t,e){r["public"].append.call(this,t,e)},append:function(t,e){var n=r["private"].checkInstance.call(this,"append"),i=a(t).filter(".cbp-item");n.isAnimating||i.length<1?a.isFunction(e)&&e.call(n,i):(n.isAnimating=!0,n.singlePageInline&&n.singlePageInline.isOpen?n.singlePageInline.close("promise",{callback:function(){n.addItems(i,e,"append")}}):n.addItems(i,e,"append"))},prepend:function(t,e){var n=r["private"].checkInstance.call(this,"prepend"),i=a(t).filter(".cbp-item");n.isAnimating||i.length<1?a.isFunction(e)&&e.call(n,i):(n.isAnimating=!0,n.singlePageInline&&n.singlePageInline.isOpen?n.singlePageInline.close("promise",{callback:function(){n.addItems(i,e,"prepend")}}):n.addItems(i,e,"prepend"))},remove:function(t,e){var n=r["private"].checkInstance.call(this,"remove"),i=a(t).filter(".cbp-item");n.isAnimating||i.length<1?a.isFunction(e)&&e.call(n,i):(n.isAnimating=!0,n.singlePageInline&&n.singlePageInline.isOpen?n.singlePageInline.close("promise",{callback:function(){n.removeItems(i,e)}}):n.removeItems(i,e))},layout:function(t){var e=r["private"].checkInstance.call(this,"layout");e.width=e.$obj.outerWidth(),e.isAnimating||e.width<=0||("alignCenter"===e.options.gridAdjustment&&(e.wrapper[0].style.maxWidth=""),e.storeData(e.blocks),e.layoutAndAdjustment()),a.isFunction(t)&&t.call(e)}}}(jQuery,window,document),function(h,t,b,e){"use strict";var v=h.fn.cubeportfolio.constructor;h.extend(v.prototype,{updateSliderPagination:function(){var t,e,n=this;if(n.options.showPagination){for(t=Math.ceil(n.blocksOn.length/n.cols),n.navPagination.empty(),e=t-1;0<=e;e--)h("
    ",{"class":"cbp-nav-pagination-item","data-slider-action":"jumpTo"}).appendTo(n.navPagination);n.navPaginationItems=n.navPagination.children()}n.enableDisableNavSlider()},destroySlider:function(){var t=this;"slider"===t.options.layoutMode&&(t.$obj.removeClass("cbp-mode-slider"),t.$ul.removeAttr("style"),t.$ul.off(".cbp"),h(b).off(".cbp"),t.options.auto&&t.stopSliderAuto())},nextSlider:function(t){var e=this;if(e.isEndSlider()){if(!e.isRewindNav())return;e.sliderActive=0}else e.options.scrollByPage?e.sliderActive=Math.min(e.sliderActive+e.cols,e.blocksOn.length-e.cols):e.sliderActive+=1;e.goToSlider()},prevSlider:function(t){var e=this;if(e.isStartSlider()){if(!e.isRewindNav())return;e.sliderActive=e.blocksOn.length-e.cols}else e.options.scrollByPage?e.sliderActive=Math.max(0,e.sliderActive-e.cols):e.sliderActive-=1;e.goToSlider()},jumpToSlider:function(t){var e=this,n=Math.min(t.index()*e.cols,e.blocksOn.length-e.cols);n!==e.sliderActive&&(e.sliderActive=n,e.goToSlider())},jumpDragToSlider:function(t){var e,n,i,o=this,a=0this.blocksOn.length-1},goToSlider:function(){this.enableDisableNavSlider(),this.updateSliderPosition()},startSliderAuto:function(){var t=this;t.isDrag?t.stopSliderAuto():t.timeout=setTimeout(function(){t.nextSlider(),t.startSliderAuto()},t.options.autoTimeout)},stopSliderAuto:function(){clearTimeout(this.timeout)},enableDisableNavSlider:function(){var t,e,n=this;n.isRewindNav()||(e=n.isStartSlider()?"addClass":"removeClass",n.navPrev[e]("cbp-nav-stop"),e=n.isEndSlider()?"addClass":"removeClass",n.navNext[e]("cbp-nav-stop")),n.options.showPagination&&(t=n.options.scrollByPage?Math.ceil(n.sliderActive/n.cols):n.isEndSlider()?n.navPaginationItems.length-1:Math.floor(n.sliderActive/n.cols),n.navPaginationItems.removeClass("cbp-nav-pagination-active").eq(t).addClass("cbp-nav-pagination-active")),n.customPagination&&(t=n.options.scrollByPage?Math.ceil(n.sliderActive/n.cols):n.isEndSlider()?n.customPaginationItems.length-1:Math.floor(n.sliderActive/n.cols),n.customPaginationItems.removeClass(n.customPaginationClass).eq(t).addClass(n.customPaginationClass))},isRewindNav:function(){return!this.options.showNavigation||!(this.blocksOn.length<=this.cols)&&!!this.options.rewindNav},sliderItemsLength:function(){return this.blocksOn.length<=this.cols},sliderLayout:function(){var i=this;i.blocksOn.each(function(t,e){var n=h(e).data("cbp");n.leftNew=i.columnWidth*t,n.topNew=0,i.sliderFreeSpaces.push({topStart:n.heightAndGap})}),i.getFreeSpacesForSlider(),i.$ul.width(i.columnWidth*i.blocksOn.length-i.options.gapVertical)},getFreeSpacesForSlider:function(){var t=this;t.freeSpaces=t.sliderFreeSpaces.slice(t.sliderActive,t.sliderActive+t.cols),t.freeSpaces.sort(function(t,e){return t.topStart>e.topStart?1:t.topStart").attr("src",i))?(o.removeLazyLoad(e,i),n.removeClass(o.options.loadingClass)):(n.addClass(o.options.loadingClass),a("").on("load.cbp error.cbp",function(){o.removeLazyLoad(e,i,n)}).attr("src",i))}else n.addClass(o.options.loadingClass)}))},s.prototype.removeLazyLoad=function(t,e,n){var i=this;t.src=e,t.removeAttribute("data-cbp-src"),i.parent.removeAttrImage(t),i.parent.$obj.trigger("lazyLoad.cbp",t),n&&(o["private"].modernBrowser?a(t).one(o["private"].transitionend,function(){n.removeClass(i.options.loadingClass)}):n.removeClass(i.options.loadingClass))},s.prototype.isElementInScreen=function(t){var e=t.getBoundingClientRect(),n=e.bottom+this.options.threshold,i=this.screenHeight+n-(e.top-this.options.threshold);return 0<=n&&n<=i},s.prototype.destroy=function(){o["private"].lazyLoadScroll.destroyEvent(this)},o.plugins.lazyLoad=function(t){return new s(t)}}(jQuery,window,document),function(r,a,t,e){"use strict";var i={element:"",action:"click",loadItems:3},s=r.fn.cubeportfolio.constructor;function n(t){var n=this;n.parent=t,n.options=r.extend({},i,n.parent.options.plugins.loadMore),n.loadMore=r(n.options.element).find(".cbp-l-loadMore-link"),0!==n.loadMore.length&&(n.loadItems=n.loadMore.find(".cbp-l-loadMore-loadItems"),"0"===n.loadItems.text()&&n.loadMore.addClass("cbp-l-loadMore-stop"),t.registerEvent("filterStart",function(e){n.populateItems().then(function(){var t=n.items.filter(n.parent.filterConcat(e)).length;0",{"class":"cbp-popup-wrap cbp-popup-"+r.type+t,"data-action":"lightbox"===r.type?"close":""}).on("click.cbp",function(t){if(!r.stopEvents){var e=u(t.target).attr("data-action");r[e]&&(r[e](),t.preventDefault())}}),"singlePage"===r.type?(r.contentWrap=u("
    ",{"class":"cbp-popup-content-wrap"}).appendTo(r.wrap),"ios"===l["private"].browser&&r.contentWrap.css("overflow","auto"),r.content=u("
    ",{"class":"cbp-popup-content"}).appendTo(r.contentWrap)):r.content=u("
    ",{"class":"cbp-popup-content"}).appendTo(r.wrap),u("
    ",{"class":"cbp-popup-loadingBox"}).appendTo(r.wrap),"ie8"===l["private"].browser&&(r.bg=u("
    ",{"class":"cbp-popup-ie8bg","data-action":"lightbox"===r.type?"close":""}).appendTo(r.wrap)),"singlePage"===r.type&&!1===r.options.singlePageStickyNavigation?r.navigationWrap=u("
    ",{"class":"cbp-popup-navigation-wrap"}).appendTo(r.contentWrap):r.navigationWrap=u("
    ",{"class":"cbp-popup-navigation-wrap"}).appendTo(r.wrap),r.navigation=u("
    ",{"class":"cbp-popup-navigation"}).appendTo(r.navigationWrap),r.closeButton=u("
    ",{"class":"cbp-popup-close",title:"Close (Esc arrow key)","data-action":"close"}).appendTo(r.navigation),r.nextButton=u("
    ",{"class":"cbp-popup-next",title:"Next (Right arrow key)","data-action":"next"}).appendTo(r.navigation),r.prevButton=u("
    ",{"class":"cbp-popup-prev",title:"Previous (Left arrow key)","data-action":"prev"}).appendTo(r.navigation),"singlePage"===r.type){r.options.singlePageCounter&&(r.counter=u(r.options.singlePageCounter).appendTo(r.navigation),r.counter.text("")),r.content.on("click.cbp",r.options.singlePageDelegate,function(t){t.preventDefault();var e,n,i=r.dataArray.length,o=this.getAttribute("href");for(e=0;e",{"class":"cbp-popup-singlePageInline"}).on("click.cbp",function(t){if(!n.stopEvents){var e=u(t.target).attr("data-action");e&&n[e]&&(n[e](),t.preventDefault())}}),n.content=u("
    ",{"class":"cbp-popup-content"}).appendTo(n.wrap),n.navigation=u("
    ",{"class":"cbp-popup-navigation"}).appendTo(n.wrap),n.closeButton=u("
    ",{"class":"cbp-popup-close",title:"Close (Esc arrow key)","data-action":"close"}).appendTo(n.navigation)},destroy:function(){var t=this,e=u("body");u(f).off("keydown.cbp"),e.off("click.cbp",t.options.lightboxDelegate),e.off("click.cbp",t.options.singlePageDelegate),t.content.off("click.cbp",t.options.singlePageDelegate),t.cubeportfolio.$obj.off("click.cbp",t.options.singlePageInlineDelegate),t.cubeportfolio.$obj.off("click.cbp",t.options.lightboxDelegate),t.cubeportfolio.$obj.off("click.cbp",t.options.singlePageDelegate),t.cubeportfolio.$obj.removeClass("cbp-popup-isOpening"),t.cubeportfolio.$obj.find(".cbp-item").removeClass("cbp-singlePageInline-active"),t.wrap.remove()},openLightbox:function(t,e){var s,n,l=this,p=0,c=[];if(!l.isOpen){if(a=!0,l.isOpen=!0,l.stopEvents=!1,l.dataArray=[],(l.current=null)===(s=e.getAttribute("href")))throw new Error("HEI! Your clicked element doesn't have a href attribute.");u.each(t,function(t,e){var n,i=e.getAttribute("href"),o=i,a="isImage";if(-1===u.inArray(i,c)){if(s===i)l.current=p;else if(!l.options.lightboxGallery)return;if(/youtu\.?be/i.test(i)){var r=i.lastIndexOf("v=")+2;1===r&&(r=i.lastIndexOf("/")+1),n=i.substring(r),/autoplay=/i.test(n)||(n+="&autoplay=1"),o="//www.youtube.com/embed/"+(n=n.replace(/\?|&/,"?")),a="isYoutube"}else/vimeo\.com/i.test(i)?(n=i.substring(i.lastIndexOf("/")+1),/autoplay=/i.test(n)||(n+="&autoplay=1"),o="//player.vimeo.com/video/"+(n=n.replace(/\?|&/,"?")),a="isVimeo"):/www\.ted\.com/i.test(i)?(o="http://embed.ted.com/talks/"+i.substring(i.lastIndexOf("/")+1)+".html",a="isTed"):/soundcloud\.com/i.test(i)?(o=i,a="isSoundCloud"):/(\.mp4)|(\.ogg)|(\.ogv)|(\.webm)/i.test(i)?(o=-1!==i.indexOf("|")?i.split("|"):i.split("%7C"),a="isSelfHostedVideo"):/\.mp3$/i.test(i)&&(o=i,a="isSelfHostedAudio");l.dataArray.push({src:o,title:e.getAttribute(l.options.lightboxTitleSrc),type:a}),p++}c.push(i)}),l.counterTotal=l.dataArray.length,1===l.counterTotal?(l.nextButton.hide(),l.prevButton.hide(),l.dataActionImg=""):(l.nextButton.show(),l.prevButton.show(),l.dataActionImg='data-action="next"'),l.wrap.appendTo(f.body),l.scrollTop=u(d).scrollTop(),l.originalStyle=u("html").attr("style"),u("html").css({overflow:"hidden",marginRight:d.innerWidth-u(f).width()}),l.wrap.addClass("cbp-popup-transitionend"),l.wrap.show(),n=l.dataArray[l.current],l[n.type](n)}},openSinglePage:function(t,e){var i,o=this,a=0,r=[];if(!o.isOpen){if(o.cubeportfolio.singlePageInline&&o.cubeportfolio.singlePageInline.isOpen&&o.cubeportfolio.singlePageInline.close(),o.isOpen=!0,o.stopEvents=!1,o.dataArray=[],(o.current=null)===(i=e.getAttribute("href")))throw new Error("HEI! Your clicked element doesn't have a href attribute.");if(u.each(t,function(t,e){var n=e.getAttribute("href");-1===u.inArray(n,r)&&(i===n&&(o.current=a),o.dataArray.push({url:n,element:e}),a++),r.push(n)}),o.counterTotal=o.dataArray.length,1===o.counterTotal?(o.nextButton.hide(),o.prevButton.hide()):(o.nextButton.show(),o.prevButton.show()),o.wrap.appendTo(f.body),o.scrollTop=u(d).scrollTop(),o.contentWrap.scrollTop(0),o.wrap.show(),o.finishOpen=2,o.navigationMobile=u(),o.wrap.one(l["private"].transitionend,function(){u("html").css({overflow:"hidden",marginRight:d.innerWidth-u(f).width()}),o.wrap.addClass("cbp-popup-transitionend"),o.options.singlePageStickyNavigation&&(o.wrap.addClass("cbp-popup-singlePage-sticky"),o.navigationWrap.width(o.contentWrap[0].clientWidth)),o.finishOpen--,o.finishOpen<=0&&o.updateSinglePageIsOpen.call(o)}),"ie8"!==l["private"].browser&&"ie9"!==l["private"].browser||(u("html").css({overflow:"hidden",marginRight:d.innerWidth-u(f).width()}),o.wrap.addClass("cbp-popup-transitionend"),o.options.singlePageStickyNavigation&&(o.navigationWrap.width(o.contentWrap[0].clientWidth),setTimeout(function(){o.wrap.addClass("cbp-popup-singlePage-sticky")},1e3)),o.finishOpen--),o.wrap.addClass("cbp-popup-loading"),o.wrap.offset(),o.wrap.addClass("cbp-popup-singlePage-open"),o.options.singlePageDeeplinking&&(o.url=o.url.split("#cbp=")[0],location.href=o.url+"#cbp="+o.dataArray[o.current].url),u.isFunction(o.options.singlePageCallback)&&o.options.singlePageCallback.call(o,o.dataArray[o.current].url,o.dataArray[o.current].element),"ios"===l["private"].browser){var s=o.contentWrap[0];s.addEventListener("touchstart",function(){var t=s.scrollTop,e=s.scrollHeight,n=t+s.offsetHeight;0===t?s.scrollTop=1:n===e&&(s.scrollTop=t-1)})}}},openSinglePageInline:function(t,e,n){var i,o,a,r=this;if(n=n||!1,r.fromOpen=n,r.storeBlocks=t,r.storeCurrentBlock=e,r.isOpen)return o=r.cubeportfolio.blocksOn.index(u(e).closest(".cbp-item")),void(r.dataArray[r.current].url!==e.getAttribute("href")||r.current!==o?r.cubeportfolio.singlePageInline.close("open",{blocks:t,currentBlock:e,fromOpen:!0}):r.close());if(r.isOpen=!0,r.stopEvents=!1,r.dataArray=[],(r.current=null)===(i=e.getAttribute("href")))throw new Error("HEI! Your clicked element doesn't have a href attribute.");if(a=u(e).closest(".cbp-item")[0],t.each(function(t,e){a===e&&(r.current=t)}),r.dataArray[r.current]={url:i,element:e},u(r.dataArray[r.current].element).parents(".cbp-item").addClass("cbp-singlePageInline-active"),r.counterTotal=t.length,r.wrap.insertBefore(r.cubeportfolio.wrapper),r.topDifference=0,"top"===r.options.singlePageInlinePosition)r.blocksToMove=t,r.top=0;else if("bottom"===r.options.singlePageInlinePosition)r.blocksToMove=u(),r.top=r.cubeportfolio.height;else if("above"===r.options.singlePageInlinePosition){var s=u(t[r.current]).data("cbp").top;r.top=s,t.each(function(t,e){var n=u(e).data("cbp"),i=n.top,o=i+n.heightAndGap;s<=i||o>r.top&&(r.top=o,r.topDifference=r.top-s)}),r.blocksToMove=u(),t.each(function(t,e){if(t!==r.current){var n=u(e).data("cbp");n.top+n.heightAndGap>r.top&&(r.blocksToMove=r.blocksToMove.add(e))}else r.blocksToMove=r.blocksToMove.add(e)}),r.top=Math.max(r.top-r.options.gapHorizontal,0)}else{var l=u(t[r.current]).data("cbp"),p=l.top+l.heightAndGap;r.top=p,r.blocksToMove=u(),t.each(function(t,e){var n=u(e).data("cbp"),i=n.top,o=i+n.height;o<=p||(i>=p-n.height/2?r.blocksToMove=r.blocksToMove.add(e):pr.top&&(r.top=o),o-p>r.topDifference&&(r.topDifference=o-p)))})}if(r.wrap[0].style.height=r.wrap.outerHeight(!0)+"px",r.deferredInline=u.Deferred(),r.options.singlePageInlineInFocus){r.scrollTop=u(d).scrollTop();var c=r.cubeportfolio.$obj.offset().top+r.top-100;r.scrollTop!==c?u("html,body").animate({scrollTop:c},350).promise().then(function(){r.resizeSinglePageInline(),r.deferredInline.resolve()}):(r.resizeSinglePageInline(),r.deferredInline.resolve())}else r.resizeSinglePageInline(),r.deferredInline.resolve();r.cubeportfolio.$obj.addClass("cbp-popup-singlePageInline-open"),r.wrap.css({top:r.top}),r.options.singlePageInlineDeeplinking&&(r.url=r.url.split("#cbpi=")[0],location.href=r.url+"#cbpi="+r.dataArray[r.current].url),u.isFunction(r.options.singlePageInlineCallback)&&r.options.singlePageInlineCallback.call(r,r.dataArray[r.current].url,r.dataArray[r.current].element)},resizeSinglePageInline:function(){var n=this;n.height=0===n.top||n.top===n.cubeportfolio.height?n.wrap.outerHeight(!0):n.wrap.outerHeight(!0)-n.options.gapHorizontal,n.height+=n.topDifference,n.storeBlocks.each(function(t,e){l["private"].modernBrowser?e.style[l["private"].transform]="":e.style.marginTop=""}),n.blocksToMove.each(function(t,e){l["private"].modernBrowser?e.style[l["private"].transform]="translate3d(0px, "+n.height+"px, 0)":e.style.marginTop=n.height+"px"}),n.cubeportfolio.obj.style.height=n.cubeportfolio.height+n.height+"px"},revertResizeSinglePageInline:function(){this.deferredInline=u.Deferred(),this.storeBlocks.each(function(t,e){l["private"].modernBrowser?e.style[l["private"].transform]="":e.style.marginTop=""}),this.cubeportfolio.obj.style.height=this.cubeportfolio.height+"px"},appendScriptsToWrap:function(i){var o=this,a=0,r=function(t){var e=f.createElement("script"),n=t.src;e.type="text/javascript",e.readyState?e.onreadystatechange=function(){"loaded"!=e.readyState&&"complete"!=e.readyState||(e.onreadystatechange=null,i[++a]&&r(i[a]))}:e.onload=function(){i[++a]&&r(i[a])},n?e.src=n:e.text=t.text,o.content[0].appendChild(e)};r(i[0])},updateSinglePage:function(t,e,n){var i,o=this;o.content.addClass("cbp-popup-content").removeClass("cbp-popup-content-basic"),!1===n&&o.content.removeClass("cbp-popup-content").addClass("cbp-popup-content-basic"),o.counter&&(i=u(o.getCounterMarkup(o.options.singlePageCounter,o.current+1,o.counterTotal)),o.counter.text(i.text())),o.fromAJAX={html:t,scripts:e},o.finishOpen--,o.finishOpen<=0&&o.updateSinglePageIsOpen.call(o)},updateSinglePageIsOpen:function(){var t,e=this;e.wrap.addClass("cbp-popup-ready"),e.wrap.removeClass("cbp-popup-loading"),e.content.html(e.fromAJAX.html),e.fromAJAX.scripts&&e.appendScriptsToWrap(e.fromAJAX.scripts),e.fromAJAX={},e.cubeportfolio.$obj.trigger("updateSinglePageStart.cbp"),(t=e.content.find(".cbp-slider")).length?(t.find(".cbp-slider-item").addClass("cbp-item"),e.slider=t.cubeportfolio({layoutMode:"slider",mediaQueries:[{width:1,cols:1}],gapHorizontal:0,gapVertical:0,caption:"",coverRatio:""})):e.slider=null,e.checkForSocialLinks(e.content),e.cubeportfolio.$obj.trigger("updateSinglePageComplete.cbp")},checkForSocialLinks:function(t){this.createFacebookShare(t.find(".cbp-social-fb")),this.createTwitterShare(t.find(".cbp-social-twitter")),this.createGooglePlusShare(t.find(".cbp-social-googleplus")),this.createPinterestShare(t.find(".cbp-social-pinterest"))},createFacebookShare:function(t){t.length&&!t.attr("onclick")&&t.attr("onclick","window.open('http://www.facebook.com/sharer.php?u="+encodeURIComponent(d.location.href)+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;")},createTwitterShare:function(t){t.length&&!t.attr("onclick")&&t.attr("onclick","window.open('https://twitter.com/intent/tweet?source="+encodeURIComponent(d.location.href)+"&text="+encodeURIComponent(f.title)+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=300'); return false;")},createGooglePlusShare:function(t){t.length&&!t.attr("onclick")&&t.attr("onclick","window.open('https://plus.google.com/share?url="+encodeURIComponent(d.location.href)+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=450'); return false;")},createPinterestShare:function(t){if(t.length&&!t.attr("onclick")){var e="",n=this.content.find("img")[0];n&&(e=n.src),t.attr("onclick","window.open('http://pinterest.com/pin/create/button/?url="+encodeURIComponent(d.location.href)+"&media="+e+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;")}},updateSinglePageInline:function(t,e){var n=this;n.content.html(t),e&&n.appendScriptsToWrap(e),n.cubeportfolio.$obj.trigger("updateSinglePageInlineStart.cbp"),0!==n.localOptions.delay?setTimeout(function(){n.singlePageInlineIsOpen.call(n)},n.localOptions.delay):n.singlePageInlineIsOpen.call(n)},singlePageInlineIsOpen:function(){var e=this;function n(){e.wrap.addClass("cbp-popup-singlePageInline-ready"),e.wrap[0].style.height="",e.resizeSinglePageInline(),e.cubeportfolio.$obj.trigger("updateSinglePageInlineComplete.cbp")}e.cubeportfolio.loadImages(e.wrap,function(){var t=e.content.find(".cbp-slider");t.length?(t.find(".cbp-slider-item").addClass("cbp-item"),t.one("initComplete.cbp",function(){e.deferredInline.done(n)}),t.on("pluginResize.cbp",function(){e.deferredInline.done(n)}),e.slider=t.cubeportfolio({layoutMode:"slider",displayType:"default",mediaQueries:[{width:1,cols:1}],gapHorizontal:0,gapVertical:0,caption:"",coverRatio:""})):(e.slider=null,e.deferredInline.done(n)),e.checkForSocialLinks(e.content)})},isImage:function(t){var e=this;new Image;e.tooggleLoading(!0),e.cubeportfolio.loadImages(u('
    '),function(){e.updateImagesMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal)),e.tooggleLoading(!1)})},isVimeo:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isYoutube:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isTed:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isSoundCloud:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isSelfHostedVideo:function(t){var e=this;e.updateSelfHostedVideo(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isSelfHostedAudio:function(t){var e=this;e.updateSelfHostedAudio(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},getCounterMarkup:function(t,e,n){if(!t.length)return"";var i={current:e,total:n};return t.replace(/\{\{current}}|\{\{total}}/gi,function(t){return i[t.slice(2,-2)]})},updateSelfHostedVideo:function(t,e,n){var i;this.wrap.addClass("cbp-popup-lightbox-isIframe");var o='
    '+(e?'
    '+e+"
    ":"")+n+"
    ",this.content.html(o),this.wrap.addClass("cbp-popup-ready"),this.preloadNearbyImages()},updateSelfHostedAudio:function(t,e,n){this.wrap.addClass("cbp-popup-lightbox-isIframe");var i='
    '+(e?'
    '+e+"
    ":"")+n+"
    ";this.content.html(i),this.wrap.addClass("cbp-popup-ready"),this.preloadNearbyImages()},updateVideoMarkup:function(t,e,n){this.wrap.addClass("cbp-popup-lightbox-isIframe");var i='
    '+(e?'
    '+e+"
    ":"")+n+"
    ";this.content.html(i),this.wrap.addClass("cbp-popup-ready"),this.preloadNearbyImages()},updateImagesMarkup:function(t,e,n){var i=this;i.wrap.removeClass("cbp-popup-lightbox-isIframe");var o='
    '+(e?'
    '+e+"
    ":"")+n+"
    ";i.content.html(o),i.wrap.addClass("cbp-popup-ready"),i.resizeImage(),i.preloadNearbyImages()},next:function(){this[this.type+"JumpTo"](1)},prev:function(){this[this.type+"JumpTo"](-1)},lightboxJumpTo:function(t){var e,n=this;n.current=n.getIndex(n.current+t),n[(e=n.dataArray[n.current]).type](e)},singlePageJumpTo:function(t){var e=this;e.current=e.getIndex(e.current+t),u.isFunction(e.options.singlePageCallback)&&(e.resetWrap(),e.contentWrap.scrollTop(0),e.wrap.addClass("cbp-popup-loading"),e.slider&&l["private"].resize.destroyEvent(u.data(e.slider[0],"cubeportfolio")),e.options.singlePageCallback.call(e,e.dataArray[e.current].url,e.dataArray[e.current].element),e.options.singlePageDeeplinking&&(location.href=e.url+"#cbp="+e.dataArray[e.current].url))},resetWrap:function(){var t=this;"singlePage"===t.type&&t.options.singlePageDeeplinking&&(location.href=t.url+"#"),"singlePageInline"===t.type&&t.options.singlePageInlineDeeplinking&&(location.href=t.url+"#")},getIndex:function(t){return(t%=this.counterTotal)<0&&(t=this.counterTotal+t),t},close:function(e,t){var n=this;function i(){n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.cubeportfolio.$obj.removeClass("cbp-popup-singlePageInline-open cbp-popup-singlePageInline-close"),n.isOpen=!1,"promise"===e&&u.isFunction(t.callback)&&t.callback.call(n.cubeportfolio)}function o(){var t=u(d).scrollTop();n.resetWrap(),u(d).scrollTop(t),n.options.singlePageInlineInFocus&&"promise"!==e?u("html,body").animate({scrollTop:n.scrollTop},350).promise().then(function(){i()}):i()}"singlePageInline"===n.type?"open"===e?(n.wrap.removeClass("cbp-popup-singlePageInline-ready"),u(n.dataArray[n.current].element).closest(".cbp-item").removeClass("cbp-singlePageInline-active"),n.isOpen=!1,n.openSinglePageInline(t.blocks,t.currentBlock,t.fromOpen)):(n.height=0,n.revertResizeSinglePageInline(),n.wrap.removeClass("cbp-popup-singlePageInline-ready"),n.cubeportfolio.$obj.addClass("cbp-popup-singlePageInline-close"),n.cubeportfolio.$obj.find(".cbp-item").removeClass("cbp-singlePageInline-active"),l["private"].modernBrowser?n.wrap.one(l["private"].transitionend,function(){o()}):o()):"singlePage"===n.type?(n.resetWrap(),n.stopScroll=!0,n.wrap.removeClass("cbp-popup-ready cbp-popup-transitionend cbp-popup-singlePage-open cbp-popup-singlePage-sticky"),u("html").css({overflow:"",marginRight:"",position:""}),u(d).scrollTop(n.scrollTop),"ie8"!==l["private"].browser&&"ie9"!==l["private"].browser||(n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.isOpen=!1),n.wrap.one(l["private"].transitionend,function(){n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.isOpen=!1})):(a=!1,n.originalStyle?u("html").attr("style",n.originalStyle):u("html").css({overflow:"",marginRight:""}),u(d).scrollTop(n.scrollTop),n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.isOpen=!1)},tooggleLoading:function(t){this.stopEvents=t,this.wrap[t?"addClass":"removeClass"]("cbp-popup-loading")},resizeImage:function(){if(this.isOpen){var t=this.content.find("img"),e=t.parent(),n=u(d).height()-(e.outerHeight(!0)-e.height())-this.content.find(".cbp-popup-lightbox-bottom").outerHeight(!0);t.css("max-height",n+"px")}},preloadNearbyImages:function(){for(var t=this,e=[t.getIndex(t.current+1),t.getIndex(t.current+2),t.getIndex(t.current+3),t.getIndex(t.current-1),t.getIndex(t.current-2),t.getIndex(t.current-3)],n=e.length-1;0<=n;n--)"isImage"===t.dataArray[e[n]].type&&t.cubeportfolio.checkSrc(t.dataArray[e[n]])}};function n(t){var e=this;!1===(e.parent=t).options.lightboxShowCounter&&(t.options.lightboxCounter=""),!1===t.options.singlePageShowCounter&&(t.options.singlePageCounter=""),t.registerEvent("initStartRead",function(){e.run()},!0)}var a=!1,i=!1,o=!1;n.prototype.run=function(){var r=this,s=r.parent,t=u(f.body);s.lightbox=null,s.options.lightboxDelegate&&!i&&(i=!0,s.lightbox=Object.create(e),s.lightbox.init(s,"lightbox"),t.on("click.cbp",s.options.lightboxDelegate,function(t){t.preventDefault();var e=u(this),i=e.attr("data-cbp-lightbox"),n=r.detectScope(e),o=n.data("cubeportfolio"),a=[];o?o.blocksOn.each(function(t,e){var n=u(e);n.not(".cbp-item-off")&&n.find(s.options.lightboxDelegate).each(function(t,e){i?u(e).attr("data-cbp-lightbox")===i&&a.push(e):a.push(e)})}):a=i?n.find(s.options.lightboxDelegate+"[data-cbp-lightbox="+i+"]"):n.find(s.options.lightboxDelegate),s.lightbox.openLightbox(a,e[0])})),s.singlePage=null,s.options.singlePageDelegate&&!o&&(o=!0,s.singlePage=Object.create(e),s.singlePage.init(s,"singlePage"),t.on("click.cbp",s.options.singlePageDelegate,function(t){t.preventDefault();var e=u(this),i=e.attr("data-cbp-singlePage"),n=r.detectScope(e),o=n.data("cubeportfolio"),a=[];o?o.blocksOn.each(function(t,e){var n=u(e);n.not(".cbp-item-off")&&n.find(s.options.singlePageDelegate).each(function(t,e){i?u(e).attr("data-cbp-singlePage")===i&&a.push(e):a.push(e)})}):a=i?n.find(s.options.singlePageDelegate+"[data-cbp-singlePage="+i+"]"):n.find(s.options.singlePageDelegate),s.singlePage.openSinglePage(a,e[0])})),s.singlePageInline=null,s.options.singlePageInlineDelegate&&(s.singlePageInline=Object.create(e),s.singlePageInline.init(s,"singlePageInline"),s.$obj.on("click.cbp",s.options.singlePageInlineDelegate,function(t){t.preventDefault();var e=u.data(this,"cbp-locked"),n=u.data(this,"cbp-locked",+new Date);(!e||300",{"class":"cbp-nav"}),i.nav.on("click.cbp","[data-slider-action]",function(t){if(t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),!i.sliderStopEvents){var e=o(this),n=e.attr("data-slider-action");i[n+"Slider"]&&i[n+"Slider"](e)}}),i.options.showNavigation&&(i.controls=o("
    ",{"class":"cbp-nav-controls"}),i.navPrev=o("
    ",{"class":"cbp-nav-prev","data-slider-action":"prev"}).appendTo(i.controls),i.navNext=o("
    ",{"class":"cbp-nav-next","data-slider-action":"next"}).appendTo(i.controls),i.controls.appendTo(i.nav)),i.options.showPagination&&(i.navPagination=o("
    ",{"class":"cbp-nav-pagination"}).appendTo(i.nav)),(i.controls||i.navPagination)&&i.nav.appendTo(i.$obj),i.updateSliderPagination(),i.options.auto&&(i.options.autoPauseOnHover&&(i.mouseIsEntered=!1,i.$obj.on("mouseenter.cbp",function(t){i.mouseIsEntered=!0,i.stopSliderAuto()}).on("mouseleave.cbp",function(t){i.mouseIsEntered=!1,i.startSliderAuto()})),i.startSliderAuto()),i.options.drag&&a["private"].modernBrowser&&i.dragSlider()},r.prototype.updateSlider=function(){this.updateSliderPosition(),this.updateSliderPagination()},r.prototype.destroy=function(){var t=this;t.parent.customPaginationItems&&t.parent.customPaginationItems.off(".cbp"),(t.parent.controls||t.parent.navPagination)&&(t.parent.nav.off(".cbp"),t.parent.nav.remove())},a.plugins.slider=function(t){return"slider"!==t.options.layoutMode?null:new r(t)}}(jQuery,window,document),function(u,t,e,n){"use strict";var i={element:""},o=u.fn.cubeportfolio.constructor;function a(e){var n=this;n.parent=e,n.options=u.extend({},i,n.parent.options.plugins.sort),n.element=u(n.options.element),0!==n.element.length&&(n.sort="",n.sortBy="string:asc",n.element.on("click.cbp",".cbp-sort-item",function(t){t.preventDefault(),n.target=t.target,u(n.target).hasClass("cbp-l-dropdown-item--active")||e.isAnimating||(n.processSort(),e.$obj.cubeportfolio("filter",e.defaultFilter))}),e.registerEvent("triggerSort",function(){n.target&&(n.processSort(),e.$obj.cubeportfolio("filter",e.defaultFilter))}),n.dropdownWrap=n.element.find(".cbp-l-dropdown-wrap").on({"mouseover.cbp":function(){u(this).addClass("cbp-l-dropdown-wrap--open")},"mouseleave.cbp":function(){u(this).removeClass("cbp-l-dropdown-wrap--open")}}),n.dropdownHeader=n.element.find(".cbp-l-dropdown-header"))}a.prototype.processSort=function(){var o=this,t=o.parent,e=(p=o.target).hasAttribute("data-sort"),n=p.hasAttribute("data-sortBy");if(e&&n)o.sort=p.getAttribute("data-sort"),o.sortBy=p.getAttribute("data-sortBy");else if(e)o.sort=p.getAttribute("data-sort");else{if(!n)return;o.sortBy=p.getAttribute("data-sortBy")}var i=o.sortBy.split(":"),a="string",r=1;if("int"===i[0]?a="int":"float"===i[0]&&(a="float"),"desc"===i[1]&&(r=-1),o.sort){var s=[];t.blocks.each(function(t,e){var n=u(e),i=n.find(o.sort).text();"int"===a&&(i=parseInt(i,10)),"float"===a&&(i=parseFloat(i,10)),s.push({sortText:i,data:n.data("cbp")})}),s.sort(function(t,e){var n=t.sortText,i=e.sortText;return"string"===a&&(n=n.toUpperCase(),i=i.toUpperCase()),n a { + color: #6F6D6D; + display: block; + font: bold 25px/25px "Open Sans", sans-serif; + margin: 20px 0 0; +} + +.left > a:hover { + color: #B3B3B3; +} + +.left nav { + margin: 50px 0 0; +} + +.left nav dl dt a { + color: #848484; + display: block; + font: 14px/21px "Open Sans", sans-serif; + padding: 6px 0; +} + +.left nav dl dt a:hover { + color: #5283D0; +} + +.left nav dl dt.active a { + background: url("../images/arrow.png") no-repeat scroll right center transparent; + color: #2576B8; + font-weight: bold; +} + +.right { + margin-left: 190px; + max-width: 860px; + overflow: hidden; + padding: 0 25px 25px; +} + +.right h1 a { + background: none repeat scroll 0 0 #E7E7E7; + border-bottom: 2px solid #AAD6F9; + color: #333; + display: block; + font: bold 20px/20px "Open Sans", sans-serif; + margin: 30px 0 20px; + padding: 15px 0 15px 15px; +} + +.right h2 { + color: #4C4A56; + font: bold 17px/17px "Open Sans", sans-serif; + padding: 17px 0; +} + +.right h3 { + color: #4C4A56; + font: bold 15px/15px "Open Sans", sans-serif; + padding: 15px 0; +} + +.right h4 { + color: #555; + font: bold 13px/21px "Open Sans", sans-serif; + padding: 5px 0; +} + +.right p { + margin: 5px 0; +} + +.right strong { + color: #4C4A56; +} + +.right ul { + padding: 5px 0; +} + +.right a { + color: #2576B8; +} + +.right a:hover { + color: #333333; +} + +p.attention { + color: #E87373; +} + +.right li { + /*color: #4C4A56;*/ +} + +.right .tinycode { + background: none repeat scroll 0% 0% #e4e4e4; + color: #42433C; + font: italic 12px/18px "Open Sans", sans-serif; + margin: 0 2px; + padding: 2px 6px; +} + +.right table { + border-color: #DADADA; + border-radius: 2px 2px 2px 2px; + border-style: solid; + border-width: 1px 1px 0 0; +} + +.right table th { + background: none repeat scroll 0% 0% #ECECEC; + border-bottom: 1px solid #C8C8C8; + border-left: 1px solid #C8C8C8; + border-top: 1px solid #C8C8C8; + color: #666666; + font: bold 12px/32px sans-serif; + height: 32px; + padding-left: 10px; + text-align: left; +} + +.right table td { + border-bottom: 1px solid #C8C8C8; + border-left: 1px solid #C8C8C8; + color: #787878; + font: 12px/18px Open Sans, sans-serif; + padding: 8px 12px; +} + +.right table td a { + color: #2576B8; + font: 11px/14px sans-serif; +} + +.right table td a:hover { + color: #333333; +} + +.right table tr:nth-child(2n+1) { + background: none repeat scroll 0% 0% #F0F0F0; +} + +.lists { + list-style: disc inside none; + margin-left: 30px; +} diff --git a/documentation/css/prettify.css b/documentation/css/prettify.css new file mode 100644 index 0000000..0212a26 --- /dev/null +++ b/documentation/css/prettify.css @@ -0,0 +1,140 @@ +.pln { + color: #333333; +} + +@media screen { + /* string content */ + .str { + color: #dd1144; + } + + /* a keyword */ + .kwd { + color: #255ABC; + } + + /* a comment */ + .com { + color: #999988; + font-style: italic; + } + + /* a type name */ + .typ { + color: #445588; + } + + /* a literal value */ + .lit { + color: #A91336; + } + + /* punctuation */ + .pun { + color: #333333; + } + + /* lisp open bracket */ + .opn { + color: #333333; + } + + /* lisp close bracket */ + .clo { + color: #333333; + } + + /* a markup tag name */ + .tag { + color: navy; + } + + /* a markup attribute name */ + .atn { + color: teal; + } + + /* a markup attribute value */ + .atv { + color: #dd1144; + } + + /* a declaration */ + .dec { + color: #333333; + } + + /* a variable name */ + .var { + color: teal; + } + + /* a function name */ + .fun { + color: #990000; + } +} + +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #006600; + } + + .kwd { + color: #006; + font-weight: bold; + } + + .com { + color: #600; + font-style: italic; + } + + .typ { + color: #404; + font-weight: bold; + } + + .lit { + color: #004444; + } + + .pun, .opn, .clo { + color: #444400; + } + + .tag { + color: #006; + font-weight: bold; + } + + .atn { + color: #440044; + } + + .atv { + color: #006600; + } +} + +/* Style */ +pre.prettyprint { + background: none repeat scroll 0 0 #FFFFFF; + border: 1px solid #e0e0e0; + color: #CDCDCD; + font: 12px/18px Consolas, monospace, sans-serif; + overflow: auto; + margin: 15px 0; +} + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin: 15px 15px 15px 40px; +} + +li.L0, li.L1, li.L2, li.L3, li.L4, +li.L5, li.L6, li.L7, li.L8, li.L9 { + list-style-type: decimal !important +} + diff --git a/documentation/css/reset.css b/documentation/css/reset.css new file mode 100644 index 0000000..34f8388 --- /dev/null +++ b/documentation/css/reset.css @@ -0,0 +1,54 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + +body { + line-height: 1; +} + +ol, ul { + list-style: none; +} + +blockquote, q { + quotes: none; +} + +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/documentation/index.html b/documentation/index.html new file mode 100644 index 0000000..c62a7ae --- /dev/null +++ b/documentation/index.html @@ -0,0 +1,1582 @@ + + + + + + + Cube Portfolio Documentation v4.4.0 | 1 August, 2018 + + + + + + + + + + + + + + + + +
    + + +
    +

    About

    +

    + Cube Portfolio is a jQuery grid plugin that provides powerful portfolio system, beautiful animated filtering, searching, custom captions and it’s perfect for portfolio projects, horizontal slider, images gallery, team members, blog posts or any other ordered grid content. +

    +

    It plays nice with your existing HTML and CSS, making it a great choice for dynamic and responsive layouts.

    + +

    How to install

    +

    1. Upload cubeportfolio folder to your server. This folder contains all of the assets of the plugin.

    +
      +
    • JS
    • +
    • CSS
    • +
    • images
    • +
    +

    + 2. Include the following files in your <head> section of the page. Please ensure that all of them have the correct path: +

    + +
    +<!-- load cubeportfolio css file -->
    +<link rel="stylesheet" href="cubeportfolio/css/cubeportfolio.min.css">
    +
    +<!-- load latest jquery from google resources-->
    +<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    +
    +<!-- load cubeportfolio jQuery plugin -->
    +<script type="text/javascript" src="cubeportfolio/js/jquery.cubeportfolio.min.js"></script>
    +
    +

    + Be aware that Cube Portfolio plugin requires jQuery 1.8+. + If you already have jQuery on your page, don’t include it second time. +

    +
    +

    + 3. Insert the HTML structure below to the <body> section to build the markup (don't forget to update images path!).
    +

    +

    For more complex structures please check the templates folder.

    + +
    +<div id="grid-container">
    +    <div class="cbp-item">
    +        <a href="#" title="custom title 1">
    +            <img src="path/to/img1" alt="custom alt 1" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a href="#" title="custom title 2">
    +            <img src="path/to/img2" alt="custom alt 2" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a href="#" title="custom title 3">
    +            <img src="path/to/img3" alt="custom alt 3" width="100%">
    +        </a>
    +    </div>
    +</div>
    +
    + +

    + 4. Initialize the Cube Portfolio plugin. Usually just before the closing body tag: For more info about options go to Options section. +

    + +
    +<script type="text/javascript">
    +jQuery(document).ready( function() {
    +     jQuery('#grid-container').cubeportfolio({
    +        // options
    +     });
    +});
    +</script>
    +
    + +

    As an alternative initialization, the options can be placed as a JSON object in the HTML data attributes for grid container:

    +
    +<div id="grid-container" data-cbp-options='{"rewindNav": false}'>
    +    <div class="cbp-item">
    +        <a href="#" title="custom title 1">
    +            <img src="path/to/img1" alt="custom alt 1" width="100%">
    +        </a>
    +    </div>
    +</div>
    +
    + + +

    Options

    +

    + There are numerous options that can be added to configure Cube Portfolio behavior. + To set an option, you must add it to the initialization block of code. +

    + +
    +<script type="text/javascript">
    +jQuery('#grid-container').cubeportfolio({
    +    // place here the options. Don't forget to separate them by comma
    +});
    +</script>
    +
    +

    Full list of options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameValuesDefaultDescription
    filtersstring that represent the elements in the document (DOM selector)''Define the wrapper for filters
    loadMore--This options is deprecated. Please use plugins.loadMore.element option instead
    loadMoreAction--This options is deprecated. Please use plugins.loadMore.action option instead
    searchstring that represent the elements in the document (DOM selector)''Define the search input element
    layoutMode'grid', 'mosaic' or 'slider''grid'Layout Mode for this plugin
    sortByDimensiontrue or falsefalseFilter the items by dimension (bigger to smallest) if there are gaps in grid. Option available only for `layoutMode: 'mosaic'`
    dragtrue or falsetrueMouse and touch drag support. Option available only for `layoutMode: 'slider'`
    autotrue or falsefalseAutoplay the slider. Option available only for `layoutMode: 'slider'`
    autoTimeoutonly integers (ex: 1000, 2000, 5000)5000Autoplay interval timeout. Time is set in milliseconds. 1000 milliseconds equals 1 second. Option available only for `layoutMode: 'slider'`
    autoPauseOnHovertrue or falsetrueStops autoplay when user hover the slider. Option available only for `layoutMode: 'slider'`
    showNavigationtrue or falsetrueShow `next` and `prev` buttons for slider. Option available only for `layoutMode: 'slider'`
    showPaginationtrue or falsetrueShow pagination for slider. Option available only for `layoutMode: 'slider'`
    rewindNavtrue or falsetrueEnable slide to first item (last item). Option available only for `layoutMode: 'slider'`
    scrollByPagetrue or falsetrueScroll by page and not by item. This option affect next/prev buttons and drag support. Option available only for `layoutMode: 'slider'`
    defaultFilterstrings that represent the filter name(e.g. '*', '.logo', '.web-design', '.design')'*'Default filter for plugin. Option available only for `layoutMode: 'grid'`
    filterDeeplinkingtrue or falsefalseEnable / disable the deeplinking feature when you click on filters. Option available only for `layoutMode: 'grid'`
    animationType + 'fadeOut'
    + 'quicksand'
    + 'bounceLeft'
    + 'bounceTop'
    + 'bounceBottom'
    + 'moveLeft'
    + 'slideLeft'
    + 'fadeOutTop'
    + 'sequentially'
    + 'skew'
    + 'slideDelay'
    + '3d' Flip
    + 'rotateSides'
    + 'flipOutDelay'
    + 'flipOut'
    + 'unfold'
    + 'foldLeft'
    + 'scaleDown'
    + 'scaleSides'
    + 'frontRow'
    + 'flipBottom'
    + 'rotateRoom' +
    'fadeOut' + Defines which animation to use for items that will be shown or hidden after a filter has been activated. + The plugin uses the best browser features available (CSS3 transitions and transform, GPU acceleration) + Option available only for `layoutMode: 'grid'` +
    gridAdjustment + 'default'
    + 'alignCenter'
    + 'responsive' +
    'responsive' + Adjust the layout grid. +
    - default (no adjustment applied) +
    - alignCenter (align the grid on center of the page) +
    - responsive (use a fluid grid to resize the grid) +
    mediaQueries + - array of objects of format: [{width: a, cols: d}, {width: b, cols: e}]
    + - you can define as many objects as you want
    + - if this option is `false` Cube Portfolio will adjust the items width automatically (default option for backward compatibility) +
    false + Define `media queries` for columns layout. +
    Format: [{width: a, cols: d}, {width: b, cols: e}, {width: c, cols: f}], where a, b, c are the grid width and d, e, f are the columns displayed. + e.g. [{width: 1440, cols: 5}, {width: 1024, cols: 4}, {width: 768, cols: 3}, {width: 480, cols: 2}, {width: 320, cols: 1}] means: +
    if (gridWidth >= 1440) => show 5 columns, +
    if (gridWidth >= 1024 && gridWidth < 1440) => show 4 columns, +
    if (gridWidth >= 768 && gridWidth < 1024) => show 3 columns, +
    if (gridWidth >= 480 && gridWidth < 768) => show 2 columns, +
    if (gridWidth >= 320 && gridWidth < 480) => show 1 columns, +
    if (gridWidth < 320) => show 1 columns +
    Keep in mind that a > b > c +
    This option is available only when `gridAdjustment: 'responsive'` + +
    gapHorizontalonly integers (e.g. 1, 5, 10)10Horizontal gap between items
    gapVerticalonly integers (e.g. 1, 5, 10)10Vertical gap between items
    caption + 'pushTop' +
    'pushDown' +
    'revealBottom' +
    'revealTop' +
    'revealLeft' +
    'moveRight' +
    'overlayBottom' +
    'overlayBottomPush' +
    'overlayBottomReveal' +
    'overlayBottomAlong' +
    'overlayRightAlong' +
    'minimal' +
    'fadeIn' +
    'zoom' +
    'opacity' +
    'pushTop'Caption - the overlay that is shown when you put the mouse over an item.
    NOTE: If you don't want to have captions set this option to an empty string (e.g. caption: '')
    displayType + 'default' +
    'bottomToTop' +
    'fadeIn' +
    'fadeInToTop' +
    'sequentially' +
    'fadeIn' + The plugin will display his content based on the following values. +
    - default (the content will be displayed without any animation) +
    - fadeIn (e.g. lazyLoading) (the plugin will fully preload the images before displaying the items with a fadeIn effect) +
    - fadeInToTop - fadeInToTop (the plugin will fully preload the images before displaying the items with a fadeIn effect from bottom to top) +
    - sequentially (the plugin will fully preload the images before displaying the items with a sequentially effect) +
    - bottomToTop (the plugin will fully preload the images before displaying the items with an animation from bottom to top) +
    displayTypeSpeedonly integers, values in ms (e.g. 200, 300, 500)400Defines the speed of displaying the items (when displayType: 'default' this option will have no effect)
    + lightboxDelegate + strings that represent the elements in the document (DOM selector)'.cbp-lightbox'Define any clickable elements you wish to use to trigger lightbox popup on click.
    + lightboxGallery + true or falsetrueEnable / disable gallery mode for lightbox popup
    + lightboxTitleSrc + HTML atributte'data-title'Attribute of the delegate item that contains caption for lightbox
    + lightboxShowCounter + --This options is deprecated. Please use lightboxCounter option instead
    + lightboxCounter + HTML markup code + '<div class="cbp-popup-lightbox-counter">{{current}} of {{total}}</div>' + + Markup of the lightbox counter. To hide the counter for lightbox put this option to an empty string (e.g. '') +
    + singlePageDelegate + strings that represent the elements in the document (DOM selector)'.cbp-singlePage'Define any clickable elements you wish to use to trigger singlePage popup on click.
    + singlePageDeeplinking + true or falsetrueEnable / disable the deeplinking feature for singlePage popup
    + singlePageStickyNavigation + true or falsetrueEnable / disable the sticky navigation for singlePage popup
    + singlePageShowCounter + --This options is deprecated. Please use singlePageCounter option instead
    + singlePageCounter + HTML markup code + '<div class="cbp-popup-singlePage-counter">{{current}} of {{total}}</div>' + + Markup of the singlePage counter. To hide the counter for singlePage put this option to an empty string (e.g. '') +
    + singlePageAnimation + + 'left' +
    'fade' +
    'right' +
    + 'left' + + Defines which animation to use when singlePage appear +
    + singlePageCallback + + function(url, element) {
    + // to update singlePage content use the following method: this.updateSinglePage(yourContent)
    + } +
    nullUse this callback to update singlePage content. The callback will trigger after the singlePage popup is open. (@param url = the href attribute of the item clicked, @param element = the item clicked)
    + singlePageInlineDeeplinking + true or falsefalseEnable / disable the deeplinking feature for singlePageInline
    + singlePageInlineDelegate + strings that represent the elements in the document (DOM selector)'.cbp-singlePageInline'Define any clickable elements you wish to use to trigger singlePageInline popup on click.
    + singlePageInlinePosition + + 'above' +
    'below' +
    'top' +
    'bottom' +
    'top'Define the position of singlePage Inline block
    + singlePageInlineInFocus + true or falsetruePush the open panel in focus and at close go back to the former stage
    + singlePageInlineCallback + + function(url, element) {
    + // to update singlePage Inline content use the following method: this.updateSinglePageInline(yourContent)
    + } +
    null Use this callback to update singlePage content. The callback will trigger after the singlePage popup is open. (@param url = the href attribute of the item clicked, @param element = the item clicked)
    plugins.loadMore.elementstring that represent the elements in the document (DOM selector)''Define the wrapper for loadMore
    plugins.loadMore.action'click' or 'auto''click'How the loadMore functionality should behave. Load on click on the button or automatically when you scroll the page
    plugins.loadMore.loadItemsonly integers (e.g. 2, 3, 10)3How many items to load when you click on the loadMore button
    + +

    Filters

    +

    + Based on your filters Cube Portfolio use jQuery to decide which items to hide, show or re-position. Then applies CSS3 transition and transform to smoothly animate these items to their new locations. + The plugin use the best browser features available (CSS3 transition and transform, GPU acceleration). +

    +

    + Filtering happens when public API method filter is triggered. + This method (filter) can be trigger from anywhere, so you can use any kind of HTML structure for filters: buttons, links, dropdowns, etc. +

    + +

    The following example use some simple buttons to filter the plugin. For dropdown structure please check templates/03-lightbox-gallery/ folder.

    +

    1. Create the HTML markup:

    +
    +<div id="filters-container">
    +    <!-- '*' means shows all item elements -->
    +    <div data-filter="*" class="cbp-filter-item cbp-filter-item-active">All</div>
    +    <div data-filter=".animation" class="cbp-filter-item">Animation</div>
    +    <div data-filter=".artwork" class="cbp-filter-item">Artwork</div>
    +    <div data-filter=".illustration" class="cbp-filter-item">Illustration</div>
    +    <div data-filter=".photography" class="cbp-filter-item">Photography</div>
    +</div>
    +
    +

    Every filter categories should be entered as the "data-filter" attribute.

    + +

    2. Add filter categories to desired target item into its class attribute:

    +
    +<div id="grid-container">
    +    <div class="cbp-item animation illustration">
    +        <a title="custom title 1" href="#"><img src="path/to/img1" alt="custom alt 1" width="100%"></a>
    +    </div>
    +    <div class="cbp-item artwork">
    +        <a title="custom title 2" href="#"><img src="path/to/img2" alt="custom alt 2" width="100%"></a>
    +    </div>
    +    <div class="cbp-item animation artwork photography">
    +        <a title="custom title 3" href="#"><img src="path/to/img3" alt="custom alt 3" width="100%"></a>
    +    </div>
    +</div>
    +
    + +

    3. When you initialize the plugin you must specify the selector to filters container

    + +
    +<script type="text/javascript">
    +jQuery('#grid-container').cubeportfolio({
    +    filters: '#filters-container', // you can even add multiple filters here (e.g. `filters: '#filters-container1, #filters-container2, #filters-container3'`)
    +});
    +</script>
    +
    +

    4. If you want to show counter for filters you must update your filters html by adding .cbp-filter-counter inside every .cbp-filter-item element.

    +
    +<div id="filters-container">
    +    <div data-filter="*" class="cbp-filter-item cbp-filter-item-active">
    +        All <div class="cbp-filter-counter"></div>
    +    </div>
    +    <div data-filter=".animation" class="cbp-filter-item">
    +        Animation <div class="cbp-filter-counter"></div>
    +    </div>
    +    <div data-filter=".artwork" class="cbp-filter-item">
    +        Artwork <div class="cbp-filter-counter"></div>
    +    </div>
    +    <div data-filter=".illustration" class="cbp-filter-item">
    +        Illustration <div class="cbp-filter-counter"></div>
    +    </div>
    +    <div data-filter=".photography" class="cbp-filter-item">
    +        Photography <div class="cbp-filter-counter"></div>
    +    </div>
    +</div>
    +
    +

    You can enable a default filter right from the URL. When you visit the page that has Cube Portfolio implemented on it and want to enable the filter Print you can append to url the string #cbpf=.print and the `Print` filter will be active.

    + +

    Search

    +

    + You can add search functionality in the current grid layout so you can find items quickly (please check Blog Posts template for a working version). + First, add this snippet in your HTML: +

    +
    +<div class="cbp-search">
    +    <!-- data-search attribute is used to target the searching with a jQuery selector. For full search set data-search="*" -->
    +    <input id="js-search-blog-posts" type="text" placeholder="Search by title" data-search=".cbp-l-grid-blog-title" class="cbp-search-input">
    +    <div class="cbp-search-icon"></div>
    +</div>
    +
    +

    + +

    + To connect the plugin with the HTML snippet you must set the option search: '#js-search-blog-posts' when initialize the plugin. +

    + +

    Sort

    +

    Cube Portfolio can change the order of item elements based on their text content.

    +

    1. Define the data used for sorting in your HTML

    +
    +<div id="js-sort" class="cbp-l-sort">
    +    <div class="cbp-l-dropdown">
    +        <div class="cbp-l-dropdown-wrap">
    +            <div class="cbp-l-dropdown-header">Original sorting</div>
    +            <div class="cbp-l-dropdown-list">
    +                <div class="cbp-l-dropdown-item cbp-sort-item cbp-l-dropdown-item--active" data-sort="">Original sorting</div>
    +                <div class="cbp-l-dropdown-item cbp-sort-item" data-sort=".cbp-l-grid-projects-title">Title</div>
    +                <div class="cbp-l-dropdown-item cbp-sort-item" data-sort=".cbp-l-grid-projects-desc">Description</div>
    +            </div>
    +        </div>
    +    </div>
    +    <div class="cbp-l-direction cbp-l-direction--second">
    +        <div class="cbp-l-direction-item cbp-sort-item" data-sortBy="string:asc"></div>
    +        <div class="cbp-l-direction-item cbp-sort-item" data-sortBy="string:desc"></div>
    +    </div>
    +</div>
    +
    +

    + The data-sort attribute is a selector used to retrieve the data from the grid. + For the above example, Cube Portfolio gets for every item the text content of .cbp-l-grid-projects-title selector. That text will be used as a sorting data.

    +

    + The data-sortBy attribute is used to define how the sorting data is processed. +

      +
    • + string:asc means the data is first converted to a string (if necessary) and then sort that data in ascending order. +
    • +
    • + int:desc means the data is first converted to an integer number and then sort that data in descending order. +
    • +
    • + float:asc means the data is first converted to a float number and then sort that data in ascending order. +
    • +
    • + Only the elements that have the class.cbp-sort-item interact with the sorting algorithm. Those elements must have at least one of these atributes defined: data-sort or data-sortBy. + Otherwise, those elements will not interact with the sorting algorithm. +
    • +
    + + +

    +
    +

    2. Connect the sorting wrapper (#js-sort for the above example) to cube portfolio initialization options:

    +
    +<script type="text/javascript">
    +jQuery('#grid-container').cubeportfolio({
    +    plugins: {
    +        sort: {
    +            element: '#js-sort',
    +        },
    +    },
    +});
    +</script>
    +
    + +

    Lazy Load

    +

    Because Cube Portfolio must know the dimensions of his items before creating the grid you have three approaches on how to load the images:

    + +

    1. Load all images before displaying the grid.

    + Images HTML markup: +
    +<img src="path/to/your/img">
    +
    + +

    2. Display the grid as soon as possible. This means that the content will be visible and in time the images will catch up.

    + Images HTML markup: +
    +<!--  width & height attributes are the original dimensions of the image -->
    +<img src="path/to/your/img" width="200" height="200">
    +
    + +

    3. Display the grid as soon as possible with a preload effect for images. This option will load only the images that are visible in the current viewport. + As you scroll the page the rest of the images are loaded. I recommend this approach if you use a lot of images.

    + Images HTML markup: +
    +<!--
    +Width & height attributes are the original dimensions of the image.
    +The src attribute is mandatory to have a valid markup HTML. In the below snippet, the image source is set to a 1px gif white color.
    +The data-cbp-src is used to set the src attribute once the image is loaded.
    +-->
    +<img src="data:image/gif;base64,R0lGODlhAQABAPAAAP///////yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" data-cbp-src="path/to/your/img" width="200" height="200">
    +
    + +

    Lightbox

    +

    When an anchor tag (link) is pressed you can choose either to display a cubeportoflio lightbox, open a singlePage popup, or to open a new web page based on the URL of the anchor tag. The lightbox can display images or videos loaded from YouTube, Vimeo, Ted.com or self-hosted videos (use delimiter '|' in href attribute to add the path to other formats for self-hosted videos).

    + +

    Cube Portfolio use a custom lightbox system that is dependent to the plugin. You can use another lightbox system, but you will not have all of the features included in the Cube Portfolio lightbox. (Please see options section)

    + +

    To enable lightbox, you must add cbp-lightbox class (or another class that you set in lightboxDelegate options) on the anchor elements that will open the lightbox on click.

    + +

    Based on the href attribute of the anchor tag the lightbox will open an image or a video.

    + +

    + You can also add sounds from SoundCloud by going on their site, select the share option and click on Embed tab. + In there you will find in the input an iframe element, copy the src of the iframe and include it in the .cbp-lightbox href (check the code below of a working example). +

    + +

    Also, Cubeportfolio has support for self-hosted .mp3 audio files. You must add the path your .mp3 file to the href attribute of the lightbox.

    + +

    For youtube and vimeo videos you can also append custom params to the video link (e.g. &rel=0&autoplay=0&loop=1 +
    Please check youtube and vimeo embedding pages for more info)

    + +
    +<div id="grid-container">
    +    <div class="cbp-item">
    +        <!-- data-title attribute will be use to populate lightbox caption -->
    +        <a class="cbp-lightbox" data-title="custom title 1" href="http://www.youtube.com/watch?v=bpOSxM0rNPM&rel=0&autoplay=0">
    +            <img src="path/to/img1" alt="custom alt 1" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a class="cbp-lightbox" data-title="custom title 2" href="http://vimeo.com/74216460?autoplay=0&loop=1">
    +            <img src="path/to/img2" alt="custom alt 2" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a class="cbp-lightbox" data-title="custom title 3" href="http://www.ted.com/talks/david_epstein_are_athletes_really_getting_faster_better_stronger">
    +            <img src="path/to/img2" alt="custom alt 3" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a class="cbp-lightbox" data-title="custom title 3" href="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/26519543&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true">
    +            <img src="path/to/img2" alt="custom alt 3" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a class="cbp-lightbox" data-title="custom title 4" href="path/to/videos/big_buck_bunny.mp4|path/to/videos/big_buck_bunny.ogg|path/to/videos/big_buck_bunny.webm">
    +            <img src="path/to/img2" alt="custom alt 4" width="100%">
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a class="cbp-lightbox" data-title="custom title 5" href="path/to/big/img">
    +            <img src="path/to/img3" alt="custom alt 5" width="100%">
    +        </a>
    +    </div>
    +</div>
    +
    + +

    Use Cube Portfolio lightbox outside of the plugin

    +

    To use the lightbox feature add class cbp-lightbox on your link elements.

    +
    +<a class="cbp-lightbox" data-title="custom title 3" href="path/to/img3">
    +    external link
    +</a>
    +
    + +

    To create a gallery add also the data-cbp-lightbox attribute on those links. The value for data-cbp-lightbox attribute can be whatever you want but must be the same for one gallery.

    +
    +<a class="cbp-lightbox" data-title="custom title 1" href="path/to/img1" data-cbp-lightbox="myCustomLightbox">
    +    external link 1
    +</a>
    +<a class="cbp-lightbox" data-title="custom title 2" href="path/to/img2" data-cbp-lightbox="myCustomLightbox">
    +    external link 2
    +</a>
    +<a class="cbp-lightbox" data-title="custom title 3" href="path/to/img3" data-cbp-lightbox="myCustomLightbox">
    +    external link 3
    +</a>
    +
    + +

    Single Page

    +

    You can open a custom HTML content by using the singlePage feature. Single Page uses a similar approach to lightbox system and you can use any kind of HTML markup as a content.

    + +

    + You have the option to deep link a singlePage based on the href attribute of anchor tag that opened the singlePage. This means that URL automatically change when you switch to another singlePage and you can easily link to the desired singlePage when Cube Portfolio starts. + To do that, you have to enable singlePageDeeplinking in options. +

    + +

    To enable singlePage, you must add a cbp-singlePage class (or another class that you set in singlePageDelegate options) on the anchor elements that will open the singlePage on click.

    + +

    The content that will be add to singlePage with the callback: singlePageCallback

    + +

    To update content you must use updateSinglePage method and pass your HTML content as a parameter.

    + +
    +<div id="grid-container">
    +    <div class="cbp-item">
    +        <a href="myCustomLink1" class="cbp-singlePage">
    +            open singlePage 1
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a href="myCustomLink2" class="cbp-singlePage">
    +            open singlePage 2
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a href="myCustomLink3" class="cbp-singlePage">
    +            open singlePage 3
    +        </a>
    +    </div>
    +</div>
    +
    + +
    +<script type="text/javascript">
    +jQuery('#grid-container').cubeportfolio({
    +    /**
    +     *  This callback function will be trigger after the singlePage popup will be opened. (@param item = the current item clicked)
    +     */
    +    singlePageCallback: function (item) {
    +        // add content to singlePage
    +        this.updateSinglePage('<div>My content to append to singlePage container</div>');
    +
    +    }
    +});
    +</script>
    +
    + +

    Use Cube Portfolio singlePage outside of the plugin

    +

    To use singlePage feature add class cbp-singlePage on your link elements.

    +
    +<a class="cbp-singlePage" href="myCustomLink">
    +    external singlePage link
    +</a>
    +
    + +

    To create a gallery add also the data-cbp-singlePage attribute on those links. The value for data-cbp-singlePage attribute can be whatever you want but must be the same for one gallery.

    +
    +<a class="cbp-singlePage" href="myCustomLink1" data-cbp-singlePage="myCustomSinglePage">
    +    external singlePage link 1
    +</a>
    +<a class="cbp-singlePage" href="myCustomLink2" data-cbp-singlePage="myCustomSinglePage">
    +    external singlePage link 2
    +</a>
    +<a class="cbp-singlePage" href="myCustomLink3" data-cbp-singlePage="myCustomSinglePage">
    +    external singlePage link 3
    +</a>
    +
    + +

    + NoteIf you run the plugin locally you must know that Chrome, Opera and Internet Explorer deny local AJAX (XMLHttpRequest) requests locally. + You must use a web server to test singlePage feature. If you are using a web server and still have this issues please send me a link to your live website. +

    + +

    Single Page Inline

    +

    You can open a custom HTML content by using the singlePageInline feature. Single Page Inline use a similar approach to singlePage, but his content is added directly to the content of the plugin.

    + +

    To enable singlePageInline, you must add a cbp-singlePageInline class (or another class that you set in singlePageInlineDelegate options) on the anchor elements that will open the singlePageInline on click.

    + +

    The content that will be add to singlePageInline with the callback: singlePageInlineCallback

    + +

    To update content you must use updateSinglePageInline method and pass your HTML content as a parameter.

    + +
    +<div id="grid-container">
    +    <div class="cbp-item">
    +        <a href="myCustomLink1" class="cbp-singlePageInline">
    +            open singlePageInline 1
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a href="myCustomLink2" class="cbp-singlePageInline">
    +            open singlePageInline 2
    +        </a>
    +    </div>
    +    <div class="cbp-item">
    +        <a href="myCustomLink3" class="cbp-singlePageInline">
    +            open singlePageInline 3
    +        </a>
    +    </div>
    +</div>
    +
    + +
    +<script type="text/javascript">
    +jQuery('#grid-container').cubeportfolio({
    +    /**
    +     *  This callback function will be trigger after the singlePageInline popup will be opened. (@param item = the current item clicked)
    +     */
    +    singlePageInlineCallback: function (item) {
    +        // add content to singlePageInline
    +        this.updateSinglePageInline('<div>My content to append to singlePageInline container</div>');
    +
    +    }
    +});
    +</script>
    +
    + +

    + NoteIf you run the plugin locally you must know that Chrome, Opera and Internet Explorer deny local AJAX (XMLHttpRequest) requests locally. + You must use a web server to test singlePageInline feature. If you are using a web server and still have this issues please send me a link to your live website. +

    + +

    Captions

    +

    + Cube Portfolio has predefined captions, but it is very simple to add your own HMTL formatted containers inside the entries with your own CSS. + You can create captions from almost any static HTML elements. +

    +

    There are 11 predefined examples for captions in Cube Portfolio:

    +
      +
    • pushTop
    • +
    • revealBottom
    • +
    • moveRight
    • +
    • overlayBottomPush
    • +
    • overlayBottom
    • +
    • overlayBottomReveal
    • +
    • overlayBottomAlong
    • +
    • overlayRightAlong
    • +
    • minimal
    • +
    • fadeIn
    • +
    • zoom
    • +
    + +

    To activate a particulary caption set that caption in caption options

    +
    +<script type="text/javascript">
    +jQuery('#grid-container').cubeportfolio({
    +    caption: 'pushTop'
    +});
    +</script>
    +
    +

    + In your HTML markup you must add cbp-caption class to container that wrap your caption. + Also, the default state of caption must be wrap in a cbp-caption-defaultWrap container and + the active state of caption must be wrap in another cbp-caption-activeWrap container. +

    +
    +<div id="grid-container">
    +    <div class="cbp-item">
    +        <div class="cbp-caption">
    +            <div class="cbp-caption-defaultWrap">
    +                <img src="path/to/img" alt="" width="100%">
    +            </div>
    +            <div class="cbp-caption-activeWrap">
    +                <h1>Caption that is active on hover</h1>
    +            </div>
    +        </div>
    +    </div>
    +</div>
    +
    + +

    Templates

    +

    Cube Portfolio comes with 16 starter templates: Juicy Project, Lightbox Gallery, Meet the Team, Full Width, Masonry, Blog Posts, + Slider, Awesome Work, Clients, Tabs, Agency, Testimonials. You will find them in the templates folder.

    + +

    + Every component (filters, grid container, and load more) have different skins that are completely independent of the others), so the skins can be combined. To enable a skin add the correspondent class to desire component container. + To change the numbers of columns please refer to the Options area for mediaQueries feature. +

    + +

    + If you want to control the height of you item you can define the height for every .cbp-item in your CSS: +

    +.cbp-item {
    +    height: 300px; /* your desire value */
    +}
    +
    +

    + +

    API

    +

    + Cube Portfolio has several public API methods to use for external control. + For every callbackFunction this keyword refers to Cube Portfolio instance. +

    + +

    1. Initialize the plugin

    +
    +// default init
    +jQuery("#grid-container").cubeportfolio(options);
    +                    // or
    +jQuery("#grid-container").cubeportfolio('init', options);
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio(options, callbackFunction);
    +                    // or
    +jQuery("#grid-container").cubeportfolio('init', options, callbackFunction);
    +
    + +
    +

    2. Destroy the plugin (removes all events, data and markup from page)

    +
    +jQuery("#grid-container").cubeportfolio('destroy');
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('destroy', callbackFunction);
    +
    + +
    +

    3. Filter the items

    +
    +// filterDataSelector can be (only if you set .cbp-filter-item on filter selectors): jQuery('.cbp-filter-item').data('filter')
    +jQuery("#grid-container").cubeportfolio('filter', filterDataSelector);
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('filter', filterDataSelector, callbackFunction);
    +
    + +
    +

    4. Activate counter on filters

    +
    +// filterSelector can be (only if you set .cbp-filter-item on filter selectors): jQuery('.cbp-filter-item')
    +jQuery("#grid-container").cubeportfolio('showCounter', filterSelector);
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('showCounter', filterSelector, callbackFunction);
    +
    + +
    +

    5. Append new items to plugin

    +

    Append the htmlContent to the grid, filter the new content, then will rearange all item elements to a properly layout.

    +
    +// htmlContent - your HTML content
    +jQuery("#grid-container").cubeportfolio('append', htmlContent);
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('append', htmlContent, callbackFunction);
    +
    + +

    A typical htmlContent can look like this:

    +
    +var htmlContent = '<div class="logo cbp-item">my awesome content to append to plugin</div> <div class="logo cbp-item">my second awesome content to append to plugin</div>';
    +
    +

    Note: Don't forget to add class .cbp-item to your div element

    + +
    +

    6. Prepend new items to plugin

    +

    Prepend method works similar with the above append method, the only difference is that the htmlContent is inserted and the start of the grid.

    +
    +// htmlContent - your HTML content
    +jQuery("#grid-container").cubeportfolio('prepend', htmlContent);
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('prepend', htmlContent, callbackFunction);
    +
    + + +
    +

    7. Remove items from the CubePortfolio instance and DOM

    +
    +// items - jQuery DOM Object of the items you want to remove
    +jQuery("#grid-container").cubeportfolio('remove', items);
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('remove', items, callbackFunction);
    +
    + +

    To remove the first item in the grid you can use it like this:

    +
    +var grid = jQuery("#grid-container");
    +grid.cubeportfolio('remove', grid.find('.cbp-item').first());
    +
    + +
    +

    8. Relayout all elements in the current grid. Useful when all/some items need to be laid out again, or grid width is changed.

    +
    +jQuery("#grid-container").cubeportfolio('layout');
    +
    +// with callback function
    +jQuery("#grid-container").cubeportfolio('layout', callbackFunction);
    +
    + + +
    +

    Event Emitter

    +

    + Cube Portfolio emit some events when certain events happens. You can subscribe to them by using jQuery event syntax: +

    +jQuery("#grid-container").on('updateSinglePageComplete.cbp', function() {
    +    // your functionality
    +});
    +
    + and unsubscrbe to them by ussing .off method +
    +jQuery("#grid-container").off('updateSinglePageComplete.cbp');
    +
    +

    +

    The events supported are: +

      +
    • updateSinglePageStart.cbp (singlePage finished appending the content but singlePage is not visible yet)
    • +
    • updateSinglePageComplete.cbp (singlePage finished appending the content and singlePage is now visible on the screen)
    • +
    • updateSinglePageInlineStart.cbp (singlePageInline finished appending the content but the grid resize is not started yet)
    • +
    • updateSinglePageInlineComplete.cbp (singlePageInline finished appending the content and the grid resize is done)
    • +
    • initComplete.cbp (the plugin is initialized)
    • +
    • pluginResize.cbp (the plugin height change)
    • +
    • filterComplete.cbp (a filter trigger is finished)
    • +
    • onAfterLoadMore.cbp (fired after the loadMore functionality is executed)
    • +
    +

    + + +

    Load More Items

    +

    + You can use load more feature using public API method append. +

    +
    +// ... after cubeportfolio initialization
    +// basic load more items using public method `append`
    +jQuery("#grid-container").cubeportfolio('append', '<div class="logo cbp-item">my awesome content to append to plugin</div> <div class="logo cbp-item">my second awesome content to append to plugin</div>');
    +
    +

    For more advanced examples please go to templates/juicy-projects/index.html path and check the HTML and JS markup.

    + +

    Support

    + +

    + If you have any questions that are beyond the scope of this documentation file, please feel free to email via my user page contact form here.

    +

    + +

    Change Log

    +

    v4.4.0 - 1 August, 2018

    +
      +
    • [FEATURE] - added second filter level (demo: http://scriptpie.com/cubeportfolio/live-preview/templates/mosaic/)
    • +
    + +

    v4.3.4 - 16 July, 2018

    +
      +
    • [BUG FIXED] - fix multiple selected filters and loadMore interaction
    • +
    • [BUG FIXED] - small improvements for the CSS code
    • +
    + +

    v4.3.3 - 5 June, 2018

    +
      +
    • [BUG FIXED] - fix some edge cases when open singlePageInline with 'above' option
    • +
    + +

    v4.3.2 - 7 April, 2018

    +
      +
    • [BUG FIXED] - search input focus on safari
    • +
    • [BUG FIXED] - scroll back to the last position after singlePage closes
    • +
    + +

    v4.3.1 – 15 January, 2018

    +
      +
    • [BUG FIXED] - singlePageInline multiple mouse clicks open
    • +
    • [BUG FIXED] - slider-thumbnail template CSS pagination
    • +
    • [BUG FIXED] - mousewheel passive event fix
    • +
    • [BUG FIXED] - fix error when grid width is zero
    • +
    + +

    v4.3.0 - 9 August, 2017

    +
      +
    • [FEATURE] - sorting algorithm
    • +
    • [BUG FIXED] - fix ie8 load issue
    • +
    + +

    v4.2.0 - 2 June, 2017

    +
      +
    • [FEATURE] - Relayout manualy all elements in the current grid with the new `layout` API method
    • +
    • [BUG FIXED] - keep the aspect ratio for images when grid is resized from a small to a bigger width
    • +
    • [BUG FIXED] - fix some issues for the CSS caption
    • +
    • [BUG FIXED] - `sortToPreventGaps` option renamed to `sortByDimension`
    • +
    • [BUG FIXED] - `plugins.loadMore.selector` option renamed to `plugins.loadMore.element`
    • +
    + +

    v4.1.1 - 20 March, 2017

    +
      +
    • [BUG FIXED] - singlePage performance improvements on mobile
    • +
    + +

    v4.1.0 - 9 February, 2017

    +
      +
    • [FEATURE] - improved the loadMore feature performance
    • +
    • [FEATURE] - added support for loadMore under filter selection
    • +
    • [FEATURE] - added counter for the remaining items under loadMore
    • +
    • [FEATURE] - improve singlePage animation performance
    • +
    • [FEATURE] - added plugins.loadMore.loadItems option the set how many items to load on one round
    • +
    • [FEATURE] - the .cbp-loadBlocks containers from the loadMore.html files are now unnecessary
    • +
    • [FEATURE] - loadMore & loadMoreAction options are deprecared. Use plugins.loadMore.element & plugins.loadMore.action options instead
    • +
    • [BUG FIXED] - singlePageInline close action when I have a filter selected differently than 'All.'
    • +
    + +

    v4.0.0 - 4 January, 2017

    +
      +
    • [FEATURE] - added svelte tool support to strip the unused features
    • +
    • [FEATURE] - optimize CSS code
    • +
    • [BUG FIXED] - fix singlePageInline animation
    • +
    + +

    v3.9.0 - 9 December, 2016

    +
      +
    • [FEATURE] - added gapHorizontal & gapVertical support for mediaQueries
    • +
    • [FEATURE] - improved the animation performance for caption and filters
    • +
    • [BUG FIXED] - fix layout for mobile devices
    • +
    + +

    v3.8.1 - 25 November, 2016

    +
      +
    • [BUG FIXED] - slider error in singlePage after resize
    • +
    • [BUG FIXED] - lazyLoad on initial loading
    • +
    • [BUG FIXED] - gallery position for ie11
    • +
    • [BUG FIXED] - support for youtu.be shorturl
    • +
    • [BUG FIXED] - small css issues
    • +
    + +

    v3.8.0 - 19 September, 2016

    +
      +
    • [FEATURE] - support to hide the caption on certain widths
    • +
    • [FEATURE] - added onAfterLoadMore.cbp public event
    • +
    • [BUG FIXED] - singlePageInline position fix for masonry layout
    • +
    + +

    v3.7.1 - 28 June, 2016

    +
      +
    • [BUG FIXED] - prevent page jumping after closing singlePageInline
    • +
    • [BUG FIXED] - ie8/ie9 scroll issue for singlePage
    • +
    • [BUG FIXED] - singlePageInline position for masonry layout
    • +
    + +

    v3.7.0 - 6 June, 2016

    +
      +
    • [FEATURE] - replace font-awesome to svg icons
    • +
    • [BUG FIXED] - NEXT/PREV/ESC keys for lightbox & singlePage when both are open
    • +
    + +

    v3.6.2 - 27 April, 2016

    +
      +
    • [BUG FIXED] - singlePageInlinePosition `below` option
    • +
    + +

    v3.6.1 - 26 April, 2016

    +
      +
    • [BUG FIXED] - destroy public API method when grid doesn't have items or .cbp-item is empty
    • +
    • [BUG FIXED] - singlePageInlinePosition `above` option
    • +
    • [BUG FIXED] - fix auto loadMore & lazyLoad after `destroy` call
    • +
    • [BUG FIXED] - fix lazyLoad when you change filters
    • +
    • [BUG FIXED] - detect images srcset attribute
    • +
    • [BUG FIXED] - small fixes for the documentation file
    • +
    + +

    v3.6.0 - 18 March, 2016

    +
      +
    • [FEATURE] - prepend, remove items public API
    • +
    • [FEATURE] - appendItems public API renamed to append
    • +
    • [FEATURE] - initialize the plugin from data attribute
    • +
    • [BUG FIXED] - reset filters active class after search is used
    • +
    + +

    v3.5.2 - 11 February, 2016

    +
      +
    • [BUG FIXED] - social icons position
    • +
    + +

    v3.5.1 - 30 January, 2016

    +
      +
    • [BUG FIXED] - singlePageInline prevent crash on double click
    • +
    + +

    v3.5.0 - 30 January, 2016

    +
      +
    • [FEATURE] - added social buttons to singlePage and singlePageInline
    • +
    • [BUG FIXED] - updateSinglePageStart event emitter fix
    • +
    • [BUG FIXED] - double click on singlePageInline items
    • +
    + +

    v3.4.3 - 6 January, 2016

    +
      +
    • [BUG FIXED] - firefox center lightbox images
    • +
    • [BUG FIXED] - improve singlePage popup behavior
    • +
    + +

    v3.4.2 - 12 December, 2015

    +
      +
    • [BUG FIXED] - singlePage animation improved
    • +
    • [BUG FIXED] - destroy method for slider
    • +
    • [BUG FIXED] - drag slider issue fix
    • +
    • [BUG FIXED] - small CSS improvements
    • +
    + +

    v3.4.0 - 15 November, 2015

    +
      +
    • [FEATURE] - deeplinking for singlePageInline
    • +
    • [BUG FIXED] - audio player layout in lightbox
    • +
    • [BUG FIXED] - drag behavior on firefox 42
    • +
    + +
      +
    • [FEATURE] - lazyLoad for images
    • +
    • [FEATURE] - inline slider inside items
    • +
    • [FEATURE] - slider-thumbnail new template
    • +
    • [FEATURE] - improve loadMore functionatility
    • +
    • [FEATURE] - new loading icon
    • +
    • [BUG FIXED] - fix loadMore when the js option is set but the loadMore html is deleted
    • +
    • [BUG FIXED] - singlePageInline fix for gridAdjustment: 'default' option
    • +
    • [BUG FIXED] - small CSS improvements
    • +
    + +

    v3.2.1 - 14 October, 2015

    +
      +
    • [BUG FIXED] - trigger load images in IE8
    • +
    • [BUG FIXED] - read filter name from URL
    • +
    • [BUG FIXED] - ted.com embed video issue
    • +
    • [BUG FIXED] - added autocomplete="off" attribute to search input
    • +
    + +

    v3.2.0 - 12 September, 2015

    +
      +
    • [FEATURE] - text message when no results match the search entry
    • +
    • [BUG FIXED] - zoom caption on safari osx
    • +
    • [BUG FIXED] - dropdown filter on mobile
    • +
    + +

    v3.1.1 - 7 September, 2015

    +
      +
    • [BUG FIXED] - init API method with a callback
    • +
    • [BUG FIXED] - set correctly the height for container when there are 0 items
    • +
    + +

    v3.1.0 - 2 September, 2015

    +
      +
    • [FEATURE] - added search system
    • +
    + +

    v3.0.4 - 30 August, 2015

    +
      +
    • [BUG FIXED] - caption fadeIn animation
    • +
    • [BUG FIXED] - improve stability
    • +
    + +

    v3.0.3 - 19 August, 2015

    +
      +
    • [BUG FIXED] - slideDelay animation fix for some edge cases
    • +
    • [BUG FIXED] - dropdown default header text
    • +
    • [BUG FIXED] - loadMore compatibility with jQuery 1.9.x & 2.0.0
    • +
    + +

    v3.0.2 - 14 August, 2015

    +
      +
    • [BUG FIXED] - slider destroy API method
    • +
    + +

    v3.0.1 - 4 August, 2015

    +
      +
    • [BUG FIXED] - mosaic generate responsive columns
    • +
    • [BUG FIXED] - trigger correctly loadMore callback when you append 0 items to grid
    • +
    + +

    v3.0.0 - 1 August, 2015

    +
      +
    • [FEATURE] - mosaic layout system
    • +
    • [FEATURE] - posibility to sort the items by dimension for a multi-column gap free layout
    • +
    • [FEATURE] - added 3 new starter templates
    • +
    • [FEATURE] - multiple filters support
    • +
    • [FEATURE] - stability & performance improvements
    • +
    • [FEATURE] - small style update for filters & loadMore
    • +
    + +

    v2.3.4 - 20 July, 2015

    +
      +
    • [BUG FIXED] - faq template bug on firefox, ios, IE8 & IE9
    • +
    + +

    v2.3.3 - 16 June, 2015

    +
      +
    • [BUG FIXED] - slider template fix singlePage
    • +
    + +

    v2.3.2 - 26 May, 2015

    +
      +
    • [BUG FIXED] - when the grid has 0 items init correctly the plugin
    • +
    • [BUG FIXED] - lightbox issue for singlePageInline
    • +
    + +

    v2.3.1 - 7 May, 2015

    +
      +
    • [BUG FIXED] - deeplinking for loadMore
    • +
    • [BUG FIXED] - caption CSS background color
    • +
    + +

    v2.3.0 - 4 May, 2015

    +
      +
    • [FEATURE] - added options to integrate filters & loadMore functionality into the plugin
    • +
    • [FEATURE] - added multiple grids on the same page example
    • +
    • [FEATURE] - code refractoring
    • +
    • [BUG FIXED] - animationType don't behave correctly on some edge cases
    • +
    • [BUG FIXED] - remove from dom unnecessary html nodes when animating
    • +
    • [BUG FIXED] - loadMore issue for full-width template
    • +
    • [BUG FIXED] - fixed some CSS
    • +
    + +

    v2.2.0 - 19 April, 2015

    +
      +
    • [FEATURE] - added new template layout(e.g. faq template)
    • +
    • [FEATURE] - added soundcloud.com support in ligthbox
    • +
    • [FEATURE] - added self hosted .mp3 files support in ligthbox
    • +
    • [FEATURE] - added default style caption (e.g. caption: '')
    • +
    • [FEATURE] - added two new API events: updateSinglePageStart.cbp and updateSinglePageInlineStart.cbp
    • +
    • [BUG FIXED] - singlePage hash issue for loadMore items
    • +
    • [BUG FIXED] - fixed gridAdjustement for `default` and `alignCenter` options
    • +
    + +

    v2.1.1 - 7 April, 2015

    +
      +
    • [BUG FIXED] - `bottomToTop` Display Type option
    • +
    • [BUG FIXED] - fixed infinite load more functionality
    • +
    + +

    v2.1.0 – 27 March, 2015

    +
      +
    • [FEATURE] - performance improvements
    • +
    • [FEATURE] - code refractoring
    • +
    • [FEATURE] - group images in `lightbox` or `singlePage` so that each project can have it's own gallery
    • +
    • [BUG FIXED] - stop filters action when grid is loading
    • +
    • [BUG FIXED] - open full screen videos for singlePageInline
    • +
    • [BUG FIXED] - singlePage deeplinking can create duplicates in href
    • +
    • [BREAKING CHANGE] - removed `lazyLoading` (displayType) option
    • +
    • [BREAKING CHANGE] - removed `boxShadow` (animationType) option
    • +
    + +

    v2.0.1 – 21 January, 2015

    +
      +
    • [BUG FIXED] - margin-top of singlePage content for small devices
    • +
    • [BUG FIXED] - slider-project template performance improvements
    • +
    • [BUG FIXED] - API destroy slider layout issue
    • +
    + +

    v2.0.0 – 17 January, 2015

    +
      +
    • [FEATURE] - slider layout option with drag support
    • +
    • [FEATURE] - better responsive layout system. now you can set the columns number based on the browser resolution
    • +
    • [FEATURE] - performance improvements
    • +
    • [FEATURE] - code refractoring
    • +
    • [FEATURE] - items auto height
    • +
    • [FEATURE] - added 9 new templates
    • +
    • [BUG FIXED] - mobile scroll for singlePage
    • +
    • [BREAKING CHANGE] - new html structure (old syntax still works)
    • +
    • [BREAKING CHANGE] - remove support for IE8 & IE9 animations
    • +
    + +

    v1.6.0 – 7 November, 2014

    +
      +
    • [FEATURE] - set the appear animation for singlePage popup (e.g. `left`, `right`, `fade`)
    • +
    • [FEATURE] - youtube & video posibility to add params (e.g. &rel=0&autoplay=0 etc)
    • +
    • [FEATURE] - code improvements
    • +
    • [BUG FIXED] - minor CSS bugs
    • +
    + +

    v1.5.1 – 29 September, 2014

    +
      +
    • [BUG FIXED] - multiple grids on the same page
    • +
    • [BUG FIXED] - mark-up for singlePage counter
    • +
    + +

    v1.5.0 – 8 September, 2014

    +
      +
    • [FEATURE] - improved responsive layout on mobile, tablet and desktop
    • +
    • [FEATURE] - added deeplinking for filters
    • +
    • [FEATURE] - open singlePageInline at the bottom of the grid
    • +
    • [FEATURE] - use lightbox and singlePage outside of the grid
    • +
    • [FEATURE] - set the mark-up for ligthbox and siglePage counter
    • +
    • [FEATURE] - improved the look and feel of templates
    • +
    • [BUG FIXED] - singlePageInline overflow the items in some cases
    • +
    • [BUG FIXED] - dropdown filters is now closing at click
    • +
    • [BUG FIXED] - responsive bugs on some mobile devices
    • +
    • [BREAKING CHANGE] - changed JS and HTML for dropdown filters
    • +
    + +

    v1.4.1 – 23 June, 2014

    +
      +
    • [BUG FIXED] - ios: double click to activate a filter
    • +
    • [BUG FIXED] - page shift to the left by 15-20px
    • +
    + +

    v1.4.0 – 10 May, 2014

    +
      +
    • [FEATURE] - added ted.com videos support
    • +
    • [FEATURE] - added support for self hosted videos
    • +
    • [BUG FIXED] - corect dimensions for default filter
    • +
    • [BUG FIXED] - page flickers during singlePage open transition
    • +
    + +

    v1.3.0 – 24 March, 2014

    +
      +
    • [FEATURE] - added default filter
    • +
    • [FEATURE] - added related projects, basic slider and closing transition for singlePage feature
    • +
    • [FEATURE] - focus the open panel for singlePageInline feature
    • +
    • [BUG FIXED] - CSS bugs fixed
    • +
    + +

    v1.2.0 – 23 January, 2014

    +
      +
    • [FEATURE] - added 12 new animations for filters: 'Slide Delay', '3d Flip', 'Rotate Sides', 'Flip Out Delay', 'Flip Out', 'Unfold', 'Fold Left', 'Scale Down', 'Scale Sides', 'Front Row', 'Flip Bottom', 'Rotate Room'
    • +
    • [FEATURE] - added a new feature to open projects (singlePageInline). See exeample on 'Lightbox Gallery' template
    • +
    • [BUG FIXED] - CSS bugs fixed
    • +
    + +

    v1.1.0 – 18 December, 2013

    +
      +
    • [FEATURE] - added a new animation for filters: 'Skew'
    • +
    • [FEATURE] - added 3 new caption effects: 'revealLeft', 'revealTop', 'pushDown'
    • +
    • [FEATURE] - added 2 new display type: 'fadeInToTop' and 'bottomToTop'
    • +
    • [FEATURE] - documentation updated
    • +
    + +

    v1.0.0 – 10 December, 2013

    +
      +
    • initial release
    • +
    + +
    +
    + Created by Mihai Buricea +
    +
    + + + + + + + + + + + diff --git a/documentation/js/main.js b/documentation/js/main.js new file mode 100644 index 0000000..b830893 --- /dev/null +++ b/documentation/js/main.js @@ -0,0 +1,86 @@ +$(document).ready(function() { + + var verticalLinks = { + + init: function() { + var t = this, + name; + + var url = document.URL; + + var index = url.lastIndexOf('#'); + + if (index > 0 && index < url.length - 1) { + name = url.substr(index); + + t.options.links.children().filter(function() { + + var me = $(this), + link = me.children(); + + if (link.attr('href') === name) { + me.addClass('active'); + } + }); + + } else { + t.options.links.children().eq(t.options.defaultLink).addClass('active'); + } + + // add events + t.addEvents(); + + }, + + // add events + addEvents: function() { + var t = this, + me; + + t.options.links.on('click', 'dt', function(e) { + me = $(this); + + me.addClass('active').siblings().removeClass('active'); + + }); + + $(window).scroll(function(e) { + + t.offset = $.map($('a[name]'), function(value, index) { + return { + el: $(value), + offset: $(value).offset().top + }; + }); + + var offset = e.currentTarget.pageYOffset, + hash; + + for (var i = 0; i < t.offset.length; i++) { + if (offset >= t.offset[i].offset) { + hash = t.offset[i].el.attr('name'); + } + } + + hash = (hash) ? hash : t.offset[0].el.attr('name'); + + $('#navigation').children().removeClass('active'); + + $('a[href="#' + hash + '"]').parent().addClass('active'); + + }); + }, + + + options: { + links: $('#navigation'), + defaultLink: 0 + } + + }; + + (Object.create(verticalLinks)).init(); + + prettyPrint(); + +}); diff --git a/documentation/js/prettify.js b/documentation/js/prettify.js new file mode 100644 index 0000000..ed472b5 --- /dev/null +++ b/documentation/js/prettify.js @@ -0,0 +1,33 @@ +!function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return e==="\\"||e==="-"||e==="]"||e==="^"?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],a= +b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.min(l,90)|32]),l<97||h>122||e.push([Math.max(97,h)&-33,Math.min(l,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];f=[];for(a=0;ah[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c.push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0,h=0;f=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var x=0,m=!1,j=!1,k=0,c=a.length;k=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf(f),B=l+f.length;t[2]&&(B=z.length-t[2].length,l=B-f.length);w=w.substring(5);H(j+h,z.substring(0,l),g,k);H(j+h+l,f,I(w,f),k);H(j+h+B,z.substring(B),g,k)}else k.push(j+h,w)}a.g=k}var b={},s;(function(){for(var g=a.concat(d),j=[],k={},c=0,i=g.length;c=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,q])):d.push(["com", +/^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+ +s+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");g.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/, +q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&g){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(j.createTextNode(d),a.nextSibling),s(a),c||a.parentNode.removeChild(a)}}function s(a){function b(a,c){var d= +c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var x=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,j=a.ownerDocument,k=j.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var c=[k],i=0;i=0;){var b=d[g];F.hasOwnProperty(b)?D.console&&console.warn("cannot override language handler %s",b):F[b]=a}}function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*=l&&(b+=2);g>=B&&(r+=2)}}finally{if(f)f.style.display=h}}catch(u){D.console&&console.log(u&&u.stack||u)}}var D=window,y=["break,continue,do,else,for,if,return,while"],E=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],N=[E,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"], +O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],P=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +Q=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],R=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, +V=/\S/,X=v({keywords:[M,O,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",P,Q,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),F={};p(X,["default-code"]);p(C([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", +/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);p(C([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/], +["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);p(v({keywords:M,hashComments:!0,cStyleComments:!0,types:R}),["c","cc","cpp","cxx","cyc","m"]);p(v({keywords:"null,true,false"}),["json"]);p(v({keywords:O,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:R}), +["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);p(v({keywords:Q, +hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(v({keywords:W,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]); +p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:D.prettyPrintOne=function(a,d,g){var b=document.createElement("div");b.innerHTML="
    "+a+"
    ";b=b.firstChild;g&&J(b,g,!0);K({h:d,j:g,c:b,i:1}); +return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}\b/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..489efc1 --- /dev/null +++ b/readme.txt @@ -0,0 +1,11 @@ +Cube Portfolio CSS, JS, IMAGES files: + folder: /cubeportfolio + +Documentation: + folder: /documentation + +Examples (demos): + folder: /templates + +Thank you for your purchase! +Mihai Buricea \ No newline at end of file diff --git a/templates/.DS_Store b/templates/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4ea61e3d23b7fdda889df7360f0c731a45897b3d GIT binary patch literal 8196 zcmeHM&2G~`5T0#A>!yE^Kx(=9g2bVfQiak3LW)8;^oA4!2SBaeq=}1Thu9%4At)E# z0eAx*g(u(@xbpz;&Dd1_NgH|s%C59K{+Vxg_S>D=j6+1K)^BVPtrL-f%CfYGWymw1Sb{2NyQ_pI73k~I&h|_ld48ix0(UXK%N24-RH=n7B$JsSXwT9S zYkvMB<8$A$G|wuj#%G={l~ECFh2*G_itnELC}rA zm3*ex8TevniZx}_RxLkZuZ~KFKXodZtX7!%&-6Jb(+wt{d-*?ZhE&GYn z9PF2FJn+5Ha=d0wz)qtHmFG_#ui+1Be&1^Z(oa2lVHgX>!hUIeIIL8*H_Xa*d9+~; zcXrAf=AFvj(P+U~yR~(H@1S$~X83mW?js0AQE?om)#(1L{e-Iv342}dd9LrZxD(Wp zEOCq4Akzl1C!n~6h2$k_Vq+ygC}CsCCP@-J6@OJpo;vXi(evLz=bM2ZltMV-92DI?)+b3k%@u-M}=x`-+%-NmFXMmoZ#u_#QV zc*~?vs~J=me4Oji3e2R?D?oDu31MGXHYsn|9_|{shz3?t*j3DnBU(eYHb=q>M&>xA zP7=&4X3&%QWR8-k>l08MeH~%JgJfr$5Q|g2lybea!9oWv>&Z&F8P1utq!k5>XhAzW z4l|V0TY?^+E>r9iZoVbB!S>VTk_^m7`sY4$~z`w+RD(u#GYq0p& zZ@R4UoNJq?2dG?FZyZU1ppkSOQqpnAvp)=RZ9@|!7n NF6;AOcI(w?egX(TRYCv& literal 0 HcmV?d00001 diff --git a/templates/agency/ajax-agency/loadMore.html b/templates/agency/ajax-agency/loadMore.html new file mode 100644 index 0000000..a1dfe3b --- /dev/null +++ b/templates/agency/ajax-agency/loadMore.html @@ -0,0 +1,66 @@ + + + + + + \ No newline at end of file diff --git a/templates/agency/index.html b/templates/agency/index.html new file mode 100644 index 0000000..fc122c3 --- /dev/null +++ b/templates/agency/index.html @@ -0,0 +1,238 @@ + + + + + + + Agency - Cube Portfolio + + + + + + + + +
    +
    +
    Filter by:
    +
    + All
    +
    | +
    + Identity
    +
    | +
    + Web Design
    +
    | +
    + Graphic
    +
    | +
    + Logo
    +
    +
    + +
    +
    Sort by:
    +
    +
    +
    Original order
    +
    +
    Original order
    +
    Title - ASC
    +
    Title - DESC
    +
    Description - ASC
    +
    Description - DESC
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + diff --git a/templates/agency/js/main.js b/templates/agency/js/main.js new file mode 100644 index 0000000..aaf3b04 --- /dev/null +++ b/templates/agency/js/main.js @@ -0,0 +1,41 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-agency').cubeportfolio({ + filters: '#js-filters-agency', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'slideLeft', + gapHorizontal: 35, + gapVertical: 15, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + plugins: { + loadMore: { + element: '#js-loadMore-agency', + action: 'click', + loadItems: 3, + }, + sort: { + element: '#js-sort-agency' + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/awesome-work/ajax-awesome-work/loadMore.html b/templates/awesome-work/ajax-awesome-work/loadMore.html new file mode 100644 index 0000000..b076b05 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/loadMore.html @@ -0,0 +1,40 @@ +
    + +
    + +
    +
    +
    +
    Seemple* Music
    +
    Graphic / Logo
    +
    +
    + +
    + +
    +
    +
    +
    Remind~Me More
    +
    Identity / Graphic
    +
    +
    + +
    + +
    +
    +
    +
    Workout Buddy
    +
    Web Design / Graphic
    +
    +
    + +
    + +
    +
    +
    +
    Bills Bills Bills
    +
    Identity / Web Design
    +
    \ No newline at end of file diff --git a/templates/awesome-work/ajax-awesome-work/project1.html b/templates/awesome-work/ajax-awesome-work/project1.html new file mode 100644 index 0000000..3d6dd14 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project1.html @@ -0,0 +1,60 @@ +
    Dashboard
    +
    by Paul Flavius Nechita
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project10.html b/templates/awesome-work/ajax-awesome-work/project10.html new file mode 100644 index 0000000..3dca89a --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project10.html @@ -0,0 +1,60 @@ +
    Bills Bills Bills
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project2.html b/templates/awesome-work/ajax-awesome-work/project2.html new file mode 100644 index 0000000..a00dc5c --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project2.html @@ -0,0 +1,60 @@ +
    World Clock
    +
    by Paul Flavius Nechita
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project3.html b/templates/awesome-work/ajax-awesome-work/project3.html new file mode 100644 index 0000000..04f5d60 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project3.html @@ -0,0 +1,60 @@ +
    To-Do Dashboard
    +
    Work management platform for creatives with a lot of cool features. Easier.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project4.html b/templates/awesome-work/ajax-awesome-work/project4.html new file mode 100644 index 0000000..5e5015d --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project4.html @@ -0,0 +1,60 @@ +
    Events and More
    +
    Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project5.html b/templates/awesome-work/ajax-awesome-work/project5.html new file mode 100644 index 0000000..4b7e850 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project5.html @@ -0,0 +1,60 @@ +
    WhereTO App
    +
    Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project6.html b/templates/awesome-work/ajax-awesome-work/project6.html new file mode 100644 index 0000000..deb61b7 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project6.html @@ -0,0 +1,66 @@ +
    Ski Buddy
    +
    Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project7.html b/templates/awesome-work/ajax-awesome-work/project7.html new file mode 100644 index 0000000..327324a --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project7.html @@ -0,0 +1,60 @@ +
    Seemple Music for iPad
    +
    Upcoming music app for iPad. More info and other screens will follow shortly.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project8.html b/templates/awesome-work/ajax-awesome-work/project8.html new file mode 100644 index 0000000..9440c2e --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project8.html @@ -0,0 +1,60 @@ +
    Remind~Me More
    +
    Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/ajax-awesome-work/project9.html b/templates/awesome-work/ajax-awesome-work/project9.html new file mode 100644 index 0000000..f7d68d3 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project9.html @@ -0,0 +1,60 @@ +
    Workout Buddy
    +
    by Tiberiu Neamu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/awesome-work/index.html b/templates/awesome-work/index.html new file mode 100644 index 0000000..a201469 --- /dev/null +++ b/templates/awesome-work/index.html @@ -0,0 +1,114 @@ + + + + + + + Awesome Work - Cube Portfolio + + + + + + + + +
    +
    + SHOW ALL +
    +
    + IDENTITY
    +
    +
    + WEB DESIGN
    +
    +
    + GRAPHIC
    +
    +
    + LOGO
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + Dashboard +
    Web Design / Graphic
    +
    +
    + +
    + +
    +
    +
    + World Clock +
    Logo / Web Design
    +
    +
    + +
    + +
    +
    +
    + To-Do Dashboard +
    Graphic / Logo
    +
    +
    + +
    + +
    +
    +
    + Events and More +
    Web Design / Graphic
    +
    +
    + +
    + +
    +
    +
    + WhereTO App +
    Web Design / Identity
    +
    +
    + +
    + +
    +
    +
    + Ski * Buddy +
    Identity / Web Design
    +
    +
    + + + + + + + + + + + + + diff --git a/templates/awesome-work/js/main.js b/templates/awesome-work/js/main.js new file mode 100644 index 0000000..2ac26fd --- /dev/null +++ b/templates/awesome-work/js/main.js @@ -0,0 +1,62 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-awesome-work').cubeportfolio({ + filters: '#js-filters-awesome-work', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'scaleSides', + gapHorizontal: 30, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 4, + }, { + width: 1100, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + gapHorizontal: 15, + gapVertical: 15, + } + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 400, + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
    {{current}} of {{total}}
    ', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-awesome-work', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/blog-posts/index.html b/templates/blog-posts/index.html new file mode 100644 index 0000000..1f59a42 --- /dev/null +++ b/templates/blog-posts/index.html @@ -0,0 +1,215 @@ + + + + + + + Blog Posts - Cube Portfolio + + + + + + + + +
    +
    +
    All (
    )
    +
    Print (
    )
    +
    Web Design (
    )
    +
    Logo (
    )
    +
    Motion (
    )
    +
    + + +
    + +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + We want to rule the world +
    20 december 2013
    +
    |
    + 12 comments +
    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium laud mi se attuie are.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + Create your own playlist +
    25 december 2013
    +
    |
    + 8 comments +
    Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae guit arm iore.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + Your online buddie +
    29 december 2013
    +
    |
    + 23 comments +
    Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue men tuhi spectrum alle me.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + A man with a true style +
    5 january 2014
    +
    |
    + 111 comments +
    Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam moles buco bina plata.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + We believe in leaders +
    8 january 2014
    +
    |
    + 1 comments +
    Voluptas nulla pariatur? At vero eos et accusamus et iusto odio dignissimos ducimu itly perscpi.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + Here's a quick breakdown +
    14 january 2014
    +
    |
    + 54 comments +
    Perspiciatis unde omnis iste natus error sit voluptatem accusantium. Sed ut perspiciatismus.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + Designing Your First Website +
    67 january 2014
    +
    |
    + 12 comments +
    Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, voluptatem accusantium consequat.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + Coding Your First Website +
    25 january 2014
    +
    |
    + 6 comments +
    Sed ut perspiciatis unde omnis iste natus error sit voluptatem voluptatem accusantium vitae.
    +
    +
    + +
    + +
    +
    +
    +
    +
    VIEW POST
    +
    +
    +
    +
    + Responsive Web Design +
    28 january 2014
    +
    |
    + 3 comments +
    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium com alinus vite.
    +
    +
    + + + + + + + + + + + diff --git a/templates/blog-posts/js/main.js b/templates/blog-posts/js/main.js new file mode 100644 index 0000000..9fd8c44 --- /dev/null +++ b/templates/blog-posts/js/main.js @@ -0,0 +1,42 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-blog-posts').cubeportfolio({ + filters: '#js-filters-blog-posts', + search: '#js-search-blog-posts', + defaultFilter: '*', + animationType: '3dflip', + gapHorizontal: 70, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 4, + }, { + width: 1100, + cols: 3, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 50, + gapVertical: 20, + } + }, { + width: 320, + cols: 1, + options: { + caption: '', + gapHorizontal: 50, + } + }], + caption: 'revealBottom', + displayType: 'fadeIn', + displayTypeSpeed: 400, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/clients/index.html b/templates/clients/index.html new file mode 100644 index 0000000..f1aa366 --- /dev/null +++ b/templates/clients/index.html @@ -0,0 +1,114 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
    Our Clients
    + + + + + + + + + + + + + diff --git a/templates/clients/js/main.js b/templates/clients/js/main.js new file mode 100644 index 0000000..f417252 --- /dev/null +++ b/templates/clients/js/main.js @@ -0,0 +1,35 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-clients').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: true, + autoTimeout: 3000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: true, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + }], + gapHorizontal: 0, + gapVertical: 5, + caption: 'opacity', + displayType: 'fadeIn', + displayTypeSpeed: 100, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/faq/index.html b/templates/faq/index.html new file mode 100644 index 0000000..5b2ead6 --- /dev/null +++ b/templates/faq/index.html @@ -0,0 +1,290 @@ + + + + + + + FAQ - Cube Portfolio + + + + + + + + +
    +
    + All +
    +
    + Buying +
    +
    + Author +
    +
    + Account +
    +
    + Copyright +
    +
    + Community +
    +
    + +
    +
    +
    +
    + + + + Where can I find my Purchase Code? +
    +
    +
    + Every item purchased on Envato Market has a unique code, called a purchase code. +
    + A purchase code is used by authors to verify you have purchased a licence for the item. The purchase code may be required to access an author’s support site (if support is offered) or to enable automatic updates. +
    +
    +
    +
    +
    +
    +
    + + + + Forum Comments by Envato Staff & Moderators +
    +
    +
    + Envato is extremely fortunate to have a huge community with highly engaged users. Part of our community’s time on Envato Market is spent within our forums, our common grounds for communication. In order to clarify the different roles and responsibilities of the various people and roles that post in our forums we hope you find the following information useful. +
    +
    +
    +
    +
    +
    +
    + + + + How Do I Get Support For An Item I've Purchased? +
    +
    +
    + Authors who are designers, developers and creatives from all over the globe are responsible for the work you see on Envato Market. + + Authors are not obligated to provide support, however most do. You will know if an author provides support, simply by viewing the “Support” tab on the item page. +
    +
    +
    +
    +
    +
    +
    + + + + Which Author Payment Option Do I Choose? +
    +
    +
    + As an Envato Market author you need to select the most appropriate payment method in order to receive your earnings. +
    + Each payment method and provider may have restrictions regarding which countries they pay to, for legal and / or commercial reasons. +
    +
    +
    +
    + +
    +
    +
    + + + + Historical Payment Rates +
    +
    +
    + Over the years Envato Market has changed fees & rates several times – always in favour of our authoring community! If you have been selling files for some time, these rates may apply to you. If you are a new author, you should review our Current Rates or read about our author program If you are interested in Selling Your Work. +
    +
    +
    +
    + +
    +
    +
    + + + + Author Collaboration +
    +
    +
    + Authors may unofficially partner with other authors to create new items, but we advise strong caution when doing so. Envato Market considers the person who created an account and agreed to the terms and conditions to be the sole copyright holder of the items for sale and the only person eligible to withdraw any funds. +
    +
    +
    +
    + +
    +
    +
    + + + + An Author’s Introduction to Envato Market +
    +
    +
    + Becoming an author on Envato Market carries certain legal implications. Everything you sell must be your own original content. If you use any assets that are owned by someone else, you must have a license that grants you permission to use and resell them. +
    +
    +
    +
    + + + +
    +
    +
    + + + + Buyers Guide to YouTube Content ID & Copyright Notices +
    +
    +
    + Content ID is a popular digital fingerprinting system that content creators can use to easily identify and manage their copyrighted content on YouTube. Videos uploaded to YouTube are compared against audio and video files registered with Content ID by content owners, looking for any matches. +
    +
    +
    +
    +
    +
    +
    + + + + Forum and Community Rules +
    +
    +
    + Envato takes great pride in it’s global and thriving community! They're part of what makes the Envato Market sites fun and friendly. The forum rules and guidelines focus on mutual respect. +
    + All users who wish to participate or give feedback are invited to do so. +
    +
    +
    +
    +
    + + + + + + + + + + + diff --git a/templates/faq/js/main.js b/templates/faq/js/main.js new file mode 100644 index 0000000..acefcf8 --- /dev/null +++ b/templates/faq/js/main.js @@ -0,0 +1,15 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-faq').cubeportfolio({ + filters: '#js-filters-faq', + defaultFilter: '*', + animationType: 'sequentially', + gridAdjustment: 'default', + displayType: 'default', + caption: 'expand', + gapHorizontal: 0, + gapVertical: 0, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/full-width/ajax-full-width/loadMore.html b/templates/full-width/ajax-full-width/loadMore.html new file mode 100644 index 0000000..31699e6 --- /dev/null +++ b/templates/full-width/ajax-full-width/loadMore.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/full-width/index.html b/templates/full-width/index.html new file mode 100644 index 0000000..9c9572c --- /dev/null +++ b/templates/full-width/index.html @@ -0,0 +1,267 @@ + + + + + + + Full Width Layout - Cube Portfolio + + + + + + + + +
    +
    + ALL
    +
    / +
    + IDENTITY
    +
    / +
    + WEB DESIGN
    +
    / +
    + GRAPHIC
    +
    / +
    + LOGO
    +
    / +
    + MOTION
    +
    +
    + + + + + + + + + + + + + + + diff --git a/templates/full-width/js/main.js b/templates/full-width/js/main.js new file mode 100644 index 0000000..6f8ab9f --- /dev/null +++ b/templates/full-width/js/main.js @@ -0,0 +1,50 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-full-width').cubeportfolio({ + filters: '#js-filters-full-width', + layoutMode: 'mosaic', + sortByDimension: true, + defaultFilter: '*', + animationType: 'fadeOutTop', + gapHorizontal: 0, + gapVertical: 0, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 10, + gapVertical: 10, + } + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + plugins: { + loadMore: { + element: '#js-loadMore-full-width', + action: 'auto', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/juicy-projects/ajax-juicy-projects/loadMore.html b/templates/juicy-projects/ajax-juicy-projects/loadMore.html new file mode 100644 index 0000000..4d8be94 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/loadMore.html @@ -0,0 +1,106 @@ +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    Shopping Gallery
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Timezone Mgmt
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Story Book
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Website Lightbox
    +
    Identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Mountaineer
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Archiview
    +
    Graphic / Logo
    +
    \ No newline at end of file diff --git a/templates/juicy-projects/ajax-juicy-projects/project1.html b/templates/juicy-projects/ajax-juicy-projects/project1.html new file mode 100644 index 0000000..d3afd02 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project1.html @@ -0,0 +1,93 @@ +
    Dashboard
    +
    by Paul Flavius Nechita
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    + + + + diff --git a/templates/juicy-projects/ajax-juicy-projects/project10.html b/templates/juicy-projects/ajax-juicy-projects/project10.html new file mode 100644 index 0000000..dd15925 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project10.html @@ -0,0 +1,89 @@ +
    Bills Bills Bills
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project11.html b/templates/juicy-projects/ajax-juicy-projects/project11.html new file mode 100644 index 0000000..09c0347 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project11.html @@ -0,0 +1,89 @@ +
    Generic Apps
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project12.html b/templates/juicy-projects/ajax-juicy-projects/project12.html new file mode 100644 index 0000000..2325af1 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project12.html @@ -0,0 +1,89 @@ +
    Speed Detector
    +
    You are an outstanding athlete and you need to measure your skills !
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project13.html b/templates/juicy-projects/ajax-juicy-projects/project13.html new file mode 100644 index 0000000..6c5f378 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project13.html @@ -0,0 +1,89 @@ +
    Shopping Gallery
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project14.html b/templates/juicy-projects/ajax-juicy-projects/project14.html new file mode 100644 index 0000000..0fa1bd8 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project14.html @@ -0,0 +1,89 @@ +
    Timezone Mgmt
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project15.html b/templates/juicy-projects/ajax-juicy-projects/project15.html new file mode 100644 index 0000000..f5c7f29 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project15.html @@ -0,0 +1,89 @@ +
    Story Book
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project16.html b/templates/juicy-projects/ajax-juicy-projects/project16.html new file mode 100644 index 0000000..e736266 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project16.html @@ -0,0 +1,89 @@ +
    Website Lightbox
    +
    by Paul Flavius Nechita
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project17.html b/templates/juicy-projects/ajax-juicy-projects/project17.html new file mode 100644 index 0000000..4865b1e --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project17.html @@ -0,0 +1,89 @@ +
    Mountaineer
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project18.html b/templates/juicy-projects/ajax-juicy-projects/project18.html new file mode 100644 index 0000000..9b8dda7 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project18.html @@ -0,0 +1,89 @@ +
    Archiview
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project2.html b/templates/juicy-projects/ajax-juicy-projects/project2.html new file mode 100644 index 0000000..72e2afe --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project2.html @@ -0,0 +1,89 @@ +
    World Clock
    +
    by Paul Flavius Nechita
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project3.html b/templates/juicy-projects/ajax-juicy-projects/project3.html new file mode 100644 index 0000000..77fbf61 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project3.html @@ -0,0 +1,89 @@ +
    To-Do Dashboard
    +
    Work management platform for creatives with a lot of cool features. Easier.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project4.html b/templates/juicy-projects/ajax-juicy-projects/project4.html new file mode 100644 index 0000000..6ab9e78 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project4.html @@ -0,0 +1,89 @@ +
    Events and More
    +
    Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project5.html b/templates/juicy-projects/ajax-juicy-projects/project5.html new file mode 100644 index 0000000..b8fba26 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project5.html @@ -0,0 +1,89 @@ +
    WhereTO App
    +
    Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project6.html b/templates/juicy-projects/ajax-juicy-projects/project6.html new file mode 100644 index 0000000..0a31917 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project6.html @@ -0,0 +1,89 @@ +
    Ski Buddy
    +
    Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project7.html b/templates/juicy-projects/ajax-juicy-projects/project7.html new file mode 100644 index 0000000..28b9f2c --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project7.html @@ -0,0 +1,89 @@ +
    Seemple Music for iPad
    +
    Upcoming music app for iPad. More info and other screens will follow shortly.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project8.html b/templates/juicy-projects/ajax-juicy-projects/project8.html new file mode 100644 index 0000000..429b02b --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project8.html @@ -0,0 +1,89 @@ +
    Remind~Me More
    +
    Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/ajax-juicy-projects/project9.html b/templates/juicy-projects/ajax-juicy-projects/project9.html new file mode 100644 index 0000000..62fa3a6 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project9.html @@ -0,0 +1,89 @@ +
    Workout Buddy
    +
    by Tiberiu Neamu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    + + +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/juicy-projects/index.html b/templates/juicy-projects/index.html new file mode 100644 index 0000000..e79871c --- /dev/null +++ b/templates/juicy-projects/index.html @@ -0,0 +1,287 @@ + + + + + + + Juicy Projects - Cube Portfolio + + + + + + + + +
    +
    +
    + All
    +
    +
    + Identity
    +
    +
    + Web Design
    +
    +
    + Graphic
    +
    +
    + Logo
    +
    +
    + +
    +
    +
    +
    Original sorting
    +
    +
    Original sorting
    +
    Title
    +
    Description
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Dashboard
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    World Clock
    +
    Logo / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    To-Do Dashboard
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Events and More
    +
    Web Design / Graphic
    +
    +
    +
    +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    WhereTO App
    +
    Web Design / Identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Ski * Buddy
    +
    Identity / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Seemple* Music
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Remind~Me More
    +
    Identity / Graphic
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Workout Buddy
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Bills Bills Bills
    +
    Identity / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Generic Apps
    +
    Identity / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Speed Detector
    +
    Graphic / Web Design
    +
    +
    + + + + + + + + + + + + + diff --git a/templates/juicy-projects/js/main.js b/templates/juicy-projects/js/main.js new file mode 100644 index 0000000..404dd6c --- /dev/null +++ b/templates/juicy-projects/js/main.js @@ -0,0 +1,75 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-juicy-projects').cubeportfolio({ + filters: '#js-filters-juicy-projects', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 30, + gapVertical: 10, + } + }], + caption: 'overlayBottomPush', + displayType: 'sequentially', + displayTypeSpeed: 80, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
    {{current}} of {{total}}
    ', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-juicy-projects', + action: 'click', + loadItems: 3, + }, + sort: { + element: '#js-sort-juicy-projects', + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/lightbox-gallery/.DS_Store b/templates/lightbox-gallery/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c7ec6e97743ba0dad4b6b3c88898d5c46010cd11 GIT binary patch literal 6148 zcmeHK!EVz)5S>i}-54Qq0JX=xAaMvNRVY1FNLDC^-jIyo0I0Qblo+|*Dt1WQG|0aJ zf54~k1$+*?on27V6sf%+RCc1-H=dmtYoFs;FA<6UB;6ot6On`(Yz7!E5HoLdNgB?x z3KU%9A?1|OkVaH3MSF*5z%%f#F<{=^dlb_L=nq?c9X?f@>eM=7WtgO1-@1n8Nym50?%0LFUgLlzLPopZXCS^Y!zcE)Y z;%byQ`=!?TZ#zz2WrOKn`|dMcRB=`e#+;m`1BASNofWB`_VuJlORf{y2`O8$wbx#s z&3e7fj_Pf8=N&cM+Uj=H=IKR7;_oz6df=0%b~vtzmA@E3f6aRo9z zM&lya#SmGhVu03JPzs`t=n=Qj1Io`4{uOa&32)%Rm5VWA?V_0LN;ea5j!3NE%Ox0a ze`9&;60ttSGvFEczZfw6K|u|M4r`0tIxz4N0N8|^1-AJxFgeO$=&-hk8Hli{K$|Mu z5kuH?_?3$b9o80YIth395bn;xolped9rYE5lL#&P(KFx~SY%+uUbfBt|NPJA|HUMK z + +
    + +
    +
    +
    +
    +
    Flat Roman
    +
    by Cosmin Capitanu
    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project1.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project1.html new file mode 100644 index 0000000..594511e --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project1.html @@ -0,0 +1,57 @@ +
    +
    +
    + +
    +
    + +
    +
    World Clock
    +
    by Paul Flavius Nechita
    + +
    Minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project10.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project10.html new file mode 100644 index 0000000..f61087b --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project10.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Flat Roman Typeface Ui
    +
    by Cosmin Capitanu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project11.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project11.html new file mode 100644 index 0000000..585a5b6 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project11.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Music Player
    +
    by Cosmin Capitanu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project12.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project12.html new file mode 100644 index 0000000..32e1cf9 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project12.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Speed Detector
    +
    by Cosmin Capitanu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project13.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project13.html new file mode 100644 index 0000000..481dedd --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project13.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Sonor Website
    +
    by Cosmin Capitanu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project2.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project2.html new file mode 100644 index 0000000..4f0a186 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project2.html @@ -0,0 +1,45 @@ +
    +
    + + + +
    + + + +
    + +
    +
    Bolt UI
    +
    by Tiberiu Neamu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project3.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project3.html new file mode 100644 index 0000000..84491f1 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project3.html @@ -0,0 +1,41 @@ +
    +
    +
    + +
    +
    + +
    +
    WhereTO App
    +
    by Tiberiu Neamu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project4.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project4.html new file mode 100644 index 0000000..cb7afe9 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project4.html @@ -0,0 +1,57 @@ +
    +
    +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    +
    + +
    +
    iDevices
    +
    by Tiberiu Neamu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project5.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project5.html new file mode 100644 index 0000000..aa535a6 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project5.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Seemple* Music
    +
    by Tiberiu Neamu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project6.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project6.html new file mode 100644 index 0000000..d54267a --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project6.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Remind~Me Widget
    +
    by Tiberiu Neamu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project7.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project7.html new file mode 100644 index 0000000..568c0e4 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project7.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Workout Buddy
    +
    by Tiberiu Neamu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil alias.
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project8.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project8.html new file mode 100644 index 0000000..9636d4b --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project8.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Digital Menu
    +
    by Cosmin Capitanu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project9.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project9.html new file mode 100644 index 0000000..9c76ead --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project9.html @@ -0,0 +1,41 @@ +
    +
    + + + +
    + +
    +
    Holiday Selector
    +
    by Cosmin Capitanu
    + +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
    + + + + +
    +
    diff --git a/templates/lightbox-gallery/index.html b/templates/lightbox-gallery/index.html new file mode 100644 index 0000000..7ceb445 --- /dev/null +++ b/templates/lightbox-gallery/index.html @@ -0,0 +1,192 @@ + + + + + + + Lightbox Gallery - Cube Portfolio + + + + + + + + +
    +
    +
    +
    Filter Gallery
    +
    +
    All
    +
    Identity
    +
    Web Design
    +
    Print
    +
    +
    +
    + +
    +
    All
    +
    Graphic
    +
    Logo
    +
    Motion
    +
    +
    + + + + + + + + + + + + + + + diff --git a/templates/lightbox-gallery/js/main.js b/templates/lightbox-gallery/js/main.js new file mode 100644 index 0000000..8d529cb --- /dev/null +++ b/templates/lightbox-gallery/js/main.js @@ -0,0 +1,71 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-lightbox-gallery').cubeportfolio({ + filters: '#js-filters-lightbox-gallery1, #js-filters-lightbox-gallery2', + layoutMode: 'grid', + mediaQueries: [{ + width: 1500, + cols: 4, + }, { + width: 1100, + cols: 3, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + } + }], + defaultFilter: '*', + animationType: 'flipOutDelay', + gapHorizontal: 10, + gapVertical: 10, + gridAdjustment: 'responsive', + caption: 'overlayBottomAlong', + displayType: 'sequentially', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + // singlePageInline + singlePageInlineDelegate: '.cbp-singlePageInline', + singlePageInlinePosition: 'below', + singlePageInlineInFocus: true, + singlePageInlineCallback: function(url, element) { + // to update singlePageInline content use the following method: this.updateSinglePageInline(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + + t.updateSinglePageInline(result); + + }) + .fail(function() { + t.updateSinglePageInline('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-lightbox-gallery', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/masonry-projects/ajax-masonry-projects/loadMore.html b/templates/masonry-projects/ajax-masonry-projects/loadMore.html new file mode 100644 index 0000000..f370258 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/loadMore.html @@ -0,0 +1,102 @@ +
    +
    +
    + +
    +
    + +
    +
    + Mountaineer +
    graphic / logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Timezone Mgmt +
    graphic / logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Archiview +
    graphic / logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Website Lightbox +
    identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Shopping Gallery +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Story Book +
    Graphic / Logo
    +
    \ No newline at end of file diff --git a/templates/masonry-projects/ajax-masonry-projects/project1.html b/templates/masonry-projects/ajax-masonry-projects/project1.html new file mode 100644 index 0000000..1fd1d8f --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project1.html @@ -0,0 +1,60 @@ +
    Dashboard
    +
    by Paul Flavius Nechita
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project10.html b/templates/masonry-projects/ajax-masonry-projects/project10.html new file mode 100644 index 0000000..b1923d3 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project10.html @@ -0,0 +1,60 @@ +
    Bills Bills Bills
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project11.html b/templates/masonry-projects/ajax-masonry-projects/project11.html new file mode 100644 index 0000000..e927b12 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project11.html @@ -0,0 +1,60 @@ +
    Generic Apps
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project12.html b/templates/masonry-projects/ajax-masonry-projects/project12.html new file mode 100644 index 0000000..4a01746 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project12.html @@ -0,0 +1,66 @@ +
    Speed Detector
    +
    You are an outstanding athlete and you need to measure your skills !
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project13.html b/templates/masonry-projects/ajax-masonry-projects/project13.html new file mode 100644 index 0000000..a9f67ba --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project13.html @@ -0,0 +1,60 @@ +
    Shopping Gallery
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project14.html b/templates/masonry-projects/ajax-masonry-projects/project14.html new file mode 100644 index 0000000..98d2a0a --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project14.html @@ -0,0 +1,60 @@ +
    Timezone Mgmt
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project15.html b/templates/masonry-projects/ajax-masonry-projects/project15.html new file mode 100644 index 0000000..99d640b --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project15.html @@ -0,0 +1,60 @@ +
    Story Book
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project16.html b/templates/masonry-projects/ajax-masonry-projects/project16.html new file mode 100644 index 0000000..fd4d105 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project16.html @@ -0,0 +1,60 @@ +
    Website Lightbox
    +
    by Paul Flavius Nechita
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project17.html b/templates/masonry-projects/ajax-masonry-projects/project17.html new file mode 100644 index 0000000..186775a --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project17.html @@ -0,0 +1,60 @@ +
    Mountaineer
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project18.html b/templates/masonry-projects/ajax-masonry-projects/project18.html new file mode 100644 index 0000000..f74cf01 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project18.html @@ -0,0 +1,60 @@ +
    Archiview
    +
    by Cosmin Capitanu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project2.html b/templates/masonry-projects/ajax-masonry-projects/project2.html new file mode 100644 index 0000000..d585b4e --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project2.html @@ -0,0 +1,60 @@ +
    World Clock
    +
    by Paul Flavius Nechita
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project3.html b/templates/masonry-projects/ajax-masonry-projects/project3.html new file mode 100644 index 0000000..3e069c2 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project3.html @@ -0,0 +1,60 @@ +
    To-Do Dashboard
    +
    Work management platform for creatives with a lot of cool features. Easier.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project4.html b/templates/masonry-projects/ajax-masonry-projects/project4.html new file mode 100644 index 0000000..3180336 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project4.html @@ -0,0 +1,60 @@ +
    WhereTO App
    +
    Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project5.html b/templates/masonry-projects/ajax-masonry-projects/project5.html new file mode 100644 index 0000000..dfd4376 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project5.html @@ -0,0 +1,60 @@ +
    Events and More
    +
    Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project6.html b/templates/masonry-projects/ajax-masonry-projects/project6.html new file mode 100644 index 0000000..fba2052 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project6.html @@ -0,0 +1,66 @@ +
    Ski Buddy
    +
    Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project7.html b/templates/masonry-projects/ajax-masonry-projects/project7.html new file mode 100644 index 0000000..b3c1dc0 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project7.html @@ -0,0 +1,60 @@ +
    Seemple Music for iPad
    +
    Upcoming music app for iPad. More info and other screens will follow shortly.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project8.html b/templates/masonry-projects/ajax-masonry-projects/project8.html new file mode 100644 index 0000000..0d8c7bb --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project8.html @@ -0,0 +1,60 @@ +
    Remind~Me More
    +
    Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/ajax-masonry-projects/project9.html b/templates/masonry-projects/ajax-masonry-projects/project9.html new file mode 100644 index 0000000..f298e43 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project9.html @@ -0,0 +1,60 @@ +
    Workout Buddy
    +
    by Tiberiu Neamu
    + +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/masonry-projects/index.html b/templates/masonry-projects/index.html new file mode 100644 index 0000000..6561667 --- /dev/null +++ b/templates/masonry-projects/index.html @@ -0,0 +1,261 @@ + + + + + + + Masonry Layout - Cube Portfolio + + + + + + + + +
    +
    + All
    +
    +
    + Identity
    +
    +
    + Web Design
    +
    +
    + Graphic
    +
    +
    + Logo
    +
    +
    + Logo & Graphic
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + BeenTo +
    web design / graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    + World Clock +
    logos / web design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + To-Do Dashboard +
    graphic / logos
    +
    +
    +
    +
    + +
    +
    + +
    +
    + WhereTO App +
    web design / identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Events and More +
    web design / graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Ski * Buddy +
    identity / web design
    +
    +
    +
    +
    + +
    +
    + +
    +
    + Seemple* Music +
    graphic / logos
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + Remind~Me More +
    identity / graphic
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + Workout Buddy +
    web design / graphic
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + Bills Bills Bills +
    identity / web design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + Generic Apps +
    identity / logos
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + Speed Detector +
    graphic / web design
    +
    +
    + + + + + + + + + + + + + diff --git a/templates/masonry-projects/js/main.js b/templates/masonry-projects/js/main.js new file mode 100644 index 0000000..77fa6b8 --- /dev/null +++ b/templates/masonry-projects/js/main.js @@ -0,0 +1,72 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-masonry-projects').cubeportfolio({ + filters: '#js-filters-masonry-projects', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 25, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3 + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 25, + gapVertical: 10, + } + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
    {{current}} of {{total}}
    ', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-masonry-projects', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/masonry/index.html b/templates/masonry/index.html new file mode 100644 index 0000000..867d977 --- /dev/null +++ b/templates/masonry/index.html @@ -0,0 +1,226 @@ + + + + + + + Masonry Layout - Cube Portfolio + + + + + + + + +
    +
    + All
    +
    +
    + Identity
    +
    +
    + Web Design
    +
    +
    + Graphic
    +
    +
    + Web Design & Identity
    +
    +
    + + + + + + + + + + + + + diff --git a/templates/masonry/js/main.js b/templates/masonry/js/main.js new file mode 100644 index 0000000..4b85876 --- /dev/null +++ b/templates/masonry/js/main.js @@ -0,0 +1,41 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-masonry').cubeportfolio({ + filters: '#js-filters-masonry', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'slideDelay', + gapHorizontal: 20, + gapVertical: 20, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 10, + gapVertical: 10, + } + }], + caption: 'overlayBottomAlong', + displayType: 'bottomToTop', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/meet-the-team/ajax-meet-the-team/member1.html b/templates/meet-the-team/ajax-meet-the-team/member1.html new file mode 100644 index 0000000..2069167 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member1.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Tony Grue
    +
    Finance
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of graur codrin / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member10.html b/templates/meet-the-team/ajax-meet-the-team/member10.html new file mode 100644 index 0000000..35aa2c8 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member10.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Tom Hill
    +
    Finance
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member11.html b/templates/meet-the-team/ajax-meet-the-team/member11.html new file mode 100644 index 0000000..6167f7d --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member11.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Adam Bert
    +
    Support
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member12.html b/templates/meet-the-team/ajax-meet-the-team/member12.html new file mode 100644 index 0000000..77e953a --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member12.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Charlie Ohm
    +
    Marketing
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member2.html b/templates/meet-the-team/ajax-meet-the-team/member2.html new file mode 100644 index 0000000..07592f4 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member2.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Joseph Murphy
    +
    Support
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member3.html b/templates/meet-the-team/ajax-meet-the-team/member3.html new file mode 100644 index 0000000..38995e3 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member3.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Alison Davis
    +
    Finance
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member4.html b/templates/meet-the-team/ajax-meet-the-team/member4.html new file mode 100644 index 0000000..f97da3f --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member4.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Alicia Taylor
    +
    Support
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of graur razvan ionut / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member5.html b/templates/meet-the-team/ajax-meet-the-team/member5.html new file mode 100644 index 0000000..68cfd93 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member5.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Andreea Hill
    +
    Marketing
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of Ambro / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member6.html b/templates/meet-the-team/ajax-meet-the-team/member6.html new file mode 100644 index 0000000..9268574 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member6.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Adam Chen
    +
    Web Design
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member7.html b/templates/meet-the-team/ajax-meet-the-team/member7.html new file mode 100644 index 0000000..7da4459 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member7.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Mike Chant
    +
    Marketing
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member8.html b/templates/meet-the-team/ajax-meet-the-team/member8.html new file mode 100644 index 0000000..33a862e --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member8.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Carla Smith
    +
    Marketing
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of Chaiwat / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/ajax-meet-the-team/member9.html b/templates/meet-the-team/ajax-meet-the-team/member9.html new file mode 100644 index 0000000..e32e2ec --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member9.html @@ -0,0 +1,12 @@ +
    + +
    + +
    +
    Rebecca Breen
    +
    Web Design
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

    Image courtesy of stockimages / FreeDigitalPhotos.net. +
    +
    diff --git a/templates/meet-the-team/index.html b/templates/meet-the-team/index.html new file mode 100644 index 0000000..37ada5e --- /dev/null +++ b/templates/meet-the-team/index.html @@ -0,0 +1,235 @@ + + + + + + + Meet the Team - Cube Portfolio + + + + + + + + +
    +
    + Finance (
    ) +
    +
    + Web Design (
    ) +
    +
    + Support (
    ) +
    +
    + Marketing (
    ) +
    +
    + + + + + + + + + + + + + diff --git a/templates/meet-the-team/js/main.js b/templates/meet-the-team/js/main.js new file mode 100644 index 0000000..719e099 --- /dev/null +++ b/templates/meet-the-team/js/main.js @@ -0,0 +1,58 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-meet-the-team').cubeportfolio({ + filters: '#js-filters-meet-the-team', + layoutMode: 'grid', + defaultFilter: '.finance', + animationType: 'sequentially', + gapHorizontal: 50, + gapVertical: 40, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 30, + gapVertical: 15, + } + }], + caption: 'fadeIn', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
    {{current}} of {{total}}
    ', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/mosaic-flat/ajax-mosaic-flat/loadMore.html b/templates/mosaic-flat/ajax-mosaic-flat/loadMore.html new file mode 100644 index 0000000..693aa67 --- /dev/null +++ b/templates/mosaic-flat/ajax-mosaic-flat/loadMore.html @@ -0,0 +1,56 @@ + + + + \ No newline at end of file diff --git a/templates/mosaic-flat/index.html b/templates/mosaic-flat/index.html new file mode 100644 index 0000000..31b9e6a --- /dev/null +++ b/templates/mosaic-flat/index.html @@ -0,0 +1,166 @@ + + + + + + + Mosaic Flat - Cube Portfolio + + + + + + + + +
    +
    + All
    +
    +
    + Print
    +
    +
    + Web Design
    +
    +
    + Graphic
    +
    +
    + Motion
    +
    +
    + + + + + + + + + + + + + + + diff --git a/templates/mosaic-flat/js/main.js b/templates/mosaic-flat/js/main.js new file mode 100644 index 0000000..c1ae4c5 --- /dev/null +++ b/templates/mosaic-flat/js/main.js @@ -0,0 +1,50 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-mosaic-flat').cubeportfolio({ + filters: '#js-filters-mosaic-flat', + layoutMode: 'mosaic', + sortByDimension: true, + mediaQueries: [{ + width: 1500, + cols: 6, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 15, + gapVertical: 15, + } + }], + defaultFilter: '*', + animationType: 'fadeOutTop', + gapHorizontal: 0, + gapVertical: 0, + gridAdjustment: 'responsive', + caption: 'fadeIn', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + plugins: { + loadMore: { + element: '#js-loadMore-mosaic-flat', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/mosaic-projects/index.html b/templates/mosaic-projects/index.html new file mode 100644 index 0000000..ee769b1 --- /dev/null +++ b/templates/mosaic-projects/index.html @@ -0,0 +1,144 @@ + + + + + + + Juicy Projects Mosaic - Cube Portfolio + + + + + + + + +
    +
    +
    All
    +
    Identity
    +
    Web Design
    +
    Print
    +
    + +
    +
    All
    +
    Graphic
    +
    Logo
    +
    Motion
    +
    +
    + +
    +
    + +
    + +
    +
    +
    +
    Dashboard
    +
    Web Design / Graphic
    +
    +
    + +
    + +
    +
    +
    +
    World Clock
    +
    Web Design / Logo
    +
    +
    + +
    + +
    +
    +
    +
    To-Do Dashboard
    +
    Graphic / Print
    +
    +
    + +
    + +
    +
    +
    +
    Events and More
    +
    Web Design / Motion
    +
    +
    + +
    + +
    +
    +
    +
    WhereTO App
    +
    Identity / Graphic
    +
    +
    + +
    + +
    +
    +
    +
    Ski * Buddy
    +
    Motion / Print
    +
    +
    + +
    + +
    +
    +
    +
    Seemple* Music
    +
    Graphic / Logo
    +
    +
    + +
    + +
    +
    +
    +
    Remind~Me More
    +
    Print / Logo
    +
    +
    + +
    + +
    +
    +
    +
    Bills Bills Bills
    +
    Identity / Motion
    +
    +
    + +
    + +
    +
    +
    +
    Generic Apps
    +
    Identity / Logo
    +
    +
    + + + + + + + + + + + diff --git a/templates/mosaic-projects/js/main.js b/templates/mosaic-projects/js/main.js new file mode 100644 index 0000000..fd75ede --- /dev/null +++ b/templates/mosaic-projects/js/main.js @@ -0,0 +1,40 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-mosaic-projects').cubeportfolio({ + filters: '#js-filters-mosaic-projects1,#js-filters-mosaic-projects2', + layoutMode: 'mosaic', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + gapHorizontal: 30, + gapVertical: 10, + } + }], + caption: 'zoom', + displayType: 'sequentially', + displayTypeSpeed: 80, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/mosaic/ajax-mosaic/loadMore.html b/templates/mosaic/ajax-mosaic/loadMore.html new file mode 100644 index 0000000..ef68ef9 --- /dev/null +++ b/templates/mosaic/ajax-mosaic/loadMore.html @@ -0,0 +1,60 @@ + + + + diff --git a/templates/mosaic/index.html b/templates/mosaic/index.html new file mode 100644 index 0000000..ed39e70 --- /dev/null +++ b/templates/mosaic/index.html @@ -0,0 +1,246 @@ + + + + + + + Mosaic - Cube Portfolio + + + + + + + + +
    +
    All
    +
    Print
    +
    Web Design
    +
    Logo
    +
    Graphic
    +
    + +
    +
    MOTION
    +
    IDENTITY
    +
    FINANCE
    +
    +
    +
    DEVELOPMENT
    +
    ACCOUNTING
    +
    MARKETING
    +
    +
    +
    FINANCE
    +
    SUPPORT
    +
    PRODUCTION
    +
    +
    +
    ACCOUNTING
    +
    DEVELOPMENT
    +
    MOTION
    +
    +
    +
    IDENTITY
    +
    SUPPORT
    +
    PRODUCTION
    +
    + + + + + + + + + + + + + + + diff --git a/templates/mosaic/js/main.js b/templates/mosaic/js/main.js new file mode 100644 index 0000000..f4f9355 --- /dev/null +++ b/templates/mosaic/js/main.js @@ -0,0 +1,50 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-mosaic').cubeportfolio({ + filters: '#js-filters-mosaic, #js-filters-mosaic-cat1, #js-filters-mosaic-cat2, #js-filters-mosaic-cat3, #js-filters-mosaic-cat4, #js-filters-mosaic-cat5', + layoutMode: 'mosaic', + sortByDimension: true, + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 15, + gapVertical: 15, + } + }], + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 0, + gapVertical: 0, + gridAdjustment: 'responsive', + caption: 'zoom', + displayType: 'sequentially', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + plugins: { + loadMore: { + element: '#js-loadMore-mosaic', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); diff --git a/templates/multiple-grids/ajax-juicy-projects/loadMore.html b/templates/multiple-grids/ajax-juicy-projects/loadMore.html new file mode 100644 index 0000000..a47fc64 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/loadMore.html @@ -0,0 +1,102 @@ +
    +
    +
    + +
    +
    + +
    +
    +
    Shopping Gallery
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Timezone Mgmt
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Story Book
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Website Lightbox
    +
    Identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Mountaineer
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Archiview
    +
    Graphic / Logo
    +
    \ No newline at end of file diff --git a/templates/multiple-grids/ajax-juicy-projects/project1.html b/templates/multiple-grids/ajax-juicy-projects/project1.html new file mode 100644 index 0000000..9be8253 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project1.html @@ -0,0 +1,66 @@ +
    Dashboard
    +
    by Paul Flavius Nechita
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project10.html b/templates/multiple-grids/ajax-juicy-projects/project10.html new file mode 100644 index 0000000..8921145 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project10.html @@ -0,0 +1,66 @@ +
    Bills Bills Bills
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project11.html b/templates/multiple-grids/ajax-juicy-projects/project11.html new file mode 100644 index 0000000..3aba59d --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project11.html @@ -0,0 +1,66 @@ +
    Generic Apps
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project12.html b/templates/multiple-grids/ajax-juicy-projects/project12.html new file mode 100644 index 0000000..0e6d856 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project12.html @@ -0,0 +1,66 @@ +
    Speed Detector
    +
    You are an outstanding athlete and you need to measure your skills !
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project13.html b/templates/multiple-grids/ajax-juicy-projects/project13.html new file mode 100644 index 0000000..f6e39fd --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project13.html @@ -0,0 +1,66 @@ +
    Shopping Gallery
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project14.html b/templates/multiple-grids/ajax-juicy-projects/project14.html new file mode 100644 index 0000000..b71692b --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project14.html @@ -0,0 +1,66 @@ +
    Timezone Mgmt
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project15.html b/templates/multiple-grids/ajax-juicy-projects/project15.html new file mode 100644 index 0000000..e16811b --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project15.html @@ -0,0 +1,66 @@ +
    Story Book
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project16.html b/templates/multiple-grids/ajax-juicy-projects/project16.html new file mode 100644 index 0000000..960a293 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project16.html @@ -0,0 +1,66 @@ +
    Website Lightbox
    +
    by Paul Flavius Nechita
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project17.html b/templates/multiple-grids/ajax-juicy-projects/project17.html new file mode 100644 index 0000000..0d0ceb9 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project17.html @@ -0,0 +1,66 @@ +
    Mountaineer
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project18.html b/templates/multiple-grids/ajax-juicy-projects/project18.html new file mode 100644 index 0000000..8ca5369 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project18.html @@ -0,0 +1,66 @@ +
    Archiview
    +
    by Cosmin Capitanu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project2.html b/templates/multiple-grids/ajax-juicy-projects/project2.html new file mode 100644 index 0000000..e3b2e17 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project2.html @@ -0,0 +1,66 @@ +
    World Clock
    +
    by Paul Flavius Nechita
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project3.html b/templates/multiple-grids/ajax-juicy-projects/project3.html new file mode 100644 index 0000000..2f25c90 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project3.html @@ -0,0 +1,66 @@ +
    To-Do Dashboard
    +
    Work management platform for creatives with a lot of cool features. Easier.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project4.html b/templates/multiple-grids/ajax-juicy-projects/project4.html new file mode 100644 index 0000000..0b69cf7 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project4.html @@ -0,0 +1,66 @@ +
    Events and More
    +
    Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project5.html b/templates/multiple-grids/ajax-juicy-projects/project5.html new file mode 100644 index 0000000..c7be922 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project5.html @@ -0,0 +1,66 @@ +
    WhereTO App
    +
    Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project6.html b/templates/multiple-grids/ajax-juicy-projects/project6.html new file mode 100644 index 0000000..5070158 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project6.html @@ -0,0 +1,66 @@ +
    Ski Buddy
    +
    Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
    + +
    +
      +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    • +
      + +
      +
    • +
    +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project7.html b/templates/multiple-grids/ajax-juicy-projects/project7.html new file mode 100644 index 0000000..e30abbc --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project7.html @@ -0,0 +1,66 @@ +
    Seemple Music for iPad
    +
    Upcoming music app for iPad. More info and other screens will follow shortly.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project8.html b/templates/multiple-grids/ajax-juicy-projects/project8.html new file mode 100644 index 0000000..0b694f4 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project8.html @@ -0,0 +1,66 @@ +
    Remind~Me More
    +
    Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/ajax-juicy-projects/project9.html b/templates/multiple-grids/ajax-juicy-projects/project9.html new file mode 100644 index 0000000..8b8f663 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project9.html @@ -0,0 +1,66 @@ +
    Workout Buddy
    +
    by Tiberiu Neamu
    + +
    + +
    + +
    +
    +
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
    +
    +
    +
      +
    • ClientJohn Doe
    • +
    • Date22 July 2015
    • +
    • CategoriesLogo, Graphic
    • +
    + OPEN PROJECT +
    +
    + +
    + +
    + +


    diff --git a/templates/multiple-grids/index.html b/templates/multiple-grids/index.html new file mode 100644 index 0000000..1a1ed8f --- /dev/null +++ b/templates/multiple-grids/index.html @@ -0,0 +1,693 @@ + + + + + + + Juicy Projects - Cube Portfolio + + + + + + + + + +
    +
    + All
    +
    +
    + Identity
    +
    +
    + Web Design
    +
    +
    + Graphic
    +
    +
    + Logo
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Dashboard
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    World Clock
    +
    Logo / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    To-Do Dashboard
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Events and More
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    WhereTO App
    +
    Web Design / Identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Ski * Buddy
    +
    Identity / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Seemple* Music
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Remind~Me More
    +
    Identity / Graphic
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Workout Buddy
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Bills Bills Bills
    +
    Identity / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Generic Apps
    +
    Identity / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Speed Detector
    +
    Graphic / Web Design
    +
    +
    + + + +




    +




    + + +
    +
    + All
    +
    +
    + Identity
    +
    +
    + Web Design
    +
    +
    + Graphic
    +
    +
    + Web Design & Identity
    +
    +
    + + + +




    +




    + + +
    +
    +
    +
    +
    + “Envato is an Australia-based, privately held company that specializes in the start-up, promotion and operation of multiple online marketplaces” +
    + +
    +
    +
    + “After co-founding the company in 2006 the group launched FlashDen, the first digital marketplace which focused on rich multimedia web content” +
    + +
    +
    +
    + “The Envato network is broken down into Tuts+ tutorial sites which offer technology-related tutorials and marketplaces to sell digital products. + Envato's network currently generates over a million dollars in annual revenue” +
    + +
    +
    +
    +
    + +




    +




    + + +
    +
    +
    +
    + +
    +
    +
    +
    John Doe
    + +
    +
    CEO, Director General
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    John Snow
    + +
    +
    Manager
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Arya Stark
    + +
    +
    Developer
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Tyrion Lannister
    + +
    +
    CEO, Director General
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Mary Jane
    + +
    +
    Support Staff
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Tania Grue
    + +
    +
    Finance
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    + + + + + + + + + + + diff --git a/templates/multiple-grids/js/main.js b/templates/multiple-grids/js/main.js new file mode 100644 index 0000000..a0909ee --- /dev/null +++ b/templates/multiple-grids/js/main.js @@ -0,0 +1,176 @@ +/* juicy-projects */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-juicy-projects').cubeportfolio({ + filters: '#js-filters-juicy-projects', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + } + }], + caption: 'overlayBottomReveal', + displayType: 'sequentially', + displayTypeSpeed: 80, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
    {{current}} of {{total}}
    ', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-juicy-projects', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); + +/* masonry */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-masonry').cubeportfolio({ + filters: '#js-filters-masonry', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'slideDelay', + gapHorizontal: 20, + gapVertical: 20, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + } + }], + caption: 'overlayBottomAlong', + displayType: 'bottomToTop', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + }); +})(jQuery, window, document); + +/* slider-testimonials */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-testimonials').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: true, + showPagination: true, + rewindNav: true, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'default', + }); +})(jQuery, window, document); + +/* slider-team */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-team').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: true, + scrollByPage: true, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1680, + cols: 5, + }, { + width: 1350, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + }], + gapHorizontal: 0, + gapVertical: 45, + caption: '', + displayType: 'fadeIn', + displayTypeSpeed: 400, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-projects/index.html b/templates/slider-projects/index.html new file mode 100644 index 0000000..ddb42b0 --- /dev/null +++ b/templates/slider-projects/index.html @@ -0,0 +1,695 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
    +
    RELATED WORKS
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Dashboard
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    World Clock
    +
    Logo / Web Design
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    To-Do Dashboard
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Events and More
    +
    Web Design / Graphic
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    WhereTO App
    +
    Web Design / Identity
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Ski * Buddy
    +
    Identity / Web Design
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    Seemple* Music
    +
    Graphic / Logo
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Remind~Me More
    +
    Identity / Graphic
    +
    +
    + + + + + + + + + + + + + diff --git a/templates/slider-projects/js/main.js b/templates/slider-projects/js/main.js new file mode 100644 index 0000000..9a71de6 --- /dev/null +++ b/templates/slider-projects/js/main.js @@ -0,0 +1,69 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + var singlePage = $('#js-singlePage-container').children('div'); + $('#js-grid-slider-projects').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: true, + showPagination: false, + rewindNav: false, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapVertical: 10, + } + }], + gapHorizontal: 0, + gapVertical: 25, + caption: 'overlayBottomReveal', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
    {{current}} of {{total}}
    ', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
    {{current}} of {{total}}
    ', + singlePageAnimation: 'fade', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var indexElement = $(element).parents('.cbp-item').index(), + item = singlePage.eq(indexElement); + + item.find('img').each(function(index, el) { + var attr = el.getAttribute('data-cbp-src'); + + if (attr) { + el.setAttribute('src', attr); + el.removeAttribute('data-cbp-src'); + } + }); + + this.updateSinglePage(item.html()); + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-team/index.html b/templates/slider-team/index.html new file mode 100644 index 0000000..bccbb63 --- /dev/null +++ b/templates/slider-team/index.html @@ -0,0 +1,214 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    John Doe
    + +
    +
    CEO, Director General
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    John Snow
    + +
    +
    Manager
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Arya Stark
    + +
    +
    Developer
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Tyrion Lannister
    + +
    +
    CEO, Director General
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Mary Jane
    + +
    +
    Support Staff
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    +
    +
    + +
    +
    +
    +
    Tania Grue
    + +
    +
    Finance
    +
    + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
    +
    +
    + + + + + + + + + + + diff --git a/templates/slider-team/js/main.js b/templates/slider-team/js/main.js new file mode 100644 index 0000000..80831df --- /dev/null +++ b/templates/slider-team/js/main.js @@ -0,0 +1,38 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-team').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: true, + scrollByPage: true, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1680, + cols: 5, + }, { + width: 1350, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + gapVertical: 20, + } + }], + gapHorizontal: 0, + gapVertical: 45, + caption: '', + displayType: 'fadeIn', + displayTypeSpeed: 400, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-testimonials/index.html b/templates/slider-testimonials/index.html new file mode 100644 index 0000000..86e04a9 --- /dev/null +++ b/templates/slider-testimonials/index.html @@ -0,0 +1,57 @@ + + + + + + + Testimonials - Cube Portfolio + + + + + + + + +
    +
    +
    +
    +
    + “Envato is an Australia-based, privately held company that specializes in the start-up, promotion and operation of multiple online marketplaces” +
    + +
    +
    +
    + “After co-founding the company in 2006 the group launched FlashDen, the first digital marketplace which focused on rich multimedia web content” +
    + +
    +
    +
    + “The Envato network is broken down into Tuts+ tutorial sites which offer technology-related tutorials and marketplaces to sell digital products. + Envato's network currently generates over a million dollars in annual revenue” +
    + +
    +
    +
    +
    + + + + + + + + + + + diff --git a/templates/slider-testimonials/js/main.js b/templates/slider-testimonials/js/main.js new file mode 100644 index 0000000..e0e238e --- /dev/null +++ b/templates/slider-testimonials/js/main.js @@ -0,0 +1,25 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-testimonials').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: true, + showPagination: true, + rewindNav: true, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'default', + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-thumbnail/index.html b/templates/slider-thumbnail/index.html new file mode 100644 index 0000000..cafc168 --- /dev/null +++ b/templates/slider-thumbnail/index.html @@ -0,0 +1,61 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + diff --git a/templates/slider-thumbnail/js/main.js b/templates/slider-thumbnail/js/main.js new file mode 100644 index 0000000..2dca73e --- /dev/null +++ b/templates/slider-thumbnail/js/main.js @@ -0,0 +1,33 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-thumbnail').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: false, + rewindNav: true, + scrollByPage: true, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'fadeIn', + displayTypeSpeed: 400, + + plugins: { + slider: { + pagination: '#js-pagination-slider', + paginationClass: 'cbp-pagination-active', + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/tabs/index.html b/templates/tabs/index.html new file mode 100644 index 0000000..07664e2 --- /dev/null +++ b/templates/tabs/index.html @@ -0,0 +1,49 @@ + + + + + + + Tabs - Cube Portfolio + + + + + + + + +
    +
    + About +
    +
    + Service +
    +
    + Pages +
    +
    + +
    +
    + Pellentesque ut nonummy elit et duis, ut aliquam morbi, lobortis dolor nec fusce consequat. Nec elit magna mauris orci mauris ac, sem duis, ante nibh mi, sed malesuada ultrices scelerisque augue convallis eget. Ac varius enim qui, quis pharetra ultricies velit ut auctor, suspendisse mattis viverra eget sed in, pellentesque enim felis turpis auctor amet. Dolor sit mauris dui augue, sed nullam urna commodo, arcu congue mi non suscipit. +
    +
    + Pede iaculis mauris lorem, non mi gravida risus metus, proin tempus pede rhoncus scelerisque ligula. Dignissim diam sodales egestas senectus elit nec, aliquam ante convallis proin pulvinar molestias vestibulum, leo felis, luctus id sed accumsan, nunc metus proin neque nulla ipsa. Ut fusce in aliquam amet arcu magna, amet nec nec orci pharetra vehicula sodales, nibh purus consectetuer aenean porttitor justo vivamus. Laoreet diam eu potenti, malesuada lacus et fermentum eget egestas. +
    +
    + Orci eros pulvinar metus. Taciti montes placerat nulla nonummy lacus, turpis et urna, eleifend aute condimentum eu, congue pede dapibus. Elit dis eros vulputate ultricies, ullamcorper egestas, turpis senectus tellus mi euismod erat mus, asperiores feugiat vitae lectus mi. Rerum integer dictumst, ligula blandit vestibulum nam consequat sed. Nulla fusce, blandit nec, sit ut in aliquam proin, netus sed magna lectus dolor, ipsum ac. +
    +
    + + + + + + + + + + + diff --git a/templates/tabs/js/main.js b/templates/tabs/js/main.js new file mode 100644 index 0000000..ddca7ac --- /dev/null +++ b/templates/tabs/js/main.js @@ -0,0 +1,13 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-tabs').cubeportfolio({ + filters: '#js-filters-tabs', + defaultFilter: '.about', + animationType: 'fadeOut', + gridAdjustment: 'default', + displayType: 'default', + caption: '', + }); +})(jQuery, window, document); diff --git a/templates/testimonials/index.html b/templates/testimonials/index.html new file mode 100644 index 0000000..9db418b --- /dev/null +++ b/templates/testimonials/index.html @@ -0,0 +1,59 @@ + + + + + + + Testimonials - Cube Portfolio + + + + + + + + +
    +
    + What our Clients say? +
    + +
    +
    +
    + “Envato is an Australia-based, privately held company that specializes in the start-up, promotion and operation of multiple online marketplaces” +
    + +
    +
    +
    + “After co-founding the company in 2006 the group launched FlashDen, the first digital marketplace which focused on rich multimedia web content” +
    + +
    +
    +
    + “The Envato network is broken down into Tuts+ tutorial sites which offer technology-related tutorials and marketplaces to sell digital products. + Envato's network currently generates over a million dollars in annual revenue” +
    + +
    +
    +
    + + + + + + + + + + + diff --git a/templates/testimonials/js/main.js b/templates/testimonials/js/main.js new file mode 100644 index 0000000..c92795f --- /dev/null +++ b/templates/testimonials/js/main.js @@ -0,0 +1,25 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-testimonials').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: false, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'default', + }); +})(jQuery, window, document); \ No newline at end of file