diff --git a/source/favicon.ico b/source/favicon.ico new file mode 100644 index 000000000..d4e87e460 Binary files /dev/null and b/source/favicon.ico differ diff --git a/source/fonts/Montserrat-Bold.woff b/source/fonts/Montserrat-Bold.woff new file mode 100644 index 000000000..7b1f2b638 Binary files /dev/null and b/source/fonts/Montserrat-Bold.woff differ diff --git a/source/fonts/Montserrat-Bold.woff2 b/source/fonts/Montserrat-Bold.woff2 new file mode 100644 index 000000000..a75e620ac Binary files /dev/null and b/source/fonts/Montserrat-Bold.woff2 differ diff --git a/source/fonts/Montserrat-ExtraBold.woff b/source/fonts/Montserrat-ExtraBold.woff new file mode 100644 index 000000000..ee539291b Binary files /dev/null and b/source/fonts/Montserrat-ExtraBold.woff differ diff --git a/source/fonts/Montserrat-ExtraBold.woff2 b/source/fonts/Montserrat-ExtraBold.woff2 new file mode 100644 index 000000000..168ff3749 Binary files /dev/null and b/source/fonts/Montserrat-ExtraBold.woff2 differ diff --git a/source/fonts/Montserrat-Light.woff b/source/fonts/Montserrat-Light.woff new file mode 100644 index 000000000..907a4f74e Binary files /dev/null and b/source/fonts/Montserrat-Light.woff differ diff --git a/source/fonts/Montserrat-Light.woff2 b/source/fonts/Montserrat-Light.woff2 new file mode 100644 index 000000000..70cfdee11 Binary files /dev/null and b/source/fonts/Montserrat-Light.woff2 differ diff --git a/source/fonts/Montserrat-Medium.woff b/source/fonts/Montserrat-Medium.woff new file mode 100644 index 000000000..83c35f0bf Binary files /dev/null and b/source/fonts/Montserrat-Medium.woff differ diff --git a/source/fonts/Montserrat-Medium.woff2 b/source/fonts/Montserrat-Medium.woff2 new file mode 100644 index 000000000..11098b7df Binary files /dev/null and b/source/fonts/Montserrat-Medium.woff2 differ diff --git a/source/fonts/Montserrat-Regular.woff b/source/fonts/Montserrat-Regular.woff new file mode 100644 index 000000000..53cc64115 Binary files /dev/null and b/source/fonts/Montserrat-Regular.woff differ diff --git a/source/fonts/Montserrat-Regular.woff2 b/source/fonts/Montserrat-Regular.woff2 new file mode 100644 index 000000000..694d308b8 Binary files /dev/null and b/source/fonts/Montserrat-Regular.woff2 differ diff --git a/source/fonts/Montserrat-SemiBold.woff b/source/fonts/Montserrat-SemiBold.woff new file mode 100644 index 000000000..69a0520df Binary files /dev/null and b/source/fonts/Montserrat-SemiBold.woff differ diff --git a/source/fonts/Montserrat-SemiBold.woff2 b/source/fonts/Montserrat-SemiBold.woff2 new file mode 100644 index 000000000..853bd7f87 Binary files /dev/null and b/source/fonts/Montserrat-SemiBold.woff2 differ diff --git a/source/img/about/about-desktop.png b/source/img/about/about-desktop.png new file mode 100644 index 000000000..d28c0d5de Binary files /dev/null and b/source/img/about/about-desktop.png differ diff --git a/source/img/about/about-desktop.webp b/source/img/about/about-desktop.webp new file mode 100644 index 000000000..03a3623ec Binary files /dev/null and b/source/img/about/about-desktop.webp differ diff --git a/source/img/about/about-desktop@2x.png b/source/img/about/about-desktop@2x.png new file mode 100644 index 000000000..cfc70abe4 Binary files /dev/null and b/source/img/about/about-desktop@2x.png differ diff --git a/source/img/about/about-desktop@2x.webp b/source/img/about/about-desktop@2x.webp new file mode 100644 index 000000000..45fcb1f3d Binary files /dev/null and b/source/img/about/about-desktop@2x.webp differ diff --git a/source/img/about/about-mobile.png b/source/img/about/about-mobile.png new file mode 100644 index 000000000..1cdb4c444 Binary files /dev/null and b/source/img/about/about-mobile.png differ diff --git a/source/img/about/about-mobile.webp b/source/img/about/about-mobile.webp new file mode 100644 index 000000000..7cb832e44 Binary files /dev/null and b/source/img/about/about-mobile.webp differ diff --git a/source/img/about/about-mobile@2x.png b/source/img/about/about-mobile@2x.png new file mode 100644 index 000000000..2af8f2a7e Binary files /dev/null and b/source/img/about/about-mobile@2x.png differ diff --git a/source/img/about/about-mobile@2x.webp b/source/img/about/about-mobile@2x.webp new file mode 100644 index 000000000..062440297 Binary files /dev/null and b/source/img/about/about-mobile@2x.webp differ diff --git a/source/img/about/about-tablet.png b/source/img/about/about-tablet.png new file mode 100644 index 000000000..22a4e41ec Binary files /dev/null and b/source/img/about/about-tablet.png differ diff --git a/source/img/about/about-tablet.webp b/source/img/about/about-tablet.webp new file mode 100644 index 000000000..5bbe149fd Binary files /dev/null and b/source/img/about/about-tablet.webp differ diff --git a/source/img/about/about-tablet@2x.png b/source/img/about/about-tablet@2x.png new file mode 100644 index 000000000..3836e6d0d Binary files /dev/null and b/source/img/about/about-tablet@2x.png differ diff --git a/source/img/about/about-tablet@2x.webp b/source/img/about/about-tablet@2x.webp new file mode 100644 index 000000000..6cd6af0d3 Binary files /dev/null and b/source/img/about/about-tablet@2x.webp differ diff --git a/source/img/backgrounds/clouds-1-desktop.png b/source/img/backgrounds/clouds-1-desktop.png new file mode 100644 index 000000000..f3b403410 Binary files /dev/null and b/source/img/backgrounds/clouds-1-desktop.png differ diff --git a/source/img/backgrounds/clouds-1-desktop.webp b/source/img/backgrounds/clouds-1-desktop.webp new file mode 100644 index 000000000..650cd5b64 Binary files /dev/null and b/source/img/backgrounds/clouds-1-desktop.webp differ diff --git a/source/img/backgrounds/clouds-1-desktop@2x.png b/source/img/backgrounds/clouds-1-desktop@2x.png new file mode 100644 index 000000000..fa673159c Binary files /dev/null and b/source/img/backgrounds/clouds-1-desktop@2x.png differ diff --git a/source/img/backgrounds/clouds-1-desktop@2x.webp b/source/img/backgrounds/clouds-1-desktop@2x.webp new file mode 100644 index 000000000..a62229a3a Binary files /dev/null and b/source/img/backgrounds/clouds-1-desktop@2x.webp differ diff --git a/source/img/backgrounds/clouds-1-mobile.png b/source/img/backgrounds/clouds-1-mobile.png new file mode 100644 index 000000000..97f430d42 Binary files /dev/null and b/source/img/backgrounds/clouds-1-mobile.png differ diff --git a/source/img/backgrounds/clouds-1-mobile.webp b/source/img/backgrounds/clouds-1-mobile.webp new file mode 100644 index 000000000..4d9ccaa8e Binary files /dev/null and b/source/img/backgrounds/clouds-1-mobile.webp differ diff --git a/source/img/backgrounds/clouds-1-mobile@2x.png b/source/img/backgrounds/clouds-1-mobile@2x.png new file mode 100644 index 000000000..5d9b02053 Binary files /dev/null and b/source/img/backgrounds/clouds-1-mobile@2x.png differ diff --git a/source/img/backgrounds/clouds-1-mobile@2x.webp b/source/img/backgrounds/clouds-1-mobile@2x.webp new file mode 100644 index 000000000..ec69fe5ed Binary files /dev/null and b/source/img/backgrounds/clouds-1-mobile@2x.webp differ diff --git a/source/img/backgrounds/clouds-1-tablet.png b/source/img/backgrounds/clouds-1-tablet.png new file mode 100644 index 000000000..41ee86630 Binary files /dev/null and b/source/img/backgrounds/clouds-1-tablet.png differ diff --git a/source/img/backgrounds/clouds-1-tablet.webp b/source/img/backgrounds/clouds-1-tablet.webp new file mode 100644 index 000000000..8ee6f0488 Binary files /dev/null and b/source/img/backgrounds/clouds-1-tablet.webp differ diff --git a/source/img/backgrounds/clouds-1-tablet@2x.png b/source/img/backgrounds/clouds-1-tablet@2x.png new file mode 100644 index 000000000..5e4a8f227 Binary files /dev/null and b/source/img/backgrounds/clouds-1-tablet@2x.png differ diff --git a/source/img/backgrounds/clouds-1-tablet@2x.webp b/source/img/backgrounds/clouds-1-tablet@2x.webp new file mode 100644 index 000000000..f31260cca Binary files /dev/null and b/source/img/backgrounds/clouds-1-tablet@2x.webp differ diff --git a/source/img/backgrounds/clouds-2-desktop.png b/source/img/backgrounds/clouds-2-desktop.png new file mode 100644 index 000000000..2f45cd8f5 Binary files /dev/null and b/source/img/backgrounds/clouds-2-desktop.png differ diff --git a/source/img/backgrounds/clouds-2-desktop.webp b/source/img/backgrounds/clouds-2-desktop.webp new file mode 100644 index 000000000..e7bd72798 Binary files /dev/null and b/source/img/backgrounds/clouds-2-desktop.webp differ diff --git a/source/img/backgrounds/clouds-2-desktop@2x.png b/source/img/backgrounds/clouds-2-desktop@2x.png new file mode 100644 index 000000000..88465054e Binary files /dev/null and b/source/img/backgrounds/clouds-2-desktop@2x.png differ diff --git a/source/img/backgrounds/clouds-2-desktop@2x.webp b/source/img/backgrounds/clouds-2-desktop@2x.webp new file mode 100644 index 000000000..67e99f1c7 Binary files /dev/null and b/source/img/backgrounds/clouds-2-desktop@2x.webp differ diff --git a/source/img/backgrounds/clouds-2-tablet.png b/source/img/backgrounds/clouds-2-tablet.png new file mode 100644 index 000000000..c344f31d6 Binary files /dev/null and b/source/img/backgrounds/clouds-2-tablet.png differ diff --git a/source/img/backgrounds/clouds-2-tablet.webp b/source/img/backgrounds/clouds-2-tablet.webp new file mode 100644 index 000000000..98287a7b1 Binary files /dev/null and b/source/img/backgrounds/clouds-2-tablet.webp differ diff --git a/source/img/backgrounds/clouds-2-tablet@2x.png b/source/img/backgrounds/clouds-2-tablet@2x.png new file mode 100644 index 000000000..59cea028a Binary files /dev/null and b/source/img/backgrounds/clouds-2-tablet@2x.png differ diff --git a/source/img/backgrounds/clouds-2-tablet@2x.webp b/source/img/backgrounds/clouds-2-tablet@2x.webp new file mode 100644 index 000000000..963499483 Binary files /dev/null and b/source/img/backgrounds/clouds-2-tablet@2x.webp differ diff --git a/source/img/backgrounds/clouds-3-desktop.png b/source/img/backgrounds/clouds-3-desktop.png new file mode 100644 index 000000000..7aece58df Binary files /dev/null and b/source/img/backgrounds/clouds-3-desktop.png differ diff --git a/source/img/backgrounds/clouds-3-desktop.webp b/source/img/backgrounds/clouds-3-desktop.webp new file mode 100644 index 000000000..cb14f99f3 Binary files /dev/null and b/source/img/backgrounds/clouds-3-desktop.webp differ diff --git a/source/img/backgrounds/clouds-3-desktop@2x.png b/source/img/backgrounds/clouds-3-desktop@2x.png new file mode 100644 index 000000000..092db82c0 Binary files /dev/null and b/source/img/backgrounds/clouds-3-desktop@2x.png differ diff --git a/source/img/backgrounds/clouds-3-desktop@2x.webp b/source/img/backgrounds/clouds-3-desktop@2x.webp new file mode 100644 index 000000000..516421551 Binary files /dev/null and b/source/img/backgrounds/clouds-3-desktop@2x.webp differ diff --git a/source/img/backgrounds/clouds-3-tablet.png b/source/img/backgrounds/clouds-3-tablet.png new file mode 100644 index 000000000..e81d6b6ce Binary files /dev/null and b/source/img/backgrounds/clouds-3-tablet.png differ diff --git a/source/img/backgrounds/clouds-3-tablet.webp b/source/img/backgrounds/clouds-3-tablet.webp new file mode 100644 index 000000000..199b41419 Binary files /dev/null and b/source/img/backgrounds/clouds-3-tablet.webp differ diff --git a/source/img/backgrounds/clouds-3-tablet@2x.png b/source/img/backgrounds/clouds-3-tablet@2x.png new file mode 100644 index 000000000..e262dcb0a Binary files /dev/null and b/source/img/backgrounds/clouds-3-tablet@2x.png differ diff --git a/source/img/backgrounds/clouds-3-tablet@2x.webp b/source/img/backgrounds/clouds-3-tablet@2x.webp new file mode 100644 index 000000000..32e7209a9 Binary files /dev/null and b/source/img/backgrounds/clouds-3-tablet@2x.webp differ diff --git a/source/img/favicon-32x32.png b/source/img/favicon-32x32.png new file mode 100644 index 000000000..7f6e00082 Binary files /dev/null and b/source/img/favicon-32x32.png differ diff --git a/source/img/favicon-32x32.webp b/source/img/favicon-32x32.webp new file mode 100644 index 000000000..9d51471a3 Binary files /dev/null and b/source/img/favicon-32x32.webp differ diff --git a/source/img/form/form-desktop.jpg b/source/img/form/form-desktop.jpg new file mode 100644 index 000000000..2b955e96e Binary files /dev/null and b/source/img/form/form-desktop.jpg differ diff --git a/source/img/form/form-desktop.webp b/source/img/form/form-desktop.webp new file mode 100644 index 000000000..877e08469 Binary files /dev/null and b/source/img/form/form-desktop.webp differ diff --git a/source/img/form/form-desktop@2x.jpg b/source/img/form/form-desktop@2x.jpg new file mode 100644 index 000000000..167383427 Binary files /dev/null and b/source/img/form/form-desktop@2x.jpg differ diff --git a/source/img/form/form-desktop@2x.webp b/source/img/form/form-desktop@2x.webp new file mode 100644 index 000000000..d4cb370b3 Binary files /dev/null and b/source/img/form/form-desktop@2x.webp differ diff --git a/source/img/form/form-mobile.jpg b/source/img/form/form-mobile.jpg new file mode 100644 index 000000000..fbf1bb753 Binary files /dev/null and b/source/img/form/form-mobile.jpg differ diff --git a/source/img/form/form-mobile.webp b/source/img/form/form-mobile.webp new file mode 100644 index 000000000..e41346a79 Binary files /dev/null and b/source/img/form/form-mobile.webp differ diff --git a/source/img/form/form-mobile@2x.jpg b/source/img/form/form-mobile@2x.jpg new file mode 100644 index 000000000..6611bc23e Binary files /dev/null and b/source/img/form/form-mobile@2x.jpg differ diff --git a/source/img/form/form-mobile@2x.webp b/source/img/form/form-mobile@2x.webp new file mode 100644 index 000000000..939d7f2bb Binary files /dev/null and b/source/img/form/form-mobile@2x.webp differ diff --git a/source/img/form/form-tablet.jpg b/source/img/form/form-tablet.jpg new file mode 100644 index 000000000..cb0631ab9 Binary files /dev/null and b/source/img/form/form-tablet.jpg differ diff --git a/source/img/form/form-tablet.webp b/source/img/form/form-tablet.webp new file mode 100644 index 000000000..60c7699ba Binary files /dev/null and b/source/img/form/form-tablet.webp differ diff --git a/source/img/form/form-tablet@2x.jpg b/source/img/form/form-tablet@2x.jpg new file mode 100644 index 000000000..9817236b9 Binary files /dev/null and b/source/img/form/form-tablet@2x.jpg differ diff --git a/source/img/form/form-tablet@2x.webp b/source/img/form/form-tablet@2x.webp new file mode 100644 index 000000000..78e5d5402 Binary files /dev/null and b/source/img/form/form-tablet@2x.webp differ diff --git a/source/img/gallery/item-1-desktop.jpg b/source/img/gallery/item-1-desktop.jpg new file mode 100644 index 000000000..2dc5b6d29 Binary files /dev/null and b/source/img/gallery/item-1-desktop.jpg differ diff --git a/source/img/gallery/item-1-desktop.webp b/source/img/gallery/item-1-desktop.webp new file mode 100644 index 000000000..a9aff3865 Binary files /dev/null and b/source/img/gallery/item-1-desktop.webp differ diff --git a/source/img/gallery/item-1-desktop@2x.jpg b/source/img/gallery/item-1-desktop@2x.jpg new file mode 100644 index 000000000..98505a042 Binary files /dev/null and b/source/img/gallery/item-1-desktop@2x.jpg differ diff --git a/source/img/gallery/item-1-desktop@2x.webp b/source/img/gallery/item-1-desktop@2x.webp new file mode 100644 index 000000000..f99b95b41 Binary files /dev/null and b/source/img/gallery/item-1-desktop@2x.webp differ diff --git a/source/img/gallery/item-1-mobile.jpg b/source/img/gallery/item-1-mobile.jpg new file mode 100644 index 000000000..998b8293e Binary files /dev/null and b/source/img/gallery/item-1-mobile.jpg differ diff --git a/source/img/gallery/item-1-mobile.webp b/source/img/gallery/item-1-mobile.webp new file mode 100644 index 000000000..96e79cb68 Binary files /dev/null and b/source/img/gallery/item-1-mobile.webp differ diff --git a/source/img/gallery/item-1-mobile@2x.jpg b/source/img/gallery/item-1-mobile@2x.jpg new file mode 100644 index 000000000..d5c20875b Binary files /dev/null and b/source/img/gallery/item-1-mobile@2x.jpg differ diff --git a/source/img/gallery/item-1-mobile@2x.webp b/source/img/gallery/item-1-mobile@2x.webp new file mode 100644 index 000000000..3726f8ae7 Binary files /dev/null and b/source/img/gallery/item-1-mobile@2x.webp differ diff --git a/source/img/gallery/item-1-tablet.jpg b/source/img/gallery/item-1-tablet.jpg new file mode 100644 index 000000000..7be9c881c Binary files /dev/null and b/source/img/gallery/item-1-tablet.jpg differ diff --git a/source/img/gallery/item-1-tablet.webp b/source/img/gallery/item-1-tablet.webp new file mode 100644 index 000000000..9397f13a7 Binary files /dev/null and b/source/img/gallery/item-1-tablet.webp differ diff --git a/source/img/gallery/item-1-tablet@2x.jpg b/source/img/gallery/item-1-tablet@2x.jpg new file mode 100644 index 000000000..6a9365945 Binary files /dev/null and b/source/img/gallery/item-1-tablet@2x.jpg differ diff --git a/source/img/gallery/item-1-tablet@2x.webp b/source/img/gallery/item-1-tablet@2x.webp new file mode 100644 index 000000000..eafb49b46 Binary files /dev/null and b/source/img/gallery/item-1-tablet@2x.webp differ diff --git a/source/img/gallery/item-2-desktop.jpg b/source/img/gallery/item-2-desktop.jpg new file mode 100644 index 000000000..98ac5df8f Binary files /dev/null and b/source/img/gallery/item-2-desktop.jpg differ diff --git a/source/img/gallery/item-2-desktop.webp b/source/img/gallery/item-2-desktop.webp new file mode 100644 index 000000000..fa37c45f1 Binary files /dev/null and b/source/img/gallery/item-2-desktop.webp differ diff --git a/source/img/gallery/item-2-desktop@2x.jpg b/source/img/gallery/item-2-desktop@2x.jpg new file mode 100644 index 000000000..c3e3d426c Binary files /dev/null and b/source/img/gallery/item-2-desktop@2x.jpg differ diff --git a/source/img/gallery/item-2-desktop@2x.webp b/source/img/gallery/item-2-desktop@2x.webp new file mode 100644 index 000000000..ab4e71d40 Binary files /dev/null and b/source/img/gallery/item-2-desktop@2x.webp differ diff --git a/source/img/gallery/item-2-mobile.jpg b/source/img/gallery/item-2-mobile.jpg new file mode 100644 index 000000000..82b778b54 Binary files /dev/null and b/source/img/gallery/item-2-mobile.jpg differ diff --git a/source/img/gallery/item-2-mobile.webp b/source/img/gallery/item-2-mobile.webp new file mode 100644 index 000000000..acbbd0d0a Binary files /dev/null and b/source/img/gallery/item-2-mobile.webp differ diff --git a/source/img/gallery/item-2-mobile@2x.jpg b/source/img/gallery/item-2-mobile@2x.jpg new file mode 100644 index 000000000..5641aec5a Binary files /dev/null and b/source/img/gallery/item-2-mobile@2x.jpg differ diff --git a/source/img/gallery/item-2-mobile@2x.webp b/source/img/gallery/item-2-mobile@2x.webp new file mode 100644 index 000000000..0567c0259 Binary files /dev/null and b/source/img/gallery/item-2-mobile@2x.webp differ diff --git a/source/img/gallery/item-2-tablet.jpg b/source/img/gallery/item-2-tablet.jpg new file mode 100644 index 000000000..9814e9b59 Binary files /dev/null and b/source/img/gallery/item-2-tablet.jpg differ diff --git a/source/img/gallery/item-2-tablet.webp b/source/img/gallery/item-2-tablet.webp new file mode 100644 index 000000000..dcc2dc7f4 Binary files /dev/null and b/source/img/gallery/item-2-tablet.webp differ diff --git a/source/img/gallery/item-2-tablet@2x.jpg b/source/img/gallery/item-2-tablet@2x.jpg new file mode 100644 index 000000000..a5f58a88b Binary files /dev/null and b/source/img/gallery/item-2-tablet@2x.jpg differ diff --git a/source/img/gallery/item-2-tablet@2x.webp b/source/img/gallery/item-2-tablet@2x.webp new file mode 100644 index 000000000..427ac24ba Binary files /dev/null and b/source/img/gallery/item-2-tablet@2x.webp differ diff --git a/source/img/gallery/item-3-desktop.jpg b/source/img/gallery/item-3-desktop.jpg new file mode 100644 index 000000000..2e0136a8c Binary files /dev/null and b/source/img/gallery/item-3-desktop.jpg differ diff --git a/source/img/gallery/item-3-desktop.webp b/source/img/gallery/item-3-desktop.webp new file mode 100644 index 000000000..27c998c75 Binary files /dev/null and b/source/img/gallery/item-3-desktop.webp differ diff --git a/source/img/gallery/item-3-desktop@2x.jpg b/source/img/gallery/item-3-desktop@2x.jpg new file mode 100644 index 000000000..5dc019ce6 Binary files /dev/null and b/source/img/gallery/item-3-desktop@2x.jpg differ diff --git a/source/img/gallery/item-3-desktop@2x.webp b/source/img/gallery/item-3-desktop@2x.webp new file mode 100644 index 000000000..717c24d08 Binary files /dev/null and b/source/img/gallery/item-3-desktop@2x.webp differ diff --git a/source/img/gallery/item-3-mobile.jpg b/source/img/gallery/item-3-mobile.jpg new file mode 100644 index 000000000..d51ec44b1 Binary files /dev/null and b/source/img/gallery/item-3-mobile.jpg differ diff --git a/source/img/gallery/item-3-mobile.webp b/source/img/gallery/item-3-mobile.webp new file mode 100644 index 000000000..dd7a2f231 Binary files /dev/null and b/source/img/gallery/item-3-mobile.webp differ diff --git a/source/img/gallery/item-3-mobile@2x.jpg b/source/img/gallery/item-3-mobile@2x.jpg new file mode 100644 index 000000000..f1cc93a74 Binary files /dev/null and b/source/img/gallery/item-3-mobile@2x.jpg differ diff --git a/source/img/gallery/item-3-mobile@2x.webp b/source/img/gallery/item-3-mobile@2x.webp new file mode 100644 index 000000000..572fb685c Binary files /dev/null and b/source/img/gallery/item-3-mobile@2x.webp differ diff --git a/source/img/gallery/item-3-tablet.jpg b/source/img/gallery/item-3-tablet.jpg new file mode 100644 index 000000000..99d7f2dd0 Binary files /dev/null and b/source/img/gallery/item-3-tablet.jpg differ diff --git a/source/img/gallery/item-3-tablet.webp b/source/img/gallery/item-3-tablet.webp new file mode 100644 index 000000000..42fc3db29 Binary files /dev/null and b/source/img/gallery/item-3-tablet.webp differ diff --git a/source/img/gallery/item-3-tablet@2x.jpg b/source/img/gallery/item-3-tablet@2x.jpg new file mode 100644 index 000000000..9b2f7486d Binary files /dev/null and b/source/img/gallery/item-3-tablet@2x.jpg differ diff --git a/source/img/gallery/item-3-tablet@2x.webp b/source/img/gallery/item-3-tablet@2x.webp new file mode 100644 index 000000000..613b23a6a Binary files /dev/null and b/source/img/gallery/item-3-tablet@2x.webp differ diff --git a/source/img/gallery/item-4-desktop.jpg b/source/img/gallery/item-4-desktop.jpg new file mode 100644 index 000000000..a520458ea Binary files /dev/null and b/source/img/gallery/item-4-desktop.jpg differ diff --git a/source/img/gallery/item-4-desktop.webp b/source/img/gallery/item-4-desktop.webp new file mode 100644 index 000000000..b5e6f3f0a Binary files /dev/null and b/source/img/gallery/item-4-desktop.webp differ diff --git a/source/img/gallery/item-4-desktop@2x.jpg b/source/img/gallery/item-4-desktop@2x.jpg new file mode 100644 index 000000000..a539ecb36 Binary files /dev/null and b/source/img/gallery/item-4-desktop@2x.jpg differ diff --git a/source/img/gallery/item-4-desktop@2x.webp b/source/img/gallery/item-4-desktop@2x.webp new file mode 100644 index 000000000..efac03b69 Binary files /dev/null and b/source/img/gallery/item-4-desktop@2x.webp differ diff --git a/source/img/gallery/item-4-mobile.jpg b/source/img/gallery/item-4-mobile.jpg new file mode 100644 index 000000000..f3d577d9c Binary files /dev/null and b/source/img/gallery/item-4-mobile.jpg differ diff --git a/source/img/gallery/item-4-mobile.webp b/source/img/gallery/item-4-mobile.webp new file mode 100644 index 000000000..73b002fb8 Binary files /dev/null and b/source/img/gallery/item-4-mobile.webp differ diff --git a/source/img/gallery/item-4-mobile2x.jpg b/source/img/gallery/item-4-mobile2x.jpg new file mode 100644 index 000000000..11cd11e8f Binary files /dev/null and b/source/img/gallery/item-4-mobile2x.jpg differ diff --git a/source/img/gallery/item-4-mobile2x.webp b/source/img/gallery/item-4-mobile2x.webp new file mode 100644 index 000000000..e5b70205b Binary files /dev/null and b/source/img/gallery/item-4-mobile2x.webp differ diff --git a/source/img/gallery/item-4-tablet.jpg b/source/img/gallery/item-4-tablet.jpg new file mode 100644 index 000000000..ef363ac59 Binary files /dev/null and b/source/img/gallery/item-4-tablet.jpg differ diff --git a/source/img/gallery/item-4-tablet.webp b/source/img/gallery/item-4-tablet.webp new file mode 100644 index 000000000..d42985a2d Binary files /dev/null and b/source/img/gallery/item-4-tablet.webp differ diff --git a/source/img/gallery/item-4-tablet@2x.jpg b/source/img/gallery/item-4-tablet@2x.jpg new file mode 100644 index 000000000..a7c4eb512 Binary files /dev/null and b/source/img/gallery/item-4-tablet@2x.jpg differ diff --git a/source/img/gallery/item-4-tablet@2x.webp b/source/img/gallery/item-4-tablet@2x.webp new file mode 100644 index 000000000..93edcb208 Binary files /dev/null and b/source/img/gallery/item-4-tablet@2x.webp differ diff --git a/source/img/gallery/item-5-desktop.jpg b/source/img/gallery/item-5-desktop.jpg new file mode 100644 index 000000000..64aa558b6 Binary files /dev/null and b/source/img/gallery/item-5-desktop.jpg differ diff --git a/source/img/gallery/item-5-desktop.webp b/source/img/gallery/item-5-desktop.webp new file mode 100644 index 000000000..70a04a644 Binary files /dev/null and b/source/img/gallery/item-5-desktop.webp differ diff --git a/source/img/gallery/item-5-desktop@2x.jpg b/source/img/gallery/item-5-desktop@2x.jpg new file mode 100644 index 000000000..a4a37b76c Binary files /dev/null and b/source/img/gallery/item-5-desktop@2x.jpg differ diff --git a/source/img/gallery/item-5-desktop@2x.webp b/source/img/gallery/item-5-desktop@2x.webp new file mode 100644 index 000000000..a9806ccc9 Binary files /dev/null and b/source/img/gallery/item-5-desktop@2x.webp differ diff --git a/source/img/gallery/item-5-mobile.jpg b/source/img/gallery/item-5-mobile.jpg new file mode 100644 index 000000000..7b446811c Binary files /dev/null and b/source/img/gallery/item-5-mobile.jpg differ diff --git a/source/img/gallery/item-5-mobile.webp b/source/img/gallery/item-5-mobile.webp new file mode 100644 index 000000000..e800d7cae Binary files /dev/null and b/source/img/gallery/item-5-mobile.webp differ diff --git a/source/img/gallery/item-5-mobile2x.jpg b/source/img/gallery/item-5-mobile2x.jpg new file mode 100644 index 000000000..859306340 Binary files /dev/null and b/source/img/gallery/item-5-mobile2x.jpg differ diff --git a/source/img/gallery/item-5-mobile2x.webp b/source/img/gallery/item-5-mobile2x.webp new file mode 100644 index 000000000..3854b2df2 Binary files /dev/null and b/source/img/gallery/item-5-mobile2x.webp differ diff --git a/source/img/gallery/item-5-tablet.jpg b/source/img/gallery/item-5-tablet.jpg new file mode 100644 index 000000000..36388be70 Binary files /dev/null and b/source/img/gallery/item-5-tablet.jpg differ diff --git a/source/img/gallery/item-5-tablet.webp b/source/img/gallery/item-5-tablet.webp new file mode 100644 index 000000000..be0870c81 Binary files /dev/null and b/source/img/gallery/item-5-tablet.webp differ diff --git a/source/img/gallery/item-5-tablet2x.jpg b/source/img/gallery/item-5-tablet2x.jpg new file mode 100644 index 000000000..0f7dc4da8 Binary files /dev/null and b/source/img/gallery/item-5-tablet2x.jpg differ diff --git a/source/img/gallery/item-5-tablet2x.webp b/source/img/gallery/item-5-tablet2x.webp new file mode 100644 index 000000000..dce04a1c8 Binary files /dev/null and b/source/img/gallery/item-5-tablet2x.webp differ diff --git a/source/img/gallery/item-6-desktop.jpg b/source/img/gallery/item-6-desktop.jpg new file mode 100644 index 000000000..5f6ff0d96 Binary files /dev/null and b/source/img/gallery/item-6-desktop.jpg differ diff --git a/source/img/gallery/item-6-desktop.webp b/source/img/gallery/item-6-desktop.webp new file mode 100644 index 000000000..b0b48c1cd Binary files /dev/null and b/source/img/gallery/item-6-desktop.webp differ diff --git a/source/img/gallery/item-6-desktop@2x.jpg b/source/img/gallery/item-6-desktop@2x.jpg new file mode 100644 index 000000000..783a44011 Binary files /dev/null and b/source/img/gallery/item-6-desktop@2x.jpg differ diff --git a/source/img/gallery/item-6-desktop@2x.webp b/source/img/gallery/item-6-desktop@2x.webp new file mode 100644 index 000000000..cf05b9a1a Binary files /dev/null and b/source/img/gallery/item-6-desktop@2x.webp differ diff --git a/source/img/gallery/item-6-mobile.jpg b/source/img/gallery/item-6-mobile.jpg new file mode 100644 index 000000000..34aa3b1b6 Binary files /dev/null and b/source/img/gallery/item-6-mobile.jpg differ diff --git a/source/img/gallery/item-6-mobile.webp b/source/img/gallery/item-6-mobile.webp new file mode 100644 index 000000000..c87b0d53f Binary files /dev/null and b/source/img/gallery/item-6-mobile.webp differ diff --git a/source/img/gallery/item-6-mobile2x.jpg b/source/img/gallery/item-6-mobile2x.jpg new file mode 100644 index 000000000..5ded9059d Binary files /dev/null and b/source/img/gallery/item-6-mobile2x.jpg differ diff --git a/source/img/gallery/item-6-mobile2x.webp b/source/img/gallery/item-6-mobile2x.webp new file mode 100644 index 000000000..539b9898a Binary files /dev/null and b/source/img/gallery/item-6-mobile2x.webp differ diff --git a/source/img/gallery/item-6-tablet.jpg b/source/img/gallery/item-6-tablet.jpg new file mode 100644 index 000000000..6d7a6ead2 Binary files /dev/null and b/source/img/gallery/item-6-tablet.jpg differ diff --git a/source/img/gallery/item-6-tablet.webp b/source/img/gallery/item-6-tablet.webp new file mode 100644 index 000000000..0ac892fb5 Binary files /dev/null and b/source/img/gallery/item-6-tablet.webp differ diff --git a/source/img/gallery/item-6-tablet2x.jpg b/source/img/gallery/item-6-tablet2x.jpg new file mode 100644 index 000000000..fc87ba507 Binary files /dev/null and b/source/img/gallery/item-6-tablet2x.jpg differ diff --git a/source/img/gallery/item-6-tablet2x.webp b/source/img/gallery/item-6-tablet2x.webp new file mode 100644 index 000000000..c610bb6cc Binary files /dev/null and b/source/img/gallery/item-6-tablet2x.webp differ diff --git a/source/img/gallery/item-7-desktop.jpg b/source/img/gallery/item-7-desktop.jpg new file mode 100644 index 000000000..e1cf4138e Binary files /dev/null and b/source/img/gallery/item-7-desktop.jpg differ diff --git a/source/img/gallery/item-7-desktop.webp b/source/img/gallery/item-7-desktop.webp new file mode 100644 index 000000000..63a16942d Binary files /dev/null and b/source/img/gallery/item-7-desktop.webp differ diff --git a/source/img/gallery/item-7-desktop@2x.jpg b/source/img/gallery/item-7-desktop@2x.jpg new file mode 100644 index 000000000..d784e7f83 Binary files /dev/null and b/source/img/gallery/item-7-desktop@2x.jpg differ diff --git a/source/img/gallery/item-7-desktop@2x.webp b/source/img/gallery/item-7-desktop@2x.webp new file mode 100644 index 000000000..e0e7c38ce Binary files /dev/null and b/source/img/gallery/item-7-desktop@2x.webp differ diff --git a/source/img/gallery/item-7-mobile.jpg b/source/img/gallery/item-7-mobile.jpg new file mode 100644 index 000000000..bc4e3e46d Binary files /dev/null and b/source/img/gallery/item-7-mobile.jpg differ diff --git a/source/img/gallery/item-7-mobile.webp b/source/img/gallery/item-7-mobile.webp new file mode 100644 index 000000000..d0b69b636 Binary files /dev/null and b/source/img/gallery/item-7-mobile.webp differ diff --git a/source/img/gallery/item-7-mobile2x.jpg b/source/img/gallery/item-7-mobile2x.jpg new file mode 100644 index 000000000..36870ac09 Binary files /dev/null and b/source/img/gallery/item-7-mobile2x.jpg differ diff --git a/source/img/gallery/item-7-mobile2x.webp b/source/img/gallery/item-7-mobile2x.webp new file mode 100644 index 000000000..deff131a5 Binary files /dev/null and b/source/img/gallery/item-7-mobile2x.webp differ diff --git a/source/img/gallery/item-7-tablet.jpg b/source/img/gallery/item-7-tablet.jpg new file mode 100644 index 000000000..9797974b9 Binary files /dev/null and b/source/img/gallery/item-7-tablet.jpg differ diff --git a/source/img/gallery/item-7-tablet.webp b/source/img/gallery/item-7-tablet.webp new file mode 100644 index 000000000..5593745e4 Binary files /dev/null and b/source/img/gallery/item-7-tablet.webp differ diff --git a/source/img/gallery/item-7-tablet2x.jpg b/source/img/gallery/item-7-tablet2x.jpg new file mode 100644 index 000000000..2dd18eaee Binary files /dev/null and b/source/img/gallery/item-7-tablet2x.jpg differ diff --git a/source/img/gallery/item-7-tablet2x.webp b/source/img/gallery/item-7-tablet2x.webp new file mode 100644 index 000000000..582460d29 Binary files /dev/null and b/source/img/gallery/item-7-tablet2x.webp differ diff --git a/source/img/hero/item-1-desktop.jpg b/source/img/hero/item-1-desktop.jpg new file mode 100644 index 000000000..10e6a0612 Binary files /dev/null and b/source/img/hero/item-1-desktop.jpg differ diff --git a/source/img/hero/item-1-desktop.webp b/source/img/hero/item-1-desktop.webp new file mode 100644 index 000000000..abb773e44 Binary files /dev/null and b/source/img/hero/item-1-desktop.webp differ diff --git a/source/img/hero/item-1-desktop@2x.jpg b/source/img/hero/item-1-desktop@2x.jpg new file mode 100644 index 000000000..ddfcd4180 Binary files /dev/null and b/source/img/hero/item-1-desktop@2x.jpg differ diff --git a/source/img/hero/item-1-desktop@2x.webp b/source/img/hero/item-1-desktop@2x.webp new file mode 100644 index 000000000..b1ff6d3f2 Binary files /dev/null and b/source/img/hero/item-1-desktop@2x.webp differ diff --git a/source/img/hero/item-1-mobile.jpg b/source/img/hero/item-1-mobile.jpg new file mode 100644 index 000000000..2a19e37d2 Binary files /dev/null and b/source/img/hero/item-1-mobile.jpg differ diff --git a/source/img/hero/item-1-mobile.webp b/source/img/hero/item-1-mobile.webp new file mode 100644 index 000000000..c75fdd608 Binary files /dev/null and b/source/img/hero/item-1-mobile.webp differ diff --git a/source/img/hero/item-1-mobile@2x.jpg b/source/img/hero/item-1-mobile@2x.jpg new file mode 100644 index 000000000..a35ac9962 Binary files /dev/null and b/source/img/hero/item-1-mobile@2x.jpg differ diff --git a/source/img/hero/item-1-mobile@2x.webp b/source/img/hero/item-1-mobile@2x.webp new file mode 100644 index 000000000..b9ac672f4 Binary files /dev/null and b/source/img/hero/item-1-mobile@2x.webp differ diff --git a/source/img/hero/item-1-tablet.jpg b/source/img/hero/item-1-tablet.jpg new file mode 100644 index 000000000..9deb925e2 Binary files /dev/null and b/source/img/hero/item-1-tablet.jpg differ diff --git a/source/img/hero/item-1-tablet.webp b/source/img/hero/item-1-tablet.webp new file mode 100644 index 000000000..82dc778a0 Binary files /dev/null and b/source/img/hero/item-1-tablet.webp differ diff --git a/source/img/hero/item-1-tablet@2x.jpg b/source/img/hero/item-1-tablet@2x.jpg new file mode 100644 index 000000000..7ea318dde Binary files /dev/null and b/source/img/hero/item-1-tablet@2x.jpg differ diff --git a/source/img/hero/item-1-tablet@2x.webp b/source/img/hero/item-1-tablet@2x.webp new file mode 100644 index 000000000..8ee59e841 Binary files /dev/null and b/source/img/hero/item-1-tablet@2x.webp differ diff --git a/source/img/hero/item-2-desktop.jpg b/source/img/hero/item-2-desktop.jpg new file mode 100644 index 000000000..3430c9d29 Binary files /dev/null and b/source/img/hero/item-2-desktop.jpg differ diff --git a/source/img/hero/item-2-desktop.webp b/source/img/hero/item-2-desktop.webp new file mode 100644 index 000000000..98f5cfe40 Binary files /dev/null and b/source/img/hero/item-2-desktop.webp differ diff --git a/source/img/hero/item-2-desktop@2x.jpg b/source/img/hero/item-2-desktop@2x.jpg new file mode 100644 index 000000000..7e86ab4c4 Binary files /dev/null and b/source/img/hero/item-2-desktop@2x.jpg differ diff --git a/source/img/hero/item-2-desktop@2x.webp b/source/img/hero/item-2-desktop@2x.webp new file mode 100644 index 000000000..e1ab0c7c5 Binary files /dev/null and b/source/img/hero/item-2-desktop@2x.webp differ diff --git a/source/img/hero/item-2-mobile.jpg b/source/img/hero/item-2-mobile.jpg new file mode 100644 index 000000000..71328bc27 Binary files /dev/null and b/source/img/hero/item-2-mobile.jpg differ diff --git a/source/img/hero/item-2-mobile.webp b/source/img/hero/item-2-mobile.webp new file mode 100644 index 000000000..cad09a416 Binary files /dev/null and b/source/img/hero/item-2-mobile.webp differ diff --git a/source/img/hero/item-2-mobile@2x.jpg b/source/img/hero/item-2-mobile@2x.jpg new file mode 100644 index 000000000..025e42b64 Binary files /dev/null and b/source/img/hero/item-2-mobile@2x.jpg differ diff --git a/source/img/hero/item-2-mobile@2x.webp b/source/img/hero/item-2-mobile@2x.webp new file mode 100644 index 000000000..d0c5e7120 Binary files /dev/null and b/source/img/hero/item-2-mobile@2x.webp differ diff --git a/source/img/hero/item-2-tablet.jpg b/source/img/hero/item-2-tablet.jpg new file mode 100644 index 000000000..23c07edbc Binary files /dev/null and b/source/img/hero/item-2-tablet.jpg differ diff --git a/source/img/hero/item-2-tablet.webp b/source/img/hero/item-2-tablet.webp new file mode 100644 index 000000000..135f2ff41 Binary files /dev/null and b/source/img/hero/item-2-tablet.webp differ diff --git a/source/img/hero/item-2-tablet@2x.jpg b/source/img/hero/item-2-tablet@2x.jpg new file mode 100644 index 000000000..7046c7f64 Binary files /dev/null and b/source/img/hero/item-2-tablet@2x.jpg differ diff --git a/source/img/hero/item-2-tablet@2x.webp b/source/img/hero/item-2-tablet@2x.webp new file mode 100644 index 000000000..8db517e2c Binary files /dev/null and b/source/img/hero/item-2-tablet@2x.webp differ diff --git a/source/img/hero/item-3-desktop.jpg b/source/img/hero/item-3-desktop.jpg new file mode 100644 index 000000000..896b08dda Binary files /dev/null and b/source/img/hero/item-3-desktop.jpg differ diff --git a/source/img/hero/item-3-desktop.webp b/source/img/hero/item-3-desktop.webp new file mode 100644 index 000000000..b64d0f59e Binary files /dev/null and b/source/img/hero/item-3-desktop.webp differ diff --git a/source/img/hero/item-3-desktop@2x.jpg b/source/img/hero/item-3-desktop@2x.jpg new file mode 100644 index 000000000..2302961c3 Binary files /dev/null and b/source/img/hero/item-3-desktop@2x.jpg differ diff --git a/source/img/hero/item-3-desktop@2x.webp b/source/img/hero/item-3-desktop@2x.webp new file mode 100644 index 000000000..8043946ac Binary files /dev/null and b/source/img/hero/item-3-desktop@2x.webp differ diff --git a/source/img/hero/item-3-mobile.jpg b/source/img/hero/item-3-mobile.jpg new file mode 100644 index 000000000..bafc07990 Binary files /dev/null and b/source/img/hero/item-3-mobile.jpg differ diff --git a/source/img/hero/item-3-mobile.webp b/source/img/hero/item-3-mobile.webp new file mode 100644 index 000000000..d7c5d39ec Binary files /dev/null and b/source/img/hero/item-3-mobile.webp differ diff --git a/source/img/hero/item-3-mobile@2x.jpg b/source/img/hero/item-3-mobile@2x.jpg new file mode 100644 index 000000000..5571af1c5 Binary files /dev/null and b/source/img/hero/item-3-mobile@2x.jpg differ diff --git a/source/img/hero/item-3-mobile@2x.webp b/source/img/hero/item-3-mobile@2x.webp new file mode 100644 index 000000000..47ad23aa6 Binary files /dev/null and b/source/img/hero/item-3-mobile@2x.webp differ diff --git a/source/img/hero/item-3-tablet.jpg b/source/img/hero/item-3-tablet.jpg new file mode 100644 index 000000000..03a2ce68b Binary files /dev/null and b/source/img/hero/item-3-tablet.jpg differ diff --git a/source/img/hero/item-3-tablet.webp b/source/img/hero/item-3-tablet.webp new file mode 100644 index 000000000..8ba34c501 Binary files /dev/null and b/source/img/hero/item-3-tablet.webp differ diff --git a/source/img/hero/item-3-tablet@2x.jpg b/source/img/hero/item-3-tablet@2x.jpg new file mode 100644 index 000000000..8b48d430b Binary files /dev/null and b/source/img/hero/item-3-tablet@2x.jpg differ diff --git a/source/img/hero/item-3-tablet@2x.webp b/source/img/hero/item-3-tablet@2x.webp new file mode 100644 index 000000000..284796078 Binary files /dev/null and b/source/img/hero/item-3-tablet@2x.webp differ diff --git a/source/img/hero/photo-1-desktop.png b/source/img/hero/photo-1-desktop.png new file mode 100644 index 000000000..1cac26eb1 Binary files /dev/null and b/source/img/hero/photo-1-desktop.png differ diff --git a/source/img/hero/photo-1-desktop.webp b/source/img/hero/photo-1-desktop.webp new file mode 100644 index 000000000..9750aafe3 Binary files /dev/null and b/source/img/hero/photo-1-desktop.webp differ diff --git a/source/img/hero/photo-1-desktop@2x.png b/source/img/hero/photo-1-desktop@2x.png new file mode 100644 index 000000000..fde5f22a7 Binary files /dev/null and b/source/img/hero/photo-1-desktop@2x.png differ diff --git a/source/img/hero/photo-1-desktop@2x.webp b/source/img/hero/photo-1-desktop@2x.webp new file mode 100644 index 000000000..ca63e4ba7 Binary files /dev/null and b/source/img/hero/photo-1-desktop@2x.webp differ diff --git a/source/img/hero/photo-1-tablet.png b/source/img/hero/photo-1-tablet.png new file mode 100644 index 000000000..366ecb1f3 Binary files /dev/null and b/source/img/hero/photo-1-tablet.png differ diff --git a/source/img/hero/photo-1-tablet.webp b/source/img/hero/photo-1-tablet.webp new file mode 100644 index 000000000..df31ab4b3 Binary files /dev/null and b/source/img/hero/photo-1-tablet.webp differ diff --git a/source/img/hero/photo-1-tablet@2x.png b/source/img/hero/photo-1-tablet@2x.png new file mode 100644 index 000000000..1b37939ea Binary files /dev/null and b/source/img/hero/photo-1-tablet@2x.png differ diff --git a/source/img/hero/photo-1-tablet@2x.webp b/source/img/hero/photo-1-tablet@2x.webp new file mode 100644 index 000000000..96dad8cc0 Binary files /dev/null and b/source/img/hero/photo-1-tablet@2x.webp differ diff --git a/source/img/hero/photo-2-desktop.png b/source/img/hero/photo-2-desktop.png new file mode 100644 index 000000000..460111512 Binary files /dev/null and b/source/img/hero/photo-2-desktop.png differ diff --git a/source/img/hero/photo-2-desktop.webp b/source/img/hero/photo-2-desktop.webp new file mode 100644 index 000000000..43f38fc28 Binary files /dev/null and b/source/img/hero/photo-2-desktop.webp differ diff --git a/source/img/hero/photo-2-desktop@2x.png b/source/img/hero/photo-2-desktop@2x.png new file mode 100644 index 000000000..2d390947a Binary files /dev/null and b/source/img/hero/photo-2-desktop@2x.png differ diff --git a/source/img/hero/photo-2-desktop@2x.webp b/source/img/hero/photo-2-desktop@2x.webp new file mode 100644 index 000000000..57dc8577c Binary files /dev/null and b/source/img/hero/photo-2-desktop@2x.webp differ diff --git a/source/img/hero/photo-2-tablet.png b/source/img/hero/photo-2-tablet.png new file mode 100644 index 000000000..44b47a09a Binary files /dev/null and b/source/img/hero/photo-2-tablet.png differ diff --git a/source/img/hero/photo-2-tablet.webp b/source/img/hero/photo-2-tablet.webp new file mode 100644 index 000000000..0bf9f3c85 Binary files /dev/null and b/source/img/hero/photo-2-tablet.webp differ diff --git a/source/img/hero/photo-2-tablet@2x.png b/source/img/hero/photo-2-tablet@2x.png new file mode 100644 index 000000000..92654936e Binary files /dev/null and b/source/img/hero/photo-2-tablet@2x.png differ diff --git a/source/img/hero/photo-2-tablet@2x.webp b/source/img/hero/photo-2-tablet@2x.webp new file mode 100644 index 000000000..3b636d07c Binary files /dev/null and b/source/img/hero/photo-2-tablet@2x.webp differ diff --git a/source/img/instructors/item-1.jpg b/source/img/instructors/item-1.jpg new file mode 100644 index 000000000..967e11b0e Binary files /dev/null and b/source/img/instructors/item-1.jpg differ diff --git a/source/img/instructors/item-1.webp b/source/img/instructors/item-1.webp new file mode 100644 index 000000000..16cecd2d0 Binary files /dev/null and b/source/img/instructors/item-1.webp differ diff --git a/source/img/instructors/item-1@2x.jpg b/source/img/instructors/item-1@2x.jpg new file mode 100644 index 000000000..8b9bfb4c3 Binary files /dev/null and b/source/img/instructors/item-1@2x.jpg differ diff --git a/source/img/instructors/item-1@2x.webp b/source/img/instructors/item-1@2x.webp new file mode 100644 index 000000000..9fbc8d4d0 Binary files /dev/null and b/source/img/instructors/item-1@2x.webp differ diff --git a/source/img/instructors/item-2.jpg b/source/img/instructors/item-2.jpg new file mode 100644 index 000000000..e17d3b551 Binary files /dev/null and b/source/img/instructors/item-2.jpg differ diff --git a/source/img/instructors/item-2.webp b/source/img/instructors/item-2.webp new file mode 100644 index 000000000..ce0badcac Binary files /dev/null and b/source/img/instructors/item-2.webp differ diff --git a/source/img/instructors/item-2@2x.jpg b/source/img/instructors/item-2@2x.jpg new file mode 100644 index 000000000..cb009d79f Binary files /dev/null and b/source/img/instructors/item-2@2x.jpg differ diff --git a/source/img/instructors/item-2@2x.webp b/source/img/instructors/item-2@2x.webp new file mode 100644 index 000000000..867c629a2 Binary files /dev/null and b/source/img/instructors/item-2@2x.webp differ diff --git a/source/img/instructors/item-3.jpg b/source/img/instructors/item-3.jpg new file mode 100644 index 000000000..50cf0e0c0 Binary files /dev/null and b/source/img/instructors/item-3.jpg differ diff --git a/source/img/instructors/item-3.webp b/source/img/instructors/item-3.webp new file mode 100644 index 000000000..bbc7daed4 Binary files /dev/null and b/source/img/instructors/item-3.webp differ diff --git a/source/img/instructors/item-3@2x.jpg b/source/img/instructors/item-3@2x.jpg new file mode 100644 index 000000000..cd3446e66 Binary files /dev/null and b/source/img/instructors/item-3@2x.jpg differ diff --git a/source/img/instructors/item-3@2x.webp b/source/img/instructors/item-3@2x.webp new file mode 100644 index 000000000..c964c1ee6 Binary files /dev/null and b/source/img/instructors/item-3@2x.webp differ diff --git a/source/img/instructors/item-4.jpg b/source/img/instructors/item-4.jpg new file mode 100644 index 000000000..e6eab842b Binary files /dev/null and b/source/img/instructors/item-4.jpg differ diff --git a/source/img/instructors/item-4.webp b/source/img/instructors/item-4.webp new file mode 100644 index 000000000..30cf00263 Binary files /dev/null and b/source/img/instructors/item-4.webp differ diff --git a/source/img/instructors/item-4@2x.jpg b/source/img/instructors/item-4@2x.jpg new file mode 100644 index 000000000..d5970b85f Binary files /dev/null and b/source/img/instructors/item-4@2x.jpg differ diff --git a/source/img/instructors/item-4@2x.webp b/source/img/instructors/item-4@2x.webp new file mode 100644 index 000000000..b6d07061b Binary files /dev/null and b/source/img/instructors/item-4@2x.webp differ diff --git a/source/img/instructors/item-5.jpg b/source/img/instructors/item-5.jpg new file mode 100644 index 000000000..1f7fa5183 Binary files /dev/null and b/source/img/instructors/item-5.jpg differ diff --git a/source/img/instructors/item-5.webp b/source/img/instructors/item-5.webp new file mode 100644 index 000000000..164aff77a Binary files /dev/null and b/source/img/instructors/item-5.webp differ diff --git a/source/img/instructors/item-5@2x.jpg b/source/img/instructors/item-5@2x.jpg new file mode 100644 index 000000000..f6c971bf2 Binary files /dev/null and b/source/img/instructors/item-5@2x.jpg differ diff --git a/source/img/instructors/item-5@2x.webp b/source/img/instructors/item-5@2x.webp new file mode 100644 index 000000000..d4ab6d4b0 Binary files /dev/null and b/source/img/instructors/item-5@2x.webp differ diff --git a/source/img/map/map-desktop.png b/source/img/map/map-desktop.png new file mode 100644 index 000000000..e225a39ce Binary files /dev/null and b/source/img/map/map-desktop.png differ diff --git a/source/img/map/map-desktop.webp b/source/img/map/map-desktop.webp new file mode 100644 index 000000000..d3f66ff1e Binary files /dev/null and b/source/img/map/map-desktop.webp differ diff --git a/source/img/map/map-desktop2x.png b/source/img/map/map-desktop2x.png new file mode 100644 index 000000000..cf339fe4b Binary files /dev/null and b/source/img/map/map-desktop2x.png differ diff --git a/source/img/map/map-desktop2x.webp b/source/img/map/map-desktop2x.webp new file mode 100644 index 000000000..83660d775 Binary files /dev/null and b/source/img/map/map-desktop2x.webp differ diff --git a/source/img/map/map-mobile.png b/source/img/map/map-mobile.png new file mode 100644 index 000000000..5ae17765e Binary files /dev/null and b/source/img/map/map-mobile.png differ diff --git a/source/img/map/map-mobile.webp b/source/img/map/map-mobile.webp new file mode 100644 index 000000000..30c14cbe7 Binary files /dev/null and b/source/img/map/map-mobile.webp differ diff --git a/source/img/map/map-mobile2x.png b/source/img/map/map-mobile2x.png new file mode 100644 index 000000000..0a754eaba Binary files /dev/null and b/source/img/map/map-mobile2x.png differ diff --git a/source/img/map/map-mobile2x.webp b/source/img/map/map-mobile2x.webp new file mode 100644 index 000000000..7d9137ac5 Binary files /dev/null and b/source/img/map/map-mobile2x.webp differ diff --git a/source/img/map/map-tablet.png b/source/img/map/map-tablet.png new file mode 100644 index 000000000..2d3000a18 Binary files /dev/null and b/source/img/map/map-tablet.png differ diff --git a/source/img/map/map-tablet.webp b/source/img/map/map-tablet.webp new file mode 100644 index 000000000..b2ae0318e Binary files /dev/null and b/source/img/map/map-tablet.webp differ diff --git a/source/img/map/map-tablet2x.png b/source/img/map/map-tablet2x.png new file mode 100644 index 000000000..0b0dade8a Binary files /dev/null and b/source/img/map/map-tablet2x.png differ diff --git a/source/img/map/map-tablet2x.webp b/source/img/map/map-tablet2x.webp new file mode 100644 index 000000000..87370d78a Binary files /dev/null and b/source/img/map/map-tablet2x.webp differ diff --git a/source/img/reviews/item-1-desktop.jpg b/source/img/reviews/item-1-desktop.jpg new file mode 100644 index 000000000..3bd414e13 Binary files /dev/null and b/source/img/reviews/item-1-desktop.jpg differ diff --git a/source/img/reviews/item-1-desktop.webp b/source/img/reviews/item-1-desktop.webp new file mode 100644 index 000000000..973a3fd46 Binary files /dev/null and b/source/img/reviews/item-1-desktop.webp differ diff --git a/source/img/reviews/item-1-desktop@2x.jpg b/source/img/reviews/item-1-desktop@2x.jpg new file mode 100644 index 000000000..1f2be59c2 Binary files /dev/null and b/source/img/reviews/item-1-desktop@2x.jpg differ diff --git a/source/img/reviews/item-1-desktop@2x.webp b/source/img/reviews/item-1-desktop@2x.webp new file mode 100644 index 000000000..0ff56cd59 Binary files /dev/null and b/source/img/reviews/item-1-desktop@2x.webp differ diff --git a/source/img/reviews/item-1-mobile.jpg b/source/img/reviews/item-1-mobile.jpg new file mode 100644 index 000000000..cbffede02 Binary files /dev/null and b/source/img/reviews/item-1-mobile.jpg differ diff --git a/source/img/reviews/item-1-mobile.webp b/source/img/reviews/item-1-mobile.webp new file mode 100644 index 000000000..a69826df0 Binary files /dev/null and b/source/img/reviews/item-1-mobile.webp differ diff --git a/source/img/reviews/item-1-mobile@2x.jpg b/source/img/reviews/item-1-mobile@2x.jpg new file mode 100644 index 000000000..5202f28c6 Binary files /dev/null and b/source/img/reviews/item-1-mobile@2x.jpg differ diff --git a/source/img/reviews/item-1-mobile@2x.webp b/source/img/reviews/item-1-mobile@2x.webp new file mode 100644 index 000000000..23b54b944 Binary files /dev/null and b/source/img/reviews/item-1-mobile@2x.webp differ diff --git a/source/img/reviews/item-1-tablet.jpg b/source/img/reviews/item-1-tablet.jpg new file mode 100644 index 000000000..3d37802e2 Binary files /dev/null and b/source/img/reviews/item-1-tablet.jpg differ diff --git a/source/img/reviews/item-1-tablet.webp b/source/img/reviews/item-1-tablet.webp new file mode 100644 index 000000000..ec43dcecf Binary files /dev/null and b/source/img/reviews/item-1-tablet.webp differ diff --git a/source/img/reviews/item-1-tablet@2x.jpg b/source/img/reviews/item-1-tablet@2x.jpg new file mode 100644 index 000000000..de7315f14 Binary files /dev/null and b/source/img/reviews/item-1-tablet@2x.jpg differ diff --git a/source/img/reviews/item-1-tablet@2x.webp b/source/img/reviews/item-1-tablet@2x.webp new file mode 100644 index 000000000..0df4f201d Binary files /dev/null and b/source/img/reviews/item-1-tablet@2x.webp differ diff --git a/source/img/reviews/item-2-desktop.jpg b/source/img/reviews/item-2-desktop.jpg new file mode 100644 index 000000000..0900cbb9b Binary files /dev/null and b/source/img/reviews/item-2-desktop.jpg differ diff --git a/source/img/reviews/item-2-desktop.webp b/source/img/reviews/item-2-desktop.webp new file mode 100644 index 000000000..e2f3913f2 Binary files /dev/null and b/source/img/reviews/item-2-desktop.webp differ diff --git a/source/img/reviews/item-2-desktop@2x.jpg b/source/img/reviews/item-2-desktop@2x.jpg new file mode 100644 index 000000000..6f3e3834c Binary files /dev/null and b/source/img/reviews/item-2-desktop@2x.jpg differ diff --git a/source/img/reviews/item-2-desktop@2x.webp b/source/img/reviews/item-2-desktop@2x.webp new file mode 100644 index 000000000..04fb3b14c Binary files /dev/null and b/source/img/reviews/item-2-desktop@2x.webp differ diff --git a/source/img/reviews/item-2-mobile.jpg b/source/img/reviews/item-2-mobile.jpg new file mode 100644 index 000000000..e9ba126e2 Binary files /dev/null and b/source/img/reviews/item-2-mobile.jpg differ diff --git a/source/img/reviews/item-2-mobile.webp b/source/img/reviews/item-2-mobile.webp new file mode 100644 index 000000000..f13fcc21f Binary files /dev/null and b/source/img/reviews/item-2-mobile.webp differ diff --git a/source/img/reviews/item-2-mobile@2x.jpg b/source/img/reviews/item-2-mobile@2x.jpg new file mode 100644 index 000000000..ccc6ada98 Binary files /dev/null and b/source/img/reviews/item-2-mobile@2x.jpg differ diff --git a/source/img/reviews/item-2-mobile@2x.webp b/source/img/reviews/item-2-mobile@2x.webp new file mode 100644 index 000000000..8e12b8604 Binary files /dev/null and b/source/img/reviews/item-2-mobile@2x.webp differ diff --git a/source/img/reviews/item-2-tablet.jpg b/source/img/reviews/item-2-tablet.jpg new file mode 100644 index 000000000..4b765e46d Binary files /dev/null and b/source/img/reviews/item-2-tablet.jpg differ diff --git a/source/img/reviews/item-2-tablet.webp b/source/img/reviews/item-2-tablet.webp new file mode 100644 index 000000000..4ead8fe7b Binary files /dev/null and b/source/img/reviews/item-2-tablet.webp differ diff --git a/source/img/reviews/item-2-tablet@2x.jpg b/source/img/reviews/item-2-tablet@2x.jpg new file mode 100644 index 000000000..95e3b9a16 Binary files /dev/null and b/source/img/reviews/item-2-tablet@2x.jpg differ diff --git a/source/img/reviews/item-2-tablet@2x.webp b/source/img/reviews/item-2-tablet@2x.webp new file mode 100644 index 000000000..a3c69934d Binary files /dev/null and b/source/img/reviews/item-2-tablet@2x.webp differ diff --git a/source/img/reviews/item-3-desktop.jpg b/source/img/reviews/item-3-desktop.jpg new file mode 100644 index 000000000..71f88d11a Binary files /dev/null and b/source/img/reviews/item-3-desktop.jpg differ diff --git a/source/img/reviews/item-3-desktop.webp b/source/img/reviews/item-3-desktop.webp new file mode 100644 index 000000000..b8a1c1e0c Binary files /dev/null and b/source/img/reviews/item-3-desktop.webp differ diff --git a/source/img/reviews/item-3-desktop@2x.jpg b/source/img/reviews/item-3-desktop@2x.jpg new file mode 100644 index 000000000..d8dd1f6f9 Binary files /dev/null and b/source/img/reviews/item-3-desktop@2x.jpg differ diff --git a/source/img/reviews/item-3-desktop@2x.webp b/source/img/reviews/item-3-desktop@2x.webp new file mode 100644 index 000000000..a4cdbf631 Binary files /dev/null and b/source/img/reviews/item-3-desktop@2x.webp differ diff --git a/source/img/reviews/item-3-mobile.jpg b/source/img/reviews/item-3-mobile.jpg new file mode 100644 index 000000000..4dc795602 Binary files /dev/null and b/source/img/reviews/item-3-mobile.jpg differ diff --git a/source/img/reviews/item-3-mobile.webp b/source/img/reviews/item-3-mobile.webp new file mode 100644 index 000000000..19421a47b Binary files /dev/null and b/source/img/reviews/item-3-mobile.webp differ diff --git a/source/img/reviews/item-3-mobile@2x.jpg b/source/img/reviews/item-3-mobile@2x.jpg new file mode 100644 index 000000000..6231eb88e Binary files /dev/null and b/source/img/reviews/item-3-mobile@2x.jpg differ diff --git a/source/img/reviews/item-3-mobile@2x.webp b/source/img/reviews/item-3-mobile@2x.webp new file mode 100644 index 000000000..c33134623 Binary files /dev/null and b/source/img/reviews/item-3-mobile@2x.webp differ diff --git a/source/img/reviews/item-3-tablet.jpg b/source/img/reviews/item-3-tablet.jpg new file mode 100644 index 000000000..b496b1b38 Binary files /dev/null and b/source/img/reviews/item-3-tablet.jpg differ diff --git a/source/img/reviews/item-3-tablet.webp b/source/img/reviews/item-3-tablet.webp new file mode 100644 index 000000000..672f48bd1 Binary files /dev/null and b/source/img/reviews/item-3-tablet.webp differ diff --git a/source/img/reviews/item-3-tablet@2x.jpg b/source/img/reviews/item-3-tablet@2x.jpg new file mode 100644 index 000000000..0cb7a76b1 Binary files /dev/null and b/source/img/reviews/item-3-tablet@2x.jpg differ diff --git a/source/img/reviews/item-3-tablet@2x.webp b/source/img/reviews/item-3-tablet@2x.webp new file mode 100644 index 000000000..a1d7183fe Binary files /dev/null and b/source/img/reviews/item-3-tablet@2x.webp differ diff --git a/source/img/reviews/item-4-desktop.jpg b/source/img/reviews/item-4-desktop.jpg new file mode 100644 index 000000000..41f55d6f7 Binary files /dev/null and b/source/img/reviews/item-4-desktop.jpg differ diff --git a/source/img/reviews/item-4-desktop.webp b/source/img/reviews/item-4-desktop.webp new file mode 100644 index 000000000..fe9cce370 Binary files /dev/null and b/source/img/reviews/item-4-desktop.webp differ diff --git a/source/img/reviews/item-4-desktop@2x.jpg b/source/img/reviews/item-4-desktop@2x.jpg new file mode 100644 index 000000000..05b4a0113 Binary files /dev/null and b/source/img/reviews/item-4-desktop@2x.jpg differ diff --git a/source/img/reviews/item-4-desktop@2x.webp b/source/img/reviews/item-4-desktop@2x.webp new file mode 100644 index 000000000..a0aed6709 Binary files /dev/null and b/source/img/reviews/item-4-desktop@2x.webp differ diff --git a/source/img/reviews/item-4-mobile.jpg b/source/img/reviews/item-4-mobile.jpg new file mode 100644 index 000000000..cc51adab5 Binary files /dev/null and b/source/img/reviews/item-4-mobile.jpg differ diff --git a/source/img/reviews/item-4-mobile.webp b/source/img/reviews/item-4-mobile.webp new file mode 100644 index 000000000..9591d06ac Binary files /dev/null and b/source/img/reviews/item-4-mobile.webp differ diff --git a/source/img/reviews/item-4-mobile@2x.jpg b/source/img/reviews/item-4-mobile@2x.jpg new file mode 100644 index 000000000..8a96db1ba Binary files /dev/null and b/source/img/reviews/item-4-mobile@2x.jpg differ diff --git a/source/img/reviews/item-4-mobile@2x.webp b/source/img/reviews/item-4-mobile@2x.webp new file mode 100644 index 000000000..f1e9f29a9 Binary files /dev/null and b/source/img/reviews/item-4-mobile@2x.webp differ diff --git a/source/img/reviews/item-4-tablet.jpg b/source/img/reviews/item-4-tablet.jpg new file mode 100644 index 000000000..9b3efb831 Binary files /dev/null and b/source/img/reviews/item-4-tablet.jpg differ diff --git a/source/img/reviews/item-4-tablet.webp b/source/img/reviews/item-4-tablet.webp new file mode 100644 index 000000000..3b85f3ade Binary files /dev/null and b/source/img/reviews/item-4-tablet.webp differ diff --git a/source/img/reviews/item-4-tablet@2x.jpg b/source/img/reviews/item-4-tablet@2x.jpg new file mode 100644 index 000000000..b972bafdb Binary files /dev/null and b/source/img/reviews/item-4-tablet@2x.jpg differ diff --git a/source/img/reviews/item-4-tablet@2x.webp b/source/img/reviews/item-4-tablet@2x.webp new file mode 100644 index 000000000..af85ba86c Binary files /dev/null and b/source/img/reviews/item-4-tablet@2x.webp differ diff --git a/source/img/sprite/icon-arrow-else.svg b/source/img/sprite/icon-arrow-else.svg new file mode 100644 index 000000000..2cdd9fc9e --- /dev/null +++ b/source/img/sprite/icon-arrow-else.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-arrow.svg b/source/img/sprite/icon-arrow.svg new file mode 100644 index 000000000..039eacb84 --- /dev/null +++ b/source/img/sprite/icon-arrow.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-boots.svg b/source/img/sprite/icon-boots.svg new file mode 100644 index 000000000..9cdf0911b --- /dev/null +++ b/source/img/sprite/icon-boots.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-cross.svg b/source/img/sprite/icon-cross.svg new file mode 100644 index 000000000..97b95d820 --- /dev/null +++ b/source/img/sprite/icon-cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-crown.svg b/source/img/sprite/icon-crown.svg new file mode 100644 index 000000000..c1d196e21 --- /dev/null +++ b/source/img/sprite/icon-crown.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-leaf.svg b/source/img/sprite/icon-leaf.svg new file mode 100644 index 000000000..79b2fa1e9 --- /dev/null +++ b/source/img/sprite/icon-leaf.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-level.svg b/source/img/sprite/icon-level.svg new file mode 100644 index 000000000..4a1dd2ae8 --- /dev/null +++ b/source/img/sprite/icon-level.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-mail.svg b/source/img/sprite/icon-mail.svg new file mode 100644 index 000000000..500ea12ec --- /dev/null +++ b/source/img/sprite/icon-mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-map.svg b/source/img/sprite/icon-map.svg new file mode 100644 index 000000000..db6cbd23e --- /dev/null +++ b/source/img/sprite/icon-map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-menu.svg b/source/img/sprite/icon-menu.svg new file mode 100644 index 000000000..89e230725 --- /dev/null +++ b/source/img/sprite/icon-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-moon.svg b/source/img/sprite/icon-moon.svg new file mode 100644 index 000000000..a28ccae11 --- /dev/null +++ b/source/img/sprite/icon-moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-mountain.svg b/source/img/sprite/icon-mountain.svg new file mode 100644 index 000000000..2a23110fa --- /dev/null +++ b/source/img/sprite/icon-mountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-ok.svg b/source/img/sprite/icon-ok.svg new file mode 100644 index 000000000..2dbddacf3 --- /dev/null +++ b/source/img/sprite/icon-ok.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-path.svg b/source/img/sprite/icon-path.svg new file mode 100644 index 000000000..7fc61d4db --- /dev/null +++ b/source/img/sprite/icon-path.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-phone.svg b/source/img/sprite/icon-phone.svg new file mode 100644 index 000000000..cd142c143 --- /dev/null +++ b/source/img/sprite/icon-phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-pin-filled.svg b/source/img/sprite/icon-pin-filled.svg new file mode 100644 index 000000000..50eda269c --- /dev/null +++ b/source/img/sprite/icon-pin-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/sprite/icon-pin.svg b/source/img/sprite/icon-pin.svg new file mode 100644 index 000000000..cbbeb32be --- /dev/null +++ b/source/img/sprite/icon-pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-reddit.svg b/source/img/sprite/icon-reddit.svg new file mode 100644 index 000000000..41928c279 --- /dev/null +++ b/source/img/sprite/icon-reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-shield.svg b/source/img/sprite/icon-shield.svg new file mode 100644 index 000000000..6e7aca6ef --- /dev/null +++ b/source/img/sprite/icon-shield.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/icon-shoes.svg b/source/img/sprite/icon-shoes.svg new file mode 100644 index 000000000..933fa2ca4 --- /dev/null +++ b/source/img/sprite/icon-shoes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-star-filled.svg b/source/img/sprite/icon-star-filled.svg new file mode 100644 index 000000000..c604f7f95 --- /dev/null +++ b/source/img/sprite/icon-star-filled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-star-stroke.svg b/source/img/sprite/icon-star-stroke.svg new file mode 100644 index 000000000..0409cb90c --- /dev/null +++ b/source/img/sprite/icon-star-stroke.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-sun.svg b/source/img/sprite/icon-sun.svg new file mode 100644 index 000000000..318710a3f --- /dev/null +++ b/source/img/sprite/icon-sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-tree.svg b/source/img/sprite/icon-tree.svg new file mode 100644 index 000000000..80e3248ec --- /dev/null +++ b/source/img/sprite/icon-tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/sprite/icon-vk.svg b/source/img/sprite/icon-vk.svg new file mode 100644 index 000000000..bcf130ff4 --- /dev/null +++ b/source/img/sprite/icon-vk.svg @@ -0,0 +1 @@ + diff --git a/source/img/sprite/logo.svg b/source/img/sprite/logo.svg deleted file mode 100644 index aee2e13c0..000000000 --- a/source/img/sprite/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/source/img/sprite/user.svg b/source/img/sprite/user.svg deleted file mode 100644 index 6873ae6e1..000000000 --- a/source/img/sprite/user.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/source/img/svg/logo-footer.svg b/source/img/svg/logo-footer.svg new file mode 100644 index 000000000..702652489 --- /dev/null +++ b/source/img/svg/logo-footer.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/svg/logo-header.svg b/source/img/svg/logo-header.svg new file mode 100644 index 000000000..6b882f30b --- /dev/null +++ b/source/img/svg/logo-header.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/svg/pin.svg b/source/img/svg/pin.svg new file mode 100644 index 000000000..9f43f372f --- /dev/null +++ b/source/img/svg/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/tours/item-1-desktop.jpg b/source/img/tours/item-1-desktop.jpg new file mode 100644 index 000000000..873a365e1 Binary files /dev/null and b/source/img/tours/item-1-desktop.jpg differ diff --git a/source/img/tours/item-1-desktop.webp b/source/img/tours/item-1-desktop.webp new file mode 100644 index 000000000..8fb666cfc Binary files /dev/null and b/source/img/tours/item-1-desktop.webp differ diff --git a/source/img/tours/item-1-desktop@2x.jpg b/source/img/tours/item-1-desktop@2x.jpg new file mode 100644 index 000000000..1db0292d4 Binary files /dev/null and b/source/img/tours/item-1-desktop@2x.jpg differ diff --git a/source/img/tours/item-1-desktop@2x.webp b/source/img/tours/item-1-desktop@2x.webp new file mode 100644 index 000000000..10e576c02 Binary files /dev/null and b/source/img/tours/item-1-desktop@2x.webp differ diff --git a/source/img/tours/item-1-mobile.jpg b/source/img/tours/item-1-mobile.jpg new file mode 100644 index 000000000..c27335f97 Binary files /dev/null and b/source/img/tours/item-1-mobile.jpg differ diff --git a/source/img/tours/item-1-mobile.webp b/source/img/tours/item-1-mobile.webp new file mode 100644 index 000000000..769c59d10 Binary files /dev/null and b/source/img/tours/item-1-mobile.webp differ diff --git a/source/img/tours/item-1-mobile@2x.jpg b/source/img/tours/item-1-mobile@2x.jpg new file mode 100644 index 000000000..c70fb7e30 Binary files /dev/null and b/source/img/tours/item-1-mobile@2x.jpg differ diff --git a/source/img/tours/item-1-mobile@2x.webp b/source/img/tours/item-1-mobile@2x.webp new file mode 100644 index 000000000..b780062e3 Binary files /dev/null and b/source/img/tours/item-1-mobile@2x.webp differ diff --git a/source/img/tours/item-1-tablet.jpg b/source/img/tours/item-1-tablet.jpg new file mode 100644 index 000000000..a457138a4 Binary files /dev/null and b/source/img/tours/item-1-tablet.jpg differ diff --git a/source/img/tours/item-1-tablet.webp b/source/img/tours/item-1-tablet.webp new file mode 100644 index 000000000..bd98d8de2 Binary files /dev/null and b/source/img/tours/item-1-tablet.webp differ diff --git a/source/img/tours/item-1-tablet@2x.jpg b/source/img/tours/item-1-tablet@2x.jpg new file mode 100644 index 000000000..467f64aa6 Binary files /dev/null and b/source/img/tours/item-1-tablet@2x.jpg differ diff --git a/source/img/tours/item-1-tablet@2x.webp b/source/img/tours/item-1-tablet@2x.webp new file mode 100644 index 000000000..161951b8a Binary files /dev/null and b/source/img/tours/item-1-tablet@2x.webp differ diff --git a/source/img/tours/item-2-desktop.jpg b/source/img/tours/item-2-desktop.jpg new file mode 100644 index 000000000..ec98c0a73 Binary files /dev/null and b/source/img/tours/item-2-desktop.jpg differ diff --git a/source/img/tours/item-2-desktop.webp b/source/img/tours/item-2-desktop.webp new file mode 100644 index 000000000..ebe060b9f Binary files /dev/null and b/source/img/tours/item-2-desktop.webp differ diff --git a/source/img/tours/item-2-desktop@2x.jpg b/source/img/tours/item-2-desktop@2x.jpg new file mode 100644 index 000000000..2e2eeede6 Binary files /dev/null and b/source/img/tours/item-2-desktop@2x.jpg differ diff --git a/source/img/tours/item-2-desktop@2x.webp b/source/img/tours/item-2-desktop@2x.webp new file mode 100644 index 000000000..ab4a6feca Binary files /dev/null and b/source/img/tours/item-2-desktop@2x.webp differ diff --git a/source/img/tours/item-2-mobile.jpg b/source/img/tours/item-2-mobile.jpg new file mode 100644 index 000000000..ab4e8a2cb Binary files /dev/null and b/source/img/tours/item-2-mobile.jpg differ diff --git a/source/img/tours/item-2-mobile.webp b/source/img/tours/item-2-mobile.webp new file mode 100644 index 000000000..4c93b0cb7 Binary files /dev/null and b/source/img/tours/item-2-mobile.webp differ diff --git a/source/img/tours/item-2-mobile@2x.jpg b/source/img/tours/item-2-mobile@2x.jpg new file mode 100644 index 000000000..eaf687beb Binary files /dev/null and b/source/img/tours/item-2-mobile@2x.jpg differ diff --git a/source/img/tours/item-2-mobile@2x.webp b/source/img/tours/item-2-mobile@2x.webp new file mode 100644 index 000000000..b0977a142 Binary files /dev/null and b/source/img/tours/item-2-mobile@2x.webp differ diff --git a/source/img/tours/item-2-tablet.jpg b/source/img/tours/item-2-tablet.jpg new file mode 100644 index 000000000..d69733102 Binary files /dev/null and b/source/img/tours/item-2-tablet.jpg differ diff --git a/source/img/tours/item-2-tablet.webp b/source/img/tours/item-2-tablet.webp new file mode 100644 index 000000000..827faf9f7 Binary files /dev/null and b/source/img/tours/item-2-tablet.webp differ diff --git a/source/img/tours/item-2-tablet@2x.jpg b/source/img/tours/item-2-tablet@2x.jpg new file mode 100644 index 000000000..c06ed9f7a Binary files /dev/null and b/source/img/tours/item-2-tablet@2x.jpg differ diff --git a/source/img/tours/item-2-tablet@2x.webp b/source/img/tours/item-2-tablet@2x.webp new file mode 100644 index 000000000..a091400f1 Binary files /dev/null and b/source/img/tours/item-2-tablet@2x.webp differ diff --git a/source/img/tours/item-3-desktop.jpg b/source/img/tours/item-3-desktop.jpg new file mode 100644 index 000000000..e2b2ced4d Binary files /dev/null and b/source/img/tours/item-3-desktop.jpg differ diff --git a/source/img/tours/item-3-desktop.webp b/source/img/tours/item-3-desktop.webp new file mode 100644 index 000000000..151108188 Binary files /dev/null and b/source/img/tours/item-3-desktop.webp differ diff --git a/source/img/tours/item-3-desktop@2x.jpg b/source/img/tours/item-3-desktop@2x.jpg new file mode 100644 index 000000000..788a22fcf Binary files /dev/null and b/source/img/tours/item-3-desktop@2x.jpg differ diff --git a/source/img/tours/item-3-desktop@2x.webp b/source/img/tours/item-3-desktop@2x.webp new file mode 100644 index 000000000..58ef27d8d Binary files /dev/null and b/source/img/tours/item-3-desktop@2x.webp differ diff --git a/source/img/tours/item-3-mobile.jpg b/source/img/tours/item-3-mobile.jpg new file mode 100644 index 000000000..e31b4b476 Binary files /dev/null and b/source/img/tours/item-3-mobile.jpg differ diff --git a/source/img/tours/item-3-mobile.webp b/source/img/tours/item-3-mobile.webp new file mode 100644 index 000000000..d10683cd5 Binary files /dev/null and b/source/img/tours/item-3-mobile.webp differ diff --git a/source/img/tours/item-3-mobile@2x.jpg b/source/img/tours/item-3-mobile@2x.jpg new file mode 100644 index 000000000..69d130432 Binary files /dev/null and b/source/img/tours/item-3-mobile@2x.jpg differ diff --git a/source/img/tours/item-3-mobile@2x.webp b/source/img/tours/item-3-mobile@2x.webp new file mode 100644 index 000000000..44559dfac Binary files /dev/null and b/source/img/tours/item-3-mobile@2x.webp differ diff --git a/source/img/tours/item-3-tablet.jpg b/source/img/tours/item-3-tablet.jpg new file mode 100644 index 000000000..2a98ce5b5 Binary files /dev/null and b/source/img/tours/item-3-tablet.jpg differ diff --git a/source/img/tours/item-3-tablet.webp b/source/img/tours/item-3-tablet.webp new file mode 100644 index 000000000..5a2c14a78 Binary files /dev/null and b/source/img/tours/item-3-tablet.webp differ diff --git a/source/img/tours/item-3-tablet@2x.jpg b/source/img/tours/item-3-tablet@2x.jpg new file mode 100644 index 000000000..cd91dcb59 Binary files /dev/null and b/source/img/tours/item-3-tablet@2x.jpg differ diff --git a/source/img/tours/item-3-tablet@2x.webp b/source/img/tours/item-3-tablet@2x.webp new file mode 100644 index 000000000..098054868 Binary files /dev/null and b/source/img/tours/item-3-tablet@2x.webp differ diff --git a/source/img/tours/item-4-desktop.jpg b/source/img/tours/item-4-desktop.jpg new file mode 100644 index 000000000..7b9f31d7b Binary files /dev/null and b/source/img/tours/item-4-desktop.jpg differ diff --git a/source/img/tours/item-4-desktop.webp b/source/img/tours/item-4-desktop.webp new file mode 100644 index 000000000..50f2abffa Binary files /dev/null and b/source/img/tours/item-4-desktop.webp differ diff --git a/source/img/tours/item-4-desktop@2x.jpg b/source/img/tours/item-4-desktop@2x.jpg new file mode 100644 index 000000000..f654c574b Binary files /dev/null and b/source/img/tours/item-4-desktop@2x.jpg differ diff --git a/source/img/tours/item-4-desktop@2x.webp b/source/img/tours/item-4-desktop@2x.webp new file mode 100644 index 000000000..9e91c0314 Binary files /dev/null and b/source/img/tours/item-4-desktop@2x.webp differ diff --git a/source/img/tours/item-4-mobile.jpg b/source/img/tours/item-4-mobile.jpg new file mode 100644 index 000000000..1793834e4 Binary files /dev/null and b/source/img/tours/item-4-mobile.jpg differ diff --git a/source/img/tours/item-4-mobile.webp b/source/img/tours/item-4-mobile.webp new file mode 100644 index 000000000..d54cf1c70 Binary files /dev/null and b/source/img/tours/item-4-mobile.webp differ diff --git a/source/img/tours/item-4-mobile@2x.jpg b/source/img/tours/item-4-mobile@2x.jpg new file mode 100644 index 000000000..a245a3d64 Binary files /dev/null and b/source/img/tours/item-4-mobile@2x.jpg differ diff --git a/source/img/tours/item-4-mobile@2x.webp b/source/img/tours/item-4-mobile@2x.webp new file mode 100644 index 000000000..44eebf742 Binary files /dev/null and b/source/img/tours/item-4-mobile@2x.webp differ diff --git a/source/img/tours/item-4-tablet.jpg b/source/img/tours/item-4-tablet.jpg new file mode 100644 index 000000000..817515fa0 Binary files /dev/null and b/source/img/tours/item-4-tablet.jpg differ diff --git a/source/img/tours/item-4-tablet.webp b/source/img/tours/item-4-tablet.webp new file mode 100644 index 000000000..50b5f3b77 Binary files /dev/null and b/source/img/tours/item-4-tablet.webp differ diff --git a/source/img/tours/item-4-tablet@2x.jpg b/source/img/tours/item-4-tablet@2x.jpg new file mode 100644 index 000000000..d9255a1c0 Binary files /dev/null and b/source/img/tours/item-4-tablet@2x.jpg differ diff --git a/source/img/tours/item-4-tablet@2x.webp b/source/img/tours/item-4-tablet@2x.webp new file mode 100644 index 000000000..a2469136c Binary files /dev/null and b/source/img/tours/item-4-tablet@2x.webp differ diff --git a/source/index.html b/source/index.html index 0ce0e1c9c..533525594 100644 --- a/source/index.html +++ b/source/index.html @@ -1,31 +1,1084 @@ - - - - Lifetour - - - - - - Это спрайт - - - - -
header
-
hero
-
tours
-
training
-
about
-
reviews
-
adv
-
gallery
-
form
-
footer
- - + + + + + + + + + + + + Lifetour + + + + +
+ +
+
+

