Elementor Essential Addons - Version 3.7.2

Version Description

  • 23/01/2020 =
  • Fixed: Admin notice comes after clicking on "Never show again"
  • Fixed: Sticky video SVG upload issue
  • Few minor bugfix and improvements
Download this release

Release Info

Developer re_enter_rupok
Plugin Icon 128x128 Elementor Essential Addons
Version 3.7.2
Comparing to
See all releases

Code changes from version 3.7.1 to 3.7.2

assets/admin/css/notice.css CHANGED
@@ -34,17 +34,21 @@
34
  .wpdeveloper-notice-thumbnail img:hover {
35
  opacity: 1;
36
  }
37
- .wpdeveloper-update-notice .wpdeveloper-notice-thumbnail img {
 
38
  width: 32px;
39
  }
40
- .wpdeveloper-update-notice .wpdeveloper-notice-thumbnail {
 
41
  width: auto;
42
  padding: 7px;
43
  }
44
- .wpdeveloper-update-notice .wpdeveloper-notice-message {
 
45
  padding: 5px 0;
46
  }
47
- .wpdeveloper-update-notice {
 
48
  border-color: #6648fe;
49
  padding: 0
50
  }
34
  .wpdeveloper-notice-thumbnail img:hover {
35
  opacity: 1;
36
  }
37
+ .wpdeveloper-update-notice .wpdeveloper-notice-thumbnail img,
38
+ .wpdeveloper-update_400k-notice .wpdeveloper-notice-thumbnail img {
39
  width: 32px;
40
  }
41
+ .wpdeveloper-update-notice .wpdeveloper-notice-thumbnail,
42
+ .wpdeveloper-update_400k-notice .wpdeveloper-notice-thumbnail {
43
  width: auto;
44
  padding: 7px;
45
  }
46
+ .wpdeveloper-update-notice .wpdeveloper-notice-message,
47
+ .wpdeveloper-update_400k-notice .wpdeveloper-notice-message {
48
  padding: 5px 0;
49
  }
50
+ .wpdeveloper-update-notice,
51
+ .wpdeveloper-update_400k-notice {
52
  border-color: #6648fe;
53
  padding: 0
54
  }
assets/front-end/css/call-to-action/index.css CHANGED
@@ -180,7 +180,7 @@
180
 
181
  .eael-call-to-action .cta-button.effect-1:hover::after {
182
  -webkit-transform: translateY(0);
183
- transform: translateY(0);
184
  }
185
 
186
  /*--- Cta Button effect 2 ---*/
@@ -197,12 +197,12 @@
197
  transition: .5s;
198
  color: #fff;
199
  -webkit-transform: translateX(-100%);
200
- transform: translateX(-100%);
201
  }
202
 
203
  .eael-call-to-action .cta-button.effect-2:hover::after {
204
  -webkit-transform: translateX(0);
205
- transform: translateX(0);
206
  }
207
 
208
  /*--- Media Queries ---*/
180
 
181
  .eael-call-to-action .cta-button.effect-1:hover::after {
182
  -webkit-transform: translateY(0);
183
+ transform: translateY(0);
184
  }
185
 
186
  /*--- Cta Button effect 2 ---*/
197
  transition: .5s;
198
  color: #fff;
199
  -webkit-transform: translateX(-100%);
200
+ transform: translateX(-100%);
201
  }
202
 
203
  .eael-call-to-action .cta-button.effect-2:hover::after {
204
  -webkit-transform: translateX(0);
205
+ transform: translateX(0);
206
  }
207
 
208
  /*--- Media Queries ---*/
assets/front-end/css/creative-btn/index.css CHANGED
@@ -41,7 +41,7 @@
41
  -webkit-transition: border-color 0.3s, background-color 0.3s;
42
  transition: border-color 0.3s, background-color 0.3s;
43
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
44
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
45
  }
46
 
47
  .eael-creative-button--winona::after {
@@ -53,7 +53,7 @@
53
  left: 0;
54
  opacity: 0;
55
  -webkit-transform: translate3d(0, 25%, 0);
56
- transform: translate3d(0, 25%, 0);
57
  display: -webkit-box;
58
  display: flex;
59
  -webkit-box-align: center;
@@ -65,25 +65,24 @@
65
  .eael-creative-button--winona::after,
66
  .eael-creative-button--winona > .creative-button-inner {
67
  padding: 1em 2em;
68
- -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
69
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
70
  transition: opacity 0.3s, -webkit-transform 0.3s;
71
  transition: transform 0.3s, opacity 0.3s;
72
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
73
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
74
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
75
  }
76
 
77
  .eael-creative-button--winona:hover::after {
78
  opacity: 1;
79
  -webkit-transform: translate3d(0, 0, 0);
80
- transform: translate3d(0, 0, 0);
81
  }
82
 
83
  .eael-creative-button--winona:hover > .creative-button-inner {
84
  opacity: 0;
85
- -webkit-transform: translate3d(0, -25%, 0);
86
- transform: translate3d(0, 0%, 0);
87
  }
88
 
89
  /*--- Ujarak ---*/
@@ -102,26 +101,25 @@
102
  z-index: -1;
103
  opacity: 0;
104
  -webkit-transform: scale3d(0.7, 1, 1);
105
- transform: scale3d(0.7, 1, 1);
106
- -webkit-transition: -webkit-transform 0.4s, opacity 0.4s;
107
  -webkit-transition: opacity 0.4s, -webkit-transform 0.4s;
108
  transition: opacity 0.4s, -webkit-transform 0.4s;
109
  transition: transform 0.4s, opacity 0.4s;
110
  transition: transform 0.4s, opacity 0.4s, -webkit-transform 0.4s;
111
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
112
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
113
  }
114
 
115
  .eael-creative-button--ujarak,
116
  .eael-creative-button--ujarak::before {
117
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
118
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
119
  }
120
 
121
  .eael-creative-button--ujarak:hover::before {
122
  opacity: 1;
123
  -webkit-transform: translate3d(0, 0, 0);
124
- transform: translate3d(0, 0, 0);
125
  }
126
 
127
  /*--- Wayra ---*/
@@ -130,7 +128,7 @@
130
  -webkit-transition: border-color 0.3s, color 0.3s;
131
  transition: border-color 0.3s, color 0.3s;
132
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
133
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
134
  }
135
 
136
  .eael-creative-button--wayra::before {
@@ -142,10 +140,9 @@
142
  height: 100%;
143
  z-index: -1;
144
  -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
145
- transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
146
  -webkit-transform-origin: 0% 100%;
147
- transform-origin: 0% 100%;
148
- -webkit-transition: -webkit-transform 0.3s, opacity 0.3s, background-color 0.3s;
149
  -webkit-transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
150
  transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
151
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
@@ -155,9 +152,9 @@
155
  .eael-creative-button--wayra:hover::before {
156
  opacity: 1;
157
  -webkit-transform: rotate3d(0, 0, 1, 0deg);
158
- transform: rotate3d(0, 0, 1, 0deg);
159
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
160
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
161
  }
162
 
163
  /* Tamaya */
@@ -201,7 +198,7 @@
201
  transition: transform 0.3s;
202
  transition: transform 0.3s, -webkit-transform 0.3s;
203
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
204
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
205
  }
206
 
207
  .eael-creative-button--tamaya.button--inverted::before,
@@ -223,31 +220,30 @@
223
  .eael-creative-button--tamaya span {
224
  display: block;
225
  -webkit-transform: scale3d(0.2, 0.2, 1);
226
- transform: scale3d(0.2, 0.2, 1);
227
  opacity: 0;
228
- -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
229
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
230
  transition: opacity 0.3s, -webkit-transform 0.3s;
231
  transition: transform 0.3s, opacity 0.3s;
232
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
233
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
234
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
235
  }
236
 
237
  .eael-creative-button--tamaya:hover::before {
238
  -webkit-transform: translate3d(0, -100%, 0);
239
- transform: translate3d(0, -100%, 0);
240
  }
241
 
242
  .eael-creative-button--tamaya:hover::after {
243
  -webkit-transform: translate3d(0, 100%, 0);
244
- transform: translate3d(0, 100%, 0);
245
  }
246
 
247
  .eael-creative-button--tamaya:hover span {
248
  opacity: 1;
249
  -webkit-transform: scale3d(1, 1, 1);
250
- transform: scale3d(1, 1, 1);
251
  content: 'Bangladesh';
252
  }
253
 
@@ -265,7 +261,7 @@
265
  width: 100%;
266
  height: 100%;
267
  -webkit-transform: translate3d(-100%, 0, 0);
268
- transform: translate3d(-100%, 0, 0);
269
  display: -webkit-box;
270
  display: flex;
271
  -webkit-box-align: center;
@@ -282,17 +278,17 @@
282
  transition: transform 0.3s;
283
  transition: transform 0.3s, -webkit-transform 0.3s;
284
  -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
285
- transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
286
  }
287
 
288
  .eael-creative-button--rayen:hover::before {
289
  -webkit-transform: translate3d(0, 0, 0);
290
- transform: translate3d(0, 0, 0);
291
  }
292
 
293
  .eael-creative-button--rayen:hover > .creative-button-inner {
294
  -webkit-transform: translate3d(0, 100%, 0);
295
- transform: translate3d(0, 100%, 0);
296
  }
297
 
298
  .creative-button-inner {
41
  -webkit-transition: border-color 0.3s, background-color 0.3s;
42
  transition: border-color 0.3s, background-color 0.3s;
43
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
44
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
45
  }
46
 
47
  .eael-creative-button--winona::after {
53
  left: 0;
54
  opacity: 0;
55
  -webkit-transform: translate3d(0, 25%, 0);
56
+ transform: translate3d(0, 25%, 0);
57
  display: -webkit-box;
58
  display: flex;
59
  -webkit-box-align: center;
65
  .eael-creative-button--winona::after,
66
  .eael-creative-button--winona > .creative-button-inner {
67
  padding: 1em 2em;
 
68
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
69
  transition: opacity 0.3s, -webkit-transform 0.3s;
70
  transition: transform 0.3s, opacity 0.3s;
71
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
72
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
73
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
74
  }
75
 
76
  .eael-creative-button--winona:hover::after {
77
  opacity: 1;
78
  -webkit-transform: translate3d(0, 0, 0);
79
+ transform: translate3d(0, 0, 0);
80
  }
81
 
82
  .eael-creative-button--winona:hover > .creative-button-inner {
83
  opacity: 0;
84
+ -webkit-transform: translate3d(0, 0%, 0);
85
+ transform: translate3d(0, 0%, 0);
86
  }
87
 
88
  /*--- Ujarak ---*/
101
  z-index: -1;
102
  opacity: 0;
103
  -webkit-transform: scale3d(0.7, 1, 1);
104
+ transform: scale3d(0.7, 1, 1);
 
105
  -webkit-transition: opacity 0.4s, -webkit-transform 0.4s;
106
  transition: opacity 0.4s, -webkit-transform 0.4s;
107
  transition: transform 0.4s, opacity 0.4s;
108
  transition: transform 0.4s, opacity 0.4s, -webkit-transform 0.4s;
109
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
110
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
111
  }
112
 
113
  .eael-creative-button--ujarak,
114
  .eael-creative-button--ujarak::before {
115
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
116
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
117
  }
118
 
119
  .eael-creative-button--ujarak:hover::before {
120
  opacity: 1;
121
  -webkit-transform: translate3d(0, 0, 0);
122
+ transform: translate3d(0, 0, 0);
123
  }
124
 
125
  /*--- Wayra ---*/
128
  -webkit-transition: border-color 0.3s, color 0.3s;
129
  transition: border-color 0.3s, color 0.3s;
130
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
131
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
132
  }
133
 
134
  .eael-creative-button--wayra::before {
140
  height: 100%;
141
  z-index: -1;
142
  -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
143
+ transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
144
  -webkit-transform-origin: 0% 100%;
145
+ transform-origin: 0% 100%;
 
146
  -webkit-transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
147
  transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
148
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
152
  .eael-creative-button--wayra:hover::before {
153
  opacity: 1;
154
  -webkit-transform: rotate3d(0, 0, 1, 0deg);
155
+ transform: rotate3d(0, 0, 1, 0deg);
156
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
157
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
158
  }
159
 
160
  /* Tamaya */
198
  transition: transform 0.3s;
199
  transition: transform 0.3s, -webkit-transform 0.3s;
200
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
201
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
202
  }
203
 
204
  .eael-creative-button--tamaya.button--inverted::before,
220
  .eael-creative-button--tamaya span {
221
  display: block;
222
  -webkit-transform: scale3d(0.2, 0.2, 1);
223
+ transform: scale3d(0.2, 0.2, 1);
224
  opacity: 0;
 
225
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
226
  transition: opacity 0.3s, -webkit-transform 0.3s;
227
  transition: transform 0.3s, opacity 0.3s;
228
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
229
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
230
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
231
  }
232
 
233
  .eael-creative-button--tamaya:hover::before {
234
  -webkit-transform: translate3d(0, -100%, 0);
235
+ transform: translate3d(0, -100%, 0);
236
  }
237
 
238
  .eael-creative-button--tamaya:hover::after {
239
  -webkit-transform: translate3d(0, 100%, 0);
240
+ transform: translate3d(0, 100%, 0);
241
  }
242
 
243
  .eael-creative-button--tamaya:hover span {
244
  opacity: 1;
245
  -webkit-transform: scale3d(1, 1, 1);
246
+ transform: scale3d(1, 1, 1);
247
  content: 'Bangladesh';
248
  }
249
 
261
  width: 100%;
262
  height: 100%;
263
  -webkit-transform: translate3d(-100%, 0, 0);
264
+ transform: translate3d(-100%, 0, 0);
265
  display: -webkit-box;
266
  display: flex;
267
  -webkit-box-align: center;
278
  transition: transform 0.3s;
279
  transition: transform 0.3s, -webkit-transform 0.3s;
280
  -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
281
+ transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
282
  }
283
 
284
  .eael-creative-button--rayen:hover::before {
285
  -webkit-transform: translate3d(0, 0, 0);
286
+ transform: translate3d(0, 0, 0);
287
  }
288
 
289
  .eael-creative-button--rayen:hover > .creative-button-inner {
290
  -webkit-transform: translate3d(0, 100%, 0);
291
+ transform: translate3d(0, 100%, 0);
292
  }
293
 
294
  .creative-button-inner {
assets/front-end/css/creative-btn/index.min.css CHANGED
@@ -1 +1 @@
1
- .eael-creative-button-align-center{text-align:center}.eael-creative-button-wrapper{display:-webkit-box;display:flex}.eael-creative-button{-webkit-box-flex:0;flex:0 0 auto;min-width:150px;text-align:center;vertical-align:middle;position:relative;z-index:1;border-radius:2px;padding:20px 30px;font-size:16px;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;-moz-osx-font-smoothing:grayscale}.eael-creative-button:focus{outline:0}.eael-creative-button--winona{overflow:hidden;padding:0!important;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona::after{content:attr(data-text);position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;-webkit-transform:translate3d(0,25%,0);transform:translate3d(0,25%,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--winona::after,.eael-creative-button--winona>.creative-button-inner{padding:1em 2em;-webkit-transition:-webkit-transform .3s,opacity .3s;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona:hover::after{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--winona:hover>.creative-button-inner{opacity:0;-webkit-transform:translate3d(0,-25%,0);transform:translate3d(0,0,0)}.eael-creative-button--ujarak{-webkit-transition:border-color .4s,color .4s;transition:border-color .4s,color .4s}.eael-creative-button--ujarak::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:0;-webkit-transform:scale3d(.7,1,1);transform:scale3d(.7,1,1);-webkit-transition:-webkit-transform .4s,opacity .4s;-webkit-transition:opacity .4s,-webkit-transform .4s;transition:opacity .4s,-webkit-transform .4s;transition:transform .4s,opacity .4s;transition:transform .4s,opacity .4s,-webkit-transform .4s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak,.eael-creative-button--ujarak::before{-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak:hover::before{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--wayra{overflow:hidden;-webkit-transition:border-color .3s,color .3s;transition:border-color .3s,color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--wayra::before{content:'';position:absolute;top:0;left:0;width:150%;height:100%;z-index:-1;-webkit-transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transition:-webkit-transform .3s,opacity .3s,background-color .3s;-webkit-transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s,background-color .3s;transition:transform .3s,opacity .3s,background-color .3s,-webkit-transform .3s}.eael-creative-button--wayra:hover::before{opacity:1;-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg);-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya{float:left;min-width:150px;max-width:250px;display:block;margin:1em;padding:1em 2em;border:none;background:0 0;color:inherit;vertical-align:middle;position:relative;z-index:1;-webkit-backface-visibility:hidden;-moz-osx-font-smoothing:grayscale;overflow:hidden;color:#7986cb;min-width:180px}.eael-creative-button--tamaya.button--inverted{color:#37474f;border-color:#37474f}.eael-creative-button--tamaya::after,.eael-creative-button--tamaya::before{content:attr(data-text);position:absolute;width:100%;height:50%;left:0;background:#7986cb;color:#fff;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya.button--inverted::after,.eael-creative-button--tamaya.button--inverted::before{background:#fff;color:#37474f}.eael-creative-button--tamaya::before{top:0;padding-top:1em}.eael-creative-button--tamaya::after{bottom:0;line-height:0}.eael-creative-button--tamaya span{display:block;-webkit-transform:scale3d(.2,.2,1);transform:scale3d(.2,.2,1);opacity:0;-webkit-transition:-webkit-transform .3s,opacity .3s;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya:hover::before{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.eael-creative-button--tamaya:hover::after{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.eael-creative-button--tamaya:hover span{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);content:'Bangladesh'}.eael-creative-button--rayen{overflow:hidden;padding:0!important}.eael-creative-button--rayen::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--rayen::before,.eael-creative-button--rayen>.creative-button-inner{padding:1em 2em;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.75,0,.125,1);transition-timing-function:cubic-bezier(.75,0,.125,1)}.eael-creative-button--rayen:hover::before{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--rayen:hover>.creative-button-inner{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.creative-button-inner{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button-icon-left{margin-right:5px}.eael-creative-button-icon-right{margin-left:5px}
1
+ .eael-creative-button-align-center{text-align:center}.eael-creative-button-wrapper{display:-webkit-box;display:flex}.eael-creative-button{-webkit-box-flex:0;flex:0 0 auto;min-width:150px;text-align:center;vertical-align:middle;position:relative;z-index:1;border-radius:2px;padding:20px 30px;font-size:16px;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;-moz-osx-font-smoothing:grayscale}.eael-creative-button:focus{outline:0}.eael-creative-button--winona{overflow:hidden;padding:0!important;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona::after{content:attr(data-text);position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;-webkit-transform:translate3d(0,25%,0);transform:translate3d(0,25%,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--winona::after,.eael-creative-button--winona>.creative-button-inner{padding:1em 2em;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona:hover::after{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--winona:hover>.creative-button-inner{opacity:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--ujarak{-webkit-transition:border-color .4s,color .4s;transition:border-color .4s,color .4s}.eael-creative-button--ujarak::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:0;-webkit-transform:scale3d(.7,1,1);transform:scale3d(.7,1,1);-webkit-transition:opacity .4s,-webkit-transform .4s;transition:opacity .4s,-webkit-transform .4s;transition:transform .4s,opacity .4s;transition:transform .4s,opacity .4s,-webkit-transform .4s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak,.eael-creative-button--ujarak::before{-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak:hover::before{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--wayra{overflow:hidden;-webkit-transition:border-color .3s,color .3s;transition:border-color .3s,color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--wayra::before{content:'';position:absolute;top:0;left:0;width:150%;height:100%;z-index:-1;-webkit-transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s,background-color .3s;transition:transform .3s,opacity .3s,background-color .3s,-webkit-transform .3s}.eael-creative-button--wayra:hover::before{opacity:1;-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg);-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya{float:left;min-width:150px;max-width:250px;display:block;margin:1em;padding:1em 2em;border:none;background:0 0;color:inherit;vertical-align:middle;position:relative;z-index:1;-webkit-backface-visibility:hidden;-moz-osx-font-smoothing:grayscale;overflow:hidden;color:#7986cb;min-width:180px}.eael-creative-button--tamaya.button--inverted{color:#37474f;border-color:#37474f}.eael-creative-button--tamaya::after,.eael-creative-button--tamaya::before{content:attr(data-text);position:absolute;width:100%;height:50%;left:0;background:#7986cb;color:#fff;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya.button--inverted::after,.eael-creative-button--tamaya.button--inverted::before{background:#fff;color:#37474f}.eael-creative-button--tamaya::before{top:0;padding-top:1em}.eael-creative-button--tamaya::after{bottom:0;line-height:0}.eael-creative-button--tamaya span{display:block;-webkit-transform:scale3d(.2,.2,1);transform:scale3d(.2,.2,1);opacity:0;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya:hover::before{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.eael-creative-button--tamaya:hover::after{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.eael-creative-button--tamaya:hover span{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);content:'Bangladesh'}.eael-creative-button--rayen{overflow:hidden;padding:0!important}.eael-creative-button--rayen::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--rayen::before,.eael-creative-button--rayen>.creative-button-inner{padding:1em 2em;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.75,0,.125,1);transition-timing-function:cubic-bezier(.75,0,.125,1)}.eael-creative-button--rayen:hover::before{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--rayen:hover>.creative-button-inner{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.creative-button-inner{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button-icon-left{margin-right:5px}.eael-creative-button-icon-right{margin-left:5px}
assets/front-end/css/eael.css CHANGED
@@ -316,118 +316,6 @@
316
  }
317
  }
318
 
319
- .ea-advanced-data-table-wrap * {
320
- background-color: transparent;
321
- border: none;
322
- box-shadow: none;
323
- margin: 0;
324
- padding: 0;
325
- }
326
- .ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner {
327
- width: 100%;
328
- overflow-y: auto;
329
- }
330
- .ea-advanced-data-table-wrap .ea-advanced-data-table {
331
- width: 100%;
332
- border-collapse: collapse;
333
- }
334
- .ea-advanced-data-table-wrap .ea-advanced-data-table th,
335
- .ea-advanced-data-table-wrap .ea-advanced-data-table td {
336
- background-color: transparent !important;
337
- }
338
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th {
339
- position: relative;
340
- cursor: pointer;
341
- }
342
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:before {
343
- content: "";
344
- border-left: 4px solid transparent;
345
- border-right: 4px solid transparent;
346
- border-bottom: 5px solid #4d4d4d;
347
- position: absolute;
348
- top: 50%;
349
- right: 15px;
350
- margin-top: -6px;
351
- }
352
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:after {
353
- content: "";
354
- border-left: 4px solid transparent;
355
- border-right: 4px solid transparent;
356
- border-top: 5px solid #4d4d4d;
357
- position: absolute;
358
- top: 50%;
359
- right: 15px;
360
- margin-top: 1px;
361
- }
362
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:before {
363
- display: none;
364
- }
365
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:after {
366
- margin-top: -3px;
367
- }
368
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:before {
369
- margin-top: -3px;
370
- }
371
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:after {
372
- display: none;
373
- }
374
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th {
375
- pointer-events: none;
376
- }
377
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:before, .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:after {
378
- display: none;
379
- }
380
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-paginated tbody tr {
381
- display: none;
382
- }
383
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th {
384
- position: relative;
385
- }
386
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:before {
387
- border: none;
388
- }
389
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:after {
390
- content: "";
391
- display: block;
392
- height: 100%;
393
- position: absolute;
394
- right: 0;
395
- top: 0;
396
- width: 10px;
397
- border: none;
398
- cursor: col-resize;
399
- }
400
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th,
401
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td {
402
- padding: 0;
403
- }
404
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th textarea,
405
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td textarea {
406
- width: 100%;
407
- min-width: 100px;
408
- height: 100%;
409
- background-color: transparent;
410
- border: none;
411
- box-shadow: none;
412
- resize: none;
413
- margin: 0;
414
- padding: 0;
415
- outline: none;
416
- vertical-align: middle;
417
- }
418
- .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable.ea-advanced-data-table-paginated tbody tr {
419
- display: table-row;
420
- }
421
- .ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-center {
422
- text-align: center;
423
- }
424
- .ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-right {
425
- text-align: right;
426
- }
427
- .ea-advanced-data-table-wrap .ea-advanced-data-table-pagination a {
428
- display: inline-block;
429
- }
430
-
431
  /* ----------------------------------------- */
432
  /* 22. Caldera Contact Form Styler
433
  /* ----------------------------------------- */
@@ -664,7 +552,7 @@
664
 
665
  .eael-call-to-action .cta-button.effect-1:hover::after {
666
  -webkit-transform: translateY(0);
667
- transform: translateY(0);
668
  }
669
 
670
  /*--- Cta Button effect 2 ---*/
@@ -681,12 +569,12 @@
681
  transition: .5s;
682
  color: #fff;
683
  -webkit-transform: translateX(-100%);
684
- transform: translateX(-100%);
685
  }
686
 
687
  .eael-call-to-action .cta-button.effect-2:hover::after {
688
  -webkit-transform: translateX(0);
689
- transform: translateX(0);
690
  }
691
 
692
  /*--- Media Queries ---*/
@@ -1079,7 +967,7 @@
1079
  -webkit-transition: border-color 0.3s, background-color 0.3s;
1080
  transition: border-color 0.3s, background-color 0.3s;
1081
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1082
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1083
  }
1084
 
1085
  .eael-creative-button--winona::after {
@@ -1091,7 +979,7 @@
1091
  left: 0;
1092
  opacity: 0;
1093
  -webkit-transform: translate3d(0, 25%, 0);
1094
- transform: translate3d(0, 25%, 0);
1095
  display: -webkit-box;
1096
  display: flex;
1097
  -webkit-box-align: center;
@@ -1103,25 +991,24 @@
1103
  .eael-creative-button--winona::after,
1104
  .eael-creative-button--winona > .creative-button-inner {
1105
  padding: 1em 2em;
1106
- -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
1107
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
1108
  transition: opacity 0.3s, -webkit-transform 0.3s;
1109
  transition: transform 0.3s, opacity 0.3s;
1110
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
1111
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1112
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1113
  }
1114
 
1115
  .eael-creative-button--winona:hover::after {
1116
  opacity: 1;
1117
  -webkit-transform: translate3d(0, 0, 0);
1118
- transform: translate3d(0, 0, 0);
1119
  }
1120
 
1121
  .eael-creative-button--winona:hover > .creative-button-inner {
1122
  opacity: 0;
1123
- -webkit-transform: translate3d(0, -25%, 0);
1124
- transform: translate3d(0, 0%, 0);
1125
  }
1126
 
1127
  /*--- Ujarak ---*/
@@ -1140,26 +1027,25 @@
1140
  z-index: -1;
1141
  opacity: 0;
1142
  -webkit-transform: scale3d(0.7, 1, 1);
1143
- transform: scale3d(0.7, 1, 1);
1144
- -webkit-transition: -webkit-transform 0.4s, opacity 0.4s;
1145
  -webkit-transition: opacity 0.4s, -webkit-transform 0.4s;
1146
  transition: opacity 0.4s, -webkit-transform 0.4s;
1147
  transition: transform 0.4s, opacity 0.4s;
1148
  transition: transform 0.4s, opacity 0.4s, -webkit-transform 0.4s;
1149
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1150
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1151
  }
1152
 
1153
  .eael-creative-button--ujarak,
1154
  .eael-creative-button--ujarak::before {
1155
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1156
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1157
  }
1158
 
1159
  .eael-creative-button--ujarak:hover::before {
1160
  opacity: 1;
1161
  -webkit-transform: translate3d(0, 0, 0);
1162
- transform: translate3d(0, 0, 0);
1163
  }
1164
 
1165
  /*--- Wayra ---*/
@@ -1168,7 +1054,7 @@
1168
  -webkit-transition: border-color 0.3s, color 0.3s;
1169
  transition: border-color 0.3s, color 0.3s;
1170
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1171
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1172
  }
1173
 
1174
  .eael-creative-button--wayra::before {
@@ -1180,10 +1066,9 @@
1180
  height: 100%;
1181
  z-index: -1;
1182
  -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
1183
- transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
1184
  -webkit-transform-origin: 0% 100%;
1185
- transform-origin: 0% 100%;
1186
- -webkit-transition: -webkit-transform 0.3s, opacity 0.3s, background-color 0.3s;
1187
  -webkit-transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
1188
  transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
1189
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
@@ -1193,9 +1078,9 @@
1193
  .eael-creative-button--wayra:hover::before {
1194
  opacity: 1;
1195
  -webkit-transform: rotate3d(0, 0, 1, 0deg);
1196
- transform: rotate3d(0, 0, 1, 0deg);
1197
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1198
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1199
  }
1200
 
1201
  /* Tamaya */
@@ -1239,7 +1124,7 @@
1239
  transition: transform 0.3s;
1240
  transition: transform 0.3s, -webkit-transform 0.3s;
1241
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1242
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1243
  }
1244
 
1245
  .eael-creative-button--tamaya.button--inverted::before,
@@ -1261,31 +1146,30 @@
1261
  .eael-creative-button--tamaya span {
1262
  display: block;
1263
  -webkit-transform: scale3d(0.2, 0.2, 1);
1264
- transform: scale3d(0.2, 0.2, 1);
1265
  opacity: 0;
1266
- -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
1267
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
1268
  transition: opacity 0.3s, -webkit-transform 0.3s;
1269
  transition: transform 0.3s, opacity 0.3s;
1270
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
1271
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1272
- transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1273
  }
1274
 
1275
  .eael-creative-button--tamaya:hover::before {
1276
  -webkit-transform: translate3d(0, -100%, 0);
1277
- transform: translate3d(0, -100%, 0);
1278
  }
1279
 
1280
  .eael-creative-button--tamaya:hover::after {
1281
  -webkit-transform: translate3d(0, 100%, 0);
1282
- transform: translate3d(0, 100%, 0);
1283
  }
1284
 
1285
  .eael-creative-button--tamaya:hover span {
1286
  opacity: 1;
1287
  -webkit-transform: scale3d(1, 1, 1);
1288
- transform: scale3d(1, 1, 1);
1289
  content: 'Bangladesh';
1290
  }
1291
 
@@ -1303,7 +1187,7 @@
1303
  width: 100%;
1304
  height: 100%;
1305
  -webkit-transform: translate3d(-100%, 0, 0);
1306
- transform: translate3d(-100%, 0, 0);
1307
  display: -webkit-box;
1308
  display: flex;
1309
  -webkit-box-align: center;
@@ -1320,17 +1204,17 @@
1320
  transition: transform 0.3s;
1321
  transition: transform 0.3s, -webkit-transform 0.3s;
1322
  -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
1323
- transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
1324
  }
1325
 
1326
  .eael-creative-button--rayen:hover::before {
1327
  -webkit-transform: translate3d(0, 0, 0);
1328
- transform: translate3d(0, 0, 0);
1329
  }
1330
 
1331
  .eael-creative-button--rayen:hover > .creative-button-inner {
1332
  -webkit-transform: translate3d(0, 100%, 0);
1333
- transform: translate3d(0, 100%, 0);
1334
  }
1335
 
1336
  .creative-button-inner {
@@ -1763,41 +1647,116 @@ table.eael-data-table .sorting_asc.sorting-none:after {
1763
  text-align: right;
1764
  }
1765
 
1766
- .elementor-panel .pro-feature, .elementor-panel .pro-feature a {
1767
- color: #a4afb7;
1768
- text-transform: uppercase;
1769
- letter-spacing: 1px;
1770
- line-height: 1.8;
1771
- font-style: normal;
1772
  }
1773
-
1774
- .elementor-panel .pro-feature a {
1775
- text-decoration: underline;
1776
- color: #f54 !important;
1777
  }
1778
-
1779
- .elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-title.elementor-panel-heading-title,
1780
- .elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-toggle,
1781
- .elementor-control-data_table_header_colspan_pro_alert .elementor-control-title,
1782
- .elementor-control-data_table_header_img_pro_alert .elementor-control-title,
1783
- .elementor-control-data_table_content_rowspan_pro_alert .elementor-control-title,
1784
- .elementor-control-data_table_content_colspan_pro_alert .elementor-control-title,
1785
- .elementor-control-data_table_content_template_pro_alert .elementor-control-title {
1786
- color: #f54;
1787
  }
1788
-
1789
- .elementor-panel .elementor-control-eael_control_get_pro .elementor-control-field {
1790
- display: none !important;
1791
  }
1792
-
1793
- .elementor-control-eael_pricing_table_style_pro_alert .elementor-control-title,
1794
- .elementor-control-eael_section_countdown_style_pro_alert .elementor-control-title,
1795
- .elementor-control-eael_fancy_text_style_pro_alert .elementor-control-title,
1796
- .elementor-control-eael_section_data_table_enabled_pro_alert .elementor-control-title,
1797
- .elementor-control-eael_img_accordion_type_pro_alert .elementor-control-title,
1798
- .elementor-control-eael_ticker_type_pro_alert .elementor-control-title,
1799
- .elementor-control-eael_team_members_preset_pro_alert .elementor-control-title {
1800
- color: #f54;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1801
  }
1802
 
1803
  .eael-facebook-feed {
@@ -2213,7 +2172,7 @@ table.eael-data-table .sorting_asc.sorting-none:after {
2213
  position: absolute;
2214
  left: 50%;
2215
  -webkit-transform: translateX(-50%);
2216
- transform: translateX(-50%);
2217
  }
2218
  .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img {
2219
  font-size: 8px;
@@ -2252,11 +2211,11 @@ table.eael-data-table .sorting_asc.sorting-none:after {
2252
  }
2253
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i {
2254
  -webkit-transform: rotate(-45deg);
2255
- transform: rotate(-45deg);
2256
  }
2257
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img {
2258
  -webkit-transform: rotate(-45deg);
2259
- transform: rotate(-45deg);
2260
  }
2261
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title {
2262
  margin-top: 15px;
@@ -2337,13 +2296,13 @@ table.eael-data-table .sorting_asc.sorting-none:after {
2337
  text-align: left;
2338
  -webkit-box-orient: horizontal;
2339
  -webkit-box-direction: normal;
2340
- flex-direction: row;
2341
  }
2342
  .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item {
2343
  text-align: right;
2344
  -webkit-box-orient: horizontal;
2345
  -webkit-box-direction: reverse;
2346
- flex-direction: row-reverse;
2347
  }
2348
  }
2349
  @media (max-width: 1024px) {
@@ -2355,13 +2314,13 @@ table.eael-data-table .sorting_asc.sorting-none:after {
2355
  text-align: left;
2356
  -webkit-box-orient: horizontal;
2357
  -webkit-box-direction: normal;
2358
- flex-direction: row;
2359
  }
2360
  .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item {
2361
  text-align: right;
2362
  -webkit-box-orient: horizontal;
2363
  -webkit-box-direction: reverse;
2364
- flex-direction: row-reverse;
2365
  }
2366
  }
2367
  @media (min-width: 768px) and (max-width: 1024px) {
@@ -2483,13 +2442,13 @@ table.eael-data-table .sorting_asc.sorting-none:after {
2483
  text-align: left;
2484
  -webkit-box-orient: horizontal;
2485
  -webkit-box-direction: normal;
2486
- flex-direction: row;
2487
  }
2488
  .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item {
2489
  text-align: right;
2490
  -webkit-box-orient: horizontal;
2491
  -webkit-box-direction: reverse;
2492
- flex-direction: row-reverse;
2493
  }
2494
  .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box {
2495
  margin-right: 0 !important;
@@ -4197,9 +4156,215 @@ button.mfp-arrow:not(.toggle) {
4197
  text-align: right;
4198
  }
4199
 
4200
- /*------------------------------*/
4201
- /* 34. Image accordion
4202
- /*------------------------------*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4203
  .eael-img-accordion {
4204
  display: -webkit-box;
4205
  display: flex;
@@ -4977,17 +5142,17 @@ button.mfp-close:hover {
4977
  @media all and (max-width: 900px) {
4978
  .mfp-arrow {
4979
  -webkit-transform: scale(0.75);
4980
- transform: scale(0.75);
4981
  }
4982
 
4983
  .mfp-arrow-left {
4984
  -webkit-transform-origin: 0;
4985
- transform-origin: 0;
4986
  }
4987
 
4988
  .mfp-arrow-right {
4989
  -webkit-transform-origin: 100%;
4990
- transform-origin: 100%;
4991
  }
4992
 
4993
  .mfp-container {
@@ -4997,1484 +5162,1396 @@ button.mfp-close:hover {
4997
  }
4998
 
4999
  /*----------------------*/
5000
- /* 14. Gravity Form
5001
  /*----------------------*/
5002
- .eael-gravity-form-align-default,
5003
- .eael-gravity-form-align-left,
5004
- .eael-gravity-form-btn-align-left {
5005
- text-align: left;
5006
  }
5007
 
5008
- .eael-gravity-form-align-right,
5009
- .eael-gravity-form-btn-align-right {
5010
- text-align: right;
 
 
 
5011
  }
5012
 
5013
- .eael-gravity-form-align-center,
5014
- .eael-gravity-form-btn-align-center {
5015
- text-align: center;
 
5016
  }
5017
 
5018
- .eael-gravity-form .gform_wrapper .gform_footer {
5019
- margin: 0;
5020
- padding: 0;
 
5021
  }
5022
 
5023
- .gform_wrapper form li,
5024
- .gform_wrapper li {
5025
- list-style: none;
 
 
 
 
5026
  }
5027
 
5028
- .eael-gravity-form .gform_wrapper ul.gform_fields li.gfield {
5029
- padding: 0;
5030
  }
5031
 
5032
- .eael-gravity-form .gform_wrapper textarea {
5033
- padding: 0;
5034
  }
5035
 
5036
- .eael-gravity-form .gform_wrapper .gform_footer input.button,
5037
- .eael-gravity-form .gform_wrapper .gform_footer input[type=submit],
5038
- .eael-gravity-form .gform_wrapper .gform_page_footer input.button,
5039
- .eael-gravity-form .gform_wrapper .gform_page_footer input[type=submit] {
5040
- margin: 0;
5041
  }
5042
 
5043
- .eael-gravity-form.title-description-hide .gform_heading {
5044
  display: none;
5045
  }
5046
 
5047
- .eael-gravity-form.labels-hide .gform_wrapper .top_label .gfield_label,
5048
- .eael-gravity-form.labels-hide .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label {
5049
  display: none;
5050
  }
5051
 
5052
- .eael-gravity-form-button-full-width .gform_wrapper .gform_footer input[type="submit"] {
5053
- width: 100%;
5054
  }
5055
 
5056
- /*----------------------------*/
5057
- /* 06. Post Timeline Styles
5058
- /*----------------------------*/
5059
- .eael-post-timeline {
5060
- margin-bottom: 0;
5061
- min-height: 100%;
5062
- overflow: hidden;
5063
- position: relative;
5064
  }
5065
 
5066
- .eael-timeline-column {
5067
- width: 50%;
5068
- margin-left: 0;
5069
- float: left;
5070
- margin-top: 0 !important;
5071
  }
5072
 
5073
- .eael-timeline-post {
5074
- position: relative;
 
 
 
5075
  }
5076
 
5077
- .eael-timeline-post:after {
5078
- background-color: rgba(83, 85, 86, 0.2);
5079
- content: "";
5080
- width: 2px;
5081
- height: 245px;
5082
- position: absolute;
5083
- right: 0;
5084
- top: 70px;
5085
  }
5086
 
5087
- .eael-timeline-post:nth-child(2n):after {
5088
- display: none;
 
5089
  }
5090
 
5091
- .eael-timeline-bullet {
5092
- background-color: #9fa9af;
5093
- border: 5px solid #fff;
5094
- border-radius: 50%;
5095
- box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1);
5096
- content: "";
5097
- height: 20px;
5098
- position: absolute;
5099
- right: -9px;
5100
- top: 60px;
5101
- width: 20px;
5102
- z-index: 3;
5103
- cursor: pointer;
5104
  }
5105
 
5106
- .eael-timeline-post:nth-child(2n) .eael-timeline-bullet {
5107
- background-color: #9fa9af;
5108
- border: 5px solid #fff;
5109
- border-radius: 50%;
5110
- bottom: 36px;
5111
- content: "";
5112
- height: 20px;
5113
- left: -11px;
5114
- position: absolute;
5115
- top: 300px;
5116
- width: 20px;
5117
- z-index: 3;
5118
  }
5119
 
5120
- .eael-timeline-post-inner {
5121
- background: linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 transparent;
5122
- border: 8px solid #e5eaed;
5123
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15);
5124
- float: right;
5125
- margin: 30px 40px 30px auto;
5126
  position: relative;
5127
- height: 320px;
5128
- width: calc(100% - 40px);
5129
- }
5130
-
5131
- .eael-timeline-post:nth-child(even) .eael-timeline-post-inner {
5132
- float: left;
5133
- margin-left: 40px;
5134
  }
5135
 
5136
- .eael-timeline-post-inner:after {
5137
- border-color: transparent transparent transparent #e5eaed;
5138
- border-style: solid;
5139
- border-width: 15px;
5140
- content: "";
5141
- height: 0;
5142
  position: absolute;
5143
- right: -36px;
5144
- top: 17px;
5145
- width: 0;
 
 
 
 
 
 
5146
  }
5147
 
5148
- .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner:after {
5149
- border-color: transparent #e5eaed transparent transparent;
5150
- border-style: solid;
5151
- border-width: 15px;
5152
- content: "";
5153
- height: 0;
5154
- left: -36px;
5155
  position: absolute;
5156
- top: 257px;
5157
- width: 0;
 
 
 
5158
  }
5159
 
5160
- .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner::after {
5161
- border-left-color: transparent !important;
 
5162
  }
5163
 
5164
- .eael-timeline-post p {
5165
- margin: 1.6rem 0 0 0;
5166
- font-size: 0.9em;
5167
- line-height: 1.6em;
5168
  }
5169
 
5170
- .eael-timeline-post-image {
5171
- background-size: cover;
5172
- background-position: center center;
5173
- background-repeat: no-repeat;
5174
- display: block;
5175
  height: 100%;
5176
- overflow: hidden;
5177
- position: relative;
5178
- opacity: .6;
5179
- -webkit-transition: all .3s;
5180
- transition: all .3s;
5181
  }
5182
 
5183
- .eael-timeline-post-title {
5184
- bottom: 40px;
5185
- position: absolute;
5186
- width: 100%;
5187
  }
5188
 
5189
- .eael-timeline-post-title h2 {
5190
- color: #fff;
5191
- font-size: 20px;
5192
- font-weight: bold;
5193
- letter-spacing: 1px;
5194
- line-height: 24px;
5195
- padding: 0 25px;
5196
  text-align: left;
5197
- text-transform: uppercase;
5198
  }
5199
 
5200
- .eael-timeline-post-excerpt {
5201
- opacity: 0;
5202
- position: absolute;
5203
- top: 0;
5204
- left: 0;
5205
- -webkit-transition: all .3s;
5206
- transition: all .3s;
5207
  }
5208
 
5209
- .eael-timeline-post-excerpt p {
5210
- color: #fff;
5211
- font-size: 14px;
5212
- padding: 25px;
5213
  }
5214
 
5215
- .eael-timeline-post-inner:hover .eael-timeline-post-excerpt {
5216
- opacity: 1;
5217
- top: 10px;
 
5218
  }
5219
 
5220
- .eael-timeline-post-inner:hover .eael-timeline-post-image {
5221
- opacity: .3;
 
5222
  }
5223
 
5224
- .eael-timeline-post time {
5225
- opacity: 0;
5226
- background-color: rgba(0, 0, 0, 0.7);
5227
- color: #fff;
5228
- font-size: 10px;
5229
- border-radius: 20px;
5230
- position: absolute;
5231
- right: -97px;
5232
- width: 100px;
5233
- height: 30px;
5234
- line-height: 30px;
5235
- text-align: center;
5236
- top: 50px;
5237
- z-index: 99;
5238
- -webkit-transition: all .5s;
5239
- transition: all .5s;
5240
  }
5241
 
5242
- .eael-timeline-post:nth-child(2n) time {
5243
- background-color: rgba(0, 0, 0, 0.7);
5244
- border-radius: 20px;
5245
- color: #fff;
5246
- font-size: 10px;
5247
- height: 30px;
5248
- left: -99px;
5249
- line-height: 30px;
5250
- position: absolute;
5251
- text-align: center;
5252
- top: 290px;
5253
- width: 100px;
5254
- z-index: 99;
5255
  }
5256
 
5257
- .eael-timeline-post time:before {
5258
- border-bottom: 5px solid rgba(0, 0, 0, 0.7);
5259
- border-left: 5px solid transparent;
5260
- border-right: 5px solid transparent;
5261
- content: "";
5262
- height: 0;
5263
- left: 45px;
5264
- position: absolute;
5265
- top: -5px;
5266
- width: 0;
5267
- }
5268
-
5269
- .eael-timeline-post:hover time {
5270
- opacity: 1;
5271
- }
5272
-
5273
- .eael-timeline-post::after {
5274
- height: 100%;
5275
  }
5276
 
5277
- .eael-post-timeline .eael-timeline-post:nth-last-child(2)::after {
5278
- height: 245px;
 
 
 
 
 
5279
  }
5280
 
5281
- .eael-post-timeline .eael-timeline-post:last-child::after {
5282
- display: none;
 
5283
  }
5284
 
5285
- .eael-load-more-button-wrap {
5286
  display: -webkit-box;
5287
  display: flex;
 
 
 
 
5288
  }
5289
 
5290
- /*--- Responsive Style for Post Timeline ---*/
5291
- @media only screen and (max-width: 1366px) {
5292
- .eael-timeline-post-title h2 {
5293
- font-size: 0.8em;
5294
- }
5295
-
5296
- .eael-timeline-post-excerpt p {
5297
- font-size: 13px;
5298
- }
5299
- }
5300
- @media only screen and (max-width: 1169px) {
5301
- .eael-timeline-post-inner {
5302
- height: 320px;
5303
- }
5304
  }
5305
- @media only screen and (max-width: 992px) {
5306
- .eael-post-timeline {
5307
- margin-left: 0;
5308
- }
5309
-
5310
- .eael-timeline-bullet,
5311
- .eael-timeline-post:after,
5312
- .eael-timeline-post:before,
5313
- .eael-timeline-post-inner:after {
5314
- display: none;
5315
- }
5316
-
5317
- .eael-timeline-post {
5318
- display: inline-block;
5319
- float: left !important;
5320
- width: 50% !important;
5321
- margin: 15px auto;
5322
- }
5323
-
5324
- .eael-timeline-post-inner {
5325
- height: 320px;
5326
- padding-bottom: 30px;
5327
- }
5328
-
5329
- .eael-timeline-post-title {
5330
- bottom: 50px;
5331
- }
5332
-
5333
- .eael-timeline-post-title h2 {
5334
- font-size: 0.8em;
5335
- line-height: 1.2em;
5336
- }
5337
-
5338
- .eael-timeline-post .eael-timeline-post-inner {
5339
- margin: 0 10px auto 0;
5340
- width: 90%;
5341
- }
5342
-
5343
- .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
5344
- margin: 0 auto 0 10px;
5345
- width: 90%;
5346
- }
5347
-
5348
- .eael-timeline-post-excerpt {
5349
- opacity: 0 !important;
5350
- }
5351
-
5352
- .eael-timeline-post-image {
5353
- opacity: .3;
5354
- }
5355
-
5356
- .eael-timeline-post time,
5357
- .eael-timeline-post:nth-child(2n) time {
5358
- background-color: #fff;
5359
- border-radius: 0;
5360
- color: #444;
5361
- font-size: 12px;
5362
- text-transform: uppercase;
5363
- left: 0;
5364
- opacity: 1;
5365
- padding-top: 3px;
5366
- top: 275px;
5367
- width: 100%;
5368
- }
5369
 
5370
- time:before {
5371
- display: none;
5372
- }
 
 
 
5373
  }
5374
- @media only screen and (max-width: 767px) {
5375
- .eael-timeline-post {
5376
- display: block;
5377
- float: none !important;
5378
- margin: 20px auto;
5379
- width: 100% !important;
5380
- }
5381
 
5382
- .eael-timeline-post .eael-timeline-post-inner,
5383
- .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
5384
- display: block;
5385
- float: none;
5386
- margin: 0 auto;
5387
- }
5388
  }
5389
- @media only screen and (max-width: 479px) {
5390
- .eael-timeline-post .eael-timeline-post-inner,
5391
- .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
5392
- height: 250px;
5393
- margin: 0 auto;
5394
- width: 95%;
5395
- }
5396
 
5397
- .eael-timeline-post time,
5398
- .eael-timeline-post:nth-child(2n) time {
5399
- top: 205px;
5400
- }
5401
  }
5402
 
5403
- /* -------------------------------- */
5404
- /* 21. Pricing Table
5405
- /* -------------------------------- */
5406
- .eael-pricing {
5407
- -webkit-display: flex;
5408
- display: -webkit-box;
5409
- display: flex;
5410
- -webkit-box-pack: center;
5411
- justify-content: center;
5412
- -webkit-box-align: center;
5413
- align-items: center;
5414
  }
5415
 
5416
- .eael-pricing .eael-pricing-item {
5417
- width: 100%;
5418
- height: auto;
5419
- margin: 0;
 
5420
  }
5421
 
5422
- .eael-pricing .eael-pricing-button {
5423
- display: inline-block;
5424
- padding: 12px 25px;
5425
- background: #00C853;
5426
- font-size: 14px;
5427
- font-weight: 600;
5428
- color: #fff;
5429
- text-transform: uppercase;
5430
- text-decoration: none;
5431
- -webkit-transition: .3s;
5432
- transition: .3s;
5433
- border-radius: 4px;
5434
  }
5435
 
5436
- .eael-pricing .eael-pricing-button:hover {
5437
- background: #03b048;
 
 
 
5438
  }
5439
 
5440
- .eael-pricing .eael-pricing-item ul {
5441
- padding: 0px;
5442
- margin: 0px;
5443
- list-style: none;
5444
  }
5445
 
5446
- .eael-pricing .eael-pricing-item ul li.disable-item {
5447
- text-decoration: line-through;
5448
- opacity: 0.5;
5449
  }
5450
 
5451
- .eael-pricing .eael-pricing-item ul li span.li-icon {
5452
- color: #00C853;
5453
- margin-right: 6px;
5454
  }
5455
 
5456
- .eael-pricing .eael-pricing-item ul li.disable-item span.li-icon {
5457
- color: #EF5350;
5458
  }
5459
 
5460
- /*--- Pricing Table: Style 1 ---*/
5461
- .eael-pricing.style-1 {
5462
- position: relative;
5463
- z-index: 0;
5464
- text-align: center;
5465
  }
5466
 
5467
- .eael-pricing.style-1 .eael-pricing-item {
5468
- border: 1px solid rgba(9, 9, 9, 0.1);
5469
- padding: 30px;
5470
- border-radius: 5px;
5471
- -webkit-transition: .5s;
5472
- transition: .5s;
5473
  }
5474
 
5475
- .eael-pricing.style-1 .eael-pricing-item:hover {
5476
- box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
 
5477
  }
5478
 
5479
- .eael-pricing.style-1 .eael-pricing-item.featured {
5480
- position: relative;
5481
- }
5482
-
5483
- .eael-pricing.style-1 .eael-pricing-item.ribbon-1:before {
5484
- content: "";
5485
- position: absolute;
5486
- width: 100%;
5487
- height: 3px;
5488
- background: #00C853;
5489
- top: 0px;
5490
- left: 0px;
5491
- right: 0px;
5492
- z-index: 1;
5493
- border-radius: 5px 5px 0px 0px;
5494
  }
5495
 
5496
- .eael-pricing.style-1 .eael-pricing-item.ribbon-2:before {
5497
- content: "Featured";
5498
- position: absolute;
5499
- width: auto;
5500
- background: #00C853;
5501
- color: #fff;
5502
- top: 35px;
5503
- right: -15px;
5504
- z-index: 10;
5505
- font-size: 10px;
5506
- font-weight: 600;
5507
- text-transform: uppercase;
5508
- padding: 5px 10px;
5509
  }
5510
 
5511
- .eael-pricing.style-1 .eael-pricing-item.ribbon-2:after {
5512
- content: "";
5513
- position: absolute;
5514
- top: 20px;
5515
- right: -15px;
5516
- width: 0;
5517
- height: 0;
5518
- border-bottom: 15px solid #00C853;
5519
- border-right: 15px solid transparent;
5520
- z-index: 9;
5521
- opacity: 0.9;
5522
  }
5523
 
5524
- .eael-pricing.style-1 .eael-pricing-item.ribbon-3:before {
5525
- content: "Featured";
5526
- position: absolute;
5527
- width: auto;
5528
- background: rgba(0, 0, 0, 0.6);
5529
- color: #fff;
5530
- top: 15px;
5531
- right: 15px;
5532
- z-index: 10;
5533
- font-size: 11px;
5534
- font-weight: 600;
5535
- text-transform: uppercase;
5536
- padding: 5px 15px;
5537
  }
5538
 
5539
- .eael-pricing.style-1 .eael-pricing-item .header {
5540
- display: block;
5541
- position: relative;
5542
- z-index: 0;
5543
- padding-bottom: 15px;
5544
- margin-bottom: 15px;
 
5545
  }
5546
 
5547
- .eael-pricing.style-1 .eael-pricing-item .header:after {
5548
- content: "";
5549
- position: absolute;
5550
- width: 140px;
5551
- height: 1px;
5552
- bottom: 0px;
5553
- left: 0px;
5554
- right: 0px;
5555
- margin: 0 auto;
5556
- z-index: 1;
5557
- background: rgba(9, 9, 9, 0.1);
5558
  }
5559
 
5560
- .eael-pricing.style-1 .eael-pricing-item .header .title {
5561
- font-weight: 700;
5562
- line-height: 30px;
5563
- margin: 0px;
5564
  }
5565
 
5566
- .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag {
5567
- position: relative;
5568
- z-index: 0;
5569
- padding: 15px 0px;
5570
- margin-bottom: 15px;
5571
  }
5572
 
5573
- .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after {
5574
- content: "";
5575
- position: absolute;
5576
- width: 140px;
5577
- height: 1px;
5578
- bottom: 0px;
5579
- left: 0px;
5580
- right: 0px;
5581
- margin: 0 auto;
5582
- z-index: 1;
5583
- background: rgba(9, 9, 9, 0.04);
5584
  }
5585
 
5586
- .eael-pricing.style-1 .eael-pricing-item .price-tag {
5587
- position: relative;
5588
- display: inline-block;
5589
- font-size: 28px;
5590
- font-weight: 500;
5591
- line-height: 0px;
5592
- margin: 0px auto;
5593
  }
5594
 
5595
- .eael-pricing.style-1 .eael-pricing-item .price-tag .price-currency {
5596
- font-size: 24px;
5597
- font-weight: 700;
5598
  }
5599
 
5600
- .eael-pricing.style-1 .eael-pricing-item .price-period {
5601
- color: #999;
 
5602
  }
5603
 
5604
- .eael-pricing.style-1 .eael-pricing-item .body ul {
5605
- display: block;
5606
- width: 100%;
5607
- margin-bottom: 15px;
5608
  }
5609
 
5610
- .eael-pricing.style-1 .eael-pricing-item .body ul li {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5611
  display: block;
5612
- width: 100%;
5613
- height: auto;
5614
- padding: 10px 0px;
5615
- font-size: 14px;
5616
- color: #6d6d6d;
5617
- border-bottom: 1px solid rgba(9, 9, 9, 0.04);
5618
  }
5619
 
5620
- .eael-pricing.style-1 .eael-pricing-item .body ul li:last-child {
5621
- border: none;
 
 
5622
  }
5623
 
5624
- .eael-pricing.style-1 .eael-pricing-item.featured-large {
5625
- padding: 60px 0px;
 
5626
  }
5627
 
5628
- /*--- Pricing Table : Style 2 ---*/
5629
- .eael-pricing.style-2 {
 
 
 
 
 
5630
  position: relative;
5631
- z-index: 0;
5632
- text-align: center;
5633
  }
5634
 
5635
- .eael-pricing.style-2 .eael-pricing-item {
5636
- padding: 30px 0px;
5637
- border-radius: 5px;
5638
- margin: 0px;
5639
- border: 1px solid rgba(9, 9, 9, 0.1);
5640
  }
5641
 
5642
- .eael-pricing.style-2 .eael-pricing-item.featured {
5643
- box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
5644
  }
5645
 
5646
- .eael-pricing.style-2 .eael-pricing-item.ribbon-1:before {
 
5647
  content: "";
 
 
5648
  position: absolute;
5649
- width: 100%;
5650
- height: 3px;
5651
- background: #00C853;
5652
- top: 0px;
5653
- left: 0px;
5654
- right: 0px;
5655
- z-index: 1;
5656
- border-radius: 5px 5px 0px 0px;
5657
  }
5658
 
5659
- .eael-pricing.style-2 .eael-pricing-item.ribbon-2:before {
5660
- content: "Featured";
5661
- position: absolute;
5662
- width: auto;
5663
- background: #00C853;
5664
- color: #fff;
5665
- top: 35px;
5666
- right: -15px;
5667
- z-index: 10;
5668
- font-size: 10px;
5669
- font-weight: 600;
5670
- text-transform: uppercase;
5671
- padding: 5px 10px;
5672
  }
5673
 
5674
- .eael-pricing.style-2 .eael-pricing-item.ribbon-2:after {
 
 
 
 
5675
  content: "";
 
5676
  position: absolute;
5677
- top: 20px;
5678
- right: -15px;
5679
- width: 0;
5680
- height: 0;
5681
- border-bottom: 15px solid #00C853;
5682
- border-right: 15px solid transparent;
5683
- z-index: 9;
5684
- opacity: 0.9;
5685
  }
5686
 
5687
- .eael-pricing.style-2 .eael-pricing-item.ribbon-3:before {
5688
- content: "Featured";
 
 
 
 
 
 
5689
  position: absolute;
5690
- width: auto;
5691
- background: rgba(0, 0, 0, 0.6);
5692
- color: #fff;
5693
- top: 15px;
5694
- right: 15px;
5695
- z-index: 10;
5696
- font-size: 11px;
5697
- font-weight: 600;
5698
- text-transform: uppercase;
5699
- padding: 5px 15px;
5700
  }
5701
 
5702
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon {
5703
- display: inline-block;
 
 
 
 
5704
  position: relative;
5705
- width: 80px;
5706
- height: 80px;
5707
- background: #00c853;
5708
- border-radius: 50%;
5709
- margin-bottom: 30px;
5710
- -webkit-transition: .5s;
5711
- transition: .5s;
5712
- overflow: hidden;
5713
  }
5714
 
5715
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon,
5716
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon {
5717
- display: -webkit-box;
5718
- display: flex;
5719
- -webkit-box-align: center;
5720
- align-items: center;
5721
- -webkit-box-pack: center;
5722
- justify-content: center;
5723
  }
5724
 
5725
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon i {
5726
- font-size: 30px;
5727
- color: #fff;
5728
- -webkit-transition: .5s;
5729
- transition: .5s;
 
 
 
 
 
5730
  }
5731
 
5732
- .eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon {
5733
- background: #43A047;
 
 
 
 
 
 
 
 
5734
  }
5735
 
5736
- .eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon i {
5737
- color: #fff;
5738
  }
5739
 
5740
- .eael-pricing.style-2 .eael-pricing-item .header {
5741
- background: #C8E6C9;
5742
- padding: 25px 30px;
5743
- margin-bottom: 15px;
 
 
 
 
 
 
 
 
 
5744
  position: relative;
5745
- z-index: 0;
 
 
5746
  }
5747
 
5748
- .eael-pricing.style-2 .eael-pricing-item.featured .header:after {
5749
- content: "";
5750
  position: absolute;
5751
  width: 100%;
5752
- height: 100%;
5753
- top: 0px;
5754
- left: 0px;
5755
- right: 0px;
5756
- bottom: 0px;
5757
- z-index: -1;
5758
- background: rgba(255, 255, 255, 0.4);
5759
  }
5760
 
5761
- .eael-pricing.style-2 .eael-pricing-item .header .title {
5762
- font-size: 28px;
5763
- font-weight: 700;
5764
- line-height: 40px;
5765
- margin: 0px;
 
 
 
 
5766
  }
5767
 
5768
- .eael-pricing.style-2 .eael-pricing-item .header .subititle {
 
 
 
 
 
 
 
 
 
 
5769
  font-size: 14px;
5770
- font-weight: 600;
5771
- color: #6d6d6d;
5772
  }
5773
 
5774
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag {
5775
- position: relative;
5776
- z-index: 0;
5777
- padding: 15px 0px;
5778
- margin-bottom: 15px;
5779
  }
5780
 
5781
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after {
5782
- content: "";
5783
- position: absolute;
5784
- width: 140px;
5785
- height: 1px;
5786
- bottom: 0px;
5787
- left: 0px;
5788
- right: 0px;
5789
- margin: 0 auto;
5790
- z-index: 1;
5791
- background: rgba(9, 9, 9, 0.04);
5792
  }
5793
 
5794
- .eael-pricing.style-2 .eael-pricing-item .price-tag {
5795
- position: relative;
5796
- display: inline-block;
5797
- font-size: 28px;
5798
- font-weight: 500;
5799
- line-height: 0px;
5800
- margin: 0px auto;
 
 
 
 
 
 
 
 
 
5801
  }
5802
 
5803
- .eael-pricing.style-2 .eael-pricing-item .price-tag .price-currency {
5804
- font-size: 24px;
5805
- font-weight: 700;
5806
- color: #00C853;
 
 
 
 
 
 
 
 
 
5807
  }
5808
 
5809
- .eael-pricing.style-2 .eael-pricing-item .price-period {
5810
- color: #999;
 
 
 
 
 
 
 
 
5811
  }
5812
 
5813
- .eael-pricing.style-2 .eael-pricing-item .body ul {
5814
- display: block;
5815
- width: 100%;
5816
- margin-bottom: 15px;
5817
  }
5818
 
5819
- .eael-pricing.style-2 .eael-pricing-item .body ul li {
5820
- display: block;
5821
- width: 100%;
5822
- height: auto;
5823
- padding: 10px 15px;
5824
- font-size: 14px;
5825
- color: #6d6d6d;
5826
- border-bottom: 1px solid rgba(9, 9, 9, 0.04);
5827
  }
5828
 
5829
- .eael-pricing.style-2 .eael-pricing-item .body ul li:last-child {
5830
- border: none;
5831
  }
5832
 
5833
- /*--- Media Query ---*/
5834
- @media only screen and (min-width: 768px) and (max-width: 992px) {
5835
- .eael-pricing {
5836
- display: block;
 
 
 
 
 
 
 
 
 
5837
  }
5838
 
5839
- .eael-pricing .eael-pricing-item,
5840
- .eael-pricing.style-2 .eael-pricing-item,
5841
- .eael-pricing.style-4 .eael-pricing-item {
5842
- width: 100%;
5843
- margin: 0 auto 30px auto;
5844
  }
5845
  }
5846
- @media only screen and (max-width: 480px) {
5847
- .eael-pricing {
5848
- display: block;
 
 
 
 
 
5849
  }
5850
 
5851
- .eael-pricing .eael-pricing-item {
5852
- width: 100%;
 
 
 
5853
  }
5854
 
5855
- .eael-pricing .eael-pricing-item,
5856
- .eael-pricing.style-2 .eael-pricing-item,
5857
- .eael-pricing.style-4 .eael-pricing-item {
5858
- margin: 0 auto 30px auto;
 
5859
  }
5860
- }
5861
- /*--- Page Builder Related Style ---*/
5862
- .eael-pricing-content-align-center .eael-pricing {
5863
- text-align: center;
5864
- }
5865
 
5866
- .eael-pricing-content-align-left .eael-pricing {
5867
- text-align: left;
5868
- }
 
5869
 
5870
- .eael-pricing-content-align-right .eael-pricing {
5871
- text-align: right;
5872
- }
5873
 
5874
- .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag {
5875
- padding-left: 45px;
5876
- }
 
5877
 
5878
- .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag:before {
5879
- left: 30px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5880
  }
 
 
 
 
 
 
 
5881
 
5882
- .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag {
5883
- padding-right: 30px;
 
 
 
 
5884
  }
 
 
 
 
 
 
 
5885
 
5886
- .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .header,
5887
- .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .footer,
5888
- .eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .header,
5889
- .eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .footer {
5890
- padding-left: 30px;
5891
- padding-right: 30px;
5892
  }
5893
 
5894
- .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .header,
5895
- .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .footer,
5896
- .eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .header,
5897
- .eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .footer {
5898
- padding-right: 30px;
5899
- padding-left: 30px;
 
 
 
 
 
5900
  }
5901
 
5902
- .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .body ul li,
5903
- .eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .body ul li {
5904
- padding-left: 30px;
 
5905
  }
5906
 
5907
- .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .body ul li,
5908
- .eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .body ul li {
5909
- padding-right: 30px;
 
 
 
 
 
 
 
 
 
5910
  }
5911
 
5912
- .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after {
5913
- -webkit-transform: translateX(-80%);
5914
- transform: translateX(-80%);
5915
  }
5916
 
5917
- .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after {
5918
- -webkit-transform: translateX(80%);
5919
- transform: translateX(80%);
 
5920
  }
5921
 
5922
- .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,
5923
- .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after {
5924
- -webkit-transform: translateX(0%);
5925
- transform: translateX(0%);
5926
  }
5927
 
5928
- .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,
5929
- .eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .header:after,
5930
- .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,
5931
- .eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,
5932
- .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after,
5933
- .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after {
5934
- margin: 0;
5935
- width: 100%;
5936
  }
5937
 
5938
- /*--- Button Alignment ---*/
5939
- .eael-pricing-button-align-right .eael-pricing.style-1 .footer,
5940
- .eael-pricing-button-align-right .eael-pricing.style-2 .footer,
5941
- .eael-pricing-button-align-right .eael-pricing.style-3 .footer,
5942
- .eael-pricing-button-align-right .eael-pricing.style-4 .footer {
5943
- text-align: right;
5944
  }
5945
 
5946
- .eael-pricing-button-align-center .eael-pricing.style-1 .footer,
5947
- .eael-pricing-button-align-center .eael-pricing.style-2 .footer,
5948
- .eael-pricing-button-align-center .eael-pricing.style-3 .footer,
5949
- .eael-pricing-button-align-center .eael-pricing.style-4 .footer {
5950
  text-align: center;
5951
  }
5952
 
5953
- .eael-pricing-button-align-left .eael-pricing.style-1 .footer,
5954
- .eael-pricing-button-align-left .eael-pricing.style-2 .footer,
5955
- .eael-pricing-button-align-left .eael-pricing.style-3 .footer,
5956
- .eael-pricing-button-align-left .eael-pricing.style-4 .footer {
5957
- text-align: left;
 
5958
  }
5959
 
5960
- .eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-2 .footer,
5961
- .eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-4 .footer {
5962
- padding-right: 30px;
5963
  }
5964
 
5965
- .eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-2 .footer,
5966
- .eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-4 .footer {
5967
- padding-left: 30px;
5968
  }
5969
 
5970
- /*--- Only In Pro Alert ---*/
5971
- .only-in-pro {
5972
- width: 100%;
5973
- -webkit-display: flex;
5974
- display: -webkit-box;
5975
- display: flex;
5976
- -webkit-box-align: center;
5977
- align-items: center;
5978
- -webkit-box-pack: center;
5979
- justify-content: center;
5980
- padding: 15px;
5981
- min-width: 200px;
5982
- background: #EF5350;
 
 
 
 
 
5983
  color: #fff;
5984
- text-align: center;
 
 
 
 
 
 
5985
  }
5986
 
5987
- .only-in-pro .title {
5988
- font-family: 'Roboto', sans-serif;
5989
- font-size: 24px;
5990
- line-height: 40px;
5991
- margin: 0px;
 
 
 
 
 
 
5992
  }
5993
 
5994
- /*--- Pricing Table Tooltip ---*/
5995
- div.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow {
5996
  position: absolute;
5997
- top: 50%;
 
 
 
 
 
 
 
 
 
5998
  }
5999
 
6000
- div.tooltipster-sidetip.tooltipster-top div.tooltipster-box {
6001
- margin-bottom: 0px !important;
 
 
 
 
6002
  }
6003
 
6004
- div.tooltipster-sidetip.tooltipster-bottom div.tooltipster-box {
6005
- margin-top: 0px !important;
 
 
 
 
 
 
 
 
 
6006
  }
6007
 
6008
- .tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow {
6009
- top: auto;
6010
- bottom: -8px;
 
6011
  }
6012
 
6013
- div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
6014
- top: -8px;
6015
- bottom: auto;
 
 
6016
  }
6017
 
6018
- @media only screen and (max-width: 480px) {
6019
- .eael-pricing.style-1 .eael-pricing-item .price-tag {
6020
- display: block;
6021
- }
 
 
 
 
 
 
 
6022
  }
6023
 
6024
- /*--------------------------*/
6025
- /* 09. Product Styles
6026
- /*--------------------------*/
6027
- .eael-product-grid .woocommerce ul.products,
6028
- .eael-post-grid .woocommerce ul.products {
6029
- display: grid;
6030
- grid-gap: 25px;
6031
- margin: 0 !important;
6032
- padding: 0 !important;
6033
  }
6034
- .eael-product-grid .woocommerce ul.products:before, .eael-product-grid .woocommerce ul.products:after,
6035
- .eael-post-grid .woocommerce ul.products:before,
6036
- .eael-post-grid .woocommerce ul.products:after {
6037
- display: none;
6038
  }
6039
- .eael-product-grid .woocommerce ul.products .product,
6040
- .eael-post-grid .woocommerce ul.products .product {
 
 
 
 
 
6041
  width: 100%;
6042
- margin: 0;
6043
- padding: 0;
6044
  }
6045
- .eael-product-grid .woocommerce ul.products.products[class*=columns-] li.product,
6046
- .eael-post-grid .woocommerce ul.products.products[class*=columns-] li.product {
 
6047
  width: 100%;
 
 
 
 
 
6048
  }
6049
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,
6050
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product,
6051
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product {
6052
- position: relative;
6053
- float: left;
6054
- overflow: hidden;
6055
- text-align: center;
6056
- padding: 0;
6057
- border-radius: 0;
6058
- background-color: #fff;
6059
- box-shadow: none;
6060
  }
6061
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a,
6062
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a,
6063
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a {
6064
- text-decoration: none;
6065
  }
6066
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,
6067
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover,
6068
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover {
6069
- outline: none;
6070
- box-shadow: none;
 
6071
  }
6072
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product img, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img,
6073
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product img,
6074
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img {
6075
- width: 100%;
6076
- height: auto;
6077
- -webkit-backface-visibility: hidden;
6078
- backface-visibility: hidden;
6079
  }
6080
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,
6081
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title,
6082
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title {
6083
- font-size: 16px;
6084
- font-weight: 700;
6085
- line-height: 1;
6086
- color: #333;
6087
- margin: 25px 0 12px;
6088
- padding: 0;
6089
  }
6090
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,
6091
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale,
6092
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale {
6093
- display: block;
6094
- line-height: 170px;
6095
- font-size: 13px;
6096
- text-align: center;
6097
- letter-spacing: 0;
6098
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
6099
- text-transform: uppercase;
6100
- color: #fff;
6101
- background-color: #ff2a13;
6102
- border-radius: 0;
6103
- border: none;
6104
- box-shadow: none;
6105
  position: absolute;
6106
- height: 100px;
6107
- width: 200px;
 
 
 
 
6108
  z-index: 1;
6109
- left: -100px;
6110
- top: -50px;
6111
- right: auto;
6112
- margin: 0;
6113
- padding: 0;
6114
- -webkit-transform: rotate(-45deg);
6115
- transform: rotate(-45deg);
6116
  }
6117
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price,
6118
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price,
6119
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price {
6120
- font-size: 14px;
6121
- margin-bottom: 0;
6122
- }
6123
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del,
6124
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del,
6125
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del {
6126
- opacity: 0.5;
6127
- display: inline-block;
6128
- }
6129
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,
6130
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins,
6131
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins {
6132
- font-weight: 400;
6133
- background-color: transparent;
6134
- color: #ff2a13;
6135
- }
6136
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,
6137
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating,
6138
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating {
6139
- display: block;
6140
- float: none;
6141
- font-size: 14px;
6142
- margin: 10px auto;
6143
- }
6144
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
6145
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button,
6146
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button {
6147
- display: block;
6148
- font-size: 14px;
6149
- font-weight: 400;
6150
- line-height: 38px;
6151
- text-align: center;
6152
- text-transform: uppercase;
6153
  color: #fff;
6154
- background-color: #333;
6155
- padding: 0;
6156
- margin: 15px;
6157
- border-radius: 0;
 
 
 
6158
  }
6159
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,
6160
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus,
6161
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus {
6162
- outline: none;
 
 
 
 
 
 
 
 
6163
  }
6164
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,
6165
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart,
6166
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart {
6167
- display: block;
6168
- margin: 0 0 15px 0;
6169
- padding: 0;
6170
- font-size: 14px;
6171
- line-height: 1;
6172
- text-transform: capitalize;
6173
- color: #333;
6174
- background-color: transparent;
 
 
 
6175
  }
6176
- .eael-product-grid.eael-product-simple .woocommerce ul.products li.product,
6177
- .eael-post-grid.eael-product-simple .woocommerce ul.products li.product {
6178
- border: 1px solid #eee;
 
 
 
 
 
 
 
 
 
6179
  }
6180
- .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,
6181
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product {
6182
- border: 1px solid transparent;
 
 
 
 
 
 
6183
  }
6184
- .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
6185
- .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,
6186
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
6187
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart {
6188
- visibility: hidden;
6189
- -webkit-transition: none;
6190
- transition: none;
6191
  }
6192
- .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover,
6193
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover {
6194
- border: 1px solid #eee;
6195
  }
6196
- .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,
6197
- .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart,
6198
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,
6199
- .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart {
6200
- visibility: visible;
6201
  }
6202
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product,
6203
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product {
 
 
 
6204
  position: relative;
6205
- float: left;
6206
- overflow: hidden;
6207
- text-align: center;
6208
- padding: 0 0 15px 0;
6209
- border-radius: 0;
6210
- background-color: #fff;
6211
- box-shadow: none;
6212
  }
6213
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a,
6214
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a {
6215
- text-decoration: none;
 
 
 
 
 
 
 
 
 
6216
  }
6217
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover,
6218
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover {
6219
- outline: none;
6220
- box-shadow: none;
 
 
6221
  }
6222
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img,
6223
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img {
6224
- width: 100%;
6225
- height: auto;
6226
- margin: 0;
6227
- -webkit-backface-visibility: hidden;
6228
- backface-visibility: hidden;
6229
  }
6230
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay,
6231
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay {
6232
  position: relative;
6233
- overflow: hidden;
6234
- line-height: 0;
 
6235
  }
6236
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap,
6237
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap {
 
6238
  position: absolute;
6239
- top: 50%;
6240
- left: 0;
6241
- right: 0;
6242
- text-align: center;
6243
- -webkit-transform: translateY(-50%);
6244
- transform: translateY(-50%);
 
 
6245
  }
6246
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,
6247
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
6248
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,
6249
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,
6250
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
6251
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart {
6252
  display: inline-block;
6253
- font-size: 14px;
6254
- line-height: 38px;
6255
- text-align: center;
6256
- color: #fff;
6257
- background-color: #333;
6258
- width: 38px;
6259
- height: 38px;
6260
- border-style: none;
6261
- border-radius: 50%;
6262
- vertical-align: middle;
6263
- padding: 0;
6264
- margin: 0 5px;
6265
- -webkit-transform: translateY(20px);
6266
- transform: translateY(20px);
6267
- opacity: 0;
6268
- -webkit-transition: opacity 300ms, -webkit-transform 200ms;
6269
- transition: opacity 300ms, -webkit-transform 200ms;
6270
- transition: transform 200ms, opacity 300ms;
6271
- transition: transform 200ms, opacity 300ms, -webkit-transform 200ms;
6272
  }
6273
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,
6274
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,
6275
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,
6276
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,
6277
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,
6278
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus {
6279
- outline: none;
6280
  }
6281
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
6282
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button {
6283
- font-size: 0;
6284
  }
6285
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before,
6286
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before {
6287
- display: none;
 
 
6288
  }
6289
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after,
6290
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after {
6291
- content: "\f217";
6292
- font: normal normal normal 14px/1 FontAwesome;
 
 
6293
  font-size: 14px;
6294
- line-height: 38px;
6295
- text-rendering: auto;
6296
- -webkit-font-smoothing: antialiased;
6297
- vertical-align: middle;
6298
- margin: 0;
6299
- padding: 0;
6300
  }
6301
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before,
6302
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before {
6303
- display: none;
6304
  }
6305
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after,
6306
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after {
6307
- content: "\f110";
6308
- display: inline-block;
6309
- font: normal normal normal 14px/1 FontAwesome;
6310
- font-size: 14px;
6311
- line-height: 38px;
6312
- color: #fff;
6313
- height: auto;
6314
- width: auto;
6315
- position: relative;
6316
- top: 0;
6317
- left: 0;
6318
- margin: 0;
6319
- padding: 0;
6320
  }
6321
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,
6322
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart {
6323
- font-size: 0;
 
 
 
 
 
 
 
 
 
 
 
6324
  }
6325
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after,
6326
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after {
6327
- content: "\f06e";
6328
- font: normal normal normal 14px/1 FontAwesome;
6329
- font-size: 14px;
6330
- line-height: 38px;
6331
- color: #fff;
6332
- text-rendering: auto;
6333
- -webkit-font-smoothing: antialiased;
6334
- vertical-align: middle;
6335
- margin: 0;
6336
- padding: 0;
6337
  }
6338
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title,
6339
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title {
6340
- font-size: 16px;
6341
- font-weight: 700;
6342
- line-height: 1;
6343
- color: #333;
6344
- margin: 25px 0 12px;
6345
- padding: 0;
6346
  }
6347
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale,
6348
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale {
6349
- display: block;
6350
- line-height: 170px;
6351
- font-size: 13px;
6352
- text-align: center;
6353
- letter-spacing: 0;
6354
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
6355
- text-transform: uppercase;
6356
- color: #fff;
6357
- background-color: #ff2a13;
6358
- border-radius: 0;
6359
- border: none;
6360
- box-shadow: none;
6361
- position: absolute;
6362
- height: 100px;
6363
- width: 200px;
6364
- z-index: 1;
6365
- left: -100px;
6366
- top: -50px;
6367
- right: auto;
6368
- margin: 0;
6369
- padding: 0;
6370
- -webkit-transform: rotate(-45deg);
6371
- transform: rotate(-45deg);
6372
  }
6373
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price,
6374
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price {
6375
- font-size: 14px;
6376
- margin-bottom: 0;
6377
  }
6378
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del,
6379
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del {
6380
- opacity: 0.5;
6381
- display: inline-block;
6382
  }
6383
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins,
6384
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins {
6385
- font-weight: 400;
6386
- background-color: transparent;
6387
- color: #ff2a13;
6388
  }
6389
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating,
6390
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating {
6391
- display: block;
6392
- float: none;
6393
- font-size: 14px;
6394
- margin: 10px auto;
 
6395
  }
6396
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,
6397
- .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,
6398
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,
6399
- .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button {
6400
- opacity: 1;
6401
- -webkit-transform: translateY(0);
6402
- transform: translateY(0);
6403
  }
6404
 
6405
- @media only screen and (min-width: 1025px) {
6406
- .eael-product-grid-column-1 .eael-product-grid .woocommerce ul.products {
6407
- grid-template-columns: 100%;
6408
- }
6409
 
6410
- .eael-product-grid-column-2 .eael-product-grid .woocommerce ul.products {
6411
- grid-template-columns: repeat(2, 1fr);
6412
- }
 
6413
 
6414
- .eael-product-grid-column-3 .eael-product-grid .woocommerce ul.products {
6415
- grid-template-columns: repeat(3, 1fr);
6416
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6417
 
6418
- .eael-product-grid-column-4 .eael-product-grid .woocommerce ul.products {
6419
- grid-template-columns: repeat(4, 1fr);
6420
- }
 
 
 
 
6421
 
6422
- .eael-product-grid-column-5 .eael-product-grid .woocommerce ul.products {
6423
- grid-template-columns: repeat(5, 1fr);
6424
- }
 
 
 
6425
 
6426
- .eael-product-grid-column-6 .eael-product-grid .woocommerce ul.products {
6427
- grid-template-columns: repeat(6, 1fr);
6428
- }
 
 
6429
  }
6430
- @media only screen and (max-width: 1024px) and (min-width: 766px) {
6431
- .eael-product-grid-column-tablet-1 .eael-product-grid .woocommerce ul.products {
6432
- grid-template-columns: 100%;
6433
- }
6434
 
6435
- .eael-product-grid-column-tablet-2 .eael-product-grid .woocommerce ul.products {
6436
- grid-template-columns: repeat(2, 1fr);
6437
- }
 
6438
 
6439
- .eael-product-grid-column-tablet-3 .eael-product-grid .woocommerce ul.products {
6440
- grid-template-columns: repeat(3, 1fr);
6441
- }
 
6442
 
6443
- .eael-product-grid-column-tablet-4 .eael-product-grid .woocommerce ul.products {
6444
- grid-template-columns: repeat(4, 1fr);
6445
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
6446
 
6447
- .eael-product-grid-column-tablet-5 .eael-product-grid .woocommerce ul.products {
6448
- grid-template-columns: repeat(5, 1fr);
6449
- }
 
 
 
6450
 
6451
- .eael-product-grid-column-tablet-6 .eael-product-grid .woocommerce ul.products {
6452
- grid-template-columns: repeat(6, 1fr);
6453
- }
 
6454
  }
6455
- @media only screen and (max-width: 767px) {
6456
- .eael-product-grid-column-mobile-1 .eael-product-grid .woocommerce ul.products {
6457
- grid-template-columns: 100%;
6458
- }
6459
 
6460
- .eael-product-grid-column-mobile-2 .eael-product-grid .woocommerce ul.products {
6461
- grid-template-columns: repeat(2, 1fr);
6462
- }
6463
 
6464
- .eael-product-grid-column-mobile-3 .eael-product-grid .woocommerce ul.products {
6465
- grid-template-columns: repeat(3, 1fr);
6466
- }
6467
 
6468
- .eael-product-grid-column-mobile-4 .eael-product-grid .woocommerce ul.products {
6469
- grid-template-columns: repeat(4, 1fr);
6470
- }
 
6471
 
6472
- .eael-product-grid-column-mobile-5 .eael-product-grid .woocommerce ul.products {
6473
- grid-template-columns: repeat(5, 1fr);
6474
- }
 
6475
 
6476
- .eael-product-grid-column-mobile-6 .eael-product-grid .woocommerce ul.products {
6477
- grid-template-columns: repeat(6, 1fr);
 
6478
  }
6479
  }
6480
 
@@ -6722,359 +6799,461 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
6722
  margin: 0 0 0 auto;
6723
  }
6724
 
6725
- /*-----------------------------*/
6726
- /* 15. Post Grid Style
6727
- /*-----------------------------*/
6728
- .eael-post-grid {
6729
- margin: 0 -10px;
 
 
 
 
6730
  }
6731
-
6732
- .eael-grid-post {
6733
- float: left;
6734
- padding: 10px;
6735
  }
6736
-
6737
- .eael-post-carousel .eael-grid-post {
6738
- float: none;
 
6739
  padding: 0;
6740
  }
6741
-
6742
- .eael-grid-post-holder {
6743
- border: 1px solid rgba(0, 0, 0, 0.1);
6744
- }
6745
-
6746
- .eael-grid-post-holder-inner {
6747
- height: 100%;
6748
  }
6749
-
6750
- .eael-entry-media {
 
6751
  position: relative;
 
 
 
 
 
 
 
6752
  }
6753
-
6754
- .eael-entry-overlay {
6755
- position: absolute;
6756
- top: 0;
6757
- left: 0;
 
 
 
 
 
 
 
 
 
6758
  width: 100%;
6759
- height: 100%;
6760
- z-index: 2;
6761
- -webkit-transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
6762
- transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
6763
- transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
6764
- transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
6765
  }
6766
-
6767
- .eael-entry-overlay > a {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6768
  position: absolute;
6769
- top: 0;
6770
- left: 0;
6771
- width: 100%;
6772
- height: 100%;
6773
- z-index: 3;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6774
  }
6775
-
6776
- .eael-entry-title {
6777
- margin: 10px 0 5px;
6778
- font-size: 1.2em;
 
 
6779
  }
6780
-
6781
- .eael-entry-thumbnail img {
6782
- width: 100%;
6783
- max-width: 100%;
6784
- vertical-align: middle;
 
 
6785
  }
6786
-
6787
- .eael-entry-thumbnail > img {
6788
- height: 100%;
 
 
 
 
 
 
 
 
 
 
 
6789
  }
6790
-
6791
- .eael-entry-footer .eael-author-avatar {
6792
- width: 50px;
 
6793
  }
6794
-
6795
- .eael-entry-footer .eael-author-avatar .avatar {
6796
- border-radius: 50%;
 
 
 
 
 
 
 
 
6797
  }
6798
-
6799
- .eael-post-grid .eael-entry-footer .eael-entry-meta {
6800
- padding-left: 8px;
6801
- text-align: left;
6802
  }
6803
-
6804
- .eael-grid-post .eael-entry-meta {
6805
- display: -webkit-box;
6806
- display: flex;
6807
- -webkit-box-orient: horizontal;
6808
- -webkit-box-direction: normal;
6809
- flex-direction: row;
6810
  }
6811
-
6812
- .eael-grid-post .eael-entry-footer .eael-entry-meta {
6813
- -webkit-box-orient: vertical;
6814
- -webkit-box-direction: normal;
6815
- flex-direction: column;
 
 
6816
  }
6817
-
6818
- .eael-entry-meta > div {
6819
- font-size: 12px;
6820
- line-height: 1.2;
6821
- padding-bottom: 5px;
6822
  }
6823
-
6824
- .eael-grid-post-excerpt p {
6825
- margin: 0;
6826
- font-size: 14px;
 
6827
  }
6828
-
6829
- .eael-entry-meta .eael-entry-footer .eael-posted-by {
6830
- display: block;
 
 
 
 
 
 
 
6831
  }
6832
-
6833
- .eael-grid-post .eael-entry-wrapper,
6834
- .eael-grid-post .eael-entry-footer {
6835
- padding: 15px;
6836
  }
6837
-
6838
- .eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on {
6839
- padding-left: 5px;
 
6840
  }
6841
-
6842
- .eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on::before {
6843
- content: '\f111';
6844
- font-family: FontAwesome;
6845
- color: inherit;
6846
- opacity: .4;
6847
- font-size: .8em;
6848
- padding-right: 7px;
6849
  }
6850
-
6851
- /*--- Post Grid Thumbnail Hover Effects ---*/
6852
- .eael-entry-media {
6853
  position: relative;
 
 
6854
  }
6855
-
6856
- .eael-entry-overlay {
6857
- display: -webkit-box;
6858
- display: flex;
6859
- -webkit-box-align: center;
6860
- align-items: center;
6861
- -webkit-box-pack: center;
6862
- justify-content: center;
 
6863
  }
6864
-
6865
- .eael-entry-overlay > i {
 
 
 
 
 
 
 
 
6866
  color: #fff;
6867
- }
6868
-
6869
- /*--- fade in ---*/
6870
- .eael-entry-overlay.fade-in {
6871
- visibility: hidden;
 
 
 
 
 
6872
  opacity: 0;
6873
- -webkit-transition: 300ms;
6874
- transition: 300ms;
6875
- }
6876
-
6877
- .eael-entry-media:hover .eael-entry-overlay.fade-in {
6878
- visibility: visible;
6879
- opacity: 1;
6880
  }
6881
-
6882
- .eael-entry-media:hover .eael-entry-overlay.fade-in > i {
6883
- -webkit-transform: translate(0);
6884
- transform: translate(0);
6885
- opacity: 1;
 
 
6886
  }
6887
-
6888
- /*--- zoom in --- */
6889
- .eael-entry-overlay.zoom-in {
6890
- -webkit-transform: scale(0.9);
6891
- transform: scale(0.9);
6892
- visibility: hidden;
6893
- opacity: 0;
6894
- -webkit-transition: 300ms;
6895
- transition: 300ms;
6896
  }
6897
-
6898
- .eael-entry-media:hover .eael-entry-overlay.zoom-in {
6899
- visibility: visible;
6900
- opacity: 1;
6901
- -webkit-transform: scale(1);
6902
- transform: scale(1);
6903
  }
6904
-
6905
- /*--- slide up ---*/
6906
- .eael-entry-overlay.slide-up {
6907
- -webkit-transform: translateY(100%);
6908
- transform: translateY(100%);
6909
- visibility: hidden;
6910
- opacity: 0;
6911
- -webkit-transition: 300ms;
6912
- transition: 300ms;
 
 
6913
  }
6914
-
6915
- .eael-entry-media:hover .eael-entry-overlay.slide-up {
6916
- -webkit-transform: translateY(0);
6917
- transform: translateY(0);
6918
- visibility: visible;
6919
- opacity: 1;
6920
  }
6921
-
6922
- .eael-entry-media {
6923
- overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
6924
  }
6925
-
6926
- /*--- Post Grid & Carousel Hover Styles ---*/
6927
- .eael-entry-media.grid-hover-style-fade-in .eael-entry-overlay {
6928
- opacity: 0;
6929
  }
6930
-
6931
- .eael-entry-media.grid-hover-style-fade-in:hover .eael-entry-overlay {
6932
- opacity: 1;
 
 
 
 
 
 
 
 
 
6933
  }
6934
-
6935
- .eael-entry-media.grid-hover-style-none .eael-entry-overlay {
6936
- display: none;
 
 
 
 
 
6937
  }
6938
-
6939
- .eael-entry-media.grid-hover-style-zoom-in .eael-entry-overlay {
6940
- -webkit-transform: scale(0.4);
6941
- transform: scale(0.4);
6942
- opacity: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6943
  }
6944
-
6945
- .eael-entry-media.grid-hover-style-zoom-in:hover .eael-entry-overlay {
6946
- -webkit-transform: scale(1);
6947
- transform: scale(1);
6948
- opacity: 1;
6949
  }
6950
-
6951
- .eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay {
6952
- -webkit-transform: translateY(-100%);
6953
- transform: translateY(-100%);
6954
  }
6955
-
6956
- .eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay > i {
6957
- -webkit-transform: translateY(-100px);
6958
- transform: translateY(-100px);
6959
- -webkit-transition-delay: 100ms;
6960
- transition-delay: 100ms;
6961
- -webkit-transition-duration: 300ms;
6962
- transition-duration: 300ms;
6963
  }
6964
-
6965
- .eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay {
6966
- -webkit-transform: translate(0);
6967
- transform: translate(0);
 
 
6968
  }
6969
-
6970
- .eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay > i {
 
 
 
6971
  -webkit-transform: translateY(0);
6972
  transform: translateY(0);
6973
  }
6974
 
6975
- .eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay {
6976
- -webkit-transform: translateY(100%);
6977
- transform: translateY(100%);
6978
- visibility: hidden;
6979
- opacity: 0;
6980
- }
6981
 
6982
- .eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay > i {
6983
- -webkit-transform: translateY(100px);
6984
- transform: translateY(100px);
6985
- -webkit-transition-delay: 100ms;
6986
- transition-delay: 100ms;
6987
- -webkit-transition-duration: 300ms;
6988
- transition-duration: 300ms;
6989
- }
6990
 
6991
- .eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay {
6992
- -webkit-transform: translate(0);
6993
- transform: translate(0);
6994
- visibility: visible;
6995
- opacity: 1;
6996
- }
6997
 
6998
- .eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay > i {
6999
- -webkit-transform: translateY(0);
7000
- transform: translateY(0);
7001
- }
7002
 
7003
- /*--- Post Grid Column Styles ---*/
7004
- .eael-col-1 .eael-post-grid-column {
7005
- float: none;
7006
- width: 100%;
7007
- }
7008
 
7009
- .eael-col-2 .eael-post-grid-column {
7010
- float: left;
7011
- width: 50%;
7012
  }
 
 
 
 
7013
 
7014
- .eael-col-3 .eael-post-grid-column {
7015
- float: left;
7016
- width: 33.3333%;
7017
- }
7018
 
7019
- .eael-col-4 .eael-post-grid-column {
7020
- float: left;
7021
- width: 25%;
7022
- }
7023
 
7024
- .eael-col-5 .eael-post-grid-column {
7025
- float: left;
7026
- width: 20%;
7027
- }
7028
 
7029
- .eael-col-6 .eael-post-grid-column {
7030
- float: left;
7031
- width: 16.6666%;
7032
- }
7033
 
7034
- @media only screen and (max-width: 979px) {
7035
- .eael-col-1 .eael-post-grid-column,
7036
- .eael-col-2 .eael-post-grid-column,
7037
- .eael-col-3 .eael-post-grid-column,
7038
- .eael-col-4 .eael-post-grid-column,
7039
- .eael-col-5 .eael-post-grid-column,
7040
- .eael-col-6 .eael-post-grid-column {
7041
- width: 33.3333%;
7042
  }
7043
  }
7044
  @media only screen and (max-width: 767px) {
7045
- .eael-col-1 .eael-post-grid-column,
7046
- .eael-col-2 .eael-post-grid-column,
7047
- .eael-col-3 .eael-post-grid-column,
7048
- .eael-col-4 .eael-post-grid-column,
7049
- .eael-col-5 .eael-post-grid-column,
7050
- .eael-col-6 .eael-post-grid-column {
7051
- width: 50%;
7052
  }
7053
- }
7054
- @media only screen and (max-width: 480px) {
7055
- .eael-col-1 .eael-post-grid-column,
7056
- .eael-col-2 .eael-post-grid-column,
7057
- .eael-col-3 .eael-post-grid-column,
7058
- .eael-col-4 .eael-post-grid-column,
7059
- .eael-col-5 .eael-post-grid-column,
7060
- .eael-col-6 .eael-post-grid-column {
7061
- float: none;
7062
- width: 100%;
7063
  }
7064
- }
7065
- .eael-author-avatar > a {
7066
- display: block;
7067
- }
7068
 
7069
- .eael-entry-footer {
7070
- overflow: hidden;
7071
- display: -webkit-box;
7072
- display: flex;
7073
- }
7074
 
7075
- .eael-entry-footer > div {
7076
- display: inline-block;
7077
- float: left;
 
 
 
 
 
 
 
 
7078
  }
7079
 
7080
  .eael-reading-progress-wrap.eael-reading-progress-wrap-local .eael-reading-progress-global {
@@ -7255,197 +7434,461 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
7255
  */
7256
  .owp-play {
7257
  position: absolute;
7258
- top: 50%;
7259
- left: 50%;
7260
- -webkit-transform: translateX(-50%) translateY(-50%);
7261
- transform: translateX(-50%) translateY(-50%);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7262
  }
7263
 
7264
- .owp-play i {
7265
- font-size: 100px;
7266
- color: #fff;
7267
- opacity: 0.8;
7268
- text-shadow: 1px 0 6px rgba(0, 0, 0, 0.3);
7269
- -webkit-transition: all .5s;
7270
- transition: all .5s;
7271
  }
7272
 
7273
- .eael-sticky-video-player:hover .owp-play i {
7274
- opacity: 1;
 
 
 
 
 
7275
  }
7276
 
7277
- /*
7278
- .eaelsv-sticky-player {
7279
- height: 200px;
7280
- width: 300px;
7281
- position: fixed;
7282
- bottom: 50px;
7283
- right: 50px;
7284
- border: 0px solid #009900;
7285
- background-size: cover;
7286
- z-index: 1000;
7287
- background: transparent;
7288
- display:none!important;
7289
  }
7290
- .eaelsv-sticky-player.eaelsv-display-player{
7291
- display:block!important;
7292
- -webkit-animation: fadeIn 1s;
7293
- animation: fadeIn 1s;
 
7294
  }
7295
- */
7296
- /* === Close Icon === */
7297
- .eaelsv-sticky-player-close {
7298
- position: absolute;
7299
- right: -25px;
7300
- top: -36px;
7301
- display: none;
7302
- padding: 7px;
7303
- font-size: 24px;
7304
- z-index: 9999;
7305
- cursor: pointer;
7306
- box-sizing: content-box;
7307
- overflow: visible;
7308
  }
7309
 
7310
- .eaelsv-sticky-player-close:hover {
7311
- color: #009900;
 
7312
  }
7313
 
7314
- .eaelsv-sticky-player-close:before, .eaelsv-sticky-player-close:after {
7315
- position: absolute;
7316
- left: 15px;
7317
- background-color: #333;
7318
  }
7319
 
7320
- .eaelsv-sticky-player-close:before {
7321
- -webkit-transform: rotate(45deg);
7322
- transform: rotate(45deg);
 
 
 
7323
  }
7324
 
7325
- .eaelsv-sticky-player-close:after {
7326
- -webkit-transform: rotate(-45deg);
7327
- transform: rotate(-45deg);
 
 
7328
  }
7329
 
7330
- /*----------------------------*/
7331
- /* 07. Team Members Styles
7332
- /*----------------------------*/
7333
- .eael-team-item {
7334
- overflow: hidden;
7335
- position: relative;
7336
  }
7337
 
7338
- .team-avatar-rounded figure img {
7339
- border-radius: 50%;
7340
- height: auto;
 
 
 
7341
  }
7342
 
7343
- .eael-team-image > figure {
7344
- margin: 0;
7345
- padding: 0;
 
 
7346
  }
7347
 
7348
- .eael-team-image > figure img {
7349
- display: block;
7350
- margin: 0 auto;
7351
  }
7352
 
7353
- .eael-team-item .eael-team-content {
7354
- padding: 10px;
 
 
 
 
 
7355
  }
7356
 
7357
- .eael-team-item .eael-team-member-name {
7358
- font-size: 20px;
7359
- font-weight: bold;
7360
- letter-spacing: 0.05em;
7361
- margin: 5px 0;
7362
- text-transform: uppercase;
7363
  }
7364
 
7365
- .eael-team-item .eael-team-member-position {
7366
- font-size: 14px;
7367
- font-weight: normal;
7368
- letter-spacing: 0.05em;
7369
- margin: 5px 0 10px;
7370
- text-transform: uppercase;
7371
  }
7372
 
7373
- .eael-team-item .eael-team-content,
7374
- .eael-team-item .eael-team-content .eael-team-text {
7375
- font-size: 14px;
7376
- line-height: 1.5;
 
 
 
7377
  }
7378
 
7379
- .eael-team-content > ul {
7380
- margin: 0;
7381
- padding: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7382
  }
7383
-
7384
- .eael-team-content li {
7385
- display: inline-block;
7386
- list-style: outside none none;
7387
- margin-right: 10px;
7388
  text-align: center;
7389
  }
7390
 
7391
- .eael-team-content li a {
7392
- font-size: 2.5rem;
7393
- }
7394
-
7395
- .eael-team-align-left .eael-team-item .eael-team-member-name,
7396
- .eael-team-align-left .eael-team-item .eael-team-member-position,
7397
- .eael-team-align-left .eael-team-item .eael-team-text,
7398
- .eael-team-align-left .eael-team-item .eael-team-content p,
7399
- .eael-team-align-left .eael-team-item .eael-team-content ul,
7400
- .eael-team-align-left .eael-team-item .eael-team-content li {
7401
  text-align: left;
7402
  }
7403
 
7404
- .eael-team-align-right .eael-team-item .eael-team-member-name,
7405
- .eael-team-align-right .eael-team-item .eael-team-member-position,
7406
- .eael-team-align-right .eael-team-item .eael-team-text,
7407
- .eael-team-align-right .eael-team-item .eael-team-content p,
7408
- .eael-team-align-right .eael-team-item .eael-team-content ul,
7409
- .eael-team-align-right .eael-team-item .eael-team-content li {
7410
  text-align: right;
7411
  }
7412
 
7413
- .eael-team-align-centered .eael-team-item .eael-team-member-name,
7414
- .eael-team-align-centered .eael-team-item .eael-team-member-position,
7415
- .eael-team-align-centered .eael-team-item .eael-team-text,
7416
- .eael-team-align-centered .eael-team-item .eael-team-content p,
7417
- .eael-team-align-centered .eael-team-item .eael-team-content ul,
7418
- .eael-team-align-centered .eael-team-item .eael-team-content li {
7419
  text-align: center;
7420
  }
7421
 
7422
- .eael-team-item.eael-team-members-overlay .eael-team-content {
7423
- bottom: 10px;
7424
- left: 10px;
7425
- margin-bottom: 0;
7426
- padding-top: 15%;
7427
- opacity: 0;
7428
- overflow: hidden;
7429
- text-overflow: ellipsis;
7430
- position: absolute;
7431
- right: 10px;
7432
- top: 10px;
7433
- -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7434
- transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7435
- }
7436
-
7437
- .eael-team-item.eael-team-members-overlay:hover .eael-team-content {
7438
- opacity: 1;
7439
- }
7440
-
7441
- .eael-team-member-social-link > a {
7442
- display: inline-block;
7443
- -webkit-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7444
- transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7445
- }
7446
-
7447
- .eael-team-member-social-link > a:focus {
7448
- outline: none;
7449
  }
7450
 
7451
  /*----------------------------*/
@@ -7670,426 +8113,162 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
7670
 
7671
  .eael-testimonial-align-centered .eael-testimonial-image > figure img {
7672
  display: block;
7673
- margin-left: auto !important;
7674
- margin-right: auto !important;
7675
- }
7676
-
7677
- /* .eael-testimonial-align-centered .testimonial-star-rating{
7678
- text-align: center;
7679
- } */
7680
- /*--- Right align ---*/
7681
- .icon-img-right-content .eael-testimonial-image {
7682
- float: right;
7683
- width: 30%;
7684
- }
7685
-
7686
- .icon-img-right-content .eael-testimonial-content {
7687
- float: right;
7688
- width: 70%;
7689
- text-align: right;
7690
- }
7691
-
7692
- .icon-img-right-content.eael-testimonial-item {
7693
- overflow: hidden;
7694
- position: relative;
7695
- }
7696
-
7697
- .icon-img-right-content .eael-testimonial-quote {
7698
- position: absolute;
7699
- }
7700
-
7701
- .icon-img-right-content .eael-testimonial-text {
7702
- margin-top: 0;
7703
- }
7704
-
7705
- .eael-testimonial-item {
7706
- position: relative;
7707
- }
7708
-
7709
- .classic-style.testimonial-alignment-center .eael-testimonial-image,
7710
- .default-style.testimonial-alignment-center .eael-testimonial-image {
7711
- text-align: center;
7712
- }
7713
-
7714
- .classic-style.testimonial-alignment-right .eael-testimonial-image,
7715
- .default-style.testimonial-alignment-right .eael-testimonial-image {
7716
- text-align: right;
7717
- }
7718
-
7719
- .classic-style.testimonial-alignment-center .eael-testimonial-image > figure,
7720
- .default-style.testimonial-alignment-center .eael-testimonial-image > figure {
7721
- text-align: center;
7722
- }
7723
-
7724
- .eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-centered .eael-testimonial-content {
7725
- text-align: center;
7726
- }
7727
-
7728
- .eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-left .eael-testimonial-content {
7729
- text-align: left;
7730
- }
7731
-
7732
- .eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-right .eael-testimonial-content {
7733
- text-align: right;
7734
- }
7735
-
7736
- .eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-centered .eael-testimonial-content {
7737
- text-align: center;
7738
- }
7739
-
7740
- .eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-left .eael-testimonial-content {
7741
- text-align: left;
7742
- }
7743
-
7744
- .eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-right .eael-testimonial-content {
7745
- text-align: right;
7746
- }
7747
-
7748
- span.eael-testimonial-quote {
7749
- position: absolute;
7750
- right: 10px;
7751
- top: 10px;
7752
- }
7753
-
7754
- /*--- Image align ---*/
7755
- .eael-testimonial-item.left .eael-testimonial-image {
7756
- text-align: left;
7757
- }
7758
-
7759
- .eael-testimonial-item.center .eael-testimonial-image {
7760
- text-align: center;
7761
- }
7762
-
7763
- .eael-testimonial-item.right .eael-testimonial-image {
7764
- text-align: right;
7765
- }
7766
-
7767
- /*--- Float title image style ---*/
7768
- .eael-testimonial-inline-bio .eael-testimonial-image {
7769
- float: left;
7770
- }
7771
-
7772
- .eael-testimonial-inline-bio .bio-text {
7773
- padding-top: 10px;
7774
- }
7775
-
7776
- .eael-testimonial-content.eael-testimonial-inline-bio {
7777
- overflow: hidden;
7778
- margin-bottom: 0;
7779
- padding-bottom: 0;
7780
- }
7781
-
7782
- .eael-testimonial-inline-bio .testimonial-star-rating,
7783
- .eael-testimonial-inline-bio .bio-text {
7784
- float: left;
7785
- width: 65%;
7786
- }
7787
-
7788
- .eael-testimonial-content.eael-testimonial-inline-bio {
7789
- text-align: left !important;
7790
- }
7791
-
7792
- /*--- Float inline style ---*/
7793
- .testimonial-inline-style .eael-testimonial-image {
7794
- float: left;
7795
- max-width: 100%;
7796
- padding: 0;
7797
- margin-right: 15px;
7798
- }
7799
-
7800
- .testimonial-inline-style {
7801
- overflow: hidden;
7802
- text-align: left;
7803
- }
7804
-
7805
- .content-top-icon-title-inline .eael-testimonial-text,
7806
- .content-top-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text {
7807
- text-align: left;
7808
- }
7809
-
7810
- .content-top-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text {
7811
- text-align: center;
7812
- }
7813
-
7814
- .content-top-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text {
7815
- text-align: right;
7816
- }
7817
-
7818
- .content-bottom-icon-title-inline .eael-testimonial-text,
7819
- .content-bottom-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text {
7820
- text-align: left;
7821
- }
7822
-
7823
- .content-bottom-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text {
7824
- text-align: center;
7825
- }
7826
-
7827
- .content-bottom-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text {
7828
- text-align: right;
7829
- }
7830
-
7831
- /*------------------------------*/
7832
- /* 32. Tooltip
7833
- /*------------------------------*/
7834
- .eael-tooltip {
7835
- position: relative;
7836
- display: inline-block;
7837
- min-width: 150px;
7838
- padding: 12px 24px;
7839
- font-size: .93rem;
7840
- color: #333;
7841
- line-height: 1;
7842
- cursor: pointer;
7843
- -webkit-transition: all 0.3s ease-in-out;
7844
- transition: all 0.3s ease-in-out;
7845
- }
7846
-
7847
- .eael-tooltip .eael-tooltip-text {
7848
- display: block;
7849
- width: 100%;
7850
- visibility: hidden;
7851
- background-color: black;
7852
- color: #fff;
7853
- border-radius: 4px;
7854
- padding: 10px;
7855
- position: absolute;
7856
- z-index: 1;
7857
- font-size: .93rem;
7858
- line-height: 1.3;
7859
- }
7860
- .eael-tooltip .eael-tooltip-text p {
7861
- margin: 0;
7862
  }
7863
 
7864
- .eael-tooltip .eael-tooltip-text::after {
7865
- content: "";
7866
- position: absolute;
7867
- border-width: 5px;
7868
- border-style: solid;
 
 
7869
  }
7870
 
7871
- .eael-tooltip:hover .eael-tooltip-text {
7872
- visibility: visible;
 
 
7873
  }
7874
 
7875
- /*--- Left ---*/
7876
- .eael-tooltip .eael-tooltip-text.eael-tooltip-left {
7877
- top: 50%;
7878
- right: 100%;
7879
- -webkit-transform: translateY(-50%);
7880
- transform: translateY(-50%);
7881
- margin-right: 10px;
7882
  }
7883
 
7884
- .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left {
7885
- -webkit-animation: tooltipLeftIn 300ms ease-in-out;
7886
- animation: tooltipLeftIn 300ms ease-in-out;
7887
  }
7888
 
7889
- .eael-tooltip .eael-tooltip-text.eael-tooltip-left::after {
7890
- top: calc(50% - 5px);
7891
- left: 100%;
7892
- border-color: transparent transparent transparent black;
7893
  }
7894
 
7895
- /*--- Right ---*/
7896
- .eael-tooltip .eael-tooltip-text.eael-tooltip-right {
7897
- top: 50%;
7898
- left: 100%;
7899
- -webkit-transform: translateY(-50%);
7900
- transform: translateY(-50%);
7901
- -webkit-transition: all 0.3s ease-in-out;
7902
- transition: all 0.3s ease-in-out;
7903
- margin-left: 10px;
7904
  }
7905
 
7906
- .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right {
7907
- -webkit-animation: tooltipRightIn 300ms linear;
7908
- animation: tooltipRightIn 300ms linear;
7909
  }
7910
 
7911
- .eael-tooltip .eael-tooltip-text.eael-tooltip-right::after {
7912
- top: calc(50% - 5px);
7913
- right: 100%;
7914
- border-color: transparent black transparent transparent;
7915
  }
7916
 
7917
- /*--- Top ---*/
7918
- .eael-tooltip .eael-tooltip-text.eael-tooltip-top {
7919
- bottom: calc(100%);
7920
- left: 0;
7921
- right: 0;
7922
- margin: 0 auto 10px auto;
7923
  }
7924
 
7925
- .eael-tooltip .eael-tooltip-text.eael-tooltip-top::after {
7926
- margin-top: 0px;
7927
- top: 100%;
7928
- left: calc( 50% - 5px);
7929
- border-color: black transparent transparent transparent;
7930
  }
7931
 
7932
- .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top {
7933
- -webkit-animation: tooltipTopIn 300ms linear;
7934
- animation: tooltipTopIn 300ms linear;
7935
  }
7936
 
7937
- /*--- Bottom ---*/
7938
- .eael-tooltip .eael-tooltip-text.eael-tooltip-bottom {
7939
- top: 100%;
7940
- left: 0;
7941
- right: 0;
7942
- margin: 10px auto 0px auto;
7943
  }
7944
 
7945
- .eael-tooltip .eael-tooltip-text.eael-tooltip-bottom::after {
7946
- margin-top: 0px;
7947
- bottom: 100%;
7948
- left: calc( 50% - 5px);
7949
- border-color: transparent transparent black transparent;
7950
  }
7951
 
7952
- .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom {
7953
- -webkit-animation: tooltipBottomIn 300ms linear;
7954
- animation: tooltipBottomIn 300ms linear;
7955
  }
7956
 
7957
- /*--- Alignments ---*/
7958
- .eael-tooltip-align-left {
7959
- display: -webkit-box;
7960
- display: flex;
7961
- width: 100%;
7962
- -webkit-box-pack: start;
7963
- justify-content: flex-start;
7964
  }
7965
 
7966
- .eael-tooltip-align-right {
7967
- display: -webkit-box;
7968
- display: flex;
7969
- width: 100%;
7970
- -webkit-box-pack: end;
7971
- justify-content: flex-end;
7972
  }
7973
 
7974
- .eael-tooltip-align-center {
7975
- display: -webkit-box;
7976
- display: flex;
7977
- width: 100%;
7978
- -webkit-box-pack: center;
7979
- justify-content: center;
7980
  }
7981
 
7982
- .eael-tooltip-align-justify .eael-tooltip {
7983
- display: -webkit-box;
7984
- display: flex;
7985
- -webkit-box-pack: center;
7986
- justify-content: center;
7987
- -webkit-box-align: center;
7988
- align-items: center;
7989
  }
7990
 
7991
- /*--- Tooltip Keyframes ---*/
7992
- @-webkit-keyframes tooltipRightIn {
7993
- 0% {
7994
- opacity: 0;
7995
- left: 105%;
7996
- }
7997
- 100% {
7998
- opacity: 1;
7999
- left: 100%;
8000
- }
8001
  }
8002
- @keyframes tooltipRightIn {
8003
- 0% {
8004
- opacity: 0;
8005
- left: 105%;
8006
- }
8007
- 100% {
8008
- opacity: 1;
8009
- left: 100%;
8010
- }
8011
  }
8012
- @-webkit-keyframes tooltipLeftIn {
8013
- 0% {
8014
- opacity: 0;
8015
- right: 105%;
8016
- }
8017
- 100% {
8018
- opacity: 1;
8019
- right: 100%;
8020
- }
8021
  }
8022
- @keyframes tooltipLeftIn {
8023
- 0% {
8024
- opacity: 0;
8025
- right: 105%;
8026
- }
8027
- 100% {
8028
- opacity: 1;
8029
- right: 100%;
8030
- }
8031
  }
8032
- @-webkit-keyframes tooltipTopIn {
8033
- 0% {
8034
- opacity: 0;
8035
- bottom: 110%;
8036
- }
8037
- 100% {
8038
- opacity: 1;
8039
- bottom: 100%;
8040
- }
8041
  }
8042
- @keyframes tooltipTopIn {
8043
- 0% {
8044
- opacity: 0;
8045
- bottom: 110%;
8046
- }
8047
- 100% {
8048
- opacity: 1;
8049
- bottom: 100%;
8050
- }
8051
  }
8052
- @-webkit-keyframes tooltipBottomIn {
8053
- 0% {
8054
- opacity: 0;
8055
- top: 110%;
8056
- }
8057
- 100% {
8058
- opacity: 1;
8059
- top: 100%;
8060
- }
8061
  }
8062
- @keyframes tooltipBottomIn {
8063
- 0% {
8064
- opacity: 0;
8065
- top: 110%;
8066
- }
8067
- 100% {
8068
- opacity: 1;
8069
- top: 100%;
8070
- }
8071
  }
8072
- span.eael-tooltip-content,
8073
- span.eael-tooltip-content a {
8074
- width: 100%;
8075
- display: block;
8076
- text-align: center;
8077
  }
8078
 
8079
- .eael-tooltip-text-align-left .eael-tooltip-text, .eael-tooltip-text-align-left .eael-tooltip-content a {
8080
- text-align: left;
8081
  }
8082
 
8083
- .eael-tooltip-text-align-right .eael-tooltip-text, .eael-tooltip-text-align-right .eael-tooltip-content a {
8084
  text-align: right;
8085
  }
8086
 
8087
- .eael-tooltip-text-align-center .eael-tooltip-text, .eael-tooltip-text-align-center .eael-tooltip-content a {
 
 
 
 
 
8088
  text-align: center;
8089
  }
8090
 
8091
- .eael-tooltip-text-align-justify .eael-tooltip-text, .eael-tooltip-text-align-justify .eael-tooltip-content a {
8092
- text-align: justify;
8093
  }
8094
 
8095
  .eael-twitter-feed::before, .eael-twitter-feed::after {
@@ -8261,224 +8440,41 @@ span.eael-tooltip-content a {
8261
  max-width: 100%;
8262
  }
8263
 
8264
- /*--------------------------*/
8265
- /* 01. General Styles
8266
- /*--------------------------*/
8267
- .clearfix::before,
8268
- .clearfix::after {
8269
- content: " ";
8270
- display: table;
8271
- clear: both;
8272
- }
8273
-
8274
- /*---------------------------------------*/
8275
- /* 02. Common styles for slider elements
8276
- /*---------------------------------------*/
8277
- .eael-testimonial-slider.nav-top-left,
8278
- .eael-testimonial-slider.nav-top-right,
8279
- .eael-team-slider.nav-top-left,
8280
- .eael-team-slider.nav-top-right,
8281
- .eael-logo-carousel.nav-top-left,
8282
- .eael-logo-carousel.nav-top-right,
8283
- .eael-post-carousel.nav-top-left,
8284
- .eael-post-carousel.nav-top-right,
8285
- .eael-product-carousel.nav-top-left,
8286
- .eael-product-carousel.nav-top-right {
8287
- padding-top: 40px;
8288
- }
8289
-
8290
- /*--------------------------------*/
8291
- /* 10. Contact forms common
8292
- /*--------------------------------*/
8293
- .eael-contact-form input[type=text],
8294
- .eael-contact-form input[type=email],
8295
- .eael-contact-form input[type=url],
8296
- .eael-contact-form input[type=tel],
8297
- .eael-contact-form input[type=date],
8298
- .eael-contact-form input[type=number],
8299
- .eael-contact-form textarea {
8300
- background: #fff;
8301
- box-shadow: none;
8302
- -webkit-box-shadow: none;
8303
- float: none;
8304
- height: auto;
8305
- margin: 0;
8306
- outline: 0;
8307
- width: 100%;
8308
- }
8309
-
8310
- .eael-contact-form input[type=submit] {
8311
- border: 0;
8312
- float: none;
8313
- height: auto;
8314
- margin: 0;
8315
- padding: 10px 20px;
8316
- width: auto;
8317
- -webkit-transition: all 0.25s linear 0s;
8318
- transition: all 0.25s linear 0s;
8319
- }
8320
-
8321
- .eael-contact-form.placeholder-hide input::-webkit-input-placeholder,
8322
- .eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder {
8323
- opacity: 0;
8324
- visibility: hidden;
8325
- }
8326
-
8327
- .eael-contact-form.placeholder-hide input::-moz-placeholder,
8328
- .eael-contact-form.placeholder-hide textarea::-moz-placeholder {
8329
- opacity: 0;
8330
- visibility: hidden;
8331
- }
8332
-
8333
- .eael-contact-form.placeholder-hide input:-ms-input-placeholder,
8334
- .eael-contact-form.placeholder-hide textarea:-ms-input-placeholder {
8335
- opacity: 0;
8336
- visibility: hidden;
8337
- }
8338
-
8339
- .eael-contact-form.placeholder-hide input:-moz-placeholder,
8340
- .eael-contact-form.placeholder-hide textarea:-moz-placeholder {
8341
- opacity: 0;
8342
- visibility: hidden;
8343
- }
8344
-
8345
- .eael-custom-radio-checkbox input[type=checkbox],
8346
- .eael-custom-radio-checkbox input[type=radio] {
8347
- -webkit-appearance: none;
8348
- -moz-appearance: none;
8349
- border-style: solid;
8350
- border-width: 0;
8351
- outline: none;
8352
- min-width: 1px;
8353
- width: 15px;
8354
- height: 15px;
8355
- background: #ddd;
8356
- padding: 3px;
8357
- }
8358
-
8359
- .eael-custom-radio-checkbox input[type=checkbox]:before,
8360
- .eael-custom-radio-checkbox input[type=radio]:before {
8361
- content: "";
8362
- width: 100%;
8363
- height: 100%;
8364
- padding: 0;
8365
- margin: 0;
8366
- display: block;
8367
- }
8368
-
8369
- .eael-custom-radio-checkbox input[type=checkbox]:checked:before,
8370
- .eael-custom-radio-checkbox input[type=radio]:checked:before {
8371
- background: #999;
8372
- -webkit-transition: all 0.25s linear 0s;
8373
- transition: all 0.25s linear 0s;
8374
- }
8375
-
8376
- .eael-custom-radio-checkbox input[type=radio] {
8377
- border-radius: 50%;
8378
- }
8379
-
8380
- .eael-custom-radio-checkbox input[type=radio]:before {
8381
- border-radius: 50%;
8382
- }
8383
-
8384
- .eael-post-elements-readmore-btn {
8385
- font-size: 12px;
8386
- font-weight: 500;
8387
- -webkit-transition: all 300ms ease-in-out;
8388
- transition: all 300ms ease-in-out;
8389
- display: inline-block;
8390
- }
8391
-
8392
- .elementor-lightbox .dialog-widget-content {
8393
- width: 100%;
8394
- height: 100%;
8395
- }
8396
-
8397
- .eael-contact-form-align-left,
8398
- .elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container {
8399
- margin: 0 auto 0 0;
8400
- }
8401
-
8402
- .eael-contact-form-align-center,
8403
- .elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container {
8404
- float: none;
8405
- margin: 0 auto;
8406
- }
8407
-
8408
- .eael-contact-form-align-right,
8409
- .elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container {
8410
- margin: 0 0 0 auto;
8411
- }
8412
-
8413
- /*----------------------*/
8414
- /* 13. Ninja Form Styles
8415
- /*----------------------*/
8416
- .eael-ninja-container input,
8417
- .eael-ninja-container textarea {
8418
- height: auto;
8419
- padding: 10px;
8420
- }
8421
-
8422
- .eael-contact-form-align-center .eael-ninja-container,
8423
- .eael-contact-form-btn-align-center .eael-ninja-container .nf-field .nf-field-element input[type="button"] {
8424
- margin-left: auto !important;
8425
- margin-right: auto !important;
8426
- display: block;
8427
- float: none;
8428
- }
8429
-
8430
- .eael-contact-form-align-left .eael-ninja-container,
8431
- .eael-contact-form-btn-align-left .eael-ninja-container .nf-field .nf-field-element input[type="button"] {
8432
- float: left;
8433
- width: auto;
8434
- }
8435
-
8436
- .eael-contact-form-align-right .eael-ninja-container,
8437
- .eael-contact-form-btn-align-right .eael-ninja-container .nf-field .nf-field-element input[type="button"] {
8438
- float: right;
8439
- width: auto;
8440
- }
8441
-
8442
- .eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="text"],
8443
- .eael-ninja-container .nf-field .nf-field-element input[type="password"],
8444
- .eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="email"],
8445
- .eael-ninja-container .nf-field .nf-field-element input[type="url"],
8446
- .eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="number"],
8447
- .eael-ninja-container .nf-field .nf-field-element textarea {
8448
- max-width: 100%;
8449
- }
8450
-
8451
- .eael-ninja-form .nf-form-title {
8452
- display: none;
8453
- }
8454
-
8455
- .eael-ninja-form-title-yes .nf-form-title {
8456
- display: block;
8457
- }
8458
-
8459
- .eael-ninja-form .title-description-hide .nf-form-title {
8460
- display: none;
8461
- }
8462
-
8463
- .eael-ninja-form.title-description-hide .nf-form-title {
8464
- display: none;
8465
  }
8466
 
8467
- .eael-ninja-form .nf-field-label {
8468
- display: none;
 
8469
  }
8470
 
8471
- .eael-ninja-form-labels-yes .nf-field-label {
8472
- display: block;
 
 
 
 
 
 
8473
  }
8474
 
8475
- .eael-ninja-form .submit-container input[type=button] {
8476
- border: 0;
8477
- border-radius: 0;
8478
  }
8479
 
8480
- .eael-ninja-form-button-full-width .submit-container input[type=button] {
8481
- width: 100%;
 
 
 
 
 
 
8482
  }
8483
 
8484
  @keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:subpixel-antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5764;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:14px;left:0;padding:10px;position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:16px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}a.plyr__control{text-decoration:none}a.plyr__control::after,a.plyr__control::before{display:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr__control--overlaid{background:rgba(0,179,255,.8);border:0;border-radius:100%;color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00b3ff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls .plyr__controls__item.plyr__volume{padding-right:5px}.plyr__controls .plyr__controls__item.plyr__volume:first-child{padding-right:0}.plyr__controls:empty{display:none}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4a5764;padding:10px}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:20px 5px 5px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:35px 10px 10px}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5764;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(74,87,100,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(74,87,100,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#c1c9d1;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:#00b3ff}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-5px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:26px;color:#00b3ff;display:block;height:19px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:14px;font-weight:500;left:50%;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:16px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__progress{left:6.5px;margin-right:13px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-right:-6.5px;width:calc(100% + 13px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;left:0;margin-top:-2.5px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(193,201,209,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,41,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,41,47,.6) 50%,rgba(35,41,47,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,201,209,.66)}.plyr__volume{align-items:center;display:flex;flex:1;position:relative}.plyr__volume input[type=range]{margin-left:5px;position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:90px}}@media (min-width:768px){.plyr__volume{max-width:110px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(35,41,47,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;left:0;margin:-2.5px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);margin-bottom:10px;opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c9d1;border-radius:2px;overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:2px;color:#fff;font-size:14px;padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}
316
  }
317
  }
318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  /* ----------------------------------------- */
320
  /* 22. Caldera Contact Form Styler
321
  /* ----------------------------------------- */
552
 
553
  .eael-call-to-action .cta-button.effect-1:hover::after {
554
  -webkit-transform: translateY(0);
555
+ transform: translateY(0);
556
  }
557
 
558
  /*--- Cta Button effect 2 ---*/
569
  transition: .5s;
570
  color: #fff;
571
  -webkit-transform: translateX(-100%);
572
+ transform: translateX(-100%);
573
  }
574
 
575
  .eael-call-to-action .cta-button.effect-2:hover::after {
576
  -webkit-transform: translateX(0);
577
+ transform: translateX(0);
578
  }
579
 
580
  /*--- Media Queries ---*/
967
  -webkit-transition: border-color 0.3s, background-color 0.3s;
968
  transition: border-color 0.3s, background-color 0.3s;
969
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
970
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
971
  }
972
 
973
  .eael-creative-button--winona::after {
979
  left: 0;
980
  opacity: 0;
981
  -webkit-transform: translate3d(0, 25%, 0);
982
+ transform: translate3d(0, 25%, 0);
983
  display: -webkit-box;
984
  display: flex;
985
  -webkit-box-align: center;
991
  .eael-creative-button--winona::after,
992
  .eael-creative-button--winona > .creative-button-inner {
993
  padding: 1em 2em;
 
994
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
995
  transition: opacity 0.3s, -webkit-transform 0.3s;
996
  transition: transform 0.3s, opacity 0.3s;
997
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
998
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
999
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1000
  }
1001
 
1002
  .eael-creative-button--winona:hover::after {
1003
  opacity: 1;
1004
  -webkit-transform: translate3d(0, 0, 0);
1005
+ transform: translate3d(0, 0, 0);
1006
  }
1007
 
1008
  .eael-creative-button--winona:hover > .creative-button-inner {
1009
  opacity: 0;
1010
+ -webkit-transform: translate3d(0, 0%, 0);
1011
+ transform: translate3d(0, 0%, 0);
1012
  }
1013
 
1014
  /*--- Ujarak ---*/
1027
  z-index: -1;
1028
  opacity: 0;
1029
  -webkit-transform: scale3d(0.7, 1, 1);
1030
+ transform: scale3d(0.7, 1, 1);
 
1031
  -webkit-transition: opacity 0.4s, -webkit-transform 0.4s;
1032
  transition: opacity 0.4s, -webkit-transform 0.4s;
1033
  transition: transform 0.4s, opacity 0.4s;
1034
  transition: transform 0.4s, opacity 0.4s, -webkit-transform 0.4s;
1035
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1036
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1037
  }
1038
 
1039
  .eael-creative-button--ujarak,
1040
  .eael-creative-button--ujarak::before {
1041
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1042
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1043
  }
1044
 
1045
  .eael-creative-button--ujarak:hover::before {
1046
  opacity: 1;
1047
  -webkit-transform: translate3d(0, 0, 0);
1048
+ transform: translate3d(0, 0, 0);
1049
  }
1050
 
1051
  /*--- Wayra ---*/
1054
  -webkit-transition: border-color 0.3s, color 0.3s;
1055
  transition: border-color 0.3s, color 0.3s;
1056
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1057
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1058
  }
1059
 
1060
  .eael-creative-button--wayra::before {
1066
  height: 100%;
1067
  z-index: -1;
1068
  -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
1069
+ transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0);
1070
  -webkit-transform-origin: 0% 100%;
1071
+ transform-origin: 0% 100%;
 
1072
  -webkit-transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
1073
  transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s;
1074
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
1078
  .eael-creative-button--wayra:hover::before {
1079
  opacity: 1;
1080
  -webkit-transform: rotate3d(0, 0, 1, 0deg);
1081
+ transform: rotate3d(0, 0, 1, 0deg);
1082
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1083
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1084
  }
1085
 
1086
  /* Tamaya */
1124
  transition: transform 0.3s;
1125
  transition: transform 0.3s, -webkit-transform 0.3s;
1126
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1127
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1128
  }
1129
 
1130
  .eael-creative-button--tamaya.button--inverted::before,
1146
  .eael-creative-button--tamaya span {
1147
  display: block;
1148
  -webkit-transform: scale3d(0.2, 0.2, 1);
1149
+ transform: scale3d(0.2, 0.2, 1);
1150
  opacity: 0;
 
1151
  -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
1152
  transition: opacity 0.3s, -webkit-transform 0.3s;
1153
  transition: transform 0.3s, opacity 0.3s;
1154
  transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
1155
  -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1156
+ transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
1157
  }
1158
 
1159
  .eael-creative-button--tamaya:hover::before {
1160
  -webkit-transform: translate3d(0, -100%, 0);
1161
+ transform: translate3d(0, -100%, 0);
1162
  }
1163
 
1164
  .eael-creative-button--tamaya:hover::after {
1165
  -webkit-transform: translate3d(0, 100%, 0);
1166
+ transform: translate3d(0, 100%, 0);
1167
  }
1168
 
1169
  .eael-creative-button--tamaya:hover span {
1170
  opacity: 1;
1171
  -webkit-transform: scale3d(1, 1, 1);
1172
+ transform: scale3d(1, 1, 1);
1173
  content: 'Bangladesh';
1174
  }
1175
 
1187
  width: 100%;
1188
  height: 100%;
1189
  -webkit-transform: translate3d(-100%, 0, 0);
1190
+ transform: translate3d(-100%, 0, 0);
1191
  display: -webkit-box;
1192
  display: flex;
1193
  -webkit-box-align: center;
1204
  transition: transform 0.3s;
1205
  transition: transform 0.3s, -webkit-transform 0.3s;
1206
  -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
1207
+ transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
1208
  }
1209
 
1210
  .eael-creative-button--rayen:hover::before {
1211
  -webkit-transform: translate3d(0, 0, 0);
1212
+ transform: translate3d(0, 0, 0);
1213
  }
1214
 
1215
  .eael-creative-button--rayen:hover > .creative-button-inner {
1216
  -webkit-transform: translate3d(0, 100%, 0);
1217
+ transform: translate3d(0, 100%, 0);
1218
  }
1219
 
1220
  .creative-button-inner {
1647
  text-align: right;
1648
  }
1649
 
1650
+ .ea-advanced-data-table-wrap * {
1651
+ background-color: transparent;
1652
+ border: none;
1653
+ box-shadow: none;
1654
+ margin: 0;
1655
+ padding: 0;
1656
  }
1657
+ .ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner {
1658
+ width: 100%;
1659
+ overflow-y: auto;
 
1660
  }
1661
+ .ea-advanced-data-table-wrap .ea-advanced-data-table {
1662
+ width: 100%;
1663
+ border-collapse: collapse;
 
 
 
 
 
 
1664
  }
1665
+ .ea-advanced-data-table-wrap .ea-advanced-data-table th,
1666
+ .ea-advanced-data-table-wrap .ea-advanced-data-table td {
1667
+ background-color: transparent !important;
1668
  }
1669
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th {
1670
+ position: relative;
1671
+ cursor: pointer;
1672
+ }
1673
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:before {
1674
+ content: "";
1675
+ border-left: 4px solid transparent;
1676
+ border-right: 4px solid transparent;
1677
+ border-bottom: 5px solid #4d4d4d;
1678
+ position: absolute;
1679
+ top: 50%;
1680
+ right: 15px;
1681
+ margin-top: -6px;
1682
+ }
1683
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:after {
1684
+ content: "";
1685
+ border-left: 4px solid transparent;
1686
+ border-right: 4px solid transparent;
1687
+ border-top: 5px solid #4d4d4d;
1688
+ position: absolute;
1689
+ top: 50%;
1690
+ right: 15px;
1691
+ margin-top: 1px;
1692
+ }
1693
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:before {
1694
+ display: none;
1695
+ }
1696
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:after {
1697
+ margin-top: -3px;
1698
+ }
1699
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:before {
1700
+ margin-top: -3px;
1701
+ }
1702
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:after {
1703
+ display: none;
1704
+ }
1705
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th {
1706
+ pointer-events: none;
1707
+ }
1708
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:before, .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:after {
1709
+ display: none;
1710
+ }
1711
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-paginated tbody tr {
1712
+ display: none;
1713
+ }
1714
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th {
1715
+ position: relative;
1716
+ }
1717
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:before {
1718
+ border: none;
1719
+ }
1720
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:after {
1721
+ content: "";
1722
+ display: block;
1723
+ height: 100%;
1724
+ position: absolute;
1725
+ right: 0;
1726
+ top: 0;
1727
+ width: 10px;
1728
+ border: none;
1729
+ cursor: col-resize;
1730
+ }
1731
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th,
1732
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td {
1733
+ padding: 0;
1734
+ }
1735
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th textarea,
1736
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td textarea {
1737
+ width: 100%;
1738
+ min-width: 100px;
1739
+ height: 100%;
1740
+ background-color: transparent;
1741
+ border: none;
1742
+ box-shadow: none;
1743
+ resize: none;
1744
+ margin: 0;
1745
+ padding: 0;
1746
+ outline: none;
1747
+ vertical-align: middle;
1748
+ }
1749
+ .ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable.ea-advanced-data-table-paginated tbody tr {
1750
+ display: table-row;
1751
+ }
1752
+ .ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-center {
1753
+ text-align: center;
1754
+ }
1755
+ .ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-right {
1756
+ text-align: right;
1757
+ }
1758
+ .ea-advanced-data-table-wrap .ea-advanced-data-table-pagination a {
1759
+ display: inline-block;
1760
  }
1761
 
1762
  .eael-facebook-feed {
2172
  position: absolute;
2173
  left: 50%;
2174
  -webkit-transform: translateX(-50%);
2175
+ transform: translateX(-50%);
2176
  }
2177
  .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img {
2178
  font-size: 8px;
2211
  }
2212
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i {
2213
  -webkit-transform: rotate(-45deg);
2214
+ transform: rotate(-45deg);
2215
  }
2216
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img {
2217
  -webkit-transform: rotate(-45deg);
2218
+ transform: rotate(-45deg);
2219
  }
2220
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title {
2221
  margin-top: 15px;
2296
  text-align: left;
2297
  -webkit-box-orient: horizontal;
2298
  -webkit-box-direction: normal;
2299
+ flex-direction: row;
2300
  }
2301
  .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item {
2302
  text-align: right;
2303
  -webkit-box-orient: horizontal;
2304
  -webkit-box-direction: reverse;
2305
+ flex-direction: row-reverse;
2306
  }
2307
  }
2308
  @media (max-width: 1024px) {
2314
  text-align: left;
2315
  -webkit-box-orient: horizontal;
2316
  -webkit-box-direction: normal;
2317
+ flex-direction: row;
2318
  }
2319
  .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item {
2320
  text-align: right;
2321
  -webkit-box-orient: horizontal;
2322
  -webkit-box-direction: reverse;
2323
+ flex-direction: row-reverse;
2324
  }
2325
  }
2326
  @media (min-width: 768px) and (max-width: 1024px) {
2442
  text-align: left;
2443
  -webkit-box-orient: horizontal;
2444
  -webkit-box-direction: normal;
2445
+ flex-direction: row;
2446
  }
2447
  .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item {
2448
  text-align: right;
2449
  -webkit-box-orient: horizontal;
2450
  -webkit-box-direction: reverse;
2451
+ flex-direction: row-reverse;
2452
  }
2453
  .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box {
2454
  margin-right: 0 !important;
4156
  text-align: right;
4157
  }
4158
 
4159
+ /*--------------------------*/
4160
+ /* 01. General Styles
4161
+ /*--------------------------*/
4162
+ .clearfix::before,
4163
+ .clearfix::after {
4164
+ content: " ";
4165
+ display: table;
4166
+ clear: both;
4167
+ }
4168
+
4169
+ /*---------------------------------------*/
4170
+ /* 02. Common styles for slider elements
4171
+ /*---------------------------------------*/
4172
+ .eael-testimonial-slider.nav-top-left,
4173
+ .eael-testimonial-slider.nav-top-right,
4174
+ .eael-team-slider.nav-top-left,
4175
+ .eael-team-slider.nav-top-right,
4176
+ .eael-logo-carousel.nav-top-left,
4177
+ .eael-logo-carousel.nav-top-right,
4178
+ .eael-post-carousel.nav-top-left,
4179
+ .eael-post-carousel.nav-top-right,
4180
+ .eael-product-carousel.nav-top-left,
4181
+ .eael-product-carousel.nav-top-right {
4182
+ padding-top: 40px;
4183
+ }
4184
+
4185
+ /*--------------------------------*/
4186
+ /* 10. Contact forms common
4187
+ /*--------------------------------*/
4188
+ .eael-contact-form input[type=text],
4189
+ .eael-contact-form input[type=email],
4190
+ .eael-contact-form input[type=url],
4191
+ .eael-contact-form input[type=tel],
4192
+ .eael-contact-form input[type=date],
4193
+ .eael-contact-form input[type=number],
4194
+ .eael-contact-form textarea {
4195
+ background: #fff;
4196
+ box-shadow: none;
4197
+ -webkit-box-shadow: none;
4198
+ float: none;
4199
+ height: auto;
4200
+ margin: 0;
4201
+ outline: 0;
4202
+ width: 100%;
4203
+ }
4204
+
4205
+ .eael-contact-form input[type=submit] {
4206
+ border: 0;
4207
+ float: none;
4208
+ height: auto;
4209
+ margin: 0;
4210
+ padding: 10px 20px;
4211
+ width: auto;
4212
+ -webkit-transition: all 0.25s linear 0s;
4213
+ transition: all 0.25s linear 0s;
4214
+ }
4215
+
4216
+ .eael-contact-form.placeholder-hide input::-webkit-input-placeholder,
4217
+ .eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder {
4218
+ opacity: 0;
4219
+ visibility: hidden;
4220
+ }
4221
+
4222
+ .eael-contact-form.placeholder-hide input::-moz-placeholder,
4223
+ .eael-contact-form.placeholder-hide textarea::-moz-placeholder {
4224
+ opacity: 0;
4225
+ visibility: hidden;
4226
+ }
4227
+
4228
+ .eael-contact-form.placeholder-hide input:-ms-input-placeholder,
4229
+ .eael-contact-form.placeholder-hide textarea:-ms-input-placeholder {
4230
+ opacity: 0;
4231
+ visibility: hidden;
4232
+ }
4233
+
4234
+ .eael-contact-form.placeholder-hide input:-moz-placeholder,
4235
+ .eael-contact-form.placeholder-hide textarea:-moz-placeholder {
4236
+ opacity: 0;
4237
+ visibility: hidden;
4238
+ }
4239
+
4240
+ .eael-custom-radio-checkbox input[type=checkbox],
4241
+ .eael-custom-radio-checkbox input[type=radio] {
4242
+ -webkit-appearance: none;
4243
+ -moz-appearance: none;
4244
+ border-style: solid;
4245
+ border-width: 0;
4246
+ outline: none;
4247
+ min-width: 1px;
4248
+ width: 15px;
4249
+ height: 15px;
4250
+ background: #ddd;
4251
+ padding: 3px;
4252
+ }
4253
+
4254
+ .eael-custom-radio-checkbox input[type=checkbox]:before,
4255
+ .eael-custom-radio-checkbox input[type=radio]:before {
4256
+ content: "";
4257
+ width: 100%;
4258
+ height: 100%;
4259
+ padding: 0;
4260
+ margin: 0;
4261
+ display: block;
4262
+ }
4263
+
4264
+ .eael-custom-radio-checkbox input[type=checkbox]:checked:before,
4265
+ .eael-custom-radio-checkbox input[type=radio]:checked:before {
4266
+ background: #999;
4267
+ -webkit-transition: all 0.25s linear 0s;
4268
+ transition: all 0.25s linear 0s;
4269
+ }
4270
+
4271
+ .eael-custom-radio-checkbox input[type=radio] {
4272
+ border-radius: 50%;
4273
+ }
4274
+
4275
+ .eael-custom-radio-checkbox input[type=radio]:before {
4276
+ border-radius: 50%;
4277
+ }
4278
+
4279
+ .eael-post-elements-readmore-btn {
4280
+ font-size: 12px;
4281
+ font-weight: 500;
4282
+ -webkit-transition: all 300ms ease-in-out;
4283
+ transition: all 300ms ease-in-out;
4284
+ display: inline-block;
4285
+ }
4286
+
4287
+ .elementor-lightbox .dialog-widget-content {
4288
+ width: 100%;
4289
+ height: 100%;
4290
+ }
4291
+
4292
+ .eael-contact-form-align-left,
4293
+ .elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container {
4294
+ margin: 0 auto 0 0;
4295
+ }
4296
+
4297
+ .eael-contact-form-align-center,
4298
+ .elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container {
4299
+ float: none;
4300
+ margin: 0 auto;
4301
+ }
4302
+
4303
+ .eael-contact-form-align-right,
4304
+ .elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container {
4305
+ margin: 0 0 0 auto;
4306
+ }
4307
+
4308
+ /*----------------------*/
4309
+ /* 14. Gravity Form
4310
+ /*----------------------*/
4311
+ .eael-gravity-form-align-default,
4312
+ .eael-gravity-form-align-left,
4313
+ .eael-gravity-form-btn-align-left {
4314
+ text-align: left;
4315
+ }
4316
+
4317
+ .eael-gravity-form-align-right,
4318
+ .eael-gravity-form-btn-align-right {
4319
+ text-align: right;
4320
+ }
4321
+
4322
+ .eael-gravity-form-align-center,
4323
+ .eael-gravity-form-btn-align-center {
4324
+ text-align: center;
4325
+ }
4326
+
4327
+ .eael-gravity-form .gform_wrapper .gform_footer {
4328
+ margin: 0;
4329
+ padding: 0;
4330
+ }
4331
+
4332
+ .gform_wrapper form li,
4333
+ .gform_wrapper li {
4334
+ list-style: none;
4335
+ }
4336
+
4337
+ .eael-gravity-form .gform_wrapper ul.gform_fields li.gfield {
4338
+ padding: 0;
4339
+ }
4340
+
4341
+ .eael-gravity-form .gform_wrapper textarea {
4342
+ padding: 0;
4343
+ }
4344
+
4345
+ .eael-gravity-form .gform_wrapper .gform_footer input.button,
4346
+ .eael-gravity-form .gform_wrapper .gform_footer input[type=submit],
4347
+ .eael-gravity-form .gform_wrapper .gform_page_footer input.button,
4348
+ .eael-gravity-form .gform_wrapper .gform_page_footer input[type=submit] {
4349
+ margin: 0;
4350
+ }
4351
+
4352
+ .eael-gravity-form.title-description-hide .gform_heading {
4353
+ display: none;
4354
+ }
4355
+
4356
+ .eael-gravity-form.labels-hide .gform_wrapper .top_label .gfield_label,
4357
+ .eael-gravity-form.labels-hide .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label {
4358
+ display: none;
4359
+ }
4360
+
4361
+ .eael-gravity-form-button-full-width .gform_wrapper .gform_footer input[type="submit"] {
4362
+ width: 100%;
4363
+ }
4364
+
4365
+ /*------------------------------*/
4366
+ /* 34. Image accordion
4367
+ /*------------------------------*/
4368
  .eael-img-accordion {
4369
  display: -webkit-box;
4370
  display: flex;
5142
  @media all and (max-width: 900px) {
5143
  .mfp-arrow {
5144
  -webkit-transform: scale(0.75);
5145
+ transform: scale(0.75);
5146
  }
5147
 
5148
  .mfp-arrow-left {
5149
  -webkit-transform-origin: 0;
5150
+ transform-origin: 0;
5151
  }
5152
 
5153
  .mfp-arrow-right {
5154
  -webkit-transform-origin: 100%;
5155
+ transform-origin: 100%;
5156
  }
5157
 
5158
  .mfp-container {
5162
  }
5163
 
5164
  /*----------------------*/
5165
+ /* 13. Ninja Form Styles
5166
  /*----------------------*/
5167
+ .eael-ninja-container input,
5168
+ .eael-ninja-container textarea {
5169
+ height: auto;
5170
+ padding: 10px;
5171
  }
5172
 
5173
+ .eael-contact-form-align-center .eael-ninja-container,
5174
+ .eael-contact-form-btn-align-center .eael-ninja-container .nf-field .nf-field-element input[type="button"] {
5175
+ margin-left: auto !important;
5176
+ margin-right: auto !important;
5177
+ display: block;
5178
+ float: none;
5179
  }
5180
 
5181
+ .eael-contact-form-align-left .eael-ninja-container,
5182
+ .eael-contact-form-btn-align-left .eael-ninja-container .nf-field .nf-field-element input[type="button"] {
5183
+ float: left;
5184
+ width: auto;
5185
  }
5186
 
5187
+ .eael-contact-form-align-right .eael-ninja-container,
5188
+ .eael-contact-form-btn-align-right .eael-ninja-container .nf-field .nf-field-element input[type="button"] {
5189
+ float: right;
5190
+ width: auto;
5191
  }
5192
 
5193
+ .eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="text"],
5194
+ .eael-ninja-container .nf-field .nf-field-element input[type="password"],
5195
+ .eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="email"],
5196
+ .eael-ninja-container .nf-field .nf-field-element input[type="url"],
5197
+ .eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="number"],
5198
+ .eael-ninja-container .nf-field .nf-field-element textarea {
5199
+ max-width: 100%;
5200
  }
5201
 
5202
+ .eael-ninja-form .nf-form-title {
5203
+ display: none;
5204
  }
5205
 
5206
+ .eael-ninja-form-title-yes .nf-form-title {
5207
+ display: block;
5208
  }
5209
 
5210
+ .eael-ninja-form .title-description-hide .nf-form-title {
5211
+ display: none;
 
 
 
5212
  }
5213
 
5214
+ .eael-ninja-form.title-description-hide .nf-form-title {
5215
  display: none;
5216
  }
5217
 
5218
+ .eael-ninja-form .nf-field-label {
 
5219
  display: none;
5220
  }
5221
 
5222
+ .eael-ninja-form-labels-yes .nf-field-label {
5223
+ display: block;
5224
  }
5225
 
5226
+ .eael-ninja-form .submit-container input[type=button] {
5227
+ border: 0;
5228
+ border-radius: 0;
 
 
 
 
 
5229
  }
5230
 
5231
+ .eael-ninja-form-button-full-width .submit-container input[type=button] {
5232
+ width: 100%;
 
 
 
5233
  }
5234
 
5235
+ /*-----------------------------*/
5236
+ /* 15. Post Grid Style
5237
+ /*-----------------------------*/
5238
+ .eael-post-grid {
5239
+ margin: 0 -10px;
5240
  }
5241
 
5242
+ .eael-grid-post {
5243
+ float: left;
5244
+ padding: 10px;
 
 
 
 
 
5245
  }
5246
 
5247
+ .eael-post-carousel .eael-grid-post {
5248
+ float: none;
5249
+ padding: 0;
5250
  }
5251
 
5252
+ .eael-grid-post-holder {
5253
+ border: 1px solid rgba(0, 0, 0, 0.1);
 
 
 
 
 
 
 
 
 
 
 
5254
  }
5255
 
5256
+ .eael-grid-post-holder-inner {
5257
+ height: 100%;
 
 
 
 
 
 
 
 
 
 
5258
  }
5259
 
5260
+ .eael-entry-media {
 
 
 
 
 
5261
  position: relative;
 
 
 
 
 
 
 
5262
  }
5263
 
5264
+ .eael-entry-overlay {
 
 
 
 
 
5265
  position: absolute;
5266
+ top: 0;
5267
+ left: 0;
5268
+ width: 100%;
5269
+ height: 100%;
5270
+ z-index: 2;
5271
+ -webkit-transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
5272
+ transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
5273
+ transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
5274
+ transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1);
5275
  }
5276
 
5277
+ .eael-entry-overlay > a {
 
 
 
 
 
 
5278
  position: absolute;
5279
+ top: 0;
5280
+ left: 0;
5281
+ width: 100%;
5282
+ height: 100%;
5283
+ z-index: 3;
5284
  }
5285
 
5286
+ .eael-entry-title {
5287
+ margin: 10px 0 5px;
5288
+ font-size: 1.2em;
5289
  }
5290
 
5291
+ .eael-entry-thumbnail img {
5292
+ width: 100%;
5293
+ max-width: 100%;
5294
+ vertical-align: middle;
5295
  }
5296
 
5297
+ .eael-entry-thumbnail > img {
 
 
 
 
5298
  height: 100%;
 
 
 
 
 
5299
  }
5300
 
5301
+ .eael-entry-footer .eael-author-avatar {
5302
+ width: 50px;
 
 
5303
  }
5304
 
5305
+ .eael-entry-footer .eael-author-avatar .avatar {
5306
+ border-radius: 50%;
5307
+ }
5308
+
5309
+ .eael-post-grid .eael-entry-footer .eael-entry-meta {
5310
+ padding-left: 8px;
 
5311
  text-align: left;
 
5312
  }
5313
 
5314
+ .eael-grid-post .eael-entry-meta {
5315
+ display: -webkit-box;
5316
+ display: flex;
5317
+ -webkit-box-orient: horizontal;
5318
+ -webkit-box-direction: normal;
5319
+ flex-direction: row;
 
5320
  }
5321
 
5322
+ .eael-grid-post .eael-entry-footer .eael-entry-meta {
5323
+ -webkit-box-orient: vertical;
5324
+ -webkit-box-direction: normal;
5325
+ flex-direction: column;
5326
  }
5327
 
5328
+ .eael-entry-meta > div {
5329
+ font-size: 12px;
5330
+ line-height: 1.2;
5331
+ padding-bottom: 5px;
5332
  }
5333
 
5334
+ .eael-grid-post-excerpt p {
5335
+ margin: 0;
5336
+ font-size: 14px;
5337
  }
5338
 
5339
+ .eael-entry-meta .eael-entry-footer .eael-posted-by {
5340
+ display: block;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5341
  }
5342
 
5343
+ .eael-grid-post .eael-entry-wrapper,
5344
+ .eael-grid-post .eael-entry-footer {
5345
+ padding: 15px;
 
 
 
 
 
 
 
 
 
 
5346
  }
5347
 
5348
+ .eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on {
5349
+ padding-left: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5350
  }
5351
 
5352
+ .eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on::before {
5353
+ content: '\f111';
5354
+ font-family: FontAwesome;
5355
+ color: inherit;
5356
+ opacity: .4;
5357
+ font-size: .8em;
5358
+ padding-right: 7px;
5359
  }
5360
 
5361
+ /*--- Post Grid Thumbnail Hover Effects ---*/
5362
+ .eael-entry-media {
5363
+ position: relative;
5364
  }
5365
 
5366
+ .eael-entry-overlay {
5367
  display: -webkit-box;
5368
  display: flex;
5369
+ -webkit-box-align: center;
5370
+ align-items: center;
5371
+ -webkit-box-pack: center;
5372
+ justify-content: center;
5373
  }
5374
 
5375
+ .eael-entry-overlay > i {
5376
+ color: #fff;
 
 
 
 
 
 
 
 
 
 
 
 
5377
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5378
 
5379
+ /*--- fade in ---*/
5380
+ .eael-entry-overlay.fade-in {
5381
+ visibility: hidden;
5382
+ opacity: 0;
5383
+ -webkit-transition: 300ms;
5384
+ transition: 300ms;
5385
  }
 
 
 
 
 
 
 
5386
 
5387
+ .eael-entry-media:hover .eael-entry-overlay.fade-in {
5388
+ visibility: visible;
5389
+ opacity: 1;
 
 
 
5390
  }
 
 
 
 
 
 
 
5391
 
5392
+ .eael-entry-media:hover .eael-entry-overlay.fade-in > i {
5393
+ -webkit-transform: translate(0);
5394
+ transform: translate(0);
5395
+ opacity: 1;
5396
  }
5397
 
5398
+ /*--- zoom in --- */
5399
+ .eael-entry-overlay.zoom-in {
5400
+ -webkit-transform: scale(0.9);
5401
+ transform: scale(0.9);
5402
+ visibility: hidden;
5403
+ opacity: 0;
5404
+ -webkit-transition: 300ms;
5405
+ transition: 300ms;
 
 
 
5406
  }
5407
 
5408
+ .eael-entry-media:hover .eael-entry-overlay.zoom-in {
5409
+ visibility: visible;
5410
+ opacity: 1;
5411
+ -webkit-transform: scale(1);
5412
+ transform: scale(1);
5413
  }
5414
 
5415
+ /*--- slide up ---*/
5416
+ .eael-entry-overlay.slide-up {
5417
+ -webkit-transform: translateY(100%);
5418
+ transform: translateY(100%);
5419
+ visibility: hidden;
5420
+ opacity: 0;
5421
+ -webkit-transition: 300ms;
5422
+ transition: 300ms;
 
 
 
 
5423
  }
5424
 
5425
+ .eael-entry-media:hover .eael-entry-overlay.slide-up {
5426
+ -webkit-transform: translateY(0);
5427
+ transform: translateY(0);
5428
+ visibility: visible;
5429
+ opacity: 1;
5430
  }
5431
 
5432
+ .eael-entry-media {
5433
+ overflow: hidden;
 
 
5434
  }
5435
 
5436
+ /*--- Post Grid & Carousel Hover Styles ---*/
5437
+ .eael-entry-media.grid-hover-style-fade-in .eael-entry-overlay {
5438
+ opacity: 0;
5439
  }
5440
 
5441
+ .eael-entry-media.grid-hover-style-fade-in:hover .eael-entry-overlay {
5442
+ opacity: 1;
 
5443
  }
5444
 
5445
+ .eael-entry-media.grid-hover-style-none .eael-entry-overlay {
5446
+ display: none;
5447
  }
5448
 
5449
+ .eael-entry-media.grid-hover-style-zoom-in .eael-entry-overlay {
5450
+ -webkit-transform: scale(0.4);
5451
+ transform: scale(0.4);
5452
+ opacity: 0;
 
5453
  }
5454
 
5455
+ .eael-entry-media.grid-hover-style-zoom-in:hover .eael-entry-overlay {
5456
+ -webkit-transform: scale(1);
5457
+ transform: scale(1);
5458
+ opacity: 1;
 
 
5459
  }
5460
 
5461
+ .eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay {
5462
+ -webkit-transform: translateY(-100%);
5463
+ transform: translateY(-100%);
5464
  }
5465
 
5466
+ .eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay > i {
5467
+ -webkit-transform: translateY(-100px);
5468
+ transform: translateY(-100px);
5469
+ -webkit-transition-delay: 100ms;
5470
+ transition-delay: 100ms;
5471
+ -webkit-transition-duration: 300ms;
5472
+ transition-duration: 300ms;
 
 
 
 
 
 
 
 
5473
  }
5474
 
5475
+ .eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay {
5476
+ -webkit-transform: translate(0);
5477
+ transform: translate(0);
 
 
 
 
 
 
 
 
 
 
5478
  }
5479
 
5480
+ .eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay > i {
5481
+ -webkit-transform: translateY(0);
5482
+ transform: translateY(0);
 
 
 
 
 
 
 
 
5483
  }
5484
 
5485
+ .eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay {
5486
+ -webkit-transform: translateY(100%);
5487
+ transform: translateY(100%);
5488
+ visibility: hidden;
5489
+ opacity: 0;
 
 
 
 
 
 
 
 
5490
  }
5491
 
5492
+ .eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay > i {
5493
+ -webkit-transform: translateY(100px);
5494
+ transform: translateY(100px);
5495
+ -webkit-transition-delay: 100ms;
5496
+ transition-delay: 100ms;
5497
+ -webkit-transition-duration: 300ms;
5498
+ transition-duration: 300ms;
5499
  }
5500
 
5501
+ .eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay {
5502
+ -webkit-transform: translate(0);
5503
+ transform: translate(0);
5504
+ visibility: visible;
5505
+ opacity: 1;
 
 
 
 
 
 
5506
  }
5507
 
5508
+ .eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay > i {
5509
+ -webkit-transform: translateY(0);
5510
+ transform: translateY(0);
 
5511
  }
5512
 
5513
+ /*--- Post Grid Column Styles ---*/
5514
+ .eael-col-1 .eael-post-grid-column {
5515
+ float: none;
5516
+ width: 100%;
 
5517
  }
5518
 
5519
+ .eael-col-2 .eael-post-grid-column {
5520
+ float: left;
5521
+ width: 50%;
 
 
 
 
 
 
 
 
5522
  }
5523
 
5524
+ .eael-col-3 .eael-post-grid-column {
5525
+ float: left;
5526
+ width: 33.3333%;
 
 
 
 
5527
  }
5528
 
5529
+ .eael-col-4 .eael-post-grid-column {
5530
+ float: left;
5531
+ width: 25%;
5532
  }
5533
 
5534
+ .eael-col-5 .eael-post-grid-column {
5535
+ float: left;
5536
+ width: 20%;
5537
  }
5538
 
5539
+ .eael-col-6 .eael-post-grid-column {
5540
+ float: left;
5541
+ width: 16.6666%;
 
5542
  }
5543
 
5544
+ @media only screen and (max-width: 979px) {
5545
+ .eael-col-1 .eael-post-grid-column,
5546
+ .eael-col-2 .eael-post-grid-column,
5547
+ .eael-col-3 .eael-post-grid-column,
5548
+ .eael-col-4 .eael-post-grid-column,
5549
+ .eael-col-5 .eael-post-grid-column,
5550
+ .eael-col-6 .eael-post-grid-column {
5551
+ width: 33.3333%;
5552
+ }
5553
+ }
5554
+ @media only screen and (max-width: 767px) {
5555
+ .eael-col-1 .eael-post-grid-column,
5556
+ .eael-col-2 .eael-post-grid-column,
5557
+ .eael-col-3 .eael-post-grid-column,
5558
+ .eael-col-4 .eael-post-grid-column,
5559
+ .eael-col-5 .eael-post-grid-column,
5560
+ .eael-col-6 .eael-post-grid-column {
5561
+ width: 50%;
5562
+ }
5563
+ }
5564
+ @media only screen and (max-width: 480px) {
5565
+ .eael-col-1 .eael-post-grid-column,
5566
+ .eael-col-2 .eael-post-grid-column,
5567
+ .eael-col-3 .eael-post-grid-column,
5568
+ .eael-col-4 .eael-post-grid-column,
5569
+ .eael-col-5 .eael-post-grid-column,
5570
+ .eael-col-6 .eael-post-grid-column {
5571
+ float: none;
5572
+ width: 100%;
5573
+ }
5574
+ }
5575
+ .eael-author-avatar > a {
5576
  display: block;
 
 
 
 
 
 
5577
  }
5578
 
5579
+ .eael-entry-footer {
5580
+ overflow: hidden;
5581
+ display: -webkit-box;
5582
+ display: flex;
5583
  }
5584
 
5585
+ .eael-entry-footer > div {
5586
+ display: inline-block;
5587
+ float: left;
5588
  }
5589
 
5590
+ /*----------------------------*/
5591
+ /* 06. Post Timeline Styles
5592
+ /*----------------------------*/
5593
+ .eael-post-timeline {
5594
+ margin-bottom: 0;
5595
+ min-height: 100%;
5596
+ overflow: hidden;
5597
  position: relative;
 
 
5598
  }
5599
 
5600
+ .eael-timeline-column {
5601
+ width: 50%;
5602
+ margin-left: 0;
5603
+ float: left;
5604
+ margin-top: 0 !important;
5605
  }
5606
 
5607
+ .eael-timeline-post {
5608
+ position: relative;
5609
  }
5610
 
5611
+ .eael-timeline-post:after {
5612
+ background-color: rgba(83, 85, 86, 0.2);
5613
  content: "";
5614
+ width: 2px;
5615
+ height: 245px;
5616
  position: absolute;
5617
+ right: 0;
5618
+ top: 70px;
 
 
 
 
 
 
5619
  }
5620
 
5621
+ .eael-timeline-post:nth-child(2n):after {
5622
+ display: none;
 
 
 
 
 
 
 
 
 
 
 
5623
  }
5624
 
5625
+ .eael-timeline-bullet {
5626
+ background-color: #9fa9af;
5627
+ border: 5px solid #fff;
5628
+ border-radius: 50%;
5629
+ box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1);
5630
  content: "";
5631
+ height: 20px;
5632
  position: absolute;
5633
+ right: -9px;
5634
+ top: 60px;
5635
+ width: 20px;
5636
+ z-index: 3;
5637
+ cursor: pointer;
 
 
 
5638
  }
5639
 
5640
+ .eael-timeline-post:nth-child(2n) .eael-timeline-bullet {
5641
+ background-color: #9fa9af;
5642
+ border: 5px solid #fff;
5643
+ border-radius: 50%;
5644
+ bottom: 36px;
5645
+ content: "";
5646
+ height: 20px;
5647
+ left: -11px;
5648
  position: absolute;
5649
+ top: 300px;
5650
+ width: 20px;
5651
+ z-index: 3;
 
 
 
 
 
 
 
5652
  }
5653
 
5654
+ .eael-timeline-post-inner {
5655
+ background: linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 transparent;
5656
+ border: 8px solid #e5eaed;
5657
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15);
5658
+ float: right;
5659
+ margin: 30px 40px 30px auto;
5660
  position: relative;
5661
+ height: 320px;
5662
+ width: calc(100% - 40px);
 
 
 
 
 
 
5663
  }
5664
 
5665
+ .eael-timeline-post:nth-child(even) .eael-timeline-post-inner {
5666
+ float: left;
5667
+ margin-left: 40px;
 
 
 
 
 
5668
  }
5669
 
5670
+ .eael-timeline-post-inner:after {
5671
+ border-color: transparent transparent transparent #e5eaed;
5672
+ border-style: solid;
5673
+ border-width: 15px;
5674
+ content: "";
5675
+ height: 0;
5676
+ position: absolute;
5677
+ right: -36px;
5678
+ top: 17px;
5679
+ width: 0;
5680
  }
5681
 
5682
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner:after {
5683
+ border-color: transparent #e5eaed transparent transparent;
5684
+ border-style: solid;
5685
+ border-width: 15px;
5686
+ content: "";
5687
+ height: 0;
5688
+ left: -36px;
5689
+ position: absolute;
5690
+ top: 257px;
5691
+ width: 0;
5692
  }
5693
 
5694
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner::after {
5695
+ border-left-color: transparent !important;
5696
  }
5697
 
5698
+ .eael-timeline-post p {
5699
+ margin: 1.6rem 0 0 0;
5700
+ font-size: 0.9em;
5701
+ line-height: 1.6em;
5702
+ }
5703
+
5704
+ .eael-timeline-post-image {
5705
+ background-size: cover;
5706
+ background-position: center center;
5707
+ background-repeat: no-repeat;
5708
+ display: block;
5709
+ height: 100%;
5710
+ overflow: hidden;
5711
  position: relative;
5712
+ opacity: .6;
5713
+ -webkit-transition: all .3s;
5714
+ transition: all .3s;
5715
  }
5716
 
5717
+ .eael-timeline-post-title {
5718
+ bottom: 40px;
5719
  position: absolute;
5720
  width: 100%;
 
 
 
 
 
 
 
5721
  }
5722
 
5723
+ .eael-timeline-post-title h2 {
5724
+ color: #fff;
5725
+ font-size: 20px;
5726
+ font-weight: bold;
5727
+ letter-spacing: 1px;
5728
+ line-height: 24px;
5729
+ padding: 0 25px;
5730
+ text-align: left;
5731
+ text-transform: uppercase;
5732
  }
5733
 
5734
+ .eael-timeline-post-excerpt {
5735
+ opacity: 0;
5736
+ position: absolute;
5737
+ top: 0;
5738
+ left: 0;
5739
+ -webkit-transition: all .3s;
5740
+ transition: all .3s;
5741
+ }
5742
+
5743
+ .eael-timeline-post-excerpt p {
5744
+ color: #fff;
5745
  font-size: 14px;
5746
+ padding: 25px;
 
5747
  }
5748
 
5749
+ .eael-timeline-post-inner:hover .eael-timeline-post-excerpt {
5750
+ opacity: 1;
5751
+ top: 10px;
 
 
5752
  }
5753
 
5754
+ .eael-timeline-post-inner:hover .eael-timeline-post-image {
5755
+ opacity: .3;
 
 
 
 
 
 
 
 
 
5756
  }
5757
 
5758
+ .eael-timeline-post time {
5759
+ opacity: 0;
5760
+ background-color: rgba(0, 0, 0, 0.7);
5761
+ color: #fff;
5762
+ font-size: 10px;
5763
+ border-radius: 20px;
5764
+ position: absolute;
5765
+ right: -97px;
5766
+ width: 100px;
5767
+ height: 30px;
5768
+ line-height: 30px;
5769
+ text-align: center;
5770
+ top: 50px;
5771
+ z-index: 99;
5772
+ -webkit-transition: all .5s;
5773
+ transition: all .5s;
5774
  }
5775
 
5776
+ .eael-timeline-post:nth-child(2n) time {
5777
+ background-color: rgba(0, 0, 0, 0.7);
5778
+ border-radius: 20px;
5779
+ color: #fff;
5780
+ font-size: 10px;
5781
+ height: 30px;
5782
+ left: -99px;
5783
+ line-height: 30px;
5784
+ position: absolute;
5785
+ text-align: center;
5786
+ top: 290px;
5787
+ width: 100px;
5788
+ z-index: 99;
5789
  }
5790
 
5791
+ .eael-timeline-post time:before {
5792
+ border-bottom: 5px solid rgba(0, 0, 0, 0.7);
5793
+ border-left: 5px solid transparent;
5794
+ border-right: 5px solid transparent;
5795
+ content: "";
5796
+ height: 0;
5797
+ left: 45px;
5798
+ position: absolute;
5799
+ top: -5px;
5800
+ width: 0;
5801
  }
5802
 
5803
+ .eael-timeline-post:hover time {
5804
+ opacity: 1;
 
 
5805
  }
5806
 
5807
+ .eael-timeline-post::after {
5808
+ height: 100%;
 
 
 
 
 
 
5809
  }
5810
 
5811
+ .eael-post-timeline .eael-timeline-post:nth-last-child(2)::after {
5812
+ height: 245px;
5813
  }
5814
 
5815
+ .eael-post-timeline .eael-timeline-post:last-child::after {
5816
+ display: none;
5817
+ }
5818
+
5819
+ .eael-load-more-button-wrap {
5820
+ display: -webkit-box;
5821
+ display: flex;
5822
+ }
5823
+
5824
+ /*--- Responsive Style for Post Timeline ---*/
5825
+ @media only screen and (max-width: 1366px) {
5826
+ .eael-timeline-post-title h2 {
5827
+ font-size: 0.8em;
5828
  }
5829
 
5830
+ .eael-timeline-post-excerpt p {
5831
+ font-size: 13px;
 
 
 
5832
  }
5833
  }
5834
+ @media only screen and (max-width: 1169px) {
5835
+ .eael-timeline-post-inner {
5836
+ height: 320px;
5837
+ }
5838
+ }
5839
+ @media only screen and (max-width: 992px) {
5840
+ .eael-post-timeline {
5841
+ margin-left: 0;
5842
  }
5843
 
5844
+ .eael-timeline-bullet,
5845
+ .eael-timeline-post:after,
5846
+ .eael-timeline-post:before,
5847
+ .eael-timeline-post-inner:after {
5848
+ display: none;
5849
  }
5850
 
5851
+ .eael-timeline-post {
5852
+ display: inline-block;
5853
+ float: left !important;
5854
+ width: 50% !important;
5855
+ margin: 15px auto;
5856
  }
 
 
 
 
 
5857
 
5858
+ .eael-timeline-post-inner {
5859
+ height: 320px;
5860
+ padding-bottom: 30px;
5861
+ }
5862
 
5863
+ .eael-timeline-post-title {
5864
+ bottom: 50px;
5865
+ }
5866
 
5867
+ .eael-timeline-post-title h2 {
5868
+ font-size: 0.8em;
5869
+ line-height: 1.2em;
5870
+ }
5871
 
5872
+ .eael-timeline-post .eael-timeline-post-inner {
5873
+ margin: 0 10px auto 0;
5874
+ width: 90%;
5875
+ }
5876
+
5877
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
5878
+ margin: 0 auto 0 10px;
5879
+ width: 90%;
5880
+ }
5881
+
5882
+ .eael-timeline-post-excerpt {
5883
+ opacity: 0 !important;
5884
+ }
5885
+
5886
+ .eael-timeline-post-image {
5887
+ opacity: .3;
5888
+ }
5889
+
5890
+ .eael-timeline-post time,
5891
+ .eael-timeline-post:nth-child(2n) time {
5892
+ background-color: #fff;
5893
+ border-radius: 0;
5894
+ color: #444;
5895
+ font-size: 12px;
5896
+ text-transform: uppercase;
5897
+ left: 0;
5898
+ opacity: 1;
5899
+ padding-top: 3px;
5900
+ top: 275px;
5901
+ width: 100%;
5902
+ }
5903
+
5904
+ time:before {
5905
+ display: none;
5906
+ }
5907
  }
5908
+ @media only screen and (max-width: 767px) {
5909
+ .eael-timeline-post {
5910
+ display: block;
5911
+ float: none !important;
5912
+ margin: 20px auto;
5913
+ width: 100% !important;
5914
+ }
5915
 
5916
+ .eael-timeline-post .eael-timeline-post-inner,
5917
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
5918
+ display: block;
5919
+ float: none;
5920
+ margin: 0 auto;
5921
+ }
5922
  }
5923
+ @media only screen and (max-width: 479px) {
5924
+ .eael-timeline-post .eael-timeline-post-inner,
5925
+ .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner {
5926
+ height: 250px;
5927
+ margin: 0 auto;
5928
+ width: 95%;
5929
+ }
5930
 
5931
+ .eael-timeline-post time,
5932
+ .eael-timeline-post:nth-child(2n) time {
5933
+ top: 205px;
5934
+ }
 
 
5935
  }
5936
 
5937
+ /* -------------------------------- */
5938
+ /* 21. Pricing Table
5939
+ /* -------------------------------- */
5940
+ .eael-pricing {
5941
+ -webkit-display: flex;
5942
+ display: -webkit-box;
5943
+ display: flex;
5944
+ -webkit-box-pack: center;
5945
+ justify-content: center;
5946
+ -webkit-box-align: center;
5947
+ align-items: center;
5948
  }
5949
 
5950
+ .eael-pricing .eael-pricing-item {
5951
+ width: 100%;
5952
+ height: auto;
5953
+ margin: 0;
5954
  }
5955
 
5956
+ .eael-pricing .eael-pricing-button {
5957
+ display: inline-block;
5958
+ padding: 12px 25px;
5959
+ background: #00C853;
5960
+ font-size: 14px;
5961
+ font-weight: 600;
5962
+ color: #fff;
5963
+ text-transform: uppercase;
5964
+ text-decoration: none;
5965
+ -webkit-transition: .3s;
5966
+ transition: .3s;
5967
+ border-radius: 4px;
5968
  }
5969
 
5970
+ .eael-pricing .eael-pricing-button:hover {
5971
+ background: #03b048;
 
5972
  }
5973
 
5974
+ .eael-pricing .eael-pricing-item ul {
5975
+ padding: 0px;
5976
+ margin: 0px;
5977
+ list-style: none;
5978
  }
5979
 
5980
+ .eael-pricing .eael-pricing-item ul li.disable-item {
5981
+ text-decoration: line-through;
5982
+ opacity: 0.5;
 
5983
  }
5984
 
5985
+ .eael-pricing .eael-pricing-item ul li span.li-icon {
5986
+ color: #00C853;
5987
+ margin-right: 6px;
 
 
 
 
 
5988
  }
5989
 
5990
+ .eael-pricing .eael-pricing-item ul li.disable-item span.li-icon {
5991
+ color: #EF5350;
 
 
 
 
5992
  }
5993
 
5994
+ /*--- Pricing Table: Style 1 ---*/
5995
+ .eael-pricing.style-1 {
5996
+ position: relative;
5997
+ z-index: 0;
5998
  text-align: center;
5999
  }
6000
 
6001
+ .eael-pricing.style-1 .eael-pricing-item {
6002
+ border: 1px solid rgba(9, 9, 9, 0.1);
6003
+ padding: 30px;
6004
+ border-radius: 5px;
6005
+ -webkit-transition: .5s;
6006
+ transition: .5s;
6007
  }
6008
 
6009
+ .eael-pricing.style-1 .eael-pricing-item:hover {
6010
+ box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
 
6011
  }
6012
 
6013
+ .eael-pricing.style-1 .eael-pricing-item.featured {
6014
+ position: relative;
 
6015
  }
6016
 
6017
+ .eael-pricing.style-1 .eael-pricing-item.ribbon-1:before {
6018
+ content: "";
6019
+ position: absolute;
6020
+ width: 100%;
6021
+ height: 3px;
6022
+ background: #00C853;
6023
+ top: 0px;
6024
+ left: 0px;
6025
+ right: 0px;
6026
+ z-index: 1;
6027
+ border-radius: 5px 5px 0px 0px;
6028
+ }
6029
+
6030
+ .eael-pricing.style-1 .eael-pricing-item.ribbon-2:before {
6031
+ content: "Featured";
6032
+ position: absolute;
6033
+ width: auto;
6034
+ background: #00C853;
6035
  color: #fff;
6036
+ top: 35px;
6037
+ right: -15px;
6038
+ z-index: 10;
6039
+ font-size: 10px;
6040
+ font-weight: 600;
6041
+ text-transform: uppercase;
6042
+ padding: 5px 10px;
6043
  }
6044
 
6045
+ .eael-pricing.style-1 .eael-pricing-item.ribbon-2:after {
6046
+ content: "";
6047
+ position: absolute;
6048
+ top: 20px;
6049
+ right: -15px;
6050
+ width: 0;
6051
+ height: 0;
6052
+ border-bottom: 15px solid #00C853;
6053
+ border-right: 15px solid transparent;
6054
+ z-index: 9;
6055
+ opacity: 0.9;
6056
  }
6057
 
6058
+ .eael-pricing.style-1 .eael-pricing-item.ribbon-3:before {
6059
+ content: "Featured";
6060
  position: absolute;
6061
+ width: auto;
6062
+ background: rgba(0, 0, 0, 0.6);
6063
+ color: #fff;
6064
+ top: 15px;
6065
+ right: 15px;
6066
+ z-index: 10;
6067
+ font-size: 11px;
6068
+ font-weight: 600;
6069
+ text-transform: uppercase;
6070
+ padding: 5px 15px;
6071
  }
6072
 
6073
+ .eael-pricing.style-1 .eael-pricing-item .header {
6074
+ display: block;
6075
+ position: relative;
6076
+ z-index: 0;
6077
+ padding-bottom: 15px;
6078
+ margin-bottom: 15px;
6079
  }
6080
 
6081
+ .eael-pricing.style-1 .eael-pricing-item .header:after {
6082
+ content: "";
6083
+ position: absolute;
6084
+ width: 140px;
6085
+ height: 1px;
6086
+ bottom: 0px;
6087
+ left: 0px;
6088
+ right: 0px;
6089
+ margin: 0 auto;
6090
+ z-index: 1;
6091
+ background: rgba(9, 9, 9, 0.1);
6092
  }
6093
 
6094
+ .eael-pricing.style-1 .eael-pricing-item .header .title {
6095
+ font-weight: 700;
6096
+ line-height: 30px;
6097
+ margin: 0px;
6098
  }
6099
 
6100
+ .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag {
6101
+ position: relative;
6102
+ z-index: 0;
6103
+ padding: 15px 0px;
6104
+ margin-bottom: 15px;
6105
  }
6106
 
6107
+ .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after {
6108
+ content: "";
6109
+ position: absolute;
6110
+ width: 140px;
6111
+ height: 1px;
6112
+ bottom: 0px;
6113
+ left: 0px;
6114
+ right: 0px;
6115
+ margin: 0 auto;
6116
+ z-index: 1;
6117
+ background: rgba(9, 9, 9, 0.04);
6118
  }
6119
 
6120
+ .eael-pricing.style-1 .eael-pricing-item .price-tag {
6121
+ position: relative;
6122
+ display: inline-block;
6123
+ font-size: 28px;
6124
+ font-weight: 500;
6125
+ line-height: 0px;
6126
+ margin: 0px auto;
 
 
6127
  }
6128
+
6129
+ .eael-pricing.style-1 .eael-pricing-item .price-tag .price-currency {
6130
+ font-size: 24px;
6131
+ font-weight: 700;
6132
  }
6133
+
6134
+ .eael-pricing.style-1 .eael-pricing-item .price-period {
6135
+ color: #999;
6136
+ }
6137
+
6138
+ .eael-pricing.style-1 .eael-pricing-item .body ul {
6139
+ display: block;
6140
  width: 100%;
6141
+ margin-bottom: 15px;
 
6142
  }
6143
+
6144
+ .eael-pricing.style-1 .eael-pricing-item .body ul li {
6145
+ display: block;
6146
  width: 100%;
6147
+ height: auto;
6148
+ padding: 10px 0px;
6149
+ font-size: 14px;
6150
+ color: #6d6d6d;
6151
+ border-bottom: 1px solid rgba(9, 9, 9, 0.04);
6152
  }
6153
+
6154
+ .eael-pricing.style-1 .eael-pricing-item .body ul li:last-child {
6155
+ border: none;
 
 
 
 
 
 
 
 
6156
  }
6157
+
6158
+ .eael-pricing.style-1 .eael-pricing-item.featured-large {
6159
+ padding: 60px 0px;
 
6160
  }
6161
+
6162
+ /*--- Pricing Table : Style 2 ---*/
6163
+ .eael-pricing.style-2 {
6164
+ position: relative;
6165
+ z-index: 0;
6166
+ text-align: center;
6167
  }
6168
+
6169
+ .eael-pricing.style-2 .eael-pricing-item {
6170
+ padding: 30px 0px;
6171
+ border-radius: 5px;
6172
+ margin: 0px;
6173
+ border: 1px solid rgba(9, 9, 9, 0.1);
 
6174
  }
6175
+
6176
+ .eael-pricing.style-2 .eael-pricing-item.featured {
6177
+ box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
 
 
 
 
 
 
6178
  }
6179
+
6180
+ .eael-pricing.style-2 .eael-pricing-item.ribbon-1:before {
6181
+ content: "";
 
 
 
 
 
 
 
 
 
 
 
 
6182
  position: absolute;
6183
+ width: 100%;
6184
+ height: 3px;
6185
+ background: #00C853;
6186
+ top: 0px;
6187
+ left: 0px;
6188
+ right: 0px;
6189
  z-index: 1;
6190
+ border-radius: 5px 5px 0px 0px;
 
 
 
 
 
 
6191
  }
6192
+
6193
+ .eael-pricing.style-2 .eael-pricing-item.ribbon-2:before {
6194
+ content: "Featured";
6195
+ position: absolute;
6196
+ width: auto;
6197
+ background: #00C853;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6198
  color: #fff;
6199
+ top: 35px;
6200
+ right: -15px;
6201
+ z-index: 10;
6202
+ font-size: 10px;
6203
+ font-weight: 600;
6204
+ text-transform: uppercase;
6205
+ padding: 5px 10px;
6206
  }
6207
+
6208
+ .eael-pricing.style-2 .eael-pricing-item.ribbon-2:after {
6209
+ content: "";
6210
+ position: absolute;
6211
+ top: 20px;
6212
+ right: -15px;
6213
+ width: 0;
6214
+ height: 0;
6215
+ border-bottom: 15px solid #00C853;
6216
+ border-right: 15px solid transparent;
6217
+ z-index: 9;
6218
+ opacity: 0.9;
6219
  }
6220
+
6221
+ .eael-pricing.style-2 .eael-pricing-item.ribbon-3:before {
6222
+ content: "Featured";
6223
+ position: absolute;
6224
+ width: auto;
6225
+ background: rgba(0, 0, 0, 0.6);
6226
+ color: #fff;
6227
+ top: 15px;
6228
+ right: 15px;
6229
+ z-index: 10;
6230
+ font-size: 11px;
6231
+ font-weight: 600;
6232
+ text-transform: uppercase;
6233
+ padding: 5px 15px;
6234
  }
6235
+
6236
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon {
6237
+ display: inline-block;
6238
+ position: relative;
6239
+ width: 80px;
6240
+ height: 80px;
6241
+ background: #00c853;
6242
+ border-radius: 50%;
6243
+ margin-bottom: 30px;
6244
+ -webkit-transition: .5s;
6245
+ transition: .5s;
6246
+ overflow: hidden;
6247
  }
6248
+
6249
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon,
6250
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon {
6251
+ display: -webkit-box;
6252
+ display: flex;
6253
+ -webkit-box-align: center;
6254
+ align-items: center;
6255
+ -webkit-box-pack: center;
6256
+ justify-content: center;
6257
  }
6258
+
6259
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon i {
6260
+ font-size: 30px;
6261
+ color: #fff;
6262
+ -webkit-transition: .5s;
6263
+ transition: .5s;
 
6264
  }
6265
+
6266
+ .eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon {
6267
+ background: #43A047;
6268
  }
6269
+
6270
+ .eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon i {
6271
+ color: #fff;
 
 
6272
  }
6273
+
6274
+ .eael-pricing.style-2 .eael-pricing-item .header {
6275
+ background: #C8E6C9;
6276
+ padding: 25px 30px;
6277
+ margin-bottom: 15px;
6278
  position: relative;
6279
+ z-index: 0;
 
 
 
 
 
 
6280
  }
6281
+
6282
+ .eael-pricing.style-2 .eael-pricing-item.featured .header:after {
6283
+ content: "";
6284
+ position: absolute;
6285
+ width: 100%;
6286
+ height: 100%;
6287
+ top: 0px;
6288
+ left: 0px;
6289
+ right: 0px;
6290
+ bottom: 0px;
6291
+ z-index: -1;
6292
+ background: rgba(255, 255, 255, 0.4);
6293
  }
6294
+
6295
+ .eael-pricing.style-2 .eael-pricing-item .header .title {
6296
+ font-size: 28px;
6297
+ font-weight: 700;
6298
+ line-height: 40px;
6299
+ margin: 0px;
6300
  }
6301
+
6302
+ .eael-pricing.style-2 .eael-pricing-item .header .subititle {
6303
+ font-size: 14px;
6304
+ font-weight: 600;
6305
+ color: #6d6d6d;
 
 
6306
  }
6307
+
6308
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag {
6309
  position: relative;
6310
+ z-index: 0;
6311
+ padding: 15px 0px;
6312
+ margin-bottom: 15px;
6313
  }
6314
+
6315
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after {
6316
+ content: "";
6317
  position: absolute;
6318
+ width: 140px;
6319
+ height: 1px;
6320
+ bottom: 0px;
6321
+ left: 0px;
6322
+ right: 0px;
6323
+ margin: 0 auto;
6324
+ z-index: 1;
6325
+ background: rgba(9, 9, 9, 0.04);
6326
  }
6327
+
6328
+ .eael-pricing.style-2 .eael-pricing-item .price-tag {
6329
+ position: relative;
 
 
 
6330
  display: inline-block;
6331
+ font-size: 28px;
6332
+ font-weight: 500;
6333
+ line-height: 0px;
6334
+ margin: 0px auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6335
  }
6336
+
6337
+ .eael-pricing.style-2 .eael-pricing-item .price-tag .price-currency {
6338
+ font-size: 24px;
6339
+ font-weight: 700;
6340
+ color: #00C853;
 
 
6341
  }
6342
+
6343
+ .eael-pricing.style-2 .eael-pricing-item .price-period {
6344
+ color: #999;
6345
  }
6346
+
6347
+ .eael-pricing.style-2 .eael-pricing-item .body ul {
6348
+ display: block;
6349
+ width: 100%;
6350
+ margin-bottom: 15px;
6351
  }
6352
+
6353
+ .eael-pricing.style-2 .eael-pricing-item .body ul li {
6354
+ display: block;
6355
+ width: 100%;
6356
+ height: auto;
6357
+ padding: 10px 15px;
6358
  font-size: 14px;
6359
+ color: #6d6d6d;
6360
+ border-bottom: 1px solid rgba(9, 9, 9, 0.04);
 
 
 
 
6361
  }
6362
+
6363
+ .eael-pricing.style-2 .eael-pricing-item .body ul li:last-child {
6364
+ border: none;
6365
  }
6366
+
6367
+ /*--- Media Query ---*/
6368
+ @media only screen and (min-width: 768px) and (max-width: 992px) {
6369
+ .eael-pricing {
6370
+ display: block;
6371
+ }
6372
+
6373
+ .eael-pricing .eael-pricing-item,
6374
+ .eael-pricing.style-2 .eael-pricing-item,
6375
+ .eael-pricing.style-4 .eael-pricing-item {
6376
+ width: 100%;
6377
+ margin: 0 auto 30px auto;
6378
+ }
 
 
6379
  }
6380
+ @media only screen and (max-width: 480px) {
6381
+ .eael-pricing {
6382
+ display: block;
6383
+ }
6384
+
6385
+ .eael-pricing .eael-pricing-item {
6386
+ width: 100%;
6387
+ }
6388
+
6389
+ .eael-pricing .eael-pricing-item,
6390
+ .eael-pricing.style-2 .eael-pricing-item,
6391
+ .eael-pricing.style-4 .eael-pricing-item {
6392
+ margin: 0 auto 30px auto;
6393
+ }
6394
  }
6395
+ /*--- Page Builder Related Style ---*/
6396
+ .eael-pricing-content-align-center .eael-pricing {
6397
+ text-align: center;
 
 
 
 
 
 
 
 
 
6398
  }
6399
+
6400
+ .eael-pricing-content-align-left .eael-pricing {
6401
+ text-align: left;
 
 
 
 
 
6402
  }
6403
+
6404
+ .eael-pricing-content-align-right .eael-pricing {
6405
+ text-align: right;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6406
  }
6407
+
6408
+ .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag {
6409
+ padding-left: 45px;
 
6410
  }
6411
+
6412
+ .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag:before {
6413
+ left: 30px;
 
6414
  }
6415
+
6416
+ .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag {
6417
+ padding-right: 30px;
 
 
6418
  }
6419
+
6420
+ .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .header,
6421
+ .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .footer,
6422
+ .eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .header,
6423
+ .eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .footer {
6424
+ padding-left: 30px;
6425
+ padding-right: 30px;
6426
  }
6427
+
6428
+ .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .header,
6429
+ .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .footer,
6430
+ .eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .header,
6431
+ .eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .footer {
6432
+ padding-right: 30px;
6433
+ padding-left: 30px;
6434
  }
6435
 
6436
+ .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .body ul li,
6437
+ .eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .body ul li {
6438
+ padding-left: 30px;
6439
+ }
6440
 
6441
+ .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .body ul li,
6442
+ .eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .body ul li {
6443
+ padding-right: 30px;
6444
+ }
6445
 
6446
+ .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after {
6447
+ -webkit-transform: translateX(-80%);
6448
+ transform: translateX(-80%);
6449
+ }
6450
+
6451
+ .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after {
6452
+ -webkit-transform: translateX(80%);
6453
+ transform: translateX(80%);
6454
+ }
6455
+
6456
+ .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,
6457
+ .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after {
6458
+ -webkit-transform: translateX(0%);
6459
+ transform: translateX(0%);
6460
+ }
6461
+
6462
+ .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,
6463
+ .eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .header:after,
6464
+ .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,
6465
+ .eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,
6466
+ .eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after,
6467
+ .eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after {
6468
+ margin: 0;
6469
+ width: 100%;
6470
+ }
6471
 
6472
+ /*--- Button Alignment ---*/
6473
+ .eael-pricing-button-align-right .eael-pricing.style-1 .footer,
6474
+ .eael-pricing-button-align-right .eael-pricing.style-2 .footer,
6475
+ .eael-pricing-button-align-right .eael-pricing.style-3 .footer,
6476
+ .eael-pricing-button-align-right .eael-pricing.style-4 .footer {
6477
+ text-align: right;
6478
+ }
6479
 
6480
+ .eael-pricing-button-align-center .eael-pricing.style-1 .footer,
6481
+ .eael-pricing-button-align-center .eael-pricing.style-2 .footer,
6482
+ .eael-pricing-button-align-center .eael-pricing.style-3 .footer,
6483
+ .eael-pricing-button-align-center .eael-pricing.style-4 .footer {
6484
+ text-align: center;
6485
+ }
6486
 
6487
+ .eael-pricing-button-align-left .eael-pricing.style-1 .footer,
6488
+ .eael-pricing-button-align-left .eael-pricing.style-2 .footer,
6489
+ .eael-pricing-button-align-left .eael-pricing.style-3 .footer,
6490
+ .eael-pricing-button-align-left .eael-pricing.style-4 .footer {
6491
+ text-align: left;
6492
  }
 
 
 
 
6493
 
6494
+ .eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-2 .footer,
6495
+ .eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-4 .footer {
6496
+ padding-right: 30px;
6497
+ }
6498
 
6499
+ .eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-2 .footer,
6500
+ .eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-4 .footer {
6501
+ padding-left: 30px;
6502
+ }
6503
 
6504
+ /*--- Only In Pro Alert ---*/
6505
+ .only-in-pro {
6506
+ width: 100%;
6507
+ -webkit-display: flex;
6508
+ display: -webkit-box;
6509
+ display: flex;
6510
+ -webkit-box-align: center;
6511
+ align-items: center;
6512
+ -webkit-box-pack: center;
6513
+ justify-content: center;
6514
+ padding: 15px;
6515
+ min-width: 200px;
6516
+ background: #EF5350;
6517
+ color: #fff;
6518
+ text-align: center;
6519
+ }
6520
 
6521
+ .only-in-pro .title {
6522
+ font-family: 'Roboto', sans-serif;
6523
+ font-size: 24px;
6524
+ line-height: 40px;
6525
+ margin: 0px;
6526
+ }
6527
 
6528
+ /*--- Pricing Table Tooltip ---*/
6529
+ div.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow {
6530
+ position: absolute;
6531
+ top: 50%;
6532
  }
 
 
 
 
6533
 
6534
+ div.tooltipster-sidetip.tooltipster-top div.tooltipster-box {
6535
+ margin-bottom: 0px !important;
6536
+ }
6537
 
6538
+ div.tooltipster-sidetip.tooltipster-bottom div.tooltipster-box {
6539
+ margin-top: 0px !important;
6540
+ }
6541
 
6542
+ .tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow {
6543
+ top: auto;
6544
+ bottom: -8px;
6545
+ }
6546
 
6547
+ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
6548
+ top: -8px;
6549
+ bottom: auto;
6550
+ }
6551
 
6552
+ @media only screen and (max-width: 480px) {
6553
+ .eael-pricing.style-1 .eael-pricing-item .price-tag {
6554
+ display: block;
6555
  }
6556
  }
6557
 
6799
  margin: 0 0 0 auto;
6800
  }
6801
 
6802
+ /*--------------------------*/
6803
+ /* 09. Product Styles
6804
+ /*--------------------------*/
6805
+ .eael-product-grid .woocommerce ul.products,
6806
+ .eael-post-grid .woocommerce ul.products {
6807
+ display: grid;
6808
+ grid-gap: 25px;
6809
+ margin: 0 !important;
6810
+ padding: 0 !important;
6811
  }
6812
+ .eael-product-grid .woocommerce ul.products:before, .eael-product-grid .woocommerce ul.products:after,
6813
+ .eael-post-grid .woocommerce ul.products:before,
6814
+ .eael-post-grid .woocommerce ul.products:after {
6815
+ display: none;
6816
  }
6817
+ .eael-product-grid .woocommerce ul.products .product,
6818
+ .eael-post-grid .woocommerce ul.products .product {
6819
+ width: 100%;
6820
+ margin: 0;
6821
  padding: 0;
6822
  }
6823
+ .eael-product-grid .woocommerce ul.products.products[class*=columns-] li.product,
6824
+ .eael-post-grid .woocommerce ul.products.products[class*=columns-] li.product {
6825
+ width: 100%;
 
 
 
 
6826
  }
6827
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,
6828
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product,
6829
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product {
6830
  position: relative;
6831
+ float: left;
6832
+ overflow: hidden;
6833
+ text-align: center;
6834
+ padding: 0;
6835
+ border-radius: 0;
6836
+ background-color: #fff;
6837
+ box-shadow: none;
6838
  }
6839
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a,
6840
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a,
6841
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a {
6842
+ text-decoration: none;
6843
+ }
6844
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,
6845
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover,
6846
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover {
6847
+ outline: none;
6848
+ box-shadow: none;
6849
+ }
6850
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product img, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img,
6851
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product img,
6852
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img {
6853
  width: 100%;
6854
+ height: auto;
6855
+ -webkit-backface-visibility: hidden;
6856
+ backface-visibility: hidden;
 
 
 
6857
  }
6858
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,
6859
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title,
6860
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title {
6861
+ font-size: 16px;
6862
+ font-weight: 700;
6863
+ line-height: 1;
6864
+ color: #333;
6865
+ margin: 25px 0 12px;
6866
+ padding: 0;
6867
+ }
6868
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,
6869
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale,
6870
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale {
6871
+ display: block;
6872
+ line-height: 170px;
6873
+ font-size: 13px;
6874
+ text-align: center;
6875
+ letter-spacing: 0;
6876
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
6877
+ text-transform: uppercase;
6878
+ color: #fff;
6879
+ background-color: #ff2a13;
6880
+ border-radius: 0;
6881
+ border: none;
6882
+ box-shadow: none;
6883
  position: absolute;
6884
+ height: 100px;
6885
+ width: 200px;
6886
+ z-index: 1;
6887
+ left: -100px;
6888
+ top: -50px;
6889
+ right: auto;
6890
+ margin: 0;
6891
+ padding: 0;
6892
+ -webkit-transform: rotate(-45deg);
6893
+ transform: rotate(-45deg);
6894
+ }
6895
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price,
6896
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price,
6897
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price {
6898
+ font-size: 14px;
6899
+ margin-bottom: 0;
6900
+ }
6901
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del,
6902
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del,
6903
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del {
6904
+ opacity: 0.5;
6905
+ display: inline-block;
6906
  }
6907
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,
6908
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins,
6909
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins {
6910
+ font-weight: 400;
6911
+ background-color: transparent;
6912
+ color: #ff2a13;
6913
  }
6914
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,
6915
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating,
6916
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating {
6917
+ display: block;
6918
+ float: none;
6919
+ font-size: 14px;
6920
+ margin: 10px auto;
6921
  }
6922
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
6923
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button,
6924
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button {
6925
+ display: block;
6926
+ font-size: 14px;
6927
+ font-weight: 400;
6928
+ line-height: 38px;
6929
+ text-align: center;
6930
+ text-transform: uppercase;
6931
+ color: #fff;
6932
+ background-color: #333;
6933
+ padding: 0;
6934
+ margin: 15px;
6935
+ border-radius: 0;
6936
  }
6937
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,
6938
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus,
6939
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus {
6940
+ outline: none;
6941
  }
6942
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,
6943
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart,
6944
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart {
6945
+ display: block;
6946
+ margin: 0 0 15px 0;
6947
+ padding: 0;
6948
+ font-size: 14px;
6949
+ line-height: 1;
6950
+ text-transform: capitalize;
6951
+ color: #333;
6952
+ background-color: transparent;
6953
  }
6954
+ .eael-product-grid.eael-product-simple .woocommerce ul.products li.product,
6955
+ .eael-post-grid.eael-product-simple .woocommerce ul.products li.product {
6956
+ border: 1px solid #eee;
 
6957
  }
6958
+ .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,
6959
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product {
6960
+ border: 1px solid transparent;
 
 
 
 
6961
  }
6962
+ .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
6963
+ .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,
6964
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,
6965
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart {
6966
+ visibility: hidden;
6967
+ -webkit-transition: none;
6968
+ transition: none;
6969
  }
6970
+ .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover,
6971
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover {
6972
+ border: 1px solid #eee;
 
 
6973
  }
6974
+ .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,
6975
+ .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart,
6976
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,
6977
+ .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart {
6978
+ visibility: visible;
6979
  }
6980
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product,
6981
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product {
6982
+ position: relative;
6983
+ float: left;
6984
+ overflow: hidden;
6985
+ text-align: center;
6986
+ padding: 0 0 15px 0;
6987
+ border-radius: 0;
6988
+ background-color: #fff;
6989
+ box-shadow: none;
6990
  }
6991
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a,
6992
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a {
6993
+ text-decoration: none;
 
6994
  }
6995
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover,
6996
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover {
6997
+ outline: none;
6998
+ box-shadow: none;
6999
  }
7000
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img,
7001
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img {
7002
+ width: 100%;
7003
+ height: auto;
7004
+ margin: 0;
7005
+ -webkit-backface-visibility: hidden;
7006
+ backface-visibility: hidden;
 
7007
  }
7008
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay,
7009
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay {
 
7010
  position: relative;
7011
+ overflow: hidden;
7012
+ line-height: 0;
7013
  }
7014
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap,
7015
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap {
7016
+ position: absolute;
7017
+ top: 50%;
7018
+ left: 0;
7019
+ right: 0;
7020
+ text-align: center;
7021
+ -webkit-transform: translateY(-50%);
7022
+ transform: translateY(-50%);
7023
  }
7024
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,
7025
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
7026
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,
7027
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,
7028
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
7029
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart {
7030
+ display: inline-block;
7031
+ font-size: 14px;
7032
+ line-height: 38px;
7033
+ text-align: center;
7034
  color: #fff;
7035
+ background-color: #333;
7036
+ width: 38px;
7037
+ height: 38px;
7038
+ border-style: none;
7039
+ border-radius: 50%;
7040
+ vertical-align: middle;
7041
+ padding: 0;
7042
+ margin: 0 5px;
7043
+ -webkit-transform: translateY(20px);
7044
+ transform: translateY(20px);
7045
  opacity: 0;
7046
+ -webkit-transition: opacity 300ms, -webkit-transform 200ms;
7047
+ transition: opacity 300ms, -webkit-transform 200ms;
7048
+ transition: transform 200ms, opacity 300ms;
7049
+ transition: transform 200ms, opacity 300ms, -webkit-transform 200ms;
 
 
 
7050
  }
7051
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,
7052
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,
7053
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,
7054
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,
7055
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,
7056
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus {
7057
+ outline: none;
7058
  }
7059
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,
7060
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button {
7061
+ font-size: 0;
 
 
 
 
 
 
7062
  }
7063
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before,
7064
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before {
7065
+ display: none;
 
 
 
7066
  }
7067
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after,
7068
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after {
7069
+ content: "\f217";
7070
+ font: normal normal normal 14px/1 FontAwesome;
7071
+ font-size: 14px;
7072
+ line-height: 38px;
7073
+ text-rendering: auto;
7074
+ -webkit-font-smoothing: antialiased;
7075
+ vertical-align: middle;
7076
+ margin: 0;
7077
+ padding: 0;
7078
  }
7079
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before,
7080
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before {
7081
+ display: none;
 
 
 
7082
  }
7083
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after,
7084
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after {
7085
+ content: "\f110";
7086
+ display: inline-block;
7087
+ font: normal normal normal 14px/1 FontAwesome;
7088
+ font-size: 14px;
7089
+ line-height: 38px;
7090
+ color: #fff;
7091
+ height: auto;
7092
+ width: auto;
7093
+ position: relative;
7094
+ top: 0;
7095
+ left: 0;
7096
+ margin: 0;
7097
+ padding: 0;
7098
  }
7099
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,
7100
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart {
7101
+ font-size: 0;
 
7102
  }
7103
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after,
7104
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after {
7105
+ content: "\f06e";
7106
+ font: normal normal normal 14px/1 FontAwesome;
7107
+ font-size: 14px;
7108
+ line-height: 38px;
7109
+ color: #fff;
7110
+ text-rendering: auto;
7111
+ -webkit-font-smoothing: antialiased;
7112
+ vertical-align: middle;
7113
+ margin: 0;
7114
+ padding: 0;
7115
  }
7116
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title,
7117
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title {
7118
+ font-size: 16px;
7119
+ font-weight: 700;
7120
+ line-height: 1;
7121
+ color: #333;
7122
+ margin: 25px 0 12px;
7123
+ padding: 0;
7124
  }
7125
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale,
7126
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale {
7127
+ display: block;
7128
+ line-height: 170px;
7129
+ font-size: 13px;
7130
+ text-align: center;
7131
+ letter-spacing: 0;
7132
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6);
7133
+ text-transform: uppercase;
7134
+ color: #fff;
7135
+ background-color: #ff2a13;
7136
+ border-radius: 0;
7137
+ border: none;
7138
+ box-shadow: none;
7139
+ position: absolute;
7140
+ height: 100px;
7141
+ width: 200px;
7142
+ z-index: 1;
7143
+ left: -100px;
7144
+ top: -50px;
7145
+ right: auto;
7146
+ margin: 0;
7147
+ padding: 0;
7148
+ -webkit-transform: rotate(-45deg);
7149
+ transform: rotate(-45deg);
7150
  }
7151
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price,
7152
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price {
7153
+ font-size: 14px;
7154
+ margin-bottom: 0;
 
7155
  }
7156
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del,
7157
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del {
7158
+ opacity: 0.5;
7159
+ display: inline-block;
7160
  }
7161
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins,
7162
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins {
7163
+ font-weight: 400;
7164
+ background-color: transparent;
7165
+ color: #ff2a13;
 
 
 
7166
  }
7167
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating,
7168
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating {
7169
+ display: block;
7170
+ float: none;
7171
+ font-size: 14px;
7172
+ margin: 10px auto;
7173
  }
7174
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,
7175
+ .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,
7176
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,
7177
+ .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button {
7178
+ opacity: 1;
7179
  -webkit-transform: translateY(0);
7180
  transform: translateY(0);
7181
  }
7182
 
7183
+ @media only screen and (min-width: 1025px) {
7184
+ .eael-product-grid-column-1 .eael-product-grid .woocommerce ul.products {
7185
+ grid-template-columns: 100%;
7186
+ }
 
 
7187
 
7188
+ .eael-product-grid-column-2 .eael-product-grid .woocommerce ul.products {
7189
+ grid-template-columns: repeat(2, 1fr);
7190
+ }
 
 
 
 
 
7191
 
7192
+ .eael-product-grid-column-3 .eael-product-grid .woocommerce ul.products {
7193
+ grid-template-columns: repeat(3, 1fr);
7194
+ }
 
 
 
7195
 
7196
+ .eael-product-grid-column-4 .eael-product-grid .woocommerce ul.products {
7197
+ grid-template-columns: repeat(4, 1fr);
7198
+ }
 
7199
 
7200
+ .eael-product-grid-column-5 .eael-product-grid .woocommerce ul.products {
7201
+ grid-template-columns: repeat(5, 1fr);
7202
+ }
 
 
7203
 
7204
+ .eael-product-grid-column-6 .eael-product-grid .woocommerce ul.products {
7205
+ grid-template-columns: repeat(6, 1fr);
7206
+ }
7207
  }
7208
+ @media only screen and (max-width: 1024px) and (min-width: 766px) {
7209
+ .eael-product-grid-column-tablet-1 .eael-product-grid .woocommerce ul.products {
7210
+ grid-template-columns: 100%;
7211
+ }
7212
 
7213
+ .eael-product-grid-column-tablet-2 .eael-product-grid .woocommerce ul.products {
7214
+ grid-template-columns: repeat(2, 1fr);
7215
+ }
 
7216
 
7217
+ .eael-product-grid-column-tablet-3 .eael-product-grid .woocommerce ul.products {
7218
+ grid-template-columns: repeat(3, 1fr);
7219
+ }
 
7220
 
7221
+ .eael-product-grid-column-tablet-4 .eael-product-grid .woocommerce ul.products {
7222
+ grid-template-columns: repeat(4, 1fr);
7223
+ }
 
7224
 
7225
+ .eael-product-grid-column-tablet-5 .eael-product-grid .woocommerce ul.products {
7226
+ grid-template-columns: repeat(5, 1fr);
7227
+ }
 
7228
 
7229
+ .eael-product-grid-column-tablet-6 .eael-product-grid .woocommerce ul.products {
7230
+ grid-template-columns: repeat(6, 1fr);
 
 
 
 
 
 
7231
  }
7232
  }
7233
  @media only screen and (max-width: 767px) {
7234
+ .eael-product-grid-column-mobile-1 .eael-product-grid .woocommerce ul.products {
7235
+ grid-template-columns: 100%;
 
 
 
 
 
7236
  }
7237
+
7238
+ .eael-product-grid-column-mobile-2 .eael-product-grid .woocommerce ul.products {
7239
+ grid-template-columns: repeat(2, 1fr);
 
 
 
 
 
 
 
7240
  }
 
 
 
 
7241
 
7242
+ .eael-product-grid-column-mobile-3 .eael-product-grid .woocommerce ul.products {
7243
+ grid-template-columns: repeat(3, 1fr);
7244
+ }
 
 
7245
 
7246
+ .eael-product-grid-column-mobile-4 .eael-product-grid .woocommerce ul.products {
7247
+ grid-template-columns: repeat(4, 1fr);
7248
+ }
7249
+
7250
+ .eael-product-grid-column-mobile-5 .eael-product-grid .woocommerce ul.products {
7251
+ grid-template-columns: repeat(5, 1fr);
7252
+ }
7253
+
7254
+ .eael-product-grid-column-mobile-6 .eael-product-grid .woocommerce ul.products {
7255
+ grid-template-columns: repeat(6, 1fr);
7256
+ }
7257
  }
7258
 
7259
  .eael-reading-progress-wrap.eael-reading-progress-wrap-local .eael-reading-progress-global {
7434
  */
7435
  .owp-play {
7436
  position: absolute;
7437
+ top: 50%;
7438
+ left: 50%;
7439
+ -webkit-transform: translateX(-50%) translateY(-50%);
7440
+ transform: translateX(-50%) translateY(-50%);
7441
+ }
7442
+
7443
+ .owp-play i {
7444
+ font-size: 100px;
7445
+ color: #fff;
7446
+ opacity: 0.8;
7447
+ text-shadow: 1px 0 6px rgba(0, 0, 0, 0.3);
7448
+ -webkit-transition: all .5s;
7449
+ transition: all .5s;
7450
+ }
7451
+
7452
+ .eael-sticky-video-player:hover .owp-play i {
7453
+ opacity: 1;
7454
+ }
7455
+
7456
+ /*
7457
+ .eaelsv-sticky-player {
7458
+ height: 200px;
7459
+ width: 300px;
7460
+ position: fixed;
7461
+ bottom: 50px;
7462
+ right: 50px;
7463
+ border: 0px solid #009900;
7464
+ background-size: cover;
7465
+ z-index: 1000;
7466
+ background: transparent;
7467
+ display:none!important;
7468
+ }
7469
+ .eaelsv-sticky-player.eaelsv-display-player{
7470
+ display:block!important;
7471
+ -webkit-animation: fadeIn 1s;
7472
+ animation: fadeIn 1s;
7473
+ }
7474
+ */
7475
+ /* === Close Icon === */
7476
+ .eaelsv-sticky-player-close {
7477
+ position: absolute;
7478
+ right: -25px;
7479
+ top: -36px;
7480
+ display: none;
7481
+ padding: 7px;
7482
+ font-size: 24px;
7483
+ z-index: 9999;
7484
+ cursor: pointer;
7485
+ box-sizing: content-box;
7486
+ overflow: visible;
7487
+ }
7488
+
7489
+ .eaelsv-sticky-player-close:hover {
7490
+ color: #009900;
7491
+ }
7492
+
7493
+ .eaelsv-sticky-player-close:before, .eaelsv-sticky-player-close:after {
7494
+ position: absolute;
7495
+ left: 15px;
7496
+ background-color: #333;
7497
+ }
7498
+
7499
+ .eaelsv-sticky-player-close:before {
7500
+ -webkit-transform: rotate(45deg);
7501
+ transform: rotate(45deg);
7502
+ }
7503
+
7504
+ .eaelsv-sticky-player-close:after {
7505
+ -webkit-transform: rotate(-45deg);
7506
+ transform: rotate(-45deg);
7507
+ }
7508
+
7509
+ /*----------------------------*/
7510
+ /* 07. Team Members Styles
7511
+ /*----------------------------*/
7512
+ .eael-team-item {
7513
+ overflow: hidden;
7514
+ position: relative;
7515
+ }
7516
+
7517
+ .team-avatar-rounded figure img {
7518
+ border-radius: 50%;
7519
+ height: auto;
7520
+ }
7521
+
7522
+ .eael-team-image > figure {
7523
+ margin: 0;
7524
+ padding: 0;
7525
+ }
7526
+
7527
+ .eael-team-image > figure img {
7528
+ display: block;
7529
+ margin: 0 auto;
7530
+ }
7531
+
7532
+ .eael-team-item .eael-team-content {
7533
+ padding: 10px;
7534
+ }
7535
+
7536
+ .eael-team-item .eael-team-member-name {
7537
+ font-size: 20px;
7538
+ font-weight: bold;
7539
+ letter-spacing: 0.05em;
7540
+ margin: 5px 0;
7541
+ text-transform: uppercase;
7542
+ }
7543
+
7544
+ .eael-team-item .eael-team-member-position {
7545
+ font-size: 14px;
7546
+ font-weight: normal;
7547
+ letter-spacing: 0.05em;
7548
+ margin: 5px 0 10px;
7549
+ text-transform: uppercase;
7550
+ }
7551
+
7552
+ .eael-team-item .eael-team-content,
7553
+ .eael-team-item .eael-team-content .eael-team-text {
7554
+ font-size: 14px;
7555
+ line-height: 1.5;
7556
+ }
7557
+
7558
+ .eael-team-content > ul {
7559
+ margin: 0;
7560
+ padding: 0;
7561
+ }
7562
+
7563
+ .eael-team-content li {
7564
+ display: inline-block;
7565
+ list-style: outside none none;
7566
+ margin-right: 10px;
7567
+ text-align: center;
7568
+ }
7569
+
7570
+ .eael-team-content li a {
7571
+ font-size: 2.5rem;
7572
+ }
7573
+
7574
+ .eael-team-align-left .eael-team-item .eael-team-member-name,
7575
+ .eael-team-align-left .eael-team-item .eael-team-member-position,
7576
+ .eael-team-align-left .eael-team-item .eael-team-text,
7577
+ .eael-team-align-left .eael-team-item .eael-team-content p,
7578
+ .eael-team-align-left .eael-team-item .eael-team-content ul,
7579
+ .eael-team-align-left .eael-team-item .eael-team-content li {
7580
+ text-align: left;
7581
+ }
7582
+
7583
+ .eael-team-align-right .eael-team-item .eael-team-member-name,
7584
+ .eael-team-align-right .eael-team-item .eael-team-member-position,
7585
+ .eael-team-align-right .eael-team-item .eael-team-text,
7586
+ .eael-team-align-right .eael-team-item .eael-team-content p,
7587
+ .eael-team-align-right .eael-team-item .eael-team-content ul,
7588
+ .eael-team-align-right .eael-team-item .eael-team-content li {
7589
+ text-align: right;
7590
+ }
7591
+
7592
+ .eael-team-align-centered .eael-team-item .eael-team-member-name,
7593
+ .eael-team-align-centered .eael-team-item .eael-team-member-position,
7594
+ .eael-team-align-centered .eael-team-item .eael-team-text,
7595
+ .eael-team-align-centered .eael-team-item .eael-team-content p,
7596
+ .eael-team-align-centered .eael-team-item .eael-team-content ul,
7597
+ .eael-team-align-centered .eael-team-item .eael-team-content li {
7598
+ text-align: center;
7599
+ }
7600
+
7601
+ .eael-team-item.eael-team-members-overlay .eael-team-content {
7602
+ bottom: 10px;
7603
+ left: 10px;
7604
+ margin-bottom: 0;
7605
+ padding-top: 15%;
7606
+ opacity: 0;
7607
+ overflow: hidden;
7608
+ text-overflow: ellipsis;
7609
+ position: absolute;
7610
+ right: 10px;
7611
+ top: 10px;
7612
+ -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7613
+ transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7614
+ }
7615
+
7616
+ .eael-team-item.eael-team-members-overlay:hover .eael-team-content {
7617
+ opacity: 1;
7618
+ }
7619
+
7620
+ .eael-team-member-social-link > a {
7621
+ display: inline-block;
7622
+ -webkit-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7623
+ transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s;
7624
+ }
7625
+
7626
+ .eael-team-member-social-link > a:focus {
7627
+ outline: none;
7628
+ }
7629
+
7630
+ /*------------------------------*/
7631
+ /* 32. Tooltip
7632
+ /*------------------------------*/
7633
+ .eael-tooltip {
7634
+ position: relative;
7635
+ display: inline-block;
7636
+ min-width: 150px;
7637
+ padding: 12px 24px;
7638
+ font-size: .93rem;
7639
+ color: #333;
7640
+ line-height: 1;
7641
+ cursor: pointer;
7642
+ -webkit-transition: all 0.3s ease-in-out;
7643
+ transition: all 0.3s ease-in-out;
7644
+ }
7645
+
7646
+ .eael-tooltip .eael-tooltip-text {
7647
+ display: block;
7648
+ width: 100%;
7649
+ visibility: hidden;
7650
+ background-color: black;
7651
+ color: #fff;
7652
+ border-radius: 4px;
7653
+ padding: 10px;
7654
+ position: absolute;
7655
+ z-index: 1;
7656
+ font-size: .93rem;
7657
+ line-height: 1.3;
7658
+ }
7659
+ .eael-tooltip .eael-tooltip-text p {
7660
+ margin: 0;
7661
+ }
7662
+
7663
+ .eael-tooltip .eael-tooltip-text::after {
7664
+ content: "";
7665
+ position: absolute;
7666
+ border-width: 5px;
7667
+ border-style: solid;
7668
  }
7669
 
7670
+ .eael-tooltip:hover .eael-tooltip-text {
7671
+ visibility: visible;
 
 
 
 
 
7672
  }
7673
 
7674
+ /*--- Left ---*/
7675
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-left {
7676
+ top: 50%;
7677
+ right: 100%;
7678
+ -webkit-transform: translateY(-50%);
7679
+ transform: translateY(-50%);
7680
+ margin-right: 10px;
7681
  }
7682
 
7683
+ .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left {
7684
+ -webkit-animation: tooltipLeftIn 300ms ease-in-out;
7685
+ animation: tooltipLeftIn 300ms ease-in-out;
 
 
 
 
 
 
 
 
 
7686
  }
7687
+
7688
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-left::after {
7689
+ top: calc(50% - 5px);
7690
+ left: 100%;
7691
+ border-color: transparent transparent transparent black;
7692
  }
7693
+
7694
+ /*--- Right ---*/
7695
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-right {
7696
+ top: 50%;
7697
+ left: 100%;
7698
+ -webkit-transform: translateY(-50%);
7699
+ transform: translateY(-50%);
7700
+ -webkit-transition: all 0.3s ease-in-out;
7701
+ transition: all 0.3s ease-in-out;
7702
+ margin-left: 10px;
 
 
 
7703
  }
7704
 
7705
+ .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right {
7706
+ -webkit-animation: tooltipRightIn 300ms linear;
7707
+ animation: tooltipRightIn 300ms linear;
7708
  }
7709
 
7710
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-right::after {
7711
+ top: calc(50% - 5px);
7712
+ right: 100%;
7713
+ border-color: transparent black transparent transparent;
7714
  }
7715
 
7716
+ /*--- Top ---*/
7717
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-top {
7718
+ bottom: calc(100%);
7719
+ left: 0;
7720
+ right: 0;
7721
+ margin: 0 auto 10px auto;
7722
  }
7723
 
7724
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-top::after {
7725
+ margin-top: 0px;
7726
+ top: 100%;
7727
+ left: calc( 50% - 5px);
7728
+ border-color: black transparent transparent transparent;
7729
  }
7730
 
7731
+ .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top {
7732
+ -webkit-animation: tooltipTopIn 300ms linear;
7733
+ animation: tooltipTopIn 300ms linear;
 
 
 
7734
  }
7735
 
7736
+ /*--- Bottom ---*/
7737
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-bottom {
7738
+ top: 100%;
7739
+ left: 0;
7740
+ right: 0;
7741
+ margin: 10px auto 0px auto;
7742
  }
7743
 
7744
+ .eael-tooltip .eael-tooltip-text.eael-tooltip-bottom::after {
7745
+ margin-top: 0px;
7746
+ bottom: 100%;
7747
+ left: calc( 50% - 5px);
7748
+ border-color: transparent transparent black transparent;
7749
  }
7750
 
7751
+ .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom {
7752
+ -webkit-animation: tooltipBottomIn 300ms linear;
7753
+ animation: tooltipBottomIn 300ms linear;
7754
  }
7755
 
7756
+ /*--- Alignments ---*/
7757
+ .eael-tooltip-align-left {
7758
+ display: -webkit-box;
7759
+ display: flex;
7760
+ width: 100%;
7761
+ -webkit-box-pack: start;
7762
+ justify-content: flex-start;
7763
  }
7764
 
7765
+ .eael-tooltip-align-right {
7766
+ display: -webkit-box;
7767
+ display: flex;
7768
+ width: 100%;
7769
+ -webkit-box-pack: end;
7770
+ justify-content: flex-end;
7771
  }
7772
 
7773
+ .eael-tooltip-align-center {
7774
+ display: -webkit-box;
7775
+ display: flex;
7776
+ width: 100%;
7777
+ -webkit-box-pack: center;
7778
+ justify-content: center;
7779
  }
7780
 
7781
+ .eael-tooltip-align-justify .eael-tooltip {
7782
+ display: -webkit-box;
7783
+ display: flex;
7784
+ -webkit-box-pack: center;
7785
+ justify-content: center;
7786
+ -webkit-box-align: center;
7787
+ align-items: center;
7788
  }
7789
 
7790
+ /*--- Tooltip Keyframes ---*/
7791
+ @-webkit-keyframes tooltipRightIn {
7792
+ 0% {
7793
+ opacity: 0;
7794
+ left: 105%;
7795
+ }
7796
+ 100% {
7797
+ opacity: 1;
7798
+ left: 100%;
7799
+ }
7800
+ }
7801
+ @keyframes tooltipRightIn {
7802
+ 0% {
7803
+ opacity: 0;
7804
+ left: 105%;
7805
+ }
7806
+ 100% {
7807
+ opacity: 1;
7808
+ left: 100%;
7809
+ }
7810
+ }
7811
+ @-webkit-keyframes tooltipLeftIn {
7812
+ 0% {
7813
+ opacity: 0;
7814
+ right: 105%;
7815
+ }
7816
+ 100% {
7817
+ opacity: 1;
7818
+ right: 100%;
7819
+ }
7820
+ }
7821
+ @keyframes tooltipLeftIn {
7822
+ 0% {
7823
+ opacity: 0;
7824
+ right: 105%;
7825
+ }
7826
+ 100% {
7827
+ opacity: 1;
7828
+ right: 100%;
7829
+ }
7830
+ }
7831
+ @-webkit-keyframes tooltipTopIn {
7832
+ 0% {
7833
+ opacity: 0;
7834
+ bottom: 110%;
7835
+ }
7836
+ 100% {
7837
+ opacity: 1;
7838
+ bottom: 100%;
7839
+ }
7840
+ }
7841
+ @keyframes tooltipTopIn {
7842
+ 0% {
7843
+ opacity: 0;
7844
+ bottom: 110%;
7845
+ }
7846
+ 100% {
7847
+ opacity: 1;
7848
+ bottom: 100%;
7849
+ }
7850
+ }
7851
+ @-webkit-keyframes tooltipBottomIn {
7852
+ 0% {
7853
+ opacity: 0;
7854
+ top: 110%;
7855
+ }
7856
+ 100% {
7857
+ opacity: 1;
7858
+ top: 100%;
7859
+ }
7860
+ }
7861
+ @keyframes tooltipBottomIn {
7862
+ 0% {
7863
+ opacity: 0;
7864
+ top: 110%;
7865
+ }
7866
+ 100% {
7867
+ opacity: 1;
7868
+ top: 100%;
7869
+ }
7870
  }
7871
+ span.eael-tooltip-content,
7872
+ span.eael-tooltip-content a {
7873
+ width: 100%;
7874
+ display: block;
 
7875
  text-align: center;
7876
  }
7877
 
7878
+ .eael-tooltip-text-align-left .eael-tooltip-text, .eael-tooltip-text-align-left .eael-tooltip-content a {
 
 
 
 
 
 
 
 
 
7879
  text-align: left;
7880
  }
7881
 
7882
+ .eael-tooltip-text-align-right .eael-tooltip-text, .eael-tooltip-text-align-right .eael-tooltip-content a {
 
 
 
 
 
7883
  text-align: right;
7884
  }
7885
 
7886
+ .eael-tooltip-text-align-center .eael-tooltip-text, .eael-tooltip-text-align-center .eael-tooltip-content a {
 
 
 
 
 
7887
  text-align: center;
7888
  }
7889
 
7890
+ .eael-tooltip-text-align-justify .eael-tooltip-text, .eael-tooltip-text-align-justify .eael-tooltip-content a {
7891
+ text-align: justify;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7892
  }
7893
 
7894
  /*----------------------------*/
8113
 
8114
  .eael-testimonial-align-centered .eael-testimonial-image > figure img {
8115
  display: block;
8116
+ margin-left: auto !important;
8117
+ margin-right: auto !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8118
  }
8119
 
8120
+ /* .eael-testimonial-align-centered .testimonial-star-rating{
8121
+ text-align: center;
8122
+ } */
8123
+ /*--- Right align ---*/
8124
+ .icon-img-right-content .eael-testimonial-image {
8125
+ float: right;
8126
+ width: 30%;
8127
  }
8128
 
8129
+ .icon-img-right-content .eael-testimonial-content {
8130
+ float: right;
8131
+ width: 70%;
8132
+ text-align: right;
8133
  }
8134
 
8135
+ .icon-img-right-content.eael-testimonial-item {
8136
+ overflow: hidden;
8137
+ position: relative;
 
 
 
 
8138
  }
8139
 
8140
+ .icon-img-right-content .eael-testimonial-quote {
8141
+ position: absolute;
 
8142
  }
8143
 
8144
+ .icon-img-right-content .eael-testimonial-text {
8145
+ margin-top: 0;
 
 
8146
  }
8147
 
8148
+ .eael-testimonial-item {
8149
+ position: relative;
 
 
 
 
 
 
 
8150
  }
8151
 
8152
+ .classic-style.testimonial-alignment-center .eael-testimonial-image,
8153
+ .default-style.testimonial-alignment-center .eael-testimonial-image {
8154
+ text-align: center;
8155
  }
8156
 
8157
+ .classic-style.testimonial-alignment-right .eael-testimonial-image,
8158
+ .default-style.testimonial-alignment-right .eael-testimonial-image {
8159
+ text-align: right;
 
8160
  }
8161
 
8162
+ .classic-style.testimonial-alignment-center .eael-testimonial-image > figure,
8163
+ .default-style.testimonial-alignment-center .eael-testimonial-image > figure {
8164
+ text-align: center;
 
 
 
8165
  }
8166
 
8167
+ .eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-centered .eael-testimonial-content {
8168
+ text-align: center;
 
 
 
8169
  }
8170
 
8171
+ .eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-left .eael-testimonial-content {
8172
+ text-align: left;
 
8173
  }
8174
 
8175
+ .eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-right .eael-testimonial-content {
8176
+ text-align: right;
 
 
 
 
8177
  }
8178
 
8179
+ .eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-centered .eael-testimonial-content {
8180
+ text-align: center;
 
 
 
8181
  }
8182
 
8183
+ .eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-left .eael-testimonial-content {
8184
+ text-align: left;
 
8185
  }
8186
 
8187
+ .eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-right .eael-testimonial-content {
8188
+ text-align: right;
 
 
 
 
 
8189
  }
8190
 
8191
+ span.eael-testimonial-quote {
8192
+ position: absolute;
8193
+ right: 10px;
8194
+ top: 10px;
 
 
8195
  }
8196
 
8197
+ /*--- Image align ---*/
8198
+ .eael-testimonial-item.left .eael-testimonial-image {
8199
+ text-align: left;
 
 
 
8200
  }
8201
 
8202
+ .eael-testimonial-item.center .eael-testimonial-image {
8203
+ text-align: center;
 
 
 
 
 
8204
  }
8205
 
8206
+ .eael-testimonial-item.right .eael-testimonial-image {
8207
+ text-align: right;
 
 
 
 
 
 
 
 
8208
  }
8209
+
8210
+ /*--- Float title image style ---*/
8211
+ .eael-testimonial-inline-bio .eael-testimonial-image {
8212
+ float: left;
 
 
 
 
 
8213
  }
8214
+
8215
+ .eael-testimonial-inline-bio .bio-text {
8216
+ padding-top: 10px;
 
 
 
 
 
 
8217
  }
8218
+
8219
+ .eael-testimonial-content.eael-testimonial-inline-bio {
8220
+ overflow: hidden;
8221
+ margin-bottom: 0;
8222
+ padding-bottom: 0;
 
 
 
 
8223
  }
8224
+
8225
+ .eael-testimonial-inline-bio .testimonial-star-rating,
8226
+ .eael-testimonial-inline-bio .bio-text {
8227
+ float: left;
8228
+ width: 65%;
 
 
 
 
8229
  }
8230
+
8231
+ .eael-testimonial-content.eael-testimonial-inline-bio {
8232
+ text-align: left !important;
 
 
 
 
 
 
8233
  }
8234
+
8235
+ /*--- Float inline style ---*/
8236
+ .testimonial-inline-style .eael-testimonial-image {
8237
+ float: left;
8238
+ max-width: 100%;
8239
+ padding: 0;
8240
+ margin-right: 15px;
 
 
8241
  }
8242
+
8243
+ .testimonial-inline-style {
8244
+ overflow: hidden;
8245
+ text-align: left;
 
 
 
 
 
8246
  }
8247
+
8248
+ .content-top-icon-title-inline .eael-testimonial-text,
8249
+ .content-top-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text {
8250
+ text-align: left;
 
8251
  }
8252
 
8253
+ .content-top-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text {
8254
+ text-align: center;
8255
  }
8256
 
8257
+ .content-top-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text {
8258
  text-align: right;
8259
  }
8260
 
8261
+ .content-bottom-icon-title-inline .eael-testimonial-text,
8262
+ .content-bottom-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text {
8263
+ text-align: left;
8264
+ }
8265
+
8266
+ .content-bottom-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text {
8267
  text-align: center;
8268
  }
8269
 
8270
+ .content-bottom-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text {
8271
+ text-align: right;
8272
  }
8273
 
8274
  .eael-twitter-feed::before, .eael-twitter-feed::after {
8440
  max-width: 100%;
8441
  }
8442
 
8443
+ .elementor-panel .pro-feature, .elementor-panel .pro-feature a {
8444
+ color: #a4afb7;
8445
+ text-transform: uppercase;
8446
+ letter-spacing: 1px;
8447
+ line-height: 1.8;
8448
+ font-style: normal;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8449
  }
8450
 
8451
+ .elementor-panel .pro-feature a {
8452
+ text-decoration: underline;
8453
+ color: #f54 !important;
8454
  }
8455
 
8456
+ .elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-title.elementor-panel-heading-title,
8457
+ .elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-toggle,
8458
+ .elementor-control-data_table_header_colspan_pro_alert .elementor-control-title,
8459
+ .elementor-control-data_table_header_img_pro_alert .elementor-control-title,
8460
+ .elementor-control-data_table_content_rowspan_pro_alert .elementor-control-title,
8461
+ .elementor-control-data_table_content_colspan_pro_alert .elementor-control-title,
8462
+ .elementor-control-data_table_content_template_pro_alert .elementor-control-title {
8463
+ color: #f54;
8464
  }
8465
 
8466
+ .elementor-panel .elementor-control-eael_control_get_pro .elementor-control-field {
8467
+ display: none !important;
 
8468
  }
8469
 
8470
+ .elementor-control-eael_pricing_table_style_pro_alert .elementor-control-title,
8471
+ .elementor-control-eael_section_countdown_style_pro_alert .elementor-control-title,
8472
+ .elementor-control-eael_fancy_text_style_pro_alert .elementor-control-title,
8473
+ .elementor-control-eael_section_data_table_enabled_pro_alert .elementor-control-title,
8474
+ .elementor-control-eael_img_accordion_type_pro_alert .elementor-control-title,
8475
+ .elementor-control-eael_ticker_type_pro_alert .elementor-control-title,
8476
+ .elementor-control-eael_team_members_preset_pro_alert .elementor-control-title {
8477
+ color: #f54;
8478
  }
8479
 
8480
  @keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:subpixel-antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5764;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:14px;left:0;padding:10px;position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:16px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}a.plyr__control{text-decoration:none}a.plyr__control::after,a.plyr__control::before{display:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr__control--overlaid{background:rgba(0,179,255,.8);border:0;border-radius:100%;color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00b3ff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls .plyr__controls__item.plyr__volume{padding-right:5px}.plyr__controls .plyr__controls__item.plyr__volume:first-child{padding-right:0}.plyr__controls:empty{display:none}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4a5764;padding:10px}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:20px 5px 5px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:35px 10px 10px}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5764;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(74,87,100,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(74,87,100,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#c1c9d1;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:#00b3ff}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-5px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:26px;color:#00b3ff;display:block;height:19px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:14px;font-weight:500;left:50%;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:16px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__progress{left:6.5px;margin-right:13px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-right:-6.5px;width:calc(100% + 13px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;left:0;margin-top:-2.5px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(193,201,209,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,41,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,41,47,.6) 50%,rgba(35,41,47,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,201,209,.66)}.plyr__volume{align-items:center;display:flex;flex:1;position:relative}.plyr__volume input[type=range]{margin-left:5px;position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:90px}}@media (min-width:768px){.plyr__volume{max-width:110px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(35,41,47,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;left:0;margin:-2.5px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);margin-bottom:10px;opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c9d1;border-radius:2px;overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:2px;color:#fff;font-size:14px;padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}
assets/front-end/css/eael.min.css CHANGED
@@ -2,24 +2,23 @@
2
  .eael-adv-accordion{width:auto;height:auto;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-adv-accordion .eael-accordion-list .eael-accordion-header{padding:15px;border:1px solid rgba(0,0,0,.02);font-size:1rem;font-weight:600;line-height:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;cursor:pointer}.eael-adv-accordion .eael-accordion-list .eael-accordion-header .fa-toggle{-webkit-transform:rotate(0);transform:rotate(0);z-index:10;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-adv-accordion .eael-accordion-list .eael-accordion-header.active .fa-toggle{-webkit-transform:rotate(90deg);transform:rotate(90deg);z-index:10;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fa-accordion-icon{display:inline-block;margin-right:10px}.eael-adv-accordion .eael-accordion-list .eael-accordion-content{display:none;border:1px solid #eee;padding:15px;box-sizing:border-box;font-size:1rem;line-height:1.7}.eael-adv-accordion .eael-accordion-list .eael-accordion-content p{margin:0}.eael-adv-accordion .eael-accordion-list .eael-accordion-content.active{display:block}@-webkit-keyframes rotate-90{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes rotate-90{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@-webkit-keyframes fadeIn{0%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}100%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}}@keyframes fadeIn{0%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}100%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}}
3
  .eael-advance-tabs{display:block}.eael-advance-tabs .eael-tabs-nav>ul{position:relative;padding:0;margin:0;list-style-type:none;display:-webkit-box;display:flex;-webkit-box-pack:start;justify-content:flex-start;-webkit-box-align:center;align-items:center;z-index:1}.eael-advance-tabs .eael-tabs-nav>ul li{position:relative;padding:1em 1.5em;-webkit-box-flex:1;flex:1 1 auto;cursor:pointer;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;text-align:center;background-color:#f1f1f1}.eael-advance-tabs .eael-tabs-nav>ul li:after{content:"";position:absolute;bottom:-10px;left:0;right:0;margin:0 auto;z-index:1;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #444;border-bottom:0;display:none}.eael-advance-tabs .eael-tabs-nav>ul li.active,.eael-advance-tabs .eael-tabs-nav>ul li.active-default,.eael-advance-tabs .eael-tabs-nav>ul li:hover{background-color:#444}.eael-advance-tabs.active-caret-on .eael-tabs-nav>ul li.active-default:after,.eael-advance-tabs.active-caret-on .eael-tabs-nav>ul li.active:after{display:none}.eael-advance-tabs .eael-tabs-nav>ul li.active-default:after,.eael-advance-tabs .eael-tabs-nav>ul li.active:after{display:block}.eael-tabs-content{display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 1 auto}.eael-advance-tabs .eael-tabs-content>div{display:none;opacity:0}.eael-advance-tabs .eael-tabs-content>div.active,.eael-advance-tabs .eael-tabs-content>div.active-default{display:block;width:100%;padding:1em;opacity:1;-webkit-animation:fadeIn linear .3s;animation:fadeIn linear .3s}.eael-tab-inline-icon li a .fa{margin-right:10px;line-height:1}.eael-tab-top-icon li{display:-webkit-box;display:flex;flex-wrap:wrap;text-align:center}.eael-tab-top-icon li a{display:-webkit-box;display:flex;flex-wrap:wrap;text-align:center}.eael-tab-top-icon li .eael-tab-title,.eael-tab-top-icon li .fa{-webkit-box-flex:1;flex:1 1 100%;line-height:1}.eael-tab-top-icon li a .eael-tab-title{margin-top:10px}.eael-advance-tabs.eael-tabs-vertical{display:-webkit-box;display:flex}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav{-webkit-box-flex:0;flex:0 0 auto}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:column wrap}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul>li{width:100%;-webkit-box-pack:start;justify-content:start}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul li::after{bottom:auto!important;right:-10px;top:calc(50% - 10px);left:auto!important;border-left:10px solid #444;border-right:0;border-top:10px solid transparent;border-bottom:10px solid transparent}@media only screen and (max-width:767px){.eael-advance-tabs .eael-tabs-nav>ul{flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.eael-advance-tabs .eael-tabs-nav>ul li{-webkit-box-flex:1;flex:1 1 auto}.responsive-vertical-layout.eael-advance-tabs .eael-tabs-nav>ul li{-webkit-box-flex:1;flex:1 1 100%}.eael-advance-tabs.eael-tabs-vertical{flex-wrap:wrap}.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav{-webkit-box-flex:1;flex:1 100%}.eael-advance-tabs.eael-tabs-vertical ul{-webkit-box-flex:1;flex:1 100%}.eael-advance-tabs.eael-tabs-vertical ul li{-webkit-box-flex:1;flex:1 100%}div.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav>ul li::after{border-left-color:transparent!important;bottom:-20px!important;left:0!important;right:0!important;top:auto!important;border-left:10px solid transparent;border-right:10px solid transparent;border-top-color:#444!important}}
4
  .ea-advanced-data-table-wrap *{background-color:transparent;border:none;box-shadow:none;margin:0;padding:0}.ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner{width:100%;overflow-y:auto}.ea-advanced-data-table-wrap .ea-advanced-data-table{width:100%;border-collapse:collapse}.ea-advanced-data-table-wrap .ea-advanced-data-table td,.ea-advanced-data-table-wrap .ea-advanced-data-table th{background-color:transparent!important}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th{position:relative;cursor:pointer}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:before{content:"";border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid #4d4d4d;position:absolute;top:50%;right:15px;margin-top:-6px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:after{content:"";border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #4d4d4d;position:absolute;top:50%;right:15px;margin-top:1px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:before{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:after{margin-top:-3px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:before{margin-top:-3px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:after{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th{pointer-events:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:after,.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:before{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-paginated tbody tr{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th{position:relative}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:before{border:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:after{content:"";display:block;height:100%;position:absolute;right:0;top:0;width:10px;border:none;cursor:col-resize}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td,.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th{padding:0}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td textarea,.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th textarea{width:100%;min-width:100px;height:100%;background-color:transparent;border:none;box-shadow:none;resize:none;margin:0;padding:0;outline:0;vertical-align:middle}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable.ea-advanced-data-table-paginated tbody tr{display:table-row}.ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-center{text-align:center}.ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-right{text-align:right}.ea-advanced-data-table-wrap .ea-advanced-data-table-pagination a{display:inline-block}
5
- .eael-caldera-form-align-left,.eael-caldera-form-btn-align-left{text-align:left}.eael-caldera-form-align-right,.eael-caldera-form-btn-align-right{text-align:right}.eael-caldera-form-align-center,.eael-caldera-form-btn-align-center{text-align:center}.eael-caldera-form .control-label{display:none}.eael-caldera-form-labels-yes .control-label{display:block}.eael-caldera-form-button-center .form-group input[type=button],.eael-caldera-form-button-center .form-group input[type=submit]{display:block;margin:0 auto}.eael-caldera-form-button-right .form-group input[type=button],.eael-caldera-form-button-right .form-group input[type=submit]{float:right}.eael-caldera-form .intl-tel-input{display:inherit}.eael-custom-radio-checkbox .caldera-grid input[type=checkbox],.eael-custom-radio-checkbox .caldera-grid input[type=radio]{border-style:solid;border-width:0;padding:3px;-webkit-appearance:none}.eael-caldera-form-button-full-width .form-group input[type=button],.eael-caldera-form-button-full-width .form-group input[type=submit]{width:100%}
6
  .eael-call-to-action{width:100%;height:auto;display:block;padding:30px;font-size:16px;color:#4d4d4d;font-weight:400;line-height:27px;margin:0 auto}.eael-call-to-action p{margin-bottom:10px}.eael-call-to-action .title{font-size:36px;font-weight:600;line-height:36px;margin-bottom:10px;text-transform:capitalize;font-style:normal}.eael-call-to-action.cta-center{text-align:center}.eael-call-to-action.cta-right{text-align:right}.eael-call-to-action.cta-left{text-align:left}.eael-call-to-action.bg-lite{background:#f4f4f4}.eael-call-to-action.bg-img{background-image:url(../img/bg.jpg);background-repeat:no-repeat;background-position:center;background-size:cover;position:relative;z-index:0;color:rgba(255,255,255,.7)}.eael-call-to-action.bg-img .icon{color:#fff}.eael-call-to-action.bg-img:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1;background:rgba(0,0,0,.8)}.eael-call-to-action.bg-img.bg-fixed{background-attachment:fixed;background-position:center center}.eael-call-to-action.bg-img .title{color:rgba(255,255,255,.9)}.eael-call-to-action.cta-flex,.eael-call-to-action.cta-icon-flex{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start}.eael-call-to-action.cta-icon-flex .icon{-webkit-box-flex:1;flex-grow:1;font-size:80px;text-align:left;line-height:130px}.eael-call-to-action.cta-icon-flex .action{-webkit-box-flex:1;flex-grow:1;text-align:right;padding-top:22px;flex-basis:22%}.eael-call-to-action.cta-icon-flex .content{-webkit-box-flex:1;flex-grow:1;padding:0 30px}.eael-call-to-action.cta-flex .content{padding:0 15px;-webkit-box-flex:1;flex-grow:1}.eael-call-to-action.cta-flex .action{-webkit-box-flex:1;flex-grow:1;text-align:right;padding-top:25px;flex-basis:23%}.eael-call-to-action .cta-button{position:relative;display:inline-block;padding:12px 30px;background:#f9f9f9;font-size:16px;text-decoration:none;color:#4d4d4d;-webkit-transition:.5s;transition:.5s;-ms-box-shadow:0 0 3px -1px rgba(0,0,0,.2);box-shadow:0 0 3px -1px rgba(0,0,0,.2);margin-right:10px;margin-top:10px;z-index:0;overflow:hidden}.eael-call-to-action .cta-button:last-child{margin-right:0}.eael-call-to-action .cta-button:focus{outline:0}.eael-call-to-action .cta-button:hover{color:#fff;background:#3f51b5;-ms-box-shadow:0 1px 12px 1px rgba(0,0,0,.1);box-shadow:0 1px 12px 1px rgba(0,0,0,.1)}.eael-call-to-action .cta-button.effect-1:after{content:"";position:absolute;width:100%;height:100%;background:#3f51b5;top:0;left:0;transform:translateY(-100%);-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);z-index:-1;-webkit-transition:.5s;transition:.5s;color:#fff}.eael-call-to-action .cta-button.effect-1:hover::after{-webkit-transform:translateY(0);transform:translateY(0)}.eael-call-to-action .cta-button.effect-2:after{content:"";position:absolute;width:100%;height:100%;background:#3f51b5;top:0;left:0;z-index:-1;-webkit-transition:.5s;transition:.5s;color:#fff;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.eael-call-to-action .cta-button.effect-2:hover::after{-webkit-transform:translateX(0);transform:translateX(0)}@media only screen and (max-width:768px){.eael-call-to-action.cta-flex,.eael-call-to-action.cta-icon-flex{flex-wrap:wrap}.eael-call-to-action .title{font-size:28px;line-height:36px;margin-top:0}.eael-call-to-action.cta-icon-flex .icon{-webkit-box-flex:1;flex-grow:1;font-size:48px;line-height:90px;text-align:center}.eael-call-to-action.cta-flex .content,.eael-call-to-action.cta-icon-flex .content{-webkit-box-flex:1;flex-grow:1;text-align:center;padding:0}.eael-call-to-action.cta-flex .action,.eael-call-to-action.cta-icon-flex .action{text-align:center;padding-top:0}.eael-call-to-action .cta-button{padding:12px 25px}}@media only screen and (max-width:360px){.eael-call-to-action{font-size:14px;line-height:26px}.eael-call-to-action .cta-button{padding:4px 20px;font-size:12px}.eael-call-to-action .title{font-size:20px;line-height:30px}}
7
- @-webkit-keyframes loaderSpin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loaderSpin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.eael-load-more-button-wrap{display:-webkit-box;display:flex}.eael-load-more-button{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:1em 2em;border:0 solid;font-size:16px;overflow:hidden}.eael-load-more-button .button__loader{left:-100%;top:auto;margin-right:5px;-webkit-transition:all .2s;transition:all .2s}.eael-load-more-button>span{margin-left:-20px}.eael-load-more-button.button--loading>span{margin-left:0}.eael-load-more-button.button--loading .button__loader{left:0}.eael-btn-loader{border-radius:50%;width:20px;height:20px;font-size:10px;position:relative;text-indent:-9999em;border-top:4px solid rgba(255,255,255,.2);border-right:4px solid rgba(255,255,255,.2);border-bottom:4px solid rgba(255,255,255,.2);border-left:4px solid #fff;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:loaderSpin 1.1s infinite linear;animation:loaderSpin 1.1s infinite linear}.eael-btn-loader:after{border-radius:50%;width:20px;height:20px}
8
  .eael-contact-form-7.eael-contact-form-btn-align-center input.wpcf7-submit{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-7.eael-contact-form-btn-align-left input.wpcf7-submit{float:left;width:auto}.eael-contact-form-7.eael-contact-form-btn-align-right input.wpcf7-submit{float:right;width:auto}.eael-contact-form-7 .uneditable-input,.eael-contact-form-7 input[type=color],.eael-contact-form-7 input[type=date],.eael-contact-form-7 input[type=datetime-local],.eael-contact-form-7 input[type=datetime],.eael-contact-form-7 input[type=email],.eael-contact-form-7 input[type=month],.eael-contact-form-7 input[type=number],.eael-contact-form-7 input[type=password],.eael-contact-form-7 input[type=search],.eael-contact-form-7 input[type=tel],.eael-contact-form-7 input[type=text],.eael-contact-form-7 input[type=time],.eael-contact-form-7 input[type=url],.eael-contact-form-7 input[type=week],.eael-contact-form-7 textarea{-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.eael-contact-form-7 .wpcf7-form::after,.eael-contact-form-7 .wpcf7-form::before{content:" ";clear:both;display:table}.eael-contact-form-7 .wpcf7-form:after{clear:both;content:"";font-size:0;height:0;display:block;visibility:hidden}.eael-contact-form-7 .wpcf7-form .wpcf7-form-control-wrap,.eael-contact-form-7 .wpcf7-form label{display:block}.eael-contact-form-7 .wpcf7-form p{margin-bottom:0}.eael-contact-form-7.labels-hide .wpcf7-form label{display:none}.eael-contact-form-7-title{margin-bottom:10px}.eael-contact-form-7-description{margin-bottom:20px}.eael-contact-form-7-button-full-width .wpcf7-form-control.wpcf7-submit{width:100%}
 
9
  .eael-ticker-wrap{overflow:hidden;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-align:center;align-items:center;width:100%}.eael-ticker-wrap .ticker-badge{-webkit-box-flex:0;flex:0 0 auto;padding:8px 12px}.eael-ticker-wrap .eael-ticker{overflow:hidden;-webkit-box-flex:1;flex:1 1 auto}.eael-ticker-wrap .eael-ticker .ticker-content{padding:8px 12px;line-height:1.8}.eael-ticker-wrap .eael-ticker .ticker-content p{margin:0}.eael-ticker-wrap .swiper-button-prev{left:auto!important;right:25px}.eael-ticker-wrap div.swiper-slide,.eael-ticker-wrap div.swiper-slide.swiper-slide-next,.eael-ticker-wrap div.swiper-slide.swiper-slide-prev{opacity:0!important}.eael-ticker-wrap div.swiper-slide.swiper-slide-active{opacity:1!important}.eael-ticker-wrap .eael-content-ticker.swiper-container .swiper-slide{text-align:left}@media only screen and (max-width:767px){.eael-ticker-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.content-ticker-pagination{display:none}}.eael-ticker-wrap .swiper-button-next,.eael-ticker-wrap .swiper-button-prev{background-image:none;outline:0;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}
10
  .eael-countdown-items{list-style:none;margin:0;padding:0;display:table;table-layout:fixed;width:100%}.eael-countdown-items>li{list-style:none;margin:0;padding:0;display:table-cell;position:relative}.eael-countdown-item>div{text-align:center;padding:20px}.eael-countdown-label-block .eael-countdown-digits,.eael-countdown-label-block .eael-countdown-label{display:block;text-align:center}.eael-countdown-digits{font-size:54px;line-height:1}.eael-countdown-label{font-size:18px;line-height:1;color:#fff}.eael-countdown-show-separator .eael-countdown-digits::after{content:":";position:absolute;left:98%;z-index:9999}.eael-countdown-item:last-child .eael-countdown-digits::after{display:none}.eael-countdown-items.style-1 .eael-countdown-item>div{background:#262625}
11
- .eael-creative-button-align-center{text-align:center}.eael-creative-button-wrapper{display:-webkit-box;display:flex}.eael-creative-button{-webkit-box-flex:0;flex:0 0 auto;min-width:150px;text-align:center;vertical-align:middle;position:relative;z-index:1;border-radius:2px;padding:20px 30px;font-size:16px;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;-moz-osx-font-smoothing:grayscale}.eael-creative-button:focus{outline:0}.eael-creative-button--winona{overflow:hidden;padding:0!important;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona::after{content:attr(data-text);position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;-webkit-transform:translate3d(0,25%,0);transform:translate3d(0,25%,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--winona::after,.eael-creative-button--winona>.creative-button-inner{padding:1em 2em;-webkit-transition:-webkit-transform .3s,opacity .3s;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona:hover::after{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--winona:hover>.creative-button-inner{opacity:0;-webkit-transform:translate3d(0,-25%,0);transform:translate3d(0,0,0)}.eael-creative-button--ujarak{-webkit-transition:border-color .4s,color .4s;transition:border-color .4s,color .4s}.eael-creative-button--ujarak::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:0;-webkit-transform:scale3d(.7,1,1);transform:scale3d(.7,1,1);-webkit-transition:-webkit-transform .4s,opacity .4s;-webkit-transition:opacity .4s,-webkit-transform .4s;transition:opacity .4s,-webkit-transform .4s;transition:transform .4s,opacity .4s;transition:transform .4s,opacity .4s,-webkit-transform .4s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak,.eael-creative-button--ujarak::before{-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak:hover::before{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--wayra{overflow:hidden;-webkit-transition:border-color .3s,color .3s;transition:border-color .3s,color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--wayra::before{content:'';position:absolute;top:0;left:0;width:150%;height:100%;z-index:-1;-webkit-transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transition:-webkit-transform .3s,opacity .3s,background-color .3s;-webkit-transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s,background-color .3s;transition:transform .3s,opacity .3s,background-color .3s,-webkit-transform .3s}.eael-creative-button--wayra:hover::before{opacity:1;-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg);-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya{float:left;min-width:150px;max-width:250px;display:block;margin:1em;padding:1em 2em;border:none;background:0 0;color:inherit;vertical-align:middle;position:relative;z-index:1;-webkit-backface-visibility:hidden;-moz-osx-font-smoothing:grayscale;overflow:hidden;color:#7986cb;min-width:180px}.eael-creative-button--tamaya.button--inverted{color:#37474f;border-color:#37474f}.eael-creative-button--tamaya::after,.eael-creative-button--tamaya::before{content:attr(data-text);position:absolute;width:100%;height:50%;left:0;background:#7986cb;color:#fff;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya.button--inverted::after,.eael-creative-button--tamaya.button--inverted::before{background:#fff;color:#37474f}.eael-creative-button--tamaya::before{top:0;padding-top:1em}.eael-creative-button--tamaya::after{bottom:0;line-height:0}.eael-creative-button--tamaya span{display:block;-webkit-transform:scale3d(.2,.2,1);transform:scale3d(.2,.2,1);opacity:0;-webkit-transition:-webkit-transform .3s,opacity .3s;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya:hover::before{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.eael-creative-button--tamaya:hover::after{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.eael-creative-button--tamaya:hover span{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);content:'Bangladesh'}.eael-creative-button--rayen{overflow:hidden;padding:0!important}.eael-creative-button--rayen::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--rayen::before,.eael-creative-button--rayen>.creative-button-inner{padding:1em 2em;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.75,0,.125,1);transition-timing-function:cubic-bezier(.75,0,.125,1)}.eael-creative-button--rayen:hover::before{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--rayen:hover>.creative-button-inner{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.creative-button-inner{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button-icon-left{margin-right:5px}.eael-creative-button-icon-right{margin-left:5px}
12
- @charset "UTF-8";table.eael-data-table thead .sorting,table.eael-data-table thead .sorting_asc,table.eael-data-table thead .sorting_desc{position:relative;z-index:0;outline:0;cursor:pointer}table.eael-data-table thead .sorting:after,table.eael-data-table thead .sorting_asc:after,table.eael-data-table thead .sorting_desc:after{position:absolute;top:50%;right:10px;font-family:FontAwesome;color:#fff;z-index:1;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.eael-data-table-wrap .eael-data-tables_wrapper{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-pack:start;justify-content:flex-start;width:100%}.eael-data-table-wrap .eael-data-tables_filter{-webkit-box-flex:1;flex-grow:1;flex-basis:50%;text-align:right}.eael-data-table-wrap .eael-data-tables_filter label{font-weight:700}.eael-data-table-wrap .eael-data-tables_filter label input[type=search]{height:40px;border:1px solid rgba(0,0,0,.09);outline:0;padding:10px;margin-left:10px}.eael-data-table-wrap .eael-data-tables_length{-webkit-box-flex:1;flex-grow:1;flex-basis:50%}.eael-data-table-wrap .eael-data-tables_length select{width:auto;max-width:120px;height:40px;border:1px solid rgba(0,0,0,.09);outline:0;margin-left:10px;margin-right:10px}.eael-data-table-wrap .eael-data-tables_length label{font-weight:700}.eael-data-table-wrap .eael-data-tables_info{-webkit-box-flex:1;flex-grow:1;flex-basis:50%;font-weight:700}.eael-data-table-wrap .eael-data-tables_paginate{-webkit-box-flex:1;flex-grow:1;flex-basis:50%;text-align:right}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button{padding:10px 15px;background:#f2f2f2;margin-right:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button:hover{color:#fff;background:#4a4893}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.current{color:#fff;background:#4a4893}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.disabled{cursor:no-drop;background:#f2f2f2;opacity:.5;color:#888}.data-header-icon{margin-right:10px;position:relative;top:2px}.eael-data-table{width:100%;height:auto;margin:0;border-collapse:collapse;border:none}.eael-data-table tr{border-style:none}.eael-data-table thead tr{text-align:left}.eael-data-table thead tr th{padding:20px 15px;background:#4a4893;font-size:16px;font-weight:600;font-family:Montserrat,sans-serif;line-height:1;color:#fff;border-color:#000;border-width:2px;border-style:none;background-clip:padding-box}.eael-data-table thead tr th:hover{border-color:#000}.eael-data-table tbody tr.even{-webkit-transition:background .4s ease-in-out;transition:background .4s ease-in-out}.eael-data-table tbody tr.even:hover{background:rgba(242,242,242,.7)}.eael-data-table tbody tr.even:last-child{border-bottom:1px solid rgba(0,0,0,.09)}.eael-data-table tbody tr.odd{background:rgba(242,242,242,.5);-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.eael-data-table tbody tr.odd:hover{background:rgba(242,242,242,.7)}.eael-data-table tbody tr.odd:last-child{border-bottom:1px solid rgba(0,0,0,.09)}.eael-data-table tbody tr td{padding:20px 15px;font-size:14px;font-family:Montserrat,sans-serif;line-height:1;border-width:2px;border-style:none;background-clip:padding-box}.eael-data-table-th-img{display:inline-block;margin:0 15px 0 0;line-height:1}.th-mobile-screen{display:none}@media (max-width:767px){.eael-data-table-wrap{overflow-x:scroll!important;padding-bottom:5px}.th-mobile-screen{display:inline-block;padding:0 .6em;margin-right:10px;text-align:center;-webkit-box-flex:0;flex-grow:0;flex-shrink:0;flex-basis:100px}.th-mobile-screen .eael-data-table-th-img{margin:0 auto 15px auto;display:block}.th-mobile-screen .data-header-icon{margin:0 auto 15px auto;display:block}.td-content-wrapper{display:-webkit-box;display:flex;width:100%}.td-content{width:100%;-webkit-box-pack:center;justify-content:center}.td-content>p{width:100%;-webkit-box-pack:center;justify-content:center}.custom-responsive-option-enable .eael-data-table thead{display:none}.custom-responsive-option-enable .eael-data-table tbody tr td{float:none;clear:left;width:100%;text-align:left;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-data-table .td-content{-webkit-box-align:center;align-items:center;display:-webkit-box;display:flex}}table.eael-data-table thead .sorting:after{content:""}table.eael-data-table thead .headerSortDown:after{content:""}table.eael-data-table thead .headerSortUp:after{content:""}table.eael-data-table thead .sorting_disabled.sorting:after{display:none}table.eael-data-table .sorting.sorting-none:after{display:none}table.eael-data-table .sorting_desc.sorting-none:after{display:none}table.eael-data-table .sorting_asc.sorting-none:after{display:none}.eael-table-align-left table.eael-data-table{float:left}.eael-table-align-center table.eael-data-table{margin:0 auto}.eael-table-align-right table.eael-data-table{float:right}.eael-hide-elements .eael-data-tables_info{display:none}.eael-dt-th-align-left .eael-data-table thead tr th{text-align:left}.eael-dt-th-align-right .eael-data-table thead tr th{text-align:right;padding-right:30px}.eael-dt-th-align-center .eael-data-table thead tr th{text-align:center}.eael-dt-td-align-left .eael-data-table tbody tr td{text-align:left}.eael-dt-td-align-center .eael-data-table tbody tr td{text-align:center}.eael-dt-td-align-right .eael-data-table tbody tr td{text-align:right;padding-right:30px}@media (max-width:1024px){.eael-dt-td-align-tablet-left .eael-data-table tbody tr td{text-align:left}.eael-dt-td-align-tablet-center .eael-data-table tbody tr td{text-align:center}.eael-dt-td-align-tablet-right .eael-data-table tbody tr td{text-align:right}}@media (max-width:767px){.eael-dt-td-align-mobile-left .eael-data-table tbody tr td{text-align:left}.eael-dt-td-align-mobile-center .eael-data-table tbody tr td{text-align:center}.eael-dt-td-align-mobile-right .eael-data-table tbody tr td{text-align:right}}
13
  .eael-dual-header{display:block;margin-bottom:50px}.eael-dual-header .title,.eael-dual-header .title span{font-size:36px;font-weight:700;text-transform:uppercase;line-height:48px;margin:10px 0}.eael-dual-header .subtext{font-size:16px;display:block}.eael-dual-header i{display:block;padding:0;margin:20px 0 10px 0;font-size:36px}.eael-dual-header .title span.lead{color:#1abc9c}.eael-dual-header-content-align-center{text-align:center}.eael-dual-header-content-align-left{text-align:left}.eael-dual-header-content-align-right{text-align:right}
14
  .elementor-panel .pro-feature,.elementor-panel .pro-feature a{color:#a4afb7;text-transform:uppercase;letter-spacing:1px;line-height:1.8;font-style:normal}.elementor-panel .pro-feature a{text-decoration:underline;color:#f54!important}.elementor-control-data_table_content_colspan_pro_alert .elementor-control-title,.elementor-control-data_table_content_rowspan_pro_alert .elementor-control-title,.elementor-control-data_table_content_template_pro_alert .elementor-control-title,.elementor-control-data_table_header_colspan_pro_alert .elementor-control-title,.elementor-control-data_table_header_img_pro_alert .elementor-control-title,.elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-title.elementor-panel-heading-title,.elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-toggle{color:#f54}.elementor-panel .elementor-control-eael_control_get_pro .elementor-control-field{display:none!important}.elementor-control-eael_fancy_text_style_pro_alert .elementor-control-title,.elementor-control-eael_img_accordion_type_pro_alert .elementor-control-title,.elementor-control-eael_pricing_table_style_pro_alert .elementor-control-title,.elementor-control-eael_section_countdown_style_pro_alert .elementor-control-title,.elementor-control-eael_section_data_table_enabled_pro_alert .elementor-control-title,.elementor-control-eael_team_members_preset_pro_alert .elementor-control-title,.elementor-control-eael_ticker_type_pro_alert .elementor-control-title{color:#f54}
 
15
  .eael-facebook-feed{width:100%;margin:auto}.eael-facebook-feed.eael-col-1 .eael-facebook-feed-item{float:none;width:100%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-1 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-1 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-2 .eael-facebook-feed-item{float:left;width:50%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-2 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-2 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-3 .eael-facebook-feed-item{float:left;width:33.3333%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-3 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-3 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-4 .eael-facebook-feed-item{float:left;width:25%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-4 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-4 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-5 .eael-facebook-feed-item{float:left;width:20%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-5 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-5 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-6 .eael-facebook-feed-item{float:left;width:16.6666%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-6 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-6 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed .eael-facebook-feed-item{display:inline-block;line-height:0}.eael-facebook-feed .eael-facebook-feed-item,.eael-facebook-feed .eael-facebook-feed-item-inner{position:relative}.eael-facebook-feed-overlay .eael-facebook-feed-item .eael-facebook-feed-item-overlay{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;text-align:center;position:absolute;top:0;bottom:0;left:0;right:0;font-size:12px;line-height:1;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;-webkit-transition:all .2s;transition:all .2s}.eael-facebook-feed-overlay .eael-facebook-feed-item .eael-facebook-feed-item-overlay .eael-facebook-feed-item-overlay-inner{position:relative;align-self:center}.eael-facebook-feed-overlay .eael-facebook-feed-item:hover .eael-facebook-feed-item-overlay{-webkit-transform:scale(1);transform:scale(1);opacity:1}.eael-facebook-feed-overlay .eael-facebook-feed-meta{margin-bottom:0}.eael-facebook-feed-overlay .eael-facebook-feed-meta span{display:inline-block;margin:0 15px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner{margin:10px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header{padding:8px 12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-item-user{float:left}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-item-user .eael-facebook-feed-avatar{float:left;display:inline-block;width:32px;height:32px;border-radius:50%;margin-right:10px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-item-user .eael-facebook-feed-username{float:left;display:inline-block;font-size:14px;font-weight:400;line-height:32px;margin:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-post-time{float:right;font-size:11px;font-weight:400;line-height:32px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-content{position:relative;display:block;padding:12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-content .eael-facebook-feed-message{font-size:14px;font-weight:400;line-height:1.3;margin:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap{padding:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-preview-img{display:block;position:relative;margin-bottom:12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.4);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-preview-overlay i{font-size:48px;color:#fff}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview{padding:0 12px 15px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview .eael-facebook-feed-url-host{font-size:12px;font-weight:400;line-height:1;text-transform:uppercase;margin-bottom:5px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview .eael-facebook-feed-url-title{font-size:15px;font-weight:700;line-height:1.4;margin-top:0;margin-bottom:6px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview .eael-facebook-feed-url-description{font-size:14px;font-weight:400;line-height:1.2;margin-bottom:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-footer{font-size:13px;font-weight:400;line-height:30px;padding:8px 12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-footer span{display:inline-block}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-footer span.eael-facebook-feed-post-likes{margin-right:15px}.elementor-widget-eael-facebook-feed .eael-load-more-button-wrap{-webkit-box-pack:center;justify-content:center;margin-top:15px}.elementor-widget-eael-facebook-feed .eael-load-more-button-wrap.no-pagination{display:none}
16
  .eael-fancy-text-container p{margin:0}.eael-fancy-text-strings{display:none}.eael-fancy-text-prefix,.eael-fancy-text-suffix{display:inline-block}.morphext>.animated{display:inline-block}.typed-cursor{opacity:1;-webkit-animation:blink_cursor .7s infinite;animation:blink_cursor .7s infinite}@keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}@-webkit-keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}.eael-fancy-text-container.style-2{font-size:24px}.eael-fancy-text-container.style-2 .eael-fancy-text-strings{background:#f54;color:#fff;padding:10px 25px}
17
  .elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:before{top:3px!important}.elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:after{top:45px!important}.elementor-widget-eael-feature-list.-icon-position-right .connector,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .connector{right:0;left:calc(100% - 70px)}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:auto;right:0}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px;top:30px}.elementor-widget-eael-feature-list .eael-feature-list-items{list-style-type:none;margin:0;padding:0}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item{position:relative}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .connector{display:block;position:absolute;width:0;margin:0 auto;z-index:1;height:100%;top:.5em;font-size:60px;left:0;right:calc(100% - 60px);border-left:2px solid #2ecc71;border-right:none!important}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item:last-child .connector{display:none}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box{z-index:2;-webkit-transition:all .5s;transition:all .5s}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box{-webkit-transition:none;transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner{background-color:#37368e;-webkit-transition:all .5s;transition:all .5s;display:-webkit-inline-box;display:inline-flex}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner{-webkit-transition:none;transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon{padding:.5em;-webkit-transition:all .5s;transition:all .5s;font-size:30px;line-height:1;color:#37368e;text-align:center;display:-webkit-inline-box;display:inline-flex;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon{-webkit-transition:none;transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i{width:1em;height:1em;position:relative;display:block}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img{font-size:8px;line-height:1;max-width:inherit}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box{margin:0 0 0 20px}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-title{margin-top:-2px;line-height:1.5em}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-content{padding:0;margin:0;font-size:14px;line-height:1.5em}.elementor-widget-eael-feature-list .eael-feature-list-items.stacked .eael-feature-list-icon-box .eael-feature-list-icon{color:#fff}.elementor-widget-eael-feature-list .eael-feature-list-items.framed .eael-feature-list-icon-box .eael-feature-list-icon{background-color:#fff}.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner{border-radius:50%}.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner .eael-feature-list-icon{border-radius:50%}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon-inner{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin:15px}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title{margin-top:15px}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px;position:relative}@media (max-width:767px){.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px;display:block}}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{content:"";position:absolute;display:block}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;top:0;z-index:1;border-left:1px solid #000;border-right:none!important;height:100%}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px;top:30px;width:23px;display:block;z-index:2;border-bottom:1px dashed #000;border-top:none!important}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item .connector{display:none}@media (min-width:768px){.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item{padding:0 50px 0 0}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:before{left:auto;right:0}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:after{left:auto;right:5px;top:30px}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item .connector{display:none}}@media (min-width:1025px){.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item{display:-webkit-box;display:flex}.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}}@media (max-width:1024px){.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{display:-webkit-box;display:flex}.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px;top:30px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{right:0;left:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{display:block;text-align:left}.elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item{display:-webkit-box;display:flex}.elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{right:0;left:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px}}
18
  .eael-filter-gallery-control{width:100%}.eael-filter-gallery-control ul,.eael-filter-gallery-control ul li{text-align:center}.eael-filter-gallery-control ul{margin:0 0 20px 0;padding:0;text-align:center}.eael-filter-gallery-control{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:1 1 auto;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-flow:row wrap;padding:0;margin:0}.eael-filter-gallery-control ul li{list-style:none;font-size:24px;display:inline-block;text-align:center}.eael-filter-gallery-control ul li a.control{font-family:Montserrat,sans-serif;font-size:16px;font-weight:600;padding:10px 25px;margin:10px 6px}.eael-filter-gallery-container{text-align:justify;font-size:.1px}.eael-filter-gallery-container:after{content:'';display:inline-block;width:100%}.eael-filter-gallery-container:not(.eael-cards) .item:before{content:'';display:inline-block;padding-top:56.25%}.eael-filter-gallery-container .item .caption{position:absolute;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:1 1 100%;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;z-index:1;top:0;left:0;right:0;bottom:0;-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.eael-filter-gallery-container.eael-cards .item .caption{display:none}.eael-filter-gallery-container.eael-cards .item .item-img .caption{position:absolute;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:1 1 100%;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;z-index:10;top:0;left:0;right:0;bottom:0;-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.gallery-item-caption-over{width:100%;height:auto}a.eael-gallery-load-more,a.eael-gallery-load-more:hover{text-decoration:none}.eael-filter-gallery-container .item .caption.eael-zoom-in,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-zoom-in{-webkit-transform:scale(0);transform:scale(0)}.eael-filter-gallery-container .item:hover .caption.eael-zoom-in,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-zoom-in{-webkit-transform:scale(1);transform:scale(1)}.eael-filter-gallery-container .item .caption.eael-slide-left,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-left,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-left{-webkit-transform:translateX(0);transform:translateX(0)}.eael-filter-gallery-container .item .caption.eael-slide-right,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-right,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-right{-webkit-transform:translateX(0);transform:translateX(0)}.eael-filter-gallery-container .item .caption.eael-slide-top,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-top,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-top{-webkit-transform:translateY(0);transform:translateY(0)}.eael-filter-gallery-container .item .caption.eael-slide-bottom,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-bottom,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.eael-filter-gallery-container .item .caption a{display:inline-block;width:50px;height:50px;text-align:center;line-height:50px;border-radius:50%;margin:0 5px;font-size:20px;cursor:pointer;-webkit-transition:.3s;transition:.3s}.eael-container .item .caption a:nth-child(2),.eael-filter-gallery-container .item .caption a:nth-child(1){-webkit-transition:.6s;transition:.6s;opacity:0}.eael-filter-gallery-container .item .caption a:nth-child(1){-webkit-transform:translateY(-100%);transform:translateY(-100%)}.eael-filter-gallery-container .item .caption a:nth-child(2){-webkit-transform:translateY(100%);transform:translateY(100%)}.eael-filter-gallery-container .item .caption:hover a:nth-child(1),.eael-filter-gallery-container .item .caption:hover a:nth-child(2){-webkit-transform:translateY(0);transform:translateY(0);opacity:1}.eael-filter-gallery-container .item .caption .eael-popup-link{outline:0}.eael-filter-gallery-container.eael-cards .item:before{padding-top:0}.eael-filter-gallery-container.eael-cards .item-img{position:relative;background-repeat:no-repeat;background-position:center;background-size:cover;height:220px;z-index:0;overflow:hidden}.eael-filter-gallery-container.eael-cards .item-content{padding:15px}.eael-filter-gallery-container.eael-cards .item-content .title,.eael-filter-gallery-container.eael-cards .item-content .title a{font-size:20px;line-height:1;margin-bottom:0;-webkit-transition:.3s;transition:.3s}.eael-filter-gallery-container.eael-cards .item-content p{font-size:14px;line-height:26px}.eael-fg-card-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:center}.eael-fg-card-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:right}.eael-fg-hoverer-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:center}.eael-fg-hoverer-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:right}.eael-fg-content-align-left .eael-cards .item .item-content{text-align:left}.eael-fg-content-align-center .eael-cards .item .item-content{text-align:center}.eael-fg-content-align-right .eael-cards .item .item-content{text-align:right}.mfp-wrap~div.dialog-widget{display:none!important}.eael-filterable-gallery-item-wrap{float:left;width:33.33%}.eael-filter-gallery-container.eael-col-1 .eael-filterable-gallery-item-wrap{width:100%}.eael-filter-gallery-control>ul li{font-size:13px;line-height:1.8;text-transform:uppercase;letter-spacing:1px;padding:6px 15px;cursor:pointer;margin:0 5px;font-weight:400}.eael-filter-gallery-container.eael-col-2 .eael-filterable-gallery-item-wrap{width:50%}.eael-filter-gallery-container.eael-col-4 .eael-filterable-gallery-item-wrap{width:25%}.eael-filter-gallery-container.eael-col-5 .eael-filterable-gallery-item-wrap{width:20%}.eael-gallery-grid-item{margin-left:calc(20px/2);margin-right:calc(20px/2);margin-bottom:20px;position:relative}.gallery-item-caption-wrap,.media-content-wrap{font-size:14px;text-align:left}.gallery-item-thumbnail-wrap.caption-style-card img{max-height:100%;width:100%}.gallery-item-caption-wrap.caption-style-hoverer{position:absolute;left:0;top:0;height:100%;width:100%;padding:15px;z-index:10}.eael-filterable-gallery-item-wrap .eael-gallery-grid-item .gallery-item-thumbnail-wrap>img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.fg-item-content,.fg-item-title{color:#fff;font-family:inherit}.gallery-item-caption-wrap.caption-style-card .fg-item-title{font-size:18px;margin:15px 0 15px;line-height:1}.gallery-item-caption-wrap.caption-style-card{background:#f7f7f7}.gallery-item-caption-wrap.caption-style-card .fg-item-title{margin:10px 0 15px;color:#000}.gallery-item-caption-wrap.caption-style-card .fg-item-content{color:#212529;line-height:1.5;font-weight:400}.gallery-item-buttons>a{display:inline-block;font-size:16px;color:#000;margin-right:15px}.gallery-item-buttons>a:visited{color:#000}.gallery-item-caption-wrap.caption-style-card{padding:10px;box-sizing:border-box;font-family:inherit}.gallery-item-caption-wrap .gallery-item-hoverer-bg{position:absolute;left:0;top:0;height:100%;width:100%;content:'';background:#000;z-index:-1;opacity:.7}.gallery-item-caption-wrap.caption-style-hoverer{visibility:hidden;opacity:0;-webkit-transition:.6s all ease;transition:.6s all ease;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer{opacity:1;visibility:visible}.gallery-item-caption-wrap.caption-style-hoverer h5{font-size:20px;margin-bottom:5px;line-height:1}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5{-webkit-transform:translateY(20px);transform:translateY(20px);-webkit-transition:.6s all ease;transition:.6s all ease}.gallery-item-caption-wrap.caption-style-hoverer p{margin-bottom:5px}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p{-webkit-transform:translateY(40px);transform:translateY(40px);-webkit-transition:.6s all ease;transition:.6s all ease}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons{-webkit-transform:translateY(40px);transform:translateY(40px);-webkit-transition:.6s all ease;transition:.6s all ease}.gallery-item-caption-wrap .gallery-item-buttons>a span{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;border-radius:50%;outline:0;text-decoration:none;display:inline-block;text-align:center}.gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transition:.6s all ease;transition:.6s all ease}.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons,.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5,.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p{-webkit-transform:translate(0);transform:translate(0)}.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in{-webkit-transform:scale(1);transform:scale(1);visibility:visible;opacity:1}.gallery-item-caption-wrap.caption-style-hoverer.eael-none{-webkit-transition:none;transition:none}.gallery-item-thumbnail-wrap{position:relative}.video-popup,.video-popup-bg{position:absolute;left:0;top:0;height:100%;width:100%}.video-popup>img{width:62px;position:relative;z-index:1;-webkit-transition:.3s;transition:.3s}.video-popup{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.video-popup:hover>img{-webkit-transform:scale(1.1);transform:scale(1.1)}.video-popup-bg{visibility:hidden;opacity:0;-webkit-transition:350ms;transition:350ms}.eael-gallery-grid-item:hover .video-popup-bg{visibility:visible;opacity:1}.gallery-item-thumbnail-wrap>.gallery-item-caption-wrap{position:absolute;left:0;top:0;height:100%;width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.gallery-item-caption-wrap.card-hover-bg{visibility:hidden;opacity:0;-webkit-transition:.8s;transition:.8s}.gallery-item-thumbnail-wrap:hover .gallery-item-caption-wrap.card-hover-bg{visibility:visible;opacity:1}.gallery-item-caption-wrap .gallery-item-buttons>a>i{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;height:100%}@media only screen and (min-width:1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .pp-logo-grid{margin-right:-5px}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap{width:16%;float:left}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}@media only screen and (max-width:1024px) and (min-width:766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap{width:16%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}@media only screen and (max-width:767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap{width:16%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}.fg-layout-3-filter-controls{margin:0;padding:0;list-style:none}.fg-layout-3-item-content{text-align:center}.fg-layout-3-item-content .fg-item-title{font-size:18px;line-height:1;font-weight:500;margin:0;-webkit-transition:.3s;transition:.3s}.fg-layout-3-item-content .fg-item-content p{font-size:13px;font-weight:400}.fg-filter-wrap{position:relative;flex-basis:30%}.fg-layout-3-filter-controls{position:absolute;left:0;background:#fff;z-index:999;width:150px;visibility:hidden;opacity:0;-webkit-transition:.3s;transition:.3s;width:100%;border-radius:5px;padding-top:7px}.fg-layout-3-filter-controls.open-filters{visibility:visible;opacity:1}.fg-layout-3-filter-controls li.control{padding:5px 5px 5px 10px;cursor:pointer;-webkit-transition:.3s;transition:.3s;font-size:14px;color:#7f8995;font-weight:400}.fg-layout-3-filter-controls li.control:hover{color:#2d425a}.fg-layout-3-filter-controls li.control:first-child{border-top:0 solid}.fg-layout-3-filter-controls li.control:last-child{border-bottom:0 solid}.fg-layout-3-filters-wrap{max-width:600px;margin:15px auto 50px}.fg-filter-wrap button{width:100%;border:0 solid;border-radius:0;padding:17px 13px;font-size:14px;color:#2d425a;background:#f7f8ff;height:55px;border-right:1px solid #abb5ff;border-radius:10px 0 0 10px;outline:0;text-align:center;position:relative}.fg-filter-wrap button>i{font-size:18px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);margin-left:10px}.fg-layout-3-search-box{flex-basis:70%;height:100%}.fg-layout-3-search-box input[type=text]{width:100%;height:100%;margin:0;padding:15px;border:0 solid;outline:0;background:0 0}.fg-layout-3-search-box input[type=text]::-webkit-input-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-search-box input[type=text]::-moz-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-search-box input[type=text]:-ms-input-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-search-box input[type=text]:-moz-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-filters-wrap{height:55px;border-radius:5px;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center}.fg-layout-3-filters-wrap .fg-layout-3-search-box{background:#f7f8ff;border-radius:0 10px 10px 0}.fg-layout-3-item-thumb{position:relative;overflow:hidden}.fg-layout-3-item-thumb .gallery-item-buttons{text-align:center;position:absolute;left:0;top:0;height:100%;width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;z-index:4}.fg-layout-3-item-content{padding:27px 27px 30px;text-align:center}.eael-fg-card-content-align-left .fg-layout-3-item-content{text-align:left}.eael-fg-card-content-align-center .fg-layout-3-item-content{text-align:center}.eael-fg-card-content-align-right .fg-layout-3-item-content{text-align:right}.eael-filterable-gallery-item-wrap .fg-layout-3-item.eael-gallery-grid-item{box-shadow:0 0 30px 0 rgba(3,29,60,.05);border-radius:5px}.fg-caption-head{position:absolute;left:0;top:0;width:100%;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;padding:35px 35px;z-index:3;color:#fff;font-size:18px;font-weight:700}.fg-item-category>span{font-size:12px;color:#fff;background:#fa9196;padding:10px 12px;display:inline-block}.fg-layout-3-item-content{position:relative}.fg-item-category{position:absolute;left:0;top:0;text-align:center;width:100%;height:30px;margin-top:-15px;z-index:11}.fg-item-category span{border-radius:5px;line-height:1;visibility:hidden;opacity:0;-webkit-transition:.3s;transition:.3s}.fg-layout-3-item.eael-gallery-grid-item:hover .fg-item-category span{visibility:visible;opacity:1}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{width:auto}.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:pointer}.mfp-zoom-out-cur .mfp-image-holder .mfp-close:hover{text-decoration:none}button.mfp-arrow:not(.toggle),button.mfp-close:not(.toggle){background:0 0}
19
  .eael-elements-flip-box-container{position:relative;height:300px;width:100%}.eael-elements-flip-box-container .flipbox-button{display:inline-block;-webkit-transition:all .4s;transition:all .4s}.eael-elements-flip-box-container a{display:block}.eael-elements-flip-box-vertical-align{width:100%}.eael-elements-flip-box-padding{padding:0 30px 5px 30px}.eael-elements-flip-box-icon-image{display:inline-block;margin:0 auto 0 auto;line-height:1}.eael-elements-flip-box-icon-image.eael_eleements_flip_front_icon_style_background{background:#ccc}.eael_eleements_flip_front_icon_style_bordered{border:2px solid #fff}.eael_flip_box_icon_border_round{border-radius:100px}.eael_eleements_flip_front_icon_style_background,.eael_eleements_flip_front_icon_style_bordered{padding:15px}.eael-elements-flip-box-icon-image i{font-size:40px}.eael-elements-slider-display-table{width:100%}.eael-elements-flip-box-front-container{text-align:center;position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background:#0e9dd2;color:#fff;border-color:#000;-webkit-display:flex;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-elements-flip-box-content,.eael-elements-flip-box-heading{color:#fff}.eael-elements-flip-box-heading.flipbox-linked-title{color:#fff;font-size:1.5em;font-weight:700}.eael-elements-flip-box-rear-container{text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;background:#444;color:#fff;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;border-color:#000}.eael-elements-button-floating-container{position:fixed;z-index:100}.eael-elements-button-floating-container .eael-elements-button{margin-top:0;font-size:14px;position:relative;padding:14px 20px}.eael-elements-button{cursor:pointer;display:inline-block;background:#077bbe;color:#fff;line-height:1;padding:16px 25px;margin-top:15px}.eael-elements-button:hover{background:#077bbe;color:#fff}.eael-elements-flip-box-container{-webkit-perspective:1000px;perspective:1000px}.eael-elements-flip-box-front-container,.eael-elements-flip-box-rear-container{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:all;transition-property:all;-webkit-transition-timing-function:ease;transition-timing-function:ease}.eael-elements-flip-box-flip-card{width:100%;height:100%;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all .5s ease;transition:all .5s ease}.eael-elements-flip-box-front-container,.eael-elements-flip-box-rear-container{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:rotateX(0);transform:rotateX(0);-webkit-transform:rotateY(0);transform:rotateY(0)}.eael-animate-flip.eael-animate-up .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.eael-animate-flip.eael-animate-down .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.eael-animate-flip.eael-animate-left .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.eael-animate-flip.eael-animate-right .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.eael-animate-push.eael-elements-flip-box-container,.eael-animate-slide.eael-elements-flip-box-container{overflow:hidden}.eael-animate-push .eael-elements-flip-box-rear-container,.eael-animate-slide .eael-elements-flip-box-rear-container{z-index:3}.eael-animate-push.eael-animate-up .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-up .eael-elements-flip-box-rear-container{top:100%}.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{top:0}.eael-animate-push.eael-animate-down .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-down .eael-elements-flip-box-rear-container{top:auto;bottom:100%}.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{top:auto;bottom:0}.eael-animate-push.eael-animate-left .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-left .eael-elements-flip-box-rear-container{left:100%}.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{left:0}.eael-animate-push.eael-animate-right .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-right .eael-elements-flip-box-rear-container{left:auto;right:100%}.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{left:auto;right:0}.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{top:-100%}.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{top:100%}.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{left:-100%}.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{left:100%}.eael-animate-zoom-in .eael-elements-flip-box-rear-container{opacity:0;-webkit-transform:scale(.75);transform:scale(.75);z-index:3}.eael-animate-zoom-in.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.eael-animate-zoom-out.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{opacity:0;-webkit-transform:scale(.75);transform:scale(.75)}.eael-animate-fade.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{opacity:0}.eael-flipbox-content-align-right .eael-elements-flip-box-padding{text-align:right}.eael-flipbox-content-align-left .eael-elements-flip-box-padding{text-align:left}.eael-flipbox-content-align-center .eael-elements-flip-box-padding{text-align:center}.eael-flipbox-img-circle .eael-elements-flip-box-icon-image img,.eael-flipbox-img-circle .flipbox-back-image-icon img{border-radius:50%;overflow:hidden}
20
  .eael-fluent-form-wrapper label.ff-el-form-check-label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-fluent-form-wrapper label.ff-el-form-check-label input{margin-right:5px}.eael-fluentform-form-button-full-width .ff-btn-submit{width:100%;display:block}.eael-contact-form.eael-fluent-form-wrapper.error-message-hide .ff-el-is-error .text-danger{display:none}.eael-fluentform-form-button-center .ff-el-group .ff-btn-submit,.eael-fluentform-form-button-center .ff-el-group.ff-text-left .ff-btn-submit,.eael-fluentform-form-button-center .ff-el-group.ff-text-right .ff-btn-submit{margin:0 auto;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-fluentform-form-button-right .ff-el-group .ff-btn-submit,.eael-fluentform-form-button-right .ff-el-group.ff-text-left .ff-btn-submit,.eael-fluentform-form-button-right .ff-el-group.ff-text-right .ff-btn-submit{float:right}.eael-fluentform-form-button-left .ff-el-group .ff-btn-submit,.eael-fluentform-form-button-left .ff-el-group.ff-text-left .ff-btn-submit,.eael-fluentform-form-button-left .ff-el-group.ff-text-right .ff-btn-submit{float:left}.eael-contact-form.eael-fluent-form-wrapper.fluent-form-labels-hide label{display:none!important}.eael-fluentform-section-break-content-left .ff-el-group.ff-el-section-break{text-align:left}.eael-fluentform-section-break-content-center .ff-el-group.ff-el-section-break{text-align:center}.eael-fluentform-section-break-content-right .ff-el-group.ff-el-section-break{text-align:right}
21
- .clearfix::after,.clearfix::before{content:" ";display:table;clear:both}.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right{padding-top:40px}.eael-contact-form input[type=date],.eael-contact-form input[type=email],.eael-contact-form input[type=number],.eael-contact-form input[type=tel],.eael-contact-form input[type=text],.eael-contact-form input[type=url],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:0;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto}
22
  .eael-gravity-form-align-default,.eael-gravity-form-align-left,.eael-gravity-form-btn-align-left{text-align:left}.eael-gravity-form-align-right,.eael-gravity-form-btn-align-right{text-align:right}.eael-gravity-form-align-center,.eael-gravity-form-btn-align-center{text-align:center}.eael-gravity-form .gform_wrapper .gform_footer{margin:0;padding:0}.gform_wrapper form li,.gform_wrapper li{list-style:none}.eael-gravity-form .gform_wrapper ul.gform_fields li.gfield{padding:0}.eael-gravity-form .gform_wrapper textarea{padding:0}.eael-gravity-form .gform_wrapper .gform_footer input.button,.eael-gravity-form .gform_wrapper .gform_footer input[type=submit],.eael-gravity-form .gform_wrapper .gform_page_footer input.button,.eael-gravity-form .gform_wrapper .gform_page_footer input[type=submit]{margin:0}.eael-gravity-form.title-description-hide .gform_heading{display:none}.eael-gravity-form.labels-hide .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,.eael-gravity-form.labels-hide .gform_wrapper .top_label .gfield_label{display:none}.eael-gravity-form-button-full-width .gform_wrapper .gform_footer input[type=submit]{width:100%}
 
23
  .eael-img-accordion{display:-webkit-box;display:flex;height:50vh}.eael-img-accordion a{position:relative;-webkit-box-flex:1;flex:1;text-align:center;text-decoration:none;color:#fff;background-size:cover;background-position:center;background-repeat:no-repeat;-webkit-transition:-webkit-box-flex .4s;transition:-webkit-box-flex .4s;transition:flex .4s;transition:flex .4s,-webkit-box-flex .4s}.eael-grow-accordion{-webkit-box-flex:3;flex:3}.eael-img-accordion .overlay{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:0 10px;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-transition:background-color .4s;transition:background-color .4s}.eael-img-accordion .overlay .overlay-inner{z-index:1}.eael-img-accordion a:after{content:"";position:absolute;width:100%;height:100%;z-index:0;top:0;left:0;bottom:0;right:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-img-accordion .overlay-inner *{visibility:hidden;opacity:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.eael-img-accordion .overlay h2{color:#fff;-webkit-transform:translate3d(0,-60px,0);transform:translate3d(0,-60px,0)}.eael-img-accordion .overlay p{color:#fff;-webkit-transform:translate3d(0,60px,0);transform:translate3d(0,60px,0)}.eael-img-accordion .overlay-inner-show *{opacity:1;visibility:visible;-webkit-transform:none!important;transform:none!important;-webkit-transition:all .3s .3s;transition:all .3s .3s}@media screen and (max-width:800px){.eael-img-accordion{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.eael-img-accordion a:hover{-webkit-box-flex:1;flex:1}.eael-img-accordion a:hover .overlay{background-color:transparent}}
24
  .eael-infobox .infobox-icon{height:auto}.eael-infobox .infobox-icon .infobox-icon-wrap{display:-webkit-box;display:flex;width:100%;height:auto;-webkit-transition:.3s;transition:.3s;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-infobox .infobox-icon .infobox-icon-wrap i{-webkit-transition:.3s;transition:.3s}.eael-infobox-content-align-left .eael-infobox .infobox-button,.eael-infobox-content-align-left .eael-infobox .infobox-content,.eael-infobox-content-align-left .eael-infobox .infobox-icon{text-align:left}.eael-infobox-content-align-right .eael-infobox .infobox-button,.eael-infobox-content-align-right .eael-infobox .infobox-content,.eael-infobox-content-align-right .eael-infobox .infobox-icon{text-align:right}.eael-infobox-content-align-center .eael-infobox .infobox-button,.eael-infobox-content-align-center .eael-infobox .infobox-content,.eael-infobox-content-align-center .eael-infobox .infobox-icon{text-align:center}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap{width:90px;height:90px;text-align:center}.eael-infobox-icon-hover-bg-shape-square:hover .infobox-icon .infobox-icon-wrap{border-radius:0}.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-hover-bg-shape-radius:hover .infobox-icon .infobox-icon-wrap{border-radius:15px}.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-hover-bg-shape-circle:hover .infobox-icon .infobox-icon-wrap{border-radius:50%}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap i,.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap i{margin-top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.eael-infobox .infobox-button a.eael-infobox-button{display:inline-block;padding:5px 10px;-webkit-transition:all .3s ease-in-out 0s;transition:all .3s ease-in-out 0s}.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-square .infobox-icon{display:-webkit-box;display:flex;-webkit-box-pack:start;justify-content:flex-start}.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-square .infobox-icon{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center}.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-square .infobox-icon{display:-webkit-box;display:flex;-webkit-box-pack:end;justify-content:flex-end}.eael-infobox.icon-on-left{position:relative;z-index:0;display:-webkit-box;display:flex}.eael-infobox.icon-on-left .infobox-icon-wrap,.eael-infobox.icon-on-right .infobox-icon-wrap{-webkit-box-pack:center;justify-content:center;display:-webkit-box!important;display:flex!important;-webkit-box-align:center;align-items:center}.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap{background:0 0;border:0;text-align:left;height:auto;display:block}.eael-infobox .infobox-content p{margin:0 0 15px}.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap i{margin-top:0;-webkit-transform:translateY(0);transform:translateY(0)}.eael-infobox.icon-on-left .infobox-content{padding-left:15px;-webkit-box-flex:1;flex:1 1 auto}.eael-infobox.icon-on-left .infobox-content .title{line-height:1;margin:0 0 10px 0}.eael-infobox.icon-on-right{position:relative;z-index:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap{background:0 0;border:0;text-align:right;width:auto;height:auto;display:block}.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap i{margin-top:0;-webkit-transform:translateY(0);transform:translateY(0)}.eael-infobox.icon-on-right .infobox-content{padding-right:15px;text-align:right;-webkit-box-flex:1;flex:1 1 auto;box-sizing:border-box}.eael-infobox.icon-on-right .infobox-content .title{line-height:1;margin:0 0 10px 0}.eael-infobox .infobox-icon img{-webkit-transition:all .3s ease-in-out 0s;transition:all .3s ease-in-out 0s}.eael-infobox-hover-img-shape-square:hover .eael-infobox .infobox-icon img{border-radius:0}.eael-infobox-hover-img-shape-circle:hover .eael-infobox .infobox-icon img,.eael-infobox-shape-circle .eael-infobox .infobox-icon img{border-radius:50%}.eael-infobox-hover-img-shape-radius:hover .eael-infobox .infobox-icon img,.eael-infobox-shape-radius .eael-infobox .infobox-icon img{border-radius:15px}
25
  body div.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}button.mfp-close,button.mfp-close:hover{display:inline-block!important;background:0 0;width:auto}.mfp-arrow,.mfp-arrow:hover{background:0 0}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}
@@ -29,13 +28,14 @@ body div.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden
29
  .eael-pricing{-webkit-display:flex;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}.eael-pricing .eael-pricing-item{width:100%;height:auto;margin:0}.eael-pricing .eael-pricing-button{display:inline-block;padding:12px 25px;background:#00c853;font-size:14px;font-weight:600;color:#fff;text-transform:uppercase;text-decoration:none;-webkit-transition:.3s;transition:.3s;border-radius:4px}.eael-pricing .eael-pricing-button:hover{background:#03b048}.eael-pricing .eael-pricing-item ul{padding:0;margin:0;list-style:none}.eael-pricing .eael-pricing-item ul li.disable-item{text-decoration:line-through;opacity:.5}.eael-pricing .eael-pricing-item ul li span.li-icon{color:#00c853;margin-right:6px}.eael-pricing .eael-pricing-item ul li.disable-item span.li-icon{color:#ef5350}.eael-pricing.style-1{position:relative;z-index:0;text-align:center}.eael-pricing.style-1 .eael-pricing-item{border:1px solid rgba(9,9,9,.1);padding:30px;border-radius:5px;-webkit-transition:.5s;transition:.5s}.eael-pricing.style-1 .eael-pricing-item:hover{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.eael-pricing.style-1 .eael-pricing-item.featured{position:relative}.eael-pricing.style-1 .eael-pricing-item.ribbon-1:before{content:"";position:absolute;width:100%;height:3px;background:#00c853;top:0;left:0;right:0;z-index:1;border-radius:5px 5px 0 0}.eael-pricing.style-1 .eael-pricing-item.ribbon-2:before{content:"Featured";position:absolute;width:auto;background:#00c853;color:#fff;top:35px;right:-15px;z-index:10;font-size:10px;font-weight:600;text-transform:uppercase;padding:5px 10px}.eael-pricing.style-1 .eael-pricing-item.ribbon-2:after{content:"";position:absolute;top:20px;right:-15px;width:0;height:0;border-bottom:15px solid #00c853;border-right:15px solid transparent;z-index:9;opacity:.9}.eael-pricing.style-1 .eael-pricing-item.ribbon-3:before{content:"Featured";position:absolute;width:auto;background:rgba(0,0,0,.6);color:#fff;top:15px;right:15px;z-index:10;font-size:11px;font-weight:600;text-transform:uppercase;padding:5px 15px}.eael-pricing.style-1 .eael-pricing-item .header{display:block;position:relative;z-index:0;padding-bottom:15px;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .header:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.1)}.eael-pricing.style-1 .eael-pricing-item .header .title{font-weight:700;line-height:30px;margin:0}.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag{position:relative;z-index:0;padding:15px 0;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.04)}.eael-pricing.style-1 .eael-pricing-item .price-tag{position:relative;display:inline-block;font-size:28px;font-weight:500;line-height:0;margin:0 auto}.eael-pricing.style-1 .eael-pricing-item .price-tag .price-currency{font-size:24px;font-weight:700}.eael-pricing.style-1 .eael-pricing-item .price-period{color:#999}.eael-pricing.style-1 .eael-pricing-item .body ul{display:block;width:100%;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .body ul li{display:block;width:100%;height:auto;padding:10px 0;font-size:14px;color:#6d6d6d;border-bottom:1px solid rgba(9,9,9,.04)}.eael-pricing.style-1 .eael-pricing-item .body ul li:last-child{border:none}.eael-pricing.style-1 .eael-pricing-item.featured-large{padding:60px 0}.eael-pricing.style-2{position:relative;z-index:0;text-align:center}.eael-pricing.style-2 .eael-pricing-item{padding:30px 0;border-radius:5px;margin:0;border:1px solid rgba(9,9,9,.1)}.eael-pricing.style-2 .eael-pricing-item.featured{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.eael-pricing.style-2 .eael-pricing-item.ribbon-1:before{content:"";position:absolute;width:100%;height:3px;background:#00c853;top:0;left:0;right:0;z-index:1;border-radius:5px 5px 0 0}.eael-pricing.style-2 .eael-pricing-item.ribbon-2:before{content:"Featured";position:absolute;width:auto;background:#00c853;color:#fff;top:35px;right:-15px;z-index:10;font-size:10px;font-weight:600;text-transform:uppercase;padding:5px 10px}.eael-pricing.style-2 .eael-pricing-item.ribbon-2:after{content:"";position:absolute;top:20px;right:-15px;width:0;height:0;border-bottom:15px solid #00c853;border-right:15px solid transparent;z-index:9;opacity:.9}.eael-pricing.style-2 .eael-pricing-item.ribbon-3:before{content:"Featured";position:absolute;width:auto;background:rgba(0,0,0,.6);color:#fff;top:15px;right:15px;z-index:10;font-size:11px;font-weight:600;text-transform:uppercase;padding:5px 15px}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon{display:inline-block;position:relative;width:80px;height:80px;background:#00c853;border-radius:50%;margin-bottom:30px;-webkit-transition:.5s;transition:.5s;overflow:hidden}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon,.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon i{font-size:30px;color:#fff;-webkit-transition:.5s;transition:.5s}.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon{background:#43a047}.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon i{color:#fff}.eael-pricing.style-2 .eael-pricing-item .header{background:#c8e6c9;padding:25px 30px;margin-bottom:15px;position:relative;z-index:0}.eael-pricing.style-2 .eael-pricing-item.featured .header:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;right:0;bottom:0;z-index:-1;background:rgba(255,255,255,.4)}.eael-pricing.style-2 .eael-pricing-item .header .title{font-size:28px;font-weight:700;line-height:40px;margin:0}.eael-pricing.style-2 .eael-pricing-item .header .subititle{font-size:14px;font-weight:600;color:#6d6d6d}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag{position:relative;z-index:0;padding:15px 0;margin-bottom:15px}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.04)}.eael-pricing.style-2 .eael-pricing-item .price-tag{position:relative;display:inline-block;font-size:28px;font-weight:500;line-height:0;margin:0 auto}.eael-pricing.style-2 .eael-pricing-item .price-tag .price-currency{font-size:24px;font-weight:700;color:#00c853}.eael-pricing.style-2 .eael-pricing-item .price-period{color:#999}.eael-pricing.style-2 .eael-pricing-item .body ul{display:block;width:100%;margin-bottom:15px}.eael-pricing.style-2 .eael-pricing-item .body ul li{display:block;width:100%;height:auto;padding:10px 15px;font-size:14px;color:#6d6d6d;border-bottom:1px solid rgba(9,9,9,.04)}.eael-pricing.style-2 .eael-pricing-item .body ul li:last-child{border:none}@media only screen and (min-width:768px) and (max-width:992px){.eael-pricing{display:block}.eael-pricing .eael-pricing-item,.eael-pricing.style-2 .eael-pricing-item,.eael-pricing.style-4 .eael-pricing-item{width:100%;margin:0 auto 30px auto}}@media only screen and (max-width:480px){.eael-pricing{display:block}.eael-pricing .eael-pricing-item{width:100%}.eael-pricing .eael-pricing-item,.eael-pricing.style-2 .eael-pricing-item,.eael-pricing.style-4 .eael-pricing-item{margin:0 auto 30px auto}}.eael-pricing-content-align-center .eael-pricing{text-align:center}.eael-pricing-content-align-left .eael-pricing{text-align:left}.eael-pricing-content-align-right .eael-pricing{text-align:right}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag{padding-left:45px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag:before{left:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag{padding-right:30px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .footer,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .header,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .footer,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .header{padding-left:30px;padding-right:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .footer,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .header,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .footer,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .header{padding-right:30px;padding-left:30px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .body ul li,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .body ul li{padding-left:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .body ul li,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .body ul li{padding-right:30px}.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after{-webkit-transform:translateX(-80%);transform:translateX(-80%)}.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after{-webkit-transform:translateX(80%);transform:translateX(80%)}.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after{-webkit-transform:translateX(0);transform:translateX(0)}.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .header:after,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after{margin:0;width:100%}.eael-pricing-button-align-right .eael-pricing.style-1 .footer,.eael-pricing-button-align-right .eael-pricing.style-2 .footer,.eael-pricing-button-align-right .eael-pricing.style-3 .footer,.eael-pricing-button-align-right .eael-pricing.style-4 .footer{text-align:right}.eael-pricing-button-align-center .eael-pricing.style-1 .footer,.eael-pricing-button-align-center .eael-pricing.style-2 .footer,.eael-pricing-button-align-center .eael-pricing.style-3 .footer,.eael-pricing-button-align-center .eael-pricing.style-4 .footer{text-align:center}.eael-pricing-button-align-left .eael-pricing.style-1 .footer,.eael-pricing-button-align-left .eael-pricing.style-2 .footer,.eael-pricing-button-align-left .eael-pricing.style-3 .footer,.eael-pricing-button-align-left .eael-pricing.style-4 .footer{text-align:left}.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-2 .footer,.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-4 .footer{padding-right:30px}.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-2 .footer,.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-4 .footer{padding-left:30px}.only-in-pro{width:100%;-webkit-display:flex;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:15px;min-width:200px;background:#ef5350;color:#fff;text-align:center}.only-in-pro .title{font-family:Roboto,sans-serif;font-size:24px;line-height:40px;margin:0}div.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow{position:absolute;top:50%}div.tooltipster-sidetip.tooltipster-top div.tooltipster-box{margin-bottom:0!important}div.tooltipster-sidetip.tooltipster-bottom div.tooltipster-box{margin-top:0!important}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{top:auto;bottom:-8px}div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{top:-8px;bottom:auto}@media only screen and (max-width:480px){.eael-pricing.style-1 .eael-pricing-item .price-tag{display:block}}
30
  .eael-post-grid .woocommerce ul.products,.eael-product-grid .woocommerce ul.products{display:grid;grid-gap:25px;margin:0!important;padding:0!important}.eael-post-grid .woocommerce ul.products:after,.eael-post-grid .woocommerce ul.products:before,.eael-product-grid .woocommerce ul.products:after,.eael-product-grid .woocommerce ul.products:before{display:none}.eael-post-grid .woocommerce ul.products .product,.eael-product-grid .woocommerce ul.products .product{width:100%;margin:0;padding:0}.eael-post-grid .woocommerce ul.products.products[class*=columns-] li.product,.eael-product-grid .woocommerce ul.products.products[class*=columns-] li.product{width:100%}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product{position:relative;float:left;overflow:hidden;text-align:center;padding:0;border-radius:0;background-color:#fff;box-shadow:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a{text-decoration:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover{outline:0;box-shadow:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product img,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product img{width:100%;height:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1;color:#333;margin:25px 0 12px;padding:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale{display:block;line-height:170px;font-size:13px;text-align:center;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.6);text-transform:uppercase;color:#fff;background-color:#ff2a13;border-radius:0;border:none;box-shadow:none;position:absolute;height:100px;width:200px;z-index:1;left:-100px;top:-50px;right:auto;margin:0;padding:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price{font-size:14px;margin-bottom:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del{opacity:.5;display:inline-block}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins{font-weight:400;background-color:transparent;color:#ff2a13}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating{display:block;float:none;font-size:14px;margin:10px auto}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button{display:block;font-size:14px;font-weight:400;line-height:38px;text-align:center;text-transform:uppercase;color:#fff;background-color:#333;padding:0;margin:15px;border-radius:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus{outline:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart{display:block;margin:0 0 15px 0;padding:0;font-size:14px;line-height:1;text-transform:capitalize;color:#333;background-color:transparent}.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product{border:1px solid #eee}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product{border:1px solid transparent}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart{visibility:hidden;-webkit-transition:none;transition:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover{border:1px solid #eee}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart{visibility:visible}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product{position:relative;float:left;overflow:hidden;text-align:center;padding:0 0 15px 0;border-radius:0;background-color:#fff;box-shadow:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a{text-decoration:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover{outline:0;box-shadow:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img{width:100%;height:auto;margin:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay{position:relative;overflow:hidden;line-height:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap{position:absolute;top:50%;left:0;right:0;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link{display:inline-block;font-size:14px;line-height:38px;text-align:center;color:#fff;background-color:#333;width:38px;height:38px;border-style:none;border-radius:50%;vertical-align:middle;padding:0;margin:0 5px;-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0;-webkit-transition:opacity .3s,-webkit-transform .2s;transition:opacity .3s,-webkit-transform .2s;transition:transform .2s,opacity .3s;transition:transform .2s,opacity .3s,-webkit-transform .2s}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus{outline:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button{font-size:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before{display:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after{content:"\f217";font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;text-rendering:auto;-webkit-font-smoothing:antialiased;vertical-align:middle;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before{display:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after{content:"\f110";display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;color:#fff;height:auto;width:auto;position:relative;top:0;left:0;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart{font-size:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after{content:"\f06e";font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;color:#fff;text-rendering:auto;-webkit-font-smoothing:antialiased;vertical-align:middle;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1;color:#333;margin:25px 0 12px;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale{display:block;line-height:170px;font-size:13px;text-align:center;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.6);text-transform:uppercase;color:#fff;background-color:#ff2a13;border-radius:0;border:none;box-shadow:none;position:absolute;height:100px;width:200px;z-index:1;left:-100px;top:-50px;right:auto;margin:0;padding:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price{font-size:14px;margin-bottom:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del{opacity:.5;display:inline-block}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins{font-weight:400;background-color:transparent;color:#ff2a13}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating{display:block;float:none;font-size:14px;margin:10px auto}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}@media only screen and (min-width:1025px){.eael-product-grid-column-1 .eael-product-grid .woocommerce ul.products{grid-template-columns:100%}.eael-product-grid-column-2 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}.eael-product-grid-column-3 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.eael-product-grid-column-4 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}.eael-product-grid-column-5 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(5,1fr)}.eael-product-grid-column-6 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(6,1fr)}}@media only screen and (max-width:1024px) and (min-width:766px){.eael-product-grid-column-tablet-1 .eael-product-grid .woocommerce ul.products{grid-template-columns:100%}.eael-product-grid-column-tablet-2 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}.eael-product-grid-column-tablet-3 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.eael-product-grid-column-tablet-4 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}.eael-product-grid-column-tablet-5 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(5,1fr)}.eael-product-grid-column-tablet-6 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(6,1fr)}}@media only screen and (max-width:767px){.eael-product-grid-column-mobile-1 .eael-product-grid .woocommerce ul.products{grid-template-columns:100%}.eael-product-grid-column-mobile-2 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}.eael-product-grid-column-mobile-3 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.eael-product-grid-column-mobile-4 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}.eael-product-grid-column-mobile-5 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(5,1fr)}.eael-product-grid-column-mobile-6 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(6,1fr)}}
31
  @-webkit-keyframes animateStripe{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(35px,0);transform:translate(35px,0)}}@keyframes animateStripe{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(35px,0);transform:translate(35px,0)}}@-webkit-keyframes animateStripeRTL{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-35px,0);transform:translate(-35px,0)}}@keyframes animateStripeRTL{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-35px,0);transform:translate(-35px,0)}}.eael-progressbar{position:relative}.eael-progressbar-title{font-size:20px;font-weight:400}.eael-progressbar-line{position:relative;display:block;width:100%;height:12px;background-color:#eee}.eael-progressbar-line .eael-progressbar-count-wrap{position:absolute;right:0;bottom:calc(100% + 5px);font-size:16px;font-weight:400;line-height:1}.eael-progressbar-line-fill{display:inline-block;position:absolute;top:50%;left:0;width:0;height:12px;background-color:#000;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:width 1.5s linear;transition:width 1.5s linear;overflow:hidden}.eael-progressbar-circle{position:relative;width:200px;height:200px}.eael-progressbar-circle .eael-progressbar-title{font-size:16px;font-weight:400}.eael-progressbar-circle .eael-progressbar-count-wrap{font-size:28px;font-weight:700}.eael-progressbar-circle-shadow{width:220px;height:220px;padding:10px;border-radius:50%}.eael-progressbar-circle-pie{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-clip-path:inset(0 0 0 50%);clip-path:inset(0 0 0 50%)}.eael-progressbar-circle-inner{height:100%;width:100%;border-width:12px;border-style:solid;border-color:#eee;border-radius:50%}.eael-progressbar-circle-half{position:absolute;left:0;top:0;height:100%;width:100%;border-width:12px;border-style:solid;border-color:#000;border-radius:50%;-webkit-clip-path:inset(0 50% 0 0);clip-path:inset(0 50% 0 0)}.eael-progressbar-circle-half-left{-webkit-transform:rotate(0);transform:rotate(0)}.eael-progressbar-circle-half-right{-webkit-transform:rotate(180deg);transform:rotate(180deg);visibility:hidden}.eael-progressbar-circle-inner-content{position:absolute;top:50%;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center}.eael-progressbar-half-circle{position:relative;width:200px;height:100px;overflow:hidden}.eael-progressbar-half-circle .eael-progressbar-circle-pie{-webkit-clip-path:inset(0 0 50% 0);clip-path:inset(0 0 50% 0)}.eael-progressbar-half-circle .eael-progressbar-circle-half{-webkit-clip-path:inset(50% 0 0 0);clip-path:inset(50% 0 0 0);-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform 1.5s linear;transition:-webkit-transform 1.5s linear;transition:transform 1.5s linear;transition:transform 1.5s linear,-webkit-transform 1.5s linear}.eael-progressbar-half-circle .eael-progressbar-circle-inner-content{top:initial;bottom:0;-webkit-transform:translateY(0);transform:translateY(0)}.eael-progressbar-half-circle .eael-progressbar-title{font-size:16px;font-weight:400}.eael-progressbar-half-circle .eael-progressbar-count-wrap{font-size:28px;font-weight:700}.eael-progressbar-half-circle-after{position:relative;font-size:12px;font-weight:400;clear:both}.eael-progressbar-postfix-label{float:right}.eael-progressbar-line-stripe .eael-progressbar-line-fill:after{content:'';position:absolute;top:0;left:-35px;width:calc(100% + 70px);height:100%;background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:35px 35px}.eael-progressbar-line-animate .eael-progressbar-line-fill:after{-webkit-animation:animateStripe 2s linear infinite;animation:animateStripe 2s linear infinite}.eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after{-webkit-animation:animateStripeRTL 2s linear infinite;animation:animateStripeRTL 2s linear infinite}.eael-progressbar-circle-wrap>div{margin:0 auto}.eael-progressbar-box-container.left>div,.eael-progressbar-circle-container.left>div,.eael-progressbar-line-container.left{margin:0 auto 0 0}.eael-progressbar-box-container.center>div,.eael-progressbar-circle-container.center>div,.eael-progressbar-line-container.center{margin:0 auto}.eael-progressbar-box-container.right>div,.eael-progressbar-circle-container.right>div,.eael-progressbar-line-container.right{margin:0 0 0 auto}
32
- .eaelsv-overlay{position:absolute;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:4;cursor:pointer;background-size:cover;background-position:50%;text-align:center;overflow:hidden}.eaelsv-overlay-icon{position:absolute;top:50%;left:50%;font-size:90px;color:#fff;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}.plyr__controls button{box-shadow:none!important}.plyr__controls button:hover{box-shadow:none!important}.plyr__controls{display:none!important}.eael-sticky-video-wrapper{position:relative;width:100%;min-height:200px;margin:0;padding:0;-webkit-transition:.5s;transition:.5s;text-align:left;overflow:hidden}.eael-sticky-video-player2{min-height:20px;overflow:visible}.eael-sticky-video-player2.out{position:fixed;z-index:999;border:0!important;border-radius:0!important;height:200px;width:300px}.eael-sticky-video-wrapper.out .eael-sticky-video-player,.eael-sticky-video-wrapper.out .eael-sticky-video-player2{border-radius:0!important}.eael-sticky-video-player2.in{position:relative;margin:0;padding:0;height:100%;border:0;line-height:1}.owp-play{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.owp-play i{font-size:100px;color:#fff;opacity:.8;text-shadow:1px 0 6px rgba(0,0,0,.3);-webkit-transition:all .5s;transition:all .5s}.eael-sticky-video-player:hover .owp-play i{opacity:1}.eaelsv-sticky-player-close{position:absolute;right:-25px;top:-36px;display:none;padding:7px;font-size:24px;z-index:9999;cursor:pointer;box-sizing:content-box;overflow:visible}.eaelsv-sticky-player-close:hover{color:#090}.eaelsv-sticky-player-close:after,.eaelsv-sticky-player-close:before{position:absolute;left:15px;background-color:#333}.eaelsv-sticky-player-close:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.eaelsv-sticky-player-close:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}
33
  .eael-reading-progress-wrap.eael-reading-progress-wrap-local .eael-reading-progress-global{display:none}.eael-reading-progress-wrap.eael-reading-progress-wrap-global .eael-reading-progress-local{display:none}.eael-reading-progress-wrap.eael-reading-progress-wrap-disabled .eael-reading-progress-global,.eael-reading-progress-wrap.eael-reading-progress-wrap-disabled .eael-reading-progress-local{display:none}.eael-reading-progress-wrap .eael-reading-progress{width:100%;position:fixed;top:0;left:0;height:5px;z-index:999999}.eael-reading-progress-wrap .eael-reading-progress.eael-reading-progress-bottom{top:unset;bottom:0}.eael-reading-progress-wrap .eael-reading-progress .eael-reading-progress-fill{height:5px;background-color:#1fd18e;width:0%;-webkit-transition:width 50ms ease;transition:width 50ms ease}
 
34
  .eael-team-item{overflow:hidden;position:relative}.team-avatar-rounded figure img{border-radius:50%;height:auto}.eael-team-image>figure{margin:0;padding:0}.eael-team-image>figure img{display:block;margin:0 auto}.eael-team-item .eael-team-content{padding:10px}.eael-team-item .eael-team-member-name{font-size:20px;font-weight:700;letter-spacing:.05em;margin:5px 0;text-transform:uppercase}.eael-team-item .eael-team-member-position{font-size:14px;font-weight:400;letter-spacing:.05em;margin:5px 0 10px;text-transform:uppercase}.eael-team-item .eael-team-content,.eael-team-item .eael-team-content .eael-team-text{font-size:14px;line-height:1.5}.eael-team-content>ul{margin:0;padding:0}.eael-team-content li{display:inline-block;list-style:outside none none;margin-right:10px;text-align:center}.eael-team-content li a{font-size:2.5rem}.eael-team-align-left .eael-team-item .eael-team-content li,.eael-team-align-left .eael-team-item .eael-team-content p,.eael-team-align-left .eael-team-item .eael-team-content ul,.eael-team-align-left .eael-team-item .eael-team-member-name,.eael-team-align-left .eael-team-item .eael-team-member-position,.eael-team-align-left .eael-team-item .eael-team-text{text-align:left}.eael-team-align-right .eael-team-item .eael-team-content li,.eael-team-align-right .eael-team-item .eael-team-content p,.eael-team-align-right .eael-team-item .eael-team-content ul,.eael-team-align-right .eael-team-item .eael-team-member-name,.eael-team-align-right .eael-team-item .eael-team-member-position,.eael-team-align-right .eael-team-item .eael-team-text{text-align:right}.eael-team-align-centered .eael-team-item .eael-team-content li,.eael-team-align-centered .eael-team-item .eael-team-content p,.eael-team-align-centered .eael-team-item .eael-team-content ul,.eael-team-align-centered .eael-team-item .eael-team-member-name,.eael-team-align-centered .eael-team-item .eael-team-member-position,.eael-team-align-centered .eael-team-item .eael-team-text{text-align:center}.eael-team-item.eael-team-members-overlay .eael-team-content{bottom:10px;left:10px;margin-bottom:0;padding-top:15%;opacity:0;overflow:hidden;text-overflow:ellipsis;position:absolute;right:10px;top:10px;-webkit-transition:all 615ms cubic-bezier(.19,1,.22,1) 0s;transition:all 615ms cubic-bezier(.19,1,.22,1) 0s}.eael-team-item.eael-team-members-overlay:hover .eael-team-content{opacity:1}.eael-team-member-social-link>a{display:inline-block;-webkit-transition:all .3s cubic-bezier(.19,1,.22,1) 0s;transition:all .3s cubic-bezier(.19,1,.22,1) 0s}.eael-team-member-social-link>a:focus{outline:0}
35
  .eael-testimonial-slider{position:relative}.testimonial-star-rating{padding:0;margin:0}.testimonial-star-rating li{list-style:none;display:inline-block}.testimonial-star-rating li i{color:#d8d8d8}.rating-five .testimonial-star-rating li i{color:#f2b01e}.rating-one .testimonial-star-rating li:first-child i{color:#f2b01e}.rating-two .testimonial-star-rating li:nth-child(1) i,.rating-two .testimonial-star-rating li:nth-child(2) i{color:#f2b01e}.rating-three .testimonial-star-rating li:nth-child(1) i,.rating-three .testimonial-star-rating li:nth-child(2) i,.rating-three .testimonial-star-rating li:nth-child(3) i{color:#f2b01e}.rating-four .testimonial-star-rating li:nth-child(1) i,.rating-four .testimonial-star-rating li:nth-child(2) i,.rating-four .testimonial-star-rating li:nth-child(3) i,.rating-four .testimonial-star-rating li:nth-child(4) i{color:#f2b01e}.eael-testimonial-image img{max-width:100%}.eael-testimonial-image{padding:10px 0 0 0}.eael-testimonial-image>figure{display:block;margin:0}.testimonial-avatar-rounded figure img{border-radius:50%;height:auto}.eael-testimonial-content{margin:0;padding:10px}.eael-testimonial-item>figure{margin:0 auto;padding:0 20px}.eael-testimonial-item .center-text{text-align:center}.eael-testimonial-item .right-text{text-align:right}.eael-testimonial-item .left-text{text-align:left}.eael-testimonial-item .justify-text{text-align:justify}.eael-testimonial-content .eael-testimonial-text{font-size:100%;font-style:italic;line-height:1.5;margin-top:0;margin-bottom:10px;word-wrap:break-word}.eael-testimonial-content .eael-testimonial-user{display:inline-block;font-family:inherit;font-size:105%;font-style:italic;font-weight:400;line-height:1.5;margin-top:0;margin-bottom:0;margin-right:5px}.eael-testimonial-content .eael-testimonial-user-company{display:inline-block;font-family:inherit;font-size:90%;font-style:italic;font-weight:lighter;line-height:1.75;margin-bottom:0;margin-top:1px}.eael-testimonial-image{position:relative}.eael-testimonial-item .eael-testimonial-quote::after{color:inherit!important;content:"\f10e";font-family:"Font Awesome 5 Free";font-size:200%;font-weight:900}.eael-testimonial-slider.default-style .eael-testimonial-align-centered .eael-testimonial-image figure img{margin:0 auto}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure img,.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure img,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure img{margin:0}.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure,.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure{text-align:right}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure,.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure{text-align:left}.eael-testimonial-slider.classic-style .eael-testimonial-align-right .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-right .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .middle-style-content{text-align:right}.eael-testimonial-slider.classic-style .eael-testimonial-align-center .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-center .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-center .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-center .middle-style-content{text-align:center}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-left .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .middle-style-content{text-align:left}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-text>p,.eael-testimonial-slider.icon-img-right-content .eael-testimonial-text>p{margin:0}.icon-img-left-content .eael-testimonial-image{float:left;width:30%}.icon-img-left-content .eael-testimonial-content{float:left;width:70%;text-align:left}.icon-img-left-content.eael-testimonial-item{overflow:hidden;position:relative}.icon-img-left-content .eael-testimonial-quote{position:absolute;right:0}.icon-img-left-content .eael-testimonial-text{margin-top:0}.eael-testimonial-align-centered .eael-testimonial-user,.eael-testimonial-align-centered .eael-testimonial-user-company{float:none;text-align:center}.eael-testimonial-align-centered .eael-testimonial-image>figure img{display:block;margin-left:auto!important;margin-right:auto!important}.icon-img-right-content .eael-testimonial-image{float:right;width:30%}.icon-img-right-content .eael-testimonial-content{float:right;width:70%;text-align:right}.icon-img-right-content.eael-testimonial-item{overflow:hidden;position:relative}.icon-img-right-content .eael-testimonial-quote{position:absolute}.icon-img-right-content .eael-testimonial-text{margin-top:0}.eael-testimonial-item{position:relative}.classic-style.testimonial-alignment-center .eael-testimonial-image,.default-style.testimonial-alignment-center .eael-testimonial-image{text-align:center}.classic-style.testimonial-alignment-right .eael-testimonial-image,.default-style.testimonial-alignment-right .eael-testimonial-image{text-align:right}.classic-style.testimonial-alignment-center .eael-testimonial-image>figure,.default-style.testimonial-alignment-center .eael-testimonial-image>figure{text-align:center}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-centered .eael-testimonial-content{text-align:center}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-left .eael-testimonial-content{text-align:left}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-right .eael-testimonial-content{text-align:right}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-centered .eael-testimonial-content{text-align:center}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-left .eael-testimonial-content{text-align:left}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-right .eael-testimonial-content{text-align:right}span.eael-testimonial-quote{position:absolute;right:10px;top:10px}.eael-testimonial-item.left .eael-testimonial-image{text-align:left}.eael-testimonial-item.center .eael-testimonial-image{text-align:center}.eael-testimonial-item.right .eael-testimonial-image{text-align:right}.eael-testimonial-inline-bio .eael-testimonial-image{float:left}.eael-testimonial-inline-bio .bio-text{padding-top:10px}.eael-testimonial-content.eael-testimonial-inline-bio{overflow:hidden;margin-bottom:0;padding-bottom:0}.eael-testimonial-inline-bio .bio-text,.eael-testimonial-inline-bio .testimonial-star-rating{float:left;width:65%}.eael-testimonial-content.eael-testimonial-inline-bio{text-align:left!important}.testimonial-inline-style .eael-testimonial-image{float:left;max-width:100%;padding:0;margin-right:15px}.testimonial-inline-style{overflow:hidden;text-align:left}.content-top-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text,.content-top-icon-title-inline .eael-testimonial-text{text-align:left}.content-top-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text{text-align:center}.content-top-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text{text-align:right}.content-bottom-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text,.content-bottom-icon-title-inline .eael-testimonial-text{text-align:left}.content-bottom-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text{text-align:center}.content-bottom-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text{text-align:right}
36
  .eael-tooltip{position:relative;display:inline-block;min-width:150px;padding:12px 24px;font-size:.93rem;color:#333;line-height:1;cursor:pointer;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-tooltip .eael-tooltip-text{display:block;width:100%;visibility:hidden;background-color:#000;color:#fff;border-radius:4px;padding:10px;position:absolute;z-index:1;font-size:.93rem;line-height:1.3}.eael-tooltip .eael-tooltip-text p{margin:0}.eael-tooltip .eael-tooltip-text::after{content:"";position:absolute;border-width:5px;border-style:solid}.eael-tooltip:hover .eael-tooltip-text{visibility:visible}.eael-tooltip .eael-tooltip-text.eael-tooltip-left{top:50%;right:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);margin-right:10px}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left{-webkit-animation:tooltipLeftIn .3s ease-in-out;animation:tooltipLeftIn .3s ease-in-out}.eael-tooltip .eael-tooltip-text.eael-tooltip-left::after{top:calc(50% - 5px);left:100%;border-color:transparent transparent transparent #000}.eael-tooltip .eael-tooltip-text.eael-tooltip-right{top:50%;left:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;margin-left:10px}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right{-webkit-animation:tooltipRightIn .3s linear;animation:tooltipRightIn .3s linear}.eael-tooltip .eael-tooltip-text.eael-tooltip-right::after{top:calc(50% - 5px);right:100%;border-color:transparent #000 transparent transparent}.eael-tooltip .eael-tooltip-text.eael-tooltip-top{bottom:calc(100%);left:0;right:0;margin:0 auto 10px auto}.eael-tooltip .eael-tooltip-text.eael-tooltip-top::after{margin-top:0;top:100%;left:calc(50% - 5px);border-color:#000 transparent transparent transparent}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top{-webkit-animation:tooltipTopIn .3s linear;animation:tooltipTopIn .3s linear}.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom{top:100%;left:0;right:0;margin:10px auto 0 auto}.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom::after{margin-top:0;bottom:100%;left:calc(50% - 5px);border-color:transparent transparent #000 transparent}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom{-webkit-animation:tooltipBottomIn .3s linear;animation:tooltipBottomIn .3s linear}.eael-tooltip-align-left{display:-webkit-box;display:flex;width:100%;-webkit-box-pack:start;justify-content:flex-start}.eael-tooltip-align-right{display:-webkit-box;display:flex;width:100%;-webkit-box-pack:end;justify-content:flex-end}.eael-tooltip-align-center{display:-webkit-box;display:flex;width:100%;-webkit-box-pack:center;justify-content:center}.eael-tooltip-align-justify .eael-tooltip{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}@-webkit-keyframes tooltipRightIn{0%{opacity:0;left:105%}100%{opacity:1;left:100%}}@keyframes tooltipRightIn{0%{opacity:0;left:105%}100%{opacity:1;left:100%}}@-webkit-keyframes tooltipLeftIn{0%{opacity:0;right:105%}100%{opacity:1;right:100%}}@keyframes tooltipLeftIn{0%{opacity:0;right:105%}100%{opacity:1;right:100%}}@-webkit-keyframes tooltipTopIn{0%{opacity:0;bottom:110%}100%{opacity:1;bottom:100%}}@keyframes tooltipTopIn{0%{opacity:0;bottom:110%}100%{opacity:1;bottom:100%}}@-webkit-keyframes tooltipBottomIn{0%{opacity:0;top:110%}100%{opacity:1;top:100%}}@keyframes tooltipBottomIn{0%{opacity:0;top:110%}100%{opacity:1;top:100%}}span.eael-tooltip-content,span.eael-tooltip-content a{width:100%;display:block;text-align:center}.eael-tooltip-text-align-left .eael-tooltip-content a,.eael-tooltip-text-align-left .eael-tooltip-text{text-align:left}.eael-tooltip-text-align-right .eael-tooltip-content a,.eael-tooltip-text-align-right .eael-tooltip-text{text-align:right}.eael-tooltip-text-align-center .eael-tooltip-content a,.eael-tooltip-text-align-center .eael-tooltip-text{text-align:center}.eael-tooltip-text-align-justify .eael-tooltip-content a,.eael-tooltip-text-align-justify .eael-tooltip-text{text-align:justify}
37
  .eael-twitter-feed::after,.eael-twitter-feed::before{content:"";clear:both}.eael-twitter-feed-masonry .eael-twitter-feed-item{float:left}@media only screen and (max-width:480px){.eael-twitter-feed-masonry.eael-twitter-feed-col-2 .eael-twitter-feed-item{width:100%!important}}@media only screen and (max-width:480px){.eael-twitter-feed-masonry.eael-twitter-feed-col-3 .eael-twitter-feed-item{width:100%!important}}@media only screen and (max-width:480px){.eael-twitter-feed-masonry.eael-twitter-feed-col-4 .eael-twitter-feed-item{width:100%!important}}.eael-twitter-feed-item .eael-twitter-feed-item-inner{background:#fff;border:1px solid rgba(0,0,0,.1)}.eael-twitter-feed-item a{color:#08c;text-decoration:none}.eael-twitter-feed-item a:hover{outline:0;color:#005580}.eael-twitter-feed-item a:focus{outline:0}.eael-twitter-feed-item .eael-twitter-feed-item-header{padding:20px 15px 0;margin-bottom:10px}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-avatar{float:left;width:38px;margin-right:10px}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-avatar img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-avatar.avatar-circle img{border-radius:50%}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-meta{float:left}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-meta .eael-twitter-feed-item-icon{color:#1da1f2;margin-right:5px}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-meta .eael-twitter-feed-item-author{color:#444;line-height:1.5em;font-weight:700}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-date{float:right;margin-right:10px;font-size:90%;color:#999}.eael-twitter-feed-item .eael-twitter-feed-item-content{padding:0 15px 15px}.eael-twitter-feed-item .eael-twitter-feed-item-content p{color:#666;margin:0 0 5px;min-height:20px;text-overflow:ellipsis;-webkit-line-clamp:5;-webkit-box-orient:vertical}.eael-twitter-feed.swiper-container .swiper-button-next,.eael-twitter-feed.swiper-container .swiper-button-prev{background-image:none;outline:0}
38
- .eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button,.eael-wpforms .wpforms-container .wpforms-form button[type=submit],.eael-wpforms .wpforms-container .wpforms-form input[type=submit]{border:0}.eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button:hover,.eael-wpforms .wpforms-container .wpforms-form button[type=submit]:hover,.eael-wpforms .wpforms-container .wpforms-form input[type=submit]:hover{border:0}.eael-wpforms .wpforms-container .wpforms-form input[type=checkbox],.eael-wpforms .wpforms-container .wpforms-form input[type=radio]{padding:3px}.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-label{display:none}.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-name .wpforms-field-row{max-width:100%}.eael-wpforms .wpforms-container .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),.eael-wpforms .wpforms-container .wpforms-field select,.eael-wpforms .wpforms-container .wpforms-field textarea{max-width:100%!important}.eael-wpforms-labels-yes .wpforms-container .wpforms-form .wpforms-field-label{display:block}.eael-wpforms-form-button-full-width .wpforms-submit-container .wpforms-submit{width:100%}
39
  .eael-weform-container input,.eael-weform-container textarea{height:auto;padding:10px}.eael-contact-form-btn-align-center .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-btn-align-left .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{float:left;width:auto}.eael-contact-form-btn-align-right .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{float:right;width:auto}.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=email],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=number],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=password],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=text],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=url],.eael-weform-container ul.wpuf-form li .wpuf-fields textarea{max-width:100%}
 
 
40
  @keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:subpixel-antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5764;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:14px;left:0;padding:10px;position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:16px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}a.plyr__control{text-decoration:none}a.plyr__control::after,a.plyr__control::before{display:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr__control--overlaid{background:rgba(0,179,255,.8);border:0;border-radius:100%;color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00b3ff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls .plyr__controls__item.plyr__volume{padding-right:5px}.plyr__controls .plyr__controls__item.plyr__volume:first-child{padding-right:0}.plyr__controls:empty{display:none}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4a5764;padding:10px}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:20px 5px 5px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:35px 10px 10px}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5764;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(74,87,100,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(74,87,100,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#c1c9d1;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:#00b3ff}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-5px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:26px;color:#00b3ff;display:block;height:19px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:14px;font-weight:500;left:50%;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:16px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__progress{left:6.5px;margin-right:13px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-right:-6.5px;width:calc(100% + 13px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;left:0;margin-top:-2.5px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(193,201,209,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,41,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,41,47,.6) 50%,rgba(35,41,47,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,201,209,.66)}.plyr__volume{align-items:center;display:flex;flex:1;position:relative}.plyr__volume input[type=range]{margin-left:5px;position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:90px}}@media (min-width:768px){.plyr__volume{max-width:110px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(35,41,47,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;left:0;margin:-2.5px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);margin-bottom:10px;opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c9d1;border-radius:2px;overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:2px;color:#fff;font-size:14px;padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}
41
  .tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-fall.tooltipster-initial{top:0!important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-slide.tooltipster-initial{left:-40px!important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading .4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating .6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling .6s}.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}
2
  .eael-adv-accordion{width:auto;height:auto;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-adv-accordion .eael-accordion-list .eael-accordion-header{padding:15px;border:1px solid rgba(0,0,0,.02);font-size:1rem;font-weight:600;line-height:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;cursor:pointer}.eael-adv-accordion .eael-accordion-list .eael-accordion-header .fa-toggle{-webkit-transform:rotate(0);transform:rotate(0);z-index:10;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-adv-accordion .eael-accordion-list .eael-accordion-header.active .fa-toggle{-webkit-transform:rotate(90deg);transform:rotate(90deg);z-index:10;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fa-accordion-icon{display:inline-block;margin-right:10px}.eael-adv-accordion .eael-accordion-list .eael-accordion-content{display:none;border:1px solid #eee;padding:15px;box-sizing:border-box;font-size:1rem;line-height:1.7}.eael-adv-accordion .eael-accordion-list .eael-accordion-content p{margin:0}.eael-adv-accordion .eael-accordion-list .eael-accordion-content.active{display:block}@-webkit-keyframes rotate-90{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes rotate-90{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@-webkit-keyframes fadeIn{0%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}100%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}}@keyframes fadeIn{0%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}100%{opacity:1;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}}
3
  .eael-advance-tabs{display:block}.eael-advance-tabs .eael-tabs-nav>ul{position:relative;padding:0;margin:0;list-style-type:none;display:-webkit-box;display:flex;-webkit-box-pack:start;justify-content:flex-start;-webkit-box-align:center;align-items:center;z-index:1}.eael-advance-tabs .eael-tabs-nav>ul li{position:relative;padding:1em 1.5em;-webkit-box-flex:1;flex:1 1 auto;cursor:pointer;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;text-align:center;background-color:#f1f1f1}.eael-advance-tabs .eael-tabs-nav>ul li:after{content:"";position:absolute;bottom:-10px;left:0;right:0;margin:0 auto;z-index:1;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #444;border-bottom:0;display:none}.eael-advance-tabs .eael-tabs-nav>ul li.active,.eael-advance-tabs .eael-tabs-nav>ul li.active-default,.eael-advance-tabs .eael-tabs-nav>ul li:hover{background-color:#444}.eael-advance-tabs.active-caret-on .eael-tabs-nav>ul li.active-default:after,.eael-advance-tabs.active-caret-on .eael-tabs-nav>ul li.active:after{display:none}.eael-advance-tabs .eael-tabs-nav>ul li.active-default:after,.eael-advance-tabs .eael-tabs-nav>ul li.active:after{display:block}.eael-tabs-content{display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 1 auto}.eael-advance-tabs .eael-tabs-content>div{display:none;opacity:0}.eael-advance-tabs .eael-tabs-content>div.active,.eael-advance-tabs .eael-tabs-content>div.active-default{display:block;width:100%;padding:1em;opacity:1;-webkit-animation:fadeIn linear .3s;animation:fadeIn linear .3s}.eael-tab-inline-icon li a .fa{margin-right:10px;line-height:1}.eael-tab-top-icon li{display:-webkit-box;display:flex;flex-wrap:wrap;text-align:center}.eael-tab-top-icon li a{display:-webkit-box;display:flex;flex-wrap:wrap;text-align:center}.eael-tab-top-icon li .eael-tab-title,.eael-tab-top-icon li .fa{-webkit-box-flex:1;flex:1 1 100%;line-height:1}.eael-tab-top-icon li a .eael-tab-title{margin-top:10px}.eael-advance-tabs.eael-tabs-vertical{display:-webkit-box;display:flex}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav{-webkit-box-flex:0;flex:0 0 auto}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:column wrap}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul>li{width:100%;-webkit-box-pack:start;justify-content:start}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul li::after{bottom:auto!important;right:-10px;top:calc(50% - 10px);left:auto!important;border-left:10px solid #444;border-right:0;border-top:10px solid transparent;border-bottom:10px solid transparent}@media only screen and (max-width:767px){.eael-advance-tabs .eael-tabs-nav>ul{flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.eael-advance-tabs .eael-tabs-nav>ul li{-webkit-box-flex:1;flex:1 1 auto}.responsive-vertical-layout.eael-advance-tabs .eael-tabs-nav>ul li{-webkit-box-flex:1;flex:1 1 100%}.eael-advance-tabs.eael-tabs-vertical{flex-wrap:wrap}.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav{-webkit-box-flex:1;flex:1 100%}.eael-advance-tabs.eael-tabs-vertical ul{-webkit-box-flex:1;flex:1 100%}.eael-advance-tabs.eael-tabs-vertical ul li{-webkit-box-flex:1;flex:1 100%}div.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav>ul li::after{border-left-color:transparent!important;bottom:-20px!important;left:0!important;right:0!important;top:auto!important;border-left:10px solid transparent;border-right:10px solid transparent;border-top-color:#444!important}}
4
  .ea-advanced-data-table-wrap *{background-color:transparent;border:none;box-shadow:none;margin:0;padding:0}.ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner{width:100%;overflow-y:auto}.ea-advanced-data-table-wrap .ea-advanced-data-table{width:100%;border-collapse:collapse}.ea-advanced-data-table-wrap .ea-advanced-data-table td,.ea-advanced-data-table-wrap .ea-advanced-data-table th{background-color:transparent!important}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th{position:relative;cursor:pointer}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:before{content:"";border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid #4d4d4d;position:absolute;top:50%;right:15px;margin-top:-6px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th:after{content:"";border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #4d4d4d;position:absolute;top:50%;right:15px;margin-top:1px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:before{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.asc:after{margin-top:-3px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:before{margin-top:-3px}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-sortable th.desc:after{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th{pointer-events:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:after,.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-unsortable th:before{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-paginated tbody tr{display:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th{position:relative}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:before{border:none}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th:after{content:"";display:block;height:100%;position:absolute;right:0;top:0;width:10px;border:none;cursor:col-resize}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td,.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th{padding:0}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable td textarea,.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable th textarea{width:100%;min-width:100px;height:100%;background-color:transparent;border:none;box-shadow:none;resize:none;margin:0;padding:0;outline:0;vertical-align:middle}.ea-advanced-data-table-wrap .ea-advanced-data-table.ea-advanced-data-table-editable.ea-advanced-data-table-paginated tbody tr{display:table-row}.ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-center{text-align:center}.ea-advanced-data-table-wrap .ea-advanced-data-table-search-wrap.ea-advanced-data-table-search-right{text-align:right}.ea-advanced-data-table-wrap .ea-advanced-data-table-pagination a{display:inline-block}
 
5
  .eael-call-to-action{width:100%;height:auto;display:block;padding:30px;font-size:16px;color:#4d4d4d;font-weight:400;line-height:27px;margin:0 auto}.eael-call-to-action p{margin-bottom:10px}.eael-call-to-action .title{font-size:36px;font-weight:600;line-height:36px;margin-bottom:10px;text-transform:capitalize;font-style:normal}.eael-call-to-action.cta-center{text-align:center}.eael-call-to-action.cta-right{text-align:right}.eael-call-to-action.cta-left{text-align:left}.eael-call-to-action.bg-lite{background:#f4f4f4}.eael-call-to-action.bg-img{background-image:url(../img/bg.jpg);background-repeat:no-repeat;background-position:center;background-size:cover;position:relative;z-index:0;color:rgba(255,255,255,.7)}.eael-call-to-action.bg-img .icon{color:#fff}.eael-call-to-action.bg-img:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1;background:rgba(0,0,0,.8)}.eael-call-to-action.bg-img.bg-fixed{background-attachment:fixed;background-position:center center}.eael-call-to-action.bg-img .title{color:rgba(255,255,255,.9)}.eael-call-to-action.cta-flex,.eael-call-to-action.cta-icon-flex{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start}.eael-call-to-action.cta-icon-flex .icon{-webkit-box-flex:1;flex-grow:1;font-size:80px;text-align:left;line-height:130px}.eael-call-to-action.cta-icon-flex .action{-webkit-box-flex:1;flex-grow:1;text-align:right;padding-top:22px;flex-basis:22%}.eael-call-to-action.cta-icon-flex .content{-webkit-box-flex:1;flex-grow:1;padding:0 30px}.eael-call-to-action.cta-flex .content{padding:0 15px;-webkit-box-flex:1;flex-grow:1}.eael-call-to-action.cta-flex .action{-webkit-box-flex:1;flex-grow:1;text-align:right;padding-top:25px;flex-basis:23%}.eael-call-to-action .cta-button{position:relative;display:inline-block;padding:12px 30px;background:#f9f9f9;font-size:16px;text-decoration:none;color:#4d4d4d;-webkit-transition:.5s;transition:.5s;-ms-box-shadow:0 0 3px -1px rgba(0,0,0,.2);box-shadow:0 0 3px -1px rgba(0,0,0,.2);margin-right:10px;margin-top:10px;z-index:0;overflow:hidden}.eael-call-to-action .cta-button:last-child{margin-right:0}.eael-call-to-action .cta-button:focus{outline:0}.eael-call-to-action .cta-button:hover{color:#fff;background:#3f51b5;-ms-box-shadow:0 1px 12px 1px rgba(0,0,0,.1);box-shadow:0 1px 12px 1px rgba(0,0,0,.1)}.eael-call-to-action .cta-button.effect-1:after{content:"";position:absolute;width:100%;height:100%;background:#3f51b5;top:0;left:0;transform:translateY(-100%);-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);z-index:-1;-webkit-transition:.5s;transition:.5s;color:#fff}.eael-call-to-action .cta-button.effect-1:hover::after{-webkit-transform:translateY(0);transform:translateY(0)}.eael-call-to-action .cta-button.effect-2:after{content:"";position:absolute;width:100%;height:100%;background:#3f51b5;top:0;left:0;z-index:-1;-webkit-transition:.5s;transition:.5s;color:#fff;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.eael-call-to-action .cta-button.effect-2:hover::after{-webkit-transform:translateX(0);transform:translateX(0)}@media only screen and (max-width:768px){.eael-call-to-action.cta-flex,.eael-call-to-action.cta-icon-flex{flex-wrap:wrap}.eael-call-to-action .title{font-size:28px;line-height:36px;margin-top:0}.eael-call-to-action.cta-icon-flex .icon{-webkit-box-flex:1;flex-grow:1;font-size:48px;line-height:90px;text-align:center}.eael-call-to-action.cta-flex .content,.eael-call-to-action.cta-icon-flex .content{-webkit-box-flex:1;flex-grow:1;text-align:center;padding:0}.eael-call-to-action.cta-flex .action,.eael-call-to-action.cta-icon-flex .action{text-align:center;padding-top:0}.eael-call-to-action .cta-button{padding:12px 25px}}@media only screen and (max-width:360px){.eael-call-to-action{font-size:14px;line-height:26px}.eael-call-to-action .cta-button{padding:4px 20px;font-size:12px}.eael-call-to-action .title{font-size:20px;line-height:30px}}
 
6
  .eael-contact-form-7.eael-contact-form-btn-align-center input.wpcf7-submit{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-7.eael-contact-form-btn-align-left input.wpcf7-submit{float:left;width:auto}.eael-contact-form-7.eael-contact-form-btn-align-right input.wpcf7-submit{float:right;width:auto}.eael-contact-form-7 .uneditable-input,.eael-contact-form-7 input[type=color],.eael-contact-form-7 input[type=date],.eael-contact-form-7 input[type=datetime-local],.eael-contact-form-7 input[type=datetime],.eael-contact-form-7 input[type=email],.eael-contact-form-7 input[type=month],.eael-contact-form-7 input[type=number],.eael-contact-form-7 input[type=password],.eael-contact-form-7 input[type=search],.eael-contact-form-7 input[type=tel],.eael-contact-form-7 input[type=text],.eael-contact-form-7 input[type=time],.eael-contact-form-7 input[type=url],.eael-contact-form-7 input[type=week],.eael-contact-form-7 textarea{-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.eael-contact-form-7 .wpcf7-form::after,.eael-contact-form-7 .wpcf7-form::before{content:" ";clear:both;display:table}.eael-contact-form-7 .wpcf7-form:after{clear:both;content:"";font-size:0;height:0;display:block;visibility:hidden}.eael-contact-form-7 .wpcf7-form .wpcf7-form-control-wrap,.eael-contact-form-7 .wpcf7-form label{display:block}.eael-contact-form-7 .wpcf7-form p{margin-bottom:0}.eael-contact-form-7.labels-hide .wpcf7-form label{display:none}.eael-contact-form-7-title{margin-bottom:10px}.eael-contact-form-7-description{margin-bottom:20px}.eael-contact-form-7-button-full-width .wpcf7-form-control.wpcf7-submit{width:100%}
7
+ @-webkit-keyframes loaderSpin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loaderSpin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.eael-load-more-button-wrap{display:-webkit-box;display:flex}.eael-load-more-button{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:1em 2em;border:0 solid;font-size:16px;overflow:hidden}.eael-load-more-button .button__loader{left:-100%;top:auto;margin-right:5px;-webkit-transition:all .2s;transition:all .2s}.eael-load-more-button>span{margin-left:-20px}.eael-load-more-button.button--loading>span{margin-left:0}.eael-load-more-button.button--loading .button__loader{left:0}.eael-btn-loader{border-radius:50%;width:20px;height:20px;font-size:10px;position:relative;text-indent:-9999em;border-top:4px solid rgba(255,255,255,.2);border-right:4px solid rgba(255,255,255,.2);border-bottom:4px solid rgba(255,255,255,.2);border-left:4px solid #fff;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:loaderSpin 1.1s infinite linear;animation:loaderSpin 1.1s infinite linear}.eael-btn-loader:after{border-radius:50%;width:20px;height:20px}
8
  .eael-ticker-wrap{overflow:hidden;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-align:center;align-items:center;width:100%}.eael-ticker-wrap .ticker-badge{-webkit-box-flex:0;flex:0 0 auto;padding:8px 12px}.eael-ticker-wrap .eael-ticker{overflow:hidden;-webkit-box-flex:1;flex:1 1 auto}.eael-ticker-wrap .eael-ticker .ticker-content{padding:8px 12px;line-height:1.8}.eael-ticker-wrap .eael-ticker .ticker-content p{margin:0}.eael-ticker-wrap .swiper-button-prev{left:auto!important;right:25px}.eael-ticker-wrap div.swiper-slide,.eael-ticker-wrap div.swiper-slide.swiper-slide-next,.eael-ticker-wrap div.swiper-slide.swiper-slide-prev{opacity:0!important}.eael-ticker-wrap div.swiper-slide.swiper-slide-active{opacity:1!important}.eael-ticker-wrap .eael-content-ticker.swiper-container .swiper-slide{text-align:left}@media only screen and (max-width:767px){.eael-ticker-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}.content-ticker-pagination{display:none}}.eael-ticker-wrap .swiper-button-next,.eael-ticker-wrap .swiper-button-prev{background-image:none;outline:0;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}
9
  .eael-countdown-items{list-style:none;margin:0;padding:0;display:table;table-layout:fixed;width:100%}.eael-countdown-items>li{list-style:none;margin:0;padding:0;display:table-cell;position:relative}.eael-countdown-item>div{text-align:center;padding:20px}.eael-countdown-label-block .eael-countdown-digits,.eael-countdown-label-block .eael-countdown-label{display:block;text-align:center}.eael-countdown-digits{font-size:54px;line-height:1}.eael-countdown-label{font-size:18px;line-height:1;color:#fff}.eael-countdown-show-separator .eael-countdown-digits::after{content:":";position:absolute;left:98%;z-index:9999}.eael-countdown-item:last-child .eael-countdown-digits::after{display:none}.eael-countdown-items.style-1 .eael-countdown-item>div{background:#262625}
10
+ .eael-creative-button-align-center{text-align:center}.eael-creative-button-wrapper{display:-webkit-box;display:flex}.eael-creative-button{-webkit-box-flex:0;flex:0 0 auto;min-width:150px;text-align:center;vertical-align:middle;position:relative;z-index:1;border-radius:2px;padding:20px 30px;font-size:16px;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;-moz-osx-font-smoothing:grayscale}.eael-creative-button:focus{outline:0}.eael-creative-button--winona{overflow:hidden;padding:0!important;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona::after{content:attr(data-text);position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;-webkit-transform:translate3d(0,25%,0);transform:translate3d(0,25%,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--winona::after,.eael-creative-button--winona>.creative-button-inner{padding:1em 2em;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona:hover::after{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--winona:hover>.creative-button-inner{opacity:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--ujarak{-webkit-transition:border-color .4s,color .4s;transition:border-color .4s,color .4s}.eael-creative-button--ujarak::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:0;-webkit-transform:scale3d(.7,1,1);transform:scale3d(.7,1,1);-webkit-transition:opacity .4s,-webkit-transform .4s;transition:opacity .4s,-webkit-transform .4s;transition:transform .4s,opacity .4s;transition:transform .4s,opacity .4s,-webkit-transform .4s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak,.eael-creative-button--ujarak::before{-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak:hover::before{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--wayra{overflow:hidden;-webkit-transition:border-color .3s,color .3s;transition:border-color .3s,color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--wayra::before{content:'';position:absolute;top:0;left:0;width:150%;height:100%;z-index:-1;-webkit-transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:opacity .3s,background-color .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s,background-color .3s;transition:transform .3s,opacity .3s,background-color .3s,-webkit-transform .3s}.eael-creative-button--wayra:hover::before{opacity:1;-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg);-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya{float:left;min-width:150px;max-width:250px;display:block;margin:1em;padding:1em 2em;border:none;background:0 0;color:inherit;vertical-align:middle;position:relative;z-index:1;-webkit-backface-visibility:hidden;-moz-osx-font-smoothing:grayscale;overflow:hidden;color:#7986cb;min-width:180px}.eael-creative-button--tamaya.button--inverted{color:#37474f;border-color:#37474f}.eael-creative-button--tamaya::after,.eael-creative-button--tamaya::before{content:attr(data-text);position:absolute;width:100%;height:50%;left:0;background:#7986cb;color:#fff;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya.button--inverted::after,.eael-creative-button--tamaya.button--inverted::before{background:#fff;color:#37474f}.eael-creative-button--tamaya::before{top:0;padding-top:1em}.eael-creative-button--tamaya::after{bottom:0;line-height:0}.eael-creative-button--tamaya span{display:block;-webkit-transform:scale3d(.2,.2,1);transform:scale3d(.2,.2,1);opacity:0;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya:hover::before{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.eael-creative-button--tamaya:hover::after{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.eael-creative-button--tamaya:hover span{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);content:'Bangladesh'}.eael-creative-button--rayen{overflow:hidden;padding:0!important}.eael-creative-button--rayen::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button--rayen::before,.eael-creative-button--rayen>.creative-button-inner{padding:1em 2em;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transition-timing-function:cubic-bezier(.75,0,.125,1);transition-timing-function:cubic-bezier(.75,0,.125,1)}.eael-creative-button--rayen:hover::before{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--rayen:hover>.creative-button-inner{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.creative-button-inner{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-creative-button-icon-left{margin-right:5px}.eael-creative-button-icon-right{margin-left:5px}
 
11
  .eael-dual-header{display:block;margin-bottom:50px}.eael-dual-header .title,.eael-dual-header .title span{font-size:36px;font-weight:700;text-transform:uppercase;line-height:48px;margin:10px 0}.eael-dual-header .subtext{font-size:16px;display:block}.eael-dual-header i{display:block;padding:0;margin:20px 0 10px 0;font-size:36px}.eael-dual-header .title span.lead{color:#1abc9c}.eael-dual-header-content-align-center{text-align:center}.eael-dual-header-content-align-left{text-align:left}.eael-dual-header-content-align-right{text-align:right}
12
  .elementor-panel .pro-feature,.elementor-panel .pro-feature a{color:#a4afb7;text-transform:uppercase;letter-spacing:1px;line-height:1.8;font-style:normal}.elementor-panel .pro-feature a{text-decoration:underline;color:#f54!important}.elementor-control-data_table_content_colspan_pro_alert .elementor-control-title,.elementor-control-data_table_content_rowspan_pro_alert .elementor-control-title,.elementor-control-data_table_content_template_pro_alert .elementor-control-title,.elementor-control-data_table_header_colspan_pro_alert .elementor-control-title,.elementor-control-data_table_header_img_pro_alert .elementor-control-title,.elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-title.elementor-panel-heading-title,.elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-toggle{color:#f54}.elementor-panel .elementor-control-eael_control_get_pro .elementor-control-field{display:none!important}.elementor-control-eael_fancy_text_style_pro_alert .elementor-control-title,.elementor-control-eael_img_accordion_type_pro_alert .elementor-control-title,.elementor-control-eael_pricing_table_style_pro_alert .elementor-control-title,.elementor-control-eael_section_countdown_style_pro_alert .elementor-control-title,.elementor-control-eael_section_data_table_enabled_pro_alert .elementor-control-title,.elementor-control-eael_team_members_preset_pro_alert .elementor-control-title,.elementor-control-eael_ticker_type_pro_alert .elementor-control-title{color:#f54}
13
+ @charset "UTF-8";table.eael-data-table thead .sorting,table.eael-data-table thead .sorting_asc,table.eael-data-table thead .sorting_desc{position:relative;z-index:0;outline:0;cursor:pointer}table.eael-data-table thead .sorting:after,table.eael-data-table thead .sorting_asc:after,table.eael-data-table thead .sorting_desc:after{position:absolute;top:50%;right:10px;font-family:FontAwesome;color:#fff;z-index:1;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.eael-data-table-wrap .eael-data-tables_wrapper{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-pack:start;justify-content:flex-start;width:100%}.eael-data-table-wrap .eael-data-tables_filter{-webkit-box-flex:1;flex-grow:1;flex-basis:50%;text-align:right}.eael-data-table-wrap .eael-data-tables_filter label{font-weight:700}.eael-data-table-wrap .eael-data-tables_filter label input[type=search]{height:40px;border:1px solid rgba(0,0,0,.09);outline:0;padding:10px;margin-left:10px}.eael-data-table-wrap .eael-data-tables_length{-webkit-box-flex:1;flex-grow:1;flex-basis:50%}.eael-data-table-wrap .eael-data-tables_length select{width:auto;max-width:120px;height:40px;border:1px solid rgba(0,0,0,.09);outline:0;margin-left:10px;margin-right:10px}.eael-data-table-wrap .eael-data-tables_length label{font-weight:700}.eael-data-table-wrap .eael-data-tables_info{-webkit-box-flex:1;flex-grow:1;flex-basis:50%;font-weight:700}.eael-data-table-wrap .eael-data-tables_paginate{-webkit-box-flex:1;flex-grow:1;flex-basis:50%;text-align:right}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button{padding:10px 15px;background:#f2f2f2;margin-right:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button:hover{color:#fff;background:#4a4893}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.current{color:#fff;background:#4a4893}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.disabled{cursor:no-drop;background:#f2f2f2;opacity:.5;color:#888}.data-header-icon{margin-right:10px;position:relative;top:2px}.eael-data-table{width:100%;height:auto;margin:0;border-collapse:collapse;border:none}.eael-data-table tr{border-style:none}.eael-data-table thead tr{text-align:left}.eael-data-table thead tr th{padding:20px 15px;background:#4a4893;font-size:16px;font-weight:600;font-family:Montserrat,sans-serif;line-height:1;color:#fff;border-color:#000;border-width:2px;border-style:none;background-clip:padding-box}.eael-data-table thead tr th:hover{border-color:#000}.eael-data-table tbody tr.even{-webkit-transition:background .4s ease-in-out;transition:background .4s ease-in-out}.eael-data-table tbody tr.even:hover{background:rgba(242,242,242,.7)}.eael-data-table tbody tr.even:last-child{border-bottom:1px solid rgba(0,0,0,.09)}.eael-data-table tbody tr.odd{background:rgba(242,242,242,.5);-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.eael-data-table tbody tr.odd:hover{background:rgba(242,242,242,.7)}.eael-data-table tbody tr.odd:last-child{border-bottom:1px solid rgba(0,0,0,.09)}.eael-data-table tbody tr td{padding:20px 15px;font-size:14px;font-family:Montserrat,sans-serif;line-height:1;border-width:2px;border-style:none;background-clip:padding-box}.eael-data-table-th-img{display:inline-block;margin:0 15px 0 0;line-height:1}.th-mobile-screen{display:none}@media (max-width:767px){.eael-data-table-wrap{overflow-x:scroll!important;padding-bottom:5px}.th-mobile-screen{display:inline-block;padding:0 .6em;margin-right:10px;text-align:center;-webkit-box-flex:0;flex-grow:0;flex-shrink:0;flex-basis:100px}.th-mobile-screen .eael-data-table-th-img{margin:0 auto 15px auto;display:block}.th-mobile-screen .data-header-icon{margin:0 auto 15px auto;display:block}.td-content-wrapper{display:-webkit-box;display:flex;width:100%}.td-content{width:100%;-webkit-box-pack:center;justify-content:center}.td-content>p{width:100%;-webkit-box-pack:center;justify-content:center}.custom-responsive-option-enable .eael-data-table thead{display:none}.custom-responsive-option-enable .eael-data-table tbody tr td{float:none;clear:left;width:100%;text-align:left;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-data-table .td-content{-webkit-box-align:center;align-items:center;display:-webkit-box;display:flex}}table.eael-data-table thead .sorting:after{content:""}table.eael-data-table thead .headerSortDown:after{content:""}table.eael-data-table thead .headerSortUp:after{content:""}table.eael-data-table thead .sorting_disabled.sorting:after{display:none}table.eael-data-table .sorting.sorting-none:after{display:none}table.eael-data-table .sorting_desc.sorting-none:after{display:none}table.eael-data-table .sorting_asc.sorting-none:after{display:none}.eael-table-align-left table.eael-data-table{float:left}.eael-table-align-center table.eael-data-table{margin:0 auto}.eael-table-align-right table.eael-data-table{float:right}.eael-hide-elements .eael-data-tables_info{display:none}.eael-dt-th-align-left .eael-data-table thead tr th{text-align:left}.eael-dt-th-align-right .eael-data-table thead tr th{text-align:right;padding-right:30px}.eael-dt-th-align-center .eael-data-table thead tr th{text-align:center}.eael-dt-td-align-left .eael-data-table tbody tr td{text-align:left}.eael-dt-td-align-center .eael-data-table tbody tr td{text-align:center}.eael-dt-td-align-right .eael-data-table tbody tr td{text-align:right;padding-right:30px}@media (max-width:1024px){.eael-dt-td-align-tablet-left .eael-data-table tbody tr td{text-align:left}.eael-dt-td-align-tablet-center .eael-data-table tbody tr td{text-align:center}.eael-dt-td-align-tablet-right .eael-data-table tbody tr td{text-align:right}}@media (max-width:767px){.eael-dt-td-align-mobile-left .eael-data-table tbody tr td{text-align:left}.eael-dt-td-align-mobile-center .eael-data-table tbody tr td{text-align:center}.eael-dt-td-align-mobile-right .eael-data-table tbody tr td{text-align:right}}
14
  .eael-facebook-feed{width:100%;margin:auto}.eael-facebook-feed.eael-col-1 .eael-facebook-feed-item{float:none;width:100%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-1 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-1 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-2 .eael-facebook-feed-item{float:left;width:50%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-2 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-2 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-3 .eael-facebook-feed-item{float:left;width:33.3333%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-3 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-3 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-4 .eael-facebook-feed-item{float:left;width:25%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-4 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-4 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-5 .eael-facebook-feed-item{float:left;width:20%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-5 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-5 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed.eael-col-6 .eael-facebook-feed-item{float:left;width:16.6666%}@media only screen and (max-width:979px){.eael-facebook-feed.eael-col-6 .eael-facebook-feed-item{width:50%}}@media only screen and (max-width:480px){.eael-facebook-feed.eael-col-6 .eael-facebook-feed-item{width:100%}}.eael-facebook-feed .eael-facebook-feed-item{display:inline-block;line-height:0}.eael-facebook-feed .eael-facebook-feed-item,.eael-facebook-feed .eael-facebook-feed-item-inner{position:relative}.eael-facebook-feed-overlay .eael-facebook-feed-item .eael-facebook-feed-item-overlay{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;text-align:center;position:absolute;top:0;bottom:0;left:0;right:0;font-size:12px;line-height:1;-webkit-transform:scale(.8);transform:scale(.8);opacity:0;-webkit-transition:all .2s;transition:all .2s}.eael-facebook-feed-overlay .eael-facebook-feed-item .eael-facebook-feed-item-overlay .eael-facebook-feed-item-overlay-inner{position:relative;align-self:center}.eael-facebook-feed-overlay .eael-facebook-feed-item:hover .eael-facebook-feed-item-overlay{-webkit-transform:scale(1);transform:scale(1);opacity:1}.eael-facebook-feed-overlay .eael-facebook-feed-meta{margin-bottom:0}.eael-facebook-feed-overlay .eael-facebook-feed-meta span{display:inline-block;margin:0 15px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner{margin:10px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header{padding:8px 12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-item-user{float:left}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-item-user .eael-facebook-feed-avatar{float:left;display:inline-block;width:32px;height:32px;border-radius:50%;margin-right:10px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-item-user .eael-facebook-feed-username{float:left;display:inline-block;font-size:14px;font-weight:400;line-height:32px;margin:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-header .eael-facebook-feed-post-time{float:right;font-size:11px;font-weight:400;line-height:32px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-content{position:relative;display:block;padding:12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-content .eael-facebook-feed-message{font-size:14px;font-weight:400;line-height:1.3;margin:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap{padding:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-preview-img{display:block;position:relative;margin-bottom:12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.4);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-preview-overlay i{font-size:48px;color:#fff}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview{padding:0 12px 15px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview .eael-facebook-feed-url-host{font-size:12px;font-weight:400;line-height:1;text-transform:uppercase;margin-bottom:5px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview .eael-facebook-feed-url-title{font-size:15px;font-weight:700;line-height:1.4;margin-top:0;margin-bottom:6px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-preview-wrap .eael-facebook-feed-url-preview .eael-facebook-feed-url-description{font-size:14px;font-weight:400;line-height:1.2;margin-bottom:0}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-footer{font-size:13px;font-weight:400;line-height:30px;padding:8px 12px}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-footer span{display:inline-block}.eael-facebook-feed-card .eael-facebook-feed-item .eael-facebook-feed-item-inner .eael-facebook-feed-item-footer span.eael-facebook-feed-post-likes{margin-right:15px}.elementor-widget-eael-facebook-feed .eael-load-more-button-wrap{-webkit-box-pack:center;justify-content:center;margin-top:15px}.elementor-widget-eael-facebook-feed .eael-load-more-button-wrap.no-pagination{display:none}
15
  .eael-fancy-text-container p{margin:0}.eael-fancy-text-strings{display:none}.eael-fancy-text-prefix,.eael-fancy-text-suffix{display:inline-block}.morphext>.animated{display:inline-block}.typed-cursor{opacity:1;-webkit-animation:blink_cursor .7s infinite;animation:blink_cursor .7s infinite}@keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}@-webkit-keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}.eael-fancy-text-container.style-2{font-size:24px}.eael-fancy-text-container.style-2 .eael-fancy-text-strings{background:#f54;color:#fff;padding:10px 25px}
16
  .elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:before{top:3px!important}.elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:after{top:45px!important}.elementor-widget-eael-feature-list.-icon-position-right .connector,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .connector{right:0;left:calc(100% - 70px)}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:auto;right:0}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px;top:30px}.elementor-widget-eael-feature-list .eael-feature-list-items{list-style-type:none;margin:0;padding:0}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item{position:relative}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .connector{display:block;position:absolute;width:0;margin:0 auto;z-index:1;height:100%;top:.5em;font-size:60px;left:0;right:calc(100% - 60px);border-left:2px solid #2ecc71;border-right:none!important}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item:last-child .connector{display:none}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box{z-index:2;-webkit-transition:all .5s;transition:all .5s}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box{-webkit-transition:none;transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner{background-color:#37368e;-webkit-transition:all .5s;transition:all .5s;display:-webkit-inline-box;display:inline-flex}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner{-webkit-transition:none;transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon{padding:.5em;-webkit-transition:all .5s;transition:all .5s;font-size:30px;line-height:1;color:#37368e;text-align:center;display:-webkit-inline-box;display:inline-flex;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon{-webkit-transition:none;transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i{width:1em;height:1em;position:relative;display:block}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img{font-size:8px;line-height:1;max-width:inherit}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box{margin:0 0 0 20px}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-title{margin-top:-2px;line-height:1.5em}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-content{padding:0;margin:0;font-size:14px;line-height:1.5em}.elementor-widget-eael-feature-list .eael-feature-list-items.stacked .eael-feature-list-icon-box .eael-feature-list-icon{color:#fff}.elementor-widget-eael-feature-list .eael-feature-list-items.framed .eael-feature-list-icon-box .eael-feature-list-icon{background-color:#fff}.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner{border-radius:50%}.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner .eael-feature-list-icon{border-radius:50%}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon-inner{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin:15px}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title{margin-top:15px}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px;position:relative}@media (max-width:767px){.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px;display:block}}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{content:"";position:absolute;display:block}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;top:0;z-index:1;border-left:1px solid #000;border-right:none!important;height:100%}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px;top:30px;width:23px;display:block;z-index:2;border-bottom:1px dashed #000;border-top:none!important}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item .connector{display:none}@media (min-width:768px){.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item{padding:0 50px 0 0}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:before{left:auto;right:0}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:after{left:auto;right:5px;top:30px}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item .connector{display:none}}@media (min-width:1025px){.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item{display:-webkit-box;display:flex}.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}}@media (max-width:1024px){.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{display:-webkit-box;display:flex}.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px;top:30px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{right:0;left:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{display:block;text-align:left}.elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item{display:-webkit-box;display:flex}.elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{right:0;left:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px}}
17
  .eael-filter-gallery-control{width:100%}.eael-filter-gallery-control ul,.eael-filter-gallery-control ul li{text-align:center}.eael-filter-gallery-control ul{margin:0 0 20px 0;padding:0;text-align:center}.eael-filter-gallery-control{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:1 1 auto;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-flow:row wrap;padding:0;margin:0}.eael-filter-gallery-control ul li{list-style:none;font-size:24px;display:inline-block;text-align:center}.eael-filter-gallery-control ul li a.control{font-family:Montserrat,sans-serif;font-size:16px;font-weight:600;padding:10px 25px;margin:10px 6px}.eael-filter-gallery-container{text-align:justify;font-size:.1px}.eael-filter-gallery-container:after{content:'';display:inline-block;width:100%}.eael-filter-gallery-container:not(.eael-cards) .item:before{content:'';display:inline-block;padding-top:56.25%}.eael-filter-gallery-container .item .caption{position:absolute;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:1 1 100%;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;z-index:1;top:0;left:0;right:0;bottom:0;-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.eael-filter-gallery-container.eael-cards .item .caption{display:none}.eael-filter-gallery-container.eael-cards .item .item-img .caption{position:absolute;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:1 1 100%;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;z-index:10;top:0;left:0;right:0;bottom:0;-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.gallery-item-caption-over{width:100%;height:auto}a.eael-gallery-load-more,a.eael-gallery-load-more:hover{text-decoration:none}.eael-filter-gallery-container .item .caption.eael-zoom-in,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-zoom-in{-webkit-transform:scale(0);transform:scale(0)}.eael-filter-gallery-container .item:hover .caption.eael-zoom-in,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-zoom-in{-webkit-transform:scale(1);transform:scale(1)}.eael-filter-gallery-container .item .caption.eael-slide-left,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-left,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-left{-webkit-transform:translateX(0);transform:translateX(0)}.eael-filter-gallery-container .item .caption.eael-slide-right,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-right,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-right{-webkit-transform:translateX(0);transform:translateX(0)}.eael-filter-gallery-container .item .caption.eael-slide-top,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-top,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-top{-webkit-transform:translateY(0);transform:translateY(0)}.eael-filter-gallery-container .item .caption.eael-slide-bottom,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-bottom,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.eael-filter-gallery-container .item .caption a{display:inline-block;width:50px;height:50px;text-align:center;line-height:50px;border-radius:50%;margin:0 5px;font-size:20px;cursor:pointer;-webkit-transition:.3s;transition:.3s}.eael-container .item .caption a:nth-child(2),.eael-filter-gallery-container .item .caption a:nth-child(1){-webkit-transition:.6s;transition:.6s;opacity:0}.eael-filter-gallery-container .item .caption a:nth-child(1){-webkit-transform:translateY(-100%);transform:translateY(-100%)}.eael-filter-gallery-container .item .caption a:nth-child(2){-webkit-transform:translateY(100%);transform:translateY(100%)}.eael-filter-gallery-container .item .caption:hover a:nth-child(1),.eael-filter-gallery-container .item .caption:hover a:nth-child(2){-webkit-transform:translateY(0);transform:translateY(0);opacity:1}.eael-filter-gallery-container .item .caption .eael-popup-link{outline:0}.eael-filter-gallery-container.eael-cards .item:before{padding-top:0}.eael-filter-gallery-container.eael-cards .item-img{position:relative;background-repeat:no-repeat;background-position:center;background-size:cover;height:220px;z-index:0;overflow:hidden}.eael-filter-gallery-container.eael-cards .item-content{padding:15px}.eael-filter-gallery-container.eael-cards .item-content .title,.eael-filter-gallery-container.eael-cards .item-content .title a{font-size:20px;line-height:1;margin-bottom:0;-webkit-transition:.3s;transition:.3s}.eael-filter-gallery-container.eael-cards .item-content p{font-size:14px;line-height:26px}.eael-fg-card-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:center}.eael-fg-card-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:right}.eael-fg-hoverer-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:center}.eael-fg-hoverer-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:right}.eael-fg-content-align-left .eael-cards .item .item-content{text-align:left}.eael-fg-content-align-center .eael-cards .item .item-content{text-align:center}.eael-fg-content-align-right .eael-cards .item .item-content{text-align:right}.mfp-wrap~div.dialog-widget{display:none!important}.eael-filterable-gallery-item-wrap{float:left;width:33.33%}.eael-filter-gallery-container.eael-col-1 .eael-filterable-gallery-item-wrap{width:100%}.eael-filter-gallery-control>ul li{font-size:13px;line-height:1.8;text-transform:uppercase;letter-spacing:1px;padding:6px 15px;cursor:pointer;margin:0 5px;font-weight:400}.eael-filter-gallery-container.eael-col-2 .eael-filterable-gallery-item-wrap{width:50%}.eael-filter-gallery-container.eael-col-4 .eael-filterable-gallery-item-wrap{width:25%}.eael-filter-gallery-container.eael-col-5 .eael-filterable-gallery-item-wrap{width:20%}.eael-gallery-grid-item{margin-left:calc(20px/2);margin-right:calc(20px/2);margin-bottom:20px;position:relative}.gallery-item-caption-wrap,.media-content-wrap{font-size:14px;text-align:left}.gallery-item-thumbnail-wrap.caption-style-card img{max-height:100%;width:100%}.gallery-item-caption-wrap.caption-style-hoverer{position:absolute;left:0;top:0;height:100%;width:100%;padding:15px;z-index:10}.eael-filterable-gallery-item-wrap .eael-gallery-grid-item .gallery-item-thumbnail-wrap>img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.fg-item-content,.fg-item-title{color:#fff;font-family:inherit}.gallery-item-caption-wrap.caption-style-card .fg-item-title{font-size:18px;margin:15px 0 15px;line-height:1}.gallery-item-caption-wrap.caption-style-card{background:#f7f7f7}.gallery-item-caption-wrap.caption-style-card .fg-item-title{margin:10px 0 15px;color:#000}.gallery-item-caption-wrap.caption-style-card .fg-item-content{color:#212529;line-height:1.5;font-weight:400}.gallery-item-buttons>a{display:inline-block;font-size:16px;color:#000;margin-right:15px}.gallery-item-buttons>a:visited{color:#000}.gallery-item-caption-wrap.caption-style-card{padding:10px;box-sizing:border-box;font-family:inherit}.gallery-item-caption-wrap .gallery-item-hoverer-bg{position:absolute;left:0;top:0;height:100%;width:100%;content:'';background:#000;z-index:-1;opacity:.7}.gallery-item-caption-wrap.caption-style-hoverer{visibility:hidden;opacity:0;-webkit-transition:.6s all ease;transition:.6s all ease;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer{opacity:1;visibility:visible}.gallery-item-caption-wrap.caption-style-hoverer h5{font-size:20px;margin-bottom:5px;line-height:1}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5{-webkit-transform:translateY(20px);transform:translateY(20px);-webkit-transition:.6s all ease;transition:.6s all ease}.gallery-item-caption-wrap.caption-style-hoverer p{margin-bottom:5px}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p{-webkit-transform:translateY(40px);transform:translateY(40px);-webkit-transition:.6s all ease;transition:.6s all ease}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons{-webkit-transform:translateY(40px);transform:translateY(40px);-webkit-transition:.6s all ease;transition:.6s all ease}.gallery-item-caption-wrap .gallery-item-buttons>a span{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;border-radius:50%;outline:0;text-decoration:none;display:inline-block;text-align:center}.gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transition:.6s all ease;transition:.6s all ease}.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons,.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5,.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p{-webkit-transform:translate(0);transform:translate(0)}.eael-gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in{-webkit-transform:scale(1);transform:scale(1);visibility:visible;opacity:1}.gallery-item-caption-wrap.caption-style-hoverer.eael-none{-webkit-transition:none;transition:none}.gallery-item-thumbnail-wrap{position:relative}.video-popup,.video-popup-bg{position:absolute;left:0;top:0;height:100%;width:100%}.video-popup>img{width:62px;position:relative;z-index:1;-webkit-transition:.3s;transition:.3s}.video-popup{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.video-popup:hover>img{-webkit-transform:scale(1.1);transform:scale(1.1)}.video-popup-bg{visibility:hidden;opacity:0;-webkit-transition:350ms;transition:350ms}.eael-gallery-grid-item:hover .video-popup-bg{visibility:visible;opacity:1}.gallery-item-thumbnail-wrap>.gallery-item-caption-wrap{position:absolute;left:0;top:0;height:100%;width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.gallery-item-caption-wrap.card-hover-bg{visibility:hidden;opacity:0;-webkit-transition:.8s;transition:.8s}.gallery-item-thumbnail-wrap:hover .gallery-item-caption-wrap.card-hover-bg{visibility:visible;opacity:1}.gallery-item-caption-wrap .gallery-item-buttons>a>i{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;height:100%}@media only screen and (min-width:1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .pp-logo-grid{margin-right:-5px}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap{width:16%;float:left}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}@media only screen and (max-width:1024px) and (min-width:766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap{width:16%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}@media only screen and (max-width:767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap{width:16%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}.fg-layout-3-filter-controls{margin:0;padding:0;list-style:none}.fg-layout-3-item-content{text-align:center}.fg-layout-3-item-content .fg-item-title{font-size:18px;line-height:1;font-weight:500;margin:0;-webkit-transition:.3s;transition:.3s}.fg-layout-3-item-content .fg-item-content p{font-size:13px;font-weight:400}.fg-filter-wrap{position:relative;flex-basis:30%}.fg-layout-3-filter-controls{position:absolute;left:0;background:#fff;z-index:999;width:150px;visibility:hidden;opacity:0;-webkit-transition:.3s;transition:.3s;width:100%;border-radius:5px;padding-top:7px}.fg-layout-3-filter-controls.open-filters{visibility:visible;opacity:1}.fg-layout-3-filter-controls li.control{padding:5px 5px 5px 10px;cursor:pointer;-webkit-transition:.3s;transition:.3s;font-size:14px;color:#7f8995;font-weight:400}.fg-layout-3-filter-controls li.control:hover{color:#2d425a}.fg-layout-3-filter-controls li.control:first-child{border-top:0 solid}.fg-layout-3-filter-controls li.control:last-child{border-bottom:0 solid}.fg-layout-3-filters-wrap{max-width:600px;margin:15px auto 50px}.fg-filter-wrap button{width:100%;border:0 solid;border-radius:0;padding:17px 13px;font-size:14px;color:#2d425a;background:#f7f8ff;height:55px;border-right:1px solid #abb5ff;border-radius:10px 0 0 10px;outline:0;text-align:center;position:relative}.fg-filter-wrap button>i{font-size:18px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);margin-left:10px}.fg-layout-3-search-box{flex-basis:70%;height:100%}.fg-layout-3-search-box input[type=text]{width:100%;height:100%;margin:0;padding:15px;border:0 solid;outline:0;background:0 0}.fg-layout-3-search-box input[type=text]::-webkit-input-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-search-box input[type=text]::-moz-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-search-box input[type=text]:-ms-input-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-search-box input[type=text]:-moz-placeholder{color:#7f8995;font-size:13px}.fg-layout-3-filters-wrap{height:55px;border-radius:5px;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center}.fg-layout-3-filters-wrap .fg-layout-3-search-box{background:#f7f8ff;border-radius:0 10px 10px 0}.fg-layout-3-item-thumb{position:relative;overflow:hidden}.fg-layout-3-item-thumb .gallery-item-buttons{text-align:center;position:absolute;left:0;top:0;height:100%;width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;z-index:4}.fg-layout-3-item-content{padding:27px 27px 30px;text-align:center}.eael-fg-card-content-align-left .fg-layout-3-item-content{text-align:left}.eael-fg-card-content-align-center .fg-layout-3-item-content{text-align:center}.eael-fg-card-content-align-right .fg-layout-3-item-content{text-align:right}.eael-filterable-gallery-item-wrap .fg-layout-3-item.eael-gallery-grid-item{box-shadow:0 0 30px 0 rgba(3,29,60,.05);border-radius:5px}.fg-caption-head{position:absolute;left:0;top:0;width:100%;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;padding:35px 35px;z-index:3;color:#fff;font-size:18px;font-weight:700}.fg-item-category>span{font-size:12px;color:#fff;background:#fa9196;padding:10px 12px;display:inline-block}.fg-layout-3-item-content{position:relative}.fg-item-category{position:absolute;left:0;top:0;text-align:center;width:100%;height:30px;margin-top:-15px;z-index:11}.fg-item-category span{border-radius:5px;line-height:1;visibility:hidden;opacity:0;-webkit-transition:.3s;transition:.3s}.fg-layout-3-item.eael-gallery-grid-item:hover .fg-item-category span{visibility:visible;opacity:1}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{width:auto}.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:pointer}.mfp-zoom-out-cur .mfp-image-holder .mfp-close:hover{text-decoration:none}button.mfp-arrow:not(.toggle),button.mfp-close:not(.toggle){background:0 0}
18
  .eael-elements-flip-box-container{position:relative;height:300px;width:100%}.eael-elements-flip-box-container .flipbox-button{display:inline-block;-webkit-transition:all .4s;transition:all .4s}.eael-elements-flip-box-container a{display:block}.eael-elements-flip-box-vertical-align{width:100%}.eael-elements-flip-box-padding{padding:0 30px 5px 30px}.eael-elements-flip-box-icon-image{display:inline-block;margin:0 auto 0 auto;line-height:1}.eael-elements-flip-box-icon-image.eael_eleements_flip_front_icon_style_background{background:#ccc}.eael_eleements_flip_front_icon_style_bordered{border:2px solid #fff}.eael_flip_box_icon_border_round{border-radius:100px}.eael_eleements_flip_front_icon_style_background,.eael_eleements_flip_front_icon_style_bordered{padding:15px}.eael-elements-flip-box-icon-image i{font-size:40px}.eael-elements-slider-display-table{width:100%}.eael-elements-flip-box-front-container{text-align:center;position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background:#0e9dd2;color:#fff;border-color:#000;-webkit-display:flex;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-elements-flip-box-content,.eael-elements-flip-box-heading{color:#fff}.eael-elements-flip-box-heading.flipbox-linked-title{color:#fff;font-size:1.5em;font-weight:700}.eael-elements-flip-box-rear-container{text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;background:#444;color:#fff;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;border-color:#000}.eael-elements-button-floating-container{position:fixed;z-index:100}.eael-elements-button-floating-container .eael-elements-button{margin-top:0;font-size:14px;position:relative;padding:14px 20px}.eael-elements-button{cursor:pointer;display:inline-block;background:#077bbe;color:#fff;line-height:1;padding:16px 25px;margin-top:15px}.eael-elements-button:hover{background:#077bbe;color:#fff}.eael-elements-flip-box-container{-webkit-perspective:1000px;perspective:1000px}.eael-elements-flip-box-front-container,.eael-elements-flip-box-rear-container{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:all;transition-property:all;-webkit-transition-timing-function:ease;transition-timing-function:ease}.eael-elements-flip-box-flip-card{width:100%;height:100%;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all .5s ease;transition:all .5s ease}.eael-elements-flip-box-front-container,.eael-elements-flip-box-rear-container{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:rotateX(0);transform:rotateX(0);-webkit-transform:rotateY(0);transform:rotateY(0)}.eael-animate-flip.eael-animate-up .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.eael-animate-flip.eael-animate-down .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.eael-animate-flip.eael-animate-left .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.eael-animate-flip.eael-animate-right .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.eael-animate-push.eael-elements-flip-box-container,.eael-animate-slide.eael-elements-flip-box-container{overflow:hidden}.eael-animate-push .eael-elements-flip-box-rear-container,.eael-animate-slide .eael-elements-flip-box-rear-container{z-index:3}.eael-animate-push.eael-animate-up .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-up .eael-elements-flip-box-rear-container{top:100%}.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{top:0}.eael-animate-push.eael-animate-down .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-down .eael-elements-flip-box-rear-container{top:auto;bottom:100%}.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{top:auto;bottom:0}.eael-animate-push.eael-animate-left .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-left .eael-elements-flip-box-rear-container{left:100%}.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{left:0}.eael-animate-push.eael-animate-right .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-right .eael-elements-flip-box-rear-container{left:auto;right:100%}.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{left:auto;right:0}.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{top:-100%}.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{top:100%}.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{left:-100%}.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{left:100%}.eael-animate-zoom-in .eael-elements-flip-box-rear-container{opacity:0;-webkit-transform:scale(.75);transform:scale(.75);z-index:3}.eael-animate-zoom-in.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.eael-animate-zoom-out.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{opacity:0;-webkit-transform:scale(.75);transform:scale(.75)}.eael-animate-fade.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{opacity:0}.eael-flipbox-content-align-right .eael-elements-flip-box-padding{text-align:right}.eael-flipbox-content-align-left .eael-elements-flip-box-padding{text-align:left}.eael-flipbox-content-align-center .eael-elements-flip-box-padding{text-align:center}.eael-flipbox-img-circle .eael-elements-flip-box-icon-image img,.eael-flipbox-img-circle .flipbox-back-image-icon img{border-radius:50%;overflow:hidden}
19
  .eael-fluent-form-wrapper label.ff-el-form-check-label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.eael-fluent-form-wrapper label.ff-el-form-check-label input{margin-right:5px}.eael-fluentform-form-button-full-width .ff-btn-submit{width:100%;display:block}.eael-contact-form.eael-fluent-form-wrapper.error-message-hide .ff-el-is-error .text-danger{display:none}.eael-fluentform-form-button-center .ff-el-group .ff-btn-submit,.eael-fluentform-form-button-center .ff-el-group.ff-text-left .ff-btn-submit,.eael-fluentform-form-button-center .ff-el-group.ff-text-right .ff-btn-submit{margin:0 auto;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-fluentform-form-button-right .ff-el-group .ff-btn-submit,.eael-fluentform-form-button-right .ff-el-group.ff-text-left .ff-btn-submit,.eael-fluentform-form-button-right .ff-el-group.ff-text-right .ff-btn-submit{float:right}.eael-fluentform-form-button-left .ff-el-group .ff-btn-submit,.eael-fluentform-form-button-left .ff-el-group.ff-text-left .ff-btn-submit,.eael-fluentform-form-button-left .ff-el-group.ff-text-right .ff-btn-submit{float:left}.eael-contact-form.eael-fluent-form-wrapper.fluent-form-labels-hide label{display:none!important}.eael-fluentform-section-break-content-left .ff-el-group.ff-el-section-break{text-align:left}.eael-fluentform-section-break-content-center .ff-el-group.ff-el-section-break{text-align:center}.eael-fluentform-section-break-content-right .ff-el-group.ff-el-section-break{text-align:right}
 
20
  .eael-gravity-form-align-default,.eael-gravity-form-align-left,.eael-gravity-form-btn-align-left{text-align:left}.eael-gravity-form-align-right,.eael-gravity-form-btn-align-right{text-align:right}.eael-gravity-form-align-center,.eael-gravity-form-btn-align-center{text-align:center}.eael-gravity-form .gform_wrapper .gform_footer{margin:0;padding:0}.gform_wrapper form li,.gform_wrapper li{list-style:none}.eael-gravity-form .gform_wrapper ul.gform_fields li.gfield{padding:0}.eael-gravity-form .gform_wrapper textarea{padding:0}.eael-gravity-form .gform_wrapper .gform_footer input.button,.eael-gravity-form .gform_wrapper .gform_footer input[type=submit],.eael-gravity-form .gform_wrapper .gform_page_footer input.button,.eael-gravity-form .gform_wrapper .gform_page_footer input[type=submit]{margin:0}.eael-gravity-form.title-description-hide .gform_heading{display:none}.eael-gravity-form.labels-hide .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,.eael-gravity-form.labels-hide .gform_wrapper .top_label .gfield_label{display:none}.eael-gravity-form-button-full-width .gform_wrapper .gform_footer input[type=submit]{width:100%}
21
+ .clearfix::after,.clearfix::before{content:" ";display:table;clear:both}.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right{padding-top:40px}.eael-contact-form input[type=date],.eael-contact-form input[type=email],.eael-contact-form input[type=number],.eael-contact-form input[type=tel],.eael-contact-form input[type=text],.eael-contact-form input[type=url],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:100%}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:0;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-post-elements-readmore-btn{font-size:12px;font-weight:500;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;display:inline-block}.elementor-lightbox .dialog-widget-content{width:100%;height:100%}.eael-contact-form-align-left,.elementor-widget-eael-weform.eael-contact-form-align-left .eael-weform-container{margin:0 auto 0 0}.eael-contact-form-align-center,.elementor-widget-eael-weform.eael-contact-form-align-center .eael-weform-container{float:none;margin:0 auto}.eael-contact-form-align-right,.elementor-widget-eael-weform.eael-contact-form-align-right .eael-weform-container{margin:0 0 0 auto}
22
  .eael-img-accordion{display:-webkit-box;display:flex;height:50vh}.eael-img-accordion a{position:relative;-webkit-box-flex:1;flex:1;text-align:center;text-decoration:none;color:#fff;background-size:cover;background-position:center;background-repeat:no-repeat;-webkit-transition:-webkit-box-flex .4s;transition:-webkit-box-flex .4s;transition:flex .4s;transition:flex .4s,-webkit-box-flex .4s}.eael-grow-accordion{-webkit-box-flex:3;flex:3}.eael-img-accordion .overlay{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:0 10px;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-transition:background-color .4s;transition:background-color .4s}.eael-img-accordion .overlay .overlay-inner{z-index:1}.eael-img-accordion a:after{content:"";position:absolute;width:100%;height:100%;z-index:0;top:0;left:0;bottom:0;right:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-img-accordion .overlay-inner *{visibility:hidden;opacity:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.eael-img-accordion .overlay h2{color:#fff;-webkit-transform:translate3d(0,-60px,0);transform:translate3d(0,-60px,0)}.eael-img-accordion .overlay p{color:#fff;-webkit-transform:translate3d(0,60px,0);transform:translate3d(0,60px,0)}.eael-img-accordion .overlay-inner-show *{opacity:1;visibility:visible;-webkit-transform:none!important;transform:none!important;-webkit-transition:all .3s .3s;transition:all .3s .3s}@media screen and (max-width:800px){.eael-img-accordion{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.eael-img-accordion a:hover{-webkit-box-flex:1;flex:1}.eael-img-accordion a:hover .overlay{background-color:transparent}}
23
  .eael-infobox .infobox-icon{height:auto}.eael-infobox .infobox-icon .infobox-icon-wrap{display:-webkit-box;display:flex;width:100%;height:auto;-webkit-transition:.3s;transition:.3s;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-infobox .infobox-icon .infobox-icon-wrap i{-webkit-transition:.3s;transition:.3s}.eael-infobox-content-align-left .eael-infobox .infobox-button,.eael-infobox-content-align-left .eael-infobox .infobox-content,.eael-infobox-content-align-left .eael-infobox .infobox-icon{text-align:left}.eael-infobox-content-align-right .eael-infobox .infobox-button,.eael-infobox-content-align-right .eael-infobox .infobox-content,.eael-infobox-content-align-right .eael-infobox .infobox-icon{text-align:right}.eael-infobox-content-align-center .eael-infobox .infobox-button,.eael-infobox-content-align-center .eael-infobox .infobox-content,.eael-infobox-content-align-center .eael-infobox .infobox-icon{text-align:center}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap{width:90px;height:90px;text-align:center}.eael-infobox-icon-hover-bg-shape-square:hover .infobox-icon .infobox-icon-wrap{border-radius:0}.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-hover-bg-shape-radius:hover .infobox-icon .infobox-icon-wrap{border-radius:15px}.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-hover-bg-shape-circle:hover .infobox-icon .infobox-icon-wrap{border-radius:50%}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap i,.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap i{margin-top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.eael-infobox .infobox-button a.eael-infobox-button{display:inline-block;padding:5px 10px;-webkit-transition:all .3s ease-in-out 0s;transition:all .3s ease-in-out 0s}.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-square .infobox-icon{display:-webkit-box;display:flex;-webkit-box-pack:start;justify-content:flex-start}.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-square .infobox-icon{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center}.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-square .infobox-icon{display:-webkit-box;display:flex;-webkit-box-pack:end;justify-content:flex-end}.eael-infobox.icon-on-left{position:relative;z-index:0;display:-webkit-box;display:flex}.eael-infobox.icon-on-left .infobox-icon-wrap,.eael-infobox.icon-on-right .infobox-icon-wrap{-webkit-box-pack:center;justify-content:center;display:-webkit-box!important;display:flex!important;-webkit-box-align:center;align-items:center}.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap{background:0 0;border:0;text-align:left;height:auto;display:block}.eael-infobox .infobox-content p{margin:0 0 15px}.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap i{margin-top:0;-webkit-transform:translateY(0);transform:translateY(0)}.eael-infobox.icon-on-left .infobox-content{padding-left:15px;-webkit-box-flex:1;flex:1 1 auto}.eael-infobox.icon-on-left .infobox-content .title{line-height:1;margin:0 0 10px 0}.eael-infobox.icon-on-right{position:relative;z-index:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap{background:0 0;border:0;text-align:right;width:auto;height:auto;display:block}.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap i{margin-top:0;-webkit-transform:translateY(0);transform:translateY(0)}.eael-infobox.icon-on-right .infobox-content{padding-right:15px;text-align:right;-webkit-box-flex:1;flex:1 1 auto;box-sizing:border-box}.eael-infobox.icon-on-right .infobox-content .title{line-height:1;margin:0 0 10px 0}.eael-infobox .infobox-icon img{-webkit-transition:all .3s ease-in-out 0s;transition:all .3s ease-in-out 0s}.eael-infobox-hover-img-shape-square:hover .eael-infobox .infobox-icon img{border-radius:0}.eael-infobox-hover-img-shape-circle:hover .eael-infobox .infobox-icon img,.eael-infobox-shape-circle .eael-infobox .infobox-icon img{border-radius:50%}.eael-infobox-hover-img-shape-radius:hover .eael-infobox .infobox-icon img,.eael-infobox-shape-radius .eael-infobox .infobox-icon img{border-radius:15px}
24
  body div.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}button.mfp-close,button.mfp-close:hover{display:inline-block!important;background:0 0;width:auto}.mfp-arrow,.mfp-arrow:hover{background:0 0}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}
28
  .eael-pricing{-webkit-display:flex;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}.eael-pricing .eael-pricing-item{width:100%;height:auto;margin:0}.eael-pricing .eael-pricing-button{display:inline-block;padding:12px 25px;background:#00c853;font-size:14px;font-weight:600;color:#fff;text-transform:uppercase;text-decoration:none;-webkit-transition:.3s;transition:.3s;border-radius:4px}.eael-pricing .eael-pricing-button:hover{background:#03b048}.eael-pricing .eael-pricing-item ul{padding:0;margin:0;list-style:none}.eael-pricing .eael-pricing-item ul li.disable-item{text-decoration:line-through;opacity:.5}.eael-pricing .eael-pricing-item ul li span.li-icon{color:#00c853;margin-right:6px}.eael-pricing .eael-pricing-item ul li.disable-item span.li-icon{color:#ef5350}.eael-pricing.style-1{position:relative;z-index:0;text-align:center}.eael-pricing.style-1 .eael-pricing-item{border:1px solid rgba(9,9,9,.1);padding:30px;border-radius:5px;-webkit-transition:.5s;transition:.5s}.eael-pricing.style-1 .eael-pricing-item:hover{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.eael-pricing.style-1 .eael-pricing-item.featured{position:relative}.eael-pricing.style-1 .eael-pricing-item.ribbon-1:before{content:"";position:absolute;width:100%;height:3px;background:#00c853;top:0;left:0;right:0;z-index:1;border-radius:5px 5px 0 0}.eael-pricing.style-1 .eael-pricing-item.ribbon-2:before{content:"Featured";position:absolute;width:auto;background:#00c853;color:#fff;top:35px;right:-15px;z-index:10;font-size:10px;font-weight:600;text-transform:uppercase;padding:5px 10px}.eael-pricing.style-1 .eael-pricing-item.ribbon-2:after{content:"";position:absolute;top:20px;right:-15px;width:0;height:0;border-bottom:15px solid #00c853;border-right:15px solid transparent;z-index:9;opacity:.9}.eael-pricing.style-1 .eael-pricing-item.ribbon-3:before{content:"Featured";position:absolute;width:auto;background:rgba(0,0,0,.6);color:#fff;top:15px;right:15px;z-index:10;font-size:11px;font-weight:600;text-transform:uppercase;padding:5px 15px}.eael-pricing.style-1 .eael-pricing-item .header{display:block;position:relative;z-index:0;padding-bottom:15px;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .header:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.1)}.eael-pricing.style-1 .eael-pricing-item .header .title{font-weight:700;line-height:30px;margin:0}.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag{position:relative;z-index:0;padding:15px 0;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.04)}.eael-pricing.style-1 .eael-pricing-item .price-tag{position:relative;display:inline-block;font-size:28px;font-weight:500;line-height:0;margin:0 auto}.eael-pricing.style-1 .eael-pricing-item .price-tag .price-currency{font-size:24px;font-weight:700}.eael-pricing.style-1 .eael-pricing-item .price-period{color:#999}.eael-pricing.style-1 .eael-pricing-item .body ul{display:block;width:100%;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .body ul li{display:block;width:100%;height:auto;padding:10px 0;font-size:14px;color:#6d6d6d;border-bottom:1px solid rgba(9,9,9,.04)}.eael-pricing.style-1 .eael-pricing-item .body ul li:last-child{border:none}.eael-pricing.style-1 .eael-pricing-item.featured-large{padding:60px 0}.eael-pricing.style-2{position:relative;z-index:0;text-align:center}.eael-pricing.style-2 .eael-pricing-item{padding:30px 0;border-radius:5px;margin:0;border:1px solid rgba(9,9,9,.1)}.eael-pricing.style-2 .eael-pricing-item.featured{box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.eael-pricing.style-2 .eael-pricing-item.ribbon-1:before{content:"";position:absolute;width:100%;height:3px;background:#00c853;top:0;left:0;right:0;z-index:1;border-radius:5px 5px 0 0}.eael-pricing.style-2 .eael-pricing-item.ribbon-2:before{content:"Featured";position:absolute;width:auto;background:#00c853;color:#fff;top:35px;right:-15px;z-index:10;font-size:10px;font-weight:600;text-transform:uppercase;padding:5px 10px}.eael-pricing.style-2 .eael-pricing-item.ribbon-2:after{content:"";position:absolute;top:20px;right:-15px;width:0;height:0;border-bottom:15px solid #00c853;border-right:15px solid transparent;z-index:9;opacity:.9}.eael-pricing.style-2 .eael-pricing-item.ribbon-3:before{content:"Featured";position:absolute;width:auto;background:rgba(0,0,0,.6);color:#fff;top:15px;right:15px;z-index:10;font-size:11px;font-weight:600;text-transform:uppercase;padding:5px 15px}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon{display:inline-block;position:relative;width:80px;height:80px;background:#00c853;border-radius:50%;margin-bottom:30px;-webkit-transition:.5s;transition:.5s;overflow:hidden}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon,.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon i{font-size:30px;color:#fff;-webkit-transition:.5s;transition:.5s}.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon{background:#43a047}.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon i{color:#fff}.eael-pricing.style-2 .eael-pricing-item .header{background:#c8e6c9;padding:25px 30px;margin-bottom:15px;position:relative;z-index:0}.eael-pricing.style-2 .eael-pricing-item.featured .header:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;right:0;bottom:0;z-index:-1;background:rgba(255,255,255,.4)}.eael-pricing.style-2 .eael-pricing-item .header .title{font-size:28px;font-weight:700;line-height:40px;margin:0}.eael-pricing.style-2 .eael-pricing-item .header .subititle{font-size:14px;font-weight:600;color:#6d6d6d}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag{position:relative;z-index:0;padding:15px 0;margin-bottom:15px}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.04)}.eael-pricing.style-2 .eael-pricing-item .price-tag{position:relative;display:inline-block;font-size:28px;font-weight:500;line-height:0;margin:0 auto}.eael-pricing.style-2 .eael-pricing-item .price-tag .price-currency{font-size:24px;font-weight:700;color:#00c853}.eael-pricing.style-2 .eael-pricing-item .price-period{color:#999}.eael-pricing.style-2 .eael-pricing-item .body ul{display:block;width:100%;margin-bottom:15px}.eael-pricing.style-2 .eael-pricing-item .body ul li{display:block;width:100%;height:auto;padding:10px 15px;font-size:14px;color:#6d6d6d;border-bottom:1px solid rgba(9,9,9,.04)}.eael-pricing.style-2 .eael-pricing-item .body ul li:last-child{border:none}@media only screen and (min-width:768px) and (max-width:992px){.eael-pricing{display:block}.eael-pricing .eael-pricing-item,.eael-pricing.style-2 .eael-pricing-item,.eael-pricing.style-4 .eael-pricing-item{width:100%;margin:0 auto 30px auto}}@media only screen and (max-width:480px){.eael-pricing{display:block}.eael-pricing .eael-pricing-item{width:100%}.eael-pricing .eael-pricing-item,.eael-pricing.style-2 .eael-pricing-item,.eael-pricing.style-4 .eael-pricing-item{margin:0 auto 30px auto}}.eael-pricing-content-align-center .eael-pricing{text-align:center}.eael-pricing-content-align-left .eael-pricing{text-align:left}.eael-pricing-content-align-right .eael-pricing{text-align:right}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag{padding-left:45px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag:before{left:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag{padding-right:30px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .footer,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .header,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .footer,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .header{padding-left:30px;padding-right:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .footer,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .header,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .footer,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .header{padding-right:30px;padding-left:30px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .body ul li,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .body ul li{padding-left:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .body ul li,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .body ul li{padding-right:30px}.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after{-webkit-transform:translateX(-80%);transform:translateX(-80%)}.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after{-webkit-transform:translateX(80%);transform:translateX(80%)}.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after{-webkit-transform:translateX(0);transform:translateX(0)}.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .header:after,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after{margin:0;width:100%}.eael-pricing-button-align-right .eael-pricing.style-1 .footer,.eael-pricing-button-align-right .eael-pricing.style-2 .footer,.eael-pricing-button-align-right .eael-pricing.style-3 .footer,.eael-pricing-button-align-right .eael-pricing.style-4 .footer{text-align:right}.eael-pricing-button-align-center .eael-pricing.style-1 .footer,.eael-pricing-button-align-center .eael-pricing.style-2 .footer,.eael-pricing-button-align-center .eael-pricing.style-3 .footer,.eael-pricing-button-align-center .eael-pricing.style-4 .footer{text-align:center}.eael-pricing-button-align-left .eael-pricing.style-1 .footer,.eael-pricing-button-align-left .eael-pricing.style-2 .footer,.eael-pricing-button-align-left .eael-pricing.style-3 .footer,.eael-pricing-button-align-left .eael-pricing.style-4 .footer{text-align:left}.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-2 .footer,.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-4 .footer{padding-right:30px}.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-2 .footer,.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-4 .footer{padding-left:30px}.only-in-pro{width:100%;-webkit-display:flex;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:15px;min-width:200px;background:#ef5350;color:#fff;text-align:center}.only-in-pro .title{font-family:Roboto,sans-serif;font-size:24px;line-height:40px;margin:0}div.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow{position:absolute;top:50%}div.tooltipster-sidetip.tooltipster-top div.tooltipster-box{margin-bottom:0!important}div.tooltipster-sidetip.tooltipster-bottom div.tooltipster-box{margin-top:0!important}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{top:auto;bottom:-8px}div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{top:-8px;bottom:auto}@media only screen and (max-width:480px){.eael-pricing.style-1 .eael-pricing-item .price-tag{display:block}}
29
  .eael-post-grid .woocommerce ul.products,.eael-product-grid .woocommerce ul.products{display:grid;grid-gap:25px;margin:0!important;padding:0!important}.eael-post-grid .woocommerce ul.products:after,.eael-post-grid .woocommerce ul.products:before,.eael-product-grid .woocommerce ul.products:after,.eael-product-grid .woocommerce ul.products:before{display:none}.eael-post-grid .woocommerce ul.products .product,.eael-product-grid .woocommerce ul.products .product{width:100%;margin:0;padding:0}.eael-post-grid .woocommerce ul.products.products[class*=columns-] li.product,.eael-product-grid .woocommerce ul.products.products[class*=columns-] li.product{width:100%}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product{position:relative;float:left;overflow:hidden;text-align:center;padding:0;border-radius:0;background-color:#fff;box-shadow:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a{text-decoration:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover{outline:0;box-shadow:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product img,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product img{width:100%;height:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1;color:#333;margin:25px 0 12px;padding:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale{display:block;line-height:170px;font-size:13px;text-align:center;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.6);text-transform:uppercase;color:#fff;background-color:#ff2a13;border-radius:0;border:none;box-shadow:none;position:absolute;height:100px;width:200px;z-index:1;left:-100px;top:-50px;right:auto;margin:0;padding:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price{font-size:14px;margin-bottom:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del{opacity:.5;display:inline-block}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins{font-weight:400;background-color:transparent;color:#ff2a13}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating{display:block;float:none;font-size:14px;margin:10px auto}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button{display:block;font-size:14px;font-weight:400;line-height:38px;text-align:center;text-transform:uppercase;color:#fff;background-color:#333;padding:0;margin:15px;border-radius:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus{outline:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart{display:block;margin:0 0 15px 0;padding:0;font-size:14px;line-height:1;text-transform:capitalize;color:#333;background-color:transparent}.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product{border:1px solid #eee}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product{border:1px solid transparent}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart{visibility:hidden;-webkit-transition:none;transition:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover{border:1px solid #eee}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart{visibility:visible}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product{position:relative;float:left;overflow:hidden;text-align:center;padding:0 0 15px 0;border-radius:0;background-color:#fff;box-shadow:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a{text-decoration:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover{outline:0;box-shadow:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img{width:100%;height:auto;margin:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay{position:relative;overflow:hidden;line-height:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap{position:absolute;top:50%;left:0;right:0;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link{display:inline-block;font-size:14px;line-height:38px;text-align:center;color:#fff;background-color:#333;width:38px;height:38px;border-style:none;border-radius:50%;vertical-align:middle;padding:0;margin:0 5px;-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0;-webkit-transition:opacity .3s,-webkit-transform .2s;transition:opacity .3s,-webkit-transform .2s;transition:transform .2s,opacity .3s;transition:transform .2s,opacity .3s,-webkit-transform .2s}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus{outline:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button{font-size:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before{display:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after{content:"\f217";font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;text-rendering:auto;-webkit-font-smoothing:antialiased;vertical-align:middle;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before{display:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after{content:"\f110";display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;color:#fff;height:auto;width:auto;position:relative;top:0;left:0;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart{font-size:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after{content:"\f06e";font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;color:#fff;text-rendering:auto;-webkit-font-smoothing:antialiased;vertical-align:middle;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1;color:#333;margin:25px 0 12px;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale{display:block;line-height:170px;font-size:13px;text-align:center;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.6);text-transform:uppercase;color:#fff;background-color:#ff2a13;border-radius:0;border:none;box-shadow:none;position:absolute;height:100px;width:200px;z-index:1;left:-100px;top:-50px;right:auto;margin:0;padding:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price{font-size:14px;margin-bottom:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del{opacity:.5;display:inline-block}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins{font-weight:400;background-color:transparent;color:#ff2a13}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating{display:block;float:none;font-size:14px;margin:10px auto}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}@media only screen and (min-width:1025px){.eael-product-grid-column-1 .eael-product-grid .woocommerce ul.products{grid-template-columns:100%}.eael-product-grid-column-2 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}.eael-product-grid-column-3 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.eael-product-grid-column-4 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}.eael-product-grid-column-5 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(5,1fr)}.eael-product-grid-column-6 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(6,1fr)}}@media only screen and (max-width:1024px) and (min-width:766px){.eael-product-grid-column-tablet-1 .eael-product-grid .woocommerce ul.products{grid-template-columns:100%}.eael-product-grid-column-tablet-2 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}.eael-product-grid-column-tablet-3 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.eael-product-grid-column-tablet-4 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}.eael-product-grid-column-tablet-5 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(5,1fr)}.eael-product-grid-column-tablet-6 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(6,1fr)}}@media only screen and (max-width:767px){.eael-product-grid-column-mobile-1 .eael-product-grid .woocommerce ul.products{grid-template-columns:100%}.eael-product-grid-column-mobile-2 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}.eael-product-grid-column-mobile-3 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.eael-product-grid-column-mobile-4 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(4,1fr)}.eael-product-grid-column-mobile-5 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(5,1fr)}.eael-product-grid-column-mobile-6 .eael-product-grid .woocommerce ul.products{grid-template-columns:repeat(6,1fr)}}
30
  @-webkit-keyframes animateStripe{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(35px,0);transform:translate(35px,0)}}@keyframes animateStripe{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(35px,0);transform:translate(35px,0)}}@-webkit-keyframes animateStripeRTL{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-35px,0);transform:translate(-35px,0)}}@keyframes animateStripeRTL{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-35px,0);transform:translate(-35px,0)}}.eael-progressbar{position:relative}.eael-progressbar-title{font-size:20px;font-weight:400}.eael-progressbar-line{position:relative;display:block;width:100%;height:12px;background-color:#eee}.eael-progressbar-line .eael-progressbar-count-wrap{position:absolute;right:0;bottom:calc(100% + 5px);font-size:16px;font-weight:400;line-height:1}.eael-progressbar-line-fill{display:inline-block;position:absolute;top:50%;left:0;width:0;height:12px;background-color:#000;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:width 1.5s linear;transition:width 1.5s linear;overflow:hidden}.eael-progressbar-circle{position:relative;width:200px;height:200px}.eael-progressbar-circle .eael-progressbar-title{font-size:16px;font-weight:400}.eael-progressbar-circle .eael-progressbar-count-wrap{font-size:28px;font-weight:700}.eael-progressbar-circle-shadow{width:220px;height:220px;padding:10px;border-radius:50%}.eael-progressbar-circle-pie{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-clip-path:inset(0 0 0 50%);clip-path:inset(0 0 0 50%)}.eael-progressbar-circle-inner{height:100%;width:100%;border-width:12px;border-style:solid;border-color:#eee;border-radius:50%}.eael-progressbar-circle-half{position:absolute;left:0;top:0;height:100%;width:100%;border-width:12px;border-style:solid;border-color:#000;border-radius:50%;-webkit-clip-path:inset(0 50% 0 0);clip-path:inset(0 50% 0 0)}.eael-progressbar-circle-half-left{-webkit-transform:rotate(0);transform:rotate(0)}.eael-progressbar-circle-half-right{-webkit-transform:rotate(180deg);transform:rotate(180deg);visibility:hidden}.eael-progressbar-circle-inner-content{position:absolute;top:50%;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center}.eael-progressbar-half-circle{position:relative;width:200px;height:100px;overflow:hidden}.eael-progressbar-half-circle .eael-progressbar-circle-pie{-webkit-clip-path:inset(0 0 50% 0);clip-path:inset(0 0 50% 0)}.eael-progressbar-half-circle .eael-progressbar-circle-half{-webkit-clip-path:inset(50% 0 0 0);clip-path:inset(50% 0 0 0);-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform 1.5s linear;transition:-webkit-transform 1.5s linear;transition:transform 1.5s linear;transition:transform 1.5s linear,-webkit-transform 1.5s linear}.eael-progressbar-half-circle .eael-progressbar-circle-inner-content{top:initial;bottom:0;-webkit-transform:translateY(0);transform:translateY(0)}.eael-progressbar-half-circle .eael-progressbar-title{font-size:16px;font-weight:400}.eael-progressbar-half-circle .eael-progressbar-count-wrap{font-size:28px;font-weight:700}.eael-progressbar-half-circle-after{position:relative;font-size:12px;font-weight:400;clear:both}.eael-progressbar-postfix-label{float:right}.eael-progressbar-line-stripe .eael-progressbar-line-fill:after{content:'';position:absolute;top:0;left:-35px;width:calc(100% + 70px);height:100%;background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:35px 35px}.eael-progressbar-line-animate .eael-progressbar-line-fill:after{-webkit-animation:animateStripe 2s linear infinite;animation:animateStripe 2s linear infinite}.eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after{-webkit-animation:animateStripeRTL 2s linear infinite;animation:animateStripeRTL 2s linear infinite}.eael-progressbar-circle-wrap>div{margin:0 auto}.eael-progressbar-box-container.left>div,.eael-progressbar-circle-container.left>div,.eael-progressbar-line-container.left{margin:0 auto 0 0}.eael-progressbar-box-container.center>div,.eael-progressbar-circle-container.center>div,.eael-progressbar-line-container.center{margin:0 auto}.eael-progressbar-box-container.right>div,.eael-progressbar-circle-container.right>div,.eael-progressbar-line-container.right{margin:0 0 0 auto}
 
31
  .eael-reading-progress-wrap.eael-reading-progress-wrap-local .eael-reading-progress-global{display:none}.eael-reading-progress-wrap.eael-reading-progress-wrap-global .eael-reading-progress-local{display:none}.eael-reading-progress-wrap.eael-reading-progress-wrap-disabled .eael-reading-progress-global,.eael-reading-progress-wrap.eael-reading-progress-wrap-disabled .eael-reading-progress-local{display:none}.eael-reading-progress-wrap .eael-reading-progress{width:100%;position:fixed;top:0;left:0;height:5px;z-index:999999}.eael-reading-progress-wrap .eael-reading-progress.eael-reading-progress-bottom{top:unset;bottom:0}.eael-reading-progress-wrap .eael-reading-progress .eael-reading-progress-fill{height:5px;background-color:#1fd18e;width:0%;-webkit-transition:width 50ms ease;transition:width 50ms ease}
32
+ .eaelsv-overlay{position:absolute;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:4;cursor:pointer;background-size:cover;background-position:50%;text-align:center;overflow:hidden}.eaelsv-overlay-icon{position:absolute;top:50%;left:50%;font-size:90px;color:#fff;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}.plyr__controls button{box-shadow:none!important}.plyr__controls button:hover{box-shadow:none!important}.plyr__controls{display:none!important}.eael-sticky-video-wrapper{position:relative;width:100%;min-height:200px;margin:0;padding:0;-webkit-transition:.5s;transition:.5s;text-align:left;overflow:hidden}.eael-sticky-video-player2{min-height:20px;overflow:visible}.eael-sticky-video-player2.out{position:fixed;z-index:999;border:0!important;border-radius:0!important;height:200px;width:300px}.eael-sticky-video-wrapper.out .eael-sticky-video-player,.eael-sticky-video-wrapper.out .eael-sticky-video-player2{border-radius:0!important}.eael-sticky-video-player2.in{position:relative;margin:0;padding:0;height:100%;border:0;line-height:1}.owp-play{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.owp-play i{font-size:100px;color:#fff;opacity:.8;text-shadow:1px 0 6px rgba(0,0,0,.3);-webkit-transition:all .5s;transition:all .5s}.eael-sticky-video-player:hover .owp-play i{opacity:1}.eaelsv-sticky-player-close{position:absolute;right:-25px;top:-36px;display:none;padding:7px;font-size:24px;z-index:9999;cursor:pointer;box-sizing:content-box;overflow:visible}.eaelsv-sticky-player-close:hover{color:#090}.eaelsv-sticky-player-close:after,.eaelsv-sticky-player-close:before{position:absolute;left:15px;background-color:#333}.eaelsv-sticky-player-close:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.eaelsv-sticky-player-close:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}
33
  .eael-team-item{overflow:hidden;position:relative}.team-avatar-rounded figure img{border-radius:50%;height:auto}.eael-team-image>figure{margin:0;padding:0}.eael-team-image>figure img{display:block;margin:0 auto}.eael-team-item .eael-team-content{padding:10px}.eael-team-item .eael-team-member-name{font-size:20px;font-weight:700;letter-spacing:.05em;margin:5px 0;text-transform:uppercase}.eael-team-item .eael-team-member-position{font-size:14px;font-weight:400;letter-spacing:.05em;margin:5px 0 10px;text-transform:uppercase}.eael-team-item .eael-team-content,.eael-team-item .eael-team-content .eael-team-text{font-size:14px;line-height:1.5}.eael-team-content>ul{margin:0;padding:0}.eael-team-content li{display:inline-block;list-style:outside none none;margin-right:10px;text-align:center}.eael-team-content li a{font-size:2.5rem}.eael-team-align-left .eael-team-item .eael-team-content li,.eael-team-align-left .eael-team-item .eael-team-content p,.eael-team-align-left .eael-team-item .eael-team-content ul,.eael-team-align-left .eael-team-item .eael-team-member-name,.eael-team-align-left .eael-team-item .eael-team-member-position,.eael-team-align-left .eael-team-item .eael-team-text{text-align:left}.eael-team-align-right .eael-team-item .eael-team-content li,.eael-team-align-right .eael-team-item .eael-team-content p,.eael-team-align-right .eael-team-item .eael-team-content ul,.eael-team-align-right .eael-team-item .eael-team-member-name,.eael-team-align-right .eael-team-item .eael-team-member-position,.eael-team-align-right .eael-team-item .eael-team-text{text-align:right}.eael-team-align-centered .eael-team-item .eael-team-content li,.eael-team-align-centered .eael-team-item .eael-team-content p,.eael-team-align-centered .eael-team-item .eael-team-content ul,.eael-team-align-centered .eael-team-item .eael-team-member-name,.eael-team-align-centered .eael-team-item .eael-team-member-position,.eael-team-align-centered .eael-team-item .eael-team-text{text-align:center}.eael-team-item.eael-team-members-overlay .eael-team-content{bottom:10px;left:10px;margin-bottom:0;padding-top:15%;opacity:0;overflow:hidden;text-overflow:ellipsis;position:absolute;right:10px;top:10px;-webkit-transition:all 615ms cubic-bezier(.19,1,.22,1) 0s;transition:all 615ms cubic-bezier(.19,1,.22,1) 0s}.eael-team-item.eael-team-members-overlay:hover .eael-team-content{opacity:1}.eael-team-member-social-link>a{display:inline-block;-webkit-transition:all .3s cubic-bezier(.19,1,.22,1) 0s;transition:all .3s cubic-bezier(.19,1,.22,1) 0s}.eael-team-member-social-link>a:focus{outline:0}
34
  .eael-testimonial-slider{position:relative}.testimonial-star-rating{padding:0;margin:0}.testimonial-star-rating li{list-style:none;display:inline-block}.testimonial-star-rating li i{color:#d8d8d8}.rating-five .testimonial-star-rating li i{color:#f2b01e}.rating-one .testimonial-star-rating li:first-child i{color:#f2b01e}.rating-two .testimonial-star-rating li:nth-child(1) i,.rating-two .testimonial-star-rating li:nth-child(2) i{color:#f2b01e}.rating-three .testimonial-star-rating li:nth-child(1) i,.rating-three .testimonial-star-rating li:nth-child(2) i,.rating-three .testimonial-star-rating li:nth-child(3) i{color:#f2b01e}.rating-four .testimonial-star-rating li:nth-child(1) i,.rating-four .testimonial-star-rating li:nth-child(2) i,.rating-four .testimonial-star-rating li:nth-child(3) i,.rating-four .testimonial-star-rating li:nth-child(4) i{color:#f2b01e}.eael-testimonial-image img{max-width:100%}.eael-testimonial-image{padding:10px 0 0 0}.eael-testimonial-image>figure{display:block;margin:0}.testimonial-avatar-rounded figure img{border-radius:50%;height:auto}.eael-testimonial-content{margin:0;padding:10px}.eael-testimonial-item>figure{margin:0 auto;padding:0 20px}.eael-testimonial-item .center-text{text-align:center}.eael-testimonial-item .right-text{text-align:right}.eael-testimonial-item .left-text{text-align:left}.eael-testimonial-item .justify-text{text-align:justify}.eael-testimonial-content .eael-testimonial-text{font-size:100%;font-style:italic;line-height:1.5;margin-top:0;margin-bottom:10px;word-wrap:break-word}.eael-testimonial-content .eael-testimonial-user{display:inline-block;font-family:inherit;font-size:105%;font-style:italic;font-weight:400;line-height:1.5;margin-top:0;margin-bottom:0;margin-right:5px}.eael-testimonial-content .eael-testimonial-user-company{display:inline-block;font-family:inherit;font-size:90%;font-style:italic;font-weight:lighter;line-height:1.75;margin-bottom:0;margin-top:1px}.eael-testimonial-image{position:relative}.eael-testimonial-item .eael-testimonial-quote::after{color:inherit!important;content:"\f10e";font-family:"Font Awesome 5 Free";font-size:200%;font-weight:900}.eael-testimonial-slider.default-style .eael-testimonial-align-centered .eael-testimonial-image figure img{margin:0 auto}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure img,.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure img,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure img{margin:0}.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure,.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure{text-align:right}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure,.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure{text-align:left}.eael-testimonial-slider.classic-style .eael-testimonial-align-right .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-right .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .middle-style-content{text-align:right}.eael-testimonial-slider.classic-style .eael-testimonial-align-center .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-center .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-center .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-center .middle-style-content{text-align:center}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-left .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .middle-style-content{text-align:left}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-text>p,.eael-testimonial-slider.icon-img-right-content .eael-testimonial-text>p{margin:0}.icon-img-left-content .eael-testimonial-image{float:left;width:30%}.icon-img-left-content .eael-testimonial-content{float:left;width:70%;text-align:left}.icon-img-left-content.eael-testimonial-item{overflow:hidden;position:relative}.icon-img-left-content .eael-testimonial-quote{position:absolute;right:0}.icon-img-left-content .eael-testimonial-text{margin-top:0}.eael-testimonial-align-centered .eael-testimonial-user,.eael-testimonial-align-centered .eael-testimonial-user-company{float:none;text-align:center}.eael-testimonial-align-centered .eael-testimonial-image>figure img{display:block;margin-left:auto!important;margin-right:auto!important}.icon-img-right-content .eael-testimonial-image{float:right;width:30%}.icon-img-right-content .eael-testimonial-content{float:right;width:70%;text-align:right}.icon-img-right-content.eael-testimonial-item{overflow:hidden;position:relative}.icon-img-right-content .eael-testimonial-quote{position:absolute}.icon-img-right-content .eael-testimonial-text{margin-top:0}.eael-testimonial-item{position:relative}.classic-style.testimonial-alignment-center .eael-testimonial-image,.default-style.testimonial-alignment-center .eael-testimonial-image{text-align:center}.classic-style.testimonial-alignment-right .eael-testimonial-image,.default-style.testimonial-alignment-right .eael-testimonial-image{text-align:right}.classic-style.testimonial-alignment-center .eael-testimonial-image>figure,.default-style.testimonial-alignment-center .eael-testimonial-image>figure{text-align:center}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-centered .eael-testimonial-content{text-align:center}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-left .eael-testimonial-content{text-align:left}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-right .eael-testimonial-content{text-align:right}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-centered .eael-testimonial-content{text-align:center}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-left .eael-testimonial-content{text-align:left}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-right .eael-testimonial-content{text-align:right}span.eael-testimonial-quote{position:absolute;right:10px;top:10px}.eael-testimonial-item.left .eael-testimonial-image{text-align:left}.eael-testimonial-item.center .eael-testimonial-image{text-align:center}.eael-testimonial-item.right .eael-testimonial-image{text-align:right}.eael-testimonial-inline-bio .eael-testimonial-image{float:left}.eael-testimonial-inline-bio .bio-text{padding-top:10px}.eael-testimonial-content.eael-testimonial-inline-bio{overflow:hidden;margin-bottom:0;padding-bottom:0}.eael-testimonial-inline-bio .bio-text,.eael-testimonial-inline-bio .testimonial-star-rating{float:left;width:65%}.eael-testimonial-content.eael-testimonial-inline-bio{text-align:left!important}.testimonial-inline-style .eael-testimonial-image{float:left;max-width:100%;padding:0;margin-right:15px}.testimonial-inline-style{overflow:hidden;text-align:left}.content-top-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text,.content-top-icon-title-inline .eael-testimonial-text{text-align:left}.content-top-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text{text-align:center}.content-top-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text{text-align:right}.content-bottom-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text,.content-bottom-icon-title-inline .eael-testimonial-text{text-align:left}.content-bottom-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text{text-align:center}.content-bottom-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text{text-align:right}
35
  .eael-tooltip{position:relative;display:inline-block;min-width:150px;padding:12px 24px;font-size:.93rem;color:#333;line-height:1;cursor:pointer;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.eael-tooltip .eael-tooltip-text{display:block;width:100%;visibility:hidden;background-color:#000;color:#fff;border-radius:4px;padding:10px;position:absolute;z-index:1;font-size:.93rem;line-height:1.3}.eael-tooltip .eael-tooltip-text p{margin:0}.eael-tooltip .eael-tooltip-text::after{content:"";position:absolute;border-width:5px;border-style:solid}.eael-tooltip:hover .eael-tooltip-text{visibility:visible}.eael-tooltip .eael-tooltip-text.eael-tooltip-left{top:50%;right:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);margin-right:10px}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left{-webkit-animation:tooltipLeftIn .3s ease-in-out;animation:tooltipLeftIn .3s ease-in-out}.eael-tooltip .eael-tooltip-text.eael-tooltip-left::after{top:calc(50% - 5px);left:100%;border-color:transparent transparent transparent #000}.eael-tooltip .eael-tooltip-text.eael-tooltip-right{top:50%;left:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;margin-left:10px}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right{-webkit-animation:tooltipRightIn .3s linear;animation:tooltipRightIn .3s linear}.eael-tooltip .eael-tooltip-text.eael-tooltip-right::after{top:calc(50% - 5px);right:100%;border-color:transparent #000 transparent transparent}.eael-tooltip .eael-tooltip-text.eael-tooltip-top{bottom:calc(100%);left:0;right:0;margin:0 auto 10px auto}.eael-tooltip .eael-tooltip-text.eael-tooltip-top::after{margin-top:0;top:100%;left:calc(50% - 5px);border-color:#000 transparent transparent transparent}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top{-webkit-animation:tooltipTopIn .3s linear;animation:tooltipTopIn .3s linear}.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom{top:100%;left:0;right:0;margin:10px auto 0 auto}.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom::after{margin-top:0;bottom:100%;left:calc(50% - 5px);border-color:transparent transparent #000 transparent}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom{-webkit-animation:tooltipBottomIn .3s linear;animation:tooltipBottomIn .3s linear}.eael-tooltip-align-left{display:-webkit-box;display:flex;width:100%;-webkit-box-pack:start;justify-content:flex-start}.eael-tooltip-align-right{display:-webkit-box;display:flex;width:100%;-webkit-box-pack:end;justify-content:flex-end}.eael-tooltip-align-center{display:-webkit-box;display:flex;width:100%;-webkit-box-pack:center;justify-content:center}.eael-tooltip-align-justify .eael-tooltip{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}@-webkit-keyframes tooltipRightIn{0%{opacity:0;left:105%}100%{opacity:1;left:100%}}@keyframes tooltipRightIn{0%{opacity:0;left:105%}100%{opacity:1;left:100%}}@-webkit-keyframes tooltipLeftIn{0%{opacity:0;right:105%}100%{opacity:1;right:100%}}@keyframes tooltipLeftIn{0%{opacity:0;right:105%}100%{opacity:1;right:100%}}@-webkit-keyframes tooltipTopIn{0%{opacity:0;bottom:110%}100%{opacity:1;bottom:100%}}@keyframes tooltipTopIn{0%{opacity:0;bottom:110%}100%{opacity:1;bottom:100%}}@-webkit-keyframes tooltipBottomIn{0%{opacity:0;top:110%}100%{opacity:1;top:100%}}@keyframes tooltipBottomIn{0%{opacity:0;top:110%}100%{opacity:1;top:100%}}span.eael-tooltip-content,span.eael-tooltip-content a{width:100%;display:block;text-align:center}.eael-tooltip-text-align-left .eael-tooltip-content a,.eael-tooltip-text-align-left .eael-tooltip-text{text-align:left}.eael-tooltip-text-align-right .eael-tooltip-content a,.eael-tooltip-text-align-right .eael-tooltip-text{text-align:right}.eael-tooltip-text-align-center .eael-tooltip-content a,.eael-tooltip-text-align-center .eael-tooltip-text{text-align:center}.eael-tooltip-text-align-justify .eael-tooltip-content a,.eael-tooltip-text-align-justify .eael-tooltip-text{text-align:justify}
36
  .eael-twitter-feed::after,.eael-twitter-feed::before{content:"";clear:both}.eael-twitter-feed-masonry .eael-twitter-feed-item{float:left}@media only screen and (max-width:480px){.eael-twitter-feed-masonry.eael-twitter-feed-col-2 .eael-twitter-feed-item{width:100%!important}}@media only screen and (max-width:480px){.eael-twitter-feed-masonry.eael-twitter-feed-col-3 .eael-twitter-feed-item{width:100%!important}}@media only screen and (max-width:480px){.eael-twitter-feed-masonry.eael-twitter-feed-col-4 .eael-twitter-feed-item{width:100%!important}}.eael-twitter-feed-item .eael-twitter-feed-item-inner{background:#fff;border:1px solid rgba(0,0,0,.1)}.eael-twitter-feed-item a{color:#08c;text-decoration:none}.eael-twitter-feed-item a:hover{outline:0;color:#005580}.eael-twitter-feed-item a:focus{outline:0}.eael-twitter-feed-item .eael-twitter-feed-item-header{padding:20px 15px 0;margin-bottom:10px}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-avatar{float:left;width:38px;margin-right:10px}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-avatar img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-avatar.avatar-circle img{border-radius:50%}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-meta{float:left}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-meta .eael-twitter-feed-item-icon{color:#1da1f2;margin-right:5px}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-meta .eael-twitter-feed-item-author{color:#444;line-height:1.5em;font-weight:700}.eael-twitter-feed-item .eael-twitter-feed-item-header .eael-twitter-feed-item-date{float:right;margin-right:10px;font-size:90%;color:#999}.eael-twitter-feed-item .eael-twitter-feed-item-content{padding:0 15px 15px}.eael-twitter-feed-item .eael-twitter-feed-item-content p{color:#666;margin:0 0 5px;min-height:20px;text-overflow:ellipsis;-webkit-line-clamp:5;-webkit-box-orient:vertical}.eael-twitter-feed.swiper-container .swiper-button-next,.eael-twitter-feed.swiper-container .swiper-button-prev{background-image:none;outline:0}
 
37
  .eael-weform-container input,.eael-weform-container textarea{height:auto;padding:10px}.eael-contact-form-btn-align-center .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-btn-align-left .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{float:left;width:auto}.eael-contact-form-btn-align-right .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{float:right;width:auto}.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=email],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=number],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=password],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=text],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=url],.eael-weform-container ul.wpuf-form li .wpuf-fields textarea{max-width:100%}
38
+ .eael-caldera-form-align-left,.eael-caldera-form-btn-align-left{text-align:left}.eael-caldera-form-align-right,.eael-caldera-form-btn-align-right{text-align:right}.eael-caldera-form-align-center,.eael-caldera-form-btn-align-center{text-align:center}.eael-caldera-form .control-label{display:none}.eael-caldera-form-labels-yes .control-label{display:block}.eael-caldera-form-button-center .form-group input[type=button],.eael-caldera-form-button-center .form-group input[type=submit]{display:block;margin:0 auto}.eael-caldera-form-button-right .form-group input[type=button],.eael-caldera-form-button-right .form-group input[type=submit]{float:right}.eael-caldera-form .intl-tel-input{display:inherit}.eael-custom-radio-checkbox .caldera-grid input[type=checkbox],.eael-custom-radio-checkbox .caldera-grid input[type=radio]{border-style:solid;border-width:0;padding:3px;-webkit-appearance:none}.eael-caldera-form-button-full-width .form-group input[type=button],.eael-caldera-form-button-full-width .form-group input[type=submit]{width:100%}
39
+ .eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button,.eael-wpforms .wpforms-container .wpforms-form button[type=submit],.eael-wpforms .wpforms-container .wpforms-form input[type=submit]{border:0}.eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button:hover,.eael-wpforms .wpforms-container .wpforms-form button[type=submit]:hover,.eael-wpforms .wpforms-container .wpforms-form input[type=submit]:hover{border:0}.eael-wpforms .wpforms-container .wpforms-form input[type=checkbox],.eael-wpforms .wpforms-container .wpforms-form input[type=radio]{padding:3px}.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-label{display:none}.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-name .wpforms-field-row{max-width:100%}.eael-wpforms .wpforms-container .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),.eael-wpforms .wpforms-container .wpforms-field select,.eael-wpforms .wpforms-container .wpforms-field textarea{max-width:100%!important}.eael-wpforms-labels-yes .wpforms-container .wpforms-form .wpforms-field-label{display:block}.eael-wpforms-form-button-full-width .wpforms-submit-container .wpforms-submit{width:100%}
40
  @keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:subpixel-antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5764;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:14px;left:0;padding:10px;position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:16px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}a.plyr__control{text-decoration:none}a.plyr__control::after,a.plyr__control::before{display:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr__control--overlaid{background:rgba(0,179,255,.8);border:0;border-radius:100%;color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00b3ff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls .plyr__controls__item.plyr__volume{padding-right:5px}.plyr__controls .plyr__controls__item.plyr__volume:first-child{padding-right:0}.plyr__controls:empty{display:none}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4a5764;padding:10px}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:20px 5px 5px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:35px 10px 10px}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5764;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(74,87,100,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(74,87,100,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#c1c9d1;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:#00b3ff}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-5px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:26px;color:#00b3ff;display:block;height:19px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;transition:all .2s ease;width:13px;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:14px;font-weight:500;left:50%;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:16px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__progress{left:6.5px;margin-right:13px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-right:-6.5px;width:calc(100% + 13px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;left:0;margin-top:-2.5px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(193,201,209,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,41,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,41,47,.6) 50%,rgba(35,41,47,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,201,209,.66)}.plyr__volume{align-items:center;display:flex;flex:1;position:relative}.plyr__volume input[type=range]{margin-left:5px;position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:90px}}@media (min-width:768px){.plyr__volume{max-width:110px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(35,41,47,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;left:0;margin:-2.5px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);margin-bottom:10px;opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c9d1;border-radius:2px;overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:2px;color:#fff;font-size:14px;padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}
41
  .tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-fall.tooltipster-initial{top:0!important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-slide.tooltipster-initial{left:-40px!important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading .4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating .6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling .6s}.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}
assets/front-end/css/feature-list/index.css CHANGED
@@ -110,7 +110,7 @@
110
  position: absolute;
111
  left: 50%;
112
  -webkit-transform: translateX(-50%);
113
- transform: translateX(-50%);
114
  }
115
  .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img {
116
  font-size: 8px;
@@ -149,11 +149,11 @@
149
  }
150
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i {
151
  -webkit-transform: rotate(-45deg);
152
- transform: rotate(-45deg);
153
  }
154
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img {
155
  -webkit-transform: rotate(-45deg);
156
- transform: rotate(-45deg);
157
  }
158
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title {
159
  margin-top: 15px;
@@ -234,13 +234,13 @@
234
  text-align: left;
235
  -webkit-box-orient: horizontal;
236
  -webkit-box-direction: normal;
237
- flex-direction: row;
238
  }
239
  .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item {
240
  text-align: right;
241
  -webkit-box-orient: horizontal;
242
  -webkit-box-direction: reverse;
243
- flex-direction: row-reverse;
244
  }
245
  }
246
  @media (max-width: 1024px) {
@@ -252,13 +252,13 @@
252
  text-align: left;
253
  -webkit-box-orient: horizontal;
254
  -webkit-box-direction: normal;
255
- flex-direction: row;
256
  }
257
  .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item {
258
  text-align: right;
259
  -webkit-box-orient: horizontal;
260
  -webkit-box-direction: reverse;
261
- flex-direction: row-reverse;
262
  }
263
  }
264
  @media (min-width: 768px) and (max-width: 1024px) {
@@ -380,13 +380,13 @@
380
  text-align: left;
381
  -webkit-box-orient: horizontal;
382
  -webkit-box-direction: normal;
383
- flex-direction: row;
384
  }
385
  .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item {
386
  text-align: right;
387
  -webkit-box-orient: horizontal;
388
  -webkit-box-direction: reverse;
389
- flex-direction: row-reverse;
390
  }
391
  .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box {
392
  margin-right: 0 !important;
110
  position: absolute;
111
  left: 50%;
112
  -webkit-transform: translateX(-50%);
113
+ transform: translateX(-50%);
114
  }
115
  .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img {
116
  font-size: 8px;
149
  }
150
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i {
151
  -webkit-transform: rotate(-45deg);
152
+ transform: rotate(-45deg);
153
  }
154
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img {
155
  -webkit-transform: rotate(-45deg);
156
+ transform: rotate(-45deg);
157
  }
158
  .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title {
159
  margin-top: 15px;
234
  text-align: left;
235
  -webkit-box-orient: horizontal;
236
  -webkit-box-direction: normal;
237
+ flex-direction: row;
238
  }
239
  .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item {
240
  text-align: right;
241
  -webkit-box-orient: horizontal;
242
  -webkit-box-direction: reverse;
243
+ flex-direction: row-reverse;
244
  }
245
  }
246
  @media (max-width: 1024px) {
252
  text-align: left;
253
  -webkit-box-orient: horizontal;
254
  -webkit-box-direction: normal;
255
+ flex-direction: row;
256
  }
257
  .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item {
258
  text-align: right;
259
  -webkit-box-orient: horizontal;
260
  -webkit-box-direction: reverse;
261
+ flex-direction: row-reverse;
262
  }
263
  }
264
  @media (min-width: 768px) and (max-width: 1024px) {
380
  text-align: left;
381
  -webkit-box-orient: horizontal;
382
  -webkit-box-direction: normal;
383
+ flex-direction: row;
384
  }
385
  .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item {
386
  text-align: right;
387
  -webkit-box-orient: horizontal;
388
  -webkit-box-direction: reverse;
389
+ flex-direction: row-reverse;
390
  }
391
  .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box {
392
  margin-right: 0 !important;
assets/front-end/css/magnific-popup/index.css CHANGED
@@ -442,17 +442,17 @@ button.mfp-close:hover {
442
  @media all and (max-width: 900px) {
443
  .mfp-arrow {
444
  -webkit-transform: scale(0.75);
445
- transform: scale(0.75);
446
  }
447
 
448
  .mfp-arrow-left {
449
  -webkit-transform-origin: 0;
450
- transform-origin: 0;
451
  }
452
 
453
  .mfp-arrow-right {
454
  -webkit-transform-origin: 100%;
455
- transform-origin: 100%;
456
  }
457
 
458
  .mfp-container {
442
  @media all and (max-width: 900px) {
443
  .mfp-arrow {
444
  -webkit-transform: scale(0.75);
445
+ transform: scale(0.75);
446
  }
447
 
448
  .mfp-arrow-left {
449
  -webkit-transform-origin: 0;
450
+ transform-origin: 0;
451
  }
452
 
453
  .mfp-arrow-right {
454
  -webkit-transform-origin: 100%;
455
+ transform-origin: 100%;
456
  }
457
 
458
  .mfp-container {
assets/front-end/css/price-table/index.css CHANGED
@@ -509,18 +509,18 @@
509
 
510
  .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after {
511
  -webkit-transform: translateX(-80%);
512
- transform: translateX(-80%);
513
  }
514
 
515
  .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after {
516
  -webkit-transform: translateX(80%);
517
- transform: translateX(80%);
518
  }
519
 
520
  .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,
521
  .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after {
522
  -webkit-transform: translateX(0%);
523
- transform: translateX(0%);
524
  }
525
 
526
  .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,
509
 
510
  .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after {
511
  -webkit-transform: translateX(-80%);
512
+ transform: translateX(-80%);
513
  }
514
 
515
  .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after {
516
  -webkit-transform: translateX(80%);
517
+ transform: translateX(80%);
518
  }
519
 
520
  .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,
521
  .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after {
522
  -webkit-transform: translateX(0%);
523
+ transform: translateX(0%);
524
  }
525
 
526
  .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,
assets/front-end/css/sticky-video/index.css CHANGED
@@ -149,7 +149,7 @@
149
  top: 50%;
150
  left: 50%;
151
  -webkit-transform: translateX(-50%) translateY(-50%);
152
- transform: translateX(-50%) translateY(-50%);
153
  }
154
 
155
  .owp-play i {
149
  top: 50%;
150
  left: 50%;
151
  -webkit-transform: translateX(-50%) translateY(-50%);
152
+ transform: translateX(-50%) translateY(-50%);
153
  }
154
 
155
  .owp-play i {
assets/front-end/js/eael.js CHANGED
@@ -1395,15352 +1395,11290 @@ return /******/ (function(modules) { // webpackBootstrap
1395
 
1396
  });
1397
 
1398
- /*!
1399
- * imagesLoaded PACKAGED v4.1.4
1400
- * JavaScript is all like "You images are done yet or what?"
1401
- * MIT License
1402
- */
1403
-
1404
  /**
1405
- * EvEmitter v1.1.0
1406
- * Lil' event emitter
1407
- * MIT License
1408
  */
 
 
 
 
 
 
 
 
 
 
 
 
1409
 
1410
- /* jshint unused: true, undef: true, strict: true */
 
1411
 
1412
- ( function( global, factory ) {
1413
- // universal module definition
1414
- /* jshint strict: false */ /* globals define, module, window */
1415
- if ( typeof define == 'function' && define.amd ) {
1416
- // AMD - RequireJS
1417
- define( 'ev-emitter/ev-emitter',factory );
1418
- } else if ( typeof module == 'object' && module.exports ) {
1419
- // CommonJS - Browserify, Webpack
1420
- module.exports = factory();
1421
- } else {
1422
- // Browser globals
1423
- global.EvEmitter = factory();
1424
- }
 
 
 
 
1425
 
1426
- }( typeof window != 'undefined' ? window : this, function() {
 
 
 
 
 
 
 
1427
 
 
 
 
 
 
 
 
1428
 
 
 
1429
 
1430
- function EvEmitter() {}
 
 
 
 
 
 
 
 
 
 
 
 
 
1431
 
1432
- var proto = EvEmitter.prototype;
 
1433
 
1434
- proto.on = function( eventName, listener ) {
1435
- if ( !eventName || !listener ) {
1436
- return;
1437
- }
1438
- // set events hash
1439
- var events = this._events = this._events || {};
1440
- // set listeners array
1441
- var listeners = events[ eventName ] = events[ eventName ] || [];
1442
- // only add once
1443
- if ( listeners.indexOf( listener ) == -1 ) {
1444
- listeners.push( listener );
1445
- }
1446
 
1447
- return this;
1448
- };
 
 
1449
 
1450
- proto.once = function( eventName, listener ) {
1451
- if ( !eventName || !listener ) {
1452
- return;
1453
- }
1454
- // add event
1455
- this.on( eventName, listener );
1456
- // set once flag
1457
- // set onceEvents hash
1458
- var onceEvents = this._onceEvents = this._onceEvents || {};
1459
- // set onceListeners object
1460
- var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
1461
- // set flag
1462
- onceListeners[ listener ] = true;
1463
 
1464
- return this;
1465
- };
1466
 
1467
- proto.off = function( eventName, listener ) {
1468
- var listeners = this._events && this._events[ eventName ];
1469
- if ( !listeners || !listeners.length ) {
1470
- return;
1471
- }
1472
- var index = listeners.indexOf( listener );
1473
- if ( index != -1 ) {
1474
- listeners.splice( index, 1 );
1475
- }
1476
 
1477
- return this;
1478
- };
 
 
1479
 
1480
- proto.emitEvent = function( eventName, args ) {
1481
- var listeners = this._events && this._events[ eventName ];
1482
- if ( !listeners || !listeners.length ) {
1483
- return;
1484
- }
1485
- // copy over to avoid interference if .off() in listener
1486
- listeners = listeners.slice(0);
1487
- args = args || [];
1488
- // once stuff
1489
- var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
1490
 
1491
- for ( var i=0; i < listeners.length; i++ ) {
1492
- var listener = listeners[i]
1493
- var isOnce = onceListeners && onceListeners[ listener ];
1494
- if ( isOnce ) {
1495
- // remove listener
1496
- // remove before trigger to prevent recursion
1497
- this.off( eventName, listener );
1498
- // unset once flag
1499
- delete onceListeners[ listener ];
 
 
1500
  }
1501
- // trigger listener
1502
- listener.apply( this, args );
1503
- }
1504
-
1505
- return this;
1506
- };
1507
-
1508
- proto.allOff = function() {
1509
- delete this._events;
1510
- delete this._onceEvents;
1511
- };
1512
 
1513
- return EvEmitter;
 
 
1514
 
 
 
 
 
 
 
1515
  }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1516
 
1517
- /*!
1518
- * imagesLoaded v4.1.4
1519
- * JavaScript is all like "You images are done yet or what?"
1520
- * MIT License
1521
- */
1522
-
1523
- ( function( window, factory ) { 'use strict';
1524
- // universal module definition
1525
 
1526
- /*global define: false, module: false, require: false */
1527
 
1528
- if ( typeof define == 'function' && define.amd ) {
1529
- // AMD
1530
- define( [
1531
- 'ev-emitter/ev-emitter'
1532
- ], function( EvEmitter ) {
1533
- return factory( window, EvEmitter );
1534
- });
1535
- } else if ( typeof module == 'object' && module.exports ) {
1536
- // CommonJS
1537
- module.exports = factory(
1538
- window,
1539
- require('ev-emitter')
1540
- );
1541
- } else {
1542
- // browser global
1543
- window.imagesLoaded = factory(
1544
- window,
1545
- window.EvEmitter
1546
- );
1547
- }
1548
 
1549
- })( typeof window !== 'undefined' ? window : this,
1550
 
1551
- // -------------------------- factory -------------------------- //
 
 
 
 
 
 
 
 
 
 
 
 
1552
 
1553
- function factory( window, EvEmitter ) {
1554
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1555
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1556
 
1557
- var $ = window.jQuery;
1558
- var console = window.console;
 
1559
 
1560
- // -------------------------- helpers -------------------------- //
 
 
 
 
1561
 
1562
- // extend objects
1563
- function extend( a, b ) {
1564
- for ( var prop in b ) {
1565
- a[ prop ] = b[ prop ];
1566
- }
1567
- return a;
1568
- }
1569
 
1570
- var arraySlice = Array.prototype.slice;
1571
 
1572
- // turn element or nodeList into an array
1573
- function makeArray( obj ) {
1574
- if ( Array.isArray( obj ) ) {
1575
- // use object if already an array
1576
- return obj;
1577
- }
1578
 
1579
- var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
1580
- if ( isArrayLike ) {
1581
- // convert nodeList to array
1582
- return arraySlice.call( obj );
1583
- }
1584
 
1585
- // array of single index
1586
- return [ obj ];
1587
- }
1588
 
1589
- // -------------------------- imagesLoaded -------------------------- //
 
 
 
 
 
 
 
 
 
1590
 
1591
- /**
1592
- * @param {Array, Element, NodeList, String} elem
1593
- * @param {Object or Function} options - if function, use as callback
1594
- * @param {Function} onAlways - callback function
1595
- */
1596
- function ImagesLoaded( elem, options, onAlways ) {
1597
- // coerce ImagesLoaded() without new, to be new ImagesLoaded()
1598
- if ( !( this instanceof ImagesLoaded ) ) {
1599
- return new ImagesLoaded( elem, options, onAlways );
1600
- }
1601
- // use elem as selector string
1602
- var queryElem = elem;
1603
- if ( typeof elem == 'string' ) {
1604
- queryElem = document.querySelectorAll( elem );
1605
- }
1606
- // bail if bad element
1607
- if ( !queryElem ) {
1608
- console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );
1609
- return;
1610
- }
1611
 
1612
- this.elements = makeArray( queryElem );
1613
- this.options = extend( {}, this.options );
1614
- // shift arguments if no options set
1615
- if ( typeof options == 'function' ) {
1616
- onAlways = options;
1617
- } else {
1618
- extend( this.options, options );
1619
- }
1620
 
1621
- if ( onAlways ) {
1622
- this.on( 'always', onAlways );
1623
- }
 
 
1624
 
1625
- this.getImages();
1626
 
1627
- if ( $ ) {
1628
- // add jQuery Deferred object
1629
- this.jqDeferred = new $.Deferred();
1630
- }
1631
 
1632
- // HACK check async to allow time to bind listeners
1633
- setTimeout( this.check.bind( this ) );
1634
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1635
 
1636
- ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
 
 
 
 
1637
 
1638
- ImagesLoaded.prototype.options = {};
 
 
 
 
 
 
1639
 
1640
- ImagesLoaded.prototype.getImages = function() {
1641
- this.images = [];
 
 
 
 
 
 
1642
 
1643
- // filter & find items if we have an item selector
1644
- this.elements.forEach( this.addElementImages, this );
1645
- };
1646
 
1647
- /**
1648
- * @param {Node} element
1649
- */
1650
- ImagesLoaded.prototype.addElementImages = function( elem ) {
1651
- // filter siblings
1652
- if ( elem.nodeName == 'IMG' ) {
1653
- this.addImage( elem );
1654
- }
1655
- // get background image on element
1656
- if ( this.options.background === true ) {
1657
- this.addElementBackgroundImages( elem );
1658
- }
1659
 
1660
- // find children
1661
- // no non-element nodes, #143
1662
- var nodeType = elem.nodeType;
1663
- if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
1664
- return;
1665
- }
1666
- var childImgs = elem.querySelectorAll('img');
1667
- // concat childElems to filterFound array
1668
- for ( var i=0; i < childImgs.length; i++ ) {
1669
- var img = childImgs[i];
1670
- this.addImage( img );
1671
- }
1672
 
1673
- // get child background images
1674
- if ( typeof this.options.background == 'string' ) {
1675
- var children = elem.querySelectorAll( this.options.background );
1676
- for ( i=0; i < children.length; i++ ) {
1677
- var child = children[i];
1678
- this.addElementBackgroundImages( child );
1679
- }
1680
- }
1681
- };
1682
 
1683
- var elementNodeTypes = {
1684
- 1: true,
1685
- 9: true,
1686
- 11: true
1687
- };
1688
 
1689
- ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
1690
- var style = getComputedStyle( elem );
1691
- if ( !style ) {
1692
- // Firefox returns null if in a hidden iframe https://bugzil.la/548397
1693
- return;
1694
- }
1695
- // get url inside url("...")
1696
- var reURL = /url\((['"])?(.*?)\1\)/gi;
1697
- var matches = reURL.exec( style.backgroundImage );
1698
- while ( matches !== null ) {
1699
- var url = matches && matches[2];
1700
- if ( url ) {
1701
- this.addBackground( url, elem );
1702
- }
1703
- matches = reURL.exec( style.backgroundImage );
1704
- }
1705
- };
1706
 
1707
- /**
1708
- * @param {Image} img
1709
- */
1710
- ImagesLoaded.prototype.addImage = function( img ) {
1711
- var loadingImage = new LoadingImage( img );
1712
- this.images.push( loadingImage );
1713
- };
1714
 
1715
- ImagesLoaded.prototype.addBackground = function( url, elem ) {
1716
- var background = new Background( url, elem );
1717
- this.images.push( background );
1718
- };
 
1719
 
1720
- ImagesLoaded.prototype.check = function() {
1721
- var _this = this;
1722
- this.progressedCount = 0;
1723
- this.hasAnyBroken = false;
1724
- // complete if no images
1725
- if ( !this.images.length ) {
1726
- this.complete();
1727
- return;
1728
- }
1729
 
1730
- function onProgress( image, elem, message ) {
1731
- // HACK - Chrome triggers event before object properties have changed. #83
1732
- setTimeout( function() {
1733
- _this.progress( image, elem, message );
1734
- });
1735
- }
1736
 
1737
- this.images.forEach( function( loadingImage ) {
1738
- loadingImage.once( 'progress', onProgress );
1739
- loadingImage.check();
1740
- });
1741
- };
1742
 
1743
- ImagesLoaded.prototype.progress = function( image, elem, message ) {
1744
- this.progressedCount++;
1745
- this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
1746
- // progress event
1747
- this.emitEvent( 'progress', [ this, image, elem ] );
1748
- if ( this.jqDeferred && this.jqDeferred.notify ) {
1749
- this.jqDeferred.notify( this, image );
1750
- }
1751
- // check if completed
1752
- if ( this.progressedCount == this.images.length ) {
1753
- this.complete();
1754
- }
1755
 
1756
- if ( this.options.debug && console ) {
1757
- console.log( 'progress: ' + message, image, elem );
1758
- }
1759
- };
1760
 
1761
- ImagesLoaded.prototype.complete = function() {
1762
- var eventName = this.hasAnyBroken ? 'fail' : 'done';
1763
- this.isComplete = true;
1764
- this.emitEvent( eventName, [ this ] );
1765
- this.emitEvent( 'always', [ this ] );
1766
- if ( this.jqDeferred ) {
1767
- var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
1768
- this.jqDeferred[ jqMethod ]( this );
1769
- }
1770
- };
 
1771
 
1772
- // -------------------------- -------------------------- //
 
 
1773
 
1774
- function LoadingImage( img ) {
1775
- this.img = img;
1776
- }
1777
 
1778
- LoadingImage.prototype = Object.create( EvEmitter.prototype );
1779
 
1780
- LoadingImage.prototype.check = function() {
1781
- // If complete is true and browser supports natural sizes,
1782
- // try to check for image status manually.
1783
- var isComplete = this.getIsImageComplete();
1784
- if ( isComplete ) {
1785
- // report based on naturalWidth
1786
- this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
1787
- return;
1788
- }
 
 
 
 
 
 
 
 
 
1789
 
1790
- // If none of the checks above matched, simulate loading on detached element.
1791
- this.proxyImage = new Image();
1792
- this.proxyImage.addEventListener( 'load', this );
1793
- this.proxyImage.addEventListener( 'error', this );
1794
- // bind to image as well for Firefox. #191
1795
- this.img.addEventListener( 'load', this );
1796
- this.img.addEventListener( 'error', this );
1797
- this.proxyImage.src = this.img.src;
1798
- };
1799
 
1800
- LoadingImage.prototype.getIsImageComplete = function() {
1801
- // check for non-zero, non-undefined naturalWidth
1802
- // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671
1803
- return this.img.complete && this.img.naturalWidth;
1804
- };
1805
 
1806
- LoadingImage.prototype.confirm = function( isLoaded, message ) {
1807
- this.isLoaded = isLoaded;
1808
- this.emitEvent( 'progress', [ this, this.img, message ] );
1809
- };
 
 
 
 
1810
 
1811
- // ----- events ----- //
 
 
1812
 
1813
- // trigger specified handler for event type
1814
- LoadingImage.prototype.handleEvent = function( event ) {
1815
- var method = 'on' + event.type;
1816
- if ( this[ method ] ) {
1817
- this[ method ]( event );
1818
- }
1819
- };
1820
 
1821
- LoadingImage.prototype.onload = function() {
1822
- this.confirm( true, 'onload' );
1823
- this.unbindEvents();
1824
- };
1825
 
1826
- LoadingImage.prototype.onerror = function() {
1827
- this.confirm( false, 'onerror' );
1828
- this.unbindEvents();
1829
- };
1830
 
1831
- LoadingImage.prototype.unbindEvents = function() {
1832
- this.proxyImage.removeEventListener( 'load', this );
1833
- this.proxyImage.removeEventListener( 'error', this );
1834
- this.img.removeEventListener( 'load', this );
1835
- this.img.removeEventListener( 'error', this );
1836
- };
1837
 
1838
- // -------------------------- Background -------------------------- //
 
1839
 
1840
- function Background( url, element ) {
1841
- this.url = url;
1842
- this.element = element;
1843
- this.img = new Image();
1844
- }
1845
 
1846
- // inherit LoadingImage prototype
1847
- Background.prototype = Object.create( LoadingImage.prototype );
1848
 
1849
- Background.prototype.check = function() {
1850
- this.img.addEventListener( 'load', this );
1851
- this.img.addEventListener( 'error', this );
1852
- this.img.src = this.url;
1853
- // check if image is already complete
1854
- var isComplete = this.getIsImageComplete();
1855
- if ( isComplete ) {
1856
- this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
1857
- this.unbindEvents();
1858
- }
1859
- };
1860
-
1861
- Background.prototype.unbindEvents = function() {
1862
- this.img.removeEventListener( 'load', this );
1863
- this.img.removeEventListener( 'error', this );
1864
- };
1865
 
1866
- Background.prototype.confirm = function( isLoaded, message ) {
1867
- this.isLoaded = isLoaded;
1868
- this.emitEvent( 'progress', [ this, this.element, message ] );
1869
- };
 
 
 
 
1870
 
1871
- // -------------------------- jQuery -------------------------- //
1872
 
1873
- ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
1874
- jQuery = jQuery || window.jQuery;
1875
- if ( !jQuery ) {
1876
- return;
1877
- }
1878
- // set local variable
1879
- $ = jQuery;
1880
- // $().imagesLoaded()
1881
- $.fn.imagesLoaded = function( options, callback ) {
1882
- var instance = new ImagesLoaded( this, options, callback );
1883
- return instance.jqDeferred.promise( $(this) );
1884
- };
1885
- };
1886
- // try making plugin
1887
- ImagesLoaded.makeJQueryPlugin();
1888
 
1889
- // -------------------------- -------------------------- //
 
 
 
 
 
 
1890
 
1891
- return ImagesLoaded;
 
1892
 
1893
- });
1894
 
 
 
1895
 
1896
- /**
1897
- * author Christopher Blum
1898
- * - based on the idea of Remy Sharp, http://remysharp.com/2009/01/26/element-in-view-event-plugin/
1899
- * - forked from http://github.com/zuk/jquery.inview/
1900
- */
1901
- (function (factory) {
1902
- if (typeof define == 'function' && define.amd) {
1903
- // AMD
1904
- define(['jquery'], factory);
1905
- } else if (typeof exports === 'object') {
1906
- // Node, CommonJS
1907
- module.exports = factory(require('jquery'));
1908
- } else {
1909
- // Browser globals
1910
- factory(jQuery);
1911
- }
1912
- }(function ($) {
1913
 
1914
- var inviewObjects = [], viewportSize, viewportOffset,
1915
- d = document, w = window, documentElement = d.documentElement, timer;
1916
 
1917
- $.event.special.inview = {
1918
- add: function (data) {
1919
- inviewObjects.push({ data: data, $element: $(this), element: this });
1920
- // Use setInterval in order to also make sure this captures elements within
1921
- // "overflow:scroll" elements or elements that appeared in the dom tree due to
1922
- // dom manipulation and reflow
1923
- // old: $(window).scroll(checkInView);
1924
- //
1925
- // By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays
1926
- // intervals while the user scrolls. Therefore the inview event might fire a bit late there
1927
- //
1928
- // Don't waste cycles with an interval until we get at least one element that
1929
- // has bound to the inview event.
1930
- if (!timer && inviewObjects.length) {
1931
- timer = setInterval(checkInView, 250);
1932
- }
1933
- },
1934
 
1935
- remove: function (data) {
1936
- for (var i = 0; i < inviewObjects.length; i++) {
1937
- var inviewObject = inviewObjects[i];
1938
- if (inviewObject.element === this && inviewObject.data.guid === data.guid) {
1939
- inviewObjects.splice(i, 1);
1940
- break;
1941
  }
1942
- }
1943
 
1944
- // Clear interval when we no longer have any elements listening
1945
- if (!inviewObjects.length) {
1946
- clearInterval(timer);
1947
- timer = null;
1948
- }
1949
- }
1950
- };
1951
 
1952
- function getViewportSize() {
1953
- var mode, domObject, size = { height: w.innerHeight, width: w.innerWidth };
1954
 
1955
- // if this is correct then return it. iPad has compat Mode, so will
1956
- // go into check clientHeight/clientWidth (which has the wrong value).
1957
- if (!size.height) {
1958
- mode = d.compatMode;
1959
- if (mode || !$.support.boxModel) { // IE, Gecko
1960
- domObject = mode === 'CSS1Compat' ?
1961
- documentElement : // Standards
1962
- d.body; // Quirks
1963
- size = {
1964
- height: domObject.clientHeight,
1965
- width: domObject.clientWidth
1966
- };
 
 
 
 
 
 
 
 
 
 
 
1967
  }
1968
- }
1969
 
1970
- return size;
1971
- }
 
 
 
1972
 
1973
- function getViewportOffset() {
1974
- return {
1975
- top: w.pageYOffset || documentElement.scrollTop || d.body.scrollTop,
1976
- left: w.pageXOffset || documentElement.scrollLeft || d.body.scrollLeft
1977
- };
1978
- }
1979
 
1980
- function checkInView() {
1981
- if (!inviewObjects.length) {
1982
- return;
1983
- }
1984
 
1985
- var i = 0, $elements = $.map(inviewObjects, function (inviewObject) {
1986
- var selector = inviewObject.data.selector,
1987
- $element = inviewObject.$element;
1988
- return selector ? $element.find(selector) : $element;
1989
- });
1990
 
1991
- viewportSize = viewportSize || getViewportSize();
1992
- viewportOffset = viewportOffset || getViewportOffset();
1993
 
1994
- for (; i < inviewObjects.length; i++) {
1995
- // Ignore elements that are not in the DOM tree
1996
- if (!$.contains(documentElement, $elements[i][0])) {
1997
- continue;
 
 
 
 
1998
  }
1999
 
2000
- var $element = $($elements[i]),
2001
- elementSize = { height: $element[0].offsetHeight, width: $element[0].offsetWidth },
2002
- elementOffset = $element.offset(),
2003
- inView = $element.data('inview');
2004
 
2005
- // Don't ask me why because I haven't figured out yet:
2006
- // viewportOffset and viewportSize are sometimes suddenly null in Firefox 5.
2007
- // Even though it sounds weird:
2008
- // It seems that the execution of this function is interferred by the onresize/onscroll event
2009
- // where viewportOffset and viewportSize are unset
2010
- if (!viewportOffset || !viewportSize) {
2011
- return;
 
 
 
2012
  }
2013
 
2014
- if (elementOffset.top + elementSize.height > viewportOffset.top &&
2015
- elementOffset.top < viewportOffset.top + viewportSize.height &&
2016
- elementOffset.left + elementSize.width > viewportOffset.left &&
2017
- elementOffset.left < viewportOffset.left + viewportSize.width) {
2018
- if (!inView) {
2019
- $element.data('inview', true).trigger('inview', [true]);
2020
- }
2021
- } else if (inView) {
2022
- $element.data('inview', false).trigger('inview', [false]);
2023
  }
2024
- }
2025
- }
 
 
2026
 
2027
- $(w).on("scroll resize scrollstop", function () {
2028
- viewportSize = viewportOffset = null;
2029
- });
2030
 
2031
- // IE < 9 scrolls to focused elements without firing the "scroll" event
2032
- if (!documentElement.addEventListener && documentElement.attachEvent) {
2033
- documentElement.attachEvent("onfocusin", function () {
2034
- viewportOffset = null;
2035
- });
2036
- }
2037
- }));
2038
- /*!
2039
- * Isotope PACKAGED v3.0.6
2040
- *
2041
- * Licensed GPLv3 for open source use
2042
- * or Isotope Commercial License for commercial use
2043
- *
2044
- * https://isotope.metafizzy.co
2045
- * Copyright 2010-2018 Metafizzy
2046
- */
2047
 
2048
- /**
2049
- * Bridget makes jQuery widgets
2050
- * v2.0.1
2051
- * MIT license
2052
- */
 
 
 
 
 
 
 
 
2053
 
2054
- /* jshint browser: true, strict: true, undef: true, unused: true */
2055
 
2056
- ( function( window, factory ) {
2057
- // universal module definition
2058
- /*jshint strict: false */ /* globals define, module, require */
2059
- if ( typeof define == 'function' && define.amd ) {
2060
- // AMD
2061
- define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {
2062
- return factory( window, jQuery );
2063
- });
2064
- } else if ( typeof module == 'object' && module.exports ) {
2065
- // CommonJS
2066
- module.exports = factory(
2067
- window,
2068
- require('jquery')
2069
- );
2070
- } else {
2071
- // browser global
2072
- window.jQueryBridget = factory(
2073
- window,
2074
- window.jQuery
2075
- );
2076
- }
2077
 
2078
- }( window, function factory( window, jQuery ) {
2079
- 'use strict';
 
 
 
2080
 
2081
- // ----- utils ----- //
 
2082
 
2083
- var arraySlice = Array.prototype.slice;
 
2084
 
2085
- // helper function for logging errors
2086
- // $.error breaks jQuery chaining
2087
- var console = window.console;
2088
- var logError = typeof console == 'undefined' ? function() {} :
2089
- function( message ) {
2090
- console.error( message );
2091
- };
2092
 
2093
- // ----- jQueryBridget ----- //
2094
 
2095
- function jQueryBridget( namespace, PluginClass, $ ) {
2096
- $ = $ || jQuery || window.jQuery;
2097
- if ( !$ ) {
2098
- return;
2099
- }
2100
 
2101
- // add option method -> $().plugin('option', {...})
2102
- if ( !PluginClass.prototype.option ) {
2103
- // option setter
2104
- PluginClass.prototype.option = function( opts ) {
2105
- // bail out if not an object
2106
- if ( !$.isPlainObject( opts ) ){
2107
- return;
2108
- }
2109
- this.options = $.extend( true, this.options, opts );
2110
- };
2111
- }
2112
 
2113
- // make jQuery plugin
2114
- $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {
2115
- if ( typeof arg0 == 'string' ) {
2116
- // method call $().plugin( 'methodName', { options } )
2117
- // shift arguments by 1
2118
- var args = arraySlice.call( arguments, 1 );
2119
- return methodCall( this, arg0, args );
2120
- }
2121
- // just $().plugin({ options })
2122
- plainCall( this, arg0 );
2123
- return this;
2124
- };
2125
 
2126
- // $().plugin('methodName')
2127
- function methodCall( $elems, methodName, args ) {
2128
- var returnValue;
2129
- var pluginMethodStr = '$().' + namespace + '("' + methodName + '")';
2130
 
2131
- $elems.each( function( i, elem ) {
2132
- // get instance
2133
- var instance = $.data( elem, namespace );
2134
- if ( !instance ) {
2135
- logError( namespace + ' not initialized. Cannot call methods, i.e. ' +
2136
- pluginMethodStr );
2137
- return;
2138
- }
2139
 
2140
- var method = instance[ methodName ];
2141
- if ( !method || methodName.charAt(0) == '_' ) {
2142
- logError( pluginMethodStr + ' is not a valid method' );
2143
- return;
2144
- }
2145
 
2146
- // apply method, get return value
2147
- var value = method.apply( instance, args );
2148
- // set return value if value is returned, use only first value
2149
- returnValue = returnValue === undefined ? value : returnValue;
2150
- });
2151
 
2152
- return returnValue !== undefined ? returnValue : $elems;
2153
- }
2154
 
2155
- function plainCall( $elems, options ) {
2156
- $elems.each( function( i, elem ) {
2157
- var instance = $.data( elem, namespace );
2158
- if ( instance ) {
2159
- // set options & init
2160
- instance.option( options );
2161
- instance._init();
2162
- } else {
2163
- // initialize new instance
2164
- instance = new PluginClass( elem, options );
2165
- $.data( elem, namespace, instance );
2166
- }
2167
- });
2168
- }
2169
 
2170
- updateJQuery( $ );
 
2171
 
2172
- }
 
2173
 
2174
- // ----- updateJQuery ----- //
2175
 
2176
- // set $.bridget for v1 backwards compatibility
2177
- function updateJQuery( $ ) {
2178
- if ( !$ || ( $ && $.bridget ) ) {
2179
- return;
2180
- }
2181
- $.bridget = jQueryBridget;
2182
- }
2183
 
2184
- updateJQuery( jQuery || window.jQuery );
 
 
 
 
 
 
 
 
 
 
 
 
2185
 
2186
- // ----- ----- //
 
2187
 
2188
- return jQueryBridget;
 
2189
 
2190
- }));
2191
 
2192
- /**
2193
- * EvEmitter v1.1.0
2194
- * Lil' event emitter
2195
- * MIT License
2196
- */
 
 
2197
 
2198
- /* jshint unused: true, undef: true, strict: true */
 
 
 
 
 
2199
 
2200
- ( function( global, factory ) {
2201
- // universal module definition
2202
- /* jshint strict: false */ /* globals define, module, window */
2203
- if ( typeof define == 'function' && define.amd ) {
2204
- // AMD - RequireJS
2205
- define( 'ev-emitter/ev-emitter',factory );
2206
- } else if ( typeof module == 'object' && module.exports ) {
2207
- // CommonJS - Browserify, Webpack
2208
- module.exports = factory();
2209
- } else {
2210
- // Browser globals
2211
- global.EvEmitter = factory();
2212
- }
2213
 
2214
- }( typeof window != 'undefined' ? window : this, function() {
 
 
 
 
 
 
2215
 
 
 
 
 
 
2216
 
 
 
 
 
 
2217
 
2218
- function EvEmitter() {}
 
2219
 
2220
- var proto = EvEmitter.prototype;
2221
 
2222
- proto.on = function( eventName, listener ) {
2223
- if ( !eventName || !listener ) {
2224
- return;
2225
- }
2226
- // set events hash
2227
- var events = this._events = this._events || {};
2228
- // set listeners array
2229
- var listeners = events[ eventName ] = events[ eventName ] || [];
2230
- // only add once
2231
- if ( listeners.indexOf( listener ) == -1 ) {
2232
- listeners.push( listener );
2233
- }
2234
 
2235
- return this;
2236
- };
 
2237
 
2238
- proto.once = function( eventName, listener ) {
2239
- if ( !eventName || !listener ) {
2240
- return;
2241
- }
2242
- // add event
2243
- this.on( eventName, listener );
2244
- // set once flag
2245
- // set onceEvents hash
2246
- var onceEvents = this._onceEvents = this._onceEvents || {};
2247
- // set onceListeners object
2248
- var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
2249
- // set flag
2250
- onceListeners[ listener ] = true;
2251
 
2252
- return this;
2253
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
2254
 
2255
- proto.off = function( eventName, listener ) {
2256
- var listeners = this._events && this._events[ eventName ];
2257
- if ( !listeners || !listeners.length ) {
2258
- return;
2259
- }
2260
- var index = listeners.indexOf( listener );
2261
- if ( index != -1 ) {
2262
- listeners.splice( index, 1 );
2263
- }
2264
 
2265
- return this;
2266
- };
 
2267
 
2268
- proto.emitEvent = function( eventName, args ) {
2269
- var listeners = this._events && this._events[ eventName ];
2270
- if ( !listeners || !listeners.length ) {
2271
- return;
2272
- }
2273
- // copy over to avoid interference if .off() in listener
2274
- listeners = listeners.slice(0);
2275
- args = args || [];
2276
- // once stuff
2277
- var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
2278
 
2279
- for ( var i=0; i < listeners.length; i++ ) {
2280
- var listener = listeners[i]
2281
- var isOnce = onceListeners && onceListeners[ listener ];
2282
- if ( isOnce ) {
2283
- // remove listener
2284
- // remove before trigger to prevent recursion
2285
- this.off( eventName, listener );
2286
- // unset once flag
2287
- delete onceListeners[ listener ];
2288
- }
2289
- // trigger listener
2290
- listener.apply( this, args );
2291
- }
2292
 
2293
- return this;
2294
- };
2295
 
2296
- proto.allOff = function() {
2297
- delete this._events;
2298
- delete this._onceEvents;
2299
- };
 
2300
 
2301
- return EvEmitter;
 
 
 
 
 
2302
 
2303
- }));
2304
 
2305
- /*!
2306
- * getSize v2.0.3
2307
- * measure size of elements
2308
- * MIT license
2309
- */
2310
 
2311
- /* jshint browser: true, strict: true, undef: true, unused: true */
2312
- /* globals console: false */
 
 
2313
 
2314
- ( function( window, factory ) {
2315
- /* jshint strict: false */ /* globals define, module */
2316
- if ( typeof define == 'function' && define.amd ) {
2317
- // AMD
2318
- define( 'get-size/get-size',factory );
2319
- } else if ( typeof module == 'object' && module.exports ) {
2320
- // CommonJS
2321
- module.exports = factory();
2322
- } else {
2323
- // browser global
2324
- window.getSize = factory();
2325
- }
2326
 
2327
- })( window, function factory() {
2328
- 'use strict';
 
 
 
 
2329
 
2330
- // -------------------------- helpers -------------------------- //
 
2331
 
2332
- // get a number from a string, not a percentage
2333
- function getStyleSize( value ) {
2334
- var num = parseFloat( value );
2335
- // not a percent like '100%', and a number
2336
- var isValid = value.indexOf('%') == -1 && !isNaN( num );
2337
- return isValid && num;
2338
- }
2339
 
2340
- function noop() {}
 
 
2341
 
2342
- var logError = typeof console == 'undefined' ? noop :
2343
- function( message ) {
2344
- console.error( message );
2345
- };
2346
 
2347
- // -------------------------- measurements -------------------------- //
2348
 
2349
- var measurements = [
2350
- 'paddingLeft',
2351
- 'paddingRight',
2352
- 'paddingTop',
2353
- 'paddingBottom',
2354
- 'marginLeft',
2355
- 'marginRight',
2356
- 'marginTop',
2357
- 'marginBottom',
2358
- 'borderLeftWidth',
2359
- 'borderRightWidth',
2360
- 'borderTopWidth',
2361
- 'borderBottomWidth'
2362
- ];
2363
 
2364
- var measurementsLength = measurements.length;
 
 
2365
 
2366
- function getZeroSize() {
2367
- var size = {
2368
- width: 0,
2369
- height: 0,
2370
- innerWidth: 0,
2371
- innerHeight: 0,
2372
- outerWidth: 0,
2373
- outerHeight: 0
2374
- };
2375
- for ( var i=0; i < measurementsLength; i++ ) {
2376
- var measurement = measurements[i];
2377
- size[ measurement ] = 0;
2378
- }
2379
- return size;
2380
- }
2381
 
2382
- // -------------------------- getStyle -------------------------- //
 
 
2383
 
2384
- /**
2385
- * getStyle, get style of element, check for Firefox bug
2386
- * https://bugzilla.mozilla.org/show_bug.cgi?id=548397
2387
- */
2388
- function getStyle( elem ) {
2389
- var style = getComputedStyle( elem );
2390
- if ( !style ) {
2391
- logError( 'Style returned ' + style +
2392
- '. Are you running this code in a hidden iframe on Firefox? ' +
2393
- 'See https://bit.ly/getsizebug1' );
2394
- }
2395
- return style;
2396
- }
2397
 
2398
- // -------------------------- setup -------------------------- //
 
 
 
 
 
 
 
 
 
 
2399
 
2400
- var isSetup = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2401
 
2402
- var isBoxSizeOuter;
 
 
 
 
 
 
2403
 
2404
- /**
2405
- * setup
2406
- * check isBoxSizerOuter
2407
- * do on first getSize() rather than on page load for Firefox bug
2408
- */
2409
- function setup() {
2410
- // setup once
2411
- if ( isSetup ) {
2412
- return;
2413
- }
2414
- isSetup = true;
 
 
 
 
 
2415
 
2416
- // -------------------------- box sizing -------------------------- //
 
 
 
 
2417
 
2418
- /**
2419
- * Chrome & Safari measure the outer-width on style.width on border-box elems
2420
- * IE11 & Firefox<29 measures the inner-width
2421
- */
2422
- var div = document.createElement('div');
2423
- div.style.width = '200px';
2424
- div.style.padding = '1px 2px 3px 4px';
2425
- div.style.borderStyle = 'solid';
2426
- div.style.borderWidth = '1px 2px 3px 4px';
2427
- div.style.boxSizing = 'border-box';
 
2428
 
2429
- var body = document.body || document.documentElement;
2430
- body.appendChild( div );
2431
- var style = getStyle( div );
2432
- // round value for browser zoom. desandro/masonry#928
2433
- isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;
2434
- getSize.isBoxSizeOuter = isBoxSizeOuter;
2435
 
2436
- body.removeChild( div );
2437
- }
2438
 
2439
- // -------------------------- getSize -------------------------- //
2440
 
2441
- function getSize( elem ) {
2442
- setup();
2443
 
2444
- // use querySeletor if elem is string
2445
- if ( typeof elem == 'string' ) {
2446
- elem = document.querySelector( elem );
2447
- }
 
 
 
2448
 
2449
- // do not proceed on non-objects
2450
- if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
2451
- return;
2452
- }
2453
 
2454
- var style = getStyle( elem );
 
 
 
 
2455
 
2456
- // if hidden, everything is 0
2457
- if ( style.display == 'none' ) {
2458
- return getZeroSize();
2459
- }
2460
 
2461
- var size = {};
2462
- size.width = elem.offsetWidth;
2463
- size.height = elem.offsetHeight;
2464
 
2465
- var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
 
 
 
 
 
 
2466
 
2467
- // get all measurements
2468
- for ( var i=0; i < measurementsLength; i++ ) {
2469
- var measurement = measurements[i];
2470
- var value = style[ measurement ];
2471
- var num = parseFloat( value );
2472
- // any 'auto', 'medium' value will be 0
2473
- size[ measurement ] = !isNaN( num ) ? num : 0;
2474
- }
2475
 
2476
- var paddingWidth = size.paddingLeft + size.paddingRight;
2477
- var paddingHeight = size.paddingTop + size.paddingBottom;
2478
- var marginWidth = size.marginLeft + size.marginRight;
2479
- var marginHeight = size.marginTop + size.marginBottom;
2480
- var borderWidth = size.borderLeftWidth + size.borderRightWidth;
2481
- var borderHeight = size.borderTopWidth + size.borderBottomWidth;
2482
 
2483
- var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
2484
 
2485
- // overwrite width and height if we can get it from style
2486
- var styleWidth = getStyleSize( style.width );
2487
- if ( styleWidth !== false ) {
2488
- size.width = styleWidth +
2489
- // add padding and border unless it's already including it
2490
- ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
2491
- }
2492
 
2493
- var styleHeight = getStyleSize( style.height );
2494
- if ( styleHeight !== false ) {
2495
- size.height = styleHeight +
2496
- // add padding and border unless it's already including it
2497
- ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
2498
- }
2499
 
2500
- size.innerWidth = size.width - ( paddingWidth + borderWidth );
2501
- size.innerHeight = size.height - ( paddingHeight + borderHeight );
2502
 
2503
- size.outerWidth = size.width + marginWidth;
2504
- size.outerHeight = size.height + marginHeight;
2505
 
2506
- return size;
2507
- }
2508
 
2509
- return getSize;
2510
 
2511
- });
2512
 
2513
- /**
2514
- * matchesSelector v2.0.2
2515
- * matchesSelector( element, '.selector' )
2516
- * MIT license
2517
- */
2518
 
2519
- /*jshint browser: true, strict: true, undef: true, unused: true */
2520
 
2521
- ( function( window, factory ) {
2522
- /*global define: false, module: false */
2523
- 'use strict';
2524
- // universal module definition
2525
- if ( typeof define == 'function' && define.amd ) {
2526
- // AMD
2527
- define( 'desandro-matches-selector/matches-selector',factory );
2528
- } else if ( typeof module == 'object' && module.exports ) {
2529
- // CommonJS
2530
- module.exports = factory();
2531
- } else {
2532
- // browser global
2533
- window.matchesSelector = factory();
2534
- }
2535
 
2536
- }( window, function factory() {
2537
- 'use strict';
2538
 
2539
- var matchesMethod = ( function() {
2540
- var ElemProto = window.Element.prototype;
2541
- // check for the standard method name first
2542
- if ( ElemProto.matches ) {
2543
- return 'matches';
2544
- }
2545
- // check un-prefixed
2546
- if ( ElemProto.matchesSelector ) {
2547
- return 'matchesSelector';
2548
- }
2549
- // check vendor prefixes
2550
- var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
2551
 
2552
- for ( var i=0; i < prefixes.length; i++ ) {
2553
- var prefix = prefixes[i];
2554
- var method = prefix + 'MatchesSelector';
2555
- if ( ElemProto[ method ] ) {
2556
- return method;
2557
- }
2558
- }
2559
- })();
2560
 
2561
- return function matchesSelector( elem, selector ) {
2562
- return elem[ matchesMethod ]( selector );
2563
- };
2564
 
2565
- }));
2566
 
2567
- /**
2568
- * Fizzy UI utils v2.0.7
2569
- * MIT license
2570
- */
2571
 
2572
- /*jshint browser: true, undef: true, unused: true, strict: true */
2573
 
2574
- ( function( window, factory ) {
2575
- // universal module definition
2576
- /*jshint strict: false */ /*globals define, module, require */
2577
 
2578
- if ( typeof define == 'function' && define.amd ) {
2579
- // AMD
2580
- define( 'fizzy-ui-utils/utils',[
2581
- 'desandro-matches-selector/matches-selector'
2582
- ], function( matchesSelector ) {
2583
- return factory( window, matchesSelector );
2584
- });
2585
- } else if ( typeof module == 'object' && module.exports ) {
2586
- // CommonJS
2587
- module.exports = factory(
2588
- window,
2589
- require('desandro-matches-selector')
2590
- );
2591
- } else {
2592
- // browser global
2593
- window.fizzyUIUtils = factory(
2594
- window,
2595
- window.matchesSelector
2596
- );
2597
- }
2598
 
2599
- }( window, function factory( window, matchesSelector ) {
2600
 
 
2601
 
 
 
2602
 
2603
- var utils = {};
2604
 
2605
- // ----- extend ----- //
2606
 
2607
- // extends objects
2608
- utils.extend = function( a, b ) {
2609
- for ( var prop in b ) {
2610
- a[ prop ] = b[ prop ];
2611
- }
2612
- return a;
2613
- };
2614
 
2615
- // ----- modulo ----- //
2616
 
2617
- utils.modulo = function( num, div ) {
2618
- return ( ( num % div ) + div ) % div;
2619
- };
2620
 
2621
- // ----- makeArray ----- //
 
 
 
2622
 
2623
- var arraySlice = Array.prototype.slice;
 
 
 
 
 
 
 
 
 
 
 
 
 
2624
 
2625
- // turn element or nodeList into an array
2626
- utils.makeArray = function( obj ) {
2627
- if ( Array.isArray( obj ) ) {
2628
- // use object if already an array
2629
- return obj;
2630
- }
2631
- // return empty array if undefined or null. #6
2632
- if ( obj === null || obj === undefined ) {
2633
- return [];
2634
- }
2635
 
2636
- var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
2637
- if ( isArrayLike ) {
2638
- // convert nodeList to array
2639
- return arraySlice.call( obj );
2640
- }
 
 
 
 
 
2641
 
2642
- // array of single index
2643
- return [ obj ];
2644
- };
2645
 
2646
- // ----- removeFrom ----- //
 
 
2647
 
2648
- utils.removeFrom = function( ary, obj ) {
2649
- var index = ary.indexOf( obj );
2650
- if ( index != -1 ) {
2651
- ary.splice( index, 1 );
2652
- }
2653
- };
2654
 
2655
- // ----- getParent ----- //
2656
 
2657
- utils.getParent = function( elem, selector ) {
2658
- while ( elem.parentNode && elem != document.body ) {
2659
- elem = elem.parentNode;
2660
- if ( matchesSelector( elem, selector ) ) {
2661
- return elem;
2662
- }
2663
- }
2664
- };
 
 
2665
 
2666
- // ----- getQueryElement ----- //
 
 
 
 
 
 
2667
 
2668
- // use element as selector string
2669
- utils.getQueryElement = function( elem ) {
2670
- if ( typeof elem == 'string' ) {
2671
- return document.querySelector( elem );
2672
- }
2673
- return elem;
2674
- };
2675
 
2676
- // ----- handleEvent ----- //
 
 
 
2677
 
2678
- // enable .ontype to trigger from .addEventListener( elem, 'type' )
2679
- utils.handleEvent = function( event ) {
2680
- var method = 'on' + event.type;
2681
- if ( this[ method ] ) {
2682
- this[ method ]( event );
2683
- }
2684
- };
2685
 
2686
- // ----- filterFindElements ----- //
2687
 
2688
- utils.filterFindElements = function( elems, selector ) {
2689
- // make array of elems
2690
- elems = utils.makeArray( elems );
2691
- var ffElems = [];
2692
 
2693
- elems.forEach( function( elem ) {
2694
- // check that elem is an actual element
2695
- if ( !( elem instanceof HTMLElement ) ) {
2696
- return;
2697
- }
2698
- // add elem if no selector
2699
- if ( !selector ) {
2700
- ffElems.push( elem );
2701
- return;
2702
- }
2703
- // filter & find items if we have a selector
2704
- // filter
2705
- if ( matchesSelector( elem, selector ) ) {
2706
- ffElems.push( elem );
2707
- }
2708
- // find children
2709
- var childElems = elem.querySelectorAll( selector );
2710
- // concat childElems to filterFound array
2711
- for ( var i=0; i < childElems.length; i++ ) {
2712
- ffElems.push( childElems[i] );
2713
- }
2714
- });
2715
 
2716
- return ffElems;
2717
- };
 
 
 
 
 
 
 
 
 
2718
 
2719
- // ----- debounceMethod ----- //
 
 
 
 
2720
 
2721
- utils.debounceMethod = function( _class, methodName, threshold ) {
2722
- threshold = threshold || 100;
2723
- // original method
2724
- var method = _class.prototype[ methodName ];
2725
- var timeoutName = methodName + 'Timeout';
2726
 
2727
- _class.prototype[ methodName ] = function() {
2728
- var timeout = this[ timeoutName ];
2729
- clearTimeout( timeout );
 
 
 
2730
 
2731
- var args = arguments;
2732
- var _this = this;
2733
- this[ timeoutName ] = setTimeout( function() {
2734
- method.apply( _this, args );
2735
- delete _this[ timeoutName ];
2736
- }, threshold );
2737
- };
2738
- };
2739
 
2740
- // ----- docReady ----- //
 
 
 
 
 
 
 
 
 
 
 
 
 
2741
 
2742
- utils.docReady = function( callback ) {
2743
- var readyState = document.readyState;
2744
- if ( readyState == 'complete' || readyState == 'interactive' ) {
2745
- // do async to allow for other scripts to run. metafizzy/flickity#441
2746
- setTimeout( callback );
2747
- } else {
2748
- document.addEventListener( 'DOMContentLoaded', callback );
2749
- }
2750
- };
2751
 
2752
- // ----- htmlInit ----- //
 
 
 
 
2753
 
2754
- // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
2755
- utils.toDashed = function( str ) {
2756
- return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
2757
- return $1 + '-' + $2;
2758
- }).toLowerCase();
2759
- };
2760
 
2761
- var console = window.console;
2762
- /**
2763
- * allow user to initialize classes via [data-namespace] or .js-namespace class
2764
- * htmlInit( Widget, 'widgetName' )
2765
- * options are parsed from data-namespace-options
2766
- */
2767
- utils.htmlInit = function( WidgetClass, namespace ) {
2768
- utils.docReady( function() {
2769
- var dashedNamespace = utils.toDashed( namespace );
2770
- var dataAttr = 'data-' + dashedNamespace;
2771
- var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
2772
- var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
2773
- var elems = utils.makeArray( dataAttrElems )
2774
- .concat( utils.makeArray( jsDashElems ) );
2775
- var dataOptionsAttr = dataAttr + '-options';
2776
- var jQuery = window.jQuery;
2777
 
2778
- elems.forEach( function( elem ) {
2779
- var attr = elem.getAttribute( dataAttr ) ||
2780
- elem.getAttribute( dataOptionsAttr );
2781
- var options;
2782
- try {
2783
- options = attr && JSON.parse( attr );
2784
- } catch ( error ) {
2785
- // log error, do not initialize
2786
- if ( console ) {
2787
- console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
2788
- ': ' + error );
2789
- }
2790
- return;
2791
- }
2792
- // initialize
2793
- var instance = new WidgetClass( elem, options );
2794
- // make available via $().data('namespace')
2795
- if ( jQuery ) {
2796
- jQuery.data( elem, namespace, instance );
2797
- }
2798
- });
2799
 
2800
- });
2801
- };
2802
 
2803
- // ----- ----- //
 
 
 
 
 
 
2804
 
2805
- return utils;
2806
 
2807
- }));
2808
 
2809
- /**
2810
- * Outlayer Item
2811
- */
2812
 
2813
- ( function( window, factory ) {
2814
- // universal module definition
2815
- /* jshint strict: false */ /* globals define, module, require */
2816
- if ( typeof define == 'function' && define.amd ) {
2817
- // AMD - RequireJS
2818
- define( 'outlayer/item',[
2819
- 'ev-emitter/ev-emitter',
2820
- 'get-size/get-size'
2821
- ],
2822
- factory
2823
- );
2824
- } else if ( typeof module == 'object' && module.exports ) {
2825
- // CommonJS - Browserify, Webpack
2826
- module.exports = factory(
2827
- require('ev-emitter'),
2828
- require('get-size')
2829
- );
2830
- } else {
2831
- // browser global
2832
- window.Outlayer = {};
2833
- window.Outlayer.Item = factory(
2834
- window.EvEmitter,
2835
- window.getSize
2836
- );
2837
- }
2838
 
2839
- }( window, function factory( EvEmitter, getSize ) {
2840
- 'use strict';
2841
 
2842
- // ----- helpers ----- //
 
 
2843
 
2844
- function isEmptyObj( obj ) {
2845
- for ( var prop in obj ) {
2846
- return false;
2847
- }
2848
- prop = null;
2849
- return true;
2850
- }
2851
 
2852
- // -------------------------- CSS3 support -------------------------- //
 
 
 
 
 
 
 
2853
 
 
2854
 
2855
- var docElemStyle = document.documentElement.style;
 
 
 
2856
 
2857
- var transitionProperty = typeof docElemStyle.transition == 'string' ?
2858
- 'transition' : 'WebkitTransition';
2859
- var transformProperty = typeof docElemStyle.transform == 'string' ?
2860
- 'transform' : 'WebkitTransform';
2861
 
2862
- var transitionEndEvent = {
2863
- WebkitTransition: 'webkitTransitionEnd',
2864
- transition: 'transitionend'
2865
- }[ transitionProperty ];
 
2866
 
2867
- // cache all vendor properties that could have vendor prefix
2868
- var vendorProperties = {
2869
- transform: transformProperty,
2870
- transition: transitionProperty,
2871
- transitionDuration: transitionProperty + 'Duration',
2872
- transitionProperty: transitionProperty + 'Property',
2873
- transitionDelay: transitionProperty + 'Delay'
2874
- };
2875
 
2876
- // -------------------------- Item -------------------------- //
 
 
 
 
 
 
 
 
2877
 
2878
- function Item( element, layout ) {
2879
- if ( !element ) {
2880
- return;
2881
- }
2882
 
2883
- this.element = element;
2884
- // parent layout class, i.e. Masonry, Isotope, or Packery
2885
- this.layout = layout;
2886
- this.position = {
2887
- x: 0,
2888
- y: 0
2889
- };
 
 
 
 
 
 
 
 
 
 
 
2890
 
2891
- this._create();
2892
- }
 
 
2893
 
2894
- // inherit EvEmitter
2895
- var proto = Item.prototype = Object.create( EvEmitter.prototype );
2896
- proto.constructor = Item;
2897
 
2898
- proto._create = function() {
2899
- // transition objects
2900
- this._transn = {
2901
- ingProperties: {},
2902
- clean: {},
2903
- onEnd: {}
2904
- };
2905
 
2906
- this.css({
2907
- position: 'absolute'
2908
- });
2909
- };
 
 
2910
 
2911
- // trigger specified handler for event type
2912
- proto.handleEvent = function( event ) {
2913
- var method = 'on' + event.type;
2914
- if ( this[ method ] ) {
2915
- this[ method ]( event );
2916
- }
2917
- };
 
2918
 
2919
- proto.getSize = function() {
2920
- this.size = getSize( this.element );
2921
- };
 
 
 
 
 
 
 
 
2922
 
2923
- /**
2924
- * apply CSS styles to element
2925
- * @param {Object} style
2926
- */
2927
- proto.css = function( style ) {
2928
- var elemStyle = this.element.style;
2929
 
2930
- for ( var prop in style ) {
2931
- // use vendor property if available
2932
- var supportedProp = vendorProperties[ prop ] || prop;
2933
- elemStyle[ supportedProp ] = style[ prop ];
2934
- }
2935
- };
2936
 
2937
- // measure position, and sets it
2938
- proto.getPosition = function() {
2939
- var style = getComputedStyle( this.element );
2940
- var isOriginLeft = this.layout._getOption('originLeft');
2941
- var isOriginTop = this.layout._getOption('originTop');
2942
- var xValue = style[ isOriginLeft ? 'left' : 'right' ];
2943
- var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
2944
- var x = parseFloat( xValue );
2945
- var y = parseFloat( yValue );
2946
- // convert percent to pixels
2947
- var layoutSize = this.layout.size;
2948
- if ( xValue.indexOf('%') != -1 ) {
2949
- x = ( x / 100 ) * layoutSize.width;
2950
- }
2951
- if ( yValue.indexOf('%') != -1 ) {
2952
- y = ( y / 100 ) * layoutSize.height;
2953
- }
2954
- // clean up 'auto' or other non-integer values
2955
- x = isNaN( x ) ? 0 : x;
2956
- y = isNaN( y ) ? 0 : y;
2957
- // remove padding from measurement
2958
- x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
2959
- y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
2960
 
2961
- this.position.x = x;
2962
- this.position.y = y;
2963
- };
2964
 
2965
- // set settled position, apply padding
2966
- proto.layoutPosition = function() {
2967
- var layoutSize = this.layout.size;
2968
- var style = {};
2969
- var isOriginLeft = this.layout._getOption('originLeft');
2970
- var isOriginTop = this.layout._getOption('originTop');
2971
 
2972
- // x
2973
- var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
2974
- var xProperty = isOriginLeft ? 'left' : 'right';
2975
- var xResetProperty = isOriginLeft ? 'right' : 'left';
2976
 
2977
- var x = this.position.x + layoutSize[ xPadding ];
2978
- // set in percentage or pixels
2979
- style[ xProperty ] = this.getXValue( x );
2980
- // reset other property
2981
- style[ xResetProperty ] = '';
2982
 
2983
- // y
2984
- var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
2985
- var yProperty = isOriginTop ? 'top' : 'bottom';
2986
- var yResetProperty = isOriginTop ? 'bottom' : 'top';
2987
 
2988
- var y = this.position.y + layoutSize[ yPadding ];
2989
- // set in percentage or pixels
2990
- style[ yProperty ] = this.getYValue( y );
2991
- // reset other property
2992
- style[ yResetProperty ] = '';
2993
 
2994
- this.css( style );
2995
- this.emitEvent( 'layout', [ this ] );
2996
- };
 
 
 
 
 
 
2997
 
2998
- proto.getXValue = function( x ) {
2999
- var isHorizontal = this.layout._getOption('horizontal');
3000
- return this.layout.options.percentPosition && !isHorizontal ?
3001
- ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
3002
- };
3003
 
3004
- proto.getYValue = function( y ) {
3005
- var isHorizontal = this.layout._getOption('horizontal');
3006
- return this.layout.options.percentPosition && isHorizontal ?
3007
- ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
3008
- };
 
 
 
 
 
3009
 
3010
- proto._transitionTo = function( x, y ) {
3011
- this.getPosition();
3012
- // get current x & y from top/left
3013
- var curX = this.position.x;
3014
- var curY = this.position.y;
3015
 
3016
- var didNotMove = x == this.position.x && y == this.position.y;
3017
 
3018
- // save end position
3019
- this.setPosition( x, y );
3020
 
3021
- // if did not move and not transitioning, just go to layout
3022
- if ( didNotMove && !this.isTransitioning ) {
3023
- this.layoutPosition();
3024
- return;
3025
- }
3026
 
3027
- var transX = x - curX;
3028
- var transY = y - curY;
3029
- var transitionStyle = {};
3030
- transitionStyle.transform = this.getTranslate( transX, transY );
3031
 
3032
- this.transition({
3033
- to: transitionStyle,
3034
- onTransitionEnd: {
3035
- transform: this.layoutPosition
3036
- },
3037
- isCleaning: true
3038
- });
3039
- };
3040
 
3041
- proto.getTranslate = function( x, y ) {
3042
- // flip cooridinates if origin on right or bottom
3043
- var isOriginLeft = this.layout._getOption('originLeft');
3044
- var isOriginTop = this.layout._getOption('originTop');
3045
- x = isOriginLeft ? x : -x;
3046
- y = isOriginTop ? y : -y;
3047
- return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
3048
- };
3049
 
3050
- // non transition + transform support
3051
- proto.goTo = function( x, y ) {
3052
- this.setPosition( x, y );
3053
- this.layoutPosition();
3054
- };
3055
 
3056
- proto.moveTo = proto._transitionTo;
 
 
 
 
 
 
 
 
 
 
 
3057
 
3058
- proto.setPosition = function( x, y ) {
3059
- this.position.x = parseFloat( x );
3060
- this.position.y = parseFloat( y );
3061
- };
 
 
 
 
3062
 
3063
- // ----- transition ----- //
 
 
 
 
 
3064
 
3065
- /**
3066
- * @param {Object} style - CSS
3067
- * @param {Function} onTransitionEnd
3068
- */
3069
 
3070
- // non transition, just trigger callback
3071
- proto._nonTransition = function( args ) {
3072
- this.css( args.to );
3073
- if ( args.isCleaning ) {
3074
- this._removeStyles( args.to );
3075
- }
3076
- for ( var prop in args.onTransitionEnd ) {
3077
- args.onTransitionEnd[ prop ].call( this );
3078
- }
3079
- };
3080
 
3081
- /**
3082
- * proper transition
3083
- * @param {Object} args - arguments
3084
- * @param {Object} to - style to transition to
3085
- * @param {Object} from - style to start transition from
3086
- * @param {Boolean} isCleaning - removes transition styles after transition
3087
- * @param {Function} onTransitionEnd - callback
3088
- */
3089
- proto.transition = function( args ) {
3090
- // redirect to nonTransition if no transition duration
3091
- if ( !parseFloat( this.layout.options.transitionDuration ) ) {
3092
- this._nonTransition( args );
3093
- return;
3094
- }
3095
 
3096
- var _transition = this._transn;
3097
- // keep track of onTransitionEnd callback by css property
3098
- for ( var prop in args.onTransitionEnd ) {
3099
- _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
3100
- }
3101
- // keep track of properties that are transitioning
3102
- for ( prop in args.to ) {
3103
- _transition.ingProperties[ prop ] = true;
3104
- // keep track of properties to clean up when transition is done
3105
- if ( args.isCleaning ) {
3106
- _transition.clean[ prop ] = true;
3107
- }
3108
- }
3109
 
3110
- // set from styles
3111
- if ( args.from ) {
3112
- this.css( args.from );
3113
- // force redraw. http://blog.alexmaccaw.com/css-transitions
3114
- var h = this.element.offsetHeight;
3115
- // hack for JSHint to hush about unused var
3116
- h = null;
3117
- }
3118
- // enable transition
3119
- this.enableTransition( args.to );
3120
- // set styles that are transitioning
3121
- this.css( args.to );
3122
 
3123
- this.isTransitioning = true;
3124
 
3125
- };
 
3126
 
3127
- // dash before all cap letters, including first for
3128
- // WebkitTransform => -webkit-transform
3129
- function toDashedAll( str ) {
3130
- return str.replace( /([A-Z])/g, function( $1 ) {
3131
- return '-' + $1.toLowerCase();
3132
- });
3133
- }
 
 
3134
 
3135
- var transitionProps = 'opacity,' + toDashedAll( transformProperty );
 
3136
 
3137
- proto.enableTransition = function(/* style */) {
3138
- // HACK changing transitionProperty during a transition
3139
- // will cause transition to jump
3140
- if ( this.isTransitioning ) {
3141
- return;
3142
- }
3143
 
3144
- // make `transition: foo, bar, baz` from style object
3145
- // HACK un-comment this when enableTransition can work
3146
- // while a transition is happening
3147
- // var transitionValues = [];
3148
- // for ( var prop in style ) {
3149
- // // dash-ify camelCased properties like WebkitTransition
3150
- // prop = vendorProperties[ prop ] || prop;
3151
- // transitionValues.push( toDashedAll( prop ) );
3152
- // }
3153
- // munge number to millisecond, to match stagger
3154
- var duration = this.layout.options.transitionDuration;
3155
- duration = typeof duration == 'number' ? duration + 'ms' : duration;
3156
- // enable transition styles
3157
- this.css({
3158
- transitionProperty: transitionProps,
3159
- transitionDuration: duration,
3160
- transitionDelay: this.staggerDelay || 0
3161
- });
3162
- // listen for transition end event
3163
- this.element.addEventListener( transitionEndEvent, this, false );
3164
- };
3165
 
3166
- // ----- events ----- //
3167
 
3168
- proto.onwebkitTransitionEnd = function( event ) {
3169
- this.ontransitionend( event );
3170
- };
 
 
 
 
 
3171
 
3172
- proto.onotransitionend = function( event ) {
3173
- this.ontransitionend( event );
3174
- };
3175
 
3176
- // properties that I munge to make my life easier
3177
- var dashedVendorProperties = {
3178
- '-webkit-transform': 'transform'
3179
- };
 
 
 
 
3180
 
3181
- proto.ontransitionend = function( event ) {
3182
- // disregard bubbled events from children
3183
- if ( event.target !== this.element ) {
3184
- return;
3185
- }
3186
- var _transition = this._transn;
3187
- // get property name of transitioned property, convert to prefix-free
3188
- var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
3189
 
3190
- // remove property that has completed transitioning
3191
- delete _transition.ingProperties[ propertyName ];
3192
- // check if any properties are still transitioning
3193
- if ( isEmptyObj( _transition.ingProperties ) ) {
3194
- // all properties have completed transitioning
3195
- this.disableTransition();
3196
- }
3197
- // clean style
3198
- if ( propertyName in _transition.clean ) {
3199
- // clean up style
3200
- this.element.style[ event.propertyName ] = '';
3201
- delete _transition.clean[ propertyName ];
3202
- }
3203
- // trigger onTransitionEnd callback
3204
- if ( propertyName in _transition.onEnd ) {
3205
- var onTransitionEnd = _transition.onEnd[ propertyName ];
3206
- onTransitionEnd.call( this );
3207
- delete _transition.onEnd[ propertyName ];
3208
- }
3209
 
3210
- this.emitEvent( 'transitionEnd', [ this ] );
3211
- };
 
3212
 
3213
- proto.disableTransition = function() {
3214
- this.removeTransitionStyles();
3215
- this.element.removeEventListener( transitionEndEvent, this, false );
3216
- this.isTransitioning = false;
3217
- };
 
 
 
 
 
 
 
3218
 
3219
- /**
3220
- * removes style property from element
3221
- * @param {Object} style
3222
- **/
3223
- proto._removeStyles = function( style ) {
3224
- // clean up transition styles
3225
- var cleanStyle = {};
3226
- for ( var prop in style ) {
3227
- cleanStyle[ prop ] = '';
3228
- }
3229
- this.css( cleanStyle );
3230
- };
3231
 
3232
- var cleanTransitionStyle = {
3233
- transitionProperty: '',
3234
- transitionDuration: '',
3235
- transitionDelay: ''
3236
- };
 
 
 
3237
 
3238
- proto.removeTransitionStyles = function() {
3239
- // remove transition
3240
- this.css( cleanTransitionStyle );
3241
- };
3242
 
3243
- // ----- stagger ----- //
 
3244
 
3245
- proto.stagger = function( delay ) {
3246
- delay = isNaN( delay ) ? 0 : delay;
3247
- this.staggerDelay = delay + 'ms';
3248
- };
3249
 
3250
- // ----- show/hide/remove ----- //
3251
 
3252
- // remove element from DOM
3253
- proto.removeElem = function() {
3254
- this.element.parentNode.removeChild( this.element );
3255
- // remove display: none
3256
- this.css({ display: '' });
3257
- this.emitEvent( 'remove', [ this ] );
3258
- };
3259
 
3260
- proto.remove = function() {
3261
- // just remove element if no transition support or no transition
3262
- if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
3263
- this.removeElem();
3264
- return;
3265
- }
3266
 
3267
- // start transition
3268
- this.once( 'transitionEnd', function() {
3269
- this.removeElem();
3270
- });
3271
- this.hide();
3272
- };
3273
 
3274
- proto.reveal = function() {
3275
- delete this.isHidden;
3276
- // remove display: none
3277
- this.css({ display: '' });
3278
 
3279
- var options = this.layout.options;
 
 
3280
 
3281
- var onTransitionEnd = {};
3282
- var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
3283
- onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
3284
 
3285
- this.transition({
3286
- from: options.hiddenStyle,
3287
- to: options.visibleStyle,
3288
- isCleaning: true,
3289
- onTransitionEnd: onTransitionEnd
3290
- });
3291
- };
3292
 
3293
- proto.onRevealTransitionEnd = function() {
3294
- // check if still visible
3295
- // during transition, item may have been hidden
3296
- if ( !this.isHidden ) {
3297
- this.emitEvent('reveal');
3298
- }
3299
- };
3300
 
3301
- /**
3302
- * get style property use for hide/reveal transition end
3303
- * @param {String} styleProperty - hiddenStyle/visibleStyle
3304
- * @returns {String}
3305
- */
3306
- proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
3307
- var optionStyle = this.layout.options[ styleProperty ];
3308
- // use opacity
3309
- if ( optionStyle.opacity ) {
3310
- return 'opacity';
3311
- }
3312
- // get first property
3313
- for ( var prop in optionStyle ) {
3314
- return prop;
3315
- }
3316
- };
3317
 
3318
- proto.hide = function() {
3319
- // set flag
3320
- this.isHidden = true;
3321
- // remove display: none
3322
- this.css({ display: '' });
3323
 
3324
- var options = this.layout.options;
 
 
 
 
3325
 
3326
- var onTransitionEnd = {};
3327
- var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
3328
- onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
3329
 
3330
- this.transition({
3331
- from: options.visibleStyle,
3332
- to: options.hiddenStyle,
3333
- // keep hidden stuff hidden
3334
- isCleaning: true,
3335
- onTransitionEnd: onTransitionEnd
3336
- });
3337
- };
3338
 
3339
- proto.onHideTransitionEnd = function() {
3340
- // check if still hidden
3341
- // during transition, item may have been un-hidden
3342
- if ( this.isHidden ) {
3343
- this.css({ display: 'none' });
3344
- this.emitEvent('hide');
3345
- }
3346
- };
3347
 
3348
- proto.destroy = function() {
3349
- this.css({
3350
- position: '',
3351
- left: '',
3352
- right: '',
3353
- top: '',
3354
- bottom: '',
3355
- transition: '',
3356
- transform: ''
3357
- });
3358
- };
3359
 
3360
- return Item;
 
 
 
3361
 
3362
- }));
3363
 
3364
- /*!
3365
- * Outlayer v2.1.1
3366
- * the brains and guts of a layout library
3367
- * MIT license
3368
- */
 
 
 
 
 
3369
 
3370
- ( function( window, factory ) {
3371
- 'use strict';
3372
- // universal module definition
3373
- /* jshint strict: false */ /* globals define, module, require */
3374
- if ( typeof define == 'function' && define.amd ) {
3375
- // AMD - RequireJS
3376
- define( 'outlayer/outlayer',[
3377
- 'ev-emitter/ev-emitter',
3378
- 'get-size/get-size',
3379
- 'fizzy-ui-utils/utils',
3380
- './item'
3381
- ],
3382
- function( EvEmitter, getSize, utils, Item ) {
3383
- return factory( window, EvEmitter, getSize, utils, Item);
3384
- }
3385
- );
3386
- } else if ( typeof module == 'object' && module.exports ) {
3387
- // CommonJS - Browserify, Webpack
3388
- module.exports = factory(
3389
- window,
3390
- require('ev-emitter'),
3391
- require('get-size'),
3392
- require('fizzy-ui-utils'),
3393
- require('./item')
3394
- );
3395
- } else {
3396
- // browser global
3397
- window.Outlayer = factory(
3398
- window,
3399
- window.EvEmitter,
3400
- window.getSize,
3401
- window.fizzyUIUtils,
3402
- window.Outlayer.Item
3403
- );
3404
- }
3405
 
3406
- }( window, function factory( window, EvEmitter, getSize, utils, Item ) {
3407
- 'use strict';
 
 
 
 
 
3408
 
3409
- // ----- vars ----- //
 
 
 
 
 
 
 
3410
 
3411
- var console = window.console;
3412
- var jQuery = window.jQuery;
3413
- var noop = function() {};
 
3414
 
3415
- // -------------------------- Outlayer -------------------------- //
3416
 
3417
- // globally unique identifiers
3418
- var GUID = 0;
3419
- // internal store of all Outlayer intances
3420
- var instances = {};
 
 
 
 
 
 
3421
 
 
 
 
 
 
 
 
 
 
3422
 
3423
- /**
3424
- * @param {Element, String} element
3425
- * @param {Object} options
3426
- * @constructor
3427
- */
3428
- function Outlayer( element, options ) {
3429
- var queryElement = utils.getQueryElement( element );
3430
- if ( !queryElement ) {
3431
- if ( console ) {
3432
- console.error( 'Bad element for ' + this.constructor.namespace +
3433
- ': ' + ( queryElement || element ) );
3434
- }
3435
- return;
3436
- }
3437
- this.element = queryElement;
3438
- // add jQuery
3439
- if ( jQuery ) {
3440
- this.$element = jQuery( this.element );
3441
- }
3442
 
3443
- // options
3444
- this.options = utils.extend( {}, this.constructor.defaults );
3445
- this.option( options );
3446
 
3447
- // add id for Outlayer.getFromElement
3448
- var id = ++GUID;
3449
- this.element.outlayerGUID = id; // expando
3450
- instances[ id ] = this; // associate via id
3451
 
3452
- // kick it off
3453
- this._create();
3454
 
3455
- var isInitLayout = this._getOption('initLayout');
3456
- if ( isInitLayout ) {
3457
- this.layout();
3458
- }
3459
- }
3460
 
3461
- // settings are for internal use only
3462
- Outlayer.namespace = 'outlayer';
3463
- Outlayer.Item = Item;
3464
 
3465
- // default options
3466
- Outlayer.defaults = {
3467
- containerStyle: {
3468
- position: 'relative'
3469
- },
3470
- initLayout: true,
3471
- originLeft: true,
3472
- originTop: true,
3473
- resize: true,
3474
- resizeContainer: true,
3475
- // item options
3476
- transitionDuration: '0.4s',
3477
- hiddenStyle: {
3478
- opacity: 0,
3479
- transform: 'scale(0.001)'
3480
- },
3481
- visibleStyle: {
3482
- opacity: 1,
3483
- transform: 'scale(1)'
3484
- }
3485
- };
3486
 
3487
- var proto = Outlayer.prototype;
3488
- // inherit EvEmitter
3489
- utils.extend( proto, EvEmitter.prototype );
 
 
 
 
3490
 
3491
- /**
3492
- * set options
3493
- * @param {Object} opts
3494
- */
3495
- proto.option = function( opts ) {
3496
- utils.extend( this.options, opts );
3497
- };
3498
 
3499
- /**
3500
- * get backwards compatible option value, check old name
3501
- */
3502
- proto._getOption = function( option ) {
3503
- var oldOption = this.constructor.compatOptions[ option ];
3504
- return oldOption && this.options[ oldOption ] !== undefined ?
3505
- this.options[ oldOption ] : this.options[ option ];
3506
- };
3507
 
3508
- Outlayer.compatOptions = {
3509
- // currentName: oldName
3510
- initLayout: 'isInitLayout',
3511
- horizontal: 'isHorizontal',
3512
- layoutInstant: 'isLayoutInstant',
3513
- originLeft: 'isOriginLeft',
3514
- originTop: 'isOriginTop',
3515
- resize: 'isResizeBound',
3516
- resizeContainer: 'isResizingContainer'
3517
- };
3518
 
3519
- proto._create = function() {
3520
- // get items from children
3521
- this.reloadItems();
3522
- // elements that affect layout, but are not laid out
3523
- this.stamps = [];
3524
- this.stamp( this.options.stamp );
3525
- // set container style
3526
- utils.extend( this.element.style, this.options.containerStyle );
 
 
 
 
 
 
 
 
 
 
3527
 
3528
- // bind resize method
3529
- var canBindResize = this._getOption('resize');
3530
- if ( canBindResize ) {
3531
- this.bindResize();
3532
- }
3533
- };
3534
 
3535
- // goes through all children again and gets bricks in proper order
3536
- proto.reloadItems = function() {
3537
- // collection of item elements
3538
- this.items = this._itemize( this.element.children );
3539
- };
 
 
 
 
 
 
3540
 
 
 
 
 
3541
 
3542
- /**
3543
- * turn elements into Outlayer.Items to be used in layout
3544
- * @param {Array or NodeList or HTMLElement} elems
3545
- * @returns {Array} items - collection of new Outlayer Items
3546
- */
3547
- proto._itemize = function( elems ) {
3548
 
3549
- var itemElems = this._filterFindItemElements( elems );
3550
- var Item = this.constructor.Item;
 
 
 
 
 
 
 
 
 
 
 
3551
 
3552
- // create new Outlayer Items for collection
3553
- var items = [];
3554
- for ( var i=0; i < itemElems.length; i++ ) {
3555
- var elem = itemElems[i];
3556
- var item = new Item( elem, this );
3557
- items.push( item );
3558
- }
3559
 
3560
- return items;
3561
- };
3562
 
3563
- /**
3564
- * get item elements to be used in layout
3565
- * @param {Array or NodeList or HTMLElement} elems
3566
- * @returns {Array} items - item elements
3567
- */
3568
- proto._filterFindItemElements = function( elems ) {
3569
- return utils.filterFindElements( elems, this.options.itemSelector );
3570
- };
3571
 
3572
- /**
3573
- * getter method for getting item elements
3574
- * @returns {Array} elems - collection of item elements
3575
- */
3576
- proto.getItemElements = function() {
3577
- return this.items.map( function( item ) {
3578
- return item.element;
3579
- });
3580
- };
3581
 
3582
- // ----- init & layout ----- //
3583
 
3584
- /**
3585
- * lays out all items
3586
- */
3587
- proto.layout = function() {
3588
- this._resetLayout();
3589
- this._manageStamps();
3590
 
3591
- // don't animate first layout
3592
- var layoutInstant = this._getOption('layoutInstant');
3593
- var isInstant = layoutInstant !== undefined ?
3594
- layoutInstant : !this._isLayoutInited;
3595
- this.layoutItems( this.items, isInstant );
 
 
 
 
 
 
 
 
 
 
 
3596
 
3597
- // flag for initalized
3598
- this._isLayoutInited = true;
3599
- };
3600
 
3601
- // _init is alias for layout
3602
- proto._init = proto.layout;
 
 
 
 
3603
 
3604
- /**
3605
- * logic before any new layout
3606
- */
3607
- proto._resetLayout = function() {
3608
- this.getSize();
3609
- };
3610
 
 
 
3611
 
3612
- proto.getSize = function() {
3613
- this.size = getSize( this.element );
3614
- };
3615
 
3616
- /**
3617
- * get measurement from option, for columnWidth, rowHeight, gutter
3618
- * if option is String -> get element from selector string, & get size of element
3619
- * if option is Element -> get size of element
3620
- * else use option as a number
3621
- *
3622
- * @param {String} measurement
3623
- * @param {String} size - width or height
3624
- * @private
3625
- */
3626
- proto._getMeasurement = function( measurement, size ) {
3627
- var option = this.options[ measurement ];
3628
- var elem;
3629
- if ( !option ) {
3630
- // default to 0
3631
- this[ measurement ] = 0;
3632
- } else {
3633
- // use option as an element
3634
- if ( typeof option == 'string' ) {
3635
- elem = this.element.querySelector( option );
3636
- } else if ( option instanceof HTMLElement ) {
3637
- elem = option;
3638
- }
3639
- // use size of element, if element
3640
- this[ measurement ] = elem ? getSize( elem )[ size ] : option;
3641
- }
3642
- };
3643
 
3644
- /**
3645
- * layout a collection of item elements
3646
- * @api public
3647
- */
3648
- proto.layoutItems = function( items, isInstant ) {
3649
- items = this._getItemsForLayout( items );
3650
 
3651
- this._layoutItems( items, isInstant );
3652
 
3653
- this._postLayout();
3654
- };
3655
 
3656
- /**
3657
- * get the items to be laid out
3658
- * you may want to skip over some items
3659
- * @param {Array} items
3660
- * @returns {Array} items
3661
- */
3662
- proto._getItemsForLayout = function( items ) {
3663
- return items.filter( function( item ) {
3664
- return !item.isIgnored;
3665
- });
3666
- };
3667
 
3668
- /**
3669
- * layout items
3670
- * @param {Array} items
3671
- * @param {Boolean} isInstant
3672
- */
3673
- proto._layoutItems = function( items, isInstant ) {
3674
- this._emitCompleteOnItems( 'layout', items );
 
3675
 
3676
- if ( !items || !items.length ) {
3677
- // no items, emit event with empty array
3678
- return;
3679
- }
 
3680
 
3681
- var queue = [];
 
 
 
3682
 
3683
- items.forEach( function( item ) {
3684
- // get x/y object from method
3685
- var position = this._getItemLayoutPosition( item );
3686
- // enqueue
3687
- position.item = item;
3688
- position.isInstant = isInstant || item.isLayoutInstant;
3689
- queue.push( position );
3690
- }, this );
3691
 
3692
- this._processLayoutQueue( queue );
3693
- };
 
 
 
 
3694
 
3695
- /**
3696
- * get item layout position
3697
- * @param {Outlayer.Item} item
3698
- * @returns {Object} x and y position
3699
- */
3700
- proto._getItemLayoutPosition = function( /* item */ ) {
3701
- return {
3702
- x: 0,
3703
- y: 0
3704
- };
3705
- };
3706
 
3707
- /**
3708
- * iterate over array and position each item
3709
- * Reason being - separating this logic prevents 'layout invalidation'
3710
- * thx @paul_irish
3711
- * @param {Array} queue
3712
- */
3713
- proto._processLayoutQueue = function( queue ) {
3714
- this.updateStagger();
3715
- queue.forEach( function( obj, i ) {
3716
- this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
3717
- }, this );
3718
- };
3719
 
3720
- // set stagger from option in milliseconds number
3721
- proto.updateStagger = function() {
3722
- var stagger = this.options.stagger;
3723
- if ( stagger === null || stagger === undefined ) {
3724
- this.stagger = 0;
3725
- return;
3726
- }
3727
- this.stagger = getMilliseconds( stagger );
3728
- return this.stagger;
3729
- };
3730
 
3731
- /**
3732
- * Sets position of item in DOM
3733
- * @param {Outlayer.Item} item
3734
- * @param {Number} x - horizontal position
3735
- * @param {Number} y - vertical position
3736
- * @param {Boolean} isInstant - disables transitions
3737
- */
3738
- proto._positionItem = function( item, x, y, isInstant, i ) {
3739
- if ( isInstant ) {
3740
- // if not transition, just set CSS
3741
- item.goTo( x, y );
3742
- } else {
3743
- item.stagger( i * this.stagger );
3744
- item.moveTo( x, y );
3745
- }
3746
- };
3747
 
3748
- /**
3749
- * Any logic you want to do after each layout,
3750
- * i.e. size the container
3751
- */
3752
- proto._postLayout = function() {
3753
- this.resizeContainer();
3754
- };
3755
 
3756
- proto.resizeContainer = function() {
3757
- var isResizingContainer = this._getOption('resizeContainer');
3758
- if ( !isResizingContainer ) {
3759
- return;
3760
- }
3761
- var size = this._getContainerSize();
3762
- if ( size ) {
3763
- this._setContainerMeasure( size.width, true );
3764
- this._setContainerMeasure( size.height, false );
3765
- }
3766
- };
 
 
 
 
 
 
 
 
 
 
3767
 
3768
- /**
3769
- * Sets width or height of container if returned
3770
- * @returns {Object} size
3771
- * @param {Number} width
3772
- * @param {Number} height
3773
- */
3774
- proto._getContainerSize = noop;
 
 
3775
 
3776
- /**
3777
- * @param {Number} measure - size of width or height
3778
- * @param {Boolean} isWidth
3779
- */
3780
- proto._setContainerMeasure = function( measure, isWidth ) {
3781
- if ( measure === undefined ) {
3782
- return;
3783
- }
3784
 
3785
- var elemSize = this.size;
3786
- // add padding and border width if border box
3787
- if ( elemSize.isBorderBox ) {
3788
- measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
3789
- elemSize.borderLeftWidth + elemSize.borderRightWidth :
3790
- elemSize.paddingBottom + elemSize.paddingTop +
3791
- elemSize.borderTopWidth + elemSize.borderBottomWidth;
3792
- }
3793
 
3794
- measure = Math.max( measure, 0 );
3795
- this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
3796
- };
3797
 
3798
- /**
3799
- * emit eventComplete on a collection of items events
3800
- * @param {String} eventName
3801
- * @param {Array} items - Outlayer.Items
3802
- */
3803
- proto._emitCompleteOnItems = function( eventName, items ) {
3804
- var _this = this;
3805
- function onComplete() {
3806
- _this.dispatchEvent( eventName + 'Complete', null, [ items ] );
3807
- }
3808
 
3809
- var count = items.length;
3810
- if ( !items || !count ) {
3811
- onComplete();
3812
- return;
3813
- }
3814
 
3815
- var doneCount = 0;
3816
- function tick() {
3817
- doneCount++;
3818
- if ( doneCount == count ) {
3819
- onComplete();
3820
- }
3821
- }
3822
 
3823
- // bind callback
3824
- items.forEach( function( item ) {
3825
- item.once( eventName, tick );
3826
- });
3827
- };
3828
 
3829
- /**
3830
- * emits events via EvEmitter and jQuery events
3831
- * @param {String} type - name of event
3832
- * @param {Event} event - original event
3833
- * @param {Array} args - extra arguments
3834
- */
3835
- proto.dispatchEvent = function( type, event, args ) {
3836
- // add original event to arguments
3837
- var emitArgs = event ? [ event ].concat( args ) : args;
3838
- this.emitEvent( type, emitArgs );
3839
 
3840
- if ( jQuery ) {
3841
- // set this.$element
3842
- this.$element = this.$element || jQuery( this.element );
3843
- if ( event ) {
3844
- // create jQuery event
3845
- var $event = jQuery.Event( event );
3846
- $event.type = type;
3847
- this.$element.trigger( $event, args );
3848
- } else {
3849
- // just trigger with type if no event available
3850
- this.$element.trigger( type, args );
3851
- }
3852
- }
3853
- };
3854
 
3855
- // -------------------------- ignore & stamps -------------------------- //
 
 
 
 
 
 
 
 
 
3856
 
 
 
3857
 
3858
- /**
3859
- * keep item in collection, but do not lay it out
3860
- * ignored items do not get skipped in layout
3861
- * @param {Element} elem
3862
- */
3863
- proto.ignore = function( elem ) {
3864
- var item = this.getItem( elem );
3865
- if ( item ) {
3866
- item.isIgnored = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3867
  }
3868
- };
3869
 
3870
- /**
3871
- * return item to layout collection
3872
- * @param {Element} elem
3873
- */
3874
- proto.unignore = function( elem ) {
3875
- var item = this.getItem( elem );
3876
- if ( item ) {
3877
- delete item.isIgnored;
3878
  }
3879
- };
3880
 
3881
- /**
3882
- * adds elements to stamps
3883
- * @param {NodeList, Array, Element, or String} elems
3884
- */
3885
- proto.stamp = function( elems ) {
3886
- elems = this._find( elems );
3887
- if ( !elems ) {
3888
- return;
3889
  }
3890
 
3891
- this.stamps = this.stamps.concat( elems );
3892
- // ignore
3893
- elems.forEach( this.ignore, this );
3894
- };
 
 
 
 
 
 
 
3895
 
3896
- /**
3897
- * removes elements to stamps
3898
- * @param {NodeList, Array, or Element} elems
3899
- */
3900
- proto.unstamp = function( elems ) {
3901
- elems = this._find( elems );
3902
- if ( !elems ){
3903
- return;
3904
  }
3905
 
3906
- elems.forEach( function( elem ) {
3907
- // filter out removed stamp elements
3908
- utils.removeFrom( this.stamps, elem );
3909
- this.unignore( elem );
3910
- }, this );
3911
- };
3912
 
3913
- /**
3914
- * finds child elements
3915
- * @param {NodeList, Array, Element, or String} elems
3916
- * @returns {Array} elems
3917
- */
3918
- proto._find = function( elems ) {
3919
- if ( !elems ) {
3920
- return;
3921
  }
3922
- // if string, use argument as selector string
3923
- if ( typeof elems == 'string' ) {
3924
- elems = this.element.querySelectorAll( elems );
 
 
 
 
3925
  }
3926
- elems = utils.makeArray( elems );
3927
- return elems;
3928
- };
3929
 
3930
- proto._manageStamps = function() {
3931
- if ( !this.stamps || !this.stamps.length ) {
3932
- return;
3933
  }
3934
 
3935
- this._getBoundingRect();
 
 
3936
 
3937
- this.stamps.forEach( this._manageStamp, this );
3938
- };
 
 
 
3939
 
3940
- // update boundingLeft / Top
3941
- proto._getBoundingRect = function() {
3942
- // get bounding rect for container element
3943
- var boundingRect = this.element.getBoundingClientRect();
3944
- var size = this.size;
3945
- this._boundingRect = {
3946
- left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
3947
- top: boundingRect.top + size.paddingTop + size.borderTopWidth,
3948
- right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
3949
- bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
3950
- };
3951
- };
3952
 
3953
- /**
3954
- * @param {Element} stamp
3955
- **/
3956
- proto._manageStamp = noop;
 
 
 
 
 
 
 
 
3957
 
3958
- /**
3959
- * get x/y position of element relative to container element
3960
- * @param {Element} elem
3961
- * @returns {Object} offset - has left, top, right, bottom
3962
- */
3963
- proto._getElementOffset = function( elem ) {
3964
- var boundingRect = elem.getBoundingClientRect();
3965
- var thisRect = this._boundingRect;
3966
- var size = getSize( elem );
3967
- var offset = {
3968
- left: boundingRect.left - thisRect.left - size.marginLeft,
3969
- top: boundingRect.top - thisRect.top - size.marginTop,
3970
- right: thisRect.right - boundingRect.right - size.marginRight,
3971
- bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
3972
- };
3973
- return offset;
3974
- };
3975
 
3976
- // -------------------------- resize -------------------------- //
 
 
3977
 
3978
- // enable event handlers for listeners
3979
- // i.e. resize -> onresize
3980
- proto.handleEvent = utils.handleEvent;
3981
 
3982
- /**
3983
- * Bind layout to window resizing
3984
- */
3985
- proto.bindResize = function() {
3986
- window.addEventListener( 'resize', this );
3987
- this.isResizeBound = true;
3988
- };
3989
 
3990
- /**
3991
- * Unbind layout to window resizing
3992
- */
3993
- proto.unbindResize = function() {
3994
- window.removeEventListener( 'resize', this );
3995
- this.isResizeBound = false;
3996
- };
3997
 
3998
- proto.onresize = function() {
3999
- this.resize();
4000
- };
4001
 
4002
- utils.debounceMethod( Outlayer, 'onresize', 100 );
 
 
4003
 
4004
- proto.resize = function() {
4005
- // don't trigger if size did not change
4006
- // or if resize was unbound. See #9
4007
- if ( !this.isResizeBound || !this.needsResizeLayout() ) {
4008
- return;
4009
  }
4010
 
4011
- this.layout();
4012
- };
 
 
 
4013
 
4014
- /**
4015
- * check if layout is needed post layout
4016
- * @returns Boolean
4017
- */
4018
- proto.needsResizeLayout = function() {
4019
- var size = getSize( this.element );
4020
- // check that this.size and size are there
4021
- // IE8 triggers resize on body size change, so they might not be
4022
- var hasSizes = this.size && size;
4023
- return hasSizes && size.innerWidth !== this.size.innerWidth;
4024
- };
4025
 
4026
- // -------------------------- methods -------------------------- //
4027
 
4028
- /**
4029
- * add items to Outlayer instance
4030
- * @param {Array or NodeList or Element} elems
4031
- * @returns {Array} items - Outlayer.Items
4032
- **/
4033
- proto.addItems = function( elems ) {
4034
- var items = this._itemize( elems );
4035
- // add items to collection
4036
- if ( items.length ) {
4037
- this.items = this.items.concat( items );
4038
  }
4039
- return items;
4040
- };
4041
 
4042
- /**
4043
- * Layout newly-appended item elements
4044
- * @param {Array or NodeList or Element} elems
4045
- */
4046
- proto.appended = function( elems ) {
4047
- var items = this.addItems( elems );
4048
- if ( !items.length ) {
4049
- return;
4050
- }
4051
- // layout and reveal just the new items
4052
- this.layoutItems( items, true );
4053
- this.reveal( items );
4054
- };
4055
 
4056
- /**
4057
- * Layout prepended elements
4058
- * @param {Array or NodeList or Element} elems
4059
- */
4060
- proto.prepended = function( elems ) {
4061
- var items = this._itemize( elems );
4062
- if ( !items.length ) {
4063
- return;
4064
- }
4065
- // add items to beginning of collection
4066
- var previousItems = this.items.slice(0);
4067
- this.items = items.concat( previousItems );
4068
- // start new layout
4069
- this._resetLayout();
4070
- this._manageStamps();
4071
- // layout new stuff without transition
4072
- this.layoutItems( items, true );
4073
- this.reveal( items );
4074
- // layout previous items
4075
- this.layoutItems( previousItems );
4076
- };
4077
 
4078
- /**
4079
- * reveal a collection of items
4080
- * @param {Array of Outlayer.Items} items
4081
- */
4082
- proto.reveal = function( items ) {
4083
- this._emitCompleteOnItems( 'reveal', items );
4084
- if ( !items || !items.length ) {
4085
- return;
4086
- }
4087
- var stagger = this.updateStagger();
4088
- items.forEach( function( item, i ) {
4089
- item.stagger( i * stagger );
4090
- item.reveal();
4091
- });
4092
- };
4093
 
4094
- /**
4095
- * hide a collection of items
4096
- * @param {Array of Outlayer.Items} items
4097
- */
4098
- proto.hide = function( items ) {
4099
- this._emitCompleteOnItems( 'hide', items );
4100
- if ( !items || !items.length ) {
4101
- return;
4102
- }
4103
- var stagger = this.updateStagger();
4104
- items.forEach( function( item, i ) {
4105
- item.stagger( i * stagger );
4106
- item.hide();
4107
- });
4108
- };
4109
 
4110
- /**
4111
- * reveal item elements
4112
- * @param {Array}, {Element}, {NodeList} items
4113
- */
4114
- proto.revealItemElements = function( elems ) {
4115
- var items = this.getItems( elems );
4116
- this.reveal( items );
4117
- };
4118
 
4119
- /**
4120
- * hide item elements
4121
- * @param {Array}, {Element}, {NodeList} items
4122
- */
4123
- proto.hideItemElements = function( elems ) {
4124
- var items = this.getItems( elems );
4125
- this.hide( items );
4126
- };
4127
 
4128
- /**
4129
- * get Outlayer.Item, given an Element
4130
- * @param {Element} elem
4131
- * @param {Function} callback
4132
- * @returns {Outlayer.Item} item
4133
- */
4134
- proto.getItem = function( elem ) {
4135
- // loop through items to get the one that matches
4136
- for ( var i=0; i < this.items.length; i++ ) {
4137
- var item = this.items[i];
4138
- if ( item.element == elem ) {
4139
- // return item
4140
- return item;
4141
- }
4142
- }
4143
- };
4144
 
4145
- /**
4146
- * get collection of Outlayer.Items, given Elements
4147
- * @param {Array} elems
4148
- * @returns {Array} items - Outlayer.Items
4149
- */
4150
- proto.getItems = function( elems ) {
4151
- elems = utils.makeArray( elems );
4152
- var items = [];
4153
- elems.forEach( function( elem ) {
4154
- var item = this.getItem( elem );
4155
- if ( item ) {
4156
- items.push( item );
4157
- }
4158
- }, this );
4159
 
4160
- return items;
4161
- };
 
4162
 
4163
- /**
4164
- * remove element(s) from instance and DOM
4165
- * @param {Array or NodeList or Element} elems
4166
- */
4167
- proto.remove = function( elems ) {
4168
- var removeItems = this.getItems( elems );
4169
 
4170
- this._emitCompleteOnItems( 'remove', removeItems );
 
 
4171
 
4172
- // bail if no items to remove
4173
- if ( !removeItems || !removeItems.length ) {
4174
- return;
4175
- }
4176
 
4177
- removeItems.forEach( function( item ) {
4178
- item.remove();
4179
- // remove item from collection
4180
- utils.removeFrom( this.items, item );
4181
- }, this );
4182
- };
4183
 
4184
- // ----- destroy ----- //
 
 
 
 
 
 
 
 
 
 
 
 
4185
 
4186
- // remove and disable Outlayer instance
4187
- proto.destroy = function() {
4188
- // clean up dynamic styles
4189
- var style = this.element.style;
4190
- style.height = '';
4191
- style.position = '';
4192
- style.width = '';
4193
- // destroy items
4194
- this.items.forEach( function( item ) {
4195
- item.destroy();
4196
- });
4197
 
4198
- this.unbindResize();
 
 
4199
 
4200
- var id = this.element.outlayerGUID;
4201
- delete instances[ id ]; // remove reference to instance by id
4202
- delete this.element.outlayerGUID;
4203
- // remove data for jQuery
4204
- if ( jQuery ) {
4205
- jQuery.removeData( this.element, this.constructor.namespace );
 
 
 
 
 
 
4206
  }
4207
 
4208
- };
 
 
 
 
 
 
 
 
 
4209
 
4210
- // -------------------------- data -------------------------- //
 
 
 
 
 
 
4211
 
4212
- /**
4213
- * get Outlayer instance from element
4214
- * @param {Element} elem
4215
- * @returns {Outlayer}
4216
- */
4217
- Outlayer.data = function( elem ) {
4218
- elem = utils.getQueryElement( elem );
4219
- var id = elem && elem.outlayerGUID;
4220
- return id && instances[ id ];
4221
- };
4222
 
 
 
 
4223
 
4224
- // -------------------------- create Outlayer class -------------------------- //
 
 
 
 
 
 
4225
 
4226
- /**
4227
- * create a layout class
4228
- * @param {String} namespace
4229
- */
4230
- Outlayer.create = function( namespace, options ) {
4231
- // sub-class Outlayer
4232
- var Layout = subclass( Outlayer );
4233
- // apply new options and compatOptions
4234
- Layout.defaults = utils.extend( {}, Outlayer.defaults );
4235
- utils.extend( Layout.defaults, options );
4236
- Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );
4237
 
4238
- Layout.namespace = namespace;
 
 
 
 
 
4239
 
4240
- Layout.data = Outlayer.data;
 
 
 
 
 
 
 
 
 
4241
 
4242
- // sub-class Item
4243
- Layout.Item = subclass( Item );
 
 
 
 
 
4244
 
4245
- // -------------------------- declarative -------------------------- //
4246
 
4247
- utils.htmlInit( Layout, namespace );
 
 
 
 
 
 
 
 
 
4248
 
4249
- // -------------------------- jQuery bridge -------------------------- //
 
 
 
 
 
4250
 
4251
- // make into jQuery plugin
4252
- if ( jQuery && jQuery.bridget ) {
4253
- jQuery.bridget( namespace, Layout );
4254
- }
 
 
4255
 
4256
- return Layout;
4257
- };
 
4258
 
4259
- function subclass( Parent ) {
4260
- function SubClass() {
4261
- Parent.apply( this, arguments );
4262
- }
4263
 
4264
- SubClass.prototype = Object.create( Parent.prototype );
4265
- SubClass.prototype.constructor = SubClass;
 
 
 
4266
 
4267
- return SubClass;
4268
- }
4269
 
4270
- // ----- helpers ----- //
 
 
 
 
4271
 
4272
- // how many milliseconds are in each unit
4273
- var msUnits = {
4274
- ms: 1,
4275
- s: 1000
4276
- };
4277
 
4278
- // munge time-like parameter into millisecond number
4279
- // '0.4s' -> 40
4280
- function getMilliseconds( time ) {
4281
- if ( typeof time == 'number' ) {
4282
- return time;
4283
- }
4284
- var matches = time.match( /(^\d*\.?\d*)(\w*)/ );
4285
- var num = matches && matches[1];
4286
- var unit = matches && matches[2];
4287
- if ( !num.length ) {
4288
- return 0;
4289
- }
4290
- num = parseFloat( num );
4291
- var mult = msUnits[ unit ] || 1;
4292
- return num * mult;
4293
- }
4294
 
4295
- // ----- fin ----- //
 
 
 
 
 
4296
 
4297
- // back in global
4298
- Outlayer.Item = Item;
4299
 
4300
- return Outlayer;
4301
 
4302
- }));
4303
 
4304
- /**
4305
- * Isotope Item
4306
- **/
 
4307
 
4308
- ( function( window, factory ) {
4309
- // universal module definition
4310
- /* jshint strict: false */ /*globals define, module, require */
4311
- if ( typeof define == 'function' && define.amd ) {
4312
- // AMD
4313
- define( 'isotope-layout/js/item',[
4314
- 'outlayer/outlayer'
4315
- ],
4316
- factory );
4317
- } else if ( typeof module == 'object' && module.exports ) {
4318
- // CommonJS
4319
- module.exports = factory(
4320
- require('outlayer')
4321
- );
4322
- } else {
4323
- // browser global
4324
- window.Isotope = window.Isotope || {};
4325
- window.Isotope.Item = factory(
4326
- window.Outlayer
4327
- );
4328
- }
4329
 
4330
- }( window, function factory( Outlayer ) {
4331
- 'use strict';
 
 
 
 
 
 
 
4332
 
4333
- // -------------------------- Item -------------------------- //
 
 
4334
 
4335
- // sub-class Outlayer Item
4336
- function Item() {
4337
- Outlayer.Item.apply( this, arguments );
4338
- }
4339
 
4340
- var proto = Item.prototype = Object.create( Outlayer.Item.prototype );
 
 
 
 
 
 
 
4341
 
4342
- var _create = proto._create;
4343
- proto._create = function() {
4344
- // assign id, used for original-order sorting
4345
- this.id = this.layout.itemGUID++;
4346
- _create.call( this );
4347
- this.sortData = {};
4348
- };
4349
 
4350
- proto.updateSortData = function() {
4351
- if ( this.isIgnored ) {
4352
- return;
4353
- }
4354
- // default sorters
4355
- this.sortData.id = this.id;
4356
- // for backward compatibility
4357
- this.sortData['original-order'] = this.id;
4358
- this.sortData.random = Math.random();
4359
- // go thru getSortData obj and apply the sorters
4360
- var getSortData = this.layout.options.getSortData;
4361
- var sorters = this.layout._sorters;
4362
- for ( var key in getSortData ) {
4363
- var sorter = sorters[ key ];
4364
- this.sortData[ key ] = sorter( this.element, this );
4365
- }
4366
- };
4367
 
4368
- var _destroy = proto.destroy;
4369
- proto.destroy = function() {
4370
- // call super
4371
- _destroy.apply( this, arguments );
4372
- // reset display, #741
4373
- this.css({
4374
- display: ''
4375
- });
4376
- };
4377
 
4378
- return Item;
 
 
 
 
 
 
 
 
 
4379
 
4380
- }));
 
4381
 
4382
- /**
4383
- * Isotope LayoutMode
4384
- */
 
 
 
4385
 
4386
- ( function( window, factory ) {
4387
- // universal module definition
4388
- /* jshint strict: false */ /*globals define, module, require */
4389
- if ( typeof define == 'function' && define.amd ) {
4390
- // AMD
4391
- define( 'isotope-layout/js/layout-mode',[
4392
- 'get-size/get-size',
4393
- 'outlayer/outlayer'
4394
- ],
4395
- factory );
4396
- } else if ( typeof module == 'object' && module.exports ) {
4397
- // CommonJS
4398
- module.exports = factory(
4399
- require('get-size'),
4400
- require('outlayer')
4401
- );
4402
- } else {
4403
- // browser global
4404
- window.Isotope = window.Isotope || {};
4405
- window.Isotope.LayoutMode = factory(
4406
- window.getSize,
4407
- window.Outlayer
4408
- );
4409
- }
4410
 
4411
- }( window, function factory( getSize, Outlayer ) {
4412
- 'use strict';
 
4413
 
4414
- // layout mode class
4415
- function LayoutMode( isotope ) {
4416
- this.isotope = isotope;
4417
- // link properties
4418
- if ( isotope ) {
4419
- this.options = isotope.options[ this.namespace ];
4420
- this.element = isotope.element;
4421
- this.items = isotope.filteredItems;
4422
- this.size = isotope.size;
4423
- }
4424
- }
4425
 
4426
- var proto = LayoutMode.prototype;
 
 
4427
 
4428
- /**
4429
- * some methods should just defer to default Outlayer method
4430
- * and reference the Isotope instance as `this`
4431
- **/
4432
- var facadeMethods = [
4433
- '_resetLayout',
4434
- '_getItemLayoutPosition',
4435
- '_manageStamp',
4436
- '_getContainerSize',
4437
- '_getElementOffset',
4438
- 'needsResizeLayout',
4439
- '_getOption'
4440
- ];
4441
 
4442
- facadeMethods.forEach( function( methodName ) {
4443
- proto[ methodName ] = function() {
4444
- return Outlayer.prototype[ methodName ].apply( this.isotope, arguments );
4445
- };
4446
- });
4447
 
4448
- // ----- ----- //
 
 
4449
 
4450
- // for horizontal layout modes, check vertical size
4451
- proto.needsVerticalResizeLayout = function() {
4452
- // don't trigger if size did not change
4453
- var size = getSize( this.isotope.element );
4454
- // check that this.size and size are there
4455
- // IE8 triggers resize on body size change, so they might not be
4456
- var hasSizes = this.isotope.size && size;
4457
- return hasSizes && size.innerHeight != this.isotope.size.innerHeight;
4458
  };
4459
 
4460
- // ----- measurements ----- //
 
 
4461
 
4462
- proto._getMeasurement = function() {
4463
- this.isotope._getMeasurement.apply( this, arguments );
4464
  };
4465
 
4466
- proto.getColumnWidth = function() {
4467
- this.getSegmentSize( 'column', 'Width' );
4468
  };
4469
 
4470
- proto.getRowHeight = function() {
4471
- this.getSegmentSize( 'row', 'Height' );
4472
  };
4473
 
4474
- /**
4475
- * get columnWidth or rowHeight
4476
- * segment: 'column' or 'row'
4477
- * size 'Width' or 'Height'
4478
- **/
4479
- proto.getSegmentSize = function( segment, size ) {
4480
- var segmentName = segment + size;
4481
- var outerSize = 'outer' + size;
4482
- // columnWidth / outerWidth // rowHeight / outerHeight
4483
- this._getMeasurement( segmentName, outerSize );
4484
- // got rowHeight or columnWidth, we can chill
4485
- if ( this[ segmentName ] ) {
4486
- return;
4487
- }
4488
- // fall back to item of first element
4489
- var firstItemSize = this.getFirstItemSize();
4490
- this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] ||
4491
- // or size of container
4492
- this.isotope.size[ 'inner' + size ];
4493
  };
4494
 
4495
- proto.getFirstItemSize = function() {
4496
- var firstItem = this.isotope.filteredItems[0];
4497
- return firstItem && firstItem.element && getSize( firstItem.element );
4498
  };
4499
 
4500
- // ----- methods that should reference isotope ----- //
 
 
4501
 
4502
- proto.layout = function() {
4503
- this.isotope.layout.apply( this.isotope, arguments );
4504
  };
4505
 
4506
- proto.getSize = function() {
4507
- this.isotope.getSize();
4508
- this.size = this.isotope.size;
4509
  };
4510
 
4511
- // -------------------------- create -------------------------- //
 
 
4512
 
4513
- LayoutMode.modes = {};
 
 
 
 
4514
 
4515
- LayoutMode.create = function( namespace, options ) {
4516
 
4517
- function Mode() {
4518
- LayoutMode.apply( this, arguments );
4519
- }
4520
 
4521
- Mode.prototype = Object.create( proto );
4522
- Mode.prototype.constructor = Mode;
4523
 
4524
- // default options
4525
- if ( options ) {
4526
- Mode.options = options;
 
4527
  }
4528
 
4529
- Mode.prototype.namespace = namespace;
4530
- // register in Isotope
4531
- LayoutMode.modes[ namespace ] = Mode;
 
 
 
4532
 
4533
- return Mode;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4534
  };
4535
 
4536
- return LayoutMode;
 
 
 
 
 
 
 
 
 
 
 
 
 
4537
 
4538
- }));
 
 
 
 
4539
 
4540
- /*!
4541
- * Masonry v4.2.1
4542
- * Cascading grid layout library
4543
- * https://masonry.desandro.com
4544
- * MIT License
4545
- * by David DeSandro
4546
- */
4547
 
4548
- ( function( window, factory ) {
4549
- // universal module definition
4550
- /* jshint strict: false */ /*globals define, module, require */
4551
- if ( typeof define == 'function' && define.amd ) {
4552
- // AMD
4553
- define( 'masonry-layout/masonry',[
4554
- 'outlayer/outlayer',
4555
- 'get-size/get-size'
4556
- ],
4557
- factory );
4558
- } else if ( typeof module == 'object' && module.exports ) {
4559
- // CommonJS
4560
- module.exports = factory(
4561
- require('outlayer'),
4562
- require('get-size')
4563
- );
4564
- } else {
4565
- // browser global
4566
- window.Masonry = factory(
4567
- window.Outlayer,
4568
- window.getSize
4569
- );
4570
  }
4571
 
4572
- }( window, function factory( Outlayer, getSize ) {
 
 
 
 
 
 
 
 
 
 
 
 
4573
 
 
 
 
4574
 
 
 
 
4575
 
4576
- // -------------------------- masonryDefinition -------------------------- //
 
 
 
 
 
 
 
 
 
 
4577
 
4578
- // create an Outlayer layout class
4579
- var Masonry = Outlayer.create('masonry');
4580
- // isFitWidth -> fitWidth
4581
- Masonry.compatOptions.fitWidth = 'isFitWidth';
4582
 
4583
- var proto = Masonry.prototype;
4584
 
4585
- proto._resetLayout = function() {
4586
- this.getSize();
4587
- this._getMeasurement( 'columnWidth', 'outerWidth' );
4588
- this._getMeasurement( 'gutter', 'outerWidth' );
4589
- this.measureColumns();
4590
 
4591
- // reset column Y
4592
- this.colYs = [];
4593
- for ( var i=0; i < this.cols; i++ ) {
4594
- this.colYs.push( 0 );
4595
- }
4596
 
4597
- this.maxY = 0;
4598
- this.horizontalColIndex = 0;
4599
- };
 
4600
 
4601
- proto.measureColumns = function() {
4602
- this.getContainerWidth();
4603
- // if columnWidth is 0, default to outerWidth of first item
4604
- if ( !this.columnWidth ) {
4605
- var firstItem = this.items[0];
4606
- var firstItemElem = firstItem && firstItem.element;
4607
- // columnWidth fall back to item of first element
4608
- this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||
4609
- // if first elem has no width, default to size of container
4610
- this.containerWidth;
4611
- }
4612
 
4613
- var columnWidth = this.columnWidth += this.gutter;
 
4614
 
4615
- // calculate columns
4616
- var containerWidth = this.containerWidth + this.gutter;
4617
- var cols = containerWidth / columnWidth;
4618
- // fix rounding errors, typically with gutters
4619
- var excess = columnWidth - containerWidth % columnWidth;
4620
- // if overshoot is less than a pixel, round up, otherwise floor it
4621
- var mathMethod = excess && excess < 1 ? 'round' : 'floor';
4622
- cols = Math[ mathMethod ]( cols );
4623
- this.cols = Math.max( cols, 1 );
4624
- };
4625
 
4626
- proto.getContainerWidth = function() {
4627
- // container is parent if fit width
4628
- var isFitWidth = this._getOption('fitWidth');
4629
- var container = isFitWidth ? this.element.parentNode : this.element;
4630
- // check that this.size and size are there
4631
- // IE8 triggers resize on body size change, so they might not be
4632
- var size = getSize( container );
4633
- this.containerWidth = size && size.innerWidth;
4634
- };
4635
 
4636
- proto._getItemLayoutPosition = function( item ) {
4637
- item.getSize();
4638
- // how many columns does this brick span
4639
- var remainder = item.size.outerWidth % this.columnWidth;
4640
- var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';
4641
- // round if off by 1 pixel, otherwise use ceil
4642
- var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );
4643
- colSpan = Math.min( colSpan, this.cols );
4644
- // use horizontal or top column position
4645
- var colPosMethod = this.options.horizontalOrder ?
4646
- '_getHorizontalColPosition' : '_getTopColPosition';
4647
- var colPosition = this[ colPosMethod ]( colSpan, item );
4648
- // position the brick
4649
- var position = {
4650
- x: this.columnWidth * colPosition.col,
4651
- y: colPosition.y
4652
- };
4653
- // apply setHeight to necessary columns
4654
- var setHeight = colPosition.y + item.size.outerHeight;
4655
- var setMax = colSpan + colPosition.col;
4656
- for ( var i = colPosition.col; i < setMax; i++ ) {
4657
- this.colYs[i] = setHeight;
4658
- }
4659
 
4660
- return position;
4661
- };
 
 
 
 
 
 
 
 
4662
 
4663
- proto._getTopColPosition = function( colSpan ) {
4664
- var colGroup = this._getTopColGroup( colSpan );
4665
- // get the minimum Y value from the columns
4666
- var minimumY = Math.min.apply( Math, colGroup );
4667
 
4668
- return {
4669
- col: colGroup.indexOf( minimumY ),
4670
- y: minimumY,
4671
- };
4672
- };
 
 
4673
 
4674
- /**
4675
- * @param {Number} colSpan - number of columns the element spans
4676
- * @returns {Array} colGroup
4677
- */
4678
- proto._getTopColGroup = function( colSpan ) {
4679
- if ( colSpan < 2 ) {
4680
- // if brick spans only one column, use all the column Ys
4681
- return this.colYs;
4682
- }
4683
 
4684
- var colGroup = [];
4685
- // how many different places could this brick fit horizontally
4686
- var groupCount = this.cols + 1 - colSpan;
4687
- // for each group potential horizontal position
4688
- for ( var i = 0; i < groupCount; i++ ) {
4689
- colGroup[i] = this._getColGroupY( i, colSpan );
4690
- }
4691
- return colGroup;
4692
- };
4693
 
4694
- proto._getColGroupY = function( col, colSpan ) {
4695
- if ( colSpan < 2 ) {
4696
- return this.colYs[ col ];
4697
- }
4698
- // make an array of colY values for that one group
4699
- var groupColYs = this.colYs.slice( col, col + colSpan );
4700
- // and get the max value of the array
4701
- return Math.max.apply( Math, groupColYs );
4702
- };
4703
 
4704
- // get column position based on horizontal index. #873
4705
- proto._getHorizontalColPosition = function( colSpan, item ) {
4706
- var col = this.horizontalColIndex % this.cols;
4707
- var isOver = colSpan > 1 && col + colSpan > this.cols;
4708
- // shift to next row if item can't fit on current row
4709
- col = isOver ? 0 : col;
4710
- // don't let zero-size items take up space
4711
- var hasSize = item.size.outerWidth && item.size.outerHeight;
4712
- this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;
4713
 
4714
- return {
4715
- col: col,
4716
- y: this._getColGroupY( col, colSpan ),
 
 
4717
  };
4718
- };
4719
 
4720
- proto._manageStamp = function( stamp ) {
4721
- var stampSize = getSize( stamp );
4722
- var offset = this._getElementOffset( stamp );
4723
- // get the columns that this stamp affects
4724
- var isOriginLeft = this._getOption('originLeft');
4725
- var firstX = isOriginLeft ? offset.left : offset.right;
4726
- var lastX = firstX + stampSize.outerWidth;
4727
- var firstCol = Math.floor( firstX / this.columnWidth );
4728
- firstCol = Math.max( 0, firstCol );
4729
- var lastCol = Math.floor( lastX / this.columnWidth );
4730
- // lastCol should not go over if multiple of columnWidth #425
4731
- lastCol -= lastX % this.columnWidth ? 0 : 1;
4732
- lastCol = Math.min( this.cols - 1, lastCol );
4733
- // set colYs to bottom of the stamp
4734
 
4735
- var isOriginTop = this._getOption('originTop');
4736
- var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +
4737
- stampSize.outerHeight;
4738
- for ( var i = firstCol; i <= lastCol; i++ ) {
4739
- this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );
4740
- }
4741
- };
4742
 
4743
- proto._getContainerSize = function() {
4744
- this.maxY = Math.max.apply( Math, this.colYs );
4745
- var size = {
4746
- height: this.maxY
4747
- };
4748
 
4749
- if ( this._getOption('fitWidth') ) {
4750
- size.width = this._getContainerFitWidth();
4751
- }
4752
 
4753
- return size;
4754
- };
 
 
 
 
4755
 
4756
- proto._getContainerFitWidth = function() {
4757
- var unusedCols = 0;
4758
- // count unused columns
4759
- var i = this.cols;
4760
- while ( --i ) {
4761
- if ( this.colYs[i] !== 0 ) {
4762
- break;
4763
- }
4764
- unusedCols++;
4765
- }
4766
- // fit container to columns that have been used
4767
- return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;
4768
- };
4769
 
4770
- proto.needsResizeLayout = function() {
4771
- var previousWidth = this.containerWidth;
4772
- this.getContainerWidth();
4773
- return previousWidth != this.containerWidth;
4774
- };
 
 
 
 
 
 
 
4775
 
4776
- return Masonry;
 
4777
 
4778
- }));
 
 
 
4779
 
4780
- /*!
4781
- * Masonry layout mode
4782
- * sub-classes Masonry
4783
- * https://masonry.desandro.com
4784
- */
4785
 
4786
- ( function( window, factory ) {
4787
- // universal module definition
4788
- /* jshint strict: false */ /*globals define, module, require */
4789
- if ( typeof define == 'function' && define.amd ) {
4790
- // AMD
4791
- define( 'isotope-layout/js/layout-modes/masonry',[
4792
- '../layout-mode',
4793
- 'masonry-layout/masonry'
4794
- ],
4795
- factory );
4796
- } else if ( typeof module == 'object' && module.exports ) {
4797
- // CommonJS
4798
- module.exports = factory(
4799
- require('../layout-mode'),
4800
- require('masonry-layout')
4801
- );
4802
- } else {
4803
- // browser global
4804
- factory(
4805
- window.Isotope.LayoutMode,
4806
- window.Masonry
4807
- );
4808
- }
4809
 
4810
- }( window, function factory( LayoutMode, Masonry ) {
4811
- 'use strict';
4812
 
4813
- // -------------------------- masonryDefinition -------------------------- //
 
 
4814
 
4815
- // create an Outlayer layout class
4816
- var MasonryMode = LayoutMode.create('masonry');
 
4817
 
4818
- var proto = MasonryMode.prototype;
4819
 
4820
- var keepModeMethods = {
4821
- _getElementOffset: true,
4822
- layout: true,
4823
- _getMeasurement: true
4824
- };
4825
 
4826
- // inherit Masonry prototype
4827
- for ( var method in Masonry.prototype ) {
4828
- // do not inherit mode methods
4829
- if ( !keepModeMethods[ method ] ) {
4830
- proto[ method ] = Masonry.prototype[ method ];
4831
- }
 
 
 
 
 
 
4832
  }
4833
 
4834
- var measureColumns = proto.measureColumns;
4835
- proto.measureColumns = function() {
4836
- // set items, used if measuring first item
4837
- this.items = this.isotope.filteredItems;
4838
- measureColumns.call( this );
4839
- };
4840
 
4841
- // point to mode options for fitWidth
4842
- var _getOption = proto._getOption;
4843
- proto._getOption = function( option ) {
4844
- if ( option == 'fitWidth' ) {
4845
- return this.options.isFitWidth !== undefined ?
4846
- this.options.isFitWidth : this.options.fitWidth;
4847
- }
4848
- return _getOption.apply( this.isotope, arguments );
4849
- };
4850
 
4851
- return MasonryMode;
 
 
4852
 
4853
- }));
 
 
4854
 
4855
- /**
4856
- * fitRows layout mode
4857
- */
 
 
 
 
4858
 
4859
- ( function( window, factory ) {
4860
- // universal module definition
4861
- /* jshint strict: false */ /*globals define, module, require */
4862
- if ( typeof define == 'function' && define.amd ) {
4863
- // AMD
4864
- define( 'isotope-layout/js/layout-modes/fit-rows',[
4865
- '../layout-mode'
4866
- ],
4867
- factory );
4868
- } else if ( typeof exports == 'object' ) {
4869
- // CommonJS
4870
- module.exports = factory(
4871
- require('../layout-mode')
4872
- );
4873
- } else {
4874
- // browser global
4875
- factory(
4876
- window.Isotope.LayoutMode
4877
- );
4878
- }
4879
 
4880
- }( window, function factory( LayoutMode ) {
4881
- 'use strict';
4882
 
4883
- var FitRows = LayoutMode.create('fitRows');
 
 
4884
 
4885
- var proto = FitRows.prototype;
 
 
 
 
4886
 
4887
- proto._resetLayout = function() {
4888
- this.x = 0;
4889
- this.y = 0;
4890
- this.maxY = 0;
4891
- this._getMeasurement( 'gutter', 'outerWidth' );
4892
- };
4893
 
4894
- proto._getItemLayoutPosition = function( item ) {
4895
- item.getSize();
 
4896
 
4897
- var itemWidth = item.size.outerWidth + this.gutter;
4898
- // if this element cannot fit in the current row
4899
- var containerWidth = this.isotope.size.innerWidth + this.gutter;
4900
- if ( this.x !== 0 && itemWidth + this.x > containerWidth ) {
4901
- this.x = 0;
4902
- this.y = this.maxY;
4903
- }
4904
 
4905
- var position = {
4906
- x: this.x,
4907
- y: this.y
4908
- };
4909
 
4910
- this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight );
4911
- this.x += itemWidth;
 
4912
 
4913
- return position;
4914
- };
4915
 
4916
- proto._getContainerSize = function() {
4917
- return { height: this.maxY };
4918
- };
4919
 
4920
- return FitRows;
 
 
 
4921
 
4922
- }));
 
4923
 
4924
- /**
4925
- * vertical layout mode
4926
- */
 
4927
 
4928
- ( function( window, factory ) {
4929
- // universal module definition
4930
- /* jshint strict: false */ /*globals define, module, require */
4931
- if ( typeof define == 'function' && define.amd ) {
4932
- // AMD
4933
- define( 'isotope-layout/js/layout-modes/vertical',[
4934
- '../layout-mode'
4935
- ],
4936
- factory );
4937
- } else if ( typeof module == 'object' && module.exports ) {
4938
- // CommonJS
4939
- module.exports = factory(
4940
- require('../layout-mode')
4941
- );
4942
- } else {
4943
- // browser global
4944
- factory(
4945
- window.Isotope.LayoutMode
4946
- );
4947
- }
4948
 
4949
- }( window, function factory( LayoutMode ) {
4950
- 'use strict';
 
 
 
4951
 
4952
- var Vertical = LayoutMode.create( 'vertical', {
4953
- horizontalAlignment: 0
4954
- });
4955
 
4956
- var proto = Vertical.prototype;
 
4957
 
4958
- proto._resetLayout = function() {
4959
- this.y = 0;
4960
- };
 
4961
 
4962
- proto._getItemLayoutPosition = function( item ) {
4963
- item.getSize();
4964
- var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) *
4965
- this.options.horizontalAlignment;
4966
- var y = this.y;
4967
- this.y += item.size.outerHeight;
4968
- return { x: x, y: y };
4969
- };
4970
 
4971
- proto._getContainerSize = function() {
4972
- return { height: this.y };
4973
- };
 
 
4974
 
4975
- return Vertical;
 
 
 
4976
 
4977
- }));
 
 
4978
 
4979
- /*!
4980
- * Isotope v3.0.6
4981
- *
4982
- * Licensed GPLv3 for open source use
4983
- * or Isotope Commercial License for commercial use
4984
- *
4985
- * https://isotope.metafizzy.co
4986
- * Copyright 2010-2018 Metafizzy
4987
- */
4988
 
4989
- ( function( window, factory ) {
4990
- // universal module definition
4991
- /* jshint strict: false */ /*globals define, module, require */
4992
- if ( typeof define == 'function' && define.amd ) {
4993
- // AMD
4994
- define( [
4995
- 'outlayer/outlayer',
4996
- 'get-size/get-size',
4997
- 'desandro-matches-selector/matches-selector',
4998
- 'fizzy-ui-utils/utils',
4999
- 'isotope-layout/js/item',
5000
- 'isotope-layout/js/layout-mode',
5001
- // include default layout modes
5002
- 'isotope-layout/js/layout-modes/masonry',
5003
- 'isotope-layout/js/layout-modes/fit-rows',
5004
- 'isotope-layout/js/layout-modes/vertical'
5005
- ],
5006
- function( Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ) {
5007
- return factory( window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode );
5008
- });
5009
- } else if ( typeof module == 'object' && module.exports ) {
5010
- // CommonJS
5011
- module.exports = factory(
5012
- window,
5013
- require('outlayer'),
5014
- require('get-size'),
5015
- require('desandro-matches-selector'),
5016
- require('fizzy-ui-utils'),
5017
- require('isotope-layout/js/item'),
5018
- require('isotope-layout/js/layout-mode'),
5019
- // include default layout modes
5020
- require('isotope-layout/js/layout-modes/masonry'),
5021
- require('isotope-layout/js/layout-modes/fit-rows'),
5022
- require('isotope-layout/js/layout-modes/vertical')
5023
- );
5024
- } else {
5025
- // browser global
5026
- window.Isotope = factory(
5027
- window,
5028
- window.Outlayer,
5029
- window.getSize,
5030
- window.matchesSelector,
5031
- window.fizzyUIUtils,
5032
- window.Isotope.Item,
5033
- window.Isotope.LayoutMode
5034
- );
5035
- }
5036
 
5037
- }( window, function factory( window, Outlayer, getSize, matchesSelector, utils,
5038
- Item, LayoutMode ) {
5039
 
 
 
5040
 
 
5041
 
5042
- // -------------------------- vars -------------------------- //
5043
 
5044
- var jQuery = window.jQuery;
 
 
 
 
 
 
 
5045
 
5046
- // -------------------------- helpers -------------------------- //
5047
 
5048
- var trim = String.prototype.trim ?
5049
- function( str ) {
5050
- return str.trim();
5051
- } :
5052
- function( str ) {
5053
- return str.replace( /^\s+|\s+$/g, '' );
5054
- };
5055
 
5056
- // -------------------------- isotopeDefinition -------------------------- //
 
 
 
5057
 
5058
- // create an Outlayer layout class
5059
- var Isotope = Outlayer.create( 'isotope', {
5060
- layoutMode: 'masonry',
5061
- isJQueryFiltering: true,
5062
- sortAscending: true
5063
- });
5064
 
5065
- Isotope.Item = Item;
5066
- Isotope.LayoutMode = LayoutMode;
 
 
5067
 
5068
- var proto = Isotope.prototype;
5069
 
5070
- proto._create = function() {
5071
- this.itemGUID = 0;
5072
- // functions that sort items
5073
- this._sorters = {};
5074
- this._getSorters();
5075
- // call super
5076
- Outlayer.prototype._create.call( this );
5077
 
5078
- // create layout modes
5079
- this.modes = {};
5080
- // start filteredItems with all items
5081
- this.filteredItems = this.items;
5082
- // keep of track of sortBys
5083
- this.sortHistory = [ 'original-order' ];
5084
- // create from registered layout modes
5085
- for ( var name in LayoutMode.modes ) {
5086
- this._initLayoutMode( name );
5087
  }
5088
- };
5089
 
5090
- proto.reloadItems = function() {
5091
- // reset item ID counter
5092
- this.itemGUID = 0;
5093
- // call super
5094
- Outlayer.prototype.reloadItems.call( this );
5095
- };
5096
 
5097
- proto._itemize = function() {
5098
- var items = Outlayer.prototype._itemize.apply( this, arguments );
5099
- // assign ID for original-order
5100
- for ( var i=0; i < items.length; i++ ) {
5101
- var item = items[i];
5102
- item.id = this.itemGUID++;
5103
  }
5104
- this._updateItemsSortData( items );
5105
- return items;
5106
- };
5107
 
 
 
5108
 
5109
- // -------------------------- layout -------------------------- //
 
 
5110
 
5111
- proto._initLayoutMode = function( name ) {
5112
- var Mode = LayoutMode.modes[ name ];
5113
- // set mode options
5114
- // HACK extend initial options, back-fill in default options
5115
- var initialOpts = this.options[ name ] || {};
5116
- this.options[ name ] = Mode.options ?
5117
- utils.extend( Mode.options, initialOpts ) : initialOpts;
5118
- // init layout mode instance
5119
- this.modes[ name ] = new Mode( this );
5120
- };
5121
 
 
 
 
5122
 
5123
- proto.layout = function() {
5124
- // if first time doing layout, do all magic
5125
- if ( !this._isLayoutInited && this._getOption('initLayout') ) {
5126
- this.arrange();
 
 
 
 
 
 
 
 
 
5127
  return;
5128
  }
5129
- this._layout();
5130
- };
5131
 
5132
- // private method to be used in layout() & magic()
5133
- proto._layout = function() {
5134
- // don't animate first layout
5135
- var isInstant = this._getIsInstant();
5136
- // layout flow
5137
- this._resetLayout();
5138
- this._manageStamps();
5139
- this.layoutItems( this.filteredItems, isInstant );
5140
 
5141
- // flag for initalized
5142
- this._isLayoutInited = true;
5143
- };
 
 
5144
 
5145
- // filter + sort + layout
5146
- proto.arrange = function( opts ) {
5147
- // set any options pass
5148
- this.option( opts );
5149
- this._getIsInstant();
5150
- // filter, sort, and layout
5151
 
5152
- // filter
5153
- var filtered = this._filter( this.items );
5154
- this.filteredItems = filtered.matches;
5155
 
5156
- this._bindArrangeComplete();
 
 
 
 
 
 
 
 
 
5157
 
5158
- if ( this._isInstant ) {
5159
- this._noTransition( this._hideReveal, [ filtered ] );
5160
- } else {
5161
- this._hideReveal( filtered );
5162
- }
5163
 
5164
- this._sort();
5165
- this._layout();
5166
- };
5167
- // alias to _init for main plugin method
5168
- proto._init = proto.arrange;
5169
 
5170
- proto._hideReveal = function( filtered ) {
5171
- this.reveal( filtered.needReveal );
5172
- this.hide( filtered.needHide );
5173
- };
5174
 
5175
- // HACK
5176
- // Don't animate/transition first layout
5177
- // Or don't animate/transition other layouts
5178
- proto._getIsInstant = function() {
5179
- var isLayoutInstant = this._getOption('layoutInstant');
5180
- var isInstant = isLayoutInstant !== undefined ? isLayoutInstant :
5181
- !this._isLayoutInited;
5182
- this._isInstant = isInstant;
5183
- return isInstant;
5184
- };
5185
 
5186
- // listen for layoutComplete, hideComplete and revealComplete
5187
- // to trigger arrangeComplete
5188
- proto._bindArrangeComplete = function() {
5189
- // listen for 3 events to trigger arrangeComplete
5190
- var isLayoutComplete, isHideComplete, isRevealComplete;
5191
- var _this = this;
5192
- function arrangeParallelCallback() {
5193
- if ( isLayoutComplete && isHideComplete && isRevealComplete ) {
5194
- _this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] );
5195
- }
5196
  }
5197
- this.once( 'layoutComplete', function() {
5198
- isLayoutComplete = true;
5199
- arrangeParallelCallback();
5200
- });
5201
- this.once( 'hideComplete', function() {
5202
- isHideComplete = true;
5203
- arrangeParallelCallback();
5204
- });
5205
- this.once( 'revealComplete', function() {
5206
- isRevealComplete = true;
5207
- arrangeParallelCallback();
5208
- });
5209
- };
5210
 
5211
- // -------------------------- filter -------------------------- //
 
 
 
 
 
 
5212
 
5213
- proto._filter = function( items ) {
5214
- var filter = this.options.filter;
5215
- filter = filter || '*';
5216
- var matches = [];
5217
- var hiddenMatched = [];
5218
- var visibleUnmatched = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5219
 
5220
- var test = this._getFilterTest( filter );
5221
 
5222
- // test each item
5223
- for ( var i=0; i < items.length; i++ ) {
5224
- var item = items[i];
5225
- if ( item.isIgnored ) {
5226
- continue;
 
 
 
5227
  }
5228
- // add item to either matched or unmatched group
5229
- var isMatched = test( item );
5230
- // item.isFilterMatched = isMatched;
5231
- // add to matches if its a match
5232
- if ( isMatched ) {
5233
- matches.push( item );
 
 
 
 
 
 
 
 
 
5234
  }
5235
- // add to additional group if item needs to be hidden or revealed
5236
- if ( isMatched && item.isHidden ) {
5237
- hiddenMatched.push( item );
5238
- } else if ( !isMatched && !item.isHidden ) {
5239
- visibleUnmatched.push( item );
 
 
 
 
 
 
 
 
 
5240
  }
5241
- }
5242
 
5243
- // return collections of items to be manipulated
5244
- return {
5245
- matches: matches,
5246
- needReveal: hiddenMatched,
5247
- needHide: visibleUnmatched
5248
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5249
  };
5250
 
5251
- // get a jQuery, function, or a matchesSelector test given the filter
5252
- proto._getFilterTest = function( filter ) {
5253
- if ( jQuery && this.options.isJQueryFiltering ) {
5254
- // use jQuery
5255
- return function( item ) {
5256
- return jQuery( item.element ).is( filter );
5257
- };
5258
  }
5259
- if ( typeof filter == 'function' ) {
5260
- // use filter as function
5261
- return function( item ) {
5262
- return filter( item.element );
5263
- };
 
 
5264
  }
5265
- // default, use filter as selector string
5266
- return function( item ) {
5267
- return matchesSelector( item.element, filter );
 
 
 
 
5268
  };
5269
- };
5270
 
5271
- // -------------------------- sorting -------------------------- //
 
 
 
 
 
 
5272
 
5273
- /**
5274
- * @params {Array} elems
5275
- * @public
5276
- */
5277
- proto.updateSortData = function( elems ) {
5278
- // get items
5279
- var items;
5280
- if ( elems ) {
5281
- elems = utils.makeArray( elems );
5282
- items = this.getItems( elems );
5283
- } else {
5284
- // update all items if no elems provided
5285
- items = this.items;
5286
- }
5287
 
5288
- this._getSorters();
5289
- this._updateItemsSortData( items );
5290
- };
5291
 
5292
- proto._getSorters = function() {
5293
- var getSortData = this.options.getSortData;
5294
- for ( var key in getSortData ) {
5295
- var sorter = getSortData[ key ];
5296
- this._sorters[ key ] = mungeSorter( sorter );
 
 
 
 
 
 
 
 
 
 
5297
  }
5298
- };
5299
 
5300
- /**
5301
- * @params {Array} items - of Isotope.Items
5302
- * @private
5303
- */
5304
- proto._updateItemsSortData = function( items ) {
5305
- // do not update if no items
5306
- var len = items && items.length;
5307
 
5308
- for ( var i=0; len && i < len; i++ ) {
5309
- var item = items[i];
5310
- item.updateSortData();
5311
  }
5312
- };
5313
 
5314
- // ----- munge sorter ----- //
5315
 
5316
- // encapsulate this, as we just need mungeSorter
5317
- // other functions in here are just for munging
5318
- var mungeSorter = ( function() {
5319
- // add a magic layer to sorters for convienent shorthands
5320
- // `.foo-bar` will use the text of .foo-bar querySelector
5321
- // `[foo-bar]` will use attribute
5322
- // you can also add parser
5323
- // `.foo-bar parseInt` will parse that as a number
5324
- function mungeSorter( sorter ) {
5325
- // if not a string, return function or whatever it is
5326
- if ( typeof sorter != 'string' ) {
5327
- return sorter;
5328
- }
5329
- // parse the sorter string
5330
- var args = trim( sorter ).split(' ');
5331
- var query = args[0];
5332
- // check if query looks like [an-attribute]
5333
- var attrMatch = query.match( /^\[(.+)\]$/ );
5334
- var attr = attrMatch && attrMatch[1];
5335
- var getValue = getValueGetter( attr, query );
5336
- // use second argument as a parser
5337
- var parser = Isotope.sortDataParsers[ args[1] ];
5338
- // parse the value, if there was a parser
5339
- sorter = parser ? function( elem ) {
5340
- return elem && parser( getValue( elem ) );
5341
- } :
5342
- // otherwise just return value
5343
- function( elem ) {
5344
- return elem && getValue( elem );
5345
- };
5346
 
5347
- return sorter;
 
 
 
 
 
 
 
 
5348
  }
5349
 
5350
- // get an attribute getter, or get text of the querySelector
5351
- function getValueGetter( attr, query ) {
5352
- // if query looks like [foo-bar], get attribute
5353
- if ( attr ) {
5354
- return function getAttribute( elem ) {
5355
- return elem.getAttribute( attr );
5356
- };
 
 
 
 
 
 
5357
  }
5358
 
5359
- // otherwise, assume its a querySelector, and get its text
5360
- return function getChildText( elem ) {
5361
- var child = elem.querySelector( query );
5362
- return child && child.textContent;
5363
- };
5364
- }
5365
 
5366
- return mungeSorter;
5367
- })();
5368
 
5369
- // parsers used in getSortData shortcut strings
5370
- Isotope.sortDataParsers = {
5371
- 'parseInt': function( val ) {
5372
- return parseInt( val, 10 );
 
 
5373
  },
5374
- 'parseFloat': function( val ) {
5375
- return parseFloat( val );
5376
- }
5377
- };
 
 
 
 
 
 
 
5378
 
5379
- // ----- sort method ----- //
5380
 
5381
- // sort filteredItem order
5382
- proto._sort = function() {
5383
- if ( !this.options.sortBy ) {
5384
- return;
5385
- }
5386
- // keep track of sortBy History
5387
- var sortBys = utils.makeArray( this.options.sortBy );
5388
- if ( !this._getIsSameSortBy( sortBys ) ) {
5389
- // concat all sortBy and sortHistory, add to front, oldest goes in last
5390
- this.sortHistory = sortBys.concat( this.sortHistory );
5391
- }
5392
- // sort magic
5393
- var itemSorter = getItemSorter( this.sortHistory, this.options.sortAscending );
5394
- this.filteredItems.sort( itemSorter );
5395
- };
5396
 
5397
- // check if sortBys is same as start of sortHistory
5398
- proto._getIsSameSortBy = function( sortBys ) {
5399
- for ( var i=0; i < sortBys.length; i++ ) {
5400
- if ( sortBys[i] != this.sortHistory[i] ) {
5401
- return false;
5402
- }
5403
- }
5404
- return true;
5405
- };
5406
 
5407
- // returns a function used for sorting
5408
- function getItemSorter( sortBys, sortAsc ) {
5409
- return function sorter( itemA, itemB ) {
5410
- // cycle through all sortKeys
5411
- for ( var i = 0; i < sortBys.length; i++ ) {
5412
- var sortBy = sortBys[i];
5413
- var a = itemA.sortData[ sortBy ];
5414
- var b = itemB.sortData[ sortBy ];
5415
- if ( a > b || a < b ) {
5416
- // if sortAsc is an object, use the value given the sortBy key
5417
- var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc;
5418
- var direction = isAscending ? 1 : -1;
5419
- return ( a > b ? 1 : -1 ) * direction;
5420
- }
5421
- }
5422
- return 0;
5423
- };
5424
- }
5425
 
5426
- // -------------------------- methods -------------------------- //
 
 
 
 
5427
 
5428
- // get layout mode
5429
- proto._mode = function() {
5430
- var layoutMode = this.options.layoutMode;
5431
- var mode = this.modes[ layoutMode ];
5432
- if ( !mode ) {
5433
- // TODO console.error
5434
- throw new Error( 'No layout mode: ' + layoutMode );
5435
- }
5436
- // HACK sync mode's options
5437
- // any options set after init for layout mode need to be synced
5438
- mode.options = this.options[ layoutMode ];
5439
- return mode;
5440
- };
5441
 
5442
- proto._resetLayout = function() {
5443
- // trigger original reset layout
5444
- Outlayer.prototype._resetLayout.call( this );
5445
- this._mode()._resetLayout();
5446
- };
5447
 
5448
- proto._getItemLayoutPosition = function( item ) {
5449
- return this._mode()._getItemLayoutPosition( item );
5450
- };
5451
 
5452
- proto._manageStamp = function( stamp ) {
5453
- this._mode()._manageStamp( stamp );
5454
- };
 
 
5455
 
5456
- proto._getContainerSize = function() {
5457
- return this._mode()._getContainerSize();
5458
- };
5459
 
5460
- proto.needsResizeLayout = function() {
5461
- return this._mode().needsResizeLayout();
5462
- };
 
5463
 
5464
- // -------------------------- adding & removing -------------------------- //
 
 
 
5465
 
5466
- // HEADS UP overwrites default Outlayer appended
5467
- proto.appended = function( elems ) {
5468
- var items = this.addItems( elems );
5469
- if ( !items.length ) {
5470
- return;
5471
- }
5472
- // filter, layout, reveal new items
5473
- var filteredItems = this._filterRevealAdded( items );
5474
- // add to filteredItems
5475
- this.filteredItems = this.filteredItems.concat( filteredItems );
5476
- };
5477
 
5478
- // HEADS UP overwrites default Outlayer prepended
5479
- proto.prepended = function( elems ) {
5480
- var items = this._itemize( elems );
5481
- if ( !items.length ) {
5482
- return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5483
  }
5484
- // start new layout
5485
- this._resetLayout();
5486
- this._manageStamps();
5487
- // filter, layout, reveal new items
5488
- var filteredItems = this._filterRevealAdded( items );
5489
- // layout previous items
5490
- this.layoutItems( this.filteredItems );
5491
- // add to items and filteredItems
5492
- this.filteredItems = filteredItems.concat( this.filteredItems );
5493
- this.items = items.concat( this.items );
5494
  };
5495
 
5496
- proto._filterRevealAdded = function( items ) {
5497
- var filtered = this._filter( items );
5498
- this.hide( filtered.needHide );
5499
- // reveal all new items
5500
- this.reveal( filtered.matches );
5501
- // layout new items, no transition
5502
- this.layoutItems( filtered.matches, true );
5503
- return filtered.matches;
5504
- };
5505
 
5506
- /**
5507
- * Filter, sort, and layout newly-appended item elements
5508
- * @param {Array or NodeList or Element} elems
5509
- */
5510
- proto.insert = function( elems ) {
5511
- var items = this.addItems( elems );
5512
- if ( !items.length ) {
5513
- return;
5514
- }
5515
- // append item elements
5516
- var i, item;
5517
- var len = items.length;
5518
- for ( i=0; i < len; i++ ) {
5519
- item = items[i];
5520
- this.element.appendChild( item.element );
5521
  }
5522
- // filter new stuff
5523
- var filteredInsertItems = this._filter( items ).matches;
5524
- // set flag
5525
- for ( i=0; i < len; i++ ) {
5526
- items[i].isLayoutInstant = true;
 
 
 
 
5527
  }
5528
- this.arrange();
5529
- // reset flag
5530
- for ( i=0; i < len; i++ ) {
5531
- delete items[i].isLayoutInstant;
 
 
 
 
 
 
 
 
 
 
 
5532
  }
5533
- this.reveal( filteredInsertItems );
5534
- };
5535
 
5536
- var _remove = proto.remove;
5537
- proto.remove = function( elems ) {
5538
- elems = utils.makeArray( elems );
5539
- var removeItems = this.getItems( elems );
5540
- // do regular thing
5541
- _remove.call( this, elems );
5542
- // bail if no items to remove
5543
- var len = removeItems && removeItems.length;
5544
- // remove elems from filteredItems
5545
- for ( var i=0; len && i < len; i++ ) {
5546
- var item = removeItems[i];
5547
- // remove item from collection
5548
- utils.removeFrom( this.filteredItems, item );
5549
  }
5550
- };
5551
 
5552
- proto.shuffle = function() {
5553
- // update random sortData
5554
- for ( var i=0; i < this.items.length; i++ ) {
5555
- var item = this.items[i];
5556
- item.sortData.random = Math.random();
 
 
 
5557
  }
5558
- this.options.sortBy = 'random';
5559
- this._sort();
5560
- this._layout();
5561
- };
5562
 
5563
- /**
5564
- * trigger fn without transition
5565
- * kind of hacky to have this in the first place
5566
- * @param {Function} fn
5567
- * @param {Array} args
5568
- * @returns ret
5569
- * @private
5570
- */
5571
- proto._noTransition = function( fn, args ) {
5572
- // save transitionDuration before disabling
5573
- var transitionDuration = this.options.transitionDuration;
5574
- // disable transition
5575
- this.options.transitionDuration = 0;
5576
- // do it
5577
- var returnValue = fn.apply( this, args );
5578
- // re-enable transition for reveal
5579
- this.options.transitionDuration = transitionDuration;
5580
- return returnValue;
5581
- };
5582
 
5583
- // ----- helper methods ----- //
 
 
 
 
 
5584
 
5585
- /**
5586
- * getter method for getting filtered item elements
5587
- * @returns {Array} elems - collection of item elements
5588
- */
5589
- proto.getFilteredItemElements = function() {
5590
- return this.filteredItems.map( function( item ) {
5591
- return item.element;
5592
  });
5593
- };
5594
 
5595
- // ----- ----- //
 
 
5596
 
5597
- return Isotope;
5598
 
5599
- }));
5600
 
 
5601
 
5602
- /*! Magnific Popup - v1.1.0 - 2016-02-20
5603
- * http://dimsemenov.com/plugins/magnific-popup/
5604
- * Copyright (c) 2016 Dmitry Semenov; */
5605
- ; (function (factory) {
5606
- if (typeof define === 'function' && define.amd) {
5607
- // AMD. Register as an anonymous module.
5608
- define(['jquery'], factory);
5609
- } else if (typeof exports === 'object') {
5610
- // Node/CommonJS
5611
- factory(require('jquery'));
5612
- } else {
5613
- // Browser globals
5614
- factory(window.jQuery || window.Zepto);
5615
- }
5616
- }(function ($) {
5617
 
5618
- /*>>core*/
5619
- /**
5620
- *
5621
- * Magnific Popup Core JS file
5622
- *
5623
- */
5624
 
 
5625
 
5626
- /**
5627
- * Private static constants
5628
- */
5629
- var CLOSE_EVENT = 'Close',
5630
- BEFORE_CLOSE_EVENT = 'BeforeClose',
5631
- AFTER_CLOSE_EVENT = 'AfterClose',
5632
- BEFORE_APPEND_EVENT = 'BeforeAppend',
5633
- MARKUP_PARSE_EVENT = 'MarkupParse',
5634
- OPEN_EVENT = 'Open',
5635
- CHANGE_EVENT = 'Change',
5636
- NS = 'mfp',
5637
- EVENT_NS = '.' + NS,
5638
- READY_CLASS = 'mfp-ready',
5639
- REMOVING_CLASS = 'mfp-removing',
5640
- PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
5641
 
 
 
 
 
 
 
 
5642
 
5643
- /**
5644
- * Private vars
5645
- */
5646
- /*jshint -W079 */
5647
- var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
5648
- MagnificPopup = function () { },
5649
- _isJQ = !!(window.jQuery),
5650
- _prevStatus,
5651
- _window = $(window),
5652
- _document,
5653
- _prevContentType,
5654
- _wrapClasses,
5655
- _currPopupType;
5656
 
 
 
 
 
 
 
 
 
 
 
 
5657
 
5658
- /**
5659
- * Private functions
5660
- */
5661
- var _mfpOn = function (name, f) {
5662
- mfp.ev.on(NS + name + EVENT_NS, f);
5663
- },
5664
- _getEl = function (className, appendTo, html, raw) {
5665
- var el = document.createElement('div');
5666
- el.className = 'mfp-' + className;
5667
- if (html) {
5668
- el.innerHTML = html;
5669
- }
5670
- if (!raw) {
5671
- el = $(el);
5672
- if (appendTo) {
5673
- el.appendTo(appendTo);
5674
- }
5675
- } else if (appendTo) {
5676
- appendTo.appendChild(el);
5677
- }
5678
- return el;
5679
- },
5680
- _mfpTrigger = function (e, data) {
5681
- mfp.ev.triggerHandler(NS + e, data);
5682
 
5683
- if (mfp.st.callbacks) {
5684
- // converts "mfpEventName" to "eventName" callback and triggers it if it's present
5685
- e = e.charAt(0).toLowerCase() + e.slice(1);
5686
- if (mfp.st.callbacks[e]) {
5687
- mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
5688
- }
5689
- }
5690
- },
5691
- _getCloseBtn = function (type) {
5692
- if (type !== _currPopupType || !mfp.currTemplate.closeBtn) {
5693
- mfp.currTemplate.closeBtn = $(mfp.st.closeMarkup.replace('%title%', mfp.st.tClose));
5694
- _currPopupType = type;
5695
- }
5696
- return mfp.currTemplate.closeBtn;
5697
- },
5698
- // Initialize Magnific Popup only when called at least once
5699
- _checkInstance = function () {
5700
- if (!$.magnificPopup.instance) {
5701
- /*jshint -W020 */
5702
- mfp = new MagnificPopup();
5703
- mfp.init();
5704
- $.magnificPopup.instance = mfp;
5705
- }
5706
- },
5707
- // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
5708
- supportsTransitions = function () {
5709
- var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
5710
- v = ['ms', 'O', 'Moz', 'Webkit']; // 'v' for vendor
5711
-
5712
- if (s['transition'] !== undefined) {
5713
- return true;
5714
- }
5715
 
5716
- while (v.length) {
5717
- if (v.pop() + 'Transition' in s) {
5718
- return true;
5719
- }
5720
- }
5721
 
5722
- return false;
5723
- };
5724
 
 
 
 
 
 
 
 
 
5725
 
 
 
 
 
 
5726
 
5727
- /**
5728
- * Public functions
5729
- */
5730
- MagnificPopup.prototype = {
 
5731
 
5732
- constructor: MagnificPopup,
 
 
5733
 
5734
- /**
5735
- * Initializes Magnific Popup plugin.
5736
- * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
5737
- */
5738
- init: function () {
5739
- var appVersion = navigator.appVersion;
5740
- mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
5741
- mfp.isAndroid = (/android/gi).test(appVersion);
5742
- mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
5743
- mfp.supportsTransition = supportsTransitions();
5744
 
5745
- // We disable fixed positioned lightbox on devices that don't handle it nicely.
5746
- // If you know a better way of detecting this - let me know.
5747
- mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent));
5748
- _document = $(document);
 
 
5749
 
5750
- mfp.popupsCache = {};
5751
- },
5752
 
5753
- /**
5754
- * Opens popup
5755
- * @param data [description]
5756
- */
5757
- open: function (data) {
5758
 
5759
- var i;
 
 
 
 
 
 
 
 
 
5760
 
5761
- if (data.isObj === false) {
5762
- // convert jQuery collection to array to avoid conflicts later
5763
- mfp.items = data.items.toArray();
5764
 
5765
- mfp.index = 0;
5766
- var items = data.items,
5767
- item;
5768
- for (i = 0; i < items.length; i++) {
5769
- item = items[i];
5770
- if (item.parsed) {
5771
- item = item.el[0];
5772
- }
5773
- if (item === data.el[0]) {
5774
- mfp.index = i;
5775
- break;
5776
- }
5777
- }
5778
- } else {
5779
- mfp.items = $.isArray(data.items) ? data.items : [data.items];
5780
- mfp.index = data.index || 0;
5781
- }
5782
 
5783
- // if popup is already opened - we just update the content
5784
- if (mfp.isOpen) {
5785
- mfp.updateItemHTML();
5786
- return;
5787
- }
5788
 
5789
- mfp.types = [];
5790
- _wrapClasses = '';
5791
- if (data.mainEl && data.mainEl.length) {
5792
- mfp.ev = data.mainEl.eq(0);
5793
- } else {
5794
- mfp.ev = _document;
5795
- }
5796
 
5797
- if (data.key) {
5798
- if (!mfp.popupsCache[data.key]) {
5799
- mfp.popupsCache[data.key] = {};
5800
- }
5801
- mfp.currTemplate = mfp.popupsCache[data.key];
5802
- } else {
5803
- mfp.currTemplate = {};
5804
- }
5805
 
5806
 
 
5807
 
5808
- mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data);
5809
- mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
 
 
 
 
 
 
 
5810
 
5811
- if (mfp.st.modal) {
5812
- mfp.st.closeOnContentClick = false;
5813
- mfp.st.closeOnBgClick = false;
5814
- mfp.st.showCloseBtn = false;
5815
- mfp.st.enableEscapeKey = false;
5816
- }
5817
 
 
 
 
 
 
 
 
 
5818
 
5819
- // Building markup
5820
- // main containers are created only once
5821
- if (!mfp.bgOverlay) {
5822
 
5823
- // Dark overlay
5824
- mfp.bgOverlay = _getEl('bg').on('click' + EVENT_NS, function () {
5825
- mfp.close();
5826
- });
 
 
 
 
 
5827
 
5828
- mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click' + EVENT_NS, function (e) {
5829
- if (mfp._checkIfClose(e.target)) {
5830
- mfp.close();
5831
- }
5832
- });
5833
 
5834
- mfp.container = _getEl('container', mfp.wrap);
 
 
 
 
 
5835
  }
 
 
 
 
 
 
 
 
5836
 
5837
- mfp.contentContainer = _getEl('content');
5838
- if (mfp.st.preloader) {
5839
- mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
5840
- }
 
 
 
5841
 
 
5842
 
5843
- // Initializing modules
5844
- var modules = $.magnificPopup.modules;
5845
- for (i = 0; i < modules.length; i++) {
5846
- var n = modules[i];
5847
- n = n.charAt(0).toUpperCase() + n.slice(1);
5848
- mfp['init' + n].call(mfp);
5849
- }
5850
- _mfpTrigger('BeforeOpen');
5851
 
 
 
 
5852
 
5853
- if (mfp.st.showCloseBtn) {
5854
- // Close button
5855
- if (!mfp.st.closeBtnInside) {
5856
- mfp.wrap.append(_getCloseBtn());
5857
- } else {
5858
- _mfpOn(MARKUP_PARSE_EVENT, function (e, template, values, item) {
5859
- values.close_replaceWith = _getCloseBtn(item.type);
5860
- });
5861
- _wrapClasses += ' mfp-close-btn-in';
5862
- }
5863
- }
5864
 
5865
- if (mfp.st.alignTop) {
5866
- _wrapClasses += ' mfp-align-top';
5867
- }
5868
 
 
 
 
5869
 
5870
 
5871
- if (mfp.fixedContentPos) {
5872
- mfp.wrap.css({
5873
- overflow: mfp.st.overflowY,
5874
- overflowX: 'hidden',
5875
- overflowY: mfp.st.overflowY
5876
- });
5877
- } else {
5878
- mfp.wrap.css({
5879
- top: _window.scrollTop(),
5880
- position: 'absolute'
5881
- });
5882
- }
5883
- if (mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos)) {
5884
- mfp.bgOverlay.css({
5885
- height: _document.height(),
5886
- position: 'absolute'
5887
- });
5888
- }
5889
 
5890
 
 
 
5891
 
5892
- if (mfp.st.enableEscapeKey) {
5893
- // Close on ESC key
5894
- _document.on('keyup' + EVENT_NS, function (e) {
5895
- if (e.keyCode === 27) {
5896
- mfp.close();
5897
- }
5898
- });
5899
- }
5900
 
5901
- _window.on('resize' + EVENT_NS, function () {
5902
- mfp.updateSize();
5903
- });
5904
 
5905
 
5906
- if (!mfp.st.closeOnContentClick) {
5907
- _wrapClasses += ' mfp-auto-cursor';
5908
- }
5909
 
5910
- if (_wrapClasses)
5911
- mfp.wrap.addClass(_wrapClasses);
 
 
 
5912
 
5913
 
5914
- // this triggers recalculation of layout, so we get it once to not to trigger twice
5915
- var windowHeight = mfp.wH = _window.height();
 
 
5916
 
 
 
 
 
 
5917
 
5918
- var windowStyles = {};
 
 
 
5919
 
5920
- if (mfp.fixedContentPos) {
5921
- if (mfp._hasScrollBar(windowHeight)) {
5922
- var s = mfp._getScrollbarSize();
5923
- if (s) {
5924
- windowStyles.marginRight = s;
5925
- }
5926
- }
5927
- }
5928
 
5929
- if (mfp.fixedContentPos) {
5930
- if (!mfp.isIE7) {
5931
- windowStyles.overflow = 'hidden';
5932
- } else {
5933
- // ie7 double-scroll bug
5934
- $('body, html').css('overflow', 'hidden');
5935
- }
5936
- }
 
5937
 
 
 
 
 
5938
 
 
 
 
 
5939
 
5940
- var classesToadd = mfp.st.mainClass;
5941
- if (mfp.isIE7) {
5942
- classesToadd += ' mfp-ie7';
5943
- }
5944
- if (classesToadd) {
5945
- mfp._addClassToMFP(classesToadd);
5946
- }
5947
 
5948
- // add content
5949
- mfp.updateItemHTML();
 
5950
 
5951
- _mfpTrigger('BuildControls');
5952
 
5953
- // remove scrollbar, add margin e.t.c
5954
- $('html').css(windowStyles);
 
5955
 
5956
- // add everything to DOM
5957
- mfp.bgOverlay.add(mfp.wrap).prependTo(mfp.st.prependTo || $(document.body));
 
 
 
5958
 
5959
- // Save last focused element
5960
- mfp._lastFocusedEl = document.activeElement;
5961
 
5962
- // Wait for next cycle to allow CSS transition
5963
- setTimeout(function () {
5964
 
5965
- if (mfp.content) {
5966
- mfp._addClassToMFP(READY_CLASS);
5967
- mfp._setFocus();
5968
- } else {
5969
- // if content is not defined (not loaded e.t.c) we add class only for BG
5970
- mfp.bgOverlay.addClass(READY_CLASS);
5971
- }
 
 
 
 
 
 
 
5972
 
5973
- // Trap the focus in popup
5974
- _document.on('focusin' + EVENT_NS, mfp._onFocusIn);
 
 
 
 
 
 
 
 
 
 
 
5975
 
5976
- }, 16);
5977
 
5978
- mfp.isOpen = true;
5979
- mfp.updateSize(windowHeight);
5980
- _mfpTrigger(OPEN_EVENT);
 
5981
 
5982
- return data;
5983
- },
 
 
 
5984
 
5985
- /**
5986
- * Closes the popup
5987
- */
5988
- close: function () {
5989
- if (!mfp.isOpen) return;
5990
- _mfpTrigger(BEFORE_CLOSE_EVENT);
5991
 
5992
- mfp.isOpen = false;
5993
- // for CSS3 animation
5994
- if (mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition) {
5995
- mfp._addClassToMFP(REMOVING_CLASS);
5996
- setTimeout(function () {
5997
- mfp._close();
5998
- }, mfp.st.removalDelay);
5999
- } else {
6000
- mfp._close();
6001
- }
6002
- },
6003
 
6004
- /**
6005
- * Helper for close() function
6006
- */
6007
- _close: function () {
6008
- _mfpTrigger(CLOSE_EVENT);
 
 
 
 
6009
 
6010
- var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
 
 
 
 
6011
 
6012
- mfp.bgOverlay.detach();
6013
- mfp.wrap.detach();
6014
- mfp.container.empty();
 
6015
 
6016
- if (mfp.st.mainClass) {
6017
- classesToRemove += mfp.st.mainClass + ' ';
6018
- }
6019
 
6020
- mfp._removeClassFromMFP(classesToRemove);
6021
 
6022
- if (mfp.fixedContentPos) {
6023
- var windowStyles = { marginRight: '' };
6024
- if (mfp.isIE7) {
6025
- $('body, html').css('overflow', '');
6026
- } else {
6027
- windowStyles.overflow = '';
6028
- }
6029
- $('html').css(windowStyles);
6030
- }
6031
 
6032
- _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
6033
- mfp.ev.off(EVENT_NS);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6034
 
6035
- // clean up DOM elements that aren't removed
6036
- mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
6037
- mfp.bgOverlay.attr('class', 'mfp-bg');
6038
- mfp.container.attr('class', 'mfp-container');
 
 
 
 
 
 
 
6039
 
6040
- // remove close button from target element
6041
- if (mfp.st.showCloseBtn &&
6042
- (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
6043
- if (mfp.currTemplate.closeBtn)
6044
- mfp.currTemplate.closeBtn.detach();
6045
- }
 
 
 
 
 
 
 
 
 
 
6046
 
 
 
 
6047
 
6048
- if (mfp.st.autoFocusLast && mfp._lastFocusedEl) {
6049
- $(mfp._lastFocusedEl).focus(); // put tab focus back
6050
- }
6051
- mfp.currItem = null;
6052
- mfp.content = null;
6053
- mfp.currTemplate = null;
6054
- mfp.prevHeight = 0;
6055
 
6056
- _mfpTrigger(AFTER_CLOSE_EVENT);
6057
- },
 
 
 
 
 
 
 
 
 
6058
 
6059
- updateSize: function (winHeight) {
6060
 
6061
- if (mfp.isIOS) {
6062
- // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
6063
- var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
6064
- var height = window.innerHeight * zoomLevel;
6065
- mfp.wrap.css('height', height);
6066
- mfp.wH = height;
6067
- } else {
6068
- mfp.wH = winHeight || _window.height();
6069
- }
6070
- // Fixes #84: popup incorrectly positioned with position:relative on body
6071
- if (!mfp.fixedContentPos) {
6072
- mfp.wrap.css('height', mfp.wH);
6073
- }
6074
 
6075
- _mfpTrigger('Resize');
 
 
 
 
 
 
6076
 
6077
- },
 
 
 
 
 
 
6078
 
6079
- /**
6080
- * Set content of popup based on current index
6081
- */
6082
- updateItemHTML: function () {
6083
- var item = mfp.items[mfp.index];
 
 
6084
 
6085
- // Detach and perform modifications
6086
- mfp.contentContainer.detach();
 
 
 
 
6087
 
6088
- if (mfp.content)
6089
- mfp.content.detach();
 
 
6090
 
6091
- if (!item.parsed) {
6092
- item = mfp.parseEl(mfp.index);
6093
- }
6094
 
6095
- var type = item.type;
6096
 
6097
- _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
6098
- // BeforeChange event works like so:
6099
- // _mfpOn('BeforeChange', function(e, prevType, newType) { });
6100
 
6101
- mfp.currItem = item;
 
 
 
 
 
 
 
6102
 
6103
- if (!mfp.currTemplate[type]) {
6104
- var markup = mfp.st[type] ? mfp.st[type].markup : false;
 
 
 
 
 
 
 
 
6105
 
6106
- // allows to modify markup
6107
- _mfpTrigger('FirstMarkupParse', markup);
6108
 
6109
- if (markup) {
6110
- mfp.currTemplate[type] = $(markup);
6111
- } else {
6112
- // if there is no markup found we just define that template is parsed
6113
- mfp.currTemplate[type] = true;
6114
- }
6115
- }
6116
 
6117
- if (_prevContentType && _prevContentType !== item.type) {
6118
- mfp.container.removeClass('mfp-' + _prevContentType + '-holder');
6119
- }
 
6120
 
6121
- var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
6122
- mfp.appendContent(newContent, type);
 
 
6123
 
6124
- item.preloaded = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6125
 
6126
- _mfpTrigger(CHANGE_EVENT, item);
6127
- _prevContentType = item.type;
6128
 
6129
- // Append container back after its content changed
6130
- mfp.container.prepend(mfp.contentContainer);
 
 
 
 
 
 
 
 
 
 
6131
 
6132
- _mfpTrigger('AfterChange');
6133
- },
 
 
 
 
 
 
 
6134
 
 
 
 
 
 
 
 
 
 
 
6135
 
6136
- /**
6137
- * Set HTML content of popup
6138
- */
6139
- appendContent: function (newContent, type) {
6140
- mfp.content = newContent;
 
 
 
6141
 
6142
- if (newContent) {
6143
- if (mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
6144
- mfp.currTemplate[type] === true) {
6145
- // if there is no markup, we just append close button element inside
6146
- if (!mfp.content.find('.mfp-close').length) {
6147
- mfp.content.append(_getCloseBtn());
6148
- }
6149
- } else {
6150
- mfp.content = newContent;
6151
- }
6152
- } else {
6153
- mfp.content = '';
6154
- }
6155
 
6156
- _mfpTrigger(BEFORE_APPEND_EVENT);
6157
- mfp.container.addClass('mfp-' + type + '-holder');
6158
 
6159
- mfp.contentContainer.append(mfp.content);
6160
- },
6161
 
 
 
 
6162
 
6163
- /**
6164
- * Creates Magnific Popup data object based on given data
6165
- * @param {int} index Index of item to parse
6166
- */
6167
- parseEl: function (index) {
6168
- var item = mfp.items[index],
6169
- type;
6170
 
6171
- if (item.tagName) {
6172
- item = { el: $(item) };
6173
- } else {
6174
- type = item.type;
6175
- item = { data: item, src: item.src };
6176
- }
6177
 
6178
- if (item.el) {
6179
- var types = mfp.types;
 
6180
 
6181
- // check for 'mfp-TYPE' class
6182
- for (var i = 0; i < types.length; i++) {
6183
- if (item.el.hasClass('mfp-' + types[i])) {
6184
- type = types[i];
6185
- break;
6186
- }
6187
- }
6188
 
6189
- item.src = item.el.attr('data-mfp-src');
6190
- if (!item.src) {
6191
- item.src = item.el.attr('href');
6192
- }
6193
  }
6194
 
6195
- item.type = type || mfp.st.type || 'inline';
6196
- item.index = index;
6197
- item.parsed = true;
6198
- mfp.items[index] = item;
6199
- _mfpTrigger('ElementParse', item);
6200
 
6201
- return mfp.items[index];
6202
- },
 
 
6203
 
 
 
 
 
 
 
6204
 
6205
- /**
6206
- * Initializes single popup or a group of popups
6207
- */
6208
- addGroup: function (el, options) {
6209
- var eHandler = function (e) {
6210
- e.mfpEl = this;
6211
- mfp._openClick(e, el, options);
6212
- };
 
 
 
 
 
 
 
 
 
6213
 
6214
- if (!options) {
6215
- options = {};
6216
- }
6217
 
6218
- var eName = 'click.magnificPopup';
6219
- options.mainEl = el;
 
6220
 
6221
- if (options.items) {
6222
- options.isObj = true;
6223
- el.off(eName).on(eName, eHandler);
6224
- } else {
6225
- options.isObj = false;
6226
- if (options.delegate) {
6227
- el.off(eName).on(eName, options.delegate, eHandler);
6228
- } else {
6229
- options.items = el;
6230
- el.off(eName).on(eName, eHandler);
6231
- }
6232
- }
6233
  },
6234
- _openClick: function (e, el, options) {
6235
- var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
 
 
 
 
 
 
 
6236
 
 
 
 
 
 
 
 
6237
 
6238
- if (!midClick && (e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {
6239
- return;
6240
- }
6241
 
6242
- var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
 
 
 
6243
 
6244
- if (disableOn) {
6245
- if ($.isFunction(disableOn)) {
6246
- if (!disableOn.call(mfp)) {
6247
- return true;
6248
- }
6249
- } else { // else it's number
6250
- if (_window.width() < disableOn) {
6251
- return true;
6252
- }
6253
- }
6254
- }
6255
 
6256
- if (e.type) {
6257
- e.preventDefault();
 
6258
 
6259
- // This will prevent popup from closing if element is inside and popup is already opened
6260
- if (mfp.isOpen) {
6261
- e.stopPropagation();
6262
- }
6263
- }
6264
 
6265
- options.el = $(e.mfpEl);
6266
- if (options.delegate) {
6267
- options.items = el.find(options.delegate);
6268
- }
6269
- mfp.open(options);
6270
- },
 
 
 
6271
 
 
 
 
 
6272
 
6273
- /**
6274
- * Updates text on preloader
6275
- */
6276
- updateStatus: function (status, text) {
6277
 
6278
- if (mfp.preloader) {
6279
- if (_prevStatus !== status) {
6280
- mfp.container.removeClass('mfp-s-' + _prevStatus);
6281
- }
6282
-
6283
- if (!text && status === 'loading') {
6284
- text = mfp.st.tLoading;
6285
- }
6286
 
6287
- var data = {
6288
- status: status,
6289
- text: text
6290
- };
6291
- // allows to modify status
6292
- _mfpTrigger('UpdateStatus', data);
6293
 
6294
- status = data.status;
6295
- text = data.text;
6296
 
6297
- mfp.preloader.html(text);
 
 
 
 
 
 
6298
 
6299
- mfp.preloader.find('a').on('click', function (e) {
6300
- e.stopImmediatePropagation();
6301
- });
6302
 
6303
- mfp.container.addClass('mfp-s-' + status);
6304
- _prevStatus = status;
6305
- }
6306
- },
6307
 
6308
 
6309
- /*
6310
- "Private" helpers that aren't private at all
6311
- */
6312
- // Check to close popup or not
6313
- // "target" is an element that was clicked
6314
- _checkIfClose: function (target) {
 
6315
 
6316
- if ($(target).hasClass(PREVENT_CLOSE_CLASS)) {
6317
- return;
6318
- }
6319
 
6320
- var closeOnContent = mfp.st.closeOnContentClick;
6321
- var closeOnBg = mfp.st.closeOnBgClick;
6322
 
6323
- if (closeOnContent && closeOnBg) {
6324
- return true;
6325
- } else {
6326
 
6327
- // We close the popup if click is on close button or on preloader. Or if there is no content.
6328
- if (!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0])) {
6329
- return true;
6330
- }
 
6331
 
6332
- // if click is outside the content
6333
- if ((target !== mfp.content[0] && !$.contains(mfp.content[0], target))) {
6334
- if (closeOnBg) {
6335
- // last check, if the clicked element is in DOM, (in case it's removed onclick)
6336
- if ($.contains(document, target)) {
6337
- return true;
6338
- }
6339
- }
6340
- } else if (closeOnContent) {
6341
- return true;
6342
- }
6343
 
6344
- }
6345
- return false;
6346
- },
6347
- _addClassToMFP: function (cName) {
6348
- mfp.bgOverlay.addClass(cName);
6349
- mfp.wrap.addClass(cName);
6350
- },
6351
- _removeClassFromMFP: function (cName) {
6352
- this.bgOverlay.removeClass(cName);
6353
- mfp.wrap.removeClass(cName);
6354
- },
6355
- _hasScrollBar: function (winHeight) {
6356
- return ((mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()));
6357
- },
6358
- _setFocus: function () {
6359
- (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
6360
- },
6361
- _onFocusIn: function (e) {
6362
- if (e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target)) {
6363
- mfp._setFocus();
6364
- return false;
6365
- }
6366
- },
6367
- _parseMarkup: function (template, values, item) {
6368
- var arr;
6369
- if (item.data) {
6370
- values = $.extend(item.data, values);
6371
- }
6372
- _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item]);
6373
 
6374
- $.each(values, function (key, value) {
6375
- if (value === undefined || value === false) {
6376
- return true;
6377
- }
6378
- arr = key.split('_');
6379
- if (arr.length > 1) {
6380
- var el = template.find(EVENT_NS + '-' + arr[0]);
6381
 
6382
- if (el.length > 0) {
6383
- var attr = arr[1];
6384
- if (attr === 'replaceWith') {
6385
- if (el[0] !== value[0]) {
6386
- el.replaceWith(value);
6387
- }
6388
- } else if (attr === 'img') {
6389
- if (el.is('img')) {
6390
- el.attr('src', value);
6391
- } else {
6392
- el.replaceWith($('<img>').attr('src', value).attr('class', el.attr('class')));
6393
- }
6394
- } else {
6395
- el.attr(arr[1], value);
6396
- }
6397
- }
6398
 
6399
- } else {
6400
- template.find(EVENT_NS + '-' + key).html(value);
6401
- }
6402
- });
6403
- },
6404
 
6405
- _getScrollbarSize: function () {
6406
- // thx David
6407
- if (mfp.scrollbarSize === undefined) {
6408
- var scrollDiv = document.createElement("div");
6409
- scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
6410
- document.body.appendChild(scrollDiv);
6411
- mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
6412
- document.body.removeChild(scrollDiv);
6413
- }
6414
- return mfp.scrollbarSize;
6415
  }
 
6416
 
6417
- }; /* MagnificPopup core prototype end */
6418
-
6419
-
6420
-
6421
-
6422
- /**
6423
- * Public static functions
6424
- */
6425
- $.magnificPopup = {
6426
- instance: null,
6427
- proto: MagnificPopup.prototype,
6428
- modules: [],
6429
-
6430
- open: function (options, index) {
6431
- _checkInstance();
6432
 
6433
- if (!options) {
6434
- options = {};
6435
- } else {
6436
- options = $.extend(true, {}, options);
6437
  }
6438
 
6439
- options.isObj = true;
6440
- options.index = index || 0;
6441
- return this.instance.open(options);
6442
- },
6443
 
6444
- close: function () {
6445
- return $.magnificPopup.instance && $.magnificPopup.instance.close();
6446
- },
 
6447
 
6448
- registerModule: function (name, module) {
6449
- if (module.options) {
6450
- $.magnificPopup.defaults[name] = module.options;
6451
- }
6452
- $.extend(this.proto, module.proto);
6453
- this.modules.push(name);
6454
- },
 
 
6455
 
6456
- defaults: {
 
 
6457
 
6458
- // Info about options is in docs:
6459
- // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
6460
 
6461
- disableOn: 0,
 
 
 
 
 
 
 
 
 
 
 
 
6462
 
6463
- key: null,
6464
 
6465
- midClick: false,
 
 
6466
 
6467
- mainClass: '',
6468
 
6469
- preloader: true,
 
 
 
 
6470
 
6471
- focus: '', // CSS selector of input to focus after popup is opened
 
 
 
6472
 
6473
- closeOnContentClick: false,
6474
 
6475
- closeOnBgClick: true,
 
 
6476
 
6477
- closeBtnInside: true,
6478
 
6479
- showCloseBtn: true,
 
 
 
6480
 
6481
- enableEscapeKey: true,
6482
 
6483
- modal: false,
 
6484
 
6485
- alignTop: false,
 
 
 
 
 
 
6486
 
6487
- removalDelay: 0,
6488
 
6489
- prependTo: null,
 
 
 
 
6490
 
6491
- fixedContentPos: 'auto',
6492
 
6493
- fixedBgPos: 'auto',
6494
 
6495
- overflowY: 'auto',
 
6496
 
6497
- closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
 
 
 
 
 
 
 
6498
 
6499
- tClose: 'Close (Esc)',
6500
 
6501
- tLoading: 'Loading...',
 
 
6502
 
6503
- autoFocusLast: true
6504
 
6505
- }
6506
- };
 
 
 
 
 
 
 
 
 
6507
 
6508
 
 
 
 
 
 
6509
 
6510
- $.fn.magnificPopup = function (options) {
6511
- _checkInstance();
6512
 
6513
- var jqEl = $(this);
 
 
6514
 
6515
- // We call some API method of first param is a string
6516
- if (typeof options === "string") {
6517
 
6518
- if (options === 'open') {
6519
- var items,
6520
- itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
6521
- index = parseInt(arguments[1], 10) || 0;
6522
 
6523
- if (itemOpts.items) {
6524
- items = itemOpts.items[index];
6525
- } else {
6526
- items = jqEl;
6527
- if (itemOpts.delegate) {
6528
- items = items.find(itemOpts.delegate);
6529
- }
6530
- items = items.eq(index);
6531
- }
6532
- mfp._openClick({ mfpEl: items }, jqEl, itemOpts);
6533
- } else {
6534
- if (mfp.isOpen)
6535
- mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
6536
- }
6537
 
6538
- } else {
6539
- // clone options obj
6540
- options = $.extend(true, {}, options);
6541
 
6542
- /*
6543
- * As Zepto doesn't support .data() method for objects
6544
- * and it works only in normal browsers
6545
- * we assign "options" object directly to the DOM element. FTW!
6546
- */
6547
- if (_isJQ) {
6548
- jqEl.data('magnificPopup', options);
6549
- } else {
6550
- jqEl[0].magnificPopup = options;
6551
- }
6552
 
6553
- mfp.addGroup(jqEl, options);
6554
 
6555
- }
6556
- return jqEl;
6557
- };
 
 
 
 
 
 
 
 
6558
 
6559
- /*>>core*/
 
 
 
6560
 
6561
- /*>>inline*/
 
 
6562
 
6563
- var INLINE_NS = 'inline',
6564
- _hiddenClass,
6565
- _inlinePlaceholder,
6566
- _lastInlineElement,
6567
- _putInlineElementsBack = function () {
6568
- if (_lastInlineElement) {
6569
- _inlinePlaceholder.after(_lastInlineElement.addClass(_hiddenClass)).detach();
6570
- _lastInlineElement = null;
6571
- }
6572
- };
6573
 
6574
- $.magnificPopup.registerModule(INLINE_NS, {
6575
- options: {
6576
- hiddenClass: 'hide', // will be appended with `mfp-` prefix
6577
- markup: '',
6578
- tNotFound: 'Content not found'
6579
- },
6580
- proto: {
6581
 
6582
- initInline: function () {
6583
- mfp.types.push(INLINE_NS);
6584
 
6585
- _mfpOn(CLOSE_EVENT + '.' + INLINE_NS, function () {
6586
- _putInlineElementsBack();
6587
- });
6588
- },
 
6589
 
6590
- getInline: function (item, template) {
6591
 
6592
- _putInlineElementsBack();
 
 
6593
 
6594
- if (item.src) {
6595
- var inlineSt = mfp.st.inline,
6596
- el = $(item.src);
6597
 
6598
- if (el.length) {
 
 
6599
 
6600
- // If target element has parent - we replace it with placeholder and put it back after popup is closed
6601
- var parent = el[0].parentNode;
6602
- if (parent && parent.tagName) {
6603
- if (!_inlinePlaceholder) {
6604
- _hiddenClass = inlineSt.hiddenClass;
6605
- _inlinePlaceholder = _getEl(_hiddenClass);
6606
- _hiddenClass = 'mfp-' + _hiddenClass;
6607
- }
6608
- // replace target inline element with placeholder
6609
- _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
6610
- }
6611
 
6612
- mfp.updateStatus('ready');
6613
- } else {
6614
- mfp.updateStatus('error', inlineSt.tNotFound);
6615
- el = $('<div>');
6616
- }
6617
 
6618
- item.inlineElement = el;
6619
- return el;
6620
- }
6621
 
6622
- mfp.updateStatus('ready');
6623
- mfp._parseMarkup(template, {}, item);
6624
- return template;
6625
- }
6626
- }
6627
- });
 
 
 
6628
 
6629
- /*>>inline*/
 
 
6630
 
6631
- /*>>ajax*/
6632
- var AJAX_NS = 'ajax',
6633
- _ajaxCur,
6634
- _removeAjaxCursor = function () {
6635
- if (_ajaxCur) {
6636
- $(document.body).removeClass(_ajaxCur);
6637
- }
6638
- },
6639
- _destroyAjaxRequest = function () {
6640
- _removeAjaxCursor();
6641
- if (mfp.req) {
6642
- mfp.req.abort();
6643
  }
6644
- };
6645
 
6646
- $.magnificPopup.registerModule(AJAX_NS, {
 
6647
 
6648
- options: {
6649
- settings: null,
6650
- cursor: 'mfp-ajax-cur',
6651
- tError: '<a href="%url%">The content</a> could not be loaded.'
6652
- },
6653
-
6654
- proto: {
6655
- initAjax: function () {
6656
- mfp.types.push(AJAX_NS);
6657
- _ajaxCur = mfp.st.ajax.cursor;
6658
-
6659
- _mfpOn(CLOSE_EVENT + '.' + AJAX_NS, _destroyAjaxRequest);
6660
- _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
6661
- },
6662
- getAjax: function (item) {
6663
 
6664
- if (_ajaxCur) {
6665
- $(document.body).addClass(_ajaxCur);
6666
- }
6667
 
6668
- mfp.updateStatus('loading');
 
 
 
 
 
 
6669
 
6670
- var opts = $.extend({
6671
- url: item.src,
6672
- success: function (data, textStatus, jqXHR) {
6673
- var temp = {
6674
- data: data,
6675
- xhr: jqXHR
6676
- };
6677
 
6678
- _mfpTrigger('ParseAjax', temp);
 
6679
 
6680
- mfp.appendContent($(temp.data), AJAX_NS);
 
 
 
 
6681
 
6682
- item.finished = true;
6683
 
6684
- _removeAjaxCursor();
 
6685
 
6686
- mfp._setFocus();
6687
 
6688
- setTimeout(function () {
6689
- mfp.wrap.addClass(READY_CLASS);
6690
- }, 16);
6691
 
6692
- mfp.updateStatus('ready');
 
 
6693
 
6694
- _mfpTrigger('AjaxContentAdded');
6695
- },
6696
- error: function () {
6697
- _removeAjaxCursor();
6698
- item.finished = item.loadError = true;
6699
- mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
6700
- }
6701
- }, mfp.st.ajax.settings);
6702
 
6703
- mfp.req = $.ajax(opts);
 
6704
 
6705
- return '';
6706
- }
6707
  }
6708
- });
6709
 
6710
- /*>>ajax*/
 
6711
 
6712
- /*>>image*/
6713
- var _imgInterval,
6714
- _getTitle = function (item) {
6715
- if (item.data && item.data.title !== undefined)
6716
- return item.data.title;
6717
 
6718
- var src = mfp.st.image.titleSrc;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6719
 
6720
- if (src) {
6721
- if ($.isFunction(src)) {
6722
- return src.call(mfp, item);
6723
- } else if (item.el) {
6724
- return item.el.attr(src) || '';
6725
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6726
  }
6727
- return '';
6728
- };
6729
-
6730
- $.magnificPopup.registerModule('image', {
 
 
 
 
 
6731
 
6732
- options: {
6733
- markup: '<div class="mfp-figure">' +
6734
- '<div class="mfp-close"></div>' +
6735
- '<figure>' +
6736
- '<div class="mfp-img"></div>' +
6737
- '<figcaption>' +
6738
- '<div class="mfp-bottom-bar">' +
6739
- '<div class="mfp-title"></div>' +
6740
- '<div class="mfp-counter"></div>' +
6741
- '</div>' +
6742
- '</figcaption>' +
6743
- '</figure>' +
6744
- '</div>',
6745
- cursor: 'mfp-zoom-out-cur',
6746
- titleSrc: 'title',
6747
- verticalFit: true,
6748
- tError: '<a href="%url%">The image</a> could not be loaded.'
6749
- },
6750
 
6751
- proto: {
6752
- initImage: function () {
6753
- var imgSt = mfp.st.image,
6754
- ns = '.image';
6755
 
6756
- mfp.types.push('image');
 
 
 
6757
 
6758
- _mfpOn(OPEN_EVENT + ns, function () {
6759
- if (mfp.currItem.type === 'image' && imgSt.cursor) {
6760
- $(document.body).addClass(imgSt.cursor);
6761
- }
6762
- });
6763
 
6764
- _mfpOn(CLOSE_EVENT + ns, function () {
6765
- if (imgSt.cursor) {
6766
- $(document.body).removeClass(imgSt.cursor);
6767
- }
6768
- _window.off('resize' + EVENT_NS);
6769
- });
6770
 
6771
- _mfpOn('Resize' + ns, mfp.resizeImage);
6772
- if (mfp.isLowIE) {
6773
- _mfpOn('AfterChange', mfp.resizeImage);
6774
- }
6775
- },
6776
- resizeImage: function () {
6777
- var item = mfp.currItem;
6778
- if (!item || !item.img) return;
6779
 
6780
- if (mfp.st.image.verticalFit) {
6781
- var decr = 0;
6782
- // fix box-sizing in ie7/8
6783
- if (mfp.isLowIE) {
6784
- decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'), 10);
6785
- }
6786
- item.img.css('max-height', mfp.wH - decr);
6787
- }
6788
- },
6789
- _onImageHasSize: function (item) {
6790
- if (item.img) {
6791
 
6792
- item.hasSize = true;
6793
 
6794
- if (_imgInterval) {
6795
- clearInterval(_imgInterval);
6796
- }
 
 
 
 
 
 
 
6797
 
6798
- item.isCheckingImgSize = false;
 
 
 
 
 
 
6799
 
6800
- _mfpTrigger('ImageHasSize', item);
 
 
 
 
 
6801
 
6802
- if (item.imgHidden) {
6803
- if (mfp.content)
6804
- mfp.content.removeClass('mfp-loading');
 
6805
 
6806
- item.imgHidden = false;
6807
- }
6808
 
6809
- }
6810
- },
6811
-
6812
- /**
6813
- * Function that loops until the image has size to display elements that rely on it asap
6814
- */
6815
- findImageSize: function (item) {
6816
 
6817
- var counter = 0,
6818
- img = item.img[0],
6819
- mfpSetInterval = function (delay) {
6820
 
6821
- if (_imgInterval) {
6822
- clearInterval(_imgInterval);
6823
- }
6824
- // decelerating interval that checks for size of an image
6825
- _imgInterval = setInterval(function () {
6826
- if (img.naturalWidth > 0) {
6827
- mfp._onImageHasSize(item);
6828
- return;
6829
- }
6830
 
6831
- if (counter > 200) {
6832
- clearInterval(_imgInterval);
6833
- }
6834
 
6835
- counter++;
6836
- if (counter === 3) {
6837
- mfpSetInterval(10);
6838
- } else if (counter === 40) {
6839
- mfpSetInterval(50);
6840
- } else if (counter === 100) {
6841
- mfpSetInterval(500);
6842
- }
6843
- }, delay);
6844
- };
6845
 
6846
- mfpSetInterval(1);
6847
- },
6848
 
6849
- getImage: function (item, template) {
 
 
6850
 
6851
- var guard = 0,
6852
 
6853
- // image load complete handler
6854
- onLoadComplete = function () {
6855
- if (item) {
6856
- if (item.img[0].complete) {
6857
- item.img.off('.mfploader');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6858
 
6859
- if (item === mfp.currItem) {
6860
- mfp._onImageHasSize(item);
 
6861
 
6862
- mfp.updateStatus('ready');
6863
- }
6864
 
6865
- item.hasSize = true;
6866
- item.loaded = true;
 
 
 
6867
 
6868
- _mfpTrigger('ImageLoadComplete');
 
 
 
 
 
 
6869
 
6870
- }
6871
- else {
6872
- // if image complete check fails 200 times (20 sec), we assume that there was an error.
6873
- guard++;
6874
- if (guard < 200) {
6875
- setTimeout(onLoadComplete, 100);
6876
- } else {
6877
- onLoadError();
6878
- }
6879
- }
6880
- }
6881
- },
6882
 
6883
- // image error handler
6884
- onLoadError = function () {
6885
- if (item) {
6886
- item.img.off('.mfploader');
6887
- if (item === mfp.currItem) {
6888
- mfp._onImageHasSize(item);
6889
- mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src));
6890
- }
6891
 
6892
- item.hasSize = true;
6893
- item.loaded = true;
6894
- item.loadError = true;
6895
- }
6896
- },
6897
- imgSt = mfp.st.image;
6898
 
 
 
 
 
 
 
 
 
 
 
 
6899
 
6900
- var el = template.find('.mfp-img');
6901
- if (el.length) {
6902
- var img = document.createElement('img');
6903
- img.className = 'mfp-img';
6904
- if (item.el && item.el.find('img').length) {
6905
- img.alt = item.el.find('img').attr('alt');
6906
- }
6907
- item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
6908
- img.src = item.src;
6909
 
6910
- // without clone() "error" event is not firing when IMG is replaced by new IMG
6911
- // TODO: find a way to avoid such cloning
6912
- if (el.is('img')) {
6913
- item.img = item.img.clone();
6914
- }
6915
 
6916
- img = item.img[0];
6917
- if (img.naturalWidth > 0) {
6918
- item.hasSize = true;
6919
- } else if (!img.width) {
6920
- item.hasSize = false;
6921
- }
6922
- }
6923
 
6924
- mfp._parseMarkup(template, {
6925
- title: _getTitle(item),
6926
- img_replaceWith: item.img
6927
- }, item);
6928
 
6929
- mfp.resizeImage();
6930
 
6931
- if (item.hasSize) {
6932
- if (_imgInterval) clearInterval(_imgInterval);
 
 
 
 
 
 
 
 
 
 
 
6933
 
6934
- if (item.loadError) {
6935
- template.addClass('mfp-loading');
6936
- mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src));
6937
- } else {
6938
- template.removeClass('mfp-loading');
6939
- mfp.updateStatus('ready');
6940
- }
6941
- return template;
6942
- }
6943
 
6944
- mfp.updateStatus('loading');
6945
- item.loading = true;
6946
 
6947
- if (!item.hasSize) {
6948
- item.imgHidden = true;
6949
- template.addClass('mfp-loading');
6950
- mfp.findImageSize(item);
6951
- }
 
 
 
 
6952
 
6953
- return template;
6954
- }
6955
- }
6956
- });
6957
 
6958
- /*>>image*/
 
 
6959
 
6960
- /*>>zoom*/
6961
- var hasMozTransform,
6962
- getHasMozTransform = function () {
6963
- if (hasMozTransform === undefined) {
6964
- hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
6965
- }
6966
- return hasMozTransform;
6967
- };
6968
 
6969
- $.magnificPopup.registerModule('zoom', {
 
 
 
6970
 
6971
- options: {
6972
- enabled: false,
6973
- easing: 'ease-in-out',
6974
- duration: 300,
6975
- opener: function (element) {
6976
- return element.is('img') ? element : element.find('img');
6977
- }
6978
- },
6979
 
6980
- proto: {
6981
 
6982
- initZoom: function () {
6983
- var zoomSt = mfp.st.zoom,
6984
- ns = '.zoom',
6985
- image;
 
6986
 
6987
- if (!zoomSt.enabled || !mfp.supportsTransition) {
6988
- return;
6989
- }
6990
 
6991
- var duration = zoomSt.duration,
6992
- getElToAnimate = function (image) {
6993
- var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
6994
- transition = 'all ' + (zoomSt.duration / 1000) + 's ' + zoomSt.easing,
6995
- cssObj = {
6996
- position: 'fixed',
6997
- zIndex: 9999,
6998
- left: 0,
6999
- top: 0,
7000
- '-webkit-backface-visibility': 'hidden'
7001
- },
7002
- t = 'transition';
7003
 
7004
- cssObj['-webkit-' + t] = cssObj['-moz-' + t] = cssObj['-o-' + t] = cssObj[t] = transition;
 
7005
 
7006
- newImg.css(cssObj);
7007
- return newImg;
7008
- },
7009
- showMainContent = function () {
7010
- mfp.content.css('visibility', 'visible');
7011
- },
7012
- openTimeout,
7013
- animatedImg;
7014
 
7015
- _mfpOn('BuildControls' + ns, function () {
7016
- if (mfp._allowZoom()) {
7017
 
7018
- clearTimeout(openTimeout);
7019
- mfp.content.css('visibility', 'hidden');
 
7020
 
7021
- // Basically, all code below does is clones existing image, puts in on top of the current one and animated it
7022
 
7023
- image = mfp._getItemToZoom();
7024
 
7025
- if (!image) {
7026
- showMainContent();
7027
- return;
7028
- }
7029
 
7030
- animatedImg = getElToAnimate(image);
 
 
 
 
7031
 
7032
- animatedImg.css(mfp._getOffset());
 
 
7033
 
7034
- mfp.wrap.append(animatedImg);
7035
 
7036
- openTimeout = setTimeout(function () {
7037
- animatedImg.css(mfp._getOffset(true));
7038
- openTimeout = setTimeout(function () {
 
 
7039
 
7040
- showMainContent();
 
 
 
 
 
 
 
 
7041
 
7042
- setTimeout(function () {
7043
- animatedImg.remove();
7044
- image = animatedImg = null;
7045
- _mfpTrigger('ZoomAnimationEnded');
7046
- }, 16); // avoid blink when switching images
7047
 
7048
- }, duration); // this timeout equals animation duration
7049
 
7050
- }, 16); // by adding this timeout we avoid short glitch at the beginning of animation
 
7051
 
 
 
 
7052
 
7053
- // Lots of timeouts...
7054
- }
7055
- });
7056
- _mfpOn(BEFORE_CLOSE_EVENT + ns, function () {
7057
- if (mfp._allowZoom()) {
7058
 
7059
- clearTimeout(openTimeout);
7060
 
7061
- mfp.st.removalDelay = duration;
 
 
7062
 
7063
- if (!image) {
7064
- image = mfp._getItemToZoom();
7065
- if (!image) {
7066
- return;
7067
- }
7068
- animatedImg = getElToAnimate(image);
7069
- }
7070
 
7071
- animatedImg.css(mfp._getOffset(true));
7072
- mfp.wrap.append(animatedImg);
7073
- mfp.content.css('visibility', 'hidden');
7074
 
7075
- setTimeout(function () {
7076
- animatedImg.css(mfp._getOffset());
7077
- }, 16);
7078
- }
7079
 
7080
- });
 
 
7081
 
7082
- _mfpOn(CLOSE_EVENT + ns, function () {
7083
- if (mfp._allowZoom()) {
7084
- showMainContent();
7085
- if (animatedImg) {
7086
- animatedImg.remove();
7087
- }
7088
- image = null;
7089
- }
7090
- });
7091
- },
7092
 
7093
- _allowZoom: function () {
7094
- return mfp.currItem.type === 'image';
7095
- },
 
 
7096
 
7097
- _getItemToZoom: function () {
7098
- if (mfp.currItem.hasSize) {
7099
- return mfp.currItem.img;
7100
- } else {
7101
- return false;
7102
- }
7103
- },
7104
 
7105
- // Get element postion relative to viewport
7106
- _getOffset: function (isLarge) {
7107
- var el;
7108
- if (isLarge) {
7109
- el = mfp.currItem.img;
7110
- } else {
7111
- el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
7112
- }
7113
 
7114
- var offset = el.offset();
7115
- var paddingTop = parseInt(el.css('padding-top'), 10);
7116
- var paddingBottom = parseInt(el.css('padding-bottom'), 10);
7117
- offset.top -= ($(window).scrollTop() - paddingTop);
 
 
 
7118
 
 
 
 
 
7119
 
7120
- /*
7121
-
7122
- Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
7123
-
7124
- */
7125
- var obj = {
7126
- width: el.width(),
7127
- // fix Zepto height+padding issue
7128
- height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
7129
- };
7130
 
7131
- // I hate to do this, but there is no another option
7132
- if (getHasMozTransform()) {
7133
- obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
7134
- } else {
7135
- obj.left = offset.left;
7136
- obj.top = offset.top;
7137
- }
7138
- return obj;
7139
- }
7140
 
7141
- }
7142
- });
7143
 
 
 
 
7144
 
7145
 
7146
- /*>>zoom*/
 
7147
 
7148
- /*>>iframe*/
 
 
 
 
 
 
7149
 
7150
- var IFRAME_NS = 'iframe',
7151
- _emptyPage = '//about:blank',
7152
 
7153
- _fixIframeBugs = function (isShowing) {
7154
- if (mfp.currTemplate[IFRAME_NS]) {
7155
- var el = mfp.currTemplate[IFRAME_NS].find('iframe');
7156
- if (el.length) {
7157
- // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
7158
- if (!isShowing) {
7159
- el[0].src = _emptyPage;
7160
- }
7161
 
7162
- // IE8 black screen bug fix
7163
- if (mfp.isIE8) {
7164
- el.css('display', isShowing ? 'block' : 'none');
7165
- }
7166
- }
7167
- }
7168
- };
7169
 
7170
- $.magnificPopup.registerModule(IFRAME_NS, {
 
 
 
 
 
 
7171
 
7172
- options: {
7173
- markup: '<div class="mfp-iframe-scaler">' +
7174
- '<div class="mfp-close"></div>' +
7175
- '<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>' +
7176
- '</div>',
7177
 
7178
- srcAction: 'iframe_src',
7179
 
7180
- // we don't care and support only one default type of URL by default
7181
- patterns: {
7182
- youtube: {
7183
- index: 'youtube.com',
7184
- id: 'v=',
7185
- src: '//www.youtube.com/embed/%id%?autoplay=1'
7186
- },
7187
- vimeo: {
7188
- index: 'vimeo.com/',
7189
- id: '/',
7190
- src: '//player.vimeo.com/video/%id%?autoplay=1'
7191
- },
7192
- gmaps: {
7193
- index: '//maps.google.',
7194
- src: '%id%&output=embed'
7195
- }
7196
- }
7197
- },
7198
 
7199
- proto: {
7200
- initIframe: function () {
7201
- mfp.types.push(IFRAME_NS);
7202
 
7203
- _mfpOn('BeforeChange', function (e, prevType, newType) {
7204
- if (prevType !== newType) {
7205
- if (prevType === IFRAME_NS) {
7206
- _fixIframeBugs(); // iframe if removed
7207
- } else if (newType === IFRAME_NS) {
7208
- _fixIframeBugs(true); // iframe is showing
7209
- }
7210
- }// else {
7211
- // iframe source is switched, don't do anything
7212
- //}
7213
- });
 
 
 
 
 
 
 
 
7214
 
7215
- _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function () {
7216
- _fixIframeBugs();
7217
- });
7218
- },
 
 
7219
 
7220
- getIframe: function (item, template) {
7221
- var embedSrc = item.src;
7222
- var iframeSt = mfp.st.iframe;
 
 
 
 
 
 
7223
 
7224
- $.each(iframeSt.patterns, function () {
7225
- if (embedSrc.indexOf(this.index) > -1) {
7226
- if (this.id) {
7227
- if (typeof this.id === 'string') {
7228
- embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id) + this.id.length, embedSrc.length);
7229
- } else {
7230
- embedSrc = this.id.call(this, embedSrc);
7231
- }
7232
- }
7233
- embedSrc = this.src.replace('%id%', embedSrc);
7234
- return false; // break;
7235
- }
7236
- });
7237
 
7238
- var dataObj = {};
7239
- if (iframeSt.srcAction) {
7240
- dataObj[iframeSt.srcAction] = embedSrc;
7241
- }
7242
- mfp._parseMarkup(template, dataObj, item);
 
 
7243
 
7244
- mfp.updateStatus('ready');
 
 
 
7245
 
7246
- return template;
7247
- }
7248
- }
7249
- });
7250
 
 
 
 
 
7251
 
 
 
 
7252
 
7253
- /*>>iframe*/
 
 
7254
 
7255
- /*>>gallery*/
7256
- /**
7257
- * Get looped index depending on number of slides
7258
- */
7259
- var _getLoopedId = function (index) {
7260
- var numSlides = mfp.items.length;
7261
- if (index > numSlides - 1) {
7262
- return index - numSlides;
7263
- } else if (index < 0) {
7264
- return numSlides + index;
7265
- }
7266
- return index;
7267
- },
7268
- _replaceCurrTotal = function (text, curr, total) {
7269
- return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
7270
- };
7271
 
7272
- $.magnificPopup.registerModule('gallery', {
7273
 
7274
- options: {
7275
- enabled: false,
7276
- arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
7277
- preload: [0, 2],
7278
- navigateByImgClick: true,
7279
- arrows: true,
7280
 
7281
- tPrev: 'Previous (Left arrow key)',
7282
- tNext: 'Next (Right arrow key)',
7283
- tCounter: '%curr% of %total%'
7284
- },
7285
 
7286
- proto: {
7287
- initGallery: function () {
 
7288
 
7289
- var gSt = mfp.st.gallery,
7290
- ns = '.mfp-gallery';
7291
 
7292
- mfp.direction = true; // true - next, false - prev
 
 
 
 
 
 
7293
 
7294
- if (!gSt || !gSt.enabled) return false;
 
 
 
 
 
7295
 
7296
- _wrapClasses += ' mfp-gallery';
7297
 
7298
- _mfpOn(OPEN_EVENT + ns, function () {
 
 
7299
 
7300
- if (gSt.navigateByImgClick) {
7301
- mfp.wrap.on('click' + ns, '.mfp-img', function () {
7302
- if (mfp.items.length > 1) {
7303
- mfp.next();
7304
- return false;
7305
- }
7306
- });
7307
- }
7308
 
7309
- _document.on('keydown' + ns, function (e) {
7310
- if (e.keyCode === 37) {
7311
- mfp.prev();
7312
- } else if (e.keyCode === 39) {
7313
- mfp.next();
7314
- }
7315
- });
7316
- });
7317
 
7318
- _mfpOn('UpdateStatus' + ns, function (e, data) {
7319
- if (data.text) {
7320
- data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
7321
- }
7322
- });
7323
 
7324
- _mfpOn(MARKUP_PARSE_EVENT + ns, function (e, element, values, item) {
7325
- var l = mfp.items.length;
7326
- values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
7327
- });
 
 
7328
 
7329
- _mfpOn('BuildControls' + ns, function () {
7330
- if (mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
7331
- var markup = gSt.arrowMarkup,
7332
- arrowLeft = mfp.arrowLeft = $(markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left')).addClass(PREVENT_CLOSE_CLASS),
7333
- arrowRight = mfp.arrowRight = $(markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right')).addClass(PREVENT_CLOSE_CLASS);
7334
 
7335
- arrowLeft.click(function () {
7336
- mfp.prev();
7337
- });
7338
- arrowRight.click(function () {
7339
- mfp.next();
7340
- });
7341
 
7342
- mfp.container.append(arrowLeft.add(arrowRight));
7343
- }
7344
- });
7345
 
7346
- _mfpOn(CHANGE_EVENT + ns, function () {
7347
- if (mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
7348
 
7349
- mfp._preloadTimeout = setTimeout(function () {
7350
- mfp.preloadNearbyImages();
7351
- mfp._preloadTimeout = null;
7352
- }, 16);
7353
- });
7354
 
 
 
 
7355
 
7356
- _mfpOn(CLOSE_EVENT + ns, function () {
7357
- _document.off(ns);
7358
- mfp.wrap.off('click' + ns);
7359
- mfp.arrowRight = mfp.arrowLeft = null;
7360
- });
 
7361
 
7362
- },
7363
- next: function () {
7364
- mfp.direction = true;
7365
- mfp.index = _getLoopedId(mfp.index + 1);
7366
- mfp.updateItemHTML();
7367
- },
7368
- prev: function () {
7369
- mfp.direction = false;
7370
- mfp.index = _getLoopedId(mfp.index - 1);
7371
- mfp.updateItemHTML();
7372
- },
7373
- goTo: function (newIndex) {
7374
- mfp.direction = (newIndex >= mfp.index);
7375
- mfp.index = newIndex;
7376
- mfp.updateItemHTML();
7377
- },
7378
- preloadNearbyImages: function () {
7379
- var p = mfp.st.gallery.preload,
7380
- preloadBefore = Math.min(p[0], mfp.items.length),
7381
- preloadAfter = Math.min(p[1], mfp.items.length),
7382
- i;
7383
 
7384
- for (i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
7385
- mfp._preloadItem(mfp.index + i);
7386
- }
7387
- for (i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
7388
- mfp._preloadItem(mfp.index - i);
7389
- }
7390
- },
7391
- _preloadItem: function (index) {
7392
- index = _getLoopedId(index);
7393
 
7394
- if (mfp.items[index].preloaded) {
7395
- return;
7396
- }
7397
 
7398
- var item = mfp.items[index];
7399
- if (!item.parsed) {
7400
- item = mfp.parseEl(index);
7401
- }
7402
 
7403
- _mfpTrigger('LazyLoad', item);
 
7404
 
7405
- if (item.type === 'image') {
7406
- item.img = $('<img class="mfp-img" />').on('load.mfploader', function () {
7407
- item.hasSize = true;
7408
- }).on('error.mfploader', function () {
7409
- item.hasSize = true;
7410
- item.loadError = true;
7411
- _mfpTrigger('LazyLoadError', item);
7412
- }).attr('src', item.src);
7413
- }
7414
 
 
 
 
7415
 
7416
- item.preloaded = true;
7417
- }
7418
- }
7419
- });
7420
 
7421
- /*>>gallery*/
 
 
7422
 
7423
- /*>>retina*/
 
 
 
 
 
 
 
 
 
 
 
7424
 
7425
- var RETINA_NS = 'retina';
 
 
7426
 
7427
- $.magnificPopup.registerModule(RETINA_NS, {
7428
- options: {
7429
- replaceSrc: function (item) {
7430
- return item.src.replace(/\.\w+$/, function (m) { return '@2x' + m; });
7431
- },
7432
- ratio: 1 // Function or number. Set to 1 to disable.
7433
- },
7434
- proto: {
7435
- initRetina: function () {
7436
- if (window.devicePixelRatio > 1) {
7437
 
7438
- var st = mfp.st.retina,
7439
- ratio = st.ratio;
 
 
 
 
7440
 
7441
- ratio = !isNaN(ratio) ? ratio : ratio();
 
 
 
7442
 
7443
- if (ratio > 1) {
7444
- _mfpOn('ImageHasSize' + '.' + RETINA_NS, function (e, item) {
7445
- item.img.css({
7446
- 'max-width': item.img[0].naturalWidth / ratio,
7447
- 'width': '100%'
7448
- });
7449
- });
7450
- _mfpOn('ElementParse' + '.' + RETINA_NS, function (e, item) {
7451
- item.src = st.replaceSrc(item, ratio);
7452
- });
7453
- }
7454
- }
7455
 
7456
- }
 
 
 
 
7457
  }
7458
- });
7459
 
7460
- /*>>retina*/
7461
- _checkInstance();
7462
- }));
7463
- (function($) {
7464
- $.fn.eaelProgressBar = function() {
7465
- var $this = $(this)
7466
- var $layout = $this.data('layout')
7467
- var $num = $this.data('count')
7468
- var $duration = $this.data('duration')
7469
 
7470
- $this.one('inview', function() {
7471
- if ($layout == 'line') {
7472
- $('.eael-progressbar-line-fill', $this).css({
7473
- 'width': $num + '%',
7474
- })
7475
- } else if ($layout == 'half_circle') {
7476
- $('.eael-progressbar-circle-half', $this).css({
7477
- 'transform': 'rotate(' + ($num * 1.8) + 'deg)',
7478
- })
7479
- }
7480
 
7481
- $('.eael-progressbar-count', $this).prop({
7482
- 'counter': 0
7483
- }).animate({
7484
- counter: $num
7485
- }, {
7486
- duration: $duration,
7487
- easing: 'linear',
7488
- step: function(counter) {
7489
- if ($layout == 'circle') {
7490
- var rotate = (counter * 3.6)
7491
- $('.eael-progressbar-circle-half-left', $this).css({
7492
- 'transform': "rotate(" + rotate + "deg)",
7493
- })
7494
- if (rotate > 180) {
7495
- $('.eael-progressbar-circle-pie', $this).css({
7496
- '-webkit-clip-path': 'inset(0)',
7497
- 'clip-path': 'inset(0)',
7498
- })
7499
- $('.eael-progressbar-circle-half-right', $this).css({
7500
- 'visibility': 'visible'
7501
- })
7502
- }
7503
- }
7504
 
7505
- $(this).text(Math.ceil(counter))
7506
- }
7507
- })
7508
- })
7509
- }
7510
- }(jQuery));
7511
- typeof navigator === "object" && (function (global, factory) {
7512
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
7513
- typeof define === 'function' && define.amd ? define('Plyr', factory) :
7514
- (global = global || self, global.Plyr = factory());
7515
- }(this, function () { 'use strict';
7516
 
7517
- function _classCallCheck(instance, Constructor) {
7518
- if (!(instance instanceof Constructor)) {
7519
- throw new TypeError("Cannot call a class as a function");
7520
- }
7521
- }
7522
 
7523
- function _defineProperties(target, props) {
7524
- for (var i = 0; i < props.length; i++) {
7525
- var descriptor = props[i];
7526
- descriptor.enumerable = descriptor.enumerable || false;
7527
- descriptor.configurable = true;
7528
- if ("value" in descriptor) descriptor.writable = true;
7529
- Object.defineProperty(target, descriptor.key, descriptor);
7530
- }
7531
- }
7532
 
7533
- function _createClass(Constructor, protoProps, staticProps) {
7534
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
7535
- if (staticProps) _defineProperties(Constructor, staticProps);
7536
- return Constructor;
7537
- }
7538
 
7539
- function _defineProperty(obj, key, value) {
7540
- if (key in obj) {
7541
- Object.defineProperty(obj, key, {
7542
- value: value,
7543
- enumerable: true,
7544
- configurable: true,
7545
- writable: true
7546
- });
7547
- } else {
7548
- obj[key] = value;
7549
- }
7550
 
7551
- return obj;
7552
- }
7553
 
7554
- function _slicedToArray(arr, i) {
7555
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
7556
- }
7557
-
7558
- function _toConsumableArray(arr) {
7559
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
7560
- }
7561
-
7562
- function _arrayWithoutHoles(arr) {
7563
- if (Array.isArray(arr)) {
7564
- for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
 
 
 
7565
 
7566
- return arr2;
7567
- }
7568
- }
7569
 
7570
- function _arrayWithHoles(arr) {
7571
- if (Array.isArray(arr)) return arr;
7572
- }
 
 
 
 
 
7573
 
7574
- function _iterableToArray(iter) {
7575
- if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
7576
- }
7577
 
7578
- function _iterableToArrayLimit(arr, i) {
7579
- var _arr = [];
7580
- var _n = true;
7581
- var _d = false;
7582
- var _e = undefined;
7583
 
7584
- try {
7585
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
7586
- _arr.push(_s.value);
7587
 
7588
- if (i && _arr.length === i) break;
7589
- }
7590
- } catch (err) {
7591
- _d = true;
7592
- _e = err;
7593
- } finally {
7594
- try {
7595
- if (!_n && _i["return"] != null) _i["return"]();
7596
- } finally {
7597
- if (_d) throw _e;
7598
  }
7599
  }
 
7600
 
7601
- return _arr;
7602
- }
 
 
 
7603
 
7604
- function _nonIterableSpread() {
7605
- throw new TypeError("Invalid attempt to spread non-iterable instance");
7606
- }
7607
 
7608
- function _nonIterableRest() {
7609
- throw new TypeError("Invalid attempt to destructure non-iterable instance");
7610
- }
 
 
7611
 
7612
- var defaults = {
7613
- addCSS: true,
7614
- // Add CSS to the element to improve usability (required here or in your CSS!)
7615
- thumbWidth: 15,
7616
- // The width of the thumb handle
7617
- watch: true // Watch for new elements that match a string target
7618
 
7619
- };
 
7620
 
7621
- // Element matches a selector
7622
- function matches(element, selector) {
 
 
 
7623
 
7624
- function match() {
7625
- return Array.from(document.querySelectorAll(selector)).includes(this);
7626
  }
7627
 
7628
- var matches = match;
7629
- return matches.call(element, selector);
7630
  }
7631
 
7632
- // Trigger event
7633
- function trigger(element, type) {
7634
- if (!element || !type) {
7635
- return;
7636
- } // Create and dispatch the event
 
 
7637
 
7638
 
7639
- var event = new Event(type); // Dispatch the event
 
 
 
 
7640
 
7641
- element.dispatchEvent(event);
7642
- }
7643
 
7644
- // ==========================================================================
7645
- // Type checking utils
7646
- // ==========================================================================
7647
- var getConstructor = function getConstructor(input) {
7648
- return input !== null && typeof input !== 'undefined' ? input.constructor : null;
7649
- };
7650
 
7651
- var instanceOf = function instanceOf(input, constructor) {
7652
- return Boolean(input && constructor && input instanceof constructor);
7653
- };
 
 
7654
 
7655
- var isNullOrUndefined = function isNullOrUndefined(input) {
7656
- return input === null || typeof input === 'undefined';
7657
- };
7658
 
7659
- var isObject = function isObject(input) {
7660
- return getConstructor(input) === Object;
7661
- };
 
 
7662
 
7663
- var isNumber = function isNumber(input) {
7664
- return getConstructor(input) === Number && !Number.isNaN(input);
7665
- };
 
 
 
 
 
 
 
 
 
 
 
7666
 
7667
- var isString = function isString(input) {
7668
- return getConstructor(input) === String;
7669
- };
7670
 
7671
- var isBoolean = function isBoolean(input) {
7672
- return getConstructor(input) === Boolean;
7673
- };
 
 
7674
 
7675
- var isFunction = function isFunction(input) {
7676
- return getConstructor(input) === Function;
7677
- };
7678
 
7679
- var isArray = function isArray(input) {
7680
- return Array.isArray(input);
7681
- };
7682
 
7683
- var isNodeList = function isNodeList(input) {
7684
- return instanceOf(input, NodeList);
7685
- };
7686
 
7687
- var isElement = function isElement(input) {
7688
- return instanceOf(input, Element);
7689
- };
7690
 
7691
- var isEvent = function isEvent(input) {
7692
- return instanceOf(input, Event);
7693
- };
 
 
 
7694
 
7695
- var isEmpty = function isEmpty(input) {
7696
- return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length;
7697
- };
 
7698
 
7699
- var is = {
7700
- nullOrUndefined: isNullOrUndefined,
7701
- object: isObject,
7702
- number: isNumber,
7703
- string: isString,
7704
- boolean: isBoolean,
7705
- function: isFunction,
7706
- array: isArray,
7707
- nodeList: isNodeList,
7708
- element: isElement,
7709
- event: isEvent,
7710
- empty: isEmpty
7711
- };
7712
 
7713
- // Get the number of decimal places
7714
- function getDecimalPlaces(value) {
7715
- var match = "".concat(value).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
 
 
7716
 
7717
- if (!match) {
7718
- return 0;
7719
- }
7720
 
7721
- return Math.max(0, // Number of digits right of decimal point.
7722
- (match[1] ? match[1].length : 0) - ( // Adjust for scientific notation.
7723
- match[2] ? +match[2] : 0));
7724
- } // Round to the nearest step
 
 
 
 
7725
 
7726
- function round(number, step) {
7727
- if (step < 1) {
7728
- var places = getDecimalPlaces(step);
7729
- return parseFloat(number.toFixed(places));
7730
- }
7731
 
7732
- return Math.round(number / step) * step;
7733
- }
7734
 
7735
- var RangeTouch =
7736
- /*#__PURE__*/
7737
- function () {
7738
- /**
7739
- * Setup a new instance
7740
- * @param {String|Element} target
7741
- * @param {Object} options
7742
- */
7743
- function RangeTouch(target, options) {
7744
- _classCallCheck(this, RangeTouch);
7745
 
7746
- if (is.element(target)) {
7747
- // An Element is passed, use it directly
7748
- this.element = target;
7749
- } else if (is.string(target)) {
7750
- // A CSS Selector is passed, fetch it from the DOM
7751
- this.element = document.querySelector(target);
7752
- }
7753
 
7754
- if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) {
7755
- return;
7756
- }
 
 
7757
 
7758
- this.config = Object.assign({}, defaults, options);
7759
- this.init();
7760
- }
7761
 
7762
- _createClass(RangeTouch, [{
7763
- key: "init",
7764
- value: function init() {
7765
- // Bail if not a touch enabled device
7766
- if (!RangeTouch.enabled) {
7767
- return;
7768
- } // Add useful CSS
7769
 
7770
 
7771
- if (this.config.addCSS) {
7772
- // TODO: Restore original values on destroy
7773
- this.element.style.userSelect = 'none';
7774
- this.element.style.webKitUserSelect = 'none';
7775
- this.element.style.touchAction = 'manipulation';
7776
- }
7777
 
7778
- this.listeners(true);
7779
- this.element.rangeTouch = this;
7780
  }
7781
- }, {
7782
- key: "destroy",
7783
- value: function destroy() {
7784
- // Bail if not a touch enabled device
7785
- if (!RangeTouch.enabled) {
7786
- return;
7787
- }
7788
 
7789
- this.listeners(false);
7790
- this.element.rangeTouch = null;
 
7791
  }
7792
- }, {
7793
- key: "listeners",
7794
- value: function listeners(toggle) {
7795
- var _this = this;
7796
-
7797
- var method = toggle ? 'addEventListener' : 'removeEventListener'; // Listen for events
7798
 
7799
- ['touchstart', 'touchmove', 'touchend'].forEach(function (type) {
7800
- _this.element[method](type, function (event) {
7801
- return _this.set(event);
7802
- }, false);
7803
- });
7804
- }
7805
- /**
7806
- * Get the value based on touch position
7807
- * @param {Event} event
7808
- */
7809
 
7810
- }, {
7811
- key: "get",
7812
- value: function get(event) {
7813
- if (!RangeTouch.enabled || !is.event(event)) {
7814
- return null;
7815
- }
7816
 
7817
- var input = event.target;
7818
- var touch = event.changedTouches[0];
7819
- var min = parseFloat(input.getAttribute('min')) || 0;
7820
- var max = parseFloat(input.getAttribute('max')) || 100;
7821
- var step = parseFloat(input.getAttribute('step')) || 1;
7822
- var delta = max - min; // Calculate percentage
7823
 
7824
- var percent;
7825
- var clientRect = input.getBoundingClientRect();
7826
- var thumbWidth = 100 / clientRect.width * (this.config.thumbWidth / 2) / 100; // Determine left percentage
 
 
 
 
 
7827
 
7828
- percent = 100 / clientRect.width * (touch.clientX - clientRect.left); // Don't allow outside bounds
7829
 
7830
- if (percent < 0) {
7831
- percent = 0;
7832
- } else if (percent > 100) {
7833
- percent = 100;
7834
- } // Factor in the thumb offset
7835
 
 
7836
 
7837
- if (percent < 50) {
7838
- percent -= (100 - percent * 2) * thumbWidth;
7839
- } else if (percent > 50) {
7840
- percent += (percent - 50) * 2 * thumbWidth;
7841
- } // Find the closest step to the mouse position
7842
 
7843
 
7844
- return min + round(delta * (percent / 100), step);
7845
- }
7846
- /**
7847
- * Update range value based on position
7848
- * @param {Event} event
7849
- */
7850
 
7851
- }, {
7852
- key: "set",
7853
- value: function set(event) {
7854
- if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) {
7855
- return;
7856
- } // Prevent text highlight on iOS
7857
 
 
 
7858
 
7859
- event.preventDefault(); // Set value
7860
 
7861
- event.target.value = this.get(event); // Trigger event
 
 
 
 
 
 
 
7862
 
7863
- trigger(event.target, event.type === 'touchend' ? 'change' : 'input');
 
 
7864
  }
7865
- }], [{
7866
- key: "setup",
7867
 
7868
- /**
7869
- * Setup multiple instances
7870
- * @param {String|Element|NodeList|Array} target
7871
- * @param {Object} options
7872
- */
7873
- value: function setup(target) {
7874
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7875
- var targets = null;
7876
 
7877
- if (is.empty(target) || is.string(target)) {
7878
- targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type="range"]'));
7879
- } else if (is.element(target)) {
7880
- targets = [target];
7881
- } else if (is.nodeList(target)) {
7882
- targets = Array.from(target);
7883
- } else if (is.array(target)) {
7884
- targets = target.filter(is.element);
7885
- }
7886
 
7887
- if (is.empty(targets)) {
7888
- return null;
7889
- }
7890
 
7891
- var config = Object.assign({}, defaults, options);
 
7892
 
7893
- if (is.string(target) && config.watch) {
7894
- // Create an observer instance
7895
- var observer = new MutationObserver(function (mutations) {
7896
- Array.from(mutations).forEach(function (mutation) {
7897
- Array.from(mutation.addedNodes).forEach(function (node) {
7898
- if (!is.element(node) || !matches(node, target)) {
7899
- return;
7900
- } // eslint-disable-next-line no-unused-vars
7901
 
 
7902
 
7903
- var range = new RangeTouch(node, config);
7904
- });
7905
- });
7906
- }); // Pass in the target node, as well as the observer options
7907
 
7908
- observer.observe(document.body, {
7909
- childList: true,
7910
- subtree: true
 
7911
  });
7912
- }
7913
 
7914
- return targets.map(function (t) {
7915
- return new RangeTouch(t, options);
7916
- });
7917
- }
7918
- }, {
7919
- key: "enabled",
7920
- get: function get() {
7921
- return 'ontouchstart' in document.documentElement;
7922
- }
7923
- }]);
7924
-
7925
- return RangeTouch;
7926
- }();
7927
-
7928
- // ==========================================================================
7929
- // Type checking utils
7930
- // ==========================================================================
7931
- var getConstructor$1 = function getConstructor(input) {
7932
- return input !== null && typeof input !== 'undefined' ? input.constructor : null;
7933
- };
7934
 
7935
- var instanceOf$1 = function instanceOf(input, constructor) {
7936
- return Boolean(input && constructor && input instanceof constructor);
7937
- };
7938
 
7939
- var isNullOrUndefined$1 = function isNullOrUndefined(input) {
7940
- return input === null || typeof input === 'undefined';
7941
- };
7942
 
7943
- var isObject$1 = function isObject(input) {
7944
- return getConstructor$1(input) === Object;
7945
- };
7946
 
7947
- var isNumber$1 = function isNumber(input) {
7948
- return getConstructor$1(input) === Number && !Number.isNaN(input);
7949
- };
7950
 
7951
- var isString$1 = function isString(input) {
7952
- return getConstructor$1(input) === String;
7953
- };
7954
 
7955
- var isBoolean$1 = function isBoolean(input) {
7956
- return getConstructor$1(input) === Boolean;
7957
- };
 
 
 
 
 
 
7958
 
7959
- var isFunction$1 = function isFunction(input) {
7960
- return getConstructor$1(input) === Function;
7961
- };
 
7962
 
7963
- var isArray$1 = function isArray(input) {
7964
- return Array.isArray(input);
7965
- };
7966
 
7967
- var isWeakMap = function isWeakMap(input) {
7968
- return instanceOf$1(input, WeakMap);
7969
- };
7970
 
7971
- var isNodeList$1 = function isNodeList(input) {
7972
- return instanceOf$1(input, NodeList);
7973
- };
 
 
 
 
 
 
7974
 
7975
- var isElement$1 = function isElement(input) {
7976
- return instanceOf$1(input, Element);
7977
- };
 
7978
 
7979
- var isTextNode = function isTextNode(input) {
7980
- return getConstructor$1(input) === Text;
7981
- };
 
 
 
 
 
 
7982
 
7983
- var isEvent$1 = function isEvent(input) {
7984
- return instanceOf$1(input, Event);
7985
- };
7986
 
7987
- var isKeyboardEvent = function isKeyboardEvent(input) {
7988
- return instanceOf$1(input, KeyboardEvent);
7989
- };
7990
 
7991
- var isCue = function isCue(input) {
7992
- return instanceOf$1(input, window.TextTrackCue) || instanceOf$1(input, window.VTTCue);
7993
- };
 
 
 
 
 
 
 
7994
 
7995
- var isTrack = function isTrack(input) {
7996
- return instanceOf$1(input, TextTrack) || !isNullOrUndefined$1(input) && isString$1(input.kind);
7997
- };
 
 
 
 
 
 
7998
 
7999
- var isPromise = function isPromise(input) {
8000
- return instanceOf$1(input, Promise);
8001
- };
8002
 
8003
- var isEmpty$1 = function isEmpty(input) {
8004
- return isNullOrUndefined$1(input) || (isString$1(input) || isArray$1(input) || isNodeList$1(input)) && !input.length || isObject$1(input) && !Object.keys(input).length;
8005
- };
 
8006
 
8007
- var isUrl = function isUrl(input) {
8008
- // Accept a URL object
8009
- if (instanceOf$1(input, window.URL)) {
8010
- return true;
8011
- } // Must be string from here
8012
 
 
 
8013
 
8014
- if (!isString$1(input)) {
8015
- return false;
8016
- } // Add the protocol if required
 
 
 
 
 
 
8017
 
 
 
 
 
8018
 
8019
- var string = input;
8020
 
8021
- if (!input.startsWith('http://') || !input.startsWith('https://')) {
8022
- string = "http://".concat(input);
8023
- }
 
8024
 
8025
- try {
8026
- return !isEmpty$1(new URL(string).hostname);
8027
- } catch (e) {
8028
- return false;
8029
- }
8030
- };
8031
 
8032
- var is$1 = {
8033
- nullOrUndefined: isNullOrUndefined$1,
8034
- object: isObject$1,
8035
- number: isNumber$1,
8036
- string: isString$1,
8037
- boolean: isBoolean$1,
8038
- function: isFunction$1,
8039
- array: isArray$1,
8040
- weakMap: isWeakMap,
8041
- nodeList: isNodeList$1,
8042
- element: isElement$1,
8043
- textNode: isTextNode,
8044
- event: isEvent$1,
8045
- keyboardEvent: isKeyboardEvent,
8046
- cue: isCue,
8047
- track: isTrack,
8048
- promise: isPromise,
8049
- url: isUrl,
8050
- empty: isEmpty$1
8051
- };
8052
 
8053
- // ==========================================================================
8054
- var transitionEndEvent = function () {
8055
- var element = document.createElement('span');
8056
- var events = {
8057
- WebkitTransition: 'webkitTransitionEnd',
8058
- MozTransition: 'transitionend',
8059
- OTransition: 'oTransitionEnd otransitionend',
8060
- transition: 'transitionend'
8061
- };
8062
- var type = Object.keys(events).find(function (event) {
8063
- return element.style[event] !== undefined;
8064
- });
8065
- return is$1.string(type) ? events[type] : false;
8066
- }(); // Force repaint of element
8067
 
8068
- function repaint(element, delay) {
8069
- setTimeout(function () {
8070
- try {
8071
- // eslint-disable-next-line no-param-reassign
8072
- element.hidden = true; // eslint-disable-next-line no-unused-expressions
8073
 
8074
- element.offsetHeight; // eslint-disable-next-line no-param-reassign
 
 
 
 
 
8075
 
8076
- element.hidden = false;
8077
- } catch (e) {// Do nothing
8078
  }
8079
- }, delay);
8080
- }
8081
 
8082
  // ==========================================================================
8083
- // Browser sniffing
8084
- // Unfortunately, due to mixed support, UA sniffing is required
8085
  // ==========================================================================
8086
- var browser = {
8087
- isIE:
8088
- /* @cc_on!@ */
8089
- !!document.documentMode,
8090
- isEdge: window.navigator.userAgent.includes('Edge'),
8091
- isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),
8092
- isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),
8093
- isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform)
8094
- };
8095
-
8096
- // ==========================================================================
8097
- // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
8098
- // https://www.youtube.com/watch?v=NPM6172J22g
8099
-
8100
- var supportsPassiveListeners = function () {
8101
- // Test via a getter in the options object to see if the passive property is accessed
8102
- var supported = false;
8103
-
8104
- try {
8105
- var options = Object.defineProperty({}, 'passive', {
8106
- get: function get() {
8107
- supported = true;
8108
- return null;
8109
- }
8110
- });
8111
- window.addEventListener('test', null, options);
8112
- window.removeEventListener('test', null, options);
8113
- } catch (e) {// Do nothing
8114
- }
8115
-
8116
- return supported;
8117
- }(); // Toggle event listener
8118
-
8119
-
8120
- function toggleListener(element, event, callback) {
8121
- var _this = this;
8122
-
8123
- var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8124
- var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
8125
- var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
8126
-
8127
- // Bail if no element, event, or callback
8128
- if (!element || !('addEventListener' in element) || is$1.empty(event) || !is$1.function(callback)) {
8129
- return;
8130
- } // Allow multiple events
8131
-
8132
-
8133
- var events = event.split(' '); // Build options
8134
- // Default to just the capture boolean for browsers with no passive listener support
8135
-
8136
- var options = capture; // If passive events listeners are supported
8137
-
8138
- if (supportsPassiveListeners) {
8139
- options = {
8140
- // Whether the listener can be passive (i.e. default never prevented)
8141
- passive: passive,
8142
- // Whether the listener is a capturing listener or not
8143
- capture: capture
8144
- };
8145
- } // If a single node is passed, bind the event listener
8146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8147
 
8148
- events.forEach(function (type) {
8149
- if (_this && _this.eventListeners && toggle) {
8150
- // Cache event listener
8151
- _this.eventListeners.push({
8152
- element: element,
8153
- type: type,
8154
- callback: callback,
8155
- options: options
8156
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8157
  }
8158
-
8159
- element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);
8160
- });
8161
- } // Bind event handler
8162
-
8163
- function on(element) {
8164
- var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
8165
- var callback = arguments.length > 2 ? arguments[2] : undefined;
8166
- var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
8167
- var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
8168
- toggleListener.call(this, element, events, callback, true, passive, capture);
8169
- } // Unbind event handler
8170
-
8171
- function off(element) {
8172
- var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
8173
- var callback = arguments.length > 2 ? arguments[2] : undefined;
8174
- var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
8175
- var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
8176
- toggleListener.call(this, element, events, callback, false, passive, capture);
8177
- } // Bind once-only event handler
8178
-
8179
- function once(element) {
8180
- var _this2 = this;
8181
-
8182
- var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
8183
- var callback = arguments.length > 2 ? arguments[2] : undefined;
8184
- var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
8185
- var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
8186
-
8187
- var onceCallback = function onceCallback() {
8188
- off(element, events, onceCallback, passive, capture);
8189
-
8190
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8191
- args[_key] = arguments[_key];
8192
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8193
 
8194
- callback.apply(_this2, args);
8195
- };
8196
-
8197
- toggleListener.call(this, element, events, onceCallback, true, passive, capture);
8198
- } // Trigger event
8199
-
8200
- function triggerEvent(element) {
8201
- var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
8202
- var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
8203
- var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
8204
 
8205
- // Bail if no element
8206
- if (!is$1.element(element) || is$1.empty(type)) {
8207
- return;
8208
- } // Create and dispatch the event
 
 
 
8209
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8210
 
8211
- var event = new CustomEvent(type, {
8212
- bubbles: bubbles,
8213
- detail: Object.assign({}, detail, {
8214
- plyr: this
8215
- })
8216
- }); // Dispatch the event
8217
 
8218
- element.dispatchEvent(event);
8219
- } // Unbind all cached event listeners
8220
 
8221
- function unbindListeners() {
8222
- if (this && this.eventListeners) {
8223
- this.eventListeners.forEach(function (item) {
8224
- var element = item.element,
8225
- type = item.type,
8226
- callback = item.callback,
8227
- options = item.options;
8228
- element.removeEventListener(type, callback, options);
8229
- });
8230
- this.eventListeners = [];
8231
  }
8232
- } // Run method when / if player is ready
8233
-
8234
- function ready() {
8235
- var _this3 = this;
8236
 
8237
- return new Promise(function (resolve) {
8238
- return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve);
8239
- }).then(function () {});
8240
  }
8241
 
8242
- function cloneDeep(object) {
8243
- return JSON.parse(JSON.stringify(object));
8244
- } // Get a nested value in an object
8245
-
8246
- function getDeep(object, path) {
8247
- return path.split('.').reduce(function (obj, key) {
8248
- return obj && obj[key];
8249
- }, object);
8250
- } // Deep extend destination object with N more objects
8251
 
8252
- function extend() {
8253
- var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8254
-
8255
- for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
8256
- sources[_key - 1] = arguments[_key];
8257
- }
8258
 
8259
- if (!sources.length) {
8260
- return target;
8261
- }
8262
 
8263
- var source = sources.shift();
8264
 
8265
- if (!is$1.object(source)) {
8266
- return target;
 
8267
  }
8268
 
8269
- Object.keys(source).forEach(function (key) {
8270
- if (is$1.object(source[key])) {
8271
- if (!Object.keys(target).includes(key)) {
8272
- Object.assign(target, _defineProperty({}, key, {}));
8273
- }
8274
-
8275
- extend(target[key], source[key]);
8276
- } else {
8277
- Object.assign(target, _defineProperty({}, key, source[key]));
8278
  }
8279
- });
8280
- return extend.apply(void 0, [target].concat(sources));
8281
- }
8282
-
8283
- function wrap(elements, wrapper) {
8284
- // Convert `elements` to an array, if necessary.
8285
- var targets = elements.length ? elements : [elements]; // Loops backwards to prevent having to clone the wrapper on the
8286
- // first element (see `child` below).
 
 
 
 
 
8287
 
8288
- Array.from(targets).reverse().forEach(function (element, index) {
8289
- var child = index > 0 ? wrapper.cloneNode(true) : wrapper; // Cache the current parent and sibling.
8290
 
8291
- var parent = element.parentNode;
8292
- var sibling = element.nextSibling; // Wrap the element (is automatically removed from its current
8293
- // parent).
 
8294
 
8295
- child.appendChild(element); // If the element had a sibling, insert the wrapper before
8296
- // the sibling to maintain the HTML structure; otherwise, just
8297
- // append it to the parent.
8298
 
8299
- if (sibling) {
8300
- parent.insertBefore(child, sibling);
8301
- } else {
8302
- parent.appendChild(child);
8303
- }
8304
- });
8305
- } // Set attributes
8306
 
8307
- function setAttributes(element, attributes) {
8308
- if (!is$1.element(element) || is$1.empty(attributes)) {
8309
- return;
8310
- } // Assume null and undefined attributes should be left out,
8311
- // Setting them would otherwise convert them to "null" and "undefined"
8312
 
8313
 
8314
- Object.entries(attributes).filter(function (_ref) {
8315
- var _ref2 = _slicedToArray(_ref, 2),
8316
- value = _ref2[1];
8317
 
8318
- return !is$1.nullOrUndefined(value);
8319
- }).forEach(function (_ref3) {
8320
- var _ref4 = _slicedToArray(_ref3, 2),
8321
- key = _ref4[0],
8322
- value = _ref4[1];
8323
 
8324
- return element.setAttribute(key, value);
8325
- });
8326
- } // Create a DocumentFragment
8327
 
8328
- function createElement(type, attributes, text) {
8329
- // Create a new <element>
8330
- var element = document.createElement(type); // Set all passed attributes
 
 
 
 
 
 
8331
 
8332
- if (is$1.object(attributes)) {
8333
- setAttributes(element, attributes);
8334
- } // Add text node
8335
 
 
8336
 
8337
- if (is$1.string(text)) {
8338
- element.innerText = text;
8339
- } // Return built element
8340
 
 
 
 
8341
 
8342
- return element;
8343
- } // Inaert an element after another
 
 
8344
 
8345
- function insertAfter(element, target) {
8346
- if (!is$1.element(element) || !is$1.element(target)) {
8347
- return;
8348
- }
8349
 
8350
- target.parentNode.insertBefore(element, target.nextSibling);
8351
- } // Insert a DocumentFragment
8352
 
8353
- function insertElement(type, parent, attributes, text) {
8354
- if (!is$1.element(parent)) {
8355
- return;
8356
- }
8357
 
8358
- parent.appendChild(createElement(type, attributes, text));
8359
- } // Remove element(s)
 
 
 
 
 
 
 
8360
 
8361
- function removeElement(element) {
8362
- if (is$1.nodeList(element) || is$1.array(element)) {
8363
- Array.from(element).forEach(removeElement);
8364
- return;
8365
- }
8366
 
8367
- if (!is$1.element(element) || !is$1.element(element.parentNode)) {
8368
- return;
8369
- }
8370
 
8371
- element.parentNode.removeChild(element);
8372
- } // Remove all child elements
 
 
 
8373
 
8374
- function emptyElement(element) {
8375
- if (!is$1.element(element)) {
8376
- return;
8377
- }
8378
 
8379
- var length = element.childNodes.length;
 
8380
 
8381
- while (length > 0) {
8382
- element.removeChild(element.lastChild);
8383
- length -= 1;
8384
- }
8385
- } // Replace element
8386
 
8387
- function replaceElement(newChild, oldChild) {
8388
- if (!is$1.element(oldChild) || !is$1.element(oldChild.parentNode) || !is$1.element(newChild)) {
8389
- return null;
8390
- }
8391
 
8392
- oldChild.parentNode.replaceChild(newChild, oldChild);
8393
- return newChild;
8394
- } // Get an attribute object from a string selector
8395
 
8396
- function getAttributesFromSelector(sel, existingAttributes) {
8397
- // For example:
8398
- // '.test' to { class: 'test' }
8399
- // '#test' to { id: 'test' }
8400
- // '[data-test="test"]' to { 'data-test': 'test' }
8401
- if (!is$1.string(sel) || is$1.empty(sel)) {
8402
- return {};
8403
- }
8404
 
8405
- var attributes = {};
8406
- var existing = extend({}, existingAttributes);
8407
- sel.split(',').forEach(function (s) {
8408
- // Remove whitespace
8409
- var selector = s.trim();
8410
- var className = selector.replace('.', '');
8411
- var stripped = selector.replace(/[[\]]/g, ''); // Get the parts and value
8412
 
8413
- var parts = stripped.split('=');
 
8414
 
8415
- var _parts = _slicedToArray(parts, 1),
8416
- key = _parts[0];
8417
 
8418
- var value = parts.length > 1 ? parts[1].replace(/["']/g, '') : ''; // Get the first character
8419
 
8420
- var start = selector.charAt(0);
 
 
 
 
 
8421
 
8422
- switch (start) {
8423
- case '.':
8424
- // Add to existing classname
8425
- if (is$1.string(existing.class)) {
8426
- attributes.class = "".concat(existing.class, " ").concat(className);
8427
  } else {
8428
- attributes.class = className;
8429
  }
8430
 
8431
- break;
8432
-
8433
- case '#':
8434
- // ID selector
8435
- attributes.id = selector.replace('#', '');
8436
- break;
8437
-
8438
- case '[':
8439
- // Attribute selector
8440
- attributes[key] = value;
8441
- break;
8442
 
8443
- default:
8444
- break;
8445
- }
8446
- });
8447
- return extend(existing, attributes);
8448
- } // Toggle hidden
8449
 
8450
- function toggleHidden(element, hidden) {
8451
- if (!is$1.element(element)) {
8452
- return;
8453
- }
8454
 
8455
- var hide = hidden;
 
 
 
 
 
8456
 
8457
- if (!is$1.boolean(hide)) {
8458
- hide = !element.hidden;
8459
- } // eslint-disable-next-line no-param-reassign
8460
 
 
 
 
 
 
 
 
 
 
 
8461
 
8462
- element.hidden = hide;
8463
- } // Mirror Element.classList.toggle, with IE compatibility for "force" argument
 
 
 
 
8464
 
8465
- function toggleClass(element, className, force) {
8466
- if (is$1.nodeList(element)) {
8467
- return Array.from(element).map(function (e) {
8468
- return toggleClass(e, className, force);
8469
- });
8470
- }
8471
 
8472
- if (is$1.element(element)) {
8473
- var method = 'toggle';
 
 
 
 
 
 
 
 
 
 
8474
 
8475
- if (typeof force !== 'undefined') {
8476
- method = force ? 'add' : 'remove';
 
 
 
 
 
 
8477
  }
 
 
 
 
 
 
8478
 
8479
- element.classList[method](className);
8480
- return element.classList.contains(className);
8481
- }
 
 
 
8482
 
8483
- return false;
8484
- } // Has class name
 
 
 
 
8485
 
8486
- function hasClass(element, className) {
8487
- return is$1.element(element) && element.classList.contains(className);
8488
- } // Element matches selector
8489
 
8490
- function matches$1(element, selector) {
 
 
8491
 
8492
- function match() {
8493
- return Array.from(document.querySelectorAll(selector)).includes(this);
8494
- }
8495
 
8496
- var method = match;
8497
- return method.call(element, selector);
8498
- } // Find all elements
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8499
 
8500
- function getElements(selector) {
8501
- return this.elements.container.querySelectorAll(selector);
8502
- } // Find a single element
8503
 
8504
- function getElement(selector) {
8505
- return this.elements.container.querySelector(selector);
8506
- } // Trap focus inside container
 
 
 
 
8507
 
8508
- function trapFocus() {
8509
- var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
8510
- var toggle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
 
 
 
 
 
 
 
8511
 
8512
- if (!is$1.element(element)) {
8513
- return;
8514
- }
8515
 
8516
- var focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');
8517
- var first = focusable[0];
8518
- var last = focusable[focusable.length - 1];
 
 
 
 
 
 
8519
 
8520
- var trap = function trap(event) {
8521
- // Bail if not tab key or not fullscreen
8522
- if (event.key !== 'Tab' || event.keyCode !== 9) {
8523
- return;
8524
- } // Get the current focused element
8525
 
 
 
 
 
 
 
 
8526
 
8527
- var focused = document.activeElement;
 
 
 
 
 
 
 
 
8528
 
8529
- if (focused === last && !event.shiftKey) {
8530
- // Move focus to first element that can be tabbed if Shift isn't used
8531
- first.focus();
8532
- event.preventDefault();
8533
- } else if (focused === first && event.shiftKey) {
8534
- // Move focus to last element that can be tabbed if Shift is used
8535
- last.focus();
8536
- event.preventDefault();
8537
  }
8538
- };
 
 
 
8539
 
8540
- toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);
8541
- } // Set focus and tab focus class
 
8542
 
8543
- function setFocus() {
8544
- var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
8545
- var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8546
 
8547
- if (!is$1.element(element)) {
8548
- return;
8549
- } // Set regular focus
8550
 
 
 
8551
 
8552
- element.focus({
8553
- preventScroll: true
8554
- }); // If we want to mimic keyboard focus via tab
8555
 
8556
- if (tabFocus) {
8557
- toggleClass(element, this.config.classNames.tabFocus);
8558
- }
8559
- }
8560
 
8561
- var defaultCodecs = {
8562
- 'audio/ogg': 'vorbis',
8563
- 'audio/wav': '1',
8564
- 'video/webm': 'vp8, vorbis',
8565
- 'video/mp4': 'avc1.42E01E, mp4a.40.2',
8566
- 'video/ogg': 'theora'
8567
- }; // Check for feature support
8568
 
8569
- var support = {
8570
- // Basic support
8571
- audio: 'canPlayType' in document.createElement('audio'),
8572
- video: 'canPlayType' in document.createElement('video'),
8573
- // Check for support
8574
- // Basic functionality vs full UI
8575
- check: function check(type, provider, playsinline) {
8576
- var canPlayInline = browser.isIPhone && playsinline && support.playsinline;
8577
- var api = support[type] || provider !== 'html5';
8578
- var ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);
8579
- return {
8580
- api: api,
8581
- ui: ui
8582
- };
8583
- },
8584
- // Picture-in-picture support
8585
- // Safari & Chrome only currently
8586
- pip: function () {
8587
- if (browser.isIPhone) {
8588
- return false;
8589
- } // Safari
8590
- // https://developer.apple.com/documentation/webkitjs/adding_picture_in_picture_to_your_safari_media_controls
8591
 
 
8592
 
8593
- if (is$1.function(createElement('video').webkitSetPresentationMode)) {
8594
- return true;
8595
- } // Chrome
8596
- // https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture
8597
 
8598
 
8599
- if (document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture) {
8600
- return true;
8601
- }
8602
 
8603
- return false;
8604
- }(),
8605
- // Airplay support
8606
- // Safari only currently
8607
- airplay: is$1.function(window.WebKitPlaybackTargetAvailabilityEvent),
8608
- // Inline playback support
8609
- // https://webkit.org/blog/6784/new-video-policies-for-ios/
8610
- playsinline: 'playsInline' in document.createElement('video'),
8611
- // Check for mime type support against a player instance
8612
- // Credits: http://diveintohtml5.info/everything.html
8613
- // Related: http://www.leanbackplayer.com/test/h5mt.html
8614
- mime: function mime(input) {
8615
- if (is$1.empty(input)) {
8616
- return false;
8617
- }
8618
 
8619
- var _input$split = input.split('/'),
8620
- _input$split2 = _slicedToArray(_input$split, 1),
8621
- mediaType = _input$split2[0];
8622
 
8623
- var type = input; // Verify we're using HTML5 and there's no media type mismatch
8624
 
8625
- if (!this.isHTML5 || mediaType !== this.type) {
8626
- return false;
8627
- } // Add codec if required
8628
 
 
8629
 
8630
- if (Object.keys(defaultCodecs).includes(type)) {
8631
- type += "; codecs=\"".concat(defaultCodecs[input], "\"");
8632
- }
8633
 
8634
- try {
8635
- return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));
8636
- } catch (e) {
8637
- return false;
8638
- }
8639
- },
8640
- // Check for textTracks support
8641
- textTracks: 'textTracks' in document.createElement('video'),
8642
- // <input type="range"> Sliders
8643
- rangeInput: function () {
8644
- var range = document.createElement('input');
8645
- range.type = 'range';
8646
- return range.type === 'range';
8647
- }(),
8648
- // Touch
8649
- // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event
8650
- touch: 'ontouchstart' in document.documentElement,
8651
- // Detect transitions support
8652
- transitions: transitionEndEvent !== false,
8653
- // Reduced motion iOS & MacOS setting
8654
- // https://webkit.org/blog/7551/responsive-design-for-motion/
8655
- reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches
8656
- };
8657
 
8658
- function validateRatio(input) {
8659
- if (!is$1.array(input) && (!is$1.string(input) || !input.includes(':'))) {
8660
- return false;
8661
- }
8662
 
8663
- var ratio = is$1.array(input) ? input : input.split(':');
8664
- return ratio.map(Number).every(is$1.number);
8665
- }
8666
- function reduceAspectRatio(ratio) {
8667
- if (!is$1.array(ratio) || !ratio.every(is$1.number)) {
8668
- return null;
8669
- }
8670
 
8671
- var _ratio = _slicedToArray(ratio, 2),
8672
- width = _ratio[0],
8673
- height = _ratio[1];
8674
 
8675
- var getDivider = function getDivider(w, h) {
8676
- return h === 0 ? w : getDivider(h, w % h);
8677
- };
8678
 
8679
- var divider = getDivider(width, height);
8680
- return [width / divider, height / divider];
8681
- }
8682
- function getAspectRatio(input) {
8683
- var parse = function parse(ratio) {
8684
- return validateRatio(ratio) ? ratio.split(':').map(Number) : null;
8685
- }; // Try provided ratio
8686
 
 
 
 
8687
 
8688
- var ratio = parse(input); // Get from config
8689
 
8690
- if (ratio === null) {
8691
- ratio = parse(this.config.ratio);
8692
- } // Get from embed
 
8693
 
8694
 
8695
- if (ratio === null && !is$1.empty(this.embed) && is$1.array(this.embed.ratio)) {
8696
- ratio = this.embed.ratio;
8697
- } // Get from HTML5 video
 
 
 
 
 
8698
 
 
 
 
8699
 
8700
- if (ratio === null && this.isHTML5) {
8701
- var _this$media = this.media,
8702
- videoWidth = _this$media.videoWidth,
8703
- videoHeight = _this$media.videoHeight;
8704
- ratio = reduceAspectRatio([videoWidth, videoHeight]);
8705
- }
8706
 
8707
- return ratio;
8708
- } // Set aspect ratio for responsive container
 
 
8709
 
8710
- function setAspectRatio(input) {
8711
- if (!this.isVideo) {
8712
- return {};
8713
- }
8714
 
8715
- var ratio = getAspectRatio.call(this, input);
 
 
8716
 
8717
- var _ref = is$1.array(ratio) ? ratio : [0, 0],
8718
- _ref2 = _slicedToArray(_ref, 2),
8719
- w = _ref2[0],
8720
- h = _ref2[1];
8721
 
8722
- var padding = 100 / w * h;
8723
- this.elements.wrapper.style.paddingBottom = "".concat(padding, "%"); // For Vimeo we have an extra <div> to hide the standard controls and UI
 
 
 
 
 
 
 
 
 
 
 
8724
 
8725
- if (this.isVimeo && this.supported.ui) {
8726
- var height = 240;
8727
- var offset = (height - padding) / (height / 50);
8728
- this.media.style.transform = "translateY(-".concat(offset, "%)");
8729
- } else if (this.isHTML5) {
8730
- this.elements.wrapper.classList.toggle(this.config.classNames.videoFixedRatio, ratio !== null);
8731
- }
8732
 
8733
- return {
8734
- padding: padding,
8735
- ratio: ratio
8736
- };
8737
- }
8738
 
8739
- // ==========================================================================
8740
- var html5 = {
8741
- getSources: function getSources() {
8742
- var _this = this;
8743
 
8744
- if (!this.isHTML5) {
8745
- return [];
8746
- }
8747
 
8748
- var sources = Array.from(this.media.querySelectorAll('source')); // Filter out unsupported sources (if type is specified)
 
 
 
 
 
 
 
8749
 
8750
- return sources.filter(function (source) {
8751
- var type = source.getAttribute('type');
8752
 
8753
- if (is$1.empty(type)) {
8754
- return true;
 
 
 
8755
  }
8756
-
8757
- return support.mime.call(_this, type);
 
 
 
 
 
 
8758
  });
8759
  },
8760
- // Get quality levels
8761
- getQualityOptions: function getQualityOptions() {
8762
- // Get sizes from <source> elements
8763
- return html5.getSources.call(this).map(function (source) {
8764
- return Number(source.getAttribute('size'));
8765
- }).filter(Boolean);
8766
- },
8767
- extend: function extend() {
8768
- if (!this.isHTML5) {
8769
- return;
8770
- }
8771
 
8772
- var player = this; // Set aspect ratio if fixed
 
 
 
8773
 
8774
- if (!is$1.empty(this.config.ratio)) {
8775
- setAspectRatio.call(player);
8776
- } // Quality
 
 
8777
 
 
 
 
8778
 
8779
- Object.defineProperty(player.media, 'quality', {
8780
- get: function get() {
8781
- // Get sources
8782
- var sources = html5.getSources.call(player);
8783
- var source = sources.find(function (s) {
8784
- return s.getAttribute('src') === player.source;
8785
- }); // Return size, if match is found
8786
 
8787
- return source && Number(source.getAttribute('size'));
8788
- },
8789
- set: function set(input) {
8790
- // Get sources
8791
- var sources = html5.getSources.call(player); // Get first match for requested size
8792
 
8793
- var source = sources.find(function (s) {
8794
- return Number(s.getAttribute('size')) === input;
8795
- }); // No matching source found
8796
 
8797
- if (!source) {
8798
- return;
8799
- } // Get current state
8800
 
 
 
 
8801
 
8802
- var _player$media = player.media,
8803
- currentTime = _player$media.currentTime,
8804
- paused = _player$media.paused,
8805
- preload = _player$media.preload,
8806
- readyState = _player$media.readyState; // Set new source
 
8807
 
8808
- player.media.src = source.getAttribute('src'); // Prevent loading if preload="none" and the current source isn't loaded (#1044)
 
 
8809
 
8810
- if (preload !== 'none' || readyState) {
8811
- // Restore time
8812
- player.once('loadedmetadata', function () {
8813
- player.currentTime = currentTime; // Resume playing
8814
 
8815
- if (!paused) {
8816
- player.play();
8817
- }
8818
- }); // Load new source
 
8819
 
8820
- player.media.load();
8821
- } // Trigger change event
 
 
 
 
 
 
 
8822
 
8823
 
8824
- triggerEvent.call(player, player.media, 'qualitychange', false, {
8825
- quality: input
8826
- });
8827
- }
8828
- });
8829
- },
8830
- // Cancel current network requests
8831
- // See https://github.com/sampotts/plyr/issues/174
8832
- cancelRequests: function cancelRequests() {
8833
- if (!this.isHTML5) {
8834
- return;
8835
- } // Remove child sources
8836
 
 
 
 
 
8837
 
8838
- removeElement(html5.getSources.call(this)); // Set blank video src attribute
8839
- // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error
8840
- // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection
8841
 
8842
- this.media.setAttribute('src', this.config.blankVideo); // Load the new empty source
8843
- // This will cancel existing requests
8844
- // See https://github.com/sampotts/plyr/issues/174
8845
 
8846
- this.media.load(); // Debugging
8847
 
8848
- this.debug.log('Cancelled network requests');
8849
- }
8850
- };
 
 
8851
 
8852
- // ==========================================================================
8853
 
8854
- function dedupe(array) {
8855
- if (!is$1.array(array)) {
8856
- return array;
8857
- }
 
8858
 
8859
- return array.filter(function (item, index) {
8860
- return array.indexOf(item) === index;
8861
- });
8862
- } // Get the closest value in an array
8863
 
8864
- function closest(array, value) {
8865
- if (!is$1.array(array) || !array.length) {
8866
- return null;
8867
- }
8868
 
8869
- return array.reduce(function (prev, curr) {
8870
- return Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev;
8871
- });
8872
- }
8873
 
8874
- // ==========================================================================
8875
 
8876
- function generateId(prefix) {
8877
- return "".concat(prefix, "-").concat(Math.floor(Math.random() * 10000));
8878
- } // Format string
8879
 
8880
- function format(input) {
8881
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
8882
- args[_key - 1] = arguments[_key];
8883
- }
8884
 
8885
- if (is$1.empty(input)) {
8886
- return input;
8887
- }
 
 
 
 
 
 
 
 
 
 
 
 
8888
 
8889
- return input.toString().replace(/{(\d+)}/g, function (match, i) {
8890
- return args[i].toString();
8891
- });
8892
- } // Get percentage
8893
 
8894
- function getPercentage(current, max) {
8895
- if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {
8896
- return 0;
8897
- }
 
 
8898
 
8899
- return (current / max * 100).toFixed(2);
8900
- } // Replace all occurances of a string in a string
8901
 
8902
- function replaceAll() {
8903
- var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
8904
- var find = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
8905
- var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
8906
- return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1'), 'g'), replace.toString());
8907
- } // Convert to title case
8908
 
8909
- function toTitleCase() {
8910
- var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
8911
- return input.toString().replace(/\w\S*/g, function (text) {
8912
- return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase();
8913
- });
8914
- } // Convert string to pascalCase
8915
 
8916
- function toPascalCase() {
8917
- var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
8918
- var string = input.toString(); // Convert kebab case
 
 
8919
 
8920
- string = replaceAll(string, '-', ' '); // Convert snake case
8921
 
8922
- string = replaceAll(string, '_', ' '); // Convert to title case
 
 
 
8923
 
8924
- string = toTitleCase(string); // Convert to pascal case
 
 
 
8925
 
8926
- return replaceAll(string, ' ', '');
8927
- } // Convert string to pascalCase
 
 
8928
 
8929
- function toCamelCase() {
8930
- var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
8931
- var string = input.toString(); // Convert to pascal case
 
 
8932
 
8933
- string = toPascalCase(string); // Convert first character to lowercase
8934
 
8935
- return string.charAt(0).toLowerCase() + string.slice(1);
8936
- } // Remove HTML from a string
 
 
8937
 
8938
- function stripHTML(source) {
8939
- var fragment = document.createDocumentFragment();
8940
- var element = document.createElement('div');
8941
- fragment.appendChild(element);
8942
- element.innerHTML = source;
8943
- return fragment.firstChild.innerText;
8944
- } // Like outerHTML, but also works for DocumentFragment
 
 
8945
 
8946
- function getHTML(element) {
8947
- var wrapper = document.createElement('div');
8948
- wrapper.appendChild(element);
8949
- return wrapper.innerHTML;
8950
- }
8951
 
8952
- var resources = {
8953
- pip: 'PIP',
8954
- airplay: 'AirPlay',
8955
- html5: 'HTML5',
8956
- vimeo: 'Vimeo',
8957
- youtube: 'YouTube'
8958
- };
8959
- var i18n = {
8960
- get: function get() {
8961
- var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
8962
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8963
 
8964
- if (is$1.empty(key) || is$1.empty(config)) {
8965
- return '';
8966
- }
8967
 
8968
- var string = getDeep(config.i18n, key);
8969
 
8970
- if (is$1.empty(string)) {
8971
- if (Object.keys(resources).includes(key)) {
8972
- return resources[key];
8973
  }
 
8974
 
8975
- return '';
8976
- }
8977
-
8978
- var replace = {
8979
- '{seektime}': config.seekTime,
8980
- '{title}': config.title
8981
- };
8982
- Object.entries(replace).forEach(function (_ref) {
8983
- var _ref2 = _slicedToArray(_ref, 2),
8984
- k = _ref2[0],
8985
- v = _ref2[1];
8986
 
8987
- string = replaceAll(string, k, v);
8988
- });
8989
- return string;
8990
- }
8991
- };
 
8992
 
8993
- var Storage =
8994
- /*#__PURE__*/
8995
- function () {
8996
- function Storage(player) {
8997
- _classCallCheck(this, Storage);
 
 
 
8998
 
8999
- this.enabled = player.config.storage.enabled;
9000
- this.key = player.config.storage.key;
9001
- } // Check for actual support (see if we can use it)
9002
 
9003
 
9004
- _createClass(Storage, [{
9005
- key: "get",
9006
- value: function get(key) {
9007
- if (!Storage.supported || !this.enabled) {
9008
- return null;
9009
- }
9010
 
9011
- var store = window.localStorage.getItem(this.key);
9012
 
9013
- if (is$1.empty(store)) {
9014
- return null;
9015
- }
 
 
9016
 
9017
- var json = JSON.parse(store);
9018
- return is$1.string(key) && key.length ? json[key] : json;
9019
- }
9020
- }, {
9021
- key: "set",
9022
- value: function set(object) {
9023
- // Bail if we don't have localStorage support or it's disabled
9024
- if (!Storage.supported || !this.enabled) {
9025
- return;
9026
- } // Can only store objectst
9027
 
 
9028
 
9029
- if (!is$1.object(object)) {
9030
  return;
9031
- } // Get current storage
9032
-
9033
-
9034
- var storage = this.get(); // Default to empty object
9035
 
9036
- if (is$1.empty(storage)) {
9037
- storage = {};
9038
- } // Update the working copy of the values
9039
 
 
 
9040
 
9041
- extend(storage, object); // Update storage
 
9042
 
9043
- window.localStorage.setItem(this.key, JSON.stringify(storage));
9044
- }
9045
- }], [{
9046
- key: "supported",
9047
- get: function get() {
9048
- try {
9049
- if (!('localStorage' in window)) {
9050
- return false;
9051
  }
9052
 
9053
- var test = '___test'; // Try to use it (it might be disabled, e.g. user is in private mode)
9054
- // see: https://github.com/sampotts/plyr/issues/131
 
9055
 
9056
- window.localStorage.setItem(test, test);
9057
- window.localStorage.removeItem(test);
9058
- return true;
9059
- } catch (e) {
9060
- return false;
9061
- }
9062
- }
9063
- }]);
9064
 
9065
- return Storage;
9066
- }();
 
9067
 
9068
- // ==========================================================================
9069
- // Fetch wrapper
9070
- // Using XHR to avoid issues with older browsers
9071
- // ==========================================================================
9072
- function fetch(url) {
9073
- var responseType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
9074
- return new Promise(function (resolve, reject) {
9075
- try {
9076
- var request = new XMLHttpRequest(); // Check for CORS support
9077
 
9078
- if (!('withCredentials' in request)) {
9079
- return;
9080
- }
9081
 
9082
- request.addEventListener('load', function () {
9083
- if (responseType === 'text') {
9084
- try {
9085
- resolve(JSON.parse(request.responseText));
9086
- } catch (e) {
9087
- resolve(request.responseText);
9088
- }
9089
- } else {
9090
- resolve(request.response);
9091
- }
9092
- });
9093
- request.addEventListener('error', function () {
9094
- throw new Error(request.status);
9095
- });
9096
- request.open('GET', url, true); // Set the required response type
9097
 
9098
- request.responseType = responseType;
9099
- request.send();
9100
- } catch (e) {
9101
- reject(e);
9102
- }
9103
- });
9104
- }
9105
 
9106
- // ==========================================================================
 
 
 
 
 
 
9107
 
9108
- function loadSprite(url, id) {
9109
- if (!is$1.string(url)) {
9110
- return;
9111
- }
9112
 
9113
- var prefix = 'cache';
9114
- var hasId = is$1.string(id);
9115
- var isCached = false;
9116
 
9117
- var exists = function exists() {
9118
- return document.getElementById(id) !== null;
9119
- };
9120
 
9121
- var update = function update(container, data) {
9122
- // eslint-disable-next-line no-param-reassign
9123
- container.innerHTML = data; // Check again incase of race condition
 
9124
 
9125
- if (hasId && exists()) {
9126
- return;
9127
- } // Inject the SVG to the body
9128
 
 
 
9129
 
9130
- document.body.insertAdjacentElement('afterbegin', container);
9131
- }; // Only load once if ID set
9132
 
 
 
9133
 
9134
- if (!hasId || !exists()) {
9135
- var useStorage = Storage.supported; // Create container
9136
 
9137
- var container = document.createElement('div');
9138
- container.setAttribute('hidden', '');
9139
 
9140
- if (hasId) {
9141
- container.setAttribute('id', id);
9142
- } // Check in cache
 
9143
 
 
 
 
 
9144
 
9145
- if (useStorage) {
9146
- var cached = window.localStorage.getItem("".concat(prefix, "-").concat(id));
9147
- isCached = cached !== null;
9148
 
9149
- if (isCached) {
9150
- var data = JSON.parse(cached);
9151
- update(container, data.content);
9152
- }
9153
- } // Get the sprite
9154
 
 
 
 
 
9155
 
9156
- fetch(url).then(function (result) {
9157
- if (is$1.empty(result)) {
9158
- return;
9159
- }
9160
 
9161
- if (useStorage) {
9162
- window.localStorage.setItem("".concat(prefix, "-").concat(id), JSON.stringify({
9163
- content: result
9164
- }));
9165
- }
9166
 
9167
- update(container, result);
9168
- }).catch(function () {});
9169
- }
9170
- }
 
9171
 
9172
- // ==========================================================================
 
 
 
 
9173
 
9174
- var getHours = function getHours(value) {
9175
- return Math.trunc(value / 60 / 60 % 60, 10);
9176
- };
9177
- var getMinutes = function getMinutes(value) {
9178
- return Math.trunc(value / 60 % 60, 10);
9179
- };
9180
- var getSeconds = function getSeconds(value) {
9181
- return Math.trunc(value % 60, 10);
9182
- }; // Format time to UI friendly string
9183
 
9184
- function formatTime() {
9185
- var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
9186
- var displayHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
9187
- var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
9188
 
9189
- // Bail if the value isn't a number
9190
- if (!is$1.number(time)) {
9191
- return formatTime(null, displayHours, inverted);
9192
- } // Format time component to add leading zero
9193
 
9194
 
9195
- var format = function format(value) {
9196
- return "0".concat(value).slice(-2);
9197
- }; // Breakdown to hours, mins, secs
9198
 
 
9199
 
9200
- var hours = getHours(time);
9201
- var mins = getMinutes(time);
9202
- var secs = getSeconds(time); // Do we need to display hours?
9203
 
9204
- if (displayHours || hours > 0) {
9205
- hours = "".concat(hours, ":");
9206
- } else {
9207
- hours = '';
9208
- } // Render
9209
 
 
9210
 
9211
- return "".concat(inverted && time > 0 ? '-' : '').concat(hours).concat(format(mins), ":").concat(format(secs));
9212
- }
 
 
 
 
 
 
 
9213
 
9214
- var controls = {
9215
- // Get icon URL
9216
- getIconUrl: function getIconUrl() {
9217
- var url = new URL(this.config.iconUrl, window.location);
9218
- var cors = url.host !== window.location.host || browser.isIE && !window.svg4everybody;
9219
- return {
9220
- url: this.config.iconUrl,
9221
- cors: cors
9222
- };
9223
- },
9224
- // Find the UI controls
9225
- findElements: function findElements() {
9226
- try {
9227
- this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper); // Buttons
9228
 
9229
- this.elements.buttons = {
9230
- play: getElements.call(this, this.config.selectors.buttons.play),
9231
- pause: getElement.call(this, this.config.selectors.buttons.pause),
9232
- restart: getElement.call(this, this.config.selectors.buttons.restart),
9233
- rewind: getElement.call(this, this.config.selectors.buttons.rewind),
9234
- fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),
9235
- mute: getElement.call(this, this.config.selectors.buttons.mute),
9236
- pip: getElement.call(this, this.config.selectors.buttons.pip),
9237
- airplay: getElement.call(this, this.config.selectors.buttons.airplay),
9238
- settings: getElement.call(this, this.config.selectors.buttons.settings),
9239
- captions: getElement.call(this, this.config.selectors.buttons.captions),
9240
- fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen)
9241
- }; // Progress
9242
 
9243
- this.elements.progress = getElement.call(this, this.config.selectors.progress); // Inputs
 
 
9244
 
9245
- this.elements.inputs = {
9246
- seek: getElement.call(this, this.config.selectors.inputs.seek),
9247
- volume: getElement.call(this, this.config.selectors.inputs.volume)
9248
- }; // Display
9249
 
9250
- this.elements.display = {
9251
- buffer: getElement.call(this, this.config.selectors.display.buffer),
9252
- currentTime: getElement.call(this, this.config.selectors.display.currentTime),
9253
- duration: getElement.call(this, this.config.selectors.display.duration)
9254
- }; // Seek tooltip
9255
 
9256
- if (is$1.element(this.elements.progress)) {
9257
- this.elements.display.seekTooltip = this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip));
9258
- }
 
 
 
 
9259
 
9260
- return true;
9261
- } catch (error) {
9262
- // Log it
9263
- this.debug.warn('It looks like there is a problem with your custom controls HTML', error); // Restore native video controls
9264
 
9265
- this.toggleNativeControls(true);
9266
- return false;
9267
- }
9268
- },
9269
- // Create <svg> icon
9270
- createIcon: function createIcon(type, attributes) {
9271
- var namespace = 'http://www.w3.org/2000/svg';
9272
- var iconUrl = controls.getIconUrl.call(this);
9273
- var iconPath = "".concat(!iconUrl.cors ? iconUrl.url : '', "#").concat(this.config.iconPrefix); // Create <svg>
9274
 
9275
- var icon = document.createElementNS(namespace, 'svg');
9276
- setAttributes(icon, extend(attributes, {
9277
- role: 'presentation',
9278
- focusable: 'false'
9279
- })); // Create the <use> to reference sprite
9280
 
9281
- var use = document.createElementNS(namespace, 'use');
9282
- var path = "".concat(iconPath, "-").concat(type); // Set `href` attributes
9283
- // https://github.com/sampotts/plyr/issues/460
9284
- // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href
9285
 
9286
- if ('href' in use) {
9287
- use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);
9288
- } // Always set the older attribute even though it's "deprecated" (it'll be around for ages)
9289
 
 
 
 
9290
 
9291
- use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path); // Add <use> to <svg>
9292
 
9293
- icon.appendChild(use);
9294
- return icon;
9295
- },
9296
- // Create hidden text label
9297
- createLabel: function createLabel(key) {
9298
- var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9299
- var text = i18n.get(key, this.config);
9300
- var attributes = Object.assign({}, attr, {
9301
- class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')
9302
- });
9303
- return createElement('span', attributes, text);
9304
- },
9305
- // Create a badge
9306
- createBadge: function createBadge(text) {
9307
- if (is$1.empty(text)) {
9308
- return null;
9309
- }
9310
 
9311
- var badge = createElement('span', {
9312
- class: this.config.classNames.menu.value
9313
- });
9314
- badge.appendChild(createElement('span', {
9315
- class: this.config.classNames.menu.badge
9316
- }, text));
9317
- return badge;
9318
- },
9319
- // Create a <button>
9320
- createButton: function createButton(buttonType, attr) {
9321
- var _this = this;
9322
 
9323
- var attributes = extend({}, attr);
9324
- var type = toCamelCase(buttonType);
9325
- var props = {
9326
- element: 'button',
9327
- toggle: false,
9328
- label: null,
9329
- icon: null,
9330
- labelPressed: null,
9331
- iconPressed: null
9332
- };
9333
- ['element', 'icon', 'label'].forEach(function (key) {
9334
- if (Object.keys(attributes).includes(key)) {
9335
- props[key] = attributes[key];
9336
- delete attributes[key];
9337
- }
9338
- }); // Default to 'button' type to prevent form submission
9339
 
9340
- if (props.element === 'button' && !Object.keys(attributes).includes('type')) {
9341
- attributes.type = 'button';
9342
- } // Set class name
9343
 
 
 
9344
 
9345
- if (Object.keys(attributes).includes('class')) {
9346
- if (!attributes.class.split(' ').some(function (c) {
9347
- return c === _this.config.classNames.control;
9348
- })) {
9349
- extend(attributes, {
9350
- class: "".concat(attributes.class, " ").concat(this.config.classNames.control)
9351
  });
9352
- }
9353
- } else {
9354
- attributes.class = this.config.classNames.control;
9355
- } // Large play button
9356
 
9357
 
9358
- switch (buttonType) {
9359
- case 'play':
9360
- props.toggle = true;
9361
- props.label = 'play';
9362
- props.labelPressed = 'pause';
9363
- props.icon = 'play';
9364
- props.iconPressed = 'pause';
9365
- break;
9366
 
9367
- case 'mute':
9368
- props.toggle = true;
9369
- props.label = 'mute';
9370
- props.labelPressed = 'unmute';
9371
- props.icon = 'volume';
9372
- props.iconPressed = 'muted';
9373
- break;
9374
 
9375
- case 'captions':
9376
- props.toggle = true;
9377
- props.label = 'enableCaptions';
9378
- props.labelPressed = 'disableCaptions';
9379
- props.icon = 'captions-off';
9380
- props.iconPressed = 'captions-on';
9381
- break;
9382
 
9383
- case 'fullscreen':
9384
- props.toggle = true;
9385
- props.label = 'enterFullscreen';
9386
- props.labelPressed = 'exitFullscreen';
9387
- props.icon = 'enter-fullscreen';
9388
- props.iconPressed = 'exit-fullscreen';
9389
- break;
9390
 
9391
- case 'play-large':
9392
- attributes.class += " ".concat(this.config.classNames.control, "--overlaid");
9393
- type = 'play';
9394
- props.label = 'play';
9395
- props.icon = 'play';
9396
- break;
9397
 
9398
- default:
9399
- if (is$1.empty(props.label)) {
9400
- props.label = type;
9401
- }
9402
 
9403
- if (is$1.empty(props.icon)) {
9404
- props.icon = buttonType;
9405
- }
 
9406
 
9407
- }
 
 
 
9408
 
9409
- var button = createElement(props.element); // Setup toggle icon and labels
 
 
 
9410
 
9411
- if (props.toggle) {
9412
- // Icon
9413
- button.appendChild(controls.createIcon.call(this, props.iconPressed, {
9414
- class: 'icon--pressed'
9415
- }));
9416
- button.appendChild(controls.createIcon.call(this, props.icon, {
9417
- class: 'icon--not-pressed'
9418
- })); // Label/Tooltip
9419
 
9420
- button.appendChild(controls.createLabel.call(this, props.labelPressed, {
9421
- class: 'label--pressed'
9422
- }));
9423
- button.appendChild(controls.createLabel.call(this, props.label, {
9424
- class: 'label--not-pressed'
9425
- }));
9426
- } else {
9427
- button.appendChild(controls.createIcon.call(this, props.icon));
9428
- button.appendChild(controls.createLabel.call(this, props.label));
9429
- } // Merge and set attributes
9430
 
 
 
 
 
 
 
 
9431
 
9432
- extend(attributes, getAttributesFromSelector(this.config.selectors.buttons[type], attributes));
9433
- setAttributes(button, attributes); // We have multiple play buttons
 
9434
 
9435
- if (type === 'play') {
9436
- if (!is$1.array(this.elements.buttons[type])) {
9437
- this.elements.buttons[type] = [];
9438
  }
 
9439
 
9440
- this.elements.buttons[type].push(button);
9441
- } else {
9442
- this.elements.buttons[type] = button;
9443
- }
9444
 
9445
- return button;
9446
- },
9447
- // Create an <input type='range'>
9448
- createRange: function createRange(type, attributes) {
9449
- // Seek input
9450
- var input = createElement('input', extend(getAttributesFromSelector(this.config.selectors.inputs[type]), {
9451
- type: 'range',
9452
- min: 0,
9453
- max: 100,
9454
- step: 0.01,
9455
- value: 0,
9456
- autocomplete: 'off',
9457
- // A11y fixes for https://github.com/sampotts/plyr/issues/905
9458
- role: 'slider',
9459
- 'aria-label': i18n.get(type, this.config),
9460
- 'aria-valuemin': 0,
9461
- 'aria-valuemax': 100,
9462
- 'aria-valuenow': 0
9463
- }, attributes));
9464
- this.elements.inputs[type] = input; // Set the fill for webkit now
9465
 
9466
- controls.updateRangeFill.call(this, input); // Improve support on touch devices
 
 
 
9467
 
9468
- RangeTouch.setup(input);
9469
- return input;
9470
- },
9471
- // Create a <progress>
9472
- createProgress: function createProgress(type, attributes) {
9473
- var progress = createElement('progress', extend(getAttributesFromSelector(this.config.selectors.display[type]), {
9474
- min: 0,
9475
- max: 100,
9476
- value: 0,
9477
- role: 'progressbar',
9478
- 'aria-hidden': true
9479
- }, attributes)); // Create the label inside
9480
 
9481
- if (type !== 'volume') {
9482
- progress.appendChild(createElement('span', null, '0'));
9483
- var suffixKey = {
9484
- played: 'played',
9485
- buffer: 'buffered'
9486
- }[type];
9487
- var suffix = suffixKey ? i18n.get(suffixKey, this.config) : '';
9488
- progress.innerText = "% ".concat(suffix.toLowerCase());
9489
- }
9490
 
9491
- this.elements.display[type] = progress;
9492
- return progress;
9493
- },
9494
- // Create time display
9495
- createTime: function createTime(type, attrs) {
9496
- var attributes = getAttributesFromSelector(this.config.selectors.display[type], attrs);
9497
- var container = createElement('div', extend(attributes, {
9498
- class: "".concat(attributes.class ? attributes.class : '', " ").concat(this.config.classNames.display.time, " ").trim(),
9499
- 'aria-label': i18n.get(type, this.config)
9500
- }), '00:00'); // Reference for updates
9501
 
9502
- this.elements.display[type] = container;
9503
- return container;
9504
- },
9505
- // Bind keyboard shortcuts for a menu item
9506
- // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
9507
- // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
9508
- bindMenuItemShortcuts: function bindMenuItemShortcuts(menuItem, type) {
9509
- var _this2 = this;
9510
 
9511
- // Navigate through menus via arrow keys and space
9512
- on(menuItem, 'keydown keyup', function (event) {
9513
- // We only care about space and ⬆️ ⬇️️ ➡️
9514
- if (![32, 38, 39, 40].includes(event.which)) {
9515
- return;
9516
- } // Prevent play / seek
9517
 
 
9518
 
9519
- event.preventDefault();
9520
- event.stopPropagation(); // We're just here to prevent the keydown bubbling
9521
 
9522
- if (event.type === 'keydown') {
9523
- return;
9524
- }
9525
 
9526
- var isRadioButton = matches$1(menuItem, '[role="menuitemradio"]'); // Show the respective menu
 
 
9527
 
9528
- if (!isRadioButton && [32, 39].includes(event.which)) {
9529
- controls.showMenuPanel.call(_this2, type, true);
9530
- } else {
9531
- var target;
9532
 
9533
- if (event.which !== 32) {
9534
- if (event.which === 40 || isRadioButton && event.which === 39) {
9535
- target = menuItem.nextElementSibling;
9536
 
9537
- if (!is$1.element(target)) {
9538
- target = menuItem.parentNode.firstElementChild;
9539
- }
9540
- } else {
9541
- target = menuItem.previousElementSibling;
9542
 
9543
- if (!is$1.element(target)) {
9544
- target = menuItem.parentNode.lastElementChild;
9545
- }
9546
- }
9547
 
9548
- setFocus.call(_this2, target, true);
9549
- }
9550
- }
9551
- }, false); // Enter will fire a `click` event but we still need to manage focus
9552
- // So we bind to keyup which fires after and set focus here
9553
 
9554
- on(menuItem, 'keyup', function (event) {
9555
- if (event.which !== 13) {
9556
- return;
9557
- }
9558
 
9559
- controls.focusFirstMenuItem.call(_this2, null, true);
9560
- });
9561
- },
9562
- // Create a settings menu item
9563
- createMenuItem: function createMenuItem(_ref) {
9564
- var _this3 = this;
9565
 
9566
- var value = _ref.value,
9567
- list = _ref.list,
9568
- type = _ref.type,
9569
- title = _ref.title,
9570
- _ref$badge = _ref.badge,
9571
- badge = _ref$badge === void 0 ? null : _ref$badge,
9572
- _ref$checked = _ref.checked,
9573
- checked = _ref$checked === void 0 ? false : _ref$checked;
9574
- var attributes = getAttributesFromSelector(this.config.selectors.inputs[type]);
9575
- var menuItem = createElement('button', extend(attributes, {
9576
- type: 'button',
9577
- role: 'menuitemradio',
9578
- class: "".concat(this.config.classNames.control, " ").concat(attributes.class ? attributes.class : '').trim(),
9579
- 'aria-checked': checked,
9580
- value: value
9581
- }));
9582
- var flex = createElement('span'); // We have to set as HTML incase of special characters
9583
 
9584
- flex.innerHTML = title;
9585
 
9586
- if (is$1.element(badge)) {
9587
- flex.appendChild(badge);
9588
- }
9589
 
9590
- menuItem.appendChild(flex); // Replicate radio button behaviour
 
9591
 
9592
- Object.defineProperty(menuItem, 'checked', {
9593
- enumerable: true,
9594
- get: function get() {
9595
- return menuItem.getAttribute('aria-checked') === 'true';
9596
- },
9597
- set: function set(check) {
9598
- // Ensure exclusivity
9599
- if (check) {
9600
- Array.from(menuItem.parentNode.children).filter(function (node) {
9601
- return matches$1(node, '[role="menuitemradio"]');
9602
- }).forEach(function (node) {
9603
- return node.setAttribute('aria-checked', 'false');
9604
- });
9605
- }
9606
 
9607
- menuItem.setAttribute('aria-checked', check ? 'true' : 'false');
9608
- }
9609
- });
9610
- this.listeners.bind(menuItem, 'click keyup', function (event) {
9611
- if (is$1.keyboardEvent(event) && event.which !== 32) {
9612
- return;
9613
- }
9614
 
9615
- event.preventDefault();
9616
- event.stopPropagation();
9617
- menuItem.checked = true;
9618
 
9619
- switch (type) {
9620
- case 'language':
9621
- _this3.currentTrack = Number(value);
9622
- break;
9623
 
9624
- case 'quality':
9625
- _this3.quality = value;
9626
- break;
 
 
9627
 
9628
- case 'speed':
9629
- _this3.speed = parseFloat(value);
9630
- break;
 
 
9631
 
9632
- default:
9633
- break;
9634
- }
 
9635
 
9636
- controls.showMenuPanel.call(_this3, 'home', is$1.keyboardEvent(event));
9637
- }, type, false);
9638
- controls.bindMenuItemShortcuts.call(this, menuItem, type);
9639
- list.appendChild(menuItem);
9640
- },
9641
- // Format a time for display
9642
- formatTime: function formatTime$1() {
9643
- var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
9644
- var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
9645
 
9646
- // Bail if the value isn't a number
9647
- if (!is$1.number(time)) {
9648
- return time;
9649
- } // Always display hours if duration is over an hour
9650
 
 
9651
 
9652
- var forceHours = getHours(this.duration) > 0;
9653
- return formatTime(time, forceHours, inverted);
9654
- },
9655
- // Update the displayed time
9656
- updateTimeDisplay: function updateTimeDisplay() {
9657
- var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
9658
- var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
9659
- var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
9660
 
9661
- // Bail if there's no element to display or the value isn't a number
9662
- if (!is$1.element(target) || !is$1.number(time)) {
9663
- return;
9664
- } // eslint-disable-next-line no-param-reassign
9665
 
 
 
 
 
 
 
 
 
 
 
9666
 
9667
- target.innerText = controls.formatTime(time, inverted);
9668
- },
9669
- // Update volume UI and storage
9670
- updateVolume: function updateVolume() {
9671
- if (!this.supported.ui) {
9672
- return;
9673
- } // Update range
 
9674
 
9675
 
9676
- if (is$1.element(this.elements.inputs.volume)) {
9677
- controls.setRange.call(this, this.elements.inputs.volume, this.muted ? 0 : this.volume);
9678
- } // Update mute state
9679
 
 
9680
 
9681
- if (is$1.element(this.elements.buttons.mute)) {
9682
- this.elements.buttons.mute.pressed = this.muted || this.volume === 0;
9683
- }
9684
- },
9685
- // Update seek value and lower fill
9686
- setRange: function setRange(target) {
9687
- var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
9688
 
9689
- if (!is$1.element(target)) {
9690
- return;
9691
- } // eslint-disable-next-line
9692
 
 
 
 
 
9693
 
9694
- target.value = value; // Webkit range fill
 
9695
 
9696
- controls.updateRangeFill.call(this, target);
9697
- },
9698
- // Update <progress> elements
9699
- updateProgress: function updateProgress(event) {
9700
- var _this4 = this;
9701
 
9702
- if (!this.supported.ui || !is$1.event(event)) {
9703
- return;
9704
- }
9705
 
9706
- var value = 0;
9707
-
9708
- var setProgress = function setProgress(target, input) {
9709
- var val = is$1.number(input) ? input : 0;
9710
- var progress = is$1.element(target) ? target : _this4.elements.display.buffer; // Update value and label
9711
 
9712
- if (is$1.element(progress)) {
9713
- progress.value = val; // Update text label inside
9714
 
9715
- var label = progress.getElementsByTagName('span')[0];
 
 
 
 
 
9716
 
9717
- if (is$1.element(label)) {
9718
- label.childNodes[0].nodeValue = val;
9719
  }
9720
- }
9721
- };
9722
 
9723
- if (event) {
9724
- switch (event.type) {
9725
- // Video playing
9726
- case 'timeupdate':
9727
- case 'seeking':
9728
- case 'seeked':
9729
- value = getPercentage(this.currentTime, this.duration); // Set seek range value only if it's a 'natural' time event
 
9730
 
9731
- if (event.type === 'timeupdate') {
9732
- controls.setRange.call(this, this.elements.inputs.seek, value);
 
 
 
 
9733
  }
9734
 
9735
- break;
9736
- // Check buffer status
9737
 
9738
- case 'playing':
9739
- case 'progress':
9740
- setProgress(this.elements.display.buffer, this.buffered * 100);
9741
- break;
9742
 
9743
- default:
9744
- break;
9745
- }
9746
- }
9747
- },
9748
- // Webkit polyfill for lower fill range
9749
- updateRangeFill: function updateRangeFill(target) {
9750
- // Get range from event if event passed
9751
- var range = is$1.event(target) ? target.target : target; // Needs to be a valid <input type='range'>
9752
 
9753
- if (!is$1.element(range) || range.getAttribute('type') !== 'range') {
9754
- return;
9755
- } // Set aria values for https://github.com/sampotts/plyr/issues/905
9756
 
 
 
 
9757
 
9758
- if (matches$1(range, this.config.selectors.inputs.seek)) {
9759
- range.setAttribute('aria-valuenow', this.currentTime);
9760
- var currentTime = controls.formatTime(this.currentTime);
9761
- var duration = controls.formatTime(this.duration);
9762
- var format = i18n.get('seekLabel', this.config);
9763
- range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
9764
- } else if (matches$1(range, this.config.selectors.inputs.volume)) {
9765
- var percent = range.value * 100;
9766
- range.setAttribute('aria-valuenow', percent);
9767
- range.setAttribute('aria-valuetext', "".concat(percent.toFixed(1), "%"));
9768
- } else {
9769
- range.setAttribute('aria-valuenow', range.value);
9770
- } // WebKit only
9771
 
 
 
 
9772
 
9773
- if (!browser.isWebkit) {
9774
- return;
9775
- } // Set CSS custom property
9776
 
 
9777
 
9778
- range.style.setProperty('--value', "".concat(range.value / range.max * 100, "%"));
9779
- },
9780
- // Update hover tooltip for seeking
9781
- updateSeekTooltip: function updateSeekTooltip(event) {
9782
- var _this5 = this;
9783
 
9784
- // Bail if setting not true
9785
- if (!this.config.tooltips.seek || !is$1.element(this.elements.inputs.seek) || !is$1.element(this.elements.display.seekTooltip) || this.duration === 0) {
9786
- return;
9787
- }
9788
 
9789
- var visible = "".concat(this.config.classNames.tooltip, "--visible");
9790
 
9791
- var toggle = function toggle(show) {
9792
- return toggleClass(_this5.elements.display.seekTooltip, visible, show);
9793
- }; // Hide on touch
 
9794
 
 
 
 
 
9795
 
9796
- if (this.touch) {
9797
- toggle(false);
9798
- return;
9799
- } // Determine percentage, if already visible
 
 
9800
 
9801
 
9802
- var percent = 0;
9803
- var clientRect = this.elements.progress.getBoundingClientRect();
9804
 
9805
- if (is$1.event(event)) {
9806
- percent = 100 / clientRect.width * (event.pageX - clientRect.left);
9807
- } else if (hasClass(this.elements.display.seekTooltip, visible)) {
9808
- percent = parseFloat(this.elements.display.seekTooltip.style.left, 10);
9809
- } else {
9810
- return;
9811
- } // Set bounds
9812
 
 
9813
 
9814
- if (percent < 0) {
9815
- percent = 0;
9816
- } else if (percent > 100) {
9817
- percent = 100;
9818
- } // Display the time a click would seek to
 
9819
 
 
 
9820
 
9821
- controls.updateTimeDisplay.call(this, this.elements.display.seekTooltip, this.duration / 100 * percent); // Set position
9822
 
9823
- this.elements.display.seekTooltip.style.left = "".concat(percent, "%"); // Show/hide the tooltip
9824
- // If the event is a moues in/out and percentage is inside bounds
 
9825
 
9826
- if (is$1.event(event) && ['mouseenter', 'mouseleave'].includes(event.type)) {
9827
- toggle(event.type === 'mouseenter');
 
 
9828
  }
9829
- },
9830
- // Handle time change event
9831
- timeUpdate: function timeUpdate(event) {
9832
- // Only invert if only one time element is displayed and used for both duration and currentTime
9833
- var invert = !is$1.element(this.elements.display.duration) && this.config.invertTime; // Duration
9834
-
9835
- controls.updateTimeDisplay.call(this, this.elements.display.currentTime, invert ? this.duration - this.currentTime : this.currentTime, invert); // Ignore updates while seeking
9836
-
9837
- if (event && event.type === 'timeupdate' && this.media.seeking) {
9838
- return;
9839
- } // Playing progress
 
 
 
9840
 
9841
 
9842
- controls.updateProgress.call(this, event);
9843
- },
9844
- // Show the duration on metadataloaded or durationchange events
9845
- durationUpdate: function durationUpdate() {
9846
- // Bail if no UI or durationchange event triggered after playing/seek when invertTime is false
9847
- if (!this.supported.ui || !this.config.invertTime && this.currentTime) {
9848
- return;
9849
- } // If duration is the 2**32 (shaka), Infinity (HLS), DASH-IF (Number.MAX_SAFE_INTEGER || Number.MAX_VALUE) indicating live we hide the currentTime and progressbar.
9850
- // https://github.com/video-dev/hls.js/blob/5820d29d3c4c8a46e8b75f1e3afa3e68c1a9a2db/src/controller/buffer-controller.js#L415
9851
- // https://github.com/google/shaka-player/blob/4d889054631f4e1cf0fbd80ddd2b71887c02e232/lib/media/streaming_engine.js#L1062
9852
- // https://github.com/Dash-Industry-Forum/dash.js/blob/69859f51b969645b234666800d4cb596d89c602d/src/dash/models/DashManifestModel.js#L338
9853
 
 
 
 
 
 
9854
 
9855
- if (this.duration >= Math.pow(2, 32)) {
9856
- toggleHidden(this.elements.display.currentTime, true);
9857
- toggleHidden(this.elements.progress, true);
9858
- return;
9859
- } // Update ARIA values
9860
 
 
 
9861
 
9862
- if (is$1.element(this.elements.inputs.seek)) {
9863
- this.elements.inputs.seek.setAttribute('aria-valuemax', this.duration);
9864
- } // If there's a spot to display duration
9865
 
 
 
 
 
9866
 
9867
- var hasDuration = is$1.element(this.elements.display.duration); // If there's only one time display, display duration there
9868
 
9869
- if (!hasDuration && this.config.displayDuration && this.paused) {
9870
- controls.updateTimeDisplay.call(this, this.elements.display.currentTime, this.duration);
9871
- } // If there's a duration element, update content
 
 
 
 
 
 
9872
 
9873
 
9874
- if (hasDuration) {
9875
- controls.updateTimeDisplay.call(this, this.elements.display.duration, this.duration);
9876
- } // Update the tooltip (if visible)
 
9877
 
 
9878
 
9879
- controls.updateSeekTooltip.call(this);
9880
- },
9881
- // Hide/show a tab
9882
- toggleMenuButton: function toggleMenuButton(setting, toggle) {
9883
- toggleHidden(this.elements.settings.buttons[setting], !toggle);
9884
- },
9885
- // Update the selected setting
9886
- updateSetting: function updateSetting(setting, container, input) {
9887
- var pane = this.elements.settings.panels[setting];
9888
- var value = null;
9889
- var list = container;
9890
 
9891
- if (setting === 'captions') {
9892
- value = this.currentTrack;
9893
- } else {
9894
- value = !is$1.empty(input) ? input : this[setting]; // Get default
 
 
 
 
 
 
9895
 
9896
- if (is$1.empty(value)) {
9897
- value = this.config[setting].default;
9898
- } // Unsupported value
9899
 
 
 
 
 
 
9900
 
9901
- if (!is$1.empty(this.options[setting]) && !this.options[setting].includes(value)) {
9902
- this.debug.warn("Unsupported value of '".concat(value, "' for ").concat(setting));
9903
- return;
9904
- } // Disabled value
 
 
 
9905
 
9906
 
9907
- if (!this.config[setting].options.includes(value)) {
9908
- this.debug.warn("Disabled value of '".concat(value, "' for ").concat(setting));
9909
- return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9910
  }
9911
- } // Get the list if we need to
9912
 
 
 
 
9913
 
9914
- if (!is$1.element(list)) {
9915
- list = pane && pane.querySelector('[role="menu"]');
9916
- } // If there's no list it means it's not been rendered...
 
 
 
 
 
 
9917
 
9918
 
9919
- if (!is$1.element(list)) {
9920
- return;
9921
- } // Update the label
 
 
 
 
 
 
 
 
9922
 
9923
 
9924
- var label = this.elements.settings.buttons[setting].querySelector(".".concat(this.config.classNames.menu.value));
9925
- label.innerHTML = controls.getLabel.call(this, setting, value); // Find the radio option and check it
9926
 
9927
- var target = list && list.querySelector("[value=\"".concat(value, "\"]"));
9928
 
9929
- if (is$1.element(target)) {
9930
- target.checked = true;
9931
  }
9932
- },
9933
- // Translate a value into a nice label
9934
- getLabel: function getLabel(setting, value) {
9935
- switch (setting) {
9936
- case 'speed':
9937
- return value === 1 ? i18n.get('normal', this.config) : "".concat(value, "&times;");
9938
 
9939
- case 'quality':
9940
- if (is$1.number(value)) {
9941
- var label = i18n.get("qualityLabel.".concat(value), this.config);
9942
 
9943
- if (!label.length) {
9944
- return "".concat(value, "p");
9945
- }
 
 
 
 
 
9946
 
9947
- return label;
9948
- }
 
 
9949
 
9950
- return toTitleCase(value);
 
 
9951
 
9952
- case 'captions':
9953
- return captions.getLabel.call(this);
 
9954
 
9955
- default:
9956
- return null;
9957
- }
9958
- },
9959
- // Set the quality menu
9960
- setQualityMenu: function setQualityMenu(options) {
9961
- var _this6 = this;
9962
 
9963
- // Menu required
9964
- if (!is$1.element(this.elements.settings.panels.quality)) {
9965
- return;
9966
  }
 
 
 
 
 
 
 
 
 
9967
 
9968
- var type = 'quality';
9969
- var list = this.elements.settings.panels.quality.querySelector('[role="menu"]'); // Set options if passed and filter based on uniqueness and config
9970
-
9971
- if (is$1.array(options)) {
9972
- this.options.quality = dedupe(options).filter(function (quality) {
9973
- return _this6.config.quality.options.includes(quality);
9974
- });
9975
- } // Toggle the pane and tab
9976
 
 
 
9977
 
9978
- var toggle = !is$1.empty(this.options.quality) && this.options.quality.length > 1;
9979
- controls.toggleMenuButton.call(this, type, toggle); // Empty the menu
9980
 
9981
- emptyElement(list); // Check if we need to toggle the parent
9982
 
9983
- controls.checkMenu.call(this); // If we're hiding, nothing more to do
 
 
 
 
 
 
9984
 
9985
- if (!toggle) {
9986
- return;
9987
- } // Get the badge HTML for HD, 4K etc
 
9988
 
 
 
 
 
 
 
9989
 
9990
- var getBadge = function getBadge(quality) {
9991
- var label = i18n.get("qualityBadge.".concat(quality), _this6.config);
9992
 
9993
- if (!label.length) {
9994
- return null;
9995
  }
9996
 
9997
- return controls.createBadge.call(_this6, label);
9998
- }; // Sort options by the config and then render options
 
 
 
 
 
9999
 
10000
 
10001
- this.options.quality.sort(function (a, b) {
10002
- var sorting = _this6.config.quality.options;
10003
- return sorting.indexOf(a) > sorting.indexOf(b) ? 1 : -1;
10004
- }).forEach(function (quality) {
10005
- controls.createMenuItem.call(_this6, {
10006
- value: quality,
10007
- list: list,
10008
- type: type,
10009
- title: controls.getLabel.call(_this6, 'quality', quality),
10010
- badge: getBadge(quality)
10011
  });
10012
- });
10013
- controls.updateSetting.call(this, type, list);
10014
- },
10015
- // Set the looping options
10016
-
10017
- /* setLoopMenu() {
10018
- // Menu required
10019
- if (!is.element(this.elements.settings.panels.loop)) {
10020
- return;
10021
- }
10022
- const options = ['start', 'end', 'all', 'reset'];
10023
- const list = this.elements.settings.panels.loop.querySelector('[role="menu"]');
10024
- // Show the pane and tab
10025
- toggleHidden(this.elements.settings.buttons.loop, false);
10026
- toggleHidden(this.elements.settings.panels.loop, false);
10027
- // Toggle the pane and tab
10028
- const toggle = !is.empty(this.loop.options);
10029
- controls.toggleMenuButton.call(this, 'loop', toggle);
10030
- // Empty the menu
10031
- emptyElement(list);
10032
- options.forEach(option => {
10033
- const item = createElement('li');
10034
- const button = createElement(
10035
- 'button',
10036
- extend(getAttributesFromSelector(this.config.selectors.buttons.loop), {
10037
- type: 'button',
10038
- class: this.config.classNames.control,
10039
- 'data-plyr-loop-action': option,
10040
- }),
10041
- i18n.get(option, this.config)
10042
- );
10043
- if (['start', 'end'].includes(option)) {
10044
- const badge = controls.createBadge.call(this, '00:00');
10045
- button.appendChild(badge);
10046
- }
10047
- item.appendChild(button);
10048
- list.appendChild(item);
10049
- });
10050
- }, */
10051
- // Get current selected caption language
10052
- // TODO: rework this to user the getter in the API?
10053
- // Set a list of available captions languages
10054
- setCaptionsMenu: function setCaptionsMenu() {
10055
- var _this7 = this;
10056
 
10057
- // Menu required
10058
- if (!is$1.element(this.elements.settings.panels.captions)) {
10059
- return;
10060
- } // TODO: Captions or language? Currently it's mixed
10061
 
 
 
 
 
 
 
10062
 
10063
- var type = 'captions';
10064
- var list = this.elements.settings.panels.captions.querySelector('[role="menu"]');
10065
- var tracks = captions.getTracks.call(this);
10066
- var toggle = Boolean(tracks.length); // Toggle the pane and tab
10067
 
10068
- controls.toggleMenuButton.call(this, type, toggle); // Empty the menu
 
 
 
 
 
 
 
 
10069
 
10070
- emptyElement(list); // Check if we need to toggle the parent
10071
 
10072
- controls.checkMenu.call(this); // If there's no captions, bail
 
 
10073
 
10074
- if (!toggle) {
10075
- return;
10076
- } // Generate options data
10077
 
 
 
 
10078
 
10079
- var options = tracks.map(function (track, value) {
10080
- return {
10081
- value: value,
10082
- checked: _this7.captions.toggled && _this7.currentTrack === value,
10083
- title: captions.getLabel.call(_this7, track),
10084
- badge: track.language && controls.createBadge.call(_this7, track.language.toUpperCase()),
10085
- list: list,
10086
- type: 'language'
10087
- };
10088
- }); // Add the "Disabled" option to turn off captions
10089
 
10090
- options.unshift({
10091
- value: -1,
10092
- checked: !this.captions.toggled,
10093
- title: i18n.get('disabled', this.config),
10094
- list: list,
10095
- type: 'language'
10096
- }); // Generate options
10097
 
10098
- options.forEach(controls.createMenuItem.bind(this));
10099
- controls.updateSetting.call(this, type, list);
10100
- },
10101
- // Set a list of available captions languages
10102
- setSpeedMenu: function setSpeedMenu(options) {
10103
- var _this8 = this;
10104
 
10105
- // Menu required
10106
- if (!is$1.element(this.elements.settings.panels.speed)) {
10107
- return;
10108
- }
10109
 
10110
- var type = 'speed';
10111
- var list = this.elements.settings.panels.speed.querySelector('[role="menu"]'); // Set the speed options
10112
 
10113
- if (is$1.array(options)) {
10114
- this.options.speed = options;
10115
- } else if (this.isHTML5 || this.isVimeo) {
10116
- this.options.speed = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
10117
- } // Set options if passed and filter based on config
10118
 
 
 
 
 
 
10119
 
10120
- this.options.speed = this.options.speed.filter(function (speed) {
10121
- return _this8.config.speed.options.includes(speed);
10122
- }); // Toggle the pane and tab
10123
 
10124
- var toggle = !is$1.empty(this.options.speed) && this.options.speed.length > 1;
10125
- controls.toggleMenuButton.call(this, type, toggle); // Empty the menu
10126
 
10127
- emptyElement(list); // Check if we need to toggle the parent
10128
 
10129
- controls.checkMenu.call(this); // If we're hiding, nothing more to do
 
 
 
 
 
 
 
 
 
 
 
 
10130
 
10131
- if (!toggle) {
10132
- return;
10133
- } // Create items
10134
 
 
 
 
 
 
 
 
10135
 
10136
- this.options.speed.forEach(function (speed) {
10137
- controls.createMenuItem.call(_this8, {
10138
- value: speed,
10139
- list: list,
10140
- type: type,
10141
- title: controls.getLabel.call(_this8, 'speed', speed)
10142
- });
10143
- });
10144
- controls.updateSetting.call(this, type, list);
10145
- },
10146
- // Check if we need to hide/show the settings menu
10147
- checkMenu: function checkMenu() {
10148
- var buttons = this.elements.settings.buttons;
10149
- var visible = !is$1.empty(buttons) && Object.values(buttons).some(function (button) {
10150
- return !button.hidden;
10151
- });
10152
- toggleHidden(this.elements.settings.menu, !visible);
10153
- },
10154
- // Focus the first menu item in a given (or visible) menu
10155
- focusFirstMenuItem: function focusFirstMenuItem(pane) {
10156
- var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
10157
 
10158
- if (this.elements.settings.popup.hidden) {
10159
- return;
10160
  }
10161
 
10162
- var target = pane;
10163
 
10164
- if (!is$1.element(target)) {
10165
- target = Object.values(this.elements.settings.panels).find(function (p) {
10166
- return !p.hidden;
10167
- });
10168
- }
 
10169
 
10170
- var firstItem = target.querySelector('[role^="menuitem"]');
10171
- setFocus.call(this, firstItem, tabFocus);
10172
- },
10173
- // Show/hide menu
10174
- toggleMenu: function toggleMenu(input) {
10175
- var popup = this.elements.settings.popup;
10176
- var button = this.elements.buttons.settings; // Menu and button are required
10177
 
10178
- if (!is$1.element(popup) || !is$1.element(button)) {
10179
- return;
10180
- } // True toggle by default
 
 
 
10181
 
 
 
 
 
10182
 
10183
- var hidden = popup.hidden;
10184
- var show = hidden;
10185
 
10186
- if (is$1.boolean(input)) {
10187
- show = input;
10188
- } else if (is$1.keyboardEvent(input) && input.which === 27) {
10189
- show = false;
10190
- } else if (is$1.event(input)) {
10191
- // If Plyr is in a shadowDOM, the event target is set to the component, instead of the
10192
- // Element in the shadowDOM. The path, if available, is complete.
10193
- var target = is$1.function(input.composedPath) ? input.composedPath()[0] : input.target;
10194
- var isMenuItem = popup.contains(target); // If the click was inside the menu or if the click
10195
- // wasn't the button or menu item and we're trying to
10196
- // show the menu (a doc click shouldn't show the menu)
10197
 
10198
- if (isMenuItem || !isMenuItem && input.target !== button && show) {
10199
- return;
10200
- }
10201
- } // Set button attributes
10202
-
10203
-
10204
- button.setAttribute('aria-expanded', show); // Show the actual popup
10205
-
10206
- toggleHidden(popup, !show); // Add class hook
10207
 
10208
- toggleClass(this.elements.container, this.config.classNames.menu.open, show); // Focus the first item if key interaction
 
 
10209
 
10210
- if (show && is$1.keyboardEvent(input)) {
10211
- controls.focusFirstMenuItem.call(this, null, true);
10212
- } else if (!show && !hidden) {
10213
- // If closing, re-focus the button
10214
- setFocus.call(this, button, is$1.keyboardEvent(input));
10215
- }
10216
- },
10217
- // Get the natural size of a menu panel
10218
- getMenuSize: function getMenuSize(tab) {
10219
- var clone = tab.cloneNode(true);
10220
- clone.style.position = 'absolute';
10221
- clone.style.opacity = 0;
10222
- clone.removeAttribute('hidden'); // Append to parent so we get the "real" size
10223
 
10224
- tab.parentNode.appendChild(clone); // Get the sizes before we remove
 
 
10225
 
10226
- var width = clone.scrollWidth;
10227
- var height = clone.scrollHeight; // Remove from the DOM
10228
 
10229
- removeElement(clone);
10230
- return {
10231
- width: width,
10232
- height: height
10233
  };
10234
- },
10235
- // Show a panel in the menu
10236
- showMenuPanel: function showMenuPanel() {
10237
- var _this9 = this;
10238
 
10239
- var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
10240
- var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
10241
- var target = this.elements.container.querySelector("#plyr-settings-".concat(this.id, "-").concat(type)); // Nothing to show, bail
 
10242
 
10243
- if (!is$1.element(target)) {
10244
- return;
10245
- } // Hide all other panels
 
10246
 
10247
 
10248
- var container = target.parentNode;
10249
- var current = Array.from(container.children).find(function (node) {
10250
- return !node.hidden;
10251
- }); // If we can do fancy animations, we'll animate the height/width
 
 
 
 
 
 
 
 
 
10252
 
10253
- if (support.transitions && !support.reducedMotion) {
10254
- // Set the current width as a base
10255
- container.style.width = "".concat(current.scrollWidth, "px");
10256
- container.style.height = "".concat(current.scrollHeight, "px"); // Get potential sizes
10257
 
10258
- var size = controls.getMenuSize.call(this, target); // Restore auto height/width
 
 
 
 
 
 
 
 
 
 
 
 
10259
 
10260
- var restore = function restore(event) {
10261
- // We're only bothered about height and width on the container
10262
- if (event.target !== container || !['width', 'height'].includes(event.propertyName)) {
10263
- return;
10264
- } // Revert back to auto
 
 
 
 
 
 
 
 
 
 
 
 
10265
 
 
 
 
 
 
 
 
 
 
 
 
 
10266
 
10267
- container.style.width = '';
10268
- container.style.height = ''; // Only listen once
 
 
 
 
 
 
 
 
 
 
 
10269
 
10270
- off.call(_this9, container, transitionEndEvent, restore);
10271
- }; // Listen for the transition finishing and restore auto height/width
 
 
 
 
 
 
 
 
 
 
10272
 
 
 
 
 
 
 
 
 
 
 
 
 
10273
 
10274
- on.call(this, container, transitionEndEvent, restore); // Set dimensions to target
 
 
 
 
10275
 
10276
- container.style.width = "".concat(size.width, "px");
10277
- container.style.height = "".concat(size.height, "px");
10278
- } // Set attributes on current tab
 
10279
 
 
 
 
10280
 
10281
- toggleHidden(current, true); // Set attributes on target
 
 
10282
 
10283
- toggleHidden(target, false); // Focus the first item
 
 
 
10284
 
10285
- controls.focusFirstMenuItem.call(this, target, tabFocus);
10286
- },
10287
- // Set the download URL
10288
- setDownloadUrl: function setDownloadUrl() {
10289
- var button = this.elements.buttons.download; // Bail if no button
10290
 
10291
- if (!is$1.element(button)) {
10292
- return;
10293
- } // Set attribute
 
10294
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10295
 
10296
- button.setAttribute('href', this.download);
10297
- },
10298
- // Build the default HTML
10299
- create: function create(data) {
10300
- var _this10 = this;
10301
 
10302
- var bindMenuItemShortcuts = controls.bindMenuItemShortcuts,
10303
- createButton = controls.createButton,
10304
- createProgress = controls.createProgress,
10305
- createRange = controls.createRange,
10306
- createTime = controls.createTime,
10307
- setQualityMenu = controls.setQualityMenu,
10308
- setSpeedMenu = controls.setSpeedMenu,
10309
- showMenuPanel = controls.showMenuPanel;
10310
- this.elements.controls = null; // Larger overlaid play button
10311
-
10312
- if (this.config.controls.includes('play-large')) {
10313
- this.elements.container.appendChild(createButton.call(this, 'play-large'));
10314
- } // Create the container
10315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10316
 
10317
- var container = createElement('div', getAttributesFromSelector(this.config.selectors.controls.wrapper));
10318
- this.elements.controls = container; // Default item attributes
 
 
10319
 
10320
- var defaultAttributes = {
10321
- class: 'plyr__controls__item'
10322
- }; // Loop through controls in order
10323
 
10324
- dedupe(this.config.controls).forEach(function (control) {
10325
- // Restart button
10326
- if (control === 'restart') {
10327
- container.appendChild(createButton.call(_this10, 'restart', defaultAttributes));
10328
- } // Rewind button
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10329
 
 
 
 
 
 
10330
 
10331
- if (control === 'rewind') {
10332
- container.appendChild(createButton.call(_this10, 'rewind', defaultAttributes));
10333
- } // Play/Pause button
10334
 
 
 
 
 
10335
 
10336
- if (control === 'play') {
10337
- container.appendChild(createButton.call(_this10, 'play', defaultAttributes));
10338
- } // Fast forward button
10339
 
10340
 
10341
- if (control === 'fast-forward') {
10342
- container.appendChild(createButton.call(_this10, 'fast-forward', defaultAttributes));
10343
- } // Progress
 
10344
 
 
 
 
 
 
10345
 
10346
- if (control === 'progress') {
10347
- var progressContainer = createElement('div', {
10348
- class: "".concat(defaultAttributes.class, " plyr__progress__container")
10349
- });
10350
- var progress = createElement('div', getAttributesFromSelector(_this10.config.selectors.progress)); // Seek range slider
10351
 
10352
- progress.appendChild(createRange.call(_this10, 'seek', {
10353
- id: "plyr-seek-".concat(data.id)
10354
- })); // Buffer progress
10355
 
10356
- progress.appendChild(createProgress.call(_this10, 'buffer')); // TODO: Add loop display indicator
10357
- // Seek tooltip
10358
 
10359
- if (_this10.config.tooltips.seek) {
10360
- var tooltip = createElement('span', {
10361
- class: _this10.config.classNames.tooltip
10362
- }, '00:00');
10363
- progress.appendChild(tooltip);
10364
- _this10.elements.display.seekTooltip = tooltip;
10365
- }
10366
 
10367
- _this10.elements.progress = progress;
10368
- progressContainer.appendChild(_this10.elements.progress);
10369
- container.appendChild(progressContainer);
10370
- } // Media current time display
10371
 
 
 
10372
 
10373
- if (control === 'current-time') {
10374
- container.appendChild(createTime.call(_this10, 'currentTime', defaultAttributes));
10375
- } // Media duration display
 
 
10376
 
 
 
 
 
 
10377
 
10378
- if (control === 'duration') {
10379
- container.appendChild(createTime.call(_this10, 'duration', defaultAttributes));
10380
- } // Volume controls
10381
 
10382
 
10383
- if (control === 'mute' || control === 'volume') {
10384
- var volume = _this10.elements.volume; // Create the volume container if needed
 
 
 
 
 
 
10385
 
10386
- if (!is$1.element(volume) || !container.contains(volume)) {
10387
- volume = createElement('div', extend({}, defaultAttributes, {
10388
- class: "".concat(defaultAttributes.class, " plyr__volume").trim()
10389
- }));
10390
- _this10.elements.volume = volume;
10391
- container.appendChild(volume);
10392
- } // Toggle mute button
10393
 
 
 
10394
 
10395
- if (control === 'mute') {
10396
- volume.appendChild(createButton.call(_this10, 'mute'));
10397
- } // Volume range control
10398
 
 
 
 
 
 
 
 
 
 
10399
 
10400
- if (control === 'volume') {
10401
- // Set the attributes
10402
- var attributes = {
10403
- max: 1,
10404
- step: 0.05,
10405
- value: _this10.config.volume
10406
- }; // Create the volume range slider
10407
 
10408
- volume.appendChild(createRange.call(_this10, 'volume', extend(attributes, {
10409
- id: "plyr-volume-".concat(data.id)
10410
- })));
10411
- }
10412
- } // Toggle captions button
10413
 
10414
 
10415
- if (control === 'captions') {
10416
- container.appendChild(createButton.call(_this10, 'captions', defaultAttributes));
10417
- } // Settings button / menu
10418
 
 
 
 
10419
 
10420
- if (control === 'settings' && !is$1.empty(_this10.config.settings)) {
10421
- var wrapper = createElement('div', extend({}, defaultAttributes, {
10422
- class: "".concat(defaultAttributes.class, " plyr__menu").trim(),
10423
- hidden: ''
10424
- }));
10425
- wrapper.appendChild(createButton.call(_this10, 'settings', {
10426
- 'aria-haspopup': true,
10427
- 'aria-controls': "plyr-settings-".concat(data.id),
10428
- 'aria-expanded': false
10429
- }));
10430
- var popup = createElement('div', {
10431
- class: 'plyr__menu__container',
10432
- id: "plyr-settings-".concat(data.id),
10433
- hidden: ''
10434
- });
10435
- var inner = createElement('div');
10436
- var home = createElement('div', {
10437
- id: "plyr-settings-".concat(data.id, "-home")
10438
- }); // Create the menu
10439
 
10440
- var menu = createElement('div', {
10441
- role: 'menu'
10442
- });
10443
- home.appendChild(menu);
10444
- inner.appendChild(home);
10445
- _this10.elements.settings.panels.home = home; // Build the menu items
10446
 
10447
- _this10.config.settings.forEach(function (type) {
10448
- // TODO: bundle this with the createMenuItem helper and bindings
10449
- var menuItem = createElement('button', extend(getAttributesFromSelector(_this10.config.selectors.buttons.settings), {
10450
- type: 'button',
10451
- class: "".concat(_this10.config.classNames.control, " ").concat(_this10.config.classNames.control, "--forward"),
10452
- role: 'menuitem',
10453
- 'aria-haspopup': true,
10454
- hidden: ''
10455
- })); // Bind menu shortcuts for keyboard users
10456
 
10457
- bindMenuItemShortcuts.call(_this10, menuItem, type); // Show menu on click
 
 
 
 
10458
 
10459
- on(menuItem, 'click', function () {
10460
- showMenuPanel.call(_this10, type, false);
10461
- });
10462
- var flex = createElement('span', null, i18n.get(type, _this10.config));
10463
- var value = createElement('span', {
10464
- class: _this10.config.classNames.menu.value
10465
- }); // Speed contains HTML entities
10466
 
10467
- value.innerHTML = data[type];
10468
- flex.appendChild(value);
10469
- menuItem.appendChild(flex);
10470
- menu.appendChild(menuItem); // Build the panes
10471
 
10472
- var pane = createElement('div', {
10473
- id: "plyr-settings-".concat(data.id, "-").concat(type),
10474
- hidden: ''
10475
- }); // Back button
 
 
 
 
 
 
 
 
 
 
 
 
 
10476
 
10477
- var backButton = createElement('button', {
10478
- type: 'button',
10479
- class: "".concat(_this10.config.classNames.control, " ").concat(_this10.config.classNames.control, "--back")
10480
- }); // Visible label
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10481
 
10482
- backButton.appendChild(createElement('span', {
10483
- 'aria-hidden': true
10484
- }, i18n.get(type, _this10.config))); // Screen reader label
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10485
 
10486
- backButton.appendChild(createElement('span', {
10487
- class: _this10.config.classNames.hidden
10488
- }, i18n.get('menuBack', _this10.config))); // Go back via keyboard
 
 
 
 
 
10489
 
10490
- on(pane, 'keydown', function (event) {
10491
- // We only care about <-
10492
- if (event.which !== 37) {
10493
- return;
10494
- } // Prevent seek
10495
 
 
10496
 
10497
- event.preventDefault();
10498
- event.stopPropagation(); // Show the respective menu
10499
 
10500
- showMenuPanel.call(_this10, 'home', true);
10501
- }, false); // Go back via button click
 
 
10502
 
10503
- on(backButton, 'click', function () {
10504
- showMenuPanel.call(_this10, 'home', false);
10505
- }); // Add to pane
 
10506
 
10507
- pane.appendChild(backButton); // Menu
 
 
10508
 
10509
- pane.appendChild(createElement('div', {
10510
- role: 'menu'
10511
- }));
10512
- inner.appendChild(pane);
10513
- _this10.elements.settings.buttons[type] = menuItem;
10514
- _this10.elements.settings.panels[type] = pane;
10515
- });
10516
 
10517
- popup.appendChild(inner);
10518
- wrapper.appendChild(popup);
10519
- container.appendChild(wrapper);
10520
- _this10.elements.settings.popup = popup;
10521
- _this10.elements.settings.menu = wrapper;
10522
- } // Picture in picture button
 
 
 
 
10523
 
10524
 
10525
- if (control === 'pip' && support.pip) {
10526
- container.appendChild(createButton.call(_this10, 'pip', defaultAttributes));
10527
- } // Airplay button
10528
 
 
 
 
10529
 
10530
- if (control === 'airplay' && support.airplay) {
10531
- container.appendChild(createButton.call(_this10, 'airplay', defaultAttributes));
10532
- } // Download button
 
 
 
 
 
10533
 
 
 
 
 
 
 
 
 
 
 
 
10534
 
10535
- if (control === 'download') {
10536
- var _attributes = extend({}, defaultAttributes, {
10537
- element: 'a',
10538
- href: _this10.download,
10539
- target: '_blank'
10540
- });
 
 
 
 
 
 
10541
 
10542
- var download = _this10.config.urls.download;
 
 
 
 
10543
 
10544
- if (!is$1.url(download) && _this10.isEmbed) {
10545
- extend(_attributes, {
10546
- icon: "logo-".concat(_this10.provider),
10547
- label: _this10.provider
10548
- });
10549
- }
10550
 
10551
- container.appendChild(createButton.call(_this10, 'download', _attributes));
10552
- } // Toggle fullscreen button
10553
 
 
 
 
10554
 
10555
- if (control === 'fullscreen') {
10556
- container.appendChild(createButton.call(_this10, 'fullscreen', defaultAttributes));
10557
- }
10558
- }); // Set available quality levels
10559
 
10560
- if (this.isHTML5) {
10561
- setQualityMenu.call(this, html5.getQualityOptions.call(this));
10562
- }
10563
 
10564
- setSpeedMenu.call(this);
10565
- return container;
10566
- },
10567
- // Insert controls
10568
- inject: function inject() {
10569
- var _this11 = this;
10570
 
10571
- // Sprite
10572
- if (this.config.loadSprite) {
10573
- var icon = controls.getIconUrl.call(this); // Only load external sprite using AJAX
10574
 
10575
- if (icon.cors) {
10576
- loadSprite(icon.url, 'sprite-plyr');
10577
- }
10578
- } // Create a unique ID
10579
 
 
10580
 
10581
- this.id = Math.floor(Math.random() * 10000); // Null by default
 
10582
 
10583
- var container = null;
10584
- this.elements.controls = null; // Set template properties
 
10585
 
10586
- var props = {
10587
- id: this.id,
10588
- seektime: this.config.seekTime,
10589
- title: this.config.title
10590
- };
10591
- var update = true; // If function, run it and use output
10592
-
10593
- if (is$1.function(this.config.controls)) {
10594
- this.config.controls = this.config.controls.call(this, props);
10595
- } // Convert falsy controls to empty array (primarily for empty strings)
10596
 
 
 
10597
 
10598
- if (!this.config.controls) {
10599
- this.config.controls = [];
10600
- }
 
 
 
 
 
 
 
 
10601
 
10602
- if (is$1.element(this.config.controls) || is$1.string(this.config.controls)) {
10603
- // HTMLElement or Non-empty string passed as the option
10604
- container = this.config.controls;
10605
- } else {
10606
- // Create controls
10607
- container = controls.create.call(this, {
10608
- id: this.id,
10609
- seektime: this.config.seekTime,
10610
- speed: this.speed,
10611
- quality: this.quality,
10612
- captions: captions.getLabel.call(this) // TODO: Looping
10613
- // loop: 'None',
10614
 
10615
- });
10616
- update = false;
10617
- } // Replace props with their value
 
10618
 
 
 
 
10619
 
10620
- var replace = function replace(input) {
10621
- var result = input;
10622
- Object.entries(props).forEach(function (_ref2) {
10623
- var _ref3 = _slicedToArray(_ref2, 2),
10624
- key = _ref3[0],
10625
- value = _ref3[1];
10626
 
10627
- result = replaceAll(result, "{".concat(key, "}"), value);
10628
- });
10629
- return result;
10630
- }; // Update markup
 
 
 
10631
 
 
10632
 
10633
- if (update) {
10634
- if (is$1.string(this.config.controls)) {
10635
- container = replace(container);
10636
- } else if (is$1.element(container)) {
10637
- container.innerHTML = replace(container.innerHTML);
10638
- }
10639
- } // Controls container
10640
 
 
 
 
 
 
10641
 
10642
- var target; // Inject to custom location
 
 
 
 
10643
 
10644
- if (is$1.string(this.config.selectors.controls.container)) {
10645
- target = document.querySelector(this.config.selectors.controls.container);
10646
- } // Inject into the container by default
10647
 
 
 
 
 
 
10648
 
10649
- if (!is$1.element(target)) {
10650
- target = this.elements.container;
10651
- } // Inject controls HTML (needs to be before captions, hence "afterbegin")
10652
 
 
 
 
10653
 
10654
- var insertMethod = is$1.element(container) ? 'insertAdjacentElement' : 'insertAdjacentHTML';
10655
- target[insertMethod]('afterbegin', container); // Find the elements if need be
 
 
 
 
 
 
10656
 
10657
- if (!is$1.element(this.elements.controls)) {
10658
- controls.findElements.call(this);
10659
- } // Add pressed property to buttons
 
 
 
 
 
 
10660
 
10661
 
10662
- if (!is$1.empty(this.elements.buttons)) {
10663
- var addProperty = function addProperty(button) {
10664
- var className = _this11.config.classNames.controlPressed;
10665
- Object.defineProperty(button, 'pressed', {
10666
- enumerable: true,
10667
- get: function get() {
10668
- return hasClass(button, className);
10669
- },
10670
- set: function set() {
10671
- var pressed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
10672
- toggleClass(button, className, pressed);
10673
- }
10674
- });
10675
- }; // Toggle classname when pressed property is set
10676
 
 
 
10677
 
10678
- Object.values(this.elements.buttons).filter(Boolean).forEach(function (button) {
10679
- if (is$1.array(button) || is$1.nodeList(button)) {
10680
- Array.from(button).filter(Boolean).forEach(addProperty);
10681
- } else {
10682
- addProperty(button);
10683
- }
10684
- });
10685
- } // Edge sometimes doesn't finish the paint so force a repaint
10686
 
10687
 
10688
- if (browser.isEdge) {
10689
- repaint(target);
10690
- } // Setup tooltips
 
 
10691
 
 
10692
 
10693
- if (this.config.tooltips.controls) {
10694
- var _this$config = this.config,
10695
- classNames = _this$config.classNames,
10696
- selectors = _this$config.selectors;
10697
- var selector = "".concat(selectors.controls.wrapper, " ").concat(selectors.labels, " .").concat(classNames.hidden);
10698
- var labels = getElements.call(this, selector);
10699
- Array.from(labels).forEach(function (label) {
10700
- toggleClass(label, _this11.config.classNames.hidden, false);
10701
- toggleClass(label, _this11.config.classNames.tooltip, true);
10702
  });
 
 
 
 
 
 
 
 
 
10703
  }
10704
  }
10705
  };
10706
 
10707
- /**
10708
- * Parse a string to a URL object
10709
- * @param {String} input - the URL to be parsed
10710
- * @param {Boolean} safe - failsafe parsing
10711
- */
10712
 
10713
- function parseUrl(input) {
10714
- var safe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
10715
- var url = input;
10716
 
10717
- if (safe) {
10718
- var parser = document.createElement('a');
10719
- parser.href = url;
10720
- url = parser.href;
10721
  }
10722
 
10723
- try {
10724
- return new URL(url);
10725
- } catch (e) {
10726
- return null;
10727
- }
10728
- } // Convert object to URLSearchParams
10729
 
10730
- function buildUrlParams(input) {
10731
- var params = new URLSearchParams();
 
 
 
 
 
 
 
 
10732
 
10733
- if (is$1.object(input)) {
10734
- Object.entries(input).forEach(function (_ref) {
10735
- var _ref2 = _slicedToArray(_ref, 2),
10736
- key = _ref2[0],
10737
- value = _ref2[1];
10738
 
10739
- params.set(key, value);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10740
  });
 
10741
  }
10742
 
10743
- return params;
10744
- }
10745
 
10746
- var captions = {
10747
- // Setup captions
10748
- setup: function setup() {
10749
- // Requires UI support
10750
- if (!this.supported.ui) {
10751
- return;
10752
- } // Only Vimeo and HTML5 video supported at this point
10753
 
 
 
 
10754
 
10755
- if (!this.isVideo || this.isYouTube || this.isHTML5 && !support.textTracks) {
10756
- // Clear menu and hide
10757
- if (is$1.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {
10758
- controls.setCaptionsMenu.call(this);
10759
- }
10760
 
10761
- return;
10762
- } // Inject the container
 
 
 
 
 
 
 
 
 
 
 
 
10763
 
 
 
 
 
10764
 
10765
- if (!is$1.element(this.elements.captions)) {
10766
- this.elements.captions = createElement('div', getAttributesFromSelector(this.config.selectors.captions));
10767
- insertAfter(this.elements.captions, this.elements.wrapper);
10768
- } // Fix IE captions if CORS is used
10769
- // Fetch captions and inject as blobs instead (data URIs not supported!)
10770
 
10771
 
10772
- if (browser.isIE && window.URL) {
10773
- var elements = this.media.querySelectorAll('track');
10774
- Array.from(elements).forEach(function (track) {
10775
- var src = track.getAttribute('src');
10776
- var url = parseUrl(src);
10777
 
10778
- if (url !== null && url.hostname !== window.location.href.hostname && ['http:', 'https:'].includes(url.protocol)) {
10779
- fetch(src, 'blob').then(function (blob) {
10780
- track.setAttribute('src', window.URL.createObjectURL(blob));
10781
- }).catch(function () {
10782
- removeElement(track);
10783
- });
10784
- }
10785
- });
10786
- } // Get and set initial data
10787
- // The "preferred" options are not realized unless / until the wanted language has a match
10788
- // * languages: Array of user's browser languages.
10789
- // * language: The language preferred by user settings or config
10790
- // * active: The state preferred by user settings or config
10791
- // * toggled: The real captions state
10792
 
 
10793
 
10794
- var browserLanguages = navigator.languages || [navigator.language || navigator.userLanguage || 'en'];
10795
- var languages = dedupe(browserLanguages.map(function (language) {
10796
- return language.split('-')[0];
10797
- }));
10798
- var language = (this.storage.get('language') || this.config.captions.language || 'auto').toLowerCase(); // Use first browser language when language is 'auto'
10799
 
10800
- if (language === 'auto') {
10801
- var _languages = _slicedToArray(languages, 1);
10802
 
10803
- language = _languages[0];
10804
- }
 
 
 
 
 
 
 
 
 
 
 
 
10805
 
10806
- var active = this.storage.get('captions');
10807
 
10808
- if (!is$1.boolean(active)) {
10809
- active = this.config.captions.active;
10810
- }
10811
 
10812
- Object.assign(this.captions, {
10813
- toggled: false,
10814
- active: active,
10815
- language: language,
10816
- languages: languages
10817
- }); // Watch changes to textTracks and update captions menu
10818
 
10819
- if (this.isHTML5) {
10820
- var trackEvents = this.config.captions.update ? 'addtrack removetrack' : 'removetrack';
10821
- on.call(this, this.media.textTracks, trackEvents, captions.update.bind(this));
10822
- } // Update available languages in list next tick (the event must not be triggered before the listeners)
10823
 
 
 
 
 
 
10824
 
10825
- setTimeout(captions.update.bind(this), 0);
10826
- },
10827
- // Update available language options in settings based on tracks
10828
- update: function update() {
10829
- var _this = this;
10830
 
10831
- var tracks = captions.getTracks.call(this, true); // Get the wanted language
10832
 
10833
- var _this$captions = this.captions,
10834
- active = _this$captions.active,
10835
- language = _this$captions.language,
10836
- meta = _this$captions.meta,
10837
- currentTrackNode = _this$captions.currentTrackNode;
10838
- var languageExists = Boolean(tracks.find(function (track) {
10839
- return track.language === language;
10840
- })); // Handle tracks (add event listener and "pseudo"-default)
10841
 
10842
- if (this.isHTML5 && this.isVideo) {
10843
- tracks.filter(function (track) {
10844
- return !meta.get(track);
10845
- }).forEach(function (track) {
10846
- _this.debug.log('Track added', track); // Attempt to store if the original dom element was "default"
 
10847
 
 
 
 
10848
 
10849
- meta.set(track, {
10850
- default: track.mode === 'showing'
10851
- }); // Turn off native caption rendering to avoid double captions
10852
- // eslint-disable-next-line no-param-reassign
10853
 
10854
- track.mode = 'hidden'; // Add event listener for cue changes
10855
 
10856
- on.call(_this, track, 'cuechange', function () {
10857
- return captions.updateCues.call(_this);
10858
- });
10859
- });
10860
- } // Update language first time it matches, or if the previous matching track was removed
 
 
 
 
 
10861
 
 
 
 
 
10862
 
10863
- if (languageExists && this.language !== language || !tracks.includes(currentTrackNode)) {
10864
- captions.setLanguage.call(this, language);
10865
- captions.toggle.call(this, active && languageExists);
10866
- } // Enable or disable captions based on track length
10867
 
 
 
 
 
 
10868
 
10869
- toggleClass(this.elements.container, this.config.classNames.captions.enabled, !is$1.empty(tracks)); // Update available languages in list
 
 
10870
 
10871
- if ((this.config.controls || []).includes('settings') && this.config.settings.includes('captions')) {
10872
- controls.setCaptionsMenu.call(this);
10873
- }
10874
- },
10875
- // Toggle captions display
10876
- // Used internally for the toggleCaptions method, with the passive option forced to false
10877
- toggle: function toggle(input) {
10878
- var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
10879
 
10880
- // If there's no full support
10881
- if (!this.supported.ui) {
10882
- return;
10883
  }
 
 
 
 
10884
 
10885
- var toggled = this.captions.toggled; // Current state
10886
-
10887
- var activeClass = this.config.classNames.captions.active; // Get the next state
10888
- // If the method is called without parameter, toggle based on current value
10889
 
10890
- var active = is$1.nullOrUndefined(input) ? !toggled : input; // Update state and trigger event
 
 
 
10891
 
10892
- if (active !== toggled) {
10893
- // When passive, don't override user preferences
10894
- if (!passive) {
10895
- this.captions.active = active;
10896
- this.storage.set({
10897
- captions: active
10898
- });
10899
- } // Force language if the call isn't passive and there is no matching language to toggle to
10900
 
 
10901
 
10902
- if (!this.language && active && !passive) {
10903
- var tracks = captions.getTracks.call(this);
10904
- var track = captions.findTrack.call(this, [this.captions.language].concat(_toConsumableArray(this.captions.languages)), true); // Override user preferences to avoid switching languages if a matching track is added
10905
 
10906
- this.captions.language = track.language; // Set caption, but don't store in localStorage as user preference
10907
 
10908
- captions.set.call(this, tracks.indexOf(track));
10909
- return;
10910
- } // Toggle button if it's enabled
10911
 
 
 
 
10912
 
10913
- if (this.elements.buttons.captions) {
10914
- this.elements.buttons.captions.pressed = active;
10915
- } // Add class hook
10916
-
 
10917
 
10918
- toggleClass(this.elements.container, activeClass, active);
10919
- this.captions.toggled = active; // Update settings menu
 
 
 
 
10920
 
10921
- controls.updateSetting.call(this, 'captions'); // Trigger event (not used internally)
 
 
 
 
10922
 
10923
- triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled');
 
 
 
 
 
 
 
 
 
 
10924
  }
10925
- },
10926
- // Set captions by track index
10927
- // Used internally for the currentTrack setter with the passive option forced to false
10928
- set: function set(index) {
10929
- var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
10930
- var tracks = captions.getTracks.call(this); // Disable captions if setting to -1
10931
 
10932
- if (index === -1) {
10933
- captions.toggle.call(this, false, passive);
10934
- return;
10935
- }
10936
 
10937
- if (!is$1.number(index)) {
10938
- this.debug.warn('Invalid caption argument', index);
10939
- return;
10940
- }
10941
 
10942
- if (!(index in tracks)) {
10943
- this.debug.warn('Track not found', index);
10944
- return;
10945
- }
10946
 
10947
- if (this.captions.currentTrack !== index) {
10948
- this.captions.currentTrack = index;
10949
- var track = tracks[index];
10950
 
10951
- var _ref = track || {},
10952
- language = _ref.language; // Store reference to node for invalidation on remove
10953
 
 
10954
 
10955
- this.captions.currentTrackNode = track; // Update settings menu
 
 
 
 
10956
 
10957
- controls.updateSetting.call(this, 'captions'); // When passive, don't override user preferences
10958
 
10959
- if (!passive) {
10960
- this.captions.language = language;
10961
- this.storage.set({
10962
- language: language
10963
- });
10964
- } // Handle Vimeo captions
10965
 
10966
 
10967
- if (this.isVimeo) {
10968
- this.embed.enableTextTrack(language);
10969
- } // Trigger event
10970
 
 
 
 
 
10971
 
10972
- triggerEvent.call(this, this.media, 'languagechange');
10973
- } // Show captions
1395
 
1396
  });
1397
 
 
 
 
 
 
 
1398
  /**
1399
+ * author Christopher Blum
1400
+ * - based on the idea of Remy Sharp, http://remysharp.com/2009/01/26/element-in-view-event-plugin/
1401
+ * - forked from http://github.com/zuk/jquery.inview/
1402
  */
1403
+ (function (factory) {
1404
+ if (typeof define == 'function' && define.amd) {
1405
+ // AMD
1406
+ define(['jquery'], factory);
1407
+ } else if (typeof exports === 'object') {
1408
+ // Node, CommonJS
1409
+ module.exports = factory(require('jquery'));
1410
+ } else {
1411
+ // Browser globals
1412
+ factory(jQuery);
1413
+ }
1414
+ }(function ($) {
1415
 
1416
+ var inviewObjects = [], viewportSize, viewportOffset,
1417
+ d = document, w = window, documentElement = d.documentElement, timer;
1418
 
1419
+ $.event.special.inview = {
1420
+ add: function (data) {
1421
+ inviewObjects.push({ data: data, $element: $(this), element: this });
1422
+ // Use setInterval in order to also make sure this captures elements within
1423
+ // "overflow:scroll" elements or elements that appeared in the dom tree due to
1424
+ // dom manipulation and reflow
1425
+ // old: $(window).scroll(checkInView);
1426
+ //
1427
+ // By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays
1428
+ // intervals while the user scrolls. Therefore the inview event might fire a bit late there
1429
+ //
1430
+ // Don't waste cycles with an interval until we get at least one element that
1431
+ // has bound to the inview event.
1432
+ if (!timer && inviewObjects.length) {
1433
+ timer = setInterval(checkInView, 250);
1434
+ }
1435
+ },
1436
 
1437
+ remove: function (data) {
1438
+ for (var i = 0; i < inviewObjects.length; i++) {
1439
+ var inviewObject = inviewObjects[i];
1440
+ if (inviewObject.element === this && inviewObject.data.guid === data.guid) {
1441
+ inviewObjects.splice(i, 1);
1442
+ break;
1443
+ }
1444
+ }
1445
 
1446
+ // Clear interval when we no longer have any elements listening
1447
+ if (!inviewObjects.length) {
1448
+ clearInterval(timer);
1449
+ timer = null;
1450
+ }
1451
+ }
1452
+ };
1453
 
1454
+ function getViewportSize() {
1455
+ var mode, domObject, size = { height: w.innerHeight, width: w.innerWidth };
1456
 
1457
+ // if this is correct then return it. iPad has compat Mode, so will
1458
+ // go into check clientHeight/clientWidth (which has the wrong value).
1459
+ if (!size.height) {
1460
+ mode = d.compatMode;
1461
+ if (mode || !$.support.boxModel) { // IE, Gecko
1462
+ domObject = mode === 'CSS1Compat' ?
1463
+ documentElement : // Standards
1464
+ d.body; // Quirks
1465
+ size = {
1466
+ height: domObject.clientHeight,
1467
+ width: domObject.clientWidth
1468
+ };
1469
+ }
1470
+ }
1471
 
1472
+ return size;
1473
+ }
1474
 
1475
+ function getViewportOffset() {
1476
+ return {
1477
+ top: w.pageYOffset || documentElement.scrollTop || d.body.scrollTop,
1478
+ left: w.pageXOffset || documentElement.scrollLeft || d.body.scrollLeft
1479
+ };
1480
+ }
 
 
 
 
 
 
1481
 
1482
+ function checkInView() {
1483
+ if (!inviewObjects.length) {
1484
+ return;
1485
+ }
1486
 
1487
+ var i = 0, $elements = $.map(inviewObjects, function (inviewObject) {
1488
+ var selector = inviewObject.data.selector,
1489
+ $element = inviewObject.$element;
1490
+ return selector ? $element.find(selector) : $element;
1491
+ });
 
 
 
 
 
 
 
 
1492
 
1493
+ viewportSize = viewportSize || getViewportSize();
1494
+ viewportOffset = viewportOffset || getViewportOffset();
1495
 
1496
+ for (; i < inviewObjects.length; i++) {
1497
+ // Ignore elements that are not in the DOM tree
1498
+ if (!$.contains(documentElement, $elements[i][0])) {
1499
+ continue;
1500
+ }
 
 
 
 
1501
 
1502
+ var $element = $($elements[i]),
1503
+ elementSize = { height: $element[0].offsetHeight, width: $element[0].offsetWidth },
1504
+ elementOffset = $element.offset(),
1505
+ inView = $element.data('inview');
1506
 
1507
+ // Don't ask me why because I haven't figured out yet:
1508
+ // viewportOffset and viewportSize are sometimes suddenly null in Firefox 5.
1509
+ // Even though it sounds weird:
1510
+ // It seems that the execution of this function is interferred by the onresize/onscroll event
1511
+ // where viewportOffset and viewportSize are unset
1512
+ if (!viewportOffset || !viewportSize) {
1513
+ return;
1514
+ }
 
 
1515
 
1516
+ if (elementOffset.top + elementSize.height > viewportOffset.top &&
1517
+ elementOffset.top < viewportOffset.top + viewportSize.height &&
1518
+ elementOffset.left + elementSize.width > viewportOffset.left &&
1519
+ elementOffset.left < viewportOffset.left + viewportSize.width) {
1520
+ if (!inView) {
1521
+ $element.data('inview', true).trigger('inview', [true]);
1522
+ }
1523
+ } else if (inView) {
1524
+ $element.data('inview', false).trigger('inview', [false]);
1525
+ }
1526
+ }
1527
  }
 
 
 
 
 
 
 
 
 
 
 
1528
 
1529
+ $(w).on("scroll resize scrollstop", function () {
1530
+ viewportSize = viewportOffset = null;
1531
+ });
1532
 
1533
+ // IE < 9 scrolls to focused elements without firing the "scroll" event
1534
+ if (!documentElement.addEventListener && documentElement.attachEvent) {
1535
+ documentElement.attachEvent("onfocusin", function () {
1536
+ viewportOffset = null;
1537
+ });
1538
+ }
1539
  }));
1540
+ /*! Magnific Popup - v1.1.0 - 2016-02-20
1541
+ * http://dimsemenov.com/plugins/magnific-popup/
1542
+ * Copyright (c) 2016 Dmitry Semenov; */
1543
+ ; (function (factory) {
1544
+ if (typeof define === 'function' && define.amd) {
1545
+ // AMD. Register as an anonymous module.
1546
+ define(['jquery'], factory);
1547
+ } else if (typeof exports === 'object') {
1548
+ // Node/CommonJS
1549
+ factory(require('jquery'));
1550
+ } else {
1551
+ // Browser globals
1552
+ factory(window.jQuery || window.Zepto);
1553
+ }
1554
+ }(function ($) {
1555
 
1556
+ /*>>core*/
1557
+ /**
1558
+ *
1559
+ * Magnific Popup Core JS file
1560
+ *
1561
+ */
 
 
1562
 
 
1563
 
1564
+ /**
1565
+ * Private static constants
1566
+ */
1567
+ var CLOSE_EVENT = 'Close',
1568
+ BEFORE_CLOSE_EVENT = 'BeforeClose',
1569
+ AFTER_CLOSE_EVENT = 'AfterClose',
1570
+ BEFORE_APPEND_EVENT = 'BeforeAppend',
1571
+ MARKUP_PARSE_EVENT = 'MarkupParse',
1572
+ OPEN_EVENT = 'Open',
1573
+ CHANGE_EVENT = 'Change',
1574
+ NS = 'mfp',
1575
+ EVENT_NS = '.' + NS,
1576
+ READY_CLASS = 'mfp-ready',
1577
+ REMOVING_CLASS = 'mfp-removing',
1578
+ PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
 
 
 
 
 
1579
 
 
1580
 
1581
+ /**
1582
+ * Private vars
1583
+ */
1584
+ /*jshint -W079 */
1585
+ var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
1586
+ MagnificPopup = function () { },
1587
+ _isJQ = !!(window.jQuery),
1588
+ _prevStatus,
1589
+ _window = $(window),
1590
+ _document,
1591
+ _prevContentType,
1592
+ _wrapClasses,
1593
+ _currPopupType;
1594
 
 
1595
 
1596
+ /**
1597
+ * Private functions
1598
+ */
1599
+ var _mfpOn = function (name, f) {
1600
+ mfp.ev.on(NS + name + EVENT_NS, f);
1601
+ },
1602
+ _getEl = function (className, appendTo, html, raw) {
1603
+ var el = document.createElement('div');
1604
+ el.className = 'mfp-' + className;
1605
+ if (html) {
1606
+ el.innerHTML = html;
1607
+ }
1608
+ if (!raw) {
1609
+ el = $(el);
1610
+ if (appendTo) {
1611
+ el.appendTo(appendTo);
1612
+ }
1613
+ } else if (appendTo) {
1614
+ appendTo.appendChild(el);
1615
+ }
1616
+ return el;
1617
+ },
1618
+ _mfpTrigger = function (e, data) {
1619
+ mfp.ev.triggerHandler(NS + e, data);
1620
 
1621
+ if (mfp.st.callbacks) {
1622
+ // converts "mfpEventName" to "eventName" callback and triggers it if it's present
1623
+ e = e.charAt(0).toLowerCase() + e.slice(1);
1624
+ if (mfp.st.callbacks[e]) {
1625
+ mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
1626
+ }
1627
+ }
1628
+ },
1629
+ _getCloseBtn = function (type) {
1630
+ if (type !== _currPopupType || !mfp.currTemplate.closeBtn) {
1631
+ mfp.currTemplate.closeBtn = $(mfp.st.closeMarkup.replace('%title%', mfp.st.tClose));
1632
+ _currPopupType = type;
1633
+ }
1634
+ return mfp.currTemplate.closeBtn;
1635
+ },
1636
+ // Initialize Magnific Popup only when called at least once
1637
+ _checkInstance = function () {
1638
+ if (!$.magnificPopup.instance) {
1639
+ /*jshint -W020 */
1640
+ mfp = new MagnificPopup();
1641
+ mfp.init();
1642
+ $.magnificPopup.instance = mfp;
1643
+ }
1644
+ },
1645
+ // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
1646
+ supportsTransitions = function () {
1647
+ var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
1648
+ v = ['ms', 'O', 'Moz', 'Webkit']; // 'v' for vendor
1649
 
1650
+ if (s['transition'] !== undefined) {
1651
+ return true;
1652
+ }
1653
 
1654
+ while (v.length) {
1655
+ if (v.pop() + 'Transition' in s) {
1656
+ return true;
1657
+ }
1658
+ }
1659
 
1660
+ return false;
1661
+ };
 
 
 
 
 
1662
 
 
1663
 
 
 
 
 
 
 
1664
 
1665
+ /**
1666
+ * Public functions
1667
+ */
1668
+ MagnificPopup.prototype = {
 
1669
 
1670
+ constructor: MagnificPopup,
 
 
1671
 
1672
+ /**
1673
+ * Initializes Magnific Popup plugin.
1674
+ * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
1675
+ */
1676
+ init: function () {
1677
+ var appVersion = navigator.appVersion;
1678
+ mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
1679
+ mfp.isAndroid = (/android/gi).test(appVersion);
1680
+ mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
1681
+ mfp.supportsTransition = supportsTransitions();
1682
 
1683
+ // We disable fixed positioned lightbox on devices that don't handle it nicely.
1684
+ // If you know a better way of detecting this - let me know.
1685
+ mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent));
1686
+ _document = $(document);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1687
 
1688
+ mfp.popupsCache = {};
1689
+ },
 
 
 
 
 
 
1690
 
1691
+ /**
1692
+ * Opens popup
1693
+ * @param data [description]
1694
+ */
1695
+ open: function (data) {
1696
 
1697
+ var i;
1698
 
1699
+ if (data.isObj === false) {
1700
+ // convert jQuery collection to array to avoid conflicts later
1701
+ mfp.items = data.items.toArray();
 
1702
 
1703
+ mfp.index = 0;
1704
+ var items = data.items,
1705
+ item;
1706
+ for (i = 0; i < items.length; i++) {
1707
+ item = items[i];
1708
+ if (item.parsed) {
1709
+ item = item.el[0];
1710
+ }
1711
+ if (item === data.el[0]) {
1712
+ mfp.index = i;
1713
+ break;
1714
+ }
1715
+ }
1716
+ } else {
1717
+ mfp.items = $.isArray(data.items) ? data.items : [data.items];
1718
+ mfp.index = data.index || 0;
1719
+ }
1720
 
1721
+ // if popup is already opened - we just update the content
1722
+ if (mfp.isOpen) {
1723
+ mfp.updateItemHTML();
1724
+ return;
1725
+ }
1726
 
1727
+ mfp.types = [];
1728
+ _wrapClasses = '';
1729
+ if (data.mainEl && data.mainEl.length) {
1730
+ mfp.ev = data.mainEl.eq(0);
1731
+ } else {
1732
+ mfp.ev = _document;
1733
+ }
1734
 
1735
+ if (data.key) {
1736
+ if (!mfp.popupsCache[data.key]) {
1737
+ mfp.popupsCache[data.key] = {};
1738
+ }
1739
+ mfp.currTemplate = mfp.popupsCache[data.key];
1740
+ } else {
1741
+ mfp.currTemplate = {};
1742
+ }
1743
 
 
 
 
1744
 
 
 
 
 
 
 
 
 
 
 
 
 
1745
 
1746
+ mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data);
1747
+ mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
 
 
 
 
 
 
 
 
 
 
1748
 
1749
+ if (mfp.st.modal) {
1750
+ mfp.st.closeOnContentClick = false;
1751
+ mfp.st.closeOnBgClick = false;
1752
+ mfp.st.showCloseBtn = false;
1753
+ mfp.st.enableEscapeKey = false;
1754
+ }
 
 
 
1755
 
 
 
 
 
 
1756
 
1757
+ // Building markup
1758
+ // main containers are created only once
1759
+ if (!mfp.bgOverlay) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1760
 
1761
+ // Dark overlay
1762
+ mfp.bgOverlay = _getEl('bg').on('click' + EVENT_NS, function () {
1763
+ mfp.close();
1764
+ });
 
 
 
1765
 
1766
+ mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click' + EVENT_NS, function (e) {
1767
+ if (mfp._checkIfClose(e.target)) {
1768
+ mfp.close();
1769
+ }
1770
+ });
1771
 
1772
+ mfp.container = _getEl('container', mfp.wrap);
1773
+ }
 
 
 
 
 
 
 
1774
 
1775
+ mfp.contentContainer = _getEl('content');
1776
+ if (mfp.st.preloader) {
1777
+ mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
1778
+ }
 
 
1779
 
 
 
 
 
 
1780
 
1781
+ // Initializing modules
1782
+ var modules = $.magnificPopup.modules;
1783
+ for (i = 0; i < modules.length; i++) {
1784
+ var n = modules[i];
1785
+ n = n.charAt(0).toUpperCase() + n.slice(1);
1786
+ mfp['init' + n].call(mfp);
1787
+ }
1788
+ _mfpTrigger('BeforeOpen');
 
 
 
 
1789
 
 
 
 
 
1790
 
1791
+ if (mfp.st.showCloseBtn) {
1792
+ // Close button
1793
+ if (!mfp.st.closeBtnInside) {
1794
+ mfp.wrap.append(_getCloseBtn());
1795
+ } else {
1796
+ _mfpOn(MARKUP_PARSE_EVENT, function (e, template, values, item) {
1797
+ values.close_replaceWith = _getCloseBtn(item.type);
1798
+ });
1799
+ _wrapClasses += ' mfp-close-btn-in';
1800
+ }
1801
+ }
1802
 
1803
+ if (mfp.st.alignTop) {
1804
+ _wrapClasses += ' mfp-align-top';
1805
+ }
1806
 
 
 
 
1807
 
 
1808
 
1809
+ if (mfp.fixedContentPos) {
1810
+ mfp.wrap.css({
1811
+ overflow: mfp.st.overflowY,
1812
+ overflowX: 'hidden',
1813
+ overflowY: mfp.st.overflowY
1814
+ });
1815
+ } else {
1816
+ mfp.wrap.css({
1817
+ top: _window.scrollTop(),
1818
+ position: 'absolute'
1819
+ });
1820
+ }
1821
+ if (mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos)) {
1822
+ mfp.bgOverlay.css({
1823
+ height: _document.height(),
1824
+ position: 'absolute'
1825
+ });
1826
+ }
1827
 
 
 
 
 
 
 
 
 
 
1828
 
 
 
 
 
 
1829
 
1830
+ if (mfp.st.enableEscapeKey) {
1831
+ // Close on ESC key
1832
+ _document.on('keyup' + EVENT_NS, function (e) {
1833
+ if (e.keyCode === 27) {
1834
+ mfp.close();
1835
+ }
1836
+ });
1837
+ }
1838
 
1839
+ _window.on('resize' + EVENT_NS, function () {
1840
+ mfp.updateSize();
1841
+ });
1842
 
 
 
 
 
 
 
 
1843
 
1844
+ if (!mfp.st.closeOnContentClick) {
1845
+ _wrapClasses += ' mfp-auto-cursor';
1846
+ }
 
1847
 
1848
+ if (_wrapClasses)
1849
+ mfp.wrap.addClass(_wrapClasses);
 
 
1850
 
 
 
 
 
 
 
1851
 
1852
+ // this triggers recalculation of layout, so we get it once to not to trigger twice
1853
+ var windowHeight = mfp.wH = _window.height();
1854
 
 
 
 
 
 
1855
 
1856
+ var windowStyles = {};
 
1857
 
1858
+ if (mfp.fixedContentPos) {
1859
+ if (mfp._hasScrollBar(windowHeight)) {
1860
+ var s = mfp._getScrollbarSize();
1861
+ if (s) {
1862
+ windowStyles.marginRight = s;
1863
+ }
1864
+ }
1865
+ }
 
 
 
 
 
 
 
 
1866
 
1867
+ if (mfp.fixedContentPos) {
1868
+ if (!mfp.isIE7) {
1869
+ windowStyles.overflow = 'hidden';
1870
+ } else {
1871
+ // ie7 double-scroll bug
1872
+ $('body, html').css('overflow', 'hidden');
1873
+ }
1874
+ }
1875
 
 
1876
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1877
 
1878
+ var classesToadd = mfp.st.mainClass;
1879
+ if (mfp.isIE7) {
1880
+ classesToadd += ' mfp-ie7';
1881
+ }
1882
+ if (classesToadd) {
1883
+ mfp._addClassToMFP(classesToadd);
1884
+ }
1885
 
1886
+ // add content
1887
+ mfp.updateItemHTML();
1888
 
1889
+ _mfpTrigger('BuildControls');
1890
 
1891
+ // remove scrollbar, add margin e.t.c
1892
+ $('html').css(windowStyles);
1893
 
1894
+ // add everything to DOM
1895
+ mfp.bgOverlay.add(mfp.wrap).prependTo(mfp.st.prependTo || $(document.body));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1896
 
1897
+ // Save last focused element
1898
+ mfp._lastFocusedEl = document.activeElement;
1899
 
1900
+ // Wait for next cycle to allow CSS transition
1901
+ setTimeout(function () {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1902
 
1903
+ if (mfp.content) {
1904
+ mfp._addClassToMFP(READY_CLASS);
1905
+ mfp._setFocus();
1906
+ } else {
1907
+ // if content is not defined (not loaded e.t.c) we add class only for BG
1908
+ mfp.bgOverlay.addClass(READY_CLASS);
1909
  }
 
1910
 
1911
+ // Trap the focus in popup
1912
+ _document.on('focusin' + EVENT_NS, mfp._onFocusIn);
 
 
 
 
 
1913
 
1914
+ }, 16);
 
1915
 
1916
+ mfp.isOpen = true;
1917
+ mfp.updateSize(windowHeight);
1918
+ _mfpTrigger(OPEN_EVENT);
1919
+
1920
+ return data;
1921
+ },
1922
+
1923
+ /**
1924
+ * Closes the popup
1925
+ */
1926
+ close: function () {
1927
+ if (!mfp.isOpen) return;
1928
+ _mfpTrigger(BEFORE_CLOSE_EVENT);
1929
+
1930
+ mfp.isOpen = false;
1931
+ // for CSS3 animation
1932
+ if (mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition) {
1933
+ mfp._addClassToMFP(REMOVING_CLASS);
1934
+ setTimeout(function () {
1935
+ mfp._close();
1936
+ }, mfp.st.removalDelay);
1937
+ } else {
1938
+ mfp._close();
1939
  }
1940
+ },
1941
 
1942
+ /**
1943
+ * Helper for close() function
1944
+ */
1945
+ _close: function () {
1946
+ _mfpTrigger(CLOSE_EVENT);
1947
 
1948
+ var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
 
 
 
 
 
1949
 
1950
+ mfp.bgOverlay.detach();
1951
+ mfp.wrap.detach();
1952
+ mfp.container.empty();
 
1953
 
1954
+ if (mfp.st.mainClass) {
1955
+ classesToRemove += mfp.st.mainClass + ' ';
1956
+ }
 
 
1957
 
1958
+ mfp._removeClassFromMFP(classesToRemove);
 
1959
 
1960
+ if (mfp.fixedContentPos) {
1961
+ var windowStyles = { marginRight: '' };
1962
+ if (mfp.isIE7) {
1963
+ $('body, html').css('overflow', '');
1964
+ } else {
1965
+ windowStyles.overflow = '';
1966
+ }
1967
+ $('html').css(windowStyles);
1968
  }
1969
 
1970
+ _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
1971
+ mfp.ev.off(EVENT_NS);
 
 
1972
 
1973
+ // clean up DOM elements that aren't removed
1974
+ mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
1975
+ mfp.bgOverlay.attr('class', 'mfp-bg');
1976
+ mfp.container.attr('class', 'mfp-container');
1977
+
1978
+ // remove close button from target element
1979
+ if (mfp.st.showCloseBtn &&
1980
+ (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
1981
+ if (mfp.currTemplate.closeBtn)
1982
+ mfp.currTemplate.closeBtn.detach();
1983
  }
1984
 
1985
+
1986
+ if (mfp.st.autoFocusLast && mfp._lastFocusedEl) {
1987
+ $(mfp._lastFocusedEl).focus(); // put tab focus back
 
 
 
 
 
 
1988
  }
1989
+ mfp.currItem = null;
1990
+ mfp.content = null;
1991
+ mfp.currTemplate = null;
1992
+ mfp.prevHeight = 0;
1993
 
1994
+ _mfpTrigger(AFTER_CLOSE_EVENT);
1995
+ },
 
1996
 
1997
+ updateSize: function (winHeight) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1998
 
1999
+ if (mfp.isIOS) {
2000
+ // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
2001
+ var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
2002
+ var height = window.innerHeight * zoomLevel;
2003
+ mfp.wrap.css('height', height);
2004
+ mfp.wH = height;
2005
+ } else {
2006
+ mfp.wH = winHeight || _window.height();
2007
+ }
2008
+ // Fixes #84: popup incorrectly positioned with position:relative on body
2009
+ if (!mfp.fixedContentPos) {
2010
+ mfp.wrap.css('height', mfp.wH);
2011
+ }
2012
 
2013
+ _mfpTrigger('Resize');
2014
 
2015
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2016
 
2017
+ /**
2018
+ * Set content of popup based on current index
2019
+ */
2020
+ updateItemHTML: function () {
2021
+ var item = mfp.items[mfp.index];
2022
 
2023
+ // Detach and perform modifications
2024
+ mfp.contentContainer.detach();
2025
 
2026
+ if (mfp.content)
2027
+ mfp.content.detach();
2028
 
2029
+ if (!item.parsed) {
2030
+ item = mfp.parseEl(mfp.index);
2031
+ }
 
 
 
 
2032
 
2033
+ var type = item.type;
2034
 
2035
+ _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
2036
+ // BeforeChange event works like so:
2037
+ // _mfpOn('BeforeChange', function(e, prevType, newType) { });
 
 
2038
 
2039
+ mfp.currItem = item;
 
 
 
 
 
 
 
 
 
 
2040
 
2041
+ if (!mfp.currTemplate[type]) {
2042
+ var markup = mfp.st[type] ? mfp.st[type].markup : false;
 
 
 
 
 
 
 
 
 
 
2043
 
2044
+ // allows to modify markup
2045
+ _mfpTrigger('FirstMarkupParse', markup);
 
 
2046
 
2047
+ if (markup) {
2048
+ mfp.currTemplate[type] = $(markup);
2049
+ } else {
2050
+ // if there is no markup found we just define that template is parsed
2051
+ mfp.currTemplate[type] = true;
2052
+ }
2053
+ }
 
2054
 
2055
+ if (_prevContentType && _prevContentType !== item.type) {
2056
+ mfp.container.removeClass('mfp-' + _prevContentType + '-holder');
2057
+ }
 
 
2058
 
2059
+ var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
2060
+ mfp.appendContent(newContent, type);
 
 
 
2061
 
2062
+ item.preloaded = true;
 
2063
 
2064
+ _mfpTrigger(CHANGE_EVENT, item);
2065
+ _prevContentType = item.type;
 
 
 
 
 
 
 
 
 
 
 
 
2066
 
2067
+ // Append container back after its content changed
2068
+ mfp.container.prepend(mfp.contentContainer);
2069
 
2070
+ _mfpTrigger('AfterChange');
2071
+ },
2072
 
 
2073
 
2074
+ /**
2075
+ * Set HTML content of popup
2076
+ */
2077
+ appendContent: function (newContent, type) {
2078
+ mfp.content = newContent;
 
 
2079
 
2080
+ if (newContent) {
2081
+ if (mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
2082
+ mfp.currTemplate[type] === true) {
2083
+ // if there is no markup, we just append close button element inside
2084
+ if (!mfp.content.find('.mfp-close').length) {
2085
+ mfp.content.append(_getCloseBtn());
2086
+ }
2087
+ } else {
2088
+ mfp.content = newContent;
2089
+ }
2090
+ } else {
2091
+ mfp.content = '';
2092
+ }
2093
 
2094
+ _mfpTrigger(BEFORE_APPEND_EVENT);
2095
+ mfp.container.addClass('mfp-' + type + '-holder');
2096
 
2097
+ mfp.contentContainer.append(mfp.content);
2098
+ },
2099
 
 
2100
 
2101
+ /**
2102
+ * Creates Magnific Popup data object based on given data
2103
+ * @param {int} index Index of item to parse
2104
+ */
2105
+ parseEl: function (index) {
2106
+ var item = mfp.items[index],
2107
+ type;
2108
 
2109
+ if (item.tagName) {
2110
+ item = { el: $(item) };
2111
+ } else {
2112
+ type = item.type;
2113
+ item = { data: item, src: item.src };
2114
+ }
2115
 
2116
+ if (item.el) {
2117
+ var types = mfp.types;
 
 
 
 
 
 
 
 
 
 
 
2118
 
2119
+ // check for 'mfp-TYPE' class
2120
+ for (var i = 0; i < types.length; i++) {
2121
+ if (item.el.hasClass('mfp-' + types[i])) {
2122
+ type = types[i];
2123
+ break;
2124
+ }
2125
+ }
2126
 
2127
+ item.src = item.el.attr('data-mfp-src');
2128
+ if (!item.src) {
2129
+ item.src = item.el.attr('href');
2130
+ }
2131
+ }
2132
 
2133
+ item.type = type || mfp.st.type || 'inline';
2134
+ item.index = index;
2135
+ item.parsed = true;
2136
+ mfp.items[index] = item;
2137
+ _mfpTrigger('ElementParse', item);
2138
 
2139
+ return mfp.items[index];
2140
+ },
2141
 
 
2142
 
2143
+ /**
2144
+ * Initializes single popup or a group of popups
2145
+ */
2146
+ addGroup: function (el, options) {
2147
+ var eHandler = function (e) {
2148
+ e.mfpEl = this;
2149
+ mfp._openClick(e, el, options);
2150
+ };
 
 
 
 
2151
 
2152
+ if (!options) {
2153
+ options = {};
2154
+ }
2155
 
2156
+ var eName = 'click.magnificPopup';
2157
+ options.mainEl = el;
 
 
 
 
 
 
 
 
 
 
 
2158
 
2159
+ if (options.items) {
2160
+ options.isObj = true;
2161
+ el.off(eName).on(eName, eHandler);
2162
+ } else {
2163
+ options.isObj = false;
2164
+ if (options.delegate) {
2165
+ el.off(eName).on(eName, options.delegate, eHandler);
2166
+ } else {
2167
+ options.items = el;
2168
+ el.off(eName).on(eName, eHandler);
2169
+ }
2170
+ }
2171
+ },
2172
+ _openClick: function (e, el, options) {
2173
+ var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
2174
 
 
 
 
 
 
 
 
 
 
2175
 
2176
+ if (!midClick && (e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {
2177
+ return;
2178
+ }
2179
 
2180
+ var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
 
 
 
 
 
 
 
 
 
2181
 
2182
+ if (disableOn) {
2183
+ if ($.isFunction(disableOn)) {
2184
+ if (!disableOn.call(mfp)) {
2185
+ return true;
2186
+ }
2187
+ } else { // else it's number
2188
+ if (_window.width() < disableOn) {
2189
+ return true;
2190
+ }
2191
+ }
2192
+ }
 
 
2193
 
2194
+ if (e.type) {
2195
+ e.preventDefault();
2196
 
2197
+ // This will prevent popup from closing if element is inside and popup is already opened
2198
+ if (mfp.isOpen) {
2199
+ e.stopPropagation();
2200
+ }
2201
+ }
2202
 
2203
+ options.el = $(e.mfpEl);
2204
+ if (options.delegate) {
2205
+ options.items = el.find(options.delegate);
2206
+ }
2207
+ mfp.open(options);
2208
+ },
2209
 
 
2210
 
2211
+ /**
2212
+ * Updates text on preloader
2213
+ */
2214
+ updateStatus: function (status, text) {
 
2215
 
2216
+ if (mfp.preloader) {
2217
+ if (_prevStatus !== status) {
2218
+ mfp.container.removeClass('mfp-s-' + _prevStatus);
2219
+ }
2220
 
2221
+ if (!text && status === 'loading') {
2222
+ text = mfp.st.tLoading;
2223
+ }
 
 
 
 
 
 
 
 
 
2224
 
2225
+ var data = {
2226
+ status: status,
2227
+ text: text
2228
+ };
2229
+ // allows to modify status
2230
+ _mfpTrigger('UpdateStatus', data);
2231
 
2232
+ status = data.status;
2233
+ text = data.text;
2234
 
2235
+ mfp.preloader.html(text);
 
 
 
 
 
 
2236
 
2237
+ mfp.preloader.find('a').on('click', function (e) {
2238
+ e.stopImmediatePropagation();
2239
+ });
2240
 
2241
+ mfp.container.addClass('mfp-s-' + status);
2242
+ _prevStatus = status;
2243
+ }
2244
+ },
2245
 
 
2246
 
2247
+ /*
2248
+ "Private" helpers that aren't private at all
2249
+ */
2250
+ // Check to close popup or not
2251
+ // "target" is an element that was clicked
2252
+ _checkIfClose: function (target) {
 
 
 
 
 
 
 
 
2253
 
2254
+ if ($(target).hasClass(PREVENT_CLOSE_CLASS)) {
2255
+ return;
2256
+ }
2257
 
2258
+ var closeOnContent = mfp.st.closeOnContentClick;
2259
+ var closeOnBg = mfp.st.closeOnBgClick;
 
 
 
 
 
 
 
 
 
 
 
 
 
2260
 
2261
+ if (closeOnContent && closeOnBg) {
2262
+ return true;
2263
+ } else {
2264
 
2265
+ // We close the popup if click is on close button or on preloader. Or if there is no content.
2266
+ if (!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0])) {
2267
+ return true;
2268
+ }
 
 
 
 
 
 
 
 
 
2269
 
2270
+ // if click is outside the content
2271
+ if ((target !== mfp.content[0] && !$.contains(mfp.content[0], target))) {
2272
+ if (closeOnBg) {
2273
+ // last check, if the clicked element is in DOM, (in case it's removed onclick)
2274
+ if ($.contains(document, target)) {
2275
+ return true;
2276
+ }
2277
+ }
2278
+ } else if (closeOnContent) {
2279
+ return true;
2280
+ }
2281
 
2282
+ }
2283
+ return false;
2284
+ },
2285
+ _addClassToMFP: function (cName) {
2286
+ mfp.bgOverlay.addClass(cName);
2287
+ mfp.wrap.addClass(cName);
2288
+ },
2289
+ _removeClassFromMFP: function (cName) {
2290
+ this.bgOverlay.removeClass(cName);
2291
+ mfp.wrap.removeClass(cName);
2292
+ },
2293
+ _hasScrollBar: function (winHeight) {
2294
+ return ((mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()));
2295
+ },
2296
+ _setFocus: function () {
2297
+ (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
2298
+ },
2299
+ _onFocusIn: function (e) {
2300
+ if (e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target)) {
2301
+ mfp._setFocus();
2302
+ return false;
2303
+ }
2304
+ },
2305
+ _parseMarkup: function (template, values, item) {
2306
+ var arr;
2307
+ if (item.data) {
2308
+ values = $.extend(item.data, values);
2309
+ }
2310
+ _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item]);
2311
 
2312
+ $.each(values, function (key, value) {
2313
+ if (value === undefined || value === false) {
2314
+ return true;
2315
+ }
2316
+ arr = key.split('_');
2317
+ if (arr.length > 1) {
2318
+ var el = template.find(EVENT_NS + '-' + arr[0]);
2319
 
2320
+ if (el.length > 0) {
2321
+ var attr = arr[1];
2322
+ if (attr === 'replaceWith') {
2323
+ if (el[0] !== value[0]) {
2324
+ el.replaceWith(value);
2325
+ }
2326
+ } else if (attr === 'img') {
2327
+ if (el.is('img')) {
2328
+ el.attr('src', value);
2329
+ } else {
2330
+ el.replaceWith($('<img>').attr('src', value).attr('class', el.attr('class')));
2331
+ }
2332
+ } else {
2333
+ el.attr(arr[1], value);
2334
+ }
2335
+ }
2336
 
2337
+ } else {
2338
+ template.find(EVENT_NS + '-' + key).html(value);
2339
+ }
2340
+ });
2341
+ },
2342
 
2343
+ _getScrollbarSize: function () {
2344
+ // thx David
2345
+ if (mfp.scrollbarSize === undefined) {
2346
+ var scrollDiv = document.createElement("div");
2347
+ scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
2348
+ document.body.appendChild(scrollDiv);
2349
+ mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
2350
+ document.body.removeChild(scrollDiv);
2351
+ }
2352
+ return mfp.scrollbarSize;
2353
+ }
2354
 
2355
+ }; /* MagnificPopup core prototype end */
 
 
 
 
 
2356
 
 
 
2357
 
 
2358
 
 
 
2359
 
2360
+ /**
2361
+ * Public static functions
2362
+ */
2363
+ $.magnificPopup = {
2364
+ instance: null,
2365
+ proto: MagnificPopup.prototype,
2366
+ modules: [],
2367
 
2368
+ open: function (options, index) {
2369
+ _checkInstance();
 
 
2370
 
2371
+ if (!options) {
2372
+ options = {};
2373
+ } else {
2374
+ options = $.extend(true, {}, options);
2375
+ }
2376
 
2377
+ options.isObj = true;
2378
+ options.index = index || 0;
2379
+ return this.instance.open(options);
2380
+ },
2381
 
2382
+ close: function () {
2383
+ return $.magnificPopup.instance && $.magnificPopup.instance.close();
2384
+ },
2385
 
2386
+ registerModule: function (name, module) {
2387
+ if (module.options) {
2388
+ $.magnificPopup.defaults[name] = module.options;
2389
+ }
2390
+ $.extend(this.proto, module.proto);
2391
+ this.modules.push(name);
2392
+ },
2393
 
2394
+ defaults: {
 
 
 
 
 
 
 
2395
 
2396
+ // Info about options is in docs:
2397
+ // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
 
 
 
 
2398
 
2399
+ disableOn: 0,
2400
 
2401
+ key: null,
 
 
 
 
 
 
2402
 
2403
+ midClick: false,
 
 
 
 
 
2404
 
2405
+ mainClass: '',
 
2406
 
2407
+ preloader: true,
 
2408
 
2409
+ focus: '', // CSS selector of input to focus after popup is opened
 
2410
 
2411
+ closeOnContentClick: false,
2412
 
2413
+ closeOnBgClick: true,
2414
 
2415
+ closeBtnInside: true,
 
 
 
 
2416
 
2417
+ showCloseBtn: true,
2418
 
2419
+ enableEscapeKey: true,
 
 
 
 
 
 
 
 
 
 
 
 
 
2420
 
2421
+ modal: false,
 
2422
 
2423
+ alignTop: false,
 
 
 
 
 
 
 
 
 
 
 
2424
 
2425
+ removalDelay: 0,
 
 
 
 
 
 
 
2426
 
2427
+ prependTo: null,
 
 
2428
 
2429
+ fixedContentPos: 'auto',
2430
 
2431
+ fixedBgPos: 'auto',
 
 
 
2432
 
2433
+ overflowY: 'auto',
2434
 
2435
+ closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
 
 
2436
 
2437
+ tClose: 'Close (Esc)',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2438
 
2439
+ tLoading: 'Loading...',
2440
 
2441
+ autoFocusLast: true
2442
 
2443
+ }
2444
+ };
2445
 
 
2446
 
 
2447
 
2448
+ $.fn.magnificPopup = function (options) {
2449
+ _checkInstance();
 
 
 
 
 
2450
 
2451
+ var jqEl = $(this);
2452
 
2453
+ // We call some API method of first param is a string
2454
+ if (typeof options === "string") {
 
2455
 
2456
+ if (options === 'open') {
2457
+ var items,
2458
+ itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
2459
+ index = parseInt(arguments[1], 10) || 0;
2460
 
2461
+ if (itemOpts.items) {
2462
+ items = itemOpts.items[index];
2463
+ } else {
2464
+ items = jqEl;
2465
+ if (itemOpts.delegate) {
2466
+ items = items.find(itemOpts.delegate);
2467
+ }
2468
+ items = items.eq(index);
2469
+ }
2470
+ mfp._openClick({ mfpEl: items }, jqEl, itemOpts);
2471
+ } else {
2472
+ if (mfp.isOpen)
2473
+ mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
2474
+ }
2475
 
2476
+ } else {
2477
+ // clone options obj
2478
+ options = $.extend(true, {}, options);
 
 
 
 
 
 
 
2479
 
2480
+ /*
2481
+ * As Zepto doesn't support .data() method for objects
2482
+ * and it works only in normal browsers
2483
+ * we assign "options" object directly to the DOM element. FTW!
2484
+ */
2485
+ if (_isJQ) {
2486
+ jqEl.data('magnificPopup', options);
2487
+ } else {
2488
+ jqEl[0].magnificPopup = options;
2489
+ }
2490
 
2491
+ mfp.addGroup(jqEl, options);
 
 
2492
 
2493
+ }
2494
+ return jqEl;
2495
+ };
2496
 
2497
+ /*>>core*/
 
 
 
 
 
2498
 
2499
+ /*>>inline*/
2500
 
2501
+ var INLINE_NS = 'inline',
2502
+ _hiddenClass,
2503
+ _inlinePlaceholder,
2504
+ _lastInlineElement,
2505
+ _putInlineElementsBack = function () {
2506
+ if (_lastInlineElement) {
2507
+ _inlinePlaceholder.after(_lastInlineElement.addClass(_hiddenClass)).detach();
2508
+ _lastInlineElement = null;
2509
+ }
2510
+ };
2511
 
2512
+ $.magnificPopup.registerModule(INLINE_NS, {
2513
+ options: {
2514
+ hiddenClass: 'hide', // will be appended with `mfp-` prefix
2515
+ markup: '',
2516
+ tNotFound: 'Content not found'
2517
+ },
2518
+ proto: {
2519
 
2520
+ initInline: function () {
2521
+ mfp.types.push(INLINE_NS);
 
 
 
 
 
2522
 
2523
+ _mfpOn(CLOSE_EVENT + '.' + INLINE_NS, function () {
2524
+ _putInlineElementsBack();
2525
+ });
2526
+ },
2527
 
2528
+ getInline: function (item, template) {
 
 
 
 
 
 
2529
 
2530
+ _putInlineElementsBack();
2531
 
2532
+ if (item.src) {
2533
+ var inlineSt = mfp.st.inline,
2534
+ el = $(item.src);
 
2535
 
2536
+ if (el.length) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2537
 
2538
+ // If target element has parent - we replace it with placeholder and put it back after popup is closed
2539
+ var parent = el[0].parentNode;
2540
+ if (parent && parent.tagName) {
2541
+ if (!_inlinePlaceholder) {
2542
+ _hiddenClass = inlineSt.hiddenClass;
2543
+ _inlinePlaceholder = _getEl(_hiddenClass);
2544
+ _hiddenClass = 'mfp-' + _hiddenClass;
2545
+ }
2546
+ // replace target inline element with placeholder
2547
+ _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
2548
+ }
2549
 
2550
+ mfp.updateStatus('ready');
2551
+ } else {
2552
+ mfp.updateStatus('error', inlineSt.tNotFound);
2553
+ el = $('<div>');
2554
+ }
2555
 
2556
+ item.inlineElement = el;
2557
+ return el;
2558
+ }
 
 
2559
 
2560
+ mfp.updateStatus('ready');
2561
+ mfp._parseMarkup(template, {}, item);
2562
+ return template;
2563
+ }
2564
+ }
2565
+ });
2566
 
2567
+ /*>>inline*/
 
 
 
 
 
 
 
2568
 
2569
+ /*>>ajax*/
2570
+ var AJAX_NS = 'ajax',
2571
+ _ajaxCur,
2572
+ _removeAjaxCursor = function () {
2573
+ if (_ajaxCur) {
2574
+ $(document.body).removeClass(_ajaxCur);
2575
+ }
2576
+ },
2577
+ _destroyAjaxRequest = function () {
2578
+ _removeAjaxCursor();
2579
+ if (mfp.req) {
2580
+ mfp.req.abort();
2581
+ }
2582
+ };
2583
 
2584
+ $.magnificPopup.registerModule(AJAX_NS, {
 
 
 
 
 
 
 
 
2585
 
2586
+ options: {
2587
+ settings: null,
2588
+ cursor: 'mfp-ajax-cur',
2589
+ tError: '<a href="%url%">The content</a> could not be loaded.'
2590
+ },
2591
 
2592
+ proto: {
2593
+ initAjax: function () {
2594
+ mfp.types.push(AJAX_NS);
2595
+ _ajaxCur = mfp.st.ajax.cursor;
 
 
2596
 
2597
+ _mfpOn(CLOSE_EVENT + '.' + AJAX_NS, _destroyAjaxRequest);
2598
+ _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
2599
+ },
2600
+ getAjax: function (item) {
 
 
 
 
 
 
 
 
 
 
 
 
2601
 
2602
+ if (_ajaxCur) {
2603
+ $(document.body).addClass(_ajaxCur);
2604
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2605
 
2606
+ mfp.updateStatus('loading');
 
2607
 
2608
+ var opts = $.extend({
2609
+ url: item.src,
2610
+ success: function (data, textStatus, jqXHR) {
2611
+ var temp = {
2612
+ data: data,
2613
+ xhr: jqXHR
2614
+ };
2615
 
2616
+ _mfpTrigger('ParseAjax', temp);
2617
 
2618
+ mfp.appendContent($(temp.data), AJAX_NS);
2619
 
2620
+ item.finished = true;
 
 
2621
 
2622
+ _removeAjaxCursor();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2623
 
2624
+ mfp._setFocus();
 
2625
 
2626
+ setTimeout(function () {
2627
+ mfp.wrap.addClass(READY_CLASS);
2628
+ }, 16);
2629
 
2630
+ mfp.updateStatus('ready');
 
 
 
 
 
 
2631
 
2632
+ _mfpTrigger('AjaxContentAdded');
2633
+ },
2634
+ error: function () {
2635
+ _removeAjaxCursor();
2636
+ item.finished = item.loadError = true;
2637
+ mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
2638
+ }
2639
+ }, mfp.st.ajax.settings);
2640
 
2641
+ mfp.req = $.ajax(opts);
2642
 
2643
+ return '';
2644
+ }
2645
+ }
2646
+ });
2647
 
2648
+ /*>>ajax*/
 
 
 
2649
 
2650
+ /*>>image*/
2651
+ var _imgInterval,
2652
+ _getTitle = function (item) {
2653
+ if (item.data && item.data.title !== undefined)
2654
+ return item.data.title;
2655
 
2656
+ var src = mfp.st.image.titleSrc;
 
 
 
 
 
 
 
2657
 
2658
+ if (src) {
2659
+ if ($.isFunction(src)) {
2660
+ return src.call(mfp, item);
2661
+ } else if (item.el) {
2662
+ return item.el.attr(src) || '';
2663
+ }
2664
+ }
2665
+ return '';
2666
+ };
2667
 
2668
+ $.magnificPopup.registerModule('image', {
 
 
 
2669
 
2670
+ options: {
2671
+ markup: '<div class="mfp-figure">' +
2672
+ '<div class="mfp-close"></div>' +
2673
+ '<figure>' +
2674
+ '<div class="mfp-img"></div>' +
2675
+ '<figcaption>' +
2676
+ '<div class="mfp-bottom-bar">' +
2677
+ '<div class="mfp-title"></div>' +
2678
+ '<div class="mfp-counter"></div>' +
2679
+ '</div>' +
2680
+ '</figcaption>' +
2681
+ '</figure>' +
2682
+ '</div>',
2683
+ cursor: 'mfp-zoom-out-cur',
2684
+ titleSrc: 'title',
2685
+ verticalFit: true,
2686
+ tError: '<a href="%url%">The image</a> could not be loaded.'
2687
+ },
2688
 
2689
+ proto: {
2690
+ initImage: function () {
2691
+ var imgSt = mfp.st.image,
2692
+ ns = '.image';
2693
 
2694
+ mfp.types.push('image');
 
 
2695
 
2696
+ _mfpOn(OPEN_EVENT + ns, function () {
2697
+ if (mfp.currItem.type === 'image' && imgSt.cursor) {
2698
+ $(document.body).addClass(imgSt.cursor);
2699
+ }
2700
+ });
 
 
2701
 
2702
+ _mfpOn(CLOSE_EVENT + ns, function () {
2703
+ if (imgSt.cursor) {
2704
+ $(document.body).removeClass(imgSt.cursor);
2705
+ }
2706
+ _window.off('resize' + EVENT_NS);
2707
+ });
2708
 
2709
+ _mfpOn('Resize' + ns, mfp.resizeImage);
2710
+ if (mfp.isLowIE) {
2711
+ _mfpOn('AfterChange', mfp.resizeImage);
2712
+ }
2713
+ },
2714
+ resizeImage: function () {
2715
+ var item = mfp.currItem;
2716
+ if (!item || !item.img) return;
2717
 
2718
+ if (mfp.st.image.verticalFit) {
2719
+ var decr = 0;
2720
+ // fix box-sizing in ie7/8
2721
+ if (mfp.isLowIE) {
2722
+ decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'), 10);
2723
+ }
2724
+ item.img.css('max-height', mfp.wH - decr);
2725
+ }
2726
+ },
2727
+ _onImageHasSize: function (item) {
2728
+ if (item.img) {
2729
 
2730
+ item.hasSize = true;
 
 
 
 
 
2731
 
2732
+ if (_imgInterval) {
2733
+ clearInterval(_imgInterval);
2734
+ }
 
 
 
2735
 
2736
+ item.isCheckingImgSize = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2737
 
2738
+ _mfpTrigger('ImageHasSize', item);
 
 
2739
 
2740
+ if (item.imgHidden) {
2741
+ if (mfp.content)
2742
+ mfp.content.removeClass('mfp-loading');
 
 
 
2743
 
2744
+ item.imgHidden = false;
2745
+ }
 
 
2746
 
2747
+ }
2748
+ },
 
 
 
2749
 
2750
+ /**
2751
+ * Function that loops until the image has size to display elements that rely on it asap
2752
+ */
2753
+ findImageSize: function (item) {
2754
 
2755
+ var counter = 0,
2756
+ img = item.img[0],
2757
+ mfpSetInterval = function (delay) {
 
 
2758
 
2759
+ if (_imgInterval) {
2760
+ clearInterval(_imgInterval);
2761
+ }
2762
+ // decelerating interval that checks for size of an image
2763
+ _imgInterval = setInterval(function () {
2764
+ if (img.naturalWidth > 0) {
2765
+ mfp._onImageHasSize(item);
2766
+ return;
2767
+ }
2768
 
2769
+ if (counter > 200) {
2770
+ clearInterval(_imgInterval);
2771
+ }
 
 
2772
 
2773
+ counter++;
2774
+ if (counter === 3) {
2775
+ mfpSetInterval(10);
2776
+ } else if (counter === 40) {
2777
+ mfpSetInterval(50);
2778
+ } else if (counter === 100) {
2779
+ mfpSetInterval(500);
2780
+ }
2781
+ }, delay);
2782
+ };
2783
 
2784
+ mfpSetInterval(1);
2785
+ },
 
 
 
2786
 
2787
+ getImage: function (item, template) {
2788
 
2789
+ var guard = 0,
 
2790
 
2791
+ // image load complete handler
2792
+ onLoadComplete = function () {
2793
+ if (item) {
2794
+ if (item.img[0].complete) {
2795
+ item.img.off('.mfploader');
2796
 
2797
+ if (item === mfp.currItem) {
2798
+ mfp._onImageHasSize(item);
 
 
2799
 
2800
+ mfp.updateStatus('ready');
2801
+ }
 
 
 
 
 
 
2802
 
2803
+ item.hasSize = true;
2804
+ item.loaded = true;
 
 
 
 
 
 
2805
 
2806
+ _mfpTrigger('ImageLoadComplete');
 
 
 
 
2807
 
2808
+ }
2809
+ else {
2810
+ // if image complete check fails 200 times (20 sec), we assume that there was an error.
2811
+ guard++;
2812
+ if (guard < 200) {
2813
+ setTimeout(onLoadComplete, 100);
2814
+ } else {
2815
+ onLoadError();
2816
+ }
2817
+ }
2818
+ }
2819
+ },
2820
 
2821
+ // image error handler
2822
+ onLoadError = function () {
2823
+ if (item) {
2824
+ item.img.off('.mfploader');
2825
+ if (item === mfp.currItem) {
2826
+ mfp._onImageHasSize(item);
2827
+ mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src));
2828
+ }
2829
 
2830
+ item.hasSize = true;
2831
+ item.loaded = true;
2832
+ item.loadError = true;
2833
+ }
2834
+ },
2835
+ imgSt = mfp.st.image;
2836
 
 
 
 
 
2837
 
2838
+ var el = template.find('.mfp-img');
2839
+ if (el.length) {
2840
+ var img = document.createElement('img');
2841
+ img.className = 'mfp-img';
2842
+ if (item.el && item.el.find('img').length) {
2843
+ img.alt = item.el.find('img').attr('alt');
2844
+ }
2845
+ item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
2846
+ img.src = item.src;
 
2847
 
2848
+ // without clone() "error" event is not firing when IMG is replaced by new IMG
2849
+ // TODO: find a way to avoid such cloning
2850
+ if (el.is('img')) {
2851
+ item.img = item.img.clone();
2852
+ }
 
 
 
 
 
 
 
 
 
2853
 
2854
+ img = item.img[0];
2855
+ if (img.naturalWidth > 0) {
2856
+ item.hasSize = true;
2857
+ } else if (!img.width) {
2858
+ item.hasSize = false;
2859
+ }
2860
+ }
 
 
 
 
 
 
2861
 
2862
+ mfp._parseMarkup(template, {
2863
+ title: _getTitle(item),
2864
+ img_replaceWith: item.img
2865
+ }, item);
 
 
 
 
 
 
 
 
2866
 
2867
+ mfp.resizeImage();
2868
 
2869
+ if (item.hasSize) {
2870
+ if (_imgInterval) clearInterval(_imgInterval);
2871
 
2872
+ if (item.loadError) {
2873
+ template.addClass('mfp-loading');
2874
+ mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src));
2875
+ } else {
2876
+ template.removeClass('mfp-loading');
2877
+ mfp.updateStatus('ready');
2878
+ }
2879
+ return template;
2880
+ }
2881
 
2882
+ mfp.updateStatus('loading');
2883
+ item.loading = true;
2884
 
2885
+ if (!item.hasSize) {
2886
+ item.imgHidden = true;
2887
+ template.addClass('mfp-loading');
2888
+ mfp.findImageSize(item);
2889
+ }
 
2890
 
2891
+ return template;
2892
+ }
2893
+ }
2894
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2895
 
2896
+ /*>>image*/
2897
 
2898
+ /*>>zoom*/
2899
+ var hasMozTransform,
2900
+ getHasMozTransform = function () {
2901
+ if (hasMozTransform === undefined) {
2902
+ hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
2903
+ }
2904
+ return hasMozTransform;
2905
+ };
2906
 
2907
+ $.magnificPopup.registerModule('zoom', {
 
 
2908
 
2909
+ options: {
2910
+ enabled: false,
2911
+ easing: 'ease-in-out',
2912
+ duration: 300,
2913
+ opener: function (element) {
2914
+ return element.is('img') ? element : element.find('img');
2915
+ }
2916
+ },
2917
 
2918
+ proto: {
 
 
 
 
 
 
 
2919
 
2920
+ initZoom: function () {
2921
+ var zoomSt = mfp.st.zoom,
2922
+ ns = '.zoom',
2923
+ image;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2924
 
2925
+ if (!zoomSt.enabled || !mfp.supportsTransition) {
2926
+ return;
2927
+ }
2928
 
2929
+ var duration = zoomSt.duration,
2930
+ getElToAnimate = function (image) {
2931
+ var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
2932
+ transition = 'all ' + (zoomSt.duration / 1000) + 's ' + zoomSt.easing,
2933
+ cssObj = {
2934
+ position: 'fixed',
2935
+ zIndex: 9999,
2936
+ left: 0,
2937
+ top: 0,
2938
+ '-webkit-backface-visibility': 'hidden'
2939
+ },
2940
+ t = 'transition';
2941
 
2942
+ cssObj['-webkit-' + t] = cssObj['-moz-' + t] = cssObj['-o-' + t] = cssObj[t] = transition;
 
 
 
 
 
 
 
 
 
 
 
2943
 
2944
+ newImg.css(cssObj);
2945
+ return newImg;
2946
+ },
2947
+ showMainContent = function () {
2948
+ mfp.content.css('visibility', 'visible');
2949
+ },
2950
+ openTimeout,
2951
+ animatedImg;
2952
 
2953
+ _mfpOn('BuildControls' + ns, function () {
2954
+ if (mfp._allowZoom()) {
 
 
2955
 
2956
+ clearTimeout(openTimeout);
2957
+ mfp.content.css('visibility', 'hidden');
2958
 
2959
+ // Basically, all code below does is clones existing image, puts in on top of the current one and animated it
 
 
 
2960
 
2961
+ image = mfp._getItemToZoom();
2962
 
2963
+ if (!image) {
2964
+ showMainContent();
2965
+ return;
2966
+ }
 
 
 
2967
 
2968
+ animatedImg = getElToAnimate(image);
 
 
 
 
 
2969
 
2970
+ animatedImg.css(mfp._getOffset());
 
 
 
 
 
2971
 
2972
+ mfp.wrap.append(animatedImg);
 
 
 
2973
 
2974
+ openTimeout = setTimeout(function () {
2975
+ animatedImg.css(mfp._getOffset(true));
2976
+ openTimeout = setTimeout(function () {
2977
 
2978
+ showMainContent();
 
 
2979
 
2980
+ setTimeout(function () {
2981
+ animatedImg.remove();
2982
+ image = animatedImg = null;
2983
+ _mfpTrigger('ZoomAnimationEnded');
2984
+ }, 16); // avoid blink when switching images
 
 
2985
 
2986
+ }, duration); // this timeout equals animation duration
 
 
 
 
 
 
2987
 
2988
+ }, 16); // by adding this timeout we avoid short glitch at the beginning of animation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2989
 
 
 
 
 
 
2990
 
2991
+ // Lots of timeouts...
2992
+ }
2993
+ });
2994
+ _mfpOn(BEFORE_CLOSE_EVENT + ns, function () {
2995
+ if (mfp._allowZoom()) {
2996
 
2997
+ clearTimeout(openTimeout);
 
 
2998
 
2999
+ mfp.st.removalDelay = duration;
 
 
 
 
 
 
 
3000
 
3001
+ if (!image) {
3002
+ image = mfp._getItemToZoom();
3003
+ if (!image) {
3004
+ return;
3005
+ }
3006
+ animatedImg = getElToAnimate(image);
3007
+ }
 
3008
 
3009
+ animatedImg.css(mfp._getOffset(true));
3010
+ mfp.wrap.append(animatedImg);
3011
+ mfp.content.css('visibility', 'hidden');
 
 
 
 
 
 
 
 
3012
 
3013
+ setTimeout(function () {
3014
+ animatedImg.css(mfp._getOffset());
3015
+ }, 16);
3016
+ }
3017
 
3018
+ });
3019
 
3020
+ _mfpOn(CLOSE_EVENT + ns, function () {
3021
+ if (mfp._allowZoom()) {
3022
+ showMainContent();
3023
+ if (animatedImg) {
3024
+ animatedImg.remove();
3025
+ }
3026
+ image = null;
3027
+ }
3028
+ });
3029
+ },
3030
 
3031
+ _allowZoom: function () {
3032
+ return mfp.currItem.type === 'image';
3033
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3034
 
3035
+ _getItemToZoom: function () {
3036
+ if (mfp.currItem.hasSize) {
3037
+ return mfp.currItem.img;
3038
+ } else {
3039
+ return false;
3040
+ }
3041
+ },
3042
 
3043
+ // Get element postion relative to viewport
3044
+ _getOffset: function (isLarge) {
3045
+ var el;
3046
+ if (isLarge) {
3047
+ el = mfp.currItem.img;
3048
+ } else {
3049
+ el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
3050
+ }
3051
 
3052
+ var offset = el.offset();
3053
+ var paddingTop = parseInt(el.css('padding-top'), 10);
3054
+ var paddingBottom = parseInt(el.css('padding-bottom'), 10);
3055
+ offset.top -= ($(window).scrollTop() - paddingTop);
3056
 
 
3057
 
3058
+ /*
3059
+
3060
+ Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
3061
+
3062
+ */
3063
+ var obj = {
3064
+ width: el.width(),
3065
+ // fix Zepto height+padding issue
3066
+ height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
3067
+ };
3068
 
3069
+ // I hate to do this, but there is no another option
3070
+ if (getHasMozTransform()) {
3071
+ obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
3072
+ } else {
3073
+ obj.left = offset.left;
3074
+ obj.top = offset.top;
3075
+ }
3076
+ return obj;
3077
+ }
3078
 
3079
+ }
3080
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3081
 
 
 
 
3082
 
 
 
 
 
3083
 
3084
+ /*>>zoom*/
 
3085
 
3086
+ /*>>iframe*/
 
 
 
 
3087
 
3088
+ var IFRAME_NS = 'iframe',
3089
+ _emptyPage = '//about:blank',
 
3090
 
3091
+ _fixIframeBugs = function (isShowing) {
3092
+ if (mfp.currTemplate[IFRAME_NS]) {
3093
+ var el = mfp.currTemplate[IFRAME_NS].find('iframe');
3094
+ if (el.length) {
3095
+ // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
3096
+ if (!isShowing) {
3097
+ el[0].src = _emptyPage;
3098
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
3099
 
3100
+ // IE8 black screen bug fix
3101
+ if (mfp.isIE8) {
3102
+ el.css('display', isShowing ? 'block' : 'none');
3103
+ }
3104
+ }
3105
+ }
3106
+ };
3107
 
3108
+ $.magnificPopup.registerModule(IFRAME_NS, {
 
 
 
 
 
 
3109
 
3110
+ options: {
3111
+ markup: '<div class="mfp-iframe-scaler">' +
3112
+ '<div class="mfp-close"></div>' +
3113
+ '<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>' +
3114
+ '</div>',
 
 
 
3115
 
3116
+ srcAction: 'iframe_src',
 
 
 
 
 
 
 
 
 
3117
 
3118
+ // we don't care and support only one default type of URL by default
3119
+ patterns: {
3120
+ youtube: {
3121
+ index: 'youtube.com',
3122
+ id: 'v=',
3123
+ src: '//www.youtube.com/embed/%id%?autoplay=1'
3124
+ },
3125
+ vimeo: {
3126
+ index: 'vimeo.com/',
3127
+ id: '/',
3128
+ src: '//player.vimeo.com/video/%id%?autoplay=1'
3129
+ },
3130
+ gmaps: {
3131
+ index: '//maps.google.',
3132
+ src: '%id%&output=embed'
3133
+ }
3134
+ }
3135
+ },
3136
 
3137
+ proto: {
3138
+ initIframe: function () {
3139
+ mfp.types.push(IFRAME_NS);
 
 
 
3140
 
3141
+ _mfpOn('BeforeChange', function (e, prevType, newType) {
3142
+ if (prevType !== newType) {
3143
+ if (prevType === IFRAME_NS) {
3144
+ _fixIframeBugs(); // iframe if removed
3145
+ } else if (newType === IFRAME_NS) {
3146
+ _fixIframeBugs(true); // iframe is showing
3147
+ }
3148
+ }// else {
3149
+ // iframe source is switched, don't do anything
3150
+ //}
3151
+ });
3152
 
3153
+ _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function () {
3154
+ _fixIframeBugs();
3155
+ });
3156
+ },
3157
 
3158
+ getIframe: function (item, template) {
3159
+ var embedSrc = item.src;
3160
+ var iframeSt = mfp.st.iframe;
 
 
 
3161
 
3162
+ $.each(iframeSt.patterns, function () {
3163
+ if (embedSrc.indexOf(this.index) > -1) {
3164
+ if (this.id) {
3165
+ if (typeof this.id === 'string') {
3166
+ embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id) + this.id.length, embedSrc.length);
3167
+ } else {
3168
+ embedSrc = this.id.call(this, embedSrc);
3169
+ }
3170
+ }
3171
+ embedSrc = this.src.replace('%id%', embedSrc);
3172
+ return false; // break;
3173
+ }
3174
+ });
3175
 
3176
+ var dataObj = {};
3177
+ if (iframeSt.srcAction) {
3178
+ dataObj[iframeSt.srcAction] = embedSrc;
3179
+ }
3180
+ mfp._parseMarkup(template, dataObj, item);
 
 
3181
 
3182
+ mfp.updateStatus('ready');
 
3183
 
3184
+ return template;
3185
+ }
3186
+ }
3187
+ });
 
 
 
 
3188
 
 
 
 
 
 
 
 
 
 
3189
 
 
3190
 
3191
+ /*>>iframe*/
 
 
 
 
 
3192
 
3193
+ /*>>gallery*/
3194
+ /**
3195
+ * Get looped index depending on number of slides
3196
+ */
3197
+ var _getLoopedId = function (index) {
3198
+ var numSlides = mfp.items.length;
3199
+ if (index > numSlides - 1) {
3200
+ return index - numSlides;
3201
+ } else if (index < 0) {
3202
+ return numSlides + index;
3203
+ }
3204
+ return index;
3205
+ },
3206
+ _replaceCurrTotal = function (text, curr, total) {
3207
+ return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
3208
+ };
3209
 
3210
+ $.magnificPopup.registerModule('gallery', {
 
 
3211
 
3212
+ options: {
3213
+ enabled: false,
3214
+ arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
3215
+ preload: [0, 2],
3216
+ navigateByImgClick: true,
3217
+ arrows: true,
3218
 
3219
+ tPrev: 'Previous (Left arrow key)',
3220
+ tNext: 'Next (Right arrow key)',
3221
+ tCounter: '%curr% of %total%'
3222
+ },
 
 
3223
 
3224
+ proto: {
3225
+ initGallery: function () {
3226
 
3227
+ var gSt = mfp.st.gallery,
3228
+ ns = '.mfp-gallery';
 
3229
 
3230
+ mfp.direction = true; // true - next, false - prev
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3231
 
3232
+ if (!gSt || !gSt.enabled) return false;
 
 
 
 
 
3233
 
3234
+ _wrapClasses += ' mfp-gallery';
3235
 
3236
+ _mfpOn(OPEN_EVENT + ns, function () {
 
3237
 
3238
+ if (gSt.navigateByImgClick) {
3239
+ mfp.wrap.on('click' + ns, '.mfp-img', function () {
3240
+ if (mfp.items.length > 1) {
3241
+ mfp.next();
3242
+ return false;
3243
+ }
3244
+ });
3245
+ }
 
 
 
3246
 
3247
+ _document.on('keydown' + ns, function (e) {
3248
+ if (e.keyCode === 37) {
3249
+ mfp.prev();
3250
+ } else if (e.keyCode === 39) {
3251
+ mfp.next();
3252
+ }
3253
+ });
3254
+ });
3255
 
3256
+ _mfpOn('UpdateStatus' + ns, function (e, data) {
3257
+ if (data.text) {
3258
+ data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
3259
+ }
3260
+ });
3261
 
3262
+ _mfpOn(MARKUP_PARSE_EVENT + ns, function (e, element, values, item) {
3263
+ var l = mfp.items.length;
3264
+ values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
3265
+ });
3266
 
3267
+ _mfpOn('BuildControls' + ns, function () {
3268
+ if (mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
3269
+ var markup = gSt.arrowMarkup,
3270
+ arrowLeft = mfp.arrowLeft = $(markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left')).addClass(PREVENT_CLOSE_CLASS),
3271
+ arrowRight = mfp.arrowRight = $(markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right')).addClass(PREVENT_CLOSE_CLASS);
 
 
 
3272
 
3273
+ arrowLeft.click(function () {
3274
+ mfp.prev();
3275
+ });
3276
+ arrowRight.click(function () {
3277
+ mfp.next();
3278
+ });
3279
 
3280
+ mfp.container.append(arrowLeft.add(arrowRight));
3281
+ }
3282
+ });
 
 
 
 
 
 
 
 
3283
 
3284
+ _mfpOn(CHANGE_EVENT + ns, function () {
3285
+ if (mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
 
 
 
 
 
 
 
 
 
 
3286
 
3287
+ mfp._preloadTimeout = setTimeout(function () {
3288
+ mfp.preloadNearbyImages();
3289
+ mfp._preloadTimeout = null;
3290
+ }, 16);
3291
+ });
 
 
 
 
 
3292
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3293
 
3294
+ _mfpOn(CLOSE_EVENT + ns, function () {
3295
+ _document.off(ns);
3296
+ mfp.wrap.off('click' + ns);
3297
+ mfp.arrowRight = mfp.arrowLeft = null;
3298
+ });
 
 
3299
 
3300
+ },
3301
+ next: function () {
3302
+ mfp.direction = true;
3303
+ mfp.index = _getLoopedId(mfp.index + 1);
3304
+ mfp.updateItemHTML();
3305
+ },
3306
+ prev: function () {
3307
+ mfp.direction = false;
3308
+ mfp.index = _getLoopedId(mfp.index - 1);
3309
+ mfp.updateItemHTML();
3310
+ },
3311
+ goTo: function (newIndex) {
3312
+ mfp.direction = (newIndex >= mfp.index);
3313
+ mfp.index = newIndex;
3314
+ mfp.updateItemHTML();
3315
+ },
3316
+ preloadNearbyImages: function () {
3317
+ var p = mfp.st.gallery.preload,
3318
+ preloadBefore = Math.min(p[0], mfp.items.length),
3319
+ preloadAfter = Math.min(p[1], mfp.items.length),
3320
+ i;
3321
 
3322
+ for (i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
3323
+ mfp._preloadItem(mfp.index + i);
3324
+ }
3325
+ for (i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
3326
+ mfp._preloadItem(mfp.index - i);
3327
+ }
3328
+ },
3329
+ _preloadItem: function (index) {
3330
+ index = _getLoopedId(index);
3331
 
3332
+ if (mfp.items[index].preloaded) {
3333
+ return;
3334
+ }
 
 
 
 
 
3335
 
3336
+ var item = mfp.items[index];
3337
+ if (!item.parsed) {
3338
+ item = mfp.parseEl(index);
3339
+ }
 
 
 
 
3340
 
3341
+ _mfpTrigger('LazyLoad', item);
 
 
3342
 
3343
+ if (item.type === 'image') {
3344
+ item.img = $('<img class="mfp-img" />').on('load.mfploader', function () {
3345
+ item.hasSize = true;
3346
+ }).on('error.mfploader', function () {
3347
+ item.hasSize = true;
3348
+ item.loadError = true;
3349
+ _mfpTrigger('LazyLoadError', item);
3350
+ }).attr('src', item.src);
3351
+ }
 
3352
 
 
 
 
 
 
3353
 
3354
+ item.preloaded = true;
3355
+ }
3356
+ }
3357
+ });
 
 
 
3358
 
3359
+ /*>>gallery*/
 
 
 
 
3360
 
3361
+ /*>>retina*/
 
 
 
 
 
 
 
 
 
3362
 
3363
+ var RETINA_NS = 'retina';
 
 
 
 
 
 
 
 
 
 
 
 
 
3364
 
3365
+ $.magnificPopup.registerModule(RETINA_NS, {
3366
+ options: {
3367
+ replaceSrc: function (item) {
3368
+ return item.src.replace(/\.\w+$/, function (m) { return '@2x' + m; });
3369
+ },
3370
+ ratio: 1 // Function or number. Set to 1 to disable.
3371
+ },
3372
+ proto: {
3373
+ initRetina: function () {
3374
+ if (window.devicePixelRatio > 1) {
3375
 
3376
+ var st = mfp.st.retina,
3377
+ ratio = st.ratio;
3378
 
3379
+ ratio = !isNaN(ratio) ? ratio : ratio();
3380
+
3381
+ if (ratio > 1) {
3382
+ _mfpOn('ImageHasSize' + '.' + RETINA_NS, function (e, item) {
3383
+ item.img.css({
3384
+ 'max-width': item.img[0].naturalWidth / ratio,
3385
+ 'width': '100%'
3386
+ });
3387
+ });
3388
+ _mfpOn('ElementParse' + '.' + RETINA_NS, function (e, item) {
3389
+ item.src = st.replaceSrc(item, ratio);
3390
+ });
3391
+ }
3392
+ }
3393
+
3394
+ }
3395
+ }
3396
+ });
3397
+
3398
+ /*>>retina*/
3399
+ _checkInstance();
3400
+ }));
3401
+ (function($) {
3402
+ $.fn.eaelProgressBar = function() {
3403
+ var $this = $(this)
3404
+ var $layout = $this.data('layout')
3405
+ var $num = $this.data('count')
3406
+ var $duration = $this.data('duration')
3407
+
3408
+ $this.one('inview', function() {
3409
+ if ($layout == 'line') {
3410
+ $('.eael-progressbar-line-fill', $this).css({
3411
+ 'width': $num + '%',
3412
+ })
3413
+ } else if ($layout == 'half_circle') {
3414
+ $('.eael-progressbar-circle-half', $this).css({
3415
+ 'transform': 'rotate(' + ($num * 1.8) + 'deg)',
3416
+ })
3417
+ }
3418
+
3419
+ $('.eael-progressbar-count', $this).prop({
3420
+ 'counter': 0
3421
+ }).animate({
3422
+ counter: $num
3423
+ }, {
3424
+ duration: $duration,
3425
+ easing: 'linear',
3426
+ step: function(counter) {
3427
+ if ($layout == 'circle') {
3428
+ var rotate = (counter * 3.6)
3429
+ $('.eael-progressbar-circle-half-left', $this).css({
3430
+ 'transform': "rotate(" + rotate + "deg)",
3431
+ })
3432
+ if (rotate > 180) {
3433
+ $('.eael-progressbar-circle-pie', $this).css({
3434
+ '-webkit-clip-path': 'inset(0)',
3435
+ 'clip-path': 'inset(0)',
3436
+ })
3437
+ $('.eael-progressbar-circle-half-right', $this).css({
3438
+ 'visibility': 'visible'
3439
+ })
3440
+ }
3441
+ }
3442
+
3443
+ $(this).text(Math.ceil(counter))
3444
+ }
3445
+ })
3446
+ })
3447
+ }
3448
+ }(jQuery));
3449
+ typeof navigator === "object" && (function (global, factory) {
3450
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3451
+ typeof define === 'function' && define.amd ? define('Plyr', factory) :
3452
+ (global = global || self, global.Plyr = factory());
3453
+ }(this, function () { 'use strict';
3454
+
3455
+ function _classCallCheck(instance, Constructor) {
3456
+ if (!(instance instanceof Constructor)) {
3457
+ throw new TypeError("Cannot call a class as a function");
3458
+ }
3459
  }
 
3460
 
3461
+ function _defineProperties(target, props) {
3462
+ for (var i = 0; i < props.length; i++) {
3463
+ var descriptor = props[i];
3464
+ descriptor.enumerable = descriptor.enumerable || false;
3465
+ descriptor.configurable = true;
3466
+ if ("value" in descriptor) descriptor.writable = true;
3467
+ Object.defineProperty(target, descriptor.key, descriptor);
3468
+ }
3469
  }
 
3470
 
3471
+ function _createClass(Constructor, protoProps, staticProps) {
3472
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
3473
+ if (staticProps) _defineProperties(Constructor, staticProps);
3474
+ return Constructor;
 
 
 
 
3475
  }
3476
 
3477
+ function _defineProperty(obj, key, value) {
3478
+ if (key in obj) {
3479
+ Object.defineProperty(obj, key, {
3480
+ value: value,
3481
+ enumerable: true,
3482
+ configurable: true,
3483
+ writable: true
3484
+ });
3485
+ } else {
3486
+ obj[key] = value;
3487
+ }
3488
 
3489
+ return obj;
 
 
 
 
 
 
 
3490
  }
3491
 
3492
+ function _slicedToArray(arr, i) {
3493
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
3494
+ }
 
 
 
3495
 
3496
+ function _toConsumableArray(arr) {
3497
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
 
 
 
 
 
 
3498
  }
3499
+
3500
+ function _arrayWithoutHoles(arr) {
3501
+ if (Array.isArray(arr)) {
3502
+ for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
3503
+
3504
+ return arr2;
3505
+ }
3506
  }
 
 
 
3507
 
3508
+ function _arrayWithHoles(arr) {
3509
+ if (Array.isArray(arr)) return arr;
 
3510
  }
3511
 
3512
+ function _iterableToArray(iter) {
3513
+ if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
3514
+ }
3515
 
3516
+ function _iterableToArrayLimit(arr, i) {
3517
+ var _arr = [];
3518
+ var _n = true;
3519
+ var _d = false;
3520
+ var _e = undefined;
3521
 
3522
+ try {
3523
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
3524
+ _arr.push(_s.value);
 
 
 
 
 
 
 
 
 
3525
 
3526
+ if (i && _arr.length === i) break;
3527
+ }
3528
+ } catch (err) {
3529
+ _d = true;
3530
+ _e = err;
3531
+ } finally {
3532
+ try {
3533
+ if (!_n && _i["return"] != null) _i["return"]();
3534
+ } finally {
3535
+ if (_d) throw _e;
3536
+ }
3537
+ }
3538
 
3539
+ return _arr;
3540
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3541
 
3542
+ function _nonIterableSpread() {
3543
+ throw new TypeError("Invalid attempt to spread non-iterable instance");
3544
+ }
3545
 
3546
+ function _nonIterableRest() {
3547
+ throw new TypeError("Invalid attempt to destructure non-iterable instance");
3548
+ }
3549
 
3550
+ var defaults = {
3551
+ addCSS: true,
3552
+ // Add CSS to the element to improve usability (required here or in your CSS!)
3553
+ thumbWidth: 15,
3554
+ // The width of the thumb handle
3555
+ watch: true // Watch for new elements that match a string target
 
3556
 
3557
+ };
 
 
 
 
 
 
3558
 
3559
+ // Element matches a selector
3560
+ function matches(element, selector) {
 
3561
 
3562
+ function match() {
3563
+ return Array.from(document.querySelectorAll(selector)).includes(this);
3564
+ }
3565
 
3566
+ var matches = match;
3567
+ return matches.call(element, selector);
 
 
 
3568
  }
3569
 
3570
+ // Trigger event
3571
+ function trigger(element, type) {
3572
+ if (!element || !type) {
3573
+ return;
3574
+ } // Create and dispatch the event
3575
 
 
 
 
 
 
 
 
 
 
 
 
3576
 
3577
+ var event = new Event(type); // Dispatch the event
3578
 
3579
+ element.dispatchEvent(event);
 
 
 
 
 
 
 
 
 
3580
  }
 
 
3581
 
3582
+ // ==========================================================================
3583
+ // Type checking utils
3584
+ // ==========================================================================
3585
+ var getConstructor = function getConstructor(input) {
3586
+ return input !== null && typeof input !== 'undefined' ? input.constructor : null;
3587
+ };
 
 
 
 
 
 
 
3588
 
3589
+ var instanceOf = function instanceOf(input, constructor) {
3590
+ return Boolean(input && constructor && input instanceof constructor);
3591
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3592
 
3593
+ var isNullOrUndefined = function isNullOrUndefined(input) {
3594
+ return input === null || typeof input === 'undefined';
3595
+ };
 
 
 
 
 
 
 
 
 
 
 
 
3596
 
3597
+ var isObject = function isObject(input) {
3598
+ return getConstructor(input) === Object;
3599
+ };
 
 
 
 
 
 
 
 
 
 
 
 
3600
 
3601
+ var isNumber = function isNumber(input) {
3602
+ return getConstructor(input) === Number && !Number.isNaN(input);
3603
+ };
 
 
 
 
 
3604
 
3605
+ var isString = function isString(input) {
3606
+ return getConstructor(input) === String;
3607
+ };
 
 
 
 
 
3608
 
3609
+ var isBoolean = function isBoolean(input) {
3610
+ return getConstructor(input) === Boolean;
3611
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
3612
 
3613
+ var isFunction = function isFunction(input) {
3614
+ return getConstructor(input) === Function;
3615
+ };
 
 
 
 
 
 
 
 
 
 
 
3616
 
3617
+ var isArray = function isArray(input) {
3618
+ return Array.isArray(input);
3619
+ };
3620
 
3621
+ var isNodeList = function isNodeList(input) {
3622
+ return instanceOf(input, NodeList);
3623
+ };
 
 
 
3624
 
3625
+ var isElement = function isElement(input) {
3626
+ return instanceOf(input, Element);
3627
+ };
3628
 
3629
+ var isEvent = function isEvent(input) {
3630
+ return instanceOf(input, Event);
3631
+ };
 
3632
 
3633
+ var isEmpty = function isEmpty(input) {
3634
+ return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length;
3635
+ };
 
 
 
3636
 
3637
+ var is = {
3638
+ nullOrUndefined: isNullOrUndefined,
3639
+ object: isObject,
3640
+ number: isNumber,
3641
+ string: isString,
3642
+ boolean: isBoolean,
3643
+ function: isFunction,
3644
+ array: isArray,
3645
+ nodeList: isNodeList,
3646
+ element: isElement,
3647
+ event: isEvent,
3648
+ empty: isEmpty
3649
+ };
3650
 
3651
+ // Get the number of decimal places
3652
+ function getDecimalPlaces(value) {
3653
+ var match = "".concat(value).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
 
 
 
 
 
 
 
 
3654
 
3655
+ if (!match) {
3656
+ return 0;
3657
+ }
3658
 
3659
+ return Math.max(0, // Number of digits right of decimal point.
3660
+ (match[1] ? match[1].length : 0) - ( // Adjust for scientific notation.
3661
+ match[2] ? +match[2] : 0));
3662
+ } // Round to the nearest step
3663
+
3664
+ function round(number, step) {
3665
+ if (step < 1) {
3666
+ var places = getDecimalPlaces(step);
3667
+ return parseFloat(number.toFixed(places));
3668
+ }
3669
+
3670
+ return Math.round(number / step) * step;
3671
  }
3672
 
3673
+ var RangeTouch =
3674
+ /*#__PURE__*/
3675
+ function () {
3676
+ /**
3677
+ * Setup a new instance
3678
+ * @param {String|Element} target
3679
+ * @param {Object} options
3680
+ */
3681
+ function RangeTouch(target, options) {
3682
+ _classCallCheck(this, RangeTouch);
3683
 
3684
+ if (is.element(target)) {
3685
+ // An Element is passed, use it directly
3686
+ this.element = target;
3687
+ } else if (is.string(target)) {
3688
+ // A CSS Selector is passed, fetch it from the DOM
3689
+ this.element = document.querySelector(target);
3690
+ }
3691
 
3692
+ if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) {
3693
+ return;
3694
+ }
 
 
 
 
 
 
 
3695
 
3696
+ this.config = Object.assign({}, defaults, options);
3697
+ this.init();
3698
+ }
3699
 
3700
+ _createClass(RangeTouch, [{
3701
+ key: "init",
3702
+ value: function init() {
3703
+ // Bail if not a touch enabled device
3704
+ if (!RangeTouch.enabled) {
3705
+ return;
3706
+ } // Add useful CSS
3707
 
 
 
 
 
 
 
 
 
 
 
 
3708
 
3709
+ if (this.config.addCSS) {
3710
+ // TODO: Restore original values on destroy
3711
+ this.element.style.userSelect = 'none';
3712
+ this.element.style.webKitUserSelect = 'none';
3713
+ this.element.style.touchAction = 'manipulation';
3714
+ }
3715
 
3716
+ this.listeners(true);
3717
+ this.element.rangeTouch = this;
3718
+ }
3719
+ }, {
3720
+ key: "destroy",
3721
+ value: function destroy() {
3722
+ // Bail if not a touch enabled device
3723
+ if (!RangeTouch.enabled) {
3724
+ return;
3725
+ }
3726
 
3727
+ this.listeners(false);
3728
+ this.element.rangeTouch = null;
3729
+ }
3730
+ }, {
3731
+ key: "listeners",
3732
+ value: function listeners(toggle) {
3733
+ var _this = this;
3734
 
3735
+ var method = toggle ? 'addEventListener' : 'removeEventListener'; // Listen for events
3736
 
3737
+ ['touchstart', 'touchmove', 'touchend'].forEach(function (type) {
3738
+ _this.element[method](type, function (event) {
3739
+ return _this.set(event);
3740
+ }, false);
3741
+ });
3742
+ }
3743
+ /**
3744
+ * Get the value based on touch position
3745
+ * @param {Event} event
3746
+ */
3747
 
3748
+ }, {
3749
+ key: "get",
3750
+ value: function get(event) {
3751
+ if (!RangeTouch.enabled || !is.event(event)) {
3752
+ return null;
3753
+ }
3754
 
3755
+ var input = event.target;
3756
+ var touch = event.changedTouches[0];
3757
+ var min = parseFloat(input.getAttribute('min')) || 0;
3758
+ var max = parseFloat(input.getAttribute('max')) || 100;
3759
+ var step = parseFloat(input.getAttribute('step')) || 1;
3760
+ var delta = max - min; // Calculate percentage
3761
 
3762
+ var percent;
3763
+ var clientRect = input.getBoundingClientRect();
3764
+ var thumbWidth = 100 / clientRect.width * (this.config.thumbWidth / 2) / 100; // Determine left percentage
3765
 
3766
+ percent = 100 / clientRect.width * (touch.clientX - clientRect.left); // Don't allow outside bounds
 
 
 
3767
 
3768
+ if (percent < 0) {
3769
+ percent = 0;
3770
+ } else if (percent > 100) {
3771
+ percent = 100;
3772
+ } // Factor in the thumb offset
3773
 
 
 
3774
 
3775
+ if (percent < 50) {
3776
+ percent -= (100 - percent * 2) * thumbWidth;
3777
+ } else if (percent > 50) {
3778
+ percent += (percent - 50) * 2 * thumbWidth;
3779
+ } // Find the closest step to the mouse position
3780
 
 
 
 
 
 
3781
 
3782
+ return min + round(delta * (percent / 100), step);
3783
+ }
3784
+ /**
3785
+ * Update range value based on position
3786
+ * @param {Event} event
3787
+ */
 
 
 
 
 
 
 
 
 
 
3788
 
3789
+ }, {
3790
+ key: "set",
3791
+ value: function set(event) {
3792
+ if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) {
3793
+ return;
3794
+ } // Prevent text highlight on iOS
3795
 
 
 
3796
 
3797
+ event.preventDefault(); // Set value
3798
 
3799
+ event.target.value = this.get(event); // Trigger event
3800
 
3801
+ trigger(event.target, event.type === 'touchend' ? 'change' : 'input');
3802
+ }
3803
+ }], [{
3804
+ key: "setup",
3805
 
3806
+ /**
3807
+ * Setup multiple instances
3808
+ * @param {String|Element|NodeList|Array} target
3809
+ * @param {Object} options
3810
+ */
3811
+ value: function setup(target) {
3812
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3813
+ var targets = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
3814
 
3815
+ if (is.empty(target) || is.string(target)) {
3816
+ targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type="range"]'));
3817
+ } else if (is.element(target)) {
3818
+ targets = [target];
3819
+ } else if (is.nodeList(target)) {
3820
+ targets = Array.from(target);
3821
+ } else if (is.array(target)) {
3822
+ targets = target.filter(is.element);
3823
+ }
3824
 
3825
+ if (is.empty(targets)) {
3826
+ return null;
3827
+ }
3828
 
3829
+ var config = Object.assign({}, defaults, options);
 
 
 
3830
 
3831
+ if (is.string(target) && config.watch) {
3832
+ // Create an observer instance
3833
+ var observer = new MutationObserver(function (mutations) {
3834
+ Array.from(mutations).forEach(function (mutation) {
3835
+ Array.from(mutation.addedNodes).forEach(function (node) {
3836
+ if (!is.element(node) || !matches(node, target)) {
3837
+ return;
3838
+ } // eslint-disable-next-line no-unused-vars
3839
 
 
 
 
 
 
 
 
3840
 
3841
+ var range = new RangeTouch(node, config);
3842
+ });
3843
+ });
3844
+ }); // Pass in the target node, as well as the observer options
 
 
 
 
 
 
 
 
 
 
 
 
 
3845
 
3846
+ observer.observe(document.body, {
3847
+ childList: true,
3848
+ subtree: true
3849
+ });
3850
+ }
 
 
 
 
3851
 
3852
+ return targets.map(function (t) {
3853
+ return new RangeTouch(t, options);
3854
+ });
3855
+ }
3856
+ }, {
3857
+ key: "enabled",
3858
+ get: function get() {
3859
+ return 'ontouchstart' in document.documentElement;
3860
+ }
3861
+ }]);
3862
 
3863
+ return RangeTouch;
3864
+ }();
3865
 
3866
+ // ==========================================================================
3867
+ // Type checking utils
3868
+ // ==========================================================================
3869
+ var getConstructor$1 = function getConstructor(input) {
3870
+ return input !== null && typeof input !== 'undefined' ? input.constructor : null;
3871
+ };
3872
 
3873
+ var instanceOf$1 = function instanceOf(input, constructor) {
3874
+ return Boolean(input && constructor && input instanceof constructor);
3875
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3876
 
3877
+ var isNullOrUndefined$1 = function isNullOrUndefined(input) {
3878
+ return input === null || typeof input === 'undefined';
3879
+ };
3880
 
3881
+ var isObject$1 = function isObject(input) {
3882
+ return getConstructor$1(input) === Object;
3883
+ };
 
 
 
 
 
 
 
 
3884
 
3885
+ var isNumber$1 = function isNumber(input) {
3886
+ return getConstructor$1(input) === Number && !Number.isNaN(input);
3887
+ };
3888
 
3889
+ var isString$1 = function isString(input) {
3890
+ return getConstructor$1(input) === String;
3891
+ };
 
 
 
 
 
 
 
 
 
 
3892
 
3893
+ var isBoolean$1 = function isBoolean(input) {
3894
+ return getConstructor$1(input) === Boolean;
3895
+ };
 
 
3896
 
3897
+ var isFunction$1 = function isFunction(input) {
3898
+ return getConstructor$1(input) === Function;
3899
+ };
3900
 
3901
+ var isArray$1 = function isArray(input) {
3902
+ return Array.isArray(input);
 
 
 
 
 
 
3903
  };
3904
 
3905
+ var isWeakMap = function isWeakMap(input) {
3906
+ return instanceOf$1(input, WeakMap);
3907
+ };
3908
 
3909
+ var isNodeList$1 = function isNodeList(input) {
3910
+ return instanceOf$1(input, NodeList);
3911
  };
3912
 
3913
+ var isElement$1 = function isElement(input) {
3914
+ return instanceOf$1(input, Element);
3915
  };
3916
 
3917
+ var isTextNode = function isTextNode(input) {
3918
+ return getConstructor$1(input) === Text;
3919
  };
3920
 
3921
+ var isEvent$1 = function isEvent(input) {
3922
+ return instanceOf$1(input, Event);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3923
  };
3924
 
3925
+ var isKeyboardEvent = function isKeyboardEvent(input) {
3926
+ return instanceOf$1(input, KeyboardEvent);
 
3927
  };
3928
 
3929
+ var isCue = function isCue(input) {
3930
+ return instanceOf$1(input, window.TextTrackCue) || instanceOf$1(input, window.VTTCue);
3931
+ };
3932
 
3933
+ var isTrack = function isTrack(input) {
3934
+ return instanceOf$1(input, TextTrack) || !isNullOrUndefined$1(input) && isString$1(input.kind);
3935
  };
3936
 
3937
+ var isPromise = function isPromise(input) {
3938
+ return instanceOf$1(input, Promise);
 
3939
  };
3940
 
3941
+ var isEmpty$1 = function isEmpty(input) {
3942
+ return isNullOrUndefined$1(input) || (isString$1(input) || isArray$1(input) || isNodeList$1(input)) && !input.length || isObject$1(input) && !Object.keys(input).length;
3943
+ };
3944
 
3945
+ var isUrl = function isUrl(input) {
3946
+ // Accept a URL object
3947
+ if (instanceOf$1(input, window.URL)) {
3948
+ return true;
3949
+ } // Must be string from here
3950
 
 
3951
 
3952
+ if (!isString$1(input)) {
3953
+ return false;
3954
+ } // Add the protocol if required
3955
 
 
 
3956
 
3957
+ var string = input;
3958
+
3959
+ if (!input.startsWith('http://') || !input.startsWith('https://')) {
3960
+ string = "http://".concat(input);
3961
  }
3962
 
3963
+ try {
3964
+ return !isEmpty$1(new URL(string).hostname);
3965
+ } catch (e) {
3966
+ return false;
3967
+ }
3968
+ };
3969
 
3970
+ var is$1 = {
3971
+ nullOrUndefined: isNullOrUndefined$1,
3972
+ object: isObject$1,
3973
+ number: isNumber$1,
3974
+ string: isString$1,
3975
+ boolean: isBoolean$1,
3976
+ function: isFunction$1,
3977
+ array: isArray$1,
3978
+ weakMap: isWeakMap,
3979
+ nodeList: isNodeList$1,
3980
+ element: isElement$1,
3981
+ textNode: isTextNode,
3982
+ event: isEvent$1,
3983
+ keyboardEvent: isKeyboardEvent,
3984
+ cue: isCue,
3985
+ track: isTrack,
3986
+ promise: isPromise,
3987
+ url: isUrl,
3988
+ empty: isEmpty$1
3989
  };
3990
 
3991
+ // ==========================================================================
3992
+ var transitionEndEvent = function () {
3993
+ var element = document.createElement('span');
3994
+ var events = {
3995
+ WebkitTransition: 'webkitTransitionEnd',
3996
+ MozTransition: 'transitionend',
3997
+ OTransition: 'oTransitionEnd otransitionend',
3998
+ transition: 'transitionend'
3999
+ };
4000
+ var type = Object.keys(events).find(function (event) {
4001
+ return element.style[event] !== undefined;
4002
+ });
4003
+ return is$1.string(type) ? events[type] : false;
4004
+ }(); // Force repaint of element
4005
 
4006
+ function repaint(element, delay) {
4007
+ setTimeout(function () {
4008
+ try {
4009
+ // eslint-disable-next-line no-param-reassign
4010
+ element.hidden = true; // eslint-disable-next-line no-unused-expressions
4011
 
4012
+ element.offsetHeight; // eslint-disable-next-line no-param-reassign
 
 
 
 
 
 
4013
 
4014
+ element.hidden = false;
4015
+ } catch (e) {// Do nothing
4016
+ }
4017
+ }, delay);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4018
  }
4019
 
4020
+ // ==========================================================================
4021
+ // Browser sniffing
4022
+ // Unfortunately, due to mixed support, UA sniffing is required
4023
+ // ==========================================================================
4024
+ var browser = {
4025
+ isIE:
4026
+ /* @cc_on!@ */
4027
+ !!document.documentMode,
4028
+ isEdge: window.navigator.userAgent.includes('Edge'),
4029
+ isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),
4030
+ isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),
4031
+ isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform)
4032
+ };
4033
 
4034
+ // ==========================================================================
4035
+ // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
4036
+ // https://www.youtube.com/watch?v=NPM6172J22g
4037
 
4038
+ var supportsPassiveListeners = function () {
4039
+ // Test via a getter in the options object to see if the passive property is accessed
4040
+ var supported = false;
4041
 
4042
+ try {
4043
+ var options = Object.defineProperty({}, 'passive', {
4044
+ get: function get() {
4045
+ supported = true;
4046
+ return null;
4047
+ }
4048
+ });
4049
+ window.addEventListener('test', null, options);
4050
+ window.removeEventListener('test', null, options);
4051
+ } catch (e) {// Do nothing
4052
+ }
4053
 
4054
+ return supported;
4055
+ }(); // Toggle event listener
 
 
4056
 
 
4057
 
4058
+ function toggleListener(element, event, callback) {
4059
+ var _this = this;
 
 
 
4060
 
4061
+ var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
4062
+ var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
4063
+ var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
 
 
4064
 
4065
+ // Bail if no element, event, or callback
4066
+ if (!element || !('addEventListener' in element) || is$1.empty(event) || !is$1.function(callback)) {
4067
+ return;
4068
+ } // Allow multiple events
4069
 
 
 
 
 
 
 
 
 
 
 
 
4070
 
4071
+ var events = event.split(' '); // Build options
4072
+ // Default to just the capture boolean for browsers with no passive listener support
4073
 
4074
+ var options = capture; // If passive events listeners are supported
 
 
 
 
 
 
 
 
 
4075
 
4076
+ if (supportsPassiveListeners) {
4077
+ options = {
4078
+ // Whether the listener can be passive (i.e. default never prevented)
4079
+ passive: passive,
4080
+ // Whether the listener is a capturing listener or not
4081
+ capture: capture
4082
+ };
4083
+ } // If a single node is passed, bind the event listener
 
4084
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4085
 
4086
+ events.forEach(function (type) {
4087
+ if (_this && _this.eventListeners && toggle) {
4088
+ // Cache event listener
4089
+ _this.eventListeners.push({
4090
+ element: element,
4091
+ type: type,
4092
+ callback: callback,
4093
+ options: options
4094
+ });
4095
+ }
4096
 
4097
+ element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);
4098
+ });
4099
+ } // Bind event handler
 
4100
 
4101
+ function on(element) {
4102
+ var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4103
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
4104
+ var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
4105
+ var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
4106
+ toggleListener.call(this, element, events, callback, true, passive, capture);
4107
+ } // Unbind event handler
4108
 
4109
+ function off(element) {
4110
+ var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4111
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
4112
+ var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
4113
+ var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
4114
+ toggleListener.call(this, element, events, callback, false, passive, capture);
4115
+ } // Bind once-only event handler
 
 
4116
 
4117
+ function once(element) {
4118
+ var _this2 = this;
 
 
 
 
 
 
 
4119
 
4120
+ var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4121
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
4122
+ var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
4123
+ var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
 
 
 
 
 
4124
 
4125
+ var onceCallback = function onceCallback() {
4126
+ off(element, events, onceCallback, passive, capture);
 
 
 
 
 
 
 
4127
 
4128
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
4129
+ args[_key] = arguments[_key];
4130
+ }
4131
+
4132
+ callback.apply(_this2, args);
4133
  };
 
4134
 
4135
+ toggleListener.call(this, element, events, onceCallback, true, passive, capture);
4136
+ } // Trigger event
 
 
 
 
 
 
 
 
 
 
 
 
4137
 
4138
+ function triggerEvent(element) {
4139
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4140
+ var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4141
+ var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
 
 
 
4142
 
4143
+ // Bail if no element
4144
+ if (!is$1.element(element) || is$1.empty(type)) {
4145
+ return;
4146
+ } // Create and dispatch the event
 
4147
 
 
 
 
4148
 
4149
+ var event = new CustomEvent(type, {
4150
+ bubbles: bubbles,
4151
+ detail: Object.assign({}, detail, {
4152
+ plyr: this
4153
+ })
4154
+ }); // Dispatch the event
4155
 
4156
+ element.dispatchEvent(event);
4157
+ } // Unbind all cached event listeners
 
 
 
 
 
 
 
 
 
 
 
4158
 
4159
+ function unbindListeners() {
4160
+ if (this && this.eventListeners) {
4161
+ this.eventListeners.forEach(function (item) {
4162
+ var element = item.element,
4163
+ type = item.type,
4164
+ callback = item.callback,
4165
+ options = item.options;
4166
+ element.removeEventListener(type, callback, options);
4167
+ });
4168
+ this.eventListeners = [];
4169
+ }
4170
+ } // Run method when / if player is ready
4171
 
4172
+ function ready() {
4173
+ var _this3 = this;
4174
 
4175
+ return new Promise(function (resolve) {
4176
+ return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve);
4177
+ }).then(function () {});
4178
+ }
4179
 
4180
+ function cloneDeep(object) {
4181
+ return JSON.parse(JSON.stringify(object));
4182
+ } // Get a nested value in an object
 
 
4183
 
4184
+ function getDeep(object, path) {
4185
+ return path.split('.').reduce(function (obj, key) {
4186
+ return obj && obj[key];
4187
+ }, object);
4188
+ } // Deep extend destination object with N more objects
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4189
 
4190
+ function extend() {
4191
+ var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4192
 
4193
+ for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
4194
+ sources[_key - 1] = arguments[_key];
4195
+ }
4196
 
4197
+ if (!sources.length) {
4198
+ return target;
4199
+ }
4200
 
4201
+ var source = sources.shift();
4202
 
4203
+ if (!is$1.object(source)) {
4204
+ return target;
4205
+ }
 
 
4206
 
4207
+ Object.keys(source).forEach(function (key) {
4208
+ if (is$1.object(source[key])) {
4209
+ if (!Object.keys(target).includes(key)) {
4210
+ Object.assign(target, _defineProperty({}, key, {}));
4211
+ }
4212
+
4213
+ extend(target[key], source[key]);
4214
+ } else {
4215
+ Object.assign(target, _defineProperty({}, key, source[key]));
4216
+ }
4217
+ });
4218
+ return extend.apply(void 0, [target].concat(sources));
4219
  }
4220
 
4221
+ function wrap(elements, wrapper) {
4222
+ // Convert `elements` to an array, if necessary.
4223
+ var targets = elements.length ? elements : [elements]; // Loops backwards to prevent having to clone the wrapper on the
4224
+ // first element (see `child` below).
 
 
4225
 
4226
+ Array.from(targets).reverse().forEach(function (element, index) {
4227
+ var child = index > 0 ? wrapper.cloneNode(true) : wrapper; // Cache the current parent and sibling.
 
 
 
 
 
 
 
4228
 
4229
+ var parent = element.parentNode;
4230
+ var sibling = element.nextSibling; // Wrap the element (is automatically removed from its current
4231
+ // parent).
4232
 
4233
+ child.appendChild(element); // If the element had a sibling, insert the wrapper before
4234
+ // the sibling to maintain the HTML structure; otherwise, just
4235
+ // append it to the parent.
4236
 
4237
+ if (sibling) {
4238
+ parent.insertBefore(child, sibling);
4239
+ } else {
4240
+ parent.appendChild(child);
4241
+ }
4242
+ });
4243
+ } // Set attributes
4244
 
4245
+ function setAttributes(element, attributes) {
4246
+ if (!is$1.element(element) || is$1.empty(attributes)) {
4247
+ return;
4248
+ } // Assume null and undefined attributes should be left out,
4249
+ // Setting them would otherwise convert them to "null" and "undefined"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4250
 
 
 
4251
 
4252
+ Object.entries(attributes).filter(function (_ref) {
4253
+ var _ref2 = _slicedToArray(_ref, 2),
4254
+ value = _ref2[1];
4255
 
4256
+ return !is$1.nullOrUndefined(value);
4257
+ }).forEach(function (_ref3) {
4258
+ var _ref4 = _slicedToArray(_ref3, 2),
4259
+ key = _ref4[0],
4260
+ value = _ref4[1];
4261
 
4262
+ return element.setAttribute(key, value);
4263
+ });
4264
+ } // Create a DocumentFragment
 
 
 
4265
 
4266
+ function createElement(type, attributes, text) {
4267
+ // Create a new <element>
4268
+ var element = document.createElement(type); // Set all passed attributes
4269
 
4270
+ if (is$1.object(attributes)) {
4271
+ setAttributes(element, attributes);
4272
+ } // Add text node
 
 
 
 
4273
 
 
 
 
 
4274
 
4275
+ if (is$1.string(text)) {
4276
+ element.innerText = text;
4277
+ } // Return built element
4278
 
 
 
4279
 
4280
+ return element;
4281
+ } // Inaert an element after another
 
4282
 
4283
+ function insertAfter(element, target) {
4284
+ if (!is$1.element(element) || !is$1.element(target)) {
4285
+ return;
4286
+ }
4287
 
4288
+ target.parentNode.insertBefore(element, target.nextSibling);
4289
+ } // Insert a DocumentFragment
4290
 
4291
+ function insertElement(type, parent, attributes, text) {
4292
+ if (!is$1.element(parent)) {
4293
+ return;
4294
+ }
4295
 
4296
+ parent.appendChild(createElement(type, attributes, text));
4297
+ } // Remove element(s)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4298
 
4299
+ function removeElement(element) {
4300
+ if (is$1.nodeList(element) || is$1.array(element)) {
4301
+ Array.from(element).forEach(removeElement);
4302
+ return;
4303
+ }
4304
 
4305
+ if (!is$1.element(element) || !is$1.element(element.parentNode)) {
4306
+ return;
4307
+ }
4308
 
4309
+ element.parentNode.removeChild(element);
4310
+ } // Remove all child elements
4311
 
4312
+ function emptyElement(element) {
4313
+ if (!is$1.element(element)) {
4314
+ return;
4315
+ }
4316
 
4317
+ var length = element.childNodes.length;
 
 
 
 
 
 
 
4318
 
4319
+ while (length > 0) {
4320
+ element.removeChild(element.lastChild);
4321
+ length -= 1;
4322
+ }
4323
+ } // Replace element
4324
 
4325
+ function replaceElement(newChild, oldChild) {
4326
+ if (!is$1.element(oldChild) || !is$1.element(oldChild.parentNode) || !is$1.element(newChild)) {
4327
+ return null;
4328
+ }
4329
 
4330
+ oldChild.parentNode.replaceChild(newChild, oldChild);
4331
+ return newChild;
4332
+ } // Get an attribute object from a string selector
4333
 
4334
+ function getAttributesFromSelector(sel, existingAttributes) {
4335
+ // For example:
4336
+ // '.test' to { class: 'test' }
4337
+ // '#test' to { id: 'test' }
4338
+ // '[data-test="test"]' to { 'data-test': 'test' }
4339
+ if (!is$1.string(sel) || is$1.empty(sel)) {
4340
+ return {};
4341
+ }
 
4342
 
4343
+ var attributes = {};
4344
+ var existing = extend({}, existingAttributes);
4345
+ sel.split(',').forEach(function (s) {
4346
+ // Remove whitespace
4347
+ var selector = s.trim();
4348
+ var className = selector.replace('.', '');
4349
+ var stripped = selector.replace(/[[\]]/g, ''); // Get the parts and value
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4350
 
4351
+ var parts = stripped.split('=');
 
4352
 
4353
+ var _parts = _slicedToArray(parts, 1),
4354
+ key = _parts[0];
4355
 
4356
+ var value = parts.length > 1 ? parts[1].replace(/["']/g, '') : ''; // Get the first character
4357
 
4358
+ var start = selector.charAt(0);
4359
 
4360
+ switch (start) {
4361
+ case '.':
4362
+ // Add to existing classname
4363
+ if (is$1.string(existing.class)) {
4364
+ attributes.class = "".concat(existing.class, " ").concat(className);
4365
+ } else {
4366
+ attributes.class = className;
4367
+ }
4368
 
4369
+ break;
4370
 
4371
+ case '#':
4372
+ // ID selector
4373
+ attributes.id = selector.replace('#', '');
4374
+ break;
 
 
 
4375
 
4376
+ case '[':
4377
+ // Attribute selector
4378
+ attributes[key] = value;
4379
+ break;
4380
 
4381
+ default:
4382
+ break;
4383
+ }
4384
+ });
4385
+ return extend(existing, attributes);
4386
+ } // Toggle hidden
4387
 
4388
+ function toggleHidden(element, hidden) {
4389
+ if (!is$1.element(element)) {
4390
+ return;
4391
+ }
4392
 
4393
+ var hide = hidden;
4394
 
4395
+ if (!is$1.boolean(hide)) {
4396
+ hide = !element.hidden;
4397
+ } // eslint-disable-next-line no-param-reassign
 
 
 
 
4398
 
4399
+
4400
+ element.hidden = hide;
4401
+ } // Mirror Element.classList.toggle, with IE compatibility for "force" argument
4402
+
4403
+ function toggleClass(element, className, force) {
4404
+ if (is$1.nodeList(element)) {
4405
+ return Array.from(element).map(function (e) {
4406
+ return toggleClass(e, className, force);
4407
+ });
4408
  }
 
4409
 
4410
+ if (is$1.element(element)) {
4411
+ var method = 'toggle';
 
 
 
 
4412
 
4413
+ if (typeof force !== 'undefined') {
4414
+ method = force ? 'add' : 'remove';
4415
+ }
4416
+
4417
+ element.classList[method](className);
4418
+ return element.classList.contains(className);
4419
  }
 
 
 
4420
 
4421
+ return false;
4422
+ } // Has class name
4423
 
4424
+ function hasClass(element, className) {
4425
+ return is$1.element(element) && element.classList.contains(className);
4426
+ } // Element matches selector
4427
 
4428
+ function matches$1(element, selector) {
4429
+
4430
+ function match() {
4431
+ return Array.from(document.querySelectorAll(selector)).includes(this);
4432
+ }
 
 
 
 
 
4433
 
4434
+ var method = match;
4435
+ return method.call(element, selector);
4436
+ } // Find all elements
4437
 
4438
+ function getElements(selector) {
4439
+ return this.elements.container.querySelectorAll(selector);
4440
+ } // Find a single element
4441
+
4442
+ function getElement(selector) {
4443
+ return this.elements.container.querySelector(selector);
4444
+ } // Trap focus inside container
4445
+
4446
+ function trapFocus() {
4447
+ var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
4448
+ var toggle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
4449
+
4450
+ if (!is$1.element(element)) {
4451
  return;
4452
  }
 
 
4453
 
4454
+ var focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');
4455
+ var first = focusable[0];
4456
+ var last = focusable[focusable.length - 1];
 
 
 
 
 
4457
 
4458
+ var trap = function trap(event) {
4459
+ // Bail if not tab key or not fullscreen
4460
+ if (event.key !== 'Tab' || event.keyCode !== 9) {
4461
+ return;
4462
+ } // Get the current focused element
4463
 
 
 
 
 
 
 
4464
 
4465
+ var focused = document.activeElement;
 
 
4466
 
4467
+ if (focused === last && !event.shiftKey) {
4468
+ // Move focus to first element that can be tabbed if Shift isn't used
4469
+ first.focus();
4470
+ event.preventDefault();
4471
+ } else if (focused === first && event.shiftKey) {
4472
+ // Move focus to last element that can be tabbed if Shift is used
4473
+ last.focus();
4474
+ event.preventDefault();
4475
+ }
4476
+ };
4477
 
4478
+ toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);
4479
+ } // Set focus and tab focus class
 
 
 
4480
 
4481
+ function setFocus() {
4482
+ var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
4483
+ var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
 
 
4484
 
4485
+ if (!is$1.element(element)) {
4486
+ return;
4487
+ } // Set regular focus
 
4488
 
 
 
 
 
 
 
 
 
 
 
4489
 
4490
+ element.focus({
4491
+ preventScroll: true
4492
+ }); // If we want to mimic keyboard focus via tab
4493
+
4494
+ if (tabFocus) {
4495
+ toggleClass(element, this.config.classNames.tabFocus);
 
 
 
 
4496
  }
4497
+ }
 
 
 
 
 
 
 
 
 
 
 
 
4498
 
4499
+ var defaultCodecs = {
4500
+ 'audio/ogg': 'vorbis',
4501
+ 'audio/wav': '1',
4502
+ 'video/webm': 'vp8, vorbis',
4503
+ 'video/mp4': 'avc1.42E01E, mp4a.40.2',
4504
+ 'video/ogg': 'theora'
4505
+ }; // Check for feature support
4506
 
4507
+ var support = {
4508
+ // Basic support
4509
+ audio: 'canPlayType' in document.createElement('audio'),
4510
+ video: 'canPlayType' in document.createElement('video'),
4511
+ // Check for support
4512
+ // Basic functionality vs full UI
4513
+ check: function check(type, provider, playsinline) {
4514
+ var canPlayInline = browser.isIPhone && playsinline && support.playsinline;
4515
+ var api = support[type] || provider !== 'html5';
4516
+ var ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);
4517
+ return {
4518
+ api: api,
4519
+ ui: ui
4520
+ };
4521
+ },
4522
+ // Picture-in-picture support
4523
+ // Safari & Chrome only currently
4524
+ pip: function () {
4525
+ if (browser.isIPhone) {
4526
+ return false;
4527
+ } // Safari
4528
+ // https://developer.apple.com/documentation/webkitjs/adding_picture_in_picture_to_your_safari_media_controls
4529
 
 
4530
 
4531
+ if (is$1.function(createElement('video').webkitSetPresentationMode)) {
4532
+ return true;
4533
+ } // Chrome
4534
+ // https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture
4535
+
4536
+
4537
+ if (document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture) {
4538
+ return true;
4539
  }
4540
+
4541
+ return false;
4542
+ }(),
4543
+ // Airplay support
4544
+ // Safari only currently
4545
+ airplay: is$1.function(window.WebKitPlaybackTargetAvailabilityEvent),
4546
+ // Inline playback support
4547
+ // https://webkit.org/blog/6784/new-video-policies-for-ios/
4548
+ playsinline: 'playsInline' in document.createElement('video'),
4549
+ // Check for mime type support against a player instance
4550
+ // Credits: http://diveintohtml5.info/everything.html
4551
+ // Related: http://www.leanbackplayer.com/test/h5mt.html
4552
+ mime: function mime(input) {
4553
+ if (is$1.empty(input)) {
4554
+ return false;
4555
  }
4556
+
4557
+ var _input$split = input.split('/'),
4558
+ _input$split2 = _slicedToArray(_input$split, 1),
4559
+ mediaType = _input$split2[0];
4560
+
4561
+ var type = input; // Verify we're using HTML5 and there's no media type mismatch
4562
+
4563
+ if (!this.isHTML5 || mediaType !== this.type) {
4564
+ return false;
4565
+ } // Add codec if required
4566
+
4567
+
4568
+ if (Object.keys(defaultCodecs).includes(type)) {
4569
+ type += "; codecs=\"".concat(defaultCodecs[input], "\"");
4570
  }
 
4571
 
4572
+ try {
4573
+ return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));
4574
+ } catch (e) {
4575
+ return false;
4576
+ }
4577
+ },
4578
+ // Check for textTracks support
4579
+ textTracks: 'textTracks' in document.createElement('video'),
4580
+ // <input type="range"> Sliders
4581
+ rangeInput: function () {
4582
+ var range = document.createElement('input');
4583
+ range.type = 'range';
4584
+ return range.type === 'range';
4585
+ }(),
4586
+ // Touch
4587
+ // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event
4588
+ touch: 'ontouchstart' in document.documentElement,
4589
+ // Detect transitions support
4590
+ transitions: transitionEndEvent !== false,
4591
+ // Reduced motion iOS & MacOS setting
4592
+ // https://webkit.org/blog/7551/responsive-design-for-motion/
4593
+ reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches
4594
  };
4595
 
4596
+ function validateRatio(input) {
4597
+ if (!is$1.array(input) && (!is$1.string(input) || !input.includes(':'))) {
4598
+ return false;
 
 
 
 
4599
  }
4600
+
4601
+ var ratio = is$1.array(input) ? input : input.split(':');
4602
+ return ratio.map(Number).every(is$1.number);
4603
+ }
4604
+ function reduceAspectRatio(ratio) {
4605
+ if (!is$1.array(ratio) || !ratio.every(is$1.number)) {
4606
+ return null;
4607
  }
4608
+
4609
+ var _ratio = _slicedToArray(ratio, 2),
4610
+ width = _ratio[0],
4611
+ height = _ratio[1];
4612
+
4613
+ var getDivider = function getDivider(w, h) {
4614
+ return h === 0 ? w : getDivider(h, w % h);
4615
  };
 
4616
 
4617
+ var divider = getDivider(width, height);
4618
+ return [width / divider, height / divider];
4619
+ }
4620
+ function getAspectRatio(input) {
4621
+ var parse = function parse(ratio) {
4622
+ return validateRatio(ratio) ? ratio.split(':').map(Number) : null;
4623
+ }; // Try provided ratio
4624
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4625
 
4626
+ var ratio = parse(input); // Get from config
 
 
4627
 
4628
+ if (ratio === null) {
4629
+ ratio = parse(this.config.ratio);
4630
+ } // Get from embed
4631
+
4632
+
4633
+ if (ratio === null && !is$1.empty(this.embed) && is$1.array(this.embed.ratio)) {
4634
+ ratio = this.embed.ratio;
4635
+ } // Get from HTML5 video
4636
+
4637
+
4638
+ if (ratio === null && this.isHTML5) {
4639
+ var _this$media = this.media,
4640
+ videoWidth = _this$media.videoWidth,
4641
+ videoHeight = _this$media.videoHeight;
4642
+ ratio = reduceAspectRatio([videoWidth, videoHeight]);
4643
  }
 
4644
 
4645
+ return ratio;
4646
+ } // Set aspect ratio for responsive container
 
 
 
 
 
4647
 
4648
+ function setAspectRatio(input) {
4649
+ if (!this.isVideo) {
4650
+ return {};
4651
  }
 
4652
 
4653
+ var ratio = getAspectRatio.call(this, input);
4654
 
4655
+ var _ref = is$1.array(ratio) ? ratio : [0, 0],
4656
+ _ref2 = _slicedToArray(_ref, 2),
4657
+ w = _ref2[0],
4658
+ h = _ref2[1];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4659
 
4660
+ var padding = 100 / w * h;
4661
+ this.elements.wrapper.style.paddingBottom = "".concat(padding, "%"); // For Vimeo we have an extra <div> to hide the standard controls and UI
4662
+
4663
+ if (this.isVimeo && this.supported.ui) {
4664
+ var height = 240;
4665
+ var offset = (height - padding) / (height / 50);
4666
+ this.media.style.transform = "translateY(-".concat(offset, "%)");
4667
+ } else if (this.isHTML5) {
4668
+ this.elements.wrapper.classList.toggle(this.config.classNames.videoFixedRatio, ratio !== null);
4669
  }
4670
 
4671
+ return {
4672
+ padding: padding,
4673
+ ratio: ratio
4674
+ };
4675
+ }
4676
+
4677
+ // ==========================================================================
4678
+ var html5 = {
4679
+ getSources: function getSources() {
4680
+ var _this = this;
4681
+
4682
+ if (!this.isHTML5) {
4683
+ return [];
4684
  }
4685
 
4686
+ var sources = Array.from(this.media.querySelectorAll('source')); // Filter out unsupported sources (if type is specified)
 
 
 
 
 
4687
 
4688
+ return sources.filter(function (source) {
4689
+ var type = source.getAttribute('type');
4690
 
4691
+ if (is$1.empty(type)) {
4692
+ return true;
4693
+ }
4694
+
4695
+ return support.mime.call(_this, type);
4696
+ });
4697
  },
4698
+ // Get quality levels
4699
+ getQualityOptions: function getQualityOptions() {
4700
+ // Get sizes from <source> elements
4701
+ return html5.getSources.call(this).map(function (source) {
4702
+ return Number(source.getAttribute('size'));
4703
+ }).filter(Boolean);
4704
+ },
4705
+ extend: function extend() {
4706
+ if (!this.isHTML5) {
4707
+ return;
4708
+ }
4709
 
4710
+ var player = this; // Set aspect ratio if fixed
4711
 
4712
+ if (!is$1.empty(this.config.ratio)) {
4713
+ setAspectRatio.call(player);
4714
+ } // Quality
 
 
 
 
 
 
 
 
 
 
 
 
4715
 
 
 
 
 
 
 
 
 
 
4716
 
4717
+ Object.defineProperty(player.media, 'quality', {
4718
+ get: function get() {
4719
+ // Get sources
4720
+ var sources = html5.getSources.call(player);
4721
+ var source = sources.find(function (s) {
4722
+ return s.getAttribute('src') === player.source;
4723
+ }); // Return size, if match is found
 
 
 
 
 
 
 
 
 
 
 
4724
 
4725
+ return source && Number(source.getAttribute('size'));
4726
+ },
4727
+ set: function set(input) {
4728
+ // Get sources
4729
+ var sources = html5.getSources.call(player); // Get first match for requested size
4730
 
4731
+ var source = sources.find(function (s) {
4732
+ return Number(s.getAttribute('size')) === input;
4733
+ }); // No matching source found
 
 
 
 
 
 
 
 
 
 
4734
 
4735
+ if (!source) {
4736
+ return;
4737
+ } // Get current state
 
 
4738
 
 
 
 
4739
 
4740
+ var _player$media = player.media,
4741
+ currentTime = _player$media.currentTime,
4742
+ paused = _player$media.paused,
4743
+ preload = _player$media.preload,
4744
+ readyState = _player$media.readyState; // Set new source
4745
 
4746
+ player.media.src = source.getAttribute('src'); // Prevent loading if preload="none" and the current source isn't loaded (#1044)
 
 
4747
 
4748
+ if (preload !== 'none' || readyState) {
4749
+ // Restore time
4750
+ player.once('loadedmetadata', function () {
4751
+ player.currentTime = currentTime; // Resume playing
4752
 
4753
+ if (!paused) {
4754
+ player.play();
4755
+ }
4756
+ }); // Load new source
4757
 
4758
+ player.media.load();
4759
+ } // Trigger change event
 
 
 
 
 
 
 
 
 
4760
 
4761
+
4762
+ triggerEvent.call(player, player.media, 'qualitychange', false, {
4763
+ quality: input
4764
+ });
4765
+ }
4766
+ });
4767
+ },
4768
+ // Cancel current network requests
4769
+ // See https://github.com/sampotts/plyr/issues/174
4770
+ cancelRequests: function cancelRequests() {
4771
+ if (!this.isHTML5) {
4772
+ return;
4773
+ } // Remove child sources
4774
+
4775
+
4776
+ removeElement(html5.getSources.call(this)); // Set blank video src attribute
4777
+ // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error
4778
+ // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection
4779
+
4780
+ this.media.setAttribute('src', this.config.blankVideo); // Load the new empty source
4781
+ // This will cancel existing requests
4782
+ // See https://github.com/sampotts/plyr/issues/174
4783
+
4784
+ this.media.load(); // Debugging
4785
+
4786
+ this.debug.log('Cancelled network requests');
4787
  }
 
 
 
 
 
 
 
 
 
 
4788
  };
4789
 
4790
+ // ==========================================================================
 
 
 
 
 
 
 
 
4791
 
4792
+ function dedupe(array) {
4793
+ if (!is$1.array(array)) {
4794
+ return array;
 
 
 
 
 
 
 
 
 
 
 
 
4795
  }
4796
+
4797
+ return array.filter(function (item, index) {
4798
+ return array.indexOf(item) === index;
4799
+ });
4800
+ } // Get the closest value in an array
4801
+
4802
+ function closest(array, value) {
4803
+ if (!is$1.array(array) || !array.length) {
4804
+ return null;
4805
  }
4806
+
4807
+ return array.reduce(function (prev, curr) {
4808
+ return Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev;
4809
+ });
4810
+ }
4811
+
4812
+ // ==========================================================================
4813
+
4814
+ function generateId(prefix) {
4815
+ return "".concat(prefix, "-").concat(Math.floor(Math.random() * 10000));
4816
+ } // Format string
4817
+
4818
+ function format(input) {
4819
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
4820
+ args[_key - 1] = arguments[_key];
4821
  }
 
 
4822
 
4823
+ if (is$1.empty(input)) {
4824
+ return input;
 
 
 
 
 
 
 
 
 
 
 
4825
  }
 
4826
 
4827
+ return input.toString().replace(/{(\d+)}/g, function (match, i) {
4828
+ return args[i].toString();
4829
+ });
4830
+ } // Get percentage
4831
+
4832
+ function getPercentage(current, max) {
4833
+ if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {
4834
+ return 0;
4835
  }
 
 
 
 
4836
 
4837
+ return (current / max * 100).toFixed(2);
4838
+ } // Replace all occurances of a string in a string
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4839
 
4840
+ function replaceAll() {
4841
+ var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
4842
+ var find = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
4843
+ var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
4844
+ return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1'), 'g'), replace.toString());
4845
+ } // Convert to title case
4846
 
4847
+ function toTitleCase() {
4848
+ var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
4849
+ return input.toString().replace(/\w\S*/g, function (text) {
4850
+ return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase();
 
 
 
4851
  });
4852
+ } // Convert string to pascalCase
4853
 
4854
+ function toPascalCase() {
4855
+ var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
4856
+ var string = input.toString(); // Convert kebab case
4857
 
4858
+ string = replaceAll(string, '-', ' '); // Convert snake case
4859
 
4860
+ string = replaceAll(string, '_', ' '); // Convert to title case
4861
 
4862
+ string = toTitleCase(string); // Convert to pascal case
4863
 
4864
+ return replaceAll(string, ' ', '');
4865
+ } // Convert string to pascalCase
 
 
 
 
 
 
 
 
 
 
 
 
 
4866
 
4867
+ function toCamelCase() {
4868
+ var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
4869
+ var string = input.toString(); // Convert to pascal case
 
 
 
4870
 
4871
+ string = toPascalCase(string); // Convert first character to lowercase
4872
 
4873
+ return string.charAt(0).toLowerCase() + string.slice(1);
4874
+ } // Remove HTML from a string
 
 
 
 
 
 
 
 
 
 
 
 
 
4875
 
4876
+ function stripHTML(source) {
4877
+ var fragment = document.createDocumentFragment();
4878
+ var element = document.createElement('div');
4879
+ fragment.appendChild(element);
4880
+ element.innerHTML = source;
4881
+ return fragment.firstChild.innerText;
4882
+ } // Like outerHTML, but also works for DocumentFragment
4883
 
4884
+ function getHTML(element) {
4885
+ var wrapper = document.createElement('div');
4886
+ wrapper.appendChild(element);
4887
+ return wrapper.innerHTML;
4888
+ }
 
 
 
 
 
 
 
 
4889
 
4890
+ var resources = {
4891
+ pip: 'PIP',
4892
+ airplay: 'AirPlay',
4893
+ html5: 'HTML5',
4894
+ vimeo: 'Vimeo',
4895
+ youtube: 'YouTube'
4896
+ };
4897
+ var i18n = {
4898
+ get: function get() {
4899
+ var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
4900
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4901
 
4902
+ if (is$1.empty(key) || is$1.empty(config)) {
4903
+ return '';
4904
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4905
 
4906
+ var string = getDeep(config.i18n, key);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4907
 
4908
+ if (is$1.empty(string)) {
4909
+ if (Object.keys(resources).includes(key)) {
4910
+ return resources[key];
4911
+ }
 
4912
 
4913
+ return '';
4914
+ }
4915
 
4916
+ var replace = {
4917
+ '{seektime}': config.seekTime,
4918
+ '{title}': config.title
4919
+ };
4920
+ Object.entries(replace).forEach(function (_ref) {
4921
+ var _ref2 = _slicedToArray(_ref, 2),
4922
+ k = _ref2[0],
4923
+ v = _ref2[1];
4924
 
4925
+ string = replaceAll(string, k, v);
4926
+ });
4927
+ return string;
4928
+ }
4929
+ };
4930
 
4931
+ var Storage =
4932
+ /*#__PURE__*/
4933
+ function () {
4934
+ function Storage(player) {
4935
+ _classCallCheck(this, Storage);
4936
 
4937
+ this.enabled = player.config.storage.enabled;
4938
+ this.key = player.config.storage.key;
4939
+ } // Check for actual support (see if we can use it)
4940
 
 
 
 
 
 
 
 
 
 
 
4941
 
4942
+ _createClass(Storage, [{
4943
+ key: "get",
4944
+ value: function get(key) {
4945
+ if (!Storage.supported || !this.enabled) {
4946
+ return null;
4947
+ }
4948
 
4949
+ var store = window.localStorage.getItem(this.key);
 
4950
 
4951
+ if (is$1.empty(store)) {
4952
+ return null;
4953
+ }
 
 
4954
 
4955
+ var json = JSON.parse(store);
4956
+ return is$1.string(key) && key.length ? json[key] : json;
4957
+ }
4958
+ }, {
4959
+ key: "set",
4960
+ value: function set(object) {
4961
+ // Bail if we don't have localStorage support or it's disabled
4962
+ if (!Storage.supported || !this.enabled) {
4963
+ return;
4964
+ } // Can only store objectst
4965
 
 
 
 
4966
 
4967
+ if (!is$1.object(object)) {
4968
+ return;
4969
+ } // Get current storage
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4970
 
 
 
 
 
 
4971
 
4972
+ var storage = this.get(); // Default to empty object
 
 
 
 
 
 
4973
 
4974
+ if (is$1.empty(storage)) {
4975
+ storage = {};
4976
+ } // Update the working copy of the values
 
 
 
 
 
4977
 
4978
 
4979
+ extend(storage, object); // Update storage
4980
 
4981
+ window.localStorage.setItem(this.key, JSON.stringify(storage));
4982
+ }
4983
+ }], [{
4984
+ key: "supported",
4985
+ get: function get() {
4986
+ try {
4987
+ if (!('localStorage' in window)) {
4988
+ return false;
4989
+ }
4990
 
4991
+ var test = '___test'; // Try to use it (it might be disabled, e.g. user is in private mode)
4992
+ // see: https://github.com/sampotts/plyr/issues/131
 
 
 
 
4993
 
4994
+ window.localStorage.setItem(test, test);
4995
+ window.localStorage.removeItem(test);
4996
+ return true;
4997
+ } catch (e) {
4998
+ return false;
4999
+ }
5000
+ }
5001
+ }]);
5002
 
5003
+ return Storage;
5004
+ }();
 
5005
 
5006
+ // ==========================================================================
5007
+ // Fetch wrapper
5008
+ // Using XHR to avoid issues with older browsers
5009
+ // ==========================================================================
5010
+ function fetch(url) {
5011
+ var responseType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
5012
+ return new Promise(function (resolve, reject) {
5013
+ try {
5014
+ var request = new XMLHttpRequest(); // Check for CORS support
5015
 
5016
+ if (!('withCredentials' in request)) {
5017
+ return;
5018
+ }
 
 
5019
 
5020
+ request.addEventListener('load', function () {
5021
+ if (responseType === 'text') {
5022
+ try {
5023
+ resolve(JSON.parse(request.responseText));
5024
+ } catch (e) {
5025
+ resolve(request.responseText);
5026
  }
5027
+ } else {
5028
+ resolve(request.response);
5029
+ }
5030
+ });
5031
+ request.addEventListener('error', function () {
5032
+ throw new Error(request.status);
5033
+ });
5034
+ request.open('GET', url, true); // Set the required response type
5035
 
5036
+ request.responseType = responseType;
5037
+ request.send();
5038
+ } catch (e) {
5039
+ reject(e);
5040
+ }
5041
+ });
5042
+ }
5043
 
5044
+ // ==========================================================================
5045
 
5046
+ function loadSprite(url, id) {
5047
+ if (!is$1.string(url)) {
5048
+ return;
5049
+ }
 
 
 
 
5050
 
5051
+ var prefix = 'cache';
5052
+ var hasId = is$1.string(id);
5053
+ var isCached = false;
5054
 
5055
+ var exists = function exists() {
5056
+ return document.getElementById(id) !== null;
5057
+ };
 
 
 
 
 
 
 
 
5058
 
5059
+ var update = function update(container, data) {
5060
+ // eslint-disable-next-line no-param-reassign
5061
+ container.innerHTML = data; // Check again incase of race condition
5062
 
5063
+ if (hasId && exists()) {
5064
+ return;
5065
+ } // Inject the SVG to the body
5066
 
5067
 
5068
+ document.body.insertAdjacentElement('afterbegin', container);
5069
+ }; // Only load once if ID set
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5070
 
5071
 
5072
+ if (!hasId || !exists()) {
5073
+ var useStorage = Storage.supported; // Create container
5074
 
5075
+ var container = document.createElement('div');
5076
+ container.setAttribute('hidden', '');
 
 
 
 
 
 
5077
 
5078
+ if (hasId) {
5079
+ container.setAttribute('id', id);
5080
+ } // Check in cache
5081
 
5082
 
5083
+ if (useStorage) {
5084
+ var cached = window.localStorage.getItem("".concat(prefix, "-").concat(id));
5085
+ isCached = cached !== null;
5086
 
5087
+ if (isCached) {
5088
+ var data = JSON.parse(cached);
5089
+ update(container, data.content);
5090
+ }
5091
+ } // Get the sprite
5092
 
5093
 
5094
+ fetch(url).then(function (result) {
5095
+ if (is$1.empty(result)) {
5096
+ return;
5097
+ }
5098
 
5099
+ if (useStorage) {
5100
+ window.localStorage.setItem("".concat(prefix, "-").concat(id), JSON.stringify({
5101
+ content: result
5102
+ }));
5103
+ }
5104
 
5105
+ update(container, result);
5106
+ }).catch(function () {});
5107
+ }
5108
+ }
5109
 
5110
+ // ==========================================================================
 
 
 
 
 
 
 
5111
 
5112
+ var getHours = function getHours(value) {
5113
+ return Math.trunc(value / 60 / 60 % 60, 10);
5114
+ };
5115
+ var getMinutes = function getMinutes(value) {
5116
+ return Math.trunc(value / 60 % 60, 10);
5117
+ };
5118
+ var getSeconds = function getSeconds(value) {
5119
+ return Math.trunc(value % 60, 10);
5120
+ }; // Format time to UI friendly string
5121
 
5122
+ function formatTime() {
5123
+ var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
5124
+ var displayHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
5125
+ var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
5126
 
5127
+ // Bail if the value isn't a number
5128
+ if (!is$1.number(time)) {
5129
+ return formatTime(null, displayHours, inverted);
5130
+ } // Format time component to add leading zero
5131
 
 
 
 
 
 
 
 
5132
 
5133
+ var format = function format(value) {
5134
+ return "0".concat(value).slice(-2);
5135
+ }; // Breakdown to hours, mins, secs
5136
 
 
5137
 
5138
+ var hours = getHours(time);
5139
+ var mins = getMinutes(time);
5140
+ var secs = getSeconds(time); // Do we need to display hours?
5141
 
5142
+ if (displayHours || hours > 0) {
5143
+ hours = "".concat(hours, ":");
5144
+ } else {
5145
+ hours = '';
5146
+ } // Render
5147
 
 
 
5148
 
5149
+ return "".concat(inverted && time > 0 ? '-' : '').concat(hours).concat(format(mins), ":").concat(format(secs));
5150
+ }
5151
 
5152
+ var controls = {
5153
+ // Get icon URL
5154
+ getIconUrl: function getIconUrl() {
5155
+ var url = new URL(this.config.iconUrl, window.location);
5156
+ var cors = url.host !== window.location.host || browser.isIE && !window.svg4everybody;
5157
+ return {
5158
+ url: this.config.iconUrl,
5159
+ cors: cors
5160
+ };
5161
+ },
5162
+ // Find the UI controls
5163
+ findElements: function findElements() {
5164
+ try {
5165
+ this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper); // Buttons
5166
 
5167
+ this.elements.buttons = {
5168
+ play: getElements.call(this, this.config.selectors.buttons.play),
5169
+ pause: getElement.call(this, this.config.selectors.buttons.pause),
5170
+ restart: getElement.call(this, this.config.selectors.buttons.restart),
5171
+ rewind: getElement.call(this, this.config.selectors.buttons.rewind),
5172
+ fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),
5173
+ mute: getElement.call(this, this.config.selectors.buttons.mute),
5174
+ pip: getElement.call(this, this.config.selectors.buttons.pip),
5175
+ airplay: getElement.call(this, this.config.selectors.buttons.airplay),
5176
+ settings: getElement.call(this, this.config.selectors.buttons.settings),
5177
+ captions: getElement.call(this, this.config.selectors.buttons.captions),
5178
+ fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen)
5179
+ }; // Progress
5180
 
5181
+ this.elements.progress = getElement.call(this, this.config.selectors.progress); // Inputs
5182
 
5183
+ this.elements.inputs = {
5184
+ seek: getElement.call(this, this.config.selectors.inputs.seek),
5185
+ volume: getElement.call(this, this.config.selectors.inputs.volume)
5186
+ }; // Display
5187
 
5188
+ this.elements.display = {
5189
+ buffer: getElement.call(this, this.config.selectors.display.buffer),
5190
+ currentTime: getElement.call(this, this.config.selectors.display.currentTime),
5191
+ duration: getElement.call(this, this.config.selectors.display.duration)
5192
+ }; // Seek tooltip
5193
 
5194
+ if (is$1.element(this.elements.progress)) {
5195
+ this.elements.display.seekTooltip = this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip));
5196
+ }
 
 
 
5197
 
5198
+ return true;
5199
+ } catch (error) {
5200
+ // Log it
5201
+ this.debug.warn('It looks like there is a problem with your custom controls HTML', error); // Restore native video controls
 
 
 
 
 
 
 
5202
 
5203
+ this.toggleNativeControls(true);
5204
+ return false;
5205
+ }
5206
+ },
5207
+ // Create <svg> icon
5208
+ createIcon: function createIcon(type, attributes) {
5209
+ var namespace = 'http://www.w3.org/2000/svg';
5210
+ var iconUrl = controls.getIconUrl.call(this);
5211
+ var iconPath = "".concat(!iconUrl.cors ? iconUrl.url : '', "#").concat(this.config.iconPrefix); // Create <svg>
5212
 
5213
+ var icon = document.createElementNS(namespace, 'svg');
5214
+ setAttributes(icon, extend(attributes, {
5215
+ role: 'presentation',
5216
+ focusable: 'false'
5217
+ })); // Create the <use> to reference sprite
5218
 
5219
+ var use = document.createElementNS(namespace, 'use');
5220
+ var path = "".concat(iconPath, "-").concat(type); // Set `href` attributes
5221
+ // https://github.com/sampotts/plyr/issues/460
5222
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href
5223
 
5224
+ if ('href' in use) {
5225
+ use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);
5226
+ } // Always set the older attribute even though it's "deprecated" (it'll be around for ages)
5227
 
 
5228
 
5229
+ use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path); // Add <use> to <svg>
 
 
 
 
 
 
 
 
5230
 
5231
+ icon.appendChild(use);
5232
+ return icon;
5233
+ },
5234
+ // Create hidden text label
5235
+ createLabel: function createLabel(key) {
5236
+ var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5237
+ var text = i18n.get(key, this.config);
5238
+ var attributes = Object.assign({}, attr, {
5239
+ class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')
5240
+ });
5241
+ return createElement('span', attributes, text);
5242
+ },
5243
+ // Create a badge
5244
+ createBadge: function createBadge(text) {
5245
+ if (is$1.empty(text)) {
5246
+ return null;
5247
+ }
5248
 
5249
+ var badge = createElement('span', {
5250
+ class: this.config.classNames.menu.value
5251
+ });
5252
+ badge.appendChild(createElement('span', {
5253
+ class: this.config.classNames.menu.badge
5254
+ }, text));
5255
+ return badge;
5256
+ },
5257
+ // Create a <button>
5258
+ createButton: function createButton(buttonType, attr) {
5259
+ var _this = this;
5260
 
5261
+ var attributes = extend({}, attr);
5262
+ var type = toCamelCase(buttonType);
5263
+ var props = {
5264
+ element: 'button',
5265
+ toggle: false,
5266
+ label: null,
5267
+ icon: null,
5268
+ labelPressed: null,
5269
+ iconPressed: null
5270
+ };
5271
+ ['element', 'icon', 'label'].forEach(function (key) {
5272
+ if (Object.keys(attributes).includes(key)) {
5273
+ props[key] = attributes[key];
5274
+ delete attributes[key];
5275
+ }
5276
+ }); // Default to 'button' type to prevent form submission
5277
 
5278
+ if (props.element === 'button' && !Object.keys(attributes).includes('type')) {
5279
+ attributes.type = 'button';
5280
+ } // Set class name
5281
 
 
 
 
 
 
 
 
5282
 
5283
+ if (Object.keys(attributes).includes('class')) {
5284
+ if (!attributes.class.split(' ').some(function (c) {
5285
+ return c === _this.config.classNames.control;
5286
+ })) {
5287
+ extend(attributes, {
5288
+ class: "".concat(attributes.class, " ").concat(this.config.classNames.control)
5289
+ });
5290
+ }
5291
+ } else {
5292
+ attributes.class = this.config.classNames.control;
5293
+ } // Large play button
5294
 
 
5295
 
5296
+ switch (buttonType) {
5297
+ case 'play':
5298
+ props.toggle = true;
5299
+ props.label = 'play';
5300
+ props.labelPressed = 'pause';
5301
+ props.icon = 'play';
5302
+ props.iconPressed = 'pause';
5303
+ break;
 
 
 
 
 
5304
 
5305
+ case 'mute':
5306
+ props.toggle = true;
5307
+ props.label = 'mute';
5308
+ props.labelPressed = 'unmute';
5309
+ props.icon = 'volume';
5310
+ props.iconPressed = 'muted';
5311
+ break;
5312
 
5313
+ case 'captions':
5314
+ props.toggle = true;
5315
+ props.label = 'enableCaptions';
5316
+ props.labelPressed = 'disableCaptions';
5317
+ props.icon = 'captions-off';
5318
+ props.iconPressed = 'captions-on';
5319
+ break;
5320
 
5321
+ case 'fullscreen':
5322
+ props.toggle = true;
5323
+ props.label = 'enterFullscreen';
5324
+ props.labelPressed = 'exitFullscreen';
5325
+ props.icon = 'enter-fullscreen';
5326
+ props.iconPressed = 'exit-fullscreen';
5327
+ break;
5328
 
5329
+ case 'play-large':
5330
+ attributes.class += " ".concat(this.config.classNames.control, "--overlaid");
5331
+ type = 'play';
5332
+ props.label = 'play';
5333
+ props.icon = 'play';
5334
+ break;
5335
 
5336
+ default:
5337
+ if (is$1.empty(props.label)) {
5338
+ props.label = type;
5339
+ }
5340
 
5341
+ if (is$1.empty(props.icon)) {
5342
+ props.icon = buttonType;
5343
+ }
5344
 
5345
+ }
5346
 
5347
+ var button = createElement(props.element); // Setup toggle icon and labels
 
 
5348
 
5349
+ if (props.toggle) {
5350
+ // Icon
5351
+ button.appendChild(controls.createIcon.call(this, props.iconPressed, {
5352
+ class: 'icon--pressed'
5353
+ }));
5354
+ button.appendChild(controls.createIcon.call(this, props.icon, {
5355
+ class: 'icon--not-pressed'
5356
+ })); // Label/Tooltip
5357
 
5358
+ button.appendChild(controls.createLabel.call(this, props.labelPressed, {
5359
+ class: 'label--pressed'
5360
+ }));
5361
+ button.appendChild(controls.createLabel.call(this, props.label, {
5362
+ class: 'label--not-pressed'
5363
+ }));
5364
+ } else {
5365
+ button.appendChild(controls.createIcon.call(this, props.icon));
5366
+ button.appendChild(controls.createLabel.call(this, props.label));
5367
+ } // Merge and set attributes
5368
 
 
 
5369
 
5370
+ extend(attributes, getAttributesFromSelector(this.config.selectors.buttons[type], attributes));
5371
+ setAttributes(button, attributes); // We have multiple play buttons
 
 
 
 
 
5372
 
5373
+ if (type === 'play') {
5374
+ if (!is$1.array(this.elements.buttons[type])) {
5375
+ this.elements.buttons[type] = [];
5376
+ }
5377
 
5378
+ this.elements.buttons[type].push(button);
5379
+ } else {
5380
+ this.elements.buttons[type] = button;
5381
+ }
5382
 
5383
+ return button;
5384
+ },
5385
+ // Create an <input type='range'>
5386
+ createRange: function createRange(type, attributes) {
5387
+ // Seek input
5388
+ var input = createElement('input', extend(getAttributesFromSelector(this.config.selectors.inputs[type]), {
5389
+ type: 'range',
5390
+ min: 0,
5391
+ max: 100,
5392
+ step: 0.01,
5393
+ value: 0,
5394
+ autocomplete: 'off',
5395
+ // A11y fixes for https://github.com/sampotts/plyr/issues/905
5396
+ role: 'slider',
5397
+ 'aria-label': i18n.get(type, this.config),
5398
+ 'aria-valuemin': 0,
5399
+ 'aria-valuemax': 100,
5400
+ 'aria-valuenow': 0
5401
+ }, attributes));
5402
+ this.elements.inputs[type] = input; // Set the fill for webkit now
5403
 
5404
+ controls.updateRangeFill.call(this, input); // Improve support on touch devices
 
5405
 
5406
+ RangeTouch.setup(input);
5407
+ return input;
5408
+ },
5409
+ // Create a <progress>
5410
+ createProgress: function createProgress(type, attributes) {
5411
+ var progress = createElement('progress', extend(getAttributesFromSelector(this.config.selectors.display[type]), {
5412
+ min: 0,
5413
+ max: 100,
5414
+ value: 0,
5415
+ role: 'progressbar',
5416
+ 'aria-hidden': true
5417
+ }, attributes)); // Create the label inside
5418
 
5419
+ if (type !== 'volume') {
5420
+ progress.appendChild(createElement('span', null, '0'));
5421
+ var suffixKey = {
5422
+ played: 'played',
5423
+ buffer: 'buffered'
5424
+ }[type];
5425
+ var suffix = suffixKey ? i18n.get(suffixKey, this.config) : '';
5426
+ progress.innerText = "% ".concat(suffix.toLowerCase());
5427
+ }
5428
 
5429
+ this.elements.display[type] = progress;
5430
+ return progress;
5431
+ },
5432
+ // Create time display
5433
+ createTime: function createTime(type, attrs) {
5434
+ var attributes = getAttributesFromSelector(this.config.selectors.display[type], attrs);
5435
+ var container = createElement('div', extend(attributes, {
5436
+ class: "".concat(attributes.class ? attributes.class : '', " ").concat(this.config.classNames.display.time, " ").trim(),
5437
+ 'aria-label': i18n.get(type, this.config)
5438
+ }), '00:00'); // Reference for updates
5439
 
5440
+ this.elements.display[type] = container;
5441
+ return container;
5442
+ },
5443
+ // Bind keyboard shortcuts for a menu item
5444
+ // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
5445
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
5446
+ bindMenuItemShortcuts: function bindMenuItemShortcuts(menuItem, type) {
5447
+ var _this2 = this;
5448
 
5449
+ // Navigate through menus via arrow keys and space
5450
+ on(menuItem, 'keydown keyup', function (event) {
5451
+ // We only care about space and ⬆️ ⬇️️ ➡️
5452
+ if (![32, 38, 39, 40].includes(event.which)) {
5453
+ return;
5454
+ } // Prevent play / seek
 
 
 
 
 
 
 
5455
 
 
 
5456
 
5457
+ event.preventDefault();
5458
+ event.stopPropagation(); // We're just here to prevent the keydown bubbling
5459
 
5460
+ if (event.type === 'keydown') {
5461
+ return;
5462
+ }
5463
 
5464
+ var isRadioButton = matches$1(menuItem, '[role="menuitemradio"]'); // Show the respective menu
 
 
 
 
 
 
5465
 
5466
+ if (!isRadioButton && [32, 39].includes(event.which)) {
5467
+ controls.showMenuPanel.call(_this2, type, true);
5468
+ } else {
5469
+ var target;
 
 
5470
 
5471
+ if (event.which !== 32) {
5472
+ if (event.which === 40 || isRadioButton && event.which === 39) {
5473
+ target = menuItem.nextElementSibling;
5474
 
5475
+ if (!is$1.element(target)) {
5476
+ target = menuItem.parentNode.firstElementChild;
5477
+ }
5478
+ } else {
5479
+ target = menuItem.previousElementSibling;
 
 
5480
 
5481
+ if (!is$1.element(target)) {
5482
+ target = menuItem.parentNode.lastElementChild;
5483
+ }
 
5484
  }
5485
 
5486
+ setFocus.call(_this2, target, true);
5487
+ }
5488
+ }
5489
+ }, false); // Enter will fire a `click` event but we still need to manage focus
5490
+ // So we bind to keyup which fires after and set focus here
5491
 
5492
+ on(menuItem, 'keyup', function (event) {
5493
+ if (event.which !== 13) {
5494
+ return;
5495
+ }
5496
 
5497
+ controls.focusFirstMenuItem.call(_this2, null, true);
5498
+ });
5499
+ },
5500
+ // Create a settings menu item
5501
+ createMenuItem: function createMenuItem(_ref) {
5502
+ var _this3 = this;
5503
 
5504
+ var value = _ref.value,
5505
+ list = _ref.list,
5506
+ type = _ref.type,
5507
+ title = _ref.title,
5508
+ _ref$badge = _ref.badge,
5509
+ badge = _ref$badge === void 0 ? null : _ref$badge,
5510
+ _ref$checked = _ref.checked,
5511
+ checked = _ref$checked === void 0 ? false : _ref$checked;
5512
+ var attributes = getAttributesFromSelector(this.config.selectors.inputs[type]);
5513
+ var menuItem = createElement('button', extend(attributes, {
5514
+ type: 'button',
5515
+ role: 'menuitemradio',
5516
+ class: "".concat(this.config.classNames.control, " ").concat(attributes.class ? attributes.class : '').trim(),
5517
+ 'aria-checked': checked,
5518
+ value: value
5519
+ }));
5520
+ var flex = createElement('span'); // We have to set as HTML incase of special characters
5521
 
5522
+ flex.innerHTML = title;
 
 
5523
 
5524
+ if (is$1.element(badge)) {
5525
+ flex.appendChild(badge);
5526
+ }
5527
 
5528
+ menuItem.appendChild(flex); // Replicate radio button behaviour
5529
+
5530
+ Object.defineProperty(menuItem, 'checked', {
5531
+ enumerable: true,
5532
+ get: function get() {
5533
+ return menuItem.getAttribute('aria-checked') === 'true';
 
 
 
 
 
 
5534
  },
5535
+ set: function set(check) {
5536
+ // Ensure exclusivity
5537
+ if (check) {
5538
+ Array.from(menuItem.parentNode.children).filter(function (node) {
5539
+ return matches$1(node, '[role="menuitemradio"]');
5540
+ }).forEach(function (node) {
5541
+ return node.setAttribute('aria-checked', 'false');
5542
+ });
5543
+ }
5544
 
5545
+ menuItem.setAttribute('aria-checked', check ? 'true' : 'false');
5546
+ }
5547
+ });
5548
+ this.listeners.bind(menuItem, 'click keyup', function (event) {
5549
+ if (is$1.keyboardEvent(event) && event.which !== 32) {
5550
+ return;
5551
+ }
5552
 
5553
+ event.preventDefault();
5554
+ event.stopPropagation();
5555
+ menuItem.checked = true;
5556
 
5557
+ switch (type) {
5558
+ case 'language':
5559
+ _this3.currentTrack = Number(value);
5560
+ break;
5561
 
5562
+ case 'quality':
5563
+ _this3.quality = value;
5564
+ break;
 
 
 
 
 
 
 
 
5565
 
5566
+ case 'speed':
5567
+ _this3.speed = parseFloat(value);
5568
+ break;
5569
 
5570
+ default:
5571
+ break;
5572
+ }
 
 
5573
 
5574
+ controls.showMenuPanel.call(_this3, 'home', is$1.keyboardEvent(event));
5575
+ }, type, false);
5576
+ controls.bindMenuItemShortcuts.call(this, menuItem, type);
5577
+ list.appendChild(menuItem);
5578
+ },
5579
+ // Format a time for display
5580
+ formatTime: function formatTime$1() {
5581
+ var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
5582
+ var inverted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
5583
 
5584
+ // Bail if the value isn't a number
5585
+ if (!is$1.number(time)) {
5586
+ return time;
5587
+ } // Always display hours if duration is over an hour
5588
 
 
 
 
 
5589
 
5590
+ var forceHours = getHours(this.duration) > 0;
5591
+ return formatTime(time, forceHours, inverted);
5592
+ },
5593
+ // Update the displayed time
5594
+ updateTimeDisplay: function updateTimeDisplay() {
5595
+ var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
5596
+ var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5597
+ var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
5598
 
5599
+ // Bail if there's no element to display or the value isn't a number
5600
+ if (!is$1.element(target) || !is$1.number(time)) {
5601
+ return;
5602
+ } // eslint-disable-next-line no-param-reassign
 
 
5603
 
 
 
5604
 
5605
+ target.innerText = controls.formatTime(time, inverted);
5606
+ },
5607
+ // Update volume UI and storage
5608
+ updateVolume: function updateVolume() {
5609
+ if (!this.supported.ui) {
5610
+ return;
5611
+ } // Update range
5612
 
 
 
 
5613
 
5614
+ if (is$1.element(this.elements.inputs.volume)) {
5615
+ controls.setRange.call(this, this.elements.inputs.volume, this.muted ? 0 : this.volume);
5616
+ } // Update mute state
 
5617
 
5618
 
5619
+ if (is$1.element(this.elements.buttons.mute)) {
5620
+ this.elements.buttons.mute.pressed = this.muted || this.volume === 0;
5621
+ }
5622
+ },
5623
+ // Update seek value and lower fill
5624
+ setRange: function setRange(target) {
5625
+ var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5626
 
5627
+ if (!is$1.element(target)) {
5628
+ return;
5629
+ } // eslint-disable-next-line
5630
 
 
 
5631
 
5632
+ target.value = value; // Webkit range fill
 
 
5633
 
5634
+ controls.updateRangeFill.call(this, target);
5635
+ },
5636
+ // Update <progress> elements
5637
+ updateProgress: function updateProgress(event) {
5638
+ var _this4 = this;
5639
 
5640
+ if (!this.supported.ui || !is$1.event(event)) {
5641
+ return;
5642
+ }
 
 
 
 
 
 
 
 
5643
 
5644
+ var value = 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5645
 
5646
+ var setProgress = function setProgress(target, input) {
5647
+ var val = is$1.number(input) ? input : 0;
5648
+ var progress = is$1.element(target) ? target : _this4.elements.display.buffer; // Update value and label
 
 
 
 
5649
 
5650
+ if (is$1.element(progress)) {
5651
+ progress.value = val; // Update text label inside
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5652
 
5653
+ var label = progress.getElementsByTagName('span')[0];
 
 
 
 
5654
 
5655
+ if (is$1.element(label)) {
5656
+ label.childNodes[0].nodeValue = val;
5657
+ }
 
 
 
 
 
 
 
5658
  }
5659
+ };
5660
 
5661
+ if (event) {
5662
+ switch (event.type) {
5663
+ // Video playing
5664
+ case 'timeupdate':
5665
+ case 'seeking':
5666
+ case 'seeked':
5667
+ value = getPercentage(this.currentTime, this.duration); // Set seek range value only if it's a 'natural' time event
 
 
 
 
 
 
 
 
5668
 
5669
+ if (event.type === 'timeupdate') {
5670
+ controls.setRange.call(this, this.elements.inputs.seek, value);
 
 
5671
  }
5672
 
5673
+ break;
5674
+ // Check buffer status
 
 
5675
 
5676
+ case 'playing':
5677
+ case 'progress':
5678
+ setProgress(this.elements.display.buffer, this.buffered * 100);
5679
+ break;
5680
 
5681
+ default:
5682
+ break;
5683
+ }
5684
+ }
5685
+ },
5686
+ // Webkit polyfill for lower fill range
5687
+ updateRangeFill: function updateRangeFill(target) {
5688
+ // Get range from event if event passed
5689
+ var range = is$1.event(target) ? target.target : target; // Needs to be a valid <input type='range'>
5690
 
5691
+ if (!is$1.element(range) || range.getAttribute('type') !== 'range') {
5692
+ return;
5693
+ } // Set aria values for https://github.com/sampotts/plyr/issues/905
5694
 
 
 
5695
 
5696
+ if (matches$1(range, this.config.selectors.inputs.seek)) {
5697
+ range.setAttribute('aria-valuenow', this.currentTime);
5698
+ var currentTime = controls.formatTime(this.currentTime);
5699
+ var duration = controls.formatTime(this.duration);
5700
+ var format = i18n.get('seekLabel', this.config);
5701
+ range.setAttribute('aria-valuetext', format.replace('{currentTime}', currentTime).replace('{duration}', duration));
5702
+ } else if (matches$1(range, this.config.selectors.inputs.volume)) {
5703
+ var percent = range.value * 100;
5704
+ range.setAttribute('aria-valuenow', percent);
5705
+ range.setAttribute('aria-valuetext', "".concat(percent.toFixed(1), "%"));
5706
+ } else {
5707
+ range.setAttribute('aria-valuenow', range.value);
5708
+ } // WebKit only
5709
 
 
5710
 
5711
+ if (!browser.isWebkit) {
5712
+ return;
5713
+ } // Set CSS custom property
5714
 
 
5715
 
5716
+ range.style.setProperty('--value', "".concat(range.value / range.max * 100, "%"));
5717
+ },
5718
+ // Update hover tooltip for seeking
5719
+ updateSeekTooltip: function updateSeekTooltip(event) {
5720
+ var _this5 = this;
5721
 
5722
+ // Bail if setting not true
5723
+ if (!this.config.tooltips.seek || !is$1.element(this.elements.inputs.seek) || !is$1.element(this.elements.display.seekTooltip) || this.duration === 0) {
5724
+ return;
5725
+ }
5726
 
5727
+ var visible = "".concat(this.config.classNames.tooltip, "--visible");
5728
 
5729
+ var toggle = function toggle(show) {
5730
+ return toggleClass(_this5.elements.display.seekTooltip, visible, show);
5731
+ }; // Hide on touch
5732
 
 
5733
 
5734
+ if (this.touch) {
5735
+ toggle(false);
5736
+ return;
5737
+ } // Determine percentage, if already visible
5738
 
 
5739
 
5740
+ var percent = 0;
5741
+ var clientRect = this.elements.progress.getBoundingClientRect();
5742
 
5743
+ if (is$1.event(event)) {
5744
+ percent = 100 / clientRect.width * (event.pageX - clientRect.left);
5745
+ } else if (hasClass(this.elements.display.seekTooltip, visible)) {
5746
+ percent = parseFloat(this.elements.display.seekTooltip.style.left, 10);
5747
+ } else {
5748
+ return;
5749
+ } // Set bounds
5750
 
 
5751
 
5752
+ if (percent < 0) {
5753
+ percent = 0;
5754
+ } else if (percent > 100) {
5755
+ percent = 100;
5756
+ } // Display the time a click would seek to
5757
 
 
5758
 
5759
+ controls.updateTimeDisplay.call(this, this.elements.display.seekTooltip, this.duration / 100 * percent); // Set position
5760
 
5761
+ this.elements.display.seekTooltip.style.left = "".concat(percent, "%"); // Show/hide the tooltip
5762
+ // If the event is a moues in/out and percentage is inside bounds
5763
 
5764
+ if (is$1.event(event) && ['mouseenter', 'mouseleave'].includes(event.type)) {
5765
+ toggle(event.type === 'mouseenter');
5766
+ }
5767
+ },
5768
+ // Handle time change event
5769
+ timeUpdate: function timeUpdate(event) {
5770
+ // Only invert if only one time element is displayed and used for both duration and currentTime
5771
+ var invert = !is$1.element(this.elements.display.duration) && this.config.invertTime; // Duration
5772
 
5773
+ controls.updateTimeDisplay.call(this, this.elements.display.currentTime, invert ? this.duration - this.currentTime : this.currentTime, invert); // Ignore updates while seeking
5774
 
5775
+ if (event && event.type === 'timeupdate' && this.media.seeking) {
5776
+ return;
5777
+ } // Playing progress
5778
 
 
5779
 
5780
+ controls.updateProgress.call(this, event);
5781
+ },
5782
+ // Show the duration on metadataloaded or durationchange events
5783
+ durationUpdate: function durationUpdate() {
5784
+ // Bail if no UI or durationchange event triggered after playing/seek when invertTime is false
5785
+ if (!this.supported.ui || !this.config.invertTime && this.currentTime) {
5786
+ return;
5787
+ } // If duration is the 2**32 (shaka), Infinity (HLS), DASH-IF (Number.MAX_SAFE_INTEGER || Number.MAX_VALUE) indicating live we hide the currentTime and progressbar.
5788
+ // https://github.com/video-dev/hls.js/blob/5820d29d3c4c8a46e8b75f1e3afa3e68c1a9a2db/src/controller/buffer-controller.js#L415
5789
+ // https://github.com/google/shaka-player/blob/4d889054631f4e1cf0fbd80ddd2b71887c02e232/lib/media/streaming_engine.js#L1062
5790
+ // https://github.com/Dash-Industry-Forum/dash.js/blob/69859f51b969645b234666800d4cb596d89c602d/src/dash/models/DashManifestModel.js#L338
5791
 
5792
 
5793
+ if (this.duration >= Math.pow(2, 32)) {
5794
+ toggleHidden(this.elements.display.currentTime, true);
5795
+ toggleHidden(this.elements.progress, true);
5796
+ return;
5797
+ } // Update ARIA values
5798
 
 
 
5799
 
5800
+ if (is$1.element(this.elements.inputs.seek)) {
5801
+ this.elements.inputs.seek.setAttribute('aria-valuemax', this.duration);
5802
+ } // If there's a spot to display duration
5803
 
 
 
5804
 
5805
+ var hasDuration = is$1.element(this.elements.display.duration); // If there's only one time display, display duration there
 
 
 
5806
 
5807
+ if (!hasDuration && this.config.displayDuration && this.paused) {
5808
+ controls.updateTimeDisplay.call(this, this.elements.display.currentTime, this.duration);
5809
+ } // If there's a duration element, update content
 
 
 
 
 
 
 
 
 
 
 
5810
 
 
 
 
5811
 
5812
+ if (hasDuration) {
5813
+ controls.updateTimeDisplay.call(this, this.elements.display.duration, this.duration);
5814
+ } // Update the tooltip (if visible)
 
 
 
 
 
 
 
5815
 
 
5816
 
5817
+ controls.updateSeekTooltip.call(this);
5818
+ },
5819
+ // Hide/show a tab
5820
+ toggleMenuButton: function toggleMenuButton(setting, toggle) {
5821
+ toggleHidden(this.elements.settings.buttons[setting], !toggle);
5822
+ },
5823
+ // Update the selected setting
5824
+ updateSetting: function updateSetting(setting, container, input) {
5825
+ var pane = this.elements.settings.panels[setting];
5826
+ var value = null;
5827
+ var list = container;
5828
 
5829
+ if (setting === 'captions') {
5830
+ value = this.currentTrack;
5831
+ } else {
5832
+ value = !is$1.empty(input) ? input : this[setting]; // Get default
5833
 
5834
+ if (is$1.empty(value)) {
5835
+ value = this.config[setting].default;
5836
+ } // Unsupported value
5837
 
 
 
 
 
 
 
 
 
 
 
5838
 
5839
+ if (!is$1.empty(this.options[setting]) && !this.options[setting].includes(value)) {
5840
+ this.debug.warn("Unsupported value of '".concat(value, "' for ").concat(setting));
5841
+ return;
5842
+ } // Disabled value
 
 
 
5843
 
 
 
5844
 
5845
+ if (!this.config[setting].options.includes(value)) {
5846
+ this.debug.warn("Disabled value of '".concat(value, "' for ").concat(setting));
5847
+ return;
5848
+ }
5849
+ } // Get the list if we need to
5850
 
 
5851
 
5852
+ if (!is$1.element(list)) {
5853
+ list = pane && pane.querySelector('[role="menu"]');
5854
+ } // If there's no list it means it's not been rendered...
5855
 
 
 
 
5856
 
5857
+ if (!is$1.element(list)) {
5858
+ return;
5859
+ } // Update the label
5860
 
 
 
 
 
 
 
 
 
 
 
 
5861
 
5862
+ var label = this.elements.settings.buttons[setting].querySelector(".".concat(this.config.classNames.menu.value));
5863
+ label.innerHTML = controls.getLabel.call(this, setting, value); // Find the radio option and check it
 
 
 
5864
 
5865
+ var target = list && list.querySelector("[value=\"".concat(value, "\"]"));
 
 
5866
 
5867
+ if (is$1.element(target)) {
5868
+ target.checked = true;
5869
+ }
5870
+ },
5871
+ // Translate a value into a nice label
5872
+ getLabel: function getLabel(setting, value) {
5873
+ switch (setting) {
5874
+ case 'speed':
5875
+ return value === 1 ? i18n.get('normal', this.config) : "".concat(value, "&times;");
5876
 
5877
+ case 'quality':
5878
+ if (is$1.number(value)) {
5879
+ var label = i18n.get("qualityLabel.".concat(value), this.config);
5880
 
5881
+ if (!label.length) {
5882
+ return "".concat(value, "p");
 
 
 
 
 
 
 
 
 
 
5883
  }
 
5884
 
5885
+ return label;
5886
+ }
5887
 
5888
+ return toTitleCase(value);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5889
 
5890
+ case 'captions':
5891
+ return captions.getLabel.call(this);
 
5892
 
5893
+ default:
5894
+ return null;
5895
+ }
5896
+ },
5897
+ // Set the quality menu
5898
+ setQualityMenu: function setQualityMenu(options) {
5899
+ var _this6 = this;
5900
 
5901
+ // Menu required
5902
+ if (!is$1.element(this.elements.settings.panels.quality)) {
5903
+ return;
5904
+ }
 
 
 
5905
 
5906
+ var type = 'quality';
5907
+ var list = this.elements.settings.panels.quality.querySelector('[role="menu"]'); // Set options if passed and filter based on uniqueness and config
5908
 
5909
+ if (is$1.array(options)) {
5910
+ this.options.quality = dedupe(options).filter(function (quality) {
5911
+ return _this6.config.quality.options.includes(quality);
5912
+ });
5913
+ } // Toggle the pane and tab
5914
 
 
5915
 
5916
+ var toggle = !is$1.empty(this.options.quality) && this.options.quality.length > 1;
5917
+ controls.toggleMenuButton.call(this, type, toggle); // Empty the menu
5918
 
5919
+ emptyElement(list); // Check if we need to toggle the parent
5920
 
5921
+ controls.checkMenu.call(this); // If we're hiding, nothing more to do
 
 
5922
 
5923
+ if (!toggle) {
5924
+ return;
5925
+ } // Get the badge HTML for HD, 4K etc
5926
 
 
 
 
 
 
 
 
 
5927
 
5928
+ var getBadge = function getBadge(quality) {
5929
+ var label = i18n.get("qualityBadge.".concat(quality), _this6.config);
5930
 
5931
+ if (!label.length) {
5932
+ return null;
5933
  }
 
5934
 
5935
+ return controls.createBadge.call(_this6, label);
5936
+ }; // Sort options by the config and then render options
5937
 
 
 
 
 
 
5938
 
5939
+ this.options.quality.sort(function (a, b) {
5940
+ var sorting = _this6.config.quality.options;
5941
+ return sorting.indexOf(a) > sorting.indexOf(b) ? 1 : -1;
5942
+ }).forEach(function (quality) {
5943
+ controls.createMenuItem.call(_this6, {
5944
+ value: quality,
5945
+ list: list,
5946
+ type: type,
5947
+ title: controls.getLabel.call(_this6, 'quality', quality),
5948
+ badge: getBadge(quality)
5949
+ });
5950
+ });
5951
+ controls.updateSetting.call(this, type, list);
5952
+ },
5953
+ // Set the looping options
5954
 
5955
+ /* setLoopMenu() {
5956
+ // Menu required
5957
+ if (!is.element(this.elements.settings.panels.loop)) {
5958
+ return;
5959
+ }
5960
+ const options = ['start', 'end', 'all', 'reset'];
5961
+ const list = this.elements.settings.panels.loop.querySelector('[role="menu"]');
5962
+ // Show the pane and tab
5963
+ toggleHidden(this.elements.settings.buttons.loop, false);
5964
+ toggleHidden(this.elements.settings.panels.loop, false);
5965
+ // Toggle the pane and tab
5966
+ const toggle = !is.empty(this.loop.options);
5967
+ controls.toggleMenuButton.call(this, 'loop', toggle);
5968
+ // Empty the menu
5969
+ emptyElement(list);
5970
+ options.forEach(option => {
5971
+ const item = createElement('li');
5972
+ const button = createElement(
5973
+ 'button',
5974
+ extend(getAttributesFromSelector(this.config.selectors.buttons.loop), {
5975
+ type: 'button',
5976
+ class: this.config.classNames.control,
5977
+ 'data-plyr-loop-action': option,
5978
+ }),
5979
+ i18n.get(option, this.config)
5980
+ );
5981
+ if (['start', 'end'].includes(option)) {
5982
+ const badge = controls.createBadge.call(this, '00:00');
5983
+ button.appendChild(badge);
5984
  }
5985
+ item.appendChild(button);
5986
+ list.appendChild(item);
5987
+ });
5988
+ }, */
5989
+ // Get current selected caption language
5990
+ // TODO: rework this to user the getter in the API?
5991
+ // Set a list of available captions languages
5992
+ setCaptionsMenu: function setCaptionsMenu() {
5993
+ var _this7 = this;
5994
 
5995
+ // Menu required
5996
+ if (!is$1.element(this.elements.settings.panels.captions)) {
5997
+ return;
5998
+ } // TODO: Captions or language? Currently it's mixed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5999
 
 
 
 
 
6000
 
6001
+ var type = 'captions';
6002
+ var list = this.elements.settings.panels.captions.querySelector('[role="menu"]');
6003
+ var tracks = captions.getTracks.call(this);
6004
+ var toggle = Boolean(tracks.length); // Toggle the pane and tab
6005
 
6006
+ controls.toggleMenuButton.call(this, type, toggle); // Empty the menu
 
 
 
 
6007
 
6008
+ emptyElement(list); // Check if we need to toggle the parent
 
 
 
 
 
6009
 
6010
+ controls.checkMenu.call(this); // If there's no captions, bail
 
 
 
 
 
 
 
6011
 
6012
+ if (!toggle) {
6013
+ return;
6014
+ } // Generate options data
 
 
 
 
 
 
 
 
6015
 
 
6016
 
6017
+ var options = tracks.map(function (track, value) {
6018
+ return {
6019
+ value: value,
6020
+ checked: _this7.captions.toggled && _this7.currentTrack === value,
6021
+ title: captions.getLabel.call(_this7, track),
6022
+ badge: track.language && controls.createBadge.call(_this7, track.language.toUpperCase()),
6023
+ list: list,
6024
+ type: 'language'
6025
+ };
6026
+ }); // Add the "Disabled" option to turn off captions
6027
 
6028
+ options.unshift({
6029
+ value: -1,
6030
+ checked: !this.captions.toggled,
6031
+ title: i18n.get('disabled', this.config),
6032
+ list: list,
6033
+ type: 'language'
6034
+ }); // Generate options
6035
 
6036
+ options.forEach(controls.createMenuItem.bind(this));
6037
+ controls.updateSetting.call(this, type, list);
6038
+ },
6039
+ // Set a list of available captions languages
6040
+ setSpeedMenu: function setSpeedMenu(options) {
6041
+ var _this8 = this;
6042
 
6043
+ // Menu required
6044
+ if (!is$1.element(this.elements.settings.panels.speed)) {
6045
+ return;
6046
+ }
6047
 
6048
+ var type = 'speed';
6049
+ var list = this.elements.settings.panels.speed.querySelector('[role="menu"]'); // Set the speed options
6050
 
6051
+ if (is$1.array(options)) {
6052
+ this.options.speed = options;
6053
+ } else if (this.isHTML5 || this.isVimeo) {
6054
+ this.options.speed = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
6055
+ } // Set options if passed and filter based on config
 
 
6056
 
 
 
 
6057
 
6058
+ this.options.speed = this.options.speed.filter(function (speed) {
6059
+ return _this8.config.speed.options.includes(speed);
6060
+ }); // Toggle the pane and tab
 
 
 
 
 
 
6061
 
6062
+ var toggle = !is$1.empty(this.options.speed) && this.options.speed.length > 1;
6063
+ controls.toggleMenuButton.call(this, type, toggle); // Empty the menu
 
6064
 
6065
+ emptyElement(list); // Check if we need to toggle the parent
 
 
 
 
 
 
 
 
 
6066
 
6067
+ controls.checkMenu.call(this); // If we're hiding, nothing more to do
 
6068
 
6069
+ if (!toggle) {
6070
+ return;
6071
+ } // Create items
6072
 
 
6073
 
6074
+ this.options.speed.forEach(function (speed) {
6075
+ controls.createMenuItem.call(_this8, {
6076
+ value: speed,
6077
+ list: list,
6078
+ type: type,
6079
+ title: controls.getLabel.call(_this8, 'speed', speed)
6080
+ });
6081
+ });
6082
+ controls.updateSetting.call(this, type, list);
6083
+ },
6084
+ // Check if we need to hide/show the settings menu
6085
+ checkMenu: function checkMenu() {
6086
+ var buttons = this.elements.settings.buttons;
6087
+ var visible = !is$1.empty(buttons) && Object.values(buttons).some(function (button) {
6088
+ return !button.hidden;
6089
+ });
6090
+ toggleHidden(this.elements.settings.menu, !visible);
6091
+ },
6092
+ // Focus the first menu item in a given (or visible) menu
6093
+ focusFirstMenuItem: function focusFirstMenuItem(pane) {
6094
+ var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6095
 
6096
+ if (this.elements.settings.popup.hidden) {
6097
+ return;
6098
+ }
6099
 
6100
+ var target = pane;
 
6101
 
6102
+ if (!is$1.element(target)) {
6103
+ target = Object.values(this.elements.settings.panels).find(function (p) {
6104
+ return !p.hidden;
6105
+ });
6106
+ }
6107
 
6108
+ var firstItem = target.querySelector('[role^="menuitem"]');
6109
+ setFocus.call(this, firstItem, tabFocus);
6110
+ },
6111
+ // Show/hide menu
6112
+ toggleMenu: function toggleMenu(input) {
6113
+ var popup = this.elements.settings.popup;
6114
+ var button = this.elements.buttons.settings; // Menu and button are required
6115
 
6116
+ if (!is$1.element(popup) || !is$1.element(button)) {
6117
+ return;
6118
+ } // True toggle by default
 
 
 
 
 
 
 
 
 
6119
 
 
 
 
 
 
 
 
 
6120
 
6121
+ var hidden = popup.hidden;
6122
+ var show = hidden;
 
 
 
 
6123
 
6124
+ if (is$1.boolean(input)) {
6125
+ show = input;
6126
+ } else if (is$1.keyboardEvent(input) && input.which === 27) {
6127
+ show = false;
6128
+ } else if (is$1.event(input)) {
6129
+ // If Plyr is in a shadowDOM, the event target is set to the component, instead of the
6130
+ // Element in the shadowDOM. The path, if available, is complete.
6131
+ var target = is$1.function(input.composedPath) ? input.composedPath()[0] : input.target;
6132
+ var isMenuItem = popup.contains(target); // If the click was inside the menu or if the click
6133
+ // wasn't the button or menu item and we're trying to
6134
+ // show the menu (a doc click shouldn't show the menu)
6135
 
6136
+ if (isMenuItem || !isMenuItem && input.target !== button && show) {
6137
+ return;
6138
+ }
6139
+ } // Set button attributes
 
 
 
 
 
6140
 
 
 
 
 
 
6141
 
6142
+ button.setAttribute('aria-expanded', show); // Show the actual popup
 
 
 
 
 
 
6143
 
6144
+ toggleHidden(popup, !show); // Add class hook
 
 
 
6145
 
6146
+ toggleClass(this.elements.container, this.config.classNames.menu.open, show); // Focus the first item if key interaction
6147
 
6148
+ if (show && is$1.keyboardEvent(input)) {
6149
+ controls.focusFirstMenuItem.call(this, null, true);
6150
+ } else if (!show && !hidden) {
6151
+ // If closing, re-focus the button
6152
+ setFocus.call(this, button, is$1.keyboardEvent(input));
6153
+ }
6154
+ },
6155
+ // Get the natural size of a menu panel
6156
+ getMenuSize: function getMenuSize(tab) {
6157
+ var clone = tab.cloneNode(true);
6158
+ clone.style.position = 'absolute';
6159
+ clone.style.opacity = 0;
6160
+ clone.removeAttribute('hidden'); // Append to parent so we get the "real" size
6161
 
6162
+ tab.parentNode.appendChild(clone); // Get the sizes before we remove
 
 
 
 
 
 
 
 
6163
 
6164
+ var width = clone.scrollWidth;
6165
+ var height = clone.scrollHeight; // Remove from the DOM
6166
 
6167
+ removeElement(clone);
6168
+ return {
6169
+ width: width,
6170
+ height: height
6171
+ };
6172
+ },
6173
+ // Show a panel in the menu
6174
+ showMenuPanel: function showMenuPanel() {
6175
+ var _this9 = this;
6176
 
6177
+ var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
6178
+ var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6179
+ var target = this.elements.container.querySelector("#plyr-settings-".concat(this.id, "-").concat(type)); // Nothing to show, bail
 
6180
 
6181
+ if (!is$1.element(target)) {
6182
+ return;
6183
+ } // Hide all other panels
6184
 
 
 
 
 
 
 
 
 
6185
 
6186
+ var container = target.parentNode;
6187
+ var current = Array.from(container.children).find(function (node) {
6188
+ return !node.hidden;
6189
+ }); // If we can do fancy animations, we'll animate the height/width
6190
 
6191
+ if (support.transitions && !support.reducedMotion) {
6192
+ // Set the current width as a base
6193
+ container.style.width = "".concat(current.scrollWidth, "px");
6194
+ container.style.height = "".concat(current.scrollHeight, "px"); // Get potential sizes
 
 
 
 
6195
 
6196
+ var size = controls.getMenuSize.call(this, target); // Restore auto height/width
6197
 
6198
+ var restore = function restore(event) {
6199
+ // We're only bothered about height and width on the container
6200
+ if (event.target !== container || !['width', 'height'].includes(event.propertyName)) {
6201
+ return;
6202
+ } // Revert back to auto
6203
 
 
 
 
6204
 
6205
+ container.style.width = '';
6206
+ container.style.height = ''; // Only listen once
 
 
 
 
 
 
 
 
 
 
6207
 
6208
+ off.call(_this9, container, transitionEndEvent, restore);
6209
+ }; // Listen for the transition finishing and restore auto height/width
6210
 
 
 
 
 
 
 
 
 
6211
 
6212
+ on.call(this, container, transitionEndEvent, restore); // Set dimensions to target
 
6213
 
6214
+ container.style.width = "".concat(size.width, "px");
6215
+ container.style.height = "".concat(size.height, "px");
6216
+ } // Set attributes on current tab
6217
 
 
6218
 
6219
+ toggleHidden(current, true); // Set attributes on target
6220
 
6221
+ toggleHidden(target, false); // Focus the first item
 
 
 
6222
 
6223
+ controls.focusFirstMenuItem.call(this, target, tabFocus);
6224
+ },
6225
+ // Set the download URL
6226
+ setDownloadUrl: function setDownloadUrl() {
6227
+ var button = this.elements.buttons.download; // Bail if no button
6228
 
6229
+ if (!is$1.element(button)) {
6230
+ return;
6231
+ } // Set attribute
6232
 
 
6233
 
6234
+ button.setAttribute('href', this.download);
6235
+ },
6236
+ // Build the default HTML
6237
+ create: function create(data) {
6238
+ var _this10 = this;
6239
 
6240
+ var bindMenuItemShortcuts = controls.bindMenuItemShortcuts,
6241
+ createButton = controls.createButton,
6242
+ createProgress = controls.createProgress,
6243
+ createRange = controls.createRange,
6244
+ createTime = controls.createTime,
6245
+ setQualityMenu = controls.setQualityMenu,
6246
+ setSpeedMenu = controls.setSpeedMenu,
6247
+ showMenuPanel = controls.showMenuPanel;
6248
+ this.elements.controls = null; // Larger overlaid play button
6249
 
6250
+ if (this.config.controls.includes('play-large')) {
6251
+ this.elements.container.appendChild(createButton.call(this, 'play-large'));
6252
+ } // Create the container
 
 
6253
 
 
6254
 
6255
+ var container = createElement('div', getAttributesFromSelector(this.config.selectors.controls.wrapper));
6256
+ this.elements.controls = container; // Default item attributes
6257
 
6258
+ var defaultAttributes = {
6259
+ class: 'plyr__controls__item'
6260
+ }; // Loop through controls in order
6261
 
6262
+ dedupe(this.config.controls).forEach(function (control) {
6263
+ // Restart button
6264
+ if (control === 'restart') {
6265
+ container.appendChild(createButton.call(_this10, 'restart', defaultAttributes));
6266
+ } // Rewind button
6267
 
 
6268
 
6269
+ if (control === 'rewind') {
6270
+ container.appendChild(createButton.call(_this10, 'rewind', defaultAttributes));
6271
+ } // Play/Pause button
6272
 
 
 
 
 
 
 
 
6273
 
6274
+ if (control === 'play') {
6275
+ container.appendChild(createButton.call(_this10, 'play', defaultAttributes));
6276
+ } // Fast forward button
6277
 
 
 
 
 
6278
 
6279
+ if (control === 'fast-forward') {
6280
+ container.appendChild(createButton.call(_this10, 'fast-forward', defaultAttributes));
6281
+ } // Progress
6282
 
 
 
 
 
 
 
 
 
 
 
6283
 
6284
+ if (control === 'progress') {
6285
+ var progressContainer = createElement('div', {
6286
+ class: "".concat(defaultAttributes.class, " plyr__progress__container")
6287
+ });
6288
+ var progress = createElement('div', getAttributesFromSelector(_this10.config.selectors.progress)); // Seek range slider
6289
 
6290
+ progress.appendChild(createRange.call(_this10, 'seek', {
6291
+ id: "plyr-seek-".concat(data.id)
6292
+ })); // Buffer progress
 
 
 
 
6293
 
6294
+ progress.appendChild(createProgress.call(_this10, 'buffer')); // TODO: Add loop display indicator
6295
+ // Seek tooltip
 
 
 
 
 
 
6296
 
6297
+ if (_this10.config.tooltips.seek) {
6298
+ var tooltip = createElement('span', {
6299
+ class: _this10.config.classNames.tooltip
6300
+ }, '00:00');
6301
+ progress.appendChild(tooltip);
6302
+ _this10.elements.display.seekTooltip = tooltip;
6303
+ }
6304
 
6305
+ _this10.elements.progress = progress;
6306
+ progressContainer.appendChild(_this10.elements.progress);
6307
+ container.appendChild(progressContainer);
6308
+ } // Media current time display
6309
 
 
 
 
 
 
 
 
 
 
 
6310
 
6311
+ if (control === 'current-time') {
6312
+ container.appendChild(createTime.call(_this10, 'currentTime', defaultAttributes));
6313
+ } // Media duration display
 
 
 
 
 
 
6314
 
 
 
6315
 
6316
+ if (control === 'duration') {
6317
+ container.appendChild(createTime.call(_this10, 'duration', defaultAttributes));
6318
+ } // Volume controls
6319
 
6320
 
6321
+ if (control === 'mute' || control === 'volume') {
6322
+ var volume = _this10.elements.volume; // Create the volume container if needed
6323
 
6324
+ if (!is$1.element(volume) || !container.contains(volume)) {
6325
+ volume = createElement('div', extend({}, defaultAttributes, {
6326
+ class: "".concat(defaultAttributes.class, " plyr__volume").trim()
6327
+ }));
6328
+ _this10.elements.volume = volume;
6329
+ container.appendChild(volume);
6330
+ } // Toggle mute button
6331
 
 
 
6332
 
6333
+ if (control === 'mute') {
6334
+ volume.appendChild(createButton.call(_this10, 'mute'));
6335
+ } // Volume range control
 
 
 
 
 
6336
 
 
 
 
 
 
 
 
6337
 
6338
+ if (control === 'volume') {
6339
+ // Set the attributes
6340
+ var attributes = {
6341
+ max: 1,
6342
+ step: 0.05,
6343
+ value: _this10.config.volume
6344
+ }; // Create the volume range slider
6345
 
6346
+ volume.appendChild(createRange.call(_this10, 'volume', extend(attributes, {
6347
+ id: "plyr-volume-".concat(data.id)
6348
+ })));
6349
+ }
6350
+ } // Toggle captions button
6351
 
 
6352
 
6353
+ if (control === 'captions') {
6354
+ container.appendChild(createButton.call(_this10, 'captions', defaultAttributes));
6355
+ } // Settings button / menu
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6356
 
 
 
 
6357
 
6358
+ if (control === 'settings' && !is$1.empty(_this10.config.settings)) {
6359
+ var wrapper = createElement('div', extend({}, defaultAttributes, {
6360
+ class: "".concat(defaultAttributes.class, " plyr__menu").trim(),
6361
+ hidden: ''
6362
+ }));
6363
+ wrapper.appendChild(createButton.call(_this10, 'settings', {
6364
+ 'aria-haspopup': true,
6365
+ 'aria-controls': "plyr-settings-".concat(data.id),
6366
+ 'aria-expanded': false
6367
+ }));
6368
+ var popup = createElement('div', {
6369
+ class: 'plyr__menu__container',
6370
+ id: "plyr-settings-".concat(data.id),
6371
+ hidden: ''
6372
+ });
6373
+ var inner = createElement('div');
6374
+ var home = createElement('div', {
6375
+ id: "plyr-settings-".concat(data.id, "-home")
6376
+ }); // Create the menu
6377
 
6378
+ var menu = createElement('div', {
6379
+ role: 'menu'
6380
+ });
6381
+ home.appendChild(menu);
6382
+ inner.appendChild(home);
6383
+ _this10.elements.settings.panels.home = home; // Build the menu items
6384
 
6385
+ _this10.config.settings.forEach(function (type) {
6386
+ // TODO: bundle this with the createMenuItem helper and bindings
6387
+ var menuItem = createElement('button', extend(getAttributesFromSelector(_this10.config.selectors.buttons.settings), {
6388
+ type: 'button',
6389
+ class: "".concat(_this10.config.classNames.control, " ").concat(_this10.config.classNames.control, "--forward"),
6390
+ role: 'menuitem',
6391
+ 'aria-haspopup': true,
6392
+ hidden: ''
6393
+ })); // Bind menu shortcuts for keyboard users
6394
 
6395
+ bindMenuItemShortcuts.call(_this10, menuItem, type); // Show menu on click
 
 
 
 
 
 
 
 
 
 
 
 
6396
 
6397
+ on(menuItem, 'click', function () {
6398
+ showMenuPanel.call(_this10, type, false);
6399
+ });
6400
+ var flex = createElement('span', null, i18n.get(type, _this10.config));
6401
+ var value = createElement('span', {
6402
+ class: _this10.config.classNames.menu.value
6403
+ }); // Speed contains HTML entities
6404
 
6405
+ value.innerHTML = data[type];
6406
+ flex.appendChild(value);
6407
+ menuItem.appendChild(flex);
6408
+ menu.appendChild(menuItem); // Build the panes
6409
 
6410
+ var pane = createElement('div', {
6411
+ id: "plyr-settings-".concat(data.id, "-").concat(type),
6412
+ hidden: ''
6413
+ }); // Back button
6414
 
6415
+ var backButton = createElement('button', {
6416
+ type: 'button',
6417
+ class: "".concat(_this10.config.classNames.control, " ").concat(_this10.config.classNames.control, "--back")
6418
+ }); // Visible label
6419
 
6420
+ backButton.appendChild(createElement('span', {
6421
+ 'aria-hidden': true
6422
+ }, i18n.get(type, _this10.config))); // Screen reader label
6423
 
6424
+ backButton.appendChild(createElement('span', {
6425
+ class: _this10.config.classNames.hidden
6426
+ }, i18n.get('menuBack', _this10.config))); // Go back via keyboard
6427
 
6428
+ on(pane, 'keydown', function (event) {
6429
+ // We only care about <-
6430
+ if (event.which !== 37) {
6431
+ return;
6432
+ } // Prevent seek
 
 
 
 
 
 
 
 
 
 
 
6433
 
 
6434
 
6435
+ event.preventDefault();
6436
+ event.stopPropagation(); // Show the respective menu
 
 
 
 
6437
 
6438
+ showMenuPanel.call(_this10, 'home', true);
6439
+ }, false); // Go back via button click
 
 
6440
 
6441
+ on(backButton, 'click', function () {
6442
+ showMenuPanel.call(_this10, 'home', false);
6443
+ }); // Add to pane
6444
 
6445
+ pane.appendChild(backButton); // Menu
 
6446
 
6447
+ pane.appendChild(createElement('div', {
6448
+ role: 'menu'
6449
+ }));
6450
+ inner.appendChild(pane);
6451
+ _this10.elements.settings.buttons[type] = menuItem;
6452
+ _this10.elements.settings.panels[type] = pane;
6453
+ });
6454
 
6455
+ popup.appendChild(inner);
6456
+ wrapper.appendChild(popup);
6457
+ container.appendChild(wrapper);
6458
+ _this10.elements.settings.popup = popup;
6459
+ _this10.elements.settings.menu = wrapper;
6460
+ } // Picture in picture button
6461
 
 
6462
 
6463
+ if (control === 'pip' && support.pip) {
6464
+ container.appendChild(createButton.call(_this10, 'pip', defaultAttributes));
6465
+ } // Airplay button
6466
 
 
 
 
 
 
 
 
 
6467
 
6468
+ if (control === 'airplay' && support.airplay) {
6469
+ container.appendChild(createButton.call(_this10, 'airplay', defaultAttributes));
6470
+ } // Download button
 
 
 
 
 
6471
 
 
 
 
 
 
6472
 
6473
+ if (control === 'download') {
6474
+ var _attributes = extend({}, defaultAttributes, {
6475
+ element: 'a',
6476
+ href: _this10.download,
6477
+ target: '_blank'
6478
+ });
6479
 
6480
+ var download = _this10.config.urls.download;
 
 
 
 
6481
 
6482
+ if (!is$1.url(download) && _this10.isEmbed) {
6483
+ extend(_attributes, {
6484
+ icon: "logo-".concat(_this10.provider),
6485
+ label: _this10.provider
6486
+ });
6487
+ }
6488
 
6489
+ container.appendChild(createButton.call(_this10, 'download', _attributes));
6490
+ } // Toggle fullscreen button
 
6491
 
 
 
6492
 
6493
+ if (control === 'fullscreen') {
6494
+ container.appendChild(createButton.call(_this10, 'fullscreen', defaultAttributes));
6495
+ }
6496
+ }); // Set available quality levels
 
6497
 
6498
+ if (this.isHTML5) {
6499
+ setQualityMenu.call(this, html5.getQualityOptions.call(this));
6500
+ }
6501
 
6502
+ setSpeedMenu.call(this);
6503
+ return container;
6504
+ },
6505
+ // Insert controls
6506
+ inject: function inject() {
6507
+ var _this11 = this;
6508
 
6509
+ // Sprite
6510
+ if (this.config.loadSprite) {
6511
+ var icon = controls.getIconUrl.call(this); // Only load external sprite using AJAX
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6512
 
6513
+ if (icon.cors) {
6514
+ loadSprite(icon.url, 'sprite-plyr');
6515
+ }
6516
+ } // Create a unique ID
 
 
 
 
 
6517
 
 
 
 
6518
 
6519
+ this.id = Math.floor(Math.random() * 10000); // Null by default
 
 
 
6520
 
6521
+ var container = null;
6522
+ this.elements.controls = null; // Set template properties
6523
 
6524
+ var props = {
6525
+ id: this.id,
6526
+ seektime: this.config.seekTime,
6527
+ title: this.config.title
6528
+ };
6529
+ var update = true; // If function, run it and use output
 
 
 
6530
 
6531
+ if (is$1.function(this.config.controls)) {
6532
+ this.config.controls = this.config.controls.call(this, props);
6533
+ } // Convert falsy controls to empty array (primarily for empty strings)
6534
 
 
 
 
 
6535
 
6536
+ if (!this.config.controls) {
6537
+ this.config.controls = [];
6538
+ }
6539
 
6540
+ if (is$1.element(this.config.controls) || is$1.string(this.config.controls)) {
6541
+ // HTMLElement or Non-empty string passed as the option
6542
+ container = this.config.controls;
6543
+ } else {
6544
+ // Create controls
6545
+ container = controls.create.call(this, {
6546
+ id: this.id,
6547
+ seektime: this.config.seekTime,
6548
+ speed: this.speed,
6549
+ quality: this.quality,
6550
+ captions: captions.getLabel.call(this) // TODO: Looping
6551
+ // loop: 'None',
6552
 
6553
+ });
6554
+ update = false;
6555
+ } // Replace props with their value
6556
 
 
 
 
 
 
 
 
 
 
 
6557
 
6558
+ var replace = function replace(input) {
6559
+ var result = input;
6560
+ Object.entries(props).forEach(function (_ref2) {
6561
+ var _ref3 = _slicedToArray(_ref2, 2),
6562
+ key = _ref3[0],
6563
+ value = _ref3[1];
6564
 
6565
+ result = replaceAll(result, "{".concat(key, "}"), value);
6566
+ });
6567
+ return result;
6568
+ }; // Update markup
6569
 
 
 
 
 
 
 
 
 
 
 
 
 
6570
 
6571
+ if (update) {
6572
+ if (is$1.string(this.config.controls)) {
6573
+ container = replace(container);
6574
+ } else if (is$1.element(container)) {
6575
+ container.innerHTML = replace(container.innerHTML);
6576
  }
6577
+ } // Controls container
6578
 
 
 
 
 
 
 
 
 
 
6579
 
6580
+ var target; // Inject to custom location
 
 
 
 
 
 
 
 
 
6581
 
6582
+ if (is$1.string(this.config.selectors.controls.container)) {
6583
+ target = document.querySelector(this.config.selectors.controls.container);
6584
+ } // Inject into the container by default
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6585
 
 
 
 
 
 
 
 
 
 
 
 
6586
 
6587
+ if (!is$1.element(target)) {
6588
+ target = this.elements.container;
6589
+ } // Inject controls HTML (needs to be before captions, hence "afterbegin")
 
 
6590
 
 
 
 
 
 
 
 
 
 
6591
 
6592
+ var insertMethod = is$1.element(container) ? 'insertAdjacentElement' : 'insertAdjacentHTML';
6593
+ target[insertMethod]('afterbegin', container); // Find the elements if need be
 
 
 
6594
 
6595
+ if (!is$1.element(this.elements.controls)) {
6596
+ controls.findElements.call(this);
6597
+ } // Add pressed property to buttons
 
 
 
 
 
 
 
 
6598
 
 
 
6599
 
6600
+ if (!is$1.empty(this.elements.buttons)) {
6601
+ var addProperty = function addProperty(button) {
6602
+ var className = _this11.config.classNames.controlPressed;
6603
+ Object.defineProperty(button, 'pressed', {
6604
+ enumerable: true,
6605
+ get: function get() {
6606
+ return hasClass(button, className);
6607
+ },
6608
+ set: function set() {
6609
+ var pressed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6610
+ toggleClass(button, className, pressed);
6611
+ }
6612
+ });
6613
+ }; // Toggle classname when pressed property is set
6614
 
 
 
 
6615
 
6616
+ Object.values(this.elements.buttons).filter(Boolean).forEach(function (button) {
6617
+ if (is$1.array(button) || is$1.nodeList(button)) {
6618
+ Array.from(button).filter(Boolean).forEach(addProperty);
6619
+ } else {
6620
+ addProperty(button);
6621
+ }
6622
+ });
6623
+ } // Edge sometimes doesn't finish the paint so force a repaint
6624
 
 
 
 
6625
 
6626
+ if (browser.isEdge) {
6627
+ repaint(target);
6628
+ } // Setup tooltips
 
 
6629
 
 
 
 
6630
 
6631
+ if (this.config.tooltips.controls) {
6632
+ var _this$config = this.config,
6633
+ classNames = _this$config.classNames,
6634
+ selectors = _this$config.selectors;
6635
+ var selector = "".concat(selectors.controls.wrapper, " ").concat(selectors.labels, " .").concat(classNames.hidden);
6636
+ var labels = getElements.call(this, selector);
6637
+ Array.from(labels).forEach(function (label) {
6638
+ toggleClass(label, _this11.config.classNames.hidden, false);
6639
+ toggleClass(label, _this11.config.classNames.tooltip, true);
6640
+ });
6641
  }
6642
  }
6643
+ };
6644
 
6645
+ /**
6646
+ * Parse a string to a URL object
6647
+ * @param {String} input - the URL to be parsed
6648
+ * @param {Boolean} safe - failsafe parsing
6649
+ */
6650
 
6651
+ function parseUrl(input) {
6652
+ var safe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
6653
+ var url = input;
6654
 
6655
+ if (safe) {
6656
+ var parser = document.createElement('a');
6657
+ parser.href = url;
6658
+ url = parser.href;
6659
+ }
6660
 
6661
+ try {
6662
+ return new URL(url);
6663
+ } catch (e) {
6664
+ return null;
6665
+ }
6666
+ } // Convert object to URLSearchParams
6667
 
6668
+ function buildUrlParams(input) {
6669
+ var params = new URLSearchParams();
6670
 
6671
+ if (is$1.object(input)) {
6672
+ Object.entries(input).forEach(function (_ref) {
6673
+ var _ref2 = _slicedToArray(_ref, 2),
6674
+ key = _ref2[0],
6675
+ value = _ref2[1];
6676
 
6677
+ params.set(key, value);
6678
+ });
6679
  }
6680
 
6681
+ return params;
 
6682
  }
6683
 
6684
+ var captions = {
6685
+ // Setup captions
6686
+ setup: function setup() {
6687
+ // Requires UI support
6688
+ if (!this.supported.ui) {
6689
+ return;
6690
+ } // Only Vimeo and HTML5 video supported at this point
6691
 
6692
 
6693
+ if (!this.isVideo || this.isYouTube || this.isHTML5 && !support.textTracks) {
6694
+ // Clear menu and hide
6695
+ if (is$1.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {
6696
+ controls.setCaptionsMenu.call(this);
6697
+ }
6698
 
6699
+ return;
6700
+ } // Inject the container
6701
 
 
 
 
 
 
 
6702
 
6703
+ if (!is$1.element(this.elements.captions)) {
6704
+ this.elements.captions = createElement('div', getAttributesFromSelector(this.config.selectors.captions));
6705
+ insertAfter(this.elements.captions, this.elements.wrapper);
6706
+ } // Fix IE captions if CORS is used
6707
+ // Fetch captions and inject as blobs instead (data URIs not supported!)
6708
 
 
 
 
6709
 
6710
+ if (browser.isIE && window.URL) {
6711
+ var elements = this.media.querySelectorAll('track');
6712
+ Array.from(elements).forEach(function (track) {
6713
+ var src = track.getAttribute('src');
6714
+ var url = parseUrl(src);
6715
 
6716
+ if (url !== null && url.hostname !== window.location.href.hostname && ['http:', 'https:'].includes(url.protocol)) {
6717
+ fetch(src, 'blob').then(function (blob) {
6718
+ track.setAttribute('src', window.URL.createObjectURL(blob));
6719
+ }).catch(function () {
6720
+ removeElement(track);
6721
+ });
6722
+ }
6723
+ });
6724
+ } // Get and set initial data
6725
+ // The "preferred" options are not realized unless / until the wanted language has a match
6726
+ // * languages: Array of user's browser languages.
6727
+ // * language: The language preferred by user settings or config
6728
+ // * active: The state preferred by user settings or config
6729
+ // * toggled: The real captions state
6730
 
 
 
 
6731
 
6732
+ var browserLanguages = navigator.languages || [navigator.language || navigator.userLanguage || 'en'];
6733
+ var languages = dedupe(browserLanguages.map(function (language) {
6734
+ return language.split('-')[0];
6735
+ }));
6736
+ var language = (this.storage.get('language') || this.config.captions.language || 'auto').toLowerCase(); // Use first browser language when language is 'auto'
6737
 
6738
+ if (language === 'auto') {
6739
+ var _languages = _slicedToArray(languages, 1);
 
6740
 
6741
+ language = _languages[0];
6742
+ }
 
6743
 
6744
+ var active = this.storage.get('captions');
 
 
6745
 
6746
+ if (!is$1.boolean(active)) {
6747
+ active = this.config.captions.active;
6748
+ }
6749
 
6750
+ Object.assign(this.captions, {
6751
+ toggled: false,
6752
+ active: active,
6753
+ language: language,
6754
+ languages: languages
6755
+ }); // Watch changes to textTracks and update captions menu
6756
 
6757
+ if (this.isHTML5) {
6758
+ var trackEvents = this.config.captions.update ? 'addtrack removetrack' : 'removetrack';
6759
+ on.call(this, this.media.textTracks, trackEvents, captions.update.bind(this));
6760
+ } // Update available languages in list next tick (the event must not be triggered before the listeners)
6761
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6762
 
6763
+ setTimeout(captions.update.bind(this), 0);
6764
+ },
6765
+ // Update available language options in settings based on tracks
6766
+ update: function update() {
6767
+ var _this = this;
6768
 
6769
+ var tracks = captions.getTracks.call(this, true); // Get the wanted language
 
 
6770
 
6771
+ var _this$captions = this.captions,
6772
+ active = _this$captions.active,
6773
+ language = _this$captions.language,
6774
+ meta = _this$captions.meta,
6775
+ currentTrackNode = _this$captions.currentTrackNode;
6776
+ var languageExists = Boolean(tracks.find(function (track) {
6777
+ return track.language === language;
6778
+ })); // Handle tracks (add event listener and "pseudo"-default)
6779
 
6780
+ if (this.isHTML5 && this.isVideo) {
6781
+ tracks.filter(function (track) {
6782
+ return !meta.get(track);
6783
+ }).forEach(function (track) {
6784
+ _this.debug.log('Track added', track); // Attempt to store if the original dom element was "default"
6785
 
 
 
6786
 
6787
+ meta.set(track, {
6788
+ default: track.mode === 'showing'
6789
+ }); // Turn off native caption rendering to avoid double captions
6790
+ // eslint-disable-next-line no-param-reassign
 
 
 
 
 
 
6791
 
6792
+ track.mode = 'hidden'; // Add event listener for cue changes
 
 
 
 
 
 
6793
 
6794
+ on.call(_this, track, 'cuechange', function () {
6795
+ return captions.updateCues.call(_this);
6796
+ });
6797
+ });
6798
+ } // Update language first time it matches, or if the previous matching track was removed
6799
 
 
 
 
6800
 
6801
+ if (languageExists && this.language !== language || !tracks.includes(currentTrackNode)) {
6802
+ captions.setLanguage.call(this, language);
6803
+ captions.toggle.call(this, active && languageExists);
6804
+ } // Enable or disable captions based on track length
 
 
 
6805
 
6806
 
6807
+ toggleClass(this.elements.container, this.config.classNames.captions.enabled, !is$1.empty(tracks)); // Update available languages in list
 
 
 
 
 
6808
 
6809
+ if ((this.config.controls || []).includes('settings') && this.config.settings.includes('captions')) {
6810
+ controls.setCaptionsMenu.call(this);
6811
  }
6812
+ },
6813
+ // Toggle captions display
6814
+ // Used internally for the toggleCaptions method, with the passive option forced to false
6815
+ toggle: function toggle(input) {
6816
+ var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
 
 
6817
 
6818
+ // If there's no full support
6819
+ if (!this.supported.ui) {
6820
+ return;
6821
  }
 
 
 
 
 
 
6822
 
6823
+ var toggled = this.captions.toggled; // Current state
 
 
 
 
 
 
 
 
 
6824
 
6825
+ var activeClass = this.config.classNames.captions.active; // Get the next state
6826
+ // If the method is called without parameter, toggle based on current value
 
 
 
 
6827
 
6828
+ var active = is$1.nullOrUndefined(input) ? !toggled : input; // Update state and trigger event
 
 
 
 
 
6829
 
6830
+ if (active !== toggled) {
6831
+ // When passive, don't override user preferences
6832
+ if (!passive) {
6833
+ this.captions.active = active;
6834
+ this.storage.set({
6835
+ captions: active
6836
+ });
6837
+ } // Force language if the call isn't passive and there is no matching language to toggle to
6838
 
 
6839
 
6840
+ if (!this.language && active && !passive) {
6841
+ var tracks = captions.getTracks.call(this);
6842
+ var track = captions.findTrack.call(this, [this.captions.language].concat(_toConsumableArray(this.captions.languages)), true); // Override user preferences to avoid switching languages if a matching track is added
 
 
6843
 
6844
+ this.captions.language = track.language; // Set caption, but don't store in localStorage as user preference
6845
 
6846
+ captions.set.call(this, tracks.indexOf(track));
6847
+ return;
6848
+ } // Toggle button if it's enabled
 
 
6849
 
6850
 
6851
+ if (this.elements.buttons.captions) {
6852
+ this.elements.buttons.captions.pressed = active;
6853
+ } // Add class hook
 
 
 
6854
 
 
 
 
 
 
 
6855
 
6856
+ toggleClass(this.elements.container, activeClass, active);
6857
+ this.captions.toggled = active; // Update settings menu
6858
 
6859
+ controls.updateSetting.call(this, 'captions'); // Trigger event (not used internally)
6860
 
6861
+ triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled');
6862
+ }
6863
+ },
6864
+ // Set captions by track index
6865
+ // Used internally for the currentTrack setter with the passive option forced to false
6866
+ set: function set(index) {
6867
+ var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
6868
+ var tracks = captions.getTracks.call(this); // Disable captions if setting to -1
6869
 
6870
+ if (index === -1) {
6871
+ captions.toggle.call(this, false, passive);
6872
+ return;
6873
  }
 
 
6874
 
6875
+ if (!is$1.number(index)) {
6876
+ this.debug.warn('Invalid caption argument', index);
6877
+ return;
6878
+ }
 
 
 
 
6879
 
6880
+ if (!(index in tracks)) {
6881
+ this.debug.warn('Track not found', index);
6882
+ return;
6883
+ }
 
 
 
 
 
6884
 
6885
+ if (this.captions.currentTrack !== index) {
6886
+ this.captions.currentTrack = index;
6887
+ var track = tracks[index];
6888
 
6889
+ var _ref = track || {},
6890
+ language = _ref.language; // Store reference to node for invalidation on remove
6891
 
 
 
 
 
 
 
 
 
6892
 
6893
+ this.captions.currentTrackNode = track; // Update settings menu
6894
 
6895
+ controls.updateSetting.call(this, 'captions'); // When passive, don't override user preferences
 
 
 
6896
 
6897
+ if (!passive) {
6898
+ this.captions.language = language;
6899
+ this.storage.set({
6900
+ language: language
6901
  });
6902
+ } // Handle Vimeo captions
6903
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6904
 
6905
+ if (this.isVimeo) {
6906
+ this.embed.enableTextTrack(language);
6907
+ } // Trigger event
6908
 
 
 
 
6909
 
6910
+ triggerEvent.call(this, this.media, 'languagechange');
6911
+ } // Show captions
 
6912
 
 
 
 
6913
 
6914
+ captions.toggle.call(this, true, passive);
 
 
6915
 
6916
+ if (this.isHTML5 && this.isVideo) {
6917
+ // If we change the active track while a cue is already displayed we need to update it
6918
+ captions.updateCues.call(this);
6919
+ }
6920
+ },
6921
+ // Set captions by language
6922
+ // Used internally for the language setter with the passive option forced to false
6923
+ setLanguage: function setLanguage(input) {
6924
+ var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
6925
 
6926
+ if (!is$1.string(input)) {
6927
+ this.debug.warn('Invalid language argument', input);
6928
+ return;
6929
+ } // Normalize
6930
 
 
 
 
6931
 
6932
+ var language = input.toLowerCase();
6933
+ this.captions.language = language; // Set currentTrack
 
6934
 
6935
+ var tracks = captions.getTracks.call(this);
6936
+ var track = captions.findTrack.call(this, [language]);
6937
+ captions.set.call(this, tracks.indexOf(track), passive);
6938
+ },
6939
+ // Get current valid caption tracks
6940
+ // If update is false it will also ignore tracks without metadata
6941
+ // This is used to "freeze" the language options when captions.update is false
6942
+ getTracks: function getTracks() {
6943
+ var _this2 = this;
6944
 
6945
+ var update = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6946
+ // Handle media or textTracks missing or null
6947
+ var tracks = Array.from((this.media || {}).textTracks || []); // For HTML5, use cache instead of current tracks when it exists (if captions.update is false)
6948
+ // Filter out removed tracks and tracks that aren't captions/subtitles (for example metadata)
6949
 
6950
+ return tracks.filter(function (track) {
6951
+ return !_this2.isHTML5 || update || _this2.captions.meta.has(track);
6952
+ }).filter(function (track) {
6953
+ return ['captions', 'subtitles'].includes(track.kind);
6954
+ });
6955
+ },
6956
+ // Match tracks based on languages and get the first
6957
+ findTrack: function findTrack(languages) {
6958
+ var _this3 = this;
6959
 
6960
+ var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6961
+ var tracks = captions.getTracks.call(this);
 
6962
 
6963
+ var sortIsDefault = function sortIsDefault(track) {
6964
+ return Number((_this3.captions.meta.get(track) || {}).default);
6965
+ };
6966
 
6967
+ var sorted = Array.from(tracks).sort(function (a, b) {
6968
+ return sortIsDefault(b) - sortIsDefault(a);
6969
+ });
6970
+ var track;
6971
+ languages.every(function (language) {
6972
+ track = sorted.find(function (t) {
6973
+ return t.language === language;
6974
+ });
6975
+ return !track; // Break iteration if there is a match
6976
+ }); // If no match is found but is required, get first
6977
 
6978
+ return track || (force ? sorted[0] : undefined);
6979
+ },
6980
+ // Get the current track
6981
+ getCurrentTrack: function getCurrentTrack() {
6982
+ return captions.getTracks.call(this)[this.currentTrack];
6983
+ },
6984
+ // Get UI label for track
6985
+ getLabel: function getLabel(track) {
6986
+ var currentTrack = track;
6987
 
6988
+ if (!is$1.track(currentTrack) && support.textTracks && this.captions.toggled) {
6989
+ currentTrack = captions.getCurrentTrack.call(this);
6990
+ }
6991
 
6992
+ if (is$1.track(currentTrack)) {
6993
+ if (!is$1.empty(currentTrack.label)) {
6994
+ return currentTrack.label;
6995
+ }
6996
 
6997
+ if (!is$1.empty(currentTrack.language)) {
6998
+ return track.language.toUpperCase();
6999
+ }
 
 
7000
 
7001
+ return i18n.get('enabled', this.config);
7002
+ }
7003
 
7004
+ return i18n.get('disabled', this.config);
7005
+ },
7006
+ // Update captions using current track's active cues
7007
+ // Also optional array argument in case there isn't any track (ex: vimeo)
7008
+ updateCues: function updateCues(input) {
7009
+ // Requires UI
7010
+ if (!this.supported.ui) {
7011
+ return;
7012
+ }
7013
 
7014
+ if (!is$1.element(this.elements.captions)) {
7015
+ this.debug.warn('No captions element to render to');
7016
+ return;
7017
+ } // Only accept array or empty input
7018
 
 
7019
 
7020
+ if (!is$1.nullOrUndefined(input) && !Array.isArray(input)) {
7021
+ this.debug.warn('updateCues: Invalid input', input);
7022
+ return;
7023
+ }
7024
 
7025
+ var cues = input; // Get cues from track
 
 
 
 
 
7026
 
7027
+ if (!cues) {
7028
+ var track = captions.getCurrentTrack.call(this);
7029
+ cues = Array.from((track || {}).activeCues || []).map(function (cue) {
7030
+ return cue.getCueAsHTML();
7031
+ }).map(getHTML);
7032
+ } // Set new caption text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7033
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7034
 
7035
+ var content = cues.map(function (cueText) {
7036
+ return cueText.trim();
7037
+ }).join('\n');
7038
+ var changed = content !== this.elements.captions.innerHTML;
 
7039
 
7040
+ if (changed) {
7041
+ // Empty the container and create a new child element
7042
+ emptyElement(this.elements.captions);
7043
+ var caption = createElement('span', getAttributesFromSelector(this.config.selectors.caption));
7044
+ caption.innerHTML = content;
7045
+ this.elements.captions.appendChild(caption); // Trigger event
7046
 
7047
+ triggerEvent.call(this, this.media, 'cuechange');
 
7048
  }
7049
+ }
7050
+ };
7051
 
7052
  // ==========================================================================
7053
+ // Plyr default config
 
7054
  // ==========================================================================
7055
+ var defaults$1 = {
7056
+ // Disable
7057
+ enabled: true,
7058
+ // Custom media title
7059
+ title: '',
7060
+ // Logging to console
7061
+ debug: false,
7062
+ // Auto play (if supported)
7063
+ autoplay: false,
7064
+ // Only allow one media playing at once (vimeo only)
7065
+ autopause: true,
7066
+ // Allow inline playback on iOS (this effects YouTube/Vimeo - HTML5 requires the attribute present)
7067
+ // TODO: Remove iosNative fullscreen option in favour of this (logic needs work)
7068
+ playsinline: true,
7069
+ // Default time to skip when rewind/fast forward
7070
+ seekTime: 10,
7071
+ // Default volume
7072
+ volume: 1,
7073
+ muted: false,
7074
+ // Pass a custom duration
7075
+ duration: null,
7076
+ // Display the media duration on load in the current time position
7077
+ // If you have opted to display both duration and currentTime, this is ignored
7078
+ displayDuration: true,
7079
+ // Invert the current time to be a countdown
7080
+ invertTime: true,
7081
+ // Clicking the currentTime inverts it's value to show time left rather than elapsed
7082
+ toggleInvert: true,
7083
+ // Force an aspect ratio
7084
+ // The format must be `'w:h'` (e.g. `'16:9'`)
7085
+ ratio: null,
7086
+ // Click video container to play/pause
7087
+ clickToPlay: true,
7088
+ // Auto hide the controls
7089
+ hideControls: true,
7090
+ // Reset to start when playback ended
7091
+ resetOnEnd: false,
7092
+ // Disable the standard context menu
7093
+ disableContextMenu: true,
7094
+ // Sprite (for icons)
7095
+ loadSprite: true,
7096
+ iconPrefix: 'plyr',
7097
+ iconUrl: 'https://cdn.plyr.io/3.5.6/plyr.svg',
7098
+ // Blank video (used to prevent errors on source change)
7099
+ blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
7100
+ // Quality default
7101
+ quality: {
7102
+ default: 576,
7103
+ options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240]
7104
+ },
7105
+ // Set loops
7106
+ loop: {
7107
+ active: false // start: null,
7108
+ // end: null,
 
 
 
 
 
 
7109
 
7110
+ },
7111
+ // Speed default and options to display
7112
+ speed: {
7113
+ selected: 1,
7114
+ options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
7115
+ },
7116
+ // Keyboard shortcut settings
7117
+ keyboard: {
7118
+ focused: true,
7119
+ global: false
7120
+ },
7121
+ // Display tooltips
7122
+ tooltips: {
7123
+ controls: false,
7124
+ seek: true
7125
+ },
7126
+ // Captions settings
7127
+ captions: {
7128
+ active: false,
7129
+ language: 'auto',
7130
+ // Listen to new tracks added after Plyr is initialized.
7131
+ // This is needed for streaming captions, but may result in unselectable options
7132
+ update: false
7133
+ },
7134
+ // Fullscreen settings
7135
+ fullscreen: {
7136
+ enabled: true,
7137
+ // Allow fullscreen?
7138
+ fallback: true,
7139
+ // Fallback using full viewport/window
7140
+ iosNative: false // Use the native fullscreen in iOS (disables custom controls)
7141
 
7142
+ },
7143
+ // Local storage
7144
+ storage: {
7145
+ enabled: true,
7146
+ key: 'plyr'
7147
+ },
7148
+ // Default controls
7149
+ controls: ['play-large', // 'restart',
7150
+ // 'rewind',
7151
+ 'play', // 'fast-forward',
7152
+ 'progress', 'current-time', // 'duration',
7153
+ 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', // 'download',
7154
+ 'fullscreen'],
7155
+ settings: ['captions', 'quality', 'speed'],
7156
+ // Localisation
7157
+ i18n: {
7158
+ restart: 'Restart',
7159
+ rewind: 'Rewind {seektime}s',
7160
+ play: 'Play',
7161
+ pause: 'Pause',
7162
+ fastForward: 'Forward {seektime}s',
7163
+ seek: 'Seek',
7164
+ seekLabel: '{currentTime} of {duration}',
7165
+ played: 'Played',
7166
+ buffered: 'Buffered',
7167
+ currentTime: 'Current time',
7168
+ duration: 'Duration',
7169
+ volume: 'Volume',
7170
+ mute: 'Mute',
7171
+ unmute: 'Unmute',
7172
+ enableCaptions: 'Enable captions',
7173
+ disableCaptions: 'Disable captions',
7174
+ download: 'Download',
7175
+ enterFullscreen: 'Enter fullscreen',
7176
+ exitFullscreen: 'Exit fullscreen',
7177
+ frameTitle: 'Player for {title}',
7178
+ captions: 'Captions',
7179
+ settings: 'Settings',
7180
+ menuBack: 'Go back to previous menu',
7181
+ speed: 'Speed',
7182
+ normal: 'Normal',
7183
+ quality: 'Quality',
7184
+ loop: 'Loop',
7185
+ start: 'Start',
7186
+ end: 'End',
7187
+ all: 'All',
7188
+ reset: 'Reset',
7189
+ disabled: 'Disabled',
7190
+ enabled: 'Enabled',
7191
+ advertisement: 'Ad',
7192
+ qualityBadge: {
7193
+ 2160: '4K',
7194
+ 1440: 'HD',
7195
+ 1080: 'HD',
7196
+ 720: 'HD',
7197
+ 576: 'SD',
7198
+ 480: 'SD'
7199
  }
7200
+ },
7201
+ // URLs
7202
+ urls: {
7203
+ download: null,
7204
+ vimeo: {
7205
+ sdk: 'https://player.vimeo.com/api/player.js',
7206
+ iframe: 'https://player.vimeo.com/video/{0}?{1}',
7207
+ api: 'https://vimeo.com/api/v2/video/{0}.json'
7208
+ },
7209
+ youtube: {
7210
+ sdk: 'https://www.youtube.com/iframe_api',
7211
+ api: 'https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}'
7212
+ },
7213
+ googleIMA: {
7214
+ sdk: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7215
  }
7216
+ },
7217
+ // Custom control listeners
7218
+ listeners: {
7219
+ seek: null,
7220
+ play: null,
7221
+ pause: null,
7222
+ restart: null,
7223
+ rewind: null,
7224
+ fastForward: null,
7225
+ mute: null,
7226
+ volume: null,
7227
+ captions: null,
7228
+ download: null,
7229
+ fullscreen: null,
7230
+ pip: null,
7231
+ airplay: null,
7232
+ speed: null,
7233
+ quality: null,
7234
+ loop: null,
7235
+ language: null
7236
+ },
7237
+ // Events to watch and bubble
7238
+ events: [// Events to watch on HTML5 media elements and bubble
7239
+ // https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events
7240
+ 'ended', 'progress', 'stalled', 'playing', 'waiting', 'canplay', 'canplaythrough', 'loadstart', 'loadeddata', 'loadedmetadata', 'timeupdate', 'volumechange', 'play', 'pause', 'error', 'seeking', 'seeked', 'emptied', 'ratechange', 'cuechange', // Custom events
7241
+ 'download', 'enterfullscreen', 'exitfullscreen', 'captionsenabled', 'captionsdisabled', 'languagechange', 'controlshidden', 'controlsshown', 'ready', // YouTube
7242
+ 'statechange', // Quality
7243
+ 'qualitychange', // Ads
7244
+ 'adsloaded', 'adscontentpause', 'adscontentresume', 'adstarted', 'adsmidpoint', 'adscomplete', 'adsallcomplete', 'adsimpression', 'adsclick'],
7245
+ // Selectors
7246
+ // Change these to match your template if using custom HTML
7247
+ selectors: {
7248
+ editable: 'input, textarea, select, [contenteditable]',
7249
+ container: '.plyr',
7250
+ controls: {
7251
+ container: null,
7252
+ wrapper: '.plyr__controls'
7253
+ },
7254
+ labels: '[data-plyr]',
7255
+ buttons: {
7256
+ play: '[data-plyr="play"]',
7257
+ pause: '[data-plyr="pause"]',
7258
+ restart: '[data-plyr="restart"]',
7259
+ rewind: '[data-plyr="rewind"]',
7260
+ fastForward: '[data-plyr="fast-forward"]',
7261
+ mute: '[data-plyr="mute"]',
7262
+ captions: '[data-plyr="captions"]',
7263
+ download: '[data-plyr="download"]',
7264
+ fullscreen: '[data-plyr="fullscreen"]',
7265
+ pip: '[data-plyr="pip"]',
7266
+ airplay: '[data-plyr="airplay"]',
7267
+ settings: '[data-plyr="settings"]',
7268
+ loop: '[data-plyr="loop"]'
7269
+ },
7270
+ inputs: {
7271
+ seek: '[data-plyr="seek"]',
7272
+ volume: '[data-plyr="volume"]',
7273
+ speed: '[data-plyr="speed"]',
7274
+ language: '[data-plyr="language"]',
7275
+ quality: '[data-plyr="quality"]'
7276
+ },
7277
+ display: {
7278
+ currentTime: '.plyr__time--current',
7279
+ duration: '.plyr__time--duration',
7280
+ buffer: '.plyr__progress__buffer',
7281
+ loop: '.plyr__progress__loop',
7282
+ // Used later
7283
+ volume: '.plyr__volume--display'
7284
+ },
7285
+ progress: '.plyr__progress',
7286
+ captions: '.plyr__captions',
7287
+ caption: '.plyr__caption'
7288
+ },
7289
+ // Class hooks added to the player in different states
7290
+ classNames: {
7291
+ type: 'plyr--{0}',
7292
+ provider: 'plyr--{0}',
7293
+ video: 'plyr__video-wrapper',
7294
+ embed: 'plyr__video-embed',
7295
+ videoFixedRatio: 'plyr__video-wrapper--fixed-ratio',
7296
+ embedContainer: 'plyr__video-embed__container',
7297
+ poster: 'plyr__poster',
7298
+ posterEnabled: 'plyr__poster-enabled',
7299
+ ads: 'plyr__ads',
7300
+ control: 'plyr__control',
7301
+ controlPressed: 'plyr__control--pressed',
7302
+ playing: 'plyr--playing',
7303
+ paused: 'plyr--paused',
7304
+ stopped: 'plyr--stopped',
7305
+ loading: 'plyr--loading',
7306
+ hover: 'plyr--hover',
7307
+ tooltip: 'plyr__tooltip',
7308
+ cues: 'plyr__cues',
7309
+ hidden: 'plyr__sr-only',
7310
+ hideControls: 'plyr--hide-controls',
7311
+ isIos: 'plyr--is-ios',
7312
+ isTouch: 'plyr--is-touch',
7313
+ uiSupported: 'plyr--full-ui',
7314
+ noTransition: 'plyr--no-transition',
7315
+ display: {
7316
+ time: 'plyr__time'
7317
+ },
7318
+ menu: {
7319
+ value: 'plyr__menu__value',
7320
+ badge: 'plyr__badge',
7321
+ open: 'plyr--menu-open'
7322
+ },
7323
+ captions: {
7324
+ enabled: 'plyr--captions-enabled',
7325
+ active: 'plyr--captions-active'
7326
+ },
7327
+ fullscreen: {
7328
+ enabled: 'plyr--fullscreen-enabled',
7329
+ fallback: 'plyr--fullscreen-fallback'
7330
+ },
7331
+ pip: {
7332
+ supported: 'plyr--pip-supported',
7333
+ active: 'plyr--pip-active'
7334
+ },
7335
+ airplay: {
7336
+ supported: 'plyr--airplay-supported',
7337
+ active: 'plyr--airplay-active'
7338
+ },
7339
+ tabFocus: 'plyr__tab-focus',
7340
+ previewThumbnails: {
7341
+ // Tooltip thumbs
7342
+ thumbContainer: 'plyr__preview-thumb',
7343
+ thumbContainerShown: 'plyr__preview-thumb--is-shown',
7344
+ imageContainer: 'plyr__preview-thumb__image-container',
7345
+ timeContainer: 'plyr__preview-thumb__time-container',
7346
+ // Scrubbing
7347
+ scrubbingContainer: 'plyr__preview-scrubbing',
7348
+ scrubbingContainerShown: 'plyr__preview-scrubbing--is-shown'
7349
+ }
7350
+ },
7351
+ // Embed attributes
7352
+ attributes: {
7353
+ embed: {
7354
+ provider: 'data-plyr-provider',
7355
+ id: 'data-plyr-embed-id'
7356
+ }
7357
+ },
7358
+ // Advertisements plugin
7359
+ // Register for an account here: http://vi.ai/publisher-video-monetization/?aid=plyrio
7360
+ ads: {
7361
+ enabled: false,
7362
+ publisherId: '',
7363
+ tagUrl: ''
7364
+ },
7365
+ // Preview Thumbnails plugin
7366
+ previewThumbnails: {
7367
+ enabled: false,
7368
+ src: ''
7369
+ },
7370
+ // Vimeo plugin
7371
+ vimeo: {
7372
+ byline: false,
7373
+ portrait: false,
7374
+ title: false,
7375
+ speed: true,
7376
+ transparent: false
7377
+ },
7378
+ // YouTube plugin
7379
+ youtube: {
7380
+ noCookie: false,
7381
+ // Whether to use an alternative version of YouTube without cookies
7382
+ rel: 0,
7383
+ // No related vids
7384
+ showinfo: 0,
7385
+ // Hide info
7386
+ iv_load_policy: 3,
7387
+ // Hide annotations
7388
+ modestbranding: 1 // Hide logos as much as possible (they still show one in the corner when paused)
7389
 
7390
+ }
7391
+ };
 
 
 
 
 
 
 
 
7392
 
7393
+ // ==========================================================================
7394
+ // Plyr states
7395
+ // ==========================================================================
7396
+ var pip = {
7397
+ active: 'picture-in-picture',
7398
+ inactive: 'inline'
7399
+ };
7400
 
7401
+ // ==========================================================================
7402
+ // Plyr supported types and providers
7403
+ // ==========================================================================
7404
+ var providers = {
7405
+ html5: 'html5',
7406
+ youtube: 'youtube',
7407
+ vimeo: 'vimeo'
7408
+ };
7409
+ var types = {
7410
+ audio: 'audio',
7411
+ video: 'video'
7412
+ };
7413
+ /**
7414
+ * Get provider by URL
7415
+ * @param {String} url
7416
+ */
7417
 
7418
+ function getProviderByUrl(url) {
7419
+ // YouTube
7420
+ if (/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(url)) {
7421
+ return providers.youtube;
7422
+ } // Vimeo
 
7423
 
 
 
7424
 
7425
+ if (/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(url)) {
7426
+ return providers.vimeo;
 
 
 
 
 
 
 
 
7427
  }
 
 
 
 
7428
 
7429
+ return null;
 
 
7430
  }
7431
 
7432
+ // ==========================================================================
7433
+ // Console wrapper
7434
+ // ==========================================================================
7435
+ var noop = function noop() {};
 
 
 
 
 
7436
 
7437
+ var Console =
7438
+ /*#__PURE__*/
7439
+ function () {
7440
+ function Console() {
7441
+ var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
 
7442
 
7443
+ _classCallCheck(this, Console);
 
 
7444
 
7445
+ this.enabled = window.console && enabled;
7446
 
7447
+ if (this.enabled) {
7448
+ this.log('Debugging enabled');
7449
+ }
7450
  }
7451
 
7452
+ _createClass(Console, [{
7453
+ key: "log",
7454
+ get: function get() {
7455
+ // eslint-disable-next-line no-console
7456
+ return this.enabled ? Function.prototype.bind.call(console.log, console) : noop;
 
 
 
 
7457
  }
7458
+ }, {
7459
+ key: "warn",
7460
+ get: function get() {
7461
+ // eslint-disable-next-line no-console
7462
+ return this.enabled ? Function.prototype.bind.call(console.warn, console) : noop;
7463
+ }
7464
+ }, {
7465
+ key: "error",
7466
+ get: function get() {
7467
+ // eslint-disable-next-line no-console
7468
+ return this.enabled ? Function.prototype.bind.call(console.error, console) : noop;
7469
+ }
7470
+ }]);
7471
 
7472
+ return Console;
7473
+ }();
7474
 
7475
+ function onChange() {
7476
+ if (!this.enabled) {
7477
+ return;
7478
+ } // Update toggle button
7479
 
 
 
 
7480
 
7481
+ var button = this.player.elements.buttons.fullscreen;
 
 
 
 
 
 
7482
 
7483
+ if (is$1.element(button)) {
7484
+ button.pressed = this.active;
7485
+ } // Trigger an event
 
 
7486
 
7487
 
7488
+ triggerEvent.call(this.player, this.target, this.active ? 'enterfullscreen' : 'exitfullscreen', true); // Trap focus in container
 
 
7489
 
7490
+ if (!browser.isIos) {
7491
+ trapFocus.call(this.player, this.target, this.active);
7492
+ }
7493
+ }
 
7494
 
7495
+ function toggleFallback() {
7496
+ var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
 
7497
 
7498
+ // Store or restore scroll position
7499
+ if (toggle) {
7500
+ this.scrollPosition = {
7501
+ x: window.scrollX || 0,
7502
+ y: window.scrollY || 0
7503
+ };
7504
+ } else {
7505
+ window.scrollTo(this.scrollPosition.x, this.scrollPosition.y);
7506
+ } // Toggle scroll
7507
 
 
 
 
7508
 
7509
+ document.body.style.overflow = toggle ? 'hidden' : ''; // Toggle class hook
7510
 
7511
+ toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle); // Force full viewport on iPhone X+
 
 
7512
 
7513
+ if (browser.isIos) {
7514
+ var viewport = document.head.querySelector('meta[name="viewport"]');
7515
+ var property = 'viewport-fit=cover'; // Inject the viewport meta if required
7516
 
7517
+ if (!viewport) {
7518
+ viewport = document.createElement('meta');
7519
+ viewport.setAttribute('name', 'viewport');
7520
+ } // Check if the property already exists
7521
 
 
 
 
 
7522
 
7523
+ var hasProperty = is$1.string(viewport.content) && viewport.content.includes(property);
 
7524
 
7525
+ if (toggle) {
7526
+ this.cleanupViewport = !hasProperty;
 
 
7527
 
7528
+ if (!hasProperty) {
7529
+ viewport.content += ",".concat(property);
7530
+ }
7531
+ } else if (this.cleanupViewport) {
7532
+ viewport.content = viewport.content.split(',').filter(function (part) {
7533
+ return part.trim() !== property;
7534
+ }).join(',');
7535
+ }
7536
+ } // Toggle button and fire events
7537
 
 
 
 
 
 
7538
 
7539
+ onChange.call(this);
7540
+ }
 
7541
 
7542
+ var Fullscreen =
7543
+ /*#__PURE__*/
7544
+ function () {
7545
+ function Fullscreen(player) {
7546
+ var _this = this;
7547
 
7548
+ _classCallCheck(this, Fullscreen);
 
 
 
7549
 
7550
+ // Keep reference to parent
7551
+ this.player = player; // Get prefix
7552
 
7553
+ this.prefix = Fullscreen.prefix;
7554
+ this.property = Fullscreen.property; // Scroll position
 
 
 
7555
 
7556
+ this.scrollPosition = {
7557
+ x: 0,
7558
+ y: 0
7559
+ }; // Force the use of 'full window/browser' rather than fullscreen
7560
 
7561
+ this.forceFallback = player.config.fullscreen.fallback === 'force'; // Register event listeners
7562
+ // Handle event (incase user presses escape etc)
 
7563
 
7564
+ on.call(this.player, document, this.prefix === 'ms' ? 'MSFullscreenChange' : "".concat(this.prefix, "fullscreenchange"), function () {
7565
+ // TODO: Filter for target??
7566
+ onChange.call(_this);
7567
+ }); // Fullscreen toggle on double click
 
 
 
 
7568
 
7569
+ on.call(this.player, this.player.elements.container, 'dblclick', function (event) {
7570
+ // Ignore double click in controls
7571
+ if (is$1.element(_this.player.elements.controls) && _this.player.elements.controls.contains(event.target)) {
7572
+ return;
7573
+ }
 
 
7574
 
7575
+ _this.toggle();
7576
+ }); // Update the UI
7577
 
7578
+ this.update();
7579
+ } // Determine if native supported
7580
 
 
7581
 
7582
+ _createClass(Fullscreen, [{
7583
+ key: "update",
7584
+ // Update UI
7585
+ value: function update() {
7586
+ if (this.enabled) {
7587
+ var mode;
7588
 
7589
+ if (this.forceFallback) {
7590
+ mode = 'Fallback (forced)';
7591
+ } else if (Fullscreen.native) {
7592
+ mode = 'Native';
 
7593
  } else {
7594
+ mode = 'Fallback';
7595
  }
7596
 
7597
+ this.player.debug.log("".concat(mode, " fullscreen enabled"));
7598
+ } else {
7599
+ this.player.debug.log('Fullscreen not supported and fallback disabled');
7600
+ } // Add styling hook to show button
 
 
 
 
 
 
 
7601
 
 
 
 
 
 
 
7602
 
7603
+ toggleClass(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.enabled);
7604
+ } // Make an element fullscreen
 
 
7605
 
7606
+ }, {
7607
+ key: "enter",
7608
+ value: function enter() {
7609
+ if (!this.enabled) {
7610
+ return;
7611
+ } // iOS native fullscreen doesn't need the request step
7612
 
 
 
 
7613
 
7614
+ if (browser.isIos && this.player.config.fullscreen.iosNative) {
7615
+ this.target.webkitEnterFullscreen();
7616
+ } else if (!Fullscreen.native || this.forceFallback) {
7617
+ toggleFallback.call(this, true);
7618
+ } else if (!this.prefix) {
7619
+ this.target.requestFullscreen();
7620
+ } else if (!is$1.empty(this.prefix)) {
7621
+ this.target["".concat(this.prefix, "Request").concat(this.property)]();
7622
+ }
7623
+ } // Bail from fullscreen
7624
 
7625
+ }, {
7626
+ key: "exit",
7627
+ value: function exit() {
7628
+ if (!this.enabled) {
7629
+ return;
7630
+ } // iOS native fullscreen
7631
 
 
 
 
 
 
 
7632
 
7633
+ if (browser.isIos && this.player.config.fullscreen.iosNative) {
7634
+ this.target.webkitExitFullscreen();
7635
+ this.player.play();
7636
+ } else if (!Fullscreen.native || this.forceFallback) {
7637
+ toggleFallback.call(this, false);
7638
+ } else if (!this.prefix) {
7639
+ (document.cancelFullScreen || document.exitFullscreen).call(document);
7640
+ } else if (!is$1.empty(this.prefix)) {
7641
+ var action = this.prefix === 'moz' ? 'Cancel' : 'Exit';
7642
+ document["".concat(this.prefix).concat(action).concat(this.property)]();
7643
+ }
7644
+ } // Toggle state
7645
 
7646
+ }, {
7647
+ key: "toggle",
7648
+ value: function toggle() {
7649
+ if (!this.active) {
7650
+ this.enter();
7651
+ } else {
7652
+ this.exit();
7653
+ }
7654
  }
7655
+ }, {
7656
+ key: "usingNative",
7657
+ // If we're actually using native
7658
+ get: function get() {
7659
+ return Fullscreen.native && !this.forceFallback;
7660
+ } // Get the prefix for handlers
7661
 
7662
+ }, {
7663
+ key: "enabled",
7664
+ // Determine if fullscreen is enabled
7665
+ get: function get() {
7666
+ return (Fullscreen.native || this.player.config.fullscreen.fallback) && this.player.config.fullscreen.enabled && this.player.supported.ui && this.player.isVideo;
7667
+ } // Get active state
7668
 
7669
+ }, {
7670
+ key: "active",
7671
+ get: function get() {
7672
+ if (!this.enabled) {
7673
+ return false;
7674
+ } // Fallback using classname
7675
 
 
 
 
7676
 
7677
+ if (!Fullscreen.native || this.forceFallback) {
7678
+ return hasClass(this.target, this.player.config.classNames.fullscreen.fallback);
7679
+ }
7680
 
7681
+ var element = !this.prefix ? document.fullscreenElement : document["".concat(this.prefix).concat(this.property, "Element")];
7682
+ return element === this.target;
7683
+ } // Get target element
7684
 
7685
+ }, {
7686
+ key: "target",
7687
+ get: function get() {
7688
+ return browser.isIos && this.player.config.fullscreen.iosNative ? this.player.media : this.player.elements.container;
7689
+ }
7690
+ }], [{
7691
+ key: "native",
7692
+ get: function get() {
7693
+ return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);
7694
+ }
7695
+ }, {
7696
+ key: "prefix",
7697
+ get: function get() {
7698
+ // No prefix
7699
+ if (is$1.function(document.exitFullscreen)) {
7700
+ return '';
7701
+ } // Check for fullscreen support by vendor prefix
7702
 
 
 
 
7703
 
7704
+ var value = '';
7705
+ var prefixes = ['webkit', 'moz', 'ms'];
7706
+ prefixes.some(function (pre) {
7707
+ if (is$1.function(document["".concat(pre, "ExitFullscreen")]) || is$1.function(document["".concat(pre, "CancelFullScreen")])) {
7708
+ value = pre;
7709
+ return true;
7710
+ }
7711
 
7712
+ return false;
7713
+ });
7714
+ return value;
7715
+ }
7716
+ }, {
7717
+ key: "property",
7718
+ get: function get() {
7719
+ return this.prefix === 'moz' ? 'FullScreen' : 'Fullscreen';
7720
+ }
7721
+ }]);
7722
 
7723
+ return Fullscreen;
7724
+ }();
 
7725
 
7726
+ // ==========================================================================
7727
+ // Load image avoiding xhr/fetch CORS issues
7728
+ // Server status can't be obtained this way unfortunately, so this uses "naturalWidth" to determine if the image has loaded
7729
+ // By default it checks if it is at least 1px, but you can add a second argument to change this
7730
+ // ==========================================================================
7731
+ function loadImage(src) {
7732
+ var minWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
7733
+ return new Promise(function (resolve, reject) {
7734
+ var image = new Image();
7735
 
7736
+ var handler = function handler() {
7737
+ delete image.onload;
7738
+ delete image.onerror;
7739
+ (image.naturalWidth >= minWidth ? resolve : reject)(image);
7740
+ };
7741
 
7742
+ Object.assign(image, {
7743
+ onload: handler,
7744
+ onerror: handler,
7745
+ src: src
7746
+ });
7747
+ });
7748
+ }
7749
 
7750
+ // ==========================================================================
7751
+ var ui = {
7752
+ addStyleHook: function addStyleHook() {
7753
+ toggleClass(this.elements.container, this.config.selectors.container.replace('.', ''), true);
7754
+ toggleClass(this.elements.container, this.config.classNames.uiSupported, this.supported.ui);
7755
+ },
7756
+ // Toggle native HTML5 media controls
7757
+ toggleNativeControls: function toggleNativeControls() {
7758
+ var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7759
 
7760
+ if (toggle && this.isHTML5) {
7761
+ this.media.setAttribute('controls', '');
7762
+ } else {
7763
+ this.media.removeAttribute('controls');
 
 
 
 
7764
  }
7765
+ },
7766
+ // Setup the UI
7767
+ build: function build() {
7768
+ var _this = this;
7769
 
7770
+ // Re-attach media element listeners
7771
+ // TODO: Use event bubbling?
7772
+ this.listeners.media(); // Don't setup interface if no support
7773
 
7774
+ if (!this.supported.ui) {
7775
+ this.debug.warn("Basic support only for ".concat(this.provider, " ").concat(this.type)); // Restore native controls
 
7776
 
7777
+ ui.toggleNativeControls.call(this, true); // Bail
 
 
7778
 
7779
+ return;
7780
+ } // Inject custom controls if not present
7781
 
 
 
 
7782
 
7783
+ if (!is$1.element(this.elements.controls)) {
7784
+ // Inject custom controls
7785
+ controls.inject.call(this); // Re-attach control listeners
 
7786
 
7787
+ this.listeners.controls();
7788
+ } // Remove native controls
 
 
 
 
 
7789
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7790
 
7791
+ ui.toggleNativeControls.call(this); // Setup captions for HTML5
7792
 
7793
+ if (this.isHTML5) {
7794
+ captions.setup.call(this);
7795
+ } // Reset volume
 
7796
 
7797
 
7798
+ this.volume = null; // Reset mute state
 
 
7799
 
7800
+ this.muted = null; // Reset loop state
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7801
 
7802
+ this.loop = null; // Reset quality setting
 
 
7803
 
7804
+ this.quality = null; // Reset speed
7805
 
7806
+ this.speed = null; // Reset volume display
 
 
7807
 
7808
+ controls.updateVolume.call(this); // Reset time display
7809
 
7810
+ controls.timeUpdate.call(this); // Update the UI
 
 
7811
 
7812
+ ui.checkPlaying.call(this); // Check for picture-in-picture support
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7813
 
7814
+ toggleClass(this.elements.container, this.config.classNames.pip.supported, support.pip && this.isHTML5 && this.isVideo); // Check for airplay support
 
 
 
7815
 
7816
+ toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5); // Add iOS class
 
 
 
 
 
 
7817
 
7818
+ toggleClass(this.elements.container, this.config.classNames.isIos, browser.isIos); // Add touch class
 
 
7819
 
7820
+ toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch); // Ready for API calls
 
 
7821
 
7822
+ this.ready = true; // Ready event at end of execution stack
 
 
 
 
 
 
7823
 
7824
+ setTimeout(function () {
7825
+ triggerEvent.call(_this, _this.media, 'ready');
7826
+ }, 0); // Set the title
7827
 
7828
+ ui.setTitle.call(this); // Assure the poster image is set, if the property was added before the element was created
7829
 
7830
+ if (this.poster) {
7831
+ ui.setPoster.call(this, this.poster, false).catch(function () {});
7832
+ } // Manually set the duration if user has overridden it.
7833
+ // The event listeners for it doesn't get called if preload is disabled (#701)
7834
 
7835
 
7836
+ if (this.config.duration) {
7837
+ controls.durationUpdate.call(this);
7838
+ }
7839
+ },
7840
+ // Setup aria attribute for play and iframe title
7841
+ setTitle: function setTitle() {
7842
+ // Find the current text
7843
+ var label = i18n.get('play', this.config); // If there's a media title set, use that for the label
7844
 
7845
+ if (is$1.string(this.config.title) && !is$1.empty(this.config.title)) {
7846
+ label += ", ".concat(this.config.title);
7847
+ } // If there's a play button, set label
7848
 
 
 
 
 
 
 
7849
 
7850
+ Array.from(this.elements.buttons.play || []).forEach(function (button) {
7851
+ button.setAttribute('aria-label', label);
7852
+ }); // Set iframe title
7853
+ // https://github.com/sampotts/plyr/issues/124
7854
 
7855
+ if (this.isEmbed) {
7856
+ var iframe = getElement.call(this, 'iframe');
 
 
7857
 
7858
+ if (!is$1.element(iframe)) {
7859
+ return;
7860
+ } // Default to media type
7861
 
 
 
 
 
7862
 
7863
+ var title = !is$1.empty(this.config.title) ? this.config.title : 'video';
7864
+ var format = i18n.get('frameTitle', this.config);
7865
+ iframe.setAttribute('title', format.replace('{title}', title));
7866
+ }
7867
+ },
7868
+ // Toggle poster
7869
+ togglePoster: function togglePoster(enable) {
7870
+ toggleClass(this.elements.container, this.config.classNames.posterEnabled, enable);
7871
+ },
7872
+ // Set the poster image (async)
7873
+ // Used internally for the poster setter, with the passive option forced to false
7874
+ setPoster: function setPoster(poster) {
7875
+ var _this2 = this;
7876
 
7877
+ var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
 
 
 
 
 
 
7878
 
7879
+ // Don't override if call is passive
7880
+ if (passive && this.poster) {
7881
+ return Promise.reject(new Error('Poster already set'));
7882
+ } // Set property synchronously to respect the call order
 
7883
 
 
 
 
 
7884
 
7885
+ this.media.setAttribute('poster', poster); // Wait until ui is ready
 
 
7886
 
7887
+ return ready.call(this) // Load image
7888
+ .then(function () {
7889
+ return loadImage(poster);
7890
+ }).catch(function (err) {
7891
+ // Hide poster on error unless it's been set by another call
7892
+ if (poster === _this2.poster) {
7893
+ ui.togglePoster.call(_this2, false);
7894
+ } // Rethrow
7895
 
 
 
7896
 
7897
+ throw err;
7898
+ }).then(function () {
7899
+ // Prevent race conditions
7900
+ if (poster !== _this2.poster) {
7901
+ throw new Error('setPoster cancelled by later call to setPoster');
7902
  }
7903
+ }).then(function () {
7904
+ Object.assign(_this2.elements.poster.style, {
7905
+ backgroundImage: "url('".concat(poster, "')"),
7906
+ // Reset backgroundSize as well (since it can be set to "cover" for padded thumbnails for youtube)
7907
+ backgroundSize: ''
7908
+ });
7909
+ ui.togglePoster.call(_this2, true);
7910
+ return poster;
7911
  });
7912
  },
7913
+ // Check playing state
7914
+ checkPlaying: function checkPlaying(event) {
7915
+ var _this3 = this;
 
 
 
 
 
 
 
 
7916
 
7917
+ // Class hooks
7918
+ toggleClass(this.elements.container, this.config.classNames.playing, this.playing);
7919
+ toggleClass(this.elements.container, this.config.classNames.paused, this.paused);
7920
+ toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped); // Set state
7921
 
7922
+ Array.from(this.elements.buttons.play || []).forEach(function (target) {
7923
+ Object.assign(target, {
7924
+ pressed: _this3.playing
7925
+ });
7926
+ }); // Only update controls on non timeupdate events
7927
 
7928
+ if (is$1.event(event) && event.type === 'timeupdate') {
7929
+ return;
7930
+ } // Toggle controls
7931
 
 
 
 
 
 
 
 
7932
 
7933
+ ui.toggleControls.call(this);
7934
+ },
7935
+ // Check if media is loading
7936
+ checkLoading: function checkLoading(event) {
7937
+ var _this4 = this;
7938
 
7939
+ this.loading = ['stalled', 'waiting'].includes(event.type); // Clear timer
 
 
7940
 
7941
+ clearTimeout(this.timers.loading); // Timer to prevent flicker when seeking
 
 
7942
 
7943
+ this.timers.loading = setTimeout(function () {
7944
+ // Update progress bar loading class state
7945
+ toggleClass(_this4.elements.container, _this4.config.classNames.loading, _this4.loading); // Update controls visibility
7946
 
7947
+ ui.toggleControls.call(_this4);
7948
+ }, this.loading ? 250 : 0);
7949
+ },
7950
+ // Toggle controls based on state and `force` argument
7951
+ toggleControls: function toggleControls(force) {
7952
+ var controlsElement = this.elements.controls;
7953
 
7954
+ if (controlsElement && this.config.hideControls) {
7955
+ // Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)
7956
+ var recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now(); // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide
7957
 
7958
+ this.toggleControls(Boolean(force || this.loading || this.paused || controlsElement.pressed || controlsElement.hover || recentTouchSeek));
7959
+ }
7960
+ }
7961
+ };
7962
 
7963
+ var Listeners =
7964
+ /*#__PURE__*/
7965
+ function () {
7966
+ function Listeners(player) {
7967
+ _classCallCheck(this, Listeners);
7968
 
7969
+ this.player = player;
7970
+ this.lastKey = null;
7971
+ this.focusTimer = null;
7972
+ this.lastKeyDown = null;
7973
+ this.handleKey = this.handleKey.bind(this);
7974
+ this.toggleMenu = this.toggleMenu.bind(this);
7975
+ this.setTabFocus = this.setTabFocus.bind(this);
7976
+ this.firstTouch = this.firstTouch.bind(this);
7977
+ } // Handle key presses
7978
 
7979
 
7980
+ _createClass(Listeners, [{
7981
+ key: "handleKey",
7982
+ value: function handleKey(event) {
7983
+ var player = this.player;
7984
+ var elements = player.elements;
7985
+ var code = event.keyCode ? event.keyCode : event.which;
7986
+ var pressed = event.type === 'keydown';
7987
+ var repeat = pressed && code === this.lastKey; // Bail if a modifier key is set
 
 
 
 
7988
 
7989
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {
7990
+ return;
7991
+ } // If the event is bubbled from the media element
7992
+ // Firefox doesn't get the keycode for whatever reason
7993
 
 
 
 
7994
 
7995
+ if (!is$1.number(code)) {
7996
+ return;
7997
+ } // Seek by the number keys
7998
 
 
7999
 
8000
+ var seekByKey = function seekByKey() {
8001
+ // Divide the max duration into 10th's and times by the number value
8002
+ player.currentTime = player.duration / 10 * (code - 48);
8003
+ }; // Handle the key on keydown
8004
+ // Reset on keyup
8005
 
 
8006
 
8007
+ if (pressed) {
8008
+ // Check focused element
8009
+ // and if the focused element is not editable (e.g. text input)
8010
+ // and any that accept key input http://webaim.org/techniques/keyboard/
8011
+ var focused = document.activeElement;
8012
 
8013
+ if (is$1.element(focused)) {
8014
+ var editable = player.config.selectors.editable;
8015
+ var seek = elements.inputs.seek;
 
8016
 
8017
+ if (focused !== seek && matches$1(focused, editable)) {
8018
+ return;
8019
+ }
 
8020
 
8021
+ if (event.which === 32 && matches$1(focused, 'button, [role^="menuitem"]')) {
8022
+ return;
8023
+ }
8024
+ } // Which keycodes should we prevent default
8025
 
 
8026
 
8027
+ var preventDefault = [32, 37, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 56, 57, 67, 70, 73, 75, 76, 77, 79]; // If the code is found prevent default (e.g. prevent scrolling for arrows)
 
 
8028
 
8029
+ if (preventDefault.includes(code)) {
8030
+ event.preventDefault();
8031
+ event.stopPropagation();
8032
+ }
8033
 
8034
+ switch (code) {
8035
+ case 48:
8036
+ case 49:
8037
+ case 50:
8038
+ case 51:
8039
+ case 52:
8040
+ case 53:
8041
+ case 54:
8042
+ case 55:
8043
+ case 56:
8044
+ case 57:
8045
+ // 0-9
8046
+ if (!repeat) {
8047
+ seekByKey();
8048
+ }
8049
 
8050
+ break;
 
 
 
8051
 
8052
+ case 32:
8053
+ case 75:
8054
+ // Space and K key
8055
+ if (!repeat) {
8056
+ player.togglePlay();
8057
+ }
8058
 
8059
+ break;
 
8060
 
8061
+ case 38:
8062
+ // Arrow up
8063
+ player.increaseVolume(0.1);
8064
+ break;
 
 
8065
 
8066
+ case 40:
8067
+ // Arrow down
8068
+ player.decreaseVolume(0.1);
8069
+ break;
 
 
8070
 
8071
+ case 77:
8072
+ // M key
8073
+ if (!repeat) {
8074
+ player.muted = !player.muted;
8075
+ }
8076
 
8077
+ break;
8078
 
8079
+ case 39:
8080
+ // Arrow forward
8081
+ player.forward();
8082
+ break;
8083
 
8084
+ case 37:
8085
+ // Arrow back
8086
+ player.rewind();
8087
+ break;
8088
 
8089
+ case 70:
8090
+ // F key
8091
+ player.fullscreen.toggle();
8092
+ break;
8093
 
8094
+ case 67:
8095
+ // C key
8096
+ if (!repeat) {
8097
+ player.toggleCaptions();
8098
+ }
8099
 
8100
+ break;
8101
 
8102
+ case 76:
8103
+ // L key
8104
+ player.loop = !player.loop;
8105
+ break;
8106
 
8107
+ /* case 73:
8108
+ this.setLoop('start');
8109
+ break;
8110
+ case 76:
8111
+ this.setLoop();
8112
+ break;
8113
+ case 79:
8114
+ this.setLoop('end');
8115
+ break; */
8116
 
8117
+ default:
8118
+ break;
8119
+ } // Escape is handle natively when in full screen
8120
+ // So we only need to worry about non native
 
8121
 
 
 
 
 
 
 
 
 
 
 
 
8122
 
8123
+ if (code === 27 && !player.fullscreen.usingNative && player.fullscreen.active) {
8124
+ player.fullscreen.toggle();
8125
+ } // Store last code for next cycle
8126
 
 
8127
 
8128
+ this.lastKey = code;
8129
+ } else {
8130
+ this.lastKey = null;
8131
  }
8132
+ } // Toggle menu
8133
 
8134
+ }, {
8135
+ key: "toggleMenu",
8136
+ value: function toggleMenu(event) {
8137
+ controls.toggleMenu.call(this.player, event);
8138
+ } // Device is touch enabled
 
 
 
 
 
 
8139
 
8140
+ }, {
8141
+ key: "firstTouch",
8142
+ value: function firstTouch() {
8143
+ var player = this.player;
8144
+ var elements = player.elements;
8145
+ player.touch = true; // Add touch class
8146
 
8147
+ toggleClass(elements.container, player.config.classNames.isTouch, true);
8148
+ }
8149
+ }, {
8150
+ key: "setTabFocus",
8151
+ value: function setTabFocus(event) {
8152
+ var player = this.player;
8153
+ var elements = player.elements;
8154
+ clearTimeout(this.focusTimer); // Ignore any key other than tab
8155
 
8156
+ if (event.type === 'keydown' && event.which !== 9) {
8157
+ return;
8158
+ } // Store reference to event timeStamp
8159
 
8160
 
8161
+ if (event.type === 'keydown') {
8162
+ this.lastKeyDown = event.timeStamp;
8163
+ } // Remove current classes
 
 
 
8164
 
 
8165
 
8166
+ var removeCurrent = function removeCurrent() {
8167
+ var className = player.config.classNames.tabFocus;
8168
+ var current = getElements.call(player, ".".concat(className));
8169
+ toggleClass(current, className, false);
8170
+ }; // Determine if a key was pressed to trigger this event
8171
 
 
 
 
 
 
 
 
 
 
 
8172
 
8173
+ var wasKeyDown = event.timeStamp - this.lastKeyDown <= 20; // Ignore focus events if a key was pressed prior
8174
 
8175
+ if (event.type === 'focus' && !wasKeyDown) {
8176
  return;
8177
+ } // Remove all current
 
 
 
8178
 
 
 
 
8179
 
8180
+ removeCurrent(); // Delay the adding of classname until the focus has changed
8181
+ // This event fires before the focusin event
8182
 
8183
+ this.focusTimer = setTimeout(function () {
8184
+ var focused = document.activeElement; // Ignore if current focus element isn't inside the player
8185
 
8186
+ if (!elements.container.contains(focused)) {
8187
+ return;
 
 
 
 
 
 
8188
  }
8189
 
8190
+ toggleClass(document.activeElement, player.config.classNames.tabFocus, true);
8191
+ }, 10);
8192
+ } // Global window & document listeners
8193
 
8194
+ }, {
8195
+ key: "global",
8196
+ value: function global() {
8197
+ var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
8198
+ var player = this.player; // Keyboard shortcuts
 
 
 
8199
 
8200
+ if (player.config.keyboard.global) {
8201
+ toggleListener.call(player, window, 'keydown keyup', this.handleKey, toggle, false);
8202
+ } // Click anywhere closes menu
8203
 
 
 
 
 
 
 
 
 
 
8204
 
8205
+ toggleListener.call(player, document.body, 'click', this.toggleMenu, toggle); // Detect touch by events
 
 
8206
 
8207
+ once.call(player, document.body, 'touchstart', this.firstTouch); // Tab focus detection
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8208
 
8209
+ toggleListener.call(player, document.body, 'keydown focus blur', this.setTabFocus, toggle, false, true);
8210
+ } // Container listeners
 
 
 
 
 
8211
 
8212
+ }, {
8213
+ key: "container",
8214
+ value: function container() {
8215
+ var player = this.player;
8216
+ var config = player.config,
8217
+ elements = player.elements,
8218
+ timers = player.timers; // Keyboard shortcuts
8219
 
8220
+ if (!config.keyboard.global && config.keyboard.focused) {
8221
+ on.call(player, elements.container, 'keydown keyup', this.handleKey, false);
8222
+ } // Toggle controls on mouse events and entering fullscreen
 
8223
 
 
 
 
8224
 
8225
+ on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', function (event) {
8226
+ var controlsElement = elements.controls; // Remove button states for fullscreen
 
8227
 
8228
+ if (controlsElement && event.type === 'enterfullscreen') {
8229
+ controlsElement.pressed = false;
8230
+ controlsElement.hover = false;
8231
+ } // Show, then hide after a timeout unless another control event occurs
8232
 
 
 
 
8233
 
8234
+ var show = ['touchstart', 'touchmove', 'mousemove'].includes(event.type);
8235
+ var delay = 0;
8236
 
8237
+ if (show) {
8238
+ ui.toggleControls.call(player, true); // Use longer timeout for touch devices
8239
 
8240
+ delay = player.touch ? 3000 : 2000;
8241
+ } // Clear timer
8242
 
 
 
8243
 
8244
+ clearTimeout(timers.controls); // Set new timer to prevent flicker when seeking
 
8245
 
8246
+ timers.controls = setTimeout(function () {
8247
+ return ui.toggleControls.call(player, false);
8248
+ }, delay);
8249
+ }); // Set a gutter for Vimeo
8250
 
8251
+ var setGutter = function setGutter(ratio, padding, toggle) {
8252
+ if (!player.isVimeo) {
8253
+ return;
8254
+ }
8255
 
8256
+ var target = player.elements.wrapper.firstChild;
 
 
8257
 
8258
+ var _ratio = _slicedToArray(ratio, 2),
8259
+ y = _ratio[1];
 
 
 
8260
 
8261
+ var _getAspectRatio$call = getAspectRatio.call(player),
8262
+ _getAspectRatio$call2 = _slicedToArray(_getAspectRatio$call, 2),
8263
+ videoX = _getAspectRatio$call2[0],
8264
+ videoY = _getAspectRatio$call2[1];
8265
 
8266
+ target.style.maxWidth = toggle ? "".concat(y / videoY * videoX, "px") : null;
8267
+ target.style.margin = toggle ? '0 auto' : null;
8268
+ }; // Resize on fullscreen change
 
8269
 
 
 
 
 
 
8270
 
8271
+ var setPlayerSize = function setPlayerSize(measure) {
8272
+ // If we don't need to measure the viewport
8273
+ if (!measure) {
8274
+ return setAspectRatio.call(player);
8275
+ }
8276
 
8277
+ var rect = elements.container.getBoundingClientRect();
8278
+ var width = rect.width,
8279
+ height = rect.height;
8280
+ return setAspectRatio.call(player, "".concat(width, ":").concat(height));
8281
+ };
8282
 
8283
+ var resized = function resized() {
8284
+ clearTimeout(timers.resized);
8285
+ timers.resized = setTimeout(setPlayerSize, 50);
8286
+ };
 
 
 
 
 
8287
 
8288
+ on.call(player, elements.container, 'enterfullscreen exitfullscreen', function (event) {
8289
+ var _player$fullscreen = player.fullscreen,
8290
+ target = _player$fullscreen.target,
8291
+ usingNative = _player$fullscreen.usingNative; // Ignore events not from target
8292
 
8293
+ if (target !== elements.container) {
8294
+ return;
8295
+ } // If it's not an embed and no ratio specified
 
8296
 
8297
 
8298
+ if (!player.isEmbed && is$1.empty(player.config.ratio)) {
8299
+ return;
8300
+ }
8301
 
8302
+ var isEnter = event.type === 'enterfullscreen'; // Set the player size when entering fullscreen to viewport size
8303
 
8304
+ var _setPlayerSize = setPlayerSize(isEnter),
8305
+ padding = _setPlayerSize.padding,
8306
+ ratio = _setPlayerSize.ratio; // Set Vimeo gutter
8307
 
 
 
 
 
 
8308
 
8309
+ setGutter(ratio, padding, isEnter); // If not using native fullscreen, we need to check for resizes of viewport
8310
 
8311
+ if (!usingNative) {
8312
+ if (isEnter) {
8313
+ on.call(player, window, 'resize', resized);
8314
+ } else {
8315
+ off.call(player, window, 'resize', resized);
8316
+ }
8317
+ }
8318
+ });
8319
+ } // Listen for media events
8320
 
8321
+ }, {
8322
+ key: "media",
8323
+ value: function media() {
8324
+ var _this = this;
 
 
 
 
 
 
 
 
 
 
8325
 
8326
+ var player = this.player;
8327
+ var elements = player.elements; // Time change on media
 
 
 
 
 
 
 
 
 
 
 
8328
 
8329
+ on.call(player, player.media, 'timeupdate seeking seeked', function (event) {
8330
+ return controls.timeUpdate.call(player, event);
8331
+ }); // Display duration
8332
 
8333
+ on.call(player, player.media, 'durationchange loadeddata loadedmetadata', function (event) {
8334
+ return controls.durationUpdate.call(player, event);
8335
+ }); // Check for audio tracks on load
8336
+ // We can't use `loadedmetadata` as it doesn't seem to have audio tracks at that point
8337
 
8338
+ on.call(player, player.media, 'canplay loadeddata', function () {
8339
+ toggleHidden(elements.volume, !player.hasAudio);
8340
+ toggleHidden(elements.buttons.mute, !player.hasAudio);
8341
+ }); // Handle the media finishing
 
8342
 
8343
+ on.call(player, player.media, 'ended', function () {
8344
+ // Show poster on end
8345
+ if (player.isHTML5 && player.isVideo && player.config.resetOnEnd) {
8346
+ // Restart
8347
+ player.restart();
8348
+ }
8349
+ }); // Check for buffer progress
8350
 
8351
+ on.call(player, player.media, 'progress playing seeking seeked', function (event) {
8352
+ return controls.updateProgress.call(player, event);
8353
+ }); // Handle volume changes
 
8354
 
8355
+ on.call(player, player.media, 'volumechange', function (event) {
8356
+ return controls.updateVolume.call(player, event);
8357
+ }); // Handle play/pause
 
 
 
 
 
 
8358
 
8359
+ on.call(player, player.media, 'playing play pause ended emptied timeupdate', function (event) {
8360
+ return ui.checkPlaying.call(player, event);
8361
+ }); // Loading state
 
 
8362
 
8363
+ on.call(player, player.media, 'waiting canplay seeked playing', function (event) {
8364
+ return ui.checkLoading.call(player, event);
8365
+ }); // Click video
 
8366
 
8367
+ if (player.supported.ui && player.config.clickToPlay && !player.isAudio) {
8368
+ // Re-fetch the wrapper
8369
+ var wrapper = getElement.call(player, ".".concat(player.config.classNames.video)); // Bail if there's no wrapper (this should never happen)
8370
 
8371
+ if (!is$1.element(wrapper)) {
8372
+ return;
8373
+ } // On click play, pause or restart
8374
 
 
8375
 
8376
+ on.call(player, elements.container, 'click', function (event) {
8377
+ var targets = [elements.container, wrapper]; // Ignore if click if not container or in video wrapper
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8378
 
8379
+ if (!targets.includes(event.target) && !wrapper.contains(event.target)) {
8380
+ return;
8381
+ } // Touch devices will just show controls (if hidden)
 
 
 
 
 
 
 
 
8382
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8383
 
8384
+ if (player.touch && player.config.hideControls) {
8385
+ return;
8386
+ }
8387
 
8388
+ if (player.ended) {
8389
+ _this.proxy(event, player.restart, 'restart');
8390
 
8391
+ _this.proxy(event, player.play, 'play');
8392
+ } else {
8393
+ _this.proxy(event, player.togglePlay, 'play');
8394
+ }
 
 
8395
  });
8396
+ } // Disable right click
 
 
 
8397
 
8398
 
8399
+ if (player.supported.ui && player.config.disableContextMenu) {
8400
+ on.call(player, elements.wrapper, 'contextmenu', function (event) {
8401
+ event.preventDefault();
8402
+ }, false);
8403
+ } // Volume change
 
 
 
8404
 
 
 
 
 
 
 
 
8405
 
8406
+ on.call(player, player.media, 'volumechange', function () {
8407
+ // Save to storage
8408
+ player.storage.set({
8409
+ volume: player.volume,
8410
+ muted: player.muted
8411
+ });
8412
+ }); // Speed change
8413
 
8414
+ on.call(player, player.media, 'ratechange', function () {
8415
+ // Update UI
8416
+ controls.updateSetting.call(player, 'speed'); // Save to storage
 
 
 
 
8417
 
 
 
 
 
 
 
8418
 
8419
+ player.storage.set({
8420
+ speed: player.speed
8421
+ });
8422
+ }); // Quality change
8423
 
8424
+ on.call(player, player.media, 'qualitychange', function (event) {
8425
+ // Update UI
8426
+ controls.updateSetting.call(player, 'quality', null, event.detail.quality);
8427
+ }); // Update download link when ready and if quality changes
8428
 
8429
+ on.call(player, player.media, 'ready qualitychange', function () {
8430
+ controls.setDownloadUrl.call(player);
8431
+ }); // Proxy events to container
8432
+ // Bubble up key events for Edge
8433
 
8434
+ var proxyEvents = player.config.events.concat(['keyup', 'keydown']).join(' ');
8435
+ on.call(player, player.media, proxyEvents, function (event) {
8436
+ var _event$detail = event.detail,
8437
+ detail = _event$detail === void 0 ? {} : _event$detail; // Get error details from media
8438
 
8439
+ if (event.type === 'error') {
8440
+ detail = player.media.error;
8441
+ }
 
 
 
 
 
8442
 
8443
+ triggerEvent.call(player, elements.container, event.type, true, detail);
8444
+ });
8445
+ } // Run default and custom handlers
 
 
 
 
 
 
 
8446
 
8447
+ }, {
8448
+ key: "proxy",
8449
+ value: function proxy(event, defaultHandler, customHandlerKey) {
8450
+ var player = this.player;
8451
+ var customHandler = player.config.listeners[customHandlerKey];
8452
+ var hasCustomHandler = is$1.function(customHandler);
8453
+ var returned = true; // Execute custom handler
8454
 
8455
+ if (hasCustomHandler) {
8456
+ returned = customHandler.call(player, event);
8457
+ } // Only call default handler if not prevented in custom handler
8458
 
8459
+
8460
+ if (returned && is$1.function(defaultHandler)) {
8461
+ defaultHandler.call(player, event);
8462
  }
8463
+ } // Trigger custom and default handlers
8464
 
8465
+ }, {
8466
+ key: "bind",
8467
+ value: function bind(element, type, defaultHandler, customHandlerKey) {
8468
+ var _this2 = this;
8469
 
8470
+ var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
8471
+ var player = this.player;
8472
+ var customHandler = player.config.listeners[customHandlerKey];
8473
+ var hasCustomHandler = is$1.function(customHandler);
8474
+ on.call(player, element, type, function (event) {
8475
+ return _this2.proxy(event, defaultHandler, customHandlerKey);
8476
+ }, passive && !hasCustomHandler);
8477
+ } // Listen for control events
 
 
 
 
 
 
 
 
 
 
 
 
8478
 
8479
+ }, {
8480
+ key: "controls",
8481
+ value: function controls$1() {
8482
+ var _this3 = this;
8483
 
8484
+ var player = this.player;
8485
+ var elements = player.elements; // IE doesn't support input event, so we fallback to change
 
 
 
 
 
 
 
 
 
 
8486
 
8487
+ var inputEvent = browser.isIE ? 'change' : 'input'; // Play/pause toggle
 
 
 
 
 
 
 
 
8488
 
8489
+ if (elements.buttons.play) {
8490
+ Array.from(elements.buttons.play).forEach(function (button) {
8491
+ _this3.bind(button, 'click', player.togglePlay, 'play');
8492
+ });
8493
+ } // Pause
 
 
 
 
 
8494
 
 
 
 
 
 
 
 
 
8495
 
8496
+ this.bind(elements.buttons.restart, 'click', player.restart, 'restart'); // Rewind
 
 
 
 
 
8497
 
8498
+ this.bind(elements.buttons.rewind, 'click', player.rewind, 'rewind'); // Rewind
8499
 
8500
+ this.bind(elements.buttons.fastForward, 'click', player.forward, 'fastForward'); // Mute toggle
 
8501
 
8502
+ this.bind(elements.buttons.mute, 'click', function () {
8503
+ player.muted = !player.muted;
8504
+ }, 'mute'); // Captions toggle
8505
 
8506
+ this.bind(elements.buttons.captions, 'click', function () {
8507
+ return player.toggleCaptions();
8508
+ }); // Download
8509
 
8510
+ this.bind(elements.buttons.download, 'click', function () {
8511
+ triggerEvent.call(player, player.media, 'download');
8512
+ }, 'download'); // Fullscreen toggle
 
8513
 
8514
+ this.bind(elements.buttons.fullscreen, 'click', function () {
8515
+ player.fullscreen.toggle();
8516
+ }, 'fullscreen'); // Picture-in-Picture
8517
 
8518
+ this.bind(elements.buttons.pip, 'click', function () {
8519
+ player.pip = 'toggle';
8520
+ }, 'pip'); // Airplay
 
 
8521
 
8522
+ this.bind(elements.buttons.airplay, 'click', player.airplay, 'airplay'); // Settings menu - click toggle
 
 
 
8523
 
8524
+ this.bind(elements.buttons.settings, 'click', function (event) {
8525
+ // Prevent the document click listener closing the menu
8526
+ event.stopPropagation();
 
 
8527
 
8528
+ controls.toggleMenu.call(player, event);
8529
+ }); // Settings menu - keyboard toggle
8530
+ // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
8531
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
8532
 
8533
+ this.bind(elements.buttons.settings, 'keyup', function (event) {
8534
+ var code = event.which; // We only care about space and return
 
 
 
 
8535
 
8536
+ if (![13, 32].includes(code)) {
8537
+ return;
8538
+ } // Because return triggers a click anyway, all we need to do is set focus
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8539
 
 
8540
 
8541
+ if (code === 13) {
8542
+ controls.focusFirstMenuItem.call(player, null, true);
 
8543
 
8544
+ return;
8545
+ } // Prevent scroll
8546
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8547
 
8548
+ event.preventDefault(); // Prevent playing video (Firefox)
 
 
 
 
 
 
8549
 
8550
+ event.stopPropagation(); // Toggle menu
 
 
8551
 
8552
+ controls.toggleMenu.call(player, event);
8553
+ }, null, false // Can't be passive as we're preventing default
8554
+ ); // Escape closes menu
 
8555
 
8556
+ this.bind(elements.settings.menu, 'keydown', function (event) {
8557
+ if (event.which === 27) {
8558
+ controls.toggleMenu.call(player, event);
8559
+ }
8560
+ }); // Set range input alternative "value", which matches the tooltip time (#954)
8561
 
8562
+ this.bind(elements.inputs.seek, 'mousedown mousemove', function (event) {
8563
+ var rect = elements.progress.getBoundingClientRect();
8564
+ var percent = 100 / rect.width * (event.pageX - rect.left);
8565
+ event.currentTarget.setAttribute('seek-value', percent);
8566
+ }); // Pause while seeking
8567
 
8568
+ this.bind(elements.inputs.seek, 'mousedown mouseup keydown keyup touchstart touchend', function (event) {
8569
+ var seek = event.currentTarget;
8570
+ var code = event.keyCode ? event.keyCode : event.which;
8571
+ var attribute = 'play-on-seeked';
8572
 
8573
+ if (is$1.keyboardEvent(event) && code !== 39 && code !== 37) {
8574
+ return;
8575
+ } // Record seek time so we can prevent hiding controls for a few seconds after seek
 
 
 
 
 
 
8576
 
 
 
 
 
8577
 
8578
+ player.lastSeekTime = Date.now(); // Was playing before?
8579
 
8580
+ var play = seek.hasAttribute(attribute); // Done seeking
 
 
 
 
 
 
 
8581
 
8582
+ var done = ['mouseup', 'touchend', 'keyup'].includes(event.type); // If we're done seeking and it was playing, resume playback
 
 
 
8583
 
8584
+ if (play && done) {
8585
+ seek.removeAttribute(attribute);
8586
+ player.play();
8587
+ } else if (!done && player.playing) {
8588
+ seek.setAttribute(attribute, '');
8589
+ player.pause();
8590
+ }
8591
+ }); // Fix range inputs on iOS
8592
+ // Super weird iOS bug where after you interact with an <input type="range">,
8593
+ // it takes over further interactions on the page. This is a hack
8594
 
8595
+ if (browser.isIos) {
8596
+ var inputs = getElements.call(player, 'input[type="range"]');
8597
+ Array.from(inputs).forEach(function (input) {
8598
+ return _this3.bind(input, inputEvent, function (event) {
8599
+ return repaint(event.target);
8600
+ });
8601
+ });
8602
+ } // Seek
8603
 
8604
 
8605
+ this.bind(elements.inputs.seek, inputEvent, function (event) {
8606
+ var seek = event.currentTarget; // If it exists, use seek-value instead of "value" for consistency with tooltip time (#954)
 
8607
 
8608
+ var seekTo = seek.getAttribute('seek-value');
8609
 
8610
+ if (is$1.empty(seekTo)) {
8611
+ seekTo = seek.value;
8612
+ }
 
 
 
 
8613
 
8614
+ seek.removeAttribute('seek-value');
8615
+ player.currentTime = seekTo / seek.max * player.duration;
8616
+ }, 'seek'); // Seek tooltip
8617
 
8618
+ this.bind(elements.progress, 'mouseenter mouseleave mousemove', function (event) {
8619
+ return controls.updateSeekTooltip.call(player, event);
8620
+ }); // Preview thumbnails plugin
8621
+ // TODO: Really need to work on some sort of plug-in wide event bus or pub-sub for this
8622
 
8623
+ this.bind(elements.progress, 'mousemove touchmove', function (event) {
8624
+ var previewThumbnails = player.previewThumbnails;
8625
 
8626
+ if (previewThumbnails && previewThumbnails.loaded) {
8627
+ previewThumbnails.startMove(event);
8628
+ }
8629
+ }); // Hide thumbnail preview - on mouse click, mouse leave, and video play/seek. All four are required, e.g., for buffering
 
8630
 
8631
+ this.bind(elements.progress, 'mouseleave click', function () {
8632
+ var previewThumbnails = player.previewThumbnails;
 
8633
 
8634
+ if (previewThumbnails && previewThumbnails.loaded) {
8635
+ previewThumbnails.endMove(false, true);
8636
+ }
8637
+ }); // Show scrubbing preview
 
8638
 
8639
+ this.bind(elements.progress, 'mousedown touchstart', function (event) {
8640
+ var previewThumbnails = player.previewThumbnails;
8641
 
8642
+ if (previewThumbnails && previewThumbnails.loaded) {
8643
+ previewThumbnails.startScrubbing(event);
8644
+ }
8645
+ });
8646
+ this.bind(elements.progress, 'mouseup touchend', function (event) {
8647
+ var previewThumbnails = player.previewThumbnails;
8648
 
8649
+ if (previewThumbnails && previewThumbnails.loaded) {
8650
+ previewThumbnails.endScrubbing(event);
8651
  }
8652
+ }); // Polyfill for lower fill in <input type="range"> for webkit
 
8653
 
8654
+ if (browser.isWebkit) {
8655
+ Array.from(getElements.call(player, 'input[type="range"]')).forEach(function (element) {
8656
+ _this3.bind(element, 'input', function (event) {
8657
+ return controls.updateRangeFill.call(player, event.target);
8658
+ });
8659
+ });
8660
+ } // Current time invert
8661
+ // Only if one time element is used for both currentTime and duration
8662
 
8663
+
8664
+ if (player.config.toggleInvert && !is$1.element(elements.display.duration)) {
8665
+ this.bind(elements.display.currentTime, 'click', function () {
8666
+ // Do nothing if we're at the start
8667
+ if (player.currentTime === 0) {
8668
+ return;
8669
  }
8670
 
8671
+ player.config.invertTime = !player.config.invertTime;
 
8672
 
8673
+ controls.timeUpdate.call(player);
8674
+ });
8675
+ } // Volume
 
8676
 
 
 
 
 
 
 
 
 
 
8677
 
8678
+ this.bind(elements.inputs.volume, inputEvent, function (event) {
8679
+ player.volume = event.target.value;
8680
+ }, 'volume'); // Update controls.hover state (used for ui.toggleControls to avoid hiding when interacting)
8681
 
8682
+ this.bind(elements.controls, 'mouseenter mouseleave', function (event) {
8683
+ elements.controls.hover = !player.touch && event.type === 'mouseenter';
8684
+ }); // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting)
8685
 
8686
+ this.bind(elements.controls, 'mousedown mouseup touchstart touchend touchcancel', function (event) {
8687
+ elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type);
8688
+ }); // Show controls when they receive focus (e.g., when using keyboard tab key)
 
 
 
 
 
 
 
 
 
 
8689
 
8690
+ this.bind(elements.controls, 'focusin', function () {
8691
+ var config = player.config,
8692
+ timers = player.timers; // Skip transition to prevent focus from scrolling the parent element
8693
 
8694
+ toggleClass(elements.controls, config.classNames.noTransition, true); // Toggle
 
 
8695
 
8696
+ ui.toggleControls.call(player, true); // Restore transition
8697
 
8698
+ setTimeout(function () {
8699
+ toggleClass(elements.controls, config.classNames.noTransition, false);
8700
+ }, 0); // Delay a little more for mouse users
 
 
8701
 
8702
+ var delay = _this3.touch ? 3000 : 4000; // Clear timer
 
 
 
8703
 
8704
+ clearTimeout(timers.controls); // Hide again after delay
8705
 
8706
+ timers.controls = setTimeout(function () {
8707
+ return ui.toggleControls.call(player, false);
8708
+ }, delay);
8709
+ }); // Mouse wheel for volume
8710
 
8711
+ this.bind(elements.inputs.volume, 'wheel', function (event) {
8712
+ // Detect "natural" scroll - suppored on OS X Safari only
8713
+ // Other browsers on OS X will be inverted until support improves
8714
+ var inverted = event.webkitDirectionInvertedFromDevice; // Get delta from event. Invert if `inverted` is true
8715
 
8716
+ var _map = [event.deltaX, -event.deltaY].map(function (value) {
8717
+ return inverted ? -value : value;
8718
+ }),
8719
+ _map2 = _slicedToArray(_map, 2),
8720
+ x = _map2[0],
8721
+ y = _map2[1]; // Using the biggest delta, normalize to 1 or -1 (or 0 if no delta)
8722
 
8723
 
8724
+ var direction = Math.sign(Math.abs(x) > Math.abs(y) ? x : y); // Change the volume by 2%
 
8725
 
8726
+ player.increaseVolume(direction / 50); // Don't break page scrolling at max and min
 
 
 
 
 
 
8727
 
8728
+ var volume = player.media.volume;
8729
 
8730
+ if (direction === 1 && volume < 1 || direction === -1 && volume > 0) {
8731
+ event.preventDefault();
8732
+ }
8733
+ }, 'volume', false);
8734
+ }
8735
+ }]);
8736
 
8737
+ return Listeners;
8738
+ }();
8739
 
8740
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8741
 
8742
+ function createCommonjsModule(fn, module) {
8743
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
8744
+ }
8745
 
8746
+ var loadjs_umd = createCommonjsModule(function (module, exports) {
8747
+ (function (root, factory) {
8748
+ {
8749
+ module.exports = factory();
8750
  }
8751
+ })(commonjsGlobal, function () {
8752
+ /**
8753
+ * Global dependencies.
8754
+ * @global {Object} document - DOM
8755
+ */
8756
+ var devnull = function devnull() {},
8757
+ bundleIdCache = {},
8758
+ bundleResultCache = {},
8759
+ bundleCallbackQueue = {};
8760
+ /**
8761
+ * Subscribe to bundle load event.
8762
+ * @param {string[]} bundleIds - Bundle ids
8763
+ * @param {Function} callbackFn - The callback function
8764
+ */
8765
 
8766
 
8767
+ function subscribe(bundleIds, callbackFn) {
8768
+ // listify
8769
+ bundleIds = bundleIds.push ? bundleIds : [bundleIds];
8770
+ var depsNotFound = [],
8771
+ i = bundleIds.length,
8772
+ numWaiting = i,
8773
+ fn,
8774
+ bundleId,
8775
+ r,
8776
+ q; // define callback function
 
8777
 
8778
+ fn = function fn(bundleId, pathsNotFound) {
8779
+ if (pathsNotFound.length) depsNotFound.push(bundleId);
8780
+ numWaiting--;
8781
+ if (!numWaiting) callbackFn(depsNotFound);
8782
+ }; // register callback
8783
 
 
 
 
 
 
8784
 
8785
+ while (i--) {
8786
+ bundleId = bundleIds[i]; // execute callback if in result cache
8787
 
8788
+ r = bundleResultCache[bundleId];
 
 
8789
 
8790
+ if (r) {
8791
+ fn(bundleId, r);
8792
+ continue;
8793
+ } // add to callback queue
8794
 
 
8795
 
8796
+ q = bundleCallbackQueue[bundleId] = bundleCallbackQueue[bundleId] || [];
8797
+ q.push(fn);
8798
+ }
8799
+ }
8800
+ /**
8801
+ * Publish bundle load event.
8802
+ * @param {string} bundleId - Bundle id
8803
+ * @param {string[]} pathsNotFound - List of files not found
8804
+ */
8805
 
8806
 
8807
+ function publish(bundleId, pathsNotFound) {
8808
+ // exit if id isn't defined
8809
+ if (!bundleId) return;
8810
+ var q = bundleCallbackQueue[bundleId]; // cache result
8811
 
8812
+ bundleResultCache[bundleId] = pathsNotFound; // exit if queue is empty
8813
 
8814
+ if (!q) return; // empty callback queue
 
 
 
 
 
 
 
 
 
 
8815
 
8816
+ while (q.length) {
8817
+ q[0](bundleId, pathsNotFound);
8818
+ q.splice(0, 1);
8819
+ }
8820
+ }
8821
+ /**
8822
+ * Execute callbacks.
8823
+ * @param {Object or Function} args - The callback args
8824
+ * @param {string[]} depsNotFound - List of dependencies not found
8825
+ */
8826
 
 
 
 
8827
 
8828
+ function executeCallbacks(args, depsNotFound) {
8829
+ // accept function as argument
8830
+ if (args.call) args = {
8831
+ success: args
8832
+ }; // success and error callbacks
8833
 
8834
+ if (depsNotFound.length) (args.error || devnull)(depsNotFound);else (args.success || devnull)(args);
8835
+ }
8836
+ /**
8837
+ * Load individual file.
8838
+ * @param {string} path - The file path
8839
+ * @param {Function} callbackFn - The callback function
8840
+ */
8841
 
8842
 
8843
+ function loadFile(path, callbackFn, args, numTries) {
8844
+ var doc = document,
8845
+ async = args.async,
8846
+ maxTries = (args.numRetries || 0) + 1,
8847
+ beforeCallbackFn = args.before || devnull,
8848
+ pathStripped = path.replace(/^(css|img)!/, ''),
8849
+ isLegacyIECss,
8850
+ e;
8851
+ numTries = numTries || 0;
8852
+
8853
+ if (/(^css!|\.css$)/.test(path)) {
8854
+ // css
8855
+ e = doc.createElement('link');
8856
+ e.rel = 'stylesheet';
8857
+ e.href = pathStripped; // tag IE9+
8858
+
8859
+ isLegacyIECss = 'hideFocus' in e; // use preload in IE Edge (to detect load errors)
8860
+
8861
+ if (isLegacyIECss && e.relList) {
8862
+ isLegacyIECss = 0;
8863
+ e.rel = 'preload';
8864
+ e.as = 'style';
8865
+ }
8866
+ } else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) {
8867
+ // image
8868
+ e = doc.createElement('img');
8869
+ e.src = pathStripped;
8870
+ } else {
8871
+ // javascript
8872
+ e = doc.createElement('script');
8873
+ e.src = path;
8874
+ e.async = async === undefined ? true : async;
8875
  }
 
8876
 
8877
+ e.onload = e.onerror = e.onbeforeload = function (ev) {
8878
+ var result = ev.type[0]; // treat empty stylesheets as failures to get around lack of onerror
8879
+ // support in IE9-11
8880
 
8881
+ if (isLegacyIECss) {
8882
+ try {
8883
+ if (!e.sheet.cssText.length) result = 'e';
8884
+ } catch (x) {
8885
+ // sheets objects created from load errors don't allow access to
8886
+ // `cssText` (unless error is Code:18 SecurityError)
8887
+ if (x.code != 18) result = 'e';
8888
+ }
8889
+ } // handle retries in case of load failure
8890
 
8891
 
8892
+ if (result == 'e') {
8893
+ // increment counter
8894
+ numTries += 1; // exit function and try again
8895
+
8896
+ if (numTries < maxTries) {
8897
+ return loadFile(path, callbackFn, args, numTries);
8898
+ }
8899
+ } else if (e.rel == 'preload' && e.as == 'style') {
8900
+ // activate preloaded stylesheets
8901
+ return e.rel = 'stylesheet'; // jshint ignore:line
8902
+ } // execute callback
8903
 
8904
 
8905
+ callbackFn(path, result, ev.defaultPrevented);
8906
+ }; // add to document (unless callback returns `false`)
8907
 
 
8908
 
8909
+ if (beforeCallbackFn(path, e) !== false) doc.head.appendChild(e);
 
8910
  }
8911
+ /**
8912
+ * Load multiple files.
8913
+ * @param {string[]} paths - The file paths
8914
+ * @param {Function} callbackFn - The callback function
8915
+ */
 
8916
 
 
 
 
8917
 
8918
+ function loadFiles(paths, callbackFn, args) {
8919
+ // listify paths
8920
+ paths = paths.push ? paths : [paths];
8921
+ var numWaiting = paths.length,
8922
+ x = numWaiting,
8923
+ pathsNotFound = [],
8924
+ fn,
8925
+ i; // define callback function
8926
 
8927
+ fn = function fn(path, result, defaultPrevented) {
8928
+ // handle error
8929
+ if (result == 'e') pathsNotFound.push(path); // handle beforeload event. If defaultPrevented then that means the load
8930
+ // will be blocked (ex. Ghostery/ABP on Safari)
8931
 
8932
+ if (result == 'b') {
8933
+ if (defaultPrevented) pathsNotFound.push(path);else return;
8934
+ }
8935
 
8936
+ numWaiting--;
8937
+ if (!numWaiting) callbackFn(pathsNotFound);
8938
+ }; // load scripts
8939
 
 
 
 
 
 
 
 
8940
 
8941
+ for (i = 0; i < x; i++) {
8942
+ loadFile(paths[i], fn, args);
8943
+ }
8944
  }
8945
+ /**
8946
+ * Initiate script load and register bundle.
8947
+ * @param {(string|string[])} paths - The file paths
8948
+ * @param {(string|Function|Object)} [arg1] - The (1) bundleId or (2) success
8949
+ * callback or (3) object literal with success/error arguments, numRetries,
8950
+ * etc.
8951
+ * @param {(Function|Object)} [arg2] - The (1) success callback or (2) object
8952
+ * literal with success/error arguments, numRetries, etc.
8953
+ */
8954
 
 
 
 
 
 
 
 
 
8955
 
8956
+ function loadjs(paths, arg1, arg2) {
8957
+ var bundleId, args; // bundleId (if string)
8958
 
8959
+ if (arg1 && arg1.trim) bundleId = arg1; // args (default is {})
 
8960
 
8961
+ args = (bundleId ? arg2 : arg1) || {}; // throw error if bundle is already defined
8962
 
8963
+ if (bundleId) {
8964
+ if (bundleId in bundleIdCache) {
8965
+ throw "LoadJS";
8966
+ } else {
8967
+ bundleIdCache[bundleId] = true;
8968
+ }
8969
+ }
8970
 
8971
+ function loadFn(resolve, reject) {
8972
+ loadFiles(paths, function (pathsNotFound) {
8973
+ // execute callbacks
8974
+ executeCallbacks(args, pathsNotFound); // resolve Promise
8975
 
8976
+ if (resolve) {
8977
+ executeCallbacks({
8978
+ success: resolve,
8979
+ error: reject
8980
+ }, pathsNotFound);
8981
+ } // publish bundle load event
8982
 
 
 
8983
 
8984
+ publish(bundleId, pathsNotFound);
8985
+ }, args);
8986
  }
8987
 
8988
+ if (args.returnPromise) return new Promise(loadFn);else loadFn();
8989
+ }
8990
+ /**
8991
+ * Execute callbacks when dependencies have been satisfied.
8992
+ * @param {(string|string[])} deps - List of bundle ids
8993
+ * @param {Object} args - success/error arguments
8994
+ */
8995
 
8996
 
8997
+ loadjs.ready = function ready(deps, args) {
8998
+ // subscribe to bundle load event
8999
+ subscribe(deps, function (depsNotFound) {
9000
+ // execute callbacks
9001
+ executeCallbacks(args, depsNotFound);
 
 
 
 
 
9002
  });
9003
+ return loadjs;
9004
+ };
9005
+ /**
9006
+ * Manually satisfy bundle dependencies.
9007
+ * @param {string} bundleId - The bundle id
9008
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9009
 
 
 
 
 
9010
 
9011
+ loadjs.done = function done(bundleId) {
9012
+ publish(bundleId, []);
9013
+ };
9014
+ /**
9015
+ * Reset loadjs dependencies statuses
9016
+ */
9017
 
 
 
 
 
9018
 
9019
+ loadjs.reset = function reset() {
9020
+ bundleIdCache = {};
9021
+ bundleResultCache = {};
9022
+ bundleCallbackQueue = {};
9023
+ };
9024
+ /**
9025
+ * Determine if bundle has already been defined
9026
+ * @param String} bundleId - The bundle id
9027
+ */
9028
 
 
9029
 
9030
+ loadjs.isDefined = function isDefined(bundleId) {
9031
+ return bundleId in bundleIdCache;
9032
+ }; // export
9033
 
 
 
 
9034
 
9035
+ return loadjs;
9036
+ });
9037
+ });
9038
 
9039
+ // ==========================================================================
9040
+ function loadScript(url) {
9041
+ return new Promise(function (resolve, reject) {
9042
+ loadjs_umd(url, {
9043
+ success: resolve,
9044
+ error: reject
9045
+ });
9046
+ });
9047
+ }
 
9048
 
9049
+ function parseId(url) {
9050
+ if (is$1.empty(url)) {
9051
+ return null;
9052
+ }
 
 
 
9053
 
9054
+ if (is$1.number(Number(url))) {
9055
+ return url;
9056
+ }
 
 
 
9057
 
9058
+ var regex = /^.*(vimeo.com\/|video\/)(\d+).*/;
9059
+ return url.match(regex) ? RegExp.$2 : url;
9060
+ } // Set playback state and trigger change (only on actual change)
 
9061
 
 
 
9062
 
9063
+ function assurePlaybackState(play) {
9064
+ if (play && !this.embed.hasPlayed) {
9065
+ this.embed.hasPlayed = true;
9066
+ }
 
9067
 
9068
+ if (this.media.paused === play) {
9069
+ this.media.paused = !play;
9070
+ triggerEvent.call(this, this.media, play ? 'play' : 'pause');
9071
+ }
9072
+ }
9073
 
9074
+ var vimeo = {
9075
+ setup: function setup() {
9076
+ var _this = this;
9077
 
9078
+ // Add embed class for responsive
9079
+ toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Set intial ratio
9080
 
9081
+ setAspectRatio.call(this); // Load the SDK if not already
9082
 
9083
+ if (!is$1.object(window.Vimeo)) {
9084
+ loadScript(this.config.urls.vimeo.sdk).then(function () {
9085
+ vimeo.ready.call(_this);
9086
+ }).catch(function (error) {
9087
+ _this.debug.warn('Vimeo SDK (player.js) failed to load', error);
9088
+ });
9089
+ } else {
9090
+ vimeo.ready.call(this);
9091
+ }
9092
+ },
9093
+ // API Ready
9094
+ ready: function ready() {
9095
+ var _this2 = this;
9096
 
9097
+ var player = this;
9098
+ var config = player.config.vimeo; // Get Vimeo params for the iframe
 
9099
 
9100
+ var params = buildUrlParams(extend({}, {
9101
+ loop: player.config.loop.active,
9102
+ autoplay: player.autoplay,
9103
+ muted: player.muted,
9104
+ gesture: 'media',
9105
+ playsinline: !this.config.fullscreen.iosNative
9106
+ }, config)); // Get the source URL or ID
9107
 
9108
+ var source = player.media.getAttribute('src'); // Get from <div> if needed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9109
 
9110
+ if (is$1.empty(source)) {
9111
+ source = player.media.getAttribute(player.config.attributes.embed.id);
9112
  }
9113
 
9114
+ var id = parseId(source); // Build an iframe
9115
 
9116
+ var iframe = createElement('iframe');
9117
+ var src = format(player.config.urls.vimeo.iframe, id, params);
9118
+ iframe.setAttribute('src', src);
9119
+ iframe.setAttribute('allowfullscreen', '');
9120
+ iframe.setAttribute('allowtransparency', '');
9121
+ iframe.setAttribute('allow', 'autoplay'); // Get poster, if already set
9122
 
9123
+ var poster = player.poster; // Inject the package
 
 
 
 
 
 
9124
 
9125
+ var wrapper = createElement('div', {
9126
+ poster: poster,
9127
+ class: player.config.classNames.embedContainer
9128
+ });
9129
+ wrapper.appendChild(iframe);
9130
+ player.media = replaceElement(wrapper, player.media); // Get poster image
9131
 
9132
+ fetch(format(player.config.urls.vimeo.api, id), 'json').then(function (response) {
9133
+ if (is$1.empty(response)) {
9134
+ return;
9135
+ } // Get the URL for thumbnail
9136
 
 
 
9137
 
9138
+ var url = new URL(response[0].thumbnail_large); // Get original image
 
 
 
 
 
 
 
 
 
 
9139
 
9140
+ url.pathname = "".concat(url.pathname.split('_')[0], ".jpg"); // Set and show poster
 
 
 
 
 
 
 
 
9141
 
9142
+ ui.setPoster.call(player, url.href).catch(function () {});
9143
+ }); // Setup instance
9144
+ // https://github.com/vimeo/player.js
9145
 
9146
+ player.embed = new window.Vimeo.Player(iframe, {
9147
+ autopause: player.config.autopause,
9148
+ muted: player.muted
9149
+ });
9150
+ player.media.paused = true;
9151
+ player.media.currentTime = 0; // Disable native text track rendering
 
 
 
 
 
 
 
9152
 
9153
+ if (player.supported.ui) {
9154
+ player.embed.disableTextTrack();
9155
+ } // Create a faux HTML5 API using the Vimeo API
9156
 
 
 
9157
 
9158
+ player.media.play = function () {
9159
+ assurePlaybackState.call(player, true);
9160
+ return player.embed.play();
 
9161
  };
 
 
 
 
9162
 
9163
+ player.media.pause = function () {
9164
+ assurePlaybackState.call(player, false);
9165
+ return player.embed.pause();
9166
+ };
9167
 
9168
+ player.media.stop = function () {
9169
+ player.pause();
9170
+ player.currentTime = 0;
9171
+ }; // Seeking
9172
 
9173
 
9174
+ var currentTime = player.media.currentTime;
9175
+ Object.defineProperty(player.media, 'currentTime', {
9176
+ get: function get() {
9177
+ return currentTime;
9178
+ },
9179
+ set: function set(time) {
9180
+ // Vimeo will automatically play on seek if the video hasn't been played before
9181
+ // Get current paused state and volume etc
9182
+ var embed = player.embed,
9183
+ media = player.media,
9184
+ paused = player.paused,
9185
+ volume = player.volume;
9186
+ var restorePause = paused && !embed.hasPlayed; // Set seeking state and trigger event
9187
 
9188
+ media.seeking = true;
9189
+ triggerEvent.call(player, media, 'seeking'); // If paused, mute until seek is complete
 
 
9190
 
9191
+ Promise.resolve(restorePause && embed.setVolume(0)) // Seek
9192
+ .then(function () {
9193
+ return embed.setCurrentTime(time);
9194
+ }) // Restore paused
9195
+ .then(function () {
9196
+ return restorePause && embed.pause();
9197
+ }) // Restore volume
9198
+ .then(function () {
9199
+ return restorePause && embed.setVolume(volume);
9200
+ }).catch(function () {// Do nothing
9201
+ });
9202
+ }
9203
+ }); // Playback speed
9204
 
9205
+ var speed = player.config.speed.selected;
9206
+ Object.defineProperty(player.media, 'playbackRate', {
9207
+ get: function get() {
9208
+ return speed;
9209
+ },
9210
+ set: function set(input) {
9211
+ player.embed.setPlaybackRate(input).then(function () {
9212
+ speed = input;
9213
+ triggerEvent.call(player, player.media, 'ratechange');
9214
+ }).catch(function (error) {
9215
+ // Hide menu item (and menu if empty)
9216
+ if (error.name === 'Error') {
9217
+ controls.setSpeedMenu.call(player, []);
9218
+ }
9219
+ });
9220
+ }
9221
+ }); // Volume
9222
 
9223
+ var volume = player.config.volume;
9224
+ Object.defineProperty(player.media, 'volume', {
9225
+ get: function get() {
9226
+ return volume;
9227
+ },
9228
+ set: function set(input) {
9229
+ player.embed.setVolume(input).then(function () {
9230
+ volume = input;
9231
+ triggerEvent.call(player, player.media, 'volumechange');
9232
+ });
9233
+ }
9234
+ }); // Muted
9235
 
9236
+ var muted = player.config.muted;
9237
+ Object.defineProperty(player.media, 'muted', {
9238
+ get: function get() {
9239
+ return muted;
9240
+ },
9241
+ set: function set(input) {
9242
+ var toggle = is$1.boolean(input) ? input : false;
9243
+ player.embed.setVolume(toggle ? 0 : player.config.volume).then(function () {
9244
+ muted = toggle;
9245
+ triggerEvent.call(player, player.media, 'volumechange');
9246
+ });
9247
+ }
9248
+ }); // Loop
9249
 
9250
+ var loop = player.config.loop;
9251
+ Object.defineProperty(player.media, 'loop', {
9252
+ get: function get() {
9253
+ return loop;
9254
+ },
9255
+ set: function set(input) {
9256
+ var toggle = is$1.boolean(input) ? input : player.config.loop.active;
9257
+ player.embed.setLoop(toggle).then(function () {
9258
+ loop = toggle;
9259
+ });
9260
+ }
9261
+ }); // Source
9262
 
9263
+ var currentSrc;
9264
+ player.embed.getVideoUrl().then(function (value) {
9265
+ currentSrc = value;
9266
+ controls.setDownloadUrl.call(player);
9267
+ }).catch(function (error) {
9268
+ _this2.debug.warn(error);
9269
+ });
9270
+ Object.defineProperty(player.media, 'currentSrc', {
9271
+ get: function get() {
9272
+ return currentSrc;
9273
+ }
9274
+ }); // Ended
9275
 
9276
+ Object.defineProperty(player.media, 'ended', {
9277
+ get: function get() {
9278
+ return player.currentTime === player.duration;
9279
+ }
9280
+ }); // Set aspect ratio based on video size
9281
 
9282
+ Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(function (dimensions) {
9283
+ var _dimensions = _slicedToArray(dimensions, 2),
9284
+ width = _dimensions[0],
9285
+ height = _dimensions[1];
9286
 
9287
+ player.embed.ratio = [width, height];
9288
+ setAspectRatio.call(_this2);
9289
+ }); // Set autopause
9290
 
9291
+ player.embed.setAutopause(player.config.autopause).then(function (state) {
9292
+ player.config.autopause = state;
9293
+ }); // Get title
9294
 
9295
+ player.embed.getVideoTitle().then(function (title) {
9296
+ player.config.title = title;
9297
+ ui.setTitle.call(_this2);
9298
+ }); // Get current time
9299
 
9300
+ player.embed.getCurrentTime().then(function (value) {
9301
+ currentTime = value;
9302
+ triggerEvent.call(player, player.media, 'timeupdate');
9303
+ }); // Get duration
 
9304
 
9305
+ player.embed.getDuration().then(function (value) {
9306
+ player.media.duration = value;
9307
+ triggerEvent.call(player, player.media, 'durationchange');
9308
+ }); // Get captions
9309
 
9310
+ player.embed.getTextTracks().then(function (tracks) {
9311
+ player.media.textTracks = tracks;
9312
+ captions.setup.call(player);
9313
+ });
9314
+ player.embed.on('cuechange', function (_ref) {
9315
+ var _ref$cues = _ref.cues,
9316
+ cues = _ref$cues === void 0 ? [] : _ref$cues;
9317
+ var strippedCues = cues.map(function (cue) {
9318
+ return stripHTML(cue.text);
9319
+ });
9320
+ captions.updateCues.call(player, strippedCues);
9321
+ });
9322
+ player.embed.on('loaded', function () {
9323
+ // Assure state and events are updated on autoplay
9324
+ player.embed.getPaused().then(function (paused) {
9325
+ assurePlaybackState.call(player, !paused);
9326
 
9327
+ if (!paused) {
9328
+ triggerEvent.call(player, player.media, 'playing');
9329
+ }
9330
+ });
 
9331
 
9332
+ if (is$1.element(player.embed.element) && player.supported.ui) {
9333
+ var frame = player.embed.element; // Fix keyboard focus issues
9334
+ // https://github.com/sampotts/plyr/issues/317
 
 
 
 
 
 
 
 
 
 
9335
 
9336
+ frame.setAttribute('tabindex', -1);
9337
+ }
9338
+ });
9339
+ player.embed.on('play', function () {
9340
+ assurePlaybackState.call(player, true);
9341
+ triggerEvent.call(player, player.media, 'playing');
9342
+ });
9343
+ player.embed.on('pause', function () {
9344
+ assurePlaybackState.call(player, false);
9345
+ });
9346
+ player.embed.on('timeupdate', function (data) {
9347
+ player.media.seeking = false;
9348
+ currentTime = data.seconds;
9349
+ triggerEvent.call(player, player.media, 'timeupdate');
9350
+ });
9351
+ player.embed.on('progress', function (data) {
9352
+ player.media.buffered = data.percent;
9353
+ triggerEvent.call(player, player.media, 'progress'); // Check all loaded
9354
 
9355
+ if (parseInt(data.percent, 10) === 1) {
9356
+ triggerEvent.call(player, player.media, 'canplaythrough');
9357
+ } // Get duration as if we do it before load, it gives an incorrect value
9358
+ // https://github.com/sampotts/plyr/issues/891
9359
 
 
 
 
9360
 
9361
+ player.embed.getDuration().then(function (value) {
9362
+ if (value !== player.media.duration) {
9363
+ player.media.duration = value;
9364
+ triggerEvent.call(player, player.media, 'durationchange');
9365
+ }
9366
+ });
9367
+ });
9368
+ player.embed.on('seeked', function () {
9369
+ player.media.seeking = false;
9370
+ triggerEvent.call(player, player.media, 'seeked');
9371
+ });
9372
+ player.embed.on('ended', function () {
9373
+ player.media.paused = true;
9374
+ triggerEvent.call(player, player.media, 'ended');
9375
+ });
9376
+ player.embed.on('error', function (detail) {
9377
+ player.media.error = detail;
9378
+ triggerEvent.call(player, player.media, 'error');
9379
+ }); // Rebuild UI
9380
 
9381
+ setTimeout(function () {
9382
+ return ui.build.call(player);
9383
+ }, 0);
9384
+ }
9385
+ };
9386
 
9387
+ // ==========================================================================
 
 
9388
 
9389
+ function parseId$1(url) {
9390
+ if (is$1.empty(url)) {
9391
+ return null;
9392
+ }
9393
 
9394
+ var regex = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/;
9395
+ return url.match(regex) ? RegExp.$2 : url;
9396
+ } // Set playback state and trigger change (only on actual change)
9397
 
9398
 
9399
+ function assurePlaybackState$1(play) {
9400
+ if (play && !this.embed.hasPlayed) {
9401
+ this.embed.hasPlayed = true;
9402
+ }
9403
 
9404
+ if (this.media.paused === play) {
9405
+ this.media.paused = !play;
9406
+ triggerEvent.call(this, this.media, play ? 'play' : 'pause');
9407
+ }
9408
+ }
9409
 
9410
+ function getHost(config) {
9411
+ if (config.noCookie) {
9412
+ return 'https://www.youtube-nocookie.com';
9413
+ }
 
9414
 
9415
+ if (window.location.protocol === 'http:') {
9416
+ return 'http://www.youtube.com';
9417
+ } // Use YouTube's default
9418
 
 
 
9419
 
9420
+ return undefined;
9421
+ }
 
 
 
 
 
9422
 
9423
+ var youtube = {
9424
+ setup: function setup() {
9425
+ var _this = this;
 
9426
 
9427
+ // Add embed class for responsive
9428
+ toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Setup API
9429
 
9430
+ if (is$1.object(window.YT) && is$1.function(window.YT.Player)) {
9431
+ youtube.ready.call(this);
9432
+ } else {
9433
+ // Reference current global callback
9434
+ var callback = window.onYouTubeIframeAPIReady; // Set callback to process queue
9435
 
9436
+ window.onYouTubeIframeAPIReady = function () {
9437
+ // Call global callback if set
9438
+ if (is$1.function(callback)) {
9439
+ callback();
9440
+ }
9441
 
9442
+ youtube.ready.call(_this);
9443
+ }; // Load the SDK
 
9444
 
9445
 
9446
+ loadScript(this.config.urls.youtube.sdk).catch(function (error) {
9447
+ _this.debug.warn('YouTube API failed to load', error);
9448
+ });
9449
+ }
9450
+ },
9451
+ // Get the media title
9452
+ getTitle: function getTitle(videoId) {
9453
+ var _this2 = this;
9454
 
9455
+ var url = format(this.config.urls.youtube.api, videoId);
9456
+ fetch(url).then(function (data) {
9457
+ if (is$1.object(data)) {
9458
+ var title = data.title,
9459
+ height = data.height,
9460
+ width = data.width; // Set title
 
9461
 
9462
+ _this2.config.title = title;
9463
+ ui.setTitle.call(_this2); // Set aspect ratio
9464
 
9465
+ _this2.embed.ratio = [width, height];
9466
+ }
 
9467
 
9468
+ setAspectRatio.call(_this2);
9469
+ }).catch(function () {
9470
+ // Set aspect ratio
9471
+ setAspectRatio.call(_this2);
9472
+ });
9473
+ },
9474
+ // API ready
9475
+ ready: function ready() {
9476
+ var player = this; // Ignore already setup (race condition)
9477
 
9478
+ var currentId = player.media && player.media.getAttribute('id');
 
 
 
 
 
 
9479
 
9480
+ if (!is$1.empty(currentId) && currentId.startsWith('youtube-')) {
9481
+ return;
9482
+ } // Get the source URL or ID
 
 
9483
 
9484
 
9485
+ var source = player.media.getAttribute('src'); // Get from <div> if needed
 
 
9486
 
9487
+ if (is$1.empty(source)) {
9488
+ source = player.media.getAttribute(this.config.attributes.embed.id);
9489
+ } // Replace the <iframe> with a <div> due to YouTube API issues
9490
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9491
 
9492
+ var videoId = parseId$1(source);
9493
+ var id = generateId(player.provider); // Get poster, if already set
 
 
 
 
9494
 
9495
+ var poster = player.poster; // Replace media element
 
 
 
 
 
 
 
 
9496
 
9497
+ var container = createElement('div', {
9498
+ id: id,
9499
+ poster: poster
9500
+ });
9501
+ player.media = replaceElement(container, player.media); // Id to poster wrapper
9502
 
9503
+ var posterSrc = function posterSrc(s) {
9504
+ return "https://i.ytimg.com/vi/".concat(videoId, "/").concat(s, "default.jpg");
9505
+ }; // Check thumbnail images in order of quality, but reject fallback thumbnails (120px wide)
 
 
 
 
9506
 
 
 
 
 
9507
 
9508
+ loadImage(posterSrc('maxres'), 121) // Higest quality and unpadded
9509
+ .catch(function () {
9510
+ return loadImage(posterSrc('sd'), 121);
9511
+ }) // 480p padded 4:3
9512
+ .catch(function () {
9513
+ return loadImage(posterSrc('hq'));
9514
+ }) // 360p padded 4:3. Always exists
9515
+ .then(function (image) {
9516
+ return ui.setPoster.call(player, image.src);
9517
+ }).then(function (src) {
9518
+ // If the image is padded, use background-size "cover" instead (like youtube does too with their posters)
9519
+ if (!src.includes('maxres')) {
9520
+ player.elements.poster.style.backgroundSize = 'cover';
9521
+ }
9522
+ }).catch(function () {});
9523
+ var config = player.config.youtube; // Setup instance
9524
+ // https://developers.google.com/youtube/iframe_api_reference
9525
 
9526
+ player.embed = new window.YT.Player(id, {
9527
+ videoId: videoId,
9528
+ host: getHost(config),
9529
+ playerVars: extend({}, {
9530
+ autoplay: player.config.autoplay ? 1 : 0,
9531
+ // Autoplay
9532
+ hl: player.config.hl,
9533
+ // iframe interface language
9534
+ controls: player.supported.ui ? 0 : 1,
9535
+ // Only show controls if not fully supported
9536
+ disablekb: 1,
9537
+ // Disable keyboard as we handle it
9538
+ playsinline: !player.config.fullscreen.iosNative ? 1 : 0,
9539
+ // Allow iOS inline playback
9540
+ // Captions are flaky on YouTube
9541
+ cc_load_policy: player.captions.active ? 1 : 0,
9542
+ cc_lang_pref: player.config.captions.language,
9543
+ // Tracking for stats
9544
+ widget_referrer: window ? window.location.href : null
9545
+ }, config),
9546
+ events: {
9547
+ onError: function onError(event) {
9548
+ // YouTube may fire onError twice, so only handle it once
9549
+ if (!player.media.error) {
9550
+ var code = event.data; // Messages copied from https://developers.google.com/youtube/iframe_api_reference#onError
9551
 
9552
+ var message = {
9553
+ 2: 'The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.',
9554
+ 5: 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.',
9555
+ 100: 'The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.',
9556
+ 101: 'The owner of the requested video does not allow it to be played in embedded players.',
9557
+ 150: 'The owner of the requested video does not allow it to be played in embedded players.'
9558
+ }[code] || 'An unknown error occured';
9559
+ player.media.error = {
9560
+ code: code,
9561
+ message: message
9562
+ };
9563
+ triggerEvent.call(player, player.media, 'error');
9564
+ }
9565
+ },
9566
+ onPlaybackRateChange: function onPlaybackRateChange(event) {
9567
+ // Get the instance
9568
+ var instance = event.target; // Get current speed
9569
 
9570
+ player.media.playbackRate = instance.getPlaybackRate();
9571
+ triggerEvent.call(player, player.media, 'ratechange');
9572
+ },
9573
+ onReady: function onReady(event) {
9574
+ // Bail if onReady has already been called. See issue #1108
9575
+ if (is$1.function(player.media.play)) {
9576
+ return;
9577
+ } // Get the instance
9578
 
 
 
 
 
 
9579
 
9580
+ var instance = event.target; // Get the title
9581
 
9582
+ youtube.getTitle.call(player, videoId); // Create a faux HTML5 API using the YouTube API
 
9583
 
9584
+ player.media.play = function () {
9585
+ assurePlaybackState$1.call(player, true);
9586
+ instance.playVideo();
9587
+ };
9588
 
9589
+ player.media.pause = function () {
9590
+ assurePlaybackState$1.call(player, false);
9591
+ instance.pauseVideo();
9592
+ };
9593
 
9594
+ player.media.stop = function () {
9595
+ instance.stopVideo();
9596
+ };
9597
 
9598
+ player.media.duration = instance.getDuration();
9599
+ player.media.paused = true; // Seeking
 
 
 
 
 
9600
 
9601
+ player.media.currentTime = 0;
9602
+ Object.defineProperty(player.media, 'currentTime', {
9603
+ get: function get() {
9604
+ return Number(instance.getCurrentTime());
9605
+ },
9606
+ set: function set(time) {
9607
+ // If paused and never played, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet).
9608
+ if (player.paused && !player.embed.hasPlayed) {
9609
+ player.embed.mute();
9610
+ } // Set seeking state and trigger event
9611
 
9612
 
9613
+ player.media.seeking = true;
9614
+ triggerEvent.call(player, player.media, 'seeking'); // Seek after events sent
 
9615
 
9616
+ instance.seekTo(time);
9617
+ }
9618
+ }); // Playback speed
9619
 
9620
+ Object.defineProperty(player.media, 'playbackRate', {
9621
+ get: function get() {
9622
+ return instance.getPlaybackRate();
9623
+ },
9624
+ set: function set(input) {
9625
+ instance.setPlaybackRate(input);
9626
+ }
9627
+ }); // Volume
9628
 
9629
+ var volume = player.config.volume;
9630
+ Object.defineProperty(player.media, 'volume', {
9631
+ get: function get() {
9632
+ return volume;
9633
+ },
9634
+ set: function set(input) {
9635
+ volume = input;
9636
+ instance.setVolume(volume * 100);
9637
+ triggerEvent.call(player, player.media, 'volumechange');
9638
+ }
9639
+ }); // Muted
9640
 
9641
+ var muted = player.config.muted;
9642
+ Object.defineProperty(player.media, 'muted', {
9643
+ get: function get() {
9644
+ return muted;
9645
+ },
9646
+ set: function set(input) {
9647
+ var toggle = is$1.boolean(input) ? input : muted;
9648
+ muted = toggle;
9649
+ instance[toggle ? 'mute' : 'unMute']();
9650
+ triggerEvent.call(player, player.media, 'volumechange');
9651
+ }
9652
+ }); // Source
9653
 
9654
+ Object.defineProperty(player.media, 'currentSrc', {
9655
+ get: function get() {
9656
+ return instance.getVideoUrl();
9657
+ }
9658
+ }); // Ended
9659
 
9660
+ Object.defineProperty(player.media, 'ended', {
9661
+ get: function get() {
9662
+ return player.currentTime === player.duration;
9663
+ }
9664
+ }); // Get available speeds
 
9665
 
9666
+ player.options.speed = instance.getAvailablePlaybackRates(); // Set the tabindex to avoid focus entering iframe
 
9667
 
9668
+ if (player.supported.ui) {
9669
+ player.media.setAttribute('tabindex', -1);
9670
+ }
9671
 
9672
+ triggerEvent.call(player, player.media, 'timeupdate');
9673
+ triggerEvent.call(player, player.media, 'durationchange'); // Reset timer
 
 
9674
 
9675
+ clearInterval(player.timers.buffering); // Setup buffering
 
 
9676
 
9677
+ player.timers.buffering = setInterval(function () {
9678
+ // Get loaded % from YouTube
9679
+ player.media.buffered = instance.getVideoLoadedFraction(); // Trigger progress only when we actually buffer something
 
 
 
9680
 
9681
+ if (player.media.lastBuffered === null || player.media.lastBuffered < player.media.buffered) {
9682
+ triggerEvent.call(player, player.media, 'progress');
9683
+ } // Set last buffer point
9684
 
 
 
 
 
9685
 
9686
+ player.media.lastBuffered = player.media.buffered; // Bail if we're at 100%
9687
 
9688
+ if (player.media.buffered === 1) {
9689
+ clearInterval(player.timers.buffering); // Trigger event
9690
 
9691
+ triggerEvent.call(player, player.media, 'canplaythrough');
9692
+ }
9693
+ }, 200); // Rebuild UI
9694
 
9695
+ setTimeout(function () {
9696
+ return ui.build.call(player);
9697
+ }, 50);
9698
+ },
9699
+ onStateChange: function onStateChange(event) {
9700
+ // Get the instance
9701
+ var instance = event.target; // Reset timer
 
 
 
9702
 
9703
+ clearInterval(player.timers.playing);
9704
+ var seeked = player.media.seeking && [1, 2].includes(event.data);
9705
 
9706
+ if (seeked) {
9707
+ // Unset seeking and fire seeked event
9708
+ player.media.seeking = false;
9709
+ triggerEvent.call(player, player.media, 'seeked');
9710
+ } // Handle events
9711
+ // -1 Unstarted
9712
+ // 0 Ended
9713
+ // 1 Playing
9714
+ // 2 Paused
9715
+ // 3 Buffering
9716
+ // 5 Video cued
9717
 
 
 
 
 
 
 
 
 
 
 
 
 
9718
 
9719
+ switch (event.data) {
9720
+ case -1:
9721
+ // Update scrubber
9722
+ triggerEvent.call(player, player.media, 'timeupdate'); // Get loaded % from YouTube
9723
 
9724
+ player.media.buffered = instance.getVideoLoadedFraction();
9725
+ triggerEvent.call(player, player.media, 'progress');
9726
+ break;
9727
 
9728
+ case 0:
9729
+ assurePlaybackState$1.call(player, false); // YouTube doesn't support loop for a single video, so mimick it.
 
 
 
 
9730
 
9731
+ if (player.media.loop) {
9732
+ // YouTube needs a call to `stopVideo` before playing again
9733
+ instance.stopVideo();
9734
+ instance.playVideo();
9735
+ } else {
9736
+ triggerEvent.call(player, player.media, 'ended');
9737
+ }
9738
 
9739
+ break;
9740
 
9741
+ case 1:
9742
+ // Restore paused state (YouTube starts playing on seek if the video hasn't been played yet)
9743
+ if (!player.config.autoplay && player.media.paused && !player.embed.hasPlayed) {
9744
+ player.media.pause();
9745
+ } else {
9746
+ assurePlaybackState$1.call(player, true);
9747
+ triggerEvent.call(player, player.media, 'playing'); // Poll to get playback progress
9748
 
9749
+ player.timers.playing = setInterval(function () {
9750
+ triggerEvent.call(player, player.media, 'timeupdate');
9751
+ }, 50); // Check duration again due to YouTube bug
9752
+ // https://github.com/sampotts/plyr/issues/374
9753
+ // https://code.google.com/p/gdata-issues/issues/detail?id=8690
9754
 
9755
+ if (player.media.duration !== instance.getDuration()) {
9756
+ player.media.duration = instance.getDuration();
9757
+ triggerEvent.call(player, player.media, 'durationchange');
9758
+ }
9759
+ }
9760
 
9761
+ break;
 
 
9762
 
9763
+ case 2:
9764
+ // Restore audio (YouTube starts playing on seek if the video hasn't been played yet)
9765
+ if (!player.muted) {
9766
+ player.embed.unMute();
9767
+ }
9768
 
9769
+ assurePlaybackState$1.call(player, false);
9770
+ break;
 
9771
 
9772
+ default:
9773
+ break;
9774
+ }
9775
 
9776
+ triggerEvent.call(player, player.elements.container, 'statechange', false, {
9777
+ code: event.data
9778
+ });
9779
+ }
9780
+ }
9781
+ });
9782
+ }
9783
+ };
9784
 
9785
+ // ==========================================================================
9786
+ var media = {
9787
+ // Setup media
9788
+ setup: function setup() {
9789
+ // If there's no media, bail
9790
+ if (!this.media) {
9791
+ this.debug.warn('No media element found!');
9792
+ return;
9793
+ } // Add type class
9794
 
9795
 
9796
+ toggleClass(this.elements.container, this.config.classNames.type.replace('{0}', this.type), true); // Add provider class
 
 
 
 
 
 
 
 
 
 
 
 
 
9797
 
9798
+ toggleClass(this.elements.container, this.config.classNames.provider.replace('{0}', this.provider), true); // Add video class for embeds
9799
+ // This will require changes if audio embeds are added
9800
 
9801
+ if (this.isEmbed) {
9802
+ toggleClass(this.elements.container, this.config.classNames.type.replace('{0}', 'video'), true);
9803
+ } // Inject the player wrapper
 
 
 
 
 
9804
 
9805
 
9806
+ if (this.isVideo) {
9807
+ // Create the wrapper div
9808
+ this.elements.wrapper = createElement('div', {
9809
+ class: this.config.classNames.video
9810
+ }); // Wrap the video in a container
9811
 
9812
+ wrap(this.media, this.elements.wrapper); // Faux poster container
9813
 
9814
+ this.elements.poster = createElement('div', {
9815
+ class: this.config.classNames.poster
 
 
 
 
 
 
 
9816
  });
9817
+ this.elements.wrapper.appendChild(this.elements.poster);
9818
+ }
9819
+
9820
+ if (this.isHTML5) {
9821
+ html5.extend.call(this);
9822
+ } else if (this.isYouTube) {
9823
+ youtube.setup.call(this);
9824
+ } else if (this.isVimeo) {
9825
+ vimeo.setup.call(this);
9826
  }
9827
  }
9828
  };
9829
 
9830
+ var destroy = function destroy(instance) {
9831
+ // Destroy our adsManager
9832
+ if (instance.manager) {
9833
+ instance.manager.destroy();
9834
+ } // Destroy our adsManager
9835
 
 
 
 
9836
 
9837
+ if (instance.elements.displayContainer) {
9838
+ instance.elements.displayContainer.destroy();
 
 
9839
  }
9840
 
9841
+ instance.elements.container.remove();
9842
+ };
 
 
 
 
9843
 
9844
+ var Ads =
9845
+ /*#__PURE__*/
9846
+ function () {
9847
+ /**
9848
+ * Ads constructor.
9849
+ * @param {Object} player
9850
+ * @return {Ads}
9851
+ */
9852
+ function Ads(player) {
9853
+ var _this = this;
9854
 
9855
+ _classCallCheck(this, Ads);
 
 
 
 
9856
 
9857
+ this.player = player;
9858
+ this.config = player.config.ads;
9859
+ this.playing = false;
9860
+ this.initialized = false;
9861
+ this.elements = {
9862
+ container: null,
9863
+ displayContainer: null
9864
+ };
9865
+ this.manager = null;
9866
+ this.loader = null;
9867
+ this.cuePoints = null;
9868
+ this.events = {};
9869
+ this.safetyTimer = null;
9870
+ this.countdownTimer = null; // Setup a promise to resolve when the IMA manager is ready
9871
+
9872
+ this.managerPromise = new Promise(function (resolve, reject) {
9873
+ // The ad is loaded and ready
9874
+ _this.on('loaded', resolve); // Ads failed
9875
+
9876
+
9877
+ _this.on('error', reject);
9878
  });
9879
+ this.load();
9880
  }
9881
 
9882
+ _createClass(Ads, [{
9883
+ key: "load",
9884
 
9885
+ /**
9886
+ * Load the IMA SDK
9887
+ */
9888
+ value: function load() {
9889
+ var _this2 = this;
 
 
9890
 
9891
+ if (!this.enabled) {
9892
+ return;
9893
+ } // Check if the Google IMA3 SDK is loaded or load it ourselves
9894
 
 
 
 
 
 
9895
 
9896
+ if (!is$1.object(window.google) || !is$1.object(window.google.ima)) {
9897
+ loadScript(this.player.config.urls.googleIMA.sdk).then(function () {
9898
+ _this2.ready();
9899
+ }).catch(function () {
9900
+ // Script failed to load or is blocked
9901
+ _this2.trigger('error', new Error('Google IMA SDK failed to load'));
9902
+ });
9903
+ } else {
9904
+ this.ready();
9905
+ }
9906
+ }
9907
+ /**
9908
+ * Get the ads instance ready
9909
+ */
9910
 
9911
+ }, {
9912
+ key: "ready",
9913
+ value: function ready() {
9914
+ var _this3 = this;
9915
 
9916
+ // Double check we're enabled
9917
+ if (!this.enabled) {
9918
+ destroy(this);
9919
+ } // Start ticking our safety timer. If the whole advertisement
9920
+ // thing doesn't resolve within our set time; we bail
9921
 
9922
 
9923
+ this.startSafetyTimer(12000, 'ready()'); // Clear the safety timer
 
 
 
 
9924
 
9925
+ this.managerPromise.then(function () {
9926
+ _this3.clearSafetyTimer('onAdsManagerLoaded()');
9927
+ }); // Set listeners on the Plyr instance
 
 
 
 
 
 
 
 
 
 
 
9928
 
9929
+ this.listeners(); // Setup the IMA SDK
9930
 
9931
+ this.setupIMA();
9932
+ } // Build the tag URL
 
 
 
9933
 
9934
+ }, {
9935
+ key: "setupIMA",
9936
 
9937
+ /**
9938
+ * In order for the SDK to display ads for our video, we need to tell it where to put them,
9939
+ * so here we define our ad container. This div is set up to render on top of the video player.
9940
+ * Using the code below, we tell the SDK to render ads within that div. We also provide a
9941
+ * handle to the content video player - the SDK will poll the current time of our player to
9942
+ * properly place mid-rolls. After we create the ad display container, we initialize it. On
9943
+ * mobile devices, this initialization is done as the result of a user action.
9944
+ */
9945
+ value: function setupIMA() {
9946
+ // Create the container for our advertisements
9947
+ this.elements.container = createElement('div', {
9948
+ class: this.player.config.classNames.ads
9949
+ });
9950
+ this.player.elements.container.appendChild(this.elements.container); // So we can run VPAID2
9951
 
9952
+ google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED); // Set language
9953
 
9954
+ google.ima.settings.setLocale(this.player.config.ads.language); // Set playback for iOS10+
 
 
9955
 
9956
+ google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline); // We assume the adContainer is the video container of the plyr element that will house the ads
 
 
 
 
 
9957
 
9958
+ this.elements.displayContainer = new google.ima.AdDisplayContainer(this.elements.container, this.player.media); // Request video ads to be pre-loaded
 
 
 
9959
 
9960
+ this.requestAds();
9961
+ }
9962
+ /**
9963
+ * Request advertisements
9964
+ */
9965
 
9966
+ }, {
9967
+ key: "requestAds",
9968
+ value: function requestAds() {
9969
+ var _this4 = this;
 
9970
 
9971
+ var container = this.player.elements.container;
9972
 
9973
+ try {
9974
+ // Create ads loader
9975
+ this.loader = new google.ima.AdsLoader(this.elements.displayContainer); // Listen and respond to ads loaded and error events
 
 
 
 
 
9976
 
9977
+ this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, function (event) {
9978
+ return _this4.onAdsManagerLoaded(event);
9979
+ }, false);
9980
+ this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, function (error) {
9981
+ return _this4.onAdError(error);
9982
+ }, false); // Request video ads
9983
 
9984
+ var request = new google.ima.AdsRequest();
9985
+ request.adTagUrl = this.tagUrl; // Specify the linear and nonlinear slot sizes. This helps the SDK
9986
+ // to select the correct creative if multiple are returned
9987
 
9988
+ request.linearAdSlotWidth = container.offsetWidth;
9989
+ request.linearAdSlotHeight = container.offsetHeight;
9990
+ request.nonLinearAdSlotWidth = container.offsetWidth;
9991
+ request.nonLinearAdSlotHeight = container.offsetHeight; // We only overlay ads as we only support video.
9992
 
9993
+ request.forceNonLinearFullSlot = false; // Mute based on current state
9994
 
9995
+ request.setAdWillPlayMuted(!this.player.muted);
9996
+ this.loader.requestAds(request);
9997
+ } catch (e) {
9998
+ this.onAdError(e);
9999
+ }
10000
+ }
10001
+ /**
10002
+ * Update the ad countdown
10003
+ * @param {Boolean} start
10004
+ */
10005
 
10006
+ }, {
10007
+ key: "pollCountdown",
10008
+ value: function pollCountdown() {
10009
+ var _this5 = this;
10010
 
10011
+ var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
 
 
 
10012
 
10013
+ if (!start) {
10014
+ clearInterval(this.countdownTimer);
10015
+ this.elements.container.removeAttribute('data-badge-text');
10016
+ return;
10017
+ }
10018
 
10019
+ var update = function update() {
10020
+ var time = formatTime(Math.max(_this5.manager.getRemainingTime(), 0));
10021
+ var label = "".concat(i18n.get('advertisement', _this5.player.config), " - ").concat(time);
10022
 
10023
+ _this5.elements.container.setAttribute('data-badge-text', label);
10024
+ };
 
 
 
 
 
 
10025
 
10026
+ this.countdownTimer = setInterval(update, 100);
 
 
10027
  }
10028
+ /**
10029
+ * This method is called whenever the ads are ready inside the AdDisplayContainer
10030
+ * @param {Event} adsManagerLoadedEvent
10031
+ */
10032
 
10033
+ }, {
10034
+ key: "onAdsManagerLoaded",
10035
+ value: function onAdsManagerLoaded(event) {
10036
+ var _this6 = this;
10037
 
10038
+ // Load could occur after a source change (race condition)
10039
+ if (!this.enabled) {
10040
+ return;
10041
+ } // Get the ads manager
10042
 
 
 
 
 
 
 
 
 
10043
 
10044
+ var settings = new google.ima.AdsRenderingSettings(); // Tell the SDK to save and restore content video state on our behalf
10045
 
10046
+ settings.restoreCustomPlaybackStateOnAdBreakComplete = true;
10047
+ settings.enablePreloading = true; // The SDK is polling currentTime on the contentPlayback. And needs a duration
10048
+ // so it can determine when to start the mid- and post-roll
10049
 
10050
+ this.manager = event.getAdsManager(this.player, settings); // Get the cue points for any mid-rolls by filtering out the pre- and post-roll
10051
 
10052
+ this.cuePoints = this.manager.getCuePoints(); // Add listeners to the required events
10053
+ // Advertisement error events
 
10054
 
10055
+ this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, function (error) {
10056
+ return _this6.onAdError(error);
10057
+ }); // Advertisement regular events
10058
 
10059
+ Object.keys(google.ima.AdEvent.Type).forEach(function (type) {
10060
+ _this6.manager.addEventListener(google.ima.AdEvent.Type[type], function (e) {
10061
+ return _this6.onAdEvent(e);
10062
+ });
10063
+ }); // Resolve our adsManager
10064
 
10065
+ this.trigger('loaded');
10066
+ }
10067
+ }, {
10068
+ key: "addCuePoints",
10069
+ value: function addCuePoints() {
10070
+ var _this7 = this;
10071
 
10072
+ // Add advertisement cue's within the time line if available
10073
+ if (!is$1.empty(this.cuePoints)) {
10074
+ this.cuePoints.forEach(function (cuePoint) {
10075
+ if (cuePoint !== 0 && cuePoint !== -1 && cuePoint < _this7.player.duration) {
10076
+ var seekElement = _this7.player.elements.progress;
10077
 
10078
+ if (is$1.element(seekElement)) {
10079
+ var cuePercentage = 100 / _this7.player.duration * cuePoint;
10080
+ var cue = createElement('span', {
10081
+ class: _this7.player.config.classNames.cues
10082
+ });
10083
+ cue.style.left = "".concat(cuePercentage.toString(), "%");
10084
+ seekElement.appendChild(cue);
10085
+ }
10086
+ }
10087
+ });
10088
+ }
10089
  }
10090
+ /**
10091
+ * This is where all the event handling takes place. Retrieve the ad from the event. Some
10092
+ * events (e.g. ALL_ADS_COMPLETED) don't have the ad object associated
10093
+ * https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdEvent.Type
10094
+ * @param {Event} event
10095
+ */
10096
 
10097
+ }, {
10098
+ key: "onAdEvent",
10099
+ value: function onAdEvent(event) {
10100
+ var _this8 = this;
10101
 
10102
+ var container = this.player.elements.container; // Retrieve the ad from the event. Some events (e.g. ALL_ADS_COMPLETED)
10103
+ // don't have ad object associated
 
 
10104
 
10105
+ var ad = event.getAd();
10106
+ var adData = event.getAdData(); // Proxy event
 
 
10107
 
10108
+ var dispatchEvent = function dispatchEvent(type) {
10109
+ triggerEvent.call(_this8.player, _this8.player.media, "ads".concat(type.replace(/_/g, '').toLowerCase()));
10110
+ }; // Bubble the event
10111
 
 
 
10112
 
10113
+ dispatchEvent(event.type);
10114
 
10115
+ switch (event.type) {
10116
+ case google.ima.AdEvent.Type.LOADED:
10117
+ // This is the first event sent for an ad - it is possible to determine whether the
10118
+ // ad is a video ad or an overlay
10119
+ this.trigger('loaded'); // Start countdown
10120
 
10121
+ this.pollCountdown(true);
10122
 
10123
+ if (!ad.isLinear()) {
10124
+ // Position AdDisplayContainer correctly for overlay
10125
+ ad.width = container.offsetWidth;
10126
+ ad.height = container.offsetHeight;
10127
+ } // console.info('Ad type: ' + event.getAd().getAdPodInfo().getPodIndex());
10128
+ // console.info('Ad time: ' + event.getAd().getAdPodInfo().getTimeOffset());
10129
 
10130
 
10131
+ break;
 
 
10132
 
10133
+ case google.ima.AdEvent.Type.STARTED:
10134
+ // Set volume to match player
10135
+ this.manager.setVolume(this.player.volume);
10136
+ break;
10137
 
10138
+ case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:
10139
+