Version Description
- New : Retina support for albums!
- New : Default crop position setting for attachments
- New : Speed up gallery previews in wp-admin
- New : Caption support for Responsive Lightbox by dFactory
- Fix : Extension loading issues on certain installs
- Fix : Shortcode copy-to-clipboard metabox works again
- Fix : Bugs fixes for paging, filtering, FooBox and more
- Fix : Ensure jquery-ui-sortable is loaded on edit page for some installs
- Fix : All-In-One Stack Album layout bugs
- Fix : Reworked extensions listing page logic
- Update : FooGallery client side 1.0.23
- Update : Freemius SDK 1.2.4
Download this release
Release Info
Developer | bradvin |
Plugin | ![]() |
Version | 1.4.25 |
Comparing to | |
See all releases |
Code changes from version 1.4.15 to 1.4.25
- README.md +6 -358
- README.txt +23 -8
- css/admin-foogallery.css +33 -1
- extensions/albums/admin/class-metaboxes.php +2 -2
- extensions/albums/album-default.php +2 -0
- extensions/albums/album-stack.php +7 -4
- extensions/albums/js/album-stack.js +54 -47
- extensions/default-templates/default/class-default-gallery-template.php +1 -0
- extensions/default-templates/justified/class-justified-gallery-template.php +1 -0
- extensions/default-templates/masonry/class-masonry-gallery-template.php +1 -0
- extensions/default-templates/shared/css/foogallery.css +2 -2
- extensions/default-templates/shared/css/foogallery.min.css +1 -1
- extensions/default-templates/shared/js/foogallery.js +789 -538
- extensions/default-templates/shared/js/foogallery.min.js +3 -3
- extensions/default-templates/simple-portfolio/class-simple-portfolio-gallery-template.php +1 -0
- extensions/media-categories/class-media-categories-extension.php +0 -237
- foogallery.php +46 -6
- freemius/.codeclimate.yml +19 -0
- freemius/.github/ISSUE_TEMPLATE.md +29 -0
- freemius/.travis.yml +11 -0
- freemius/LICENSE.txt +673 -673
- freemius/assets/css/admin/account.css +1 -1
- freemius/assets/css/admin/affiliation.css +1 -1
- freemius/assets/css/admin/common.css +2 -2
- freemius/assets/css/admin/connect.css +1 -1
- freemius/assets/css/admin/index.php +3 -0
- freemius/assets/css/customizer.css +1 -1
- freemius/assets/css/index.php +3 -0
- freemius/assets/img/foogallery.png +0 -0
- freemius/assets/img/index.php +3 -0
- freemius/assets/js/index.php +3 -0
- freemius/assets/js/nojquery.ba-postmessage.js +139 -139
- freemius/assets/js/nojquery.ba-postmessage.min.js +11 -11
- freemius/assets/js/postmessage.js +134 -134
- freemius/assets/scss/_mixins.scss +269 -269
- freemius/assets/scss/admin/_themes.scss +20 -20
- freemius/assets/scss/admin/account.scss +255 -255
- freemius/assets/scss/admin/add-ons.scss +448 -448
- freemius/assets/scss/admin/affiliation.scss +96 -96
- freemius/assets/scss/admin/index.php +3 -0
- freemius/assets/scss/customizer.scss +124 -124
- freemius/assets/scss/index.php +3 -0
- freemius/composer.json +10 -10
- freemius/config.php +3 -0
- freemius/gulpfile.js +32 -4
- freemius/includes/class-freemius-abstract.php +596 -596
- freemius/includes/class-freemius.php +572 -330
- freemius/includes/class-fs-logger.php +687 -687
- freemius/includes/class-fs-plugin-updater.php +12 -14
- freemius/includes/class-fs-security.php +85 -85
- freemius/includes/customizer/class-fs-customizer-support-section.php +3 -3
- freemius/includes/customizer/class-fs-customizer-upsell-control.php +2 -2
- freemius/includes/customizer/index.php +3 -0
- freemius/includes/debug/class-fs-debug-bar-panel.php +1 -1
- freemius/includes/debug/debug-bar-start.php +2 -2
- freemius/includes/entities/class-fs-affiliate-terms.php +127 -127
- freemius/includes/entities/class-fs-affiliate.php +83 -83
- freemius/includes/entities/class-fs-billing.php +94 -94
- freemius/includes/entities/class-fs-entity.php +148 -148
- freemius/includes/entities/class-fs-payment.php +93 -93
- freemius/includes/entities/class-fs-plugin-info.php +33 -33
- freemius/includes/entities/class-fs-plugin-license.php +224 -224
- freemius/includes/entities/class-fs-plugin-plan.php +144 -144
- freemius/includes/entities/class-fs-plugin-tag.php +23 -23
- freemius/includes/entities/class-fs-plugin.php +116 -116
- freemius/includes/entities/class-fs-pricing.php +140 -140
- freemius/includes/entities/class-fs-scope-entity.php +28 -28
- freemius/includes/entities/class-fs-site.php +147 -147
- freemius/includes/entities/class-fs-subscription.php +124 -124
- freemius/includes/entities/class-fs-user.php +61 -61
- freemius/includes/fs-core-functions.php +1097 -665
- freemius/includes/fs-essential-functions.php +3 -0
- freemius/includes/fs-plugin-info-dialog.php +98 -56
- freemius/includes/i18n.php +3 -1
- freemius/includes/l10n.php +0 -220
- freemius/includes/managers/class-fs-admin-menu-manager.php +849 -849
- freemius/includes/managers/class-fs-cache-manager.php +280 -280
- freemius/includes/managers/class-fs-key-value-storage.php +327 -327
- freemius/includes/managers/class-fs-license-manager.php +103 -103
- freemius/includes/managers/class-fs-option-manager.php +352 -352
- freemius/includes/managers/class-fs-plan-manager.php +161 -161
- freemius/includes/managers/class-fs-plugin-manager.php +219 -219
- freemius/includes/sdk/FreemiusWordPress.php +15 -14
- freemius/includes/sdk/LICENSE.txt +340 -340
- freemius/includes/supplements/fs-essential-functions-1.1.7.1.php +47 -47
- freemius/languages/freemius-da_DK.po +1826 -1826
- freemius/languages/freemius-en.mo +0 -0
- freemius/languages/freemius-en.po +1520 -1368
- freemius/languages/freemius-es_ES.mo +0 -0
- freemius/languages/freemius-es_ES.po +2035 -0
- freemius/languages/freemius-he.mo +0 -0
- freemius/languages/freemius-he_IL.mo +0 -0
- freemius/languages/{freemius-he.po → freemius-he_IL.po} +1588 -1379
- freemius/languages/freemius-it_IT.mo +0 -0
- freemius/languages/freemius-it_IT.po +1579 -1370
- freemius/languages/freemius-ja_JP.mo +0 -0
- freemius/languages/freemius-ja_JP.po +1580 -1371
- freemius/languages/freemius.pot +1097 -945
- freemius/package.json +11 -24
- freemius/require.php +44 -44
- freemius/start.php +42 -19
- freemius/templates/account.php +132 -91
- freemius/templates/account/billing.php +21 -16
- freemius/templates/account/index.php +2 -2
- freemius/templates/account/payments.php +6 -6
- freemius/templates/add-ons.php +9 -9
- freemius/templates/add-trial-to-pricing.php +30 -30
- freemius/templates/admin-notice.php +3 -1
- freemius/templates/all-admin-notice.php +38 -38
- freemius/templates/auto-installation.php +19 -15
- freemius/templates/checkout-legacy.php +242 -242
- freemius/templates/checkout.php +1 -1
- freemius/templates/connect.php +46 -41
- freemius/templates/contact.php +1 -1
- freemius/templates/debug.php +94 -85
- freemius/templates/debug/api-calls.php +14 -12
- freemius/templates/debug/logger.php +8 -8
- freemius/templates/debug/plugins-themes-sync.php +25 -17
- freemius/templates/debug/scheduled-crons.php +29 -21
- freemius/templates/email.php +48 -48
- freemius/templates/firewall-issues-js.php +58 -58
- freemius/templates/forms/affiliation.php +54 -47
- freemius/templates/forms/deactivation/contact.php +5 -2
- freemius/templates/forms/deactivation/form.php +28 -23
- freemius/templates/forms/deactivation/retry-skip.php +4 -4
- freemius/templates/forms/license-activation.php +11 -9
- freemius/templates/forms/optout.php +16 -15
- freemius/templates/forms/resend-key.php +7 -7
- freemius/templates/forms/trial-start.php +9 -7
- freemius/templates/js/index.php +2 -2
- freemius/templates/js/jquery.content-change.php +46 -46
- freemius/templates/js/style-premium-theme.php +1 -1
- freemius/templates/plugin-icon.php +129 -129
- freemius/templates/plugin-info/description.php +2 -2
- freemius/templates/plugin-info/features.php +5 -5
- freemius/templates/plugin-info/screenshots.php +1 -1
- freemius/templates/powered-by.php +57 -57
- freemius/templates/pricing.php +1 -1
- freemius/templates/secure-https-header.php +2 -1
- freemius/templates/sticky-admin-notice-js.php +38 -38
- freemius/templates/tabs-capture-js.php +62 -62
- freemius/templates/tabs.php +170 -171
- includes/WPThumb/wpthumb.crop-from-position.php +3 -3
- includes/WPThumb/wpthumb.php +5 -1
- includes/admin/class-admin.php +0 -1
- includes/admin/class-attachment-fields.php +17 -3
- includes/admin/class-gallery-metabox-settings.php +1 -1
- includes/admin/class-gallery-metaboxes.php +6 -3
- includes/admin/view-extensions.php +34 -20
- includes/class-foogallery-default-crop-position.php +80 -0
- includes/class-foogallery-paging.php +2 -2
- includes/{admin/class-autoptimize-support.php → compatibility/class-autoptimize-compatibility.php} +8 -5
- includes/{class-foobox-support.php → compatibility/class-foobox-compatibility.php} +2 -2
- includes/compatibility/class-foogallery-compatibility.php +24 -0
- includes/{class-polylang-compatibility.php → compatibility/class-polylang-compatibility.php} +1 -1
- includes/{class-responsive-lightbox-dfactory-support.php → compatibility/class-responsive-lightbox-dfactory-compatibility.php} +14 -7
- includes/{class-wp-rocket-support.php → compatibility/class-wprocket-compatibility.php} +2 -2
- includes/extensions/class-extensions-api.php +36 -8
- includes/extensions/class-extensions-loader.php +14 -1
- includes/foopluginbase/classes/class-foo-plugin-settings.php +6 -4
- includes/includes.php +3 -6
- js/admin-foogallery-attachment-autosave.js +70 -0
- js/admin-foogallery.js +7 -1
- js/foogallery.admin.min.js +1 -1
- lib/selectize/foogallery.selectize.js +115 -0
- lib/selectize/selectize.css +373 -0
- lib/selectize/selectize.min.js +3 -0
README.md
CHANGED
@@ -1,363 +1,11 @@
|
|
1 |
-