Туры компании LIFETOUR

+
+
+
+
+

Захватывающие вершины Кавказа

+

В сопровождении опытных гидов вы пройдёте через потрясающие ландшафты и совершите восход на вершину + горы Чегет.

+ Смотреть тур +
+ 6 дней/5 ночей + Высокая сложность +
+
+
+
+
+
+

Невероятная + природа Камчатки

+

Незабываемое приключение, во время которого вы отправитесь в путешествие по одному из самых + нетронутых уголков дикой природы в мире.

+ Смотреть тур +
+ 9 дней/10 ночей + Средняя сложность +
+
+
+
+ + + + + + + девушка в желтом камбинизоне на фоне гор. + +
+
+ + + + + + + озеро среди гор. + +
+
+
+
+
+
+

Магические пейзажи Алтайского Края

+

Алтайский трекинг-тур — это захватывающее приключение с посещением магических
и захватывающих + дух ландшафтов Алтайских гор.

+ Смотреть тур +
+ 8 дней/7 ночей + Лёгкая сложность +
+
+
+
+
+
+
+
+
+
+
+
+

Ближайшие туры

+
+ + +
+
+
+
+
+
+
+ Кавказ + 4 дня + 3 ночи +
+

Путешествие + вокруг Эльбруса

+
+
Сложность: +
+
+
+
+
+
+
+
+
Даты + набора:12.06–19.06
+
Группа:до 15 чел.
+
+
+
+
+
+
+ Алтай + 14 дней + 13 ночей +
+

