@opengovsg/mockpass 2.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/.eslintrc.json +13 -0
  2. package/.gitattributes +2 -0
  3. package/.github/dependabot.yml +14 -0
  4. package/.github/mergify.yml +12 -0
  5. package/.github/workflows/ci.yml +27 -0
  6. package/.github/workflows/npmpublish.yml +22 -0
  7. package/.gitpod.yml +5 -0
  8. package/.husky/pre-commit +4 -0
  9. package/.husky/pre-push +4 -0
  10. package/.prettierrc.js +5 -0
  11. package/Dockerfile +11 -0
  12. package/LICENSE +21 -0
  13. package/README.md +99 -0
  14. package/commitlint.config.js +7 -0
  15. package/index.js +87 -0
  16. package/lib/assertions.js +319 -0
  17. package/lib/crypto/index.js +61 -0
  18. package/lib/crypto/myinfo-signature.js +153 -0
  19. package/lib/express/index.js +6 -0
  20. package/lib/express/myinfo/consent.js +160 -0
  21. package/lib/express/myinfo/controllers.js +179 -0
  22. package/lib/express/myinfo/index.js +10 -0
  23. package/lib/express/oidc.js +131 -0
  24. package/lib/express/saml.js +171 -0
  25. package/lib/express/sgid.js +168 -0
  26. package/lib/saml-artifact.js +32 -0
  27. package/package.json +81 -0
  28. package/public/mockpass/resources/css/animate.css +43 -0
  29. package/public/mockpass/resources/css/common.css +121 -0
  30. package/public/mockpass/resources/css/reset.css +95 -0
  31. package/public/mockpass/resources/css/style-baseline-small-media.css +567 -0
  32. package/public/mockpass/resources/css/style-baseline.css +1006 -0
  33. package/public/mockpass/resources/css/style-common-small-media.css +156 -0
  34. package/public/mockpass/resources/css/style-common.css +510 -0
  35. package/public/mockpass/resources/css/style-homepage-small-media.css +588 -0
  36. package/public/mockpass/resources/css/style-homepage.css +674 -0
  37. package/public/mockpass/resources/css/style-main.css +9 -0
  38. package/public/mockpass/resources/img/ajax-loader.gif +0 -0
  39. package/public/mockpass/resources/img/ask_cheryl_tab.png +0 -0
  40. package/public/mockpass/resources/img/background/large-device/sp_bg.jpg +0 -0
  41. package/public/mockpass/resources/img/background/medium-device/ipad-bg.jpg +0 -0
  42. package/public/mockpass/resources/img/background/medium-device/ipad-landscape-sp-bg.jpg +0 -0
  43. package/public/mockpass/resources/img/background/small-device/mobile-sp-bg.jpg +0 -0
  44. package/public/mockpass/resources/img/carousel/large-device/how-to-setup-2fa-icon.png +0 -0
  45. package/public/mockpass/resources/img/carousel/large-device/register-icon.png +0 -0
  46. package/public/mockpass/resources/img/carousel/large-device/reset-password-icon.png +0 -0
  47. package/public/mockpass/resources/img/carousel/large-device/setup-2fa-icon.png +0 -0
  48. package/public/mockpass/resources/img/carousel/large-device/update-acct-icon.png +0 -0
  49. package/public/mockpass/resources/img/carousel/medium-device/ipad-register-icon.png +0 -0
  50. package/public/mockpass/resources/img/carousel/medium-device/ipad-reset-password-icon.png +0 -0
  51. package/public/mockpass/resources/img/carousel/medium-device/ipad-setup-2fa-icon.png +0 -0
  52. package/public/mockpass/resources/img/carousel/medium-device/ipad-update-acct-icon.png +0 -0
  53. package/public/mockpass/resources/img/carousel/small-device/mobile-register.png +0 -0
  54. package/public/mockpass/resources/img/carousel/small-device/mobile-reset-password-icon.png +0 -0
  55. package/public/mockpass/resources/img/carousel/small-device/mobile-update-acct-icon.png +0 -0
  56. package/public/mockpass/resources/img/close.png +0 -0
  57. package/public/mockpass/resources/img/id-pw-icon.png +0 -0
  58. package/public/mockpass/resources/img/logo/mockpass-logo.png +0 -0
  59. package/public/mockpass/resources/img/logo/mockpass-placeholder-logo.png +0 -0
  60. package/public/mockpass/resources/img/logo/mockpass_watermark.png +0 -0
  61. package/public/mockpass/resources/img/qr-icon.png +0 -0
  62. package/public/mockpass/resources/img/qr-shadow.png +0 -0
  63. package/public/mockpass/resources/img/refresh.jpg +0 -0
  64. package/public/mockpass/resources/img/sidebar-icons.png +0 -0
  65. package/public/mockpass/resources/img/sp-qr-unavailable.png +0 -0
  66. package/public/mockpass/resources/img/utility-icon-black.png +0 -0
  67. package/public/mockpass/resources/js/bootstrap.min.js +7 -0
  68. package/public/mockpass/resources/js/jquery-3.5.1.js +10872 -0
  69. package/public/mockpass/resources/js/login-common.js +849 -0
  70. package/public/mockpass/resources/plugins/bootstrap-3.3.6/css/bootstrap.min.css +6 -0
  71. package/public/mockpass/resources/plugins/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 +0 -0
  72. package/static/certs/csr.pem +17 -0
  73. package/static/certs/key.pem +28 -0
  74. package/static/certs/key.pub +9 -0
  75. package/static/certs/server.crt +21 -0
  76. package/static/certs/spcp-csr.pem +17 -0
  77. package/static/certs/spcp-key.pem +28 -0
  78. package/static/certs/spcp.crt +20 -0
  79. package/static/html/consent.html +40 -0
  80. package/static/html/login-page.html +271 -0
  81. package/static/myinfo/v2.json +6154 -0
  82. package/static/myinfo/v3.json +29386 -0
  83. package/static/saml/corppass.xml +21 -0
  84. package/static/saml/unsigned-assertion.xml +24 -0
  85. package/static/saml/unsigned-response.xml +19 -0