|
28 |
-
|
29 |
-
**Major changes in 1.4.1!**
|
30 |
-
|
31 |
-
There have been major updates to the gallery templates in v1.4.1. If you have updated, please test your galleries.
|
32 |
-
|
33 |
-
**Retina Support**
|
34 |
-
|
35 |
-
FooGallery now comes with built-in support for higher quality thumbnails on retina-enabled displays. No more blurry thumbnails, just crisp thumbnails that look amazing on all devices.
|
36 |
-
|
37 |
-
**Video Support**
|
38 |
-
|
39 |
-
FooGallery now supports the creation of video galleries with the [FooVideo premium extension](http://fooplugins.com/plugins/foovideo/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)! Create galleries with both images and videos mixed!
|
40 |
-
|
41 |
-
**Albums Built In**
|
42 |
-
|
43 |
-
Albums are now built in as an extension. Simply head over to the extensions page and activate the albums extension. A new menu item will appear that allows you to add albums just as easily as galleries.
|
44 |
-
|
45 |
-
**Built For Developers**
|
46 |
-
|
47 |
-
FooGallery was designed to be the most developer-friendly gallery plugin available for WordPress. It was also built on top of a solid extension framework, which means different functionality is separated out into different areas in the codebase. It also means the core plugin is lightweight, but still allowing for the most flexibility.
|
48 |
-
|
49 |
-
**Features**
|
50 |
-
|
51 |
-
* Retina thumbnail support
|
52 |
-
* Add videos to galleries (via the [FooVideo premium extension](http://fooplugins.com/plugins/foovideo/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo))
|
53 |
-
* Albums built-in! (Activate the albums extension)
|
54 |
-
* Gallery custom post type
|
55 |
-
* Use built-in media library to manage images
|
56 |
-
* Drag n Drop reordering of images and galleries
|
57 |
-
* Built-in gallery templates
|
58 |
-
* Built-in support for FooBox
|
59 |
-
* Built-in Extensions Store
|
60 |
-
* Built on an extension framework
|
61 |
-
* Custom CSS for both galleries and albums
|
62 |
-
* Copy to clipboard shortcodes
|
63 |
-
* Visual shortcodes in rich text editor
|
64 |
-
* Gallery picker to insert shortcode
|
65 |
-
* Page usage metabox with one-click gallery page creation
|
66 |
-
* NextGen importer tool (albums and galleries)
|
67 |
-
* Multisite Support
|
68 |
-
* plus many, many more
|
69 |
-
|
70 |
-
**Gallery Demos**
|
71 |
-
|
72 |
-
* Responsive Image Gallery - [demo](http://foo.gallery/demos/responsive-image-gallery/)
|
73 |
-
* FooGrid Image Gallery - [light demo](http://foo.gallery/demos/foogrid-light/) - [dark demo](http://foo.gallery/demos/foogrid-dark/)
|
74 |
-
* Image Viewer Gallery - [light demo](http://foo.gallery/demos/image-viewer-gallery/) - [dark demo](http://foo.gallery/demos/image-viewer-gallery-dark/)
|
75 |
-
* Masonry Gallery - [demo](http://foo.gallery/demos/masonry-image-gallery/)
|
76 |
-
* Simple Portfolio - [demo](http://foo.gallery/demos/simple-portfolio/)
|
77 |
-
* Justified Gallery ([http://miromannino.github.io/Justified-Gallery](http://miromannino.github.io/Justified-Gallery/)) - [demo](http://foo.gallery/demos/justified-gallery/)
|
78 |
-
* Single Thumbnail Gallery - [demo](http://foo.gallery/demos/single-thumbnail-gallery/)
|
79 |
-
* Polaroid Gallery - [demo](http://foo.gallery/demos/polaroid-image-gallery/)
|
80 |
-
* Cube Gallery - [demo](http://foo.gallery/demos/cube-gallery/) - [Buy Now!](http://fooplugins.com/plugins/cube-gallery-template/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
81 |
-
* Mixed (Images + Videos) - [demo](http://foo.gallery/demos/mixed/)
|
82 |
-
|
83 |
-
**Caption Demos**
|
84 |
-
|
85 |
-
* Simple Hover Captions - [demo](http://foo.gallery/demos/captions-simple-hover/)
|
86 |
-
* Always Visible Captions - [demo](http://foo.gallery/demos/responsive-image-gallery-captions/)
|
87 |
-
* Drop Captions - [demo](http://foo.gallery/demos/captions-drop/)
|
88 |
-
* Fade Captions - [demo](http://foo.gallery/demos/captions-fade/)
|
89 |
-
* Push Captions - [demo](http://foo.gallery/demos/captions-push/)
|
90 |
-
|
91 |
-
**Album Demos**
|
92 |
-
|
93 |
-
* Responsive Album Layout - [demo](http://foo.gallery/demos/responsive-album-layout/)
|
94 |
-
* All-in-one Stack Album - [demo](http://foo.gallery/demos/all-in-one-stack-album/)
|
95 |
-
|
96 |
-
**Videos Demos**
|
97 |
-
|
98 |
-
* Vertical Video Slider - [demo](http://foo.gallery/demos/video-slider-vertical/) - [full-width demo](http://foo.gallery/demos/video-slider-vertical-full-width/)
|
99 |
-
* Horizontal Video Slider - [demo](http://foo.gallery/demos/video-slider-horizontal/) - [custom colors](http://foo.gallery/demos/video-slider-custom-theme/)
|
100 |
-
|
101 |
-
**Extensions**
|
102 |
-
|
103 |
-
* [FooVideo](http://fooplugins.com/plugins/foovideo/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
104 |
-
* Albums (bundled)
|
105 |
-
* Default Gallery Templates (bundled)
|
106 |
-
* NextGen Gallery and Album Importer (bundled)
|
107 |
-
* [FooGrid Gallery](http://fooplugins.com/plugins/foogrid/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
108 |
-
* [Cube Gallery](http://fooplugins.com/plugins/cube-gallery-template/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
109 |
-
* [Custom Branding](http://fooplugins.com/plugins/foogallery-branding/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
110 |
-
* [FooBox PRO Lightbox](http://fooplugins.com/plugins/foobox/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
111 |
-
* [FooBox FREE Lightbox](http://wordpress.org/plugins/foobox-image-lightbox)
|
112 |
-
* [Owl Carousel Template](http://wordpress.org/plugins/foogallery-owl-carousel-template/)
|
113 |
-
* [ZOOM Template](http://wordpress.org/plugins/foogallery-zoom-template/)
|
114 |
-
* [Thirsty Affiliates](http://wordpress.org/plugins/thirstyaffiliates-for-foogallery-extension/)
|
115 |
-
* [Polaroid Template](https://github.com/fooplugins/foogallery-polaroid-template)
|
116 |
-
* [Use Media Menu](https://github.com/fooplugins/foogallery-media-menu)
|
117 |
-
* Build your own!!!
|
118 |
-
|
119 |
-
**Documentation**
|
120 |
-
|
121 |
-
* [FooGallery 101](http://docs.fooplugins.com/foogallery/foogallery-101/)
|
122 |
-
* [Developer 101](http://docs.fooplugins.com/foogallery/foogallery-developers-101/)
|
123 |
-
* [Actions and Filters](http://docs.fooplugins.com/foogallery/actions-filters/)
|
124 |
-
|
125 |
-
**Contribute**
|
126 |
-
|
127 |
-
FooGallery is hosted on [GitHub](https://github.com/fooplugins/foogallery). If you find a bug, please [create an issue](https://github.com/fooplugins/foogallery/issues).
|
128 |
-
|
129 |
-
## Installation ##
|
130 |
-
|
131 |
-
1. Upload `foogallery` folder to the `/wp-content/plugins/` directory
|
132 |
-
2. Activate the plugin through the 'Plugins' menu in WordPress
|
133 |
-
3. You will be redirected to the FooGallery Help page to get your started
|
134 |
-
|
135 |
-
## Frequently Asked Questions ##
|
136 |
-
|
137 |
-
### Why are my thumbnails so blurry? ###
|
138 |
-
|
139 |
-
Have you enabled retina support for your galleries? Displays with retina support can show better quality thumbnails when retina support is enabled. To enable retina support, edit the gallery and locate the Retina Support metabox.
|
140 |
-
|
141 |
-
### Can I add videos to my galleries? ###
|
142 |
-
|
143 |
-
Yes, you need to use the [FooVideo premium extension](http://fooplugins.com/plugins/foovideo/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
144 |
-
|
145 |
-
### How do I get albums working? ###
|
146 |
-
|
147 |
-
Simply go to the FooGallery extensions page and activate the Albums extension. If you do not see a button to activate the albums extension, reload the extensions list by clicking the reload button.
|
148 |
-
|
149 |
-
### Can I build an extension? ###
|
150 |
-
|
151 |
-
Hell, yes! Check out our [developer page](http://foo.gallery/developers/)
|
152 |
|
153 |
-
|
154 |
|
155 |
-
[
|
156 |
|
157 |
-
|
158 |
|
159 |
-
|
160 |
-
|
161 |
-
## Changelog ##
|
162 |
-
|
163 |
-
### 1.4.5 ###
|
164 |
-
|
165 |
-
* Fix : Lazy loading - scrolling galleries in certain scenarios were not loading thumbs
|
166 |
-
* Fix : Galleries that were hidden on page load were not displaying correctly when shown
|
167 |
-
* Fix : Default gallery settings were not being applied to new galleries
|
168 |
-
* New : shortcode arguments applied to gallery for common fields
|
169 |
-
* New : HTML caching is disabled by default now!
|
170 |
-
* Updated to latest client side JS and CSS
|
171 |
-
|
172 |
-
### 1.4.4 ###
|
173 |
-
|
174 |
-
* Fix : upgrade was calling underfined function
|
175 |
-
|
176 |
-
### 1.4.3 ###
|
177 |
-
|
178 |
-
* Fix : Justify gallery template issues
|
179 |
-
* Fix : Masonry gallery template issues
|
180 |
-
* Fix : Caption description not hidden when supposed to
|
181 |
-
* Fix : Complete rework of thumbnail dimension logic!
|
182 |
-
* Fix : Redirection bug on activation
|
183 |
-
* Fix : Added checks for galleries causing PHP warnings
|
184 |
-
* New : Last Row setting in Justify gallery template
|
185 |
-
* New : Alignment setting in Simple Portfolio gallery template
|
186 |
-
* New : Added more checks after load to ensure gallery layout is correct
|
187 |
-
* Updated to Freemius SDK 1.2.2.10
|
188 |
-
* Updated to latest client side JS and CSS
|
189 |
-
|
190 |
-
### 1.3.28 ###
|
191 |
-
|
192 |
-
* Complete rewrite of the built-in gallery templates
|
193 |
-
* New : lazy loading
|
194 |
-
* New : simple pagination
|
195 |
-
* New : Live Previews when editing a gallery
|
196 |
-
* 260+ updates, changes and bug fixes
|
197 |
-
|
198 |
-
### 1.3.8 ###
|
199 |
-
|
200 |
-
* New : Built in support for FooBox, fixing a lot of issues where FooBox option is not available
|
201 |
-
* Fix : More reliable extension active status on extensions listing
|
202 |
-
* Fix : More obvious wording for 3rd party plugins when they are not installed
|
203 |
-
|
204 |
-
### 1.3.7 ###
|
205 |
-
|
206 |
-
* Fix : Activation redirect bug showing "Sorry, you are not allowed to access this page."
|
207 |
-
|
208 |
-
### 1.3.6 ###
|
209 |
-
|
210 |
-
* New : Freemius integration!
|
211 |
-
* New : Added support for the Responsive Lightbox by dFactory
|
212 |
-
* New : New custom class field for an attachment
|
213 |
-
* New : Added more system info for better debugging when there are server issues
|
214 |
-
* Fix : Visual editor FooGallery edit button
|
215 |
-
* Fix : Image Viewer hover effect none now works as expected
|
216 |
-
* Fix : Disable HTML caching for randomly ordered galleries
|
217 |
-
|
218 |
-
### 1.2.20 ###
|
219 |
-
|
220 |
-
* New : Force Use Original thumb setting on gallery edit page
|
221 |
-
* Fix : PHP warning from thumbnail class since 1.2.19
|
222 |
-
|
223 |
-
### 1.2.19 ###
|
224 |
-
|
225 |
-
* New : Gallery output caching! Saves database requests improving load time
|
226 |
-
* New : Gallery usage column in admin gallery listing
|
227 |
-
* New : Better support for animated gifs
|
228 |
-
* New : Hover icons retina support
|
229 |
-
* New : Uninstall button on settings
|
230 |
-
* New : Save thumb dimensions per attachment. (needed in future versions)
|
231 |
-
* Fix : Extensions refactor and many issues resolved
|
232 |
-
* Fix : Better retina support for all templates
|
233 |
-
* Fix : Colorize / Greyscale CSS filters
|
234 |
-
* Fix : Even better wpthumb compatibility
|
235 |
-
|
236 |
-
### 1.2.18 ###
|
237 |
-
|
238 |
-
* Fix : Handle no settings in retina metabox
|
239 |
-
|
240 |
-
### 1.2.17 ###
|
241 |
-
|
242 |
-
* New : Retina support - metabox per gallery and default settings
|
243 |
-
* New : Attachment datasources - backend changes for how images are used in a gallery. (This will allow for new external sources in the future)
|
244 |
-
* New : Caption color settings in Simple portfolio gallery template
|
245 |
-
* New : Updated to latest Justified Gallery
|
246 |
-
* Fix : Better wpthumb compatibility
|
247 |
-
|
248 |
-
### 1.2.16 ###
|
249 |
-
|
250 |
-
* Fix : Yoast SEO Sitemaps fatal error with deleted galleries
|
251 |
-
* Fix : Updating pages with deleted galleries throws php warnings
|
252 |
-
|
253 |
-
### 1.2.15 ###
|
254 |
-
|
255 |
-
* Fix : Album admin CSS issues in WP 4.6
|
256 |
-
* Fix : Masonry layout issues in WP 4.6
|
257 |
-
* Fix : Media attachment fields not updating
|
258 |
-
* Fix : Better support for IE10
|
259 |
-
* New : Thumbnail generation test admin notice and settings
|
260 |
-
|
261 |
-
### 1.2.13 ###
|
262 |
-
|
263 |
-
* Fix : Shortcode replacing content in visual editor
|
264 |
-
* Fix : Gallery hover effect of None being ignored
|
265 |
-
* New : ImageViewer language settings for 'Prev', 'Next' & 'of'
|
266 |
-
* New : Setting to use original thumbnails if available
|
267 |
-
|
268 |
-
### 1.2.12 ###
|
269 |
-
|
270 |
-
* Fix : Simple Portfolio missing captions fix
|
271 |
-
|
272 |
-
### 1.2.11 ###
|
273 |
-
|
274 |
-
* Fix : Simple Portfolio undefined function fix
|
275 |
-
|
276 |
-
### 1.2.10 ###
|
277 |
-
|
278 |
-
* New : support for multiple admin JS and CSS assets for gallery templates
|
279 |
-
* New : Added setting to choose Caption Description source
|
280 |
-
* New : Crop position can be chosen for attachments
|
281 |
-
* New : Albums gallery details modal for setting a gallery URL
|
282 |
-
* New : Better shortcode preview in editor
|
283 |
-
* New : Editor button now supported if multiple editors exist
|
284 |
-
* Fix : Better No-Link support for gallery templates
|
285 |
-
* Fix : Compatible with Unyson plugin
|
286 |
-
* Fix : Compatible with Advanced Custom Fields
|
287 |
-
* Fix : Simple Portfolio fixes and tweaks
|
288 |
-
* Fix : ImageViewer fixes and better browser compatibility
|
289 |
-
* Fix : Changed assets enqueue version to rather use extension version
|
290 |
-
* Fix : Album URL fix for permalinks with no trailing slashes
|
291 |
-
|
292 |
-
### 1.2.9 ###
|
293 |
-
* New : Added Image Viewer gallery template
|
294 |
-
* New : Caption support for default template
|
295 |
-
* New : Yoast SEO gallery image support!
|
296 |
-
* New : Responsive options for Masonry gallery
|
297 |
-
* New : change gallery URL slug for albums
|
298 |
-
* New : setting to turn off loading animation in default gallery
|
299 |
-
* New : French translation
|
300 |
-
* Fix : Support for WP 4.4
|
301 |
-
* Fix : All templates - moved all jQuery ready events to vanilla JS
|
302 |
-
* Fix : Many gallery template tweaks
|
303 |
-
* Fix : allow no default to be chosen in settings
|
304 |
-
|
305 |
-
### 1.2.8 ###
|
306 |
-
* Works now with Polylang translation plugin
|
307 |
-
* CSS Updates & enhancements to all gallery templates
|
308 |
-
* Password protected galleries now work as expected
|
309 |
-
* Ability to hide WYSIWYG editor button
|
310 |
-
* Updated WPThumb
|
311 |
-
* Multiple bug fixes and improvements
|
312 |
-
|
313 |
-
### 1.2.7 ###
|
314 |
-
* Bug fixes for 1.2.6 release
|
315 |
-
* Added 2 new settings to Justified Gallery template (maxRowHeight + Caption Source)
|
316 |
-
|
317 |
-
### 1.2.6 ###
|
318 |
-
* CSS load optimizations
|
319 |
-
* Updates and tweaks on all built-in gallery templates
|
320 |
-
* More robust extension loading
|
321 |
-
* More robust upgrades to FooBox PRO
|
322 |
-
* Improved copy-to-clipboard
|
323 |
-
* Added more hover effects
|
324 |
-
* Support for FooVideo
|
325 |
-
|
326 |
-
### 1.2.5 ###
|
327 |
-
* Fix for extensions being empty
|
328 |
-
* Added support for Multi-site
|
329 |
-
* Added esc_url to all places where url is rendered
|
330 |
-
* Updated to latest Justified Gallery v3.5.4
|
331 |
-
|
332 |
-
### 1.2.4 ###
|
333 |
-
* Many album template updates, enhancements and fixes
|
334 |
-
* Many gallery template tweaks and fixes
|
335 |
-
* Sort order settings for galleries and albums
|
336 |
-
* Added new Single Thumbnail Gallery template
|
337 |
-
|
338 |
-
### 1.2.1 ###
|
339 |
-
* Added setting to choose default gallery to copy settings from
|
340 |
-
* Fixed bug #45 - gallery fields not showing onload
|
341 |
-
* replaced minicolors with spectrum colorpicker
|
342 |
-
* Allow gallery fields to have a suffix
|
343 |
-
* Added function to render galleries "foogallery_render_gallery( $gallery_id )"
|
344 |
-
|
345 |
-
### 1.2.0 ###
|
346 |
-
* Added albums extension
|
347 |
-
* Added custom CSS metaboxes
|
348 |
-
* Updated Nextgen importer
|
349 |
-
* Fixed many bugs
|
350 |
-
|
351 |
-
### 1.1.8.2 ###
|
352 |
-
* Fixed "edit gallery" CSS with WP 4.0
|
353 |
-
|
354 |
-
### 1.1.8.1 ###
|
355 |
-
* Fixed "insert gallery" CSS with WP 4.0
|
356 |
-
|
357 |
-
### 1.1.8 ###
|
358 |
-
* Added 2 new gallery templates
|
359 |
-
* Added 10+ actions and filters for more customization
|
360 |
-
* Countless bug fixes and enhancements
|
361 |
-
|
362 |
-
### 1.1.7 ###
|
363 |
-
* first version!
|
1 |
+

|
2 |
|
3 |
+
Why choose FooGallery? Stunning gallery layouts, responsive, retina-ready, lightning fast, easy to use.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
+
[FooGallery Homepage](http://foo.gallery/)
|
6 |
|
7 |
+
[FooGallery Demos](http://foo.gallery/demos)
|
8 |
|
9 |
+
[FooGallery on wordpress.org](https://wordpress.org/plugins/foogallery/)
|
10 |
|
11 |
+
[](https://scrutinizer-ci.com/g/fooplugins/foogallery/?branch=develop)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.txt
CHANGED
@@ -3,16 +3,16 @@ Contributors: bradvin, steveush, fooplugins, freemius
|
|
3 |
Donate link: http://fooplugins.com
|
4 |
Tags: gallery, image gallery, photo gallery, responsive, album, media gallery, masonry gallery, portfolio, justified image gallery, video gallery, photography, photographer, retina
|
5 |
Requires at least: 3.9
|
6 |
-
Tested up to: 4.9.
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
|
16 |
|
17 |
[View the FooGallery Homepage & DEMO](http://foo.gallery/)
|
18 |
|
@@ -61,6 +61,8 @@ FooGallery was designed to be the most developer-friendly gallery plugin availab
|
|
61 |
**PRO Features**
|
62 |
|
63 |
* 11 Beautiful Hover Effect Presets
|
|
|
|
|
64 |
* Polaroid PRO Gallery Template
|
65 |
* Grid PRO Gallery Template
|
66 |
* Advanced Pagination
|
@@ -98,8 +100,6 @@ FooGallery was designed to be the most developer-friendly gallery plugin availab
|
|
98 |
* [Custom Branding](http://fooplugins.com/plugins/foogallery-branding/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
99 |
* [FooBox PRO Lightbox](http://fooplugins.com/plugins/foobox/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
100 |
* [FooBox FREE Lightbox](http://wordpress.org/plugins/foobox-image-lightbox)
|
101 |
-
* [ZOOM Template](http://wordpress.org/plugins/foogallery-zoom-template/)
|
102 |
-
* [Use Media Menu](https://github.com/fooplugins/foogallery-media-menu)
|
103 |
* Build your own!!!
|
104 |
|
105 |
**Documentation**
|
@@ -122,7 +122,7 @@ FooGallery is hosted on [GitHub](https://github.com/fooplugins/foogallery). If y
|
|
122 |
|
123 |
= Why are my thumbnails so blurry? =
|
124 |
|
125 |
-
Have you enabled retina support for your galleries?
|
126 |
|
127 |
= Can I add videos to my galleries? =
|
128 |
|
@@ -146,10 +146,25 @@ Hell, yes! Check out our [developer page](http://foo.gallery/developers/)
|
|
146 |
|
147 |
== Upgrade Notice ==
|
148 |
|
149 |
-
Update now to
|
150 |
|
151 |
== Changelog ==
|
152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
= 1.4.15 =
|
154 |
|
155 |
* Fix : All-In-One stack album fatal error when 2 albums on same page
|
@@ -159,7 +174,7 @@ Update now to support FooVideo and many other improvements!
|
|
159 |
* Fix : All-In-One stack album now uses the gallery featured image
|
160 |
* Added more position options for Single Thumbnail Gallery
|
161 |
* Added paging output setting
|
162 |
-
* Update to latest client side JS 1.0.
|
163 |
|
164 |
= 1.4.12 =
|
165 |
|
3 |
Donate link: http://fooplugins.com
|
4 |
Tags: gallery, image gallery, photo gallery, responsive, album, media gallery, masonry gallery, portfolio, justified image gallery, video gallery, photography, photographer, retina
|
5 |
Requires at least: 3.9
|
6 |
+
Tested up to: 4.9.4
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
Why choose FooGallery? Stunning gallery layouts, responsive, retina-ready, lightning fast, easy to use.
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
Why choose FooGallery? Stunning gallery layouts, responsive, retina-ready, lightning fast, easy to use. Built to be highly configurable and extensible for developers or freelancers.
|
16 |
|
17 |
[View the FooGallery Homepage & DEMO](http://foo.gallery/)
|
18 |
|
61 |
**PRO Features**
|
62 |
|
63 |
* 11 Beautiful Hover Effect Presets
|
64 |
+
* Media Tags and Categories
|
65 |
+
* Gallery Filtering using Media Tags or Categories
|
66 |
* Polaroid PRO Gallery Template
|
67 |
* Grid PRO Gallery Template
|
68 |
* Advanced Pagination
|
100 |
* [Custom Branding](http://fooplugins.com/plugins/foogallery-branding/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
101 |
* [FooBox PRO Lightbox](http://fooplugins.com/plugins/foobox/?utm_source=foogalleryplugin&utm_medium=foogallerylink&utm_campaign=foogallery_wprepo)
|
102 |
* [FooBox FREE Lightbox](http://wordpress.org/plugins/foobox-image-lightbox)
|
|
|
|
|
103 |
* Build your own!!!
|
104 |
|
105 |
**Documentation**
|
122 |
|
123 |
= Why are my thumbnails so blurry? =
|
124 |
|
125 |
+
Have you enabled retina support for your galleries? To enable retina support, edit the gallery and locate the Retina Support metabox.
|
126 |
|
127 |
= Can I add videos to my galleries? =
|
128 |
|
146 |
|
147 |
== Upgrade Notice ==
|
148 |
|
149 |
+
Update now to get all the latest features, bug fixes and improvements!
|
150 |
|
151 |
== Changelog ==
|
152 |
|
153 |
+
= 1.4.25 =
|
154 |
+
|
155 |
+
* New : Retina support for albums!
|
156 |
+
* New : Default crop position setting for attachments
|
157 |
+
* New : Speed up gallery previews in wp-admin
|
158 |
+
* New : Caption support for Responsive Lightbox by dFactory
|
159 |
+
* Fix : Extension loading issues on certain installs
|
160 |
+
* Fix : Shortcode copy-to-clipboard metabox works again
|
161 |
+
* Fix : Bugs fixes for paging, filtering, FooBox and more
|
162 |
+
* Fix : Ensure jquery-ui-sortable is loaded on edit page for some installs
|
163 |
+
* Fix : All-In-One Stack Album layout bugs
|
164 |
+
* Fix : Reworked extensions listing page logic
|
165 |
+
* Update : FooGallery client side 1.0.23
|
166 |
+
* Update : Freemius SDK 1.2.4
|
167 |
+
|
168 |
= 1.4.15 =
|
169 |
|
170 |
* Fix : All-In-One stack album fatal error when 2 albums on same page
|
174 |
* Fix : All-In-One stack album now uses the gallery featured image
|
175 |
* Added more position options for Single Thumbnail Gallery
|
176 |
* Added paging output setting
|
177 |
+
* Update to latest client side JS 1.0.20
|
178 |
|
179 |
= 1.4.12 =
|
180 |
|
css/admin-foogallery.css
CHANGED
@@ -459,4 +459,36 @@ button[data-balloon]{overflow:visible}[data-balloon]{position:relative}[data-bal
|
|
459 |
|
460 |
.foogallery_template_field_type-thumb_size_no_crop label+input {
|
461 |
margin-left: 5px;
|
462 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
|
460 |
.foogallery_template_field_type-thumb_size_no_crop label+input {
|
461 |
margin-left: 5px;
|
462 |
+
}
|
463 |
+
|
464 |
+
/* changes to the media modal */
|
465 |
+
.compat-item .compat-attachment-fields th.label label span {
|
466 |
+
text-align: left;
|
467 |
+
}
|
468 |
+
|
469 |
+
.compat-item .compat-attachment-fields td.field {
|
470 |
+
width: 100%;
|
471 |
+
margin: 0;
|
472 |
+
}
|
473 |
+
|
474 |
+
.media-modal .attachments-browser .media-toolbar {
|
475 |
+
right: 500px;
|
476 |
+
}
|
477 |
+
.media-modal .attachments {
|
478 |
+
right: 500px;
|
479 |
+
}
|
480 |
+
.media-modal .media-sidebar {
|
481 |
+
width: 467px;
|
482 |
+
}
|
483 |
+
|
484 |
+
@media (max-width: 900px) {
|
485 |
+
.media-modal .attachments-browser .media-toolbar {
|
486 |
+
right: 300px;
|
487 |
+
}
|
488 |
+
.media-modal .attachments {
|
489 |
+
right: 300px;
|
490 |
+
}
|
491 |
+
.media-modal .media-sidebar {
|
492 |
+
width: 267px;
|
493 |
+
}
|
494 |
+
}
|
extensions/albums/admin/class-metaboxes.php
CHANGED
@@ -241,14 +241,14 @@ if ( ! class_exists( 'FooGallery_Admin_Album_MetaBoxes' ) ) {
|
|
241 |
$shortcode = $album->shortcode();
|
242 |
?>
|
243 |
<p class="foogallery-shortcode">
|
244 |
-
<input type="text" id="
|
245 |
</p>
|
246 |
<p>
|
247 |
<?php _e( 'Paste the above shortcode into a post or page to show the album.', 'foogallery' ); ?>
|
248 |
</p>
|
249 |
<script>
|
250 |
jQuery(function($) {
|
251 |
-
var shortcodeInput = document.querySelector('#
|
252 |
shortcodeInput.addEventListener('click', function () {
|
253 |
try {
|
254 |
// select the contents
|
241 |
$shortcode = $album->shortcode();
|
242 |
?>
|
243 |
<p class="foogallery-shortcode">
|
244 |
+
<input type="text" id="foogallery_copy_shortcode" size="<?php echo strlen( $shortcode ); ?>" value="<?php echo htmlspecialchars( $shortcode ); ?>" readonly="readonly" />
|
245 |
</p>
|
246 |
<p>
|
247 |
<?php _e( 'Paste the above shortcode into a post or page to show the album.', 'foogallery' ); ?>
|
248 |
</p>
|
249 |
<script>
|
250 |
jQuery(function($) {
|
251 |
+
var shortcodeInput = document.querySelector('#foogallery_copy_shortcode');
|
252 |
shortcodeInput.addEventListener('click', function () {
|
253 |
try {
|
254 |
// select the contents
|
extensions/albums/album-default.php
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
*/
|
5 |
global $current_foogallery_album;
|
6 |
global $current_foogallery_album_arguments;
|
|
|
7 |
$gallery = foogallery_album_get_current_gallery();
|
8 |
$alignment = foogallery_album_template_setting( 'alignment', 'alignment-left' );
|
9 |
$foogallery = false;
|
@@ -44,6 +45,7 @@ if ( false !== $foogallery ) {
|
|
44 |
<ul class="foogallery-album-gallery-list <?php echo $alignment; ?>">
|
45 |
<?php
|
46 |
foreach ( $current_foogallery_album->galleries() as $gallery ) {
|
|
|
47 |
if (!empty($gallery->attachment_ids)) {
|
48 |
$attachment = $gallery->featured_attachment();
|
49 |
|
4 |
*/
|
5 |
global $current_foogallery_album;
|
6 |
global $current_foogallery_album_arguments;
|
7 |
+
global $current_foogallery;
|
8 |
$gallery = foogallery_album_get_current_gallery();
|
9 |
$alignment = foogallery_album_template_setting( 'alignment', 'alignment-left' );
|
10 |
$foogallery = false;
|
45 |
<ul class="foogallery-album-gallery-list <?php echo $alignment; ?>">
|
46 |
<?php
|
47 |
foreach ( $current_foogallery_album->galleries() as $gallery ) {
|
48 |
+
$current_foogallery = $gallery;
|
49 |
if (!empty($gallery->attachment_ids)) {
|
50 |
$attachment = $gallery->featured_attachment();
|
51 |
|
extensions/albums/album-stack.php
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
*/
|
5 |
global $current_foogallery_album;
|
6 |
global $current_foogallery_album_arguments;
|
|
|
7 |
$args = foogallery_album_template_setting( 'thumbnail_dimensions', array() );
|
8 |
$lightbox = foogallery_album_template_setting( 'lightbox', 'unknown' );
|
9 |
$random_angle = foogallery_album_template_setting( 'random_angle', 'false' );
|
@@ -33,15 +34,17 @@ if ( !function_exists( 'foogallery_album_all_in_one_stack_render_gallery_attachm
|
|
33 |
<ul id="foogallery-stack-album-<?php echo $current_foogallery_album->ID; ?>" class="tp-grid">
|
34 |
<?php
|
35 |
foreach ( $current_foogallery_album->galleries() as $gallery ) {
|
36 |
-
$
|
|
|
|
|
|
|
37 |
|
38 |
foreach ( $gallery->attachments() as $attachment ) {
|
39 |
-
if ( $
|
40 |
-
//
|
41 |
foogallery_album_all_in_one_stack_render_gallery_attachment( $gallery, $attachment, $args, $lightbox );
|
42 |
}
|
43 |
}
|
44 |
-
foogallery_album_all_in_one_stack_render_gallery_attachment( $gallery, $featured_image, $args, $lightbox );
|
45 |
}
|
46 |
?>
|
47 |
</ul>
|
4 |
*/
|
5 |
global $current_foogallery_album;
|
6 |
global $current_foogallery_album_arguments;
|
7 |
+
global $current_foogallery;
|
8 |
$args = foogallery_album_template_setting( 'thumbnail_dimensions', array() );
|
9 |
$lightbox = foogallery_album_template_setting( 'lightbox', 'unknown' );
|
10 |
$random_angle = foogallery_album_template_setting( 'random_angle', 'false' );
|
34 |
<ul id="foogallery-stack-album-<?php echo $current_foogallery_album->ID; ?>" class="tp-grid">
|
35 |
<?php
|
36 |
foreach ( $current_foogallery_album->galleries() as $gallery ) {
|
37 |
+
$current_foogallery = $gallery;
|
38 |
+
$featured_attachment = $gallery->featured_attachment();
|
39 |
+
//render the featured attachment first
|
40 |
+
foogallery_album_all_in_one_stack_render_gallery_attachment( $gallery, $featured_attachment, $args, $lightbox );
|
41 |
|
42 |
foreach ( $gallery->attachments() as $attachment ) {
|
43 |
+
if ( $featured_attachment->ID !== $attachment->ID ) {
|
44 |
+
//render all but the featured attachment
|
45 |
foogallery_album_all_in_one_stack_render_gallery_attachment( $gallery, $attachment, $args, $lightbox );
|
46 |
}
|
47 |
}
|
|
|
48 |
}
|
49 |
?>
|
50 |
</ul>
|
extensions/albums/js/album-stack.js
CHANGED
@@ -63,7 +63,9 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
63 |
// ======================= imagesLoaded Plugin ===============================
|
64 |
// https://github.com/desandro/imagesloaded
|
65 |
|
66 |
-
//
|
|
|
|
|
67 |
// execute a callback when all images have loaded.
|
68 |
// needed because .load() doesn't work on cached images
|
69 |
|
@@ -76,7 +78,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
76 |
// blank image data-uri bypasses webkit log warning (thx doug jones)
|
77 |
var BLANK = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
|
78 |
|
79 |
-
$.fn.
|
80 |
var $this = this,
|
81 |
deferred = $.isFunction($.Deferred) ? $.Deferred() : 0,
|
82 |
hasNotify = $.isFunction(deferred.notify),
|
@@ -130,7 +132,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
130 |
}
|
131 |
|
132 |
// cache image and its state for future calls
|
133 |
-
$.data( img, '
|
134 |
|
135 |
// trigger deferred progress method if present
|
136 |
if ( hasNotify ) {
|
@@ -140,7 +142,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
140 |
// call doneLoading and clean listeners if all images are loaded
|
141 |
if ( $images.length === loaded.length ){
|
142 |
setTimeout( doneLoading );
|
143 |
-
$images.unbind( '.
|
144 |
}
|
145 |
}
|
146 |
|
@@ -148,7 +150,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
148 |
if ( !$images.length ) {
|
149 |
doneLoading();
|
150 |
} else {
|
151 |
-
$images.bind( 'load.
|
152 |
// trigger imgLoaded
|
153 |
imgLoaded( event.target, event.type === 'error' );
|
154 |
}).each( function( i, el ) {
|
@@ -156,7 +158,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
156 |
|
157 |
// find out if this image has been already checked for status
|
158 |
// if it was, and src has not changed, call imgLoaded on it
|
159 |
-
var cached = $.data( el, '
|
160 |
if ( cached && cached.src === src ) {
|
161 |
imgLoaded( el, cached.isBroken );
|
162 |
return;
|
@@ -237,7 +239,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
237 |
|
238 |
// preload images
|
239 |
var self = this;
|
240 |
-
this.el.
|
241 |
self.options.onLoad();
|
242 |
self._layout();
|
243 |
self._initEvents();
|
@@ -408,35 +410,41 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
408 |
_setInitialStyle : function() {
|
409 |
for (var j =0, pile_len = this.pilesArr.length; j < pile_len; j++){
|
410 |
|
411 |
-
var p = this.pilesArr[j
|
|
|
|
|
|
|
|
|
|
|
|
|
412 |
|
413 |
for( var i = 0, len = p.elements.length; i < len; ++i ) {
|
414 |
|
415 |
-
|
416 |
-
|
417 |
|
418 |
this._applyInitialTransition( $el );
|
419 |
|
420 |
-
if( i ===
|
|
|
|
|
|
|
421 |
styleCSS = { transform : 'rotate(' + this.options.pileAngles + 'deg)' };
|
422 |
}
|
423 |
else if( i === len - 3 ) {
|
424 |
styleCSS = { transform : 'rotate(-' + this.options.pileAngles + 'deg)' };
|
425 |
}
|
426 |
-
else
|
427 |
var extraStyle = { visibility : 'hidden' };
|
428 |
$el.css( extraStyle ).data( 'extraStyle', extraStyle );
|
429 |
}
|
430 |
-
else if( p.name.substr( 0, 6 ) !== 'nopile' ) {
|
431 |
-
$el.data( 'front', true ).append( '<div class="tp-title-cover"><div class="tp-title"><span>' + p.name + '</span><span>' + len + '</span></div></div>' );
|
432 |
-
}
|
433 |
|
434 |
$el.css( styleCSS ).data( {
|
435 |
initialStyle : styleCSS,
|
436 |
pileName : p.name,
|
437 |
pileCount : len,
|
438 |
shadow : $el.css( 'box-shadow' ),
|
439 |
-
isPile : p.name.substr(
|
440 |
} );
|
441 |
|
442 |
}
|
@@ -461,9 +469,9 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
461 |
|
462 |
var p = this.pilesArr[j],
|
463 |
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
stepW = this.itemSize.width + this.options.gutter,
|
468 |
|
469 |
accumIL = 0, accumIT = 0, il, it;
|
@@ -540,8 +548,9 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
540 |
// the position of the items will influence the final margin left value and height for the ul
|
541 |
// center the ul
|
542 |
lastItemTop = this.spread ? lastItemTop : accumT;
|
|
|
543 |
this.el.css( {
|
544 |
-
marginLeft :
|
545 |
height : lastItemTop + this.itemSize.height
|
546 |
} );
|
547 |
|
@@ -553,23 +562,17 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
553 |
}
|
554 |
|
555 |
// final style
|
556 |
-
var fs;
|
557 |
|
558 |
for (var j =0, pile_len = this.pilesArr.length; j < pile_len; j++){
|
559 |
|
560 |
var p = this.pilesArr[j],
|
561 |
-
|
562 |
-
//for( var pile in this.piles ) {
|
563 |
-
//
|
564 |
-
// var p = this.piles[ pile ],
|
565 |
-
|
566 |
cnt = 0;
|
567 |
|
568 |
for( var i = 0, len = p.elements.length; i < len; ++i ) {
|
569 |
|
570 |
var elem = p.elements[i],
|
571 |
$item = $( elem.el ),
|
572 |
-
$img = $item.find( 'img' ),
|
573 |
styleCSS = p.name === this.pileName ? {
|
574 |
zIndex : 9999,
|
575 |
visibility : 'visible',
|
@@ -581,12 +584,13 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
581 |
|
582 |
if( p.name === this.pileName ) {
|
583 |
|
584 |
-
if(
|
585 |
-
|
|
|
586 |
}
|
587 |
|
588 |
-
if(
|
589 |
-
$
|
590 |
}
|
591 |
|
592 |
fs = elem.finalPosition;
|
@@ -602,9 +606,6 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
602 |
}
|
603 |
|
604 |
}
|
605 |
-
else if( i < len - 1 ) {
|
606 |
-
$img.css( 'visibility', 'hidden' );
|
607 |
-
}
|
608 |
|
609 |
$item.css( styleCSS );
|
610 |
|
@@ -645,7 +646,11 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
645 |
|
646 |
}
|
647 |
|
648 |
-
this.el.css( 'height', fs.top + this.itemSize.height );
|
|
|
|
|
|
|
|
|
649 |
|
650 |
},
|
651 |
_closePile : function() {
|
@@ -666,11 +671,6 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
666 |
for (var j =0, pile_len = this.pilesArr.length; j < pile_len; j++){
|
667 |
|
668 |
var p = this.pilesArr[j],
|
669 |
-
|
670 |
-
//for( var pile in this.piles ) {
|
671 |
-
//
|
672 |
-
// var p = this.piles[ pile ],
|
673 |
-
|
674 |
cnt = 0;
|
675 |
|
676 |
for( var i = 0, len = p.elements.length; i < len; ++i ) {
|
@@ -704,7 +704,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
704 |
return;
|
705 |
}
|
706 |
|
707 |
-
var $el = $( this ), extraStyle = $el.data( 'extraStyle' );
|
708 |
|
709 |
// hack: remove box-shadow while animating to prevent the shadow stack effect
|
710 |
$el.css( 'box-shadow', $el.data( 'shadow' ) );
|
@@ -714,7 +714,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
714 |
self._applyInitialTransition( $el );
|
715 |
}
|
716 |
else {
|
717 |
-
$el.css(
|
718 |
}
|
719 |
|
720 |
if( extraStyle ) {
|
@@ -725,6 +725,8 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
725 |
|
726 |
if( $el.data( 'front' ) ) {
|
727 |
$el.find( 'div.tp-title' ).show();
|
|
|
|
|
728 |
}
|
729 |
|
730 |
if( cnt === $el.data( 'pileCount' ) ) {
|
@@ -739,9 +741,10 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
739 |
}
|
740 |
|
741 |
var $el = $( this );
|
742 |
-
|
743 |
-
|
744 |
-
|
|
|
745 |
}
|
746 |
|
747 |
if( self.support ) {
|
@@ -759,7 +762,11 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
759 |
this.pileName = '';
|
760 |
|
761 |
// update ul height
|
762 |
-
this.el.css( 'height', fs.top + this.itemSize.height );
|
|
|
|
|
|
|
|
|
763 |
|
764 |
}
|
765 |
|
@@ -820,7 +827,7 @@ if (!window.FooGalleryStackAlbumModernizr) {
|
|
820 |
if ( !instance ) {
|
821 |
|
822 |
logError( "cannot call methods on stapel prior to initialization; " +
|
823 |
-
|
824 |
return;
|
825 |
|
826 |
}
|
63 |
// ======================= imagesLoaded Plugin ===============================
|
64 |
// https://github.com/desandro/imagesloaded
|
65 |
|
66 |
+
// renamed from imagesLoaded to foogalleryImagesLoaded to avoid conflicts
|
67 |
+
|
68 |
+
// $('#my-container').foogalleryImagesLoaded(myFunction)
|
69 |
// execute a callback when all images have loaded.
|
70 |
// needed because .load() doesn't work on cached images
|
71 |
|
78 |
// blank image data-uri bypasses webkit log warning (thx doug jones)
|
79 |
var BLANK = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
|
80 |
|
81 |
+
$.fn.foogalleryImagesLoaded = function( callback ) {
|
82 |
var $this = this,
|
83 |
deferred = $.isFunction($.Deferred) ? $.Deferred() : 0,
|
84 |
hasNotify = $.isFunction(deferred.notify),
|
132 |
}
|
133 |
|
134 |
// cache image and its state for future calls
|
135 |
+
$.data( img, 'foogalleryImagesLoaded', { isBroken: isBroken, src: img.src } );
|
136 |
|
137 |
// trigger deferred progress method if present
|
138 |
if ( hasNotify ) {
|
142 |
// call doneLoading and clean listeners if all images are loaded
|
143 |
if ( $images.length === loaded.length ){
|
144 |
setTimeout( doneLoading );
|
145 |
+
$images.unbind( '.foogalleryImagesLoaded' );
|
146 |
}
|
147 |
}
|
148 |
|
150 |
if ( !$images.length ) {
|
151 |
doneLoading();
|
152 |
} else {
|
153 |
+
$images.bind( 'load.foogalleryImagesLoaded error.foogalleryImagesLoaded', function( event ){
|
154 |
// trigger imgLoaded
|
155 |
imgLoaded( event.target, event.type === 'error' );
|
156 |
}).each( function( i, el ) {
|
158 |
|
159 |
// find out if this image has been already checked for status
|
160 |
// if it was, and src has not changed, call imgLoaded on it
|
161 |
+
var cached = $.data( el, 'foogalleryImagesLoaded' );
|
162 |
if ( cached && cached.src === src ) {
|
163 |
imgLoaded( el, cached.isBroken );
|
164 |
return;
|
239 |
|
240 |
// preload images
|
241 |
var self = this;
|
242 |
+
this.el.foogalleryImagesLoaded( function() {
|
243 |
self.options.onLoad();
|
244 |
self._layout();
|
245 |
self._initEvents();
|
410 |
_setInitialStyle : function() {
|
411 |
for (var j =0, pile_len = this.pilesArr.length; j < pile_len; j++){
|
412 |
|
413 |
+
var p = this.pilesArr[j], featured = false, $el, styleCSS;
|
414 |
+
for (var k = 0, kl = p.elements.length; k < kl; k++){
|
415 |
+
if ( $( p.elements[k].el ).data('featured') ){
|
416 |
+
featured = true;
|
417 |
+
break;
|
418 |
+
}
|
419 |
+
}
|
420 |
|
421 |
for( var i = 0, len = p.elements.length; i < len; ++i ) {
|
422 |
|
423 |
+
$el = $( p.elements[i].el );
|
424 |
+
styleCSS = { transform : 'rotate(0deg)' };
|
425 |
|
426 |
this._applyInitialTransition( $el );
|
427 |
|
428 |
+
if ( p.name.substr( 0, 6 ) !== 'nopile' && ( $el.data('featured') || ( !featured && i === 0 ) ) ){
|
429 |
+
$el.css({ zIndex: 9999 }).data( 'front', true ).append( '<div class="tp-title-cover"><div class="tp-title"><span>' + p.name + '</span><span>' + len + '</span></div></div>' );
|
430 |
+
}
|
431 |
+
else if( i === len - 2 ) {
|
432 |
styleCSS = { transform : 'rotate(' + this.options.pileAngles + 'deg)' };
|
433 |
}
|
434 |
else if( i === len - 3 ) {
|
435 |
styleCSS = { transform : 'rotate(-' + this.options.pileAngles + 'deg)' };
|
436 |
}
|
437 |
+
else {
|
438 |
var extraStyle = { visibility : 'hidden' };
|
439 |
$el.css( extraStyle ).data( 'extraStyle', extraStyle );
|
440 |
}
|
|
|
|
|
|
|
441 |
|
442 |
$el.css( styleCSS ).data( {
|
443 |
initialStyle : styleCSS,
|
444 |
pileName : p.name,
|
445 |
pileCount : len,
|
446 |
shadow : $el.css( 'box-shadow' ),
|
447 |
+
isPile : p.name.substr(0, 6) !== 'nopile'
|
448 |
} );
|
449 |
|
450 |
}
|
469 |
|
470 |
var p = this.pilesArr[j],
|
471 |
|
472 |
+
//for( var pile in this.piles ) {
|
473 |
+
//
|
474 |
+
// var p = this.piles[pile],
|
475 |
stepW = this.itemSize.width + this.options.gutter,
|
476 |
|
477 |
accumIL = 0, accumIT = 0, il, it;
|
548 |
// the position of the items will influence the final margin left value and height for the ul
|
549 |
// center the ul
|
550 |
lastItemTop = this.spread ? lastItemTop : accumT;
|
551 |
+
this.marginLeft = ml;
|
552 |
this.el.css( {
|
553 |
+
marginLeft : this.marginLeft,
|
554 |
height : lastItemTop + this.itemSize.height
|
555 |
} );
|
556 |
|
562 |
}
|
563 |
|
564 |
// final style
|
565 |
+
var fs, rowWidth = 0;
|
566 |
|
567 |
for (var j =0, pile_len = this.pilesArr.length; j < pile_len; j++){
|
568 |
|
569 |
var p = this.pilesArr[j],
|
|
|
|
|
|
|
|
|
|
|
570 |
cnt = 0;
|
571 |
|
572 |
for( var i = 0, len = p.elements.length; i < len; ++i ) {
|
573 |
|
574 |
var elem = p.elements[i],
|
575 |
$item = $( elem.el ),
|
|
|
576 |
styleCSS = p.name === this.pileName ? {
|
577 |
zIndex : 9999,
|
578 |
visibility : 'visible',
|
584 |
|
585 |
if( p.name === this.pileName ) {
|
586 |
|
587 |
+
if (elem.finalPosition.top === 0){
|
588 |
+
if (rowWidth > 0) rowWidth += this.options.gutter;
|
589 |
+
rowWidth += this.itemSize.width;
|
590 |
}
|
591 |
|
592 |
+
if( $item.data( 'front' ) ) {
|
593 |
+
$item.find( 'div.tp-title' ).hide();
|
594 |
}
|
595 |
|
596 |
fs = elem.finalPosition;
|
606 |
}
|
607 |
|
608 |
}
|
|
|
|
|
|
|
609 |
|
610 |
$item.css( styleCSS );
|
611 |
|
646 |
|
647 |
}
|
648 |
|
649 |
+
//this.el.css( 'height', fs.top + this.itemSize.height );
|
650 |
+
this.el.css({
|
651 |
+
marginLeft: Math.ceil((this.elWidth - rowWidth) / 2),
|
652 |
+
height: fs.top + this.itemSize.height
|
653 |
+
});
|
654 |
|
655 |
},
|
656 |
_closePile : function() {
|
671 |
for (var j =0, pile_len = this.pilesArr.length; j < pile_len; j++){
|
672 |
|
673 |
var p = this.pilesArr[j],
|
|
|
|
|
|
|
|
|
|
|
674 |
cnt = 0;
|
675 |
|
676 |
for( var i = 0, len = p.elements.length; i < len; ++i ) {
|
704 |
return;
|
705 |
}
|
706 |
|
707 |
+
var $el = $( this ), extraStyle = $el.data( 'extraStyle' ), initialStyle = $el.data( 'initialStyle' );
|
708 |
|
709 |
// hack: remove box-shadow while animating to prevent the shadow stack effect
|
710 |
$el.css( 'box-shadow', $el.data( 'shadow' ) );
|
714 |
self._applyInitialTransition( $el );
|
715 |
}
|
716 |
else {
|
717 |
+
$el.css( initialStyle );
|
718 |
}
|
719 |
|
720 |
if( extraStyle ) {
|
725 |
|
726 |
if( $el.data( 'front' ) ) {
|
727 |
$el.find( 'div.tp-title' ).show();
|
728 |
+
} else {
|
729 |
+
$el.css({visibility: 'hidden', zIndex: 1});
|
730 |
}
|
731 |
|
732 |
if( cnt === $el.data( 'pileCount' ) ) {
|
741 |
}
|
742 |
|
743 |
var $el = $( this );
|
744 |
+
if( $el.data( 'front' ) ) {
|
745 |
+
$el.find( 'div.tp-title' ).show();
|
746 |
+
} else {
|
747 |
+
$el.css({visibility: 'hidden', zIndex: 1});
|
748 |
}
|
749 |
|
750 |
if( self.support ) {
|
762 |
this.pileName = '';
|
763 |
|
764 |
// update ul height
|
765 |
+
//this.el.css( 'height', fs.top + this.itemSize.height );
|
766 |
+
this.el.css({
|
767 |
+
marginLeft: this.marginLeft,
|
768 |
+
height: fs.top + this.itemSize.height
|
769 |
+
});
|
770 |
|
771 |
}
|
772 |
|
827 |
if ( !instance ) {
|
828 |
|
829 |
logError( "cannot call methods on stapel prior to initialization; " +
|
830 |
+
"attempted to call method '" + options + "'" );
|
831 |
return;
|
832 |
|
833 |
}
|
extensions/default-templates/default/class-default-gallery-template.php
CHANGED
@@ -55,6 +55,7 @@ if ( !class_exists( 'FooGallery_Default_Gallery_Template' ) ) {
|
|
55 |
'lazyload_support' => true,
|
56 |
'mandatory_classes' => 'fg-default',
|
57 |
'thumbnail_dimensions' => true,
|
|
|
58 |
'fields' => array(
|
59 |
array(
|
60 |
'id' => 'thumbnail_dimensions',
|
55 |
'lazyload_support' => true,
|
56 |
'mandatory_classes' => 'fg-default',
|
57 |
'thumbnail_dimensions' => true,
|
58 |
+
'filtering_support' => true,
|
59 |
'fields' => array(
|
60 |
array(
|
61 |
'id' => 'thumbnail_dimensions',
|
extensions/default-templates/justified/class-justified-gallery-template.php
CHANGED
@@ -55,6 +55,7 @@ if ( !class_exists( 'FooGallery_Justified_Gallery_Template' ) ) {
|
|
55 |
'paging_support' => true,
|
56 |
'mandatory_classes' => 'fg-justified',
|
57 |
'thumbnail_dimensions' => true,
|
|
|
58 |
'fields' => array(
|
59 |
array(
|
60 |
'id' => 'thumb_height',
|
55 |
'paging_support' => true,
|
56 |
'mandatory_classes' => 'fg-justified',
|
57 |
'thumbnail_dimensions' => true,
|
58 |
+
'filtering_support' => true,
|
59 |
'fields' => array(
|
60 |
array(
|
61 |
'id' => 'thumb_height',
|
extensions/default-templates/masonry/class-masonry-gallery-template.php
CHANGED
@@ -64,6 +64,7 @@ if ( !class_exists( 'FooGallery_Masonry_Gallery_Template' ) ) {
|
|
64 |
'paging_support' => true,
|
65 |
'mandatory_classes' => 'fg-masonry',
|
66 |
'thumbnail_dimensions' => true,
|
|
|
67 |
'fields' => array(
|
68 |
array(
|
69 |
'id' => 'thumbnail_width',
|
64 |
'paging_support' => true,
|
65 |
'mandatory_classes' => 'fg-masonry',
|
66 |
'thumbnail_dimensions' => true,
|
67 |
+
'filtering_support' => true,
|
68 |
'fields' => array(
|
69 |
array(
|
70 |
'id' => 'thumbnail_width',
|
extensions/default-templates/shared/css/foogallery.css
CHANGED
@@ -1847,7 +1847,7 @@ only screen and (min-resolution: 2.25dppx) {
|
|
1847 |
text-align: left;
|
1848 |
}
|
1849 |
.fg-simple_portfolio .fg-caption-desc {
|
1850 |
-
text-align:
|
1851 |
}
|
1852 |
.fg-simple_portfolio.fg-light .fg-caption,
|
1853 |
.fg-simple_portfolio.fg-dark .fg-caption {
|
@@ -1885,7 +1885,7 @@ only screen and (min-resolution: 2.25dppx) {
|
|
1885 |
|
1886 |
/* Handle Border Sizing */
|
1887 |
.fg-simple_portfolio .fg-caption {
|
1888 |
-
border-width:
|
1889 |
}
|
1890 |
.fg-simple_portfolio .fg-caption-title+.fg-caption-desc {
|
1891 |
margin-top: 5px;
|
1847 |
text-align: left;
|
1848 |
}
|
1849 |
.fg-simple_portfolio .fg-caption-desc {
|
1850 |
+
text-align: left;
|
1851 |
}
|
1852 |
.fg-simple_portfolio.fg-light .fg-caption,
|
1853 |
.fg-simple_portfolio.fg-dark .fg-caption {
|
1885 |
|
1886 |
/* Handle Border Sizing */
|
1887 |
.fg-simple_portfolio .fg-caption {
|
1888 |
+
border-width: 0;
|
1889 |
}
|
1890 |
.fg-simple_portfolio .fg-caption-title+.fg-caption-desc {
|
1891 |
margin-top: 5px;
|
extensions/default-templates/shared/css/foogallery.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.foogallery,.foogallery *{box-sizing:border-box}.foogallery{display:block;z-index:1;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;position:relative;line-height:0;font-size:0;width:100%;max-width:100%}.foogallery .fg-item{display:inline-block;position:relative;background-color:transparent;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.foogallery .fg-item-inner{display:block;position:relative;visibility:hidden;overflow:hidden;opacity:0;z-index:3;margin:0;border:solid 0 transparent}.foogallery .fg-item.fg-error,.foogallery .fg-item.fg-loading{background:no-repeat center}.foogallery .fg-item.fg-error{background-image:url(../img/image.png)}@media only screen and (-o-min-device-pixel-ratio:5/4),only screen and (-webkit-min-device-pixel-ratio:1.25),only screen and (min-device-pixel-ratio:1.25),only screen and (min-resolution:1.25dppx){.foogallery .fg-item.fg-error{background-image:url(../img/image@2x.png)}}@media only screen and (-o-min-device-pixel-ratio:9/4),only screen and (-webkit-min-device-pixel-ratio:2.25),only screen and (min-device-pixel-ratio:2.25),only screen and (min-resolution:2.25dppx){.foogallery .fg-item.fg-error{background-image:url(../img/image@3x.png)}}.foogallery .fg-item.fg-loaded{z-index:4}.foogallery .fg-loaded .fg-item-inner{visibility:visible;opacity:1;z-index:5}.foogallery .fg-error .fg-item-inner{pointer-events:none;cursor:default}.foogallery .fg-thumb{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:4}.foogallery .fg-image{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:5;max-width:none;height:auto;margin:0}.foogallery .fg-loaded .fg-thumb{z-index:6}.foogallery .fg-loaded .fg-image{z-index:7}.foogallery.fg-light .fg-item-inner{background-color:#fff;color:#333;border-color:#fff}.foogallery.fg-dark .fg-item-inner{background-color:#333;color:#fff;border-color:#333}.foogallery.fg-light .fg-item.fg-error,.foogallery.fg-light .fg-item.fg-idle,.foogallery.fg-light .fg-item.fg-loading{background-color:#eee;box-shadow:inset 0 0 0 1px #ddd}.foogallery.fg-dark .fg-item.fg-error,.foogallery.fg-dark .fg-item.fg-idle,.foogallery.fg-dark .fg-item.fg-loading{background-color:#444;box-shadow:inset 0 0 0 1px #333}.foogallery.fg-border-thin .fg-item-inner{border-width:4px}.foogallery.fg-border-medium .fg-item-inner{border-width:10px}.foogallery.fg-border-thick .fg-item-inner{border-width:16px}.foogallery.fg-light.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-dark.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-light.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-light.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-light.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-shadow-inset-small .fg-thumb:after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:7}.foogallery.fg-dark.fg-shadow-inset-small .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.foogallery.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%}.foogallery.fg-round-small .fg-item,.foogallery.fg-round-small .fg-item-inner{border-radius:5px}.foogallery.fg-round-medium .fg-item,.foogallery.fg-round-medium .fg-item-inner{border-radius:10px}.foogallery.fg-round-large .fg-item,.foogallery.fg-round-large .fg-item-inner{border-radius:15px}.foogallery.fg-round-full .fg-item,.foogallery.fg-round-full .fg-item-inner{border-radius:50%}.foogallery .fg-loader{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);width:1em;height:1em;font-size:5px;visibility:hidden;opacity:0}.foogallery .fg-loading .fg-loader{visibility:visible;opacity:1}.fg-loading-default .fg-loader{border-radius:50%;text-indent:-9999em;-webkit-animation:loading-default 1.1s infinite ease;animation:loading-default 1.1s infinite ease}@-webkit-keyframes loading-default{0%,100%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,1),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.5),-1.8em -1.8em 0 0 rgba(130,130,130,.7)}12.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.7),1.8em -1.8em 0 0 rgba(130,130,130,1),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.5)}25%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.5),1.8em -1.8em 0 0 rgba(130,130,130,.7),2.5em 0 0 0 rgba(130,130,130,1),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}37.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.5),2.5em 0 0 0 rgba(130,130,130,.7),1.75em 1.75em 0 0 rgba(130,130,130,1),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}50%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.5),1.75em 1.75em 0 0 rgba(130,130,130,.7),0 2.5em 0 0 rgba(130,130,130,1),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}62.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.5),0 2.5em 0 0 rgba(130,130,130,.7),-1.8em 1.8em 0 0 rgba(130,130,130,1),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}75%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.5),-1.8em 1.8em 0 0 rgba(130,130,130,.7),-2.6em 0 0 0 rgba(130,130,130,1),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}87.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.5),-2.6em 0 0 0 rgba(130,130,130,.7),-1.8em -1.8em 0 0 rgba(130,130,130,1)}}@keyframes loading-default{0%,100%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,1),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.5),-1.8em -1.8em 0 0 rgba(130,130,130,.7)}12.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.7),1.8em -1.8em 0 0 rgba(130,130,130,1),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.5)}25%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.5),1.8em -1.8em 0 0 rgba(130,130,130,.7),2.5em 0 0 0 rgba(130,130,130,1),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}37.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.5),2.5em 0 0 0 rgba(130,130,130,.7),1.75em 1.75em 0 0 rgba(130,130,130,1),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}50%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.5),1.75em 1.75em 0 0 rgba(130,130,130,.7),0 2.5em 0 0 rgba(130,130,130,1),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}62.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.5),0 2.5em 0 0 rgba(130,130,130,.7),-1.8em 1.8em 0 0 rgba(130,130,130,1),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}75%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.5),-1.8em 1.8em 0 0 rgba(130,130,130,.7),-2.6em 0 0 0 rgba(130,130,130,1),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}87.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.5),-2.6em 0 0 0 rgba(130,130,130,.7),-1.8em -1.8em 0 0 rgba(130,130,130,1)}}.fg-loading-bars .fg-loader,.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{background:rgba(130,130,130,1);-webkit-animation:loading-bars 1s infinite ease-in-out;animation:loading-bars 1s infinite ease-in-out;width:1em;height:4em}.fg-loading-bars .fg-loader{color:rgba(130,130,130,1);text-indent:-9999em;font-size:4px;-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{position:absolute;top:0;content:''}.fg-loading-bars .fg-loader:before{left:-1.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-bars .fg-loader:after{left:1.5em}@-webkit-keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}@keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}.fg-loading-trail .fg-loader{color:#828282;font-size:20px;text-indent:-9999em;overflow:hidden;border-radius:50%;-webkit-animation:loading-trail-1 1.7s infinite ease,loading-trail-2 1.7s infinite ease;animation:loading-trail-1 1.7s infinite ease,loading-trail-2 1.7s infinite ease}@-webkit-keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@-webkit-keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.fg-loading-pulse .fg-loader,.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{border-radius:50%;width:2.5em;height:2.5em;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation:loading-pulse 1.8s infinite ease-in-out;animation:loading-pulse 1.8s infinite ease-in-out}.fg-loading-pulse .fg-loader{color:#828282;font-size:4px;text-indent:-9999em;transform:translateX(-50%) translateY(-150%);-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{content:'';position:absolute;top:0}.fg-loading-pulse .fg-loader:before{left:-3.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-pulse .fg-loader:after{left:3.5em}@-webkit-keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}@keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}.fg-loading-dots .fg-loader{color:#828282;font-size:5px;border-radius:50%;text-indent:-9999em;-webkit-animation:loading-dots 1.3s infinite linear;animation:loading-dots 1.3s infinite linear}@-webkit-keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}@keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}.fg-loading-partial .fg-loader,.fg-loading-partial .fg-loader:after{border-radius:50%;width:10em;height:10em}.fg-loading-partial .fg-loader{font-size:4px;text-indent:-9999em;border-top:1.1em solid rgba(130,130,130,.2);border-right:1.1em solid rgba(130,130,130,.2);border-bottom:1.1em solid rgba(130,130,130,.2);border-left:1.1em solid #828282;-webkit-animation:loading-partial 1.1s infinite linear;animation:loading-partial 1.1s infinite linear}@-webkit-keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.foogallery.fg-loaded-drop .fg-item,.foogallery.fg-loaded-fade-in .fg-item,.foogallery.fg-loaded-flip .fg-item,.foogallery.fg-loaded-fly .fg-item,.foogallery.fg-loaded-scale-up .fg-item,.foogallery.fg-loaded-slide-down .fg-item,.foogallery.fg-loaded-slide-left .fg-item,.foogallery.fg-loaded-slide-right .fg-item,.foogallery.fg-loaded-slide-up .fg-item,.foogallery.fg-loaded-swing-down .fg-item{transition-timing-function:ease;transition-duration:650ms;transition-property:background-color,transform}.foogallery.fg-loaded-drop .fg-item-inner,.foogallery.fg-loaded-fade-in .fg-item-inner,.foogallery.fg-loaded-flip .fg-item-inner,.foogallery.fg-loaded-fly .fg-item-inner,.foogallery.fg-loaded-scale-up .fg-item-inner,.foogallery.fg-loaded-slide-down .fg-item-inner,.foogallery.fg-loaded-slide-left .fg-item-inner,.foogallery.fg-loaded-slide-right .fg-item-inner,.foogallery.fg-loaded-slide-up .fg-item-inner,.foogallery.fg-loaded-swing-down .fg-item-inner{transition-timing-function:ease;transition-duration:650ms}.foogallery.fg-loaded-drop .fg-item.fg-loaded,.foogallery.fg-loaded-flip .fg-item.fg-loaded,.foogallery.fg-loaded-fly .fg-item.fg-loaded,.foogallery.fg-loaded-swing-down .fg-item.fg-loaded{perspective:1300px}.foogallery.fg-loaded-fade-in .fg-item-inner{transition-property:visibility,opacity}.foogallery .fg-caption{visibility:hidden;opacity:0;background-color:rgba(0,0,0,.6);color:#fff;position:absolute;z-index:8;width:100%;max-height:100%;overflow:hidden;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.3;border:none;text-align:center;cursor:pointer}.foogallery .fg-caption a{text-decoration:none;color:#fff;border-bottom:1px solid #fff}.foogallery .fg-caption a:hover{border-bottom:none}.foogallery .fg-caption-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:400;padding:5px}.foogallery .fg-caption-desc{padding:5px}.foogallery .fg-caption-title+.fg-caption-desc{padding-top:0}.foogallery.fg-caption-always .fg-caption .fg-caption-inner:before{display:none}.foogallery.fg-caption-always .fg-item.fg-loaded .fg-caption{left:0;bottom:0;transition-timing-function:ease;transition-duration:.3s;transition-property:visibility,opacity;visibility:visible;opacity:1;text-align:left}.foogallery.fg-caption-hover .fg-caption .fg-caption-inner{width:100%;max-height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.foogallery.fg-caption-hover .fg-item.fg-loaded .fg-thumb:before{display:none}.foogallery.fg-hover-circle-plus .fg-thumb:before,.foogallery.fg-hover-external .fg-thumb:before,.foogallery.fg-hover-eye .fg-thumb:before,.foogallery.fg-hover-plus .fg-thumb:before,.foogallery.fg-hover-tint .fg-thumb:before,.foogallery.fg-hover-zoom .fg-thumb:before,.foogallery.fg-hover-zoom2 .fg-thumb:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{content:"";display:block;position:absolute;visibility:hidden;opacity:0;top:0;bottom:0;left:0;right:0;z-index:8;background:rgba(0,0,0,.5) no-repeat center center;background-size:32px 32px}.foogallery.fg-hover-circle-plus .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-circle-plus .fg-thumb:focus:before,.foogallery.fg-hover-external .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-external .fg-thumb:focus:before,.foogallery.fg-hover-eye .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-eye .fg-thumb:focus:before,.foogallery.fg-hover-plus .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-plus .fg-thumb:focus:before,.foogallery.fg-hover-tint .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-tint .fg-thumb:focus:before,.foogallery.fg-hover-zoom .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-zoom .fg-thumb:focus:before,.foogallery.fg-hover-zoom2 .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-zoom2 .fg-thumb:focus:before,.foogallery.fg-hover-zoom3 .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-zoom3 .fg-thumb:focus:before{visibility:visible;opacity:1}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-tint .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-caption-inner:before{content:"";display:inline-block;position:relative;width:32px;height:32px;margin:10px 0 5px 0;background:transparent no-repeat center center;background-size:32px 32px;vertical-align:middle}.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-thumb:before{background-image:url(../img/zoom.png)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-thumb:before{background-image:url(../img/zoom2.png)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{background-image:url(../img/zoom3.png)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-thumb:before{background-image:url(../img/plus.png)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-thumb:before{background-image:url(../img/circle-plus.png)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-thumb:before{background-image:url(../img/eye.png)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-thumb:before{background-image:url(../img/external.png)}@media only screen and (-o-min-device-pixel-ratio:5/4),only screen and (-webkit-min-device-pixel-ratio:1.25),only screen and (min-device-pixel-ratio:1.25),only screen and (min-resolution:1.25dppx){.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-thumb:before{background-image:url(../img/zoom@2x.png)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-thumb:before{background-image:url(../img/zoom2@2x.png)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{background-image:url(../img/zoom3@2x.png)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-thumb:before{background-image:url(../img/plus@2x.png)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-thumb:before{background-image:url(../img/circle-plus@2x.png)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-thumb:before{background-image:url(../img/eye@2x.png)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-thumb:before{background-image:url(../img/external@2x.png)}}@media only screen and (-o-min-device-pixel-ratio:9/4),only screen and (-webkit-min-device-pixel-ratio:2.25),only screen and (min-device-pixel-ratio:2.25),only screen and (min-resolution:2.25dppx){.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-thumb:before{background-image:url(../img/zoom@3x.png)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-thumb:before{background-image:url(../img/zoom2@3x.png)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{background-image:url(../img/zoom3@3x.png)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-thumb:before{background-image:url(../img/plus@3x.png)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-thumb:before{background-image:url(../img/circle-plus@3x.png)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-thumb:before{background-image:url(../img/eye@3x.png)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-thumb:before{background-image:url(../img/external@3x.png)}}.foogallery.fg-caption-hover.fg-hover-colorize .fg-caption,.foogallery.fg-caption-hover.fg-hover-fade .fg-caption,.foogallery.fg-caption-hover.fg-hover-grayscale .fg-caption,.foogallery.fg-caption-hover.fg-hover-instant .fg-caption,.foogallery.fg-caption-hover.fg-hover-push .fg-caption,.foogallery.fg-caption-hover.fg-hover-scale .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-down .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-caption,.foogallery.fg-hover-colorize .fg-image,.foogallery.fg-hover-colorize .fg-thumb:before,.foogallery.fg-hover-fade .fg-thumb:before,.foogallery.fg-hover-grayscale .fg-image,.foogallery.fg-hover-grayscale .fg-thumb:before,.foogallery.fg-hover-instant .fg-thumb:before,.foogallery.fg-hover-push .fg-thumb,.foogallery.fg-hover-scale .fg-item,.foogallery.fg-hover-scale .fg-thumb:before,.foogallery.fg-hover-slide-down .fg-thumb:before,.foogallery.fg-hover-slide-left .fg-thumb:before,.foogallery.fg-hover-slide-right .fg-thumb:before,.foogallery.fg-hover-slide-up .fg-thumb:before{transition-timing-function:ease;transition-duration:.3s}.foogallery.fg-hover-colorize .fg-image{filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'saturate\' values=\'0\'/></filter></svg>#grayscale");filter:gray;-webkit-filter:grayscale(100%);-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image{-webkit-filter:none;filter:none}.foogallery.fg-caption-hover.fg-hover-colorize .fg-caption,.foogallery.fg-hover-colorize .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-colorize .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-hover-grayscale .fg-image{-webkit-filter:none;filter:none;-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image{-webkit-filter:grayscale(1);-webkit-filter:grayscale(100%);filter:grayscale(100%);filter:gray;opacity:1}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-caption,.foogallery.fg-hover-grayscale .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:none}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transform:translateX(100%);visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-thumb{transition-property:transform}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-caption{transform:translateY(0)}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb,.foogallery.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb{transform:translateX(-100%)}.foogallery.fg-hover-scale .fg-item{transition-property:transform;z-index:4}.foogallery.fg-hover-scale .fg-item:hover{transform:scale(1.048);z-index:10}.foogallery.fg-caption-hover.fg-hover-scale .fg-caption,.foogallery.fg-hover-scale .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-scale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-scale .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-thumb:before,.foogallery.fg-hover-slide-left .fg-loaded .fg-thumb:before,.foogallery.fg-hover-slide-right .fg-loaded .fg-thumb:before,.foogallery.fg-hover-slide-up .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:transform;visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-thumb:before{transform:translateY(0) translateX(0)}.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-up .fg-loaded .fg-thumb:before{transform:translateY(100%)}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-thumb:before{transform:translateY(-100%)}.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-hover-slide-left .fg-loaded .fg-thumb:before{transform:translateX(100%)}.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-hover-slide-right .fg-loaded .fg-thumb:before{transform:translateX(-100%)}.fg-paging-container,.fg-paging-container *,.fg-paging-container :after,.fg-paging-container :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.fg-paging-container{display:block;padding:15px;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fg-paging-container .fg-dot-item,.fg-paging-container .fg-dots{display:inline-block;margin:0;padding:0;outline:0;list-style:none}.fg-paging-container .fg-dot-item .fg-dot-link{display:inline-block;margin:3px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none;border:1px solid transparent;position:relative;border-radius:50%;padding:0;font-size:0;outline:0;color:transparent;box-shadow:none}.fg-paging-container .fg-dot-item .fg-dot-link:before{content:"";background-color:transparent;border:1px solid transparent;display:block;border-radius:50%;width:9px;height:9px;padding:0;margin:2px}.fg-paging-container .fg-dot-item .fg-dot-link:active,.fg-paging-container .fg-dot-item .fg-dot-link:focus,.fg-paging-container .fg-dot-item .fg-dot-link:hover{text-decoration:none;box-shadow:none;outline:0}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container .fg-dot-item.fg-selected .fg-dot-link{cursor:not-allowed;pointer-events:none}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link{cursor:not-allowed;pointer-events:none;outline:0}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link{background-color:#eee;border-color:#9e9e9e}.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link{border-color:#8a8a8a}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#666;border-color:#8a8a8a}.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#eee;border-color:#9e9e9e;opacity:.5}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link{background-color:#666;border-color:#333}.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link{border-color:#444}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#333;border-color:#444}.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#666;border-color:#333;opacity:.5}.fg-default:after{content:'';display:block;clear:both}.fg-default .fg-item,.fg-default .fg-item-inner,.fg-default .fg-thumb{display:inline-block;vertical-align:top;max-width:100%}.fg-default .fg-image{border-radius:0;display:block;max-width:100%;height:auto;margin:0;padding:0}.fg-default .fg-image{vertical-align:top}.fg-default.fg-left{text-align:left}.fg-default.fg-center{text-align:center}.fg-default.fg-right{text-align:right}.fg-default.fg-gutter-5{padding-left:5px;margin-bottom:-5px}.fg-default.fg-gutter-5 .fg-item{margin-right:5px;margin-bottom:5px}.fg-default.fg-gutter-10{padding-left:10px;margin-bottom:-10px}.fg-default.fg-gutter-10 .fg-item{margin-right:10px;margin-bottom:10px}.fg-default.fg-gutter-15{padding-left:15px;margin-bottom:-15px}.fg-default.fg-gutter-15 .fg-item{margin-right:15px;margin-bottom:15px}.fg-default.fg-gutter-20{padding-left:20px;margin-bottom:-20px}.fg-default.fg-gutter-20 .fg-item{margin-right:20px;margin-bottom:20px}.fg-default.fg-gutter-25{padding-left:25px;margin-bottom:-25px}.fg-default.fg-gutter-25 .fg-item{margin-right:25px;margin-bottom:25px}.fg-masonry *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.foogallery.fg-masonry.fg-center{margin:0 auto}.fg-masonry .fg-thumb{display:block}.fg-masonry.fg-masonry-fixed .fg-thumb{display:inline-block}.fg-masonry.fg-masonry-fixed .fg-image{max-width:100%}.fg-masonry .fg-column-width{display:inline-block;visibility:hidden;height:0;border:solid 0 transparent}.fg-masonry.fg-masonry-2col .fg-image,.fg-masonry.fg-masonry-3col .fg-image,.fg-masonry.fg-masonry-4col .fg-image,.fg-masonry.fg-masonry-5col .fg-image{width:100%;height:auto;max-width:100%}.fg-masonry .fg-item{line-height:0;font-size:0}.fg-masonry.fg-masonry-2col .fg-item{margin-bottom:1%;width:49%}.fg-masonry.fg-masonry-2col .fg-column-width{width:49%}.fg-masonry.fg-masonry-2col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-item{margin-bottom:3%;width:47%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-column-width{width:47%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-masonry-3col .fg-item{margin-bottom:1%;width:32%}.fg-masonry.fg-masonry-3col .fg-column-width{width:32%}.fg-masonry.fg-masonry-3col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-item{margin-bottom:0;width:33%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-column-width{width:33%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-item{margin-bottom:3%;width:30%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-column-width{width:30%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-masonry-4col .fg-item{margin-bottom:1%;width:24%}.fg-masonry.fg-masonry-4col .fg-column-width{width:24%}.fg-masonry.fg-masonry-4col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item{margin-bottom:0;width:25%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width{width:25%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item{margin-bottom:3%;width:22%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width{width:22%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:19%}.fg-masonry.fg-masonry-5col .fg-column-width{width:19%}.fg-masonry.fg-masonry-5col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:20%}.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:20%}.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:17%}.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:17%}.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:3%}@media screen and (max-width:720px){.fg-masonry.fg-masonry-4col .fg-item,.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:32%}.fg-masonry.fg-masonry-4col .fg-column-width,.fg-masonry.fg-masonry-5col .fg-column-width{width:32%}.fg-masonry.fg-masonry-4col .fg-gutter-width,.fg-masonry.fg-masonry-5col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:33%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:33%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:30%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:30%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:480px){.fg-masonry.fg-masonry-3col .fg-item,.fg-masonry.fg-masonry-4col .fg-item,.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:49%}.fg-masonry.fg-masonry-3col .fg-column-width,.fg-masonry.fg-masonry-4col .fg-column-width,.fg-masonry.fg-masonry-5col .fg-column-width{width:49%}.fg-masonry.fg-masonry-3col .fg-gutter-width,.fg-masonry.fg-masonry-4col .fg-gutter-width,.fg-masonry.fg-masonry-5col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:47%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:47%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:320px){.fg-masonry.fg-masonry-2col .fg-item,.fg-masonry.fg-masonry-3col .fg-item,.fg-masonry.fg-masonry-4col .fg-item,.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:100%}.fg-masonry.fg-masonry-2col .fg-column-width,.fg-masonry.fg-masonry-3col .fg-column-width,.fg-masonry.fg-masonry-4col .fg-column-width,.fg-masonry.fg-masonry-5col .fg-column-width{width:100%}.fg-masonry.fg-masonry-2col .fg-gutter-width,.fg-masonry.fg-masonry-3col .fg-gutter-width,.fg-masonry.fg-masonry-4col .fg-gutter-width,.fg-masonry.fg-masonry-5col .fg-gutter-width{width:0}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:0}}.foogallery.fg-border-thin .fg-column-width{border-width:5px}.foogallery.fg-border-medium .fg-column-width{border-width:10px}.foogallery.fg-border-thick .fg-column-width{border-width:15px}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner{display:block;position:relative;max-height:none;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-hover .fg-item-inner .fg-thumb:before{display:block}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-masonry.fg-captions-bottom .fg-caption-desc,.fg-masonry.fg-captions-bottom .fg-caption-title{text-align:left}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption,.fg-masonry.fg-captions-bottom.fg-light .fg-caption{color:#828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a:hover,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a:hover{border-bottom:none}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{color:#222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{color:#fff}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-masonry.fg-captions-bottom .fg-caption{border-width:10px}.fg-masonry.fg-captions-bottom .fg-caption-title+.fg-caption-desc{margin-top:5px}.fg-masonry.fg-captions-bottom.fg-border-thin .fg-caption{border-width:10px 5px 5px 5px}.fg-masonry.fg-captions-bottom.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption{border-width:15px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-justified{box-sizing:border-box;position:relative}.foogallery.fg-justified .fg-image,.foogallery.fg-justified .fg-item,.foogallery.fg-justified .fg-item-inner,.foogallery.fg-justified .fg-thumb{box-sizing:border-box;display:block;margin:0;padding:0}.fg-justified .fg-item{visibility:visible;position:absolute}.fg-justified .fg-item-inner{position:relative;width:100%;height:100%}.fg-justified .fg-thumb{position:relative;overflow:hidden}.fg-justified .fg-image{z-index:1}.fg-justified .fg-item.fg-positioned .fg-thumb{width:100%;height:100%}.fg-justified .fg-item.fg-positioned .fg-image{width:100%;height:auto;min-height:100%}.fg-simple_portfolio{box-sizing:border-box;position:relative;font-size:16px;margin:0 auto;padding:0;width:100%}.fg-simple_portfolio .fg-item{position:absolute;display:inline-block;margin:0;padding:0;outline:0}.fg-simple_portfolio .fg-image,.fg-simple_portfolio .fg-item-inner,.fg-simple_portfolio .fg-thumb{display:block;margin:0;padding:0;outline:0}.fg-simple_portfolio .fg-item-inner{position:relative;width:100%;height:100%}.fg-simple_portfolio .fg-thumb{box-sizing:border-box;display:block;margin:0;padding:0;border:none;outline:0;position:relative;overflow:hidden}.fg-simple_portfolio .fg-item.fg-positioned .fg-image{width:100%;height:auto}.fg-simple_portfolio .fg-image{z-index:1}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent}.foogallery.fg-simple_portfolio .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner{display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-simple_portfolio.fg-caption-hover .fg-item-inner .fg-thumb:before{display:block}.foogallery.fg-simple_portfolio.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-simple_portfolio .fg-caption-title{text-align:left}.fg-simple_portfolio .fg-caption-desc{text-align:justify}.fg-simple_portfolio.fg-dark .fg-caption,.fg-simple_portfolio.fg-light .fg-caption{color:#828282}.fg-simple_portfolio.fg-dark .fg-caption a,.fg-simple_portfolio.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-simple_portfolio.fg-dark .fg-caption a:hover,.fg-simple_portfolio.fg-light .fg-caption a:hover{border-bottom:none}.fg-simple_portfolio.fg-light .fg-caption-title,.fg-simple_portfolio.fg-light .fg-caption-title a{color:#222}.fg-simple_portfolio.fg-dark .fg-caption-title,.fg-simple_portfolio.fg-dark .fg-caption-title a{color:#fff}.fg-simple_portfolio.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-simple_portfolio.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-simple_portfolio.fg-captions-top .fg-item.fg-positioned .fg-thumb{position:absolute;bottom:0;left:0}.fg-simple_portfolio .fg-caption{border-width:10px}.fg-simple_portfolio .fg-caption-title+.fg-caption-desc{margin-top:5px}.fg-simple_portfolio.fg-border-thin .fg-caption{border-width:10px 5px 5px 5px}.fg-simple_portfolio.fg-captions-top.fg-border-thin .fg-caption{border-width:5px 5px 10px 5px}.fg-simple_portfolio.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.fg-simple_portfolio.fg-border-thick .fg-caption{border-width:15px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 15px 0}.fg-simple_portfolio.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.foogallery.fg-preset.fg-polaroid .fg-item{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .35s,background-color .65s;transition:transform .35s,background-color .65s}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n+1){-webkit-transform:rotate(3deg);transform:rotate(3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n){-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(3n){-webkit-transform:rotate(1deg);transform:rotate(1deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(5n){-webkit-transform:rotate(-2deg);transform:rotate(-2deg)}.foogallery.fg-preset.fg-polaroid .fg-item:hover{-webkit-transform:rotate(0);transform:rotate(0)}.foogallery.fg-preset.fg-polaroid .fg-caption{position:relative;width:auto;font-family:"Segoe Print Regular",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}.foogallery.fg-preset.fg-polaroid .fg-caption-inner,.foogallery.fg-preset.fg-polaroid .fg-caption-title{position:relative;width:auto}.foogallery.fg-preset.fg-polaroid .fg-caption-title{text-align:center}.foogallery.fg-preset.fg-polaroid .fg-caption-desc{display:none}.foogallery.fg-light.fg-preset.fg-polaroid .fg-caption-title,.foogallery.fg-preset.fg-polaroid .fg-caption-title{color:#333}.foogallery.fg-dark.fg-preset.fg-polaroid .fg-caption-title{color:#fff}.foogallery.fg-preset.fg-polaroid .fg-caption{border-style:solid;border-color:transparent;border-width:10px}.foogallery.fg-preset.fg-polaroid .fg-caption-title+.fg-caption-desc{margin-top:5px}.foogallery.fg-preset.fg-polaroid.fg-border-thin .fg-caption{border-width:10px 5px 5px 5px}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thin .fg-caption{border-width:5px 5px 10px 5px}.foogallery.fg-preset.fg-polaroid.fg-border-medium .fg-caption{border-width:10px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption{border-width:15px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 15px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-image-viewer{display:block;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif}.fg-image-viewer.fg-left{text-align:left}.fg-image-viewer.fg-center{text-align:center}.fg-image-viewer.fg-right{text-align:right}.fiv-inner{position:relative;display:inline-block;max-width:100%;overflow:hidden;z-index:6}.fiv-inner .fiv-inner-container{position:relative;overflow:hidden;max-width:100%;border-style:solid;border-width:0;border-bottom-width:4px;z-index:5}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:active,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:hover,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:visited{position:relative;display:block;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item{position:relative;visibility:visible;opacity:1;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb img{display:block;max-width:100%;height:auto;border:none;outline:0;text-decoration:none}.fg-image-viewer .fiv-inner .fiv-ctrls{display:block;text-align:center;font-size:14px;border-style:solid;line-height:34px}.fg-image-viewer .fiv-inner .fiv-ctrls:after{content:'';display:block;clear:both}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count{display:inline-block;font-weight:400;margin:0}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:none;min-width:80px;position:relative;overflow:hidden;transition:background-color .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{display:block;position:absolute;font-size:24px;line-height:30px;top:0;left:0;width:100%;transform:translateY(0);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover:before{transform:translateY(-100%)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev span{display:block;width:100%;transform:translateY(100%);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover span{transform:translateY(0)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{float:left}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{content:'\2190'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next{float:right}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before{content:'\2192'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count span{margin:0 4px}/*!* Theme - Default (Light) *!*//*!* Theme - Dark *!*/.foogallery.fg-image-viewer.fg-caption-always .fg-item-inner .fg-caption{padding:0;border:none;background:#000;background:-moz-linear-gradient(left,rgba(0,0,0,.8) 0,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%);background:-webkit-linear-gradient(left,rgba(0,0,0,.8) 0,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%);background:linear-gradient(to right,rgba(0,0,0,.8) 0,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%)}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-desc{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title+.fg-caption-desc{padding:0 10px 10px 10px}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-light .fiv-inner .fiv-inner-container{background-color:#fff;color:#333;border-color:#fff}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#f2f2f2}.fg-image-viewer.fg-light .fiv-next,.fg-image-viewer.fg-light .fiv-prev{box-shadow:inset 0 0 0 1px #ddd}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-dark .fiv-inner .fiv-inner-container{background-color:#333;color:#fff;border-color:#333}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#444}.fg-image-viewer.fg-dark .fiv-next,.fg-image-viewer.fg-dark .fiv-prev{box-shadow:inset 0 0 0 1px #222}.foogallery.fg-image-viewer.fg-border-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin .fg-item-inner{border-width:0}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-inner-container{border-width:4px}.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-inner-container{border-width:10px}.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-inner-container{border-width:16px}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-ctrls{border-top-width:1px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-round-small .fiv-inner{border-radius:5px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-round-medium .fiv-inner{border-radius:10px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-round-large .fiv-inner{border-radius:15px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-full .fiv-inner,.foogallery.fg-image-viewer.fg-round-full .fiv-next,.foogallery.fg-image-viewer.fg-round-full .fiv-prev{border-radius:50%}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fg-item-inner{box-shadow:none}.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fiv-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fiv-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fiv-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-thumbnail,.foogallery.fg-thumbnail.fg-center{text-align:center}.foogallery.fg-thumbnail.fg-left{text-align:left}.foogallery.fg-thumbnail.fg-right{text-align:right}.foogallery.fg-thumbnail.fg-float-left{float:left;width:auto}.foogallery.fg-thumbnail.fg-float-right{float:right;width:auto}.foogallery.fg-thumbnail .fg-item{display:inline-block;vertical-align:top;max-width:100%}.foogallery.fg-thumbnail .fg-image{max-width:100%}.foogallery.fg-thumbnail .fg-st-hidden{display:none}
|
1 |
+
.foogallery,.foogallery *{box-sizing:border-box}.foogallery{display:block;z-index:1;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;position:relative;line-height:0;font-size:0;width:100%;max-width:100%}.foogallery .fg-item{display:inline-block;position:relative;background-color:transparent;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.foogallery .fg-item-inner{display:block;position:relative;visibility:hidden;overflow:hidden;opacity:0;z-index:3;margin:0;border:solid 0 transparent}.foogallery .fg-item.fg-error,.foogallery .fg-item.fg-loading{background:no-repeat center}.foogallery .fg-item.fg-error{background-image:url(../img/image.png)}@media only screen and (-o-min-device-pixel-ratio:5/4),only screen and (-webkit-min-device-pixel-ratio:1.25),only screen and (min-device-pixel-ratio:1.25),only screen and (min-resolution:1.25dppx){.foogallery .fg-item.fg-error{background-image:url(../img/image@2x.png)}}@media only screen and (-o-min-device-pixel-ratio:9/4),only screen and (-webkit-min-device-pixel-ratio:2.25),only screen and (min-device-pixel-ratio:2.25),only screen and (min-resolution:2.25dppx){.foogallery .fg-item.fg-error{background-image:url(../img/image@3x.png)}}.foogallery .fg-item.fg-loaded{z-index:4}.foogallery .fg-loaded .fg-item-inner{visibility:visible;opacity:1;z-index:5}.foogallery .fg-error .fg-item-inner{pointer-events:none;cursor:default}.foogallery .fg-thumb{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:4}.foogallery .fg-image{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:5;max-width:none;height:auto;margin:0}.foogallery .fg-loaded .fg-thumb{z-index:6}.foogallery .fg-loaded .fg-image{z-index:7}.foogallery.fg-light .fg-item-inner{background-color:#fff;color:#333;border-color:#fff}.foogallery.fg-dark .fg-item-inner{background-color:#333;color:#fff;border-color:#333}.foogallery.fg-light .fg-item.fg-error,.foogallery.fg-light .fg-item.fg-idle,.foogallery.fg-light .fg-item.fg-loading{background-color:#eee;box-shadow:inset 0 0 0 1px #ddd}.foogallery.fg-dark .fg-item.fg-error,.foogallery.fg-dark .fg-item.fg-idle,.foogallery.fg-dark .fg-item.fg-loading{background-color:#444;box-shadow:inset 0 0 0 1px #333}.foogallery.fg-border-thin .fg-item-inner{border-width:4px}.foogallery.fg-border-medium .fg-item-inner{border-width:10px}.foogallery.fg-border-thick .fg-item-inner{border-width:16px}.foogallery.fg-light.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-dark.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-light.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-light.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-light.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-shadow-inset-small .fg-thumb:after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:7}.foogallery.fg-dark.fg-shadow-inset-small .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.foogallery.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%}.foogallery.fg-round-small .fg-item,.foogallery.fg-round-small .fg-item-inner{border-radius:5px}.foogallery.fg-round-medium .fg-item,.foogallery.fg-round-medium .fg-item-inner{border-radius:10px}.foogallery.fg-round-large .fg-item,.foogallery.fg-round-large .fg-item-inner{border-radius:15px}.foogallery.fg-round-full .fg-item,.foogallery.fg-round-full .fg-item-inner{border-radius:50%}.foogallery .fg-loader{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);width:1em;height:1em;font-size:5px;visibility:hidden;opacity:0}.foogallery .fg-loading .fg-loader{visibility:visible;opacity:1}.fg-loading-default .fg-loader{border-radius:50%;text-indent:-9999em;-webkit-animation:loading-default 1.1s infinite ease;animation:loading-default 1.1s infinite ease}@-webkit-keyframes loading-default{0%,100%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,1),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.5),-1.8em -1.8em 0 0 rgba(130,130,130,.7)}12.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.7),1.8em -1.8em 0 0 rgba(130,130,130,1),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.5)}25%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.5),1.8em -1.8em 0 0 rgba(130,130,130,.7),2.5em 0 0 0 rgba(130,130,130,1),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}37.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.5),2.5em 0 0 0 rgba(130,130,130,.7),1.75em 1.75em 0 0 rgba(130,130,130,1),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}50%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.5),1.75em 1.75em 0 0 rgba(130,130,130,.7),0 2.5em 0 0 rgba(130,130,130,1),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}62.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.5),0 2.5em 0 0 rgba(130,130,130,.7),-1.8em 1.8em 0 0 rgba(130,130,130,1),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}75%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.5),-1.8em 1.8em 0 0 rgba(130,130,130,.7),-2.6em 0 0 0 rgba(130,130,130,1),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}87.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.5),-2.6em 0 0 0 rgba(130,130,130,.7),-1.8em -1.8em 0 0 rgba(130,130,130,1)}}@keyframes loading-default{0%,100%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,1),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.5),-1.8em -1.8em 0 0 rgba(130,130,130,.7)}12.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.7),1.8em -1.8em 0 0 rgba(130,130,130,1),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.5)}25%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.5),1.8em -1.8em 0 0 rgba(130,130,130,.7),2.5em 0 0 0 rgba(130,130,130,1),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}37.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.5),2.5em 0 0 0 rgba(130,130,130,.7),1.75em 1.75em 0 0 rgba(130,130,130,1),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}50%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.5),1.75em 1.75em 0 0 rgba(130,130,130,.7),0 2.5em 0 0 rgba(130,130,130,1),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}62.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.5),0 2.5em 0 0 rgba(130,130,130,.7),-1.8em 1.8em 0 0 rgba(130,130,130,1),-2.6em 0 0 0 rgba(130,130,130,.2),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}75%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.5),-1.8em 1.8em 0 0 rgba(130,130,130,.7),-2.6em 0 0 0 rgba(130,130,130,1),-1.8em -1.8em 0 0 rgba(130,130,130,.2)}87.5%{box-shadow:0 -2.6em 0 0 rgba(130,130,130,.2),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.5),-2.6em 0 0 0 rgba(130,130,130,.7),-1.8em -1.8em 0 0 rgba(130,130,130,1)}}.fg-loading-bars .fg-loader,.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{background:rgba(130,130,130,1);-webkit-animation:loading-bars 1s infinite ease-in-out;animation:loading-bars 1s infinite ease-in-out;width:1em;height:4em}.fg-loading-bars .fg-loader{color:rgba(130,130,130,1);text-indent:-9999em;font-size:4px;-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{position:absolute;top:0;content:''}.fg-loading-bars .fg-loader:before{left:-1.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-bars .fg-loader:after{left:1.5em}@-webkit-keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}@keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}.fg-loading-trail .fg-loader{color:#828282;font-size:20px;text-indent:-9999em;overflow:hidden;border-radius:50%;-webkit-animation:loading-trail-1 1.7s infinite ease,loading-trail-2 1.7s infinite ease;animation:loading-trail-1 1.7s infinite ease,loading-trail-2 1.7s infinite ease}@-webkit-keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@-webkit-keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.fg-loading-pulse .fg-loader,.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{border-radius:50%;width:2.5em;height:2.5em;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation:loading-pulse 1.8s infinite ease-in-out;animation:loading-pulse 1.8s infinite ease-in-out}.fg-loading-pulse .fg-loader{color:#828282;font-size:4px;text-indent:-9999em;transform:translateX(-50%) translateY(-150%);-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{content:'';position:absolute;top:0}.fg-loading-pulse .fg-loader:before{left:-3.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-pulse .fg-loader:after{left:3.5em}@-webkit-keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}@keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}.fg-loading-dots .fg-loader{color:#828282;font-size:5px;border-radius:50%;text-indent:-9999em;-webkit-animation:loading-dots 1.3s infinite linear;animation:loading-dots 1.3s infinite linear}@-webkit-keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}@keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}.fg-loading-partial .fg-loader,.fg-loading-partial .fg-loader:after{border-radius:50%;width:10em;height:10em}.fg-loading-partial .fg-loader{font-size:4px;text-indent:-9999em;border-top:1.1em solid rgba(130,130,130,.2);border-right:1.1em solid rgba(130,130,130,.2);border-bottom:1.1em solid rgba(130,130,130,.2);border-left:1.1em solid #828282;-webkit-animation:loading-partial 1.1s infinite linear;animation:loading-partial 1.1s infinite linear}@-webkit-keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.foogallery.fg-loaded-drop .fg-item,.foogallery.fg-loaded-fade-in .fg-item,.foogallery.fg-loaded-flip .fg-item,.foogallery.fg-loaded-fly .fg-item,.foogallery.fg-loaded-scale-up .fg-item,.foogallery.fg-loaded-slide-down .fg-item,.foogallery.fg-loaded-slide-left .fg-item,.foogallery.fg-loaded-slide-right .fg-item,.foogallery.fg-loaded-slide-up .fg-item,.foogallery.fg-loaded-swing-down .fg-item{transition-timing-function:ease;transition-duration:650ms;transition-property:background-color,transform}.foogallery.fg-loaded-drop .fg-item-inner,.foogallery.fg-loaded-fade-in .fg-item-inner,.foogallery.fg-loaded-flip .fg-item-inner,.foogallery.fg-loaded-fly .fg-item-inner,.foogallery.fg-loaded-scale-up .fg-item-inner,.foogallery.fg-loaded-slide-down .fg-item-inner,.foogallery.fg-loaded-slide-left .fg-item-inner,.foogallery.fg-loaded-slide-right .fg-item-inner,.foogallery.fg-loaded-slide-up .fg-item-inner,.foogallery.fg-loaded-swing-down .fg-item-inner{transition-timing-function:ease;transition-duration:650ms}.foogallery.fg-loaded-drop .fg-item.fg-loaded,.foogallery.fg-loaded-flip .fg-item.fg-loaded,.foogallery.fg-loaded-fly .fg-item.fg-loaded,.foogallery.fg-loaded-swing-down .fg-item.fg-loaded{perspective:1300px}.foogallery.fg-loaded-fade-in .fg-item-inner{transition-property:visibility,opacity}.foogallery .fg-caption{visibility:hidden;opacity:0;background-color:rgba(0,0,0,.6);color:#fff;position:absolute;z-index:8;width:100%;max-height:100%;overflow:hidden;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.3;border:none;text-align:center;cursor:pointer}.foogallery .fg-caption a{text-decoration:none;color:#fff;border-bottom:1px solid #fff}.foogallery .fg-caption a:hover{border-bottom:none}.foogallery .fg-caption-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:400;padding:5px}.foogallery .fg-caption-desc{padding:5px}.foogallery .fg-caption-title+.fg-caption-desc{padding-top:0}.foogallery.fg-caption-always .fg-caption .fg-caption-inner:before{display:none}.foogallery.fg-caption-always .fg-item.fg-loaded .fg-caption{left:0;bottom:0;transition-timing-function:ease;transition-duration:.3s;transition-property:visibility,opacity;visibility:visible;opacity:1;text-align:left}.foogallery.fg-caption-hover .fg-caption .fg-caption-inner{width:100%;max-height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.foogallery.fg-caption-hover .fg-item.fg-loaded .fg-thumb:before{display:none}.foogallery.fg-hover-circle-plus .fg-thumb:before,.foogallery.fg-hover-external .fg-thumb:before,.foogallery.fg-hover-eye .fg-thumb:before,.foogallery.fg-hover-plus .fg-thumb:before,.foogallery.fg-hover-tint .fg-thumb:before,.foogallery.fg-hover-zoom .fg-thumb:before,.foogallery.fg-hover-zoom2 .fg-thumb:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{content:"";display:block;position:absolute;visibility:hidden;opacity:0;top:0;bottom:0;left:0;right:0;z-index:8;background:rgba(0,0,0,.5) no-repeat center center;background-size:32px 32px}.foogallery.fg-hover-circle-plus .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-circle-plus .fg-thumb:focus:before,.foogallery.fg-hover-external .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-external .fg-thumb:focus:before,.foogallery.fg-hover-eye .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-eye .fg-thumb:focus:before,.foogallery.fg-hover-plus .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-plus .fg-thumb:focus:before,.foogallery.fg-hover-tint .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-tint .fg-thumb:focus:before,.foogallery.fg-hover-zoom .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-zoom .fg-thumb:focus:before,.foogallery.fg-hover-zoom2 .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-zoom2 .fg-thumb:focus:before,.foogallery.fg-hover-zoom3 .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-zoom3 .fg-thumb:focus:before{visibility:visible;opacity:1}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-tint .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-caption-inner:before{content:"";display:inline-block;position:relative;width:32px;height:32px;margin:10px 0 5px 0;background:transparent no-repeat center center;background-size:32px 32px;vertical-align:middle}.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-thumb:before{background-image:url(../img/zoom.png)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-thumb:before{background-image:url(../img/zoom2.png)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{background-image:url(../img/zoom3.png)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-thumb:before{background-image:url(../img/plus.png)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-thumb:before{background-image:url(../img/circle-plus.png)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-thumb:before{background-image:url(../img/eye.png)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-thumb:before{background-image:url(../img/external.png)}@media only screen and (-o-min-device-pixel-ratio:5/4),only screen and (-webkit-min-device-pixel-ratio:1.25),only screen and (min-device-pixel-ratio:1.25),only screen and (min-resolution:1.25dppx){.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-thumb:before{background-image:url(../img/zoom@2x.png)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-thumb:before{background-image:url(../img/zoom2@2x.png)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{background-image:url(../img/zoom3@2x.png)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-thumb:before{background-image:url(../img/plus@2x.png)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-thumb:before{background-image:url(../img/circle-plus@2x.png)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-thumb:before{background-image:url(../img/eye@2x.png)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-thumb:before{background-image:url(../img/external@2x.png)}}@media only screen and (-o-min-device-pixel-ratio:9/4),only screen and (-webkit-min-device-pixel-ratio:2.25),only screen and (min-device-pixel-ratio:2.25),only screen and (min-resolution:2.25dppx){.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-thumb:before{background-image:url(../img/zoom@3x.png)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-thumb:before{background-image:url(../img/zoom2@3x.png)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-thumb:before{background-image:url(../img/zoom3@3x.png)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-thumb:before{background-image:url(../img/plus@3x.png)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-thumb:before{background-image:url(../img/circle-plus@3x.png)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-thumb:before{background-image:url(../img/eye@3x.png)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-thumb:before{background-image:url(../img/external@3x.png)}}.foogallery.fg-caption-hover.fg-hover-colorize .fg-caption,.foogallery.fg-caption-hover.fg-hover-fade .fg-caption,.foogallery.fg-caption-hover.fg-hover-grayscale .fg-caption,.foogallery.fg-caption-hover.fg-hover-instant .fg-caption,.foogallery.fg-caption-hover.fg-hover-push .fg-caption,.foogallery.fg-caption-hover.fg-hover-scale .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-down .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-caption,.foogallery.fg-hover-colorize .fg-image,.foogallery.fg-hover-colorize .fg-thumb:before,.foogallery.fg-hover-fade .fg-thumb:before,.foogallery.fg-hover-grayscale .fg-image,.foogallery.fg-hover-grayscale .fg-thumb:before,.foogallery.fg-hover-instant .fg-thumb:before,.foogallery.fg-hover-push .fg-thumb,.foogallery.fg-hover-scale .fg-item,.foogallery.fg-hover-scale .fg-thumb:before,.foogallery.fg-hover-slide-down .fg-thumb:before,.foogallery.fg-hover-slide-left .fg-thumb:before,.foogallery.fg-hover-slide-right .fg-thumb:before,.foogallery.fg-hover-slide-up .fg-thumb:before{transition-timing-function:ease;transition-duration:.3s}.foogallery.fg-hover-colorize .fg-image{filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'saturate\' values=\'0\'/></filter></svg>#grayscale");filter:gray;-webkit-filter:grayscale(100%);-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image{-webkit-filter:none;filter:none}.foogallery.fg-caption-hover.fg-hover-colorize .fg-caption,.foogallery.fg-hover-colorize .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-colorize .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-hover-grayscale .fg-image{-webkit-filter:none;filter:none;-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image{-webkit-filter:grayscale(1);-webkit-filter:grayscale(100%);filter:grayscale(100%);filter:gray;opacity:1}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-caption,.foogallery.fg-hover-grayscale .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:none}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transform:translateX(100%);visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-thumb{transition-property:transform}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-caption{transform:translateY(0)}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb,.foogallery.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb{transform:translateX(-100%)}.foogallery.fg-hover-scale .fg-item{transition-property:transform;z-index:4}.foogallery.fg-hover-scale .fg-item:hover{transform:scale(1.048);z-index:10}.foogallery.fg-caption-hover.fg-hover-scale .fg-caption,.foogallery.fg-hover-scale .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity}.foogallery.fg-caption-hover.fg-hover-scale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-scale .fg-item-inner:hover .fg-thumb:before{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-thumb:before,.foogallery.fg-hover-slide-left .fg-loaded .fg-thumb:before,.foogallery.fg-hover-slide-right .fg-loaded .fg-thumb:before,.foogallery.fg-hover-slide-up .fg-loaded .fg-thumb:before{display:block;left:0;top:0;bottom:0;transition-property:transform;visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-thumb:before,.foogallery.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-thumb:before{transform:translateY(0) translateX(0)}.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-up .fg-loaded .fg-thumb:before{transform:translateY(100%)}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-thumb:before{transform:translateY(-100%)}.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-hover-slide-left .fg-loaded .fg-thumb:before{transform:translateX(100%)}.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-hover-slide-right .fg-loaded .fg-thumb:before{transform:translateX(-100%)}.fg-paging-container,.fg-paging-container *,.fg-paging-container :after,.fg-paging-container :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.fg-paging-container{display:block;padding:15px;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fg-paging-container .fg-dot-item,.fg-paging-container .fg-dots{display:inline-block;margin:0;padding:0;outline:0;list-style:none}.fg-paging-container .fg-dot-item .fg-dot-link{display:inline-block;margin:3px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none;border:1px solid transparent;position:relative;border-radius:50%;padding:0;font-size:0;outline:0;color:transparent;box-shadow:none}.fg-paging-container .fg-dot-item .fg-dot-link:before{content:"";background-color:transparent;border:1px solid transparent;display:block;border-radius:50%;width:9px;height:9px;padding:0;margin:2px}.fg-paging-container .fg-dot-item .fg-dot-link:active,.fg-paging-container .fg-dot-item .fg-dot-link:focus,.fg-paging-container .fg-dot-item .fg-dot-link:hover{text-decoration:none;box-shadow:none;outline:0}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container .fg-dot-item.fg-selected .fg-dot-link{cursor:not-allowed;pointer-events:none}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link{cursor:not-allowed;pointer-events:none;outline:0}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link{background-color:#eee;border-color:#9e9e9e}.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link{border-color:#8a8a8a}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#666;border-color:#8a8a8a}.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#eee;border-color:#9e9e9e;opacity:.5}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link{background-color:#666;border-color:#333}.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link{border-color:#444}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#333;border-color:#444}.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#666;border-color:#333;opacity:.5}.fg-default:after{content:'';display:block;clear:both}.fg-default .fg-item,.fg-default .fg-item-inner,.fg-default .fg-thumb{display:inline-block;vertical-align:top;max-width:100%}.fg-default .fg-image{border-radius:0;display:block;max-width:100%;height:auto;margin:0;padding:0}.fg-default .fg-image{vertical-align:top}.fg-default.fg-left{text-align:left}.fg-default.fg-center{text-align:center}.fg-default.fg-right{text-align:right}.fg-default.fg-gutter-5{padding-left:5px;margin-bottom:-5px}.fg-default.fg-gutter-5 .fg-item{margin-right:5px;margin-bottom:5px}.fg-default.fg-gutter-10{padding-left:10px;margin-bottom:-10px}.fg-default.fg-gutter-10 .fg-item{margin-right:10px;margin-bottom:10px}.fg-default.fg-gutter-15{padding-left:15px;margin-bottom:-15px}.fg-default.fg-gutter-15 .fg-item{margin-right:15px;margin-bottom:15px}.fg-default.fg-gutter-20{padding-left:20px;margin-bottom:-20px}.fg-default.fg-gutter-20 .fg-item{margin-right:20px;margin-bottom:20px}.fg-default.fg-gutter-25{padding-left:25px;margin-bottom:-25px}.fg-default.fg-gutter-25 .fg-item{margin-right:25px;margin-bottom:25px}.fg-masonry *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.foogallery.fg-masonry.fg-center{margin:0 auto}.fg-masonry .fg-thumb{display:block}.fg-masonry.fg-masonry-fixed .fg-thumb{display:inline-block}.fg-masonry.fg-masonry-fixed .fg-image{max-width:100%}.fg-masonry .fg-column-width{display:inline-block;visibility:hidden;height:0;border:solid 0 transparent}.fg-masonry.fg-masonry-2col .fg-image,.fg-masonry.fg-masonry-3col .fg-image,.fg-masonry.fg-masonry-4col .fg-image,.fg-masonry.fg-masonry-5col .fg-image{width:100%;height:auto;max-width:100%}.fg-masonry .fg-item{line-height:0;font-size:0}.fg-masonry.fg-masonry-2col .fg-item{margin-bottom:1%;width:49%}.fg-masonry.fg-masonry-2col .fg-column-width{width:49%}.fg-masonry.fg-masonry-2col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-item{margin-bottom:3%;width:47%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-column-width{width:47%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-masonry-3col .fg-item{margin-bottom:1%;width:32%}.fg-masonry.fg-masonry-3col .fg-column-width{width:32%}.fg-masonry.fg-masonry-3col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-item{margin-bottom:0;width:33%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-column-width{width:33%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-item{margin-bottom:3%;width:30%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-column-width{width:30%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-masonry-4col .fg-item{margin-bottom:1%;width:24%}.fg-masonry.fg-masonry-4col .fg-column-width{width:24%}.fg-masonry.fg-masonry-4col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item{margin-bottom:0;width:25%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width{width:25%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item{margin-bottom:3%;width:22%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width{width:22%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:19%}.fg-masonry.fg-masonry-5col .fg-column-width{width:19%}.fg-masonry.fg-masonry-5col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:20%}.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:20%}.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:17%}.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:17%}.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:3%}@media screen and (max-width:720px){.fg-masonry.fg-masonry-4col .fg-item,.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:32%}.fg-masonry.fg-masonry-4col .fg-column-width,.fg-masonry.fg-masonry-5col .fg-column-width{width:32%}.fg-masonry.fg-masonry-4col .fg-gutter-width,.fg-masonry.fg-masonry-5col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:33%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:33%}.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:30%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:30%}.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:480px){.fg-masonry.fg-masonry-3col .fg-item,.fg-masonry.fg-masonry-4col .fg-item,.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:49%}.fg-masonry.fg-masonry-3col .fg-column-width,.fg-masonry.fg-masonry-4col .fg-column-width,.fg-masonry.fg-masonry-5col .fg-column-width{width:49%}.fg-masonry.fg-masonry-3col .fg-gutter-width,.fg-masonry.fg-masonry-4col .fg-gutter-width,.fg-masonry.fg-masonry-5col .fg-gutter-width{width:1%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:47%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:47%}.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:320px){.fg-masonry.fg-masonry-2col .fg-item,.fg-masonry.fg-masonry-3col .fg-item,.fg-masonry.fg-masonry-4col .fg-item,.fg-masonry.fg-masonry-5col .fg-item{margin-bottom:1%;width:100%}.fg-masonry.fg-masonry-2col .fg-column-width,.fg-masonry.fg-masonry-3col .fg-column-width,.fg-masonry.fg-masonry-4col .fg-column-width,.fg-masonry.fg-masonry-5col .fg-column-width{width:100%}.fg-masonry.fg-masonry-2col .fg-gutter-width,.fg-masonry.fg-masonry-3col .fg-gutter-width,.fg-masonry.fg-masonry-4col .fg-gutter-width,.fg-masonry.fg-masonry-5col .fg-gutter-width{width:0}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-item{margin-bottom:0;width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-column-width{width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-3col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-item,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-item{margin-bottom:3%;width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-column-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-column-width{width:100%}.fg-masonry.fg-masonry-2col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-3col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-4col.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-masonry-5col.fg-gutter-large .fg-gutter-width{width:0}}.foogallery.fg-border-thin .fg-column-width{border-width:5px}.foogallery.fg-border-medium .fg-column-width{border-width:10px}.foogallery.fg-border-thick .fg-column-width{border-width:15px}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner{display:block;position:relative;max-height:none;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-hover .fg-item-inner .fg-thumb:before{display:block}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-masonry.fg-captions-bottom .fg-caption-desc,.fg-masonry.fg-captions-bottom .fg-caption-title{text-align:left}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption,.fg-masonry.fg-captions-bottom.fg-light .fg-caption{color:#828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a:hover,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a:hover{border-bottom:none}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{color:#222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{color:#fff}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-masonry.fg-captions-bottom .fg-caption{border-width:10px}.fg-masonry.fg-captions-bottom .fg-caption-title+.fg-caption-desc{margin-top:5px}.fg-masonry.fg-captions-bottom.fg-border-thin .fg-caption{border-width:10px 5px 5px 5px}.fg-masonry.fg-captions-bottom.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption{border-width:15px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-justified{box-sizing:border-box;position:relative}.foogallery.fg-justified .fg-image,.foogallery.fg-justified .fg-item,.foogallery.fg-justified .fg-item-inner,.foogallery.fg-justified .fg-thumb{box-sizing:border-box;display:block;margin:0;padding:0}.fg-justified .fg-item{visibility:visible;position:absolute}.fg-justified .fg-item-inner{position:relative;width:100%;height:100%}.fg-justified .fg-thumb{position:relative;overflow:hidden}.fg-justified .fg-image{z-index:1}.fg-justified .fg-item.fg-positioned .fg-thumb{width:100%;height:100%}.fg-justified .fg-item.fg-positioned .fg-image{width:100%;height:auto;min-height:100%}.fg-simple_portfolio{box-sizing:border-box;position:relative;font-size:16px;margin:0 auto;padding:0;width:100%}.fg-simple_portfolio .fg-item{position:absolute;display:inline-block;margin:0;padding:0;outline:0}.fg-simple_portfolio .fg-image,.fg-simple_portfolio .fg-item-inner,.fg-simple_portfolio .fg-thumb{display:block;margin:0;padding:0;outline:0}.fg-simple_portfolio .fg-item-inner{position:relative;width:100%;height:100%}.fg-simple_portfolio .fg-thumb{box-sizing:border-box;display:block;margin:0;padding:0;border:none;outline:0;position:relative;overflow:hidden}.fg-simple_portfolio .fg-item.fg-positioned .fg-image{width:100%;height:auto}.fg-simple_portfolio .fg-image{z-index:1}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent}.foogallery.fg-simple_portfolio .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner{display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-simple_portfolio.fg-caption-hover .fg-item-inner .fg-thumb:before{display:block}.foogallery.fg-simple_portfolio.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-simple_portfolio .fg-caption-title{text-align:left}.fg-simple_portfolio .fg-caption-desc{text-align:left}.fg-simple_portfolio.fg-dark .fg-caption,.fg-simple_portfolio.fg-light .fg-caption{color:#828282}.fg-simple_portfolio.fg-dark .fg-caption a,.fg-simple_portfolio.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-simple_portfolio.fg-dark .fg-caption a:hover,.fg-simple_portfolio.fg-light .fg-caption a:hover{border-bottom:none}.fg-simple_portfolio.fg-light .fg-caption-title,.fg-simple_portfolio.fg-light .fg-caption-title a{color:#222}.fg-simple_portfolio.fg-dark .fg-caption-title,.fg-simple_portfolio.fg-dark .fg-caption-title a{color:#fff}.fg-simple_portfolio.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-simple_portfolio.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-simple_portfolio.fg-captions-top .fg-item.fg-positioned .fg-thumb{position:absolute;bottom:0;left:0}.fg-simple_portfolio .fg-caption{border-width:0}.fg-simple_portfolio .fg-caption-title+.fg-caption-desc{margin-top:5px}.fg-simple_portfolio.fg-border-thin .fg-caption{border-width:10px 5px 5px 5px}.fg-simple_portfolio.fg-captions-top.fg-border-thin .fg-caption{border-width:5px 5px 10px 5px}.fg-simple_portfolio.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.fg-simple_portfolio.fg-border-thick .fg-caption{border-width:15px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 15px 0}.fg-simple_portfolio.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.foogallery.fg-preset.fg-polaroid .fg-item{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .35s,background-color .65s;transition:transform .35s,background-color .65s}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n+1){-webkit-transform:rotate(3deg);transform:rotate(3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n){-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(3n){-webkit-transform:rotate(1deg);transform:rotate(1deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(5n){-webkit-transform:rotate(-2deg);transform:rotate(-2deg)}.foogallery.fg-preset.fg-polaroid .fg-item:hover{-webkit-transform:rotate(0);transform:rotate(0)}.foogallery.fg-preset.fg-polaroid .fg-caption{position:relative;width:auto;font-family:"Segoe Print Regular",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}.foogallery.fg-preset.fg-polaroid .fg-caption-inner,.foogallery.fg-preset.fg-polaroid .fg-caption-title{position:relative;width:auto}.foogallery.fg-preset.fg-polaroid .fg-caption-title{text-align:center}.foogallery.fg-preset.fg-polaroid .fg-caption-desc{display:none}.foogallery.fg-light.fg-preset.fg-polaroid .fg-caption-title,.foogallery.fg-preset.fg-polaroid .fg-caption-title{color:#333}.foogallery.fg-dark.fg-preset.fg-polaroid .fg-caption-title{color:#fff}.foogallery.fg-preset.fg-polaroid .fg-caption{border-style:solid;border-color:transparent;border-width:10px}.foogallery.fg-preset.fg-polaroid .fg-caption-title+.fg-caption-desc{margin-top:5px}.foogallery.fg-preset.fg-polaroid.fg-border-thin .fg-caption{border-width:10px 5px 5px 5px}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thin .fg-caption{border-width:5px 5px 10px 5px}.foogallery.fg-preset.fg-polaroid.fg-border-medium .fg-caption{border-width:10px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption{border-width:15px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 15px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-image-viewer{display:block;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif}.fg-image-viewer.fg-left{text-align:left}.fg-image-viewer.fg-center{text-align:center}.fg-image-viewer.fg-right{text-align:right}.fiv-inner{position:relative;display:inline-block;max-width:100%;overflow:hidden;z-index:6}.fiv-inner .fiv-inner-container{position:relative;overflow:hidden;max-width:100%;border-style:solid;border-width:0;border-bottom-width:4px;z-index:5}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:active,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:hover,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:visited{position:relative;display:block;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item{position:relative;visibility:visible;opacity:1;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb img{display:block;max-width:100%;height:auto;border:none;outline:0;text-decoration:none}.fg-image-viewer .fiv-inner .fiv-ctrls{display:block;text-align:center;font-size:14px;border-style:solid;line-height:34px}.fg-image-viewer .fiv-inner .fiv-ctrls:after{content:'';display:block;clear:both}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count{display:inline-block;font-weight:400;margin:0}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:none;min-width:80px;position:relative;overflow:hidden;transition:background-color .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{display:block;position:absolute;font-size:24px;line-height:30px;top:0;left:0;width:100%;transform:translateY(0);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover:before{transform:translateY(-100%)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev span{display:block;width:100%;transform:translateY(100%);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover span{transform:translateY(0)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{float:left}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{content:'\2190'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next{float:right}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before{content:'\2192'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count span{margin:0 4px}/*!* Theme - Default (Light) *!*//*!* Theme - Dark *!*/.foogallery.fg-image-viewer.fg-caption-always .fg-item-inner .fg-caption{padding:0;border:none;background:#000;background:-moz-linear-gradient(left,rgba(0,0,0,.8) 0,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%);background:-webkit-linear-gradient(left,rgba(0,0,0,.8) 0,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%);background:linear-gradient(to right,rgba(0,0,0,.8) 0,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%)}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-desc{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title+.fg-caption-desc{padding:0 10px 10px 10px}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-light .fiv-inner .fiv-inner-container{background-color:#fff;color:#333;border-color:#fff}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#f2f2f2}.fg-image-viewer.fg-light .fiv-next,.fg-image-viewer.fg-light .fiv-prev{box-shadow:inset 0 0 0 1px #ddd}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-dark .fiv-inner .fiv-inner-container{background-color:#333;color:#fff;border-color:#333}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#444}.fg-image-viewer.fg-dark .fiv-next,.fg-image-viewer.fg-dark .fiv-prev{box-shadow:inset 0 0 0 1px #222}.foogallery.fg-image-viewer.fg-border-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin .fg-item-inner{border-width:0}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-inner-container{border-width:4px}.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-inner-container{border-width:10px}.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-inner-container{border-width:16px}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-ctrls{border-top-width:1px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-round-small .fiv-inner{border-radius:5px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-round-medium .fiv-inner{border-radius:10px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-round-large .fiv-inner{border-radius:15px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-full .fiv-inner,.foogallery.fg-image-viewer.fg-round-full .fiv-next,.foogallery.fg-image-viewer.fg-round-full .fiv-prev{border-radius:50%}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fg-item-inner{box-shadow:none}.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fiv-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fiv-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fiv-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-thumbnail,.foogallery.fg-thumbnail.fg-center{text-align:center}.foogallery.fg-thumbnail.fg-left{text-align:left}.foogallery.fg-thumbnail.fg-right{text-align:right}.foogallery.fg-thumbnail.fg-float-left{float:left;width:auto}.foogallery.fg-thumbnail.fg-float-right{float:right;width:auto}.foogallery.fg-thumbnail .fg-item{display:inline-block;vertical-align:top;max-width:100%}.foogallery.fg-thumbnail .fg-image{max-width:100%}.foogallery.fg-thumbnail .fg-st-hidden{display:none}
|
extensions/default-templates/shared/js/foogallery.js
CHANGED
@@ -58,9 +58,9 @@
|
|
58 |
);
|
59 |
/*!
|
60 |
* FooGallery.utils - Contains common utility methods and classes used in our plugins.
|
61 |
-
* @version 0.0.
|
62 |
* @link https://github.com/steveush/foo-utils#readme
|
63 |
-
* @copyright Steve Usher
|
64 |
* @license Released under the GPL-3.0 license.
|
65 |
*/
|
66 |
/**
|
@@ -111,7 +111,7 @@
|
|
111 |
* @name version
|
112 |
* @type {string}
|
113 |
*/
|
114 |
-
version: '0.0.
|
115 |
};
|
116 |
|
117 |
/**
|
@@ -207,7 +207,7 @@
|
|
207 |
})(jQuery);
|
208 |
(function ($, _){
|
209 |
// only register methods if this version is the current version
|
210 |
-
if (_.version !== '0.0.
|
211 |
|
212 |
/**
|
213 |
* @summary Contains common type checking utility methods.
|
@@ -561,7 +561,7 @@
|
|
561 |
);
|
562 |
(function($, _, _is){
|
563 |
// only register methods if this version is the current version
|
564 |
-
if (_.version !== '0.0.
|
565 |
|
566 |
/**
|
567 |
* @memberof FooGallery.utils
|
@@ -1096,7 +1096,7 @@
|
|
1096 |
);
|
1097 |
(function(_, _is){
|
1098 |
// only register methods if this version is the current version
|
1099 |
-
if (_.version !== '0.0.
|
1100 |
|
1101 |
/**
|
1102 |
* @summary Contains common url utility methods.
|
@@ -1182,7 +1182,7 @@
|
|
1182 |
* console.log( _url.param( search, "v", "2" ) ); // => "?wmode=opaque&autoplay=1&v=2"
|
1183 |
*/
|
1184 |
_.url.param = function(search, key, value){
|
1185 |
-
if (!_is.string(search) ||
|
1186 |
var regex, match, result, param;
|
1187 |
if (_is.undef(value)){
|
1188 |
regex = new RegExp('[?|&]' + key + '=([^&;]+?)(&|#|;|$)'); // regex to match the key and it's value but only capture the value
|
@@ -1199,7 +1199,7 @@
|
|
1199 |
result = search.replace(regex, '$1' + param); // replace any existing instance of the key with the new value
|
1200 |
// If nothing was replaced, then add the new param to the end
|
1201 |
if (result === search && !regex.test(result)) { // if no replacement occurred and the parameter is not currently in the result then add it
|
1202 |
-
result += '&' + param;
|
1203 |
}
|
1204 |
}
|
1205 |
return result;
|
@@ -1231,7 +1231,7 @@
|
|
1231 |
);
|
1232 |
(function (_, _is, _fn) {
|
1233 |
// only register methods if this version is the current version
|
1234 |
-
if (_.version !== '0.0.
|
1235 |
|
1236 |
/**
|
1237 |
* @summary Contains common string utility methods.
|
@@ -1546,7 +1546,7 @@
|
|
1546 |
);
|
1547 |
(function($, _, _is, _fn, _str){
|
1548 |
// only register methods if this version is the current version
|
1549 |
-
if (_.version !== '0.0.
|
1550 |
|
1551 |
/**
|
1552 |
* @summary Contains common object utility methods.
|
@@ -1629,12 +1629,12 @@
|
|
1629 |
* console.log( _obj.merge( target, object ) ); // => {"name": "My Object", "enabled": true, "arr": [4,5,6], "something": 123}
|
1630 |
*/
|
1631 |
_.obj.merge = function(target, object){
|
1632 |
-
target = _is.
|
1633 |
-
object = _is.
|
1634 |
for (var prop in object) {
|
1635 |
if (object.hasOwnProperty(prop)) {
|
1636 |
-
if (_is.
|
1637 |
-
target[prop] = _is.
|
1638 |
_.obj.merge(target[prop], object[prop]);
|
1639 |
} else if (_is.array(object[prop])) {
|
1640 |
target[prop] = object[prop].slice();
|
@@ -1878,7 +1878,7 @@
|
|
1878 |
);
|
1879 |
(function($, _, _is){
|
1880 |
// only register methods if this version is the current version
|
1881 |
-
if (_.version !== '0.0.
|
1882 |
|
1883 |
// any methods that have dependencies but don't fall into a specific subset or namespace can be added here
|
1884 |
|
@@ -1977,7 +1977,7 @@
|
|
1977 |
);
|
1978 |
(function($, _, _is){
|
1979 |
// only register methods if this version is the current version
|
1980 |
-
if (_.version !== '0.0.
|
1981 |
|
1982 |
/**
|
1983 |
* @summary Contains common utility methods and members for the CSS transition property.
|
@@ -2072,12 +2072,19 @@
|
|
2072 |
return def;
|
2073 |
};
|
2074 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2075 |
/**
|
2076 |
* @summary Start a transition by toggling the supplied `className` on the `$element`.
|
2077 |
* @memberof FooGallery.utils.transition
|
2078 |
* @function start
|
2079 |
* @param {jQuery} $element - The jQuery element to start the transition on.
|
2080 |
-
* @param
|
2081 |
* @param {boolean} [state] - A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed.
|
2082 |
* @param {number} [timeout] - The maximum time, in milliseconds, to wait for the `transitionend` event to be raised. If not provided this will be automatically set to the elements `transition-duration` property plus an extra 50 milliseconds.
|
2083 |
* @returns {Promise}
|
@@ -2086,7 +2093,7 @@
|
|
2086 |
* The last parameter `timeout` is used to create a timer that behaves as a safety net in case the `transitionend` event is never raised and ensures the deferred returned by this method is resolved or rejected within a specified time.
|
2087 |
* @see {@link https://developer.mozilla.org/en/docs/Web/CSS/transition-duration|transition-duration - CSS | MDN} for more information on the `transition-duration` CSS property.
|
2088 |
*/
|
2089 |
-
_.transition.start = function($element,
|
2090 |
var deferred = $.Deferred();
|
2091 |
|
2092 |
$element = $element.first();
|
@@ -2121,7 +2128,11 @@
|
|
2121 |
|
2122 |
setTimeout(function(){
|
2123 |
// This is executed inside of a 20ms timeout to allow the binding of the event handler above to actually happen before the class is toggled
|
2124 |
-
|
|
|
|
|
|
|
|
|
2125 |
if (!_.transition.supported){
|
2126 |
// If the browser doesn't support transitions then just resolve the deferred
|
2127 |
deferred.resolve();
|
@@ -2139,7 +2150,7 @@
|
|
2139 |
);
|
2140 |
(function ($, _, _is, _obj, _fn) {
|
2141 |
// only register methods if this version is the current version
|
2142 |
-
if (_.version !== '0.0.
|
2143 |
|
2144 |
/**
|
2145 |
* @summary A base class providing some helper methods for prototypal inheritance.
|
@@ -2279,7 +2290,7 @@
|
|
2279 |
);
|
2280 |
(function($, _, _is){
|
2281 |
// only register methods if this version is the current version
|
2282 |
-
if (_.version !== '0.0.
|
2283 |
|
2284 |
_.Bounds = _.Class.extend(/** @lends FooGallery.utils.Bounds */{
|
2285 |
/**
|
@@ -2381,7 +2392,7 @@
|
|
2381 |
);
|
2382 |
(function($, _, _is, _fn){
|
2383 |
// only register methods if this version is the current version
|
2384 |
-
if (_.version !== '0.0.
|
2385 |
|
2386 |
_.Factory = _.Class.extend(/** @lends FooGallery.utils.Factory */{
|
2387 |
/**
|
@@ -2705,7 +2716,7 @@
|
|
2705 |
);
|
2706 |
(function(_, _fn, _str){
|
2707 |
// only register methods if this version is the current version
|
2708 |
-
if (_.version !== '0.0.
|
2709 |
|
2710 |
// this is done to handle Content Security in Chrome and other browsers blocking access to the localStorage object under certain configurations.
|
2711 |
// see: https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document
|
@@ -2812,7 +2823,7 @@
|
|
2812 |
);
|
2813 |
(function($, _, _is){
|
2814 |
// only register methods if this version is the current version
|
2815 |
-
if (_.version !== '0.0.
|
2816 |
|
2817 |
_.Throttle = _.Class.extend(/** @lends FooGallery.utils.Throttle */{
|
2818 |
/**
|
@@ -2924,7 +2935,7 @@
|
|
2924 |
FooGallery.utils,
|
2925 |
FooGallery.utils.is
|
2926 |
);
|
2927 |
-
(function($, _, _utils, _is, _fn
|
2928 |
|
2929 |
_.debug = new _utils.Debugger("__FooGallery__");
|
2930 |
|
@@ -2935,20 +2946,21 @@
|
|
2935 |
* @param {(string|string[]|object)} classes - A single space delimited string of CSS class names to convert or an array of them with each item being included in the selector using the OR (`,`) syntax as a separator. If an object is supplied the result will be an object with the same property names but the values converted to selectors.
|
2936 |
* @returns {(object|string)}
|
2937 |
*/
|
2938 |
-
_utils.selectify = function(classes
|
2939 |
-
if (_is.
|
|
|
2940 |
var result = {}, selector;
|
2941 |
-
for (var name in classes
|
2942 |
if (!classes.hasOwnProperty(name)) continue;
|
2943 |
-
if (selector = _utils.selectify(classes[name
|
2944 |
result[name] = selector;
|
2945 |
}
|
2946 |
}
|
2947 |
return result;
|
2948 |
}
|
2949 |
-
if (_is.string(classes) || _is.array(classes
|
2950 |
if (_is.string(classes)) classes = [classes];
|
2951 |
-
return $.map(classes, function(str
|
2952 |
return _is.string(str) ? "." + str.split(/\s/g).join(".") : null;
|
2953 |
}).join(",");
|
2954 |
}
|
@@ -2982,17 +2994,17 @@
|
|
2982 |
*/
|
2983 |
_.dataItem = "__FooGalleryItem__";
|
2984 |
|
2985 |
-
_.init = function(options, element
|
2986 |
return _.template.make(options, element).initialize();
|
2987 |
};
|
2988 |
|
2989 |
-
_.initAll = function(options
|
2990 |
-
return _fn.when($(".foogallery").map(function(i, element
|
2991 |
return _.init(options, element);
|
2992 |
}).get());
|
2993 |
};
|
2994 |
|
2995 |
-
_.parseSrc = function(src, srcWidth, srcHeight, srcset, renderWidth, renderHeight
|
2996 |
if (!_is.string(src)) return null;
|
2997 |
// if there is no srcset just return the src
|
2998 |
if (!_is.string(srcset)) return src;
|
@@ -3020,8 +3032,8 @@
|
|
3020 |
|
3021 |
// get the current viewport info and use it to determine the correct src to load
|
3022 |
var dpr = window.devicePixelRatio || 1,
|
3023 |
-
|
3024 |
-
|
3025 |
|
3026 |
// first check each of the viewport properties against the max values of the same properties in our src array
|
3027 |
// only src's with a property greater than the viewport or equal to the max are kept
|
@@ -3068,15 +3080,15 @@
|
|
3068 |
* <div class="fg-item-inner">
|
3069 |
* <a class="fg-thumb" href="[item.href]">
|
3070 |
* <img class="fg-image" width="[item.width]" height="[item.height]"
|
3071 |
-
*
|
3072 |
-
*
|
3073 |
-
*
|
3074 |
* <!-- Optional caption markup -->
|
3075 |
* <div class="fg-caption">
|
3076 |
-
*
|
3077 |
-
*
|
3078 |
-
*
|
3079 |
-
*
|
3080 |
* </div>
|
3081 |
* </a>
|
3082 |
* </div>
|
@@ -3084,17 +3096,17 @@
|
|
3084 |
* <!-- Any number of additional items -->
|
3085 |
* </div>
|
3086 |
* <script>
|
3087 |
-
*
|
3088 |
* $("#gallery-1").foogallery();
|
3089 |
* });
|
3090 |
* </script>
|
3091 |
* @example {@caption Options can be supplied directly to the `.foogallery()` method or by supplying them using the `data-foogallery` attribute. If supplied using the attribute the value must follow [valid JSON syntax](http://en.wikipedia.org/wiki/JSON#Data_types.2C_syntax_and_example) including quoted property names. If the same option is supplied in both locations as it is below, the value from the attribute overrides the value supplied to the method, in this case `lazy` would be `true`.}{@lang html}
|
3092 |
* <!-- Supplying the options using the attribute -->
|
3093 |
* <div id="gallery-1" class="foogallery fg-responsive" data-foogallery='{"lazy": true}'>
|
3094 |
-
*
|
3095 |
* </div>
|
3096 |
* <script>
|
3097 |
-
*
|
3098 |
* // Supply the options directly to the method
|
3099 |
* $("#gallery-1").foogallery({
|
3100 |
* lazy: false
|
@@ -3102,12 +3114,12 @@
|
|
3102 |
* });
|
3103 |
* </script>
|
3104 |
*/
|
3105 |
-
$.fn.foogallery = function(options, ready
|
3106 |
-
return this.
|
3107 |
-
if (_is.string(options
|
3108 |
var template = $.data(element, _.dataTemplate);
|
3109 |
-
if (template instanceof _.Template
|
3110 |
-
switch (options
|
3111 |
case "layout":
|
3112 |
template.layout();
|
3113 |
return;
|
@@ -3117,8 +3129,8 @@
|
|
3117 |
}
|
3118 |
}
|
3119 |
} else {
|
3120 |
-
_.template.make(options, element).initialize().then(function(template
|
3121 |
-
if (_is.fn(ready
|
3122 |
ready(template);
|
3123 |
}
|
3124 |
});
|
@@ -3139,13 +3151,13 @@
|
|
3139 |
*/
|
3140 |
|
3141 |
})(
|
3142 |
-
|
3143 |
-
|
3144 |
-
|
3145 |
-
|
3146 |
-
|
3147 |
);
|
3148 |
-
(function($, _, _utils, _is, _fn, _obj
|
3149 |
|
3150 |
_.TemplateFactory = _utils.Factory.extend(/** @lends FooGallery.TemplateFactory */{
|
3151 |
/**
|
@@ -3157,7 +3169,7 @@
|
|
3157 |
* @borrows FooGallery.utils.Class.extend as extend
|
3158 |
* @borrows FooGallery.utils.Class.override as override
|
3159 |
*/
|
3160 |
-
construct: function
|
3161 |
/**
|
3162 |
* @summary An object containing all registered galleries.
|
3163 |
* @memberof FooGallery.TemplateFactory#
|
@@ -3195,9 +3207,9 @@
|
|
3195 |
* @param {number} [priority=0] - This determines the index for the class when using either the {@link FooGallery.TemplateFactory#load|load} or {@link FooGallery.TemplateFactory#names|names} methods, a higher value equals a lower index.
|
3196 |
* @returns {boolean} `true` if the `klass` was successfully registered.
|
3197 |
*/
|
3198 |
-
register: function(name, template, options, classes, il8n, priority
|
3199 |
var self = this, result = self._super(name, template, priority);
|
3200 |
-
if (result
|
3201 |
var reg = self.registered;
|
3202 |
reg[name].opt = _is.hash(options) ? options : {};
|
3203 |
reg[name].cls = _is.hash(classes) ? classes : {};
|
@@ -3213,7 +3225,7 @@
|
|
3213 |
* @param {(jQuery|HTMLElement|string)} [element] - The jQuery object, HTMLElement or selector of the template element to create. If not supplied the {@link FooGallery~Options#type|type} options' value is used.
|
3214 |
* @returns {FooGallery.Template}
|
3215 |
*/
|
3216 |
-
make: function(options, element
|
3217 |
element = _is.jq(element) ? element : $(element);
|
3218 |
options = _obj.extend({}, options, element.data("foogallery"));
|
3219 |
var self = this, type = self.type(options, element);
|
@@ -3221,10 +3233,10 @@
|
|
3221 |
options = self.options(type, options);
|
3222 |
return self._super(type, options, element);
|
3223 |
},
|
3224 |
-
type: function(options, element
|
3225 |
element = _is.jq(element) ? element : $(element);
|
3226 |
var self = this, type = _is.hash(options) && _is.hash(options) && _is.string(options.type) && self.contains(options.type) ? options.type : "core";
|
3227 |
-
if (type === "core" && element.length > 0
|
3228 |
var reg = self.registered, names = self.names(true);
|
3229 |
for (var i = 0, l = names.length; i < l; i++) {
|
3230 |
if (!reg.hasOwnProperty(names[i])) continue;
|
@@ -3239,17 +3251,17 @@
|
|
3239 |
}
|
3240 |
return type;
|
3241 |
},
|
3242 |
-
configure: function(name, options, classes, il8n
|
3243 |
var self = this;
|
3244 |
-
if (self.contains(name
|
3245 |
var reg = self.registered;
|
3246 |
_obj.extend(reg[name].opt, options);
|
3247 |
_obj.extend(reg[name].cls, classes);
|
3248 |
_obj.extend(reg[name].il8n, il8n);
|
3249 |
}
|
3250 |
},
|
3251 |
-
options: function(name, options
|
3252 |
-
options = _obj.extend
|
3253 |
var self = this, reg = self.registered,
|
3254 |
def = reg["core"].opt,
|
3255 |
cls = reg["core"].cls,
|
@@ -3257,15 +3269,17 @@
|
|
3257 |
|
3258 |
if (!_is.hash(options.cls)) options.cls = {};
|
3259 |
if (!_is.hash(options.il8n)) options.il8n = {};
|
3260 |
-
options = _.
|
3261 |
-
if (
|
|
|
|
|
3262 |
options = _obj.extend({}, def, reg[name].opt, options);
|
3263 |
-
options.cls = _obj.extend
|
3264 |
-
options.il8n = _obj.extend
|
3265 |
} else {
|
3266 |
options = _obj.extend({}, def, options);
|
3267 |
-
options.cls = _obj.extend
|
3268 |
-
options.il8n = _obj.extend
|
3269 |
}
|
3270 |
return options;
|
3271 |
}
|
@@ -3361,8 +3375,8 @@
|
|
3361 |
def_cls = reg["default"].cls,
|
3362 |
def_il8n = reg["default"].il8n,
|
3363 |
opt = _is.hash(options.paging) ? options.paging : {},
|
3364 |
-
cls = _is.hash(options.cls) && _is.hash(options.cls.paging) ? options.cls.paging : {},
|
3365 |
-
il8n = _is.hash(options.il8n) && _is.hash(options.il8n.paging) ? options.il8n.paging : {};
|
3366 |
|
3367 |
if (!_is.hash(options.cls)) options.cls = {};
|
3368 |
if (!_is.hash(options.il8n)) options.il8n = {};
|
@@ -3431,7 +3445,9 @@
|
|
3431 |
FooGallery.utils.fn,
|
3432 |
FooGallery.utils.obj
|
3433 |
);
|
3434 |
-
(function($, _, _utils, _is, _fn, _str
|
|
|
|
|
3435 |
|
3436 |
_.Template = _utils.Class.extend(/** @lends FooGallery.Template */{
|
3437 |
/**
|
@@ -3444,8 +3460,15 @@
|
|
3444 |
* @borrows FooGallery.utils.Class.extend as extend
|
3445 |
* @borrows FooGallery.utils.Class.override as override
|
3446 |
*/
|
3447 |
-
construct: function(options, element
|
3448 |
var self = this;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3449 |
/**
|
3450 |
* @summary The jQuery object for the template container.
|
3451 |
* @memberof FooGallery.Template#
|
@@ -3474,13 +3497,6 @@
|
|
3474 |
* @type {string}
|
3475 |
*/
|
3476 |
self.id = self.$el.prop("id") || options.id;
|
3477 |
-
/**
|
3478 |
-
* @summary Whether or not the template created its' own container element.
|
3479 |
-
* @memberof FooGallery.Template#
|
3480 |
-
* @name createdSelf
|
3481 |
-
* @type {boolean}
|
3482 |
-
*/
|
3483 |
-
self.createdSelf = false;
|
3484 |
/**
|
3485 |
* @summary The CSS classes for the template.
|
3486 |
* @memberof FooGallery.Template#
|
@@ -3515,7 +3531,14 @@
|
|
3515 |
* @name pages
|
3516 |
* @type {?FooGallery.Paging}
|
3517 |
*/
|
3518 |
-
self.pages = _.paging.make(options.paging.type, self
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3519 |
/**
|
3520 |
* @summary The state manager for the template.
|
3521 |
* @memberof FooGallery.Template#
|
@@ -3535,6 +3558,12 @@
|
|
3535 |
self.initialized = false;
|
3536 |
self.destroying = false;
|
3537 |
self.destroyed = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
3538 |
},
|
3539 |
|
3540 |
// ################
|
@@ -3553,39 +3582,56 @@
|
|
3553 |
* @fires FooGallery.Template~"post-init.foogallery"
|
3554 |
* @fires FooGallery.Template~"ready.foogallery"
|
3555 |
*/
|
3556 |
-
initialize: function(parent
|
3557 |
var self = this;
|
3558 |
if (_is.promise(self._initialize)) return self._initialize;
|
3559 |
parent = _is.jq(parent) ? parent : $(parent);
|
3560 |
-
return self._initialize = $.Deferred(function(def
|
3561 |
self.initializing = true;
|
3562 |
-
if (parent.length === 0 && self.$el.parent().length === 0
|
3563 |
def.reject("A parent element is required.");
|
3564 |
return;
|
3565 |
}
|
3566 |
-
if (self.$el.length === 0
|
3567 |
self.$el = self.create();
|
3568 |
-
self.
|
3569 |
}
|
3570 |
-
if (parent.length > 0
|
3571 |
self.$el.appendTo(parent);
|
3572 |
}
|
3573 |
var queue = $.Deferred(), promise = queue.promise(), existing;
|
3574 |
-
if (self.$el.length > 0 && (existing = self.$el.data(_.dataTemplate)) instanceof _.Template
|
3575 |
-
promise = promise.then(function
|
3576 |
-
return existing.destroy().then(function
|
3577 |
self.$el.data(_.dataTemplate, self);
|
3578 |
});
|
3579 |
});
|
3580 |
} else {
|
3581 |
self.$el.data(_.dataTemplate, self);
|
3582 |
}
|
3583 |
-
promise.then(function
|
3584 |
if (self.destroying) return _fn.rejectWith("destroy in progress");
|
3585 |
// at this point we have our container element free of pre-existing instances so let's bind any event listeners supplied by the .on option
|
3586 |
-
if (!_is.empty(self.opt.on
|
3587 |
self.$el.on(self.opt.on);
|
3588 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3589 |
|
3590 |
/**
|
3591 |
* @summary Raised before the template is fully initialized.
|
@@ -3617,17 +3663,17 @@
|
|
3617 |
*/
|
3618 |
var e = self.raise("pre-init");
|
3619 |
if (e.isDefaultPrevented()) return _fn.rejectWith("pre-init default prevented");
|
3620 |
-
}).then(function
|
3621 |
if (self.destroying) return _fn.rejectWith("destroy in progress");
|
3622 |
// checks the delay option and if it is greater than 0 waits for that amount of time before continuing
|
3623 |
if (self.opt.delay <= 0) return _fn.resolved;
|
3624 |
-
return $.Deferred(function(wait
|
3625 |
self._delay = setTimeout(function () {
|
3626 |
self._delay = null;
|
3627 |
wait.resolve();
|
3628 |
}, self.opt.delay);
|
3629 |
}).promise();
|
3630 |
-
}).then(function
|
3631 |
if (self.destroying) return _fn.rejectWith("destroy in progress");
|
3632 |
/**
|
3633 |
* @summary Raised before the template is initialized but after any pre-initialization work is complete.
|
@@ -3673,7 +3719,7 @@
|
|
3673 |
var e = self.raise("init");
|
3674 |
if (e.isDefaultPrevented()) return _fn.rejectWith("init default prevented");
|
3675 |
return self.items.fetch();
|
3676 |
-
}).then(function
|
3677 |
if (self.destroying) return _fn.rejectWith("destroy in progress");
|
3678 |
/**
|
3679 |
* @summary Raised after the template is initialized but before any post-initialization work is complete.
|
@@ -3720,9 +3766,9 @@
|
|
3720 |
if (e.isDefaultPrevented()) return _fn.rejectWith("post-init default prevented");
|
3721 |
var state = self.state.parse();
|
3722 |
self.state.set(_is.empty(state) ? self.state.initial() : state);
|
3723 |
-
$(window).on("scroll.
|
3724 |
-
.on("popstate.
|
3725 |
-
}).then(function
|
3726 |
if (self.destroying) return _fn.rejectWith("destroy in progress");
|
3727 |
/**
|
3728 |
* @summary Raised after the template is fully initialized but before the first load occurs.
|
@@ -3742,7 +3788,7 @@
|
|
3742 |
*/
|
3743 |
self.raise("first-load");
|
3744 |
return self.loadAvailable();
|
3745 |
-
}).then(function
|
3746 |
if (self.destroying) return _fn.rejectWith("destroy in progress");
|
3747 |
self.initializing = false;
|
3748 |
self.initialized = true;
|
@@ -3772,11 +3818,11 @@
|
|
3772 |
*/
|
3773 |
self.raise("ready");
|
3774 |
def.resolve(self);
|
3775 |
-
}).fail(function(err
|
3776 |
def.reject(err);
|
3777 |
});
|
3778 |
queue.resolve();
|
3779 |
-
}).promise().fail(function(err
|
3780 |
console.log("initialize failed", self, err);
|
3781 |
self.destroy();
|
3782 |
});
|
@@ -3791,10 +3837,20 @@
|
|
3791 |
* <div id="{options.id}" class="{options.cls.container} {options.classes}">
|
3792 |
* </div>
|
3793 |
*/
|
3794 |
-
create: function
|
3795 |
var self = this;
|
3796 |
return $("<div/>", {"id": self.id, "class": self.cls.container}).addClass(self.opt.classes);
|
3797 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3798 |
|
3799 |
// #############
|
3800 |
// ## Destroy ##
|
@@ -3808,13 +3864,13 @@
|
|
3808 |
* @description Once this method is called it can not be stopped and the template will be destroyed.
|
3809 |
* @fires FooGallery.Template~"destroy.foogallery"
|
3810 |
*/
|
3811 |
-
destroy: function
|
3812 |
var self = this;
|
3813 |
if (self.destroyed) return _fn.resolved;
|
3814 |
self.destroying = true;
|
3815 |
-
return $.Deferred(function(def
|
3816 |
-
if (self.initializing && _is.promise(self._initialize
|
3817 |
-
self._initialize.always(function
|
3818 |
self.destroying = false;
|
3819 |
self._destroy();
|
3820 |
def.resolve();
|
@@ -3832,7 +3888,7 @@
|
|
3832 |
* @function _destroy
|
3833 |
* @private
|
3834 |
*/
|
3835 |
-
_destroy: function
|
3836 |
var self = this;
|
3837 |
if (self.destroyed) return;
|
3838 |
/**
|
@@ -3851,12 +3907,12 @@
|
|
3851 |
* });
|
3852 |
*/
|
3853 |
self.raise("destroy");
|
3854 |
-
$(window).off
|
3855 |
-
.off("scroll.foogallery");
|
3856 |
self.state.destroy();
|
|
|
3857 |
if (self.pages) self.pages.destroy();
|
3858 |
self.items.destroy();
|
3859 |
-
if (!_is.empty(self.opt.on
|
3860 |
self.$el.off(self.opt.on);
|
3861 |
}
|
3862 |
/**
|
@@ -3876,7 +3932,17 @@
|
|
3876 |
*/
|
3877 |
self.raise("destroyed");
|
3878 |
self.$el.removeData(_.dataTemplate);
|
3879 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3880 |
self.$el.remove();
|
3881 |
}
|
3882 |
self.$el = self.state = self.items = self.pages = null;
|
@@ -3889,20 +3955,25 @@
|
|
3889 |
// ## Load Items ##
|
3890 |
// ################
|
3891 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3892 |
/**
|
3893 |
* @summary Check if any available items need to be loaded and loads them.
|
3894 |
* @memberof FooGallery.Template#
|
3895 |
* @function loadAvailable
|
3896 |
* @returns {Promise<FooGallery.Item[]>} Resolves with an array of {@link FooGallery.Item|items} as the first argument. If no items are loaded this array is empty.
|
3897 |
*/
|
3898 |
-
loadAvailable: function
|
3899 |
-
|
3900 |
-
if (self.pages){
|
3901 |
-
items = self.pages.available();
|
3902 |
-
} else {
|
3903 |
-
items = self.items.available();
|
3904 |
-
}
|
3905 |
-
return self.items.load(items);
|
3906 |
},
|
3907 |
|
3908 |
/**
|
@@ -3911,11 +3982,11 @@
|
|
3911 |
* @function _check
|
3912 |
* @private
|
3913 |
*/
|
3914 |
-
_check: function(delay
|
3915 |
delay = _is.number(delay) ? delay : 0;
|
3916 |
var self = this;
|
3917 |
-
setTimeout(function
|
3918 |
-
if (self.initialized && (!self.destroying || !self.destroyed
|
3919 |
self.loadAvailable();
|
3920 |
}
|
3921 |
}, delay);
|
@@ -3944,20 +4015,20 @@
|
|
3944 |
if (!_is.string(eventName) || _is.empty(eventName)) return null;
|
3945 |
args = _is.array(args) ? args : [];
|
3946 |
var self = this,
|
3947 |
-
|
3948 |
-
|
3949 |
-
|
3950 |
args.unshift(self); // add self
|
3951 |
self.$el.trigger(event, args);
|
3952 |
_.debug.logf("{id}|{name}:", {id: self.id, name: name}, args);
|
3953 |
-
if (_is.fn(self[listener
|
3954 |
args.unshift(event); // add event
|
3955 |
self[listener].apply(self.$el.get(0), args);
|
3956 |
}
|
3957 |
return event;
|
3958 |
},
|
3959 |
|
3960 |
-
layout: function
|
3961 |
var self = this;
|
3962 |
if (self._initialize === null) return;
|
3963 |
/**
|
@@ -3987,9 +4058,9 @@
|
|
3987 |
* @param {number} wait - The number of milliseconds to wait before allowing execution.
|
3988 |
* @returns {Function}
|
3989 |
*/
|
3990 |
-
throttle: function(fn, wait
|
3991 |
var time = Date.now();
|
3992 |
-
return function() {
|
3993 |
if ((time + wait - Date.now()) < 0) {
|
3994 |
var args = _fn.arg2arr(arguments);
|
3995 |
fn.apply(this, args);
|
@@ -4009,9 +4080,9 @@
|
|
4009 |
* @param {jQuery.Event} e - The jQuery.Event object for the event.
|
4010 |
* @private
|
4011 |
*/
|
4012 |
-
onWindowPopState: function(e
|
4013 |
var self = e.data.self, state = e.originalEvent.state;
|
4014 |
-
if (!_is.empty(state) && state.id === self.id
|
4015 |
self.state.set(state);
|
4016 |
self.loadAvailable();
|
4017 |
}
|
@@ -4023,7 +4094,7 @@
|
|
4023 |
* @param {jQuery.Event} e - The jQuery.Event object for the event.
|
4024 |
* @private
|
4025 |
*/
|
4026 |
-
onWindowScroll: function(e
|
4027 |
var self = e.data.self;
|
4028 |
self.loadAvailable();
|
4029 |
}
|
@@ -4045,9 +4116,7 @@
|
|
4045 |
template: {}
|
4046 |
}, {
|
4047 |
container: "foogallery"
|
4048 |
-
},
|
4049 |
-
|
4050 |
-
}, -100);
|
4051 |
|
4052 |
/**
|
4053 |
* @summary An object containing all the core template options.
|
@@ -4094,15 +4163,13 @@
|
|
4094 |
*/
|
4095 |
|
4096 |
})(
|
4097 |
-
|
4098 |
-
|
4099 |
-
|
4100 |
-
|
4101 |
-
|
4102 |
-
|
4103 |
);
|
4104 |
-
|
4105 |
-
|
4106 |
(function(_, _utils){
|
4107 |
|
4108 |
_.Component = _utils.Class.extend(/** @lend FooGallery.Component */{
|
@@ -4365,6 +4432,7 @@
|
|
4365 |
*/
|
4366 |
initial: function(){
|
4367 |
var self = this, tmpl = self.tmpl, state = {};
|
|
|
4368 |
if (tmpl.pages && tmpl.pages.current > 1) state.p = tmpl.pages.current;
|
4369 |
return state;
|
4370 |
},
|
@@ -4379,6 +4447,9 @@
|
|
4379 |
get: function(item){
|
4380 |
var self = this, tmpl = self.tmpl, state = {};
|
4381 |
if (item instanceof _.Item) state.i = item.id;
|
|
|
|
|
|
|
4382 |
if (tmpl.pages && tmpl.pages.isValid(tmpl.pages.current)){
|
4383 |
state.p = tmpl.pages.current;
|
4384 |
}
|
@@ -4396,6 +4467,11 @@
|
|
4396 |
if (_is.hash(state)){
|
4397 |
tmpl.items.reset();
|
4398 |
var item = tmpl.items.get(state.i);
|
|
|
|
|
|
|
|
|
|
|
4399 |
if (tmpl.pages){
|
4400 |
tmpl.pages.rebuild();
|
4401 |
var page = tmpl.pages.number(state.p);
|
@@ -4449,6 +4525,7 @@
|
|
4449 |
* @summary An object used to store the state of a template.
|
4450 |
* @typedef {object} FooGallery~State
|
4451 |
* @property {number} [p] - The current page number.
|
|
|
4452 |
* @property {?string} [i] - The currently selected item.
|
4453 |
*/
|
4454 |
|
@@ -4458,7 +4535,7 @@
|
|
4458 |
FooGallery.utils.is,
|
4459 |
FooGallery.utils.str
|
4460 |
);
|
4461 |
-
(function($, _, _utils, _is, _fn, _obj
|
4462 |
|
4463 |
_.Item = _.Component.extend(/** @lends FooGallery.Item */{
|
4464 |
/**
|
@@ -4471,7 +4548,7 @@
|
|
4471 |
* @borrows FooGallery.utils.Class.extend as extend
|
4472 |
* @borrows FooGallery.utils.Class.override as override
|
4473 |
*/
|
4474 |
-
construct: function(template, options
|
4475 |
var self = this;
|
4476 |
/**
|
4477 |
* @ignore
|
@@ -4482,6 +4559,8 @@
|
|
4482 |
self.cls = template.cls.item;
|
4483 |
self.il8n = template.il8n.item;
|
4484 |
self.sel = template.sel.item;
|
|
|
|
|
4485 |
/**
|
4486 |
* @summary Whether or not the items' elements are appended to the template.
|
4487 |
* @memberof FooGallery.Item#
|
@@ -4561,110 +4640,114 @@
|
|
4561 |
*/
|
4562 |
self.$caption = null;
|
4563 |
|
4564 |
-
|
4565 |
-
|
|
|
|
|
|
|
|
|
4566 |
/**
|
4567 |
* @memberof FooGallery.Item#
|
4568 |
* @name id
|
4569 |
* @type {string}
|
4570 |
*/
|
4571 |
-
self.id =
|
4572 |
/**
|
4573 |
* @memberof FooGallery.Item#
|
4574 |
* @name href
|
4575 |
* @type {string}
|
4576 |
*/
|
4577 |
-
self.href =
|
4578 |
/**
|
4579 |
* @memberof FooGallery.Item#
|
4580 |
* @name src
|
4581 |
* @type {string}
|
4582 |
*/
|
4583 |
-
self.src =
|
4584 |
/**
|
4585 |
* @memberof FooGallery.Item#
|
4586 |
* @name srcset
|
4587 |
* @type {string}
|
4588 |
*/
|
4589 |
-
self.srcset =
|
4590 |
/**
|
4591 |
* @memberof FooGallery.Item#
|
4592 |
* @name width
|
4593 |
* @type {number}
|
4594 |
*/
|
4595 |
-
self.width =
|
4596 |
/**
|
4597 |
* @memberof FooGallery.Item#
|
4598 |
* @name height
|
4599 |
* @type {number}
|
4600 |
*/
|
4601 |
-
self.height =
|
4602 |
/**
|
4603 |
* @memberof FooGallery.Item#
|
4604 |
* @name title
|
4605 |
* @type {string}
|
4606 |
*/
|
4607 |
-
self.title =
|
4608 |
/**
|
4609 |
* @memberof FooGallery.Item#
|
4610 |
* @name alt
|
4611 |
* @type {string}
|
4612 |
*/
|
4613 |
-
self.alt =
|
4614 |
/**
|
4615 |
* @memberof FooGallery.Item#
|
4616 |
* @name caption
|
4617 |
* @type {string}
|
4618 |
*/
|
4619 |
-
self.caption = _is.empty(
|
4620 |
/**
|
4621 |
* @memberof FooGallery.Item#
|
4622 |
* @name description
|
4623 |
* @type {string}
|
4624 |
*/
|
4625 |
-
self.description = _is.empty(
|
4626 |
/**
|
4627 |
* @memberof FooGallery.Item#
|
4628 |
* @name attrItem
|
4629 |
* @type {FooGallery.Item~Attributes}
|
4630 |
*/
|
4631 |
-
self.attr =
|
4632 |
/**
|
4633 |
* @memberof FooGallery.Item#
|
4634 |
* @name tags
|
4635 |
* @type {string[]}
|
4636 |
*/
|
4637 |
-
self.tags =
|
4638 |
/**
|
4639 |
* @memberof FooGallery.Item#
|
4640 |
* @name maxWidth
|
4641 |
* @type {?FooGallery.Item~maxWidthCallback}
|
4642 |
*/
|
4643 |
-
self.maxWidth =
|
4644 |
/**
|
4645 |
* @memberof FooGallery.Item#
|
4646 |
* @name maxCaptionLength
|
4647 |
* @type {number}
|
4648 |
*/
|
4649 |
-
self.maxCaptionLength =
|
4650 |
/**
|
4651 |
* @memberof FooGallery.Item#
|
4652 |
* @name maxDescriptionLength
|
4653 |
* @type {number}
|
4654 |
*/
|
4655 |
-
self.maxDescriptionLength =
|
4656 |
/**
|
4657 |
* @memberof FooGallery.Item#
|
4658 |
* @name showCaptionTitle
|
4659 |
* @type {boolean}
|
4660 |
*/
|
4661 |
-
self.showCaptionTitle =
|
4662 |
/**
|
4663 |
* @memberof FooGallery.Item#
|
4664 |
* @name showCaptionDescription
|
4665 |
* @type {boolean}
|
4666 |
*/
|
4667 |
-
self.showCaptionDescription =
|
4668 |
/**
|
4669 |
* @summary The cached result of the last call to the {@link FooGallery.Item#getThumbUrl|getThumbUrl} method.
|
4670 |
* @memberof FooGallery.Item#
|
@@ -4673,6 +4756,14 @@
|
|
4673 |
* @private
|
4674 |
*/
|
4675 |
self._thumbUrl = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4676 |
/**
|
4677 |
* @summary This property is used to store the promise created when loading an item for the first time.
|
4678 |
* @memberof FooGallery.Item#
|
@@ -4681,13 +4772,26 @@
|
|
4681 |
* @private
|
4682 |
*/
|
4683 |
self._load = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4684 |
},
|
4685 |
/**
|
4686 |
|