Путь к подножию + Белухи

+
+
Сложность: +
+
+
+
+
+
+
+
+
Даты + набора:14.06–23.06
+
Группа:до 25 чел.
+
+
+
+
+
+
+ Адыгея + 7 дней + 6 ночей +
+

Через Фишт + к Чёрному морю и обратно

+
+
Сложность: +
+
+
+
+
+
+
+
+
Даты + набора:15.07–19.07
+
Группа:до 22 чел.
+
+
+
+
+
+
+ Урал + 9 дней + 10 ночей +
+

Восхождение + Манарага

+
+
Сложность: +
+
+
+
+
+
+
+
+
Даты + набора:12.07–19.07
+
Группа:до 7 чел.
+
+
+
+
+
+ +
+
+
+
+
+

Обучение

+

Обучение проводится квалифицированными специалистами,
за плечами которых десятки пройденных маршрутов + Кавказа, Крыма, + Гималаев, Эльбруса, Алтая, Карелии, Адыгеи и других.

+
+
+

Наши инструкторы

+
+ + +
+
+
+
+
+
+
+ + + + Александр Прокофьев. + +
+
+
+

Александр Прокофьев

+ страница вконтакте + + +
+

Строгий и внимательный инструктор, весёлый и общительный человек. Любит природу.

+
+
+
+
+
+
+ + + + Светлана
+Афиногенова. + +
+
+
+