@@ -0,0 +1,588 @@
1
+ /** Last Updated Date : 2018-12-28 11:00 AM */
2
+
3
+ /*------------------------------------------------
4
+ Base Build Small Devices Common START
5
+ ------------------------------------------------ */
6
+ @media only screen and (min-width: 320px) and (max-width: 767px) {
7
+ /* --- Login Modal Start --- */
8
+ .login-modal-content {
9
+ background-color: #fff;
10
+ position: relative;
11
+ width: 100%;
12
+ border-radius: 0;
13
+ margin: 0px;
14
+ }
15
+ .innter-form {
16
+ background-color: #fff;
17
+ border-radius: 0;
18
+ padding: 0px 20px;
19
+ width: 100%;
20
+ margin: 0px;
21
+ }
22
+ .login-form-body {
23
+ background: transparent;
24
+ padding: 0px;
25
+ border-radius: 5px;
26
+ width: 100%;
27
+ margin: 0 auto;
28
+ }
29
+ .passwordless-field-lbl {
30
+ text-align: center;
31
+ display: block;
32
+ margin: 20px;
33
+ }
34
+ .logout-link {
35
+ padding-top: 5px;
36
+ }
37
+ button#loginModelbtn {
38
+ background-color: #E11F26;
39
+ border-color: #E11F26;
40
+ width: 100%;
41
+ height: 60px;
42
+ font-size: 1.57em;
43
+ font-weight: bold;
44
+ border-radius: 4px;
45
+ margin: 75px auto;
46
+ }
47
+ .modal-backdrop.in {
48
+ opacity: 0;
49
+ }
50
+ .mobiletoken-form {
51
+ top: 67px;
52
+ position: relative;
53
+ }
54
+ li.mobiletokentab.active {
55
+ position: relative;
56
+ width: 50%;
57
+ top: 0;
58
+ }
59
+ button.login-Btn {
60
+ color: #fff;
61
+ font-weight: bold;
62
+ margin: 21px 0 33px;
63
+ }
64
+ button.cancel-Btn {
65
+ margin: 21px 3px 33px;
66
+ }
67
+ button.eservicelogin-Btn {
68
+ margin: 21px 0px 33px
69
+ }
70
+ /* --- Login Modal End --- */
71
+
72
+ /* --- Carousel Common START --- */
73
+ .carousel-container {
74
+ margin-bottom: 45px;
75
+ }
76
+ .carousel-indicators {
77
+ top: -34px;
78
+ }
79
+ .carousel {
80
+ width: 100%;
81
+ }
82
+ .carousel-inner {
83
+ position: relative;
84
+ width: 100%;
85
+ overflow: hidden;
86
+ margin: 0px auto;
87
+ padding: 0px;
88
+ -webkit-transition: .5s ease-in-out left;
89
+ -o-transition: .5s ease-in-out left;
90
+ transition: .5s ease-in-out left;
91
+ }
92
+ a.regsp-icon {
93
+ background: url(../../resources/img/carousel/small-device/mobile-register.png);
94
+ background-repeat: no-repeat;
95
+ background-position: center center;
96
+ }
97
+ a.resetpwd-icon {
98
+ background: url(../../resources/img/carousel/small-device/mobile-reset-password-icon.png);
99
+ background-repeat: no-repeat;
100
+ background-position: center center;
101
+ }
102
+ a.myinfo-icon {
103
+ background: url(../../resources/img/carousel/small-device/mobile-my-info-icon.png);
104
+ background-repeat: no-repeat;
105
+ background-position: center center;
106
+ }
107
+ a.updateAcctDetails-icon {
108
+ background: url(../../resources/img/carousel/small-device/mobile-update-acct-icon.png);
109
+ background-repeat: no-repeat;
110
+ background-position: center center;
111
+ }
112
+ a.changePwd-icon {
113
+ background: url(../../resources/img/carousel/small-device/mobile-change-pwd-icon.png);
114
+ background-repeat: no-repeat;
115
+ background-position: center center;
116
+ }
117
+ a.viewTransactionHistory-icon {
118
+ background: url(../../resources/img/carousel/small-device/mobile-view-transaction-icon.png);
119
+ background-repeat: no-repeat;
120
+ background-position: center center;
121
+ }
122
+ a.setUp2Step2FA-icon {
123
+ background: url(../../resources/img/carousel/small-device/mobile-setup-2fa-icon.png);
124
+ background-repeat: no-repeat;
125
+ background-position: center center;
126
+ }
127
+ a.checkapplication-icon {
128
+ background: url(../../resources/img/carousel/small-device/mobile-chk-app-status-icon.png);
129
+ background-repeat: no-repeat;
130
+ background-position: center center;
131
+ }
132
+ a.retrieveid-icon {
133
+ background: url(../../resources/img/carousel/small-device/mobile-retrieve-spid-icon.png);
134
+ background-repeat: no-repeat;
135
+ background-position: center center;
136
+ }
137
+ /* --- Carousel Common END --- */
138
+ }
139
+ /*------------------------------------------------
140
+ Base Build Small Devices Common END
141
+ ------------------------------------------------ */
142
+
143
+
144
+ /*------------------------------------------------
145
+ Base Build Small Devices Portrait START
146
+ ------------------------------------------------ */
147
+ @media only screen and (min-width: 320px) and (max-width: 767px) and (orientation: portrait) {
148
+ .sp-img-bg {
149
+ background: url(../../resources/img/background/small-device/mobile-sp-bg.jpg) no-repeat bottom;
150
+ -webkit-background-size: cover;
151
+ -moz-background-size: cover;
152
+ -o-background-size: cover;
153
+ background-size: cover;
154
+ height: calc(100vh - 69px);
155
+ position: relative;
156
+ min-height: 723px;
157
+ }
158
+
159
+ /* Carousel START*/
160
+ a.right.carousel-control {
161
+ text-decoration: none !important;
162
+ position: absolute;
163
+ top: 66px;
164
+ right: 0px;
165
+ font-size: 24px;
166
+ }
167
+ a.left.carousel-control {
168
+ text-decoration: none !important;
169
+ position: absolute;
170
+ top: 66px;
171
+ left: -2px;
172
+ font-size: 24px;
173
+ }
174
+ /* Carousel END*/
175
+
176
+ .loginbtn-container {
177
+ padding-left: 10px;
178
+ padding-right: 10px;
179
+ margin-left: auto;
180
+ margin-right: auto;
181
+ }
182
+ .btn-login {
183
+ height: 47px !important;
184
+ }
185
+ .homepageLogin.modal-dialog {
186
+ margin: 0px;
187
+ left: 0px;
188
+ right: 0px;
189
+ padding: 0px;
190
+ width: 100%;
191
+ top: 148px;
192
+ }
193
+ .eserviceLoginForm.modal-dialog {
194
+ margin: 0px;
195
+ left:0px;
196
+ right: 0px;
197
+ padding: 0px;
198
+ height: unset;
199
+ width: 100%;
200
+ }
201
+ #myModalHorizontal {
202
+ position:absolute;
203
+ margin: 0px;
204
+ left: 0px;
205
+ right: 0px;
206
+ padding: 0px;
207
+ width: 100%;
208
+ height: 100%;
209
+ padding-left: 0px !important;
210
+ padding-right: 0px !important;
211
+ }
212
+ }
213
+ /*------------------------------------------------
214
+ Base Build Small Devices Portrait END
215
+ ------------------------------------------------ */
216
+
217
+ /*------------------------------------------------
218
+ Base Build Small Devices Landscape START
219
+ ------------------------------------------------ */
220
+ @media only screen and (min-width: 320px) and (max-width: 767px) and (orientation: landscape) {
221
+ .sp-img-bg {
222
+ background: url(../../resources/img/background/small-device/mobile-landscape-sp-bg.jpg) no-repeat bottom;
223
+ -webkit-background-size: cover;
224
+ -moz-background-size: cover;
225
+ -o-background-size: cover;
226
+ background-size: cover;
227
+ min-height: calc(100% - 69px);
228
+ height: unset;
229
+ position: relative;
230
+ }
231
+
232
+ /* Carousel START*/
233
+ a.right.carousel-control {
234
+ text-decoration: none !important;
235
+ position: absolute;
236
+ top: 66px;
237
+ right: 0px;
238
+ font-size: 24px;
239
+ }
240
+ a.left.carousel-control {
241
+ text-decoration: none !important;
242
+ position: absolute;
243
+ top: 66px;
244
+ left: -2px;
245
+ font-size: 24px;
246
+ }
247
+ /* Carousel END*/
248
+
249
+ .homepageLogin.modal-dialog {
250
+ right: 0;
251
+ width: 100%;
252
+ top: 148px;
253
+ }
254
+ .eserviceLoginForm.modal-dialog {
255
+ left: 0;
256
+ right: 0;
257
+ width: 100%;
258
+ margin: 0 0;
259
+ }
260
+ .loginbtn-container {
261
+ padding-left: 10px;
262
+ padding-right: 10px;
263
+ margin-left: auto;
264
+ margin-right: auto;
265
+ }
266
+ #myModalHorizontal {
267
+ position:absolute;
268
+ margin: 0px;
269
+ left: 0px;
270
+ right: 0px;
271
+ padding: 0px !important;
272
+ width: 100%;
273
+ }
274
+ }
275
+ /*------------------------------------------------
276
+ Base Build Small Devices Landscape END
277
+ ------------------------------------------------ */
278
+
279
+
280
+
281
+ /*------------------------------------------------
282
+ Common Large Tablet START
283
+ ------------------------------------------------ */
284
+ @media only screen and (min-width: 768px) and (max-width: 1199px) {
285
+ .homepageLogin.modal-dialog {
286
+ right: 0px;
287
+ margin: 0 2%;
288
+ }
289
+ .eserviceLoginForm.modal-dialog {
290
+ top: 10px;
291
+ right: 0px;
292
+ margin: 0 1%;
293
+ }
294
+ .loginbtn-container {
295
+ padding-left: 10px;
296
+ padding-right: 10px;
297
+ margin-left: auto;
298
+ margin-right: auto;
299
+ }
300
+ button#loginModelbtn {
301
+ background-color: #E11F26;
302
+ border-color: #E11F26;
303
+ width: 219px;
304
+ height: 46px;
305
+ font-size: 1.57em;
306
+ font-weight: bold;
307
+ border-radius: 4px;
308
+ left: -14px;
309
+ position: relative;
310
+ }
311
+
312
+ /* --- Carousel Common START --- */
313
+ .carousel {
314
+ width: 100%;
315
+ }
316
+ .carousel-inner {
317
+ position: relative;
318
+ width: 100%;
319
+ overflow: hidden;
320
+ margin: 0px auto;
321
+ padding: 0px;
322
+ -webkit-transition: .5s ease-in-out left;
323
+ -o-transition: .5s ease-in-out left;
324
+ transition: .5s ease-in-out left;
325
+ }
326
+ a.regsp-icon {
327
+ background: url(../../resources/img/carousel/medium-device/ipad-register-icon.png);
328
+ background-repeat: no-repeat;
329
+ background-position: center center;
330
+ }
331
+ a.setup2fa-icon {
332
+ background: url(../../resources/img/carousel/medium-device/ipad-setup-2fa-icon.png);
333
+ background-repeat: no-repeat;
334
+ background-position: center center;
335
+ }
336
+ a.resetpwd-icon {
337
+ background: url(../../resources/img/carousel/medium-device/ipad-reset-password-icon.png);
338
+ background-repeat: no-repeat;
339
+ background-position: center center;
340
+ }
341
+ a.myinfo-icon {
342
+ background: url(../../resources/img/carousel/medium-device/ipad-my-info-icon.png);
343
+ background-repeat: no-repeat;
344
+ background-position: center center;
345
+ }
346
+ a.updateAcctDetails-icon {
347
+ background: url(../../resources/img/carousel/medium-device/ipad-update-acct-icon.png);
348
+ background-repeat: no-repeat;
349
+ background-position: center center;
350
+ }
351
+ a.changePwd-icon {
352
+ background: url(../../resources/img/carousel/medium-device/ipad-change-pwd-icon.png);
353
+ background-repeat: no-repeat;
354
+ background-position: center center;
355
+ }
356
+ a.viewTransactionHistory-icon {
357
+ background: url(../../resources/img/carousel/medium-device/ipad-view-transaction-icon.png);
358
+ background-repeat: no-repeat;
359
+ background-position: center center;
360
+ }
361
+ a.setUp2Step2FA-icon {
362
+ background: url(../../resources/img/carousel/medium-device/ipad-setup-2fa-icon.png);
363
+ background-repeat: no-repeat;
364
+ background-position: center center;
365
+ }
366
+ a.checkapplication-icon {
367
+ background: url(../../resources/img/carousel/medium-device/ipad-app-status.png);
368
+ background-repeat: no-repeat;
369
+ background-position: center center;
370
+ }
371
+ a.retrieveid-icon {
372
+ background: url(../../resources/img/carousel/medium-device/ipad-retrieve-spid-icon.png);
373
+ background-repeat: no-repeat;
374
+ background-position: center center;
375
+ }
376
+ /* --- Carousel Common END --- */
377
+ }
378
+ /*------------------------------------------------
379
+ Common Large Tablet END
380
+ ------------------------------------------------ */
381
+
382
+
383
+ /*------------------------------------------------
384
+ Large Tablet (Portrait - SM) START
385
+ ------------------------------------------------ */
386
+ @media only screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
387
+ .sp-img-bg {
388
+ background: url(../../resources/img/background/medium-device/ipad-bg.jpg) no-repeat bottom;
389
+ -webkit-background-size: cover;
390
+ -moz-background-size: cover;
391
+ -o-background-size: cover;
392
+ background-repeat: no-repeat;
393
+ background-size: cover;
394
+ height: unset;
395
+ min-height: calc(100% - 75px);
396
+ position: relative;
397
+ }
398
+
399
+ /* Carousel START*/
400
+ .carousel-container {
401
+ margin-bottom: 75px;
402
+ }
403
+ a.right.carousel-control {
404
+ text-decoration: none !important;
405
+ position: absolute;
406
+ top: 60px;
407
+ right: 15px;
408
+ font-size: 24px;
409
+ }
410
+ a.left.carousel-control {
411
+ text-decoration: none !important;
412
+ position: absolute;
413
+ top: 60px;
414
+ left: 15px;
415
+ font-size: 24px;
416
+ }
417
+ /* Carousel END*/
418
+ }
419
+
420
+ /*------------------------------------------------
421
+ Large Tablet (Portrait - SM) END
422
+ ------------------------------------------------ */
423
+
424
+
425
+ /*------------------------------------------------
426
+ Large Tablet (Landscape - SM) START
427
+ ------------------------------------------------ */
428
+ @media only screen and (min-width: 768px) and (max-width: 991px) and (orientation: landscape) {
429
+ .sp-img-bg {
430
+ background: url(../../resources/img/background/medium-device/ipad-landscape-sp-bg.jpg) no-repeat bottom;
431
+ -webkit-background-size: cover;
432
+ -moz-background-size: cover;
433
+ -o-background-size: cover;
434
+ background-repeat: no-repeat;
435
+ background-size: cover;
436
+ height: unset;
437
+ min-height: calc(100% - 75px);
438
+ position: relative;
439
+ }
440
+
441
+ /* Carousel START*/
442
+ .carousel-container {
443
+ margin-bottom: 75px;
444
+ }
445
+ a.right.carousel-control {
446
+ text-decoration: none !important;
447
+ position: absolute;
448
+ top: 60px;
449
+ right: 15px;
450
+ font-size: 24px;
451
+ }
452
+ a.left.carousel-control {
453
+ text-decoration: none !important;
454
+ position: absolute;
455
+ top: 60px;
456
+ left: 15px;
457
+ font-size: 24px;
458
+ }
459
+ /* Carousel END*/
460
+ }
461
+
462
+ /*------------------------------------------------
463
+ Large Tablet (Portrait - SM) END
464
+ ------------------------------------------------ */
465
+
466
+
467
+ /*------------------------------------------------
468
+ Large Tablet (Landscape - MD) START
469
+ ------------------------------------------------ */
470
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
471
+ .sp-img-bg {
472
+ background: url(../../resources/img/background/medium-device/ipad-landscape-sp-bg.jpg) no-repeat bottom;
473
+ -webkit-background-size: cover;
474
+ -moz-background-size: cover;
475
+ -o-background-size: cover;
476
+ background-size: cover;
477
+ min-height: calc(100% - 55px);
478
+ position: relative;
479
+ }
480
+
481
+ /* Carousel START*/
482
+ .carousel-container {
483
+ margin-bottom: 55px;
484
+ }
485
+ a.right.carousel-control {
486
+ text-decoration: none !important;
487
+ position: absolute;
488
+ top: 60px;
489
+ right: 0px;
490
+ font-size: 24px;
491
+ }
492
+ a.left.carousel-control {
493
+ text-decoration: none !important;
494
+ position: absolute;
495
+ top: 60px;
496
+ left: 0px;
497
+ font-size: 24px;
498
+ }
499
+ /* Carousel END*/
500
+ }
501
+
502
+ /*------------------------------------------------
503
+ Large Tablet (Landscape) END
504
+ ------------------------------------------------ */
505
+
506
+
507
+ /*------------------------------------------------
508
+ IPad Portrait START
509
+ ------------------------------------------------ */
510
+ @media only screen and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) {
511
+ .sp-img-bg {
512
+ background: url(../../resources/img/background/medium-device/ipad-bg.jpg) no-repeat bottom;
513
+ -webkit-background-size: cover;
514
+ -moz-background-size: cover;
515
+ -o-background-size: cover;
516
+ background-repeat: no-repeat;
517
+ background-size: cover;
518
+ min-height: calc(100vh - 75px);
519
+ position: relative;
520
+ }
521
+ .login-modal-content {
522
+ background-color: transparent;
523
+ width: 400px;
524
+ }
525
+ /* Carousel START*/
526
+ .carousel-container {
527
+ margin-bottom: 75px;
528
+ }
529
+ a.right.carousel-control {
530
+ text-decoration: none !important;
531
+ position: absolute;
532
+ top: 60px;
533
+ right: 15px;
534
+ font-size: 24px;
535
+ }
536
+ a.left.carousel-control {
537
+ text-decoration: none !important;
538
+ position: absolute;
539
+ top: 60px;
540
+ left: 15px;
541
+ font-size: 24px;
542
+ }
543
+ /* Carousel END*/
544
+ }
545
+ /*------------------------------------------------
546
+ IPad Portrait END
547
+ ------------------------------------------------ */
548
+
549
+ /*------------------------------------------------
550
+ IPad Landscape START
551
+ ------------------------------------------------ */
552
+ @media only screen and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) {
553
+
554
+ .sp-img-bg {
555
+ background: url(../../resources/img/background/medium-device/ipad-landscape-sp-bg.jpg) no-repeat bottom;
556
+ -webkit-background-size: cover;
557
+ -moz-background-size: cover;
558
+ -o-background-size: cover;
559
+ background-size: cover;
560
+ min-height: calc(100vh - 55px);
561
+ position: relative;
562
+ }
563
+
564
+ /* Carousel START*/
565
+ .carousel-container {
566
+ margin-bottom: 55px;
567
+ }
568
+ a.right.carousel-control {
569
+ text-decoration: none !important;
570
+ position: absolute;
571
+ top: 60px;
572
+ right: 0px;
573
+ font-size: 24px;
574
+ }
575
+ a.left.carousel-control {
576
+ text-decoration: none !important;
577
+ position: absolute;
578
+ top: 60px;
579
+ left: 0px;
580
+ font-size: 24px;
581
+ }
582
+ /* Carousel END*/
583
+
584
+
585
+ }
586
+ /*------------------------------------------------
587
+ IPad Landscape END
588
+ ------------------------------------------------ */