diff --git a/messages/en.json b/messages/en.json
index 0d993c5..9455027 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -10,7 +10,8 @@
},
"Main": {
"title": "Bbuddy - Main",
- "description": "Bbuddy desc"
+ "description": "Bbuddy desc",
+ "news": "Professional Articles & Project News"
},
"Account": {
"menu": {
diff --git a/next.config.js b/next.config.js
index 8085c79..deff1b7 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,5 +1,6 @@
// @ts-check
const withNextIntl = require('next-intl/plugin')();
+const path = require('path');
/** @type {import('next').NextConfig} */
const nextConfig = {
@@ -9,6 +10,9 @@ const nextConfig = {
displayName: true,
namespace: 'bbuddy'
}
+ },
+ sassOptions: {
+ includePaths: [path.join(__dirname, 'styles')],
}
};
diff --git a/package-lock.json b/package-lock.json
index ca3145c..ddf636f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.0.1",
"dependencies": {
"@ant-design/cssinjs": "^1.18.1",
+ "@ant-design/icons": "^5.2.6",
"antd": "^5.12.1",
"next": "14.0.3",
"next-intl": "^3.3.1",
@@ -25,6 +26,7 @@
"eslint-config-molindo": "^7.0.0",
"eslint-config-next": "^14.0.3",
"postcss": "^8",
+ "sass": "^1.69.5",
"typescript": "^5"
}
},
@@ -1471,8 +1473,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -1744,8 +1745,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"engines": {
"node": ">=8"
}
@@ -1776,7 +1776,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
+ "devOptional": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -1934,14 +1934,13 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
- "peer": true,
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -1962,8 +1961,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -3253,7 +3251,7 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
+ "devOptional": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -3335,7 +3333,6 @@
"os": [
"darwin"
],
- "peer": true,
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
@@ -3661,6 +3658,12 @@
"node": ">= 4"
}
},
+ "node_modules/immutable": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
+ "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+ "devOptional": true
+ },
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -3804,8 +3807,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -3902,7 +3904,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
+ "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -3938,7 +3940,7 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
+ "devOptional": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -3989,7 +3991,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
+ "devOptional": true,
"engines": {
"node": ">=0.12.0"
}
@@ -4611,8 +4613,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4960,7 +4961,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
+ "devOptional": true,
"engines": {
"node": ">=8.6"
},
@@ -5951,8 +5952,7 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -6256,6 +6256,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/sass": {
+ "version": "1.69.5",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
+ "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
+ "devOptional": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/scheduler": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
@@ -6789,7 +6806,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
+ "devOptional": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -8219,8 +8236,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -8418,8 +8434,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "peer": true
+ "devOptional": true
},
"bplist-parser": {
"version": "0.2.0",
@@ -8444,7 +8459,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
+ "devOptional": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -8532,8 +8547,7 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -8549,8 +8563,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"requires": {
"is-glob": "^4.0.1"
}
@@ -9506,7 +9519,7 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
+ "devOptional": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -9564,8 +9577,7 @@
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
- "optional": true,
- "peer": true
+ "optional": true
},
"function-bind": {
"version": "1.1.2",
@@ -9786,6 +9798,12 @@
"integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
"dev": true
},
+ "immutable": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
+ "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+ "devOptional": true
+ },
"import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@@ -9904,8 +9922,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"requires": {
"binary-extensions": "^2.0.0"
}
@@ -9963,7 +9980,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
+ "devOptional": true
},
"is-finalizationregistry": {
"version": "1.0.2",
@@ -9987,7 +10004,7 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
+ "devOptional": true,
"requires": {
"is-extglob": "^2.1.1"
}
@@ -10017,7 +10034,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
+ "devOptional": true
},
"is-number-object": {
"version": "1.0.7",
@@ -10470,8 +10487,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "peer": true
+ "devOptional": true
},
"normalize-range": {
"version": "0.1.2",
@@ -10716,7 +10732,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
+ "devOptional": true
},
"pify": {
"version": "2.3.0",
@@ -11369,8 +11385,7 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "peer": true,
+ "devOptional": true,
"requires": {
"picomatch": "^2.2.1"
}
@@ -11573,6 +11588,17 @@
"is-regex": "^1.1.4"
}
},
+ "sass": {
+ "version": "1.69.5",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
+ "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
+ "devOptional": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
"scheduler": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
@@ -11969,7 +11995,7 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
+ "devOptional": true,
"requires": {
"is-number": "^7.0.0"
}
diff --git a/package.json b/package.json
index f1f5e4b..51c496a 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"@ant-design/cssinjs": "^1.18.1",
+ "@ant-design/icons": "^5.2.6",
"antd": "^5.12.1",
"next": "14.0.3",
"next-intl": "^3.3.1",
@@ -26,6 +27,7 @@
"eslint-config-molindo": "^7.0.0",
"eslint-config-next": "^14.0.3",
"postcss": "^8",
+ "sass": "^1.69.5",
"typescript": "^5"
}
}
diff --git a/public/images/arrow-back.svg b/public/images/arrow-back.svg
new file mode 100644
index 0000000..2462aee
--- /dev/null
+++ b/public/images/arrow-back.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/arrow-sidebar.svg b/public/images/arrow-sidebar.svg
new file mode 100644
index 0000000..7c80f27
--- /dev/null
+++ b/public/images/arrow-sidebar.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/attach-form.svg b/public/images/attach-form.svg
new file mode 100644
index 0000000..f74f0b4
--- /dev/null
+++ b/public/images/attach-form.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/attach.svg b/public/images/attach.svg
new file mode 100644
index 0000000..84f62dc
--- /dev/null
+++ b/public/images/attach.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/author.png b/public/images/author.png
new file mode 100644
index 0000000..10b4d7c
Binary files /dev/null and b/public/images/author.png differ
diff --git a/public/images/calendar-clear-outline.svg b/public/images/calendar-clear-outline.svg
new file mode 100644
index 0000000..560eaac
--- /dev/null
+++ b/public/images/calendar-clear-outline.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/public/images/calendar-outline.svg b/public/images/calendar-outline.svg
new file mode 100644
index 0000000..6fc851c
--- /dev/null
+++ b/public/images/calendar-outline.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/camera.svg b/public/images/camera.svg
new file mode 100644
index 0000000..e1b2c13
--- /dev/null
+++ b/public/images/camera.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/public/images/close.svg b/public/images/close.svg
new file mode 100644
index 0000000..4a9aa1b
--- /dev/null
+++ b/public/images/close.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/eye-off.svg b/public/images/eye-off.svg
new file mode 100644
index 0000000..d239e4d
--- /dev/null
+++ b/public/images/eye-off.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/public/images/eye-outline.svg b/public/images/eye-outline.svg
new file mode 100644
index 0000000..62a6d17
--- /dev/null
+++ b/public/images/eye-outline.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/public/images/heart-outline.svg b/public/images/heart-outline.svg
new file mode 100644
index 0000000..30d5c1f
--- /dev/null
+++ b/public/images/heart-outline.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/info.png b/public/images/info.png
new file mode 100644
index 0000000..d3b7106
Binary files /dev/null and b/public/images/info.png differ
diff --git a/public/images/mic-outline.svg b/public/images/mic-outline.svg
new file mode 100644
index 0000000..e68515c
--- /dev/null
+++ b/public/images/mic-outline.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/public/images/news-top.png b/public/images/news-top.png
new file mode 100644
index 0000000..211e22c
Binary files /dev/null and b/public/images/news-top.png differ
diff --git a/public/images/news.png b/public/images/news.png
new file mode 100644
index 0000000..a606a2d
Binary files /dev/null and b/public/images/news.png differ
diff --git a/public/images/news1.png b/public/images/news1.png
new file mode 100644
index 0000000..0fa34d5
Binary files /dev/null and b/public/images/news1.png differ
diff --git a/public/images/paper-plane-outline.svg b/public/images/paper-plane-outline.svg
new file mode 100644
index 0000000..fc04d9d
--- /dev/null
+++ b/public/images/paper-plane-outline.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/sertific.png b/public/images/sertific.png
new file mode 100644
index 0000000..893fe63
Binary files /dev/null and b/public/images/sertific.png differ
diff --git a/public/images/share-social.svg b/public/images/share-social.svg
new file mode 100644
index 0000000..6a17d44
--- /dev/null
+++ b/public/images/share-social.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/stars.svg b/public/images/stars.svg
new file mode 100644
index 0000000..772a74b
--- /dev/null
+++ b/public/images/stars.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/public/images/timezone.svg b/public/images/timezone.svg
new file mode 100644
index 0000000..261ae97
--- /dev/null
+++ b/public/images/timezone.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/images/user-avatar.png b/public/images/user-avatar.png
new file mode 100644
index 0000000..bd28328
Binary files /dev/null and b/public/images/user-avatar.png differ
diff --git a/public/images/videocam-outline.svg b/public/images/videocam-outline.svg
new file mode 100644
index 0000000..9b42272
--- /dev/null
+++ b/public/images/videocam-outline.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/public/images/wave-2.svg b/public/images/wave-2.svg
new file mode 100644
index 0000000..31a4145
--- /dev/null
+++ b/public/images/wave-2.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/wave-footer.svg b/public/images/wave-footer.svg
new file mode 100644
index 0000000..a264785
--- /dev/null
+++ b/public/images/wave-footer.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/images/wave-top.svg b/public/images/wave-top.svg
new file mode 100644
index 0000000..f53c4db
--- /dev/null
+++ b/public/images/wave-top.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/app/[locale]/(main)/@directions/page.tsx b/src/app/[locale]/(main)/@directions/page.tsx
index ecf02ef..2a20d96 100644
--- a/src/app/[locale]/(main)/@directions/page.tsx
+++ b/src/app/[locale]/(main)/@directions/page.tsx
@@ -4,7 +4,7 @@ export default function Directions() {
return (
-
Popular Directions
+
Popular Topics
diff --git a/src/app/[locale]/(main)/@experts/page.tsx b/src/app/[locale]/(main)/@experts/page.tsx
index 2b5e6b5..f7222e6 100644
--- a/src/app/[locale]/(main)/@experts/page.tsx
+++ b/src/app/[locale]/(main)/@experts/page.tsx
@@ -1,120 +1,92 @@
+'use client';
+
import React from 'react';
+import { Avatar, List, Typography, Tag } from 'antd';
+import { RightOutlined } from '@ant-design/icons';
+import { Link } from '../../../../navigation';
+import { ExpertsFilter, ExpertsAdditionalFilter } from '../../../../components/Experts';
+
+const { Text } = Typography;
+
+const data = Array.from({ length: 10 }).map((_, i) => ({
+ href: '/',
+ name: 'Matthew Weeks',
+ avatar: '/images/person.png',
+ duration: '45min',
+ price: '45$',
+ skills: ['Engineering & Data', 'Soft skills', 'Interview'],
+ speciality: 'Senior Software Engineer',
+ specialityDesc: 'Auth0',
+ description: 'I have worked across a variety of organizations, lead teams, and delivered quality software for 8 years. In that time I\'ve worked as an independent consultant, at agencies as a team lead, and as a senior engineer at Auth0. I also host a podcast https://anchor.fm/work-in-programming where I break down how …'
+}));
export default function Experts() {
+ const expertsList = (
+
{
+ console.log(page);
+ },
+ pageSize: 5
+ }}
+ dataSource={data}
+ renderItem={(item) => (
+
+ }
+ title={item.name}
+ description={(
+
+ {item.price} / {item.duration}
+
+ )}
+ />
+
+
+ {item.skills.map((skill) =>
{skill} )}
+
Engineering & Data
+
+6
+
+
+ {item.speciality}
+ {item.specialityDesc}
+ {item.description}
+
+
+ ,
+ onCopy: undefined,
+ tooltips: false
+ }}
+ >
+ Details
+
+
+
+
+ )}
+ />
+ );
+
return (
-
Find a expert
+
Find an expert
-
-
Coaching
-
-
-
Work-life Balance
-
-
-
-
-
-
-
-
Strategic Session
-
-
-
-
-
-
-
-
Personal Growth
-
-
-
-
-
-
-
-
Career Planning
-
-
-
-
-
-
-
-
Executive Coaching
-
-
-
-
-
-
-
-
Mentoring
-
-
-
Career Development
-
-
-
-
-
-
-
-
-
Business-consultation
-
-
-
Business Model Review
-
-
-
-
-
-
-
-
Price from 45$ to 170$
-
-
Duration from 45m to 120m
-
-
Apply
-
+
-
-
-
-
-
-
- By top views
-
-
-
-
- All
- Fr
-
-
-
Find
-
+
@@ -149,106 +121,7 @@ export default function Experts() {
-
-
-
-
-
-
-
Matthew Weeks
-
- 45$ / 45min
-
-
-
-
-
-
Engineering & Data
-
Engineering & Data
-
+6
-
-
-
Senior Software Engineer
-
Auth0
-
- I have worked across a variety of organizations, lead teams, and delivered quality
- software for 8 years. In that time I've worked as an independent consultant, at
- agencies as a team lead, and as a senior engineer at Auth0. I also host a podcast
- https://anchor.fm/work-in-programming where I break down how …
-
-
-
-
-
-
-
-
-
-
Matthew Weeks
-
- 45$ / 45min
-
-
-
-
-
-
Engineering & Data
-
Engineering & Data
-
+6
-
-
-
Senior Software Engineer
-
Auth0
-
- I have worked across a variety of organizations, lead teams, and delivered quality
- software for 8 years. In that time I've worked as an independent consultant, at
- agencies as a team lead, and as a senior engineer at Auth0. I also host a podcast
- https://anchor.fm/work-in-programming where I break down how …
-
-
-
-
-
-
-
-
-
-
Matthew Weeks
-
- 45$ / 45min
-
-
-
-
-
-
Engineering & Data
-
Engineering & Data
-
+6
-
-
-
Senior Software Engineer
-
Auth0
-
- I have worked across a variety of organizations, lead teams, and delivered quality
- software for 8 years. In that time I've worked as an independent consultant, at
- agencies as a team lead, and as a senior engineer at Auth0. I also host a podcast
- https://anchor.fm/work-in-programming where I break down how …
-
-
-
-
+ {expertsList}
1
diff --git a/src/app/[locale]/(main)/@news/page.tsx b/src/app/[locale]/(main)/@news/page.tsx
index 4bd8b48..15bce46 100644
--- a/src/app/[locale]/(main)/@news/page.tsx
+++ b/src/app/[locale]/(main)/@news/page.tsx
@@ -4,7 +4,7 @@ export default function News() {
return (
-
Articles form Experts & News of Project
+
Professional Articles & Project News
@@ -24,7 +24,7 @@ export default function News() {
-
+
diff --git a/src/app/[locale]/account/information/page.tsx b/src/app/[locale]/[userId]/information/page.tsx
similarity index 100%
rename from src/app/[locale]/account/information/page.tsx
rename to src/app/[locale]/[userId]/information/page.tsx
diff --git a/src/app/[locale]/account/layout.tsx b/src/app/[locale]/[userId]/layout.tsx
similarity index 100%
rename from src/app/[locale]/account/layout.tsx
rename to src/app/[locale]/[userId]/layout.tsx
diff --git a/src/app/[locale]/global.css b/src/app/[locale]/global.css
deleted file mode 100644
index 49f1bb1..0000000
--- a/src/app/[locale]/global.css
+++ /dev/null
@@ -1,8 +0,0 @@
-html, body {
- height: 100%;
-}
-
-body {
- font-family: var(--font-comfortaa), -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
- background-color: #ffffff;
-}
diff --git a/src/app/[locale]/error.tsx b/src/app/error.tsx
similarity index 100%
rename from src/app/[locale]/error.tsx
rename to src/app/error.tsx
diff --git a/src/app/[locale]/layout.tsx b/src/app/layout.tsx
similarity index 76%
rename from src/app/[locale]/layout.tsx
rename to src/app/layout.tsx
index d1f6bce..0f6c214 100644
--- a/src/app/[locale]/layout.tsx
+++ b/src/app/layout.tsx
@@ -4,9 +4,11 @@ import type { Metadata } from 'next';
import { Comfortaa, Inter } from 'next/font/google';
import { notFound } from 'next/navigation';
import { ConfigProvider } from 'antd';
+import StyledRegistry from '../../lib/StyleRegistry';
import StyledComponentsRegistry from '../../lib/AntdRegistry';
import { ALLOWED_LOCALES } from '../../constants/locale';
-import './global.css'
+import theme from '../../constants/theme';
+import '../../styles/style.scss';
type RootLayoutProps = {
children: ReactNode;
@@ -43,11 +45,13 @@ export default function RootLayout({ children, params: { locale } }: RootLayoutP
return (
-
-
- {children}
-
-
+
+
+
+ {children}
+
+
+
);
diff --git a/src/app/[locale]/loading.tsx b/src/app/loading.tsx
similarity index 100%
rename from src/app/[locale]/loading.tsx
rename to src/app/loading.tsx
diff --git a/src/app/[locale]/not-found.tsx b/src/app/not-found.tsx
similarity index 100%
rename from src/app/[locale]/not-found.tsx
rename to src/app/not-found.tsx
diff --git a/src/app/[locale]/robots.txt b/src/app/robots.txt
similarity index 100%
rename from src/app/[locale]/robots.txt
rename to src/app/robots.txt
diff --git a/src/components/Experts/AdditionalFilter.tsx b/src/components/Experts/AdditionalFilter.tsx
new file mode 100644
index 0000000..fc15404
--- /dev/null
+++ b/src/components/Experts/AdditionalFilter.tsx
@@ -0,0 +1,45 @@
+'use client';
+
+import React, { useCallback, useState } from 'react';
+import { Input, Select } from 'antd';
+import { AdditionalFilter } from '../../types/experts';
+import { INITIAL_ADD_FILTER } from '../../constants/experts';
+import { LOCALES } from '../../constants/locale';
+
+export const ExpertsAdditionalFilter = () => {
+ const [filter, setFilter] = useState
(INITIAL_ADD_FILTER);
+
+ const onChangeFilter = useCallback((key: string, value: any) => {
+ setFilter({
+ ...filter,
+ [key]: value
+ })
+ }, [filter]);
+
+ return (
+
+
+
+
+
onChangeFilter('text', e?.target?.value)}/>
+
+ onChangeFilter('sort', val)}
+ options={[
+ { value: 'By top views', label: 'By top views' }
+ ]}
+ />
+
+
+ onChangeFilter('language', val)}
+ options={Object.entries(LOCALES).map(([ value, label ]) => ({ value, label }))}
+ />
+
+
Find
+
+ );
+};
diff --git a/src/components/Experts/Filter.tsx b/src/components/Experts/Filter.tsx
new file mode 100644
index 0000000..ae97220
--- /dev/null
+++ b/src/components/Experts/Filter.tsx
@@ -0,0 +1,183 @@
+'use client';
+
+import React, { useCallback, useState } from 'react';
+import { List, Switch, Slider } from 'antd';
+import styled from 'styled-components';
+import { FilterType, INITIAL_FILTER } from '../../constants/experts';
+import { Filter } from '../../types/experts';
+
+const CustomSwitch = styled(Switch)`
+ height: 24px !important;
+ background: #F8F8F7 !important;
+
+ .ant-switch-handle {
+ height: 24px !important;
+ width: 24px !important;
+ top: 0 !important;
+
+ &::before {
+ box-shadow: none !important;
+ background: #C4DFE6 !important;
+ border-radius: 50% !important;
+ }
+ }
+
+ &.ant-switch-checked {
+ background: #2c7873 !important;
+ }
+`;
+
+const WrapSlider = styled.div`
+ width: 100%;
+ position: relative;
+ margin: 8px 0 16px -5px;
+`;
+
+const CustomSlider = styled(Slider)`
+ padding-block: 7px !important;
+ height: 16px !important;
+
+ .ant-slider-rail {
+ background-color: #E5E5E5 !important;
+ }
+
+ .ant-slider-track {
+ background-color: #66A5AD !important;
+ }
+
+ .ant-slider-handle {
+ width: 16px !important;
+ height: 16px !important;
+
+ &::before {
+ width: 16px !important;
+ height: 16px !important;
+ inset-inline-start: 0 !important;
+ inset-block-start: 0 !important;
+ }
+
+ &::after {
+ width: 16px !important;
+ height: 16px !important;
+ background-color: #66A5AD !important;
+ inset-inline-start: 0 !important;
+ inset-block-start: 0 !important;
+ box-shadow: none !important;
+ }
+
+ &:focus, &:hover {
+ &::after {
+ box-shadow: 0 0 0 10px rgba(102, 165, 173, .2) !important;
+ }
+ }
+ }
+`;
+
+const dataCoaching = [
+ {
+ key: FilterType.WorkLifeBalance,
+ title: 'Work-life Balance'
+ },
+ {
+ key: FilterType.StrategicSession,
+ title: 'Strategic Session'
+ },
+ {
+ key: FilterType.PersonalGrowth,
+ title: 'Personal Growth'
+ },
+ {
+ key: FilterType.PersonalGrowth,
+ title: 'Career Planning'
+ },
+ {
+ key: FilterType.ExecutiveCoaching,
+ title: 'Executive Coaching'
+ }
+];
+
+const dataMentoring = [
+ {
+ key: FilterType.CareerDevelopment,
+ title: 'Career Development'
+ },
+ {
+ key: FilterType.Networking,
+ title: 'Networking'
+ }
+];
+
+const dataConsultation = [
+ {
+ key: FilterType.BusinessModelReview,
+ title: 'Business Model Review'
+ }
+];
+
+export const ExpertsFilter = () => {
+ const [filter, setFilter] = useState(INITIAL_FILTER);
+
+ const onChangeFilter = useCallback((key: string, value: any) => {
+ setFilter({
+ ...filter,
+ [key]: value
+ })
+ }, [filter]);
+
+ const getList = useCallback((data) => (
+
+
(
+
+
+
{title}
+
onChangeFilter(key, checked)}
+ />
+
+
+ )}
+ />
+
+ ), [filter]);
+
+ return (
+
+
Coaching
+ {getList(dataCoaching)}
+ Mentoring
+ {getList(dataMentoring)}
+ Business-consultation
+ {getList(dataConsultation)}
+ Price from 45€ to 170€
+
+ onChangeFilter(FilterType.Price, val)}
+ />
+
+ Duration from 45m to 120m
+
+ onChangeFilter(FilterType.Duration, val)}
+ />
+
+ Apply
+
+ );
+};
diff --git a/src/components/Experts/index.ts b/src/components/Experts/index.ts
new file mode 100644
index 0000000..468247d
--- /dev/null
+++ b/src/components/Experts/index.ts
@@ -0,0 +1,2 @@
+export * from './Filter';
+export * from './AdditionalFilter';
diff --git a/src/components/Page/Header/LanguageSwitcher.tsx b/src/components/Page/Header/LanguageSwitcher.tsx
index 03d47a7..d8ad334 100644
--- a/src/components/Page/Header/LanguageSwitcher.tsx
+++ b/src/components/Page/Header/LanguageSwitcher.tsx
@@ -1,8 +1,9 @@
'use client';
-import React, { useTransition } from 'react';
-import { Button, Dropdown } from 'antd';
+import React, { useTransition, useState } from 'react';
+import { Dropdown } from 'antd';
import type { MenuProps } from 'antd';
+import { CaretDownOutlined, CaretUpOutlined } from '@ant-design/icons';
import { useRouter, usePathname } from '../../../navigation';
import { LOCALES } from '../../../constants/locale';
import { Locale } from '../../../types/locale';
@@ -10,6 +11,7 @@ import { Locale } from '../../../types/locale';
export const LanguageSwitcher = ({ locale }: { locale: string }) => {
const router = useRouter();
const [isPending, startTransition] = useTransition();
+ const [menuOpen, setMenuOpen] = useState(false);
const pathname = usePathname();
const onClick: MenuProps['onClick'] = (e) => {
@@ -18,6 +20,8 @@ export const LanguageSwitcher = ({ locale }: { locale: string }) => {
});
};
+ const onOpen = (open: boolean) => setMenuOpen(open);
+
const menuProps = {
items: Object.entries(LOCALES).map(([ key, label ]) => ({ key, label })),
selectable: true,
@@ -26,10 +30,16 @@ export const LanguageSwitcher = ({ locale }: { locale: string }) => {
};
return (
-
-
- {LOCALES[locale as Locale]}
-
+
+
+ {LOCALES[locale as Locale]}
+ {menuOpen ? : }
+
);
};
diff --git a/src/constants/experts.ts b/src/constants/experts.ts
new file mode 100644
index 0000000..e927739
--- /dev/null
+++ b/src/constants/experts.ts
@@ -0,0 +1,33 @@
+import { AdditionalFilter, Filter } from '../types/experts';
+import { LOCALES } from "./locale";
+
+export enum FilterType {
+ 'WorkLifeBalance' = 'workLifeBalance',
+ 'StrategicSession' = 'strategicSession',
+ 'PersonalGrowth' = 'personalGrowth',
+ 'CareerPlaning' = 'careerPlaning',
+ 'ExecutiveCoaching' = 'executiveCoaching',
+ 'CareerDevelopment' = 'careerDevelopment',
+ 'Networking' = 'networking',
+ 'BusinessModelReview' = 'businessModelReview',
+ 'Price' = 'price',
+ 'Duration' = 'duration'
+}
+
+export const INITIAL_FILTER: Filter = {
+ [FilterType.WorkLifeBalance]: false,
+ [FilterType.StrategicSession]: false,
+ [FilterType.PersonalGrowth]: false,
+ [FilterType.CareerPlaning]: false,
+ [FilterType.ExecutiveCoaching]: false,
+ [FilterType.CareerDevelopment]: false,
+ [FilterType.Networking]: false,
+ [FilterType.BusinessModelReview]: false,
+ [FilterType.Price]: [65, 170],
+ [FilterType.Duration]: [60, 120]
+};
+
+export const INITIAL_ADD_FILTER: AdditionalFilter = {
+ sort: 'By top views',
+ language: Object.keys(LOCALES)
+};
diff --git a/src/constants/locale.ts b/src/constants/locale.ts
index f66cf1d..b78b657 100644
--- a/src/constants/locale.ts
+++ b/src/constants/locale.ts
@@ -5,10 +5,10 @@ export const ALLOWED_LOCALES = [Locale.en, Locale.ru, Locale.de, Locale.it, Loca
export const LOCALE_PREFIX = undefined;
export const LOCALES = {
- [Locale.en]: 'English',
- [Locale.ru]: 'Russian',
- [Locale.de]: 'German',
- [Locale.it]: 'Italian',
- [Locale.es]: 'Spanish',
- [Locale.fr]: 'French',
+ [Locale.en]: 'En',
+ [Locale.ru]: 'Ru',
+ [Locale.de]: 'Ge',
+ [Locale.it]: 'It',
+ [Locale.es]: 'Es',
+ [Locale.fr]: 'Fr',
};
diff --git a/src/constants/theme.ts b/src/constants/theme.ts
new file mode 100644
index 0000000..1e27fda
--- /dev/null
+++ b/src/constants/theme.ts
@@ -0,0 +1,26 @@
+import type { ThemeConfig } from 'antd';
+
+const theme: ThemeConfig = {
+ token: {
+ fontFamily: 'var(--font)',
+ colorPrimary: '#2C7873',
+ controlItemBgActive: '#F8F8F7',
+ controlItemBgActiveHover: '#E5E5E5'
+ }
+};
+
+export default theme;
+
+// components: {
+// Switch: {
+// handleSize: '24px',
+// handleBg: '#C4DFE6',
+// trackPadding: 0,
+// trackHeight: '24px',
+// handleShadow: 'none'
+// },
+// Pagination: {
+// itemActiveBg: '#2C7873',
+// itemSize: '40px'
+// }
+// }
diff --git a/src/lib/StyleRegistry.tsx b/src/lib/StyleRegistry.tsx
new file mode 100644
index 0000000..492722b
--- /dev/null
+++ b/src/lib/StyleRegistry.tsx
@@ -0,0 +1,25 @@
+'use client';
+
+import React, { useState } from 'react'
+import { useServerInsertedHTML } from 'next/navigation'
+import { ServerStyleSheet, StyleSheetManager } from 'styled-components'
+
+export default function StyledRegistry({ children }: { children: React.ReactNode }) {
+ // Only create stylesheet once with lazy initial state
+ // x-ref: https://reactjs.org/docs/hooks-reference.html#lazy-initial-state
+ const [styledComponentsStyleSheet] = useState(() => new ServerStyleSheet())
+
+ useServerInsertedHTML(() => {
+ const styles = styledComponentsStyleSheet.getStyleElement()
+ styledComponentsStyleSheet.instance.clearTag()
+ return <>{styles}>
+ })
+
+ if (typeof window !== 'undefined') return <>{children}>
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/src/styles/_cols.scss b/src/styles/_cols.scss
new file mode 100644
index 0000000..5a3f8bd
--- /dev/null
+++ b/src/styles/_cols.scss
@@ -0,0 +1,1507 @@
+@import "_variables";
+
+.row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -8px;
+ margin-left: -8px;
+}
+
+.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
+.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
+.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
+.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
+.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
+.col-xl-auto {
+ position: relative;
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: 8px;
+ padding-left: 8px;
+}
+
+.col {
+ flex: 1 0 0%
+}
+
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto
+}
+
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%
+}
+
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%
+}
+
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%
+}
+
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%
+}
+
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%
+}
+
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%
+}
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto
+}
+
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%
+}
+
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%
+}
+
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%
+}
+
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%
+}
+
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%
+}
+
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%
+}
+
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%
+}
+
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%
+}
+
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%
+}
+
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%
+}
+
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%
+}
+
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%
+}
+
+.offset-1 {
+ margin-left: 8.33333333%
+}
+
+.offset-2 {
+ margin-left: 16.66666667%
+}
+
+.offset-3 {
+ margin-left: 25%
+}
+
+.offset-4 {
+ margin-left: 33.33333333%
+}
+
+.offset-5 {
+ margin-left: 41.66666667%
+}
+
+.offset-6 {
+ margin-left: 50%
+}
+
+.offset-7 {
+ margin-left: 58.33333333%
+}
+
+.offset-8 {
+ margin-left: 66.66666667%
+}
+
+.offset-9 {
+ margin-left: 75%
+}
+
+.offset-10 {
+ margin-left: 83.33333333%
+}
+
+.offset-11 {
+ margin-left: 91.66666667%
+}
+
+.order-first {
+ -ms-flex-order: -1;
+ order: -1;
+}
+
+.order-last {
+ -ms-flex-order: 13;
+ order: 13;
+}
+
+.order-0 {
+ -ms-flex-order: 0;
+ order: 0;
+}
+
+.order-1 {
+ -ms-flex-order: 1;
+ order: 1;
+}
+
+.order-2 {
+ -ms-flex-order: 2;
+ order: 2;
+}
+
+.order-3 {
+ -ms-flex-order: 3;
+ order: 3;
+}
+
+.order-4 {
+ -ms-flex-order: 4;
+ order: 4;
+}
+
+.order-5 {
+ -ms-flex-order: 5;
+ order: 5;
+}
+
+.order-6 {
+ -ms-flex-order: 6;
+ order: 6;
+}
+
+.order-7 {
+ -ms-flex-order: 7;
+ order: 7;
+}
+
+.order-8 {
+ -ms-flex-order: 8;
+ order: 8;
+}
+
+.order-9 {
+ -ms-flex-order: 9;
+ order: 9;
+}
+
+.order-10 {
+ -ms-flex-order: 10;
+ order: 10;
+}
+
+.order-11 {
+ -ms-flex-order: 11;
+ order: 11;
+}
+
+.order-12 {
+ -ms-flex-order: 12;
+ order: 12;
+}
+
+.d-block {
+ display: block !important;
+}
+.d-none {
+ display: none !important;
+}
+
+@media (min-width: 576px) {
+ .d-sm-none {
+ display: none !important;
+ }
+ .d-sm-block {
+ display: block !important;
+ }
+ .col-sm {
+ flex: 1 0 0%
+ }
+
+ .row-cols-sm-auto > * {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .row-cols-sm-1 > * {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .row-cols-sm-2 > * {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .row-cols-sm-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%
+ }
+
+ .row-cols-sm-4 > * {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .row-cols-sm-5 > * {
+ flex: 0 0 auto;
+ width: 20%
+ }
+
+ .row-cols-sm-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%
+ }
+
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%
+ }
+
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%
+ }
+
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%
+ }
+
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%
+ }
+
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%
+ }
+
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%
+ }
+
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%
+ }
+
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%
+ }
+
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%
+ }
+
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .offset-sm-0 {
+ margin-left: 0
+ }
+
+ .offset-sm-1 {
+ margin-left: 8.33333333%
+ }
+
+ .offset-sm-2 {
+ margin-left: 16.66666667%
+ }
+
+ .offset-sm-3 {
+ margin-left: 25%
+ }
+
+ .offset-sm-4 {
+ margin-left: 33.33333333%
+ }
+
+ .offset-sm-5 {
+ margin-left: 41.66666667%
+ }
+
+ .offset-sm-6 {
+ margin-left: 50%
+ }
+
+ .offset-sm-7 {
+ margin-left: 58.33333333%
+ }
+
+ .offset-sm-8 {
+ margin-left: 66.66666667%
+ }
+
+ .offset-sm-9 {
+ margin-left: 75%
+ }
+
+ .offset-sm-10 {
+ margin-left: 83.33333333%
+ }
+
+ .offset-sm-11 {
+ margin-left: 91.66666667%
+ }
+
+ .order-sm-0 {
+ -ms-flex-order: 0;
+ order: 0;
+ }
+ .order-sm-1 {
+ -ms-flex-order: 1;
+ order: 1;
+ }
+ .order-sm-2 {
+ -ms-flex-order: 2;
+ order: 2;
+ }
+ .order-sm-3 {
+ -ms-flex-order: 3;
+ order: 3;
+ }
+ .order-sm-4 {
+ -ms-flex-order: 4;
+ order: 4;
+ }
+ .order-sm-5 {
+ -ms-flex-order: 5;
+ order: 5;
+ }
+ .order-sm-6 {
+ -ms-flex-order: 6;
+ order: 6;
+ }
+ .order-sm-7 {
+ -ms-flex-order: 7;
+ order: 7;
+ }
+ .order-sm-8 {
+ -ms-flex-order: 8;
+ order: 8;
+ }
+ .order-sm-9 {
+ -ms-flex-order: 9;
+ order: 9;
+ }
+ .order-sm-10 {
+ -ms-flex-order: 10;
+ order: 10;
+ }
+ .order-sm-11 {
+ -ms-flex-order: 11;
+ order: 11;
+ }
+ .order-sm-12 {
+ -ms-flex-order: 12;
+ order: 12;
+ }
+
+ .g-sm-0, .gx-sm-0 {
+ --bs-gutter-x: 0
+ }
+
+ .g-sm-0, .gy-sm-0 {
+ --bs-gutter-y: 0
+ }
+
+ .g-sm-1, .gx-sm-1 {
+ --bs-gutter-x: 0.25rem
+ }
+
+ .g-sm-1, .gy-sm-1 {
+ --bs-gutter-y: 0.25rem
+ }
+
+ .g-sm-2, .gx-sm-2 {
+ --bs-gutter-x: 0.5rem
+ }
+
+ .g-sm-2, .gy-sm-2 {
+ --bs-gutter-y: 0.5rem
+ }
+
+ .g-sm-3, .gx-sm-3 {
+ --bs-gutter-x: 1rem
+ }
+
+ .g-sm-3, .gy-sm-3 {
+ --bs-gutter-y: 1rem
+ }
+
+ .g-sm-4, .gx-sm-4 {
+ --bs-gutter-x: 1.5rem
+ }
+
+ .g-sm-4, .gy-sm-4 {
+ --bs-gutter-y: 1.5rem
+ }
+
+ .g-sm-5, .gx-sm-5 {
+ --bs-gutter-x: 3rem
+ }
+
+ .g-sm-5, .gy-sm-5 {
+ --bs-gutter-y: 3rem
+ }
+}
+
+@media (min-width: 768px) {
+ .d-md-none {
+ display: none !important;
+ }
+ .d-md-block {
+ display: block !important;
+ }
+ .col-md {
+ flex: 1 0 0%
+ }
+
+ .row-cols-md-auto > * {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .row-cols-md-1 > * {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .row-cols-md-2 > * {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .row-cols-md-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%
+ }
+
+ .row-cols-md-4 > * {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .row-cols-md-5 > * {
+ flex: 0 0 auto;
+ width: 20%
+ }
+
+ .row-cols-md-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%
+ }
+
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%
+ }
+
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%
+ }
+
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%
+ }
+
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%
+ }
+
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%
+ }
+
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%
+ }
+
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%
+ }
+
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%
+ }
+
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%
+ }
+
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .offset-md-0 {
+ margin-left: 0
+ }
+
+ .offset-md-1 {
+ margin-left: 8.33333333%
+ }
+
+ .offset-md-2 {
+ margin-left: 16.66666667%
+ }
+
+ .offset-md-3 {
+ margin-left: 25%
+ }
+
+ .offset-md-4 {
+ margin-left: 33.33333333%
+ }
+
+ .offset-md-5 {
+ margin-left: 41.66666667%
+ }
+
+ .offset-md-6 {
+ margin-left: 50%
+ }
+
+ .offset-md-7 {
+ margin-left: 58.33333333%
+ }
+
+ .offset-md-8 {
+ margin-left: 66.66666667%
+ }
+
+ .offset-md-9 {
+ margin-left: 75%
+ }
+
+ .offset-md-10 {
+ margin-left: 83.33333333%
+ }
+
+ .offset-md-11 {
+ margin-left: 91.66666667%
+ }
+
+ .order-md-0 {
+ -ms-flex-order: 0;
+ order: 0;
+ }
+ .order-md-1 {
+ -ms-flex-order: 1;
+ order: 1;
+ }
+ .order-md-2 {
+ -ms-flex-order: 2;
+ order: 2;
+ }
+ .order-md-3 {
+ -ms-flex-order: 3;
+ order: 3;
+ }
+ .order-md-4 {
+ -ms-flex-order: 4;
+ order: 4;
+ }
+ .order-md-5 {
+ -ms-flex-order: 5;
+ order: 5;
+ }
+ .order-md-6 {
+ -ms-flex-order: 6;
+ order: 6;
+ }
+ .order-md-7 {
+ -ms-flex-order: 7;
+ order: 7;
+ }
+ .order-md-8 {
+ -ms-flex-order: 8;
+ order: 8;
+ }
+ .order-md-9 {
+ -ms-flex-order: 9;
+ order: 9;
+ }
+ .order-md-10 {
+ -ms-flex-order: 10;
+ order: 10;
+ }
+ .order-md-11 {
+ -ms-flex-order: 11;
+ order: 11;
+ }
+ .order-md-12 {
+ -ms-flex-order: 12;
+ order: 12;
+ }
+
+ .g-md-0, .gx-md-0 {
+ --bs-gutter-x: 0
+ }
+
+ .g-md-0, .gy-md-0 {
+ --bs-gutter-y: 0
+ }
+
+ .g-md-1, .gx-md-1 {
+ --bs-gutter-x: 0.25rem
+ }
+
+ .g-md-1, .gy-md-1 {
+ --bs-gutter-y: 0.25rem
+ }
+
+ .g-md-2, .gx-md-2 {
+ --bs-gutter-x: 0.5rem
+ }
+
+ .g-md-2, .gy-md-2 {
+ --bs-gutter-y: 0.5rem
+ }
+
+ .g-md-3, .gx-md-3 {
+ --bs-gutter-x: 1rem
+ }
+
+ .g-md-3, .gy-md-3 {
+ --bs-gutter-y: 1rem
+ }
+
+ .g-md-4, .gx-md-4 {
+ --bs-gutter-x: 1.5rem
+ }
+
+ .g-md-4, .gy-md-4 {
+ --bs-gutter-y: 1.5rem
+ }
+
+ .g-md-5, .gx-md-5 {
+ --bs-gutter-x: 3rem
+ }
+
+ .g-md-5, .gy-md-5 {
+ --bs-gutter-y: 3rem
+ }
+}
+
+@media (min-width: 992px) {
+ .d-lg-none {
+ display: none !important;
+ }
+ .d-lg-block {
+ display: block !important;
+ }
+
+ .col-lg {
+ flex: 1 0 0%
+ }
+
+ .row-cols-lg-auto > * {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .row-cols-lg-1 > * {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .row-cols-lg-2 > * {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .row-cols-lg-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%
+ }
+
+ .row-cols-lg-4 > * {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .row-cols-lg-5 > * {
+ flex: 0 0 auto;
+ width: 20%
+ }
+
+ .row-cols-lg-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%
+ }
+
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%
+ }
+
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%
+ }
+
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%
+ }
+
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%
+ }
+
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%
+ }
+
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%
+ }
+
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%
+ }
+
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%
+ }
+
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%
+ }
+
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .offset-lg-0 {
+ margin-left: 0
+ }
+
+ .offset-lg-1 {
+ margin-left: 8.33333333%
+ }
+
+ .offset-lg-2 {
+ margin-left: 16.66666667%
+ }
+
+ .offset-lg-3 {
+ margin-left: 25%
+ }
+
+ .offset-lg-4 {
+ margin-left: 33.33333333%
+ }
+
+ .offset-lg-5 {
+ margin-left: 41.66666667%
+ }
+
+ .offset-lg-6 {
+ margin-left: 50%
+ }
+
+ .offset-lg-7 {
+ margin-left: 58.33333333%
+ }
+
+ .offset-lg-8 {
+ margin-left: 66.66666667%
+ }
+
+ .offset-lg-9 {
+ margin-left: 75%
+ }
+
+ .offset-lg-10 {
+ margin-left: 83.33333333%
+ }
+
+ .offset-lg-11 {
+ margin-left: 91.66666667%
+ }
+
+ .order-lg-0 {
+ -ms-flex-order: 0;
+ order: 0;
+ }
+ .order-lg-1 {
+ -ms-flex-order: 1;
+ order: 1;
+ }
+ .order-lg-2 {
+ -ms-flex-order: 2;
+ order: 2;
+ }
+ .order-lg-3 {
+ -ms-flex-order: 3;
+ order: 3;
+ }
+ .order-lg-4 {
+ -ms-flex-order: 4;
+ order: 4;
+ }
+ .order-lg-5 {
+ -ms-flex-order: 5;
+ order: 5;
+ }
+ .order-lg-6 {
+ -ms-flex-order: 6;
+ order: 6;
+ }
+ .order-lg-7 {
+ -ms-flex-order: 7;
+ order: 7;
+ }
+ .order-lg-8 {
+ -ms-flex-order: 8;
+ order: 8;
+ }
+ .order-lg-9 {
+ -ms-flex-order: 9;
+ order: 9;
+ }
+ .order-lg-10 {
+ -ms-flex-order: 10;
+ order: 10;
+ }
+ .order-lg-11 {
+ -ms-flex-order: 11;
+ order: 11;
+ }
+ .order-lg-12 {
+ -ms-flex-order: 12;
+ order: 12;
+ }
+
+ .g-lg-0, .gx-lg-0 {
+ --bs-gutter-x: 0
+ }
+
+ .g-lg-0, .gy-lg-0 {
+ --bs-gutter-y: 0
+ }
+
+ .g-lg-1, .gx-lg-1 {
+ --bs-gutter-x: 0.25rem
+ }
+
+ .g-lg-1, .gy-lg-1 {
+ --bs-gutter-y: 0.25rem
+ }
+
+ .g-lg-2, .gx-lg-2 {
+ --bs-gutter-x: 0.5rem
+ }
+
+ .g-lg-2, .gy-lg-2 {
+ --bs-gutter-y: 0.5rem
+ }
+
+ .g-lg-3, .gx-lg-3 {
+ --bs-gutter-x: 1rem
+ }
+
+ .g-lg-3, .gy-lg-3 {
+ --bs-gutter-y: 1rem
+ }
+
+ .g-lg-4, .gx-lg-4 {
+ --bs-gutter-x: 1.5rem
+ }
+
+ .g-lg-4, .gy-lg-4 {
+ --bs-gutter-y: 1.5rem
+ }
+
+ .g-lg-5, .gx-lg-5 {
+ --bs-gutter-x: 3rem
+ }
+
+ .g-lg-5, .gy-lg-5 {
+ --bs-gutter-y: 3rem
+ }
+}
+
+@media (min-width: 1200px) {
+ .d-xl-none {
+ display: none !important;
+ }
+ .d-xl-block {
+ display: block !important;
+ }
+ .col-xl {
+ flex: 1 0 0%
+ }
+
+ .row-cols-xl-auto > * {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .row-cols-xl-1 > * {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .row-cols-xl-2 > * {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .row-cols-xl-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%
+ }
+
+ .row-cols-xl-4 > * {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .row-cols-xl-5 > * {
+ flex: 0 0 auto;
+ width: 20%
+ }
+
+ .row-cols-xl-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%
+ }
+
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%
+ }
+
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%
+ }
+
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%
+ }
+
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%
+ }
+
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%
+ }
+
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%
+ }
+
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%
+ }
+
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%
+ }
+
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%
+ }
+
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .offset-xl-0 {
+ margin-left: 0
+ }
+
+ .offset-xl-1 {
+ margin-left: 8.33333333%
+ }
+
+ .offset-xl-2 {
+ margin-left: 16.66666667%
+ }
+
+ .offset-xl-3 {
+ margin-left: 25%
+ }
+
+ .offset-xl-4 {
+ margin-left: 33.33333333%
+ }
+
+ .offset-xl-5 {
+ margin-left: 41.66666667%
+ }
+
+ .offset-xl-6 {
+ margin-left: 50%
+ }
+
+ .offset-xl-7 {
+ margin-left: 58.33333333%
+ }
+
+ .offset-xl-8 {
+ margin-left: 66.66666667%
+ }
+
+ .offset-xl-9 {
+ margin-left: 75%
+ }
+
+ .offset-xl-10 {
+ margin-left: 83.33333333%
+ }
+
+ .offset-xl-11 {
+ margin-left: 91.66666667%
+ }
+
+ .order-xl-0 {
+ -ms-flex-order: 0;
+ order: 0;
+ }
+ .order-xl-1 {
+ -ms-flex-order: 1;
+ order: 1;
+ }
+ .order-xl-2 {
+ -ms-flex-order: 2;
+ order: 2;
+ }
+ .order-xl-3 {
+ -ms-flex-order: 3;
+ order: 3;
+ }
+ .order-xl-4 {
+ -ms-flex-order: 4;
+ order: 4;
+ }
+ .order-xl-5 {
+ -ms-flex-order: 5;
+ order: 5;
+ }
+ .order-xl-6 {
+ -ms-flex-order: 6;
+ order: 6;
+ }
+ .order-xl-7 {
+ -ms-flex-order: 7;
+ order: 7;
+ }
+ .order-xl-8 {
+ -ms-flex-order: 8;
+ order: 8;
+ }
+ .order-xl-9 {
+ -ms-flex-order: 9;
+ order: 9;
+ }
+ .order-xl-10 {
+ -ms-flex-order: 10;
+ order: 10;
+ }
+ .order-xl-11 {
+ -ms-flex-order: 11;
+ order: 11;
+ }
+ .order-xl-12 {
+ -ms-flex-order: 12;
+ order: 12;
+ }
+
+ .g-xl-0, .gx-xl-0 {
+ --bs-gutter-x: 0
+ }
+
+ .g-xl-0, .gy-xl-0 {
+ --bs-gutter-y: 0
+ }
+
+ .g-xl-1, .gx-xl-1 {
+ --bs-gutter-x: 0.25rem
+ }
+
+ .g-xl-1, .gy-xl-1 {
+ --bs-gutter-y: 0.25rem
+ }
+
+ .g-xl-2, .gx-xl-2 {
+ --bs-gutter-x: 0.5rem
+ }
+
+ .g-xl-2, .gy-xl-2 {
+ --bs-gutter-y: 0.5rem
+ }
+
+ .g-xl-3, .gx-xl-3 {
+ --bs-gutter-x: 1rem
+ }
+
+ .g-xl-3, .gy-xl-3 {
+ --bs-gutter-y: 1rem
+ }
+
+ .g-xl-4, .gx-xl-4 {
+ --bs-gutter-x: 1.5rem
+ }
+
+ .g-xl-4, .gy-xl-4 {
+ --bs-gutter-y: 1.5rem
+ }
+
+ .g-xl-5, .gx-xl-5 {
+ --bs-gutter-x: 3rem
+ }
+
+ .g-xl-5, .gy-xl-5 {
+ --bs-gutter-y: 3rem
+ }
+}
+
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%
+ }
+
+ .row-cols-xxl-auto > * {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .row-cols-xxl-1 > * {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .row-cols-xxl-2 > * {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .row-cols-xxl-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%
+ }
+
+ .row-cols-xxl-4 > * {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .row-cols-xxl-5 > * {
+ flex: 0 0 auto;
+ width: 20%
+ }
+
+ .row-cols-xxl-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%
+ }
+
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto
+ }
+
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%
+ }
+
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%
+ }
+
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%
+ }
+
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%
+ }
+
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%
+ }
+
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%
+ }
+
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%
+ }
+
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%
+ }
+
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%
+ }
+
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%
+ }
+
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%
+ }
+
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ .offset-xxl-0 {
+ margin-left: 0
+ }
+
+ .offset-xxl-1 {
+ margin-left: 8.33333333%
+ }
+
+ .offset-xxl-2 {
+ margin-left: 16.66666667%
+ }
+
+ .offset-xxl-3 {
+ margin-left: 25%
+ }
+
+ .offset-xxl-4 {
+ margin-left: 33.33333333%
+ }
+
+ .offset-xxl-5 {
+ margin-left: 41.66666667%
+ }
+
+ .offset-xxl-6 {
+ margin-left: 50%
+ }
+
+ .offset-xxl-7 {
+ margin-left: 58.33333333%
+ }
+
+ .offset-xxl-8 {
+ margin-left: 66.66666667%
+ }
+
+ .offset-xxl-9 {
+ margin-left: 75%
+ }
+
+ .offset-xxl-10 {
+ margin-left: 83.33333333%
+ }
+
+ .offset-xxl-11 {
+ margin-left: 91.66666667%
+ }
+
+ .g-xxl-0, .gx-xxl-0 {
+ --bs-gutter-x: 0
+ }
+
+ .g-xxl-0, .gy-xxl-0 {
+ --bs-gutter-y: 0
+ }
+
+ .g-xxl-1, .gx-xxl-1 {
+ --bs-gutter-x: 0.25rem
+ }
+
+ .g-xxl-1, .gy-xxl-1 {
+ --bs-gutter-y: 0.25rem
+ }
+
+ .g-xxl-2, .gx-xxl-2 {
+ --bs-gutter-x: 0.5rem
+ }
+
+ .g-xxl-2, .gy-xxl-2 {
+ --bs-gutter-y: 0.5rem
+ }
+
+ .g-xxl-3, .gx-xxl-3 {
+ --bs-gutter-x: 1rem
+ }
+
+ .g-xxl-3, .gy-xxl-3 {
+ --bs-gutter-y: 1rem
+ }
+
+ .g-xxl-4, .gx-xxl-4 {
+ --bs-gutter-x: 1.5rem
+ }
+
+ .g-xxl-4, .gy-xxl-4 {
+ --bs-gutter-y: 1.5rem
+ }
+
+ .g-xxl-5, .gx-xxl-5 {
+ --bs-gutter-x: 3rem
+ }
+
+ .g-xxl-5, .gy-xxl-5 {
+ --bs-gutter-y: 3rem
+ }
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.justify-content-center {
+ justify-content: center !important;
+}
\ No newline at end of file
diff --git a/src/styles/_default.scss b/src/styles/_default.scss
new file mode 100644
index 0000000..7472a59
--- /dev/null
+++ b/src/styles/_default.scss
@@ -0,0 +1,912 @@
+@import "_variables";
+
+html, body {
+ height: 100%;
+}
+
+body{
+ --font: var(--font-comfortaa), -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-family: var(--font);
+ background-color: #ffffff;
+}
+
+
+.b-wrapper {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+}
+
+.b-content {
+ flex: 1 0 auto;
+ position: relative;
+ padding-bottom: 16px;
+
+ @media (min-width: 768px) {
+ padding-bottom: 80px;
+ }
+}
+
+.b-inner{
+ width: 100%;
+ padding-right: 16px;
+ padding-left: 16px;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 768px) {
+ .b-inner {
+ max-width: 750px;
+ }
+}
+
+@media (min-width: 992px) {
+ .b-inner {
+ max-width: 990px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .b-inner {
+ max-width: 1290px;
+ }
+}
+
+.title-h1 {
+ color: #2C7873;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+
+ @media (min-width: 576px) {
+ @include rem(30);
+ }
+
+ @media (min-width: 768px) {
+ @include rem(42);
+ }
+}
+
+.title-h2 {
+ color: #6FB98F;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 133.333%;
+
+ @media (min-width: 768px) {
+ @include rem(24);
+ }
+}
+
+.title-h3 {
+ color: #6FB98F;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 133.333%;
+}
+
+
+.b-article {
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+ border-radius: 16px;
+ background: linear-gradient(147deg, #E4F5FA 1.06%, #FFF 100%);
+ box-shadow: 0px 4px 8px 0px rgba(102, 165, 173, 0.16);
+
+ &__image {
+ width: 100%;
+ height: 197px;
+
+ img {
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ display: block;
+ }
+ }
+
+ &__inner {
+ padding: 8px;
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ justify-content: space-between;
+ flex: 1 0 auto;
+ height: 122px;
+ }
+
+ &__title {
+ color: #003B46;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 100%;
+ overflow: hidden;
+ }
+
+ &__text {
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ flex: 1 0 auto;
+ }
+
+ &__link {
+ color: #FF8A00;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+ display: inline-flex;
+ align-items: center;
+ text-decoration: none;
+ }
+}
+
+.b-popular {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+
+ &__image {
+ width: 100%;
+ height: 200px;
+ background: lightgray 50%;
+ border-radius: 16px;
+ overflow: hidden;
+
+ img {
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ display: block;
+ }
+ }
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 4px;
+ height: 46px;
+ }
+
+ &__title {
+ overflow: hidden;
+ color: #003B46;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ width: 100%;
+ }
+
+ &__wrap-link {
+ display: flex;
+ gap: 4px;
+ color: #C4DFE6;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ }
+
+ &__link {
+ text-decoration: none;
+ color: #2C7873;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ }
+}
+
+//lang button
+.b-lang-button {
+ border-radius: 8px;
+ background: #66A5AD;
+ display: inline-flex;
+ color: #fff;
+ padding: 8px;
+ gap: 10px;
+ outline: none;
+ border: none;
+ cursor: pointer;
+}
+
+//switcher
+.base-switcher {
+ position: relative;
+ display: block;
+ width: 48px;
+ height: 24px;
+ cursor: pointer;
+
+ &__circle {
+ background: #C4DFE6;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ top: 0;
+ left: 0;
+ position: absolute;
+ transition: left .25s ease, background .25s ease;
+ }
+
+ &__line {
+ background-color: #F8F8F7;
+ border: none;
+ border-radius: 24px;
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 48px;
+ height: 24px;
+ }
+
+ &__input {
+ opacity: 0;
+ &:checked {
+ + .base-switcher__line {
+
+ + .base-switcher__circle {
+ background: #66A5AD;
+ left: 24px;
+ }
+ }
+ }
+ }
+}
+
+.b-filter {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ width: 100%;
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ width: 100%;
+ margin-bottom: 16px;
+ }
+
+ &__range {
+ width: 100%;
+ margin-bottom: 16px;
+ }
+
+ &__item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 15px 0;
+ width: 100%;
+ gap: 16px;
+ }
+
+ &__title {
+ color: $black;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+ }
+}
+
+.base-btn {
+ user-select: none;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ box-shadow: 0px 2px 4px 0px rgba(252, 214, 70, 0.16);
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+
+ @media (max-width: 767px) {
+ padding: 8px;
+ height: 40px;
+ }
+}
+
+.btn-edit {
+ user-select: none;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ background: #66A5AD;
+ box-shadow: 0px 2px 4px 0px rgba(102, 165, 173, 0.32);
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ color: $white;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+}
+
+.btn-add {
+ user-select: none;
+ outline: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ background: $white;
+ border: 1px solid #66A5AD;
+ box-shadow: none;
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ color: #66A5AD;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+}
+
+.btn-cancel {
+ user-select: none;
+ outline: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ background: $white;
+ border: 1px solid #D93E5C;
+ box-shadow: none;
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ color: #D93E5C;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+}
+
+.btn-apply {
+ user-select: none;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ background: #FFBD00;
+ box-shadow: 0px 2px 4px 0px rgba(252, 214, 70, 0.16);
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ color: #003B46;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+}
+
+.btn-back {
+ user-select: none;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ background: #2C7873;
+ box-shadow: 0px 2px 4px 0px rgba(252, 214, 70, 0.16);
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ color: $white;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+}
+
+.btn-video {
+ user-select: none;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ width: 100%;
+ cursor: pointer;
+ border-radius: 8px;
+ background: #DFF5FB;
+ box-shadow: 0px 2px 4px 0px rgba(252, 214, 70, 0.16);
+ display: flex;
+ gap: 10px;
+ height: 54px;
+ padding: 8px 31px;
+ justify-content: center;
+ align-items: center;
+ color: #003B46;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+}
+
+//
+.card-profile {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ padding-bottom: 8px;
+ border-bottom: 1px solid #C4DFE6;
+
+ &__header {
+ display: flex;
+ padding-bottom: 8px;
+ align-items: center;
+ gap: 16px;
+ align-self: stretch;
+
+ &__portrait {
+ width: 86px;
+ height: 86px;
+ border-radius: 16px;
+ border: 2px solid #FFF;
+ background: lightgray 50%;
+ box-shadow: 0px 8px 16px 0px rgba(102, 165, 173, 0.32);
+ overflow: hidden;
+
+ img {
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ display: block;
+ border-radius: 16px;
+ }
+ }
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 4px;
+ flex: 1 0 0;
+ }
+
+ &__name {
+ overflow: hidden;
+ color: #003B46;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ }
+
+ &__price {
+ color: #6FB98F;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+
+ span {
+ color: #B7B7B7;
+ }
+ }
+ }
+
+ &__skills {}
+
+ &__title {
+ color: #003B46;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ }
+
+ &__subtitle {
+ color: #003B46;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ }
+
+ &__desc {
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+
+ &__footer {
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+
+ a {
+ text-decoration: none;
+ color: #FF8A00;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+ display: inline-flex;
+ align-items: center;
+ }
+ }
+}
+
+.skills__list {
+ display: flex;
+ flex-flow: wrap;
+ align-items: flex-start;
+ gap: 4px;
+ align-self: stretch;
+
+ &__item {
+ height: 22px;
+ border-radius: 4px;
+ background: #2C7873;
+ display: inline-flex;
+ padding: 4px;
+ color: #FFF;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 116.667%;
+ align-items: center;
+ }
+
+ &__more {
+ height: 22px;
+ display: inline-flex;
+ align-items: center;
+ padding: 4px;
+ border-radius: 4px;
+ border: 1px solid #2C7873;
+ color: #2C7873;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 116.667%;
+ }
+}
+
+.pagination {
+ display: flex;
+ gap: 8px;
+
+ .page-item {
+ border-radius: 8px;
+ display: inline-flex;
+ height: 40px;
+ width: 40px;
+
+ .page-link {
+ border-radius: 8px;
+ border: 1px solid #2C7873;
+ display: inline-flex;
+ padding: 8px 16px;
+ justify-content: center;
+ align-items: center;
+ background: $white;
+ height: 40px;
+ width: 40px;
+ color: #2C7873;
+ text-align: center;
+ font-family: 'Inter', sans-serif;
+ @include rem(16);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 150%;
+ text-decoration: none;
+ }
+
+ &.active {
+ .page-link {
+ background: #2C7873;
+ color: $white;
+ }
+ }
+ }
+}
+
+.expert-card {
+ position: relative;
+ border-radius: 16px;
+ background: #66A5AD;
+ padding: 16px;
+ flex-flow: wrap;
+ display: flex;
+
+ &__avatar {
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ overflow: hidden;
+ border: 2px solid $white;
+ background: lightgray 50%;
+ box-shadow: 0px 8px 16px 0px rgba(102, 165, 173, 0.32);
+
+ img {
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ display: block;
+ border-radius: 16px;
+ }
+ }
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ padding-left: 16px;
+ margin-bottom: 16px;
+ }
+
+ &__wrap-btn {
+ flex: 0 0 100%;
+ display: flex;
+ gap: 16px;
+
+ .btn-apply,
+ .btn-video {
+ @media (max-width: 767px) {
+ padding: 8px;
+ height: 40px;
+ }
+ }
+ }
+
+ &__title {
+ color: $white;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 500;
+ line-height: normal;
+ }
+
+ &__info {
+ color: $white;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ display: flex;
+ flex-flow: column;
+ gap: 8px;
+
+ i {
+ display: none;
+ font-style: normal;
+ }
+ }
+
+ &__rating {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ flex-flow: wrap;
+
+ span {
+ display: block;
+ color: #2C7873;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ }
+
+ img {
+ width: 120px;
+ object-fit: cover;
+ }
+ }
+
+ &__wrap {
+ display: flex;
+ }
+
+ @media (min-width: 992px) {
+ padding: 38px 24px 38px 24px;
+ flex-flow: nowrap;
+ justify-content: space-between;
+
+ &__avatar {
+ width: 220px;
+ height: 220px;
+ position: absolute;
+ top: 24px;
+ left: 24px;
+ }
+
+ &__inner {
+ padding-left: 244px;
+ gap: 16px;
+ margin-bottom: 0;
+ }
+
+ &__wrap-btn {
+ flex: 0 0 auto;
+ width: 168px;
+
+ .btn-video {
+ position: absolute;
+ padding: 0;
+ gap: 0;
+ left: 24px;
+ bottom: -32px;
+ width: 64px;
+ height: 64px;
+ font-size: 0;
+ color: transparent;
+ border-radius: 50%;
+ background: $white;
+ box-shadow: 0px 2px 4px 0px rgba(102, 165, 173, 0.32);
+
+ img {
+ width: 32px;
+ height: 32px;
+ object-fit: cover;
+ }
+
+ }
+ }
+
+ &__title {
+ @include rem(48);
+ }
+
+ &__info {
+ @include rem(18);
+ flex-flow: nowrap;
+ gap: 16px;
+ i {
+ display: block;
+ }
+ }
+
+ &__rating {
+ @include rem(15);
+ gap: 16px;
+
+ img {
+ width: 168px;
+ }
+ }
+ }
+}
+
+.base-text {
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ margin-bottom: 16px;
+}
+
+
+.offers-list {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ margin-bottom: 16px;
+}
+
+.form-link {
+ display: flex;
+ justify-content: center;
+
+ a {
+ color: #003B46;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ }
+
+ @media (min-width: 768px) {
+ justify-content: flex-start;
+ }
+}
+
+.breadcrumb {
+ margin-bottom: 16px;
+ list-style: none;
+ display: flex;
+ align-items: center;
+ flex-flow: wrap;
+
+ .breadcrumb-item {
+ color: #6FB98F;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 133.333%;
+
+ a {
+ color: #2C7873;
+ }
+
+ +.breadcrumb-item {
+ padding-left: 0.5rem;
+
+ &:before {
+ float: left;
+ padding-right: 0.5rem;
+ color: #6FB98F;
+ content: "/";
+ }
+ }
+ }
+
+ @media (min-width: 768px) {
+ margin-bottom: 24px;
+
+ .breadcrumb-item {
+ @include rem(24);
+ }
+ }
+}
+
+
+
+
+
diff --git a/src/styles/_footer.scss b/src/styles/_footer.scss
new file mode 100644
index 0000000..9ab2f0a
--- /dev/null
+++ b/src/styles/_footer.scss
@@ -0,0 +1,150 @@
+@import "_variables";
+
+.b-footer {
+ background: #DFF5FB;
+ position: relative;
+ padding-top: 16px;
+ padding-bottom: 16px;
+
+ &:after {
+ content: "";
+ position: absolute;
+ background-image: url(/images/wave-footer.svg);
+ background-position: center;
+ height: 16px;
+ width: 100%;
+ top: -15px;
+ overflow: hidden;
+ left: 0;
+ background-size: contain;
+
+ @media (max-width: 400px) {
+ background-size: cover;
+ }
+
+ @media (min-width: 768px) {
+ height: 80px;
+ top: -79px;
+ background-size: 1920px 80px;
+ }
+ }
+
+ &__logo {
+ margin-right: auto;
+ width: 104px;
+ height: 38px;
+ display: block;
+ text-decoration: none;
+
+ img {
+ width: 100%;
+ height: auto;
+ object-fit: cover;
+ }
+ }
+
+ &__row {
+ display: flex;
+ gap: 24px;
+ }
+
+ &__coll,
+ &__coll-2 {
+ display: flex;
+
+ gap: 16px;
+
+ &__item {
+ display: flex;
+ gap: 16px;
+ }
+ }
+
+ &__social {
+ display: flex;
+ gap: 16px;
+ margin-left: auto;
+ }
+
+ &__link {
+ display: inline-flex;
+ gap: 8px;
+ text-decoration: none;
+ color: #003B46;
+ @include rem(16);
+ font-style: normal;
+ font-weight: 700;
+ line-height: 150%;
+ white-space: nowrap;
+ }
+
+ &__text {
+ display: inline-flex;
+ gap: 8px;
+ color: #003B46;
+ @include rem(16);
+ font-style: normal;
+ font-weight: 700;
+ line-height: 150%;
+ }
+
+ @media (max-width: 767px) {
+ &__logo {
+ margin-bottom: 16px;
+ }
+ &__row {
+ flex-direction: column;
+ gap: 16px;
+ }
+
+ &__coll {
+ flex-direction: column;
+ &__item {
+ flex-direction: column;
+ gap: 16px;
+ }
+ }
+ }
+
+
+ @media (min-width: 768px) {
+ padding-bottom: 32px;
+
+ &__row {
+ gap: 18px;
+ }
+
+ &__coll,
+ &__coll-2 {
+ gap: 16px 18px;
+ flex-direction: column;
+
+ &__item {
+ gap: 18px;
+ }
+ }
+ }
+
+ @media (min-width: 992px) {
+ &__logo {
+ margin-right: auto;
+ margin-left: 14px;
+ width: 178px;
+ height: 64px;
+ }
+
+ &__row {
+ gap: 24px;
+ }
+
+ &__coll,
+ &__coll-2 {
+ gap: 16px 24px;
+ flex-direction: column;
+
+ &__item {
+ gap: 24px;
+ }
+ }
+ }
+}
diff --git a/src/styles/_form.scss b/src/styles/_form.scss
new file mode 100644
index 0000000..59c1737
--- /dev/null
+++ b/src/styles/_form.scss
@@ -0,0 +1,144 @@
+@import "_variables";
+
+.form-field {
+ position: relative;
+
+ &.date,
+ &.password-hide,
+ &.password-show {
+ input {
+ padding-right: 32px !important;
+ }
+ }
+
+ &.date {
+ &:before {
+ content: "";
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 24px;
+ height: 24px;
+ background-image: url(/images/calendar-clear-outline.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+ }
+
+ &.password-hide {
+ &:before {
+ content: "";
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 24px;
+ height: 24px;
+ background-image: url(/images/eye-off.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+ }
+
+ &.password-show {
+ &:before {
+ content: "";
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 24px;
+ height: 24px;
+ background-image: url(/images/eye-outline.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+ }
+}
+
+input {
+ &.base-input {
+ height: 54px;
+ width: 100%;
+ padding: 8px 8px 8px 16px;
+ border-radius: 8px;
+ background: #F8F8F7;
+ border: 1px solid #F8F8F7;
+ outline: none;
+ color: $black;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+
+ }
+}
+
+textarea {
+ &.base-textarea {
+ height: 120px;
+ width: 100%;
+ padding: 15px 16px;
+ border-radius: 8px;
+ background: #F8F8F7;
+ border: 1px solid #F8F8F7;
+ outline: none;
+ color: $black;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+
+ }
+}
+
+.user-avatar {
+ display: flex;
+ gap: 16px;
+ align-items: center;
+
+ &__edit {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ border-radius: 16px;
+ border: 2px solid #FFF;
+ box-shadow: 0px 8px 16px 0px rgba(102, 165, 173, 0.32);
+ background-image: url(/images/user-avatar.png);
+ background-position: 50%;
+ background-repeat: no-repeat;
+
+ input {
+ width: 0.1px;
+ height: 0.1px;
+ opacity: 0;
+ overflow: hidden;
+ position: absolute;
+ z-index: -1;
+ }
+
+ label {
+ position: absolute;
+ right: -8px;
+ bottom: -8px;
+ cursor: pointer;
+ display: block;
+ width: 42px;
+ height: 42px;
+ border-radius: 8px;
+ background-color: #66A5AD;
+ background-image: url(/images/camera.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+ }
+
+ &__text {
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ }
+}
diff --git a/src/styles/_header.scss b/src/styles/_header.scss
new file mode 100644
index 0000000..6745d43
--- /dev/null
+++ b/src/styles/_header.scss
@@ -0,0 +1,99 @@
+@import "_variables";
+
+.b-header {
+ .b-inner {
+ display: flex;
+ justify-content: space-between;
+ padding-top: 16px;
+ align-items: center;
+
+ @media (max-width: 991px) {
+ gap: 24px;
+ }
+ }
+
+ &__logo {
+ width: 166px;
+ height: 60px;
+ margin-right: auto;
+
+ img {
+ width: 100%;
+ height: auto;
+ object-fit: cover;
+ }
+
+ @media (max-width: 991px) {
+ width: 104px;
+ height: 38px;
+ }
+ }
+
+ &__menu-open {
+ display: none;
+ cursor: pointer;
+
+ @media (max-width: 991px) {
+ display: flex;
+ }
+ }
+
+ &__nav {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ margin-right: 16px;
+
+ &__list {
+ display: none;
+ align-items: center;
+ gap: 16px;
+ height: inherit;
+ list-style:none;
+ margin: 0;
+ padding: 0;
+
+ li {
+ height: 100%;
+ }
+
+ a {
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ color: #66A5AD;
+ height: 100%;
+ display: inline-flex;
+ align-items: center;
+ text-decoration: none;
+ }
+
+ .text {
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ color: #003B46;
+ height: 100%;
+ display: inline-flex;
+ align-items: center;
+ }
+
+ &__line {
+ color: #C4C4C4;
+ @include rem(16);
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ }
+
+ @media (min-width: 992px) {
+ display: flex;
+
+ a,
+ .text {
+ @include rem(16);
+ }
+ }
+ }
+ }
+}
diff --git a/src/styles/_main.scss b/src/styles/_main.scss
new file mode 100644
index 0000000..fe5c6b0
--- /dev/null
+++ b/src/styles/_main.scss
@@ -0,0 +1,619 @@
+@import "_variables";
+
+.main-top {
+ padding-top: 16px;
+ overflow: hidden;
+ max-height: 570px;
+ position: relative;
+
+ @media (min-width: 576px) {
+ max-height: 600px;
+ }
+
+ @media (min-width: 768px) {
+ max-height: 700px;
+ }
+
+ @media (min-width: 992px) {
+ min-height: 516px;
+ max-height: 555px;
+
+ &:after {
+ content: "";
+ width: 28px;
+ height: 28px;
+ background: #4566E8;
+ filter: blur(4px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 30px;
+ right: 106px;
+ }
+
+ &:before {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #7CE6EE;
+ filter: blur(16px);
+ position: absolute;
+ border-radius: 50%;
+ left: calc(((100% - 990px) / 2) / 2);
+ top: 32px;
+ }
+ }
+
+ @media (min-width: 1200px) {
+ min-height: 555px;
+ &:before {
+ left: calc(((100% - 1290px) / 2) / 2);
+ top: 32px;
+ }
+ }
+
+
+ .b-inner {
+ position: relative;
+
+ &:before {
+ @media (min-width: 992px) {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #7CE6EE;
+ filter: blur(16px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ left: 500px;
+ top: 300px;
+ }
+ @media (min-width: 1200px) {
+ left: 520px;
+ top: 310px;
+ }
+ }
+
+ &:after {
+ @media (min-width: 992px) {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 110px;
+ right: -2px;
+ content: "";
+ }
+
+ @media (min-width: 1200px) {
+ top: 320px;
+ right: -2%;
+ }
+
+ @media (min-width: 1420px) {
+ top: 320px;
+ right: -8%;
+ }
+
+ @media (min-width: 1770px) {
+ top: 320px;
+ right: -18%;
+ }
+ }
+ }
+
+ .title-h1 {
+ text-align: center;
+ margin-bottom: 16px;
+ padding-top: 8px;
+
+ @media (min-width: 768px) {
+ padding-top: 24px;
+ }
+
+ @media (min-width: 992px) {
+ max-width: 690px;
+ text-align: left;
+ padding-top: 70px;
+ margin-bottom: 24px;
+ }
+ }
+
+ &__wrap-text {
+ margin-bottom: 24px;
+ text-align: center;
+
+ @media (min-width: 992px) {
+ max-width: 530px;
+ text-align: left;
+ }
+
+ @media (min-width: 1200px) {
+ max-width: 580px;
+ }
+ @media (min-width: 1450px) {
+ max-width: 690px;
+ }
+ }
+
+ &__text {
+ color: #2C7873;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 133.333%;
+
+ @media (min-width: 576px) {
+ @include rem(16);
+ }
+
+ @media (min-width: 768px) {
+ @include rem(24);
+ }
+
+ @media (max-width: 1249px) {
+ br {
+ display: none;
+ }
+ }
+ }
+
+ &__wrap-btn {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ margin-bottom: 24px;
+ justify-content: center;
+ position: relative;
+
+ @media (min-width: 992px) {
+ gap: 24px;
+ justify-content: flex-start;
+ }
+
+ @media (min-width: 1200px) {
+ &:after {
+ content: "";
+ width: 41px;
+ height: 41px;
+ background: #FCFF3D;
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ left: -63px;
+ bottom: -75px;
+ }
+ }
+ }
+
+ &__btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ height: 50px;
+ padding: 12px;
+ @include rem(14);
+ border-radius: 24px;
+ gap: 6px;
+ color: $white;
+ font-style: normal;
+ font-weight: 700;
+ line-height: 133.333%;
+ text-decoration: none;
+
+ &--android {
+ background: #D280FF;
+ }
+
+ &--apple {
+ background: #5AADCC;
+ }
+
+ img {
+ width: 24px;
+ height: 24px;
+ object-fit: cover;
+ }
+
+ .line {
+ background: #D9D9D9;
+ width: 1px;
+ height: 24px;
+ }
+
+ @media (min-width: 430px) {
+ height: 56px;
+ padding: 16px;
+ @include rem(18);
+ border-radius: 24px;
+ min-width: 191px;
+ gap: 8px;
+ }
+
+ @media (min-width: 768px) {
+ height: 64px;
+ padding: 11px 15px 11px 24px;
+ @include rem(24);
+ border-radius: 62px;
+ justify-content: flex-start;
+ .line {
+ height: 42px;
+ }
+
+ img {
+ width: 32px;
+ height: 32px;
+ }
+ }
+ }
+
+ &__img {
+ width: 397px;
+ height: 403px;
+ left: 50%;
+ position: relative;
+ transform: translateX(-50%);
+
+ img {
+ width: 100%;
+ height: auto;
+ object-fit: cover;
+ }
+
+ @media (max-width: 991px) {
+ &:before {
+ content: "";
+ position: absolute;
+ width: 65px;
+ height: 65px;
+ background: #7CE6EE;
+ filter: blur(16px);
+ border-radius: 50%;
+ top: 255px;
+ z-index: 2;
+ left: -20px;
+ }
+
+ &:after {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ right: -35px;
+ top: 25px;
+ }
+ }
+
+ @media (min-width: 992px) {
+ width: 415px;
+ height: 421px;
+ right: 0;
+ top: 90px;
+ left: auto;
+ position: absolute;
+ transform: none;
+ }
+
+ @media (min-width: 1200px) {
+ top: 0;
+ right: 0;
+ width: 615px;
+ height: 624px;
+ }
+
+ @media (min-width: 1420px) {
+ width: 615px;
+ height: 624px;
+ right: -44px;
+ top: 0;
+ }
+ }
+}
+
+.main-articles {
+ position: relative;
+ background: #DFF5FB;
+ padding-bottom: 4px;
+
+ &:before {
+ content: "";
+ position: absolute;
+ background-image: url(/images/wave-top.svg);
+ background-position: center;
+ height: 86px;
+ width: 100%;
+ top: -86px;
+ overflow: hidden;
+ background-size: 893px 87px;
+
+ @media (min-width: 768px) {
+ height: 97px;
+ width: 100%;
+ top: -96px;
+ background-size: 992px 97px;
+ }
+
+ @media (min-width: 992px) {
+ height: 150px;
+ width: 100%;
+ top: -149px;
+ background-size: 1538px 150px;
+ }
+
+ @media (min-width: 1200px) {
+ height: 187px;
+ top: -186px;
+ background-size: cover;
+ }
+ }
+
+ &:after {
+ content: "";
+ position: absolute;
+ background-image: url(/images/wave-2.svg);
+ background-position: center;
+ height: 16px;
+ width: 100%;
+ bottom: -15px;
+ overflow: hidden;
+ left: 0;
+ background-size: contain;
+ background-color: $white;
+
+ @media (min-width: 768px) {
+ height: 80px;
+ bottom: -79px;
+ width: 100%;
+ background-size: 1920px 80px;
+ }
+ }
+
+ .title-h2 {
+ margin-bottom: 16px;
+ }
+}
+
+.main-popular {
+ padding-top: 32px;
+ padding-bottom: 16px;
+
+ .title-h2 {
+ margin-bottom: 16px;
+ }
+
+ &__row {
+ display: flex;
+ gap: 16px;
+ }
+
+ @media (max-width: 400px) {
+ &__coll {
+ width: 100%;
+ display: none;
+ &:first-child {
+ display: block;
+ }
+ }
+ }
+
+ @media (min-width: 576px) {
+ &__coll {
+ width: calc(50% - 8px);
+ }
+ }
+
+ @media (min-width: 768px) {
+ padding-top: 104px;
+ padding-bottom: 24px;
+
+ &__coll {
+ width: calc(33.33333333% - 8px);
+ }
+ }
+
+ @media (min-width: 992px) {
+ &__coll {
+ width: calc(20% - 8px);
+ }
+ }
+
+ @media (min-width: 1200px) {
+ &__coll {
+ width: calc(16.66666667% - 8px);
+ }
+ }
+}
+
+.main-find {
+ position: relative;
+ overflow: hidden;
+ padding-bottom: 25px;
+
+ .b-inner {
+ position: relative;
+
+ &:before {
+
+ @media (min-width: 992px) {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #7CE6EE;
+ filter: blur(16px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 379px;
+ right: -6%;
+ }
+ @media (min-width: 1200px) {
+ top: 379px;
+ right: -10%;
+ }
+ }
+
+ &:after {
+ @media (min-width: 992px) {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ bottom: -5px;
+ right: -2px;
+ content: "";
+ }
+
+ @media (min-width: 1200px) {
+
+ right: -2%;
+ }
+ }
+ }
+
+ @media (min-width: 768px) {
+ padding-bottom: 16px;
+ }
+
+ @media (min-width: 992px) {
+ &:before {
+ content: "";
+ width: 51px;
+ height: 51px;
+ background: #EC8238;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ left: 20px;
+ top: 923px;
+ }
+ }
+
+ @media (min-width: 1200px) {
+ &:before {
+ left: 126px;
+ top: 923px;
+ }
+ }
+
+ &__top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 16px;
+ }
+
+ .open-filter {
+ display: flex;
+ cursor: pointer;
+ width: 24px;
+ height: 24px;
+
+ @media (min-width: 992px) {
+ display: none;
+ }
+ }
+
+
+ .b-filter {
+ padding-right: 8px;
+ position: relative;
+
+ @media (min-width: 992px) {
+ &:before {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ left: -126px;
+ top: 300px;
+ }
+
+ &:after {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #F5F944;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ left: 51px;
+ bottom: -110px;
+ }
+ }
+ }
+
+ &__search {
+ width: 100%;
+ display: none;
+ height: 54px;
+ gap: 16px;
+ margin-bottom: 16px;
+
+ select,
+ input {
+ width: 100%;
+ height: 100%;
+ }
+
+ &__input {
+ height: 100%;
+ flex: 1 0 0%;
+ }
+
+ &__sort {
+ width: 200px;
+ height: 100%;
+ }
+
+ &__language {
+ width: 150px;
+ height: 100%;
+ }
+
+ @media (min-width: 992px) {
+ display: flex;
+ &__sort {
+ width: 120px;
+ }
+
+ &__language {
+ width: 120px;
+ }
+ }
+
+ @media (min-width: 1200px) {
+ &__sort {
+ width: 200px;
+ }
+
+ &__language {
+ width: 150px;
+ }
+ }
+
+ .btn-apply {
+ width: 97px;
+ }
+ }
+}
+
+.search-result {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ margin-bottom: 16px;
+}
diff --git a/src/styles/_menu-mobile.scss b/src/styles/_menu-mobile.scss
new file mode 100644
index 0000000..1dbe94b
--- /dev/null
+++ b/src/styles/_menu-mobile.scss
@@ -0,0 +1,118 @@
+@import "_variables";
+
+.menu-mobile {
+ background-color: #66A5AD;
+ width: 100%;
+ max-width: 430px;
+ position: fixed;
+ left: 0;
+ top: 0;
+ height: 100vh;
+ z-index: 9999;
+
+ &__header {
+ background-color: rgba(255, 255, 255, 0.20);
+ display: flex;
+ padding: 24px 16px;
+ align-items: center;
+ gap: 16px;
+
+ &__avatar {
+ box-shadow: 0px 2px 4px 0px rgba(102, 165, 173, 0.32);
+ width: 64px;
+ height: 64px;
+ border-radius: 50%;
+ overflow: hidden;
+ }
+
+ &__nav {
+ list-style:none;
+ margin: 0;
+ display: flex;
+ gap: 8px;
+
+ &__line {
+ color: #C4C4C4;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ }
+
+ a {
+ font-style: normal;
+ font-weight: 600;
+ @include rem(16);
+ line-height: normal;
+ color: $white;
+ display: inline-flex;
+ align-items: center;
+ text-decoration: none;
+ }
+ }
+ }
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ overflow-y: auto;
+ }
+
+ &__body {
+ flex: 1 0 auto;
+
+ }
+
+ &__list {
+ display: flex;
+ flex-direction: column;
+ padding: 0;
+ height: inherit;
+ list-style:none;
+ margin: 0;
+
+ li {
+ width: 100%;
+ padding: 0 16px;
+
+ &:last-child {
+ a {
+ border: none;
+ }
+ }
+
+ &.chosen {
+ padding: 0;
+ a {
+ border-color: #2C7873;
+ padding-left: 16px;
+ padding-right: 16px;
+ color: #D93E5C;
+ }
+ }
+ }
+
+ a {
+ width: 100%;
+ font-style: normal;
+ font-weight: 600;
+ @include rem(16);
+ line-height: normal;
+ color: $white;
+ display: inline-flex;
+ align-items: center;
+ text-decoration: none;
+ padding: 16px 0;
+ border-bottom: 1px solid rgba(252, 214, 70, 0.16);
+
+ &.active {
+ color: #FFBD00;
+ }
+ }
+ }
+
+ @media (max-width: 991px) {
+ //display: block;
+ }
+}
\ No newline at end of file
diff --git a/src/styles/_message.scss b/src/styles/_message.scss
new file mode 100644
index 0000000..abb0f8a
--- /dev/null
+++ b/src/styles/_message.scss
@@ -0,0 +1,161 @@
+@import "_variables";
+
+.b-message {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ overflow: hidden;
+ height: calc(100% - 40px);
+
+ @media (min-width: 768px) {
+ height: calc(100% - 56px);
+ }
+
+ &__inner {
+ flex-grow: 1;
+ height: 0;
+ position: relative;
+ overflow-y: auto;
+ }
+
+ &__list {
+ padding-top: 18px;
+ margin-bottom: 16px;
+ display: flex;
+ justify-content: flex-start;
+
+ &--me {
+ justify-content: flex-end;
+ .b-message__item {
+ flex-direction: row-reverse;
+
+ .b-message__text {
+ border-radius: 8px 8px 0px 8px;
+ }
+ }
+ }
+ }
+
+ &__item {
+ display: flex;
+ align-items: flex-end;
+ gap: 8px;
+ justify-content: flex-start;
+ position: revert;
+ width: 100%;
+ max-width: 85%;
+
+ .date {
+ position: absolute;
+ top: -17px;
+ left: 0;
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ }
+
+ }
+
+ &__avatar {
+ width: 36px;
+ min-width: 36px;
+ height: 36px;
+ overflow: hidden;
+ border-radius: 50%;
+ background: lightgray 50%;
+ box-shadow: 0px 8px 16px 0px rgba(102, 165, 173, 0.32);
+
+ img {
+ object-fit: cover;
+ width: 100%;
+ height: 100%;
+ display: block;
+ }
+ }
+
+ &__text {
+ background: #DFF5FB;
+ padding: 8px 16px;
+ border-radius: 8px 8px 8px 0px;
+ position: relative;
+ }
+
+ &__form {
+ height: 72px;
+ width: 100%;
+ border-radius: 48px;
+ border: 1px solid #6FB98F;
+ background: #FFF;
+ display: flex;
+ padding: 8px;
+ align-items: center;
+
+ textarea {
+ width: calc(100% - 136px);
+ height: 24px;
+ padding: 0 8px;
+ border-radius: 0;
+ background: transparent;
+ border: none;
+ outline: none;
+ color: #66A5AD;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+ }
+ }
+
+ &__btn {
+ user-select: none;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ width: 56px;
+ cursor: pointer;
+ border-radius: 50%;
+ box-shadow: none;
+ display: flex;
+ height: 56px;
+ padding: 8px ;
+ justify-content: center;
+ align-items: center;
+ background-color: #6FB98F;
+ background-image: url(/images/paper-plane-outline.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+
+ &__upload-file {
+ position: relative;
+ cursor: pointer;
+ width: 24px;
+ height: 24px;
+ background-image: url(/images/attach.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ margin-right: 16px;
+
+ input {
+ width: 0.1px;
+ height: 0.1px;
+ opacity: 0;
+ overflow: hidden;
+ position: absolute;
+ z-index: -1;
+ }
+ }
+
+ &__microphone {
+ cursor: pointer;
+ width: 24px;
+ height: 24px;
+ background-image: url(/images/mic-outline.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ margin-right: 16px;
+ }
+}
diff --git a/src/styles/_pages.scss b/src/styles/_pages.scss
new file mode 100644
index 0000000..8518e3f
--- /dev/null
+++ b/src/styles/_pages.scss
@@ -0,0 +1,1373 @@
+@import "_variables";
+
+.b-page {
+ padding-top: 24px;
+
+ &__back {
+ margin-bottom: 16px;
+ }
+
+ .expert-card {
+ }
+
+ .title-h2 {
+ margin-bottom: 16px;
+ padding-top: 16px;
+ }
+
+ .title-h3 {
+ margin-bottom: 8px;
+ }
+
+ .skills__list,
+ .sertific {
+ margin-bottom: 16px;
+ }
+
+ .wrap-btn-prise {
+ display: flex;
+ flex-flow: column;
+ gap: 8px;
+ align-items: center;
+
+ &__text {
+ color: #6FB98F;
+ @include rem(24);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 133.333%;
+
+ span {
+ color: #B7B7B7;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ }
+ }
+ }
+
+ .case-list {
+ .skills__list,
+ .base-text {
+ margin-bottom: 8px;
+ }
+
+ +.case-list {
+ padding-top: 16px;
+ border-top: 1px solid #C4DFE6;
+ }
+ }
+
+
+ @media (min-width: 576px) {
+ &__back {
+ max-width: 245px;
+ }
+
+ .wrap-btn-prise {
+ flex-flow: nowrap;
+ gap: 16px;
+
+ a {
+ max-width: 300px;
+ }
+ }
+ }
+
+ @media (min-width: 768px) {
+ &__back {
+ margin-bottom: 24px;
+ }
+
+ .title-h2 {
+ padding-top: 24px;
+ }
+
+ .expert-card {
+ margin-bottom: 32px;
+ }
+
+ .offers-list {
+ margin-bottom: 72px;
+ }
+ }
+}
+
+.b-news {
+
+ &__header {
+ position: relative;
+ padding-top: 24px;
+
+ .b-inner {
+ position: relative;
+ }
+
+
+ .title-h1 {
+ text-align: center;
+ margin-bottom: 16px;
+ }
+
+ .wrap-text {
+ text-align: center;
+ margin-bottom: 16px;
+
+ p {
+ color: #2C7873;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 133.333%;
+
+ @media (min-width: 576px) {
+ @include rem(16);
+ }
+
+ @media (min-width: 768px) {
+ @include rem(24);
+ }
+
+ @media (max-width: 1249px) {
+ br {
+ display: none;
+ }
+ }
+ }
+ }
+
+ &__img {
+ width: 398px;
+ height: 368px;
+ left: 50%;
+ position: relative;
+ transform: translateX(-50%);
+
+ @media (max-width: 400px) {
+ width: 100%;
+ height: auto;
+ }
+
+ img {
+ width: 100%;
+ height: auto;
+ object-fit: cover;
+ }
+ }
+
+ @media (min-width: 768px) {
+ padding-top: 38px;
+ }
+
+ @media (min-width: 992px) {
+ padding-top: 0;
+ min-height: 445px;
+ .title-h1 {
+ max-width: 580px;
+ padding-top: 110px;
+ margin-bottom: 32px;
+ }
+
+ .wrap-text {
+ max-width: 555px;
+ position: relative;
+
+ &:before {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #F5F944;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ bottom: -103px;
+ left: 32px;
+ }
+ }
+
+ &__img {
+ position: absolute;
+ left: auto;
+ right: 0;
+ top: 24px;
+ width: 474px;
+ height: 465px;
+ transform: none;
+ }
+ }
+
+ @media (min-width: 1200px) {
+ &:before {
+ content: "";
+ width: 28px;
+ height: 28px;
+ background: #4566E8;
+ filter: blur(4px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: -65px;
+ left: 160px;
+ }
+ &:after {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: -100px;
+ right: 164px;
+ content: "";
+ }
+
+ .title-h1 {
+ max-width: 800px;
+ }
+
+ .wrap-text {
+ max-width: 800px;
+ }
+ }
+ }
+
+ &__filter {
+ position: relative;
+
+ @media (min-width: 992px) {
+ &:before {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #F5F944;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ bottom: 15px;
+ right: 16px;
+ }
+ }
+ }
+
+ .wrap-filter {
+ display: flex;
+ flex-flow: wrap;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ position: relative;
+
+ .filter-item {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 62px;
+ border: 1px solid #003B46;
+ height: 40px;
+ padding: 8px 16px;
+ color: #003B46;
+ @include rem(16);
+ font-style: normal;
+ font-weight: 700;
+ line-height: 133.333%;
+ text-decoration: none;
+
+ &:hover,
+ &.active {
+ color: $white;
+ background-color: #003B46;
+ }
+ }
+
+ @media (min-width: 768px) {
+ gap: 16px;
+
+ .filter-item {
+ height: 64px;
+ padding: 16px 24px;
+ @include rem(24);
+ }
+ }
+ }
+
+ &__result-list {
+ position: relative;
+ padding-top: 27px;
+ overflow: hidden;
+
+ @media (min-width: 768px) {
+ padding-top: 42px;
+ margin-bottom: 56px;
+ }
+
+ .b-inner {
+ position: relative;
+
+ @media (min-width: 1200px) {
+ &:before {
+ content: "";
+ width: 51px;
+ height: 51px;
+ background: #EC8238;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 240px;
+ left: -140px;
+ }
+ &:after {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 516px;
+ right: -88px;
+ content: "";
+ }
+ }
+ }
+ }
+
+
+}
+
+.news-list {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ position: relative;
+
+ @media (min-width: 992px) {
+ gap: 24px;
+
+ &:after {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: -1;
+ bottom: 200px;
+ left: -33px;
+ content: "";
+ }
+ }
+}
+
+.news-item {
+ padding-bottom: 16px;
+ border-bottom: 1px solid #66A5AD;
+ display: flex;
+ gap: 16px;
+ flex-flow: column;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: space-between;
+ }
+
+ &__image {
+ height: 214px;
+ width: 100%;
+ border-radius: 16px;
+ overflow: hidden;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ object-position: top;
+ }
+ }
+
+ &__title {
+ color: #2C7873;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ margin-bottom: 16px;
+ }
+
+ &__badge {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 16px;
+ height: 24px;
+ padding: 4px 8px;
+ color: $white;
+ background-color: #2C7873;
+ @include rem(14);
+ font-style: normal;
+ font-weight: 500;
+ line-height: normal;
+ margin-bottom: 16px;
+ }
+
+ &__text {
+ color: #003B46;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ margin-bottom: 16px;
+ display: -webkit-box;
+ -webkit-line-clamp: 7;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+
+ &__info {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 16px;
+ width: 100%;
+
+ @media (max-width: 400px) {
+ flex-flow: wrap;
+ gap: 8px;
+ }
+
+ &__author {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+
+ img {
+ display: block;
+ overflow: hidden;
+ border-radius: 50%;
+ width: 48px;
+ min-width: 48px;
+ height: 48px;
+ object-fit: cover;
+ }
+
+ &__inner {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ }
+ }
+
+ &__name {
+ color: #2C7873;
+ @include rem(16);
+ font-style: normal;
+ font-weight: 700;
+ line-height: normal;
+ }
+
+ &__date {
+ color: #66A5AD;
+ @include rem(14);
+ font-style: normal;
+ font-weight: 400;
+ line-height: normal;
+ }
+
+ &__counter {
+ display: flex;
+ gap: 16px;
+ }
+
+ &__share,
+ &__like {
+ display: flex;
+ gap: 4px;
+ align-items: center;
+ color: #003B46;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 500;
+ line-height: normal;
+ }
+ }
+
+ @media (min-width: 768px) {
+ flex-flow: nowrap;
+
+ &__image {
+ width: 300px;
+ min-width: 300px;
+ height: auto;
+ }
+
+ &__title,
+ &__text {
+ margin-bottom: 8px;
+ }
+
+ &__badge {
+ margin-bottom: 8px;
+ }
+ }
+
+ @media (min-width: 992px) {
+ gap: 24px;
+ flex-flow: nowrap;
+
+ &__image {
+ width: 380px;
+ min-width: 380px;
+ }
+
+ &__title {
+ @include rem(22);
+ margin-bottom: 8px;
+ }
+
+ &__text {
+ @include rem(16);
+ -webkit-line-clamp: 4;
+ }
+ }
+}
+
+.b-news-page {
+ position: relative;
+ padding-bottom: 16px;
+ padding-top: 24px;
+ overflow: hidden;
+
+ &__title {
+ color: #2C7873;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ margin-bottom: 16px;
+ }
+
+ .news-item__badge{
+ margin-bottom: 16px;
+ }
+
+ &__text {
+ color: #2C7873;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ margin-bottom: 16px;
+ }
+
+ &__image {
+ width: 100%;
+ overflow: hidden;
+ border-radius: 16px;
+ height: 300px;
+ margin-bottom: 16px;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+ }
+
+ .title-h2 {
+ padding-top: 16px;
+ margin-bottom: 16px;
+ }
+
+ &__inner {
+ position: relative;
+
+ @media (min-width: 1200px) {
+ &:before {
+ content: "";
+ width: 65px;
+ height: 65px;
+ background: #F5F944;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 535px;
+ right: -190px;
+ }
+ &:after {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: 560px;
+ left: -130px;
+ content: "";
+ }
+ }
+ }
+
+ @media (min-width: 768px) {
+ padding-bottom: 65px;
+
+ &__title {
+ @include rem(32);
+ }
+
+ &__text {
+ @include rem(16);
+ }
+ }
+
+ @media (min-width: 1200px) {
+ &:before {
+ content: "";
+ width: 28px;
+ height: 28px;
+ background: #4566E8;
+ filter: blur(4px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: -65px;
+ left: 160px;
+ }
+ &:after {
+ width: 65px;
+ height: 65px;
+ background: #D280FF;
+ filter: blur(6.5px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: -100px;
+ right: 164px;
+ content: "";
+ }
+ }
+}
+
+.page-search {
+ position: relative;
+ padding-top: 24px;
+ padding-bottom: 16px;
+
+ .main-find__top {
+ display: none;
+ }
+
+
+ @media (min-width: 768px) {
+ padding-bottom: 55px;
+
+ .main-find__top {
+ display: flex;
+ }
+ }
+
+ @media (min-width: 992px) {
+ .main-find {
+ .b-inner {
+ &:after {
+ top: 50%;
+ bottom: auto;
+ transform: translateY(-50%);
+ }
+ }
+ }
+ }
+
+ @media (min-width: 1200px) {
+ &:after {
+ width: 28px;
+ height: 28px;
+ background: #4566E8;
+ filter: blur(4px);
+ position: absolute;
+ border-radius: 50%;
+ z-index: 1;
+ top: -10px;
+ right: 106px;
+ content: "";
+ }
+ }
+}
+
+.page-account {
+ padding-top: 24px;
+ padding-bottom: 24px;
+ height: calc(100% - 52px);
+
+ @media (min-width: 768px) {
+ height: calc(100% - 80px);
+ }
+
+ &__inner,
+ .b-inner,
+ .row,
+ [class*="col-"] {
+ height: 100%;
+ }
+
+ .title-h2 {
+ margin-bottom: 16px;
+ }
+
+ .base-text,
+ .title-h3 {
+ margin-bottom: 8px;
+ }
+
+ @media (min-width: 992px) {
+ &__inner {
+ padding-left: 8px;
+ }
+ }
+}
+
+.list-sidebar {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+
+ &__item {
+ border-bottom: 1px solid #C4DFE6;
+ width: 100%;
+
+ &:last-child {
+ border-bottom: none;
+
+ a {
+ color: #D93E5C;
+ }
+ }
+ }
+
+ .count {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding: 6px 8px 4px 8px;
+ border-radius: 16px;
+ background: #66A5AD;
+ color: $white;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 116.667%;
+ height: 22px;
+ }
+
+ a {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 49px;
+ gap: 8px;
+ color: #003B46;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ text-decoration: none;
+ padding-right: 32px;
+ position: relative;
+
+ &:before {
+ content: "";
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 24px;
+ height: 24px;
+ background-image: url(/images/arrow-sidebar.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+
+
+ &.active {
+ color: #66A5AD;
+ padding-right: 0;
+
+ &:before {
+ display: none;
+ }
+ }
+ }
+}
+
+.tabs-session {
+ display: none;
+ align-items: center;
+ gap: 16px;
+ margin-bottom: 16px;
+
+ @media (min-width: 992px) {
+ display: flex;
+ }
+
+ &__item {
+ cursor: pointer;
+ height: 48px;
+ padding-bottom: 16px;
+ position: relative;
+ display: flex;
+ gap: 10px;
+ justify-content: center;
+ color: #66A5AD;
+ @include rem(24);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 133.333%;
+ align-items: center;
+ width: calc(33.33333333% - 8px);
+
+ .count {
+ height: 22px;
+ border-radius: 8px;
+ background: #D93E5C;
+ display: flex;
+ padding: 4px;
+ justify-content: center;
+ align-items: center;
+ color: $white;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: normal;
+ }
+
+ &:before{
+ content: "";
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ height: 8px;
+ border-radius: 8px;
+ }
+
+ &.active {
+ color: #6FB98F;
+ &:before{
+ background: #2C7873;
+ }
+ }
+ }
+}
+
+.filter-session {
+ display: flex;
+ flex-flow: wrap;
+ gap: 8px;
+ margin-bottom: 16px;
+
+ &__item {
+ height: 54px;
+ width: calc(50% - 4px);
+
+ &--type {
+ display: none;
+ }
+ }
+
+ select {
+ width: 100%;
+ height: 100%;
+ }
+
+ @media (max-width: 991px) {
+ gap: 16px;
+ &__item {
+ width: calc(50% - 8px);
+ &--type {
+ display: block;
+ width: 100%;
+ }
+ }
+ }
+}
+
+.list-session {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ margin-bottom: 16px;
+
+ .card-profile {
+ &__header {
+ gap: 8px;
+
+ &__title {
+ color: #2C7873;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ }
+
+ &__date {
+ color: #2C7873;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 116.667%;
+
+ &.chosen {
+ color: #D93E5C;
+ }
+ }
+ }
+ }
+}
+
+.list-notifications {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+
+}
+
+.b-notifications {
+ display: flex;
+ flex-direction: column;
+ padding-left: 24px;
+ position: relative;
+ gap: 4px;
+ padding-bottom: 16px;
+ border-bottom: 1px solid #C4DFE6;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ &:before{
+ content: "";
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 16px;
+ width: 8px;
+ height: auto;
+ border-radius: 8px;
+ }
+
+ &.primary {
+ &:before {
+ border-radius: 8px;
+ background: #6FB98F;
+ }
+ }
+
+ &.danger {
+ &:before {
+ border-radius: 8px;
+ background: #D93E5C;
+ }
+ }
+
+ &__title {
+ overflow: hidden;
+ color: #003B46;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ }
+
+ &__text {
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ }
+
+ &__date {
+ color: #B7B7B7;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 116.667%;
+ }
+
+ &__inner {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ }
+
+ &__read {
+ color: #6FB98F;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 150%;
+ text-decoration: none;
+ }
+
+ &__delete {
+ color: #D93E5C;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 150%;
+ text-decoration: none;
+ }
+}
+
+.form-settings {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+}
+
+.messages-session {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ margin-bottom: 16px;
+
+ .card-profile {
+ &__header {
+ gap: 8px;
+
+ &__title {
+ color: #2C7873;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ }
+
+ &__date {
+ color: #2C7873;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 116.667%;
+ }
+
+ &__name {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+
+ .count {
+ border-radius: 8px;
+ background: #D93E5C;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ height: 22px;
+ min-width: 22px;
+ padding: 4px;
+ color: $white;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: normal;
+ }
+ }
+ }
+ }
+}
+
+.b-info {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ align-items: center;
+
+ .base-text {
+ text-align: center;
+ color: #2C7873;
+ }
+
+ &__title {
+ color: #2C7873;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ text-align: center;
+ }
+}
+
+.image-info {
+ display: flex;
+ justify-content: center;
+
+ img {
+ width: 146px;
+ height: 146px;
+ object-fit: cover;
+ }
+
+}
+
+.coaching-info {
+ display: flex;
+ flex-flow: column;
+ justify-content: space-between;
+ gap: 24px;
+ margin-bottom: 24px;
+
+ .card-profile {
+ border: none;
+ &__header {
+ gap: 8px;
+
+ &__title {
+ color: #6FB98F;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+ }
+ }
+ }
+
+ &__wrap-btn {
+ display: flex;
+ gap: 16px;
+ }
+
+ @media (min-width: 768px) {
+ flex-flow: nowrap;
+ gap: 10px;
+
+ &__wrap-btn {
+ display: flex;
+ gap: 10px;
+ width: 340px;
+ }
+ }
+}
+
+.coaching-section {
+ margin-bottom: 24px;
+
+ .base-text {
+ margin-bottom: 0;
+ }
+
+ &__desc {
+ border-radius: 16px;
+ background: #EFFCFF;
+ padding: 16px;
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+
+ .title-h3 {
+ color: #2C7873;
+ }
+
+ .base-text {
+ color: #003B46;
+ }
+ }
+}
+
+.form-offer {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+
+ .title-h3,
+ .title-h2 {
+ margin-bottom: 0;
+ }
+}
+
+.coaching-offer {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+
+ &__header {
+ display: flex;
+ justify-content: space-between;
+ gap: 10px;
+ }
+
+ &__title {
+ color: #2C7873;
+ @include rem(18);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 133.333%;
+ }
+
+ &__wrap-btn {
+ display: flex;
+ gap: 10px;
+
+ a {
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+
+ &.link-edit {
+ color: #66A5AD;
+ }
+
+ &.link-remove {
+ color: #D93E5C;
+ }
+ }
+ }
+
+ &__price {
+ color: #6FB98F;
+ @include rem(15);
+ font-style: normal;
+ font-weight: 600;
+ line-height: 120%;
+
+ span {
+ color: #B7B7B7;
+ }
+ }
+
+ &__desc {
+ color: #66A5AD;
+ @include rem(13);
+ font-style: normal;
+ font-weight: 500;
+ line-height: 123.077%;
+ }
+}
+
+.timezone {
+ width: 100%;
+ height: 108px;
+ background-color: #2C7873;
+ background-image: url(/images/timezone.svg);
+ background-position: 99% 50%;
+ background-repeat: no-repeat;
+ padding: 16px;
+
+ &__title {
+ color: #FFBD00;
+ @include rem(12);
+ font-style: normal;
+ font-weight: 300;
+ line-height: 116.667%;
+ }
+}
+
+.schedule {
+ display: flex;
+ flex-direction: column;
+ gap: 24px;
+
+ .separator {
+ width: 100%;
+ height: 1px;
+ background: #C4DFE6;
+ }
+
+ &__inner{
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ width: 100%;
+ }
+
+ .title-h3,
+ .title-h2,
+ .base-text {
+ margin-bottom: 0;
+ }
+
+ &__wrap {
+ display: flex;
+ gap: 8px;
+
+ .btn-cancel,
+ .btn-edit {
+ height: 40px;
+ }
+ }
+
+ .btn-delete {
+ cursor: pointer;
+ border-radius: 8px;
+ border: 1px solid #D93E5C;
+ display: flex;
+ width: 54px;
+ height: 54px;
+ background-image: url(/images/close.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ }
+
+ &__add-file {
+ position: relative;
+
+ input {
+ width: 0.1px;
+ height: 0.1px;
+ opacity: 0;
+ overflow: hidden;
+ position: absolute;
+ z-index: -1;
+ }
+
+ label {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ height: 54px;
+ width: 100%;
+ padding: 8px 8px 8px 16px;
+ border-radius: 8px;
+ background: #F8F8F7;
+ border: 1px solid #F8F8F7;
+ outline: none;
+ color: rgba($black, .3);
+ @include rem(15);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 160%;
+ position: relative;
+
+ &:before{
+ content: "";
+ position: absolute;
+ background-image: url(/images/attach-form.svg);
+ background-position: 50%;
+ background-repeat: no-repeat;
+ width: 24px;
+ height: 24px;
+ right: 8px;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+
+ }
+ }
+
+}
diff --git a/src/styles/_reset.scss b/src/styles/_reset.scss
new file mode 100644
index 0000000..80fa7b1
--- /dev/null
+++ b/src/styles/_reset.scss
@@ -0,0 +1,68 @@
+html, body, div, span, h1, h2, h3, h4, h5, h6, p, em, img, strong, sub, sup, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, table, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ vertical-align: baseline;
+ background: transparent;
+ font-size: 100%;
+ font-family: var(--font);
+}
+
+
+a {
+ margin:0;
+ padding:0;
+ font-size:100%;
+ vertical-align:baseline;
+ background-color: transparent;
+ -webkit-text-decoration-skip: objects;
+ outline:none;
+ text-decoration: none;
+ color: #fff;
+}
+
+a:active, a:hover {
+ outline-width: 0;
+ text-decoration: none;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td, td img {
+ vertical-align: top;
+}
+input, select, button, textarea {
+ margin: 0;
+ font-size: 100%;
+ outline: none;
+}
+input[type="text"], input[type="password"], textarea {
+ padding: 0;
+}
+input[type="checkbox"] {
+ vertical-align: bottom;
+}
+input[type="radio"] {
+ vertical-align: text-bottom;
+}
+sub {
+ vertical-align: sub;
+ font-size: smaller;
+}
+sup {
+ vertical-align: super;
+ font-size: smaller;
+}
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+ display:block;
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss
new file mode 100644
index 0000000..7240b9e
--- /dev/null
+++ b/src/styles/_variables.scss
@@ -0,0 +1,13 @@
+//font-size
+@mixin rem($size) {
+ font-size: $size/16*1rem;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+
+//color
+$white: #ffffff;
+$black: #000000;
diff --git a/src/styles/style.scss b/src/styles/style.scss
new file mode 100644
index 0000000..10c8b40
--- /dev/null
+++ b/src/styles/style.scss
@@ -0,0 +1,13 @@
+@import "_variables.scss";
+@import "_reset.scss";
+@import "_default.scss";
+@import "_header.scss";
+@import "_menu-mobile.scss";
+@import "_main.scss";
+@import "_footer.scss";
+@import "_cols.scss";
+@import "_pages.scss";
+@import "_form.scss";
+@import "_message.scss";
+
+
diff --git a/src/types/experts.ts b/src/types/experts.ts
new file mode 100644
index 0000000..debbff2
--- /dev/null
+++ b/src/types/experts.ts
@@ -0,0 +1,7 @@
+export type Filter = Record;
+
+export type AdditionalFilter = {
+ text?: string;
+ sort?: string;
+ language?: string[];
+};