Светлана + Афиногенова

+ страница вконтакте + + +
+

Видеть мир вокруг, познавать его опасности, находить друг друга, становиться ближе, чувствовать — + в этом назначение + жизни.

+
+
+
+
+
+
+ + + + Надежда
+Колесниченко. + +
+
+
+

Надежда + Колесниченко

+ страница вконтакте + + +
+

Участники говорят, что Надежда ответственная, приятная в общении, и в поездках с ней чувствуешь + себя спокойно + и уверенно.

+
+
+
+
+
+
+ + + + Федор
+Кайгородов. + +
+
+
+

Федор + Кайгородов

+ страница вконтакте + + +
+

Опыт походов: Ходит в походы с 2001 года. В России побывал в горных районах Хибины, Архыз, много + путешествует по Европе.

+
+
+
+
+
+
+ + + + Даниэль
+Васнецов. + +
+
+
+

Даниэль + Васнецов

+ страница вконтакте + + +
+

Покорял самые сложные вершины. Выбирался из под лавин, дружит с медведями и не только.

+
+
+
+
+
+
+

Процесс обучения

+
    +
  • Изучение спортивного + туристского движения
  • +
  • Подготовка и техническое снаряжение в походах
  • +
  • Лекции по окружающей среде, экологии и гигиене
  • +
  • Разъяснение сложности горных препятствий
  • +
