diff --git a/csscomb.json b/csscomb.json
new file mode 100644
index 000000000..25e91138b
--- /dev/null
+++ b/csscomb.json
@@ -0,0 +1,442 @@
+{
+ "exclude": [
+ ".git/**",
+ "node_modules/**"
+ ],
+
+ "always-semicolon": true,
+ "block-indent": " ",
+ "color-case": "lower",
+ "color-shorthand": false,
+ "element-case": "lower",
+ "eof-newline": true,
+ "leading-zero": true,
+ "quotes": "double",
+ "remove-empty-rulesets": true,
+ "sort-order-fallback": "abc",
+ "space-before-colon": "",
+ "space-after-colon": " ",
+ "space-before-combinator": " ",
+ "space-after-combinator": " ",
+ "space-between-declarations": "\n",
+ "space-before-opening-brace": " ",
+ "space-after-opening-brace": "\n",
+ "space-before-selector-delimiter": "",
+ "space-after-selector-delimiter": "\n",
+ "space-before-closing-brace": "\n",
+ "strip-spaces": true,
+ "tab-size": 2,
+ "unitless-zero": true,
+ "vendor-prefix-align": true,
+ "sort-order": [
+ [
+ "content",
+ "position",
+ "top",
+ "right",
+ "bottom",
+ "left",
+ "z-index"
+ ],
+ [
+ "display",
+ "-webkit-box",
+ "-webkit-flex",
+ "-moz-box",
+ "-ms-flexbox",
+ "flex",
+ "-webkit-box-flex",
+ "-webkit-flex-grow",
+ "-moz-box-flex",
+ "-ms-flex-positive",
+ "flex-grow",
+ "-webkit-flex-shrink",
+ "-ms-flex-negative",
+ "flex-shrink",
+ "-webkit-flex-basis",
+ "-ms-flex-preferred-size",
+ "flex-basis",
+ "-webkit-flex-flow",
+ "-ms-flex-flow",
+ "flex-flow",
+ "-webkit-box-orient",
+ "-webkit-box-direction",
+ "-webkit-flex-direction",
+ "-moz-box-orient",
+ "-moz-box-direction",
+ "-ms-flex-direction",
+ "flex-direction",
+ "-webkit-flex-wrap",
+ "-ms-flex-wrap",
+ "flex-wrap",
+ "-webkit-box-pack",
+ "-webkit-justify-content",
+ "-moz-box-pack",
+ "-ms-flex-pack",
+ "justify-content",
+ "-webkit-align-content",
+ "-ms-flex-line-pack",
+ "align-content",
+ "-webkit-box-align",
+ "-webkit-align-items",
+ "-moz-box-align",
+ "-ms-flex-align",
+ "align-items",
+ "-webkit-box-ordinal-group",
+ "-webkit-order",
+ "-moz-box-ordinal-group",
+ "-ms-flex-order",
+ "order",
+ "-webkit-align-self",
+ "-ms-flex-item-align",
+ "-ms-grid-row-align",
+ "align-self",
+ "float",
+ "clear",
+ "-webkit-box-sizing",
+ "-moz-box-sizing",
+ "box-sizing",
+ "width",
+ "min-width",
+ "max-width",
+ "height",
+ "min-height",
+ "max-height",
+ "margin",
+ "margin-top",
+ "margin-right",
+ "margin-bottom",
+ "margin-left",
+ "padding",
+ "padding-top",
+ "padding-right",
+ "padding-bottom",
+ "padding-left",
+ "overflow",
+ "-ms-overflow-x",
+ "overflow-x",
+ "-ms-overflow-y",
+ "overflow-y",
+ "-webkit-overflow-scrolling"
+ ],
+ [
+ "list-style",
+ "list-style-position",
+ "list-style-type",
+ "list-style-image",
+ "border-collapse",
+ "border-spacing",
+ "table-layout",
+ "empty-cells",
+ "caption-side",
+ "font",
+ "font-style",
+ "font-variant",
+ "font-weight",
+ "font-size",
+ "line-height",
+ "font-family",
+ "vertical-align",
+ "text-align",
+ "direction",
+ "color",
+ "text-transform",
+ "-webkit-text-decoration",
+ "-moz-text-decoration",
+ "text-decoration",
+ "font-size-adjust",
+ "font-stretch",
+ "font-effect",
+ "font-emphasize",
+ "font-emphasize-position",
+ "font-emphasize-style",
+ "font-smooth",
+ "-webkit-text-align-last",
+ "-moz-text-align-last",
+ "-ms-text-align-last",
+ "text-align-last",
+ "letter-spacing",
+ "word-spacing",
+ "white-space",
+ "-webkit-text-emphasis",
+ "text-emphasis",
+ "-webkit-text-emphasis-color",
+ "text-emphasis-color",
+ "-webkit-text-emphasis-style",
+ "text-emphasis-style",
+ "-webkit-text-emphasis-position",
+ "text-emphasis-position",
+ "text-indent",
+ "-ms-text-justify",
+ "text-justify",
+ "-ms-writing-mode",
+ "text-outline",
+ "text-wrap",
+ "-ms-text-overflow",
+ "-o-text-overflow",
+ "text-overflow",
+ "text-overflow-ellipsis",
+ "text-overflow-mode",
+ "text-orientation",
+ "-ms-word-wrap",
+ "word-wrap",
+ "-ms-word-break",
+ "word-break",
+ "-moz-tab-size",
+ "-o-tab-size",
+ "tab-size",
+ "-webkit-hyphens",
+ "-moz-hyphens",
+ "-ms-hyphens",
+ "hyphens",
+ "unicode-bidi",
+ "-webkit-columns",
+ "-moz-columns",
+ "columns",
+ "-webkit-column-count",
+ "-moz-column-count",
+ "column-count",
+ "-webkit-column-fill",
+ "-moz-column-fill",
+ "column-fill",
+ "-webkit-column-gap",
+ "-moz-column-gap",
+ "column-gap",
+ "-webkit-column-rule",
+ "-moz-column-rule",
+ "column-rule",
+ "-webkit-column-rule-color",
+ "-moz-column-rule-color",
+ "column-rule-color",
+ "-webkit-column-rule-style",
+ "-moz-column-rule-style",
+ "column-rule-style",
+ "-webkit-column-rule-width",
+ "-moz-column-rule-width",
+ "column-rule-width",
+ "-webkit-column-span",
+ "-moz-column-span",
+ "column-span",
+ "-webkit-column-width",
+ "-moz-column-width",
+ "column-width",
+ "text-shadow",
+ "page-break-after",
+ "page-break-before",
+ "page-break-inside"
+ ],
+ [
+ "background",
+ "background-color",
+ "background-image",
+ "-webkit-gradient",
+ "-webkit-linear-gradient",
+ "-moz-linear-gradient",
+ "-o-linear-gradient",
+ "linear-gradient",
+ "background-repeat",
+ "background-position",
+ "-ms-background-position-x",
+ "background-position-x",
+ "-ms-background-position-y",
+ "background-position-y",
+ "-webkit-background-size",
+ "-moz-background-size",
+ "-o-background-size",
+ "background-size",
+ "-webkit-background-clip",
+ "-moz-background-clip",
+ "background-clip",
+ "-webkit-background-origin",
+ "-moz-background-origin",
+ "-o-background-origin",
+ "background-origin",
+ "background-attachment",
+ "-webkit-box-decoration-break",
+ "box-decoration-break",
+ "background-blend-mode",
+ "border",
+ "border-width",
+ "border-style",
+ "border-color",
+ "border-top",
+ "border-top-width",
+ "border-top-style",
+ "border-top-color",
+ "border-right",
+ "border-right-width",
+ "border-right-style",
+ "border-right-color",
+ "border-bottom",
+ "border-bottom-width",
+ "border-bottom-style",
+ "border-bottom-color",
+ "border-left",
+ "border-left-width",
+ "border-left-style",
+ "border-left-color",
+ "-webkit-border-radius",
+ "-moz-border-radius",
+ "border-radius",
+ "-webkit-border-top-left-radius",
+ "-moz-border-radius-topleft",
+ "border-top-left-radius",
+ "-webkit-border-top-right-radius",
+ "-moz-border-radius-topright",
+ "border-top-right-radius",
+ "-webkit-border-bottom-right-radius",
+ "-moz-border-radius-bottomright",
+ "border-bottom-right-radius",
+ "-webkit-border-bottom-left-radius",
+ "-moz-border-radius-bottomleft",
+ "border-bottom-left-radius",
+ "-webkit-border-image",
+ "-moz-border-image",
+ "-o-border-image",
+ "border-image",
+ "-webkit-border-image-source",
+ "-moz-border-image-source",
+ "-o-border-image-source",
+ "border-image-source",
+ "-webkit-border-image-slice",
+ "-moz-border-image-slice",
+ "-o-border-image-slice",
+ "border-image-slice",
+ "-webkit-border-image-width",
+ "-moz-border-image-width",
+ "-o-border-image-width",
+ "border-image-width",
+ "-webkit-border-image-outset",
+ "-moz-border-image-outset",
+ "-o-border-image-outset",
+ "border-image-outset",
+ "-webkit-border-image-repeat",
+ "-moz-border-image-repeat",
+ "-o-border-image-repeat",
+ "border-image-repeat",
+ "outline",
+ "outline-width",
+ "outline-style",
+ "outline-color",
+ "outline-offset",
+ "-webkit-box-shadow",
+ "-moz-box-shadow",
+ "box-shadow",
+ "-webkit-transform",
+ "-moz-transform",
+ "-ms-transform",
+ "-o-transform",
+ "transform",
+ "-webkit-transform-origin",
+ "-moz-transform-origin",
+ "-ms-transform-origin",
+ "-o-transform-origin",
+ "transform-origin",
+ "-webkit-backface-visibility",
+ "-moz-backface-visibility",
+ "backface-visibility",
+ "-webkit-perspective",
+ "-moz-perspective",
+ "perspective",
+ "-webkit-perspective-origin",
+ "-moz-perspective-origin",
+ "perspective-origin",
+ "-webkit-transform-style",
+ "-moz-transform-style",
+ "transform-style",
+ "visibility",
+ "cursor",
+ "opacity",
+ "-webkit-filter",
+ "filter"
+ ],
+ [
+ "-webkit-transition",
+ "-moz-transition",
+ "-ms-transition",
+ "-o-transition",
+ "transition",
+ "-webkit-transition-delay",
+ "-moz-transition-delay",
+ "-ms-transition-delay",
+ "-o-transition-delay",
+ "transition-delay",
+ "-webkit-transition-timing-function",
+ "-moz-transition-timing-function",
+ "-ms-transition-timing-function",
+ "-o-transition-timing-function",
+ "transition-timing-function",
+ "-webkit-transition-duration",
+ "-moz-transition-duration",
+ "-ms-transition-duration",
+ "-o-transition-duration",
+ "transition-duration",
+ "-webkit-transition-property",
+ "-moz-transition-property",
+ "-ms-transition-property",
+ "-o-transition-property",
+ "transition-property",
+ "-webkit-animation",
+ "-moz-animation",
+ "-ms-animation",
+ "-o-animation",
+ "animation",
+ "-webkit-animation-name",
+ "-moz-animation-name",
+ "-ms-animation-name",
+ "-o-animation-name",
+ "animation-name",
+ "-webkit-animation-duration",
+ "-moz-animation-duration",
+ "-ms-animation-duration",
+ "-o-animation-duration",
+ "animation-duration",
+ "-webkit-animation-play-state",
+ "-moz-animation-play-state",
+ "-ms-animation-play-state",
+ "-o-animation-play-state",
+ "animation-play-state",
+ "-webkit-animation-timing-function",
+ "-moz-animation-timing-function",
+ "-ms-animation-timing-function",
+ "-o-animation-timing-function",
+ "animation-timing-function",
+ "-webkit-animation-delay",
+ "-moz-animation-delay",
+ "-ms-animation-delay",
+ "-o-animation-delay",
+ "animation-delay",
+ "-webkit-animation-iteration-count",
+ "-moz-animation-iteration-count",
+ "-ms-animation-iteration-count",
+ "-o-animation-iteration-count",
+ "animation-iteration-count",
+ "-webkit-animation-direction",
+ "-moz-animation-direction",
+ "-ms-animation-direction",
+ "-o-animation-direction",
+ "animation-direction"
+ ],
+ [
+ "quotes",
+ "counter-reset",
+ "counter-increment",
+ "resize",
+ "-webkit-user-select",
+ "-moz-user-select",
+ "-ms-user-select",
+ "user-select",
+ "nav-index",
+ "nav-up",
+ "nav-right",
+ "nav-down",
+ "nav-left",
+ "pointer-events",
+ "will-change",
+ "clip",
+ "-webkit-clip-path",
+ "clip-path",
+ "zoom"
+ ]
+ ]
+}
diff --git a/package.json b/package.json
index 815dff28a..0c6a77c47 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"w3c-html-validator": "1.7.0"
},
"dependencies": {
- "swiper": "11.1.1"
+ "swiper": "^11.1.9"
},
"engines": {
"node": "^18.18 || ^20.9"
diff --git a/source/favicon.ico b/source/favicon.ico
new file mode 100644
index 000000000..ac1a98fda
Binary files /dev/null and b/source/favicon.ico differ
diff --git a/source/fonts/montserrat-300.woff b/source/fonts/montserrat-300.woff
new file mode 100644
index 000000000..907a4f74e
Binary files /dev/null and b/source/fonts/montserrat-300.woff differ
diff --git a/source/fonts/montserrat-300.woff2 b/source/fonts/montserrat-300.woff2
new file mode 100644
index 000000000..70cfdee11
Binary files /dev/null and b/source/fonts/montserrat-300.woff2 differ
diff --git a/source/fonts/montserrat-400.woff b/source/fonts/montserrat-400.woff
new file mode 100644
index 000000000..df8bef246
Binary files /dev/null and b/source/fonts/montserrat-400.woff differ
diff --git a/source/fonts/montserrat-400.woff2 b/source/fonts/montserrat-400.woff2
new file mode 100644
index 000000000..09c6d75e8
Binary files /dev/null and b/source/fonts/montserrat-400.woff2 differ
diff --git a/source/fonts/montserrat-500.woff b/source/fonts/montserrat-500.woff
new file mode 100644
index 000000000..83c35f0bf
Binary files /dev/null and b/source/fonts/montserrat-500.woff differ
diff --git a/source/fonts/montserrat-500.woff2 b/source/fonts/montserrat-500.woff2
new file mode 100644
index 000000000..11098b7df
Binary files /dev/null and b/source/fonts/montserrat-500.woff2 differ
diff --git a/source/fonts/montserrat-600.woff b/source/fonts/montserrat-600.woff
new file mode 100644
index 000000000..69a0520df
Binary files /dev/null and b/source/fonts/montserrat-600.woff differ
diff --git a/source/fonts/montserrat-600.woff2 b/source/fonts/montserrat-600.woff2
new file mode 100644
index 000000000..853bd7f87
Binary files /dev/null and b/source/fonts/montserrat-600.woff2 differ
diff --git a/source/fonts/montserrat-700.woff b/source/fonts/montserrat-700.woff
new file mode 100644
index 000000000..7b1f2b638
Binary files /dev/null and b/source/fonts/montserrat-700.woff differ
diff --git a/source/fonts/montserrat-700.woff2 b/source/fonts/montserrat-700.woff2
new file mode 100644
index 000000000..a75e620ac
Binary files /dev/null and b/source/fonts/montserrat-700.woff2 differ
diff --git a/source/fonts/montserrat-800.woff b/source/fonts/montserrat-800.woff
new file mode 100644
index 000000000..ee539291b
Binary files /dev/null and b/source/fonts/montserrat-800.woff differ
diff --git a/source/fonts/montserrat-800.woff2 b/source/fonts/montserrat-800.woff2
new file mode 100644
index 000000000..168ff3749
Binary files /dev/null and b/source/fonts/montserrat-800.woff2 differ
diff --git a/source/img/about/photo-desktop.jpg b/source/img/about/photo-desktop.jpg
new file mode 100644
index 000000000..079caf669
Binary files /dev/null and b/source/img/about/photo-desktop.jpg differ
diff --git a/source/img/about/photo-desktop.webp b/source/img/about/photo-desktop.webp
new file mode 100644
index 000000000..49bb6d888
Binary files /dev/null and b/source/img/about/photo-desktop.webp differ
diff --git a/source/img/about/photo-desktop@2x.jpg b/source/img/about/photo-desktop@2x.jpg
new file mode 100644
index 000000000..250fc1fe0
Binary files /dev/null and b/source/img/about/photo-desktop@2x.jpg differ
diff --git a/source/img/about/photo-desktop@2x.webp b/source/img/about/photo-desktop@2x.webp
new file mode 100644
index 000000000..9db2f09cf
Binary files /dev/null and b/source/img/about/photo-desktop@2x.webp differ
diff --git a/source/img/about/photo-mobile.jpg b/source/img/about/photo-mobile.jpg
new file mode 100644
index 000000000..9cac91f0d
Binary files /dev/null and b/source/img/about/photo-mobile.jpg differ
diff --git a/source/img/about/photo-mobile.webp b/source/img/about/photo-mobile.webp
new file mode 100644
index 000000000..8449a741f
Binary files /dev/null and b/source/img/about/photo-mobile.webp differ
diff --git a/source/img/about/photo-mobile@2x.jpg b/source/img/about/photo-mobile@2x.jpg
new file mode 100644
index 000000000..dfe1b9e98
Binary files /dev/null and b/source/img/about/photo-mobile@2x.jpg differ
diff --git a/source/img/about/photo-mobile@2x.webp b/source/img/about/photo-mobile@2x.webp
new file mode 100644
index 000000000..4d3d930b2
Binary files /dev/null and b/source/img/about/photo-mobile@2x.webp differ
diff --git a/source/img/about/photo-tablet.jpg b/source/img/about/photo-tablet.jpg
new file mode 100644
index 000000000..83cab99d2
Binary files /dev/null and b/source/img/about/photo-tablet.jpg differ
diff --git a/source/img/about/photo-tablet.webp b/source/img/about/photo-tablet.webp
new file mode 100644
index 000000000..b0cd9df61
Binary files /dev/null and b/source/img/about/photo-tablet.webp differ
diff --git a/source/img/about/photo-tablet@2x.jpg b/source/img/about/photo-tablet@2x.jpg
new file mode 100644
index 000000000..b6fbac8b9
Binary files /dev/null and b/source/img/about/photo-tablet@2x.jpg differ
diff --git a/source/img/about/photo-tablet@2x.webp b/source/img/about/photo-tablet@2x.webp
new file mode 100644
index 000000000..c1792b10f
Binary files /dev/null and b/source/img/about/photo-tablet@2x.webp differ
diff --git a/source/img/background/clouds-advantages-desktop.png b/source/img/background/clouds-advantages-desktop.png
new file mode 100644
index 000000000..e0a776e4d
Binary files /dev/null and b/source/img/background/clouds-advantages-desktop.png differ
diff --git a/source/img/background/clouds-advantages-tablet.png b/source/img/background/clouds-advantages-tablet.png
new file mode 100644
index 000000000..c123c1e18
Binary files /dev/null and b/source/img/background/clouds-advantages-tablet.png differ
diff --git a/source/img/background/clouds-tours-desktop.png b/source/img/background/clouds-tours-desktop.png
new file mode 100644
index 000000000..639e8d3e9
Binary files /dev/null and b/source/img/background/clouds-tours-desktop.png differ
diff --git a/source/img/background/clouds-tours-mobile.png b/source/img/background/clouds-tours-mobile.png
new file mode 100644
index 000000000..d5034476a
Binary files /dev/null and b/source/img/background/clouds-tours-mobile.png differ
diff --git a/source/img/background/clouds-tours-tablet.png b/source/img/background/clouds-tours-tablet.png
new file mode 100644
index 000000000..3bbc5d69e
Binary files /dev/null and b/source/img/background/clouds-tours-tablet.png differ
diff --git a/source/img/background/clouds-training-desktop.png b/source/img/background/clouds-training-desktop.png
new file mode 100644
index 000000000..11262fbd1
Binary files /dev/null and b/source/img/background/clouds-training-desktop.png differ
diff --git a/source/img/background/clouds-training-tablet.png b/source/img/background/clouds-training-tablet.png
new file mode 100644
index 000000000..218d4e259
Binary files /dev/null and b/source/img/background/clouds-training-tablet.png differ
diff --git a/source/img/favicon/apple-touch-icon.png b/source/img/favicon/apple-touch-icon.png
new file mode 100644
index 000000000..5a1875d65
Binary files /dev/null and b/source/img/favicon/apple-touch-icon.png differ
diff --git a/source/img/favicon/apple-touch-icon.webp b/source/img/favicon/apple-touch-icon.webp
new file mode 100644
index 000000000..91d2ff5c6
Binary files /dev/null and b/source/img/favicon/apple-touch-icon.webp differ
diff --git a/source/img/favicon/browserconfig.xml b/source/img/favicon/browserconfig.xml
new file mode 100644
index 000000000..b3930d0f0
--- /dev/null
+++ b/source/img/favicon/browserconfig.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/source/img/favicon/favicon-16x16.png b/source/img/favicon/favicon-16x16.png
new file mode 100644
index 000000000..4a1496d07
Binary files /dev/null and b/source/img/favicon/favicon-16x16.png differ
diff --git a/source/img/favicon/favicon-16x16.webp b/source/img/favicon/favicon-16x16.webp
new file mode 100644
index 000000000..962d489e7
Binary files /dev/null and b/source/img/favicon/favicon-16x16.webp differ
diff --git a/source/img/favicon/favicon-32x32.png b/source/img/favicon/favicon-32x32.png
new file mode 100644
index 000000000..9d7425c3c
Binary files /dev/null and b/source/img/favicon/favicon-32x32.png differ
diff --git a/source/img/favicon/favicon-32x32.webp b/source/img/favicon/favicon-32x32.webp
new file mode 100644
index 000000000..519dbc87d
Binary files /dev/null and b/source/img/favicon/favicon-32x32.webp differ
diff --git a/source/img/favicon/safari-pinned-tab.svg b/source/img/favicon/safari-pinned-tab.svg
new file mode 100644
index 000000000..3be465404
--- /dev/null
+++ b/source/img/favicon/safari-pinned-tab.svg
@@ -0,0 +1,15 @@
+
+
+
+
+Created by potrace 1.14, written by Peter Selinger 2001-2017
+
+
+
+
+
diff --git a/source/img/footer/contacts/email.svg b/source/img/footer/contacts/email.svg
new file mode 100644
index 000000000..3a6e273a3
--- /dev/null
+++ b/source/img/footer/contacts/email.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/footer/contacts/phone.svg b/source/img/footer/contacts/phone.svg
new file mode 100644
index 000000000..d7a62a576
--- /dev/null
+++ b/source/img/footer/contacts/phone.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/footer/contacts/pin.svg b/source/img/footer/contacts/pin.svg
new file mode 100644
index 000000000..746aa6ef5
--- /dev/null
+++ b/source/img/footer/contacts/pin.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/source/img/footer/logo-footer.svg b/source/img/footer/logo-footer.svg
new file mode 100644
index 000000000..751fac90a
--- /dev/null
+++ b/source/img/footer/logo-footer.svg
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/footer/map/map-desktop.jpg b/source/img/footer/map/map-desktop.jpg
new file mode 100644
index 000000000..859f5721a
Binary files /dev/null and b/source/img/footer/map/map-desktop.jpg differ
diff --git a/source/img/footer/map/map-desktop.webp b/source/img/footer/map/map-desktop.webp
new file mode 100644
index 000000000..6769099b8
Binary files /dev/null and b/source/img/footer/map/map-desktop.webp differ
diff --git a/source/img/footer/map/map-desktop@2x.jpg b/source/img/footer/map/map-desktop@2x.jpg
new file mode 100644
index 000000000..a1d9a05ed
Binary files /dev/null and b/source/img/footer/map/map-desktop@2x.jpg differ
diff --git a/source/img/footer/map/map-desktop@2x.webp b/source/img/footer/map/map-desktop@2x.webp
new file mode 100644
index 000000000..ff4259a26
Binary files /dev/null and b/source/img/footer/map/map-desktop@2x.webp differ
diff --git a/source/img/footer/map/map-mobile.jpg b/source/img/footer/map/map-mobile.jpg
new file mode 100644
index 000000000..6d8528f4e
Binary files /dev/null and b/source/img/footer/map/map-mobile.jpg differ
diff --git a/source/img/footer/map/map-mobile.webp b/source/img/footer/map/map-mobile.webp
new file mode 100644
index 000000000..b7e24667d
Binary files /dev/null and b/source/img/footer/map/map-mobile.webp differ
diff --git a/source/img/footer/map/map-mobile@2x.jpg b/source/img/footer/map/map-mobile@2x.jpg
new file mode 100644
index 000000000..376add170
Binary files /dev/null and b/source/img/footer/map/map-mobile@2x.jpg differ
diff --git a/source/img/footer/map/map-mobile@2x.webp b/source/img/footer/map/map-mobile@2x.webp
new file mode 100644
index 000000000..9497c4a54
Binary files /dev/null and b/source/img/footer/map/map-mobile@2x.webp differ
diff --git a/source/img/footer/map/map-tablet.jpg b/source/img/footer/map/map-tablet.jpg
new file mode 100644
index 000000000..5f52ab468
Binary files /dev/null and b/source/img/footer/map/map-tablet.jpg differ
diff --git a/source/img/footer/map/map-tablet.webp b/source/img/footer/map/map-tablet.webp
new file mode 100644
index 000000000..82ede1ac5
Binary files /dev/null and b/source/img/footer/map/map-tablet.webp differ
diff --git a/source/img/footer/map/map-tablet@2x.jpg b/source/img/footer/map/map-tablet@2x.jpg
new file mode 100644
index 000000000..1d88c6b37
Binary files /dev/null and b/source/img/footer/map/map-tablet@2x.jpg differ
diff --git a/source/img/footer/map/map-tablet@2x.webp b/source/img/footer/map/map-tablet@2x.webp
new file mode 100644
index 000000000..8620a40be
Binary files /dev/null and b/source/img/footer/map/map-tablet@2x.webp differ
diff --git a/source/img/form/form-desktop.jpg b/source/img/form/form-desktop.jpg
new file mode 100644
index 000000000..c5c650a20
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..157c5b16d
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..dd872ef42
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..9acd26c6f
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..182bf534e
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..54518a232
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..32f48bf16
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..abf4f44b0
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..6b5e4546b
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..fb2c1dab3
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..d17dfcd93
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..ba2b13051
Binary files /dev/null and b/source/img/form/form-tablet@2x.webp differ
diff --git a/source/img/gallery/photo-1-desktop.jpg b/source/img/gallery/photo-1-desktop.jpg
new file mode 100644
index 000000000..3736a02fc
Binary files /dev/null and b/source/img/gallery/photo-1-desktop.jpg differ
diff --git a/source/img/gallery/photo-1-desktop.webp b/source/img/gallery/photo-1-desktop.webp
new file mode 100644
index 000000000..25eba3346
Binary files /dev/null and b/source/img/gallery/photo-1-desktop.webp differ
diff --git a/source/img/gallery/photo-1-desktop@2x.jpg b/source/img/gallery/photo-1-desktop@2x.jpg
new file mode 100644
index 000000000..26128ef1d
Binary files /dev/null and b/source/img/gallery/photo-1-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-1-desktop@2x.webp b/source/img/gallery/photo-1-desktop@2x.webp
new file mode 100644
index 000000000..ef748d895
Binary files /dev/null and b/source/img/gallery/photo-1-desktop@2x.webp differ
diff --git a/source/img/gallery/photo-1-mobile.jpg b/source/img/gallery/photo-1-mobile.jpg
new file mode 100644
index 000000000..b486555a8
Binary files /dev/null and b/source/img/gallery/photo-1-mobile.jpg differ
diff --git a/source/img/gallery/photo-1-mobile.webp b/source/img/gallery/photo-1-mobile.webp
new file mode 100644
index 000000000..f292a31b6
Binary files /dev/null and b/source/img/gallery/photo-1-mobile.webp differ
diff --git a/source/img/gallery/photo-1-mobile@2x.jpg b/source/img/gallery/photo-1-mobile@2x.jpg
new file mode 100644
index 000000000..08ba40af7
Binary files /dev/null and b/source/img/gallery/photo-1-mobile@2x.jpg differ
diff --git a/source/img/gallery/photo-1-mobile@2x.webp b/source/img/gallery/photo-1-mobile@2x.webp
new file mode 100644
index 000000000..5ca63aaed
Binary files /dev/null and b/source/img/gallery/photo-1-mobile@2x.webp differ
diff --git a/source/img/gallery/photo-1-tablet.jpg b/source/img/gallery/photo-1-tablet.jpg
new file mode 100644
index 000000000..437103c65
Binary files /dev/null and b/source/img/gallery/photo-1-tablet.jpg differ
diff --git a/source/img/gallery/photo-1-tablet.webp b/source/img/gallery/photo-1-tablet.webp
new file mode 100644
index 000000000..7b824b192
Binary files /dev/null and b/source/img/gallery/photo-1-tablet.webp differ
diff --git a/source/img/gallery/photo-1-tablet@2x.jpg b/source/img/gallery/photo-1-tablet@2x.jpg
new file mode 100644
index 000000000..b7360fb2f
Binary files /dev/null and b/source/img/gallery/photo-1-tablet@2x.jpg differ
diff --git a/source/img/gallery/photo-1-tablet@2x.webp b/source/img/gallery/photo-1-tablet@2x.webp
new file mode 100644
index 000000000..2af8443bd
Binary files /dev/null and b/source/img/gallery/photo-1-tablet@2x.webp differ
diff --git a/source/img/gallery/photo-2-desktop.jpg b/source/img/gallery/photo-2-desktop.jpg
new file mode 100644
index 000000000..7e73a81be
Binary files /dev/null and b/source/img/gallery/photo-2-desktop.jpg differ
diff --git a/source/img/gallery/photo-2-desktop.webp b/source/img/gallery/photo-2-desktop.webp
new file mode 100644
index 000000000..a983f2817
Binary files /dev/null and b/source/img/gallery/photo-2-desktop.webp differ
diff --git a/source/img/gallery/photo-2-desktop@2x.jpg b/source/img/gallery/photo-2-desktop@2x.jpg
new file mode 100644
index 000000000..d01d281d7
Binary files /dev/null and b/source/img/gallery/photo-2-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-2-desktop@2x.webp b/source/img/gallery/photo-2-desktop@2x.webp
new file mode 100644
index 000000000..7db976ea8
Binary files /dev/null and b/source/img/gallery/photo-2-desktop@2x.webp differ
diff --git a/source/img/gallery/photo-2-mobile.jpg b/source/img/gallery/photo-2-mobile.jpg
new file mode 100644
index 000000000..296e6332a
Binary files /dev/null and b/source/img/gallery/photo-2-mobile.jpg differ
diff --git a/source/img/gallery/photo-2-mobile.webp b/source/img/gallery/photo-2-mobile.webp
new file mode 100644
index 000000000..31d4bd9b2
Binary files /dev/null and b/source/img/gallery/photo-2-mobile.webp differ
diff --git a/source/img/gallery/photo-2-mobile@2x.jpg b/source/img/gallery/photo-2-mobile@2x.jpg
new file mode 100644
index 000000000..ae021a11d
Binary files /dev/null and b/source/img/gallery/photo-2-mobile@2x.jpg differ
diff --git a/source/img/gallery/photo-2-mobile@2x.webp b/source/img/gallery/photo-2-mobile@2x.webp
new file mode 100644
index 000000000..db24306a6
Binary files /dev/null and b/source/img/gallery/photo-2-mobile@2x.webp differ
diff --git a/source/img/gallery/photo-2-tablet.jpg b/source/img/gallery/photo-2-tablet.jpg
new file mode 100644
index 000000000..230c1685a
Binary files /dev/null and b/source/img/gallery/photo-2-tablet.jpg differ
diff --git a/source/img/gallery/photo-2-tablet.webp b/source/img/gallery/photo-2-tablet.webp
new file mode 100644
index 000000000..45a90c90a
Binary files /dev/null and b/source/img/gallery/photo-2-tablet.webp differ
diff --git a/source/img/gallery/photo-2-tablet@2x.jpg b/source/img/gallery/photo-2-tablet@2x.jpg
new file mode 100644
index 000000000..1362a51e6
Binary files /dev/null and b/source/img/gallery/photo-2-tablet@2x.jpg differ
diff --git a/source/img/gallery/photo-2-tablet@2x.webp b/source/img/gallery/photo-2-tablet@2x.webp
new file mode 100644
index 000000000..b7b6f2829
Binary files /dev/null and b/source/img/gallery/photo-2-tablet@2x.webp differ
diff --git a/source/img/gallery/photo-3-desktop.jpg b/source/img/gallery/photo-3-desktop.jpg
new file mode 100644
index 000000000..d03609cd0
Binary files /dev/null and b/source/img/gallery/photo-3-desktop.jpg differ
diff --git a/source/img/gallery/photo-3-desktop.webp b/source/img/gallery/photo-3-desktop.webp
new file mode 100644
index 000000000..fc8e32f2f
Binary files /dev/null and b/source/img/gallery/photo-3-desktop.webp differ
diff --git a/source/img/gallery/photo-3-desktop@2x.jpg b/source/img/gallery/photo-3-desktop@2x.jpg
new file mode 100644
index 000000000..d9c3fcd8d
Binary files /dev/null and b/source/img/gallery/photo-3-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-3-desktop@2x.webp b/source/img/gallery/photo-3-desktop@2x.webp
new file mode 100644
index 000000000..65bdc3c6e
Binary files /dev/null and b/source/img/gallery/photo-3-desktop@2x.webp differ
diff --git a/source/img/gallery/photo-3-mobile.jpg b/source/img/gallery/photo-3-mobile.jpg
new file mode 100644
index 000000000..622eebea3
Binary files /dev/null and b/source/img/gallery/photo-3-mobile.jpg differ
diff --git a/source/img/gallery/photo-3-mobile.webp b/source/img/gallery/photo-3-mobile.webp
new file mode 100644
index 000000000..80e2e4be6
Binary files /dev/null and b/source/img/gallery/photo-3-mobile.webp differ
diff --git a/source/img/gallery/photo-3-mobile@2x.jpg b/source/img/gallery/photo-3-mobile@2x.jpg
new file mode 100644
index 000000000..92c4687b8
Binary files /dev/null and b/source/img/gallery/photo-3-mobile@2x.jpg differ
diff --git a/source/img/gallery/photo-3-mobile@2x.webp b/source/img/gallery/photo-3-mobile@2x.webp
new file mode 100644
index 000000000..fb3e318de
Binary files /dev/null and b/source/img/gallery/photo-3-mobile@2x.webp differ
diff --git a/source/img/gallery/photo-3-tablet.jpg b/source/img/gallery/photo-3-tablet.jpg
new file mode 100644
index 000000000..2d5731aa8
Binary files /dev/null and b/source/img/gallery/photo-3-tablet.jpg differ
diff --git a/source/img/gallery/photo-3-tablet.webp b/source/img/gallery/photo-3-tablet.webp
new file mode 100644
index 000000000..3ed60cede
Binary files /dev/null and b/source/img/gallery/photo-3-tablet.webp differ
diff --git a/source/img/gallery/photo-3-tablet@2x.jpg b/source/img/gallery/photo-3-tablet@2x.jpg
new file mode 100644
index 000000000..e9dd2115c
Binary files /dev/null and b/source/img/gallery/photo-3-tablet@2x.jpg differ
diff --git a/source/img/gallery/photo-3-tablet@2x.webp b/source/img/gallery/photo-3-tablet@2x.webp
new file mode 100644
index 000000000..5adaacf78
Binary files /dev/null and b/source/img/gallery/photo-3-tablet@2x.webp differ
diff --git a/source/img/gallery/photo-4-desktop.jpg b/source/img/gallery/photo-4-desktop.jpg
new file mode 100644
index 000000000..fafcebac7
Binary files /dev/null and b/source/img/gallery/photo-4-desktop.jpg differ
diff --git a/source/img/gallery/photo-4-desktop.webp b/source/img/gallery/photo-4-desktop.webp
new file mode 100644
index 000000000..0737ce293
Binary files /dev/null and b/source/img/gallery/photo-4-desktop.webp differ
diff --git a/source/img/gallery/photo-4-desktop@2x.jpg b/source/img/gallery/photo-4-desktop@2x.jpg
new file mode 100644
index 000000000..40b2dc43f
Binary files /dev/null and b/source/img/gallery/photo-4-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-4-desktop@2x.webp b/source/img/gallery/photo-4-desktop@2x.webp
new file mode 100644
index 000000000..58954d5f6
Binary files /dev/null and b/source/img/gallery/photo-4-desktop@2x.webp differ
diff --git a/source/img/gallery/photo-4-tablet.jpg b/source/img/gallery/photo-4-tablet.jpg
new file mode 100644
index 000000000..02f2ecc07
Binary files /dev/null and b/source/img/gallery/photo-4-tablet.jpg differ
diff --git a/source/img/gallery/photo-4-tablet.webp b/source/img/gallery/photo-4-tablet.webp
new file mode 100644
index 000000000..7ebe8fa1f
Binary files /dev/null and b/source/img/gallery/photo-4-tablet.webp differ
diff --git a/source/img/gallery/photo-4-tablet@2x.jpg b/source/img/gallery/photo-4-tablet@2x.jpg
new file mode 100644
index 000000000..1f7ea1f21
Binary files /dev/null and b/source/img/gallery/photo-4-tablet@2x.jpg differ
diff --git a/source/img/gallery/photo-4-tablet@2x.webp b/source/img/gallery/photo-4-tablet@2x.webp
new file mode 100644
index 000000000..1e49060be
Binary files /dev/null and b/source/img/gallery/photo-4-tablet@2x.webp differ
diff --git a/source/img/gallery/photo-5-desktop.jpg b/source/img/gallery/photo-5-desktop.jpg
new file mode 100644
index 000000000..e9883e4cc
Binary files /dev/null and b/source/img/gallery/photo-5-desktop.jpg differ
diff --git a/source/img/gallery/photo-5-desktop.webp b/source/img/gallery/photo-5-desktop.webp
new file mode 100644
index 000000000..30297e4bc
Binary files /dev/null and b/source/img/gallery/photo-5-desktop.webp differ
diff --git a/source/img/gallery/photo-5-desktop@2x.jpg b/source/img/gallery/photo-5-desktop@2x.jpg
new file mode 100644
index 000000000..8b46f2c80
Binary files /dev/null and b/source/img/gallery/photo-5-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-5-desktop@2x.webp b/source/img/gallery/photo-5-desktop@2x.webp
new file mode 100644
index 000000000..c12ceb8f7
Binary files /dev/null and b/source/img/gallery/photo-5-desktop@2x.webp differ
diff --git a/source/img/gallery/photo-6-desktop.jpg b/source/img/gallery/photo-6-desktop.jpg
new file mode 100644
index 000000000..29c964467
Binary files /dev/null and b/source/img/gallery/photo-6-desktop.jpg differ
diff --git a/source/img/gallery/photo-6-desktop.webp b/source/img/gallery/photo-6-desktop.webp
new file mode 100644
index 000000000..0eadb1d01
Binary files /dev/null and b/source/img/gallery/photo-6-desktop.webp differ
diff --git a/source/img/gallery/photo-6-desktop@2x.jpg b/source/img/gallery/photo-6-desktop@2x.jpg
new file mode 100644
index 000000000..391ab274e
Binary files /dev/null and b/source/img/gallery/photo-6-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-6-desktop@2x.webp b/source/img/gallery/photo-6-desktop@2x.webp
new file mode 100644
index 000000000..351666e49
Binary files /dev/null and b/source/img/gallery/photo-6-desktop@2x.webp differ
diff --git a/source/img/gallery/photo-7-desktop.jpg b/source/img/gallery/photo-7-desktop.jpg
new file mode 100644
index 000000000..92458576b
Binary files /dev/null and b/source/img/gallery/photo-7-desktop.jpg differ
diff --git a/source/img/gallery/photo-7-desktop.webp b/source/img/gallery/photo-7-desktop.webp
new file mode 100644
index 000000000..b2cf04ebb
Binary files /dev/null and b/source/img/gallery/photo-7-desktop.webp differ
diff --git a/source/img/gallery/photo-7-desktop@2x.jpg b/source/img/gallery/photo-7-desktop@2x.jpg
new file mode 100644
index 000000000..4481c33f7
Binary files /dev/null and b/source/img/gallery/photo-7-desktop@2x.jpg differ
diff --git a/source/img/gallery/photo-7-desktop@2x.webp b/source/img/gallery/photo-7-desktop@2x.webp
new file mode 100644
index 000000000..ff57889ee
Binary files /dev/null and b/source/img/gallery/photo-7-desktop@2x.webp differ
diff --git a/source/img/header/burger-button-close.svg b/source/img/header/burger-button-close.svg
new file mode 100644
index 000000000..c84546327
--- /dev/null
+++ b/source/img/header/burger-button-close.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/header/burger-button.svg b/source/img/header/burger-button.svg
new file mode 100644
index 000000000..6e7dc5d8e
--- /dev/null
+++ b/source/img/header/burger-button.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/source/img/header/logo.svg b/source/img/header/logo.svg
new file mode 100644
index 000000000..bdfa5c8d2
--- /dev/null
+++ b/source/img/header/logo.svg
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/hero/decor-desktop.png b/source/img/hero/decor-desktop.png
new file mode 100644
index 000000000..97fb2223f
Binary files /dev/null and b/source/img/hero/decor-desktop.png differ
diff --git a/source/img/hero/decor-desktop.webp b/source/img/hero/decor-desktop.webp
new file mode 100644
index 000000000..85b114bfd
Binary files /dev/null and b/source/img/hero/decor-desktop.webp differ
diff --git a/source/img/hero/decor-tablet.png b/source/img/hero/decor-tablet.png
new file mode 100644
index 000000000..1bee81852
Binary files /dev/null and b/source/img/hero/decor-tablet.png differ
diff --git a/source/img/hero/decor-tablet.webp b/source/img/hero/decor-tablet.webp
new file mode 100644
index 000000000..bb635c2ea
Binary files /dev/null and b/source/img/hero/decor-tablet.webp differ
diff --git a/source/img/hero/slide-desktop-altai.jpg b/source/img/hero/slide-desktop-altai.jpg
new file mode 100644
index 000000000..9008fa833
Binary files /dev/null and b/source/img/hero/slide-desktop-altai.jpg differ
diff --git a/source/img/hero/slide-desktop-altai.webp b/source/img/hero/slide-desktop-altai.webp
new file mode 100644
index 000000000..171c0022e
Binary files /dev/null and b/source/img/hero/slide-desktop-altai.webp differ
diff --git a/source/img/hero/slide-desktop-altai@2x.jpg b/source/img/hero/slide-desktop-altai@2x.jpg
new file mode 100644
index 000000000..a3e0477e9
Binary files /dev/null and b/source/img/hero/slide-desktop-altai@2x.jpg differ
diff --git a/source/img/hero/slide-desktop-altai@2x.webp b/source/img/hero/slide-desktop-altai@2x.webp
new file mode 100644
index 000000000..6d54c049c
Binary files /dev/null and b/source/img/hero/slide-desktop-altai@2x.webp differ
diff --git a/source/img/hero/slide-desktop-caucasus.jpg b/source/img/hero/slide-desktop-caucasus.jpg
new file mode 100644
index 000000000..af18394cf
Binary files /dev/null and b/source/img/hero/slide-desktop-caucasus.jpg differ
diff --git a/source/img/hero/slide-desktop-caucasus.webp b/source/img/hero/slide-desktop-caucasus.webp
new file mode 100644
index 000000000..10b647aa3
Binary files /dev/null and b/source/img/hero/slide-desktop-caucasus.webp differ
diff --git a/source/img/hero/slide-desktop-caucasus@2x.jpg b/source/img/hero/slide-desktop-caucasus@2x.jpg
new file mode 100644
index 000000000..13f878885
Binary files /dev/null and b/source/img/hero/slide-desktop-caucasus@2x.jpg differ
diff --git a/source/img/hero/slide-desktop-caucasus@2x.webp b/source/img/hero/slide-desktop-caucasus@2x.webp
new file mode 100644
index 000000000..cb9ddbe45
Binary files /dev/null and b/source/img/hero/slide-desktop-caucasus@2x.webp differ
diff --git a/source/img/hero/slide-desktop-kamchatka.jpg b/source/img/hero/slide-desktop-kamchatka.jpg
new file mode 100644
index 000000000..5e1206e58
Binary files /dev/null and b/source/img/hero/slide-desktop-kamchatka.jpg differ
diff --git a/source/img/hero/slide-desktop-kamchatka.webp b/source/img/hero/slide-desktop-kamchatka.webp
new file mode 100644
index 000000000..4d8de84f8
Binary files /dev/null and b/source/img/hero/slide-desktop-kamchatka.webp differ
diff --git a/source/img/hero/slide-desktop-kamchatka@2x.jpg b/source/img/hero/slide-desktop-kamchatka@2x.jpg
new file mode 100644
index 000000000..32ccf6c34
Binary files /dev/null and b/source/img/hero/slide-desktop-kamchatka@2x.jpg differ
diff --git a/source/img/hero/slide-desktop-kamchatka@2x.webp b/source/img/hero/slide-desktop-kamchatka@2x.webp
new file mode 100644
index 000000000..f901705f1
Binary files /dev/null and b/source/img/hero/slide-desktop-kamchatka@2x.webp differ
diff --git a/source/img/hero/slide-mobile-altai.jpg b/source/img/hero/slide-mobile-altai.jpg
new file mode 100644
index 000000000..6ff13bbb0
Binary files /dev/null and b/source/img/hero/slide-mobile-altai.jpg differ
diff --git a/source/img/hero/slide-mobile-altai.webp b/source/img/hero/slide-mobile-altai.webp
new file mode 100644
index 000000000..694ff84ec
Binary files /dev/null and b/source/img/hero/slide-mobile-altai.webp differ
diff --git a/source/img/hero/slide-mobile-altai@2x.jpg b/source/img/hero/slide-mobile-altai@2x.jpg
new file mode 100644
index 000000000..e1fac4e6a
Binary files /dev/null and b/source/img/hero/slide-mobile-altai@2x.jpg differ
diff --git a/source/img/hero/slide-mobile-altai@2x.webp b/source/img/hero/slide-mobile-altai@2x.webp
new file mode 100644
index 000000000..e3cf3b26d
Binary files /dev/null and b/source/img/hero/slide-mobile-altai@2x.webp differ
diff --git a/source/img/hero/slide-mobile-caucasus.jpg b/source/img/hero/slide-mobile-caucasus.jpg
new file mode 100644
index 000000000..58e231c15
Binary files /dev/null and b/source/img/hero/slide-mobile-caucasus.jpg differ
diff --git a/source/img/hero/slide-mobile-caucasus.webp b/source/img/hero/slide-mobile-caucasus.webp
new file mode 100644
index 000000000..ae349f7b7
Binary files /dev/null and b/source/img/hero/slide-mobile-caucasus.webp differ
diff --git a/source/img/hero/slide-mobile-caucasus@2x.jpg b/source/img/hero/slide-mobile-caucasus@2x.jpg
new file mode 100644
index 000000000..0e2932df0
Binary files /dev/null and b/source/img/hero/slide-mobile-caucasus@2x.jpg differ
diff --git a/source/img/hero/slide-mobile-caucasus@2x.webp b/source/img/hero/slide-mobile-caucasus@2x.webp
new file mode 100644
index 000000000..cdf9d28e6
Binary files /dev/null and b/source/img/hero/slide-mobile-caucasus@2x.webp differ
diff --git a/source/img/hero/slide-mobile-kamchatka.jpg b/source/img/hero/slide-mobile-kamchatka.jpg
new file mode 100644
index 000000000..ebb8963e8
Binary files /dev/null and b/source/img/hero/slide-mobile-kamchatka.jpg differ
diff --git a/source/img/hero/slide-mobile-kamchatka.webp b/source/img/hero/slide-mobile-kamchatka.webp
new file mode 100644
index 000000000..dec936483
Binary files /dev/null and b/source/img/hero/slide-mobile-kamchatka.webp differ
diff --git a/source/img/hero/slide-mobile-kamchatka@2x.jpg b/source/img/hero/slide-mobile-kamchatka@2x.jpg
new file mode 100644
index 000000000..387951af1
Binary files /dev/null and b/source/img/hero/slide-mobile-kamchatka@2x.jpg differ
diff --git a/source/img/hero/slide-mobile-kamchatka@2x.webp b/source/img/hero/slide-mobile-kamchatka@2x.webp
new file mode 100644
index 000000000..b92a420c9
Binary files /dev/null and b/source/img/hero/slide-mobile-kamchatka@2x.webp differ
diff --git a/source/img/hero/slide-tablet-altai.jpg b/source/img/hero/slide-tablet-altai.jpg
new file mode 100644
index 000000000..7c0591a9c
Binary files /dev/null and b/source/img/hero/slide-tablet-altai.jpg differ
diff --git a/source/img/hero/slide-tablet-altai.webp b/source/img/hero/slide-tablet-altai.webp
new file mode 100644
index 000000000..9923f6efa
Binary files /dev/null and b/source/img/hero/slide-tablet-altai.webp differ
diff --git a/source/img/hero/slide-tablet-altai@2x.jpg b/source/img/hero/slide-tablet-altai@2x.jpg
new file mode 100644
index 000000000..8254ef707
Binary files /dev/null and b/source/img/hero/slide-tablet-altai@2x.jpg differ
diff --git a/source/img/hero/slide-tablet-altai@2x.webp b/source/img/hero/slide-tablet-altai@2x.webp
new file mode 100644
index 000000000..7bc556c80
Binary files /dev/null and b/source/img/hero/slide-tablet-altai@2x.webp differ
diff --git a/source/img/hero/slide-tablet-caucasus.jpg b/source/img/hero/slide-tablet-caucasus.jpg
new file mode 100644
index 000000000..0a91cec3c
Binary files /dev/null and b/source/img/hero/slide-tablet-caucasus.jpg differ
diff --git a/source/img/hero/slide-tablet-caucasus.webp b/source/img/hero/slide-tablet-caucasus.webp
new file mode 100644
index 000000000..568bde603
Binary files /dev/null and b/source/img/hero/slide-tablet-caucasus.webp differ
diff --git a/source/img/hero/slide-tablet-caucasus@2x.jpg b/source/img/hero/slide-tablet-caucasus@2x.jpg
new file mode 100644
index 000000000..ce7f73164
Binary files /dev/null and b/source/img/hero/slide-tablet-caucasus@2x.jpg differ
diff --git a/source/img/hero/slide-tablet-caucasus@2x.webp b/source/img/hero/slide-tablet-caucasus@2x.webp
new file mode 100644
index 000000000..710e79968
Binary files /dev/null and b/source/img/hero/slide-tablet-caucasus@2x.webp differ
diff --git a/source/img/hero/slide-tablet-kamchatka.jpg b/source/img/hero/slide-tablet-kamchatka.jpg
new file mode 100644
index 000000000..2172add98
Binary files /dev/null and b/source/img/hero/slide-tablet-kamchatka.jpg differ
diff --git a/source/img/hero/slide-tablet-kamchatka.webp b/source/img/hero/slide-tablet-kamchatka.webp
new file mode 100644
index 000000000..6d8ffd41b
Binary files /dev/null and b/source/img/hero/slide-tablet-kamchatka.webp differ
diff --git a/source/img/hero/slide-tablet-kamchatka@2x.jpg b/source/img/hero/slide-tablet-kamchatka@2x.jpg
new file mode 100644
index 000000000..8dfa45def
Binary files /dev/null and b/source/img/hero/slide-tablet-kamchatka@2x.jpg differ
diff --git a/source/img/hero/slide-tablet-kamchatka@2x.webp b/source/img/hero/slide-tablet-kamchatka@2x.webp
new file mode 100644
index 000000000..181e84e89
Binary files /dev/null and b/source/img/hero/slide-tablet-kamchatka@2x.webp differ
diff --git a/source/img/reviews/photo-bazhenova-desktop.jpg b/source/img/reviews/photo-bazhenova-desktop.jpg
new file mode 100644
index 000000000..4c923d11a
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-desktop.jpg differ
diff --git a/source/img/reviews/photo-bazhenova-desktop.webp b/source/img/reviews/photo-bazhenova-desktop.webp
new file mode 100644
index 000000000..912628e17
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-desktop.webp differ
diff --git a/source/img/reviews/photo-bazhenova-desktop@2x.jpg b/source/img/reviews/photo-bazhenova-desktop@2x.jpg
new file mode 100644
index 000000000..2843a0273
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-desktop@2x.jpg differ
diff --git a/source/img/reviews/photo-bazhenova-desktop@2x.webp b/source/img/reviews/photo-bazhenova-desktop@2x.webp
new file mode 100644
index 000000000..3d5c74135
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-desktop@2x.webp differ
diff --git a/source/img/reviews/photo-bazhenova-mobile.jpg b/source/img/reviews/photo-bazhenova-mobile.jpg
new file mode 100644
index 000000000..89caf29fa
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-mobile.jpg differ
diff --git a/source/img/reviews/photo-bazhenova-mobile.webp b/source/img/reviews/photo-bazhenova-mobile.webp
new file mode 100644
index 000000000..67430fb4f
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-mobile.webp differ
diff --git a/source/img/reviews/photo-bazhenova-mobile@2x.jpg b/source/img/reviews/photo-bazhenova-mobile@2x.jpg
new file mode 100644
index 000000000..1e693357b
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-mobile@2x.jpg differ
diff --git a/source/img/reviews/photo-bazhenova-mobile@2x.webp b/source/img/reviews/photo-bazhenova-mobile@2x.webp
new file mode 100644
index 000000000..97d6af3dd
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-mobile@2x.webp differ
diff --git a/source/img/reviews/photo-bazhenova-tablet.jpg b/source/img/reviews/photo-bazhenova-tablet.jpg
new file mode 100644
index 000000000..23dd49d02
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-tablet.jpg differ
diff --git a/source/img/reviews/photo-bazhenova-tablet.webp b/source/img/reviews/photo-bazhenova-tablet.webp
new file mode 100644
index 000000000..be9535ef8
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-tablet.webp differ
diff --git a/source/img/reviews/photo-bazhenova-tablet@2x.jpg b/source/img/reviews/photo-bazhenova-tablet@2x.jpg
new file mode 100644
index 000000000..4526f0869
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-tablet@2x.jpg differ
diff --git a/source/img/reviews/photo-bazhenova-tablet@2x.webp b/source/img/reviews/photo-bazhenova-tablet@2x.webp
new file mode 100644
index 000000000..e92717b77
Binary files /dev/null and b/source/img/reviews/photo-bazhenova-tablet@2x.webp differ
diff --git a/source/img/reviews/photo-frolov-desktop.jpg b/source/img/reviews/photo-frolov-desktop.jpg
new file mode 100644
index 000000000..c10e6b59a
Binary files /dev/null and b/source/img/reviews/photo-frolov-desktop.jpg differ
diff --git a/source/img/reviews/photo-frolov-desktop.webp b/source/img/reviews/photo-frolov-desktop.webp
new file mode 100644
index 000000000..56cd64d3c
Binary files /dev/null and b/source/img/reviews/photo-frolov-desktop.webp differ
diff --git a/source/img/reviews/photo-frolov-desktop@2x.jpg b/source/img/reviews/photo-frolov-desktop@2x.jpg
new file mode 100644
index 000000000..e51c979b4
Binary files /dev/null and b/source/img/reviews/photo-frolov-desktop@2x.jpg differ
diff --git a/source/img/reviews/photo-frolov-desktop@2x.webp b/source/img/reviews/photo-frolov-desktop@2x.webp
new file mode 100644
index 000000000..35821c1bc
Binary files /dev/null and b/source/img/reviews/photo-frolov-desktop@2x.webp differ
diff --git a/source/img/reviews/photo-frolov-mobile.jpg b/source/img/reviews/photo-frolov-mobile.jpg
new file mode 100644
index 000000000..aee699e09
Binary files /dev/null and b/source/img/reviews/photo-frolov-mobile.jpg differ
diff --git a/source/img/reviews/photo-frolov-mobile.webp b/source/img/reviews/photo-frolov-mobile.webp
new file mode 100644
index 000000000..d5dbe4b43
Binary files /dev/null and b/source/img/reviews/photo-frolov-mobile.webp differ
diff --git a/source/img/reviews/photo-frolov-mobile@2x.jpg b/source/img/reviews/photo-frolov-mobile@2x.jpg
new file mode 100644
index 000000000..c42bbdb8c
Binary files /dev/null and b/source/img/reviews/photo-frolov-mobile@2x.jpg differ
diff --git a/source/img/reviews/photo-frolov-mobile@2x.webp b/source/img/reviews/photo-frolov-mobile@2x.webp
new file mode 100644
index 000000000..de67c0af8
Binary files /dev/null and b/source/img/reviews/photo-frolov-mobile@2x.webp differ
diff --git a/source/img/reviews/photo-frolov-tablet.jpg b/source/img/reviews/photo-frolov-tablet.jpg
new file mode 100644
index 000000000..0d19d4d4b
Binary files /dev/null and b/source/img/reviews/photo-frolov-tablet.jpg differ
diff --git a/source/img/reviews/photo-frolov-tablet.webp b/source/img/reviews/photo-frolov-tablet.webp
new file mode 100644
index 000000000..f7eeee0be
Binary files /dev/null and b/source/img/reviews/photo-frolov-tablet.webp differ
diff --git a/source/img/reviews/photo-frolov-tablet@2x.jpg b/source/img/reviews/photo-frolov-tablet@2x.jpg
new file mode 100644
index 000000000..4d2a28b03
Binary files /dev/null and b/source/img/reviews/photo-frolov-tablet@2x.jpg differ
diff --git a/source/img/reviews/photo-frolov-tablet@2x.webp b/source/img/reviews/photo-frolov-tablet@2x.webp
new file mode 100644
index 000000000..605e9abd2
Binary files /dev/null and b/source/img/reviews/photo-frolov-tablet@2x.webp differ
diff --git a/source/img/reviews/photo-pirogova-desktop.jpg b/source/img/reviews/photo-pirogova-desktop.jpg
new file mode 100644
index 000000000..de4db89e5
Binary files /dev/null and b/source/img/reviews/photo-pirogova-desktop.jpg differ
diff --git a/source/img/reviews/photo-pirogova-desktop.webp b/source/img/reviews/photo-pirogova-desktop.webp
new file mode 100644
index 000000000..fd3d0b651
Binary files /dev/null and b/source/img/reviews/photo-pirogova-desktop.webp differ
diff --git a/source/img/reviews/photo-pirogova-desktop@2x.jpg b/source/img/reviews/photo-pirogova-desktop@2x.jpg
new file mode 100644
index 000000000..103b72882
Binary files /dev/null and b/source/img/reviews/photo-pirogova-desktop@2x.jpg differ
diff --git a/source/img/reviews/photo-pirogova-desktop@2x.webp b/source/img/reviews/photo-pirogova-desktop@2x.webp
new file mode 100644
index 000000000..77f273603
Binary files /dev/null and b/source/img/reviews/photo-pirogova-desktop@2x.webp differ
diff --git a/source/img/reviews/photo-pirogova-mobile.jpg b/source/img/reviews/photo-pirogova-mobile.jpg
new file mode 100644
index 000000000..d735862a1
Binary files /dev/null and b/source/img/reviews/photo-pirogova-mobile.jpg differ
diff --git a/source/img/reviews/photo-pirogova-mobile.webp b/source/img/reviews/photo-pirogova-mobile.webp
new file mode 100644
index 000000000..763e4cc21
Binary files /dev/null and b/source/img/reviews/photo-pirogova-mobile.webp differ
diff --git a/source/img/reviews/photo-pirogova-mobile@2x.jpg b/source/img/reviews/photo-pirogova-mobile@2x.jpg
new file mode 100644
index 000000000..85da657c6
Binary files /dev/null and b/source/img/reviews/photo-pirogova-mobile@2x.jpg differ
diff --git a/source/img/reviews/photo-pirogova-mobile@2x.webp b/source/img/reviews/photo-pirogova-mobile@2x.webp
new file mode 100644
index 000000000..bfd7b9894
Binary files /dev/null and b/source/img/reviews/photo-pirogova-mobile@2x.webp differ
diff --git a/source/img/reviews/photo-pirogova-tablet.jpg b/source/img/reviews/photo-pirogova-tablet.jpg
new file mode 100644
index 000000000..fd8876220
Binary files /dev/null and b/source/img/reviews/photo-pirogova-tablet.jpg differ
diff --git a/source/img/reviews/photo-pirogova-tablet.webp b/source/img/reviews/photo-pirogova-tablet.webp
new file mode 100644
index 000000000..18bb6e1e0
Binary files /dev/null and b/source/img/reviews/photo-pirogova-tablet.webp differ
diff --git a/source/img/reviews/photo-pirogova-tablet@2x.jpg b/source/img/reviews/photo-pirogova-tablet@2x.jpg
new file mode 100644
index 000000000..1dc692cdf
Binary files /dev/null and b/source/img/reviews/photo-pirogova-tablet@2x.jpg differ
diff --git a/source/img/reviews/photo-pirogova-tablet@2x.webp b/source/img/reviews/photo-pirogova-tablet@2x.webp
new file mode 100644
index 000000000..0f744ceb8
Binary files /dev/null and b/source/img/reviews/photo-pirogova-tablet@2x.webp differ
diff --git a/source/img/reviews/photo-solovyov-desktop.jpg b/source/img/reviews/photo-solovyov-desktop.jpg
new file mode 100644
index 000000000..2e57bb122
Binary files /dev/null and b/source/img/reviews/photo-solovyov-desktop.jpg differ
diff --git a/source/img/reviews/photo-solovyov-desktop.webp b/source/img/reviews/photo-solovyov-desktop.webp
new file mode 100644
index 000000000..6ce7f9527
Binary files /dev/null and b/source/img/reviews/photo-solovyov-desktop.webp differ
diff --git a/source/img/reviews/photo-solovyov-desktop@2x.jpg b/source/img/reviews/photo-solovyov-desktop@2x.jpg
new file mode 100644
index 000000000..4642ba974
Binary files /dev/null and b/source/img/reviews/photo-solovyov-desktop@2x.jpg differ
diff --git a/source/img/reviews/photo-solovyov-desktop@2x.webp b/source/img/reviews/photo-solovyov-desktop@2x.webp
new file mode 100644
index 000000000..ce453a419
Binary files /dev/null and b/source/img/reviews/photo-solovyov-desktop@2x.webp differ
diff --git a/source/img/reviews/photo-solovyov-mobile.jpg b/source/img/reviews/photo-solovyov-mobile.jpg
new file mode 100644
index 000000000..4ed077a1b
Binary files /dev/null and b/source/img/reviews/photo-solovyov-mobile.jpg differ
diff --git a/source/img/reviews/photo-solovyov-mobile.webp b/source/img/reviews/photo-solovyov-mobile.webp
new file mode 100644
index 000000000..b8d91a354
Binary files /dev/null and b/source/img/reviews/photo-solovyov-mobile.webp differ
diff --git a/source/img/reviews/photo-solovyov-mobile@2x.jpg b/source/img/reviews/photo-solovyov-mobile@2x.jpg
new file mode 100644
index 000000000..72ad7fc3d
Binary files /dev/null and b/source/img/reviews/photo-solovyov-mobile@2x.jpg differ
diff --git a/source/img/reviews/photo-solovyov-mobile@2x.webp b/source/img/reviews/photo-solovyov-mobile@2x.webp
new file mode 100644
index 000000000..99c6a72a3
Binary files /dev/null and b/source/img/reviews/photo-solovyov-mobile@2x.webp differ
diff --git a/source/img/reviews/photo-solovyov-tablet.jpg b/source/img/reviews/photo-solovyov-tablet.jpg
new file mode 100644
index 000000000..eb829ca0d
Binary files /dev/null and b/source/img/reviews/photo-solovyov-tablet.jpg differ
diff --git a/source/img/reviews/photo-solovyov-tablet.webp b/source/img/reviews/photo-solovyov-tablet.webp
new file mode 100644
index 000000000..818c51db6
Binary files /dev/null and b/source/img/reviews/photo-solovyov-tablet.webp differ
diff --git a/source/img/reviews/photo-solovyov-tablet@2x.jpg b/source/img/reviews/photo-solovyov-tablet@2x.jpg
new file mode 100644
index 000000000..502749a2f
Binary files /dev/null and b/source/img/reviews/photo-solovyov-tablet@2x.jpg differ
diff --git a/source/img/reviews/photo-solovyov-tablet@2x.webp b/source/img/reviews/photo-solovyov-tablet@2x.webp
new file mode 100644
index 000000000..ac52cd29a
Binary files /dev/null and b/source/img/reviews/photo-solovyov-tablet@2x.webp differ
diff --git a/source/img/sprite/adv-equipment.svg b/source/img/sprite/adv-equipment.svg
new file mode 100644
index 000000000..d95d503e5
--- /dev/null
+++ b/source/img/sprite/adv-equipment.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/source/img/sprite/adv-knowledge.svg b/source/img/sprite/adv-knowledge.svg
new file mode 100644
index 000000000..43bc1f970
--- /dev/null
+++ b/source/img/sprite/adv-knowledge.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/adv-nature.svg b/source/img/sprite/adv-nature.svg
new file mode 100644
index 000000000..4edbf103f
--- /dev/null
+++ b/source/img/sprite/adv-nature.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/adv-routes.svg b/source/img/sprite/adv-routes.svg
new file mode 100644
index 000000000..b0250efc4
--- /dev/null
+++ b/source/img/sprite/adv-routes.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/adv-safety.svg b/source/img/sprite/adv-safety.svg
new file mode 100644
index 000000000..31b5af4ba
--- /dev/null
+++ b/source/img/sprite/adv-safety.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/arrow-right.svg b/source/img/sprite/arrow-right.svg
new file mode 100644
index 000000000..7c477ae35
--- /dev/null
+++ b/source/img/sprite/arrow-right.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/arrow.svg b/source/img/sprite/arrow.svg
new file mode 100644
index 000000000..677ce94c8
--- /dev/null
+++ b/source/img/sprite/arrow.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/days-icon.svg b/source/img/sprite/days-icon.svg
new file mode 100644
index 000000000..81bd15e18
--- /dev/null
+++ b/source/img/sprite/days-icon.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/level-icon.svg b/source/img/sprite/level-icon.svg
new file mode 100644
index 000000000..87945f423
--- /dev/null
+++ b/source/img/sprite/level-icon.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
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/moon-icon.svg b/source/img/sprite/moon-icon.svg
new file mode 100644
index 000000000..afb4750d7
--- /dev/null
+++ b/source/img/sprite/moon-icon.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/night-icon.svg b/source/img/sprite/night-icon.svg
new file mode 100644
index 000000000..3143de81c
--- /dev/null
+++ b/source/img/sprite/night-icon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/ok.svg b/source/img/sprite/ok.svg
new file mode 100644
index 000000000..4bd579d4c
--- /dev/null
+++ b/source/img/sprite/ok.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/pin.svg b/source/img/sprite/pin.svg
new file mode 100644
index 000000000..97ff19536
--- /dev/null
+++ b/source/img/sprite/pin.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/reddit.svg b/source/img/sprite/reddit.svg
new file mode 100644
index 000000000..d456cf2a2
--- /dev/null
+++ b/source/img/sprite/reddit.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/star-white.svg b/source/img/sprite/star-white.svg
new file mode 100644
index 000000000..bc5791934
--- /dev/null
+++ b/source/img/sprite/star-white.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/star.svg b/source/img/sprite/star.svg
new file mode 100644
index 000000000..c9a099cee
--- /dev/null
+++ b/source/img/sprite/star.svg
@@ -0,0 +1,3 @@
+
+
+
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/sprite/vk-instructor.svg b/source/img/sprite/vk-instructor.svg
new file mode 100644
index 000000000..2a662abda
--- /dev/null
+++ b/source/img/sprite/vk-instructor.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/vkontakte.svg b/source/img/sprite/vkontakte.svg
new file mode 100644
index 000000000..39b786668
--- /dev/null
+++ b/source/img/sprite/vkontakte.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/tours/tours-adygea-desktop.jpg b/source/img/tours/tours-adygea-desktop.jpg
new file mode 100644
index 000000000..c9b20a06d
Binary files /dev/null and b/source/img/tours/tours-adygea-desktop.jpg differ
diff --git a/source/img/tours/tours-adygea-desktop.webp b/source/img/tours/tours-adygea-desktop.webp
new file mode 100644
index 000000000..1f3f6f167
Binary files /dev/null and b/source/img/tours/tours-adygea-desktop.webp differ
diff --git a/source/img/tours/tours-adygea-desktop@2x.jpg b/source/img/tours/tours-adygea-desktop@2x.jpg
new file mode 100644
index 000000000..a8c6df520
Binary files /dev/null and b/source/img/tours/tours-adygea-desktop@2x.jpg differ
diff --git a/source/img/tours/tours-adygea-desktop@2x.webp b/source/img/tours/tours-adygea-desktop@2x.webp
new file mode 100644
index 000000000..c02a60679
Binary files /dev/null and b/source/img/tours/tours-adygea-desktop@2x.webp differ
diff --git a/source/img/tours/tours-adygea-mobile.jpg b/source/img/tours/tours-adygea-mobile.jpg
new file mode 100644
index 000000000..5980bd5a2
Binary files /dev/null and b/source/img/tours/tours-adygea-mobile.jpg differ
diff --git a/source/img/tours/tours-adygea-mobile.webp b/source/img/tours/tours-adygea-mobile.webp
new file mode 100644
index 000000000..8a919b0ac
Binary files /dev/null and b/source/img/tours/tours-adygea-mobile.webp differ
diff --git a/source/img/tours/tours-adygea-mobile@2x.jpg b/source/img/tours/tours-adygea-mobile@2x.jpg
new file mode 100644
index 000000000..8bf7d9354
Binary files /dev/null and b/source/img/tours/tours-adygea-mobile@2x.jpg differ
diff --git a/source/img/tours/tours-adygea-mobile@2x.webp b/source/img/tours/tours-adygea-mobile@2x.webp
new file mode 100644
index 000000000..4408f2818
Binary files /dev/null and b/source/img/tours/tours-adygea-mobile@2x.webp differ
diff --git a/source/img/tours/tours-adygea-tablet.jpg b/source/img/tours/tours-adygea-tablet.jpg
new file mode 100644
index 000000000..7634247e9
Binary files /dev/null and b/source/img/tours/tours-adygea-tablet.jpg differ
diff --git a/source/img/tours/tours-adygea-tablet.webp b/source/img/tours/tours-adygea-tablet.webp
new file mode 100644
index 000000000..44c1e70aa
Binary files /dev/null and b/source/img/tours/tours-adygea-tablet.webp differ
diff --git a/source/img/tours/tours-adygea-tablet@2x.jpg b/source/img/tours/tours-adygea-tablet@2x.jpg
new file mode 100644
index 000000000..30e2de2ab
Binary files /dev/null and b/source/img/tours/tours-adygea-tablet@2x.jpg differ
diff --git a/source/img/tours/tours-adygea-tablet@2x.webp b/source/img/tours/tours-adygea-tablet@2x.webp
new file mode 100644
index 000000000..820243a04
Binary files /dev/null and b/source/img/tours/tours-adygea-tablet@2x.webp differ
diff --git a/source/img/tours/tours-altai-desktop.jpg b/source/img/tours/tours-altai-desktop.jpg
new file mode 100644
index 000000000..f4a812b05
Binary files /dev/null and b/source/img/tours/tours-altai-desktop.jpg differ
diff --git a/source/img/tours/tours-altai-desktop.webp b/source/img/tours/tours-altai-desktop.webp
new file mode 100644
index 000000000..3f49c05ba
Binary files /dev/null and b/source/img/tours/tours-altai-desktop.webp differ
diff --git a/source/img/tours/tours-altai-desktop@2x.jpg b/source/img/tours/tours-altai-desktop@2x.jpg
new file mode 100644
index 000000000..826707cec
Binary files /dev/null and b/source/img/tours/tours-altai-desktop@2x.jpg differ
diff --git a/source/img/tours/tours-altai-desktop@2x.webp b/source/img/tours/tours-altai-desktop@2x.webp
new file mode 100644
index 000000000..68fca8157
Binary files /dev/null and b/source/img/tours/tours-altai-desktop@2x.webp differ
diff --git a/source/img/tours/tours-altai-mobile.jpg b/source/img/tours/tours-altai-mobile.jpg
new file mode 100644
index 000000000..118c34dfd
Binary files /dev/null and b/source/img/tours/tours-altai-mobile.jpg differ
diff --git a/source/img/tours/tours-altai-mobile.webp b/source/img/tours/tours-altai-mobile.webp
new file mode 100644
index 000000000..7f6a2f011
Binary files /dev/null and b/source/img/tours/tours-altai-mobile.webp differ
diff --git a/source/img/tours/tours-altai-mobile@2x.jpg b/source/img/tours/tours-altai-mobile@2x.jpg
new file mode 100644
index 000000000..35e7d94bb
Binary files /dev/null and b/source/img/tours/tours-altai-mobile@2x.jpg differ
diff --git a/source/img/tours/tours-altai-mobile@2x.webp b/source/img/tours/tours-altai-mobile@2x.webp
new file mode 100644
index 000000000..3b362c8ce
Binary files /dev/null and b/source/img/tours/tours-altai-mobile@2x.webp differ
diff --git a/source/img/tours/tours-altai-tablet.jpg b/source/img/tours/tours-altai-tablet.jpg
new file mode 100644
index 000000000..18ddbbfc8
Binary files /dev/null and b/source/img/tours/tours-altai-tablet.jpg differ
diff --git a/source/img/tours/tours-altai-tablet.webp b/source/img/tours/tours-altai-tablet.webp
new file mode 100644
index 000000000..7651a96fe
Binary files /dev/null and b/source/img/tours/tours-altai-tablet.webp differ
diff --git a/source/img/tours/tours-altai-tablet@2x.jpg b/source/img/tours/tours-altai-tablet@2x.jpg
new file mode 100644
index 000000000..1169b8be4
Binary files /dev/null and b/source/img/tours/tours-altai-tablet@2x.jpg differ
diff --git a/source/img/tours/tours-altai-tablet@2x.webp b/source/img/tours/tours-altai-tablet@2x.webp
new file mode 100644
index 000000000..b1f7a4f59
Binary files /dev/null and b/source/img/tours/tours-altai-tablet@2x.webp differ
diff --git a/source/img/tours/tours-elbrus-desktop.jpg b/source/img/tours/tours-elbrus-desktop.jpg
new file mode 100644
index 000000000..0d813de08
Binary files /dev/null and b/source/img/tours/tours-elbrus-desktop.jpg differ
diff --git a/source/img/tours/tours-elbrus-desktop.webp b/source/img/tours/tours-elbrus-desktop.webp
new file mode 100644
index 000000000..444c70b5b
Binary files /dev/null and b/source/img/tours/tours-elbrus-desktop.webp differ
diff --git a/source/img/tours/tours-elbrus-desktop@2x.jpg b/source/img/tours/tours-elbrus-desktop@2x.jpg
new file mode 100644
index 000000000..3b12421d5
Binary files /dev/null and b/source/img/tours/tours-elbrus-desktop@2x.jpg differ
diff --git a/source/img/tours/tours-elbrus-desktop@2x.webp b/source/img/tours/tours-elbrus-desktop@2x.webp
new file mode 100644
index 000000000..669f56948
Binary files /dev/null and b/source/img/tours/tours-elbrus-desktop@2x.webp differ
diff --git a/source/img/tours/tours-elbrus-mobile.jpg b/source/img/tours/tours-elbrus-mobile.jpg
new file mode 100644
index 000000000..f68ef74d9
Binary files /dev/null and b/source/img/tours/tours-elbrus-mobile.jpg differ
diff --git a/source/img/tours/tours-elbrus-mobile.webp b/source/img/tours/tours-elbrus-mobile.webp
new file mode 100644
index 000000000..32c58e077
Binary files /dev/null and b/source/img/tours/tours-elbrus-mobile.webp differ
diff --git a/source/img/tours/tours-elbrus-mobile@2x.jpg b/source/img/tours/tours-elbrus-mobile@2x.jpg
new file mode 100644
index 000000000..652375e3b
Binary files /dev/null and b/source/img/tours/tours-elbrus-mobile@2x.jpg differ
diff --git a/source/img/tours/tours-elbrus-mobile@2x.webp b/source/img/tours/tours-elbrus-mobile@2x.webp
new file mode 100644
index 000000000..ddea86440
Binary files /dev/null and b/source/img/tours/tours-elbrus-mobile@2x.webp differ
diff --git a/source/img/tours/tours-elbrus-tablet.jpg b/source/img/tours/tours-elbrus-tablet.jpg
new file mode 100644
index 000000000..d77f12260
Binary files /dev/null and b/source/img/tours/tours-elbrus-tablet.jpg differ
diff --git a/source/img/tours/tours-elbrus-tablet.webp b/source/img/tours/tours-elbrus-tablet.webp
new file mode 100644
index 000000000..931b6b095
Binary files /dev/null and b/source/img/tours/tours-elbrus-tablet.webp differ
diff --git a/source/img/tours/tours-elbrus-tablet@2x.jpg b/source/img/tours/tours-elbrus-tablet@2x.jpg
new file mode 100644
index 000000000..4a65cbc33
Binary files /dev/null and b/source/img/tours/tours-elbrus-tablet@2x.jpg differ
diff --git a/source/img/tours/tours-elbrus-tablet@2x.webp b/source/img/tours/tours-elbrus-tablet@2x.webp
new file mode 100644
index 000000000..c86d5f11c
Binary files /dev/null and b/source/img/tours/tours-elbrus-tablet@2x.webp differ
diff --git a/source/img/tours/tours-ural-desktop.jpg b/source/img/tours/tours-ural-desktop.jpg
new file mode 100644
index 000000000..d2f822f2f
Binary files /dev/null and b/source/img/tours/tours-ural-desktop.jpg differ
diff --git a/source/img/tours/tours-ural-desktop.webp b/source/img/tours/tours-ural-desktop.webp
new file mode 100644
index 000000000..33adc3879
Binary files /dev/null and b/source/img/tours/tours-ural-desktop.webp differ
diff --git a/source/img/tours/tours-ural-desktop@2x.jpg b/source/img/tours/tours-ural-desktop@2x.jpg
new file mode 100644
index 000000000..324929ab6
Binary files /dev/null and b/source/img/tours/tours-ural-desktop@2x.jpg differ
diff --git a/source/img/tours/tours-ural-desktop@2x.webp b/source/img/tours/tours-ural-desktop@2x.webp
new file mode 100644
index 000000000..32cc55653
Binary files /dev/null and b/source/img/tours/tours-ural-desktop@2x.webp differ
diff --git a/source/img/tours/tours-ural-mobile.jpg b/source/img/tours/tours-ural-mobile.jpg
new file mode 100644
index 000000000..768ae7ab3
Binary files /dev/null and b/source/img/tours/tours-ural-mobile.jpg differ
diff --git a/source/img/tours/tours-ural-mobile.webp b/source/img/tours/tours-ural-mobile.webp
new file mode 100644
index 000000000..ddfd04c82
Binary files /dev/null and b/source/img/tours/tours-ural-mobile.webp differ
diff --git a/source/img/tours/tours-ural-mobile@2x.jpg b/source/img/tours/tours-ural-mobile@2x.jpg
new file mode 100644
index 000000000..a625f664a
Binary files /dev/null and b/source/img/tours/tours-ural-mobile@2x.jpg differ
diff --git a/source/img/tours/tours-ural-mobile@2x.webp b/source/img/tours/tours-ural-mobile@2x.webp
new file mode 100644
index 000000000..ce6cbc612
Binary files /dev/null and b/source/img/tours/tours-ural-mobile@2x.webp differ
diff --git a/source/img/tours/tours-ural-tablet.jpg b/source/img/tours/tours-ural-tablet.jpg
new file mode 100644
index 000000000..85a3481b4
Binary files /dev/null and b/source/img/tours/tours-ural-tablet.jpg differ
diff --git a/source/img/tours/tours-ural-tablet.webp b/source/img/tours/tours-ural-tablet.webp
new file mode 100644
index 000000000..32bca91e1
Binary files /dev/null and b/source/img/tours/tours-ural-tablet.webp differ
diff --git a/source/img/tours/tours-ural-tablet@2x.jpg b/source/img/tours/tours-ural-tablet@2x.jpg
new file mode 100644
index 000000000..02b797835
Binary files /dev/null and b/source/img/tours/tours-ural-tablet@2x.jpg differ
diff --git a/source/img/tours/tours-ural-tablet@2x.webp b/source/img/tours/tours-ural-tablet@2x.webp
new file mode 100644
index 000000000..dc40eee2d
Binary files /dev/null and b/source/img/tours/tours-ural-tablet@2x.webp differ
diff --git a/source/img/training/afinogenova-desktop.jpg b/source/img/training/afinogenova-desktop.jpg
new file mode 100644
index 000000000..a5fe62d50
Binary files /dev/null and b/source/img/training/afinogenova-desktop.jpg differ
diff --git a/source/img/training/afinogenova-desktop.webp b/source/img/training/afinogenova-desktop.webp
new file mode 100644
index 000000000..825be34a2
Binary files /dev/null and b/source/img/training/afinogenova-desktop.webp differ
diff --git a/source/img/training/afinogenova-desktop@2x.jpg b/source/img/training/afinogenova-desktop@2x.jpg
new file mode 100644
index 000000000..c394b0647
Binary files /dev/null and b/source/img/training/afinogenova-desktop@2x.jpg differ
diff --git a/source/img/training/afinogenova-desktop@2x.webp b/source/img/training/afinogenova-desktop@2x.webp
new file mode 100644
index 000000000..a37faaf9b
Binary files /dev/null and b/source/img/training/afinogenova-desktop@2x.webp differ
diff --git a/source/img/training/afinogenova-mobile.jpg b/source/img/training/afinogenova-mobile.jpg
new file mode 100644
index 000000000..6d02912be
Binary files /dev/null and b/source/img/training/afinogenova-mobile.jpg differ
diff --git a/source/img/training/afinogenova-mobile.webp b/source/img/training/afinogenova-mobile.webp
new file mode 100644
index 000000000..44a3b85fb
Binary files /dev/null and b/source/img/training/afinogenova-mobile.webp differ
diff --git a/source/img/training/afinogenova-mobile@2x.jpg b/source/img/training/afinogenova-mobile@2x.jpg
new file mode 100644
index 000000000..0ee859590
Binary files /dev/null and b/source/img/training/afinogenova-mobile@2x.jpg differ
diff --git a/source/img/training/afinogenova-mobile@2x.webp b/source/img/training/afinogenova-mobile@2x.webp
new file mode 100644
index 000000000..cdcfa2636
Binary files /dev/null and b/source/img/training/afinogenova-mobile@2x.webp differ
diff --git a/source/img/training/afinogenova-tablet.jpg b/source/img/training/afinogenova-tablet.jpg
new file mode 100644
index 000000000..8081b1bab
Binary files /dev/null and b/source/img/training/afinogenova-tablet.jpg differ
diff --git a/source/img/training/afinogenova-tablet.webp b/source/img/training/afinogenova-tablet.webp
new file mode 100644
index 000000000..be0bae712
Binary files /dev/null and b/source/img/training/afinogenova-tablet.webp differ
diff --git a/source/img/training/afinogenova-tablet@2x.jpg b/source/img/training/afinogenova-tablet@2x.jpg
new file mode 100644
index 000000000..83dcbdfbf
Binary files /dev/null and b/source/img/training/afinogenova-tablet@2x.jpg differ
diff --git a/source/img/training/afinogenova-tablet@2x.webp b/source/img/training/afinogenova-tablet@2x.webp
new file mode 100644
index 000000000..4329936a1
Binary files /dev/null and b/source/img/training/afinogenova-tablet@2x.webp differ
diff --git a/source/img/training/kaygorodov-desktop.jpg b/source/img/training/kaygorodov-desktop.jpg
new file mode 100644
index 000000000..af896e3c3
Binary files /dev/null and b/source/img/training/kaygorodov-desktop.jpg differ
diff --git a/source/img/training/kaygorodov-desktop.webp b/source/img/training/kaygorodov-desktop.webp
new file mode 100644
index 000000000..20e7f2eec
Binary files /dev/null and b/source/img/training/kaygorodov-desktop.webp differ
diff --git a/source/img/training/kaygorodov-desktop@2x.jpg b/source/img/training/kaygorodov-desktop@2x.jpg
new file mode 100644
index 000000000..14fa7af63
Binary files /dev/null and b/source/img/training/kaygorodov-desktop@2x.jpg differ
diff --git a/source/img/training/kaygorodov-desktop@2x.webp b/source/img/training/kaygorodov-desktop@2x.webp
new file mode 100644
index 000000000..14fd84323
Binary files /dev/null and b/source/img/training/kaygorodov-desktop@2x.webp differ
diff --git a/source/img/training/kaygorodov-mobile.jpg b/source/img/training/kaygorodov-mobile.jpg
new file mode 100644
index 000000000..41c76b3c4
Binary files /dev/null and b/source/img/training/kaygorodov-mobile.jpg differ
diff --git a/source/img/training/kaygorodov-mobile.webp b/source/img/training/kaygorodov-mobile.webp
new file mode 100644
index 000000000..84262853d
Binary files /dev/null and b/source/img/training/kaygorodov-mobile.webp differ
diff --git a/source/img/training/kaygorodov-mobile@2x.jpg b/source/img/training/kaygorodov-mobile@2x.jpg
new file mode 100644
index 000000000..a96bf26a1
Binary files /dev/null and b/source/img/training/kaygorodov-mobile@2x.jpg differ
diff --git a/source/img/training/kaygorodov-mobile@2x.webp b/source/img/training/kaygorodov-mobile@2x.webp
new file mode 100644
index 000000000..98b14475d
Binary files /dev/null and b/source/img/training/kaygorodov-mobile@2x.webp differ
diff --git a/source/img/training/kaygorodov-tablet.jpg b/source/img/training/kaygorodov-tablet.jpg
new file mode 100644
index 000000000..ab82c4503
Binary files /dev/null and b/source/img/training/kaygorodov-tablet.jpg differ
diff --git a/source/img/training/kaygorodov-tablet.webp b/source/img/training/kaygorodov-tablet.webp
new file mode 100644
index 000000000..d8b852118
Binary files /dev/null and b/source/img/training/kaygorodov-tablet.webp differ
diff --git a/source/img/training/kaygorodov-tablet@2x.jpg b/source/img/training/kaygorodov-tablet@2x.jpg
new file mode 100644
index 000000000..a3f623f08
Binary files /dev/null and b/source/img/training/kaygorodov-tablet@2x.jpg differ
diff --git a/source/img/training/kaygorodov-tablet@2x.webp b/source/img/training/kaygorodov-tablet@2x.webp
new file mode 100644
index 000000000..a1e89e56d
Binary files /dev/null and b/source/img/training/kaygorodov-tablet@2x.webp differ
diff --git a/source/img/training/kolesnichenko-desktop.jpg b/source/img/training/kolesnichenko-desktop.jpg
new file mode 100644
index 000000000..f0ba4a6c2
Binary files /dev/null and b/source/img/training/kolesnichenko-desktop.jpg differ
diff --git a/source/img/training/kolesnichenko-desktop.webp b/source/img/training/kolesnichenko-desktop.webp
new file mode 100644
index 000000000..486e6bde2
Binary files /dev/null and b/source/img/training/kolesnichenko-desktop.webp differ
diff --git a/source/img/training/kolesnichenko-desktop@2x.jpg b/source/img/training/kolesnichenko-desktop@2x.jpg
new file mode 100644
index 000000000..6541969de
Binary files /dev/null and b/source/img/training/kolesnichenko-desktop@2x.jpg differ
diff --git a/source/img/training/kolesnichenko-desktop@2x.webp b/source/img/training/kolesnichenko-desktop@2x.webp
new file mode 100644
index 000000000..bc5a4eb95
Binary files /dev/null and b/source/img/training/kolesnichenko-desktop@2x.webp differ
diff --git a/source/img/training/kolesnichenko-mobile.jpg b/source/img/training/kolesnichenko-mobile.jpg
new file mode 100644
index 000000000..078aa0e61
Binary files /dev/null and b/source/img/training/kolesnichenko-mobile.jpg differ
diff --git a/source/img/training/kolesnichenko-mobile.webp b/source/img/training/kolesnichenko-mobile.webp
new file mode 100644
index 000000000..87e765a50
Binary files /dev/null and b/source/img/training/kolesnichenko-mobile.webp differ
diff --git a/source/img/training/kolesnichenko-mobile@2x.jpg b/source/img/training/kolesnichenko-mobile@2x.jpg
new file mode 100644
index 000000000..8ee55a059
Binary files /dev/null and b/source/img/training/kolesnichenko-mobile@2x.jpg differ
diff --git a/source/img/training/kolesnichenko-mobile@2x.webp b/source/img/training/kolesnichenko-mobile@2x.webp
new file mode 100644
index 000000000..5f225faa2
Binary files /dev/null and b/source/img/training/kolesnichenko-mobile@2x.webp differ
diff --git a/source/img/training/kolesnichenko-tablet.jpg b/source/img/training/kolesnichenko-tablet.jpg
new file mode 100644
index 000000000..50e6c874e
Binary files /dev/null and b/source/img/training/kolesnichenko-tablet.jpg differ
diff --git a/source/img/training/kolesnichenko-tablet.webp b/source/img/training/kolesnichenko-tablet.webp
new file mode 100644
index 000000000..bf87a7d99
Binary files /dev/null and b/source/img/training/kolesnichenko-tablet.webp differ
diff --git a/source/img/training/kolesnichenko-tablet@2x.jpg b/source/img/training/kolesnichenko-tablet@2x.jpg
new file mode 100644
index 000000000..54a83306a
Binary files /dev/null and b/source/img/training/kolesnichenko-tablet@2x.jpg differ
diff --git a/source/img/training/kolesnichenko-tablet@2x.webp b/source/img/training/kolesnichenko-tablet@2x.webp
new file mode 100644
index 000000000..b233b170d
Binary files /dev/null and b/source/img/training/kolesnichenko-tablet@2x.webp differ
diff --git a/source/img/training/process/boots-icon.svg b/source/img/training/process/boots-icon.svg
new file mode 100644
index 000000000..5507b93f7
--- /dev/null
+++ b/source/img/training/process/boots-icon.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/source/img/training/process/map-icon.svg b/source/img/training/process/map-icon.svg
new file mode 100644
index 000000000..34c54dbb6
--- /dev/null
+++ b/source/img/training/process/map-icon.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/training/process/mountain-icon.svg b/source/img/training/process/mountain-icon.svg
new file mode 100644
index 000000000..fafcb9689
--- /dev/null
+++ b/source/img/training/process/mountain-icon.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/training/process/tree-icon.svg b/source/img/training/process/tree-icon.svg
new file mode 100644
index 000000000..b497565f6
--- /dev/null
+++ b/source/img/training/process/tree-icon.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/training/prokofiev-desktop.jpg b/source/img/training/prokofiev-desktop.jpg
new file mode 100644
index 000000000..49251111d
Binary files /dev/null and b/source/img/training/prokofiev-desktop.jpg differ
diff --git a/source/img/training/prokofiev-desktop.webp b/source/img/training/prokofiev-desktop.webp
new file mode 100644
index 000000000..871b3230a
Binary files /dev/null and b/source/img/training/prokofiev-desktop.webp differ
diff --git a/source/img/training/prokofiev-desktop@2x.jpg b/source/img/training/prokofiev-desktop@2x.jpg
new file mode 100644
index 000000000..91652e66a
Binary files /dev/null and b/source/img/training/prokofiev-desktop@2x.jpg differ
diff --git a/source/img/training/prokofiev-desktop@2x.webp b/source/img/training/prokofiev-desktop@2x.webp
new file mode 100644
index 000000000..81300adfb
Binary files /dev/null and b/source/img/training/prokofiev-desktop@2x.webp differ
diff --git a/source/img/training/prokofiev-mobile.jpg b/source/img/training/prokofiev-mobile.jpg
new file mode 100644
index 000000000..45796c4e9
Binary files /dev/null and b/source/img/training/prokofiev-mobile.jpg differ
diff --git a/source/img/training/prokofiev-mobile.webp b/source/img/training/prokofiev-mobile.webp
new file mode 100644
index 000000000..be96d1b43
Binary files /dev/null and b/source/img/training/prokofiev-mobile.webp differ
diff --git a/source/img/training/prokofiev-mobile@2x.jpg b/source/img/training/prokofiev-mobile@2x.jpg
new file mode 100644
index 000000000..e3192cde7
Binary files /dev/null and b/source/img/training/prokofiev-mobile@2x.jpg differ
diff --git a/source/img/training/prokofiev-mobile@2x.webp b/source/img/training/prokofiev-mobile@2x.webp
new file mode 100644
index 000000000..b3abb4639
Binary files /dev/null and b/source/img/training/prokofiev-mobile@2x.webp differ
diff --git a/source/img/training/prokofiev-tablet.jpg b/source/img/training/prokofiev-tablet.jpg
new file mode 100644
index 000000000..ae7a71d4f
Binary files /dev/null and b/source/img/training/prokofiev-tablet.jpg differ
diff --git a/source/img/training/prokofiev-tablet.webp b/source/img/training/prokofiev-tablet.webp
new file mode 100644
index 000000000..782a217c4
Binary files /dev/null and b/source/img/training/prokofiev-tablet.webp differ
diff --git a/source/img/training/prokofiev-tablet@2x.jpg b/source/img/training/prokofiev-tablet@2x.jpg
new file mode 100644
index 000000000..8c413a035
Binary files /dev/null and b/source/img/training/prokofiev-tablet@2x.jpg differ
diff --git a/source/img/training/prokofiev-tablet@2x.webp b/source/img/training/prokofiev-tablet@2x.webp
new file mode 100644
index 000000000..a131ec1be
Binary files /dev/null and b/source/img/training/prokofiev-tablet@2x.webp differ
diff --git a/source/img/training/vasnetsov-desktop.jpg b/source/img/training/vasnetsov-desktop.jpg
new file mode 100644
index 000000000..0db69201d
Binary files /dev/null and b/source/img/training/vasnetsov-desktop.jpg differ
diff --git a/source/img/training/vasnetsov-desktop.webp b/source/img/training/vasnetsov-desktop.webp
new file mode 100644
index 000000000..354a5bcce
Binary files /dev/null and b/source/img/training/vasnetsov-desktop.webp differ
diff --git a/source/img/training/vasnetsov-desktop@2x.jpg b/source/img/training/vasnetsov-desktop@2x.jpg
new file mode 100644
index 000000000..55d151224
Binary files /dev/null and b/source/img/training/vasnetsov-desktop@2x.jpg differ
diff --git a/source/img/training/vasnetsov-desktop@2x.webp b/source/img/training/vasnetsov-desktop@2x.webp
new file mode 100644
index 000000000..5addf01ef
Binary files /dev/null and b/source/img/training/vasnetsov-desktop@2x.webp differ
diff --git a/source/img/training/vasnetsov-mobile.jpg b/source/img/training/vasnetsov-mobile.jpg
new file mode 100644
index 000000000..e2a89c67b
Binary files /dev/null and b/source/img/training/vasnetsov-mobile.jpg differ
diff --git a/source/img/training/vasnetsov-mobile.webp b/source/img/training/vasnetsov-mobile.webp
new file mode 100644
index 000000000..7055959bd
Binary files /dev/null and b/source/img/training/vasnetsov-mobile.webp differ
diff --git a/source/img/training/vasnetsov-mobile@2x.jpg b/source/img/training/vasnetsov-mobile@2x.jpg
new file mode 100644
index 000000000..717201429
Binary files /dev/null and b/source/img/training/vasnetsov-mobile@2x.jpg differ
diff --git a/source/img/training/vasnetsov-mobile@2x.webp b/source/img/training/vasnetsov-mobile@2x.webp
new file mode 100644
index 000000000..0fc21e44e
Binary files /dev/null and b/source/img/training/vasnetsov-mobile@2x.webp differ
diff --git a/source/img/training/vasnetsov-tablet.jpg b/source/img/training/vasnetsov-tablet.jpg
new file mode 100644
index 000000000..c50352524
Binary files /dev/null and b/source/img/training/vasnetsov-tablet.jpg differ
diff --git a/source/img/training/vasnetsov-tablet.webp b/source/img/training/vasnetsov-tablet.webp
new file mode 100644
index 000000000..800e81ace
Binary files /dev/null and b/source/img/training/vasnetsov-tablet.webp differ
diff --git a/source/img/training/vasnetsov-tablet@2x.jpg b/source/img/training/vasnetsov-tablet@2x.jpg
new file mode 100644
index 000000000..599b285eb
Binary files /dev/null and b/source/img/training/vasnetsov-tablet@2x.jpg differ
diff --git a/source/img/training/vasnetsov-tablet@2x.webp b/source/img/training/vasnetsov-tablet@2x.webp
new file mode 100644
index 000000000..18491e76a
Binary files /dev/null and b/source/img/training/vasnetsov-tablet@2x.webp differ
diff --git a/source/index.html b/source/index.html
index 0ce0e1c9c..10306f8b2 100644
--- a/source/index.html
+++ b/source/index.html
@@ -1,31 +1,1291 @@
-
-
-
- Lifetour
-
-
+
+
+
+ Lifetour
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- header
- hero
- tours
- training
- about
- reviews
- adv
- gallery
- form
- footer
-
-
+
+
+
+
+
+ Сайт Lifetour - организации походов в горы.
+
+
+
+
+
+
+
Захватывающие вершины Кавказа
+
В сопровождении опытных гидов вы пройдёте через потрясающие ландшафты и совершите восход на вершину
+ горы Чегет.
+
Смотреть тур
+
+
+ 6 дней/5 ночей
+
+
+
+
+
+ Высокая сложность
+
+
+
+
+
+
+
+
+
+
Невероятная природа Камчатки
+
Незабываемое приключение, во время которого вы отправитесь в путешествие по одному из самых
+ нетронутых уголков дикой природы в мире.
+
Смотреть тур
+
+
+ 9 дней/10 ночей
+
+
+
+
+
+ Средняя сложность
+
+
+
+
+
+
+
+
+
+
Магические пейзажи Алтайского Края
+
Алтайский трекинг-тур — это захватывающее приключение с посещением магических и захватывающих
+ дух ландшафтов Алтайских гор.
+
Смотреть тур
+
+
+ 8 дней/7 ночей
+
+
+
+
+
+ Лёгкая сложность
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Ближайшие туры
+ Ближайшие туры
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Кавказ
+
+
+
+
+
+
+ 4 дня
+
+
+
+
+
+ 3 ночи
+
+
+
+
+
+
+
Путешествие вокруг Эльбруса
+
+
+
Сложность:
+
+ Сложность тура 4 звезды из пяти.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Даты набора:
+
12.06–19.06
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Алтай
+
+
+
+
+
+
+ 14 дней
+
+
+
+
+
+ 13 ночей
+
+
+
+
+
+
+
Путь к подножию Белухи
+
+
+
Сложность:
+
+ Сложность тура 3 звезды из пяти.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Даты набора:
+
14.06–23.06
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Адыгея
+
+
+
+
+
+
+ 7 дней
+
+
+
+
+
+ 6 ночей
+
+
+
+
+
+
+
Через Фишт к Чёрному морю и обратно
+
+
+
Сложность:
+
+ Сложность тура 4 звезды из пяти.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Даты набора:
+
15.07–19.07
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Урал
+
+
+
+
+
+
+ 9 дней
+
+
+
+
+
+ 10 ночей
+
+
+
+
+
+
+
Восхождение Манарага
+
+
+
Сложность:
+
+ Сложность тура 5 звезд из пяти.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Даты набора:
+
12.07–19.07
+
+
+
+
+
+
+
+
+
+ Предыдущий слайд.
+
+
+
+
+
+ Следующий слайд.
+
+
+
+
+
+
+
Показать все туры
+
+
+
+
+
+
+
+
+
+
Обучение
+ Обучение
+
+
Обучение проводится квалифицированными специалистами, за плечами которых десятки пройденных
+ маршрутов Кавказа, Крыма, Гималаев, Эльбруса, Алтая, Карелии, Адыгеи и других.
+
Наши инструкторы
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Строгий и внимательный инструктор, весёлый и общительный человек. Любит природу.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Видеть мир вокруг, познавать его опасности, находить друг друга, становиться ближе,
+ чувствовать — в этом назначение жизни.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Участники говорят, что Надежда ответственная, приятная в общении, и в поездках с ней чувствуешь
+ себя спокойно и уверенно.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Опыт походов: Ходит в походы с 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..d858998f9 100644
--- a/source/js/main.js
+++ b/source/js/main.js
@@ -1,4 +1,18 @@
-// https://swiperjs.com/get-started#installation
-// import Swiper from "swiper";
-// import {Navigation, Pagination} from "swiper/modules";
-// import 'swiper/css';
+import { toggleBurgerMenu, scrollToPageBlock } from './modules/burger-menu.js';
+import { initHeroSlider } from './modules/hero-slider.js';
+import { initToursSlider } from './modules/tours-slider.js';
+import { initTrainingSlider } from './modules/training-slider.js';
+import { initReviewsSlider } from './modules/reviews-slider.js';
+import { initAdvSlider } from './modules/adv-slider.js';
+import { initGallerySlider } from './modules/gallery-slider.js';
+import { validatesForm } from './modules/validation-form.js';
+
+toggleBurgerMenu();
+scrollToPageBlock();
+initHeroSlider();
+initToursSlider();
+initTrainingSlider();
+initReviewsSlider();
+initAdvSlider();
+initGallerySlider();
+validatesForm();
diff --git a/source/js/modules/adv-slider.js b/source/js/modules/adv-slider.js
new file mode 100644
index 000000000..50b9c1def
--- /dev/null
+++ b/source/js/modules/adv-slider.js
@@ -0,0 +1,36 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+import 'swiper/css';
+import 'swiper/css/navigation';
+
+const initAdvSlider = () => {
+ new Swiper('.advantages__container .swiper', {
+ enabled: false,
+
+ modules: [Navigation],
+
+ navigation: {
+ nextEl: '.advantages__controls-button--next',
+ prevEl: '.advantages__controls-button--prev',
+ },
+
+ breakpoints: {
+ 1440: {
+ enabled: true,
+
+ loop: true,
+ allowTouchMove: false,
+
+ slidesPerGroup: 2,
+ initialSlide: 2,
+
+ slidesPerView: 'auto',
+ centeredSlides: true,
+
+ spaceBetween: 30,
+ },
+ },
+ });
+};
+
+export { initAdvSlider };
diff --git a/source/js/modules/burger-menu.js b/source/js/modules/burger-menu.js
new file mode 100644
index 000000000..6c011473a
--- /dev/null
+++ b/source/js/modules/burger-menu.js
@@ -0,0 +1,50 @@
+const burgerButton = document.querySelector('.header__toggle');
+const mainHeader = document.querySelector('.header');
+const body = document.querySelector('.page-body');
+
+const toggleBurgerMenu = () => {
+
+ if (burgerButton) {
+ burgerButton.addEventListener('click', () => {
+ body.classList.toggle('lock');
+ burgerButton.classList.toggle('is-open');
+ mainHeader.classList.toggle('is-open');
+ });
+ }
+};
+
+// Прокрутка при клике
+
+const navLinks = document.querySelectorAll('.nav__link[data-scroll]');
+
+const onNavLinkClick = (e) => {
+ const navLink = e.target;
+
+ if (navLink.dataset.scroll && document.querySelector(navLink.dataset.scroll)) {
+ const scrollBlock = document.querySelector(navLink.dataset.scroll);
+ const scrollBlockValue = scrollBlock.getBoundingClientRect().top + pageYOffset - document.querySelector('header').offsetHeight;
+
+ if (burgerButton.classList.contains('is-open')) {
+ body.classList.remove('lock');
+ burgerButton.classList.remove('is-open');
+ mainHeader.classList.remove('is-open');
+ }
+
+ window.scrollTo({
+ top: scrollBlockValue,
+ behavior: 'smooth'
+ });
+
+ e.preventDefault();
+ }
+};
+
+const scrollToPageBlock = () => {
+ if (navLinks.length > 0) {
+ navLinks.forEach((navLink) => {
+ navLink.addEventListener('click', onNavLinkClick);
+ });
+ }
+};
+
+export { toggleBurgerMenu, scrollToPageBlock };
diff --git a/source/js/modules/gallery-slider.js b/source/js/modules/gallery-slider.js
new file mode 100644
index 000000000..4a0d30b62
--- /dev/null
+++ b/source/js/modules/gallery-slider.js
@@ -0,0 +1,37 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+import 'swiper/css';
+import 'swiper/css/navigation';
+
+const initGallerySlider = () => {
+ new Swiper('.gallery__container .swiper', {
+ loop: true,
+ freeMode: true,
+
+ modules: [Navigation],
+
+ navigation: {
+ nextEl: '.gallery__controls-button--next',
+ prevEl: '.gallery__controls-button--prev',
+ },
+
+ breakpoints: {
+ 320: {
+ slidesPerView: 2,
+ spaceBetween: 5,
+ },
+
+ 768: {
+ slidesPerView: 3,
+ spaceBetween: 5,
+ allowTouchMove: false,
+ },
+ 1440: {
+ slidesPerView: 5,
+ enabled: false
+ },
+ },
+ });
+};
+
+export { initGallerySlider };
diff --git a/source/js/modules/hero-slider.js b/source/js/modules/hero-slider.js
new file mode 100644
index 000000000..391b5fc90
--- /dev/null
+++ b/source/js/modules/hero-slider.js
@@ -0,0 +1,27 @@
+import Swiper from 'swiper';
+import { Pagination } from 'swiper/modules';
+import 'swiper/css';
+import 'swiper/css/pagination';
+
+const initHeroSlider = () => {
+ new Swiper('.hero__container .swiper', {
+ loop: true,
+ slidesPerView: 1,
+ allowTouchMove: true,
+
+ modules: [Pagination],
+
+ pagination: {
+ el: '.swiper-pagination',
+ clickable: true,
+ },
+
+ breakpoints: {
+ 1440: {
+ allowTouchMove: false,
+ },
+ },
+ });
+};
+
+export { initHeroSlider };
diff --git a/source/js/modules/reviews-slider.js b/source/js/modules/reviews-slider.js
new file mode 100644
index 000000000..61f6b025b
--- /dev/null
+++ b/source/js/modules/reviews-slider.js
@@ -0,0 +1,36 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+import 'swiper/css';
+import 'swiper/css/navigation';
+
+const initReviewsSlider = () => {
+ new Swiper('.reviews__container .swiper', {
+ loop: false,
+ freeMode: true,
+ slidesPerView: 'auto',
+
+ modules: [Navigation],
+
+ navigation: {
+ nextEl: '.reviews__controls-button--next',
+ prevEl: '.reviews__controls-button--prev',
+ },
+
+ breakpoints: {
+ 320: {
+ spaceBetween: 15,
+ },
+
+ 768: {
+ spaceBetween: 30,
+ allowTouchMove: false,
+ },
+ 1440: {
+ spaceBetween: 120,
+ allowTouchMove: false,
+ },
+ },
+ });
+};
+
+export { initReviewsSlider };
diff --git a/source/js/modules/tours-slider.js b/source/js/modules/tours-slider.js
new file mode 100644
index 000000000..458fb9725
--- /dev/null
+++ b/source/js/modules/tours-slider.js
@@ -0,0 +1,35 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+import 'swiper/css';
+import 'swiper/css/navigation';
+
+const initToursSlider = () => {
+ new Swiper('.tours__container .swiper', {
+ loop: false,
+ freeMode: true,
+ slidesPerView: 1,
+ spaceBetween: 15,
+
+ modules: [Navigation],
+
+ navigation: {
+ nextEl: '.tours__controls-button--next',
+ prevEl: '.tours__controls-button--prev',
+ },
+
+ breakpoints: {
+ 768: {
+ slidesPerView: 2,
+ spaceBetween: 18,
+ allowTouchMove: false,
+ },
+ 1440: {
+ slidesPerView: 3,
+ spaceBetween: 30,
+ allowTouchMove: false,
+ },
+ },
+ });
+};
+
+export { initToursSlider };
diff --git a/source/js/modules/training-slider.js b/source/js/modules/training-slider.js
new file mode 100644
index 000000000..84b4a9b8d
--- /dev/null
+++ b/source/js/modules/training-slider.js
@@ -0,0 +1,39 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+import 'swiper/css';
+import 'swiper/css/navigation';
+
+const initTrainingSlider = () => {
+ new Swiper('.training__container .swiper', {
+ loop: false,
+ freeMode: true,
+
+ modules: [Navigation],
+
+ navigation: {
+ nextEl: '.training__controls-button--next',
+ prevEl: '.training__controls-button--prev',
+ },
+
+ breakpoints: {
+ 320: {
+ slidesPerView: 1,
+ spaceBetween: 15,
+ initialSlide: 2,
+ },
+
+ 768: {
+ slidesPerView: 3,
+ spaceBetween: 20,
+ allowTouchMove: false,
+ },
+ 1440: {
+ slidesPerView: 4,
+ spaceBetween: 20,
+ allowTouchMove: false,
+ },
+ },
+ });
+};
+
+export { initTrainingSlider };
diff --git a/source/js/modules/validation-form.js b/source/js/modules/validation-form.js
new file mode 100644
index 000000000..d33aadaa5
--- /dev/null
+++ b/source/js/modules/validation-form.js
@@ -0,0 +1,56 @@
+const form = document.querySelector('.form__form');
+const phoneInput = form.querySelector('[name="phone"]');
+const emailInput = form.querySelector('[name="email"]');
+
+const isValidPhoneInput = (phone) => {
+ const pattern = /^[\d\-()+]*$/;
+ return pattern.test(phone);
+};
+
+const isValidEmailInput = (email) => {
+ const pattern = /^[a-zA-Z0-9_.+-ёЁа-яА-Я]+@[a-zA-Z0-9-+-ёЁа-яА-Я]+\.[a-zA-Z0-9-.+-ёЁа-яА-Я]+$/;
+ return pattern.test(email);
+};
+
+document.addEventListener('input', () => {
+ const phone = phoneInput?.value;
+ const email = emailInput?.value;
+ if (phone === '' || isValidPhoneInput(phone)) {
+ phoneInput?.classList.remove('form__input--error');
+ phoneInput.setCustomValidity('');
+ }
+
+ if (email === '' || isValidEmailInput(email)) {
+ emailInput?.classList.remove('form__input--error');
+ emailInput.setCustomValidity('');
+ }
+});
+
+const onSubmitForm = (evt) => {
+ evt.preventDefault();
+
+ const phone = phoneInput?.value;
+ const email = emailInput?.value;
+
+ if (!isValidPhoneInput(phone)) {
+ phoneInput.setCustomValidity('Поле не должно содержать буквы.');
+ phoneInput?.classList.add('form__input--error');
+ phoneInput.reportValidity();
+ }
+
+ if (!isValidEmailInput(email)) {
+ emailInput.setCustomValidity('Пожалуйста, введите корректный email: текст123@текст123.домен');
+ emailInput?.classList.add('form__input--error');
+ emailInput.reportValidity();
+ }
+
+ if (isValidPhoneInput(phone) && isValidEmailInput(email)) {
+ form.submit();
+ }
+};
+
+const validatesForm = () => {
+ form?.addEventListener('submit', onSubmitForm);
+};
+
+export { validatesForm };
diff --git a/source/sass/blocks/about.scss b/source/sass/blocks/about.scss
new file mode 100644
index 000000000..4c6a38951
--- /dev/null
+++ b/source/sass/blocks/about.scss
@@ -0,0 +1,180 @@
+.about__container {
+ position: relative;
+
+ padding: 421px 15px 20px;
+
+ div {
+ @media (min-width: $vp-1440) {
+ max-width: 585px;
+ }
+ }
+
+ h3 {
+ margin: 0 0 13px;
+
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 16px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 11px;
+
+ font-size: 18px;
+ line-height: 18px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 17px;
+
+ font-size: 21px;
+ line-height: 21px;
+ }
+ }
+
+ p {
+ margin: 0;
+
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 20px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ font-size: 16px;
+ line-height: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 14px;
+ line-height: 22px;
+ }
+ }
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: 20px;
+ left: 0;
+
+ width: 320px;
+ height: 400px;
+
+ background-image: url("../../img/about/photo-mobile.jpg");
+ background-repeat: no-repeat;
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/about/photo-mobile@2x.jpg");
+ background-size: 320px 400px;
+ }
+
+ @media (min-width: $vp-768) {
+ top: 176px;
+ z-index: -1;
+
+ width: 542px;
+ height: 350px;
+
+ background-image: url("../../img/about/photo-tablet.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/about/photo-tablet@2x.jpg");
+ background-size: 542px 350px;
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 102px;
+
+ width: 660px;
+ height: 498px;
+
+ background-image: url("../../img/about/photo-desktop.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/about/photo-desktop@2x.jpg");
+ background-size: 660px 498px;
+ }
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ padding: 42px 48px 40px 450px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 102px 120px 178px 660px;
+ }
+}
+
+.about__title-wrapper {
+ margin-bottom: 25px;
+
+ h2 {
+ margin: 0;
+
+ font-weight: 800;
+ font-size: 22px;
+ line-height: 22px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 35px;
+ line-height: 35px;
+ }
+ }
+
+ span {
+ position: absolute;
+ top: 2px;
+ left: 0;
+
+ display: block;
+ margin: 0;
+
+ font-weight: 800;
+ font-size: 26px;
+ line-height: 26px;
+ color: rgba($color-elephant, 3%);
+
+ @media (min-width: $vp-768) {
+ top: 5px;
+ left: 0;
+
+ font-size: 40px;
+ line-height: 40px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 6px;
+ right: 618px;
+
+ font-size: 55px;
+ line-height: 55px;
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 38px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 58px;
+ }
+}
+
+.about__content-wrapper {
+ display: flex;
+ flex-direction: column;
+
+ gap: 27px;
+
+ @media (min-width: $vp-768) {
+ gap: 29px;
+ }
+}
diff --git a/source/sass/blocks/advantages.scss b/source/sass/blocks/advantages.scss
new file mode 100644
index 000000000..2ffbd5d5a
--- /dev/null
+++ b/source/sass/blocks/advantages.scss
@@ -0,0 +1,248 @@
+.advantages {
+ position: relative;
+
+ &::before {
+ @media (min-width: $vp-768) {
+ content: "";
+ position: absolute;
+ top: 166px;
+ right: 0;
+ z-index: -1;
+
+ width: 768px;
+ height: 996px;
+
+ background-image: url("../../img/background/clouds-advantages-tablet.png");
+ }
+
+ @media (min-width: $vp-1440) {
+ top: -318px;
+
+ width: 1440px;
+ height: 447px;
+
+ background-image: url("../../img/background/clouds-advantages-desktop.png");
+ }
+ }
+}
+
+.advantages .swiper-wrapper {
+ @media (min-width: $vp-1440) {
+ margin-left: -2px;
+ }
+}
+
+.advantages .swiper-slide {
+ @media (min-width: $vp-1440) {
+ min-width: 380px;
+ }
+}
+
+.advantages__container {
+ padding: 3px 15px 20px;
+
+ text-align: center;
+
+ @media (min-width: $vp-768) {
+ padding: 42px 45px 40px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 79px 0 185px;
+ }
+}
+
+.advantages__container .swiper-wrapper {
+ @media (max-width: ($vp-768 - 1px)) {
+ flex-direction: column;
+
+ gap: 15px;
+ }
+
+ @media (max-width: ($vp-1440 - 1px)) and (min-width: (769px - 1px)) {
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ gap: 30px;
+ }
+}
+
+.advantages__title-wrapper {
+ width: 290px;
+ margin: 0 auto 19px auto;
+
+ @media (min-width: $vp-768) {
+ width: 678px;
+ margin-bottom: 50px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 1200px;
+ }
+}
+
+.advantages__title-decor {
+ top: 0;
+ left: 50%;
+
+ transform: translateX(-50%);
+
+ @media (min-width: $vp-768) {
+ top: 5px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 16px;
+ }
+}
+
+.advantages__swiper-wrapper {
+ position: relative;
+}
+
+.advantages__swiper-slide {
+ padding: 20px 10px;
+
+ background-color: $color-white;
+ outline: 1px solid rgba($color-navy-blue, 0.1);
+ outline-offset: -1px;
+
+ h3 {
+ margin: 0 0 15px;
+
+ font-weight: 600;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 14px;
+
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 18px;
+ line-height: 18px;
+ }
+ }
+
+ p {
+ margin: 0;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 18px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ font-size: 14px;
+ line-height: 22px;
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ max-width: 324px;
+ padding: 30px 20px;
+ }
+
+ @media (min-width: $vp-1440) {
+ max-height: 329px;
+ padding: 40px 18px 40px 22px;
+ }
+
+ &--margin {
+ @media (min-width: $vp-768) {
+ padding-bottom: 36px;
+ }
+
+ @media (min-width: $vp-1440) {
+ min-height: 329px;
+ padding-bottom: 40px;
+ }
+ }
+}
+
+.advantages__swiper-slide--margin h3 {
+ margin-right: 2px;
+
+ @media (min-width: $vp-1440) {
+ margin-right: 0;
+ }
+}
+
+.advantages__swiper-slide:nth-child(2n) br {
+ @media (min-width: $vp-768) {
+ display: none;
+ }
+}
+
+.advantages__swiper-slide:nth-child(3n) br {
+ @media (min-width: $vp-1440) {
+ display: none;
+ }
+}
+
+.advantages__swiper-slide:nth-child(5n) br {
+ @media (min-width: $vp-1440) {
+ display: none;
+ }
+}
+
+.advantages__swiper-slide--desktop.swiper-slide {
+ display: none;
+
+ @media (min-width: $vp-1440) {
+ display: block;
+ }
+}
+
+.advantages__swiper-slide-image {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 42px;
+ height: 42px;
+ margin: 0 auto 20px auto;
+
+ border: 1px solid $color-navy-blue;
+
+ @media (min-width: $vp-768) {
+ width: 48px;
+ height: 48px;
+ margin-bottom: 26px;
+ padding: 12px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 54px;
+ height: 54px;
+ margin-bottom: 30px;
+ }
+}
+
+.advantages__controls {
+ display: none;
+
+ @media (min-width: $vp-1440) {
+ position: absolute;
+ bottom: -85px;
+ left: 50%;
+ z-index: 2;
+
+ display: grid;
+
+ transform: translateX(-50%);
+
+ gap: 4px;
+ grid-template-columns: repeat(2, 37px);
+ }
+}
+
+.advantages__controls-button--prev {
+ svg {
+ transform: rotate(180deg);
+ }
+}
diff --git a/source/sass/blocks/button-slider.scss b/source/sass/blocks/button-slider.scss
new file mode 100644
index 000000000..f602f9d17
--- /dev/null
+++ b/source/sass/blocks/button-slider.scss
@@ -0,0 +1,31 @@
+.button-slider {
+ width: 37px;
+ height: 35px;
+
+ color: $color-white;
+
+ background-color: $color-navy-blue;
+ border: 1px solid $transparent;
+ cursor: pointer;
+
+ &:hover {
+ color: $color-resolution-blue;
+
+ background-color: $color-white;
+ border-color: $color-resolution-blue;
+ }
+
+ &:focus {
+ color: $color-resolution-blue;
+
+ background-color: $color-white;
+ }
+
+ &:active {
+ background-color: $color-resolution-blue;
+ }
+
+ &:disabled {
+ background-color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/button.scss b/source/sass/blocks/button.scss
new file mode 100644
index 000000000..f44ea8b0d
--- /dev/null
+++ b/source/sass/blocks/button.scss
@@ -0,0 +1,29 @@
+.button {
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 16px;
+ color: $color-white;
+ text-decoration: none;
+
+ background-color: $color-navy-blue;
+
+ &:hover {
+ color: $color-resolution-blue;
+
+ background-color: $color-white;
+ outline: 1px solid $color-resolution-blue;
+ }
+
+ &:focus {
+ color: $color-resolution-blue;
+ background-color: $color-white;
+ }
+
+ &:active {
+ background-color: $color-resolution-blue;
+ }
+
+ &:disabled {
+ background-color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/contacts.scss b/source/sass/blocks/contacts.scss
new file mode 100644
index 000000000..0b713a4db
--- /dev/null
+++ b/source/sass/blocks/contacts.scss
@@ -0,0 +1,212 @@
+.contacts {
+ p {
+ margin: 0 0 30px;
+ padding-right: 15px;
+ padding-left: 15px;
+
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 20px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 40px;
+ padding-right: 243px;
+ padding-left: 45px;
+
+ font-size: 16px;
+ line-height: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 50px;
+ padding: 0;
+ }
+ }
+}
+
+.contacts__container {
+ @media (min-width: $vp-1440) {
+ max-width: 500px;
+ }
+}
+
+.contacts__title-wrapper {
+ margin-bottom: 11px;
+ padding-right: 15px;
+ padding-left: 15px;
+
+ @media (min-width: $vp-768) {
+ padding-left: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 500px;
+ margin-bottom: 23px;
+ padding: 0;
+ }
+}
+
+.contacts__title-decor {
+ top: 0;
+ left: 15px;
+
+ @media (min-width: $vp-768) {
+ left: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: -17px;
+ left: 0;
+ }
+}
+
+.contacts__list {
+ display: flex;
+ flex-direction: column;
+ margin: 0 0 30px;
+ padding: 0 15px;
+
+ list-style: none;
+
+ gap: 30px;
+
+ @media (min-width: $vp-768) {
+ flex-direction: row;
+ margin-bottom: 39px;
+ padding-right: 43px;
+ padding-left: 45px;
+
+ gap: 40px;
+ }
+
+ @media (min-width: $vp-1440) {
+ flex-direction: column;
+ margin: 0;
+ padding: 0;
+
+ gap: 35px;
+ }
+}
+
+.contacts__item {
+ position: relative;
+
+ padding-left: 32px;
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+
+ width: 22px;
+ height: 22px;
+
+ @media (min-width: $vp-768) {
+ width: 24px;
+ height: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 50%;
+
+ width: 26px;
+ height: 26px;
+
+ transform: translateY(-50%);
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ padding-left: 34px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding-left: 56px;
+ }
+}
+
+.contacts__item--tel::before {
+ background-image: url("../../img/footer/contacts/phone.svg");
+ background-repeat: no-repeat;
+}
+
+.contacts__item--email::before {
+ background-image: url("../../img/footer/contacts/email.svg");
+ background-repeat: no-repeat;
+}
+
+.contacts__item--address::before {
+ background-image: url("../../img/footer/contacts/pin.svg");
+ background-repeat: no-repeat;
+}
+
+.contacts__item-title {
+ margin: 0 0 8px;
+
+ font-weight: 600;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 6px;
+
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 8px;
+
+ font-size: 18px;
+ line-height: 18px;
+ }
+}
+
+.contacts__item-text {
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 20px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ line-height: 22px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 16px;
+ line-height: 24px;
+ }
+}
+
+.contacts__item-text > br {
+ @media (min-width: $vp-768) {
+ display: none;
+ }
+}
+
+.contacts__item-link {
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+
+ text-decoration-color: $color-elephant;
+ text-underline-offset: 3px;
+ }
+
+ &:focus {
+ outline: 1px solid $color-elephant;
+ outline-offset: 5px;
+ }
+
+ &:active {
+ color: $color-navy-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/container.scss b/source/sass/blocks/container.scss
new file mode 100644
index 000000000..c7049d60a
--- /dev/null
+++ b/source/sass/blocks/container.scss
@@ -0,0 +1,4 @@
+.container {
+ max-width: 1440px;
+ margin: 0 auto;
+}
diff --git a/source/sass/blocks/decor.scss b/source/sass/blocks/decor.scss
new file mode 100644
index 000000000..ee1014afa
--- /dev/null
+++ b/source/sass/blocks/decor.scss
@@ -0,0 +1,20 @@
+.decor {
+ position: absolute;
+
+ display: block;
+
+ font-weight: 800;
+ font-size: 26px;
+ line-height: 26px;
+ color: rgba($color-elephant, 3%);
+
+ @media (min-width: $vp-768) {
+ font-size: 40px;
+ line-height: 40px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 55px;
+ line-height: 55px;
+ }
+}
diff --git a/source/sass/blocks/footer-nav.scss b/source/sass/blocks/footer-nav.scss
new file mode 100644
index 000000000..211d904fc
--- /dev/null
+++ b/source/sass/blocks/footer-nav.scss
@@ -0,0 +1,132 @@
+.footer-nav__logo {
+ display: flex;
+ justify-content: center;
+ margin-bottom: 23px;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 0;
+ }
+
+ &:hover {
+ opacity: 0.8;
+ }
+
+ &:focus {
+ outline: 1px solid $color-elephant;
+ outline-offset: 3px;
+ }
+
+ &:active {
+ opacity: 0.6;
+ }
+}
+
+.footer-nav__list {
+ margin: 0 0 8px;
+ padding: 0;
+
+ list-style: none;
+ text-align: center;
+ column-count: 2;
+ column-gap: 50px;
+
+ @media (min-width: $vp-768) {
+ display: flex;
+ justify-content: center;
+ margin: 0;
+
+ column-count: auto;
+
+ gap: 19px;
+ }
+
+ @media (min-width: $vp-1440) {
+ flex-wrap: wrap;
+ width: 800px;
+ padding-right: 30px;;
+
+ gap: 25px;
+ }
+}
+
+.footer-nav__item {
+ margin-bottom: 15px;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 0;
+ }
+
+ @media (min-width: $vp-1440) {
+ max-width: 105px;
+ }
+}
+
+.footer-nav__link {
+ display: block;
+
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-elephant;
+ text-decoration: none;
+
+ @media (min-width: $vp-768) {
+ padding: 3px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ &:hover {
+ text-decoration: underline;
+
+ text-decoration-color: $color-elephant;
+ text-underline-offset: 3px;
+ }
+
+ &:focus {
+ outline: 1px solid $color-elephant;
+ outline-offset: 5px;
+ }
+
+ &:active {
+ color: $color-navy-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
+
+.footer-nav__link-tel {
+ display: none;
+
+ @media (min-width: $vp-1440) {
+ display: block;
+ width: 145px;
+
+ font-weight: 600;
+ font-size: 18px;
+ line-height: 18px;
+ color: $color-elephant;
+ text-decoration: none;
+ }
+
+ &:hover {
+ color: rgba($color-navy-blue, 0.1);
+ }
+
+ &:focus {
+ color: $color-navy-blue;
+ }
+
+ &:active {
+ color: $color-resolution-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/footer.scss b/source/sass/blocks/footer.scss
new file mode 100644
index 000000000..a31644b8d
--- /dev/null
+++ b/source/sass/blocks/footer.scss
@@ -0,0 +1,88 @@
+.footer__top {
+ padding-top: 21px;
+ padding-bottom: 19px;
+
+ border-bottom: 1px solid rgba($color-elephant, 0.2);
+
+ @media (min-width: $vp-768) {
+ padding-top: 40px;
+ padding-bottom: 39px;
+ }
+
+ @media (min-width: $vp-1440) {
+ display: flex;
+ padding: 123px 120px 93px;
+
+ gap: 100px;
+ }
+}
+
+.footer__top-map {
+ @media (min-width: $vp-1440) {
+ padding-top: 26px;
+ padding-bottom: 49px;
+ }
+}
+
+.footer__bottom {
+ padding: 23px 15px 20px;
+
+ @media (min-width: $vp-768) {
+ padding: 34px 45px 20px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 41px 120px 32px 149px;
+ }
+}
+
+.footer__bottom-nav {
+ @media (min-width: $vp-768) {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 34px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 100%;
+ margin-bottom: 31px;
+ }
+}
+
+.footer__bottom-link {
+ display: flex;
+ justify-content: center;
+
+ font-weight: 300;
+ font-size: 12px;
+ line-height: 12px;
+ color: $color-elephant;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+
+ text-decoration-color: $color-elephant;
+ text-underline-offset: 3px;
+ }
+
+ &:focus {
+ outline: 1px solid $color-elephant;
+ outline-offset: 5px;
+ }
+
+ &:active {
+ color: $color-navy-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
+
+.footer__bottom-social {
+ @media (min-width: $vp-1440) {
+ padding-right: 30px;
+ }
+}
diff --git a/source/sass/blocks/form.scss b/source/sass/blocks/form.scss
new file mode 100644
index 000000000..c1b7f5d8c
--- /dev/null
+++ b/source/sass/blocks/form.scss
@@ -0,0 +1,215 @@
+.form {
+ background-color: $color-black;
+ background-image: url("../../img/form/form-mobile.jpg");
+ background-size: cover;
+
+ @media (resolution >=2dppx) {
+ background-image: url("../../img/form/form-mobile@2x.jpg");
+ }
+
+ @media (min-width: $vp-768) {
+ background-image: url("../../img/form/form-tablet.jpg");
+
+ @media (resolution >=2dppx) {
+ background-image: url("../../img/form/form-tablet@2x.jpg");
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ background-image: url("../../img/form/form-desktop.jpg");
+
+ @media (resolution >=2dppx) {
+ background-image: url("../../img/form/form-desktop@2x.jpg");
+ }
+ }
+}
+
+.form__container {
+ display: flex;
+ flex-direction: column;
+ padding: 177px 31px 174px 31px;
+
+ text-align: center;
+
+ @media (min-width: $vp-768) {
+ padding: 187px 204px 184px 204px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 295px 240px 292px 240px;
+ }
+}
+
+.form__container h2 {
+ margin: 0 0 17px 0;
+
+ font-weight: 800;
+ font-size: 22px;
+ line-height: 22px;
+ color: $color-white;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 23px;
+
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 17px;
+
+ font-size: 35px;
+ line-height: 35px;
+ }
+}
+
+.form__container p {
+ margin: 0 0 20px 0;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 18px;
+ color: $color-white;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 23px;
+
+ font-size: 16px;
+ line-height: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 20px;
+ }
+}
+
+.form__container br {
+ @media (min-width: $vp-768) {
+ display: none;
+ }
+}
+
+.form__form {
+ display: grid;
+
+ gap: 8px;
+
+ @media (min-width: $vp-768) {
+ gap: 11px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-top: 20px;
+
+ gap: 30px;
+ grid-template-columns: 360px 360px 140px;
+ }
+}
+
+.form__label {
+ position: relative;
+}
+
+.form__label-text {
+ position: absolute;
+ top: 18px;
+ left: 15px;
+
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 16px;
+ color: rgba($color-elephant, 0.5);
+
+ transition: transform 0s ease, opacity 0.4s ease;
+
+ @media (min-width: $vp-768) {
+ top: 20px;
+ left: 30px;
+ }
+
+ .form__label:has(.form__input:focus-visible) & {
+ transform: translateX(100vw);
+ opacity: 0;
+
+ transition: transform 3s ease, opacity 1s ease;
+ }
+
+ .form__label:has(.form__input:not(:placeholder-shown)) & {
+ transform: translateX(100vw);
+ opacity: 0;
+
+ transition: transform 3s ease, opacity 1s ease;
+ }
+}
+
+.form__input {
+ width: 100%;
+ padding: 15px 15px 14px 15px;
+
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 16px;
+ color: $color-elephant;
+
+ background-color: $color-white;
+ border: 1px solid rgba($color-navy-blue, 0.1);
+ border-radius: 2px;
+
+ &--error {
+ border-color: $color-torch-red;
+ }
+
+ &::placeholder {
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 16px;
+ color: rgba($color-navy-blue, 0.5);
+
+ transform: translateX(-100vw);
+ opacity: 0;
+
+ transition: transform 1s ease, opacity 1s ease;
+ }
+
+ @media (min-width: $vp-768) {
+ padding: 20px 30px 15px 30px;
+ }
+
+ &:hover {
+ border-color: $color-navy-blue;
+ }
+
+ &:focus {
+ border-color: $transparent;
+ outline: 1px solid $color-elephant;
+ }
+
+ &:disabled {
+ border-color: $color-nobel;
+ }
+}
+
+.form__input:focus-visible::placeholder {
+ transform: translateX(0);
+ opacity: 1;
+
+ transition: transform 1s ease, opacity 1s ease;
+}
+
+.form__button {
+ width: 258px;
+ padding: 22px 19px 20px 19px;
+
+ border: none;
+ cursor: pointer;;
+
+ @media (min-width: $vp-768) {
+ width: 360px;
+ padding: 21px 20px 19px 20px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 180px;
+ padding: 19px 20px;
+ }
+}
diff --git a/source/sass/blocks/gallery.scss b/source/sass/blocks/gallery.scss
new file mode 100644
index 000000000..7157d1034
--- /dev/null
+++ b/source/sass/blocks/gallery.scss
@@ -0,0 +1,117 @@
+.gallery .swiper-wrapper {
+ @media (min-width: $vp-1440) {
+ gap: 1px;
+ }
+}
+
+.gallery__container {
+ padding-top: 21px;
+ padding-bottom: 3px;
+
+ p {
+ margin: 0 0 31px;
+ padding: 0 15px;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 18px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ max-width: 480px;
+ margin-bottom: 21px;
+ padding: 0 45px;
+
+ font-size: 14px;
+ line-height: 22px;
+ }
+
+ @media (min-width: $vp-1440) {
+ max-width: 835px;
+ margin-bottom: 46px;
+ padding: 0 120px;
+
+ font-size: 16px;
+ line-height: 24px;
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ padding-top: 40px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding-top: 78px;
+ }
+}
+
+.gallery__container br {
+ @media (min-width: $vp-1440) {
+ display: none;
+ }
+}
+
+.gallery__title-wrapper {
+ width: 290px;
+ margin-bottom: 9px;
+ padding-right: 15px;
+ padding-left: 15px;
+
+ @media (min-width: $vp-768) {
+ width: 678px;
+ margin-bottom: 20px;
+ padding-right: 45px;
+ padding-left: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 1200px;
+ margin-bottom: 24px;
+ padding-right: 120px;
+ padding-left: 120px;
+ }
+}
+
+.gallery__title-decor {
+ top: 0;
+ left: 15px;
+
+ @media (min-width: $vp-768) {
+ left: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 28px;
+ left: 120px;
+ }
+}
+
+.gallery__swiper-wrapper {
+ position: relative;
+}
+
+.gallery__swiper .swiper-slide {
+ display: flex;
+ flex-direction: column;
+
+ gap: 6px;
+}
+
+.gallery__controls {
+ display: none;
+
+ @media (min-width: $vp-768) {
+ position: absolute;
+ top: -56px;
+ right: 45px;
+ z-index: 2;
+
+ display: block;
+ }
+}
+
+.gallery__controls-button {
+ &--prev {
+ transform: rotate(180deg);
+ }
+}
diff --git a/source/sass/blocks/header.scss b/source/sass/blocks/header.scss
new file mode 100644
index 000000000..d5ca5187a
--- /dev/null
+++ b/source/sass/blocks/header.scss
@@ -0,0 +1,112 @@
+.header {
+ position: relative;
+
+ background-color: $color-navy-blue;
+}
+
+.header__container {
+ display: flex;
+ flex-direction: column;
+ align-items: end;
+ padding: 15px 15px 13px;
+
+ @media (min-width: $vp-768) {
+ flex-direction: row;
+ justify-content: right;
+ align-items: center;
+ padding: 20px 45px;
+
+ gap: 10px 97px;
+ }
+
+ @media (min-width: $vp-1440) {
+ justify-content: center;
+ padding: 42px 120px 42px 153px;
+ }
+}
+
+.header__toggle {
+ position: absolute;
+ top: 15px;
+ left: 15px;
+
+ width: 26px;
+ height: 26px;
+ padding: 0;
+
+ background-color: $transparent;
+ background-image: url("../../img/header/burger-button.svg");
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 26px 20px;
+ border: none;
+ cursor: pointer;
+
+ transition: all 0.3s ease 0s;
+
+ @media (min-width: $vp-768) {
+ top: 28px;
+ left: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ display: none;
+ }
+
+ .is-open & {
+ background-image: url("../../img/header/burger-button-close.svg");
+ }
+}
+
+.header__logo {
+ display: inline-block;
+ margin-bottom: 16px;
+
+ @media (min-width: $vp-768) {
+ margin-right: 32px;
+ margin-bottom: 0;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-right: 65px;
+ }
+}
+
+.header__tel {
+ font-weight: 600;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-white;
+ text-decoration: none;
+
+ @media (min-width: $vp-768) {
+ margin-top: 3px;
+
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-top: 5px;
+ margin-left: auto;
+
+ font-size: 18px;
+ line-height: 18px;
+ }
+
+ &:hover {
+ opacity: 0.5;
+ }
+
+ &:focus {
+ color: $color-elephant;
+ }
+
+ &:active {
+ color: $color-resolution-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/hero.scss b/source/sass/blocks/hero.scss
new file mode 100644
index 000000000..5f32581c9
--- /dev/null
+++ b/source/sass/blocks/hero.scss
@@ -0,0 +1,276 @@
+.hero__swiper {
+ width: 100%;
+ height: 100%;
+}
+
+.hero__swiper-slide {
+ position: relative;
+
+ text-align: center;
+
+ background-color: $color-polo-blue;
+ background-repeat: no-repeat;
+ background-size: cover;
+
+ h2 {
+ margin: 0 0 15px;
+
+ font-weight: 800;
+ font-size: 26px;
+ line-height: 26px;
+ color: $color-white;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 14px;
+
+ font-size: 56px;
+ line-height: 56px;
+ }
+
+ @media (min-width: $vp-1440) {
+ max-width: 944px;
+ margin-bottom: 24px;
+
+ font-size: 77px;
+ line-height: 77px;
+ }
+ }
+
+ p {
+ margin: 0 auto 60px;
+
+ font-weight: 400;
+ font-size: 15px;
+ line-height: 20px;
+ color: $color-white;
+
+ @media (min-width: $vp-768) {
+ max-width: 500px;
+ margin-bottom: 36px;
+
+ font-size: 17px;
+ line-height: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ max-width: 464px;
+ margin: 0 0 36px;
+ }
+ }
+
+ &--caucasus {
+ padding: 145px 15px 160px;
+
+ background-image: url("../../img/hero/slide-mobile-caucasus.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-mobile-caucasus@2x.jpg");
+ }
+
+ @media (min-width: $vp-768) {
+ padding: 342px 45px 402px;
+
+ background-image: url("../../img/hero/slide-tablet-caucasus.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-tablet-caucasus@2x.jpg");
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 200px 120px 80px;
+
+ background-image: url("../../img/hero/slide-desktop-caucasus.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-desktop-caucasus@2x.jpg");
+ }
+ }
+ }
+
+ &--kamchatka {
+ position: relative;
+
+ padding: 135px 15px 150px;
+
+ background-image: url("../../img/hero/slide-mobile-kamchatka.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-mobile-kamchatka@2x.jpg");
+ }
+
+ @media (min-width: $vp-768) {
+ padding: 137px 91px 607px;
+
+ background-image: url("../../img/hero/slide-tablet-kamchatka.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-tablet-kamchatka@2x.jpg");
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 200px 120px 80px;
+
+ background-image: url("../../img/hero/slide-desktop-kamchatka.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-desktop-kamchatka@2x.jpg");
+ }
+ }
+ }
+
+ &--altai {
+ padding: 122px 15px 137px;
+
+ background-image: url("../../img/hero/slide-mobile-altai.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-mobile-altai@2x.jpg");
+ }
+
+ @media (min-width: $vp-768) {
+ padding: 342px 49px 402px;
+
+ background-image: url("../../img/hero/slide-tablet-altai.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-tablet-altai@2x.jpg");
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 200px 120px 80px;
+
+ background-image: url("../../img/hero/slide-desktop-altai.jpg");
+
+ @media (resolution >= 2dppx) {
+ background-image: url("../../img/hero/slide-desktop-altai@2x.jpg");
+ }
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ text-align: start;
+ }
+}
+
+.hero__swiper-slide--kamchatka::before {
+ @media (min-width: $vp-768) {
+ content: "";
+ position: absolute;
+ bottom: 197px;
+ left: 50%;
+
+ width: 442px;
+ height: 365px;
+
+ background-image: url("../../img/hero/decor-tablet.png");
+ transform: translateX(-50%);
+ }
+
+ @media (min-width: $vp-1440) {
+ right: -86px;
+ bottom: 154px;
+ left: inherit;
+
+ width: 410px;
+ height: 459px;
+
+ background-image: url("../../img/hero/decor-desktop.png");
+ }
+}
+
+.hero__swiper-button {
+ display: block;
+ width: 180px;
+ margin: 0 auto;
+ padding: 21px 20px 19px 20px;
+
+ @media (min-width: $vp-1440) {
+ margin: 0 0 134px;
+
+ text-align: center;
+ }
+}
+
+.hero__swiper-info {
+ display: none;
+
+ @media (min-width: $vp-1440) {
+ display: flex;
+ flex-wrap: wrap;
+ max-width: 355px;
+
+ gap: 10px;
+ }
+}
+
+.hero__swiper-info-text {
+ position: relative;
+
+ display: block;
+ padding: 13px 19px 13px 39px;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: $color-white;
+
+ border: 1px solid rgba($color-white, 0.5);
+
+ svg {
+ position: absolute;
+ top: 50%;
+ left: 19px;
+
+ transform: translateY(-50%);
+ }
+}
+
+.hero__swiper .swiper-pagination-bullet {
+ width: 16px;
+ height: 16px;
+
+ background-color: $transparent;
+ border: 1px solid $color-white;
+ border-radius: 50%;
+ cursor: pointer;
+ opacity: 1;
+
+ @media (min-width: $vp-768) {
+ width: 20px;
+ height: 20px;
+ }
+
+ &:hover {
+ background-color: $color-gainsboro;
+ }
+
+ &:focus {
+ outline: 1px solid rgba($color-white, 0.5);
+ outline-offset: 2px;
+ }
+
+ &:active {
+ background-color: rgba($color-white, 0.5);
+ }
+}
+
+.hero__swiper .swiper-pagination-bullet-active {
+ background-color: $color-white;
+}
+
+.hero__swiper .swiper-pagination-bullets {
+ display: flex;
+ justify-content: center;
+ margin-bottom: 32px;
+
+ gap: 12px;
+
+ @media (min-width: $vp-1440) {
+ justify-content: end;
+ margin-bottom: 84px;
+ padding-right: 116px;
+ }
+}
diff --git a/source/sass/blocks/main-container.scss b/source/sass/blocks/main-container.scss
new file mode 100644
index 000000000..b7f9fcd9a
--- /dev/null
+++ b/source/sass/blocks/main-container.scss
@@ -0,0 +1,3 @@
+.main-container {
+ flex-grow: 1;
+}
diff --git a/source/sass/blocks/nav.scss b/source/sass/blocks/nav.scss
new file mode 100644
index 000000000..e04ccde3e
--- /dev/null
+++ b/source/sass/blocks/nav.scss
@@ -0,0 +1,94 @@
+.nav {
+ position: fixed;
+ top: 100px;
+ left: 0;
+ z-index: 2;
+
+ display: none;
+ width: 100%;
+ height: 359px;
+ padding: 30px 15px 50px;
+
+ background-color: $color-navy-blue;
+
+ @media (min-width: $vp-768) {
+ top: 82px;
+
+ height: 408px;
+ padding: 50px 45px 70px;
+ }
+
+ @media (min-width: $vp-1440) {
+ position: static;
+
+ display: flex;
+ width: 572px;
+ height: 100%;
+ padding: 0;
+ }
+
+ .is-open & {
+ display: flex;
+ }
+}
+
+.nav__list {
+ display: grid;
+ margin: 0;
+ padding: 0;
+
+ list-style: none;
+
+ gap: 20px;
+
+ @media (min-width: $vp-1440) {
+ width: 572px;
+ margin-top: 4px;
+
+ gap: 31px;
+ grid-template-columns: repeat(6, 1fr);
+ }
+}
+
+.nav__link {
+ display: inline-block;
+
+ font-weight: 700;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-white;
+ text-transform: uppercase;
+ text-decoration: none;
+ letter-spacing: 0.04em;
+
+ @media (min-width: $vp-768) {
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-weight: 400;
+ text-transform: none;
+ letter-spacing: normal;
+ }
+
+ &:hover {
+ text-decoration: underline;
+
+ text-decoration-color: #ffffff;
+ text-underline-offset: 3px;
+ }
+
+ &:focus {
+ outline: 1px solid $color-white;
+ outline-offset: 5px;
+ }
+
+ &:active {
+ color: $color-resolution-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/page-body.scss b/source/sass/blocks/page-body.scss
new file mode 100644
index 000000000..268db7f5f
--- /dev/null
+++ b/source/sass/blocks/page-body.scss
@@ -0,0 +1,12 @@
+.page-body {
+ display: flex;
+ flex-direction: column;
+ min-height: 100%;
+ margin: 0;
+
+ font-family: $ff-montserrat;
+}
+
+.page-body.lock {
+ overflow: hidden;
+}
diff --git a/source/sass/blocks/reviews.scss b/source/sass/blocks/reviews.scss
new file mode 100644
index 000000000..6b28c2656
--- /dev/null
+++ b/source/sass/blocks/reviews.scss
@@ -0,0 +1,167 @@
+.reviews .swiper {
+ @media (min-width: $vp-1440) {
+ padding: 0 0 10px 10px;
+ }
+}
+
+.reviews .swiper-slide {
+ @media (min-width: $vp-768) {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ max-width: 565px;
+
+ gap: 30px;
+ }
+
+ @media (min-width: $vp-1440) {
+ max-width: 700px;
+ }
+}
+
+.reviews__container {
+ padding: 22px 15px 20px;
+
+ @media (min-width: $vp-768) {
+ padding: 42px 0 40px 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 101px 0 87px 120px;
+ }
+}
+
+.reviews__title-wrapper {
+ width: 290px;
+ margin-bottom: 13px;
+
+ @media (min-width: $vp-768) {
+ width: 500px;
+ margin-bottom: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 600px;
+ margin-bottom: 38px;
+ }
+}
+
+.reviews__title-decor {
+ top: 3px;
+ left: 0;
+
+ @media (min-width: $vp-768) {
+ top: 5px;
+ left: 0;
+ }
+}
+
+.reviews__swiper-wrapper {
+ position: relative;
+}
+
+.reviews__swiper-slide {
+ padding: 20px 20px 17px 19px;
+
+ background-color: $color-white;
+ border: 1px solid $color-white;
+ box-shadow: 0 0 20px 0 rgba($color-resolution-blue, 0.1);
+
+ @media (min-width: $vp-768) {
+ padding: 19px 20px 17px 19px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 19px 40px 20px 19px;
+ }
+}
+
+.reviews__swiper-text-wrapper {
+ @media (min-width: $vp-768) {
+ margin-top: 4px;
+ }
+
+ @media (min-width: $vp-768) {
+ margin-top: 0;
+ }
+}
+
+.reviews__swiper-text {
+ display: flex;
+ flex-direction: column;
+ margin-top: 19px;
+ margin-bottom: 16px;
+
+ gap: 10px;
+
+ p {
+ margin: 0;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 18px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-1440) {
+ font-size: 14px;
+ line-height: 22px;
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ margin-top: 2px;
+ margin-bottom: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-top: -10px;
+ margin-bottom: 4px;
+ }
+}
+
+.reviews__swiper-name {
+ margin: 0 0 4px;
+
+ font-weight: 700;
+ font-size: 12px;
+ line-height: 12px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 3px;
+
+ font-size: 13px;
+ line-height: 13px;
+ }
+}
+
+.reviews__swiper-info {
+ font-weight: 300;
+ font-size: 12px;
+ line-height: 12px;
+ color: $color-elephant;
+}
+
+.reviews__controls {
+ display: none;
+
+ @media (min-width: $vp-768) {
+ position: absolute;
+ top: -60px;
+ right: 45px;
+ z-index: 2;
+
+ display: block;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: -73px;
+ right: 120px;
+ }
+}
+
+.reviews__controls-button {
+ &--prev {
+ transform: rotate(180deg);
+ }
+}
diff --git a/source/sass/blocks/social.scss b/source/sass/blocks/social.scss
new file mode 100644
index 000000000..c0d28c29d
--- /dev/null
+++ b/source/sass/blocks/social.scss
@@ -0,0 +1,63 @@
+.social__list {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ margin: 0 0 23px;
+ padding: 0;
+
+ list-style: none;
+
+ gap: 16px;
+
+ @media (min-width: $vp-768) {
+ margin: 0 auto 34px auto;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 150px;
+ margin-bottom: 22px;
+
+ gap: 15px;
+ }
+}
+
+.social__link {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 32px;
+ height: 30px;
+
+ border: 1px solid rgba($color-elephant, 0.3);
+
+ svg {
+ color: $color-elephant;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 30px;
+ }
+
+ &:active svg {
+ color: $color-white;
+ }
+
+ &:hover {
+ border-color: $color-elephant;
+ }
+
+ &:focus {
+ border-color: $transparent;
+ }
+
+ &:active {
+ color: $color-white;
+
+ background-color: $color-navy-blue;
+ border-color: $color-navy-blue;
+ }
+
+ &:disabled {
+ opacity: 0.3;
+ }
+}
diff --git a/source/sass/blocks/title.scss b/source/sass/blocks/title.scss
new file mode 100644
index 000000000..34535bdbf
--- /dev/null
+++ b/source/sass/blocks/title.scss
@@ -0,0 +1,32 @@
+.title {
+ margin: 0;
+
+ font-weight: 800;
+ font-size: 22px;
+ line-height: 22px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ font-size: 35px;
+ line-height: 35px;
+ }
+}
+
+.title-wrapper {
+ position: relative;
+
+ padding: 16px 0 17px;
+
+ @media (min-width: $vp-768) {
+ padding: 20px 0 10px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 45px 0 0;
+ }
+}
diff --git a/source/sass/blocks/tours.scss b/source/sass/blocks/tours.scss
new file mode 100644
index 000000000..c679020e4
--- /dev/null
+++ b/source/sass/blocks/tours.scss
@@ -0,0 +1,374 @@
+.tours {
+ position: relative;
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: 10px;
+ right: 0;
+ z-index: -1;
+
+ width: 141px;
+ height: 595px;
+
+ background-image: url("../../img/background/clouds-tours-mobile.png");
+ background-repeat: no-repeat;
+
+ @media (min-width: $vp-768) {
+ top: -92px;
+
+ width: 425px;
+ height: 1630px;
+
+ background-image: url("../../img/background/clouds-tours-tablet.png");
+ }
+
+ @media (min-width: $vp-1440) {
+ top: -126px;
+
+ width: 602px;
+
+ background-image: url("../../img/background/clouds-tours-desktop.png");
+ }
+ }
+}
+
+.tours__container {
+ padding: 23px 15px 30px;
+
+ @media (min-width: $vp-768) {
+ padding: 40px 45px 50px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 78px 120px 110px;
+ }
+}
+
+.tours__title-wrapper {
+ width: 290px;
+ margin-bottom: 22px;
+
+ @media (min-width: $vp-768) {
+ width: 542px;
+ margin-bottom: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 50px;
+ }
+}
+
+.tours__title-decor {
+ top: 0;
+ left: 0;
+
+ @media (min-width: $vp-768) {
+ top: 5px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 28px;
+ }
+}
+
+.tours__swiper-wrapper {
+ position: relative;
+}
+
+.tours__swiper {
+ position: relative;
+
+ margin-bottom: 25px;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 26px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 54px;
+ }
+}
+
+.tours__swiper-slide {
+ position: relative;
+}
+
+.tours__swiper-detalis {
+ position: absolute;
+ bottom: 30px;
+ left: 50%;
+
+ min-width: 250px;
+
+ transform: translateX(-50%);
+}
+
+.tours__swiper-detalis-top {
+ display: flex;
+ align-items: center;
+ margin-bottom: 16px;
+
+ gap: 5px;
+}
+
+.tours__swiper-detalis--caucasus .tours__swiper-detalis-top {
+ @media (min-width: $vp-768) {
+ gap: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 95px;
+ }
+}
+
+.tours__swiper-detalis--altai .tours__swiper-detalis-top {
+ @media (min-width: $vp-768) {
+ gap: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 75px;
+ }
+}
+
+.tours__swiper-detalis--adygea .tours__swiper-detalis-top {
+ @media (min-width: $vp-768) {
+ gap: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 75px;
+ }
+}
+
+.tours__swiper-detalis--ural .tours__swiper-detalis-top {
+ @media (min-width: $vp-768) {
+ gap: 45px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 87px;
+ }
+}
+
+.tours__swiper-detalis-name {
+ position: relative;
+
+ display: block;
+ width: 90px;
+ padding: 8px 13px 8px 34px;
+
+ font-weight: 500;
+ font-size: 12px;
+ line-height: 12px;
+ color: $color-white;
+
+ background-color: $color-navy-blue;
+}
+
+.tours__swiper-detalis--altai .tours__swiper-detalis-name {
+ width: 85px;
+}
+
+.tours__swiper-detalis--adygea .tours__swiper-detalis-name {
+ width: 94px;
+}
+
+.tours__swiper-detalis-image {
+ position: absolute;
+ top: 50%;
+ left: 16px;
+
+ transform: translateY(-50%);
+}
+
+.tours__swiper-detalis-list {
+ display: grid;
+ margin: 0;
+ padding: 0;
+
+ list-style: none;
+
+ gap: 14px;
+ grid-template-columns: 1fr 1fr;
+}
+
+.tours__swiper-detalis-item {
+ position: relative;
+
+ padding: 4px 0 4px 32px;
+
+ font-weight: 500;
+ font-size: 12px;
+ line-height: 12px;
+ color: $color-white;
+}
+
+.tours__swiper-detalis-item-image {
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+.tours__swiper-title {
+ position: relative;
+
+ margin: 0 0 30px;
+
+ font-weight: 700;
+ font-size: 24px;
+ line-height: 28px;
+ color: $color-white;
+
+ &::after {
+ content: "";
+ position: absolute;
+ bottom: -15px;
+ left: 0;
+
+ width: 80px;
+ height: 1px;
+
+ background-color: rgba($color-white, 0.2);
+ }
+}
+
+.tours__swiper-detalis-bottom {
+ display: flex;
+ flex-wrap: wrap;
+
+ gap: 8px;
+
+ @media (min-width: $vp-768) {
+ gap: 28px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 53px;
+ }
+}
+
+.tours__swiper-detalis--altai .tours__swiper-detalis-bottom {
+ @media (min-width: $vp-768) {
+ gap: 27px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 52px;
+ }
+}
+
+.tours__swiper-detalis--adygea .tours__swiper-detalis-bottom {
+ @media (min-width: $vp-1440) {
+ gap: 52px;
+ }
+}
+
+.tours__swiper-detalis-info {
+ span {
+ display: block;
+
+ font-weight: 700;
+ font-size: 13px;
+ line-height: 13px;
+ color: $color-white;
+ }
+}
+
+.tours__swiper-detalis-text {
+ margin: 0 0 7px;
+
+ font-weight: 300;
+ font-size: 12px;
+ line-height: 12px;
+ color: $color-white;
+
+ &--star {
+ margin-bottom: 4px;
+ }
+}
+
+.tours__swiper-detalis-star {
+ display: flex;
+
+ gap: 1px;
+}
+
+.tours__controls {
+ display: none;
+
+ @media (min-width: $vp-768) {
+ position: absolute;
+ top: -60px;
+ right: 0;
+ z-index: 2;
+
+ display: grid;
+
+ gap: 4px;
+ grid-template-columns: repeat(2, 37px);
+ }
+
+ @media (min-width: $vp-1440) {
+ top: -88px;
+ right: 0;
+ }
+}
+
+.tours__controls-button--prev {
+ svg {
+ transform: rotate(180deg);
+ }
+}
+
+.tours__controls-button:hover svg,
+.tours__controls-button:focus svg {
+ color: $color-resolution-blue;
+}
+
+.tours__link {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 217px;
+ margin: 0 auto;
+ padding: 10px 10px 10px 12px;
+
+ font-weight: 700;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-elephant;
+ text-transform: uppercase;
+ text-decoration: none;
+ letter-spacing: 0.04em;
+
+ gap: 12px;
+
+ svg {
+ flex-shrink: 0;
+ }
+
+ @media (min-width: $vp-768) {
+ width: 250px;
+
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ &:hover {
+ color: rgba($color-navy-blue, 0.1);
+ }
+
+ &:focus {
+ color: $color-navy-blue;
+ }
+
+ &:active {
+ color: $color-resolution-blue;
+ }
+
+ &:disabled {
+ color: $color-nobel;
+ }
+}
diff --git a/source/sass/blocks/training.scss b/source/sass/blocks/training.scss
new file mode 100644
index 000000000..52d031b91
--- /dev/null
+++ b/source/sass/blocks/training.scss
@@ -0,0 +1,453 @@
+.training {
+ position: relative;
+
+ &::before {
+ @media (min-width: $vp-768) {
+ content: "";
+ position: absolute;
+ top: 600px;
+ right: 0;
+ z-index: -1;
+
+ width: 465px;
+ height: 280px;
+
+ background-image: url("../../img/background/clouds-training-tablet.png");
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 633px;
+
+ background-image: url("../../img/background/clouds-training-desktop.png");
+ }
+ }
+}
+
+.training__container {
+ padding: 11px 15px 20px;
+
+ p {
+ margin: 0 0 28px;
+
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 20px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 30px;
+
+ font-size: 16px;
+ line-height: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 820px;
+ margin-bottom: 61px;
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ padding: 29px 45px 40px;
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 7px 120px 40px;
+ }
+}
+
+.training__title-wrapper {
+ width: 290px;
+ margin-bottom: 17px;
+
+ @media (min-width: $vp-768) {
+ width: 542px;
+ margin-bottom: 24px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 33px;
+ }
+}
+
+.training__title-decor {
+ top: 0;
+ left: 0;
+
+ @media (min-width: $vp-768) {
+ top: 5px;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 28px;
+ }
+}
+
+.training__swiper-wrapper {
+ position: relative;
+}
+
+.training__swiper {
+ margin-bottom: 27px;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 28px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 58px;
+ }
+}
+
+.training__title-slider {
+ width: 290px;
+ margin: 0 0 21px;
+
+ font-weight: 800;
+ font-size: 22px;
+ line-height: 22px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ width: 339px;
+ margin-bottom: 36px;
+
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ @media (min-width: $vp-1440) {
+ width: 378px;
+ margin-bottom: 16px;
+
+ font-size: 35px;
+ line-height: 35px;
+ }
+}
+
+.training__swiper-slide {
+ min-height: 356px;
+ padding: 15px 15px 13px 14px;
+
+ background-color: $color-white;
+ border: 1px solid rgba($color-navy-blue, 0.1);
+
+ @media (min-width: $vp-768) {
+ min-height: 388px;
+ }
+
+ @media (min-width: $vp-1440) {
+ min-height: 356px;
+ padding-top: 14px;
+ }
+}
+
+.training__swiper-info {
+ margin-top: 16px;
+
+ h3 {
+ margin: 0;
+
+ font-weight: 700;
+ font-size: 14px;
+ line-height: 16px;
+ color: $color-elephant;
+ }
+
+ span {
+ display: block;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 16px;
+ color: $color-elephant;
+ }
+}
+
+.training__swiper-info-wrapper {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 14px;
+}
+
+.training__swiper-info-link {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 24px;
+ height: 24px;
+
+ color: $color-elephant;
+
+ border: 1px solid rgba($color-elephant, 0.3);
+
+ svg {
+ margin-left: 2px;
+ }
+
+ &:hover {
+ border-color: $color-elephant;
+ }
+
+ &:focus {
+ border-color: $transparent;
+ }
+
+ &:active {
+ color: $color-white;
+
+ background-color: $color-navy-blue;
+ border-color: $color-navy-blue;
+ }
+
+ &:disabled {
+ opacity: 0.3;
+ }
+}
+
+.training__controls {
+ display: none;
+
+ @media (min-width: $vp-768) {
+ position: absolute;
+ top: -64px;
+ right: 0;
+ z-index: 2;
+
+ display: block;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: -55px;
+ right: 0;
+ }
+}
+
+.training__controls-button {
+ &--prev {
+ transform: rotate(180deg);
+ }
+}
+
+.training__process-title {
+ width: 290px;
+ margin: 0 0 24px;
+
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 16px;
+ color: $color-elephant;
+
+ @media (min-width: $vp-768) {
+ margin-bottom: 100px;
+
+ font-size: 18px;
+ line-height: 18px;
+ }
+
+ @media (min-width: $vp-1440) {
+ margin-bottom: 19px;
+
+ font-size: 21px;
+ line-height: 21px;
+ }
+}
+
+.training__process-list {
+ position: relative;
+
+ display: grid;
+ margin: 0;
+ padding: 0;
+
+ list-style: none;
+
+ gap: 25px;
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 6px;
+
+ width: 2px;
+ height: 183px;
+
+ background-color: $color-navy-blue;
+ transform: translateY(-50%);
+
+ @media (min-width: $vp-768) {
+ display: none;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: inherit;
+ bottom: 11px;
+ left: 20px;
+
+ display: block;
+ width: 1180px;
+ height: 2px;
+ }
+ }
+
+ @media (min-width: $vp-768) {
+ gap: 104px 174px;
+ grid-template-columns: 232px 237px;
+ }
+
+ @media (min-width: $vp-1440) {
+ gap: 0;
+ grid-template-columns: repeat(4, 254px);
+ }
+}
+
+.training__process-item {
+ position: relative;
+
+ padding-right: 26px;
+ padding-left: 63px;
+
+ font-weight: 400;
+ font-size: 12px;
+ line-height: 18px;
+ color: $color-elephant;
+
+ svg {
+ position: absolute;
+ top: 0;
+ left: 29px;
+
+ @media (min-width: $vp-768) {
+ left: 0;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 10px;
+ left: 9px;
+ }
+ }
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 0;
+
+ width: 14px;
+ height: 14px;
+
+ background-color: $color-navy-blue;
+ border-radius: 50%;
+ transform: translateY(-50%);
+
+ @media (min-width: $vp-768) {
+ display: none;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: inherit;
+ bottom: 0;
+ left: 20px;
+
+ display: block;
+ }
+ }
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 29px;
+
+ width: 25px;
+ height: 25px;
+
+ @media (min-width: $vp-768) {
+ top: 2px;
+ left: 0;
+ }
+
+ @media (min-width: $vp-1440) {
+ top: 10px;
+ left: 9px;
+ }
+ }
+
+ &--map::after {
+ background-image: url("../../img/training/process/map-icon.svg");
+ background-repeat: no-repeat;
+ }
+
+ &--boots::after {
+ background-image: url("../../img/training/process/boots-icon.svg");
+ background-repeat: no-repeat;
+ }
+
+ &--tree::after {
+ background-image: url("../../img/training/process/tree-icon.svg");
+ background-repeat: no-repeat;
+ }
+
+ &--mountain::after {
+ background-image: url("../../img/training/process/mountain-icon.svg");
+ background-repeat: no-repeat;
+ }
+
+ @media (min-width: $vp-768) {
+ padding-right: 0;
+ padding-left: 35px;
+
+ font-size: 14px;
+ line-height: 22px;
+
+ &--boots {
+ grid-column: 1 / 2;
+ grid-row: 2 / 3;
+
+ @media (min-width: $vp-1440) {
+ grid-column: 2 / 3;
+ grid-row: 1 / 1;
+ }
+ }
+
+ &--tree {
+ grid-column: 2 / 3;
+ grid-row: 2 / 3;
+
+ @media (min-width: $vp-1440) {
+ grid-column: 3 / 4;
+ grid-row: 1 / 1;
+ }
+ }
+
+ &--mountain {
+ grid-column: 2 / 3;
+ grid-row: 1 / 2;
+
+ @media (min-width: $vp-1440) {
+ grid-column: 4 / 5;
+ grid-row: 1 / 1;
+ }
+ }
+ }
+
+ @media (min-width: $vp-1440) {
+ padding: 8px 10px 22px 44px;
+
+ font-size: 16px;
+ line-height: 24px;
+ }
+}
+
+.training__process-item--tree::before {
+ @media (min-width: $vp-1440) {
+ left: 0;
+ }
+}
+
+.training__process-item--mountain::before {
+ @media (min-width: $vp-1440) {
+ left: 19px;
+ }
+}
diff --git a/source/sass/global/base.scss b/source/sass/global/base.scss
new file mode 100644
index 000000000..2a7da81f3
--- /dev/null
+++ b/source/sass/global/base.scss
@@ -0,0 +1,14 @@
+*,
+*::after,
+*::before {
+ box-sizing: border-box;
+}
+
+html {
+ height: 100%;
+}
+
+img {
+ display: block;
+ height: auto;
+}
diff --git a/source/sass/global/fonts.scss b/source/sass/global/fonts.scss
new file mode 100644
index 000000000..61a5e9f1b
--- /dev/null
+++ b/source/sass/global/fonts.scss
@@ -0,0 +1,65 @@
+@font-face {
+ font-style: normal;
+ font-weight: 300;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src:
+ url("../../fonts/montserrat-300.woff2") format("woff2"),
+ url("../../fonts/montserrat-300.woff") format("woff");
+}
+
+@font-face {
+ font-style: normal;
+ font-weight: 400;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src:
+ url("../../fonts/montserrat-400.woff2") format("woff2"),
+ url("../../fonts/montserrat-400.woff") format("woff");
+}
+
+@font-face {
+ font-style: normal;
+ font-weight: 500;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src:
+ url("../../fonts/montserrat-500.woff2") format("woff2"),
+ url("../../fonts/montserrat-500.woff") format("woff");
+}
+
+@font-face {
+ font-style: normal;
+ font-weight: 600;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src:
+ url("../../fonts/montserrat-600.woff2") format("woff2"),
+ url("../../fonts/montserrat-600.woff") format("woff");
+}
+
+@font-face {
+ font-style: normal;
+ font-weight: 700;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src:
+ url("../../fonts/montserrat-700.woff2") format("woff2"),
+ url("../../fonts/montserrat-700.woff") format("woff");
+}
+
+@font-face {
+ font-style: normal;
+ font-weight: 800;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src:
+ url("../../fonts/montserrat-800.woff2") format("woff2"),
+ url("../../fonts/montserrat-800.woff") format("woff");
+}
diff --git a/source/sass/global/utils.scss b/source/sass/global/utils.scss
new file mode 100644
index 000000000..409498b72
--- /dev/null
+++ b/source/sass/global/utils.scss
@@ -0,0 +1,13 @@
+.visually-hidden {
+ position: absolute;
+
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+
+ border: none;
+
+ clip: rect(0 0 0 0);
+}
diff --git a/source/sass/global/variables.scss b/source/sass/global/variables.scss
new file mode 100644
index 000000000..c4c857651
--- /dev/null
+++ b/source/sass/global/variables.scss
@@ -0,0 +1,20 @@
+// Colors
+
+$transparent: rgba(0, 0, 0, 0);
+$color-white: #ffffff;
+$color-navy-blue: #0266c1;
+$color-resolution-blue: #1c3374;
+$color-polo-blue: #91b1cf;
+$color-elephant: #2d383f;
+$color-black: #000000;
+$color-nobel: #999999;
+$color-gainsboro: #d9d9d9;
+$color-torch-red: #ff121f;
+
+// Viewports
+$vp-768: 768px;
+$vp-1440: 1440px;
+
+// Fonts
+
+$ff-montserrat: "Montserrat", "Arial", sans-serif;
diff --git a/source/sass/style.scss b/source/sass/style.scss
index 96467369f..903a9bad6 100644
--- a/source/sass/style.scss
+++ b/source/sass/style.scss
@@ -1,4 +1,34 @@
// Vendor
-// ---------------------------------
-@import "vendor/normalize";
+@import "./vendor/normalize";
+
+// Global
+
+@import "./global/fonts";
+@import "./global/utils";
+@import "./global/variables";
+@import "./global/base";
+
+// Blocks
+
+@import "./blocks/page-body";
+@import "./blocks/container.scss";
+@import "./blocks/header";
+@import "./blocks/nav";
+@import "./blocks/main-container";
+@import "./blocks/hero";
+@import "./blocks/button";
+@import "./blocks/button-slider";
+@import "./blocks/tours";
+@import "./blocks/title";
+@import "./blocks/decor";
+@import "./blocks/training";
+@import "./blocks/about";
+@import "./blocks/reviews";
+@import "./blocks/advantages";
+@import "./blocks/gallery";
+@import "./blocks/form";
+@import "./blocks/footer";
+@import "./blocks/contacts";
+@import "./blocks/footer-nav";
+@import "./blocks/social";
diff --git a/source/site.webmanifest b/source/site.webmanifest
new file mode 100644
index 000000000..b20abb7cb
--- /dev/null
+++ b/source/site.webmanifest
@@ -0,0 +1,19 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}