diff --git a/pp.config.cjs b/pp.config.cjs
index 80dae3a21..e8b1b797c 100644
--- a/pp.config.cjs
+++ b/pp.config.cjs
@@ -9,7 +9,7 @@ const desktopSections = [
{section: 'gallery', misMatchThreshold: 0.4},
{section: 'form', misMatchThreshold: 0.6},
{section: 'footer', misMatchThreshold: 1.2}
-]
+];
const tabletSections = [
{section: 'header', misMatchThreshold: 1.3},
@@ -22,7 +22,7 @@ const tabletSections = [
{section: 'gallery', misMatchThreshold: 0.7},
{section: 'form', misMatchThreshold: 1.2},
{section: 'footer', misMatchThreshold: 1.1},
-]
+];
const mobileSections = [
{section: 'header', misMatchThreshold: 2.2},
@@ -35,12 +35,12 @@ const mobileSections = [
{section: 'gallery', misMatchThreshold: 0.7},
{section: 'form', misMatchThreshold: 1.1},
{section: 'footer', misMatchThreshold: 1.1},
-]
+];
const VIEWPORTS = {
- 'desktop': {"label": "desktop", "width": 1440, "height": 800},
- 'tablet': {"label": "tablet", "width": 768, "height": 1024},
- 'mobile': {"label": "mobile", "width": 320, "height": 480}
+ 'desktop': {'label': 'desktop', 'width': 1440, 'height': 800},
+ 'tablet': {'label': 'tablet', 'width': 768, 'height': 1024},
+ 'mobile': {'label': 'mobile', 'width': 320, 'height': 480}
};
const URL = 'http://localhost:3000/index.html';
@@ -48,65 +48,65 @@ const REFERENCE_URL = './figma/index.html';
function generateScenario(section, misMatchThreshold, viewport) {
return {
- "label": `${section}`,
- "url": URL,
- "referenceUrl": REFERENCE_URL,
+ 'label': `${section}`,
+ 'url': URL,
+ 'referenceUrl': REFERENCE_URL,
selectors: [`[data-test="${section}"]`],
misMatchThreshold: misMatchThreshold || 5,
requireSameDimensions: true,
delay: 500,
- ...viewport ? {"viewports": [VIEWPORTS[viewport]]} : {}
+ ...viewport ? {'viewports': [VIEWPORTS[viewport]]} : {}
};
}
module.exports = {
- "id": "tours test-pp",
- "onReadyScript": "onReady.cjs",
- "onBeforeScript": "onBefore.cjs",
- "viewports": [
+ 'id': 'tours test-pp',
+ 'onReadyScript': 'onReady.cjs',
+ 'onBeforeScript': 'onBefore.cjs',
+ 'viewports': [
{
- "label": "mobile",
- "width": 320,
- "height": 480,
+ 'label': 'mobile',
+ 'width': 320,
+ 'height': 480,
},
{
- "label": "tablet",
- "width": 768,
- "height": 1024,
+ 'label': 'tablet',
+ 'width': 768,
+ 'height': 1024,
},
{
- "label": "desktop",
- "width": 1440,
- "height": 800,
+ 'label': 'desktop',
+ 'width': 1440,
+ 'height': 800,
}
],
- "resembleOutputOptions": {
- "ignoreAntialiasing": true,
- "errorType": "movementDifferenceIntensity",
- "transparency": 0.3,
+ 'resembleOutputOptions': {
+ 'ignoreAntialiasing': true,
+ 'errorType': 'movementDifferenceIntensity',
+ 'transparency': 0.3,
scaleToSameSize: false
},
- "scenarios": [
+ 'scenarios': [
...desktopSections.map(({section, misMatchThreshold}) => generateScenario(section, misMatchThreshold, 'desktop')),
...tabletSections.map(({section, misMatchThreshold}) => generateScenario(section, misMatchThreshold, 'tablet')),
...mobileSections.map(({section, misMatchThreshold}) => generateScenario(section, misMatchThreshold, 'mobile')),
],
fileNameTemplate: '{scenarioLabel}_{viewportLabel}',
- "paths": {
- "bitmaps_reference": "bitmaps_reference/test-pp",
- "bitmaps_test": "backstop_data/bitmaps_test",
- "engine_scripts": "engine_scripts",
- "html_report": "backstop_data/html_report",
- "json_report": "backstop_data/json_report",
+ 'paths': {
+ 'bitmaps_reference': 'bitmaps_reference/test-pp',
+ 'bitmaps_test': 'backstop_data/bitmaps_test',
+ 'engine_scripts': 'engine_scripts',
+ 'html_report': 'backstop_data/html_report',
+ 'json_report': 'backstop_data/json_report',
},
- "report": ["browser", "json"],
- "engine": "puppeteer",
- "engineOptions": {
- "args": ["--no-sandbox"],
- "gotoParameters": {"waitUntil": ["load", "networkidle0"], timeout: 30000},
+ 'report': ['browser', 'json'],
+ 'engine': 'puppeteer',
+ 'engineOptions': {
+ 'args': ['--no-sandbox'],
+ 'gotoParameters': {'waitUntil': ['load', 'networkidle0'], timeout: 90000},
},
- "asyncCaptureLimit": 10,
- "asyncCompareLimit": 50,
- "debug": false,
- "debugWindow": false
-}
+ 'asyncCaptureLimit': 10,
+ 'asyncCompareLimit': 50,
+ 'debug': false,
+ 'debugWindow': false
+};
diff --git a/source/fonts/montserrat-bold.woff b/source/fonts/montserrat-bold.woff
new file mode 100644
index 000000000..104972116
Binary files /dev/null and b/source/fonts/montserrat-bold.woff differ
diff --git a/source/fonts/montserrat-bold.woff2 b/source/fonts/montserrat-bold.woff2
new file mode 100644
index 000000000..af8f601b3
Binary files /dev/null and b/source/fonts/montserrat-bold.woff2 differ
diff --git a/source/fonts/montserrat-extraBold.woff b/source/fonts/montserrat-extraBold.woff
new file mode 100644
index 000000000..58e082fb7
Binary files /dev/null and b/source/fonts/montserrat-extraBold.woff differ
diff --git a/source/fonts/montserrat-extraBold.woff2 b/source/fonts/montserrat-extraBold.woff2
new file mode 100644
index 000000000..246cf5b0a
Binary files /dev/null and b/source/fonts/montserrat-extraBold.woff2 differ
diff --git a/source/fonts/montserrat-light.woff b/source/fonts/montserrat-light.woff
new file mode 100644
index 000000000..2e8054b34
Binary files /dev/null and b/source/fonts/montserrat-light.woff differ
diff --git a/source/fonts/montserrat-light.woff2 b/source/fonts/montserrat-light.woff2
new file mode 100644
index 000000000..97b0f2c77
Binary files /dev/null and b/source/fonts/montserrat-light.woff2 differ
diff --git a/source/fonts/montserrat-medium.woff b/source/fonts/montserrat-medium.woff
new file mode 100644
index 000000000..140405244
Binary files /dev/null and b/source/fonts/montserrat-medium.woff differ
diff --git a/source/fonts/montserrat-medium.woff2 b/source/fonts/montserrat-medium.woff2
new file mode 100644
index 000000000..fc09b9654
Binary files /dev/null and b/source/fonts/montserrat-medium.woff2 differ
diff --git a/source/fonts/montserrat-regular.woff b/source/fonts/montserrat-regular.woff
new file mode 100644
index 000000000..5d1ae0cd0
Binary files /dev/null and b/source/fonts/montserrat-regular.woff differ
diff --git a/source/fonts/montserrat-regular.woff2 b/source/fonts/montserrat-regular.woff2
new file mode 100644
index 000000000..8e4646683
Binary files /dev/null and b/source/fonts/montserrat-regular.woff2 differ
diff --git a/source/fonts/montserrat-semiBold.woff b/source/fonts/montserrat-semiBold.woff
new file mode 100644
index 000000000..729bdda7f
Binary files /dev/null and b/source/fonts/montserrat-semiBold.woff differ
diff --git a/source/fonts/montserrat-semiBold.woff2 b/source/fonts/montserrat-semiBold.woff2
new file mode 100644
index 000000000..9048f09e2
Binary files /dev/null and b/source/fonts/montserrat-semiBold.woff2 differ
diff --git a/source/img/about/about-photo.png b/source/img/about/about-photo.png
new file mode 100644
index 000000000..5e58260c0
Binary files /dev/null and b/source/img/about/about-photo.png differ
diff --git a/source/img/about/about-photo.webp b/source/img/about/about-photo.webp
new file mode 100644
index 000000000..3912c1f51
Binary files /dev/null and b/source/img/about/about-photo.webp differ
diff --git a/source/img/about/about-photo@2x.png b/source/img/about/about-photo@2x.png
new file mode 100644
index 000000000..f255e5a1c
Binary files /dev/null and b/source/img/about/about-photo@2x.png differ
diff --git a/source/img/about/about-photo@2x.webp b/source/img/about/about-photo@2x.webp
new file mode 100644
index 000000000..c3e462654
Binary files /dev/null and b/source/img/about/about-photo@2x.webp differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop.png b/source/img/cloud-background/advantages-bg-clouds-desktop.png
new file mode 100644
index 000000000..d40ab1ccf
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop.png differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop.webp b/source/img/cloud-background/advantages-bg-clouds-desktop.webp
new file mode 100644
index 000000000..29fa1f4e1
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop.webp differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop@2x.png b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.png
new file mode 100644
index 000000000..26190ef04
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.png differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-desktop@2x.webp b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.webp
new file mode 100644
index 000000000..6780db01a
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-desktop@2x.webp differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet.png b/source/img/cloud-background/advantages-bg-clouds-tablet.png
new file mode 100644
index 000000000..0c0b0bc92
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet.png differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet.webp b/source/img/cloud-background/advantages-bg-clouds-tablet.webp
new file mode 100644
index 000000000..9b12e0dd2
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet.webp differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet@2x.png b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.png
new file mode 100644
index 000000000..c95642f45
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.png differ
diff --git a/source/img/cloud-background/advantages-bg-clouds-tablet@2x.webp b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.webp
new file mode 100644
index 000000000..c2ec115f9
Binary files /dev/null and b/source/img/cloud-background/advantages-bg-clouds-tablet@2x.webp differ
diff --git a/source/img/cloud-background/mountains-and-clouds.png b/source/img/cloud-background/mountains-and-clouds.png
new file mode 100644
index 000000000..c4298c90d
Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds.png differ
diff --git a/source/img/cloud-background/mountains-and-clouds.webp b/source/img/cloud-background/mountains-and-clouds.webp
new file mode 100644
index 000000000..9ba95539c
Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds.webp differ
diff --git a/source/img/cloud-background/mountains-and-clouds@2x.png b/source/img/cloud-background/mountains-and-clouds@2x.png
new file mode 100644
index 000000000..eb8da259c
Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds@2x.png differ
diff --git a/source/img/cloud-background/mountains-and-clouds@2x.webp b/source/img/cloud-background/mountains-and-clouds@2x.webp
new file mode 100644
index 000000000..b7d0f2ab2
Binary files /dev/null and b/source/img/cloud-background/mountains-and-clouds@2x.webp differ
diff --git a/source/img/cloud-background/trainers-bg-one-cloud.png b/source/img/cloud-background/trainers-bg-one-cloud.png
new file mode 100644
index 000000000..6d4e5872b
Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud.png differ
diff --git a/source/img/cloud-background/trainers-bg-one-cloud.webp b/source/img/cloud-background/trainers-bg-one-cloud.webp
new file mode 100644
index 000000000..e5900f67d
Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud.webp differ
diff --git a/source/img/cloud-background/trainers-bg-one-cloud@2x.png b/source/img/cloud-background/trainers-bg-one-cloud@2x.png
new file mode 100644
index 000000000..773f333c2
Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud@2x.png differ
diff --git a/source/img/cloud-background/trainers-bg-one-cloud@2x.webp b/source/img/cloud-background/trainers-bg-one-cloud@2x.webp
new file mode 100644
index 000000000..60d35b90a
Binary files /dev/null and b/source/img/cloud-background/trainers-bg-one-cloud@2x.webp differ
diff --git a/source/img/contacts/map-desktop.png b/source/img/contacts/map-desktop.png
new file mode 100644
index 000000000..d67656d11
Binary files /dev/null and b/source/img/contacts/map-desktop.png differ
diff --git a/source/img/contacts/map-desktop.webp b/source/img/contacts/map-desktop.webp
new file mode 100644
index 000000000..a4ecd0dfd
Binary files /dev/null and b/source/img/contacts/map-desktop.webp differ
diff --git a/source/img/contacts/map-desktop@2x.png b/source/img/contacts/map-desktop@2x.png
new file mode 100644
index 000000000..8258ab27a
Binary files /dev/null and b/source/img/contacts/map-desktop@2x.png differ
diff --git a/source/img/contacts/map-desktop@2x.webp b/source/img/contacts/map-desktop@2x.webp
new file mode 100644
index 000000000..011c4f356
Binary files /dev/null and b/source/img/contacts/map-desktop@2x.webp differ
diff --git a/source/img/contacts/map-mobile.png b/source/img/contacts/map-mobile.png
new file mode 100644
index 000000000..4e341a529
Binary files /dev/null and b/source/img/contacts/map-mobile.png differ
diff --git a/source/img/contacts/map-mobile.webp b/source/img/contacts/map-mobile.webp
new file mode 100644
index 000000000..99a421f8b
Binary files /dev/null and b/source/img/contacts/map-mobile.webp differ
diff --git a/source/img/contacts/map-mobile@2x.png b/source/img/contacts/map-mobile@2x.png
new file mode 100644
index 000000000..7220a1d0b
Binary files /dev/null and b/source/img/contacts/map-mobile@2x.png differ
diff --git a/source/img/contacts/map-mobile@2x.webp b/source/img/contacts/map-mobile@2x.webp
new file mode 100644
index 000000000..2b2615258
Binary files /dev/null and b/source/img/contacts/map-mobile@2x.webp differ
diff --git a/source/img/contacts/map-tablet.png b/source/img/contacts/map-tablet.png
new file mode 100644
index 000000000..88fe8ab01
Binary files /dev/null and b/source/img/contacts/map-tablet.png differ
diff --git a/source/img/contacts/map-tablet.webp b/source/img/contacts/map-tablet.webp
new file mode 100644
index 000000000..e9acb403d
Binary files /dev/null and b/source/img/contacts/map-tablet.webp differ
diff --git a/source/img/contacts/map-tablet@2x.png b/source/img/contacts/map-tablet@2x.png
new file mode 100644
index 000000000..d71895be8
Binary files /dev/null and b/source/img/contacts/map-tablet@2x.png differ
diff --git a/source/img/contacts/map-tablet@2x.webp b/source/img/contacts/map-tablet@2x.webp
new file mode 100644
index 000000000..7f6c2a623
Binary files /dev/null and b/source/img/contacts/map-tablet@2x.webp differ
diff --git a/source/img/form/forest-background.jpg b/source/img/form/forest-background.jpg
new file mode 100644
index 000000000..78d370469
Binary files /dev/null and b/source/img/form/forest-background.jpg differ
diff --git a/source/img/form/forest-background.webp b/source/img/form/forest-background.webp
new file mode 100644
index 000000000..b7f473391
Binary files /dev/null and b/source/img/form/forest-background.webp differ
diff --git a/source/img/form/forest-background@2x.jpg b/source/img/form/forest-background@2x.jpg
new file mode 100644
index 000000000..b5e0fff16
Binary files /dev/null and b/source/img/form/forest-background@2x.jpg differ
diff --git a/source/img/form/forest-background@2x.webp b/source/img/form/forest-background@2x.webp
new file mode 100644
index 000000000..02cb9b040
Binary files /dev/null and b/source/img/form/forest-background@2x.webp differ
diff --git a/source/img/gallery/cableway.jpg b/source/img/gallery/cableway.jpg
new file mode 100644
index 000000000..b38160930
Binary files /dev/null and b/source/img/gallery/cableway.jpg differ
diff --git a/source/img/gallery/cableway.webp b/source/img/gallery/cableway.webp
new file mode 100644
index 000000000..40dc0c21d
Binary files /dev/null and b/source/img/gallery/cableway.webp differ
diff --git a/source/img/gallery/cableway@2x.jpg b/source/img/gallery/cableway@2x.jpg
new file mode 100644
index 000000000..161b3a0a2
Binary files /dev/null and b/source/img/gallery/cableway@2x.jpg differ
diff --git a/source/img/gallery/cableway@2x.webp b/source/img/gallery/cableway@2x.webp
new file mode 100644
index 000000000..37a21716a
Binary files /dev/null and b/source/img/gallery/cableway@2x.webp differ
diff --git a/source/img/gallery/campfire.jpg b/source/img/gallery/campfire.jpg
new file mode 100644
index 000000000..ad19507a1
Binary files /dev/null and b/source/img/gallery/campfire.jpg differ
diff --git a/source/img/gallery/campfire.webp b/source/img/gallery/campfire.webp
new file mode 100644
index 000000000..32820fb21
Binary files /dev/null and b/source/img/gallery/campfire.webp differ
diff --git a/source/img/gallery/campfire@2x.jpg b/source/img/gallery/campfire@2x.jpg
new file mode 100644
index 000000000..3f46b3012
Binary files /dev/null and b/source/img/gallery/campfire@2x.jpg differ
diff --git a/source/img/gallery/campfire@2x.webp b/source/img/gallery/campfire@2x.webp
new file mode 100644
index 000000000..47b077359
Binary files /dev/null and b/source/img/gallery/campfire@2x.webp differ
diff --git a/source/img/gallery/compass.jpg b/source/img/gallery/compass.jpg
new file mode 100644
index 000000000..8ac6bbea1
Binary files /dev/null and b/source/img/gallery/compass.jpg differ
diff --git a/source/img/gallery/compass.webp b/source/img/gallery/compass.webp
new file mode 100644
index 000000000..deb23b9ca
Binary files /dev/null and b/source/img/gallery/compass.webp differ
diff --git a/source/img/gallery/compass@2x.jpg b/source/img/gallery/compass@2x.jpg
new file mode 100644
index 000000000..051b495a4
Binary files /dev/null and b/source/img/gallery/compass@2x.jpg differ
diff --git a/source/img/gallery/compass@2x.webp b/source/img/gallery/compass@2x.webp
new file mode 100644
index 000000000..ea81edd17
Binary files /dev/null and b/source/img/gallery/compass@2x.webp differ
diff --git a/source/img/gallery/icy-road.jpg b/source/img/gallery/icy-road.jpg
new file mode 100644
index 000000000..037aa132c
Binary files /dev/null and b/source/img/gallery/icy-road.jpg differ
diff --git a/source/img/gallery/icy-road.webp b/source/img/gallery/icy-road.webp
new file mode 100644
index 000000000..d4ab8b1c5
Binary files /dev/null and b/source/img/gallery/icy-road.webp differ
diff --git a/source/img/gallery/icy-road@2x.jpg b/source/img/gallery/icy-road@2x.jpg
new file mode 100644
index 000000000..76d9bd323
Binary files /dev/null and b/source/img/gallery/icy-road@2x.jpg differ
diff --git a/source/img/gallery/icy-road@2x.webp b/source/img/gallery/icy-road@2x.webp
new file mode 100644
index 000000000..f2b17a15e
Binary files /dev/null and b/source/img/gallery/icy-road@2x.webp differ
diff --git a/source/img/gallery/one-man.jpg b/source/img/gallery/one-man.jpg
new file mode 100644
index 000000000..471fec4ab
Binary files /dev/null and b/source/img/gallery/one-man.jpg differ
diff --git a/source/img/gallery/one-man.webp b/source/img/gallery/one-man.webp
new file mode 100644
index 000000000..123ca28b7
Binary files /dev/null and b/source/img/gallery/one-man.webp differ
diff --git a/source/img/gallery/one-man@2x.jpg b/source/img/gallery/one-man@2x.jpg
new file mode 100644
index 000000000..638c15e13
Binary files /dev/null and b/source/img/gallery/one-man@2x.jpg differ
diff --git a/source/img/gallery/one-man@2x.webp b/source/img/gallery/one-man@2x.webp
new file mode 100644
index 000000000..295624666
Binary files /dev/null and b/source/img/gallery/one-man@2x.webp differ
diff --git a/source/img/gallery/tent.jpg b/source/img/gallery/tent.jpg
new file mode 100644
index 000000000..d700e9fc3
Binary files /dev/null and b/source/img/gallery/tent.jpg differ
diff --git a/source/img/gallery/tent.webp b/source/img/gallery/tent.webp
new file mode 100644
index 000000000..b85a9b270
Binary files /dev/null and b/source/img/gallery/tent.webp differ
diff --git a/source/img/gallery/tent@2x.jpg b/source/img/gallery/tent@2x.jpg
new file mode 100644
index 000000000..b2b2c1235
Binary files /dev/null and b/source/img/gallery/tent@2x.jpg differ
diff --git a/source/img/gallery/tent@2x.webp b/source/img/gallery/tent@2x.webp
new file mode 100644
index 000000000..2ba425bfe
Binary files /dev/null and b/source/img/gallery/tent@2x.webp differ
diff --git a/source/img/gallery/two-men.jpg b/source/img/gallery/two-men.jpg
new file mode 100644
index 000000000..6dd1f88b7
Binary files /dev/null and b/source/img/gallery/two-men.jpg differ
diff --git a/source/img/gallery/two-men.webp b/source/img/gallery/two-men.webp
new file mode 100644
index 000000000..08239744d
Binary files /dev/null and b/source/img/gallery/two-men.webp differ
diff --git a/source/img/gallery/two-men@2x.jpg b/source/img/gallery/two-men@2x.jpg
new file mode 100644
index 000000000..faf299411
Binary files /dev/null and b/source/img/gallery/two-men@2x.jpg differ
diff --git a/source/img/gallery/two-men@2x.webp b/source/img/gallery/two-men@2x.webp
new file mode 100644
index 000000000..e5e20fbf6
Binary files /dev/null and b/source/img/gallery/two-men@2x.webp differ
diff --git a/source/img/hero/altai-desktop.jpg b/source/img/hero/altai-desktop.jpg
new file mode 100644
index 000000000..e7b79bcf6
Binary files /dev/null and b/source/img/hero/altai-desktop.jpg differ
diff --git a/source/img/hero/altai-desktop.webp b/source/img/hero/altai-desktop.webp
new file mode 100644
index 000000000..dbbc6163a
Binary files /dev/null and b/source/img/hero/altai-desktop.webp differ
diff --git a/source/img/hero/altai-desktop@2x.jpg b/source/img/hero/altai-desktop@2x.jpg
new file mode 100644
index 000000000..bfa51672a
Binary files /dev/null and b/source/img/hero/altai-desktop@2x.jpg differ
diff --git a/source/img/hero/altai-desktop@2x.webp b/source/img/hero/altai-desktop@2x.webp
new file mode 100644
index 000000000..51657471c
Binary files /dev/null and b/source/img/hero/altai-desktop@2x.webp differ
diff --git a/source/img/hero/altai.jpg b/source/img/hero/altai.jpg
new file mode 100644
index 000000000..7ffbb6448
Binary files /dev/null and b/source/img/hero/altai.jpg differ
diff --git a/source/img/hero/altai.webp b/source/img/hero/altai.webp
new file mode 100644
index 000000000..60a2b99f1
Binary files /dev/null and b/source/img/hero/altai.webp differ
diff --git a/source/img/hero/altai@2x.jpg b/source/img/hero/altai@2x.jpg
new file mode 100644
index 000000000..fc8e1c32c
Binary files /dev/null and b/source/img/hero/altai@2x.jpg differ
diff --git a/source/img/hero/altai@2x.webp b/source/img/hero/altai@2x.webp
new file mode 100644
index 000000000..20be30ffa
Binary files /dev/null and b/source/img/hero/altai@2x.webp differ
diff --git a/source/img/hero/caucasus-desktop.jpg b/source/img/hero/caucasus-desktop.jpg
new file mode 100644
index 000000000..ec240b651
Binary files /dev/null and b/source/img/hero/caucasus-desktop.jpg differ
diff --git a/source/img/hero/caucasus-desktop.webp b/source/img/hero/caucasus-desktop.webp
new file mode 100644
index 000000000..cecf03951
Binary files /dev/null and b/source/img/hero/caucasus-desktop.webp differ
diff --git a/source/img/hero/caucasus-desktop@2x.jpg b/source/img/hero/caucasus-desktop@2x.jpg
new file mode 100644
index 000000000..150dcf037
Binary files /dev/null and b/source/img/hero/caucasus-desktop@2x.jpg differ
diff --git a/source/img/hero/caucasus-desktop@2x.webp b/source/img/hero/caucasus-desktop@2x.webp
new file mode 100644
index 000000000..d6b97db0b
Binary files /dev/null and b/source/img/hero/caucasus-desktop@2x.webp differ
diff --git a/source/img/hero/caucasus.jpg b/source/img/hero/caucasus.jpg
new file mode 100644
index 000000000..5d5ec05ac
Binary files /dev/null and b/source/img/hero/caucasus.jpg differ
diff --git a/source/img/hero/caucasus.webp b/source/img/hero/caucasus.webp
new file mode 100644
index 000000000..3f67d6f09
Binary files /dev/null and b/source/img/hero/caucasus.webp differ
diff --git a/source/img/hero/caucasus@2x.jpg b/source/img/hero/caucasus@2x.jpg
new file mode 100644
index 000000000..a998be747
Binary files /dev/null and b/source/img/hero/caucasus@2x.jpg differ
diff --git a/source/img/hero/caucasus@2x.webp b/source/img/hero/caucasus@2x.webp
new file mode 100644
index 000000000..7451653d2
Binary files /dev/null and b/source/img/hero/caucasus@2x.webp differ
diff --git a/source/img/hero/kamchatka-desktop.jpg b/source/img/hero/kamchatka-desktop.jpg
new file mode 100644
index 000000000..6f98718b7
Binary files /dev/null and b/source/img/hero/kamchatka-desktop.jpg differ
diff --git a/source/img/hero/kamchatka-desktop.webp b/source/img/hero/kamchatka-desktop.webp
new file mode 100644
index 000000000..fd695ec82
Binary files /dev/null and b/source/img/hero/kamchatka-desktop.webp differ
diff --git a/source/img/hero/kamchatka-desktop@2x.jpg b/source/img/hero/kamchatka-desktop@2x.jpg
new file mode 100644
index 000000000..91bd144be
Binary files /dev/null and b/source/img/hero/kamchatka-desktop@2x.jpg differ
diff --git a/source/img/hero/kamchatka-desktop@2x.webp b/source/img/hero/kamchatka-desktop@2x.webp
new file mode 100644
index 000000000..3dd769d94
Binary files /dev/null and b/source/img/hero/kamchatka-desktop@2x.webp differ
diff --git a/source/img/hero/kamchatka.jpg b/source/img/hero/kamchatka.jpg
new file mode 100644
index 000000000..ede10a546
Binary files /dev/null and b/source/img/hero/kamchatka.jpg differ
diff --git a/source/img/hero/kamchatka.webp b/source/img/hero/kamchatka.webp
new file mode 100644
index 000000000..a5583d831
Binary files /dev/null and b/source/img/hero/kamchatka.webp differ
diff --git a/source/img/hero/kamchatka@2x.jpg b/source/img/hero/kamchatka@2x.jpg
new file mode 100644
index 000000000..928158e92
Binary files /dev/null and b/source/img/hero/kamchatka@2x.jpg differ
diff --git a/source/img/hero/kamchatka@2x.webp b/source/img/hero/kamchatka@2x.webp
new file mode 100644
index 000000000..e455e4592
Binary files /dev/null and b/source/img/hero/kamchatka@2x.webp differ
diff --git a/source/img/hero/photo-card-1.png b/source/img/hero/photo-card-1.png
new file mode 100644
index 000000000..53b341c59
Binary files /dev/null and b/source/img/hero/photo-card-1.png differ
diff --git a/source/img/hero/photo-card-1.webp b/source/img/hero/photo-card-1.webp
new file mode 100644
index 000000000..f1ccecb87
Binary files /dev/null and b/source/img/hero/photo-card-1.webp differ
diff --git a/source/img/hero/photo-card-1@2x.png b/source/img/hero/photo-card-1@2x.png
new file mode 100644
index 000000000..9de2727df
Binary files /dev/null and b/source/img/hero/photo-card-1@2x.png differ
diff --git a/source/img/hero/photo-card-1@2x.webp b/source/img/hero/photo-card-1@2x.webp
new file mode 100644
index 000000000..0f6b39723
Binary files /dev/null and b/source/img/hero/photo-card-1@2x.webp differ
diff --git a/source/img/hero/photo-card-2.png b/source/img/hero/photo-card-2.png
new file mode 100644
index 000000000..b533e4a08
Binary files /dev/null and b/source/img/hero/photo-card-2.png differ
diff --git a/source/img/hero/photo-card-2.webp b/source/img/hero/photo-card-2.webp
new file mode 100644
index 000000000..01bd75aa8
Binary files /dev/null and b/source/img/hero/photo-card-2.webp differ
diff --git a/source/img/hero/photo-card-2@2x.png b/source/img/hero/photo-card-2@2x.png
new file mode 100644
index 000000000..4897afabb
Binary files /dev/null and b/source/img/hero/photo-card-2@2x.png differ
diff --git a/source/img/hero/photo-card-2@2x.webp b/source/img/hero/photo-card-2@2x.webp
new file mode 100644
index 000000000..f7730799d
Binary files /dev/null and b/source/img/hero/photo-card-2@2x.webp differ
diff --git a/source/img/reviewers/alexander-frolov.jpg b/source/img/reviewers/alexander-frolov.jpg
new file mode 100644
index 000000000..cec574b86
Binary files /dev/null and b/source/img/reviewers/alexander-frolov.jpg differ
diff --git a/source/img/reviewers/alexander-frolov.webp b/source/img/reviewers/alexander-frolov.webp
new file mode 100644
index 000000000..74f932aaa
Binary files /dev/null and b/source/img/reviewers/alexander-frolov.webp differ
diff --git a/source/img/reviewers/alexander-frolov@2x.jpg b/source/img/reviewers/alexander-frolov@2x.jpg
new file mode 100644
index 000000000..fb388c08c
Binary files /dev/null and b/source/img/reviewers/alexander-frolov@2x.jpg differ
diff --git a/source/img/reviewers/alexander-frolov@2x.webp b/source/img/reviewers/alexander-frolov@2x.webp
new file mode 100644
index 000000000..30ef1afb5
Binary files /dev/null and b/source/img/reviewers/alexander-frolov@2x.webp differ
diff --git a/source/img/reviewers/elena-pirogova.jpg b/source/img/reviewers/elena-pirogova.jpg
new file mode 100644
index 000000000..5a2ff7ea8
Binary files /dev/null and b/source/img/reviewers/elena-pirogova.jpg differ
diff --git a/source/img/reviewers/elena-pirogova.webp b/source/img/reviewers/elena-pirogova.webp
new file mode 100644
index 000000000..f2929d1d1
Binary files /dev/null and b/source/img/reviewers/elena-pirogova.webp differ
diff --git a/source/img/reviewers/elena-pirogova@2x.jpg b/source/img/reviewers/elena-pirogova@2x.jpg
new file mode 100644
index 000000000..dea46d079
Binary files /dev/null and b/source/img/reviewers/elena-pirogova@2x.jpg differ
diff --git a/source/img/reviewers/elena-pirogova@2x.webp b/source/img/reviewers/elena-pirogova@2x.webp
new file mode 100644
index 000000000..062aaa879
Binary files /dev/null and b/source/img/reviewers/elena-pirogova@2x.webp differ
diff --git a/source/img/reviewers/evgenia-bazhenova.jpg b/source/img/reviewers/evgenia-bazhenova.jpg
new file mode 100644
index 000000000..f93769c68
Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova.jpg differ
diff --git a/source/img/reviewers/evgenia-bazhenova.webp b/source/img/reviewers/evgenia-bazhenova.webp
new file mode 100644
index 000000000..3d05aacb2
Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova.webp differ
diff --git a/source/img/reviewers/evgenia-bazhenova@2x.jpg b/source/img/reviewers/evgenia-bazhenova@2x.jpg
new file mode 100644
index 000000000..839b335a1
Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova@2x.jpg differ
diff --git a/source/img/reviewers/evgenia-bazhenova@2x.webp b/source/img/reviewers/evgenia-bazhenova@2x.webp
new file mode 100644
index 000000000..d3289f92b
Binary files /dev/null and b/source/img/reviewers/evgenia-bazhenova@2x.webp differ
diff --git a/source/img/reviewers/ivan-solovyov.jpg b/source/img/reviewers/ivan-solovyov.jpg
new file mode 100644
index 000000000..50d204c95
Binary files /dev/null and b/source/img/reviewers/ivan-solovyov.jpg differ
diff --git a/source/img/reviewers/ivan-solovyov.webp b/source/img/reviewers/ivan-solovyov.webp
new file mode 100644
index 000000000..27c4803ed
Binary files /dev/null and b/source/img/reviewers/ivan-solovyov.webp differ
diff --git a/source/img/reviewers/ivan-solovyov@2x.jpg b/source/img/reviewers/ivan-solovyov@2x.jpg
new file mode 100644
index 000000000..c57f573ef
Binary files /dev/null and b/source/img/reviewers/ivan-solovyov@2x.jpg differ
diff --git a/source/img/reviewers/ivan-solovyov@2x.webp b/source/img/reviewers/ivan-solovyov@2x.webp
new file mode 100644
index 000000000..309588b13
Binary files /dev/null and b/source/img/reviewers/ivan-solovyov@2x.webp differ
diff --git a/source/img/sprite/big-arrow-left.svg b/source/img/sprite/big-arrow-left.svg
new file mode 100644
index 000000000..22f6a054f
--- /dev/null
+++ b/source/img/sprite/big-arrow-left.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/big-arrow-right.svg b/source/img/sprite/big-arrow-right.svg
new file mode 100644
index 000000000..f6944fcf1
--- /dev/null
+++ b/source/img/sprite/big-arrow-right.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/boots.svg b/source/img/sprite/boots.svg
new file mode 100644
index 000000000..5507b93f7
--- /dev/null
+++ b/source/img/sprite/boots.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/source/img/sprite/cross.svg b/source/img/sprite/cross.svg
new file mode 100644
index 000000000..5737f0efb
--- /dev/null
+++ b/source/img/sprite/cross.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/crown.svg b/source/img/sprite/crown.svg
new file mode 100644
index 000000000..6e5c02805
--- /dev/null
+++ b/source/img/sprite/crown.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/leaf.svg b/source/img/sprite/leaf.svg
new file mode 100644
index 000000000..34ab15524
--- /dev/null
+++ b/source/img/sprite/leaf.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/level.svg b/source/img/sprite/level.svg
new file mode 100644
index 000000000..59ec265fa
--- /dev/null
+++ b/source/img/sprite/level.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
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/logotype.svg b/source/img/sprite/logotype.svg
new file mode 100644
index 000000000..ed2dc6dba
--- /dev/null
+++ b/source/img/sprite/logotype.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/mail.svg b/source/img/sprite/mail.svg
new file mode 100644
index 000000000..34206aa36
--- /dev/null
+++ b/source/img/sprite/mail.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/map.svg b/source/img/sprite/map.svg
new file mode 100644
index 000000000..b2512e155
--- /dev/null
+++ b/source/img/sprite/map.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/menu.svg b/source/img/sprite/menu.svg
new file mode 100644
index 000000000..fec6a9cac
--- /dev/null
+++ b/source/img/sprite/menu.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/source/img/sprite/moon.svg b/source/img/sprite/moon.svg
new file mode 100644
index 000000000..05c903912
--- /dev/null
+++ b/source/img/sprite/moon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/mountain.svg b/source/img/sprite/mountain.svg
new file mode 100644
index 000000000..fafcb9689
--- /dev/null
+++ b/source/img/sprite/mountain.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/odnoklassniki.svg b/source/img/sprite/odnoklassniki.svg
new file mode 100644
index 000000000..f2f7061b6
--- /dev/null
+++ b/source/img/sprite/odnoklassniki.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/path.svg b/source/img/sprite/path.svg
new file mode 100644
index 000000000..3aa14496e
--- /dev/null
+++ b/source/img/sprite/path.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/phone.svg b/source/img/sprite/phone.svg
new file mode 100644
index 000000000..924a8781a
--- /dev/null
+++ b/source/img/sprite/phone.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/pine-tree.svg b/source/img/sprite/pine-tree.svg
new file mode 100644
index 000000000..b497565f6
--- /dev/null
+++ b/source/img/sprite/pine-tree.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/reddit.svg b/source/img/sprite/reddit.svg
new file mode 100644
index 000000000..eaf81040b
--- /dev/null
+++ b/source/img/sprite/reddit.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/shield.svg b/source/img/sprite/shield.svg
new file mode 100644
index 000000000..2701868dc
--- /dev/null
+++ b/source/img/sprite/shield.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/small-arrow-right.svg b/source/img/sprite/small-arrow-right.svg
new file mode 100644
index 000000000..8e1f241d7
--- /dev/null
+++ b/source/img/sprite/small-arrow-right.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/source/img/sprite/star-fill-none.svg b/source/img/sprite/star-fill-none.svg
new file mode 100644
index 000000000..29f380597
--- /dev/null
+++ b/source/img/sprite/star-fill-none.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/star-fill-white.svg b/source/img/sprite/star-fill-white.svg
new file mode 100644
index 000000000..9710fb5eb
--- /dev/null
+++ b/source/img/sprite/star-fill-white.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/sun.svg b/source/img/sprite/sun.svg
new file mode 100644
index 000000000..bfde8a66b
--- /dev/null
+++ b/source/img/sprite/sun.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/img/sprite/transparent-pin.svg b/source/img/sprite/transparent-pin.svg
new file mode 100644
index 000000000..711f759b4
--- /dev/null
+++ b/source/img/sprite/transparent-pin.svg
@@ -0,0 +1,4 @@
+
+
+
+
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.svg b/source/img/sprite/vk.svg
new file mode 100644
index 000000000..a4754796b
--- /dev/null
+++ b/source/img/sprite/vk.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/sprite/white-pin.svg b/source/img/sprite/white-pin.svg
new file mode 100644
index 000000000..97ff19536
--- /dev/null
+++ b/source/img/sprite/white-pin.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/source/img/tours/belukha-mountain-tour.jpg b/source/img/tours/belukha-mountain-tour.jpg
new file mode 100644
index 000000000..88e8358d5
Binary files /dev/null and b/source/img/tours/belukha-mountain-tour.jpg differ
diff --git a/source/img/tours/belukha-mountain-tour.webp b/source/img/tours/belukha-mountain-tour.webp
new file mode 100644
index 000000000..f2538c928
Binary files /dev/null and b/source/img/tours/belukha-mountain-tour.webp differ
diff --git a/source/img/tours/belukha-mountain-tour@2x.jpg b/source/img/tours/belukha-mountain-tour@2x.jpg
new file mode 100644
index 000000000..427f2b9c9
Binary files /dev/null and b/source/img/tours/belukha-mountain-tour@2x.jpg differ
diff --git a/source/img/tours/belukha-mountain-tour@2x.webp b/source/img/tours/belukha-mountain-tour@2x.webp
new file mode 100644
index 000000000..fada39bb5
Binary files /dev/null and b/source/img/tours/belukha-mountain-tour@2x.webp differ
diff --git a/source/img/tours/black-sea-tour.jpg b/source/img/tours/black-sea-tour.jpg
new file mode 100644
index 000000000..8e2b03c11
Binary files /dev/null and b/source/img/tours/black-sea-tour.jpg differ
diff --git a/source/img/tours/black-sea-tour.webp b/source/img/tours/black-sea-tour.webp
new file mode 100644
index 000000000..83938f642
Binary files /dev/null and b/source/img/tours/black-sea-tour.webp differ
diff --git a/source/img/tours/black-sea-tour@2x.jpg b/source/img/tours/black-sea-tour@2x.jpg
new file mode 100644
index 000000000..7b14e390c
Binary files /dev/null and b/source/img/tours/black-sea-tour@2x.jpg differ
diff --git a/source/img/tours/black-sea-tour@2x.webp b/source/img/tours/black-sea-tour@2x.webp
new file mode 100644
index 000000000..e9a35bf0d
Binary files /dev/null and b/source/img/tours/black-sea-tour@2x.webp differ
diff --git a/source/img/tours/elbrus-tour.jpg b/source/img/tours/elbrus-tour.jpg
new file mode 100644
index 000000000..e9cec5602
Binary files /dev/null and b/source/img/tours/elbrus-tour.jpg differ
diff --git a/source/img/tours/elbrus-tour.webp b/source/img/tours/elbrus-tour.webp
new file mode 100644
index 000000000..ada036630
Binary files /dev/null and b/source/img/tours/elbrus-tour.webp differ
diff --git a/source/img/tours/elbrus-tour@2x.jpg b/source/img/tours/elbrus-tour@2x.jpg
new file mode 100644
index 000000000..9a2c42c35
Binary files /dev/null and b/source/img/tours/elbrus-tour@2x.jpg differ
diff --git a/source/img/tours/elbrus-tour@2x.webp b/source/img/tours/elbrus-tour@2x.webp
new file mode 100644
index 000000000..2f40bec8c
Binary files /dev/null and b/source/img/tours/elbrus-tour@2x.webp differ
diff --git a/source/img/tours/manaraga-tour.jpg b/source/img/tours/manaraga-tour.jpg
new file mode 100644
index 000000000..24de4265c
Binary files /dev/null and b/source/img/tours/manaraga-tour.jpg differ
diff --git a/source/img/tours/manaraga-tour.webp b/source/img/tours/manaraga-tour.webp
new file mode 100644
index 000000000..639c69a08
Binary files /dev/null and b/source/img/tours/manaraga-tour.webp differ
diff --git a/source/img/tours/manaraga-tour@2x.jpg b/source/img/tours/manaraga-tour@2x.jpg
new file mode 100644
index 000000000..7b2398c7f
Binary files /dev/null and b/source/img/tours/manaraga-tour@2x.jpg differ
diff --git a/source/img/tours/manaraga-tour@2x.webp b/source/img/tours/manaraga-tour@2x.webp
new file mode 100644
index 000000000..9a3a54f55
Binary files /dev/null and b/source/img/tours/manaraga-tour@2x.webp differ
diff --git a/source/img/trainers/alexander-prokofiev.jpg b/source/img/trainers/alexander-prokofiev.jpg
new file mode 100644
index 000000000..10c289b25
Binary files /dev/null and b/source/img/trainers/alexander-prokofiev.jpg differ
diff --git a/source/img/trainers/alexander-prokofiev.webp b/source/img/trainers/alexander-prokofiev.webp
new file mode 100644
index 000000000..1d4388262
Binary files /dev/null and b/source/img/trainers/alexander-prokofiev.webp differ
diff --git a/source/img/trainers/alexander-prokofiev@2x.jpg b/source/img/trainers/alexander-prokofiev@2x.jpg
new file mode 100644
index 000000000..63236925d
Binary files /dev/null and b/source/img/trainers/alexander-prokofiev@2x.jpg differ
diff --git a/source/img/trainers/alexander-prokofiev@2x.webp b/source/img/trainers/alexander-prokofiev@2x.webp
new file mode 100644
index 000000000..b1d2a8de6
Binary files /dev/null and b/source/img/trainers/alexander-prokofiev@2x.webp differ
diff --git a/source/img/trainers/daniel-vasnetsov.jpg b/source/img/trainers/daniel-vasnetsov.jpg
new file mode 100644
index 000000000..216ffb9cd
Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov.jpg differ
diff --git a/source/img/trainers/daniel-vasnetsov.webp b/source/img/trainers/daniel-vasnetsov.webp
new file mode 100644
index 000000000..a8a77ea24
Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov.webp differ
diff --git a/source/img/trainers/daniel-vasnetsov@2x.jpg b/source/img/trainers/daniel-vasnetsov@2x.jpg
new file mode 100644
index 000000000..a56a17dcd
Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov@2x.jpg differ
diff --git a/source/img/trainers/daniel-vasnetsov@2x.webp b/source/img/trainers/daniel-vasnetsov@2x.webp
new file mode 100644
index 000000000..0c50a829f
Binary files /dev/null and b/source/img/trainers/daniel-vasnetsov@2x.webp differ
diff --git a/source/img/trainers/fyodor-kaigorodov.jpg b/source/img/trainers/fyodor-kaigorodov.jpg
new file mode 100644
index 000000000..bc368cf6d
Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov.jpg differ
diff --git a/source/img/trainers/fyodor-kaigorodov.webp b/source/img/trainers/fyodor-kaigorodov.webp
new file mode 100644
index 000000000..20310c28f
Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov.webp differ
diff --git a/source/img/trainers/fyodor-kaigorodov@2x.jpg b/source/img/trainers/fyodor-kaigorodov@2x.jpg
new file mode 100644
index 000000000..97ae64cfc
Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov@2x.jpg differ
diff --git a/source/img/trainers/fyodor-kaigorodov@2x.webp b/source/img/trainers/fyodor-kaigorodov@2x.webp
new file mode 100644
index 000000000..87fc7cd67
Binary files /dev/null and b/source/img/trainers/fyodor-kaigorodov@2x.webp differ
diff --git a/source/img/trainers/nadezhda-kolesnichenko.jpg b/source/img/trainers/nadezhda-kolesnichenko.jpg
new file mode 100644
index 000000000..13d84d3f8
Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko.jpg differ
diff --git a/source/img/trainers/nadezhda-kolesnichenko.webp b/source/img/trainers/nadezhda-kolesnichenko.webp
new file mode 100644
index 000000000..b4bffd035
Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko.webp differ
diff --git a/source/img/trainers/nadezhda-kolesnichenko@2x.jpg b/source/img/trainers/nadezhda-kolesnichenko@2x.jpg
new file mode 100644
index 000000000..ca76d1929
Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko@2x.jpg differ
diff --git a/source/img/trainers/nadezhda-kolesnichenko@2x.webp b/source/img/trainers/nadezhda-kolesnichenko@2x.webp
new file mode 100644
index 000000000..a01a849cd
Binary files /dev/null and b/source/img/trainers/nadezhda-kolesnichenko@2x.webp differ
diff --git a/source/img/trainers/svetlana-afinogenova.jpg b/source/img/trainers/svetlana-afinogenova.jpg
new file mode 100644
index 000000000..8d745c79d
Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova.jpg differ
diff --git a/source/img/trainers/svetlana-afinogenova.webp b/source/img/trainers/svetlana-afinogenova.webp
new file mode 100644
index 000000000..f047c7da2
Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova.webp differ
diff --git a/source/img/trainers/svetlana-afinogenova@2x.jpg b/source/img/trainers/svetlana-afinogenova@2x.jpg
new file mode 100644
index 000000000..152c7f2af
Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova@2x.jpg differ
diff --git a/source/img/trainers/svetlana-afinogenova@2x.webp b/source/img/trainers/svetlana-afinogenova@2x.webp
new file mode 100644
index 000000000..4d573b200
Binary files /dev/null and b/source/img/trainers/svetlana-afinogenova@2x.webp differ
diff --git a/source/index.html b/source/index.html
index 0ce0e1c9c..a03ccfc89 100644
--- a/source/index.html
+++ b/source/index.html
@@ -1,31 +1,429 @@
-
-
-
- Lifetour
-
-
-
-
-
-
-
-
-
-
- header
- hero
- tours
- training
+
+
+
+ Lifetour
+
+
+
+
+
+
+
+ Lifetour - организация походов в горы
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Захватывающие вершины Кавказа
+
В сопровождении опытных гидов вы пройдёте через потрясающие ландшафты и совершите восход на вершину горы Чегет.
+
+
Смотреть тур
+
+
6 дней/5 ночей
+
Высокая сложность
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Невероятная природа Камчатки
+
Незабываемое приключение, во время которого вы отправитесь в путешествие по одному из самых нетронутых уголков дикой природы в мире.
+
+
Смотреть тур
+
+
9 дней/10 ночей
+
Средняя сложность
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Магические пейзажи Алтайского Края
+
Алтайский трекинг-тур — это захватывающее приключение с посещением магических и захватывающих дух ландшафтов Алтайских гор.
+
+
Смотреть тур
+
+
8 дней/7 ночей
+
Лёгкая сложность
+
+
+
+
+
+
+
+
+
+
Ближайшие туры
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Кавказ
+
4 дня
+
3 ночи
+
+
Путешествие
+ вокруг Эльбруса
+
+
+ Сложность:
+
+
+
+
+
+
+
+ Даты набора:
+ 12.06–19.06
+
+
+ Группа:
+ до 15 чел.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Алтай
+
14 дней
+
13 ночей
+
+
Путь к подножию
+ Белухи
+
+
+ Сложность:
+
+
+
+
+
+
+
+ Даты набора:
+ 14.06-23.06
+
+
+ Группа:
+ до 25 чел.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Адыгея
+
7 дней
+
6 ночей
+
+
Через Фишт
+ к Чёрному морю и обратно
+
+
+ Сложность:
+
+
+
+
+
+
+
+ Даты набора:
+ 15.07-19.07
+
+
+ Группа:
+ до 22 чел.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Урал
+
9 дней
+
10 ночей
+
+
Восхождение Манарага
+
+
+ Сложность:
+
+
+
+
+
+
+
+ Даты набора:
+ 12.07-19.07
+
+
+ Группа:
+ до 7 чел.
+
+
+
+
+
+
+
+ Показать все туры
+
+
+
+
+
+
+
+ Обучение
+ Обучение проводится квалифицированными специалистами, за плечами которых десятки пройденных маршрутов Кавказа, Крыма, Гималаев, Эльбруса, Алтая, Карелии, Адыгеи и других.
+
+
Наши инструкторы
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Строгий и внимательный инструктор, весёлый и общительный человек. Любит природу.
+
+
+
+
+
+
+
+
+ Видеть мир вокруг, познавать его опасности, находить друг друга, становиться ближе, чувствовать — в этом назначение жизни.
+
+
+
+
+
+
+
+
+ Участники говорят, что Надежда ответственная, приятная в общении, и в поездках с ней чувствуешь себя спокойно и уверенно.
+
+
+
+
+
+
+
+
+ Опыт походов: Ходит в походы с 2001 года. В России побывал в горных районах Хибины, Архыз, много путешествует по Европе.
+
+
+
+
+
+
+
+
+ Покорял самые сложные вершины. Выбирался из под лавин, дружит с медведями и не только.
+
+
+
+
+
Процесс обучения
+
+
+ Изучение спортивного туристского движения
+
+
+ Подготовка и техническое снаряжение в походах
+
+
+ Лекции по окружающей среде, экологии и гигиене
+
+
+ Разъяснение сложности горных препятствий
+
+
+
+
+
about
reviews
adv
gallery
form
- footer
-
-
+
+
+
+
+
+
+
diff --git a/source/js/main.js b/source/js/main.js
index 70fde252c..7b16a392c 100644
--- a/source/js/main.js
+++ b/source/js/main.js
@@ -1,4 +1,9 @@
-// https://swiperjs.com/get-started#installation
-// import Swiper from "swiper";
-// import {Navigation, Pagination} from "swiper/modules";
-// import 'swiper/css';
+import { initHeroSwiper } from './modules/hero-slider';
+import { initToursSwiper } from './modules/tours-slider';
+import { initTrainersSwiper } from './modules/trainers-slider';
+import { getRating } from './modules/stars';
+
+initHeroSwiper();
+initToursSwiper();
+initTrainersSwiper();
+getRating();
diff --git a/source/js/modules/hero-slider.js b/source/js/modules/hero-slider.js
new file mode 100644
index 000000000..eff979f29
--- /dev/null
+++ b/source/js/modules/hero-slider.js
@@ -0,0 +1,43 @@
+import Swiper from 'swiper';
+import { Pagination } from 'swiper/modules';
+
+const initHeroSwiper = () => {
+ const swiper = new Swiper('.hero-slider', {
+ modules: [ Pagination ],
+ direction: 'horizontal',
+ loop: true,
+ slidesPerView: 1,
+ spaceBetween: 0,
+ pagination: {
+ el: '.swiper-pagination',
+ clickable: false,
+ },
+ breakpoints: {
+ 320: {
+ grabCursor: true,
+ allowTouchMove: true,
+ pagination: {
+ clickable: false,
+ },
+ },
+ 768: {
+ grabCursor: true,
+ allowTouchMove: true,
+ pagination: {
+ clickable: false,
+ },
+ },
+ 1440: {
+ grabCursor: false,
+ allowTouchMove: false,
+ pagination: {
+ clickable: true,
+ },
+ },
+ }
+ });
+ return swiper;
+};
+
+export { initHeroSwiper };
+
diff --git a/source/js/modules/stars.js b/source/js/modules/stars.js
new file mode 100644
index 000000000..761a04f7c
--- /dev/null
+++ b/source/js/modules/stars.js
@@ -0,0 +1,37 @@
+const createStars = (filled) => {
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
+ svg.setAttribute('width', '15');
+ svg.setAttribute('height', '13');
+
+ const use = document.createElementNS('http://www.w3.org/2000/svg', 'use');
+ use.setAttribute('href', '/__spritemap#sprite-star-fill-none');
+
+
+ if (filled) {
+ use.setAttribute('href', '/__spritemap#sprite-star-fill-white');
+ }
+
+ svg.appendChild(use);
+ return svg;
+};
+
+const getRating = () => {
+ document.addEventListener('DOMContentLoaded', () => {
+ const starsContainer = document.querySelectorAll('.card__info-list-item');
+ starsContainer.forEach((item) => {
+ const ratingSpan = item.querySelector('[data-rating]');
+
+ if(ratingSpan) {
+ const ratingValue = ratingSpan.dataset.rating;
+ ratingSpan.innerHTML = '';
+
+ for (let i = 0; i < 5; i++) {
+ const star = createStars(i < ratingValue);
+ ratingSpan.appendChild(star);
+ }
+ }
+ });
+ });
+};
+
+export { getRating };
diff --git a/source/js/modules/tours-slider.js b/source/js/modules/tours-slider.js
new file mode 100644
index 000000000..adb9d6c87
--- /dev/null
+++ b/source/js/modules/tours-slider.js
@@ -0,0 +1,34 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+
+const initToursSwiper = () => {
+ const swiper = new Swiper('.tours__slider', {
+ modules: [ Navigation ],
+ navigation: {
+ nextEl: '.tours__slider-control-button.swiper-button-next',
+ prevEl: '.tours__slider-control-button.swiper-button-prev',
+ },
+ direction: 'horizontal',
+ loop: false,
+ grabCursor: true,
+ allowTouchMove: true,
+ breakpoints: {
+ 320: {
+ slidesPerView: 1,
+ spaceBetween: 30,
+ },
+ 768: {
+ slidesPerView: 2,
+ spaceBetween: 18,
+ },
+ 1440: {
+ slidesPerView: 3,
+ spaceBetween: 30,
+ },
+ }
+ });
+
+ return swiper;
+};
+
+export { initToursSwiper };
diff --git a/source/js/modules/trainers-slider.js b/source/js/modules/trainers-slider.js
new file mode 100644
index 000000000..5c5f9e21f
--- /dev/null
+++ b/source/js/modules/trainers-slider.js
@@ -0,0 +1,37 @@
+import Swiper from 'swiper';
+import { Navigation } from 'swiper/modules';
+
+const initTrainersSwiper = () => {
+ const swiper = new Swiper('.training__slider', {
+ modules: [ Navigation ],
+ navigation: {
+ nextEl: '.training__slider-control-button.swiper-button-next',
+ prevEl: '.training__slider-control-button.swiper-button-prev',
+ },
+ direction: 'horizontal',
+ loop: false,
+ grabCursor: true,
+ allowTouchMove: true,
+ breakpoints: {
+ 320: {
+ slidesPerView: 1,
+ spaceBetween: 30,
+ initialSlide: 2,
+ },
+ 768: {
+ slidesPerView: 3,
+ spaceBetween: 20,
+ initialSlide: 0,
+ },
+ 1440: {
+ slidesPerView: 4,
+ spaceBetween: 20,
+ initialSlide: 0,
+ },
+ }
+ });
+
+ return swiper;
+};
+
+export { initTrainersSwiper };
diff --git a/source/sass/blocks/card.scss b/source/sass/blocks/card.scss
new file mode 100644
index 000000000..2df5f97e6
--- /dev/null
+++ b/source/sass/blocks/card.scss
@@ -0,0 +1,196 @@
+.card {
+ position: relative;
+ margin: 0 auto;
+ width: 290px;
+ box-sizing: border-box;
+
+ color: var(--secondary-color, $secondary-color);
+ text-align: center;
+
+ img {
+ position: absolute;
+ display: block;
+
+ width: 100%;
+ height: 100%;
+ min-height: 416px;
+ object-fit: cover;
+ }
+}
+
+.card::before {
+ position: absolute;
+ display: block;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+
+ background: linear-gradient(to right, #0f1429 0%, rgba(15, 20, 41, 0.3) 0%, rgba(15, 20, 41, 0.2) 100%);
+ mix-blend-mode: multiply;
+ pointer-events: none;
+ z-index: 1;
+}
+
+.card__inner-container {
+ position: relative;
+ padding: 30px 20px;
+ min-height: 356px;
+ display: flex;
+ flex-flow: column wrap;
+ justify-content: flex-end;
+ gap: 15px;
+ z-index: 2;
+}
+
+.card__info-box {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+}
+
+.card__pin,
+.card__duration-text {
+ @include font (12px, 12px, 500);
+
+ position: relative;
+ margin: 0;
+
+ &::before {
+ position: absolute;
+ content: "";
+ display: block;
+ top: 50%;
+ left: 0;
+ transform: translateY(-50%);
+ }
+}
+
+.card__pin {
+ padding: 8px 12px 8px 34px;
+ background-color: var(--accent-color, $accent-color);
+
+ &::before {
+ width: 16px;
+ height: 16px;
+ left: 12px;
+ background-image: url("/__spritemap#sprite-white-pin-view");
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 9px 12px;
+ }
+}
+
+.card__duration-text {
+ padding: 8px 0 8px 32px;
+ box-sizing: border-box;
+ text-align: right;
+
+ &::before {
+ width: 20px;
+ height: 20px;
+ background-position: center;
+ background-repeat: no-repeat;
+ }
+}
+
+.card__duration-text--days {
+ min-width: 67px;
+
+ &::before {
+ background-image: url("/__spritemap#sprite-sun-view");
+ background-size: 20px 20px;
+ }
+}
+
+.card__duration-text--nights {
+ min-width: 74px;
+
+ &::before {
+ background-image: url("/__spritemap#sprite-moon-view");
+ background-size: 16px 16px;
+ }
+}
+
+.card__title {
+ @include font (24px, 28px, 700);
+
+ position: relative;
+ margin: 0;
+ padding-right: 35px;
+ text-align: left;
+
+ &::after {
+ position: absolute;
+ display: block;
+ content: "";
+ width: 80px;
+ height: 1px;
+ top: 125%;
+ left: 0;
+ background-color: var(--secondary-color, $secondary-color);
+ }
+}
+
+.card__info-list {
+ @include list-style;
+
+ margin-top: 15px;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 7px;
+}
+
+.card__info-list-item {
+ display: flex;
+ flex-flow: column wrap;
+ min-height: 32px;
+ text-align: left;
+
+ p {
+ @include font (13px, 13px, 700);
+
+ margin: 0;
+ }
+
+ p:first-of-type {
+ @include font (12px, 12px, 300);
+
+ margin: 0;
+ margin-bottom: 7px;
+ }
+
+ span {
+ display: inline-block;
+ width: 84px;
+ height: 16px;
+ }
+
+ span > svg {
+ display: inline-block;
+ margin-right: 0.7px;
+ width: 16px;
+ height: 16px;
+ }
+}
+
+.card__info-list-item--special:first-child p {
+ margin-bottom: 4px;
+}
+
+@media (min-width: $tablet-width) and (width <= 1439px) {
+ .card {
+ width: 330px;
+ }
+
+ .card__info-list {
+ gap: 28px;
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .card__info-list {
+ gap: 52px;
+ }
+}
diff --git a/source/sass/blocks/features-container.scss b/source/sass/blocks/features-container.scss
new file mode 100644
index 000000000..b22388da3
--- /dev/null
+++ b/source/sass/blocks/features-container.scss
@@ -0,0 +1,188 @@
+.features-container {
+ width: 100%;
+}
+
+.features-container__title {
+ @include font (16px, 16px, 700);
+
+ margin-top: 0;
+ margin-bottom: 25px;
+}
+
+.features-container__list {
+ @include list-style;
+}
+
+.features-container__item {
+ position: relative;
+
+ &::after {
+ position: absolute;
+ display: block;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 25px;
+ height: 25px;
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+}
+
+.features-container__item--map::after {
+ background-image: url("/__spritemap#sprite-map-view");
+}
+
+.features-container__item--boots::after {
+ background-image: url("/__spritemap#sprite-boots-view");
+}
+
+.features-container__item--forest::after {
+ background-image: url("/__spritemap#sprite-pine-tree-view");
+}
+
+.features-container__item--mountains::after {
+ background-image: url("/__spritemap#sprite-mountain-view");
+}
+
+.features-container__item .features-container__item-description {
+ @include font (12px, 18px, 400);
+
+ margin: 0;
+}
+
+@media (min-width: $mobile-width) and (width <= 767px) {
+ .features-container__list {
+ position: relative;
+ display: flex;
+ flex-flow: column wrap;
+ gap: 25px;
+ min-height: 219px;
+
+ &::before {
+ position: absolute;
+ content: "";
+ width: 2px;
+ height: 183px;
+ top: 11px;
+ bottom: 0;
+ left: 6px;
+ background-color: var(--accent-color, $accent-color);
+ z-index: 0;
+ }
+ }
+
+ .features-container__item {
+ padding: 0 26px 0 63px;
+
+ &::before {
+ position: absolute;
+ display: block;
+ content: "";
+ left: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 14px;
+ height: 14px;
+ border-radius: 50%;
+ background-color: var(--accent-color, $accent-color);
+ z-index: 1;
+ }
+
+ &::after {
+ top: 50%;
+ left: 29px;
+ transform: translateY(-50%);
+ }
+ }
+}
+
+@media (min-width: $tablet-width) and (width <= 1439px) {
+ .features-container__title {
+ margin-bottom: 104px;
+
+ font-size: 18px;
+ line-height: 18px;
+ }
+
+ .features-container__list {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 104px 174px;
+ min-height: 192px;
+ }
+
+ .features-container__item {
+ padding: 0 15px 0 35px;
+ }
+
+ .features-container__item--boots {
+ grid-area: 2/1/3/2;
+ }
+
+ .features-container__item--mountains {
+ grid-area: 1/2/2/3;
+ }
+
+ .features-container__item .features-container__item-description {
+ font-size: 14px;
+ line-height: 22px;
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .features-container__title {
+ margin-bottom: 23px;
+
+ font-size: 21px;
+ line-height: 21px;
+ }
+
+ .features-container__list {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+
+ &::before {
+ position: absolute;
+ content: "";
+ width: 1180px;
+ height: 2px;
+ bottom: 14px;
+ left: 20px;
+ background-color: var(--accent-color, $accent-color);
+ z-index: 0;
+ }
+ }
+
+ .features-container__item {
+ padding: 0 10px 0 45px;
+ width: 198px;
+ min-height: 102px;
+
+ &::before {
+ position: absolute;
+ display: block;
+ content: "";
+ left: 20px;
+ bottom: 0;
+ transform: translateY(-50%);
+ width: 14px;
+ height: 14px;
+ border-radius: 50%;
+ background-color: var(--accent-color, $accent-color);
+ z-index: 1;
+ }
+
+ &::after {
+ top: 0;
+ left: 10px;
+ }
+ }
+
+ .features-container__item .features-container__item-description {
+ font-size: 16px;
+ line-height: 24px;
+ }
+}
diff --git a/source/sass/blocks/header.scss b/source/sass/blocks/header.scss
new file mode 100644
index 000000000..1bc5c5ea4
--- /dev/null
+++ b/source/sass/blocks/header.scss
@@ -0,0 +1,162 @@
+.header {
+ width: 100%;
+ background-color: var(--accent-color, $accent-color);
+}
+
+.header__container {
+ position: relative;
+ margin: 0 auto;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.header__logo {
+ display: block;
+ height: 42px;
+}
+
+.header__burger {
+ position: absolute;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0;
+ width: 26px;
+ height: 26px;
+ background-color: transparent;
+ border: none;
+}
+
+.header__burger svg {
+ display: block;
+ width: 100%;
+ height: 100%;
+ fill: $secondary-color;
+}
+
+.header__menu {
+ @include list-style;
+
+ display: flex;
+ flex-flow: column-wrap;
+}
+
+.header__menu-link,
+.header__phone {
+ @include font(14px, 14px, 700);
+
+ color: var(--secondary-color, $secondary-color);
+ text-decoration: none;
+}
+
+.header__phone {
+ font-weight: 600;
+}
+
+@media (min-width: $mobile-width) and (width <= 767px) {
+ .header__container {
+ position: relative;
+ display: grid;
+ grid-template-columns: 148px 142px;
+ grid-template-rows: 42px 14px;
+ row-gap: 14px;
+ width: 290px;
+ padding: 15px;
+ }
+
+ .header__nav {
+ display: none;
+ }
+
+ .header__logo {
+ grid-area: 1/2/2/3;
+ }
+
+ .header__phone {
+ grid-area: 2/2/2/3;
+ text-align: right;
+ }
+
+ .header__burger {
+ position: absolute;
+ grid-area: 1/1/2/2;
+ top: 0;
+ left: 0;
+ }
+}
+
+@media (min-width: $tablet-width) and (width <= 1439px) {
+ .header__container {
+ position: relative;
+ width: 678px;
+ padding: 20px 45px;
+ justify-content: flex-end;
+ }
+
+ .header__nav {
+ display: none;
+ }
+
+ .header__burger {
+ top: 50%;
+ left: 45px;
+ transform: translateY(-50%);
+ }
+
+ .header__logo {
+ padding: 0 42px;
+ }
+
+ .header__menu-link {
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ .header__phone {
+ width: 226px;
+
+ font-size: 16px;
+ line-height: 16px;
+ text-align: right;
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .header__container {
+ width: 1200px;
+ padding: 32px 120px;
+ }
+
+ .header__logo {
+ padding: 10px 31px 10px 32px;
+ box-sizing: border-box;
+ height: 62px;
+ }
+
+ .header__nav {
+ display: block;
+ }
+
+ .header__burger {
+ display: none;
+ }
+
+ .header__menu {
+ width: 838px;
+ padding: 0 133px;
+ box-sizing: border-box;
+ flex-flow: row wrap;
+ justify-content: space-between;
+ }
+
+ .header__menu-link {
+ font-weight: 400;
+ }
+
+ .header__phone {
+ font-size: 18px;
+ line-height: 18px;
+ }
+}
diff --git a/source/sass/blocks/hero-slider.scss b/source/sass/blocks/hero-slider.scss
new file mode 100644
index 000000000..83ab9421a
--- /dev/null
+++ b/source/sass/blocks/hero-slider.scss
@@ -0,0 +1,242 @@
+.hero-slider {
+ position: relative;
+ width: 100%;
+ margin: 0 auto;
+ overflow: hidden;
+}
+
+.hero-slider__slide {
+ position: relative;
+ margin: 0 auto;
+ box-sizing: border-box;
+
+ color: var(--secondary-color, $secondary-color);
+ text-align: center;
+
+ img {
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 100%;
+ min-height: 568px;
+ object-fit: cover;
+ }
+}
+
+.hero-slider__slide::before {
+ position: absolute;
+ display: block;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+
+ background: linear-gradient(to right, #0f1429 0%, rgba(15, 20, 41, 0.4) 0%, rgba(15, 20, 41, 0.1) 100%);
+ mix-blend-mode: multiply;
+ pointer-events: none;
+ z-index: 1;
+}
+
+.hero-slider__slide-inner {
+ position: relative;
+ display: flex;
+ flex-flow: column wrap;
+ justify-content: center;
+ align-items: center;
+ width: 290px;
+ min-height: 472px;
+ margin: 0 auto;
+ padding: 40px 15px 56px;
+ z-index: 2;
+
+ div:first-of-type > h2 {
+ @include font(26px, 26px, 800);
+
+ margin-top: 0;
+ margin-bottom: 15px;
+ }
+
+ div:first-of-type > p {
+ @include font(15px, 20px, 400);
+
+ margin-top: 0;
+ margin-bottom: 60px;
+ }
+}
+
+.hero-slider__button {
+ @include font (16px, 16px, 500);
+
+ padding: 20px;
+ width: 140px;
+
+ background-color: var(--accent-color, $accent-color);
+ color: var(--secondary-color, $secondary-color);
+ text-decoration: none;
+}
+
+.hero-slider__info-container {
+ display: none;
+}
+
+.hero-slider__controls.swiper-pagination {
+ display: flex;
+ margin: 0;
+ width: 88px;
+ gap: 20px;
+ bottom: 40px;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+.hero-slider__controls.swiper-pagination .swiper-pagination-bullet {
+ margin: 0;
+ padding: 0;
+ width: 16px;
+ height: 16px;
+ outline: 1px solid var(--secondary-color, $secondary-color);
+ background-color: transparent;
+ opacity: 1;
+}
+
+.hero-slider__controls.swiper-pagination .swiper-pagination-bullet-active {
+ background-color: var(--secondary-color, $secondary-color);
+}
+
+
+@media (min-width: $tablet-width) and (width <= 1439px) {
+ .hero-slider__slide img {
+ min-height: 1034px;
+ }
+
+ .hero-slider__slide::before {
+ min-height: 1034px;
+ }
+
+ .hero-slider__slide-inner {
+ padding: 342px 45px 402px;
+ width: 678px;
+ min-height: 290px;
+
+ div:first-of-type > h2 {
+ font-size: 56px;
+ line-height: 56px;
+ }
+
+ div:first-of-type > p {
+ margin: 0 auto;
+ margin-bottom: 35px;
+ width: 500px;
+
+ font-size: 17px;
+ line-height: 24px;
+ font-weight: 300;
+ }
+ }
+
+ .hero-slider__controls.swiper-pagination {
+ display: flex;
+ align-items: center;
+ width: 100px;
+ height: 100px;
+ bottom: 0;
+ }
+
+ .hero-slider__controls.swiper-pagination .swiper-pagination-bullet {
+ width: 20px;
+ height: 20px;
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .hero-slider__slide img {
+ min-height: 800px;
+ }
+
+ .hero-slider__slide::before {
+ min-height: 800px;
+ }
+
+ .hero-slider__slide-inner {
+ width: 1440px;
+ min-height: 800px;
+ padding: 200px 385px 80px 120px;
+ box-sizing: border-box;
+
+ text-align: left;
+
+ div:first-of-type > h2 {
+ margin-bottom: 25px;
+
+ font-size: 77px;
+ line-height: 77px;
+ }
+
+ div:first-of-type > p {
+ margin-bottom: 35px;
+ width: 465px;
+
+ font-size: 17px;
+ line-height: 24px;
+ }
+ }
+
+ .hero-slider__button {
+ margin-right: auto;
+ margin-bottom: 134px;
+ text-align: center;
+ }
+
+ .hero-slider__info-container {
+ margin-right: auto;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+ width: 700px;
+ }
+
+ .hero-slider__info-text {
+ @include font (12px, 16px, 400);
+
+ position: relative;
+ display: inline-block;
+ margin: 0;
+ padding: 14px 20px 14px 40px;
+ outline: 1px solid var(--secondary-color, $secondary-color);
+
+ &::before {
+ position: absolute;
+ display: inline-block;
+ content: "";
+ width: 12px;
+ height: 12px;
+ top: 50%;
+ left: 20px;
+ transform: translateY(-50%);
+ }
+ }
+
+ .hero-slider__info--duration::before {
+ background-image: url("/__spritemap#sprite-moon-view");
+ background-size: 11px 11px;
+ background-repeat: no-repeat;
+ }
+
+ .hero-slider__info--complexity::before {
+ background-image: url("/__spritemap#sprite-level-view");
+ background-size: 10px 11px;
+ background-repeat: no-repeat;
+ }
+
+ .hero-slider__controls.swiper-pagination {
+ width: 100px;
+ left: 88%;
+ bottom: 82px;
+ }
+
+ .hero-slider__controls.swiper-pagination .swiper-pagination-bullet {
+ width: 20px;
+ height: 20px;
+ }
+}
diff --git a/source/sass/blocks/main.scss b/source/sass/blocks/main.scss
new file mode 100644
index 000000000..a08143463
--- /dev/null
+++ b/source/sass/blocks/main.scss
@@ -0,0 +1,65 @@
+.main__background {
+ position: relative;
+}
+
+.main__section {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+ background-color: var(--secondary-color, $secondary-color);
+ z-index: 1;
+}
+
+@media (min-width: $mobile-width) and (width <= 767px) {
+ .main__section.tours::before {
+ position: absolute;
+ content: "";
+ width: 995px;
+ height: 595px;
+ top: 10px;
+ left: 55%;
+ background-image:
+ image-set(
+ url("../../img/cloud-background/mountains-and-clouds.webp") type("image/webp") 1x,
+ url("../../img/cloud-background/mountains-and-clouds@2x.webp") type("image/webp") 2x,
+ url("../../img/cloud-background/mountains-and-clouds.png") type("image/png") 1x,
+ url("../../img/cloud-background/mountains-and-clouds@2x.png") type("image/png") 2x
+ );
+ background-size: cover;
+ z-index: -1;
+ }
+}
+
+@media (min-width: $tablet-width) {
+ .main__section {
+ position: relative;
+ background-color: transparent;
+ z-index: 0;
+ }
+
+ .main__background::before {
+ position: absolute;
+ content: "";
+ width: 2060px;
+ height: 1630px;
+ top: 925px;
+ left: 300px;
+ background-image:
+ image-set(
+ url("../../img/cloud-background/mountains-and-clouds.webp") type("image/webp") 1x,
+ url("../../img/cloud-background/mountains-and-clouds@2x.webp") type("image/webp") 2x,
+ url("../../img/cloud-background/mountains-and-clouds.png") type("image/png") 1x,
+ url("../../img/cloud-background/mountains-and-clouds@2x.png") type("image/png") 2x
+ );
+ background-size: cover;
+ z-index: -1;
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .main__background::before {
+ top: 686px;
+ left: 864px;
+ }
+}
+
diff --git a/source/sass/blocks/tours.scss b/source/sass/blocks/tours.scss
new file mode 100644
index 000000000..c7ea11043
--- /dev/null
+++ b/source/sass/blocks/tours.scss
@@ -0,0 +1,121 @@
+.tours__container {
+ position: relative;
+ margin: 0 auto;
+ width: 320px;
+ padding: 20px 15px;
+ box-sizing: border-box;
+ overflow: hidden;
+}
+
+.tours__inner {
+ position: relative;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 25px;
+}
+
+.tours__slider-controls {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ width: 78px;
+ min-height: 35px;
+}
+
+.tours__title {
+ @include font (22px, 22px, 800);
+
+ padding: 17px 0;
+ margin: 0;
+}
+
+.tours__slide-list.swiper-wrapper {
+ @include list-style;
+
+ margin-bottom: 25px;
+}
+
+.tours__button {
+ @include font (14px, 14px, 700);
+
+ position: relative;
+ display: block;
+ margin: 0 auto;
+ padding: 10px;
+ padding-right: 28px;
+ min-width: 212px;
+ letter-spacing: 0.04em;
+ box-sizing: border-box;
+
+ text-transform: uppercase;
+ text-decoration: none;
+ text-align: center;
+ color: var(--primary-color, $primary-color);
+}
+
+.tours__button svg {
+ position: absolute;
+ top: 50%;
+ left: 78%;
+ transform: translateY(-50%);
+ display: block;
+ stroke: #2d383f;
+ fill: none;
+}
+
+@media (min-width: $mobile-width) and (width <= 767px) {
+ .tours__slider-controls {
+ display: none;
+ }
+}
+
+@media (min-width: $tablet-width) and (width <= 1439px) {
+ .tours__container {
+ width: 678px;
+ padding: 40px 0;
+ }
+
+ .tours__title {
+ padding: 20px 0 5px;
+
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ .tours__button {
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ .tours__button svg {
+ left: 63%;
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .tours__container {
+ width: 1200px;
+ padding: 100px 0;
+ }
+
+ .tours__slide-list.swiper-wrapper {
+ margin-bottom: 53px;
+ }
+
+ .tours__title {
+ margin-bottom: 53;
+
+ font-size: 55px;
+ line-height: 55px;
+ }
+
+ .tours__button {
+ font-size: 16px;
+ line-height: 16px;
+ }
+
+ .tours__button svg {
+ left: 57%;
+ }
+}
diff --git a/source/sass/blocks/training.scss b/source/sass/blocks/training.scss
new file mode 100644
index 000000000..b02b7f4a6
--- /dev/null
+++ b/source/sass/blocks/training.scss
@@ -0,0 +1,193 @@
+.training {
+ margin: 0 auto;
+ padding: 20px 15px;
+ width: 290px;
+
+ p {
+ @include font (14px, 20px, 400);
+
+ margin-top: 0;
+ margin-bottom: 25px;
+ }
+}
+
+.training__title {
+ @include font (22px, 22px, 800);
+
+ position: relative;
+ margin: 0;
+ margin-bottom: 18px;
+ padding: 16px 0 17px;
+}
+
+.training__inner {
+ position: relative;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 25px;
+}
+
+.training__slider-controls {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ width: 78px;
+ min-height: 35px;
+}
+
+.training__inner-title {
+ @include font (22px, 22px, 800);
+
+ margin: 0;
+}
+
+.training__slider {
+ margin: 0 auto;
+ margin-bottom: 25px;
+ width: 100%;
+ overflow: hidden;
+}
+
+.training__slider-list {
+ @include list-style;
+}
+
+.training__slider-item.swiper-slide {
+ display: flex;
+ flex-flow: column wrap;
+ gap: 15px;
+ width: 290px;
+ min-height: 356px;
+ padding: 15px;
+ box-sizing: border-box;
+ border: 1px solid rgba(2, 102, 193, 0.2);
+ background-color: var(--secondary-color, $secondary-color);
+
+ div {
+ display: grid;
+ grid-template-columns: 1fr 24px;
+ width: 100%;
+ }
+
+ a,
+ picture {
+ display: block;
+ }
+
+ a {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 24px;
+ height: 24px;
+ outline: 1px solid var(--primary-color, $primary-color);
+ }
+
+ h4 {
+ @include font (14px, 16px, 700);
+
+ margin: 0;
+ padding-right: 15px;
+ }
+
+ p {
+ @include font (12px, 16px, 400);
+
+ margin: 0;
+ }
+}
+
+@media (min-width: $mobile-width) and (width <= 767px) {
+ .training__slider-controls {
+ display: none;
+ }
+}
+
+@media (min-width: $tablet-width) and (width <= 1439px) {
+ .training {
+ padding: 40px 45px;
+ width: 678px;
+
+ p {
+ font-size: 16px;
+ line-height: 24px;
+ }
+ }
+
+ .training__title {
+ margin-bottom: 26px;
+ padding: 20px 0 10px;
+
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ .training__inner {
+ margin-bottom: 30px;
+ }
+
+ .training__inner-title {
+ font-size: 25px;
+ line-height: 25px;
+ }
+
+ .training__slider-item.swiper-slide {
+ padding-bottom: 13px;
+ min-height: 388px;
+
+ picture {
+ width: 182px;
+ height: 200px;
+ overflow: hidden;
+ }
+
+ picture img {
+ object-fit: contain;
+ object-position: -31px center;
+ }
+ }
+}
+
+@media (min-width: $desktop-width) {
+ .training {
+ padding: 40px 120px;
+ width: 1200px;
+
+ p {
+ font-size: 16px;
+ line-height: 24px;
+ }
+ }
+
+ .training__title {
+ margin-bottom: 37px;
+ padding: 19px 0 1px;
+
+ font-size: 35px;
+ line-height: 35px;
+ }
+
+ .training__inner {
+ margin-bottom: 20px;
+ }
+
+ .training__inner-title {
+ font-size: 35px;
+ line-height: 35px;
+ }
+
+ .training__slider-item.swiper-slide {
+ padding-bottom: 13px;
+
+ picture {
+ width: 255px;
+ height: 200px;
+ overflow: hidden;
+ }
+
+ h4 {
+ padding-right: 55px;
+ }
+ }
+}
diff --git a/source/sass/common/buttons.scss b/source/sass/common/buttons.scss
new file mode 100644
index 000000000..61d62dca6
--- /dev/null
+++ b/source/sass/common/buttons.scss
@@ -0,0 +1,26 @@
+.slider-control-button.swiper-button-prev,
+.slider-control-button.swiper-button-next {
+ position: static;
+ display: flex;
+ align-items: center;
+ margin: 0;
+ width: 37px;
+ height: 35px;
+ border: none;
+ background-color: var(--accent-color, $accent-color);
+
+ &::after {
+ display: none;
+ }
+}
+
+.slider-control-button.swiper-button-disabled {
+ background-color: var(--disabled-element-color, $disabled-element-color);
+ opacity: 1;
+}
+
+.slider-control-button svg {
+ width: 13px;
+ height: 9px;
+ fill: var(--secondary-color, $secondary-color);
+}
diff --git a/source/sass/common/fonts.scss b/source/sass/common/fonts.scss
new file mode 100644
index 000000000..70c951e33
--- /dev/null
+++ b/source/sass/common/fonts.scss
@@ -0,0 +1,8 @@
+$base-font: "Montserrat","Arial", sans-serif;
+
+@include font-face("Montserrat", 300, normal, url("../../fonts/montserrat-light.woff2") format("woff2"), url("../../fonts/montserrat-light.woff") format("woff"));
+@include font-face("Montserrat", 400, normal, url("../../fonts/montserrat-regular.woff2") format("woff2"), url("../../fonts/montserrat-regular.woff") format("woff"));
+@include font-face("Montserrat", 500, normal, url("../../fonts/montserrat-medium.woff2") format("woff2"), url("../../fonts/montserrat-regular.woff") format("woff"));
+@include font-face("Montserrat", 600, normal, url("../../fonts/montserrat-semiBold.woff2") format("woff2"), url("../../fonts/montserrat-semiBold.woff") format("woff"));
+@include font-face("Montserrat", 700, normal, url("../../fonts/montserrat-bold.woff2") format("woff2"), url("../../fonts/montserrat-bold.woff") format("woff"));
+@include font-face("Montserrat", 800, normal, url("../../fonts/montserrat-extraBold.woff2") format("woff2"), url("../../fonts/montserrat-extraBold.woff") format("woff"));
diff --git a/source/sass/common/global.scss b/source/sass/common/global.scss
new file mode 100644
index 000000000..9293dfd19
--- /dev/null
+++ b/source/sass/common/global.scss
@@ -0,0 +1,57 @@
+:root {
+ --primary-color: #2d383f;
+ --secondary-color: #ffffff;
+ --accent-color: #0266c1;
+ --disabled-element-color: #999999;
+}
+
+html {
+ height: 100%;
+ scroll-behavior: smooth;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ margin: 0 auto;
+ min-width: 320px;
+ min-height: 100vh;
+
+ font-family: $base-font;
+ cursor: default;
+
+ @media (min-width: $tablet-width) {
+ min-width: 768px;
+ }
+
+ @media (min-width: $desktop-width) {
+ min-width: 1440px;
+ }
+}
+
+[data-shadow]::before {
+ @include font(26px, 26px, 800);
+
+ position: absolute;
+ display: block;
+ content: attr(data-shadow);
+ width: 100%;
+ height: 26px;
+ top: 0;
+ left: 0;
+ color: rgba(45, 56, 63, 0.3);
+
+ opacity: 0.1;
+ z-index: -1;
+ pointer-events: none;
+
+ @media (min-width: $tablet-width) {
+ font-size: 40px;
+ line-height: 40px;
+ }
+
+ @media (min-width: $desktop-width) {
+ font-size: 55px;
+ line-height: 55px;
+ }
+}
diff --git a/source/sass/common/mixins.scss b/source/sass/common/mixins.scss
new file mode 100644
index 000000000..7ab0604f1
--- /dev/null
+++ b/source/sass/common/mixins.scss
@@ -0,0 +1,21 @@
+@mixin font-face($font-family, $font-weight, $font-style, $font-woff2-src, $font-woff-src) {
+ @font-face {
+ font-family: $font-family;
+ font-weight: $font-weight;
+ font-style: $font-style;
+ font-display: swap;
+ src: $font-woff2-src, $font-woff-src;
+ }
+}
+
+@mixin font($font-size, $line-height, $font-weight) {
+ font-size: $font-size;
+ line-height: $line-height;
+ font-weight: $font-weight;
+}
+
+@mixin list-style {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
diff --git a/source/sass/common/variables.scss b/source/sass/common/variables.scss
new file mode 100644
index 000000000..428e83c41
--- /dev/null
+++ b/source/sass/common/variables.scss
@@ -0,0 +1,10 @@
+/* COLORS */
+$primary-color: #2d383f;
+$secondary-color: #ffffff;
+$accent-color: #0266c1;
+$disabled-element-color: #999999;
+
+/* VIEWPORTS */
+$mobile-width: 320px;
+$tablet-width: 768px;
+$desktop-width: 1440px;
diff --git a/source/sass/common/visually-hidden.scss b/source/sass/common/visually-hidden.scss
new file mode 100644
index 000000000..70a0f84e7
--- /dev/null
+++ b/source/sass/common/visually-hidden.scss
@@ -0,0 +1,12 @@
+.visually-hidden {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ border: 0;
+ padding: 0;
+ white-space: nowrap;
+ clip-path: inset(100%);
+ clip: rect(0 0 0 0);
+ overflow: hidden;
+}
diff --git a/source/sass/style.scss b/source/sass/style.scss
index 96467369f..5cf2aab13 100644
--- a/source/sass/style.scss
+++ b/source/sass/style.scss
@@ -1,4 +1,23 @@
-// Vendor
-// ---------------------------------
+/* SWIPER */
+@import "../../node_modules/swiper/swiper-bundle.min.css";
+/* Vendor */
@import "vendor/normalize";
+
+/* GLOBAL */
+@import "./common/variables";
+@import "./common/mixins";
+@import "./common/fonts";
+@import "./common/global";
+@import "./common/visually-hidden";
+@import "./common/buttons";
+
+/* BLOCKS */
+@import "./blocks/header";
+@import "./blocks/main";
+@import "./blocks/hero-slider";
+@import "./blocks/tours";
+@import "./blocks/card";
+@import "./blocks/training";
+@import "./blocks/features-container";
+