+
+
+
+
+
+
+
+

О насО нас

+ +
+
+

История компании

+

В далёком 2000 году мы начали заниматься туризмом — походы, поездки, восхождения, нам это настолько + понравилось, + что мы этим стали жить.
Спустя 5 лет, в 2005 году мы основали компанию, чтобы показывать людям + удивительные места нашей + страны.

+
+
+

Наша цель

+

Подарить вам незабываемые впечатления от похода в горы. Мы берём на себя все организационные вопросы. + При организации + мы обязательно учтём все ваши пожелания. Вам останется только наслаждаться незабываемым приключением + в приятной + компании.

+
+
+
+
+
+
+
+

Отзывы

+
+ + +
+
+
+
+
+
+
+ + + + + + + + + + Фролов Александр. + +
+
+

Осенью ходили в поход на Алтай с друзьями. Впечатления потрясающие! Инструкторы, настоящие + эксперты, всему научили, + все показали. Делились историями о местах, людях, культуре места. +

+

С уверенностью могу сказать, что жизнь разделилась на до этого и после. Ещё никогда не отдыхал + так душой и телом. Всем + очень рекомендую!

+
+ Фролов Александр + 38 лет, Москва +
+
+
+
+
+
+
+ + + + + + + + + + Иван Соловьёв. + +
+
+

Хороший полноценный поход с разнообразными локациями. В начале дорога идёт по лыжне, далее прошли + мимо полигона, + по болотам, у озёр и лесных ручьёв, остатков дач конца 19 века. + Было очень интересно! +

+

Инструктор Федор дружелюбный, внимательный к технике безопасности и своим туристам. + Всем советую этот тур.

+
+ Иван Соловьёв + 25 лет, Владивосток +
+
+
+
+
+
+
+ + + + + + + + + + Евгения Баженова. + +
+
+

Ранее не ходила на такие длинные дистанции. В первый день прошли около 30 км, физически я устала + на 18 км, поэтому + не была уверена, пройду ли до конца. Но я справилась. Второй день прошёл легче, чем ожидала, + видимо организм уже привык. +

+

Спасибо ребятам, инструкторам за помощь и поддержку!
Я была рада быть в такой компании.

+
+ Евгения Баженова + 23 года, Кострома +
+
+
+
+
+
+
+ + + + + + + + + + Евгения Баженова. + +
+
+

Это был опыт, изменивший мою жизнь! Думала, не справлюсь, но все получилось! Дух захватывает, + когда наконец‑то, + преодолев все трудности и препятствия, взбираешься на вершину. + +

+

У нас собралась потрясающая команда. Все друг друга поддерживали, по вечерам мы сидели вместе + у костра
и пели песни. + Обязательно повторю такое приключение!

+
+ Елена Пирогова + 37 лет, Тюмень +
+
+
+
+
+
+
+
+
+
+

Преимущества

+
+
+ +
+
+
+
+
+ +
+

Безопасность

+

Уделяем внимание безопасности клиентов, внедряя строгие процедуры и протоколы безопасности. Имеем + планы действий + на случай непредвиденных обстоятельств и даём гарантию полной безопасности во время всего тура.

+
+
+
+
+
+ +
+

Экспертиза и знания

+

Наша команда опытных гидов имеет обширные знания о местности, погодных условиях и технике + безопасности.
Это гарантирует, + что наши клиенты находятся в надёжных руках и могут в полной мере насладиться опытом без опасений. +

+
+
+
+
+
+ +
+

Оборудование и снаряжение

+

Мы предоставляем клиентам все необходимое оборудование, необходимое для путешествия. Это избавляет + клиентов + от необходимости покупать, брать с собой снаряжение, что делает путешествие более удобным + и экономически выгодным.

+
+
+
+
+
+ +
+

Индивидуальные маршруты

+

Предлагаем широкий выбор туров, отвечающих различным уровням мастерства и интересам. Мы также можем + адаптировать + маршруты к вашим конкретным потребностям и предпочтениям, чтобы вы получили индивидуальный опыт.

+
+
+
+
+
+ +
+

Бережное отношение
к природе

+

Уделяем первостепенное внимание охране окружающей среды и гарантируем, что туры оказывают + минимальное воздействие на + природную среду. Наша компания следует принципу «Не оставлять следов».

+
+
+
+
+
+ + +
+
+
+ +
+
+
+

Остались вопросы?

+

Заполните форму и наш оператор свяжется
с вами для консультации.

+
+
+
+
+
+ + + +
+
+ + + +
+
+ +
+
+
+
+
+
+
+ +
+ + diff --git a/source/js/main.js b/source/js/main.js index 70fde252c..d47e0eff3 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -1,4 +1,19 @@ -// https://swiperjs.com/get-started#installation -// import Swiper from "swiper"; -// import {Navigation, Pagination} from "swiper/modules"; -// import 'swiper/css'; +import { openMenu } from '../js/modules/open-menu'; +import { initHeroSlider } from '../js/modules/sliders/hero-slider'; +import { initToursSlider } from '../js/modules/sliders/tours-slider'; +import { initTrainingSlider } from '../js/modules/sliders/training-slider'; +import { initReviewsSlider } from '../js/modules/sliders/reviews-slider'; +import { initAdvSlider } from '../js/modules/sliders/adv-slider'; +import { initGallerySlider } from '../js/modules/sliders/gallery-slider'; + +window.addEventListener('DOMContentLoaded', () => { + openMenu(); + window.addEventListener('load', () => { + initHeroSlider(); + initToursSlider(); + initTrainingSlider(); + initReviewsSlider(); + initAdvSlider(); + initGallerySlider(); + }); +}); diff --git a/source/js/modules/open-menu.js b/source/js/modules/open-menu.js new file mode 100644 index 000000000..254e7dcf1 --- /dev/null +++ b/source/js/modules/open-menu.js @@ -0,0 +1,60 @@ +const openMenu = () => { + if (document.querySelector('[data-element="menu"]') && document.querySelector('[data-element="menu-btn"]')) { + const menu = document.querySelector('[data-element="menu"]'); + const menuBtn = document.querySelector('[data-element="menu-btn"]'); + const header = document.querySelector('[data-element="page-header"]'); + const wrapper = document.querySelector('[data-element="page-wrapper"]'); + const menuItems = menu.querySelectorAll('a'); + + const closeMenu = () => { + menuBtn.classList.remove('is-open'); + menu.classList.remove('is-open'); + wrapper.classList.remove('is-open'); + document.body.style.overflow = ''; + + requestAnimationFrame(() => { + menu.style.top = `${-1000}px`; + }); + }; + + const openMenu = () => { + const headerHeight = header.offsetHeight; + menuBtn.classList.add('is-open'); + menu.classList.add('is-open'); + wrapper.classList.add('is-open'); + document.body.style.overflow = 'hidden'; + + requestAnimationFrame(() => { + menu.style.top = `${headerHeight - 20}px`; + }); + }; + + const toggleMenu = () => { + if (menu.classList.contains('is-open')) { + closeMenu(); + } else { + openMenu(); + } + }; + + menuBtn.addEventListener('click', toggleMenu); + + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape' && menu.classList.contains('is-open')) { + closeMenu(); + } + }); + + document.addEventListener('click', (e) => { + if (!menu.contains(e.target) && !menuBtn.contains(e.target) && menu.classList.contains('is-open')) { + closeMenu(); + } + }); + + menuItems.forEach(item => { + item.addEventListener('click', closeMenu); + }); + } +}; + +export { openMenu }; diff --git a/source/js/modules/sliders/adv-slider.js b/source/js/modules/sliders/adv-slider.js new file mode 100644 index 000000000..85ebdbe52 --- /dev/null +++ b/source/js/modules/sliders/adv-slider.js @@ -0,0 +1,108 @@ +// import Swiper from 'swiper'; +// import { Navigation } from 'swiper/modules'; + +// const createAdvSlider = () => { +// const advSlider = document.querySelector('[data-slider="adv-slider"]'); +// if (advSlider) { +// return new Swiper(advSlider, { +// modules: [Navigation], +// simulateTouch: false, +// grabCursor: false, +// speed: 500, +// loop: true, +// loopedSlides: 2, // Количество дублированных слайдов +// slidesPerView: 'auto', +// centeredSlides: true, +// spaceBetween: 30, +// initialSlide: 2, +// slidesPerGroup: 2, +// navigation: { +// nextEl: '.adv__arrow--next', +// prevEl: '.adv__arrow--prev', +// }, +// }); +// } +// return null; +// }; + +// const initAdvSlider = () => { +// let swiper = null; +// const isValid = () => { +// const desktopWidth = window.matchMedia('(min-width: 1439px)'); +// return desktopWidth.matches; +// }; + +// if (isValid()) { +// swiper = createAdvSlider(); +// } + +// window.addEventListener('resize', () => { +// if (isValid()) { +// if (!swiper) { +// swiper = createAdvSlider(); +// } +// } else { +// if (swiper) { +// swiper.destroy(); +// swiper = null; +// } +// } +// }); +// }; + +// export { initAdvSlider }; + + +// новый вариант +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; + +const createAdvSlider = () => { + const advSlider = document.querySelector('[data-slider="adv-slider"]'); + if (advSlider) { + return new Swiper(advSlider, { + modules: [Navigation], + simulateTouch: false, + grabCursor: false, + speed: 500, + loop: true, + slidesPerView: 'auto', + centeredSlides: true, + spaceBetween: 30, + initialSlide: 2, + slidesPerGroup: 2, + navigation: { + nextEl: '.adv__arrow--next', + prevEl: '.adv__arrow--prev', + }, + }); + } + return null; +}; + +const initAdvSlider = () => { + let swiper = null; + const isValid = () => { + const desktopWidth = window.matchMedia('(min-width: 1440px)'); + return desktopWidth.matches; + }; + + if (isValid()) { + swiper = createAdvSlider(); + } + + window.addEventListener('resize', () => { + if (isValid()) { + if (!swiper) { + swiper = createAdvSlider(); + } + } else { + if (swiper) { + swiper.destroy(true, true); + swiper = null; + } + } + }); +}; + +export { initAdvSlider }; diff --git a/source/js/modules/sliders/gallery-slider.js b/source/js/modules/sliders/gallery-slider.js new file mode 100644 index 000000000..35df42853 --- /dev/null +++ b/source/js/modules/sliders/gallery-slider.js @@ -0,0 +1,57 @@ +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; +import 'swiper/css'; + +const initGallerySlider = () => { + const gallerySlider = document.querySelector('[data-slider="gallery-slider"]'); + if (!gallerySlider) { + return; + } + + let swiperInstance = null; + const mediaQuery = window.matchMedia('(max-width: 1439px)'); + + const initializeSlider = () => { + if (mediaQuery.matches) { + if (!swiperInstance) { + swiperInstance = new Swiper(gallerySlider, { + modules: [Navigation], + watchOverflow: true, + speed: 500, + loop: true, + autoHeight: false, + navigation: { + nextEl: '.gallery__arrow--next', + prevEl: '.gallery__arrow--prev', + }, + breakpoints: { + 320: { + slidesPerView: 2, + spaceBetween: 5, + simulateTouch: true, + }, + 768: { + simulateTouch: false, + grabCursor: false, + slidesPerView: 3, + spaceBetween: 5, + } + }, + }); + } + } else { + if (swiperInstance) { + swiperInstance.destroy(true, true); + swiperInstance = null; + } + } + }; + + // Initialize slider on load + initializeSlider(); + + // Reinitialize slider on window resize + mediaQuery.addEventListener('change', initializeSlider); +}; + +export { initGallerySlider }; diff --git a/source/js/modules/sliders/hero-slider.js b/source/js/modules/sliders/hero-slider.js new file mode 100644 index 000000000..a5067937c --- /dev/null +++ b/source/js/modules/sliders/hero-slider.js @@ -0,0 +1,80 @@ +import Swiper from 'swiper'; +import { Pagination } from 'swiper/modules'; +import 'swiper/css'; +import 'swiper/css/pagination'; + +const initHeroSlider = () => { + if (!document.querySelector('[data-slider="hero-slider"]')) { + return; + } + + const heroSlider = document.querySelector('[data-slider="hero-slider"]'); + let isFirstLoad = true; + + const initActiveSlide = () => { + const activeSlide = document.querySelector('.swiper-slide-active'); + if (!activeSlide) { + return; + } + + const allSlides = document.querySelectorAll('.hero-slide'); + allSlides.forEach((slide) => { + slide.querySelectorAll('a').forEach((slideLink) => { + slideLink.setAttribute('tabindex', '-1'); + }); + }); + + activeSlide.querySelectorAll('a').forEach((slideLink) => { + slideLink.setAttribute('tabindex', '0'); + }); + }; + + const setActiveLink = () => { + if (isFirstLoad) { + return; + } + + setTimeout(() => { + const activeSlide = document.querySelector('.swiper-slide-active'); + if (activeSlide) { + const slideLink = activeSlide.querySelector('a'); + if (slideLink) { + slideLink.focus(); + } + } + }, 200); + }; + + new Swiper(heroSlider, { + modules: [Pagination], + grabCursor: false, + watchOverflow: true, + simulateTouch: false, + speed: 500, + loop: true, + slidesPerView: 1, + autoHeight: true, + pagination: { + el: '.hero__slider-pagination', + clickable: true, + bulletElement: 'button type="button"', + bulletClass: 'hero__slider-bullet', + bulletActiveClass: 'hero__slider-bullet--is-active', + }, + on: { + init: () => { + initActiveSlide(); + isFirstLoad = false; + }, + slideChange: () => { + initActiveSlide(); + setActiveLink(); + }, + slideChangeTransitionStart: () => { + initActiveSlide(); + }, + }, + }); +}; + +export { initHeroSlider }; diff --git a/source/js/modules/sliders/reviews-slider.js b/source/js/modules/sliders/reviews-slider.js new file mode 100644 index 000000000..3242f814e --- /dev/null +++ b/source/js/modules/sliders/reviews-slider.js @@ -0,0 +1,43 @@ +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; +import 'swiper/css'; + +const initReviewsSlider = () => { + const reviewsSlider = document.querySelector('[data-slider="reviews-slider"]'); + if (!reviewsSlider) { + return; + } + + new Swiper(reviewsSlider, { + modules: [Navigation], + simulateTouch: false, + grabCursor: false, + watchOverflow: true, + speed: 500, + loop: false, + autoHeight: true, + slidesPerView: 'auto', + navigation: { + nextEl: '.reviews__arrow--next', + prevEl: '.reviews__arrow--prev', + lockClass: 'disabled', + }, + breakpoints: { + 320: { + initialSlide: 0, + autoHeight: true, + }, + 768: { + spaceBetween: 0, + simulateTouch: false, + autoHeight: false, + }, + 1440: { + spaceBetween: 100, + autoHeight: false, + }, + }, + }); +}; + +export { initReviewsSlider }; diff --git a/source/js/modules/sliders/tours-slider.js b/source/js/modules/sliders/tours-slider.js new file mode 100644 index 000000000..d28ba4263 --- /dev/null +++ b/source/js/modules/sliders/tours-slider.js @@ -0,0 +1,42 @@ +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; +import 'swiper/css'; + +const initToursSlider = () => { + const toursSlider = document.querySelector('[data-slider="tours-slider"]'); + if (!toursSlider) { + return; + } + + new Swiper(toursSlider, { + modules: [Navigation], + simulateTouch: false, + grabCursor: false, + watchOverflow: true, + speed: 500, + loop: false, + autoHeight: false, + navigation: { + nextEl: '.tours__arrow--next', + prevEl: '.tours__arrow--prev', + lockClass: 'disabled', + }, + breakpoints: { + 320: { + slidesPerView: 1, + initialSlide: 0, + }, + 768: { + slidesPerView: 2, + spaceBetween: 18, + simulateTouch: false, + }, + 1440: { + slidesPerView: 3, + spaceBetween: 30, + }, + }, + }); +}; + +export { initToursSlider }; diff --git a/source/js/modules/sliders/training-slider.js b/source/js/modules/sliders/training-slider.js new file mode 100644 index 000000000..796dc7256 --- /dev/null +++ b/source/js/modules/sliders/training-slider.js @@ -0,0 +1,43 @@ +import Swiper from 'swiper'; +import { Navigation } from 'swiper/modules'; +import 'swiper/css'; + +const initTrainingSlider = () => { + const trainingSlider = document.querySelector('[data-slider="training-slider"]'); + if (!trainingSlider) { + return; + } + + new Swiper(trainingSlider, { + modules: [Navigation], + simulateTouch: false, + grabCursor: false, + watchOverflow: true, + speed: 500, + loop: false, + autoHeight: false, + navigation: { + nextEl: '.training__arrow--next', + prevEl: '.training__arrow--prev', + lockClass: 'disabled', + }, + breakpoints: { + 320: { + slidesPerView: 1, + initialSlide: 2, + }, + 768: { + initialSlide: 0, + slidesPerView: 3, + spaceBetween: 20, + simulateTouch: false, + }, + 1440: { + slidesPerView: 4, + spaceBetween: 20, + }, + }, + }); +}; + +export { initTrainingSlider }; diff --git a/source/sass/blocks/about.scss b/source/sass/blocks/about.scss new file mode 100644 index 000000000..5ecbef106 --- /dev/null +++ b/source/sass/blocks/about.scss @@ -0,0 +1,243 @@ +.about { + position: relative; + overflow: hidden; + + &::after { + position: absolute; + content: ""; + top: 100px; + left: 0; + width: 660px; + height: 498px; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/about/about-desktop.webp"); + } + + background-image: url("../../img/about/about-desktop.png"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/about/about-desktop@2x.webp"); + } + + background-image: url("../../img/about/about-desktop@2x.png"); + } + + @include vp-1439 { + z-index: -1; + width: 542px; + height: 350px; + top: 174px; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/about/about-tablet.webp"); + } + + background-image: url("../../img/about/about-tablet.png"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/about/about-tablet@2x.webp"); + } + + background-image: url("../../img/about/about-tablet@2x.png"); + } + } + + @include vp-767 { + width: 434px; + height: 400px; + top: 20px; + background-size: contain; + background-position: 0 0; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/about/about-mobile.webp"); + } + + background-image: url("../../img/about/about-mobile.png"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/about/about-mobile@2x.webp"); + } + + background-image: url("../../img/about/about-mobile@2x.png"); + } + } + } +} + +.about__wrapper { + max-width: 1440px; + margin-left: auto; + margin-right: auto; + padding-top: 143px; + padding-bottom: 179px; + display: flex; + align-items: flex-start; + justify-content: flex-end; + + @include vp-1439 { + padding-top: 59px; + padding-bottom: 42px; + } + + @include vp-767 { + justify-content: center; + padding-top: 436px; + padding-bottom: 20px; + } +} + +.about__container { + width: 100%; + max-width: 660px; + margin-right: 120px; + + @include vp-1439 { + margin-right: 48px; + max-width: 270px; + } + + @include vp-767 { + padding-left: 15px; + padding-right: 15px; + max-width: none; + margin-right: 0; + } +} + +.about__head { + margin-bottom: 60px; + + @include vp-1439 { + margin-bottom: 49px; + } + + @include vp-767 { + margin-bottom: 42px; + } +} + +.about__head h2 { + margin: 0; + font-size: 35px; + line-height: 35px; + font-weight: 800; + text-align: left; + position: relative; + + &--dark { + color: $color-dark; + } + + @include vp-1439 { + font-size: 25px; + line-height: 25px; + } + + @include vp-767 { + font-size: 22px; + line-height: 22px; + } +} + +.about__head span { + position: absolute; + left: 0; + bottom: 17px; + font-size: 55px; + line-height: 55px; + font-weight: 800; + text-align: left; + color: rgba($color-dark, 0.03); + + @include vp-1439 { + font-size: 40px; + line-height: 40px; + bottom: 0; + } + + @include vp-767 { + font-size: 26px; + line-height: 26px; + bottom: 9px; + } +} + +.about__history, +.about__mission { + max-width: 585px; + + @include vp-1439 { + max-width: none; + } +} + +.about__history h3, +.about__mission h3 { + margin: 0; + margin-bottom: 17px; + font-size: 21px; + line-height: 21px; + font-weight: 700; + + @include vp-1439 { + margin-bottom: 11px; + font-size: 18px; + line-height: 18px; + } + + @include vp-767 { + margin-bottom: 15px; + font-size: 16px; + line-height: 16px; + } +} + +.about__history p, +.about__mission p { + margin: 0; + font-size: 14px; + line-height: 22px; + font-weight: 400; + + @include vp-1439 { + font-size: 16px; + line-height: 24px; + } + + @include vp-767 { + font-size: 14px; + line-height: 20px; + } +} + +.about__history { + margin-bottom: 28px; + + @include vp-1439 { + margin-bottom: 29px; + } + + @include vp-767 { + margin-bottom: 25px; + } +} + +.about__history br { + @include vp-1439 { + display: none; + } +} + +.about__mission {} + +.about__mission {} + +.about__mission {} diff --git a/source/sass/blocks/adv-slide.scss b/source/sass/blocks/adv-slide.scss new file mode 100644 index 000000000..90123884f --- /dev/null +++ b/source/sass/blocks/adv-slide.scss @@ -0,0 +1,140 @@ +.adv-slide.swiper-slide { + width: 380px; + min-height: 329px; + padding-top: 39px; + padding-bottom: 20px; + padding-left: 19px; + padding-right: 19px; + border: 1px solid rgba($color-action, 0.1); + background-color: $color-white; + + @include vp-1439 { + width: 324px; + min-height: 340px; + padding-top: 29px; + padding-bottom: 29px; + + //test + //test + + &:last-of-type { + grid-column: span 2; + } + } + + @include vp-767 { + min-height: auto; + max-width: 100%; + padding-top: 19px; + padding-bottom: 19px; + padding-left: 9px; + padding-right: 9px; + + //test + //test + } +} + +.adv-slide__container { + color: $color-dark; + display: flex; + flex-direction: column; + align-items: center; +} + +.adv-slide__icon { + width: 54px; + height: 54px; + border: 1px solid $color-action; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 30px; + + @include vp-1439 { + margin-bottom: 25px; + width: 48px; + height: 48px; + + //test + //test + } + + @include vp-767 { + margin-bottom: 20px; + width: 42px; + height: 42px; + } +} + +.adv-slide--security {} + +.adv-slide--knowledge {} + +.adv-slide--equipment {} + +.adv-slide--routes {} + +.adv-slide--nature {} + +.adv-slide--nature {} + +.adv-slide__container svg { + width: 22px; + height: 22px; + color: $color-action; + + @include vp-1439 { + width: 24px; + height: 24px; + } +} + +.adv-slide__container h3 { + margin: 0; + margin-bottom: 15px; + font-size: 18px; + line-height: 18px; + font-weight: 600; + text-align: center; + + @include vp-1439 { + font-size: 16px; + line-height: 16px; + } + + @include vp-767 { + font-size: 14px; + line-height: 14px; + } +} + +.adv-slide__container p { + margin: 0; + font-size: 14px; + line-height: 22px; + font-weight: 400; + text-align: center; + + @include vp-767 { + font-size: 12px; + line-height: 18px; + font-weight: 400; + } +} + +.adv-slide__container p > br { + display: none; + + @include vp-767 { + display: inline; + } +} + +.adv-slide__container h3 > br { + display: none; + + @include vp-767 { + display: inline; + } +} diff --git a/source/sass/blocks/adv.scss b/source/sass/blocks/adv.scss new file mode 100644 index 000000000..3f15179f8 --- /dev/null +++ b/source/sass/blocks/adv.scss @@ -0,0 +1,115 @@ +.adv { + padding-top: 135px; + padding-bottom: 100px; + + @include vp-1439 { + padding-top: 60px; + padding-bottom: 40px; + + //test + //test + } + + @include vp-767 { + padding-top: 36px; + padding-bottom: 20px; + } +} + +.adv__head { + margin-bottom: 50px; + + @include vp-1439 { + margin-bottom: 60px; + + //test + //test + } + + @include vp-767 { + margin-bottom: 37px; + //test + //test + } +} + +.adv__title { + text-align: center; + position: relative; +} + +.adv__title-back { + bottom: 9px; + left: 50%; + transform: translateX(-50%); + + @include vp-1439 { + bottom: 1px; + } + + @include vp-767 { + bottom: 9px; + } +} + +.adv__container { + max-width: 1440px; + margin-left: auto; + margin-right: auto; + + @include vp-1439 { + padding: 0 45px; + margin-bottom: 0; + } + + @include vp-767 { + padding: 0 15px; + } +} + +.adv__slider { + margin-bottom: 50px; + + @include vp-1439 { + margin-bottom: 0; + } + + @include vp-767 { + overflow: visible; + } +} + +.adv__wrapper.swiper-wrapper { + @include vp-1439 { + max-width: 678px; + margin: 0 auto; + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-auto-flow: dense; + grid-column-gap: 30px; + grid-row-gap: 30px; + justify-content: center; + justify-items: center; + } + + @include vp-767 { + display: flex; + flex-direction: column; + justify-content: flex-start; + row-gap: 15px; + height: auto; + } +} + +.adv__slide.swiper-slide { + height: auto; +} + +.adv__slider-btns { + max-width: 78px; + margin: 0 auto; + + @include vp-1439 { + display: none; + } +} diff --git a/source/sass/blocks/btn.scss b/source/sass/blocks/btn.scss new file mode 100644 index 000000000..ba0fbd5d3 --- /dev/null +++ b/source/sass/blocks/btn.scss @@ -0,0 +1,54 @@ +.btn { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 10px; + min-height: 56px; + border: 1px solid $color-transparent; + font-size: 16px; + line-height: 16px; + font-weight: 500; + text-align: center; + text-decoration: none; + color: $color-white; + background-color: $color-action; + transition: background-color $trans-default, border-color $trans-default, color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + background-color: $color-white; + color: $color-dark-alternative; + border-color: $color-white; + } + + &:hover:not(:disabled):not(.disabled):not(:focus-visible):not(:active) { + background-color: $color-white; + color: $color-dark-alternative; + border-color: $color-dark-alternative; + } + + &:active { + background-color: $color-dark-alternative; + color: $color-white; + border-color: $color-dark-alternative; + } + + &:disabled { + pointer-events: none; + color: $color-white; + background-color: #999999; + border-color: #999999; + } +} + +.btn.disabled { + pointer-events: none; + color: $color-white; + background-color: #999999; + border-color: #999999; +} diff --git a/source/sass/blocks/contacts.scss b/source/sass/blocks/contacts.scss new file mode 100644 index 000000000..c3b266220 --- /dev/null +++ b/source/sass/blocks/contacts.scss @@ -0,0 +1,273 @@ +.contacts { + padding-top: 123px; + padding-bottom: 95px; + + @include vp-1439 { + padding-top: 60px; + padding-bottom: 39px; + } + + @include vp-767 { + padding-top: 36px; + padding-bottom: 19px; + } +} + +.contacts__container { + display: flex; + align-items: flex-start; + width: 100%; + max-width: 1440px; + margin: 0 auto; + padding: 0 120px; + + @include vp-1439 { + flex-direction: column; + padding: 0; + } + + @include vp-767 {} +} + +.contacts__col { + &--info { + width: 600px; + + @include vp-1439 { + width: 768px; + margin-left: auto; + margin-right: auto; + padding-left: 45px; + padding-right: 43px; + } + + @include vp-767 { + width: auto; + padding-left: 15px; + padding-right: 15px; + } + } + + &--map { + width: 600px; + padding-top: 26px; + + @include vp-1439 { + width: 100%; + padding-top: 39px; + } + + @include vp-767 { + padding-top: 30px; + } + } +} + +.contacts__head { + margin-bottom: 50px; + + @include vp-1439 { + margin-bottom: 40px; + } + + @include vp-767 { + margin-bottom: 30px; + } +} + +.contacts__title { + position: relative; + margin-bottom: 23px; + + @include vp-1439 { + margin-bottom: 21px; + } + + @include vp-767 { + margin-bottom: 29px; + } +} + +.contacts__title-back { + bottom: -3px; + + @include vp-1439 { + bottom: 1px; + } + + @include vp-767 { + bottom: 9px; + } +} + +.contacts__head p { + max-width: 500px; + margin: 0; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + @include vp-1439 {} + + @include vp-767 { + max-width: none; + font-size: 14px; + line-height: 20px; + } +} + +.contacts__list { + padding: 0; + margin: 0; + list-style-type: none; + display: flex; + flex-direction: column; + align-items: flex-start; + row-gap: 35px; + + @include vp-1439 { + width: 100%; + flex-direction: row; + row-gap: 20px; + column-gap: 40px; + } + + @include vp-767 { + flex-direction: column; + row-gap: 30px; + } +} + +.contacts__item { + padding-left: 56px; + display: flex; + flex-direction: column; + align-self: flex-start; + row-gap: 8px; + position: relative; + + &--phone::before, + &--email::before, + &--address::before { + position: absolute; + content: ""; + top: 12px; + left: 0; + width: 26px; + height: 26px; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-dark; + + @include vp-1439 { + width: 24px; + height: 24px; + top: 0; + } + } + + &--phone { + &::before { + + mask-image: url("../__spritemap#sprite-icon-phone-view"); + mask-size: 23.64px 23.64px; + + @include vp-1439 { + mask-size: 21.82px 21.82px; + } + + @include vp-767 { + mask-size: 20px 20px; + } + } + + } + + &--email { + &::before { + mask-image: url("../__spritemap#sprite-icon-mail-view"); + mask-size: 23.64px 16.55px; + + @include vp-1439 { + mask-size: 21.82px 15.27px; + } + + @include vp-767 { + mask-size: 20px 14px; + } + } + + } + + &--address { + &::before { + mask-image: url("../__spritemap#sprite-icon-pin-view"); + mask-size: 17.73px 23.64px; + + @include vp-1439 { + mask-size: 16.36px 21.82px; + } + + @include vp-767 { + mask-size: 15px 20px; + } + } + + } + + @include vp-1439 { + padding-left: 34px; + row-gap: 6px; + } + + @include vp-767 { + padding-left: 32px; + row-gap: 8px; + } +} + +.contacts__item span { + font-size: 18px; + font-weight: 600; + line-height: 18px; + + @include vp-1439 { + font-size: 16px; + line-height: 16px; + } + + @include vp-767 { + font-size: 14px; + line-height: 14px; + } +} + +.contacts__item a, +.contacts__item b { + font-size: 16px; + font-weight: 400; + line-height: 24px; + + @include vp-1439 { + font-size: 14px; + line-height: 22px; + } + + @include vp-767 { + font-size: 14px; + line-height: 20px; + } +} + +.contacts__item a { + text-decoration: none; + color: inherit; +} + +.contacts__item br { + display: none; + + @include vp-767 { + display: inline; + } +} diff --git a/source/sass/blocks/form.scss b/source/sass/blocks/form.scss new file mode 100644 index 000000000..43692dd1e --- /dev/null +++ b/source/sass/blocks/form.scss @@ -0,0 +1,320 @@ +.form { + min-height: 760px; + padding-top: 297px; + padding-bottom: 290px; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + position: relative; + + &::before { + position: absolute; + z-index: 1; + content: ""; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.2); + } + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/form/form-desktop.webp"); + } + + background-image: url("../../img/form/form-desktop.png"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/form/form-desktop@2x.webp"); + } + + background-image: url("../../img/form/form-desktop@2x.png"); + } + + @include vp-1439 { + min-height: 680px; + padding-top: 186px; + padding-bottom: 180px; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/form/form-tablet.webp"); + } + + background-image: url("../../img/form/form-tablet.png"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/form/form-tablet@2x.webp"); + } + + background-image: url("../../img/form/form-tablet@2x.png"); + } + } + + @include vp-767 { + min-height: 638px; + padding-top: 177px; + padding-bottom: 170px; + background-position: -36px 0; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/form/form-mobile.webp"); + } + + background-image: url("../../img/form/form-mobile.png"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/form/form-mobile@2x.webp"); + } + + background-image: url("../../img/form/form-mobile@2x.png"); + } + } +} + +.form .container { + position: relative; + z-index: 2; +} + +.form__head { + margin-bottom: 40px; + + @include vp-1439 { + margin-bottom: 25px; + } + + @include vp-767 { + margin-bottom: 19px; + } +} + +.form__head h2 { + margin: 0; + margin-bottom: 16px; + font-size: 35px; + line-height: 35px; + font-weight: 800; + text-align: center; + color: $color-white; + + @include vp-1439 { + margin-bottom: 23px; + font-size: 25px; + line-height: 25px; + } + + @include vp-767 { + margin-bottom: 18px; + font-size: 22px; + line-height: 22px; + } +} + +.form__head p { + margin: 0; + margin-left: auto; + margin-right: auto; + font-size: 16px; + line-height: 24px; + font-weight: 400; + text-align: center; + color: $color-white; + + @include vp-1439 { + max-width: 360px; + font-size: 16px; + line-height: 24px; + } + + @include vp-767 { + max-width: 258px; + font-size: 12px; + line-height: 18px; + } +} + +.form__head br { + display: none; + + @include vp-767 { + display: inline; + } +} + +.form__container { + max-width: 960px; + margin-left: auto; + margin-right: auto; +} + +.form__inputs { + display: flex; + column-gap: 30px; + align-items: flex-start; + + @include vp-1439 { + flex-direction: column; + align-items: center; + column-gap: 0; + row-gap: 11px; + } + + @include vp-767 { + row-gap: 8px; + } +} + +.form__input { + width: 100%; + max-width: 360px; + flex-shrink: 0; + + @include vp-1439 {} + + @include vp-767 { + max-width: 258px; + } +} + +.form__input input { + width: 100%; + padding: 10px 30px; + padding-left: 30px; + padding-right: 30px; + min-height: 56px; + color: $color-dark; + border-radius: 2px; + background-color: $color-white; + border: 1px solid rgba($color-action, 0.1); + + &::placeholder { + color: inherit; + font-size: 16px; + line-height: 16px; + font-weight: 400; + color: rgba($color-dark, 0.5); + } + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + border-color: $color-dark; + + &::placeholder {} + } + + &:hover:not(:disabled):not(:focus-visible):not(.error) { + border-color: $color-action; + + &::placeholder { + color: rgba($color-dark, 0.5); + } + } + + &:disabled { + border-color: #999999; + color: rgba(#999999, 0.5); + } + + @include vp-767 { + min-height: 50px; + padding-left: 15px; + padding-right: 15px; + } +} + +.form__input.error input { + // border-bottom: 1px solid $color-error; +} + +.form__error-text { + // display: none; +} + +.form__input.error .form__error-text { + // display: block; + // position: absolute; + // bottom: -22px; + // left: 0; + // font-size: 14px; + // font-weight: 400; + // line-height: 22px; + // text-align: left; + // color: $color-error; +} + +.form__btn { + flex-shrink: 0; + width: 100%; + max-width: 180px; + + @include vp-1439 { + max-width: 360px; + } + + @include vp-767 { + max-width: 258px; + } +} + +.form__btn button { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 10px; + min-height: 56px; + border: 1px solid $color-transparent; + font-size: 16px; + line-height: 16px; + font-weight: 500; + text-align: center; + text-decoration: none; + color: $color-white; + background-color: $color-action; + transition: background-color $trans-default, border-color $trans-default, color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + background-color: $color-white; + color: $color-dark-alternative; + border-color: $color-white; + } + + &:hover:not(:disabled):not(.disabled):not(:focus-visible):not(:active) { + background-color: $color-white; + color: $color-dark-alternative; + border-color: $color-dark-alternative; + } + + &:active { + background-color: $color-dark-alternative; + color: $color-white; + border-color: $color-dark-alternative; + } + + &:disabled { + pointer-events: none; + color: $color-white; + background-color: #999999; + border-color: #999999; + } + + @include vp-767 { + min-height: 58px; + } +} + +.form__error-text {} diff --git a/source/sass/blocks/gallery-slide.scss b/source/sass/blocks/gallery-slide.scss new file mode 100644 index 000000000..6566fe627 --- /dev/null +++ b/source/sass/blocks/gallery-slide.scss @@ -0,0 +1,54 @@ +.gallery-slide__img { + font-size: 0; + line-height: 0; +} + +.gallery-slide__img img { + display: block; + width: 284px; + height: 463px; + + @include vp-1439 { + width: 253px; + height: 418px; + } + + @include vp-767 { + width: 158px; + height: 266px; + } +} + +.gallery-slide__row--top img { + width: 284px; + height: 233px; + + @include vp-1439 { + width: 252px; + height: 210px; + } + + @include vp-767 { + width: 157px; + height: 135px; + } +} + +.gallery-slide__row--bottom img { + width: 284px; + height: 223px; + + @include vp-1439 { + width: 252px; + height: 201px; + } + + @include vp-767 { + width: 158px; + height: 124px; + } +} + +.gallery-slide__row:not(:last-child) { + margin-bottom: 7px; +} diff --git a/source/sass/blocks/gallery.scss b/source/sass/blocks/gallery.scss new file mode 100644 index 000000000..a731cfcb1 --- /dev/null +++ b/source/sass/blocks/gallery.scss @@ -0,0 +1,117 @@ +.gallery { + padding-top: 123px; + padding-bottom: 3px; + + @include vp-1439 { + padding-top: 59px; + } + + @include vp-767 { + padding-top: 37px; + } +} + +.gallery__head { + margin-bottom: 46px; + + @include vp-1439 { + margin-bottom: 21px; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-end; + } + + @include vp-767 { + margin-bottom: 31px; + } +} + + + +.gallery__title { + position: relative; + width: 100%; + margin-bottom: 23px; + + @include vp-1439 { + margin-bottom: 31px; + } + + @include vp-767 { + margin-bottom: 26px; + } +} + +.gallery__title-back { + bottom: -3px; + + @include vp-1439 { + bottom: -1px; + } + + @include vp-767 { + bottom: 9px; + } +} + +.gallery__head p { + margin: 0; + max-width: 592px; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + @include vp-1439 { + max-width: 420px; + font-size: 14px; + line-height: 22px; + } + + @include vp-767 { + max-width: none; + font-size: 12px; + line-height: 18px; + } +} + +.gallery__head br { + display: none; + + @include vp-1439 { + display: inline; + } +} + +.gallery__slider-btns { + display: none; + + @include vp-1439 { + display: flex; + max-width: 78px; + } + + @include vp-767 { + display: none; + } +} + +.gallery__container { + max-width: 1440px; + margin-left: auto; + margin-right: auto; +} + +.gallery__wrapper.swiper-wrapper { + @include vp-1440 { + display: flex; + justify-content: center; + column-gap: 5px; + } +} + +.gallery__slide.swiper-slide { + @include vp-1440 { + width: 284px; + } +} diff --git a/source/sass/blocks/hero-slide.scss b/source/sass/blocks/hero-slide.scss new file mode 100644 index 000000000..9df65a7a9 --- /dev/null +++ b/source/sass/blocks/hero-slide.scss @@ -0,0 +1,379 @@ +.hero-slide { + padding-top: 200px; + padding-bottom: 80px; + background-color: #5f83ae; + min-height: 800px; + color: $color-white; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + position: relative; + + &::before { + position: absolute; + content: ""; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: $hero-gradient; + } + + &:nth-child(1) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-1-desktop.webp"); + } + + background-image: url("../../img/hero/item-1-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-1-desktop@2x.webp"); + } + + background-image: url("../../img/hero/item-1-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-1-tablet.webp"); + } + + background-image: url("../../img/hero/item-1-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-1-tablet@2x.webp"); + } + + background-image: url("../../img/hero/item-1-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-1-mobile.webp"); + } + + background-image: url("../../img/hero/item-1-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-1-mobile@2x.webp"); + } + + background-image: url("../../img/hero/item-1-mobile@2x.jpg"); + } + } + } + + &:nth-child(2) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-2-desktop.webp"); + } + + background-image: url("../../img/hero/item-2-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-2-desktop@2x.webp"); + } + + background-image: url("../../img/hero/item-2-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-2-tablet.webp"); + } + + background-image: url("../../img/hero/item-2-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-2-tablet@2x.webp"); + } + + background-image: url("../../img/hero/item-2-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-2-mobile.webp"); + } + + background-image: url("../../img/hero/item-2-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-2-mobile@2x.webp"); + } + + background-image: url("../../img/hero/item-2-mobile@2x.jpg"); + } + } + } + + &:nth-child(3) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-3-desktop.webp"); + } + + background-image: url("../../img/hero/item-3-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-3-desktop@2x.webp"); + } + + background-image: url("../../img/hero/item-3-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-3-tablet.webp"); + } + + background-image: url("../../img/hero/item-3-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-3-tablet@2x.webp"); + } + + background-image: url("../../img/hero/item-3-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-3-mobile.webp"); + } + + background-image: url("../../img/hero/item-3-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/hero/item-3-mobile@2x.webp"); + } + + background-image: url("../../img/hero/item-3-mobile@2x.jpg"); + } + } + } + + @include vp-1439 { + padding-top: 342px; + min-height: 1034px; + + &:nth-child(2) { + padding-top: 137px; + } + } + + @include vp-767 { + padding-top: 144px; + min-height: 568px; + } +} + +.hero-slide__wrapper { + position: relative; + + @include vp-1439 { + display: flex; + align-items: center; + flex-direction: column; + } + +} + +.hero-slide__content { + position: relative; + display: flex; + flex-direction: column; + align-items: flex-start; + + @include vp-1439 { + align-items: center; + } +} + +.hero-slide__content h3 { + position: relative; + z-index: 3; + margin: 0; + margin-bottom: 23px; + max-width: 944px; + font-size: 77px; + line-height: 77px; + font-weight: 800; + + @include vp-1439 { + max-width: none; + margin-bottom: 13px; + font-size: 56px; + line-height: 56px; + text-align: center; + } + + @include vp-767 { + margin-bottom: 15px; + font-size: 26px; + line-height: 26px; + } +} + +.hero-slide__content p { + position: relative; + z-index: 3; + margin: 0; + margin-bottom: 37px; + max-width: 464px; + font-size: 17px; + line-height: 24px; + font-weight: 400; + + @include vp-1439 { + max-width: 500px; + font-size: 17px; + line-height: 24px; + text-align: center; + } + + @include vp-767 { + margin-bottom: 60px; + max-width: none; + font-size: 15px; + line-height: 20px; + } +} + +.hero-slide__info { + margin-top: 134px; + display: flex; + align-items: flex-start; + justify-content: space-between; + flex-wrap: wrap; + column-gap: 10px; + row-gap: 20px; + + @include vp-1439 { + display: none; + } +} + +.hero-slide__info span { + position: relative; + font-size: 12px; + line-height: 16px; + font-weight: 400; + min-height: 44px; + padding-top: 12px; + padding-bottom: 10px; + padding-left: 39px; + padding-right: 19px; + border: 1px solid $color-white; + + &::before { + position: absolute; + content: ""; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-white; + } +} + +.hero-slide__duration::before { + width: 10.91px; + height: 10.91px; + left: 20px; + top: 16px; + mask-image: url("../__spritemap#sprite-icon-moon-view"); + mask-size: 10.91px 10.91px; +} + +.hero-slide__difficulty::before { + width: 9.82px; + height: 10.91px; + left: 20px; + top: 16px; + mask-image: url("../__spritemap#sprite-icon-level-view"); + mask-size: 9.82px 10.91px; +} + +.hero-slide__btn { + max-width: 180px; +} + +.hero-slide__img { + font-size: 0; + line-height: 0; + position: absolute; + width: 410px; + right: 120px; + top: -13px; + + @include vp-1439 { + position: relative; + top: 0; + right: 0; + min-height: 365px; + width: 442px; + margin-bottom: 160px; + } + + @include vp-767 { + display: none; + } +} + +.hero-slide__img img { + display: block; +} + +.hero-slide__photo-1 { + position: absolute; + top: 93px; + right: 0; + z-index: 2; + + @include vp-1439 { + top: 98px; + } +} + +.hero-slide__photo-2 { + position: absolute; + top: 0; + right: 102px; + z-index: 1; + + @include vp-1439 { + right: 176px; + top: 45px; + } +} + +.hero-slide__photo-1 img { + width: 277px; + height: 366px; + + @include vp-1439 { + width: 236px; + height: 312px; + } +} + +.hero-slide__photo-2 img { + width: 308px; + height: 407px; + + @include vp-1439 { + width: 266px; + height: 351px; + } +} diff --git a/source/sass/blocks/hero.scss b/source/sass/blocks/hero.scss new file mode 100644 index 000000000..45acdd05f --- /dev/null +++ b/source/sass/blocks/hero.scss @@ -0,0 +1,107 @@ +.hero { + position: relative; +} + +.hero__container { + position: absolute; + bottom: 92px; + left: 50%; + transform: translateX(-50%); + z-index: 2; + font-size: 0; + line-height: 0; + width: 100%; + min-height: 20px; + display: flex; + justify-content: flex-end; + + @include vp-1439 { + bottom: 40px; + } + + @include vp-767 { + bottom: 36px; + } +} + +.hero__slider-pagination.swiper-pagination-clickable.swiper-pagination-bullets { + width: 100%; + max-width: 600px; + display: flex; + flex-wrap: wrap; + column-gap: 20px; + row-gap: 20px; + justify-content: flex-end; + + @include vp-1439 { + max-width: none; + justify-content: center; + } +} + +.hero__slider-bullet { + display: inline-block; + width: 20px; + height: 20px; + border-radius: 50%; + background-color: $color-transparent; + border: 1px solid $color-white; + cursor: pointer; + position: relative; + transition: background-color $trans-default, border-color $trans-default; + + &--is-active { + background-color: $color-white; + } + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + + &::after { + position: absolute; + content: ""; + width: 24px; + height: 24px; + border-radius: 50%; + top: -3px; + left: -3px; + border: 1px solid rgba($color-white, 0.5); + } + } + + &:hover:not(:disabled):not(.disabled):not(:focus-visible):not(:active) { + background-color: #d9d9d9; + } + + &:active { + background-color: rgba($color-white, 0.5); + border: 1px solid $color-white; + } + + &:disabled { + pointer-events: none; + background-color: #999999; + border-color: #999999; + } + + @include vp-767 { + width: 16px; + height: 16px; + + &::after { + width: 20px; + height: 20px; + ; + } + } +} + +.hero__slider-bullet.disabled { + pointer-events: none; + background-color: #999999; + border-color: #999999; +} diff --git a/source/sass/blocks/map.scss b/source/sass/blocks/map.scss new file mode 100644 index 000000000..010849c11 --- /dev/null +++ b/source/sass/blocks/map.scss @@ -0,0 +1,72 @@ +.map {} + +.map__img { + font-size: 0; + line-height: 0; + position: relative; +} + +.map__img img { + width: 600px; + height: 324px; + display: block; + + @include vp-1439 { + width: 100%; + height: auto; + object-fit: cover; + } + + @include vp-767 {} +} + +.map__pin { + position: absolute; + width: 48px; + height: 48px; + top: 162px; + left: 360px; + display: flex; + align-items: center; + justify-content: center; + + @include vp-1439 { + width: 42px; + height: 42px; + top: 182px; + left: 385px; + } + + @include vp-767 { + width: 28px; + height: 28px; + top: 171px; + left: 198px; + } + + &::before { + position: absolute; + content: ""; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-action; + width: 48px; + height: 48px; + left: 0; + top: 0; + mask-image: url("../__spritemap#sprite-icon-pin-filled-view"); + mask-size: 34px 44px; + + @include vp-1439 { + width: 42px; + height: 42px; + mask-size: 30px 40px; + } + + @include vp-767 { + width: 28px; + height: 28px; + mask-size: 20px 26px; + } + } +} diff --git a/source/sass/blocks/nav.scss b/source/sass/blocks/nav.scss new file mode 100644 index 000000000..825583786 --- /dev/null +++ b/source/sass/blocks/nav.scss @@ -0,0 +1,160 @@ +.nav__list { + padding: 0; + margin: 0; + width: 100%; + list-style-type: none; + display: flex; + justify-content: center; + flex-wrap: wrap; + align-items: flex-start; + column-gap: 20px; + row-gap: 20px; + + &--header { + @include vp-1439 { + flex-direction: column; + column-gap: 0; + row-gap: 26px; + } + + @include vp-767 { + row-gap: 22px; + } + } + + &--footer { + @include vp-1439 { + column-gap: 10px; + } + + @include vp-767 { + column-gap: 50px; + row-gap: 15px; + } + } +} + +.nav__list a { + color: inherit; + text-decoration: none; + font-size: 16px; + line-height: 16px; + font-weight: 400; + padding-left: 5px; + padding-right: 5px; + padding-top: 3px; + padding-bottom: 3px; + border: 1px solid $color-transparent; + transition: + color $trans-default, + border-color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + } +} + +.nav__list--header a { + @include vp-1439 { + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; + } + + @include vp-767 { + font-size: 14px; + line-height: 14px; + } + + &:focus-visible { + border-color: $color-white; + } + + &:hover:not(.disabled):not(:focus-visible):not(:active) { + border-bottom-color: $color-white; + } + + &:active { + color: $color-dark-alternative; + } +} + +.nav__list--footer a { + &:focus-visible { + border-color: $color-dark; + } + + &:hover:not(.disabled):not(:focus-visible):not(:active) { + border-bottom-color: $color-dark; + } + + &:active { + color: $color-action; + } + + @include vp-1439 { + font-size: 14px; + line-height: 14px; + } + + @include vp-767 { + display: inline-block; + width: 120px; + text-align: center; + padding: 0; + border: none; + } +} + +.nav__list a.disabled { + color: #999999; + pointer-events: none; +} + +.nav__list--footer .nav__item { + &--tours { + @include vp-767 { + order: 1; + } + } + + &--training { + @include vp-767 { + order: 3; + } + } + + &--about { + @include vp-767 { + order: 5; + } + } + + &--reviews { + @include vp-767 { + order: 2; + } + } + + &--gallery { + @include vp-767 { + order: 4; + } + } + + &--contacts { + @include vp-767 { + order: 6; + } + } + + @include vp-767 { + font-size: 0; + line-height: 0; + } + +} diff --git a/source/sass/blocks/page-footer.scss b/source/sass/blocks/page-footer.scss new file mode 100644 index 000000000..8c7275e7d --- /dev/null +++ b/source/sass/blocks/page-footer.scss @@ -0,0 +1,137 @@ +.page-footer { + border-top: 1px solid rgba($color-dark, 0.2); + padding-top: 30px; + padding-bottom: 32px; + + @include vp-1439 { + padding-top: 34px; + } + + @include vp-767 { + padding-top: 23px; + padding-bottom: 20px; + } +} + +.page-footer .container { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: flex-start; + row-gap: 22px; + + @include vp-1439 { + row-gap: 34px; + } + + @include vp-767 { + justify-content: center; + row-gap: 23px; + } +} + +.page-footer__col { + &--logo { + width: 200px; + min-height: 60px; + display: flex; + justify-content: center; + align-items: center; + + @include vp-1439 { + width: 142px; + min-height: auto; + } + } + + &--nav { + padding-left: 109px; + padding-top: 19px; + margin-right: auto; + + @include vp-1439 { + padding-top: 9px; + padding-left: 37px; + } + + @include vp-767 { + padding-top: 0; + padding-left: 0; + } + } + + &--phone { + padding-top: 20px; + + @include vp-1439 { + display: none; + } + } + + &--social { + width: 100%; + display: flex; + justify-content: center; + align-items: flex-start; + } + + &--policy { + width: 100%; + display: flex; + justify-content: center; + align-items: flex-start; + } +} + +.page-footer__nav-list {} + +.page-footer__col--phone a { + font-size: 18px; + line-height: 18px; + font-weight: 600; + text-align: right; + text-decoration: none; + color: inherit; +} + +.page-footer__col--policy a { + font-size: 12px; + font-weight: 300; + line-height: 12px; + text-align: center; + color: inherit; + text-decoration: none; +} + +.page-footer__col--phone a, +.page-footer__col--policy a { + transition: + color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + color: $color-action; + } + + &:hover:not(.disabled):not(:focus-visible):not(:active) { + color: rgba($color-action, 0.1); + } + + &:active { + color: $color-dark-alternative; + } +} + +.page-footer__col--phone a.disabled, +.page-footer__col--policy a.disabled { + color: #999999; + pointer-events: none; +} + +.page-footer__social-list {} + +.page-footer__policy {} diff --git a/source/sass/blocks/page-header.scss b/source/sass/blocks/page-header.scss new file mode 100644 index 000000000..e1090e4ad --- /dev/null +++ b/source/sass/blocks/page-header.scss @@ -0,0 +1,203 @@ +.page-header { + background-color: $color-action; + color: $color-white; + padding-top: 32px; + padding-bottom: 32px; + z-index: 2; + + @include vp-1439 { + padding-top: 20px; + padding-bottom: 20px; + } + + @include vp-767 { + padding-top: 15px; + padding-bottom: 13px; + } +} + +.page-header .container { + display: flex; + justify-content: space-between; + align-items: center; + + @include vp-1439 { + align-items: flex-start; + position: relative; + z-index: 2; + } + + @include vp-767 { + flex-wrap: wrap; + } +} + +.page-header__btn { + display: none; + padding: 0; + border: none; + background-color: $color-transparent; + cursor: pointer; + width: 26px; + height: 26px; + position: relative; + align-items: center; + justify-content: center; + + &::before { + position: absolute; + content: ""; + width: 100%; + height: 100%; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-white; + transition: background-color $trans-default; + mask-image: url("../__spritemap#sprite-icon-menu-view"); + mask-size: 26px 19px; + } + + @include vp-1439 { + display: flex; + margin-top: 8px; + + &.is-open { + &::before { + mask-image: url("../__spritemap#sprite-icon-cross-view"); + mask-size: 22px 22px; + } + } + } + + @include vp-767 { + margin-top: 0; + } +} + +.page-header__logo { + width: 100%; + display: flex; + justify-content: center; + max-width: 205px; + padding-top: 10px; + padding-bottom: 10px; + + @include vp-1439 { + max-width: 255px; + padding: 0; + display: flex; + align-items: center; + } + + @include vp-767 { + width: auto; + max-width: none; + margin-bottom: 16px; + } +} + +.page-header__logo img { + display: block; + width: 142px; + height: 42px; + + @include vp-1439 { + margin-left: auto; + } +} + +.page-header__nav { + width: 100%; + max-width: 838px; + + @include vp-1439 { + max-width: none; + position: absolute; + min-height: 226px; + top: -1000px; + left: 0; + right: 0; + padding-left: 45px; + padding-right: 45px; + padding-top: 50px; + padding-bottom: 70px; + overflow-y: auto; + + &.is-open { + background-color: $color-action; + transition: top $trans-default; + z-index: 2; + } + } + + @include vp-767 { + padding-top: 30px; + padding-bottom: 50px; + min-height: 194px; + padding-left: 15px; + padding-right: 15px; + } +} + +.page-header__contacts { + display: flex; + align-items: flex-start; + flex-wrap: wrap; + row-gap: 20px; + column-gap: 20px; + padding-top: 3px; + + @include vp-1439 { + padding-top: 14px; + } + + @include vp-767 { + width: 100%; + padding-top: 0; + justify-content: flex-end; + margin-left: auto; + } +} + +.page-header__contacts a { + color: inherit; + text-decoration: none; + font-size: 18px; + line-height: 18px; + font-weight: 600; + text-align: right; + transition: opacity $trans-default, color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + color: $color-dark; + } + + &:hover:not(.disabled):not(:focus-visible):not(:active) { + opacity: 0.5; + } + + &:active { + color: $color-dark-alternative; + } + + @include vp-1439 { + font-size: 16px; + line-height: 16px; + max-width: 160px; + } + + @include vp-767 { + font-size: 14px; + line-height: 14px; + } +} + +.page-header__contacts a.disabled { + color: #999999; + pointer-events: none; +} diff --git a/source/sass/blocks/reviews-slide.scss b/source/sass/blocks/reviews-slide.scss new file mode 100644 index 000000000..dee4f1a9d --- /dev/null +++ b/source/sass/blocks/reviews-slide.scss @@ -0,0 +1,138 @@ +.reviews-slide.swiper-slide { + width: 720px; + + @include vp-1439 { + width: 595px; + } + + @include vp-767 { + width: 310px; + } +} + + +.reviews-slide__container { + margin: 10px; + + display: flex; + align-items: flex-start; + column-gap: 30px; + box-shadow: 0 0 20px 0 rgba($color-dark-alternative, 0.1); + background-color: $color-white; + padding: 20px; + padding-top: 19px; + padding-right: 40px; + + @include vp-1439 { + padding-top: 20px; + padding-right: 30px; + + box-shadow: 0 0 30px 0 rgba($color-dark-alternative, 0.1); + margin: 15px; + } + + @include vp-767 { + padding: 20px; + flex-direction: column; + column-gap: 0; + align-items: center; + box-shadow: 0 0 20px 0 rgba($color-dark-alternative, 0.1); + margin: 10px; + } +} + +.reviews-slide__img { + flex-shrink: 0; + font-size: 0; + line-height: 0; + margin-top: 1px; + + @include vp-1439 { + margin-top: 0; + } + + @include vp-767 { + margin-bottom: 19px; + } +} + +.reviews-slide__img img { + display: block; + width: 258px; + height: 253px; + + @include vp-1439 { + width: 186px; + height: 237px; + } + + @include vp-767 { + width: 250px; + height: 169px; + } +} + +.reviews-slide__content { + @include vp-1439 { + margin-top: 3px; + } + + @include vp-767 { + margin-top: 0; + } +} + +.reviews-slide__content p { + margin: 0; + font-size: 14px; + line-height: 22px; + font-weight: 400; + + &:first-child { + margin-bottom: 10px; + } + + @include vp-1439 { + font-size: 12px; + line-height: 18px; + } +} + +.reviews-slide__author { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-top: 2px; + + @include vp-1439 { + margin-top: 26px; + } + + @include vp-767 { + margin-top: 16px; + } +} + +.reviews-slide__author b { + margin-bottom: 8px; + font-size: 13px; + line-height: 13px; + font-weight: 700; + + @include vp-1439 { + margin-bottom: 6px; + } + + @include vp-767 { + font-size: 12px; + line-height: 12px; + font-weight: 700; + margin-bottom: 8px; + } +} + +.reviews-slide__author span { + font-size: 12px; + line-height: 12px; + font-weight: 300; +} diff --git a/source/sass/blocks/reviews.scss b/source/sass/blocks/reviews.scss new file mode 100644 index 000000000..0e01e2681 --- /dev/null +++ b/source/sass/blocks/reviews.scss @@ -0,0 +1,120 @@ +.reviews { + padding-top: 145px; + padding-bottom: 66px; + position: relative; + + &::after { + position: absolute; + content: ""; + z-index: -1; + bottom: -166px; + left: 0; + width: 1440px; + height: 447px; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-3-desktop.webp"); + } + + background-image: url("../../img/backgrounds/clouds-3-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-3-desktop@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-3-desktop@2x.jpg"); + } + + @include vp-1439 { + width: 768px; + height: 996px; + bottom: -1162px; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-3-tablet.webp"); + } + + background-image: url("../../img/backgrounds/clouds-3-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-3-tablet@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-3-tablet@2x.jpg"); + } + } + + @include vp-767 { + display: none; + } + } + + @include vp-1439 { + padding-top: 60px; + padding-bottom: 12px; + } + + @include vp-767 { + padding-top: 37px; + padding-bottom: 9px; + } +} + +.reviews__container { + padding-left: 120px; + max-width: 1440px; + margin-left: auto; + margin-right: auto; + + @include vp-1439 { + padding-left: 30px; + } + + @include vp-767 { + padding-left: 5px; + padding-right: 5px; + } +} + +.reviews__head { + display: flex; + justify-content: space-between; + align-items: flex-start; + padding-left: 0; + padding-right: 120px; + margin: 0 auto; + margin-bottom: 28px; + + @include vp-1439 { + margin-bottom: 10px; + padding-left: 15px; + padding-right: 45px; + } + + @include vp-767 { + padding-right: 0; + padding-left: 10px; + margin-bottom: 21px; + } +} + +.reviews__title { + position: relative; +} + +.reviews__title-back { + bottom: 19px; + + @include vp-1439 { + bottom: 1px; + } + + @include vp-767 { + bottom: 11px; + } +} diff --git a/source/sass/blocks/section-title.scss b/source/sass/blocks/section-title.scss new file mode 100644 index 000000000..0032d3e5f --- /dev/null +++ b/source/sass/blocks/section-title.scss @@ -0,0 +1,46 @@ +.section-title { + margin: 0; + font-size: 35px; + line-height: 35px; + font-weight: 800; + text-align: left; + + &--dark { + color: $color-dark; + } + + &--light { + color: $color-white; + } + + @include vp-1439 { + font-size: 25px; + line-height: 25px; + } + + @include vp-767 { + font-size: 22px; + line-height: 22px; + } +} + +.section-title__back { + position: absolute; + left: 0; + bottom: 0; + font-size: 55px; + line-height: 55px; + font-weight: 800; + text-align: left; + color: rgba($color-dark, 0.03); + + @include vp-1439 { + font-size: 40px; + line-height: 40px; + } + + @include vp-767 { + font-size: 26px; + line-height: 26px; + } +} diff --git a/source/sass/blocks/slider-btns.scss b/source/sass/blocks/slider-btns.scss new file mode 100644 index 000000000..513621046 --- /dev/null +++ b/source/sass/blocks/slider-btns.scss @@ -0,0 +1,65 @@ +.slider-btns { + display: flex; + align-items: flex-start; + justify-content: space-between; + column-gap: 4px; + + @include vp-767 { + display: none; + } +} + +.slider-btns__arrow { + width: 37px; + height: 35px; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + background-color: $color-action; + color: $color-white; + border: 1px solid $color-transparent; + cursor: pointer; + transition: background-color $trans-default, border-color $trans-default, color $trans-default; + + &--next { + transform: rotate(180deg); + } + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + background-color: $color-white; + color: $color-dark-alternative; + border-color: $color-white; + } + + &:hover:not(:disabled):not(.disabled):not(:focus-visible):not(:active) { + background-color: $color-white; + color: $color-dark-alternative; + border-color: $color-dark-alternative; + } + + &:active { + background-color: $color-dark-alternative; + color: $color-white; + border-color: $color-dark-alternative; + } + + &:disabled { + pointer-events: none; + color: $color-white; + background-color: #999999; + border-color: #999999; + } +} + +.slider-btns__arrow.disabled { + pointer-events: none; + color: $color-white; + background-color: #999999; + border-color: #999999; +} diff --git a/source/sass/blocks/social.scss b/source/sass/blocks/social.scss new file mode 100644 index 000000000..8967623c5 --- /dev/null +++ b/source/sass/blocks/social.scss @@ -0,0 +1,93 @@ +.social {} + +.social__list { + margin: 0; + padding: 0; + font-size: 0; + line-height: 0; + list-style-type: none; + display: inline-flex; + flex-wrap: wrap; + column-gap: 15px; + row-gap: 15px; +} + +.social__item { + &--vk {} + + &--ok {} + + &--reddit {} +} + +.social__item a { + width: 30px; + height: 30px; + border: 1px solid rgba($color-dark, 0.2); + display: flex; + align-items: center; + justify-content: center; + position: relative; + transition: background-color $trans-default; + + &::before { + position: absolute; + content: ""; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-dark; + transition: background-color $trans-default, border-color $trans-default; + } + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + border-color: $color-white; + } + + &:hover:not(:disabled):not(:focus-visible):not(:active):not(.disabled) { + border-color: $color-dark; + } + + &:active { + background-color: $color-action; + border-color: $color-action; + + &::before { + background-color: $color-white; + } + } + + @include vp-1439 { + width: 32px; + } +} + +.social__list .disabled { + pointer-events: none; + opacity: 0.3; +} + +.social__item--vk a::before { + width: 16px; + height: 9px; + mask-image: url("../__spritemap#sprite-icon-vk-view"); + mask-size: 16px 9px; +} + +.social__item--ok a::before { + width: 9px; + height: 16px; + mask-image: url("../__spritemap#sprite-icon-ok-view"); + mask-size: 9px 16px; +} + +.social__item--reddit a::before { + width: 14px; + height: 15px; + mask-image: url("../__spritemap#sprite-icon-reddit-view"); + mask-size: 14px 15px; +} diff --git a/source/sass/blocks/tours-slide.scss b/source/sass/blocks/tours-slide.scss new file mode 100644 index 000000000..22482e617 --- /dev/null +++ b/source/sass/blocks/tours-slide.scss @@ -0,0 +1,409 @@ +.tours-slide { + max-width: 380px; + min-height: 416px; + background-color: #4b8a9c; + color: $color-white; + padding-left: 20px; + padding-right: 20px; + padding-top: 30px; + padding-bottom: 30px; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + position: relative; + + &::before { + position: absolute; + content: ""; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: $tours-gradient; + } + + &:nth-child(1) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-1-desktop.webp"); + } + + background-image: url("../../img/tours/item-1-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-1-desktop@2x.webp"); + } + + background-image: url("../../img/tours/item-1-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-1-tablet.webp"); + } + + background-image: url("../../img/tours/item-1-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-1-tablet@2x.webp"); + } + + background-image: url("../../img/tours/item-1-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-1-mobile.webp"); + } + + background-image: url("../../img/tours/item-1-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-1-mobile@2x.webp"); + } + + background-image: url("../../img/tours/item-1-mobile@2x.jpg"); + } + } + } + + &:nth-child(2) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-2-desktop.webp"); + } + + background-image: url("../../img/tours/item-2-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-2-desktop@2x.webp"); + } + + background-image: url("../../img/tours/item-2-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-2-tablet.webp"); + } + + background-image: url("../../img/tours/item-2-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-2-tablet@2x.webp"); + } + + background-image: url("../../img/tours/item-2-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-2-mobile.webp"); + } + + background-image: url("../../img/tours/item-2-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-2-mobile@2x.webp"); + } + + background-image: url("../../img/tours/item-2-mobile@2x.jpg"); + } + } + } + + &:nth-child(3) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-3-desktop.webp"); + } + + background-image: url("../../img/tours/item-3-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-3-desktop@2x.webp"); + } + + background-image: url("../../img/tours/item-3-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-3-tablet.webp"); + } + + background-image: url("../../img/tours/item-3-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-3-tablet@2x.webp"); + } + + background-image: url("../../img/tours/item-3-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-3-mobile.webp"); + } + + background-image: url("../../img/tours/item-3-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-3-mobile@2x.webp"); + } + + background-image: url("../../img/tours/item-3-mobile@2x.jpg"); + } + } + } + + &:nth-child(4) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-4-desktop.webp"); + } + + background-image: url("../../img/tours/item-4-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-4-desktop@2x.webp"); + } + + background-image: url("../../img/tours/item-4-desktop@2x.jpg"); + } + + @include vp-1439 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-4-tablet.webp"); + } + + background-image: url("../../img/tours/item-4-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-4-tablet@2x.webp"); + } + + background-image: url("../../img/tours/item-4-tablet@2x.jpg"); + } + } + + @include vp-767 { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-4-mobile.webp"); + } + + background-image: url("../../img/tours/item-4-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/tours/item-4-mobile@2x.webp"); + } + + background-image: url("../../img/tours/item-4-mobile@2x.jpg"); + } + } + } +} + +.tours-slide__content { + min-height: 356px; + display: flex; + flex-direction: column; + justify-content: flex-end; + position: relative; + + &::after { + position: absolute; + content: ""; + width: 80px; + height: 1px; + background-color: rgba($color-white, 0.2); + left: 0; + bottom: 47px; + } +} + +.tours-slide__head { + width: 100%; + font-size: 12px; + line-height: 12px; + font-weight: 500; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 15px; + + @include vp-1439 { + margin-bottom: 16px; + } +} + +.tours-slide__palce { + background-color: $color-action; + padding-top: 8px; + padding-bottom: 8px; + padding-left: 34px; + padding-right: 12px; +} + +.tours-slide__palce, +.tours-slide__days, +.tours-slide__nights { + position: relative; + + &::before { + position: absolute; + content: ""; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-white; + } +} + +.tours-slide__palce::before { + width: 9px; + height: 12px; + left: 16px; + top: 8px; + mask-image: url("../__spritemap#sprite-icon-pin-filled-view"); +} + +.tours-slide__days { + margin-left: auto; + margin-right: 14px; +} + +.tours-slide__days, +.tours-slide__nights { + padding-top: 4px; + padding-bottom: 4px; + padding-left: 32px; + +} + +.tours-slide__days::before { + width: 20px; + height: 20px; + left: 0; + top: 0; + mask-image: url("../__spritemap#sprite-icon-sun-view"); +} + +.tours-slide__nights::before { + width: 20px; + height: 20px; + left: 0; + top: 0; + mask-image: url("../__spritemap#sprite-icon-moon-view"); + mask-size: 16px 16px; +} + +.tours-slide__title { + width: 100%; + margin: 0; + margin-bottom: 31px; + max-width: 240px; + font-size: 24px; + line-height: 28px; + font-weight: 700; + + @include vp-1439 { + margin-bottom: 30px; + } +} + +.tours-slide__info { + width: 100%; + display: flex; + align-items: flex-start; + justify-content: space-between; +} + +.tours-slide__info span { + font-size: 12px; + line-height: 12px; + font-weight: 300; +} + +.tours-slide__info b { + font-size: 13px; + line-height: 13px; + font-weight: 700; +} + +.tours-slide__difficulty { + display: flex; + flex-direction: column; +} + +.tours-slide__stars { + display: flex; + column-gap: 1px; +} + +.tours-slide__star { + width: 16px; + height: 16px; + position: relative; + + + &::before { + position: absolute; + content: ""; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-white; + width: 16px; + height: 16px; + left: 0; + top: 0; + mask-image: url("../__spritemap#sprite-icon-star-stroke-view"); + } +} + +.tours-slide:nth-child(1) .tours-slide__star:nth-child(-n+4)::before { + mask-image: url("../__spritemap#sprite-icon-star-filled-view"); +} + +.tours-slide:nth-child(2) .tours-slide__star:nth-child(-n+3)::before { + mask-image: url("../__spritemap#sprite-icon-star-filled-view"); +} + +.tours-slide:nth-child(3) .tours-slide__star:nth-child(-n+4)::before { + mask-image: url("../__spritemap#sprite-icon-star-filled-view"); +} + +.tours-slide:nth-child(4) .tours-slide__star::before { + mask-image: url("../__spritemap#sprite-icon-star-filled-view"); +} + +.tours-slide__date { + display: flex; + flex-direction: column; +} + +.tours-slide__group { + display: flex; + flex-direction: column; +} + +.tours-slide__difficulty span { + margin-bottom: 4px; +} + +.tours-slide__date span, +.tours-slide__group span { + margin-bottom: 6px; +} diff --git a/source/sass/blocks/tours.scss b/source/sass/blocks/tours.scss new file mode 100644 index 000000000..dc569f22a --- /dev/null +++ b/source/sass/blocks/tours.scss @@ -0,0 +1,181 @@ +.tours { + padding-top: 120px; + padding-bottom: 109px; + position: relative; + + &::after { + position: absolute; + content: ""; + z-index: -1; + top: -126px; + right: 0; + width: 602px; + height: 1630px; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-1-desktop.webp"); + } + + background-image: url("../../img/backgrounds/clouds-1-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-1-desktop@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-1-desktop@2x.jpg"); + } + + @include vp-1439 { + width: 425px; + top: -92px; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-1-tablet.webp"); + } + + background-image: url("../../img/backgrounds/clouds-1-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-1-tablet@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-1-tablet@2x.jpg"); + } + } + + @include vp-767 { + width: 141px; + height: 595px; + top: 10px; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-1-mobile.webp"); + } + + background-image: url("../../img/backgrounds/clouds-1-mobile.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-1-mobile@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-1-mobile@2x.jpg"); + } + } + } + + @include vp-1439 { + padding-top: 60px; + padding-bottom: 49px; + } + + @include vp-767 { + padding-top: 38px; + padding-bottom: 29px; + } +} + +.tours__head { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 50px; + + @include vp-1439 { + margin-bottom: 25px; + } + + @include vp-767 { + margin-bottom: 40px; + } +} + +.tours__title { + position: relative; + width: 100%; + max-width: 70%; + margin-top: 3px; + + @include vp-1439 { + margin-top: 0; + } + + @include vp-767 { + max-width: none; + } +} + +.tours__title-back { + bottom: -3px; + + @include vp-1439 { + bottom: 1px; + } + + @include vp-767 { + bottom: 11px; + } +} + +.tours__slider { + margin-bottom: 64px; + + @include vp-1439 { + margin-bottom: 36px; + } +} + +.tours__link { + display: flex; + justify-content: center; +} + +.tours__link a { + font-size: 16px; + line-height: 16px; + font-weight: 700; + letter-spacing: 0.04em; + text-align: center; + text-decoration: none; + text-transform: uppercase; + color: inherit; + position: relative; + transition: opacity $trans-default, color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + color: $color-action; + } + + &:hover:not(.disabled):not(:focus-visible):not(:active) { + color: rgba($color-action, 0.1); + + } + + &:active { + color: $color-dark-alternative; + } + + @include vp-767 { + font-size: 14px; + line-height: 14px; + } +} + +.tours__link.disabled { + pointer-events: none; + color: #999999; +} + +.tours__link svg { + margin-left: 12px; +} diff --git a/source/sass/blocks/training-slide.scss b/source/sass/blocks/training-slide.scss new file mode 100644 index 000000000..08c61bfa2 --- /dev/null +++ b/source/sass/blocks/training-slide.scss @@ -0,0 +1,94 @@ +.training-slide { + border: 1px solid rgba($color-dark, 0.1); + padding-top: 14px; + padding-bottom: 14px; + padding-left: 14px; + padding-right: 14px; + min-height: 356px; +} + +.training-slide.swiper-slide { + @include vp-1439 { + height: auto; + } +} + +.training-slide__img { + font-size: 0; + line-height: 0; + margin-bottom: 15px; +} + +.training-slide__img img { + display: block; + width: 255px; + height: 200px; + object-fit: cover; + + @include vp-767 { + width: 100%; + } +} + +.training-slide__head { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 15px; +} + +.training-slide__content h4 { + margin: 0; + max-width: 110px; + font-size: 14px; + line-height: 16px; + font-weight: 700; +} + +.training-slide__content a { + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + color: $color-dark; + border: 1px solid rgba($color-dark, 0.3); + transition: background-color $trans-default, border-color $trans-default, color $trans-default; + + &:focus { + outline: none; + } + + &:focus-visible { + outline: none; + background-color: $color-transparent; + color: $color-dark; + border-color: $color-transparent; + } + + &:hover:not(.disabled):not(:focus-visible):not(:active) { + background-color: $color-transparent; + color: $color-dark; + border-color: $color-dark; + } + + &:active { + background-color: $color-action; + color: $color-white; + border-color: $color-action; + } +} + +.training-slide__content a.disabled { + pointer-events: none; + color: #2d383f; + background-color: $color-transparent; + border-color: #2d383f; +} + +.training-slide__content p { + margin: 0; + font-size: 12px; + line-height: 16px; + font-weight: 400; +} diff --git a/source/sass/blocks/training.scss b/source/sass/blocks/training.scss new file mode 100644 index 000000000..2a1dcc1ac --- /dev/null +++ b/source/sass/blocks/training.scss @@ -0,0 +1,367 @@ +.training { + padding-top: 63px; + padding-bottom: 34px; + position: relative; + + &::after { + position: absolute; + content: ""; + z-index: -1; + bottom: 10px; + right: 0; + width: 633px; + height: 280px; + background-repeat: no-repeat; + background-size: cover; + background-position: 100% 100%; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-2-desktop.webp"); + } + + background-image: url("../../img/backgrounds/clouds-2-desktop.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-2-desktop@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-2-desktop@2x.jpg"); + } + + @include vp-1439 { + width: 465px; + bottom: 0; + + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-2-tablet.webp"); + } + + background-image: url("../../img/backgrounds/clouds-2-tablet.jpg"); + + @media (resolution >=2dppx) { + @supports (background-image: url(image.webp)) { + background-image: url("../../img/backgrounds/clouds-2-tablet@2x.webp"); + } + + background-image: url("../../img/backgrounds/clouds-2-tablet@2x.jpg"); + } + } + + @include vp-767 { + display: none; + } + } + + @include vp-1439 { + padding-top: 59px; + padding-bottom: 42px; + } + + @include vp-767 { + padding-top: 36px; + padding-bottom: 22px; + } +} + +.training__head { + margin-bottom: 58px; + + @include vp-1439 { + margin-bottom: 27px; + } +} + +.training__head br { + display: none; + + @include vp-1439 { + display: inline; + } + + @include vp-767 { + display: none; + } +} + +.training__head p { + margin: 0; + max-width: 820px; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + @include vp-1439 { + max-width: none; + } + + @include vp-767 { + font-size: 14px; + line-height: 20px; + } +} + +.training__title { + position: relative; + margin-bottom: 32px; + + @include vp-1439 { + margin-bottom: 35px; + } +} + +.training__title-back { + bottom: -3px; + + @include vp-1439 { + bottom: 1px; + } + + @include vp-767 { + bottom: 11px; + } +} + +.training__middle { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 16px; + + @include vp-1439 { + margin-bottom: 30px; + } + + @include vp-767 { + margin-bottom: 23px; + } +} + +.training__middle-title { + margin-top: 4px; + + @include vp-1439 { + margin-top: 2px; + } + + @include vp-767 { + margin-top: 0; + } +} + +.training__slider { + margin-bottom: 59px; + + @include vp-1439 { + margin-bottom: 27px; + } + + @include vp-767 { + margin-bottom: 25px; + } +} + +.training__process-title { + margin: 0; + margin-bottom: 26px; + font-size: 21px; + line-height: 21px; + font-weight: 700; + + @include vp-1439 { + margin-bottom: 100px; + font-size: 18px; + line-height: 18px; + } + + @include vp-767 { + margin-bottom: 23px; + font-size: 16px; + line-height: 16px; + } +} + +.training__list { + margin: 0; + padding: 0; + list-style-type: none; + display: flex; + align-items: flex-start; + position: relative; + + &::after { + position: absolute; + content: ""; + background-color: $color-action; + left: 20px; + bottom: 20px; + width: calc(100% - 20px); + height: 2px; + + @include vp-1439 { + display: none; + } + + @include vp-767 { + display: block; + width: 2px; + height: calc(100% - 36px); + left: 6px; + bottom: 9px; + } + } + + @include vp-1439 { + padding-right: 40px; + display: grid; + grid-template-columns: repeat(2, 232px); + grid-template-rows: repeat(2, minmax(44px, auto)); + grid-column-gap: 174px; + grid-row-gap: 104px; + } + + @include vp-767 { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + column-gap: 0; + row-gap: 25px; + padding-right: 28px; + } +} + +.training__list li { + font-size: 16px; + line-height: 24px; + font-weight: 400; + padding-left: 45px; + padding-right: 10px; + max-width: 254px; + position: relative; + min-height: 102px; + + &::after, + &::before { + position: absolute; + content: ""; + } + + &::after { + width: 25px; + height: 25px; + top: 2px; + left: 10px; + mask-repeat: no-repeat; + mask-position: center; + background-color: $color-dark; + + @include vp-1439 { + left: 0; + } + + @include vp-767 { + left: 29px; + } + } + + &::before { + left: 20px; + bottom: 14px; + width: 14px; + height: 14px; + border-radius: 50%; + background-color: $color-action; + + @include vp-1439 { + display: none; + } + + @include vp-767 { + display: block; + left: 0; + bottom: 9px; + } + } + + &:nth-child(1) { + &::after { + mask-image: url("../__spritemap#sprite-icon-map-view"); + } + + @include vp-1439 { + order: 1; + } + } + + &:nth-child(2) { + &::after { + mask-image: url("../__spritemap#sprite-icon-boots-view"); + } + + @include vp-1439 { + order: 3; + align-self: start; + } + + @include vp-767 { + order: 2; + } + } + + &:nth-child(3) { + &::before { + left: -1px; + } + + &::after { + mask-image: url("../__spritemap#sprite-icon-tree-view"); + } + + @include vp-1439 { + order: 4; + align-self: start; + + + } + } + + &:nth-child(4) { + &::before { + left: 18px; + + @include vp-767 { + left: 0; + } + } + + &::after { + mask-image: url("../__spritemap#sprite-icon-mountain-view"); + } + + @include vp-1439 { + order: 2; + } + + @include vp-767 { + order: 4; + } + } + + @include vp-1439 { + font-size: 14px; + line-height: 22px; + width: 100%; + max-width: 232px; + min-height: auto; + padding-right: 0; + padding-left: 35px; + } + + @include vp-767 { + max-width: none; + font-size: 12px; + line-height: 18px; + padding-left: 63px; + } +} diff --git a/source/sass/global/container.scss b/source/sass/global/container.scss new file mode 100644 index 000000000..d097cc355 --- /dev/null +++ b/source/sass/global/container.scss @@ -0,0 +1,14 @@ +.container { + width: 100%; + max-width: 1440px; + margin: 0 auto; + padding: 0 120px; + + @include vp-1439 { + padding: 0 45px; + } + + @include vp-767 { + padding: 0 15px; + } +} diff --git a/source/sass/global/fonts.scss b/source/sass/global/fonts.scss new file mode 100644 index 000000000..2213aa60c --- /dev/null +++ b/source/sass/global/fonts.scss @@ -0,0 +1,59 @@ +@font-face { + font-style: normal; + font-weight: 300; + font-family: "Montserrat"; + font-display: swap; + src: + url("../../fonts/Montserrat-Light.woff2") format("woff2"), + url("../../fonts/Montserrat-Light.woff") format("woff"); +} + +@font-face { + font-style: normal; + font-weight: 400; + font-family: "Montserrat"; + font-display: swap; + src: + url("../../fonts/Montserrat-Regular.woff2") format("woff2"), + url("../../fonts/Montserrat-Regular.woff") format("woff"); +} + +@font-face { + font-style: normal; + font-weight: 500; + font-family: "Montserrat"; + font-display: swap; + src: + url("../../fonts/Montserrat-Medium.woff2") format("woff2"), + url("../../fonts/Montserrat-Medium.woff") format("woff"); +} + +@font-face { + font-style: normal; + font-weight: 600; + font-family: "Montserrat"; + font-display: swap; + src: + url("../../fonts/Montserrat-SemiBold.woff2") format("woff2"), + url("../../fonts/Montserrat-SemiBold.woff") format("woff"); +} + +@font-face { + font-style: normal; + font-weight: 700; + font-family: "Montserrat"; + font-display: swap; + src: + url("../../fonts/Montserrat-Bold.woff2") format("woff2"), + url("../../fonts/Montserrat-Bold.woff") format("woff"); +} + +@font-face { + font-style: normal; + font-weight: 800; + font-family: "Montserrat"; + font-display: swap; + src: + url("../../fonts/Montserrat-ExtraBold.woff2") format("woff2"), + url("../../fonts/Montserrat-ExtraBold.woff") format("woff"); +} diff --git a/source/sass/global/mixins.scss b/source/sass/global/mixins.scss new file mode 100644 index 000000000..377527596 --- /dev/null +++ b/source/sass/global/mixins.scss @@ -0,0 +1,19 @@ +/* stylelint-disable */ + +@mixin vp-1440 { + @media (min-width: ($vp-1440)) { + @content; + } +} + +@mixin vp-1439 { + @media (max-width: ($vp-1440 - 1px)) { + @content; + } +} + +@mixin vp-767 { + @media (max-width: ($vp-768 - 1px)) { + @content; + } +} diff --git a/source/sass/global/reboot.scss b/source/sass/global/reboot.scss new file mode 100644 index 000000000..29134162e --- /dev/null +++ b/source/sass/global/reboot.scss @@ -0,0 +1,35 @@ +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; + min-height: 100vh; + min-width: 320px; +} + +html { + font-style: normal; + font-weight: 400; + font-size: $fz-default; + line-height: 24px; + font-family: $ff-placeholder; + color: $color-dark; +} + +body { + width: 100%; + height: 100%; + background-color: $color-white; +} + +img, +video { + max-width: 100%; + height: auto; + object-fit: contain; +} diff --git a/source/sass/global/utils.scss b/source/sass/global/utils.scss new file mode 100644 index 000000000..243bd93f2 --- /dev/null +++ b/source/sass/global/utils.scss @@ -0,0 +1,47 @@ +.wrapper { + position: relative; + display: flex; + flex-direction: column; + min-height: 100vh; + /* stylelint-disable-next-line */ + min-height: calc(100 * var(--vh, 1vh)); + overflow: hidden; + + .page-header, + .page-footer { + flex-shrink: 0; + } + + .page-content { + flex-grow: 1; + } + + &.is-open { + &::before { + position: absolute; + content: ""; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + height: 100%; + background-color: rgba(45, 56, 63, 0.6); + ; + z-index: 2; + } + } +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + white-space: nowrap; + border: 0; + clip: rect(0 0 0 0); + clip-path: inset(100%); +} diff --git a/source/sass/global/variables.scss b/source/sass/global/variables.scss new file mode 100644 index 000000000..4fcd757e7 --- /dev/null +++ b/source/sass/global/variables.scss @@ -0,0 +1,24 @@ +// Viewports +// --------------------------------- +$vp-768: 768px; +$vp-1440: 1440px; + +// Colors +// --------------------------------- +$color-white: #ffffff; +$color-dark: #2d383f; +$color-dark-alternative: #1c3374; +$color-action: #0266c1; +$color-transparent: rgba(255, 255, 255, 0); +$hero-gradient: linear-gradient(112.1deg, rgba(15, 20, 41, 0.33) 17.23%, rgba(15, 20, 41, 0) 94.93%); +$tours-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.6) 22.3%, rgba(0, 0, 0, 0) 60.32%); + +$fz-default: 16px; +$font-family: "Montserrat", "Arial", sans-serif; +$ff-placeholder: $font-family; + +// Animation +// --------------------------------- + +$tf-default: ease; +$trans-default: 0.3s $tf-default; diff --git a/source/sass/style.scss b/source/sass/style.scss index 96467369f..78f30a5e1 100644 --- a/source/sass/style.scss +++ b/source/sass/style.scss @@ -2,3 +2,38 @@ // --------------------------------- @import "vendor/normalize"; + +// Global +// --------------------------------- +@import "global/variables"; +@import "global/mixins"; +@import "global/fonts"; +@import "global/reboot"; +@import "global/utils"; +@import "global/container"; + +// Blocks +// --------------------------------- +@import "blocks/btn"; +@import "blocks/slider-btns"; +@import "blocks/section-title"; +@import "blocks/page-header"; +@import "blocks/nav"; +@import "blocks/hero"; +@import "blocks/hero-slide"; +@import "blocks/tours"; +@import "blocks/tours-slide"; +@import "blocks/training"; +@import "blocks/training-slide"; +@import "blocks/about"; +@import "blocks/reviews"; +@import "blocks/reviews-slide"; +@import "blocks/adv"; +@import "blocks/adv-slide"; +@import "blocks/gallery"; +@import "blocks/gallery-slide"; +@import "blocks/form"; +@import "blocks/contacts"; +@import "blocks/map"; +@import "blocks/page-footer"; +@import "blocks/social";