diff --git a/CNAME b/CNAME
new file mode 100644
index 000000000..124baaee9
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+botozz.ru
\ No newline at end of file
diff --git a/build/css/style.css b/build/css/style.css
new file mode 100644
index 000000000..2fa724fb1
--- /dev/null
+++ b/build/css/style.css
@@ -0,0 +1,2152 @@
+@charset "UTF-8";
+/* stylelint-disable */
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
+/* Document
+ ========================================================================== */
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
+ */
+html {
+ line-height: 1.15; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+ ========================================================================== */
+/**
+* Remove the margin in all browsers.
+*/
+body {
+ margin: 0;
+}
+
+/**
+* Render the `main` element consistently in IE.
+*/
+main {
+ display: block;
+}
+
+/**
+* Correct the font size and margin on `h1` elements within `section` and
+* `article` contexts in Chrome, Firefox, and Safari.
+*/
+h1 {
+ margin: 0.67em 0;
+ font-size: 2em;
+}
+
+/* Grouping content
+ ========================================================================== */
+/**
+* 1. Add the correct box sizing in Firefox.
+* 2. Show the overflow in Edge and IE.
+*/
+hr {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+
+/**
+* 1. Correct the inheritance and scaling of font size in all browsers.
+* 2. Correct the odd `em` font sizing in all browsers.
+*/
+pre {
+ font-size: 1em; /* 2 */
+ font-family: monospace, monospace; /* 1 */
+}
+
+/* Text-level semantics
+ ========================================================================== */
+/**
+* Remove the gray background on active links in IE 10.
+*/
+a {
+ background-color: transparent;
+}
+
+/**
+* 1. Remove the bottom border in Chrome 57-
+* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+*/
+abbr[title] {
+ text-decoration: underline; /* 2 */
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted; /* 2 */
+ border-bottom: none; /* 1 */
+}
+
+/**
+* Add the correct font weight in Chrome, Edge, and Safari.
+*/
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+* 1. Correct the inheritance and scaling of font size in all browsers.
+* 2. Correct the odd `em` font sizing in all browsers.
+*/
+code,
+kbd,
+samp {
+ font-size: 1em; /* 2 */
+ font-family: monospace, monospace; /* 1 */
+}
+
+/**
+* Add the correct font size in all browsers.
+*/
+small {
+ font-size: 80%;
+}
+
+/**
+* Prevent `sub` and `sup` elements from affecting the line height in
+* all browsers.
+*/
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/* Embedded content
+ ========================================================================== */
+/**
+* Remove the border on images inside links in IE 10.
+*/
+img {
+ border-style: none;
+}
+
+/* Forms
+ ========================================================================== */
+/**
+* 1. Change the font styles in all browsers.
+* 2. Remove the margin in Firefox and Safari.
+*/
+button,
+input,
+optgroup,
+select,
+textarea {
+ margin: 0; /* 2 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ font-family: inherit; /* 1 */
+}
+
+/**
+* Show the overflow in IE.
+* 1. Show the overflow in Edge.
+*/
+button,
+input {
+ /* 1 */
+ overflow: visible;
+}
+
+/**
+* Remove the inheritance of text transform in Edge, Firefox, and IE.
+* 1. Remove the inheritance of text transform in Firefox.
+*/
+button,
+select {
+ /* 1 */
+ text-transform: none;
+}
+
+/**
+* Correct the inability to style clickable types in iOS and Safari.
+*/
+button,
+[type=button],
+[type=reset],
+[type=submit] {
+ -webkit-appearance: button;
+}
+
+/**
+* Remove the inner border and padding in Firefox.
+*/
+button::-moz-focus-inner,
+[type=button]::-moz-focus-inner,
+[type=reset]::-moz-focus-inner,
+[type=submit]::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+
+/**
+* Restore the focus styles unset by the previous rule.
+*/
+button:-moz-focusring,
+[type=button]:-moz-focusring,
+[type=reset]:-moz-focusring,
+[type=submit]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+* Correct the padding in Firefox.
+*/
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+
+/**
+* 1. Correct the text wrapping in Edge and IE.
+* 2. Correct the color inheritance from `fieldset` elements in IE.
+* 3. Remove the padding so developers are not caught out when they zero out
+* `fieldset` elements in all browsers.
+*/
+legend {
+ display: table; /* 1 */
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ color: inherit; /* 2 */
+ white-space: normal; /* 1 */
+}
+
+/**
+* Add the correct vertical alignment in Chrome, Firefox, and Opera.
+*/
+progress {
+ vertical-align: baseline;
+}
+
+/**
+* Remove the default vertical scrollbar in IE 10+.
+*/
+textarea {
+ overflow: auto;
+}
+
+/**
+* 1. Add the correct box sizing in IE 10.
+* 2. Remove the padding in IE 10.
+*/
+[type=checkbox],
+[type=radio] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+* Correct the cursor style of increment and decrement buttons in Chrome.
+*/
+[type=number]::-webkit-inner-spin-button,
+[type=number]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+* 1. Correct the odd appearance in Chrome and Safari.
+* 2. Correct the outline style in Safari.
+*/
+[type=search] {
+ outline-offset: -2px; /* 2 */
+ -webkit-appearance: textfield; /* 1 */
+}
+
+/**
+* Remove the inner padding in Chrome and Safari on macOS.
+*/
+[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+* 1. Correct the inability to style clickable types in iOS and Safari.
+* 2. Change font properties to `inherit` in Safari.
+*/
+::-webkit-file-upload-button {
+ font: inherit; /* 2 */
+ -webkit-appearance: button; /* 1 */
+}
+
+/* Interactive
+ ========================================================================== */
+/*
+* Add the correct display in Edge, IE 10+, and Firefox.
+*/
+details {
+ display: block;
+}
+
+/*
+* Add the correct display in all browsers.
+*/
+summary {
+ display: list-item;
+}
+
+/* Misc
+ ========================================================================== */
+/**
+* Add the correct display in IE 10+.
+*/
+template {
+ display: none;
+}
+
+/**
+* Add the correct display in IE 10.
+*/
+[hidden] {
+ display: none;
+}
+
+/* здесь подключите шрифты*/
+@font-face {
+ font-style: normal;
+ font-weight: 400;
+ font-family: "Montserrat";
+ font-display: swap;
+ src: local("Montserrat"), url("../fonts/montserrat-regular.woff2") format("woff2");
+}
+@font-face {
+ font-style: normal;
+ font-weight: 500;
+ font-family: "Montserrat";
+ font-display: swap;
+ src: local("Montserrat"), url("../fonts/montserrat-medium.woff2") format("woff2");
+}
+@font-face {
+ font-style: normal;
+ font-weight: 700;
+ font-family: "Montserrat";
+ font-display: swap;
+ src: local("Montserrat"), url("../fonts/montserrat-bold.woff2") format("woff2");
+}
+*,
+*::before,
+*::after {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ min-height: 100vh;
+}
+
+html {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 24px;
+ font-family: "Montserrat", "Arial", sans-serif;
+ color: #000000;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-rendering: optimizeLegibility;
+}
+
+body {
+ width: 100%;
+ height: 100%;
+ background-color: #ffffff;
+}
+
+a {
+ color: #000000;
+ text-decoration: none;
+}
+
+img,
+video {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+textarea {
+ resize: none;
+}
+
+input:-webkit-autofill {
+ -webkit-box-shadow: inset 0 0 0 1000px #ffffff;
+ box-shadow: inset 0 0 0 1000px #ffffff;
+ -webkit-text-fill-color: #000000;
+}
+
+input,
+textarea {
+ border-radius: 0;
+}
+input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
+ opacity: 1;
+}
+input::-moz-placeholder, textarea::-moz-placeholder {
+ opacity: 1;
+}
+input:-ms-input-placeholder, textarea:-ms-input-placeholder {
+ opacity: 1;
+}
+input::-ms-input-placeholder, textarea::-ms-input-placeholder {
+ opacity: 1;
+}
+input::placeholder,
+textarea::placeholder {
+ opacity: 1;
+}
+input:invalid,
+textarea:invalid {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+select {
+ border-radius: 0;
+}
+
+input::-ms-clear, input::-ms-reveal {
+ display: none;
+}
+
+input[type=search]::-webkit-search-decoration,
+input[type=search]::-webkit-search-cancel-button,
+input[type=search]::-webkit-search-results-button,
+input[type=search]::-webkit-search-results-decoration {
+ -webkit-appearance: none;
+ appearance: none;
+}
+
+input::-webkit-outer-spin-button,
+input::-webkit-inner-spin-button {
+ margin: 0;
+ -webkit-appearance: none;
+ appearance: none;
+}
+
+input[type=number] {
+ -webkit-appearance: textfield;
+ -moz-appearance: textfield;
+ appearance: textfield;
+}
+
+select,
+textarea,
+input:matches([type=email],
+[type=number],
+[type=password],
+[type=search],
+[type=tel],
+[type=text],
+[type=url]) {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+button,
+[type=button],
+[type=reset],
+[type=submit] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+.wrapper {
+ position: relative;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ min-height: 100vh;
+ /* stylelint-disable-next-line */
+ min-height: calc(100 * var(--vh, 1vh));
+}
+.wrapper .header,
+.wrapper .footer {
+ -ms-flex-negative: 0;
+ flex-shrink: 0;
+}
+.wrapper main {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+}
+
+.visually-hidden {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ white-space: nowrap;
+ border: 0;
+ clip: rect(0 0 0 0);
+ -webkit-clip-path: inset(100%);
+ clip-path: inset(100%);
+}
+
+.scroll-lock-ios {
+ position: fixed;
+ overflow: hidden;
+}
+
+.scroll-lock {
+ overflow: hidden;
+}
+
+.no-scrollbar {
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+}
+.no-scrollbar::-webkit-scrollbar {
+ display: none;
+}
+
+.no-transition {
+ /* stylelint-disable-next-line */
+ -webkit-transition: none !important;
+ transition: none !important;
+}
+
+.js-focus-visible :focus:not(.focus-visible) {
+ outline: none;
+}
+
+.container {
+ width: 100%;
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ max-width: 1440px;
+ margin: 0 auto;
+ padding: 0 0 0 70px;
+ background-image: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);
+ margin-left: 0;
+ margin-right: 0;
+}
+@media (max-width: 1230px) {
+ .container {
+ padding: 0 70px;
+ }
+}
+@media (max-width: 540px) {
+ .container {
+ padding: 0 30px;
+ }
+}
+
+.header {
+ color: #ffffff;
+ padding: 20px 15px 30px 15px;
+}
+
+.header__logo-link {
+ font-size: 26px;
+ font-weight: 800;
+ color: #000000;
+}
+
+.form {
+ width: 100%;
+}
+
+.form__inner {
+ display: -ms-grid;
+ display: grid;
+ -ms-grid-columns: 1fr 1fr;
+ grid-template-columns: 1fr 1fr;
+ gap: 80px;
+}
+@media (max-width: 1230px) {
+ .form__inner {
+ -ms-grid-columns: 1fr;
+ grid-template-columns: 1fr;
+ gap: 0;
+ }
+}
+
+.form__title {
+ font-size: 48px;
+ font-weight: 800;
+ line-height: normal;
+ color: #ffffff;
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+@media (max-width: 1230px) {
+ .form__title {
+ text-align: center;
+ }
+}
+@media (max-width: 767px) {
+ .form__title {
+ font-size: 26px;
+ margin-bottom: 17px;
+ }
+}
+
+.form__link {
+ padding: 13px;
+ border: 1px solid #000000;
+ background-color: transparent;
+ border-radius: 20px;
+ display: block;
+ position: relative;
+ max-width: 340px;
+}
+@media (max-width: 1230px) {
+ .form__link {
+ margin: 0 auto;
+ }
+}
+.form__link:hover {
+ color: #ffffff;
+ border: 1px solid #ffffff;
+}
+.form__link:hover .form__link-text {
+ color: #ffffff;
+}
+.form__link:focus {
+ border: 1px solid #ffffff;
+ fill: #ffffff;
+ color: #ffffff;
+}
+.form__link:focus .form__link-text {
+ color: #ffffff;
+}
+.form__link:focus-visible {
+ border: 1px solid #ffffff;
+ fill: #ffffff;
+ color: #ffffff;
+}
+.form__link:focus-visible .form__link-text {
+ color: #ffffff;
+}
+.form__link:active {
+ color: #ffffff;
+ fill: #ffffff;
+ border: 1px solid #ffffff;
+}
+.form__link:active .form__link-text {
+ color: #ffffff;
+}
+.form__link .form__link-icon:hover {
+ fill: #ffffff;
+ color: #ffffff;
+}
+.form__link .form__link-icon:focus {
+ fill: #ffffff;
+}
+.form__link .form__link-icon:focus-visible {
+ fill: #ffffff;
+}
+.form__link .form__link-icon:active {
+ fill: #ffffff;
+}
+
+.form__link-icon {
+ fill: #000000;
+ background-position: center;
+ background-repeat: no-repeat;
+ width: 24px;
+ height: 24px;
+ position: absolute;
+ display: block;
+}
+.form__link-icon:hover {
+ fill: #ffffff;
+ color: #ffffff;
+}
+.form__link-icon:focus {
+ fill: #ffffff;
+}
+.form__link-icon:focus-visible {
+ fill: #ffffff;
+}
+.form__link-icon:active {
+ fill: #ffffff;
+}
+
+.form__link-text {
+ font-size: 18px;
+ color: #000000;
+ font-weight: 400;
+ padding-left: 35px;
+ margin: 0;
+}
+
+.form__text {
+ font-size: 18px;
+ font-weight: 400;
+ line-height: normal;
+ color: #ffffff;
+ margin-top: 10px;
+ margin-bottom: 20px;
+}
+@media (max-width: 1230px) {
+ .form__text {
+ text-align: center;
+ }
+}
+@media (max-width: 767px) {
+ .form__text {
+ font-size: 14px;
+ margin-bottom: 7px;
+ }
+}
+
+.form__wrapprer {
+ max-width: 1440px;
+ margin: 0 auto;
+ padding: 117px 6.9% 30px;
+}
+@media (max-width: 1199px) {
+ .form__wrapprer {
+ padding: 97px 45px 30px 45px;
+ }
+}
+@media (max-width: 767px) {
+ .form__wrapprer {
+ padding: 67px 15px 14px;
+ }
+}
+@media (min-width: 1440px) {
+ .form__wrapprer {
+ padding-right: 100px;
+ padding-left: 100px;
+ }
+}
+
+.form__content {
+ position: relative;
+}
+
+.form__inner-wrapper-grid {
+ display: -ms-grid;
+ display: grid;
+ -ms-grid-columns: 1fr 1fr;
+ grid-template-columns: 1fr 1fr;
+ gap: 20px;
+}
+@media (max-width: 540px) {
+ .form__inner-wrapper-grid {
+ -ms-grid-columns: 1fr;
+ grid-template-columns: 1fr;
+ gap: 0;
+ }
+}
+
+.form__inner-wrapper {
+ margin-bottom: 30px;
+}
+
+.form__input {
+ position: relative;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 0;
+ padding: 0;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 18px;
+ color: #f0efe9;
+}
+@media (max-width: 1230px) {
+ .form__input {
+ margin-bottom: 15px;
+ }
+}
+@media (max-width: 767px) {
+ .form__input {
+ margin-bottom: 20px;
+ }
+}
+@media (max-width: 540px) {
+ .form__input {
+ margin-bottom: 0;
+ }
+}
+
+.form__input label {
+ display: block;
+ margin: 0;
+ margin-bottom: 8px;
+ padding: 0;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 18px;
+ color: rgba(240, 239, 233, 0.8);
+}
+@media (max-width: 1199px) {
+ .form__input label {
+ margin-bottom: 7px;
+ line-height: 20px;
+ }
+}
+@media (max-width: 1230px) {
+ .form__input label {
+ margin-bottom: 12px;
+ font-size: 12px;
+ line-height: 14px;
+ }
+}
+
+.form__input input::-webkit-input-placeholder {
+ color: #000000;
+}
+
+.form__input input::-moz-placeholder {
+ color: #000000;
+}
+
+.form__input input:-ms-input-placeholder {
+ color: #000000;
+}
+
+.form__input input::-ms-input-placeholder {
+ color: #000000;
+}
+
+.form__input input::placeholder {
+ color: #000000;
+}
+
+.form__input input {
+ padding: 16px 25px;
+ font-size: 14px;
+ color: #000000;
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ border-radius: 8px;
+}
+@media (max-width: 1230px) {
+ .form__input input {
+ padding: 16px 25px;
+ }
+}
+.form__input input:disabled {
+ background: rgba(169, 175, 183, 0.2);
+ border: 1px solid rgba(169, 175, 183, 0.5);
+}
+.form__input input:hover {
+ border: 1px solid #ffffff;
+ opacity: 1;
+}
+.form__input input:focus {
+ border: 1px solid #ffffff;
+ outline: none;
+ opacity: 1;
+}
+.form__input input:focus-visible {
+ border: 1px solid #ffffff;
+ outline: none;
+ opacity: 1;
+}
+.form__input input:active {
+ color: #ffffff;
+ border: 1px solid #ffffff;
+ outline: none;
+ opacity: 1;
+}
+.form__input input:hover + label {
+ color: #f0efe9;
+}
+.form__input input:focus + label {
+ color: #f0efe9;
+}
+.form__input input:focus-visible + label {
+ color: #f0efe9;
+}
+.form__input input:active + label {
+ color: #f0efe9;
+}
+
+.form__textarea {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+ margin-bottom: 18px;
+}
+@media (max-width: 1230px) {
+ .form__textarea {
+ margin-bottom: 17px;
+ }
+}
+@media (max-width: 767px) {
+ .form__textarea {
+ margin-bottom: 21px;
+ }
+}
+
+.form__textarea textarea {
+ min-height: 98px;
+ padding: 18px 25px;
+ font-size: 14px;
+ color: #000000;
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ border-radius: 8px;
+}
+@media (max-width: 767px) {
+ .form__textarea textarea {
+ width: 100%;
+ min-width: unset;
+ min-height: 94px;
+ padding: 13px 25px;
+ }
+}
+.form__textarea textarea:disabled {
+ background: rgba(169, 175, 183, 0.2);
+ border: 1px solid rgba(169, 175, 183, 0.5);
+}
+.form__textarea textarea:hover {
+ border: 1px solid #ffffff;
+ opacity: 1;
+}
+.form__textarea textarea:focus {
+ border: 1px solid #ffffff;
+ outline: none;
+ opacity: 1;
+}
+.form__textarea textarea:focus-visible {
+ border: 1px solid #ffffff;
+ outline: none;
+ opacity: 1;
+}
+.form__textarea textarea:active {
+ color: #ffffff;
+ border: 1px solid #ffffff;
+ outline: none;
+ opacity: 1;
+}
+.form__textarea textarea:hover + p {
+ color: #f0efe9;
+}
+.form__textarea textarea:focus + p {
+ color: #f0efe9;
+}
+.form__textarea textarea:focus-visible + p {
+ color: #f0efe9;
+}
+.form__textarea textarea:active + p {
+ color: #f0efe9;
+}
+
+.form__textarea p {
+ display: block;
+ margin: 0;
+ margin-bottom: 8px;
+ padding: 0;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 18px;
+ text-align: start;
+ color: rgba(240, 239, 233, 0.8);
+}
+@media (max-width: 1199px) {
+ .form__textarea p {
+ margin-bottom: 6px;
+ line-height: 20px;
+ }
+}
+@media (max-width: 767px) {
+ .form__textarea p {
+ margin-bottom: 12px;
+ font-size: 12px;
+ line-height: 14px;
+ }
+}
+
+.form__checkbox-wrapper {
+ display: -ms-grid;
+ display: grid;
+ -ms-grid-columns: 1fr 1fr;
+ grid-template-columns: 1fr 1fr;
+ gap: 5px;
+ margin-left: 10px;
+}
+@media (max-width: 1230px) {
+ .form__checkbox-wrapper {
+ justify-items: center;
+ }
+}
+@media (max-width: 540px) {
+ .form__checkbox-wrapper {
+ -ms-grid-columns: 1fr;
+ grid-template-columns: 1fr;
+ gap: 0;
+ margin-bottom: 20px;
+ }
+}
+
+.form__checkbox {
+ margin: 0;
+ margin-bottom: 20px;
+ padding: 0;
+}
+
+.form__checkbox:last-of-type {
+ margin: 0;
+ margin-top: 2px;
+ margin-bottom: 39px;
+ padding: 0;
+}
+@media (max-width: 767px) {
+ .form__checkbox:last-of-type {
+ margin-top: 0;
+ margin-bottom: 12px;
+ }
+}
+
+.form__checkbox-label {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 12px;
+ color: #ffffff;
+ opacity: 0.9;
+}
+
+.form__checkbox label {
+ padding-left: 30px;
+}
+
+.custom-toggle--checkbox .form__toggle-icon,
+.custom-toggle--radio .form__toggle-icon {
+ top: 6px;
+ width: 20px;
+ height: 20px;
+ border: 1px solid rgba(255, 255, 255, 0.7);
+ border-radius: 2px;
+}
+@media (max-width: 767px) {
+ .custom-toggle--checkbox .form__toggle-icon,
+.custom-toggle--radio .form__toggle-icon {
+ top: 12px;
+ }
+}
+@media (min-width: 321px) and (max-width: 767px) {
+ .custom-toggle--checkbox .form__toggle-icon,
+.custom-toggle--radio .form__toggle-icon {
+ top: 6px;
+ }
+}
+.custom-toggle--checkbox .form__toggle-icon:hover,
+.custom-toggle--radio .form__toggle-icon:hover {
+ border: 1px solid #ffffff;
+ outline: none;
+ -webkit-transition: 0.1s ease;
+ transition: 0.1s ease;
+}
+.custom-toggle--checkbox .form__toggle-icon:focus,
+.custom-toggle--radio .form__toggle-icon:focus {
+ border: 1px solid #ffffff;
+ outline: none;
+ -webkit-transition: 0.1s ease;
+ transition: 0.1s ease;
+}
+.custom-toggle--checkbox .form__toggle-icon:focus-visible,
+.custom-toggle--radio .form__toggle-icon:focus-visible {
+ border: 1px solid #ffffff;
+ outline: none;
+ -webkit-transition: 0.1s ease;
+ transition: 0.1s ease;
+}
+.custom-toggle--checkbox .form__toggle-icon:active,
+.custom-toggle--radio .form__toggle-icon:active {
+ border: 1px solid #ffffff;
+ outline: none;
+ -webkit-transition: 0.1s ease;
+ transition: 0.1s ease;
+}
+
+.custom-toggle--checkbox .form__toggle-icon::before,
+.custom-toggle--radio .form__toggle-icon::before {
+ width: 10px;
+ height: 10px;
+}
+
+.custom-toggle input:checked + .form__toggle-icon::before {
+ width: 10px;
+ height: 10px;
+ background-color: transparent;
+ background-image: url("../img/svg/check.svg");
+ background-repeat: no-repeat;
+ background-size: 10px 10px;
+}
+
+.custom-toggle input:checked + .form__toggle-icon {
+ background-color: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);
+ border: 1px solid #ffffff;
+}
+.custom-toggle input:checked + .form__toggle-icon:hover {
+ background-color: transparent;
+}
+.custom-toggle input:checked + .form__toggle-icon:hover::before {
+ background-image: url("../img/svg/check-white.svg");
+}
+.custom-toggle input:checked + .form__toggle-icon:focus {
+ background-color: transparent;
+}
+.custom-toggle input:checked + .form__toggle-icon:focus::before {
+ background-image: url("../img/svg/check-white.svg");
+}
+.custom-toggle input:checked + .form__toggle-icon:focus-visible {
+ background-color: transparent;
+}
+.custom-toggle input:checked + .form__toggle-icon:focus-visible::before {
+ background-image: url("../img/svg/check-white.svg");
+}
+
+.is-invalid.custom-toggle--checkbox .form__toggle-icon,
+.custom-toggle--radio .form__toggle-icon {
+ background: rgba(255, 94, 102, 0.2);
+ border: 1px solid #ff5e66;
+ opacity: 0.7;
+}
+
+.form__button {
+ width: 100%;
+ margin: 0 auto;
+}
+@media (max-width: 1230px) {
+ .form__button {
+ width: 100%;
+ }
+}
+.form__button .span {
+ font-weight: 700;
+ text-transform: lowercase;
+}
+
+.form__select-text {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 14px;
+ color: #f0efe9;
+}
+
+.form__inner-img {
+ position: relative;
+}
+
+.form__inner-img img {
+ position: fixed;
+ height: auto;
+ right: 0;
+ z-index: 2;
+ -o-object-fit: cover;
+ object-fit: cover;
+ max-width: 100%;
+ bottom: 0;
+}
+@media (max-width: 1230px) {
+ .form__inner-img img {
+ display: none;
+ }
+}
+
+.page__body {
+ background-image: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);
+}
+
+.btn {
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ padding: 10px 20px;
+ color: #ffffff;
+ background-color: #2c39f2;
+ border: none;
+ cursor: pointer;
+ -webkit-transition: opacity 1s ease;
+ transition: opacity 1s ease;
+}
+.btn--red {
+ background-color: #ff1553;
+}
+.btn:disabled {
+ opacity: 0.5;
+ pointer-events: none;
+}
+@media (hover: hover) {
+ .btn:hover:not(.focus-visible) {
+ opacity: 0.8;
+ }
+}
+.btn.focus-visible:focus {
+ opacity: 0.8;
+}
+
+.custom-input,
+.custom-textarea {
+ position: relative;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 14px 0 20px;
+}
+@media screen and (max-width: 767px) {
+ .custom-input,
+.custom-textarea {
+ width: 100%;
+ }
+}
+@media (max-width: 540px) {
+ .custom-input,
+.custom-textarea {
+ padding: 14px 0 10px;
+ }
+}
+.custom-input label,
+.custom-textarea label {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 100%;
+}
+@media screen and (max-width: 767px) {
+ .custom-input label,
+.custom-textarea label {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ }
+}
+.custom-input label input,
+.custom-input label textarea,
+.custom-textarea label input,
+.custom-textarea label textarea {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ max-width: 300px;
+ min-height: 48px;
+ margin-left: auto;
+ padding: 10px;
+ border: 2px solid rgba(0, 0, 0, 0.2);
+ border-radius: 5px;
+ outline: none;
+ -webkit-transition: border 0.3s ease;
+ transition: border 0.3s ease;
+}
+@media screen and (max-width: 767px) {
+ .custom-input label input,
+.custom-input label textarea,
+.custom-textarea label input,
+.custom-textarea label textarea {
+ max-width: unset;
+ width: 100%;
+ }
+}
+.custom-input label input:hover,
+.custom-input label textarea:hover,
+.custom-textarea label input:hover,
+.custom-textarea label textarea:hover {
+ border: 2px solid rgba(0, 0, 0, 0.5);
+}
+.custom-input label input:focus,
+.custom-input label textarea:focus,
+.custom-textarea label input:focus,
+.custom-textarea label textarea:focus {
+ border: 2px solid rgba(0, 0, 0, 0.8);
+}
+@media screen and (max-width: 767px) {
+ .custom-input__label,
+.custom-textarea__label {
+ margin: 0 0 18px 0;
+ }
+}
+.custom-input__error,
+.custom-textarea__error {
+ position: absolute;
+ right: 0;
+ bottom: 35px;
+ color: #ff1553;
+ opacity: 0;
+ -webkit-transition: opacity 0.3s ease;
+ transition: opacity 0.3s ease;
+}
+@media screen and (max-width: 767px) {
+ .custom-input__error,
+.custom-textarea__error {
+ bottom: 20px;
+ }
+}
+.custom-input.is-invalid input,
+.custom-input.is-invalid textarea,
+.custom-textarea.is-invalid input,
+.custom-textarea.is-invalid textarea {
+ border-radius: 8px;
+ border: 1px solid #ff5e66;
+ background: rgba(255, 94, 102, 0.2);
+}
+.custom-input.is-invalid input:focus, .custom-input.is-invalid input:hover,
+.custom-input.is-invalid textarea:focus,
+.custom-input.is-invalid textarea:hover,
+.custom-textarea.is-invalid input:focus,
+.custom-textarea.is-invalid input:hover,
+.custom-textarea.is-invalid textarea:focus,
+.custom-textarea.is-invalid textarea:hover {
+ border-radius: 8px;
+ border: 1px solid #ff5e66;
+ background: rgba(255, 94, 102, 0.2);
+}
+.custom-input .input-message,
+.custom-textarea .input-message {
+ position: absolute;
+ right: 0;
+ bottom: -5px;
+}
+.custom-input .input-message.is-invalid,
+.custom-textarea .input-message.is-invalid {
+ color: #ff0000;
+}
+.custom-input .input-message.is-valid,
+.custom-textarea .input-message.is-valid {
+ color: #15ab07;
+}
+
+.custom-textarea {
+ width: 530px;
+}
+.custom-textarea::-webkit-input-placeholder {
+ color: #000000;
+}
+.custom-textarea::-moz-placeholder {
+ color: #000000;
+}
+.custom-textarea:-ms-input-placeholder {
+ color: #000000;
+}
+.custom-textarea::-ms-input-placeholder {
+ color: #000000;
+}
+.custom-textarea::placeholder {
+ color: #000000;
+}
+
+.custom-select {
+ position: relative;
+ width: 300px;
+ padding: 14px 0 28px;
+ margin: 0 0 44px 0;
+ /* &.is-valid {
+ .custom-select__button {
+ border: 2px solid $color-eucalyptus;
+
+ &:focus,
+ &:hover {
+ border: 2px solid rgba($color-eucalyptus, 0.5);
+ }
+ }
+ } */
+}
+@media screen and (max-width: 767px) {
+ .custom-select {
+ padding: 4px 0 14px;
+ width: 100%;
+ }
+}
+.custom-select__label {
+ position: absolute;
+ top: 50%;
+ left: 10px;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
+ transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
+ transition: transform 0.3s ease, opacity 0.3s ease;
+ transition: transform 0.3s ease, opacity 0.3s ease, -webkit-transform 0.3s ease;
+ pointer-events: none;
+}
+@media screen and (max-width: 767px) {
+ .custom-select__label {
+ -webkit-transform: translateY(calc(-50% - 5px));
+ -ms-transform: translateY(calc(-50% - 5px));
+ transform: translateY(calc(-50% - 5px));
+ }
+}
+.custom-select__placeholder {
+ position: absolute;
+ top: 50%;
+ left: 10px;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
+ transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
+ transition: transform 0.3s ease, opacity 0.3s ease;
+ transition: transform 0.3s ease, opacity 0.3s ease, -webkit-transform 0.3s ease;
+ pointer-events: none;
+}
+@media screen and (max-width: 767px) {
+ .custom-select__placeholder {
+ -webkit-transform: translateY(calc(-50% - 5px));
+ -ms-transform: translateY(calc(-50% - 5px));
+ transform: translateY(calc(-50% - 5px));
+ }
+}
+.custom-select select {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ white-space: nowrap;
+ border: 0;
+ clip: rect(0 0 0 0);
+ -webkit-clip-path: inset(100%);
+ clip-path: inset(100%);
+}
+.custom-select__button {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 100%;
+ height: 48px;
+ padding: 5px 10px;
+ background-color: rgba(255, 255, 255, 0);
+ border: 2px solid rgba(0, 0, 0, 0.2);
+ border-radius: 5px;
+ outline: none;
+ cursor: pointer;
+ -webkit-transition: border 0.3s ease;
+ transition: border 0.3s ease;
+}
+.custom-select__button:hover {
+ border: 2px solid rgba(0, 0, 0, 0.5);
+}
+.custom-select__button:focus {
+ border: 2px solid rgba(0, 0, 0, 0.8);
+}
+.custom-select__button:disabled {
+ pointer-events: none;
+ opacity: 0.3;
+}
+.custom-select__list {
+ position: absolute;
+ bottom: 10px;
+ z-index: 1;
+ width: 100%;
+ max-height: 100px;
+ margin: 0;
+ padding: 0;
+ overflow-y: auto;
+ list-style: none;
+ background-color: #ffffff;
+ border: 2px solid #000000;
+ -webkit-transform: translateY(100%);
+ -ms-transform: translateY(100%);
+ transform: translateY(100%);
+ visibility: hidden;
+ opacity: 0;
+ -webkit-transition: visibility 0.3s ease, opacity 0.3s ease;
+ transition: visibility 0.3s ease, opacity 0.3s ease;
+}
+.custom-select__item {
+ padding: 5px;
+ outline: none;
+ cursor: pointer;
+ -webkit-transition: background-color 0.3s ease;
+ transition: background-color 0.3s ease;
+}
+.custom-select__item[aria-selected=true] {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+@media (hover: hover) {
+ .custom-select__item[aria-selected=true]:hover:not(.focus-visible) {
+ background-color: rgba(0, 0, 0, 0.2);
+ }
+}
+.custom-select__item[aria-selected=true].focus-visible:focus {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+@media (hover: hover) {
+ .custom-select__item:hover:not(.focus-visible) {
+ background-color: rgba(0, 0, 0, 0.4);
+ }
+}
+.custom-select__item.focus-visible:focus {
+ background-color: rgba(0, 0, 0, 0.4);
+}
+.custom-select__error {
+ position: absolute;
+ bottom: -15px;
+ left: 0;
+ color: #ff1553;
+ opacity: 0;
+ -webkit-transition: opacity 0.1s ease;
+ transition: opacity 0.1s ease;
+}
+.custom-select__text {
+ font-size: 20px;
+ line-height: 24px;
+ -ms-flex-negative: 0;
+ flex-shrink: 0;
+ width: 80%;
+ overflow: hidden;
+ text-align: left;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ opacity: 0;
+ -webkit-transition: opacity 0.3s ease 0.1s;
+ transition: opacity 0.3s ease 0.1s;
+}
+.custom-select__text br {
+ display: none;
+}
+.custom-select__icon {
+ -ms-flex-negative: 0;
+ flex-shrink: 0;
+ width: 20px;
+ height: 10px;
+ margin-left: auto;
+ background-color: #000000;
+ -webkit-transition: -webkit-transform 0.3s ease;
+ transition: -webkit-transform 0.3s ease;
+ transition: transform 0.3s ease;
+ transition: transform 0.3s ease, -webkit-transform 0.3s ease;
+ -webkit-clip-path: polygon(100% 0, 100% 20%, 50% 100%, 0 20%, 0 0, 50% 80%);
+ clip-path: polygon(100% 0, 100% 20%, 50% 100%, 0 20%, 0 0, 50% 80%);
+}
+.custom-select.is-disabled {
+ pointer-events: none;
+}
+.custom-select.is-disabled .custom-select__list {
+ display: none;
+}
+.custom-select.open-up .custom-select__list {
+ bottom: auto;
+ top: 0;
+ -webkit-transform: translateY(calc(-100% + 10px));
+ -ms-transform: translateY(calc(-100% + 10px));
+ transform: translateY(calc(-100% + 10px));
+}
+.custom-select.is-open .custom-select__list {
+ visibility: visible;
+ opacity: 1;
+}
+.custom-select.is-open .custom-select__icon {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.custom-select.is-open .custom-select__label {
+ opacity: 0;
+}
+.custom-select.not-empty .custom-select__text {
+ opacity: 1;
+}
+.custom-select.not-empty .custom-select__label {
+ opacity: 0;
+}
+.custom-select.not-empty .custom-select__placeholder {
+ opacity: 0;
+}
+.custom-select.is-invalid .custom-select__error {
+ opacity: 1;
+}
+.custom-select.is-invalid .custom-select__button {
+ border: 2px solid #ff1553;
+}
+.custom-select.is-invalid .custom-select__button:focus, .custom-select.is-invalid .custom-select__button:hover {
+ border: 2px solid rgba(255, 21, 83, 0.5);
+}
+.custom-select--placeholder .custom-select__label {
+ -webkit-transform: translateY(calc(-50% - 40px));
+ -ms-transform: translateY(calc(-50% - 40px));
+ transform: translateY(calc(-50% - 40px));
+ opacity: 1;
+}
+.custom-select--placeholder.is-open .custom-select__label {
+ opacity: 1;
+}
+.custom-select--placeholder.not-empty .custom-select__label {
+ opacity: 1;
+}
+.custom-select.slide-up.not-empty .custom-select__label, .custom-select.slide-up.is-open .custom-select__label {
+ -webkit-transform: translateY(calc(-50% - 40px));
+ -ms-transform: translateY(calc(-50% - 40px));
+ transform: translateY(calc(-50% - 40px));
+ opacity: 1;
+}
+.custom-select.slide-up.not-empty .custom-select__text, .custom-select.slide-up.is-open .custom-select__text {
+ opacity: 1;
+}
+.custom-select .input-message {
+ position: absolute;
+ right: 0;
+ bottom: -5px;
+}
+.custom-select .input-message.is-invalid {
+ color: #ff0000;
+}
+.custom-select .input-message.is-valid {
+ color: #15ab07;
+}
+
+.custom-toggle {
+ position: relative;
+ font-size: 18px;
+ line-height: 27px;
+ font-weight: 300;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+@media screen and (max-width: 767px) {
+ .custom-toggle {
+ width: 100%;
+ }
+}
+.custom-toggle input {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ clip: rect(0 0 0 0);
+}
+.custom-toggle label {
+ position: relative;
+ padding-left: 52px;
+ cursor: pointer;
+}
+.custom-toggle label span {
+ margin-bottom: 0;
+ margin-left: 0;
+}
+.custom-toggle--checkbox .custom-toggle__icon {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 28px;
+ height: 28px;
+ border: 1.5px solid #ffffff;
+ -webkit-transition: border 0.3s ease;
+ transition: border 0.3s ease;
+ /* &::before {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ background-image: url('../../img/svg/tick.svg');
+ background-position: center;
+ background-repeat: no-repeat;
+ }*/
+}
+.custom-toggle--radio .custom-toggle__icon {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 28px;
+ height: 28px;
+ border: 1px solid #ffffff;
+ border-radius: 50%;
+ -webkit-transition: border 0.3s ease;
+ transition: border 0.3s ease;
+ /*&::before {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+
+ width: 20px;
+ height: 20px;
+
+ background-image: url('../../img/svg/tick.svg');
+ background-position: center;
+ background-repeat: no-repeat;
+ }*/
+}
+.custom-toggle input:checked + .custom-toggle__icon {
+ border: 1.5px solid #ffffff;
+ background: url("../img/svg/tick.svg");
+ background-position: center;
+ background-repeat: no-repeat;
+}
+.custom-toggle input:checked + .custom-toggle__icon::before {
+ background: url("../img/svg/tick.svg");
+ background-position: center;
+ background-repeat: no-repeat;
+}
+.custom-toggle .input-message {
+ position: absolute;
+ right: 0;
+ bottom: -5px;
+}
+.custom-toggle .input-message.is-invalid {
+ color: #ff0000;
+}
+.custom-toggle .input-message.is-valid {
+ color: #15ab07;
+}
+
+.custom-toggle__svg {
+ fill: #000000;
+ color: #000000;
+}
+
+.general-button {
+ display: block;
+ margin: 0 auto;
+ padding: 20px 30px;
+ color: #316dc2;
+ word-break: break-all;
+ background-color: #000000;
+ border: 1px solid #000000;
+ border-radius: 30px;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ gap: 29px;
+ -ms-grid-columns: 1fr 46px;
+ grid-template-columns: 1fr 46px;
+}
+@media (max-width: 767px) {
+ .general-button {
+ width: 100%;
+ padding: 20px 30px;
+ gap: 19px;
+ -ms-grid-columns: 1fr 34px;
+ grid-template-columns: 1fr 34px;
+ }
+}
+.general-button:hover {
+ color: #ffffff;
+ background-color: #000000;
+}
+.general-button:focus {
+ color: #ffffff;
+ background-color: #000000;
+ outline: none;
+}
+.general-button:focus-visible {
+ color: #ffffff;
+ background-color: #000000;
+ outline: none;
+}
+.general-button:active {
+ color: rgba(255, 255, 255, 0.7);
+ background-color: #000000;
+ outline: none;
+}
+
+.general-button span {
+ max-width: 280px;
+ margin: 0;
+ padding: 0;
+ font-weight: 700;
+ font-size: 18px;
+ line-height: 14px;
+ letter-spacing: 0.28px;
+}
+@media (max-width: 767px) {
+ .general-button span {
+ font-size: 16px;
+ line-height: 12px;
+ letter-spacing: 0.24px;
+ }
+}
+
+.general-button__icon-wrapper {
+ width: 46px;
+ height: 46px;
+ background-color: #000000;
+ border-radius: 50%;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ stroke: #ffffff;
+ color: #ffffff;
+}
+@media (max-width: 767px) {
+ .general-button__icon-wrapper {
+ width: 34px;
+ height: 34px;
+ }
+}
+
+.general-button:hover .general-button__icon-wrapper {
+ background-color: #ffffff;
+ stroke: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ color: #316dc2;
+ -webkit-transition: 1;
+ transition: 1;
+}
+
+.general-button:focus .general-button__icon-wrapper {
+ background-color: #ffffff;
+ stroke: #316dc2;
+ color: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.general-button:focus-visible .general-button__icon-wrapper {
+ background-color: #ffffff;
+ stroke: #316dc2;
+ color: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.general-button:active .general-button__icon-wrapper {
+ background-color: #ffffff;
+ stroke: rgba(49, 109, 194, 0.7);
+ color: rgba(49, 109, 194, 0.7);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.general-button__icon {
+ -ms-flex-item-align: center;
+ -ms-grid-row-align: center;
+ align-self: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin: 0 auto;
+ height: 22px;
+ width: 22px;
+ right: -5px;
+ position: relative;
+ top: 5px;
+}
+
+.general-button--dark {
+ color: #ffffff;
+ max-width: 270px;
+ text-align: center;
+ padding: 20px 30px;
+ border-radius: 20px;
+ -ms-grid-columns: 1fr;
+ grid-template-columns: 1fr;
+ background-color: #000000;
+ border: 1px solid #000000;
+}
+.general-button--dark:hover {
+ color: #000000;
+ fill: #ffffff;
+ background-color: #ffffff;
+}
+.general-button--dark:focus {
+ color: #000000;
+ fill: #ffffff;
+ background-color: #ffffff;
+ outline: none;
+}
+.general-button--dark:focus-visible {
+ color: #ffffff;
+ fill: #ffffff;
+ background-color: #000000;
+ outline: none;
+}
+.general-button--dark:active {
+ color: #ffffff;
+ fill: #000000;
+ background-color: #000000;
+ outline: none;
+}
+
+.general-button--dark .general-button__icon-wrapper {
+ background-color: #ffffff;
+ stroke: #316dc2;
+ color: #316dc2;
+}
+
+.general-button--dark:hover .general-button__icon-wrapper {
+ background-color: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ stroke: #ffffff;
+ color: #ffffff;
+}
+
+.general-button--dark:focus .general-button__icon-wrapper {
+ background-color: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ stroke: #ffffff;
+ color: #ffffff;
+}
+
+.general-button--dark:focus-visible .general-button__icon-wrapper {
+ background-color: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ stroke: #ffffff;
+ color: #ffffff;
+}
+
+.general-button--dark:active .general-button__icon-wrapper {
+ background-color: #316dc2;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ stroke: rgba(255, 255, 255, 0.7);
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.footer {
+ background-image: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);
+ color: beige;
+}
+
+.modal {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1000;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ background-color: rgba(0, 0, 0, 0.8);
+ -webkit-transform: scale(1.2);
+ -ms-transform: scale(1.2);
+ transform: scale(1.2);
+ visibility: hidden;
+ opacity: 0;
+ -webkit-transition: opacity 0.6s cubic-bezier(0.55, 0, 0.1, 1), visibility 0.6s cubic-bezier(0.55, 0, 0.1, 1), -webkit-transform 0.6s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.6s cubic-bezier(0.55, 0, 0.1, 1), visibility 0.6s cubic-bezier(0.55, 0, 0.1, 1), -webkit-transform 0.6s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.6s cubic-bezier(0.55, 0, 0.1, 1), transform 0.6s cubic-bezier(0.55, 0, 0.1, 1), visibility 0.6s cubic-bezier(0.55, 0, 0.1, 1);
+ transition: opacity 0.6s cubic-bezier(0.55, 0, 0.1, 1), transform 0.6s cubic-bezier(0.55, 0, 0.1, 1), visibility 0.6s cubic-bezier(0.55, 0, 0.1, 1), -webkit-transform 0.6s cubic-bezier(0.55, 0, 0.1, 1);
+ pointer-events: none;
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+}
+.modal::-webkit-scrollbar {
+ display: none;
+}
+.modal__wrapper {
+ position: relative;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-negative: 0;
+ flex-shrink: 0;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 100%;
+ min-height: 100%;
+ padding: 60px 40px;
+}
+@media (max-width: 767px) {
+ .modal__wrapper {
+ padding: 60px 16px;
+ }
+}
+.modal__overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+}
+.modal__content {
+ position: relative;
+ width: 600px;
+ padding: 40px;
+ background-color: #ffffff;
+}
+@media (max-width: 767px) {
+ .modal__content {
+ width: 100%;
+ padding: 20px;
+ }
+}
+.modal__close-btn {
+ position: absolute;
+ top: 22px;
+ right: 22px;
+ z-index: 1;
+ width: 40px;
+ height: 40px;
+ padding: 0;
+ background: rgba(255, 255, 255, 0);
+ border: none;
+ cursor: pointer;
+}
+.modal--responsive .modal__content {
+ width: 100%;
+}
+.modal--fit-content .modal__content {
+ width: auto;
+}
+@media (max-width: 767px) {
+ .modal--fit-content .modal__content {
+ width: 100%;
+ }
+}
+.modal--no-scale {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+.modal--preload {
+ -webkit-transition: none;
+ transition: none;
+}
+.modal.is-active {
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ visibility: visible;
+ opacity: 1;
+ pointer-events: auto;
+}
+
+.alert {
+ color: #000000;
+ padding: 20px;
+ background-color: #ffffff;
+ font-size: 24px;
+ font-weight: 600;
+ margin-bottom: 20px;
+ text-align: center;
+ border-radius: 20px;
+}
+
+.alert__button-close {
+ position: absolute;
+ top: 30px;
+ right: 30px;
+ width: 22px;
+ height: 22px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ cursor: pointer;
+}
+@media (max-width: 767px) {
+ .alert__button-close {
+ top: 18px;
+ right: 23px;
+ width: 12px;
+ height: 12px;
+ }
+}
+
+@media (max-width: 767px) {
+ .alert__icon {
+ width: 12px;
+ height: 12px;
+ }
+}
+
+/* @mixin hover-focus {
+ @media (hover: hover) {
+ &:hover:not(.focus-visible) {
+ @content;
+ }
+ }
+
+ &.focus-visible:focus {
+ @content;
+ }
+ }
+*/
+/* @include hover-focus {
+ opacity: 0.8;
+ }
+*/
+/*@mixin hover {
+ @media (hover: hover) {
+ &:hover:not(.focus-visible) {
+ @content;
+ }
+ }
+ }
+*/
+/*@mixin focus {
+ &.focus-visible:focus {
+ @content;
+ }
+ }
+*/
+/*@mixin active {
+ &.focus-visible:active {
+ @content;
+ }
+ }
+*/
\ No newline at end of file
diff --git a/build/css/style.min.css b/build/css/style.min.css
new file mode 100644
index 000000000..19e4e4ff8
--- /dev/null
+++ b/build/css/style.min.css
@@ -0,0 +1,4 @@
+@charset "UTF-8";
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
+html{-webkit-text-size-adjust:100%}details,main{display:block}h1{margin:.67em 0;font-size:2em}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}code,kbd,pre,samp{font-size:1em;font-family:monospace,monospace}a{background-color:transparent;color:#000;text-decoration:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:none}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-size:100%;line-height:1.15;font-family:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;max-width:100%;color:inherit;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:none}[type=checkbox],[type=radio],legend{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item}.custom-select__text br,[hidden],template{display:none}@font-face{font-style:normal;font-weight:400;font-family:"Montserrat";font-display:swap;src:local("Montserrat"),url(../fonts/montserrat-regular.woff2) format("woff2")}@font-face{font-style:normal;font-weight:500;font-family:"Montserrat";font-display:swap;src:local("Montserrat"),url(../fonts/montserrat-medium.woff2) format("woff2")}@font-face{font-style:normal;font-weight:700;font-family:"Montserrat";font-display:swap;src:local("Montserrat"),url(../fonts/montserrat-bold.woff2) format("woff2")}*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box}body,html{margin:0;padding:0;min-height:100vh}html{font-style:normal;font-weight:400;font-size:16px;line-height:24px;font-family:"Montserrat","Arial",sans-serif;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{width:100%;height:100%;background-color:#fff}img,video{display:block;max-width:100%;height:auto}input:-webkit-autofill{-webkit-box-shadow:inset 0 0 0 1000px #fff;box-shadow:inset 0 0 0 1000px #fff;-webkit-text-fill-color:#000}input,select,textarea{border-radius:0}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{opacity:1}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1}input::-ms-input-placeholder,textarea::-ms-input-placeholder{opacity:1}input::placeholder,textarea::placeholder{opacity:1}input:invalid,textarea:invalid{-webkit-box-shadow:none;box-shadow:none}input::-ms-clear,input::-ms-reveal{display:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input:matches([type=email],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=url]),select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.wrapper{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100vh;min-height:calc(100*var(--vh, 1vh))}.wrapper .footer,.wrapper .header{-ms-flex-negative:0;flex-shrink:0}.wrapper main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.custom-select select,.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;white-space:nowrap;border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%)}.scroll-lock-ios{position:fixed;overflow:hidden}.scroll-lock{overflow:hidden}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.no-transition{-webkit-transition:none!important;transition:none!important}.js-focus-visible :focus:not(.focus-visible){outline:0}.container{width:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:1440px;padding:0 0 0 70px;background-image:linear-gradient(200deg,#5413a7 0,#9c55f5 75%);margin:0}@media (max-width:1230px){.container{padding:0 70px}}@media (max-width:540px){.container{padding:0 30px}}.header{color:#fff;padding:20px 15px 30px}.header__logo-link{font-size:26px;font-weight:800;color:#000}.form{width:100%}.form__inner{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:80px}@media (max-width:1230px){.form__inner{-ms-grid-columns:1fr;grid-template-columns:1fr;gap:0}}.form__title{font-size:48px;font-weight:800;line-height:normal;color:#fff;margin-top:0;margin-bottom:20px}@media (max-width:1230px){.form__title{text-align:center}}@media (max-width:767px){.form__title{font-size:26px;margin-bottom:17px}}.form__link{padding:13px;border:1px solid #000;background-color:transparent;border-radius:20px;display:block;position:relative;max-width:340px}@media (max-width:1230px){.form__link{margin:0 auto}}.form__link:hover{color:#fff;border:1px solid #fff}.form__link:hover .form__link-text{color:#fff}.form__link:focus{border:1px solid #fff;fill:#fff;color:#fff}.form__link:focus .form__link-text{color:#fff}.form__link:focus-visible{border:1px solid #fff;fill:#fff;color:#fff}.form__link:focus-visible .form__link-text{color:#fff}.form__link:active{border:1px solid #fff}.form__link:active .form__link-text{color:#fff}.form__link .form__link-icon:hover,.form__link-icon:hover,.form__link:active{fill:#fff;color:#fff}.form__link .form__link-icon:focus,.form__link-icon:focus{fill:#fff}.form__link .form__link-icon:focus-visible,.form__link-icon:focus-visible{fill:#fff}.form__link .form__link-icon:active,.form__link-icon:active{fill:#fff}.form__link-icon{fill:#000;background-position:center;background-repeat:no-repeat;width:24px;height:24px;position:absolute;display:block}.form__link-text,.form__text{font-size:18px;font-weight:400}.form__link-text{color:#000;padding-left:35px;margin:0}.form__text{line-height:normal;color:#fff;margin-top:10px;margin-bottom:20px}@media (max-width:1230px){.form__text{text-align:center}}@media (max-width:767px){.form__text{font-size:14px;margin-bottom:7px}}.form__wrapprer{max-width:1440px;margin:0 auto;padding:117px 6.9% 30px}@media (max-width:1199px){.form__wrapprer{padding:97px 45px 30px}}@media (max-width:767px){.form__wrapprer{padding:67px 15px 14px}}@media (min-width:1440px){.form__wrapprer{padding-right:100px;padding-left:100px}}.form__content{position:relative}.form__inner-wrapper-grid{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:20px}@media (max-width:540px){.form__inner-wrapper-grid{-ms-grid-columns:1fr;grid-template-columns:1fr;gap:0}}.form__inner-wrapper{margin-bottom:30px}.form__input,.form__input label{padding:0;font-style:normal;font-weight:400;font-size:14px;line-height:18px}.form__input{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;width:100%;margin:0;color:#f0efe9}@media (max-width:1230px){.form__input{margin-bottom:15px}}@media (max-width:767px){.form__input{margin-bottom:20px}}@media (max-width:540px){.form__input{margin-bottom:0}}.form__input label{display:block;margin:0 0 8px;color:rgba(240,239,233,.8)}@media (max-width:1199px){.form__input label{margin-bottom:7px;line-height:20px}}@media (max-width:1230px){.form__input label{margin-bottom:12px;font-size:12px;line-height:14px}}.custom-textarea::-webkit-input-placeholder,.form__input input::-webkit-input-placeholder{color:#000}.custom-textarea::-moz-placeholder,.form__input input::-moz-placeholder{color:#000}.form__input input:-ms-input-placeholder{color:#000}.custom-textarea::-ms-input-placeholder,.form__input input::-ms-input-placeholder{color:#000}.custom-textarea::placeholder,.form__input input::placeholder{color:#000}.form__input input{padding:16px 25px;font-size:14px;color:#000;border:1px solid rgba(255,255,255,.3);border-radius:8px}@media (max-width:1230px){.form__input input{padding:16px 25px}}.form__input input:disabled,.form__textarea textarea:disabled{background:rgba(169,175,183,.2);border:1px solid rgba(169,175,183,.5)}.form__input input:hover,.form__textarea textarea:hover{border:1px solid #fff;opacity:1}.form__input input:focus,.form__textarea textarea:focus{border:1px solid #fff;outline:0;opacity:1}.form__input input:focus-visible,.form__textarea textarea:focus-visible{border:1px solid #fff;outline:0;opacity:1}.form__input input:active,.form__textarea textarea:active{color:#fff;border:1px solid #fff;outline:0;opacity:1}.form__input input:hover+label{color:#f0efe9}.form__input input:focus+label{color:#f0efe9}.form__input input:focus-visible+label{color:#f0efe9}.form__input input:active+label,.form__textarea textarea:hover+p{color:#f0efe9}.form__textarea{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:18px}@media (max-width:1230px){.form__textarea{margin-bottom:17px}}@media (max-width:767px){.form__textarea{margin-bottom:21px}}.form__textarea textarea{min-height:98px;padding:18px 25px;font-size:14px;color:#000;border:1px solid rgba(255,255,255,.3);border-radius:8px}@media (max-width:767px){.form__textarea textarea{width:100%;min-width:unset;min-height:94px;padding:13px 25px}}.form__textarea textarea:focus+p{color:#f0efe9}.form__textarea textarea:focus-visible+p{color:#f0efe9}.form__textarea textarea:active+p{color:#f0efe9}.form__textarea p{display:block;margin:0 0 8px;padding:0;font-style:normal;font-weight:400;font-size:14px;line-height:18px;text-align:start;color:rgba(240,239,233,.8)}@media (max-width:1199px){.form__textarea p{margin-bottom:6px;line-height:20px}}@media (max-width:767px){.form__textarea p{margin-bottom:12px;font-size:12px;line-height:14px}}.form__checkbox-wrapper{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:5px;margin-left:10px}@media (max-width:1230px){.form__checkbox-wrapper{justify-items:center}}@media (max-width:540px){.form__checkbox-wrapper{-ms-grid-columns:1fr;grid-template-columns:1fr;gap:0;margin-bottom:20px}}.form__checkbox{margin:0 0 20px;padding:0}.form__checkbox:last-of-type{margin:2px 0 39px;padding:0}@media (max-width:767px){.form__checkbox:last-of-type{margin-top:0;margin-bottom:12px}}.form__checkbox-label{font-style:normal;font-weight:400;font-size:16px;line-height:12px;color:#fff;opacity:.9}.form__checkbox label{padding-left:30px}.custom-toggle--checkbox .form__toggle-icon,.custom-toggle--radio .form__toggle-icon{top:6px;width:20px;height:20px;border:1px solid rgba(255,255,255,.7);border-radius:2px}@media (max-width:767px){.custom-toggle--checkbox .form__toggle-icon,.custom-toggle--radio .form__toggle-icon{top:12px}}@media (min-width:321px) and (max-width:767px){.custom-toggle--checkbox .form__toggle-icon,.custom-toggle--radio .form__toggle-icon{top:6px}}.custom-toggle--checkbox .form__toggle-icon:hover,.custom-toggle--radio .form__toggle-icon:hover{border:1px solid #fff;outline:0;-webkit-transition:.1s ease;transition:.1s ease}.custom-toggle--checkbox .form__toggle-icon:focus,.custom-toggle--radio .form__toggle-icon:focus{border:1px solid #fff;outline:0;-webkit-transition:.1s ease;transition:.1s ease}.custom-toggle--checkbox .form__toggle-icon:focus-visible,.custom-toggle--radio .form__toggle-icon:focus-visible{border:1px solid #fff;outline:0;-webkit-transition:.1s ease;transition:.1s ease}.custom-toggle--checkbox .form__toggle-icon:active,.custom-toggle--radio .form__toggle-icon:active{border:1px solid #fff;outline:0;-webkit-transition:.1s ease;transition:.1s ease}.custom-toggle--checkbox .form__toggle-icon::before,.custom-toggle--radio .form__toggle-icon::before{width:10px;height:10px}.custom-toggle input:checked+.form__toggle-icon::before{width:10px;height:10px;background-color:transparent;background-image:url(../img/svg/check.svg);background-repeat:no-repeat;background-size:10px 10px}.custom-toggle input:checked+.form__toggle-icon{background-color:linear-gradient(200deg,#5413a7 0%,#9c55f5 75%);border:1px solid #fff}.custom-toggle input:checked+.form__toggle-icon:hover{background-color:transparent}.custom-toggle input:checked+.form__toggle-icon:hover::before{background-image:url(../img/svg/check-white.svg)}.custom-toggle input:checked+.form__toggle-icon:focus{background-color:transparent}.custom-toggle input:checked+.form__toggle-icon:focus::before{background-image:url(../img/svg/check-white.svg)}.custom-toggle input:checked+.form__toggle-icon:focus-visible{background-color:transparent}.custom-toggle input:checked+.form__toggle-icon:focus-visible::before{background-image:url(../img/svg/check-white.svg)}.custom-toggle--radio .form__toggle-icon,.is-invalid.custom-toggle--checkbox .form__toggle-icon{background:rgba(255,94,102,.2);border:1px solid #ff5e66;opacity:.7}.form__button{width:100%;margin:0 auto}@media (max-width:1230px){.form__button{width:100%}}.form__button .span{font-weight:700;text-transform:lowercase}.form__select-text{font-style:normal;font-weight:400;font-size:14px;line-height:14px;color:#f0efe9}.form__inner-img{position:relative}.form__inner-img img{position:fixed;height:auto;right:0;z-index:2;-o-object-fit:cover;object-fit:cover;max-width:100%;bottom:0}@media (max-width:1230px){.form__inner-img img{display:none}}.page__body{background-image:linear-gradient(200deg,#5413a7 0,#9c55f5 75%)}.btn{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:10px 20px;color:#fff;background-color:#2c39f2;border:0;cursor:pointer;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.btn--red{background-color:#ff1553}.btn:disabled{opacity:.5;pointer-events:none}@media (hover:hover){.btn:hover:not(.focus-visible){opacity:.8}}.btn.focus-visible:focus{opacity:.8}.custom-input,.custom-textarea{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;padding:14px 0 20px}@media screen and (max-width:767px){.custom-input,.custom-textarea{width:100%}}@media (max-width:540px){.custom-input,.custom-textarea{padding:14px 0 10px}}.custom-input label,.custom-textarea label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}@media screen and (max-width:767px){.custom-input label,.custom-textarea label{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.custom-input label input,.custom-input label textarea,.custom-textarea label input,.custom-textarea label textarea{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:300px;min-height:48px;margin-left:auto;padding:10px;border:2px solid rgba(0,0,0,.2);border-radius:5px;outline:0;-webkit-transition:border .3s ease;transition:border .3s ease}@media screen and (max-width:767px){.custom-input label input,.custom-input label textarea,.custom-textarea label input,.custom-textarea label textarea{max-width:unset;width:100%}}.custom-input label input:hover,.custom-input label textarea:hover,.custom-textarea label input:hover,.custom-textarea label textarea:hover{border:2px solid rgba(0,0,0,.5)}.custom-input label input:focus,.custom-input label textarea:focus,.custom-textarea label input:focus,.custom-textarea label textarea:focus{border:2px solid rgba(0,0,0,.8)}@media screen and (max-width:767px){.custom-input__label,.custom-textarea__label{margin:0 0 18px}}.custom-input__error,.custom-textarea__error{position:absolute;right:0;bottom:35px;color:#ff1553;opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease}@media screen and (max-width:767px){.custom-input__error,.custom-textarea__error{bottom:20px}}.custom-input.is-invalid input,.custom-input.is-invalid textarea,.custom-textarea.is-invalid input,.custom-textarea.is-invalid textarea{border-radius:8px;border:1px solid #ff5e66;background:rgba(255,94,102,.2)}.custom-input.is-invalid input:focus,.custom-input.is-invalid input:hover,.custom-input.is-invalid textarea:focus,.custom-input.is-invalid textarea:hover,.custom-textarea.is-invalid input:focus,.custom-textarea.is-invalid input:hover,.custom-textarea.is-invalid textarea:focus,.custom-textarea.is-invalid textarea:hover{border-radius:8px;border:1px solid #ff5e66;background:rgba(255,94,102,.2)}.custom-input .input-message,.custom-textarea .input-message{position:absolute;right:0;bottom:-5px}.custom-input .input-message.is-invalid,.custom-textarea .input-message.is-invalid{color:red}.custom-input .input-message.is-valid,.custom-textarea .input-message.is-valid{color:#15ab07}.custom-textarea{width:530px}.custom-textarea:-ms-input-placeholder{color:#000}.custom-select{position:relative;width:300px;padding:14px 0 28px;margin:0 0 44px}@media screen and (max-width:767px){.custom-select{padding:4px 0 14px;width:100%}}.custom-select__label{position:absolute;top:50%;left:10px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,opacity .3s ease;transition:transform .3s ease,opacity .3s ease,-webkit-transform .3s ease;pointer-events:none}@media screen and (max-width:767px){.custom-select__label{-webkit-transform:translateY(calc(-50% - 5px));-ms-transform:translateY(calc(-50% - 5px));transform:translateY(calc(-50% - 5px))}}.custom-select__placeholder{position:absolute;top:50%;left:10px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,opacity .3s ease;transition:transform .3s ease,opacity .3s ease,-webkit-transform .3s ease;pointer-events:none}@media screen and (max-width:767px){.custom-select__placeholder{-webkit-transform:translateY(calc(-50% - 5px));-ms-transform:translateY(calc(-50% - 5px));transform:translateY(calc(-50% - 5px))}}.custom-select__button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:48px;padding:5px 10px;background-color:transparent;border:2px solid rgba(0,0,0,.2);border-radius:5px;outline:0;cursor:pointer;-webkit-transition:border .3s ease;transition:border .3s ease}.custom-select__button:hover{border:2px solid rgba(0,0,0,.5)}.custom-select__button:focus{border:2px solid rgba(0,0,0,.8)}.custom-select__button:disabled{pointer-events:none;opacity:.3}.custom-select__list{position:absolute;bottom:10px;z-index:1;width:100%;max-height:100px;margin:0;padding:0;overflow-y:auto;list-style:none;background-color:#fff;border:2px solid #000;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);visibility:hidden;opacity:0;-webkit-transition:visibility .3s ease,opacity .3s ease;transition:visibility .3s ease,opacity .3s ease}.custom-select__item{padding:5px;outline:0;cursor:pointer;-webkit-transition:background-color .3s ease;transition:background-color .3s ease}.custom-select__item[aria-selected=true]{background-color:rgba(0,0,0,.2)}@media (hover:hover){.custom-select__item[aria-selected=true]:hover:not(.focus-visible){background-color:rgba(0,0,0,.2)}}.custom-select__item[aria-selected=true].focus-visible:focus{background-color:rgba(0,0,0,.2)}@media (hover:hover){.custom-select__item:hover:not(.focus-visible){background-color:rgba(0,0,0,.4)}}.custom-select__item.focus-visible:focus{background-color:rgba(0,0,0,.4)}.custom-select__error{position:absolute;bottom:-15px;left:0;color:#ff1553;opacity:0;-webkit-transition:opacity .1s ease;transition:opacity .1s ease}.custom-select__text{font-size:20px;line-height:24px;-ms-flex-negative:0;flex-shrink:0;width:80%;overflow:hidden;text-align:left;white-space:nowrap;text-overflow:ellipsis;opacity:0;-webkit-transition:opacity .3s ease .1s;transition:opacity .3s ease .1s}.custom-select__icon{-ms-flex-negative:0;flex-shrink:0;width:20px;height:10px;margin-left:auto;background-color:#000;-webkit-transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;-webkit-clip-path:polygon(100% 0,100% 20%,50% 100%,0 20%,0 0,50% 80%);clip-path:polygon(100% 0,100% 20%,50% 100%,0 20%,0 0,50% 80%)}.custom-select.is-disabled{pointer-events:none}.custom-select.is-disabled .custom-select__list{display:none}.custom-select.open-up .custom-select__list{bottom:auto;top:0;-webkit-transform:translateY(calc(-100% + 10px));-ms-transform:translateY(calc(-100% + 10px));transform:translateY(calc(-100% + 10px))}.custom-select.is-open .custom-select__list{visibility:visible;opacity:1}.custom-select.is-open .custom-select__icon{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.custom-select.is-open .custom-select__label{opacity:0}.custom-select.not-empty .custom-select__text{opacity:1}.custom-select.not-empty .custom-select__label,.custom-select.not-empty .custom-select__placeholder{opacity:0}.custom-select.is-invalid .custom-select__error{opacity:1}.custom-select.is-invalid .custom-select__button{border:2px solid #ff1553}.custom-select.is-invalid .custom-select__button:focus,.custom-select.is-invalid .custom-select__button:hover{border:2px solid rgba(255,21,83,.5)}.custom-select--placeholder .custom-select__label,.custom-select.slide-up.is-open .custom-select__label,.custom-select.slide-up.not-empty .custom-select__label{-webkit-transform:translateY(calc(-50% - 40px));-ms-transform:translateY(calc(-50% - 40px));transform:translateY(calc(-50% - 40px));opacity:1}.custom-select--placeholder.is-open .custom-select__label,.custom-select--placeholder.not-empty .custom-select__label,.custom-select.slide-up.is-open .custom-select__text,.custom-select.slide-up.not-empty .custom-select__text{opacity:1}.custom-select .input-message{position:absolute;right:0;bottom:-5px}.custom-select .input-message.is-invalid{color:red}.custom-select .input-message.is-valid{color:#15ab07}.custom-toggle{position:relative;font-size:18px;line-height:27px;font-weight:300;display:-webkit-box;display:-ms-flexbox;display:flex}@media screen and (max-width:767px){.custom-toggle{width:100%}}.custom-toggle input{position:absolute;width:1px;height:1px;margin:-1px;clip:rect(0 0 0 0)}.custom-toggle label{position:relative;padding-left:52px;cursor:pointer}.custom-toggle label span{margin-bottom:0;margin-left:0}.custom-toggle--checkbox .custom-toggle__icon,.custom-toggle--radio .custom-toggle__icon{position:absolute;top:0;left:0;width:28px;height:28px;border:1.5px solid #fff;-webkit-transition:border .3s ease;transition:border .3s ease}.custom-toggle--radio .custom-toggle__icon{border:1px solid #fff;border-radius:50%}.custom-toggle input:checked+.custom-toggle__icon{border:1.5px solid #fff}.custom-toggle input:checked+.custom-toggle__icon,.custom-toggle input:checked+.custom-toggle__icon::before{background:url(../img/svg/tick.svg);background-position:center;background-repeat:no-repeat}.custom-toggle .input-message{position:absolute;right:0;bottom:-5px}.custom-toggle .input-message.is-invalid{color:red}.custom-toggle .input-message.is-valid{color:#15ab07}.custom-toggle__svg{fill:#000;color:#000}.general-button{display:block;margin:0 auto;padding:20px 30px;color:#316dc2;word-break:break-all;background-color:#000;border:1px solid #000;border-radius:30px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;gap:29px;-ms-grid-columns:1fr 46px;grid-template-columns:1fr 46px}@media (max-width:767px){.general-button{width:100%;padding:20px 30px;gap:19px;-ms-grid-columns:1fr 34px;grid-template-columns:1fr 34px}}.general-button:hover{color:#fff;background-color:#000}.general-button:focus{color:#fff;background-color:#000;outline:0}.general-button:focus-visible{color:#fff;background-color:#000;outline:0}.general-button:active{color:rgba(255,255,255,.7);background-color:#000;outline:0}.general-button span{max-width:280px;margin:0;padding:0;font-weight:700;font-size:18px;line-height:14px;letter-spacing:.28px}@media (max-width:767px){.general-button span{font-size:16px;line-height:12px;letter-spacing:.24px}}.general-button__icon-wrapper{width:46px;height:46px;background-color:#000;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;stroke:#fff;color:#fff}@media (max-width:767px){.general-button__icon-wrapper{width:34px;height:34px}}.general-button:hover .general-button__icon-wrapper{background-color:#fff;stroke:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);color:#316dc2;-webkit-transition:1;transition:1}.general-button:focus .general-button__icon-wrapper{background-color:#fff;stroke:#316dc2;color:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.general-button:focus-visible .general-button__icon-wrapper{background-color:#fff;stroke:#316dc2;color:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.general-button:active .general-button__icon-wrapper{background-color:#fff;stroke:rgba(49,109,194,.7);color:rgba(49,109,194,.7);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.general-button__icon{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0 auto;height:22px;width:22px;right:-5px;position:relative;top:5px}.general-button--dark{color:#fff;max-width:270px;text-align:center;padding:20px 30px;border-radius:20px;-ms-grid-columns:1fr;grid-template-columns:1fr;background-color:#000;border:1px solid #000}.general-button--dark:hover{color:#000;fill:#fff;background-color:#fff}.general-button--dark:focus{color:#000;fill:#fff;background-color:#fff;outline:0}.general-button--dark:focus-visible{color:#fff;fill:#fff;background-color:#000;outline:0}.general-button--dark:active{color:#fff;fill:#000;background-color:#000;outline:0}.general-button--dark .general-button__icon-wrapper{background-color:#fff;stroke:#316dc2;color:#316dc2}.general-button--dark:hover .general-button__icon-wrapper{background-color:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);stroke:#fff;color:#fff}.general-button--dark:focus .general-button__icon-wrapper{background-color:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);stroke:#fff;color:#fff}.general-button--dark:focus-visible .general-button__icon-wrapper{background-color:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);stroke:#fff;color:#fff}.general-button--dark:active .general-button__icon-wrapper{background-color:#316dc2;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);stroke:rgba(255,255,255,.7);color:rgba(255,255,255,.7)}.footer{background-image:linear-gradient(200deg,#5413a7 0,#9c55f5 75%);color:beige}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:rgba(0,0,0,.8);-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);visibility:hidden;opacity:0;-webkit-transition:opacity .6s cubic-bezier(.55,0,.1,1),visibility .6s cubic-bezier(.55,0,.1,1),-webkit-transform .6s cubic-bezier(.55,0,.1,1);transition:opacity .6s cubic-bezier(.55,0,.1,1),transform .6s cubic-bezier(.55,0,.1,1),visibility .6s cubic-bezier(.55,0,.1,1);transition:opacity .6s cubic-bezier(.55,0,.1,1),transform .6s cubic-bezier(.55,0,.1,1),visibility .6s cubic-bezier(.55,0,.1,1),-webkit-transform .6s cubic-bezier(.55,0,.1,1);pointer-events:none;-ms-overflow-style:none;scrollbar-width:none}.modal::-webkit-scrollbar{display:none}.modal__wrapper{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;min-height:100%;padding:60px 40px}@media (max-width:767px){.modal__wrapper{padding:60px 16px}}.modal__overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.modal__content{position:relative;width:600px;padding:40px;background-color:#fff}@media (max-width:767px){.modal__content{width:100%;padding:20px}}.modal__close-btn{position:absolute;top:22px;right:22px;z-index:1;width:40px;height:40px;padding:0;background:0 0;border:0;cursor:pointer}.modal--responsive .modal__content{width:100%}.modal--fit-content .modal__content{width:auto}@media (max-width:767px){.modal--fit-content .modal__content{width:100%}}.modal--no-scale{-webkit-transform:none;-ms-transform:none;transform:none}.modal--preload{-webkit-transition:none;transition:none}.modal.is-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);visibility:visible;opacity:1;pointer-events:auto}.alert{color:#000;padding:20px;background-color:#fff;font-size:24px;font-weight:600;margin-bottom:20px;text-align:center;border-radius:20px}.alert__button-close{position:absolute;top:30px;right:30px;width:22px;height:22px;padding:0;background-color:transparent;border:0;cursor:pointer}@media (max-width:767px){.alert__button-close{top:18px;right:23px}.alert__button-close,.alert__icon{width:12px;height:12px}}
+/*# sourceMappingURL=style.min.css.map */
\ No newline at end of file
diff --git a/build/css/style.min.css.map b/build/css/style.min.css.map
new file mode 100644
index 000000000..57e6d8810
--- /dev/null
+++ b/build/css/style.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["style.css","vendor/normalize.scss","global/reboot.scss","blocks/custom-select.scss","global/fonts.scss","global/utils.scss","global/container.scss","blocks/header.scss","blocks/form.scss","mixins.scss","blocks/custom-input.scss","blocks/page__body.scss","blocks/btn.scss","blocks/custom-toggle.scss","blocks/general-button.scss","blocks/footer.scss","blocks/modal.scss","blocks/alert.scss"],"names":[],"mappings":"AAAA,iB;;ACWA,I,CAGE,6B,CA6TF,O,CA3SA,I,CACE,a,CAQF,E,CACE,c,CAEA,a,CAWF,E,CACE,8B,CAAA,sB,CACA,Q,CACA,gB,CAkDF,I,CDdA,G,CC5BA,G,CD6BA,I,CC5BE,a,CACA,+B,CAUF,C,CACE,4B,CC1CA,U,CACA,oB,CDiDF,W,CAEE,wC,CAAA,gC,CAEA,kB,CAOF,C,CDbA,M,CCeE,kB,CAmBF,K,CACE,a,CAQF,G,CDhBA,G,CCkBE,iB,CAEA,a,CACA,a,CACA,uB,CAGF,G,CACE,a,CAGF,G,CACE,S,CAUF,G,CACE,iB,CAWF,M,CDrBA,K,CACA,Q,CACA,M,CACA,Q,CCuBE,Q,CAEA,c,CACA,gB,CACA,mB,CAQF,M,CDvBA,K,CC0BE,gB,CAQF,M,CDxBA,M,CC2BE,mB,CDRF,+B,CACA,8B,CACA,+B,CCwBA,wB,CAIE,S,CAEA,iB,CDrBF,4B,CACA,2B,CACA,4B,CC0BA,qB,CAIE,6B,CAOF,Q,CACE,0B,CAUF,M,CACE,a,CAEA,c,CAGA,a,CACA,kB,CAOF,Q,CACE,uB,CAOF,Q,CACE,a,CC9NA,W,CDsOF,e,CDjCA,Y,CCEA,M,CAiCE,6B,CAAA,qB,CACA,S,CAOF,wC,CDjCA,wC,CCmCE,W,CAQF,a,CACE,mB,CAEA,4B,CAOF,wC,CACE,uB,CAQF,4B,CACE,Y,CAEA,yB,CAkBF,O,CACE,iB,CExKE,uB,CF0LJ,Q,CARA,Q,CACE,Y,CG9VF,WACE,iB,CACA,e,CACA,wB,CAEA,iB,CACA,+E,AAIF,WACE,iB,CACA,e,CACA,wB,CAEA,iB,CACA,8E,AAKF,WACE,iB,CACA,e,CACA,wB,CAEA,iB,CACA,4EF5BF,C,CFqVA,O,CADA,Q,CEjVE,6B,CAAA,qB,CFwVF,I,CErVA,I,CAEE,Q,CACA,S,CACA,gB,CAGF,I,CACE,iB,CACA,e,CACA,c,CACA,gB,CACA,2C,CACA,U,CAEA,kC,CACA,iC,CAEA,iC,CAKF,I,CACE,U,CACA,W,CAEA,qB,CAQF,G,CFgVA,K,CE9UE,a,CACA,c,CACA,W,CAaF,sB,CACE,0C,CAAA,kC,CAEA,4B,CAIF,K,CAaA,M,CF4TA,Q,CEvUE,e,CAEA,gC,CAAA,mC,CACE,S,CADF,uB,CAAA,0B,CACE,S,CADF,2B,CAAA,8B,CACE,S,CADF,4B,CAAA,+B,CACE,S,CADF,kB,CFqVF,qB,CEpVI,S,CAGF,a,CFqVF,gB,CEpVI,uB,CAAA,e,CAUF,gB,CAAA,iB,CAEE,Y,CFsVJ,gD,CEjVA,6C,CFkVA,iD,CACA,qD,CE/UE,uB,CAAA,e,CFqVF,gC,CEjVA,gC,CAEE,Q,CAEA,uB,CAAA,e,CAGF,kB,CACE,4B,CAAA,yB,CAAA,oB,CFuVF,cAAc,Y,CACd,a,CACA,e,CACA,a,CACA,U,CACA,W,CACA,W,CEzVA,M,CFkVA,Q,CEzUE,uB,CAAA,oB,CAAA,e,CFuVF,a,CACA,Y,CACA,a,CEtVA,M,CAIE,uB,CAAA,oB,CAAA,e,CG/HF,Q,CACE,iB,CAEA,mB,CAAA,mB,CAAA,Y,CACA,2B,CAAA,4B,CAAA,yB,CAAA,qB,CACA,gB,CAEA,mC,CL8dF,gB,CK5dE,gB,CAEE,mB,CAAA,a,CAGF,a,CACE,kB,CAAA,mB,CAAA,W,CF6BF,qB,CEzBF,gB,CACE,iB,CAEA,S,CACA,U,CACA,W,CACA,S,CACA,e,CAEA,kB,CAEA,Q,CAEA,kB,CACA,6B,CAAA,qB,CAGF,gB,CACE,c,CAEA,e,CAGF,Y,CACE,e,CAGF,a,CACE,uB,CACA,oB,CAEA,gC,CACE,Y,CAIJ,c,CAEE,iC,CAAA,yB,CAGF,6BAAA,e,CACE,S,CC7DF,U,CACE,U,CACA,kB,CAAA,mB,CAAA,W,CACA,gB,CAEA,kB,CACA,8D,CAEA,Q,CAEA,0BAVF,U,CAWI,gB,AAGF,yBAdF,U,CAeI,gBCfJ,O,CACE,U,CACA,sB,CAGF,kB,CACE,c,CACA,e,CACA,U,CCRF,K,CACE,U,CAIF,Y,CACE,gB,CAAA,Y,CACA,wB,CAAA,6B,CACA,Q,CAEA,0BALF,Y,CAMI,oB,CAAA,yB,CACA,OAIJ,Y,CACE,c,CACA,e,CACA,kB,CACA,U,CACA,Y,CACA,kB,CAEA,0BARF,Y,CASI,mB,AC8CF,yBDvDF,Y,CAaI,c,CACA,oBAIJ,W,CACE,Y,CACA,qB,CACA,4B,CACA,kB,CACA,a,CACA,iB,CACA,e,CAEA,0BATF,W,CAUI,eAGF,iB,CACE,U,CACA,qB,CAGA,kC,CACE,U,CAIJ,iB,CACE,qB,CACA,S,CACA,U,CAEA,kC,CACE,U,CAIJ,yB,CACE,qB,CACA,S,CACA,U,CAEA,0C,CACE,U,CAIJ,kB,CAIE,qB,CAEA,mC,CACE,U,CAKF,kC,CA4BF,sB,CAxCA,kB,CAaI,S,CACA,U,CAGF,kC,CA4BF,sB,CA3BI,S,CAGF,0C,CA4BF,8B,CA3BI,S,CAGF,mC,CA4BF,uB,CA3BI,S,CAKN,gB,CACE,S,CACA,0B,CACA,2B,CACA,U,CACA,W,CACA,iB,CACA,a,CAoBF,gB,CAQA,W,CACE,c,CACA,e,CAVF,gB,CAEE,U,CAEA,iB,CACA,Q,CAGF,W,CAGE,kB,CACA,U,CACA,e,CACA,kB,CAEA,0BARF,W,CASI,mB,ACjFF,yBDwEF,W,CAaI,c,CACA,mBAIJ,e,CACE,gB,CACA,a,CACA,uB,CCzGA,0BDsGF,e,CAMI,wB,AChGF,yBD0FF,e,CAUI,wB,AAGF,0BAbF,e,CAcI,mB,CACA,oBAIJ,c,CACE,iB,CAGF,yB,CACE,gB,CAAA,Y,CACA,wB,CAAA,6B,CACA,Q,CAEA,yBALF,yB,CAMI,oB,CAAA,yB,CACA,OAIJ,oB,CACE,kB,CAGF,Y,CA6BA,kB,CAIE,S,CAEA,iB,CACA,e,CACA,c,CACA,gB,CAtCF,Y,CACE,iB,CAEA,mB,CAAA,mB,CAAA,Y,CACA,2B,CAAA,6B,CAAA,iC,CAAA,6B,CACA,U,CAEA,Q,CAOA,a,CAEA,0BAhBF,Y,CAiBI,oB,ACjJF,yBDgIF,Y,CAqBI,oB,AAGF,yBAxBF,Y,CAyBG,iBAIH,kB,CACE,a,CAEA,c,CAOA,0B,CCnLA,0BDyKF,kB,CAaI,iB,CAEA,kB,AAGF,0BAlBF,kB,CAmBI,kB,CAEA,c,CACA,kBE5IF,2C,CFgJF,6C,CACE,U,CEjJA,kC,CFgJF,oC,CACE,U,CADF,wC,CACE,U,CEjJA,uC,CFgJF,yC,CACE,U,CEjJA,6B,CFgJF,+B,CACE,U,CAGF,kB,CACE,iB,CAEA,c,CACA,U,CAGA,qC,CACA,iB,CAEA,0BAVF,kB,CAWI,mBAGF,2B,CA+EA,iC,CA9EE,+B,CACA,qC,CAGF,wB,CA+EA,8B,CA9EE,qB,CACA,S,CAGF,wB,CA+EA,8B,CA9EE,qB,CACA,S,CACA,S,CAGF,gC,CA+EA,sC,CA9EE,qB,CACA,S,CACA,S,CAGF,yB,CA+EA,+B,CA9EE,U,CAEA,qB,CACA,S,CACA,S,CAGF,8B,CACE,a,CAGF,8B,CACE,a,CAGF,sC,CACE,a,CAGF,+B,CAmEA,gC,CAlEE,a,CAIJ,e,CACE,mB,CAAA,mB,CAAA,Y,CACA,2B,CAAA,6B,CAAA,iC,CAAA,6B,CACA,kB,CAEA,0BALF,e,CAMI,oB,AC9PF,yBDwPF,e,CAUI,oBAIJ,wB,CACE,e,CACA,iB,CAEA,c,CACA,U,CAGA,qC,CACA,iB,CC/QA,yBDsQF,wB,CAYI,U,CACA,e,CACA,e,CACA,mBAqCF,gC,CACE,a,CAGF,wC,CACE,a,CAGF,iC,CACE,a,CAIJ,iB,CACE,a,CAEA,c,CACA,S,CAEA,iB,CACA,e,CACA,c,CACA,gB,CACA,gB,CACA,0B,CC9VA,0BDmVF,iB,CAcI,iB,CAEA,kB,ACvVF,yBDuUF,iB,CAoBI,kB,CAEA,c,CACA,kBAIJ,uB,CACE,gB,CAAA,Y,CACA,wB,CAAA,6B,CACA,O,CACA,gB,CAEA,0BANF,uB,CAOI,sB,AAGF,yBAVF,uB,CAWI,oB,CAAA,yB,CACA,K,CACA,oBAIJ,e,CAEE,e,CACA,S,CAGF,4B,CAGE,iB,CACA,S,CC7XA,yBDyXF,4B,CAOI,Y,CACA,oBAIJ,qB,CACE,iB,CACA,e,CACA,c,CACA,gB,CACA,U,CAEA,U,CAGF,qB,CACE,iB,CAGF,2C,CR8jBA,wC,CQ5jBE,O,CAEA,U,CACA,W,CAEA,qC,CACA,iB,CC3ZA,yBDmZF,2C,CRukBA,wC,CQ5jBI,U,AAGF,+CAdF,2C,CR6kBA,wC,CQ9jBI,SAGF,iD,CRgkBF,8C,CQ/jBI,qB,CACA,S,CAEA,2B,CAAA,mB,CAGF,iD,CRgkBF,8C,CQ/jBI,qB,CACA,S,CAEA,2B,CAAA,mB,CAGF,yD,CRgkBF,sD,CQ/jBI,qB,CACA,S,CAEA,2B,CAAA,mB,CAGF,kD,CRgkBF,+C,CQ/jBI,qB,CACA,S,CAEA,2B,CAAA,mB,CAIJ,mD,CRgkBA,gD,CQ9jBE,U,CACA,W,CAGF,uD,CACE,U,CACA,W,CAEA,4B,CACA,0C,CACA,2B,CACA,yB,CAGF,+C,CACE,+D,CACA,qB,CAEA,qD,CACE,4B,CAEA,6D,CACE,gD,CAIJ,qD,CACE,4B,CAEA,6D,CACE,gD,CAIJ,6D,CACE,4B,CAEA,qE,CACE,gD,CR8jBN,wC,CQzjBA,sD,CAEE,8B,CACA,wB,CACA,U,CAGF,a,CACE,U,CACA,a,CAEA,0BAJF,a,CAKI,YAGF,mB,CACE,e,CACA,wB,CAIJ,kB,CACE,iB,CACA,e,CACA,c,CACA,gB,CACA,a,CAGF,gB,CACE,iB,CAGF,oB,CACE,c,CACA,W,CACA,O,CACA,S,CACA,mB,CAAA,gB,CACA,c,CACA,Q,CAEA,0BATF,oB,CAUI,cGjmBJ,W,CACE,8D,CCDF,I,CACE,0B,CAAA,0B,CAAA,mB,CACA,iB,CAEA,U,CAEA,wB,CACA,Q,CACA,c,CAEA,kC,CAAA,0B,CAEA,S,CACE,wB,CAGF,a,CACE,U,CAEA,mB,CHQF,qBACE,eAAA,e,CGLA,YHUF,wB,CGVE,U,CFvBJ,a,CVgsCA,gB,CU9rCE,iB,CAEA,mB,CAAA,mB,CAAA,Y,CACA,mB,CAEA,oCAPF,a,CVysCA,gB,CUjsCI,Y,AAGF,yBAXF,a,CV+sCA,gB,CUnsCI,qBAGF,mB,CVqsCF,sB,CUpsCI,mB,CAAA,mB,CAAA,Y,CACA,wB,CAAA,qB,CAAA,kB,CACA,U,CAEA,oCALF,mB,CVgtCF,sB,CU1sCM,uB,CAAA,oB,CAAA,sB,CACA,2B,CAAA,4B,CAAA,yB,CAAA,uBAGF,yB,CVitCJ,4B,CACA,4B,CACA,+B,CUjtCM,kB,CAAA,mB,CAAA,W,CACA,e,CACA,e,CACA,gB,CACA,Y,CAEA,+B,CACA,iB,CACA,S,CAEA,kC,CAAA,0B,CAEA,oCAdF,yB,CVmuCJ,4B,CACA,4B,CACA,+B,CUttCQ,e,CACA,YAGF,+B,CVwtCN,kC,CACA,kC,CACA,qC,CUztCQ,+B,CAGF,+B,CV0tCN,kC,CACA,kC,CACA,qC,CU3tCQ,+B,CAMJ,oCADF,oB,CV2tCF,uB,CUztCM,iBAIJ,oB,CV0tCF,uB,CUztCI,iB,CACA,O,CACA,W,CAEA,a,CAEA,S,CAEA,mC,CAAA,2B,CAEA,oCAXF,oB,CVquCF,uB,CUztCM,aAKF,8B,CVytCJ,iC,CACA,iC,CACA,oC,CUztCM,iB,CACA,wB,CACA,8B,CAEA,oC,CAAA,oC,CV2tCN,uC,CACA,uC,CACA,uC,CACA,uC,CACA,0C,CACA,0C,CU9tCQ,iB,CACA,wB,CACA,8B,CAKN,4B,CV6tCF,+B,CU5tCI,iB,CACA,O,CACA,W,CAEA,uC,CV8tCJ,0C,CU7tCM,S,CAGF,qC,CV8tCJ,wC,CU7tCM,a,CAKN,gB,CACE,W,CAEA,sC,CACE,U,CP/GJ,c,CACE,iB,CAEA,W,CACA,mB,CACA,e,CAEA,oCAPF,c,CAQI,kB,CACA,YAGF,qB,CACE,iB,CACA,O,CACA,S,CAEA,kC,CAAA,8B,CAAA,0B,CAEA,8D,CAAA,8C,CAAA,yE,CAEA,mB,CAEA,oCAXF,qB,CAYI,8C,CAAA,0C,CAAA,wCAIJ,2B,CACE,iB,CACA,O,CACA,S,CAEA,kC,CAAA,8B,CAAA,0B,CAEA,8D,CAAA,8C,CAAA,yE,CAEA,mB,CAEA,oCAXF,2B,CAYI,8C,CAAA,0C,CAAA,wCAqBJ,sB,CACE,mB,CAAA,mB,CAAA,Y,CACA,wB,CAAA,qB,CAAA,kB,CACA,U,CACA,W,CACA,gB,CAEA,4B,CACA,+B,CACA,iB,CACA,S,CACA,c,CAEA,kC,CAAA,0B,CAEA,4B,CACE,+B,CAGF,4B,CACE,+B,CAGF,+B,CACE,mB,CACA,U,CAIJ,oB,CACE,iB,CACA,W,CACA,S,CAEA,U,CACA,gB,CACA,Q,CACA,S,CACA,e,CAEA,e,CAEA,qB,CACA,qB,CACA,kC,CAAA,8B,CAAA,0B,CACA,iB,CACA,S,CAEA,uD,CAAA,+C,CAGF,oB,CACE,W,CAEA,S,CACA,c,CAEA,4C,CAAA,oC,CAEA,wC,CACE,+B,CAEA,qBACE,mDAAA,e,CACE,iCAIJ,4D,CACE,+B,CAIJ,qBACE,+BAAA,e,CACE,iCAIJ,wC,CACE,+B,CAIJ,qB,CACE,iB,CACA,Y,CACA,M,CAEA,a,CAEA,S,CAEA,mC,CAAA,2B,CAGF,oB,CACE,c,CACA,gB,CACA,mB,CAAA,a,CACA,S,CACA,e,CAEA,e,CACA,kB,CACA,sB,CAEA,S,CAEA,uC,CAAA,+B,CAOF,oB,CACE,mB,CAAA,a,CACA,U,CACA,W,CACA,gB,CAEA,qB,CAEA,6C,CAAA,6B,CAAA,wD,CAEA,qE,CAAA,6D,CAGF,0B,CACE,mB,CAEA,+C,CACE,Y,CAKF,2C,CACE,W,CACA,K,CACA,gD,CAAA,4C,CAAA,wC,CAKF,2C,CACE,kB,CACA,S,CAGF,2C,CACE,gC,CAAA,4B,CAAA,wB,CAGF,4C,CACE,S,CAKF,6C,CACE,S,CAGF,8C,CAIA,oD,CAHE,S,CASF,+C,CACE,S,CAGF,gD,CACE,wB,CAEA,sD,CAAA,sD,CAEE,mC,CAiBJ,iD,CAgBA,qD,CAAA,uD,CAfE,+C,CAAA,2C,CAAA,uC,CACA,S,CAGF,yD,CAIA,2D,CAYA,oD,CAAA,sD,CAfE,S,CAoBJ,6B,CACE,iB,CACA,O,CACA,W,CAEA,wC,CACE,S,CAGF,sC,CACE,a,CU1SN,c,CACE,iB,CACA,c,CACA,gB,CACA,e,CAEA,mB,CAAA,mB,CAAA,Y,CAIA,oCAVF,c,CAYI,YAGF,oB,CACE,iB,CAEA,S,CACA,U,CACA,W,CAEA,kB,CAGF,oB,CACE,iB,CAEA,iB,CAEA,c,CAEA,yB,CACE,e,CACA,a,CAKF,6C,CA0BA,0C,CAzBE,iB,CACA,K,CACA,M,CAEA,U,CACA,W,CAEA,uB,CAEA,kC,CAAA,0B,CAgBF,0C,CAQE,qB,CACA,iB,CAqBJ,iD,CACE,uB,CADF,iD,CAME,yD,CACE,mC,CACA,0B,CACA,2B,CAIJ,6B,CACE,iB,CACA,O,CACA,W,CAEA,wC,CACE,S,CAGF,sC,CACE,a,CAKN,mB,CACE,S,CACA,U,CC7HF,e,CAGE,a,CACA,a,CACA,iB,CAEA,a,CACA,oB,CAEA,qB,CACA,qB,CACA,kB,CACA,c,CAEA,wB,CAAA,qB,CAAA,oB,CAAA,gB,CAEA,Q,CACA,yB,CAAA,8B,CLqDA,yBKvEF,e,CAqBI,U,CACA,iB,CAEA,Q,CACA,yB,CAAA,gCAGF,qB,CACE,U,CAEA,qB,CAGF,qB,CACE,U,CAEA,qB,CACA,S,CAGF,6B,CACE,U,CAEA,qB,CACA,S,CAGF,sB,CACE,0B,CAEA,qB,CACA,S,CAIJ,oB,CACE,e,CACA,Q,CACA,S,CAEA,e,CACA,c,CACA,gB,CACA,oB,CLOA,yBKfF,oB,CAWI,c,CACA,gB,CACA,sBAIJ,6B,CACE,U,CACA,W,CACA,qB,CACA,iB,CACA,mB,CAAA,mB,CAAA,Y,CACA,wB,CAAA,qB,CAAA,kB,CACA,uB,CAAA,oB,CAAA,sB,CACA,W,CACA,U,CLXA,yBKEF,6B,CAYI,U,CACA,aAIJ,mD,CACE,qB,CACA,c,CACA,+B,CAAA,2B,CAAA,uB,CACA,a,CACA,oB,CAAA,Y,CAGF,mD,CACE,qB,CACA,c,CACA,a,CACA,+B,CAAA,2B,CAAA,uB,CAGF,2D,CACE,qB,CACA,c,CACA,a,CACA,+B,CAAA,2B,CAAA,uB,CAGF,oD,CACE,qB,CACA,0B,CACA,yB,CACA,+B,CAAA,2B,CAAA,uB,CAGF,qB,CACE,0B,CAAA,yB,CAAA,iB,CACA,uB,CAAA,oB,CAAA,sB,CACA,wB,CAAA,qB,CAAA,kB,CACA,a,CACA,W,CACA,U,CACA,U,CACA,iB,CACA,O,CAGF,qB,CACE,U,CACA,e,CACA,iB,CACA,iB,CACA,kB,CACA,oB,CAAA,yB,CAEA,qB,CACA,qB,CAEA,2B,CACE,U,CACA,S,CAEA,qB,CAGF,2B,CACE,U,CACA,S,CAEA,qB,CACA,S,CAGF,mC,CACE,U,CACA,S,CAEA,qB,CACA,S,CAGF,4B,CACE,U,CACA,S,CAEA,qB,CACA,S,CAIJ,mD,CACE,qB,CAEA,c,CACA,a,CAGF,yD,CACE,wB,CACA,+B,CAAA,2B,CAAA,uB,CAEA,W,CACA,U,CAGF,yD,CACE,wB,CACA,+B,CAAA,2B,CAAA,uB,CAEA,W,CACA,U,CAGF,iE,CACE,wB,CACA,+B,CAAA,2B,CAAA,uB,CAEA,W,CACA,U,CAGF,0D,CACE,wB,CACA,+B,CAAA,2B,CAAA,uB,CAEA,2B,CACA,0B,CClNF,O,CACE,8D,CACA,W,CCFF,M,CACE,c,CACA,K,CACA,O,CACA,Q,CACA,M,CACA,Y,CAEA,mB,CAAA,mB,CAAA,Y,CACA,2B,CAAA,4B,CAAA,yB,CAAA,qB,CACA,e,CACA,gC,CAEA,+B,CACA,4B,CAAA,wB,CAAA,oB,CACA,iB,CACA,S,CAEA,8I,CAAA,8H,CAAA,6K,CAIA,mB,CAEA,uB,CACA,oB,CAEA,yB,CACE,Y,CAGF,e,CACE,iB,CAEA,mB,CAAA,mB,CAAA,Y,CACA,mB,CAAA,a,CACA,uB,CAAA,oB,CAAA,sB,CACA,wB,CAAA,qB,CAAA,kB,CACA,U,CACA,e,CACA,iB,CP+BF,yBOxCA,e,CAYI,mBAIJ,e,CACE,iB,CACA,K,CACA,M,CAEA,U,CACA,W,CAEA,c,CAGF,e,CACE,iB,CAEA,W,CACA,Y,CAEA,qB,CPOF,yBObA,e,CASI,U,CACA,cAIJ,iB,CACE,iB,CACA,Q,CACA,U,CACA,S,CAEA,U,CACA,W,CACA,S,CAEA,c,CACA,Q,CACA,c,CAIA,kC,CACE,U,CAKF,mC,CACE,U,CPxBJ,yBOuBE,mC,CAII,YAKN,gB,CACE,sB,CAAA,kB,CAAA,c,CAGF,e,CACE,uB,CAAA,e,CAGF,gB,CACE,0B,CAAA,sB,CAAA,kB,CACA,kB,CACA,S,CAEA,mB,CCpHJ,M,CACE,U,CACA,Y,CACA,qB,CACA,c,CACA,e,CACA,kB,CACA,iB,CACA,kB,CAGF,oB,CACE,iB,CACA,Q,CACA,U,CAEA,U,CACA,W,CACA,S,CAEA,4B,CACA,Q,CACA,c,CRiDA,yBQ5DF,oB,CAcI,Q,CACA,U,CAfJ,oB,CAsBA,Y,CAEI,U,CACA,a","file":"style.min.css","sourcesContent":["@charset \"UTF-8\";\n/* stylelint-disable */\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n/* Document\n ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n/**\n* Remove the margin in all browsers.\n*/\nbody {\n margin: 0;\n}\n\n/**\n* Render the `main` element consistently in IE.\n*/\nmain {\n display: block;\n}\n\n/**\n* Correct the font size and margin on `h1` elements within `section` and\n* `article` contexts in Chrome, Firefox, and Safari.\n*/\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n* 1. Add the correct box sizing in Firefox.\n* 2. Show the overflow in Edge and IE.\n*/\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n* 1. Correct the inheritance and scaling of font size in all browsers.\n* 2. Correct the odd `em` font sizing in all browsers.\n*/\npre {\n font-size: 1em; /* 2 */\n font-family: monospace, monospace; /* 1 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n* Remove the gray background on active links in IE 10.\n*/\na {\n background-color: transparent;\n}\n\n/**\n* 1. Remove the bottom border in Chrome 57-\n* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n*/\nabbr[title] {\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n border-bottom: none; /* 1 */\n}\n\n/**\n* Add the correct font weight in Chrome, Edge, and Safari.\n*/\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n* 1. Correct the inheritance and scaling of font size in all browsers.\n* 2. Correct the odd `em` font sizing in all browsers.\n*/\ncode,\nkbd,\nsamp {\n font-size: 1em; /* 2 */\n font-family: monospace, monospace; /* 1 */\n}\n\n/**\n* Add the correct font size in all browsers.\n*/\nsmall {\n font-size: 80%;\n}\n\n/**\n* Prevent `sub` and `sup` elements from affecting the line height in\n* all browsers.\n*/\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n* Remove the border on images inside links in IE 10.\n*/\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n/**\n* 1. Change the font styles in all browsers.\n* 2. Remove the margin in Firefox and Safari.\n*/\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 2 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n font-family: inherit; /* 1 */\n}\n\n/**\n* Show the overflow in IE.\n* 1. Show the overflow in Edge.\n*/\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n* Remove the inheritance of text transform in Edge, Firefox, and IE.\n* 1. Remove the inheritance of text transform in Firefox.\n*/\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n* Correct the inability to style clickable types in iOS and Safari.\n*/\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\n/**\n* Remove the inner border and padding in Firefox.\n*/\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n/**\n* Restore the focus styles unset by the previous rule.\n*/\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n* Correct the padding in Firefox.\n*/\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n* 1. Correct the text wrapping in Edge and IE.\n* 2. Correct the color inheritance from `fieldset` elements in IE.\n* 3. Remove the padding so developers are not caught out when they zero out\n* `fieldset` elements in all browsers.\n*/\nlegend {\n display: table; /* 1 */\n box-sizing: border-box; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n color: inherit; /* 2 */\n white-space: normal; /* 1 */\n}\n\n/**\n* Add the correct vertical alignment in Chrome, Firefox, and Opera.\n*/\nprogress {\n vertical-align: baseline;\n}\n\n/**\n* Remove the default vertical scrollbar in IE 10+.\n*/\ntextarea {\n overflow: auto;\n}\n\n/**\n* 1. Add the correct box sizing in IE 10.\n* 2. Remove the padding in IE 10.\n*/\n[type=checkbox],\n[type=radio] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n* Correct the cursor style of increment and decrement buttons in Chrome.\n*/\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n* 1. Correct the odd appearance in Chrome and Safari.\n* 2. Correct the outline style in Safari.\n*/\n[type=search] {\n outline-offset: -2px; /* 2 */\n -webkit-appearance: textfield; /* 1 */\n}\n\n/**\n* Remove the inner padding in Chrome and Safari on macOS.\n*/\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n* 1. Correct the inability to style clickable types in iOS and Safari.\n* 2. Change font properties to `inherit` in Safari.\n*/\n::-webkit-file-upload-button {\n font: inherit; /* 2 */\n -webkit-appearance: button; /* 1 */\n}\n\n/* Interactive\n ========================================================================== */\n/*\n* Add the correct display in Edge, IE 10+, and Firefox.\n*/\ndetails {\n display: block;\n}\n\n/*\n* Add the correct display in all browsers.\n*/\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n/**\n* Add the correct display in IE 10+.\n*/\ntemplate {\n display: none;\n}\n\n/**\n* Add the correct display in IE 10.\n*/\n[hidden] {\n display: none;\n}\n\n/* здесь подключите шрифты*/\n@font-face {\n font-style: normal;\n font-weight: 400;\n font-family: \"Montserrat\";\n font-display: swap;\n src: local(\"Montserrat\"), url(\"../fonts/montserrat-regular.woff2\") format(\"woff2\");\n}\n@font-face {\n font-style: normal;\n font-weight: 500;\n font-family: \"Montserrat\";\n font-display: swap;\n src: local(\"Montserrat\"), url(\"../fonts/montserrat-medium.woff2\") format(\"woff2\");\n}\n@font-face {\n font-style: normal;\n font-weight: 700;\n font-family: \"Montserrat\";\n font-display: swap;\n src: local(\"Montserrat\"), url(\"../fonts/montserrat-bold.woff2\") format(\"woff2\");\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n min-height: 100vh;\n}\n\nhtml {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n font-family: \"Montserrat\", \"Arial\", sans-serif;\n color: #000000;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n}\n\nbody {\n width: 100%;\n height: 100%;\n background-color: #ffffff;\n}\n\na {\n color: #000000;\n text-decoration: none;\n}\n\nimg,\nvideo {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\ntextarea {\n resize: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: inset 0 0 0 1000px #ffffff;\n -webkit-text-fill-color: #000000;\n}\n\ninput,\ntextarea {\n border-radius: 0;\n}\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n}\ninput:invalid,\ntextarea:invalid {\n box-shadow: none;\n}\n\nselect {\n border-radius: 0;\n}\n\ninput::-ms-clear, input::-ms-reveal {\n display: none;\n}\n\ninput[type=search]::-webkit-search-decoration,\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-results-button,\ninput[type=search]::-webkit-search-results-decoration {\n appearance: none;\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n}\n\ninput[type=number] {\n appearance: textfield;\n}\n\nselect,\ntextarea,\ninput:matches([type=email],\n[type=number],\n[type=password],\n[type=search],\n[type=tel],\n[type=text],\n[type=url]) {\n appearance: none;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n appearance: none;\n}\n\n.wrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n /* stylelint-disable-next-line */\n min-height: calc(100 * var(--vh, 1vh));\n}\n.wrapper .header,\n.wrapper .footer {\n flex-shrink: 0;\n}\n.wrapper main {\n flex-grow: 1;\n}\n\n.visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(100%);\n}\n\n.scroll-lock-ios {\n position: fixed;\n overflow: hidden;\n}\n\n.scroll-lock {\n overflow: hidden;\n}\n\n.no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.no-scrollbar::-webkit-scrollbar {\n display: none;\n}\n\n.no-transition {\n /* stylelint-disable-next-line */\n transition: none !important;\n}\n\n.js-focus-visible :focus:not(.focus-visible) {\n outline: none;\n}\n\n.container {\n width: 100%;\n flex-grow: 1;\n max-width: 1440px;\n margin: 0 auto;\n padding: 0 0 0 70px;\n background-image: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);\n margin-left: 0;\n margin-right: 0;\n}\n@media (max-width: 1230px) {\n .container {\n padding: 0 70px;\n }\n}\n@media (max-width: 540px) {\n .container {\n padding: 0 30px;\n }\n}\n\n.header {\n color: #ffffff;\n padding: 20px 15px 30px 15px;\n}\n\n.header__logo-link {\n font-size: 26px;\n font-weight: 800;\n color: #000000;\n}\n\n.form {\n width: 100%;\n}\n\n.form__inner {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 80px;\n}\n@media (max-width: 1230px) {\n .form__inner {\n grid-template-columns: 1fr;\n gap: 0;\n }\n}\n\n.form__title {\n font-size: 48px;\n font-weight: 800;\n line-height: normal;\n color: #ffffff;\n margin-top: 0;\n margin-bottom: 20px;\n}\n@media (max-width: 1230px) {\n .form__title {\n text-align: center;\n }\n}\n@media (max-width: 767px) {\n .form__title {\n font-size: 26px;\n margin-bottom: 17px;\n }\n}\n\n.form__link {\n padding: 13px;\n border: 1px solid #000000;\n background-color: transparent;\n border-radius: 20px;\n display: block;\n position: relative;\n max-width: 340px;\n}\n@media (max-width: 1230px) {\n .form__link {\n margin: 0 auto;\n }\n}\n.form__link:hover {\n color: #ffffff;\n border: 1px solid #ffffff;\n}\n.form__link:hover .form__link-text {\n color: #ffffff;\n}\n.form__link:focus {\n border: 1px solid #ffffff;\n fill: #ffffff;\n color: #ffffff;\n}\n.form__link:focus .form__link-text {\n color: #ffffff;\n}\n.form__link:focus-visible {\n border: 1px solid #ffffff;\n fill: #ffffff;\n color: #ffffff;\n}\n.form__link:focus-visible .form__link-text {\n color: #ffffff;\n}\n.form__link:active {\n color: #ffffff;\n fill: #ffffff;\n border: 1px solid #ffffff;\n}\n.form__link:active .form__link-text {\n color: #ffffff;\n}\n.form__link .form__link-icon:hover {\n fill: #ffffff;\n color: #ffffff;\n}\n.form__link .form__link-icon:focus {\n fill: #ffffff;\n}\n.form__link .form__link-icon:focus-visible {\n fill: #ffffff;\n}\n.form__link .form__link-icon:active {\n fill: #ffffff;\n}\n\n.form__link-icon {\n fill: #000000;\n background-position: center;\n background-repeat: no-repeat;\n width: 24px;\n height: 24px;\n position: absolute;\n display: block;\n}\n.form__link-icon:hover {\n fill: #ffffff;\n color: #ffffff;\n}\n.form__link-icon:focus {\n fill: #ffffff;\n}\n.form__link-icon:focus-visible {\n fill: #ffffff;\n}\n.form__link-icon:active {\n fill: #ffffff;\n}\n\n.form__link-text {\n font-size: 18px;\n color: #000000;\n font-weight: 400;\n padding-left: 35px;\n margin: 0;\n}\n\n.form__text {\n font-size: 18px;\n font-weight: 400;\n line-height: normal;\n color: #ffffff;\n margin-top: 10px;\n margin-bottom: 20px;\n}\n@media (max-width: 1230px) {\n .form__text {\n text-align: center;\n }\n}\n@media (max-width: 767px) {\n .form__text {\n font-size: 14px;\n margin-bottom: 7px;\n }\n}\n\n.form__wrapprer {\n max-width: 1440px;\n margin: 0 auto;\n padding: 117px 6.9% 30px;\n}\n@media (max-width: 1199px) {\n .form__wrapprer {\n padding: 97px 45px 30px 45px;\n }\n}\n@media (max-width: 767px) {\n .form__wrapprer {\n padding: 67px 15px 14px;\n }\n}\n@media (min-width: 1440px) {\n .form__wrapprer {\n padding-right: 100px;\n padding-left: 100px;\n }\n}\n\n.form__content {\n position: relative;\n}\n\n.form__inner-wrapper-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n}\n@media (max-width: 540px) {\n .form__inner-wrapper-grid {\n grid-template-columns: 1fr;\n gap: 0;\n }\n}\n\n.form__inner-wrapper {\n margin-bottom: 30px;\n}\n\n.form__input {\n position: relative;\n display: flex;\n flex-direction: column-reverse;\n width: 100%;\n margin: 0;\n margin-bottom: 0;\n padding: 0;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n color: #f0efe9;\n}\n@media (max-width: 1230px) {\n .form__input {\n margin-bottom: 15px;\n }\n}\n@media (max-width: 767px) {\n .form__input {\n margin-bottom: 20px;\n }\n}\n@media (max-width: 540px) {\n .form__input {\n margin-bottom: 0;\n }\n}\n\n.form__input label {\n display: block;\n margin: 0;\n margin-bottom: 8px;\n padding: 0;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n color: rgba(240, 239, 233, 0.8);\n}\n@media (max-width: 1199px) {\n .form__input label {\n margin-bottom: 7px;\n line-height: 20px;\n }\n}\n@media (max-width: 1230px) {\n .form__input label {\n margin-bottom: 12px;\n font-size: 12px;\n line-height: 14px;\n }\n}\n\n.form__input input::placeholder {\n color: #000000;\n}\n\n.form__input input {\n padding: 16px 25px;\n font-size: 14px;\n color: #000000;\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 8px;\n}\n@media (max-width: 1230px) {\n .form__input input {\n padding: 16px 25px;\n }\n}\n.form__input input:disabled {\n background: rgba(169, 175, 183, 0.2);\n border: 1px solid rgba(169, 175, 183, 0.5);\n}\n.form__input input:hover {\n border: 1px solid #ffffff;\n opacity: 1;\n}\n.form__input input:focus {\n border: 1px solid #ffffff;\n outline: none;\n opacity: 1;\n}\n.form__input input:focus-visible {\n border: 1px solid #ffffff;\n outline: none;\n opacity: 1;\n}\n.form__input input:active {\n color: #ffffff;\n border: 1px solid #ffffff;\n outline: none;\n opacity: 1;\n}\n.form__input input:hover + label {\n color: #f0efe9;\n}\n.form__input input:focus + label {\n color: #f0efe9;\n}\n.form__input input:focus-visible + label {\n color: #f0efe9;\n}\n.form__input input:active + label {\n color: #f0efe9;\n}\n\n.form__textarea {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: 18px;\n}\n@media (max-width: 1230px) {\n .form__textarea {\n margin-bottom: 17px;\n }\n}\n@media (max-width: 767px) {\n .form__textarea {\n margin-bottom: 21px;\n }\n}\n\n.form__textarea textarea {\n min-height: 98px;\n padding: 18px 25px;\n font-size: 14px;\n color: #000000;\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 8px;\n}\n@media (max-width: 767px) {\n .form__textarea textarea {\n width: 100%;\n min-width: unset;\n min-height: 94px;\n padding: 13px 25px;\n }\n}\n.form__textarea textarea:disabled {\n background: rgba(169, 175, 183, 0.2);\n border: 1px solid rgba(169, 175, 183, 0.5);\n}\n.form__textarea textarea:hover {\n border: 1px solid #ffffff;\n opacity: 1;\n}\n.form__textarea textarea:focus {\n border: 1px solid #ffffff;\n outline: none;\n opacity: 1;\n}\n.form__textarea textarea:focus-visible {\n border: 1px solid #ffffff;\n outline: none;\n opacity: 1;\n}\n.form__textarea textarea:active {\n color: #ffffff;\n border: 1px solid #ffffff;\n outline: none;\n opacity: 1;\n}\n.form__textarea textarea:hover + p {\n color: #f0efe9;\n}\n.form__textarea textarea:focus + p {\n color: #f0efe9;\n}\n.form__textarea textarea:focus-visible + p {\n color: #f0efe9;\n}\n.form__textarea textarea:active + p {\n color: #f0efe9;\n}\n\n.form__textarea p {\n display: block;\n margin: 0;\n margin-bottom: 8px;\n padding: 0;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n text-align: start;\n color: rgba(240, 239, 233, 0.8);\n}\n@media (max-width: 1199px) {\n .form__textarea p {\n margin-bottom: 6px;\n line-height: 20px;\n }\n}\n@media (max-width: 767px) {\n .form__textarea p {\n margin-bottom: 12px;\n font-size: 12px;\n line-height: 14px;\n }\n}\n\n.form__checkbox-wrapper {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 5px;\n margin-left: 10px;\n}\n@media (max-width: 1230px) {\n .form__checkbox-wrapper {\n justify-items: center;\n }\n}\n@media (max-width: 540px) {\n .form__checkbox-wrapper {\n grid-template-columns: 1fr;\n gap: 0;\n margin-bottom: 20px;\n }\n}\n\n.form__checkbox {\n margin: 0;\n margin-bottom: 20px;\n padding: 0;\n}\n\n.form__checkbox:last-of-type {\n margin: 0;\n margin-top: 2px;\n margin-bottom: 39px;\n padding: 0;\n}\n@media (max-width: 767px) {\n .form__checkbox:last-of-type {\n margin-top: 0;\n margin-bottom: 12px;\n }\n}\n\n.form__checkbox-label {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 12px;\n color: #ffffff;\n opacity: 0.9;\n}\n\n.form__checkbox label {\n padding-left: 30px;\n}\n\n.custom-toggle--checkbox .form__toggle-icon,\n.custom-toggle--radio .form__toggle-icon {\n top: 6px;\n width: 20px;\n height: 20px;\n border: 1px solid rgba(255, 255, 255, 0.7);\n border-radius: 2px;\n}\n@media (max-width: 767px) {\n .custom-toggle--checkbox .form__toggle-icon,\n.custom-toggle--radio .form__toggle-icon {\n top: 12px;\n }\n}\n@media (min-width: 321px) and (max-width: 767px) {\n .custom-toggle--checkbox .form__toggle-icon,\n.custom-toggle--radio .form__toggle-icon {\n top: 6px;\n }\n}\n.custom-toggle--checkbox .form__toggle-icon:hover,\n.custom-toggle--radio .form__toggle-icon:hover {\n border: 1px solid #ffffff;\n outline: none;\n transition: 0.1s ease;\n}\n.custom-toggle--checkbox .form__toggle-icon:focus,\n.custom-toggle--radio .form__toggle-icon:focus {\n border: 1px solid #ffffff;\n outline: none;\n transition: 0.1s ease;\n}\n.custom-toggle--checkbox .form__toggle-icon:focus-visible,\n.custom-toggle--radio .form__toggle-icon:focus-visible {\n border: 1px solid #ffffff;\n outline: none;\n transition: 0.1s ease;\n}\n.custom-toggle--checkbox .form__toggle-icon:active,\n.custom-toggle--radio .form__toggle-icon:active {\n border: 1px solid #ffffff;\n outline: none;\n transition: 0.1s ease;\n}\n\n.custom-toggle--checkbox .form__toggle-icon::before,\n.custom-toggle--radio .form__toggle-icon::before {\n width: 10px;\n height: 10px;\n}\n\n.custom-toggle input:checked + .form__toggle-icon::before {\n width: 10px;\n height: 10px;\n background-color: transparent;\n background-image: url(\"../img/svg/check.svg\");\n background-repeat: no-repeat;\n background-size: 10px 10px;\n}\n\n.custom-toggle input:checked + .form__toggle-icon {\n background-color: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);\n border: 1px solid #ffffff;\n}\n.custom-toggle input:checked + .form__toggle-icon:hover {\n background-color: transparent;\n}\n.custom-toggle input:checked + .form__toggle-icon:hover::before {\n background-image: url(\"../img/svg/check-white.svg\");\n}\n.custom-toggle input:checked + .form__toggle-icon:focus {\n background-color: transparent;\n}\n.custom-toggle input:checked + .form__toggle-icon:focus::before {\n background-image: url(\"../img/svg/check-white.svg\");\n}\n.custom-toggle input:checked + .form__toggle-icon:focus-visible {\n background-color: transparent;\n}\n.custom-toggle input:checked + .form__toggle-icon:focus-visible::before {\n background-image: url(\"../img/svg/check-white.svg\");\n}\n\n.is-invalid.custom-toggle--checkbox .form__toggle-icon,\n.custom-toggle--radio .form__toggle-icon {\n background: rgba(255, 94, 102, 0.2);\n border: 1px solid #ff5e66;\n opacity: 0.7;\n}\n\n.form__button {\n width: 100%;\n margin: 0 auto;\n}\n@media (max-width: 1230px) {\n .form__button {\n width: 100%;\n }\n}\n.form__button .span {\n font-weight: 700;\n text-transform: lowercase;\n}\n\n.form__select-text {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 14px;\n color: #f0efe9;\n}\n\n.form__inner-img {\n position: relative;\n}\n\n.form__inner-img img {\n position: fixed;\n height: auto;\n right: 0;\n z-index: 2;\n object-fit: cover;\n max-width: 100%;\n bottom: 0;\n}\n@media (max-width: 1230px) {\n .form__inner-img img {\n display: none;\n }\n}\n\n.page__body {\n background-image: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);\n}\n\n.btn {\n display: inline-flex;\n padding: 10px 20px;\n color: #ffffff;\n background-color: #2c39f2;\n border: none;\n cursor: pointer;\n transition: opacity 1s ease;\n}\n.btn--red {\n background-color: #ff1553;\n}\n.btn:disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n@media (hover: hover) {\n .btn:hover:not(.focus-visible) {\n opacity: 0.8;\n }\n}\n.btn.focus-visible:focus {\n opacity: 0.8;\n}\n\n.custom-input,\n.custom-textarea {\n position: relative;\n display: flex;\n padding: 14px 0 20px;\n}\n@media screen and (max-width: 767px) {\n .custom-input,\n.custom-textarea {\n width: 100%;\n }\n}\n@media (max-width: 540px) {\n .custom-input,\n.custom-textarea {\n padding: 14px 0 10px;\n }\n}\n.custom-input label,\n.custom-textarea label {\n display: flex;\n align-items: center;\n width: 100%;\n}\n@media screen and (max-width: 767px) {\n .custom-input label,\n.custom-textarea label {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n.custom-input label input,\n.custom-input label textarea,\n.custom-textarea label input,\n.custom-textarea label textarea {\n flex-grow: 1;\n max-width: 300px;\n min-height: 48px;\n margin-left: auto;\n padding: 10px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n border-radius: 5px;\n outline: none;\n transition: border 0.3s ease;\n}\n@media screen and (max-width: 767px) {\n .custom-input label input,\n.custom-input label textarea,\n.custom-textarea label input,\n.custom-textarea label textarea {\n max-width: unset;\n width: 100%;\n }\n}\n.custom-input label input:hover,\n.custom-input label textarea:hover,\n.custom-textarea label input:hover,\n.custom-textarea label textarea:hover {\n border: 2px solid rgba(0, 0, 0, 0.5);\n}\n.custom-input label input:focus,\n.custom-input label textarea:focus,\n.custom-textarea label input:focus,\n.custom-textarea label textarea:focus {\n border: 2px solid rgba(0, 0, 0, 0.8);\n}\n@media screen and (max-width: 767px) {\n .custom-input__label,\n.custom-textarea__label {\n margin: 0 0 18px 0;\n }\n}\n.custom-input__error,\n.custom-textarea__error {\n position: absolute;\n right: 0;\n bottom: 35px;\n color: #ff1553;\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n@media screen and (max-width: 767px) {\n .custom-input__error,\n.custom-textarea__error {\n bottom: 20px;\n }\n}\n.custom-input.is-invalid input,\n.custom-input.is-invalid textarea,\n.custom-textarea.is-invalid input,\n.custom-textarea.is-invalid textarea {\n border-radius: 8px;\n border: 1px solid #ff5e66;\n background: rgba(255, 94, 102, 0.2);\n}\n.custom-input.is-invalid input:focus, .custom-input.is-invalid input:hover,\n.custom-input.is-invalid textarea:focus,\n.custom-input.is-invalid textarea:hover,\n.custom-textarea.is-invalid input:focus,\n.custom-textarea.is-invalid input:hover,\n.custom-textarea.is-invalid textarea:focus,\n.custom-textarea.is-invalid textarea:hover {\n border-radius: 8px;\n border: 1px solid #ff5e66;\n background: rgba(255, 94, 102, 0.2);\n}\n.custom-input .input-message,\n.custom-textarea .input-message {\n position: absolute;\n right: 0;\n bottom: -5px;\n}\n.custom-input .input-message.is-invalid,\n.custom-textarea .input-message.is-invalid {\n color: #ff0000;\n}\n.custom-input .input-message.is-valid,\n.custom-textarea .input-message.is-valid {\n color: #15ab07;\n}\n\n.custom-textarea {\n width: 530px;\n}\n.custom-textarea::placeholder {\n color: #000000;\n}\n\n.custom-select {\n position: relative;\n width: 300px;\n padding: 14px 0 28px;\n margin: 0 0 44px 0;\n /* &.is-valid {\n .custom-select__button {\n border: 2px solid $color-eucalyptus;\n\n &:focus,\n &:hover {\n border: 2px solid rgba($color-eucalyptus, 0.5);\n }\n }\n } */\n}\n@media screen and (max-width: 767px) {\n .custom-select {\n padding: 4px 0 14px;\n width: 100%;\n }\n}\n.custom-select__label {\n position: absolute;\n top: 50%;\n left: 10px;\n transform: translateY(-50%);\n transition: transform 0.3s ease, opacity 0.3s ease;\n pointer-events: none;\n}\n@media screen and (max-width: 767px) {\n .custom-select__label {\n transform: translateY(calc(-50% - 5px));\n }\n}\n.custom-select__placeholder {\n position: absolute;\n top: 50%;\n left: 10px;\n transform: translateY(-50%);\n transition: transform 0.3s ease, opacity 0.3s ease;\n pointer-events: none;\n}\n@media screen and (max-width: 767px) {\n .custom-select__placeholder {\n transform: translateY(calc(-50% - 5px));\n }\n}\n.custom-select select {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(100%);\n}\n.custom-select__button {\n display: flex;\n align-items: center;\n width: 100%;\n height: 48px;\n padding: 5px 10px;\n background-color: rgba(255, 255, 255, 0);\n border: 2px solid rgba(0, 0, 0, 0.2);\n border-radius: 5px;\n outline: none;\n cursor: pointer;\n transition: border 0.3s ease;\n}\n.custom-select__button:hover {\n border: 2px solid rgba(0, 0, 0, 0.5);\n}\n.custom-select__button:focus {\n border: 2px solid rgba(0, 0, 0, 0.8);\n}\n.custom-select__button:disabled {\n pointer-events: none;\n opacity: 0.3;\n}\n.custom-select__list {\n position: absolute;\n bottom: 10px;\n z-index: 1;\n width: 100%;\n max-height: 100px;\n margin: 0;\n padding: 0;\n overflow-y: auto;\n list-style: none;\n background-color: #ffffff;\n border: 2px solid #000000;\n transform: translateY(100%);\n visibility: hidden;\n opacity: 0;\n transition: visibility 0.3s ease, opacity 0.3s ease;\n}\n.custom-select__item {\n padding: 5px;\n outline: none;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n.custom-select__item[aria-selected=true] {\n background-color: rgba(0, 0, 0, 0.2);\n}\n@media (hover: hover) {\n .custom-select__item[aria-selected=true]:hover:not(.focus-visible) {\n background-color: rgba(0, 0, 0, 0.2);\n }\n}\n.custom-select__item[aria-selected=true].focus-visible:focus {\n background-color: rgba(0, 0, 0, 0.2);\n}\n@media (hover: hover) {\n .custom-select__item:hover:not(.focus-visible) {\n background-color: rgba(0, 0, 0, 0.4);\n }\n}\n.custom-select__item.focus-visible:focus {\n background-color: rgba(0, 0, 0, 0.4);\n}\n.custom-select__error {\n position: absolute;\n bottom: -15px;\n left: 0;\n color: #ff1553;\n opacity: 0;\n transition: opacity 0.1s ease;\n}\n.custom-select__text {\n font-size: 20px;\n line-height: 24px;\n flex-shrink: 0;\n width: 80%;\n overflow: hidden;\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n opacity: 0;\n transition: opacity 0.3s ease 0.1s;\n}\n.custom-select__text br {\n display: none;\n}\n.custom-select__icon {\n flex-shrink: 0;\n width: 20px;\n height: 10px;\n margin-left: auto;\n background-color: #000000;\n transition: transform 0.3s ease;\n clip-path: polygon(100% 0, 100% 20%, 50% 100%, 0 20%, 0 0, 50% 80%);\n}\n.custom-select.is-disabled {\n pointer-events: none;\n}\n.custom-select.is-disabled .custom-select__list {\n display: none;\n}\n.custom-select.open-up .custom-select__list {\n bottom: auto;\n top: 0;\n transform: translateY(calc(-100% + 10px));\n}\n.custom-select.is-open .custom-select__list {\n visibility: visible;\n opacity: 1;\n}\n.custom-select.is-open .custom-select__icon {\n transform: rotate(180deg);\n}\n.custom-select.is-open .custom-select__label {\n opacity: 0;\n}\n.custom-select.not-empty .custom-select__text {\n opacity: 1;\n}\n.custom-select.not-empty .custom-select__label {\n opacity: 0;\n}\n.custom-select.not-empty .custom-select__placeholder {\n opacity: 0;\n}\n.custom-select.is-invalid .custom-select__error {\n opacity: 1;\n}\n.custom-select.is-invalid .custom-select__button {\n border: 2px solid #ff1553;\n}\n.custom-select.is-invalid .custom-select__button:focus, .custom-select.is-invalid .custom-select__button:hover {\n border: 2px solid rgba(255, 21, 83, 0.5);\n}\n.custom-select--placeholder .custom-select__label {\n transform: translateY(calc(-50% - 40px));\n opacity: 1;\n}\n.custom-select--placeholder.is-open .custom-select__label {\n opacity: 1;\n}\n.custom-select--placeholder.not-empty .custom-select__label {\n opacity: 1;\n}\n.custom-select.slide-up.not-empty .custom-select__label, .custom-select.slide-up.is-open .custom-select__label {\n transform: translateY(calc(-50% - 40px));\n opacity: 1;\n}\n.custom-select.slide-up.not-empty .custom-select__text, .custom-select.slide-up.is-open .custom-select__text {\n opacity: 1;\n}\n.custom-select .input-message {\n position: absolute;\n right: 0;\n bottom: -5px;\n}\n.custom-select .input-message.is-invalid {\n color: #ff0000;\n}\n.custom-select .input-message.is-valid {\n color: #15ab07;\n}\n\n.custom-toggle {\n position: relative;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n display: flex;\n}\n@media screen and (max-width: 767px) {\n .custom-toggle {\n width: 100%;\n }\n}\n.custom-toggle input {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n clip: rect(0 0 0 0);\n}\n.custom-toggle label {\n position: relative;\n padding-left: 52px;\n cursor: pointer;\n}\n.custom-toggle label span {\n margin-bottom: 0;\n margin-left: 0;\n}\n.custom-toggle--checkbox .custom-toggle__icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 28px;\n height: 28px;\n border: 1.5px solid #ffffff;\n transition: border 0.3s ease;\n /* &::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n background-image: url('../../img/svg/tick.svg');\n background-position: center;\n background-repeat: no-repeat;\n }*/\n}\n.custom-toggle--radio .custom-toggle__icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 28px;\n height: 28px;\n border: 1px solid #ffffff;\n border-radius: 50%;\n transition: border 0.3s ease;\n /*&::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n\n width: 20px;\n height: 20px;\n\n background-image: url('../../img/svg/tick.svg');\n background-position: center;\n background-repeat: no-repeat;\n }*/\n}\n.custom-toggle input:checked + .custom-toggle__icon {\n border: 1.5px solid #ffffff;\n background: url(\"../img/svg/tick.svg\");\n background-position: center;\n background-repeat: no-repeat;\n}\n.custom-toggle input:checked + .custom-toggle__icon::before {\n background: url(\"../img/svg/tick.svg\");\n background-position: center;\n background-repeat: no-repeat;\n}\n.custom-toggle .input-message {\n position: absolute;\n right: 0;\n bottom: -5px;\n}\n.custom-toggle .input-message.is-invalid {\n color: #ff0000;\n}\n.custom-toggle .input-message.is-valid {\n color: #15ab07;\n}\n\n.custom-toggle__svg {\n fill: #000000;\n color: #000000;\n}\n\n.general-button {\n display: block;\n margin: 0 auto;\n padding: 20px 30px;\n color: #316dc2;\n word-break: break-all;\n background-color: #000000;\n border: 1px solid #000000;\n border-radius: 30px;\n cursor: pointer;\n user-select: none;\n gap: 29px;\n grid-template-columns: 1fr 46px;\n}\n@media (max-width: 767px) {\n .general-button {\n width: 100%;\n padding: 20px 30px;\n gap: 19px;\n grid-template-columns: 1fr 34px;\n }\n}\n.general-button:hover {\n color: #ffffff;\n background-color: #000000;\n}\n.general-button:focus {\n color: #ffffff;\n background-color: #000000;\n outline: none;\n}\n.general-button:focus-visible {\n color: #ffffff;\n background-color: #000000;\n outline: none;\n}\n.general-button:active {\n color: rgba(255, 255, 255, 0.7);\n background-color: #000000;\n outline: none;\n}\n\n.general-button span {\n max-width: 280px;\n margin: 0;\n padding: 0;\n font-weight: 700;\n font-size: 18px;\n line-height: 14px;\n letter-spacing: 0.28px;\n}\n@media (max-width: 767px) {\n .general-button span {\n font-size: 16px;\n line-height: 12px;\n letter-spacing: 0.24px;\n }\n}\n\n.general-button__icon-wrapper {\n width: 46px;\n height: 46px;\n background-color: #000000;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n stroke: #ffffff;\n color: #ffffff;\n}\n@media (max-width: 767px) {\n .general-button__icon-wrapper {\n width: 34px;\n height: 34px;\n }\n}\n\n.general-button:hover .general-button__icon-wrapper {\n background-color: #ffffff;\n stroke: #316dc2;\n transform: rotate(45deg);\n color: #316dc2;\n transition: 1;\n}\n\n.general-button:focus .general-button__icon-wrapper {\n background-color: #ffffff;\n stroke: #316dc2;\n color: #316dc2;\n transform: rotate(45deg);\n}\n\n.general-button:focus-visible .general-button__icon-wrapper {\n background-color: #ffffff;\n stroke: #316dc2;\n color: #316dc2;\n transform: rotate(45deg);\n}\n\n.general-button:active .general-button__icon-wrapper {\n background-color: #ffffff;\n stroke: rgba(49, 109, 194, 0.7);\n color: rgba(49, 109, 194, 0.7);\n transform: rotate(45deg);\n}\n\n.general-button__icon {\n align-self: center;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n height: 22px;\n width: 22px;\n right: -5px;\n position: relative;\n top: 5px;\n}\n\n.general-button--dark {\n color: #ffffff;\n max-width: 270px;\n text-align: center;\n padding: 20px 30px;\n border-radius: 20px;\n grid-template-columns: 1fr;\n background-color: #000000;\n border: 1px solid #000000;\n}\n.general-button--dark:hover {\n color: #000000;\n fill: #ffffff;\n background-color: #ffffff;\n}\n.general-button--dark:focus {\n color: #000000;\n fill: #ffffff;\n background-color: #ffffff;\n outline: none;\n}\n.general-button--dark:focus-visible {\n color: #ffffff;\n fill: #ffffff;\n background-color: #000000;\n outline: none;\n}\n.general-button--dark:active {\n color: #ffffff;\n fill: #000000;\n background-color: #000000;\n outline: none;\n}\n\n.general-button--dark .general-button__icon-wrapper {\n background-color: #ffffff;\n stroke: #316dc2;\n color: #316dc2;\n}\n\n.general-button--dark:hover .general-button__icon-wrapper {\n background-color: #316dc2;\n transform: rotate(45deg);\n stroke: #ffffff;\n color: #ffffff;\n}\n\n.general-button--dark:focus .general-button__icon-wrapper {\n background-color: #316dc2;\n transform: rotate(45deg);\n stroke: #ffffff;\n color: #ffffff;\n}\n\n.general-button--dark:focus-visible .general-button__icon-wrapper {\n background-color: #316dc2;\n transform: rotate(45deg);\n stroke: #ffffff;\n color: #ffffff;\n}\n\n.general-button--dark:active .general-button__icon-wrapper {\n background-color: #316dc2;\n transform: rotate(45deg);\n stroke: rgba(255, 255, 255, 0.7);\n color: rgba(255, 255, 255, 0.7);\n}\n\n.footer {\n background-image: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);\n color: beige;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n background-color: rgba(0, 0, 0, 0.8);\n transform: scale(1.2);\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.6s cubic-bezier(0.55, 0, 0.1, 1), transform 0.6s cubic-bezier(0.55, 0, 0.1, 1), visibility 0.6s cubic-bezier(0.55, 0, 0.1, 1);\n pointer-events: none;\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.modal::-webkit-scrollbar {\n display: none;\n}\n.modal__wrapper {\n position: relative;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n width: 100%;\n min-height: 100%;\n padding: 60px 40px;\n}\n@media (max-width: 767px) {\n .modal__wrapper {\n padding: 60px 16px;\n }\n}\n.modal__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.modal__content {\n position: relative;\n width: 600px;\n padding: 40px;\n background-color: #ffffff;\n}\n@media (max-width: 767px) {\n .modal__content {\n width: 100%;\n padding: 20px;\n }\n}\n.modal__close-btn {\n position: absolute;\n top: 22px;\n right: 22px;\n z-index: 1;\n width: 40px;\n height: 40px;\n padding: 0;\n background: rgba(255, 255, 255, 0);\n border: none;\n cursor: pointer;\n}\n.modal--responsive .modal__content {\n width: 100%;\n}\n.modal--fit-content .modal__content {\n width: auto;\n}\n@media (max-width: 767px) {\n .modal--fit-content .modal__content {\n width: 100%;\n }\n}\n.modal--no-scale {\n transform: none;\n}\n.modal--preload {\n transition: none;\n}\n.modal.is-active {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n}\n\n.alert {\n color: #000000;\n padding: 20px;\n background-color: #ffffff;\n font-size: 24px;\n font-weight: 600;\n margin-bottom: 20px;\n text-align: center;\n border-radius: 20px;\n}\n\n.alert__button-close {\n position: absolute;\n top: 30px;\n right: 30px;\n width: 22px;\n height: 22px;\n padding: 0;\n background-color: transparent;\n border: none;\n cursor: pointer;\n}\n@media (max-width: 767px) {\n .alert__button-close {\n top: 18px;\n right: 23px;\n width: 12px;\n height: 12px;\n }\n}\n\n@media (max-width: 767px) {\n .alert__icon {\n width: 12px;\n height: 12px;\n }\n}\n\n/* @mixin hover-focus {\n @media (hover: hover) {\n &:hover:not(.focus-visible) {\n @content;\n }\n }\n\n &.focus-visible:focus {\n @content;\n }\n }\n*/\n/* @include hover-focus {\n opacity: 0.8;\n }\n*/\n/*@mixin hover {\n @media (hover: hover) {\n &:hover:not(.focus-visible) {\n @content;\n }\n }\n }\n*/\n/*@mixin focus {\n &.focus-visible:focus {\n @content;\n }\n }\n*/\n/*@mixin active {\n &.focus-visible:active {\n @content;\n }\n }\n*/","/* stylelint-disable */\n/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n* Remove the margin in all browsers.\n*/\n\nbody {\n margin: 0;\n}\n\n/**\n* Render the `main` element consistently in IE.\n*/\n\nmain {\n display: block;\n}\n\n/**\n* Correct the font size and margin on `h1` elements within `section` and\n* `article` contexts in Chrome, Firefox, and Safari.\n*/\n\nh1 {\n margin: 0.67em 0;\n\n font-size: 2em;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n* 1. Add the correct box sizing in Firefox.\n* 2. Show the overflow in Edge and IE.\n*/\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n* 1. Correct the inheritance and scaling of font size in all browsers.\n* 2. Correct the odd `em` font sizing in all browsers.\n*/\n\npre {\n font-size: 1em; /* 2 */\n font-family: monospace, monospace; /* 1 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n* Remove the gray background on active links in IE 10.\n*/\n\na {\n background-color: transparent;\n}\n\n/**\n* 1. Remove the bottom border in Chrome 57-\n* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n*/\n\nabbr[title] {\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n\n border-bottom: none; /* 1 */\n}\n\n/**\n* Add the correct font weight in Chrome, Edge, and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n* 1. Correct the inheritance and scaling of font size in all browsers.\n* 2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp {\n font-size: 1em; /* 2 */\n font-family: monospace, monospace; /* 1 */\n}\n\n/**\n* Add the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/**\n* Prevent `sub` and `sup` elements from affecting the line height in\n* all browsers.\n*/\n\nsub,\nsup {\n position: relative;\n\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n* Remove the border on images inside links in IE 10.\n*/\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n* 1. Change the font styles in all browsers.\n* 2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 2 */\n\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n font-family: inherit; /* 1 */\n}\n\n/**\n* Show the overflow in IE.\n* 1. Show the overflow in Edge.\n*/\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n* Remove the inheritance of text transform in Edge, Firefox, and IE.\n* 1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n* Correct the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n* Remove the inner border and padding in Firefox.\n*/\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n\n border-style: none;\n}\n\n/**\n* Restore the focus styles unset by the previous rule.\n*/\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n* Correct the padding in Firefox.\n*/\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n* 1. Correct the text wrapping in Edge and IE.\n* 2. Correct the color inheritance from `fieldset` elements in IE.\n* 3. Remove the padding so developers are not caught out when they zero out\n* `fieldset` elements in all browsers.\n*/\n\nlegend {\n display: table; /* 1 */\n box-sizing: border-box; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n\n color: inherit; /* 2 */\n white-space: normal; /* 1 */\n}\n\n/**\n* Add the correct vertical alignment in Chrome, Firefox, and Opera.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n* Remove the default vertical scrollbar in IE 10+.\n*/\n\ntextarea {\n overflow: auto;\n}\n\n/**\n* 1. Add the correct box sizing in IE 10.\n* 2. Remove the padding in IE 10.\n*/\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n* Correct the cursor style of increment and decrement buttons in Chrome.\n*/\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n* 1. Correct the odd appearance in Chrome and Safari.\n* 2. Correct the outline style in Safari.\n*/\n\n[type=\"search\"] {\n outline-offset: -2px; /* 2 */\n\n -webkit-appearance: textfield; /* 1 */\n}\n\n/**\n* Remove the inner padding in Chrome and Safari on macOS.\n*/\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n* 1. Correct the inability to style clickable types in iOS and Safari.\n* 2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n font: inherit; /* 2 */\n\n -webkit-appearance: button; /* 1 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n* Add the correct display in Edge, IE 10+, and Firefox.\n*/\n\ndetails {\n display: block;\n}\n\n/*\n* Add the correct display in all browsers.\n*/\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n* Add the correct display in IE 10+.\n*/\n\ntemplate {\n display: none;\n}\n\n/**\n* Add the correct display in IE 10.\n*/\n\n[hidden] {\n display: none;\n}\n","*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n min-height: 100vh;\n}\n\nhtml {\n font-style: normal;\n font-weight: 400;\n font-size: $fz-default;\n line-height: 24px;\n font-family: $ff-montserrat;\n color: $color-default-black;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n // оптимизация выравнивания шрифта относительно центра строки\n text-rendering: optimizeLegibility;\n // если по прежнему есть проблемы с выравниванием\n // https://transfonter.org/ - включите настройку https://prnt.sc/12rnt6g и переконвертируйте шрифт\n}\n\nbody {\n width: 100%;\n height: 100%;\n\n background-color: $color-default-white;\n}\n\na {\n color: $color-default-black;\n text-decoration: none;\n}\n\nimg,\nvideo {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\ntextarea {\n resize: none;\n}\n\n// chrome autofill background removal\n// если на проекте у инпутов используются разные цвета фонов\\текста -\n// удалите это из глобала и используйте локально с нужными цветами\n// rgba не подойдет, сконвертируйте цвет в hex без прозрачности\n// если в стилях уже используется box-shadow есть другое решение -\n// задать к списку транзишенов `background-color 10000000s ease-out`\ninput:-webkit-autofill {\n box-shadow: inset 0 0 0 1000px $color-default-white;\n\n -webkit-text-fill-color: $color-default-black;\n}\n\n// firefox placeholder \\ invalid fix + ios bdrs\ninput,\ntextarea {\n border-radius: 0;\n\n &::placeholder {\n opacity: 1;\n }\n\n &:invalid {\n box-shadow: none;\n }\n}\n\nselect {\n border-radius: 0;\n}\n\n// ie11 X removal\ninput {\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n}\n\n// chrome search X removal\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n appearance: none;\n}\n\n// input[number] arrows removal\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n margin: 0;\n\n appearance: none;\n}\n\ninput[type=\"number\"] {\n appearance: textfield;\n}\n\n// ios button \\ inputs reset\nselect,\ntextarea,\ninput:matches([type=\"email\"],\n [type=\"number\"],\n [type=\"password\"],\n [type=\"search\"],\n [type=\"tel\"],\n [type=\"text\"],\n [type=\"url\"]) {\n appearance: none;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: none;\n}\n",".custom-select {\n position: relative;\n\n width: 300px;\n padding: 14px 0 28px;\n margin: 0 0 44px 0;\n\n @media screen and (max-width: 767px) {\n padding: 4px 0 14px;\n width: 100%;\n }\n\n &__label {\n position: absolute;\n top: 50%;\n left: 10px;\n\n transform: translateY(-50%);\n\n transition: transform 0.3s ease, opacity 0.3s ease;\n\n pointer-events: none;\n\n @media screen and (max-width: 767px) {\n transform: translateY(calc(-50% - 5px));\n }\n }\n\n &__placeholder {\n position: absolute;\n top: 50%;\n left: 10px;\n\n transform: translateY(-50%);\n\n transition: transform 0.3s ease, opacity 0.3s ease;\n\n pointer-events: none;\n\n @media screen and (max-width: 767px) {\n transform: translateY(calc(-50% - 5px));\n }\n }\n\n select {\n position: absolute;\n\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n\n white-space: nowrap;\n\n border: 0;\n\n clip: rect(0 0 0 0);\n clip-path: inset(100%);\n }\n\n &__button {\n display: flex;\n align-items: center;\n width: 100%;\n height: 48px;\n padding: 5px 10px;\n\n background-color: rgba(255, 255, 255, 0);\n border: 2px solid rgba(0, 0, 0, 0.2);\n border-radius: 5px;\n outline: none;\n cursor: pointer;\n\n transition: border 0.3s ease;\n\n &:hover {\n border: 2px solid rgba(0, 0, 0, 0.5);\n }\n\n &:focus {\n border: 2px solid rgba(0, 0, 0, 0.8);\n }\n\n &:disabled {\n pointer-events: none;\n opacity: 0.3;\n }\n }\n\n &__list {\n position: absolute;\n bottom: 10px;\n z-index: 1;\n\n width: 100%;\n max-height: 100px;\n margin: 0;\n padding: 0;\n overflow-y: auto;\n\n list-style: none;\n\n background-color: #ffffff;\n border: 2px solid #000000;\n transform: translateY(100%);\n visibility: hidden;\n opacity: 0;\n\n transition: visibility 0.3s ease, opacity 0.3s ease;\n }\n\n &__item {\n padding: 5px;\n\n outline: none;\n cursor: pointer;\n\n transition: background-color 0.3s ease;\n\n &[aria-selected=\"true\"] {\n background-color: rgba(0, 0, 0, 0.2);\n\n @media (hover: hover) {\n &:hover:not(.focus-visible) {\n background-color: rgba(0, 0, 0, 0.2);\n }\n }\n\n &.focus-visible:focus {\n background-color: rgba(0, 0, 0, 0.2);\n }\n }\n\n @media (hover: hover) {\n &:hover:not(.focus-visible) {\n background-color: rgba(0, 0, 0, 0.4);\n }\n }\n\n &.focus-visible:focus {\n background-color: rgba(0, 0, 0, 0.4);\n }\n }\n\n &__error {\n position: absolute;\n bottom: -15px;\n left: 0;\n\n color: #ff1553;\n\n opacity: 0;\n\n transition: opacity 0.1s ease;\n }\n\n &__text {\n font-size: 20px;\n line-height: 24px;\n flex-shrink: 0;\n width: 80%;\n overflow: hidden;\n\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n opacity: 0;\n\n transition: opacity 0.3s ease 0.1s;\n\n br {\n display: none;\n }\n }\n\n &__icon {\n flex-shrink: 0;\n width: 20px;\n height: 10px;\n margin-left: auto;\n\n background-color: #000000;\n\n transition: transform 0.3s ease;\n\n clip-path: polygon(100% 0, 100% 20%, 50% 100%, 0 20%, 0 0, 50% 80%);\n }\n\n &.is-disabled {\n pointer-events: none;\n\n .custom-select__list {\n display: none;\n }\n }\n\n &.open-up {\n .custom-select__list {\n bottom: auto;\n top: 0;\n transform: translateY(calc(-100% + 10px));\n }\n }\n\n &.is-open {\n .custom-select__list {\n visibility: visible;\n opacity: 1;\n }\n\n .custom-select__icon {\n transform: rotate(180deg);\n }\n\n .custom-select__label {\n opacity: 0;\n }\n }\n\n &.not-empty {\n .custom-select__text {\n opacity: 1;\n }\n\n .custom-select__label {\n opacity: 0;\n }\n\n .custom-select__placeholder {\n opacity: 0;\n }\n }\n\n &.is-invalid {\n .custom-select__error {\n opacity: 1;\n }\n\n .custom-select__button {\n border: 2px solid #ff1553;\n\n &:focus,\n &:hover {\n border: 2px solid rgba(#ff1553, 0.5);\n }\n }\n }\n\n /* &.is-valid {\n .custom-select__button {\n border: 2px solid $color-eucalyptus;\n\n &:focus,\n &:hover {\n border: 2px solid rgba($color-eucalyptus, 0.5);\n }\n }\n } */\n\n &--placeholder {\n .custom-select__label {\n transform: translateY(calc(-50% - 40px));\n opacity: 1;\n }\n\n &.is-open .custom-select__label {\n opacity: 1;\n }\n\n &.not-empty .custom-select__label {\n opacity: 1;\n }\n }\n\n &.slide-up.not-empty,\n &.slide-up.is-open {\n .custom-select__label {\n transform: translateY(calc(-50% - 40px));\n opacity: 1;\n }\n\n .custom-select__text {\n opacity: 1;\n }\n }\n\n .input-message {\n position: absolute;\n right: 0;\n bottom: -5px;\n\n &.is-invalid {\n color: #ff0000;\n }\n\n &.is-valid {\n color: #15ab07;\n }\n }\n}\n","/* здесь подключите шрифты*/\n@font-face {\n font-style: normal;\n font-weight: 400;\n font-family: \"Montserrat\";\n\n font-display: swap;\n src: local(\"Montserrat\"),\n url(\"../fonts/montserrat-regular.woff2\") format(\"woff2\");\n}\n\n@font-face {\n font-style: normal;\n font-weight: 500;\n font-family: \"Montserrat\";\n\n font-display: swap;\n src: local(\"Montserrat\"),\n url(\"../fonts/montserrat-medium.woff2\") format(\"woff2\");\n}\n\n\n@font-face {\n font-style: normal;\n font-weight: 700;\n font-family: \"Montserrat\";\n\n font-display: swap;\n src: local(\"Montserrat\"),\n url(\"../fonts/montserrat-bold.woff2\") format(\"woff2\");\n}\n",".wrapper {\n position: relative;\n\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n /* stylelint-disable-next-line */\n min-height: calc(100 * var(--vh, 1vh));\n\n .header,\n .footer {\n flex-shrink: 0;\n }\n\n main {\n flex-grow: 1;\n }\n}\n\n.visually-hidden {\n position: absolute;\n\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n\n white-space: nowrap;\n\n border: 0;\n\n clip: rect(0 0 0 0);\n clip-path: inset(100%);\n}\n\n.scroll-lock-ios {\n position: fixed;\n\n overflow: hidden;\n}\n\n.scroll-lock {\n overflow: hidden;\n}\n\n.no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.no-transition {\n /* stylelint-disable-next-line */\n transition: none !important;\n}\n\n.js-focus-visible :focus:not(.focus-visible) {\n outline: none;\n}\n",".container {\n width: 100%;\n flex-grow: 1;\n max-width: 1440px;\n margin: 0 auto;\n padding: 0 0 0 70px;\n background-image: $main-gradient;\n margin-left: 0;\n margin-right: 0;\n\n @media (max-width: 1230px) {\n padding: 0 70px;\n }\n\n @media (max-width: 540px) {\n padding: 0 30px;\n }\n}\n",".header {\n color: #ffffff;\n padding: 20px 15px 30px 15px;\n}\n\n.header__logo-link {\n font-size: 26px;\n font-weight: 800;\n color: $color-default-black;\n}\n",".form {\n width: 100%;\n //background-color: $color-alabaster;\n}\n\n.form__inner {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 80px;\n\n @media (max-width: 1230px) {\n grid-template-columns: 1fr;\n gap: 0;\n }\n}\n\n.form__title {\n font-size: 48px;\n font-weight: 800;\n line-height: normal;\n color: $color-default-white;\n margin-top: 0;\n margin-bottom: 20px;\n\n @media (max-width: 1230px) {\n text-align: center;\n }\n\n @include vp-767 {\n font-size: 26px;\n margin-bottom: 17px;\n }\n}\n\n.form__link {\n padding: 13px;\n border: 1px solid $color-default-black;\n background-color: transparent;\n border-radius: 20px;\n display: block;\n position: relative;\n max-width: 340px;\n\n @media (max-width: 1230px){\n margin: 0 auto;\n }\n\n &:hover {\n color: $color-default-white;\n border: 1px solid $color-default-white;\n //fill: $color-default-white;\n\n .form__link-text {\n color: $color-default-white;\n }\n }\n\n &:focus {\n border: 1px solid $color-default-white;\n fill: $color-default-white;\n color: $color-default-white;\n\n .form__link-text {\n color: $color-default-white;\n }\n }\n\n &:focus-visible {\n border: 1px solid $color-default-white;\n fill: $color-default-white;\n color: $color-default-white;\n\n .form__link-text {\n color: $color-default-white;\n }\n }\n\n &:active {\n color: $color-default-white;\n fill: $color-default-white;\n\n border: 1px solid $color-default-white;\n\n .form__link-text {\n color: $color-default-white;\n }\n }\n\n .form__link-icon {\n &:hover {\n fill: $color-default-white;\n color: $color-default-white;\n }\n\n &:focus {\n fill: $color-default-white;\n }\n\n &:focus-visible {\n fill: $color-default-white;\n }\n\n &:active {\n fill: $color-default-white;\n }\n }\n}\n\n.form__link-icon {\n fill: $color-default-black;\n background-position: center;\n background-repeat: no-repeat;\n width: 24px;\n height: 24px;\n position: absolute;\n display: block;\n\n &:hover {\n fill: $color-default-white;\n color: $color-default-white;\n }\n\n &:focus {\n fill: $color-default-white;\n }\n\n &:focus-visible {\n fill: $color-default-white;\n }\n\n &:active {\n fill: $color-default-white;\n }\n}\n\n.form__link-text {\n font-size: 18px;\n color: $color-default-black;\n font-weight: 400;\n padding-left: 35px;\n margin: 0;\n}\n\n.form__text {\n font-size: 18px;\n font-weight: 400;\n line-height: normal;\n color: $color-default-white;\n margin-top: 10px;\n margin-bottom: 20px;\n\n @media (max-width: 1230px) {\n text-align: center;\n }\n\n @include vp-767 {\n font-size: 14px;\n margin-bottom: 7px;\n }\n}\n\n.form__wrapprer {\n max-width: 1440px;\n margin: 0 auto;\n padding: 117px 6.9% 30px;\n\n @include vp-1199 {\n padding: 97px 45px 30px 45px;\n }\n\n @include vp-767 {\n padding: 67px 15px 14px;\n }\n\n @media (min-width: 1440px) {\n padding-right: 100px;\n padding-left: 100px;\n }\n}\n\n.form__content {\n position: relative;\n}\n\n.form__inner-wrapper-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 0;\n }\n}\n\n.form__inner-wrapper {\n margin-bottom: 30px;\n}\n\n.form__input {\n position: relative;\n\n display: flex;\n flex-direction: column-reverse;\n width: 100%;\n margin: 0;\n margin-bottom: 0;\n padding: 0;\n\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n color: $color-alabaster;\n\n @media (max-width: 1230px) {\n margin-bottom: 15px;\n }\n\n @include vp-767 {\n margin-bottom: 20px;\n }\n\n @media (max-width: 540px) {\n margin-bottom: 0;\n }\n}\n\n.form__input label {\n display: block;\n margin: 0;\n margin-bottom: 8px;\n padding: 0;\n\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n color: rgba(240, 239, 233, 0.8);\n\n @include vp-1199 {\n margin-bottom: 7px;\n\n line-height: 20px;\n }\n\n @media (max-width: 1230px) {\n margin-bottom: 12px;\n\n font-size: 12px;\n line-height: 14px;\n }\n}\n\n.form__input input::placeholder {\n color: $color-default-black;\n}\n\n.form__input input {\n padding: 16px 25px;\n\n font-size: 14px;\n color: $color-default-black;\n\n //background-color: transparent;\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 8px;\n\n @media (max-width: 1230px) {\n padding: 16px 25px;\n }\n\n &:disabled {\n background: rgba(169, 175, 183, 0.2);\n border: 1px solid rgba(169, 175, 183, 0.5);\n }\n\n &:hover {\n border: 1px solid $color-default-white;\n opacity: 1;\n }\n\n &:focus {\n border: 1px solid $color-default-white;\n outline: none;\n opacity: 1;\n }\n\n &:focus-visible {\n border: 1px solid $color-default-white;\n outline: none;\n opacity: 1;\n }\n\n &:active {\n color: $color-default-white;\n\n border: 1px solid $color-default-white;\n outline: none;\n opacity: 1;\n }\n\n &:hover + label {\n color: $color-alabaster;\n }\n\n &:focus + label {\n color: $color-alabaster;\n }\n\n &:focus-visible + label {\n color: $color-alabaster;\n }\n\n &:active + label {\n color: $color-alabaster;\n }\n}\n\n.form__textarea {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: 18px;\n\n @media (max-width: 1230px) {\n margin-bottom: 17px;\n }\n\n @include vp-767 {\n margin-bottom: 21px;\n }\n}\n\n.form__textarea textarea {\n min-height: 98px;\n padding: 18px 25px;\n\n font-size: 14px;\n color: $color-default-black;\n\n //background-color: transparent;\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 8px;\n\n @include vp-767 {\n width: 100%;\n min-width: unset;\n min-height: 94px;\n padding: 13px 25px;\n }\n\n &:disabled {\n background: rgba(169, 175, 183, 0.2);\n border: 1px solid rgba(169, 175, 183, 0.5);\n }\n\n &:hover {\n border: 1px solid $color-default-white;\n opacity: 1;\n }\n\n &:focus {\n border: 1px solid $color-default-white;\n outline: none;\n opacity: 1;\n }\n\n &:focus-visible {\n border: 1px solid $color-default-white;\n outline: none;\n opacity: 1;\n }\n\n &:active {\n color: $color-default-white;\n\n border: 1px solid $color-default-white;\n outline: none;\n opacity: 1;\n }\n\n &:hover + p {\n color: $color-alabaster;\n }\n\n &:focus + p {\n color: $color-alabaster;\n }\n\n &:focus-visible + p {\n color: $color-alabaster;\n }\n\n &:active + p {\n color: $color-alabaster;\n }\n}\n\n.form__textarea p {\n display: block;\n margin: 0;\n margin-bottom: 8px;\n padding: 0;\n\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n text-align: start;\n color: rgba(240, 239, 233, 0.8);\n\n @include vp-1199 {\n margin-bottom: 6px;\n\n line-height: 20px;\n }\n\n @include vp-767 {\n margin-bottom: 12px;\n\n font-size: 12px;\n line-height: 14px;\n }\n}\n\n.form__checkbox-wrapper {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 5px;\n margin-left: 10px;\n\n @media (max-width: 1230px) {\n justify-items: center;\n }\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 0;\n margin-bottom: 20px;\n }\n}\n\n.form__checkbox {\n margin: 0;\n margin-bottom: 20px;\n padding: 0;\n}\n\n.form__checkbox:last-of-type {\n margin: 0;\n margin-top: 2px;\n margin-bottom: 39px;\n padding: 0;\n\n @include vp-767 {\n margin-top: 0;\n margin-bottom: 12px;\n }\n}\n\n.form__checkbox-label {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 12px;\n color: $color-default-white;\n\n opacity: 0.9;\n}\n\n.form__checkbox label {\n padding-left: 30px;\n}\n\n.custom-toggle--checkbox .form__toggle-icon,\n.custom-toggle--radio .form__toggle-icon {\n top: 6px;\n\n width: 20px;\n height: 20px;\n\n border: 1px solid rgba(255, 255, 255, 0.7);\n border-radius: 2px;\n\n @include vp-767 {\n top: 12px;\n }\n\n @media (min-width: 321px) and (max-width: 767px) {\n top: 6px;\n }\n\n &:hover {\n border: 1px solid $color-default-white;\n outline: none;\n\n transition: 0.1s ease;\n }\n\n &:focus {\n border: 1px solid $color-default-white;\n outline: none;\n\n transition: 0.1s ease;\n }\n\n &:focus-visible {\n border: 1px solid $color-default-white;\n outline: none;\n\n transition: 0.1s ease;\n }\n\n &:active {\n border: 1px solid $color-default-white;\n outline: none;\n\n transition: 0.1s ease;\n }\n}\n\n.custom-toggle--checkbox .form__toggle-icon::before,\n.custom-toggle--radio .form__toggle-icon::before {\n width: 10px;\n height: 10px;\n}\n\n.custom-toggle input:checked + .form__toggle-icon::before {\n width: 10px;\n height: 10px;\n\n background-color: transparent;\n background-image: url(\"../img/svg/check.svg\");\n background-repeat: no-repeat;\n background-size: 10px 10px;\n}\n\n.custom-toggle input:checked + .form__toggle-icon {\n background-color: $main-gradient;\n border: 1px solid $color-default-white;\n\n &:hover {\n background-color: transparent;\n\n &::before {\n background-image: url(\"../img/svg/check-white.svg\");\n }\n }\n\n &:focus {\n background-color: transparent;\n\n &::before {\n background-image: url(\"../img/svg/check-white.svg\");\n }\n }\n\n &:focus-visible {\n background-color: transparent;\n\n &::before {\n background-image: url(\"../img/svg/check-white.svg\");\n }\n }\n}\n\n.is-invalid.custom-toggle--checkbox .form__toggle-icon,\n.custom-toggle--radio .form__toggle-icon {\n background: rgba(255, 94, 102, 0.2);\n border: 1px solid $color-wild-watermelon;\n opacity: 0.7;\n}\n\n.form__button {\n width: 100%;\n margin: 0 auto;\n\n @media (max-width: 1230px) {\n width: 100%;\n }\n\n .span {\n font-weight: 700;\n text-transform: lowercase;\n }\n}\n\n.form__select-text {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 14px;\n color: $color-alabaster;\n}\n\n.form__inner-img {\n position: relative;\n}\n\n.form__inner-img img {\n position: fixed;\n height: auto;\n right: 0;\n z-index: 2;\n object-fit: cover;\n max-width: 100%;\n bottom: 0;\n\n @media (max-width: 1230px) {\n display: none;\n }\n}\n","@mixin retina {\n @media (min-resolution: $retina-dpi), (min-resolution: $retina-dppx) {\n @content;\n }\n}\n\n@mixin hover {\n @media (hover: hover) {\n &:hover:not(.focus-visible) {\n @content;\n }\n }\n}\n\n@mixin focus {\n &.focus-visible:focus {\n @content;\n }\n}\n\n@mixin active {\n &.focus-visible:active {\n @content;\n }\n}\n\n@mixin hover-focus {\n @media (hover: hover) {\n &:hover:not(.focus-visible) {\n @content;\n }\n }\n\n &.focus-visible:focus {\n @content;\n }\n}\n\n// Desktop first\n\n@mixin vp-1919 {\n @media (max-width: ($vp-1920 - 1px)) {\n @content;\n }\n}\n\n@mixin vp-1439 {\n @media (max-width: ($vp-1440 - 1px)) {\n @content;\n }\n}\n\n@mixin vp-1279 {\n @media (max-width: ($vp-1280 - 1px)) {\n @content;\n }\n}\n\n@mixin vp-1199 {\n @media (max-width: ($vp-1200 - 1px)) {\n @content;\n }\n}\n\n@mixin vp-1023 {\n @media (max-width: ($vp-1024 - 1px)) {\n @content;\n }\n}\n\n@mixin vp-767 {\n @media (max-width: ($vp-768 - 1px)) {\n @content;\n }\n}\n\n@mixin vp-374 {\n @media (max-width: ($vp-375 - 1px)) {\n @content;\n }\n}\n\n\n// Mobile first\n\n// @mixin vp-375 {\n// @media (min-width: $vp-375) {\n// @content;\n// }\n// }\n\n// @mixin vp-768 {\n// @media (min-width: $vp-768) {\n// @content;\n// }\n// }\n\n// @mixin vp-1024 {\n// @media (min-width: $vp-1024) {\n// @content;\n// }\n// }\n\n// @mixin vp-1280 {\n// @media (min-width: $vp-1280) {\n// @content;\n// }\n// }\n\n// @mixin vp-1440 {\n// @media (min-width: $vp-1440) {\n// @content;\n// }\n// }\n\n// @mixin vp-1920 {\n// @media (min-width: $vp-1920) {\n// @content;\n// }\n// }\n\n// ---------------------------------\n\n// не нужно добавлять свои миксины для ресета списков, обнуления кнопок и прочие\n// этим вы усложняете работу команды, проверку вашего кода и будущую поддержку проекта\n",".custom-input,\n.custom-textarea {\n position: relative;\n\n display: flex;\n padding: 14px 0 20px;\n\n @media screen and (max-width: 767px) {\n width: 100%;\n }\n\n @media (max-width: 540px) {\n padding: 14px 0 10px;\n }\n\n label {\n display: flex;\n align-items: center;\n width: 100%;\n\n @media screen and (max-width: 767px) {\n align-items: flex-start;\n flex-direction: column;\n }\n\n input,\n textarea {\n flex-grow: 1;\n max-width: 300px;\n min-height: 48px;\n margin-left: auto;\n padding: 10px;\n\n border: 2px solid rgba(#000000, 0.2);\n border-radius: 5px;\n outline: none;\n\n transition: border 0.3s ease;\n\n @media screen and (max-width: 767px) {\n max-width: unset;\n width: 100%;\n }\n\n &:hover {\n border: 2px solid rgba(#000000, 0.5);\n }\n\n &:focus {\n border: 2px solid rgba(#000000, 0.8);\n }\n }\n }\n\n &__label {\n @media screen and (max-width: 767px) {\n margin: 0 0 18px 0;\n }\n }\n\n &__error {\n position: absolute;\n right: 0;\n bottom: 35px;\n\n color: #ff1553;\n\n opacity: 0;\n\n transition: opacity 0.3s ease;\n\n @media screen and (max-width: 767px) {\n bottom: 20px;\n }\n }\n\n &.is-invalid {\n input,\n textarea {\n border-radius: 8px;\n border: 1px solid $color-wild-watermelon;\n background: rgba(255, 94, 102, 0.2);\n\n &:focus,\n &:hover {\n border-radius: 8px;\n border: 1px solid $color-wild-watermelon;\n background: rgba(255, 94, 102, 0.2);\n }\n }\n }\n\n .input-message {\n position: absolute;\n right: 0;\n bottom: -5px;\n\n &.is-invalid {\n color: #ff0000;\n }\n\n &.is-valid {\n color: #15ab07;\n }\n }\n}\n\n.custom-textarea {\n width: 530px;\n\n &::placeholder {\n color: #000000;\n }\n}\n",".page__body {\n background-image: $main-gradient;\n}\n",".btn {\n display: inline-flex;\n padding: 10px 20px;\n\n color: $color-default-white;\n\n background-color: $color-neon-blue;\n border: none;\n cursor: pointer;\n\n transition: opacity $trans-default;\n\n &--red {\n background-color: $color-torch-red;\n }\n\n &:disabled {\n opacity: 0.5;\n\n pointer-events: none;\n }\n\n @include hover-focus {\n opacity: 0.8;\n }\n}\n",".custom-toggle {\n position: relative;\n font-size: 18px;\n line-height: 27px;\n font-weight: 300;\n\n display: flex;\n //width: 500px;\n //padding: 14px 0 10px 36px;\n\n @media screen and (max-width: 767px) {\n //padding: 14px 0 10px 0;\n width: 100%;\n }\n\n input {\n position: absolute;\n\n width: 1px;\n height: 1px;\n margin: -1px;\n\n clip: rect(0 0 0 0);\n }\n\n label {\n position: relative;\n\n padding-left: 52px;\n\n cursor: pointer;\n\n span {\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n &--checkbox {\n .custom-toggle__icon {\n position: absolute;\n top: 0;\n left: 0;\n\n width: 28px;\n height: 28px;\n\n border: 1.5px solid #ffffff;\n\n transition: border 0.3s ease;\n\n\n /* &::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n background-image: url('../../img/svg/tick.svg');\n background-position: center;\n background-repeat: no-repeat;\n }*/\n }\n }\n\n &--radio {\n .custom-toggle__icon {\n position: absolute;\n top: 0;\n left: 0;\n\n width: 28px;\n height: 28px;\n\n border: 1px solid #ffffff;\n border-radius: 50%;\n\n transition: border 0.3s ease;\n\n\n /*&::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n\n width: 20px;\n height: 20px;\n\n background-image: url('../../img/svg/tick.svg');\n background-position: center;\n background-repeat: no-repeat;\n }*/\n }\n }\n\n input:checked + .custom-toggle__icon {\n border: 1.5px solid #ffffff;\n background: url(\"../img/svg/tick.svg\");\n background-position: center;\n background-repeat: no-repeat;\n\n &::before {\n background: url(\"../img/svg/tick.svg\");\n background-position: center;\n background-repeat: no-repeat;\n }\n }\n\n .input-message {\n position: absolute;\n right: 0;\n bottom: -5px;\n\n &.is-invalid {\n color: #ff0000;\n }\n\n &.is-valid {\n color: #15ab07;\n }\n }\n}\n\n.custom-toggle__svg {\n fill: $color-default-black;\n color: $color-default-black;\n}\n",".general-button {\n //display: grid;\n //align-items: center;\n display: block;\n margin: 0 auto;\n padding: 20px 30px;\n\n color: $color-light-blue;\n word-break: break-all;\n\n background-color: $color-default-black;\n border: 1px solid $color-default-black;\n border-radius: 30px;\n cursor: pointer;\n\n user-select: none;\n\n gap: 29px;\n grid-template-columns: 1fr 46px;\n\n @include vp-767 {\n width: 100%;\n padding: 20px 30px;\n\n gap: 19px;\n grid-template-columns: 1fr 34px;\n }\n\n &:hover {\n color: $color-default-white;\n\n background-color: $color-default-black;\n }\n\n &:focus {\n color: $color-default-white;\n\n background-color: $color-default-black;\n outline: none;\n }\n\n &:focus-visible {\n color: $color-default-white;\n\n background-color: $color-default-black;\n outline: none;\n }\n\n &:active {\n color: rgba(255, 255, 255, 0.7);\n\n background-color: $color-default-black;\n outline: none;\n }\n}\n\n.general-button span {\n max-width: 280px;\n margin: 0;\n padding: 0;\n\n font-weight: 700;\n font-size: 18px;\n line-height: 14px;\n letter-spacing: 0.28px;\n\n @include vp-767 {\n font-size: 16px;\n line-height: 12px;\n letter-spacing: 0.24px;\n }\n}\n\n.general-button__icon-wrapper {\n width: 46px;\n height: 46px;\n background-color: $color-default-black;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n stroke: $color-default-white;\n color: $color-default-white;\n\n @include vp-767 {\n width: 34px;\n height: 34px;\n }\n}\n\n.general-button:hover .general-button__icon-wrapper {\n background-color: $color-default-white;\n stroke: $color-light-blue;\n transform: rotate(45deg);\n color: $color-light-blue;\n transition: 1;\n}\n\n.general-button:focus .general-button__icon-wrapper {\n background-color: $color-default-white;\n stroke: $color-light-blue;\n color: $color-light-blue;\n transform: rotate(45deg);\n}\n\n.general-button:focus-visible .general-button__icon-wrapper {\n background-color: $color-default-white;\n stroke: $color-light-blue;\n color: $color-light-blue;\n transform: rotate(45deg);\n}\n\n.general-button:active .general-button__icon-wrapper {\n background-color: $color-default-white;\n stroke: rgba(49, 109, 194, 0.7);\n color: rgba(49, 109, 194, 0.7);\n transform: rotate(45deg);\n}\n\n.general-button__icon {\n align-self: center;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n height: 22px;\n width: 22px;\n right: -5px;\n position: relative;\n top: 5px;\n}\n\n.general-button--dark {\n color: $color-default-white;\n max-width: 270px;\n text-align: center;\n padding: 20px 30px;\n border-radius: 20px;\n grid-template-columns: 1fr;\n\n background-color: $color-default-black;\n border: 1px solid $color-default-black;\n\n &:hover {\n color: $color-default-black;\n fill: $color-default-white;\n\n background-color: $color-default-white;\n }\n\n &:focus {\n color: $color-default-black;\n fill: $color-default-white;\n\n background-color: $color-default-white;\n outline: none;\n }\n\n &:focus-visible {\n color: $color-default-white;\n fill: $color-default-white;\n\n background-color: $color-default-black;\n outline: none;\n }\n\n &:active {\n color: $color-default-white;\n fill: $color-default-black;\n\n background-color: $color-default-black;\n outline: none;\n }\n}\n\n.general-button--dark .general-button__icon-wrapper {\n background-color: $color-default-white;\n\n stroke: $color-light-blue;\n color: $color-light-blue;\n}\n\n.general-button--dark:hover .general-button__icon-wrapper {\n background-color: $color-light-blue;\n transform: rotate(45deg);\n\n stroke: $color-default-white;\n color: $color-default-white;\n}\n\n.general-button--dark:focus .general-button__icon-wrapper {\n background-color: $color-light-blue;\n transform: rotate(45deg);\n\n stroke: $color-default-white;\n color: $color-default-white;\n}\n\n.general-button--dark:focus-visible .general-button__icon-wrapper {\n background-color: $color-light-blue;\n transform: rotate(45deg);\n\n stroke: $color-default-white;\n color: $color-default-white;\n}\n\n.general-button--dark:active .general-button__icon-wrapper {\n background-color: $color-light-blue;\n transform: rotate(45deg);\n\n stroke: rgba(255, 255, 255, 0.7);\n color: rgba(255, 255, 255, 0.7);\n}\n",".footer {\n background-image: $main-gradient;\n color:beige;\n}\n",".modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n\n background-color: rgba($color-default-black, 0.8);\n transform: scale(1.2);\n visibility: hidden;\n opacity: 0;\n\n transition: opacity $trans-modal,\n transform $trans-modal,\n visibility $trans-modal;\n\n pointer-events: none;\n\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n &__wrapper {\n position: relative;\n\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n width: 100%;\n min-height: 100%;\n padding: 60px 40px;\n\n @include vp-767 {\n padding: 60px 16px;\n }\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 100%;\n\n cursor: pointer;\n }\n\n &__content {\n position: relative;\n\n width: 600px;\n padding: 40px;\n\n background-color: $color-default-white;\n\n @include vp-767 {\n width: 100%;\n padding: 20px;\n }\n }\n\n &__close-btn {\n position: absolute;\n top: 22px;\n right: 22px;\n z-index: 1;\n\n width: 40px;\n height: 40px;\n padding: 0;\n\n background: $color-transparent;\n border: none;\n cursor: pointer;\n }\n\n &--responsive {\n .modal__content {\n width: 100%;\n }\n }\n\n &--fit-content {\n .modal__content {\n width: auto;\n\n @include vp-767 {\n width: 100%;\n }\n }\n }\n\n &--no-scale {\n transform: none;\n }\n\n &--preload {\n transition: none;\n }\n\n &.is-active {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n\n pointer-events: auto;\n }\n}\n",".alert {\n color: $color-default-black;\n padding: 20px;\n background-color: $color-default-white;\n font-size: 24px;\n font-weight: 600;\n margin-bottom: 20px;\n text-align: center;\n border-radius: 20px;\n}\n\n.alert__button-close {\n position: absolute;\n top: 30px;\n right: 30px;\n\n width: 22px;\n height: 22px;\n padding: 0;\n\n background-color: transparent;\n border: none;\n cursor: pointer;\n\n @include vp-767 {\n top: 18px;\n right: 23px;\n\n width: 12px;\n height: 12px;\n }\n}\n\n.alert__icon {\n @include vp-767 {\n width: 12px;\n height: 12px;\n }\n}\n"]}
\ No newline at end of file
diff --git a/build/fonts/montserrat-bold.woff b/build/fonts/montserrat-bold.woff
new file mode 100644
index 000000000..2883cbf14
Binary files /dev/null and b/build/fonts/montserrat-bold.woff differ
diff --git a/build/fonts/montserrat-bold.woff2 b/build/fonts/montserrat-bold.woff2
new file mode 100644
index 000000000..53ce9dbef
Binary files /dev/null and b/build/fonts/montserrat-bold.woff2 differ
diff --git a/build/fonts/montserrat-medium.woff b/build/fonts/montserrat-medium.woff
new file mode 100644
index 000000000..9e15b389e
Binary files /dev/null and b/build/fonts/montserrat-medium.woff differ
diff --git a/build/fonts/montserrat-medium.woff2 b/build/fonts/montserrat-medium.woff2
new file mode 100644
index 000000000..b0efef2b2
Binary files /dev/null and b/build/fonts/montserrat-medium.woff2 differ
diff --git a/build/fonts/montserrat-regular.woff b/build/fonts/montserrat-regular.woff
new file mode 100644
index 000000000..2e90375ee
Binary files /dev/null and b/build/fonts/montserrat-regular.woff differ
diff --git a/build/fonts/montserrat-regular.woff2 b/build/fonts/montserrat-regular.woff2
new file mode 100644
index 000000000..71b9f4173
Binary files /dev/null and b/build/fonts/montserrat-regular.woff2 differ
diff --git a/build/fonts/rouble.woff b/build/fonts/rouble.woff
new file mode 100644
index 000000000..b26ce1d07
Binary files /dev/null and b/build/fonts/rouble.woff differ
diff --git a/build/fonts/rouble.woff2 b/build/fonts/rouble.woff2
new file mode 100644
index 000000000..31dec8021
Binary files /dev/null and b/build/fonts/rouble.woff2 differ
diff --git a/build/img/phone.png b/build/img/phone.png
new file mode 100644
index 000000000..6927d216a
Binary files /dev/null and b/build/img/phone.png differ
diff --git a/build/img/phone@2x.png b/build/img/phone@2x.png
new file mode 100644
index 000000000..8e516739f
Binary files /dev/null and b/build/img/phone@2x.png differ
diff --git a/build/img/sprite.svg b/build/img/sprite.svg
new file mode 100644
index 000000000..6585ff9f6
--- /dev/null
+++ b/build/img/sprite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/build/img/sprite/icon-close.svg b/build/img/sprite/icon-close.svg
new file mode 100644
index 000000000..decaf3170
--- /dev/null
+++ b/build/img/sprite/icon-close.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/build/img/svg/cross.svg b/build/img/svg/cross.svg
new file mode 100644
index 000000000..f42c838c6
--- /dev/null
+++ b/build/img/svg/cross.svg
@@ -0,0 +1,3 @@
+
diff --git a/build/img/svg/not-needed-in-sprite.svg b/build/img/svg/not-needed-in-sprite.svg
new file mode 100644
index 000000000..978c3eb92
--- /dev/null
+++ b/build/img/svg/not-needed-in-sprite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/build/img/svg/telegram.svg b/build/img/svg/telegram.svg
new file mode 100644
index 000000000..13e40cd4b
--- /dev/null
+++ b/build/img/svg/telegram.svg
@@ -0,0 +1,3 @@
+
diff --git a/build/img/svg/tick.svg b/build/img/svg/tick.svg
new file mode 100644
index 000000000..7165dc6bf
--- /dev/null
+++ b/build/img/svg/tick.svg
@@ -0,0 +1,21 @@
+
+
diff --git a/build/img/tick.svg b/build/img/tick.svg
new file mode 100644
index 000000000..cbfd334ad
--- /dev/null
+++ b/build/img/tick.svg
@@ -0,0 +1,22 @@
+
+
+
diff --git a/build/index.html b/build/index.html
new file mode 100644
index 000000000..670cf8c34
--- /dev/null
+++ b/build/index.html
@@ -0,0 +1,145 @@
+
+
+
+
+ Botozz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Спасибо! Мы свяжемся с Вами в течение 30 минут.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/js/main.min.js b/build/js/main.min.js
new file mode 100644
index 000000000..954aa1565
--- /dev/null
+++ b/build/js/main.min.js
@@ -0,0 +1,1232 @@
+(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i [data-select].is-open ✅
+
+// выносим все в дата атрибуты
+// url до иконок пинов карты, настройки автопрокрутки слайдера, url к json и т.д.
+
+// для адаптивного JS используется matchMedia и addListener
+// const breakpoint = window.matchMedia(`(min-width:1024px)`);
+// const breakpointChecker = () => {
+// if (breakpoint.matches) {
+// } else {
+// }
+// };
+// breakpoint.addListener(breakpointChecker);
+// breakpointChecker();
+
+// используйте .closest(el)
+
+},{"./modules/form-validate/form":3,"./modules/modals/init-modals":9,"./utils/ios-vh-fix":13,"./utils/mobile-vh-fix.js":14}],2:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.callbacks = void 0;
+var baseSuccessCallback = function baseSuccessCallback(event) {
+ event.preventDefault();
+ // В данном колбеке бэкендер, либо разработчик при необходимости будет писать запрос на отправку формы на сервер и обрабатывать возможные ошибки или успешную отправку формы на сервер
+};
+var baseErrorCallback = function baseErrorCallback(event) {
+ event.preventDefault();
+ // Данный коллбек используется при необходимости выполнить какое-либо действие помимо показа ошибок при попытке отправить неккорректные данные, он не связан с запросами на сервер
+};
+var callbacks = exports.callbacks = {
+ base: {
+ // Сбросс формы
+ reset: true,
+ // Таймаут сброса формы
+ resetTimeout: 500,
+ successCallback: baseSuccessCallback,
+ errorCallback: baseErrorCallback
+ }
+};
+
+},{}],3:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Form = void 0;
+var _validator = require("./validator");
+var _callback = require("./callback");
+var _initPhoneInput = require("./init-phone-input");
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+var Form = exports.Form = /*#__PURE__*/function () {
+ function Form() {
+ _classCallCheck(this, Form);
+ this._validator = new _validator.Validator();
+ this._initPhoneInput = _initPhoneInput.initPhoneInput;
+ this._callbacks = _callback.callbacks;
+ }
+ return _createClass(Form, [{
+ key: "_resetSelect",
+ value: function _resetSelect(select) {
+ var nativeSelect = select.querySelector('select');
+ var activeIndex = nativeSelect.options.selectedIndex;
+ var selectedOption = nativeSelect.options[activeIndex];
+ var buttonText = select.querySelector('.custom-select__text');
+ var selectItems = select.querySelectorAll('.custom-select__item');
+ buttonText.textContent = selectedOption.textContent;
+ selectItems.forEach(function (item, index) {
+ if (index === activeIndex - 1) {
+ item.setAttribute('aria-selected', 'true');
+ return;
+ }
+ item.setAttribute('aria-selected', 'false');
+ });
+ if (!nativeSelect.value) {
+ select.classList.remove('not-empty');
+ select.classList.remove('is-valid');
+ }
+ }
+ }, {
+ key: "_resetSelects",
+ value: function _resetSelects(form) {
+ var _this = this;
+ var selects = form.querySelectorAll('[data-select]');
+ selects.forEach(function (select) {
+ _this._resetSelect(select);
+ });
+ }
+ }, {
+ key: "reset",
+ value: function reset(form) {
+ var _this2 = this;
+ form.reset();
+ form.querySelectorAll('.is-invalid').forEach(function (item) {
+ return item.classList.remove('is-invalid');
+ });
+ form.querySelectorAll('.is-valid').forEach(function (item) {
+ return item.classList.remove('is-valid');
+ });
+ form.querySelectorAll('.input-message').forEach(function (item) {
+ return item.remove();
+ });
+ setTimeout(function () {
+ _this2._resetSelects(form);
+ });
+ }
+ }, {
+ key: "initPhoneInput",
+ value: function initPhoneInput(parent) {
+ this._initPhoneInput(parent);
+ }
+ }, {
+ key: "validateForm",
+ value: function validateForm(form) {
+ return this._validator.validateForm(form);
+ }
+ }, {
+ key: "validateFormElement",
+ value: function validateFormElement(item) {
+ return this._validator.validateFormElement(item);
+ }
+ }, {
+ key: "_onFormSubmit",
+ value: function _onFormSubmit(event) {
+ var _this3 = this;
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+ if (this.validateForm(event.target) && callback) {
+ this._callbacks[callback].successCallback(event);
+ if (this._callbacks[callback].reset) {
+ setTimeout(function () {
+ _this3.reset(event.target);
+ }, this._callbacks[callback].resetTimeout ? this._callbacks[callback].resetTimeout : 500);
+ }
+ return;
+ }
+ if (!this.validateForm(event.target) && callback) {
+ this._callbacks[callback].errorCallback(event);
+ return;
+ }
+ }
+ }, {
+ key: "_onFormInput",
+ value: function _onFormInput(item) {
+ this.validateFormElement(item);
+ }
+ }, {
+ key: "_initValidate",
+ value: function _initValidate(parent) {
+ var _this4 = this;
+ var form = parent.querySelector('form');
+ if (!form) {
+ return;
+ }
+ var phoneParents = form.querySelectorAll('[data-validate-type="phone"]');
+ phoneParents.forEach(function (item) {
+ return _this4._initPhoneInput(item);
+ });
+ var callback = parent.dataset.callback;
+ form.noValidate = true;
+ form.addEventListener('submit', function (event) {
+ event.preventDefault();
+ _this4._onFormSubmit(event, callback);
+ });
+ form.addEventListener('input', function (event) {
+ _this4._onFormInput(event.target);
+ });
+ form.addEventListener('reset', function (event) {
+ _this4.reset(event.target);
+ });
+ }
+ }, {
+ key: "init",
+ value: function init() {
+ var _this5 = this;
+ this._validateParent = document.querySelectorAll('[data-form-validate]');
+ if (!this._validateParent.length) {
+ return;
+ }
+ this._validateParent.forEach(function (parent) {
+ return _this5._initValidate(parent);
+ });
+ }
+ }]);
+}();
+
+},{"./callback":2,"./init-phone-input":4,"./validator":8}],4:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.initPhoneInput = void 0;
+var baseCountryCode = '+7';
+var baseMatrix = ' (___) ___ __ __';
+var phoneLength = baseCountryCode.length + baseMatrix.length;
+var onPhoneInputInput = function onPhoneInputInput(e) {
+ var matrix = "".concat(baseCountryCode).concat(baseMatrix);
+ var def = matrix.replace(/\D/g, '');
+ var i = 0;
+ var val = e.target.value.replace(/\D/g, '');
+ if (def.length >= val.length) {
+ val = def;
+ }
+ e.target.value = matrix.replace(/./g, function (a) {
+ if (/[_\d]/.test(a) && i < val.length) {
+ return val.charAt(i++);
+ } else if (i >= val.length) {
+ return '';
+ } else {
+ return a;
+ }
+ });
+};
+var onPhoneInputFocus = function onPhoneInputFocus(_ref) {
+ var target = _ref.target;
+ if (!target.value) {
+ target.value = baseCountryCode;
+ }
+ target.addEventListener('input', onPhoneInputInput);
+ target.addEventListener('blur', onPhoneInputBlur);
+ target.addEventListener('keydown', onPhoneInputKeydown);
+ target.addEventListener('paste', onPhoneInputPaste);
+ target.addEventListener('click', onPhoneInputClick);
+};
+var onPhoneInputClick = function onPhoneInputClick(e) {
+ if (e.target.selectionStart < 4) {
+ e.preventDefault();
+ e.target.setSelectionRange(3, 3);
+ }
+};
+var onPhoneInputPaste = function onPhoneInputPaste(e) {
+ e.target.setSelectionRange(0, 0);
+ if (!e.target.selectionStart) {
+ setTimeout(function () {
+ if (e.target.value.startsWith('+7')) {
+ return;
+ }
+ if (e.target.value.startsWith('+8')) {
+ e.target.value = "+7 ".concat(e.target.value.slice(3));
+ return;
+ }
+ e.target.value = '';
+ });
+ }
+};
+var onPhoneInputKeydown = function onPhoneInputKeydown(e) {
+ if (e.target.selectionStart < 4 && (e.keyCode === 37 || e.keyCode === 13)) {
+ e.preventDefault();
+ e.target.setSelectionRange(3, 3);
+ }
+};
+var onPhoneInputBlur = function onPhoneInputBlur(_ref2) {
+ var target = _ref2.target;
+ if (target.value === baseCountryCode) {
+ var parent = target.closest('[data-validate-type="phone"]');
+ target.value = '';
+ if (!parent.hasAttribute('data-required')) {
+ parent.classList.remove('is-valid');
+ parent.classList.remove('is-invalid');
+ var parentMessage = parent.querySelector('.input-message');
+ if (parentMessage) {
+ parentMessage.remove();
+ }
+ }
+ parent.classList.remove('not-empty');
+ target.removeEventListener('input', onPhoneInputInput);
+ target.removeEventListener('blur', onPhoneInputBlur);
+ target.removeEventListener('keydown', onPhoneInputKeydown);
+ target.removeEventListener('paste', onPhoneInputPaste);
+ target.removeEventListener('click', onPhoneInputClick);
+ }
+};
+var initPhoneInput = exports.initPhoneInput = function initPhoneInput(parent) {
+ var input = parent.querySelector('input');
+ parent.dataset.phoneLength = phoneLength;
+ input.addEventListener('focus', onPhoneInputFocus);
+};
+
+},{}],5:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.matrixReplace = void 0;
+var matrixReplace = exports.matrixReplace = function matrixReplace(item, matrix, RegEx) {
+ if (!matrix) {
+ // eslint-disable-next-line no-console
+ console.error('При валидации по матрице обязательно указывать формат матрицы: data-matrix=""');
+ item.value = '';
+ return;
+ }
+ if (!RegEx) {
+ // eslint-disable-next-line no-console
+ console.error('При валидации по матрице обязательно указывать формат ограничений: data-matrix-limitations=""');
+ item.value = '';
+ return;
+ }
+ var def = matrix.replace(RegEx, '');
+ var val = item.value.replace(RegEx, '');
+ var i = 0;
+ if (def.length >= val.length) {
+ val = def;
+ }
+ item.value = matrix.replace(/./g, function (a) {
+ if (/[_\^]/.test(a) && i < val.length) {
+ return val.charAt(i++);
+ } else if (i >= val.length) {
+ return '';
+ } else {
+ return a;
+ }
+ });
+};
+
+},{}],6:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.getMatrixLimitationsRegEx = exports.getMailRegEx = exports.getLimitationsRegEx = void 0;
+var setLimitationError = function setLimitationError(limitation) {
+ // eslint-disable-next-line no-console
+ console.error("\u041F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F(data-limitation=\"".concat(limitation, "\") - \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E\u0441\u0442\u044C \u0432\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439."));
+};
+var getLimitationsRegEx = exports.getLimitationsRegEx = function getLimitationsRegEx(limitation) {
+ switch (limitation) {
+ case 'digit':
+ return /[^\d]/g;
+ case 'name':
+ return /[^a-zA-Zа-яёА-ЯЁ\-\s]/g;
+ case 'letters':
+ return /[^a-zA-Zа-яёА-ЯЁ\s]/g;
+ case 'letters-and-digit':
+ return /[^a-zA-Zа-яёА-ЯЁ\s\d]/g;
+ case 'cyrillic':
+ return /[^а-яёА-ЯЁ\s]/g;
+ case 'latin':
+ return /[^a-zA-Z\s]/g;
+ default:
+ return setLimitationError(limitation);
+ }
+};
+var getMatrixLimitationsRegEx = exports.getMatrixLimitationsRegEx = function getMatrixLimitationsRegEx(matrix) {
+ switch (matrix) {
+ case 'digit':
+ return /[^\d]/g;
+ case 'name':
+ return /[^\а-яё\А-ЯЁ\a-z\A-Z\-]]/g;
+ case 'letters':
+ return /[^\а-яё\А-ЯЁ\a-z\A-Z]/g;
+ case 'letters-and-digit':
+ return /[^\а-яё\А-ЯЁ\a-z\A-Z\d]/g;
+ case 'cyrillic':
+ return /[^\а-яё\А-ЯЁ]/g;
+ case 'latin':
+ return /[^\a-z\A-Z]/g;
+ default:
+ return false;
+ }
+};
+var getMailRegEx = exports.getMailRegEx = function getMailRegEx() {
+ return /[a-zA-Zа-яёА-ЯЁ0-9]{1}([a-zA-Zа-яёА-ЯЁ0-9\-_\.]{1,})?@[a-zA-Zа-яёА-ЯЁ0-9\-]{1}([a-zA-Zа-яёА-ЯЁ0-9.\-]{1,})?[a-zA-Zа-яёА-ЯЁ0-9\-]{1}\.[a-zA-Zа-яёА-ЯЁ]{2,6}/;
+};
+
+},{}],7:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Message = void 0;
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+var Message = exports.Message = /*#__PURE__*/function () {
+ function Message() {
+ _classCallCheck(this, Message);
+ this._baseErrorText = 'Это поле является обязательным';
+ }
+ return _createClass(Message, [{
+ key: "_messageTemplate",
+ value: function _messageTemplate(message, state) {
+ var cssClass = state === 'valid' ? 'is-valid' : 'is-invalid';
+ return "").concat(message, "");
+ }
+ }, {
+ key: "removeMessage",
+ value: function removeMessage(parent) {
+ var parentMessage = parent.querySelector('.input-message');
+ if (parentMessage) {
+ parentMessage.remove();
+ }
+ }
+ }, {
+ key: "renderMessage",
+ value: function renderMessage(parent, message, state) {
+ this.removeMessage(parent);
+ parent.insertAdjacentHTML('beforeend', this._messageTemplate(message, state));
+ }
+ }]);
+}();
+
+},{}],8:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Validator = void 0;
+var _regularExpression = require("./regular-expression");
+var _matrix = require("./matrix");
+var _renderMessage2 = require("./render-message");
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+var Validator = exports.Validator = /*#__PURE__*/function () {
+ function Validator() {
+ _classCallCheck(this, Validator);
+ this._getLimitationsRegEx = _regularExpression.getLimitationsRegEx;
+ this._getMatrixLimitationsRegEx = _regularExpression.getMatrixLimitationsRegEx;
+ this._getMailRegEx = _regularExpression.getMailRegEx;
+ this._matrixReplace = _matrix.matrixReplace;
+ this._message = new _renderMessage2.Message();
+ }
+ return _createClass(Validator, [{
+ key: "_renderMessage",
+ value: function _renderMessage(trigger, parent, input) {
+ if (!parent.hasAttribute('data-required') && !input.value) {
+ return;
+ }
+ if (!trigger) {
+ parent.classList.add('is-invalid');
+ if (parent.hasAttribute('data-message-base') && !input.value) {
+ this._message.renderMessage(parent, parent.dataset.messageBase, 'invalid');
+ } else if (parent.hasAttribute('data-message-extra') && input.value) {
+ this._message.renderMessage(parent, parent.dataset.messageExtra, 'invalid');
+ } else if (!parent.hasAttribute('data-message-extra') && parent.hasAttribute('data-message-base') && input.value) {
+ this._message.renderMessage(parent, parent.dataset.messageBase, 'invalid');
+ } else {
+ this._message.removeMessage(parent);
+ }
+ } else {
+ if (parent.hasAttribute('data-message-success')) {
+ this._message.renderMessage(parent, parent.dataset.messageSuccess, 'valid');
+ } else {
+ this._message.removeMessage(parent);
+ }
+ }
+ }
+ }, {
+ key: "_setItemValidState",
+ value: function _setItemValidState(parent, input) {
+ if (!parent.hasAttribute('data-required') && !input.value) {
+ return;
+ }
+ parent.classList.add('is-valid');
+ parent.classList.remove('is-invalid');
+ input.setAttribute('aria-invalid', 'false');
+ this._message.removeMessage(parent);
+ }
+ }, {
+ key: "_setItemInvalidState",
+ value: function _setItemInvalidState(parent, input) {
+ if (!parent.hasAttribute('data-required') && !input.value) {
+ return;
+ }
+ parent.classList.remove('is-valid');
+ input.setAttribute('aria-invalid', 'true');
+ }
+ }, {
+ key: "_simpleLimitation",
+ value: function _simpleLimitation(item, limitation) {
+ item.value = item.value.replace(this._getLimitationsRegEx(limitation), '');
+ }
+ }, {
+ key: "_matrixLimitation",
+ value: function _matrixLimitation(item, matrix, limitation) {
+ this._matrixReplace(item, matrix, limitation);
+ }
+ }, {
+ key: "_validateTextInput",
+ value: function _validateTextInput(parent, input) {
+ var flag = true;
+ if (input.value.length >= (+input.getAttribute('minlength') || 1)) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_validateMatrixInput",
+ value: function _validateMatrixInput(parent, input) {
+ var flag = true;
+ if (input.value.length === input.closest('[data-matrix]').dataset.matrix.length) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_validateEmailInput",
+ value: function _validateEmailInput(parent, input) {
+ var flag = true;
+ if (new RegExp(this._getMailRegEx(), '').test(input.value)) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_validatePhoneInput",
+ value: function _validatePhoneInput(parent, input) {
+ var flag = true;
+ if (input.value.length >= +parent.dataset.phoneLength) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_validateCheckbox",
+ value: function _validateCheckbox(parent, input) {
+ var flag = true;
+ if (input.checked) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_findSelectedOption",
+ value: function _findSelectedOption(options) {
+ var flag = false;
+ options.forEach(function (option) {
+ if (option.value && option.selected) {
+ flag = true;
+ }
+ });
+ return flag;
+ }
+ }, {
+ key: "_validateSelect",
+ value: function _validateSelect(parent, input) {
+ var options = input.querySelectorAll('option');
+ var customSelectText = parent.querySelector('.custom-select__text');
+ input.setAttribute('aria-invalid', 'false');
+ var flag = true;
+ if (this._findSelectedOption(options)) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ parent.classList.remove('not-empty');
+ customSelectText.innerHTML = '';
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_returnCheckedElements",
+ value: function _returnCheckedElements(inputs) {
+ var flag = false;
+ inputs.forEach(function (input) {
+ if (input.checked) {
+ flag = true;
+ }
+ });
+ return flag;
+ }
+ }, {
+ key: "_removeGroupAria",
+ value: function _removeGroupAria(inputs) {
+ inputs.forEach(function (input) {
+ if (!input.checked) {
+ input.removeAttribute('aria-required');
+ input.removeAttribute('aria-invalid');
+ } else {
+ input.setAttribute('aria-required', true);
+ input.setAttribute('aria-invalid', false);
+ }
+ });
+ }
+ }, {
+ key: "_setGroupAria",
+ value: function _setGroupAria(inputs) {
+ inputs.forEach(function (input) {
+ input.setAttribute('aria-required', true);
+ input.setAttribute('aria-invalid', true);
+ });
+ }
+ }, {
+ key: "_validateToggleGroup",
+ value: function _validateToggleGroup(parent) {
+ var formElements = parent.querySelectorAll('input');
+ var flag = true;
+ if (this._returnCheckedElements(formElements)) {
+ this._removeGroupAria(formElements);
+ parent.classList.remove('is-invalid');
+ parent.classList.add('is-valid');
+ this._message.removeMessage(parent);
+ } else {
+ this._setGroupAria(formElements);
+ parent.classList.remove('is-valid');
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_customExample",
+ value: function _customExample(parent, input) {
+ var flag = true;
+ if (!input.value.length) {
+ parent.dataset.messageBase = 'Поле обязательно к заполнению';
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ } else if (input.value.length < input.minLength) {
+ parent.dataset.messageBase = "\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C \u0432\u0432\u0435\u0441\u0442\u0438 \u0435\u0449\u0451 ".concat(input.minLength - input.value.length, " \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432");
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ } else if (input.value.length > input.minLength) {
+ parent.dataset.messageBase = "\u0412\u044B \u0432\u0432\u0435\u043B\u0438 ".concat(input.value.length - input.minLength, " \u043B\u0438\u0448\u043D\u0438\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432");
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ } else {
+ parent.dataset.messageSuccess = 'Поле заполнено корректно';
+ this._setItemValidState(parent, input);
+ flag = true;
+ }
+ return flag;
+ }
+ }, {
+ key: "_validateFile",
+ value: function _validateFile(parent, input) {
+ var flag = true;
+ var sizeTest = parent.dataset.maxSize && input.files[0] ? input.files[0].size < +parent.dataset.maxSize : true;
+ if (input.value && sizeTest) {
+ this._setItemValidState(parent, input);
+ } else {
+ this._setItemInvalidState(parent, input);
+ flag = false;
+ }
+ return flag;
+ }
+ }, {
+ key: "_validateInput",
+ value: function _validateInput(type, parent, input) {
+ switch (type) {
+ case 'text':
+ return this._validateTextInput(parent, input);
+ case 'matrix':
+ return this._validateMatrixInput(parent, input);
+ case 'email':
+ return this._validateEmailInput(parent, input);
+ case 'phone':
+ return this._validatePhoneInput(parent, input);
+ case 'checkbox':
+ return this._validateCheckbox(parent, input);
+ case 'select':
+ return this._validateSelect(parent, input);
+ case 'toggle-group':
+ return this._validateToggleGroup(parent, input);
+ case 'file':
+ return this._validateFile(parent, input);
+ case 'custom-example':
+ return this._customExample(parent, input);
+ default:
+ return false;
+ }
+ }
+ }, {
+ key: "validateFormElement",
+ value: function validateFormElement(formElement) {
+ var fullValidate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var parent = formElement.closest('[data-validate-type]');
+ if (!parent) {
+ return;
+ }
+ if (!parent.hasAttribute('data-required')) {
+ var removeElement = parent.querySelector('input') || parent.querySelector('select') || parent.querySelector('textarea');
+ if (!removeElement.value) {
+ parent.classList.remove('is-valid');
+ parent.classList.remove('is-invalid');
+ }
+ }
+ var onInputValidate = parent.hasAttribute('data-on-input-validate');
+ if (parent.hasAttribute('data-limitation')) {
+ this._simpleLimitation(formElement, parent.dataset.limitation);
+ }
+ if (parent.dataset.validateType === 'matrix') {
+ this._matrixLimitation(formElement, parent.dataset.matrix, this._getMatrixLimitationsRegEx(parent.dataset.matrixLimitation));
+ }
+ var isValid = this._validateInput(parent.dataset.validateType, parent, formElement);
+ if (onInputValidate || fullValidate) {
+ this._renderMessage(isValid, parent, formElement);
+ }
+ }
+ }, {
+ key: "_fullValidate",
+ value: function _fullValidate(items) {
+ var _this = this;
+ var result = true;
+ items.forEach(function (item) {
+ var formElement = item.querySelector('input') || item.querySelector('select') || item.querySelector('textarea');
+ _this.validateFormElement(formElement, true);
+ if (item.classList.contains('is-invalid')) {
+ result = false;
+ }
+ });
+ return result;
+ }
+ }, {
+ key: "validateForm",
+ value: function validateForm(form) {
+ var validateItems = form.querySelectorAll('[data-validate-type]');
+ var result = this._fullValidate(validateItems);
+ return result;
+ }
+ }]);
+}();
+
+},{"./matrix":5,"./regular-expression":6,"./render-message":7}],9:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.modals = exports.initModals = void 0;
+var _modals = require("./modals");
+var modals;
+
+// Здесь реализован пример открытия модалки через колбэк закрытия
+// const openModalInCloseCallback = (name, context = this) => {
+// context._enableScrolling = false;
+// context._setSettings('default');
+// modals.open(name);
+// };
+
+// closeCallback() {
+// openModalInCloseCallback('modal-5');
+// },
+
+var settings = {
+ 'default': {
+ preventDefault: true,
+ stopPlay: true,
+ lockFocus: true,
+ startFocus: true,
+ focusBack: true,
+ eventTimeout: 400,
+ openCallback: false,
+ closeCallback: false
+ }
+};
+var initModals = exports.initModals = function initModals() {
+ var modalElements = document.querySelectorAll('.modal');
+ modalElements.forEach(function (el) {
+ setTimeout(function () {
+ el.classList.remove('modal--preload');
+ }, 100);
+ });
+ exports.modals = modals = new _modals.Modals(settings);
+ // Используйте в разработке экспортируемую переменную modals, window сделан для бэкэнда
+ window.modals = modals;
+};
+
+},{"./modals":10}],10:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.Modals = void 0;
+var _scrollLock = require("../../utils/scroll-lock");
+var _focusLock = require("../../utils/focus-lock");
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+var Modals = exports.Modals = /*#__PURE__*/function () {
+ function Modals() {
+ var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ _classCallCheck(this, Modals);
+ this._scrollLock = new _scrollLock.ScrollLock();
+ this._focusLock = new _focusLock.FocusLock();
+ this._modalOpenElements = document.querySelectorAll('[data-open-modal]');
+ this._openedModalElement = null;
+ this._modalName = null;
+ this._enableScrolling = true;
+ this._settingKey = 'default';
+ this._settings = settings;
+ this._preventDefault = this._settings[this._settingKey].preventDefault;
+ this._stopPlay = this._settings[this._settingKey].stopPlay;
+ this._lockFocus = this._settings[this._settingKey].lockFocus;
+ this._startFocus = this._settings[this._settingKey].startFocus;
+ this._focusBack = this._settings[this._settingKey].focusBack;
+ this._eventTimeout = this._settings[this._settingKey].eventTimeout;
+ this._openCallback = this._settings[this._settingKey].openCallback;
+ this._closeCallback = this._settings[this._settingKey].closeCallback;
+ this._documentKeydownHandler = this._documentKeydownHandler.bind(this);
+ this._documentClickHandler = this._documentClickHandler.bind(this);
+ this._modalClickHandler = this._modalClickHandler.bind(this);
+ this._init();
+ }
+ return _createClass(Modals, [{
+ key: "_init",
+ value: function _init() {
+ if (this._modalOpenElements.length) {
+ document.addEventListener('click', this._documentClickHandler);
+ }
+ }
+ }, {
+ key: "_setSettings",
+ value: function _setSettings() {
+ var settingKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._settingKey;
+ if (!this._settings[settingKey]) {
+ return;
+ }
+ this._preventDefault = typeof this._settings[settingKey].preventDefault === 'boolean' ? this._settings[settingKey].preventDefault : this._settings[this._settingKey].preventDefault;
+ this._stopPlay = typeof this._settings[settingKey].stopPlay === 'boolean' ? this._settings[settingKey].stopPlay : this._settings[this._settingKey].stopPlay;
+ this._lockFocus = typeof this._settings[settingKey].lockFocus === 'boolean' ? this._settings[settingKey].lockFocus : this._settings[this._settingKey].lockFocus;
+ this._startFocus = typeof this._settings[settingKey].startFocus === 'boolean' ? this._settings[settingKey].startFocus : this._settings[this._settingKey].startFocus;
+ this._focusBack = typeof this._settings[settingKey].lockFocus === 'boolean' ? this._settings[settingKey].focusBack : this._settings[this._settingKey].focusBack;
+ this._eventTimeout = typeof this._settings[settingKey].eventTimeout === 'number' ? this._settings[settingKey].eventTimeout : this._settings[this._settingKey].eventTimeout;
+ this._openCallback = this._settings[settingKey].openCallback || this._settings[this._settingKey].openCallback;
+ this._closeCallback = this._settings[settingKey].closeCallback || this._settings[this._settingKey].closeCallback;
+ }
+ }, {
+ key: "_documentClickHandler",
+ value: function _documentClickHandler(evt) {
+ var target = evt.target;
+ if (!target.closest('[data-open-modal]')) {
+ return;
+ }
+ evt.preventDefault();
+ this._modalName = target.closest('[data-open-modal]').dataset.openModal;
+ if (!this._modalName) {
+ return;
+ }
+ this.open();
+ }
+ }, {
+ key: "_documentKeydownHandler",
+ value: function _documentKeydownHandler(evt) {
+ var isEscKey = evt.key === 'Escape' || evt.key === 'Esc';
+ if (isEscKey) {
+ evt.preventDefault();
+ this.close(document.querySelector('.modal.is-active').dataset.modal);
+ }
+ }
+ }, {
+ key: "_modalClickHandler",
+ value: function _modalClickHandler(evt) {
+ var target = evt.target;
+ if (!target.closest('[data-close-modal]')) {
+ return;
+ }
+ this.close(target.closest('[data-modal]').dataset.modal);
+ }
+ }, {
+ key: "_addListeners",
+ value: function _addListeners(modal) {
+ modal.addEventListener('click', this._modalClickHandler);
+ document.addEventListener('keydown', this._documentKeydownHandler);
+ }
+ }, {
+ key: "_removeListeners",
+ value: function _removeListeners(modal) {
+ modal.removeEventListener('click', this._modalClickHandler);
+ document.removeEventListener('keydown', this._documentKeydownHandler);
+ }
+ }, {
+ key: "_stopInteractive",
+ value: function _stopInteractive(modal) {
+ if (this._stopPlay) {
+ modal.querySelectorAll('video, audio').forEach(function (el) {
+ return el.pause();
+ });
+ modal.querySelectorAll('[data-iframe]').forEach(function (el) {
+ el.querySelector('iframe').contentWindow.postMessage('{"event": "command", "func": "pauseVideo", "args": ""}', '*');
+ });
+ }
+ }
+ }, {
+ key: "_autoPlay",
+ value: function _autoPlay(modal) {
+ modal.querySelectorAll('[data-iframe]').forEach(function (el) {
+ var autoPlay = el.closest('[data-auto-play]');
+ if (autoPlay) {
+ el.querySelector('iframe').contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
+ }
+ });
+ }
+ }, {
+ key: "open",
+ value: function open() {
+ var _this = this;
+ var modalName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._modalName;
+ var modal = document.querySelector("[data-modal=\"".concat(modalName, "\"]"));
+ if (!modal || modal.classList.contains('is-active')) {
+ return;
+ }
+ document.removeEventListener('click', this._documentClickHandler);
+ this._openedModalElement = document.querySelector('.modal.is-active');
+ if (this._openedModalElement) {
+ this._enableScrolling = false;
+ this.close(this._openedModalElement.dataset.modal);
+ }
+ this._setSettings(modalName);
+ modal.classList.add('is-active');
+ if (!this._openedModalElement) {
+ this._scrollLock.disableScrolling();
+ }
+ if (this._openCallback) {
+ this._openCallback();
+ }
+ if (this._lockFocus) {
+ this._focusLock.lock('.modal.is-active', this._startFocus);
+ }
+ setTimeout(function () {
+ _this._addListeners(modal);
+ _this._autoPlay(modal);
+ document.addEventListener('click', _this._documentClickHandler);
+ }, this._eventTimeout);
+ }
+ }, {
+ key: "close",
+ value: function close() {
+ var _this2 = this;
+ var modalName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._modalName;
+ var modal = document.querySelector("[data-modal=\"".concat(modalName, "\"]"));
+ document.removeEventListener('click', this._documentClickHandler);
+ if (!modal || !modal.classList.contains('is-active')) {
+ return;
+ }
+ if (this._lockFocus) {
+ this._focusLock.unlock(this._focusBack);
+ }
+ modal.classList.remove('is-active');
+ this._removeListeners(modal);
+ this._stopInteractive(modal);
+ if (this._closeCallback) {
+ this._closeCallback();
+ }
+ if (this._enableScrolling) {
+ setTimeout(function () {
+ _this2._scrollLock.enableScrolling();
+ }, this._eventTimeout);
+ }
+ setTimeout(function () {
+ document.addEventListener('click', _this2._documentClickHandler);
+ }, this._eventTimeout);
+ this._setSettings('default');
+ this._enableScrolling = true;
+ }
+ }]);
+}();
+
+},{"../../utils/focus-lock":11,"../../utils/scroll-lock":15}],11:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.FocusLock = void 0;
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+var SELECTORS = ['a[href]', 'area[href]', 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^="-"])'];
+var FocusLock = exports.FocusLock = /*#__PURE__*/function () {
+ function FocusLock() {
+ _classCallCheck(this, FocusLock);
+ this._lockedSelector = null;
+ this._focusableElements = null;
+ this._endElement = null;
+ this._selectors = SELECTORS;
+ this._documentKeydownHandler = this._documentKeydownHandler.bind(this);
+ }
+ return _createClass(FocusLock, [{
+ key: "_documentKeydownHandler",
+ value: function _documentKeydownHandler(evt) {
+ var activeElement = document.activeElement;
+ if (evt.key === 'Tab') {
+ if (!this._focusableElements.length) {
+ evt.preventDefault();
+ activeElement.blur();
+ return;
+ }
+ if (this._focusableElements.length === 1) {
+ evt.preventDefault();
+ this._focusableElements[0].focus();
+ return;
+ }
+ if (this._focusableElements.length > 1 && !activeElement.closest(this._lockedSelector)) {
+ evt.preventDefault();
+ this._focusableElements[0].focus();
+ return;
+ }
+ }
+ if (evt.key === 'Tab' && !evt.shiftKey && activeElement === this._focusableElements[this._focusableElements.length - 1]) {
+ evt.preventDefault();
+ this._focusableElements[0].focus();
+ }
+ if (evt.key === 'Tab' && evt.shiftKey && activeElement === this._focusableElements[0]) {
+ evt.preventDefault();
+ this._focusableElements[this._focusableElements.length - 1].focus();
+ }
+ }
+ }, {
+ key: "lock",
+ value: function lock(lockedSelector) {
+ var startFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+ this.unlock();
+ this._lockedSelector = lockedSelector;
+ var lockedElement = document.querySelector(this._lockedSelector);
+ if (!lockedElement) {
+ return;
+ }
+ this._focusableElements = lockedElement.querySelectorAll(this._selectors);
+ this._endElement = document.activeElement;
+ var startElement = lockedElement.querySelector('[data-focus]') || this._focusableElements[0];
+ if (this._endElement) {
+ this._endElement.blur();
+ }
+ if (startElement && startFocus) {
+ startElement.focus();
+ }
+ document.addEventListener('keydown', this._documentKeydownHandler);
+ }
+ }, {
+ key: "unlock",
+ value: function unlock() {
+ var returnFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+ if (this._endElement && returnFocus) {
+ this._endElement.focus();
+ }
+ this._lockedSelector = null;
+ this._focusableElements = null;
+ this._endElement = null;
+ document.removeEventListener('keydown', this._documentKeydownHandler);
+ }
+ }]);
+}();
+window.focusLock = new FocusLock();
+
+},{}],12:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.iosChecker = void 0;
+var iosChecker = exports.iosChecker = function iosChecker() {
+ return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform)
+ // iPad on iOS 13 detection
+ || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
+};
+
+},{}],13:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.iosVhFix = void 0;
+var _iosChecker = require("./ios-checker");
+var iosVhFix = exports.iosVhFix = function iosVhFix() {
+ if (!(!!window.MSInputMethodContext && !!document.documentMode)) {
+ if ((0, _iosChecker.iosChecker)()) {
+ var vh = window.innerHeight * 0.01;
+ document.documentElement.style.setProperty('--vh', "".concat(vh, "px"));
+ window.addEventListener('resize', function () {
+ vh = window.innerHeight * 0.01;
+ document.documentElement.style.setProperty('--vh', "".concat(vh, "px"));
+ });
+ }
+ }
+};
+
+},{"./ios-checker":12}],14:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.mobileVhFix = void 0;
+var _iosChecker = require("./ios-checker");
+var mobileVhFix = exports.mobileVhFix = function mobileVhFix() {
+ var isMobile = /Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
+ var isIE = !!window.MSInputMethodContext && !!document.documentMode;
+ if (!isIE && (isMobile || (0, _iosChecker.iosChecker)())) {
+ var updateViewportHeight = function updateViewportHeight() {
+ var vh = window.innerHeight * 0.01;
+ document.documentElement.style.setProperty('--vh', "".concat(vh, "px"));
+ };
+ updateViewportHeight();
+ window.addEventListener('resize', updateViewportHeight);
+ }
+};
+
+},{"./ios-checker":12}],15:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.ScrollLock = void 0;
+var _iosChecker = require("./ios-checker");
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
+var ScrollLock = exports.ScrollLock = /*#__PURE__*/function () {
+ function ScrollLock() {
+ _classCallCheck(this, ScrollLock);
+ this._iosChecker = _iosChecker.iosChecker;
+ this._lockClass = this._iosChecker() ? 'scroll-lock-ios' : 'scroll-lock';
+ this._scrollTop = null;
+ this._fixedBlockElements = document.querySelectorAll('[data-fix-block]');
+ }
+ return _createClass(ScrollLock, [{
+ key: "_getScrollbarWidth",
+ value: function _getScrollbarWidth() {
+ return window.innerWidth - document.documentElement.clientWidth;
+ }
+ }, {
+ key: "_getBodyScrollTop",
+ value: function _getBodyScrollTop() {
+ return self.pageYOffset || document.documentElement && document.documentElement.ScrollTop || document.body && document.body.scrollTop;
+ }
+ }, {
+ key: "disableScrolling",
+ value: function disableScrolling() {
+ var _this = this;
+ this._scrollTop = document.body.dataset.scroll = document.body.dataset.scroll ? document.body.dataset.scroll : this._getBodyScrollTop();
+ if (this._getScrollbarWidth()) {
+ document.body.style.paddingRight = "".concat(this._getScrollbarWidth(), "px");
+ this._fixedBlockElements.forEach(function (block) {
+ block.style.paddingRight = "".concat(_this._getScrollbarWidth(), "px");
+ });
+ }
+ document.body.style.top = "-".concat(this._scrollTop, "px");
+ document.body.classList.add(this._lockClass);
+ }
+ }, {
+ key: "enableScrolling",
+ value: function enableScrolling() {
+ document.body.classList.remove(this._lockClass);
+ window.scrollTo(0, +document.body.dataset.scroll);
+ document.body.style.paddingRight = null;
+ document.body.style.top = null;
+ this._fixedBlockElements.forEach(function (block) {
+ block.style.paddingRight = null;
+ });
+ document.body.removeAttribute('data-scroll');
+ this._scrollTop = null;
+ }
+ }]);
+}();
+window.scrollLock = new ScrollLock();
+
+},{"./ios-checker":12}]},{},[1])
+
+
+//# sourceMappingURL=main.min.js.map
diff --git a/build/js/main.min.js.map b/build/js/main.min.js.map
new file mode 100644
index 000000000..b7a0fb18c
--- /dev/null
+++ b/build/js/main.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["node_modules/browser-pack/_prelude.js","source/js/main.js","source/js/modules/form-validate/callback.js","source/js/modules/form-validate/form.js","source/js/modules/form-validate/init-phone-input.js","source/js/modules/form-validate/matrix.js","source/js/modules/form-validate/regular-expression.js","source/js/modules/form-validate/render-message.js","source/js/modules/form-validate/validator.js","source/js/modules/modals/init-modals.js","source/js/modules/modals/modals.js","source/js/utils/focus-lock.js","source/js/utils/ios-checker.js","source/js/utils/ios-vh-fix.js","source/js/utils/mobile-vh-fix.js","source/js/utils/scroll-lock.js"],"names":[],"mappings":"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","file":"main.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\n\n // Utils\n // ---------------------------------\n mobileVhFix();\n\n iosVhFix();\n\n // Modules\n // ---------------------------------\n\n // все скрипты должны быть в обработчике 'DOMContentLoaded', но не все в 'load'\n // в load следует добавить скрипты, не участвующие в работе первого экрана\n window.addEventListener('load', () => {\n initModals();\n const form = new Form();\n window.form = form;\n form.init();\n });\n});\n\n// ---------------------------------\n\n// ❗❗❗ обязательно установите плагины eslint, stylelint, editorconfig в редактор кода.\n\n// привязывайте js не на классы, а на дата атрибуты (data-validate)\n\n// вместо модификаторов .block--active используем утилитарные классы\n// .is-active || .is-open || .is-invalid и прочие (обязателен нейминг в два слова)\n// .select.select--opened ❌ ---> [data-select].is-open ✅\n\n// выносим все в дата атрибуты\n// url до иконок пинов карты, настройки автопрокрутки слайдера, url к json и т.д.\n\n// для адаптивного JS используется matchMedia и addListener\n// const breakpoint = window.matchMedia(`(min-width:1024px)`);\n// const breakpointChecker = () => {\n// if (breakpoint.matches) {\n// } else {\n// }\n// };\n// breakpoint.addListener(breakpointChecker);\n// breakpointChecker();\n\n// используйте .closest(el)\n","\nconst baseSuccessCallback = (event) => {\n event.preventDefault();\n // В данном колбеке бэкендер, либо разработчик при необходимости будет писать запрос на отправку формы на сервер и обрабатывать возможные ошибки или успешную отправку формы на сервер\n};\n\nconst baseErrorCallback = (event) => {\n event.preventDefault();\n // Данный коллбек используется при необходимости выполнить какое-либо действие помимо показа ошибок при попытке отправить неккорректные данные, он не связан с запросами на сервер\n};\n\nexport const callbacks = {\n base: {\n // Сбросс формы\n reset: true,\n // Таймаут сброса формы\n resetTimeout: 500,\n successCallback: baseSuccessCallback,\n errorCallback: baseErrorCallback,\n },\n};\n","import {Validator} from './validator';\nimport {callbacks} from './callback';\nimport {initPhoneInput} from './init-phone-input';\n\nexport class Form {\n constructor() {\n this._validator = new Validator();\n this._initPhoneInput = initPhoneInput;\n this._callbacks = callbacks;\n }\n\n _resetSelect(select) {\n const nativeSelect = select.querySelector('select');\n const activeIndex = nativeSelect.options.selectedIndex;\n const selectedOption = nativeSelect.options[activeIndex];\n const buttonText = select.querySelector('.custom-select__text');\n const selectItems = select.querySelectorAll('.custom-select__item');\n buttonText.textContent = selectedOption.textContent;\n selectItems.forEach((item, index) => {\n if (index === activeIndex - 1) {\n item.setAttribute('aria-selected', 'true');\n return;\n }\n item.setAttribute('aria-selected', 'false');\n });\n if (!nativeSelect.value) {\n select.classList.remove('not-empty');\n select.classList.remove('is-valid');\n }\n }\n\n _resetSelects(form) {\n const selects = form.querySelectorAll('[data-select]');\n selects.forEach((select) => {\n this._resetSelect(select);\n });\n }\n\n reset(form) {\n form.reset();\n form.querySelectorAll('.is-invalid').forEach((item) => item.classList.remove('is-invalid'));\n form.querySelectorAll('.is-valid').forEach((item) => item.classList.remove('is-valid'));\n form.querySelectorAll('.input-message').forEach((item) => item.remove());\n setTimeout(() => {\n this._resetSelects(form);\n });\n }\n\n initPhoneInput(parent) {\n this._initPhoneInput(parent);\n }\n\n validateForm(form) {\n return this._validator.validateForm(form);\n }\n\n validateFormElement(item) {\n return this._validator.validateFormElement(item);\n }\n\n _onFormSubmit(event, callback = null) {\n if (this.validateForm(event.target) && callback) {\n this._callbacks[callback].successCallback(event);\n if (this._callbacks[callback].reset) {\n setTimeout(() => {\n this.reset(event.target);\n }, this._callbacks[callback].resetTimeout ? this._callbacks[callback].resetTimeout : 500);\n }\n return;\n }\n if (!this.validateForm(event.target) && callback) {\n this._callbacks[callback].errorCallback(event);\n return;\n }\n }\n\n _onFormInput(item) {\n this.validateFormElement(item);\n }\n\n _initValidate(parent) {\n const form = parent.querySelector('form');\n if (!form) {\n return;\n }\n\n const phoneParents = form.querySelectorAll('[data-validate-type=\"phone\"]');\n phoneParents.forEach((item) => this._initPhoneInput(item));\n\n const callback = parent.dataset.callback;\n form.noValidate = true;\n\n form.addEventListener('submit', (event) => {\n event.preventDefault();\n this._onFormSubmit(event, callback);\n });\n\n form.addEventListener('input', (event) => {\n this._onFormInput(event.target);\n });\n\n form.addEventListener('reset', (event) => {\n this.reset(event.target);\n });\n }\n\n init() {\n this._validateParent = document.querySelectorAll('[data-form-validate]');\n if (!this._validateParent.length) {\n return;\n }\n this._validateParent.forEach((parent) => this._initValidate(parent));\n }\n}\n","const baseCountryCode = '+7';\nconst baseMatrix = ' (___) ___ __ __';\nconst phoneLength = baseCountryCode.length + baseMatrix.length;\n\nconst onPhoneInputInput = (e) => {\n const matrix = `${baseCountryCode}${baseMatrix}`;\n const def = matrix.replace(/\\D/g, '');\n let i = 0;\n let val = e.target.value.replace(/\\D/g, '');\n if (def.length >= val.length) {\n val = def;\n }\n e.target.value = matrix.replace(/./g, (a) => {\n if (/[_\\d]/.test(a) && i < val.length) {\n return val.charAt(i++);\n } else if (i >= val.length) {\n return '';\n } else {\n return a;\n }\n });\n};\n\nconst onPhoneInputFocus = ({target}) => {\n if (!target.value) {\n target.value = baseCountryCode;\n }\n target.addEventListener('input', onPhoneInputInput);\n target.addEventListener('blur', onPhoneInputBlur);\n target.addEventListener('keydown', onPhoneInputKeydown);\n target.addEventListener('paste', onPhoneInputPaste);\n target.addEventListener('click', onPhoneInputClick);\n};\n\nconst onPhoneInputClick = (e) => {\n if (e.target.selectionStart < 4) {\n e.preventDefault();\n e.target.setSelectionRange(3, 3);\n }\n};\n\nconst onPhoneInputPaste = (e) => {\n e.target.setSelectionRange(0, 0);\n if (!e.target.selectionStart) {\n setTimeout(() => {\n if (e.target.value.startsWith('+7')) {\n return;\n }\n if (e.target.value.startsWith('+8')) {\n e.target.value = `+7 ${e.target.value.slice(3)}`;\n return;\n }\n e.target.value = '';\n });\n }\n};\n\nconst onPhoneInputKeydown = (e) => {\n if (e.target.selectionStart < 4 && (e.keyCode === 37 || e.keyCode === 13)) {\n e.preventDefault();\n e.target.setSelectionRange(3, 3);\n }\n};\n\nconst onPhoneInputBlur = ({target}) => {\n if (target.value === baseCountryCode) {\n const parent = target.closest('[data-validate-type=\"phone\"]');\n target.value = '';\n if (!parent.hasAttribute('data-required')) {\n parent.classList.remove('is-valid');\n parent.classList.remove('is-invalid');\n const parentMessage = parent.querySelector('.input-message');\n if (parentMessage) {\n parentMessage.remove();\n }\n }\n parent.classList.remove('not-empty');\n target.removeEventListener('input', onPhoneInputInput);\n target.removeEventListener('blur', onPhoneInputBlur);\n target.removeEventListener('keydown', onPhoneInputKeydown);\n target.removeEventListener('paste', onPhoneInputPaste);\n target.removeEventListener('click', onPhoneInputClick);\n }\n};\n\nexport const initPhoneInput = (parent) => {\n const input = parent.querySelector('input');\n parent.dataset.phoneLength = phoneLength;\n input.addEventListener('focus', onPhoneInputFocus);\n};\n","export const matrixReplace = (item, matrix, RegEx) => {\n if (!matrix) {\n // eslint-disable-next-line no-console\n console.error('При валидации по матрице обязательно указывать формат матрицы: data-matrix=\"\"');\n item.value = '';\n return;\n }\n\n if (!RegEx) {\n // eslint-disable-next-line no-console\n console.error('При валидации по матрице обязательно указывать формат ограничений: data-matrix-limitations=\"\"');\n item.value = '';\n return;\n }\n\n const def = matrix.replace(RegEx, '');\n let val = item.value.replace(RegEx, '');\n let i = 0;\n\n if (def.length >= val.length) {\n val = def;\n }\n\n item.value = matrix.replace(/./g, (a) => {\n if (/[_\\^]/.test(a) && i < val.length) {\n return val.charAt(i++);\n } else if (i >= val.length) {\n return '';\n } else {\n return a;\n }\n });\n};\n","const setLimitationError = (limitation) => {\n // eslint-disable-next-line no-console\n console.error(`Переданный формат ограничения(data-limitation=\"${limitation}\") - не поддерживается. Проверьте корректность введённых значений.`);\n};\n\nexport const getLimitationsRegEx = (limitation) => {\n switch (limitation) {\n case 'digit':\n return /[^\\d]/g;\n case 'name':\n return /[^a-zA-Zа-яёА-ЯЁ\\-\\s]/g;\n case 'letters':\n return /[^a-zA-Zа-яёА-ЯЁ\\s]/g;\n case 'letters-and-digit':\n return /[^a-zA-Zа-яёА-ЯЁ\\s\\d]/g;\n case 'cyrillic':\n return /[^а-яёА-ЯЁ\\s]/g;\n case 'latin':\n return /[^a-zA-Z\\s]/g;\n default:\n return setLimitationError(limitation);\n }\n};\n\nexport const getMatrixLimitationsRegEx = (matrix) => {\n switch (matrix) {\n case 'digit':\n return /[^\\d]/g;\n case 'name':\n return /[^\\а-яё\\А-ЯЁ\\a-z\\A-Z\\-]]/g;\n case 'letters':\n return /[^\\а-яё\\А-ЯЁ\\a-z\\A-Z]/g;\n case 'letters-and-digit':\n return /[^\\а-яё\\А-ЯЁ\\a-z\\A-Z\\d]/g;\n case 'cyrillic':\n return /[^\\а-яё\\А-ЯЁ]/g;\n case 'latin':\n return /[^\\a-z\\A-Z]/g;\n default:\n return false;\n }\n};\n\nexport const getMailRegEx = () => /[a-zA-Zа-яёА-ЯЁ0-9]{1}([a-zA-Zа-яёА-ЯЁ0-9\\-_\\.]{1,})?@[a-zA-Zа-яёА-ЯЁ0-9\\-]{1}([a-zA-Zа-яёА-ЯЁ0-9.\\-]{1,})?[a-zA-Zа-яёА-ЯЁ0-9\\-]{1}\\.[a-zA-Zа-яёА-ЯЁ]{2,6}/;\n","export class Message {\n constructor() {\n this._baseErrorText = 'Это поле является обязательным';\n }\n\n _messageTemplate(message, state) {\n const cssClass = state === 'valid' ? 'is-valid' : 'is-invalid';\n return `${message}`;\n }\n\n removeMessage(parent) {\n const parentMessage = parent.querySelector('.input-message');\n if (parentMessage) {\n parentMessage.remove();\n }\n }\n\n renderMessage(parent, message, state) {\n this.removeMessage(parent);\n parent.insertAdjacentHTML('beforeend', this._messageTemplate(message, state));\n }\n}\n","import {getLimitationsRegEx, getMatrixLimitationsRegEx, getMailRegEx} from './regular-expression';\nimport {matrixReplace} from './matrix';\nimport {Message} from './render-message';\n\nexport class Validator {\n constructor() {\n this._getLimitationsRegEx = getLimitationsRegEx;\n this._getMatrixLimitationsRegEx = getMatrixLimitationsRegEx;\n this._getMailRegEx = getMailRegEx;\n this._matrixReplace = matrixReplace;\n this._message = new Message();\n }\n\n _renderMessage(trigger, parent, input) {\n if (!parent.hasAttribute('data-required') && !input.value) {\n return;\n }\n if (!trigger) {\n parent.classList.add('is-invalid');\n if (parent.hasAttribute('data-message-base') && !input.value) {\n this._message.renderMessage(parent, parent.dataset.messageBase, 'invalid');\n } else if (parent.hasAttribute('data-message-extra') && input.value) {\n this._message.renderMessage(parent, parent.dataset.messageExtra, 'invalid');\n } else if (!parent.hasAttribute('data-message-extra') && parent.hasAttribute('data-message-base') && input.value) {\n this._message.renderMessage(parent, parent.dataset.messageBase, 'invalid');\n } else {\n this._message.removeMessage(parent);\n }\n } else {\n if (parent.hasAttribute('data-message-success')) {\n this._message.renderMessage(parent, parent.dataset.messageSuccess, 'valid');\n } else {\n this._message.removeMessage(parent);\n }\n }\n }\n\n _setItemValidState(parent, input) {\n if (!parent.hasAttribute('data-required') && !input.value) {\n return;\n }\n parent.classList.add('is-valid');\n parent.classList.remove('is-invalid');\n input.setAttribute('aria-invalid', 'false');\n this._message.removeMessage(parent);\n }\n\n _setItemInvalidState(parent, input) {\n if (!parent.hasAttribute('data-required') && !input.value) {\n return;\n }\n parent.classList.remove('is-valid');\n input.setAttribute('aria-invalid', 'true');\n }\n\n _simpleLimitation(item, limitation) {\n item.value = item.value.replace(this._getLimitationsRegEx(limitation), '');\n }\n\n _matrixLimitation(item, matrix, limitation) {\n this._matrixReplace(item, matrix, limitation);\n }\n\n _validateTextInput(parent, input) {\n let flag = true;\n if (input.value.length >= (+input.getAttribute('minlength') || 1)) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n flag = false;\n }\n return flag;\n }\n\n _validateMatrixInput(parent, input) {\n let flag = true;\n if (input.value.length === input.closest('[data-matrix]').dataset.matrix.length) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n flag = false;\n }\n return flag;\n }\n\n _validateEmailInput(parent, input) {\n let flag = true;\n if (new RegExp(this._getMailRegEx(), '').test(input.value)) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n flag = false;\n }\n return flag;\n }\n\n _validatePhoneInput(parent, input) {\n let flag = true;\n if (input.value.length >= +parent.dataset.phoneLength) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n flag = false;\n }\n return flag;\n }\n\n _validateCheckbox(parent, input) {\n let flag = true;\n if (input.checked) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n flag = false;\n }\n return flag;\n }\n\n _findSelectedOption(options) {\n let flag = false;\n options.forEach((option) => {\n if (option.value && option.selected) {\n flag = true;\n }\n });\n return flag;\n }\n\n _validateSelect(parent, input) {\n const options = input.querySelectorAll('option');\n const customSelectText = parent.querySelector('.custom-select__text');\n input.setAttribute('aria-invalid', 'false');\n let flag = true;\n if (this._findSelectedOption(options)) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n parent.classList.remove('not-empty');\n customSelectText.innerHTML = '';\n flag = false;\n }\n return flag;\n }\n\n _returnCheckedElements(inputs) {\n let flag = false;\n inputs.forEach((input) => {\n if (input.checked) {\n flag = true;\n }\n });\n return flag;\n }\n\n _removeGroupAria(inputs) {\n inputs.forEach((input) => {\n if (!input.checked) {\n input.removeAttribute('aria-required');\n input.removeAttribute('aria-invalid');\n } else {\n input.setAttribute('aria-required', true);\n input.setAttribute('aria-invalid', false);\n }\n });\n }\n\n _setGroupAria(inputs) {\n inputs.forEach((input) => {\n input.setAttribute('aria-required', true);\n input.setAttribute('aria-invalid', true);\n });\n }\n\n _validateToggleGroup(parent) {\n const formElements = parent.querySelectorAll('input');\n let flag = true;\n if (this._returnCheckedElements(formElements)) {\n this._removeGroupAria(formElements);\n parent.classList.remove('is-invalid');\n parent.classList.add('is-valid');\n this._message.removeMessage(parent);\n } else {\n this._setGroupAria(formElements);\n parent.classList.remove('is-valid');\n flag = false;\n }\n return flag;\n }\n\n _customExample(parent, input) {\n let flag = true;\n if (!input.value.length) {\n parent.dataset.messageBase = 'Поле обязательно к заполнению';\n this._setItemInvalidState(parent, input);\n flag = false;\n } else if (input.value.length < input.minLength) {\n parent.dataset.messageBase = `Осталось ввести ещё ${input.minLength - input.value.length} символов`;\n this._setItemInvalidState(parent, input);\n flag = false;\n } else if (input.value.length > input.minLength) {\n parent.dataset.messageBase = `Вы ввели ${input.value.length - input.minLength} лишних символов`;\n this._setItemInvalidState(parent, input);\n flag = false;\n } else {\n parent.dataset.messageSuccess = 'Поле заполнено корректно';\n this._setItemValidState(parent, input);\n flag = true;\n }\n return flag;\n }\n\n _validateFile(parent, input) {\n let flag = true;\n const sizeTest = parent.dataset.maxSize && input.files[0] ? input.files[0].size < +parent.dataset.maxSize : true;\n if (input.value && sizeTest) {\n this._setItemValidState(parent, input);\n } else {\n this._setItemInvalidState(parent, input);\n flag = false;\n }\n return flag;\n }\n\n _validateInput(type, parent, input) {\n switch (type) {\n case 'text':\n return this._validateTextInput(parent, input);\n case 'matrix':\n return this._validateMatrixInput(parent, input);\n case 'email':\n return this._validateEmailInput(parent, input);\n case 'phone':\n return this._validatePhoneInput(parent, input);\n case 'checkbox':\n return this._validateCheckbox(parent, input);\n case 'select':\n return this._validateSelect(parent, input);\n case 'toggle-group':\n return this._validateToggleGroup(parent, input);\n case 'file':\n return this._validateFile(parent, input);\n case 'custom-example':\n return this._customExample(parent, input);\n default:\n return false;\n }\n }\n\n validateFormElement(formElement, fullValidate = false) {\n const parent = formElement.closest('[data-validate-type]');\n if (!parent) {\n return;\n }\n\n if (!parent.hasAttribute('data-required')) {\n const removeElement = parent.querySelector('input') || parent.querySelector('select') || parent.querySelector('textarea');\n\n if (!removeElement.value) {\n parent.classList.remove('is-valid');\n parent.classList.remove('is-invalid');\n }\n }\n\n const onInputValidate = parent.hasAttribute('data-on-input-validate');\n\n if (parent.hasAttribute('data-limitation')) {\n this._simpleLimitation(formElement, parent.dataset.limitation);\n }\n\n if (parent.dataset.validateType === 'matrix') {\n this._matrixLimitation(formElement, parent.dataset.matrix, this._getMatrixLimitationsRegEx(parent.dataset.matrixLimitation));\n }\n\n const isValid = this._validateInput(parent.dataset.validateType, parent, formElement);\n\n if (onInputValidate || fullValidate) {\n this._renderMessage(isValid, parent, formElement);\n }\n }\n\n _fullValidate(items) {\n let result = true;\n items.forEach((item) => {\n const formElement = item.querySelector('input') || item.querySelector('select') || item.querySelector('textarea');\n this.validateFormElement(formElement, true);\n if (item.classList.contains('is-invalid')) {\n result = false;\n }\n });\n return result;\n }\n\n validateForm(form) {\n const validateItems = form.querySelectorAll('[data-validate-type]');\n const result = this._fullValidate(validateItems);\n return result;\n }\n}\n","import {Modals} from './modals';\n\nlet modals;\n\n// Здесь реализован пример открытия модалки через колбэк закрытия\n// const openModalInCloseCallback = (name, context = this) => {\n// context._enableScrolling = false;\n// context._setSettings('default');\n// modals.open(name);\n// };\n\n// closeCallback() {\n// openModalInCloseCallback('modal-5');\n// },\n\nconst settings = {\n 'default': {\n preventDefault: true,\n stopPlay: true,\n lockFocus: true,\n startFocus: true,\n focusBack: true,\n eventTimeout: 400,\n openCallback: false,\n closeCallback: false,\n },\n};\n\nconst initModals = () => {\n const modalElements = document.querySelectorAll('.modal');\n modalElements.forEach((el) => {\n setTimeout(() => {\n el.classList.remove('modal--preload');\n }, 100);\n });\n modals = new Modals(settings);\n // Используйте в разработке экспортируемую переменную modals, window сделан для бэкэнда\n window.modals = modals;\n};\n\nexport {modals, initModals};\n","import {ScrollLock} from '../../utils/scroll-lock';\nimport {FocusLock} from '../../utils/focus-lock';\n\nexport class Modals {\n constructor(settings = {}) {\n this._scrollLock = new ScrollLock();\n this._focusLock = new FocusLock();\n\n this._modalOpenElements = document.querySelectorAll('[data-open-modal]');\n this._openedModalElement = null;\n this._modalName = null;\n this._enableScrolling = true;\n this._settingKey = 'default';\n\n this._settings = settings;\n this._preventDefault = this._settings[this._settingKey].preventDefault;\n this._stopPlay = this._settings[this._settingKey].stopPlay;\n this._lockFocus = this._settings[this._settingKey].lockFocus;\n this._startFocus = this._settings[this._settingKey].startFocus;\n this._focusBack = this._settings[this._settingKey].focusBack;\n this._eventTimeout = this._settings[this._settingKey].eventTimeout;\n this._openCallback = this._settings[this._settingKey].openCallback;\n this._closeCallback = this._settings[this._settingKey].closeCallback;\n\n this._documentKeydownHandler = this._documentKeydownHandler.bind(this);\n this._documentClickHandler = this._documentClickHandler.bind(this);\n this._modalClickHandler = this._modalClickHandler.bind(this);\n\n this._init();\n }\n\n _init() {\n if (this._modalOpenElements.length) {\n document.addEventListener('click', this._documentClickHandler);\n }\n }\n\n _setSettings(settingKey = this._settingKey) {\n if (!this._settings[settingKey]) {\n return;\n }\n\n this._preventDefault =\n typeof this._settings[settingKey].preventDefault === 'boolean'\n ? this._settings[settingKey].preventDefault\n : this._settings[this._settingKey].preventDefault;\n this._stopPlay =\n typeof this._settings[settingKey].stopPlay === 'boolean'\n ? this._settings[settingKey].stopPlay\n : this._settings[this._settingKey].stopPlay;\n this._lockFocus =\n typeof this._settings[settingKey].lockFocus === 'boolean'\n ? this._settings[settingKey].lockFocus\n : this._settings[this._settingKey].lockFocus;\n this._startFocus =\n typeof this._settings[settingKey].startFocus === 'boolean'\n ? this._settings[settingKey].startFocus\n : this._settings[this._settingKey].startFocus;\n this._focusBack =\n typeof this._settings[settingKey].lockFocus === 'boolean'\n ? this._settings[settingKey].focusBack\n : this._settings[this._settingKey].focusBack;\n this._eventTimeout =\n typeof this._settings[settingKey].eventTimeout === 'number'\n ? this._settings[settingKey].eventTimeout\n : this._settings[this._settingKey].eventTimeout;\n this._openCallback = this._settings[settingKey].openCallback || this._settings[this._settingKey].openCallback;\n this._closeCallback = this._settings[settingKey].closeCallback || this._settings[this._settingKey].closeCallback;\n }\n\n _documentClickHandler(evt) {\n const target = evt.target;\n\n if (!target.closest('[data-open-modal]')) {\n return;\n }\n\n evt.preventDefault();\n\n this._modalName = target.closest('[data-open-modal]').dataset.openModal;\n\n if (!this._modalName) {\n return;\n }\n\n this.open();\n }\n\n _documentKeydownHandler(evt) {\n const isEscKey = evt.key === 'Escape' || evt.key === 'Esc';\n\n if (isEscKey) {\n evt.preventDefault();\n this.close(document.querySelector('.modal.is-active').dataset.modal);\n }\n }\n\n _modalClickHandler(evt) {\n const target = evt.target;\n\n if (!target.closest('[data-close-modal]')) {\n return;\n }\n\n this.close(target.closest('[data-modal]').dataset.modal);\n }\n\n _addListeners(modal) {\n modal.addEventListener('click', this._modalClickHandler);\n document.addEventListener('keydown', this._documentKeydownHandler);\n }\n\n _removeListeners(modal) {\n modal.removeEventListener('click', this._modalClickHandler);\n document.removeEventListener('keydown', this._documentKeydownHandler);\n }\n\n _stopInteractive(modal) {\n if (this._stopPlay) {\n modal.querySelectorAll('video, audio').forEach((el) => el.pause());\n modal.querySelectorAll('[data-iframe]').forEach((el) => {\n el.querySelector('iframe').contentWindow.postMessage('{\"event\": \"command\", \"func\": \"pauseVideo\", \"args\": \"\"}', '*');\n });\n }\n }\n\n _autoPlay(modal) {\n modal.querySelectorAll('[data-iframe]').forEach((el) => {\n const autoPlay = el.closest('[data-auto-play]');\n if (autoPlay) {\n el.querySelector('iframe').contentWindow.postMessage('{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*');\n }\n });\n }\n\n open(modalName = this._modalName) {\n const modal = document.querySelector(`[data-modal=\"${modalName}\"]`);\n\n if (!modal || modal.classList.contains('is-active')) {\n return;\n }\n\n document.removeEventListener('click', this._documentClickHandler);\n\n this._openedModalElement = document.querySelector('.modal.is-active');\n\n if (this._openedModalElement) {\n this._enableScrolling = false;\n this.close(this._openedModalElement.dataset.modal);\n }\n\n this._setSettings(modalName);\n modal.classList.add('is-active');\n\n if (!this._openedModalElement) {\n this._scrollLock.disableScrolling();\n }\n\n if (this._openCallback) {\n this._openCallback();\n }\n\n if (this._lockFocus) {\n this._focusLock.lock('.modal.is-active', this._startFocus);\n }\n\n setTimeout(() => {\n this._addListeners(modal);\n this._autoPlay(modal);\n document.addEventListener('click', this._documentClickHandler);\n }, this._eventTimeout);\n }\n\n close(modalName = this._modalName) {\n const modal = document.querySelector(`[data-modal=\"${modalName}\"]`);\n document.removeEventListener('click', this._documentClickHandler);\n\n if (!modal || !modal.classList.contains('is-active')) {\n return;\n }\n\n if (this._lockFocus) {\n this._focusLock.unlock(this._focusBack);\n }\n\n modal.classList.remove('is-active');\n this._removeListeners(modal);\n this._stopInteractive(modal);\n\n if (this._closeCallback) {\n this._closeCallback();\n }\n\n if (this._enableScrolling) {\n setTimeout(() => {\n this._scrollLock.enableScrolling();\n }, this._eventTimeout);\n }\n\n setTimeout(() => {\n document.addEventListener('click', this._documentClickHandler);\n }, this._eventTimeout);\n\n this._setSettings('default');\n this._enableScrolling = true;\n }\n}\n","const SELECTORS = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n 'select:not([disabled]):not([aria-hidden])',\n 'textarea:not([disabled]):not([aria-hidden])',\n 'button:not([disabled]):not([aria-hidden])',\n 'iframe',\n 'object',\n 'embed',\n '[contenteditable]',\n '[tabindex]:not([tabindex^=\"-\"])'\n];\n\nexport class FocusLock {\n constructor() {\n this._lockedSelector = null;\n this._focusableElements = null;\n this._endElement = null;\n this._selectors = SELECTORS;\n\n this._documentKeydownHandler = this._documentKeydownHandler.bind(this);\n }\n\n _documentKeydownHandler(evt) {\n const activeElement = document.activeElement;\n if (evt.key === 'Tab') {\n if (!this._focusableElements.length) {\n evt.preventDefault();\n activeElement.blur();\n return;\n }\n if (this._focusableElements.length === 1) {\n evt.preventDefault();\n this._focusableElements[0].focus();\n return;\n }\n if (this._focusableElements.length > 1 && !activeElement.closest(this._lockedSelector)) {\n evt.preventDefault();\n this._focusableElements[0].focus();\n return;\n }\n }\n if (evt.key === 'Tab' && !evt.shiftKey && activeElement === this._focusableElements[this._focusableElements.length - 1]) {\n evt.preventDefault();\n this._focusableElements[0].focus();\n }\n if (evt.key === 'Tab' && evt.shiftKey && activeElement === this._focusableElements[0]) {\n evt.preventDefault();\n this._focusableElements[this._focusableElements.length - 1].focus();\n }\n }\n\n lock(lockedSelector, startFocus = true) {\n this.unlock();\n this._lockedSelector = lockedSelector;\n const lockedElement = document.querySelector(this._lockedSelector);\n if (!lockedElement) {\n return;\n }\n this._focusableElements = lockedElement.querySelectorAll(this._selectors);\n this._endElement = document.activeElement;\n const startElement = lockedElement.querySelector('[data-focus]') || this._focusableElements[0];\n if (this._endElement) {\n this._endElement.blur();\n }\n if (startElement && startFocus) {\n startElement.focus();\n }\n document.addEventListener('keydown', this._documentKeydownHandler);\n }\n\n unlock(returnFocus = true) {\n if (this._endElement && returnFocus) {\n this._endElement.focus();\n }\n this._lockedSelector = null;\n this._focusableElements = null;\n this._endElement = null;\n document.removeEventListener('keydown', this._documentKeydownHandler);\n }\n}\n\nwindow.focusLock = new FocusLock();\n","export const iosChecker = () => {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod'\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\n};\n","import {iosChecker} from './ios-checker';\n\nconst iosVhFix = () => {\n if (!(!!window.MSInputMethodContext && !!document.documentMode)) {\n if (iosChecker()) {\n let vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n\n window.addEventListener('resize', function () {\n vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n });\n }\n }\n};\n\nexport {iosVhFix};\n\n","import {iosChecker} from './ios-checker';\n\nconst mobileVhFix = () => {\n const isMobile = /Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n const isIE = !!window.MSInputMethodContext && !!document.documentMode;\n\n if (!isIE && (isMobile || iosChecker())) {\n const updateViewportHeight = () => {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n };\n\n updateViewportHeight();\n window.addEventListener('resize', updateViewportHeight);\n }\n};\n\nexport {mobileVhFix};\n","import {iosChecker} from './ios-checker';\n\nexport class ScrollLock {\n constructor() {\n this._iosChecker = iosChecker;\n this._lockClass = this._iosChecker() ? 'scroll-lock-ios' : 'scroll-lock';\n this._scrollTop = null;\n this._fixedBlockElements = document.querySelectorAll('[data-fix-block]');\n }\n\n _getScrollbarWidth() {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n\n _getBodyScrollTop() {\n return (\n self.pageYOffset ||\n (document.documentElement && document.documentElement.ScrollTop) ||\n (document.body && document.body.scrollTop)\n );\n }\n\n disableScrolling() {\n this._scrollTop = document.body.dataset.scroll = document.body.dataset.scroll ? document.body.dataset.scroll : this._getBodyScrollTop();\n if (this._getScrollbarWidth()) {\n document.body.style.paddingRight = `${this._getScrollbarWidth()}px`;\n this._fixedBlockElements.forEach((block) => {\n block.style.paddingRight = `${this._getScrollbarWidth()}px`;\n });\n }\n document.body.style.top = `-${this._scrollTop}px`;\n document.body.classList.add(this._lockClass);\n }\n\n enableScrolling() {\n document.body.classList.remove(this._lockClass);\n window.scrollTo(0, +document.body.dataset.scroll);\n document.body.style.paddingRight = null;\n document.body.style.top = null;\n this._fixedBlockElements.forEach((block) => {\n block.style.paddingRight = null;\n });\n document.body.removeAttribute('data-scroll');\n this._scrollTop = null;\n }\n}\n\nwindow.scrollLock = new ScrollLock();\n"]}
\ No newline at end of file
diff --git a/build/js/vendor.min.js b/build/js/vendor.min.js
new file mode 100644
index 000000000..2bd9d76f8
--- /dev/null
+++ b/build/js/vendor.min.js
@@ -0,0 +1 @@
+!function i(s,n,r){function o(t,e){if(!n[t]){if(!s[t]){var a="function"==typeof require&&require;if(!e&&a)return a(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}a=n[t]={exports:{}},s[t][0].call(a.exports,function(e){return o(s[t][1][e]||e)},a,a.exports,i,s,n,r)}return n[t].exports}for(var l="function"==typeof require&&require,e=0;ee.length)&&(t=e.length);for(var a=0,i=new Array(t);a")){var r="div",o=(0===n.indexOf("s.slides.length&&!r)break;n.push(t(l))}else n.push(t(s.activeIndex));for(a=0;a=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(o),i.eq(o).addClass(a.slideVisibleClass)),l.progress=s?-c:c,l.originalProgress=s?-p:p}t.visibleSlides=L(t.visibleSlides)}},updateProgress:function(e){var t=this,a=(void 0===e&&(a=t.rtlTranslate?-1:1,e=t&&t.translate&&t.translate*a||0),t.params),i=t.maxTranslate()-t.minTranslate(),s=t.progress,n=t.isBeginning,r=n,o=l=t.isEnd,l=0==i?n=!(s=0):(n=(s=(e-t.minTranslate())/i)<=0,1<=s);Object.assign(t,{progress:s,isBeginning:n,isEnd:l}),(a.watchSlidesProgress||a.centeredSlides&&a.autoHeight)&&t.updateSlidesProgress(e),n&&!r&&t.emit("reachBeginning toEdge"),l&&!o&&t.emit("reachEnd toEdge"),(r&&!n||o&&!l)&&t.emit("fromEdge"),t.emit("progress",s)},updateSlidesClasses:function(){var e=this,t=e.slides,a=e.params,i=e.$wrapperEl,s=e.activeIndex,n=e.realIndex,r=e.virtual&&a.virtual.enabled,s=(t.removeClass("".concat(a.slideActiveClass," ").concat(a.slideNextClass," ").concat(a.slidePrevClass," ").concat(a.slideDuplicateActiveClass," ").concat(a.slideDuplicateNextClass," ").concat(a.slideDuplicatePrevClass)),(r=r?e.$wrapperEl.find(".".concat(a.slideClass,'[data-swiper-slide-index="').concat(s,'"]')):t.eq(s)).addClass(a.slideActiveClass),a.loop&&(r.hasClass(a.slideDuplicateClass)?i.children(".".concat(a.slideClass,":not(.").concat(a.slideDuplicateClass,')[data-swiper-slide-index="').concat(n,'"]')):i.children(".".concat(a.slideClass,".").concat(a.slideDuplicateClass,'[data-swiper-slide-index="').concat(n,'"]'))).addClass(a.slideDuplicateActiveClass),r.nextAll(".".concat(a.slideClass)).eq(0).addClass(a.slideNextClass)),n=(a.loop&&0===s.length&&(s=t.eq(0)).addClass(a.slideNextClass),r.prevAll(".".concat(a.slideClass)).eq(0).addClass(a.slidePrevClass));a.loop&&0===n.length&&(n=t.eq(-1)).addClass(a.slidePrevClass),a.loop&&((s.hasClass(a.slideDuplicateClass)?i.children(".".concat(a.slideClass,":not(.").concat(a.slideDuplicateClass,')[data-swiper-slide-index="').concat(s.attr("data-swiper-slide-index"),'"]')):i.children(".".concat(a.slideClass,".").concat(a.slideDuplicateClass,'[data-swiper-slide-index="').concat(s.attr("data-swiper-slide-index"),'"]'))).addClass(a.slideDuplicateNextClass),(n.hasClass(a.slideDuplicateClass)?i.children(".".concat(a.slideClass,":not(.").concat(a.slideDuplicateClass,')[data-swiper-slide-index="').concat(n.attr("data-swiper-slide-index"),'"]')):i.children(".".concat(a.slideClass,".").concat(a.slideDuplicateClass,'[data-swiper-slide-index="').concat(n.attr("data-swiper-slide-index"),'"]'))).addClass(a.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){var t=this,a=t.rtlTranslate?t.translate:-t.translate,i=t.slidesGrid,s=t.snapGrid,n=t.params,r=t.activeIndex,o=t.realIndex,l=t.snapIndex,d=e;if(void 0===d){for(var c=0;c=i[c]&&a=i[c]&&a=i[c]&&(d=c);n.normalizeSlideIndex&&(d<0||void 0===d)&&(d=0)}(e=0<=s.indexOf(a)?s.indexOf(a):(e=Math.min(n.slidesPerGroupSkip,d))+Math.floor((d-e)/n.slidesPerGroup))>=s.length&&(e=s.length-1),d===r?e!==l&&(t.snapIndex=e,t.emit("snapIndexChange")):(n=parseInt(t.slides.eq(d).attr("data-swiper-slide-index")||d,10),Object.assign(t,{snapIndex:e,realIndex:n,previousIndex:r,activeIndex:d}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),o!==n&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange"))},updateClickedSlide:function(e){var t,a=this,i=a.params,s=L(e).closest(".".concat(i.slideClass))[0],n=!1;if(s)for(var r=0;r=e.length&&(s=e.length-1),(c||n.initialSlide||0)===(d||0)&&a&&r.emit("beforeSlideChangeStart"),-e[s]);if(r.updateProgress(m),n.normalizeSlideIndex)for(var v=0;vr.translate&&m>r.maxTranslate()&&(c||0)!==o)return!1}if(h=c=n.snapGrid[o]?(e=n.snapGrid[o],(n.snapGrid[o+1]-e)*st.slides.length-t.loopedSlides+s/2?(t.loopFix(),n=i.children(".".concat(a.slideClass,'[data-swiper-slide-index="').concat(e,'"]:not(.').concat(a.slideDuplicateClass,")")).eq(0).index(),C(function(){t.slideTo(n)})):t.slideTo(n):n>t.slides.length-s?(t.loopFix(),n=i.children(".".concat(a.slideClass,'[data-swiper-slide-index="').concat(e,'"]:not(.').concat(a.slideDuplicateClass,")")).eq(0).index(),C(function(){t.slideTo(n)})):t.slideTo(n)):t.slideTo(n)}},loop:{loopCreate:function(){var i=this,e=T(),t=i.params,a=i.$wrapperEl,s=0n.length&&(i.loopedSlides=n.length);var d=[],c=[];n.each(function(e,t){var a=L(e);t=n.length-i.loopedSlides&&d.push(e),a.attr("data-swiper-slide-index",t)});for(var p=0;p=a.length-i&&(l=-a.length+t+i,e.slideTo(l+=i,0,!1,!0))&&0!=r&&e.setTranslate((o?-e.translate:e.translate)-r),e.allowSlidePrev=s,e.allowSlideNext=n,e.emit("loopFix")},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,a=this.slides;e.children(".".concat(t.slideClass,".").concat(t.slideDuplicateClass,",.").concat(t.slideClass,".").concat(t.slideBlankClass)).remove(),a.removeAttr("data-swiper-slide-index")}},grabCursor:{setGrabCursor:function(e){var t=this;t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode||((t="container"===t.params.touchEventsTarget?t.el:t.wrapperEl).style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab")},unsetGrabCursor:function(){var e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:{attachEvents:function(){var e=this,t=T(),a=e.params,i=e.support;e.onTouchStart=function(e){var t=this,a=T(),i=O(),s=t.touchEventsData,n=t.params,r=t.touches,o=t.enabled;if(o&&(!t.animating||!n.preventInteractionOnTransition)){!t.animating&&n.cssMode&&n.loop&&t.loopFix();var o=e,l=L((o=o.originalEvent?o.originalEvent:o).target);if(("wrapper"!==n.touchEventsTarget||l.closest(t.wrapperEl).length)&&(s.isTouchEvent="touchstart"===o.type,s.isTouchEvent||!("which"in o)||3!==o.which)&&!(!s.isTouchEvent&&"button"in o&&0=i.innerWidth-u)){if("prevent"!==p)return;e.preventDefault()}Object.assign(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),r.startX=c,r.startY=d,s.touchStartTime=w(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,0n.startY&&a.translate>=a.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(ln.startX&&a.translate>=a.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&e.target===t.activeElement&&L(e.target).is(i.focusableElements))i.isMoved=!0,a.allowClick=!1;else if(i.allowTouchCallbacks&&a.emit("touchMove",e),!(e.targetTouches&&1s.touchAngle:90-c>s.touchAngle)),i.isScrolling&&a.emit("touchMoveOpposite",e),void 0!==i.startMoving||n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0),i.isScrolling)i.isTouched=!1;else if(i.startMoving){a.allowClick=!1,!s.cssMode&&e.cancelable&&e.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&e.stopPropagation(),i.isMoved||(s.loop&&!s.cssMode&&a.loopFix(),i.startTranslate=a.getTranslate(),a.setTransition(0),a.animating&&a.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!s.grabCursor||!0!==a.allowSlideNext&&!0!==a.allowSlidePrev||a.setGrabCursor(!0),a.emit("sliderFirstMove",e)),a.emit("sliderMove",e),i.isMoved=!0;var c=a.isHorizontal()?t:d,t=(n.diff=c,c*=s.touchRatio,a.swipeDirection=0<(c=r?-c:c)?"prev":"next",i.currentTranslate=c+i.startTranslate,!0),d=s.resistanceRatio;if(s.touchReleaseOnEdges&&(d=0),0a.minTranslate()?(t=!1,s.resistance&&(i.currentTranslate=a.minTranslate()-1+Math.pow(-a.minTranslate()+i.startTranslate+c,d))):c<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),a.allowSlidePrev||a.allowSlideNext||(i.currentTranslate=i.startTranslate),0s.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=a.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}s.followFinger&&!s.cssMode&&((s.freeMode&&s.freeMode.enabled&&a.freeMode||s.watchSlidesProgress)&&(a.updateActiveIndex(),a.updateSlidesClasses()),a.params.freeMode&&s.freeMode.enabled&&a.freeMode&&a.freeMode.onTouchMove(),a.updateProgress(i.currentTranslate),a.setTranslate(i.currentTranslate))}}}else a.allowClick=!1,i.isTouched&&(Object.assign(n,{startX:l,startY:o,currentX:l,currentY:o}),i.touchStartTime=w())}}else i.startMoving&&i.isScrolling&&a.emit("touchMoveOpposite",e)}.bind(e),e.onTouchEnd=function(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,n=t.rtlTranslate,r=t.slidesGrid;if(t.enabled)if(e.originalEvent&&(e=e.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",e),a.allowTouchCallbacks=!1,a.isTouched){i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var o,l=w(),d=l-a.touchStartTime;if(t.allowClick&&(h=e.path||e.composedPath&&e.composedPath(),t.updateClickedSlide(h&&h[0]||e.target),t.emit("tap click",e),d<300)&&l-a.lastClickTime<300&&t.emit("doubleTap doubleClick",e),a.lastClickTime=w(),C(function(){t.destroyed||(t.allowClick=!0)}),a.isTouched&&a.isMoved&&t.swipeDirection&&0!==s.diff&&a.currentTranslate!==a.startTranslate){if(a.isTouched=!1,a.isMoved=!1,a.startMoving=!1,o=i.followFinger?n?t.translate:-t.translate:-a.currentTranslate,!i.cssMode)if(t.params.freeMode&&i.freeMode.enabled)t.freeMode.onTouchEnd({currentPos:o});else{for(var c=0,p=t.slidesSizesGrid[0],u=0;u=r[u]&&o=r[u]&&(c=u,p=r[r.length-1]-r[r.length-2])}var h=(o-r[c])/p,l=ci.longSwipesMs?i.longSwipes?("next"===t.swipeDirection&&(h>=i.longSwipesRatio?t.slideTo(c+l):t.slideTo(c)),"prev"===t.swipeDirection&&(h>1-i.longSwipesRatio?t.slideTo(c+l):t.slideTo(c))):t.slideTo(t.activeIndex):i.shortSwipes?t.navigation&&(e.target===t.navigation.nextEl||e.target===t.navigation.prevEl)?e.target===t.navigation.nextEl?t.slideTo(c+l):t.slideTo(c):("next"===t.swipeDirection&&t.slideTo(c+l),"prev"===t.swipeDirection&&t.slideTo(c)):t.slideTo(t.activeIndex)}}else a.isTouched=!1,a.isMoved=!1,a.startMoving=!1}else a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,a.startMoving=!1}.bind(e),a.cssMode&&(e.onScroll=function(){var e=this,t=e.wrapperEl,a=e.rtlTranslate;e.enabled&&(e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses(),(0==(t=e.maxTranslate()-e.minTranslate())?0:(e.translate-e.minTranslate())/t)!==e.progress&&e.updateProgress(a?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1))}.bind(e)),e.onClick=function(e){var t=this;t.enabled&&!t.allowClick&&(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation)&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())}.bind(e),i.touch&&!v&&(t.addEventListener("touchstart",j),v=!0),g(e,"on")},detachEvents:function(){g(this,"off")}},breakpoints:{setBreakpoint:function(){var e,t,a,i,s=this,n=s.activeIndex,r=s.initialized,o=void 0===(o=s.loopedSlides)?0:o,l=s.params,d=s.$el,c=l.breakpoints;c&&0!==Object.keys(c).length&&(e=s.getBreakpoint(c,s.params.breakpointsBase,s.el))&&s.currentBreakpoint!==e&&(c=(e in c?c[e]:void 0)||s.originalParams,a=b(s,l),i=b(s,c),t=l.enabled,a&&!i?(d.removeClass("".concat(l.containerModifierClass,"grid ").concat(l.containerModifierClass,"grid-column")),s.emitContainerClasses()):!a&&i&&(d.addClass("".concat(l.containerModifierClass,"grid")),(c.grid.fill&&"column"===c.grid.fill||!c.grid.fill&&"column"===l.grid.fill)&&d.addClass("".concat(l.containerModifierClass,"grid-column")),s.emitContainerClasses()),a=c.direction&&c.direction!==l.direction,i=l.loop&&(c.slidesPerView!==l.slidesPerView||a),a&&r&&s.changeDirection(),u(s.params,c),d=s.params.enabled,Object.assign(s,{allowTouchMove:s.params.allowTouchMove,allowSlideNext:s.params.allowSlideNext,allowSlidePrev:s.params.allowSlidePrev}),t&&!d?s.disable():!t&&d&&s.enable(),s.currentBreakpoint=e,s.emit("_beforeBreakpoint",c),i&&r&&(s.loopDestroy(),s.loopCreate(),s.updateSlides(),s.slideTo(n-o+s.loopedSlides,0,!1)),s.emit("breakpoint",c))},getBreakpoint:function(e){var t=1e):t.isLocked=1===t.snapGrid.length,!0===i.allowSlideNext&&(t.allowSlideNext=!t.isLocked),!0===i.allowSlidePrev&&(t.allowSlidePrev=!t.isLocked),a&&a!==t.isLocked&&(t.isEnd=!1),a!==t.isLocked&&t.emit(t.isLocked?"lock":"unlock")}},classes:{addClasses:function(){var a,i,e=this,t=e.classNames,s=e.params,n=e.rtl,r=e.$el,o=e.device,l=e.support,n=(l=["initialized",s.direction,{"pointer-events":!l.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:n},{grid:s.grid&&1')),e.append(t)),t}return Object.keys(E).forEach(function(t){Object.keys(E[t]).forEach(function(e){M.prototype[e]=E[t][e]})}),M.use([function(e){function n(){r&&!r.destroyed&&r.initialized&&(i("beforeResize"),i("resize"))}function t(){r&&!r.destroyed&&r.initialized&&i("orientationchange")}var r=e.swiper,a=e.on,i=e.emit,s=O(),o=null;a("init",function(){r.params.resizeObserver&&void 0!==s.ResizeObserver?r&&!r.destroyed&&r.initialized&&(o=new ResizeObserver(function(e){var t=r.width,a=r.height,i=t,s=a;e.forEach(function(e){var t=e.contentBoxSize,a=e.contentRect,e=e.target;e&&e!==r.el||(i=a?a.width:(t[0]||t).inlineSize,s=a?a.height:(t[0]||t).blockSize)}),i===t&&s===a||n()})).observe(r.el):(s.addEventListener("resize",n),s.addEventListener("orientationchange",t))}),a("destroy",function(){o&&o.unobserve&&r.el&&(o.unobserve(r.el),o=null),s.removeEventListener("resize",n),s.removeEventListener("orientationchange",t)})},function(e){function a(e){var t=1').concat(e,""))).attr("data-swiper-slide-index")||e.attr("data-swiper-slide-index",t),a.cache&&(x.virtual.cache[t]=e),e)}function o(e){var t,a=x.params,i=a.slidesPerView,s=a.slidesPerGroup,a=a.centeredSlides,n=x.params.virtual,r=n.addSlidesBefore,n=n.addSlidesAfter,o=x.virtual,l=o.from,d=o.to,c=o.slides,p=o.slidesGrid,o=o.offset,u=(x.params.cssMode||x.updateActiveIndex(),x.activeIndex||0),f=x.rtlTranslate?"right":x.isHorizontal()?"left":"top",a=a?(t=Math.floor(i/2)+s+n,Math.floor(i/2)+s+r):(t=i+(s-1)+n,s+r),h=Math.max((u||0)-a,0),m=Math.min((u||0)+t,c.length-1),i=(x.slidesGrid[h]||0)-(x.slidesGrid[0]||0);function v(){x.updateSlides(),x.updateProgress(),x.updateSlidesClasses(),x.lazy&&x.params.lazy.enabled&&x.lazy.load()}if(Object.assign(x.virtual,{from:h,to:m,offset:i,slidesGrid:x.slidesGrid}),l!==h||d!==m||e)if(x.params.virtual.renderExternal)x.params.virtual.renderExternal.call(x,{offset:i,from:h,to:m,slides:function(){for(var e=[],t=h;t<=m;t+=1)e.push(c[t]);return e}()}),x.params.virtual.renderExternalUpdate&&v();else{var g=[],w=[];if(e)x.$wrapperEl.find(".".concat(x.params.slideClass)).remove();else for(var b=l;b<=d;b+=1)(bMath.abs(n.pixelY)))return!0;i=-n.pixelX*s}else{if(!(Math.abs(n.pixelY)>Math.abs(n.pixelX)))return!0;i=-n.pixelY}else i=Math.abs(n.pixelX)>Math.abs(n.pixelY)?-n.pixelX*s:-n.pixelY;if(0===i)return!0;a.invert&&(i=-i);var r=h.getTranslate()+i*a.sensitivity;if((r=r>=h.minTranslate()?h.minTranslate():r)<=h.maxTranslate()&&(r=h.maxTranslate()),(!!h.params.loop||!(r===h.minTranslate()||r===h.maxTranslate()))&&h.params.nested&&t.stopPropagation(),h.params.freeMode&&h.params.freeMode.enabled){var o={time:w(),delta:Math.abs(i),direction:Math.sign(i)},l=f&&o.time=h.minTranslate()?h.minTranslate():c)<=h.maxTranslate()&&(c=h.maxTranslate()),h.setTransition(0),h.setTranslate(c),h.updateProgress(),h.updateActiveIndex(),h.updateSlidesClasses(),(!p&&h.isBeginning||!s&&h.isEnd)&&h.updateSlidesClasses(),h.params.freeMode.sticky&&(clearTimeout(u),u=void 0,15<=v.length&&v.shift(),n=v.length?v[v.length-1]:void 0,r=v[0],v.push(o),n&&(o.delta>n.delta||o.direction!==n.direction)?v.splice(0):15<=v.length&&o.time-r.time<500&&1<=r.delta-o.delta&&o.delta<=6&&(d=0p.delta||a.time>p.time+150)&&g(a),function(e){var t=h.params.mousewheel;if(e.direction<0){if(h.isEnd&&!h.params.loop&&t.releaseOnEdges)return 1}else if(h.isBeginning&&!h.params.loop&&t.releaseOnEdges)return 1}(a))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1}}function l(e){var t=h.$el;(t="container"!==h.params.mousewheel.eventsTarget?L(h.params.mousewheel.eventsTarget):t)[e]("mouseenter",n),t[e]("mouseleave",r),t[e]("wheel",o)}function d(){if(h.params.cssMode)h.wrapperEl.removeEventListener("wheel",o);else{if(h.mousewheel.enabled)return!1;l("on"),h.mousewheel.enabled=!0}return!0}function c(){if(h.params.cssMode)h.wrapperEl.addEventListener(event,o);else{if(!h.mousewheel.enabled)return!1;l("off"),h.mousewheel.enabled=!1}return!0}a("init",function(){!h.params.mousewheel.enabled&&h.params.cssMode&&c(),h.params.mousewheel.enabled&&d()}),a("destroy",function(){h.params.cssMode&&d(),h.mousewheel.enabled&&c()}),Object.assign(h.mousewheel,{enable:d,disable:c})},function(e){var n=e.swiper,t=e.extendParams,a=e.on,r=e.emit;function i(e){var t;return t=e&&(t=L(e),n.params.uniqueNavElements)&&"string"==typeof e&&1t-1-2*m.loopedSlides&&(i-=t-2*m.loopedSlides),n-1a.dynamicMainBullets-1?g=a.dynamicMainBullets-1:g<0&&(g=0)),r=Math.max(i-g,0),l=((o=r+(Math.min(d.length,a.dynamicMainBullets)-1))+r)/2),d.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map(function(e){return"".concat(a.bulletActiveClass).concat(e)}).join(" ")),1=d.length){for(var f=a.dynamicMainBullets;0<=f;--f)d.eq(d.length-f).addClass("".concat(a.bulletActiveClass,"-main"));d.eq(d.length-a.dynamicMainBullets-1).addClass("".concat(a.bulletActiveClass,"-prev"))}else b(t,"prev"),b(p,"next");else b(t,"prev"),b(p,"next")}}a.dynamicBullets&&(c=Math.min(d.length,a.dynamicMainBullets+4),t=(h*c-h)/2-l*h,p=e?"right":"left",d.css(m.isHorizontal()?p:"top","".concat(t,"px")))}"fraction"===a.type&&(s.find(k(a.currentClass)).text(a.formatFractionCurrent(i+1)),s.find(k(a.totalClass)).text(a.formatFractionTotal(n))),"progressbar"===a.type&&(c=a.progressbarOpposite?m.isHorizontal()?"vertical":"horizontal":m.isHorizontal()?"horizontal":"vertical",l=(i+1)/n,p=e=1,"horizontal"===c?e=l:p=l,s.find(k(a.progressbarFillClass)).transform("translate3d(0,0,0) scaleX(".concat(e,") scaleY(").concat(p,")")).transition(m.params.speed)),"custom"===a.type&&a.renderCustom?(s.html(a.renderCustom(m,i+1,n)),v("paginationRender",s[0])):v("paginationUpdate",s[0]),m.params.watchOverflow&&m.enabled&&s[m.isLocked?"addClass":"removeClass"](a.lockClass)}}function s(){var e=m.params.pagination;if(!w()){var t=(m.virtual&&m.params.virtual.enabled?m.virtual:m).slides.length,a=m.pagination.$el,i="";if("bullets"===e.type){var s=m.params.loop?Math.ceil((t-2*m.loopedSlides)/m.params.slidesPerGroup):m.snapGrid.length;m.params.freeMode&&m.params.freeMode.enabled&&!m.params.loop&&t').concat(e.bulletElement,">");a.html(i),m.pagination.bullets=a.find(k(e.bulletClass))}"fraction"===e.type&&(i=e.renderFraction?e.renderFraction.call(m,e.currentClass,e.totalClass):'')+" / "+''),a.html(i)),"progressbar"===e.type&&(i=e.renderProgressbar?e.renderProgressbar.call(m,e.progressbarFillClass):''),a.html(i)),"custom"!==e.type&&v("paginationRender",m.pagination.$el[0])}}function n(){m.params.pagination=P(m,m.originalParams.pagination,m.params.pagination,{el:"swiper-pagination"});var e,t=m.params.pagination;!t.el||0===(e=L(t.el)).length||(m.params.uniqueNavElements&&"string"==typeof t.el&&1')),e.append(a)),Object.assign(t,{$el:e,el:e[0],$dragEl:a,dragEl:a[0]}),i.draggable&&l.params.scrollbar.el&&y("on"),e)&&e[l.enabled?"removeClass":"addClass"](l.params.scrollbar.lockClass)}function E(){l.params.scrollbar.el&&y("off")}t({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}}),l.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},a("init",function(){x(),h(),s()}),a("update resize observerUpdate lock unlock",function(){h()}),a("setTranslate",function(){s()}),a("setTransition",function(e,t){t=t,l.params.scrollbar.el&&l.scrollbar.el&&l.scrollbar.$dragEl.transition(t)}),a("enable disable",function(){var e=l.scrollbar.$el;e&&e[l.enabled?"removeClass":"addClass"](l.params.scrollbar.lockClass)}),a("destroy",function(){E()}),Object.assign(l.scrollbar,{updateSize:h,setTranslate:s,init:x,destroy:E})},function(e){function n(e,t){var a=l.rtl,e=L(e),a=a?-1:1,i=e.attr("data-swiper-parallax")||"0",s=e.attr("data-swiper-parallax-x"),n=e.attr("data-swiper-parallax-y"),r=e.attr("data-swiper-parallax-scale"),o=e.attr("data-swiper-parallax-opacity");s||n?(s=s||"0",n=n||"0"):l.isHorizontal()?(s=i,n="0"):(n=i,s="0"),s=0<=s.indexOf("%")?"".concat(parseInt(s,10)*t*a,"%"):"".concat(s*t*a,"px"),n=0<=n.indexOf("%")?"".concat(parseInt(n,10)*t,"%"):"".concat(n*t,"px"),null!=o&&(i=o-(o-1)*(1-Math.abs(t)),e[0].style.opacity=i),null==r?e.transform("translate3d(".concat(s,", ").concat(n,", 0px)")):(a=r-(r-1)*(1-Math.abs(t)),e.transform("translate3d(".concat(s,", ").concat(n,", 0px) scale(").concat(a,")")))}function t(){var e=l.$el,t=l.slides,i=l.progress,s=l.snapGrid;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(e){n(e,i)}),t.each(function(e,t){var a=e.progress;1p.maxRatio&&(i.scale=p.maxRatio-1+Math.pow(i.scale-p.maxRatio+1,.5)),i.scaleu.touchesStart.x))return void(u.isTouched=!1);if(!l.isHorizontal()&&(Math.floor(u.minY)===Math.floor(u.startY)&&u.touchesCurrent.yu.touchesStart.y))return void(u.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),u.isMoved=!0,u.currentX=u.touchesCurrent.x-u.touchesStart.x+u.startX,u.currentY=u.touchesCurrent.y-u.touchesStart.y+u.startY,u.currentXu.maxX&&(u.currentX=u.maxX-1+Math.pow(u.currentX-u.maxX+1,.8)),u.currentYu.maxY&&(u.currentY=u.maxY-1+Math.pow(u.currentY-u.maxY+1,.8)),f.prevPositionX||(f.prevPositionX=u.touchesCurrent.x),f.prevPositionY||(f.prevPositionY=u.touchesCurrent.y),f.prevTime||(f.prevTime=Date.now()),f.x=(u.touchesCurrent.x-f.prevPositionX)/(Date.now()-f.prevTime)/2,f.y=(u.touchesCurrent.y-f.prevPositionY)/(Date.now()-f.prevTime)/2,Math.abs(u.touchesCurrent.x-f.prevPositionX)<2&&(f.x=0),Math.abs(u.touchesCurrent.y-f.prevPositionY)<2&&(f.y=0),f.prevPositionX=u.touchesCurrent.x,f.prevPositionY=u.touchesCurrent.y,f.prevTime=Date.now(),p.$imageWrapEl.transform("translate3d(".concat(u.currentX,"px, ").concat(u.currentY,"px,0)"))}}}function y(){var e=l.zoom;p.$slideEl&&l.previousIndex!==l.activeIndex&&(p.$imageEl&&p.$imageEl.transform("translate3d(0,0,0) scale(1)"),p.$imageWrapEl&&p.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,c=1,p.$slideEl=void 0,p.$imageEl=void 0,p.$imageWrapEl=void 0)}function x(e){var t,a,i,s,n,r=l.zoom,o=l.params.zoom;p.$slideEl||(e&&e.target&&(p.$slideEl=L(e.target).closest(".".concat(l.params.slideClass))),p.$slideEl||(l.params.virtual&&l.params.virtual.enabled&&l.virtual?p.$slideEl=l.$wrapperEl.children(".".concat(l.params.slideActiveClass)):p.$slideEl=l.slides.eq(l.activeIndex)),p.$imageEl=p.$slideEl.find(".".concat(o.containerClass)).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),p.$imageWrapEl=p.$imageEl.parent(".".concat(o.containerClass))),p.$imageEl&&0!==p.$imageEl.length&&p.$imageWrapEl&&0!==p.$imageWrapEl.length&&(l.params.cssMode&&(l.wrapperEl.style.overflow="hidden",l.wrapperEl.style.touchAction="none"),p.$slideEl.addClass("".concat(o.zoomedSlideClass)),t=void 0===u.touchesStart.x&&e?(n=("touchend"===e.type?e.changedTouches[0]:e).pageX,("touchend"===e.type?e.changedTouches[0]:e).pageY):(n=u.touchesStart.x,u.touchesStart.y),r.scale=p.$imageWrapEl.attr("data-swiper-zoom")||o.maxRatio,c=p.$imageWrapEl.attr("data-swiper-zoom")||o.maxRatio,e?(o=p.$slideEl[0].offsetWidth,e=p.$slideEl[0].offsetHeight,n=p.$slideEl.offset().left+d.scrollX+o/2-n,t=p.$slideEl.offset().top+d.scrollY+e/2-t,s=p.$imageEl[0].offsetWidth,i=p.$imageEl[0].offsetHeight,s=s*r.scale,i=i*r.scale,o=Math.min(o/2-s/2,0),s=Math.min(e/2-i/2,0),(e=-o)<(i=(i=n*r.scale)>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(r=o(this.x,e),n=r-1,(e-this.x[n])*(this.y[r]-this.y[n])/(this.x[r]-this.x[n])+this.y[n]):0},this}function a(){l.controller.control&&l.controller.spline&&(l.controller.spline=void 0,delete l.controller.spline)}t({controller:{control:void 0,inverse:!1,by:"slide"}}),l.controller={control:void 0},e("beforeInit",function(){l.controller.control=l.params.controller.control}),e("update",function(){a()}),e("resize",function(){a()}),e("observerUpdate",function(){a()}),e("setTranslate",function(e,t,a){l.controller.control&&l.controller.setTranslate(t,a)}),e("setTransition",function(e,t,a){l.controller.control&&l.controller.setTransition(t,a)}),Object.assign(l.controller,{setTranslate:function(e,t){var i,s,a=l.controller.control,n=l.constructor;function r(e){var t,a=l.rtlTranslate?-l.translate:l.translate;"slide"===l.params.controller.by&&(t=e,l.controller.spline||(l.controller.spline=l.params.loop?new d(l.slidesGrid,t.slidesGrid):new d(l.snapGrid,t.snapGrid)),s=-l.controller.spline.interpolate(-a)),s&&"container"!==l.params.controller.by||(i=(e.maxTranslate()-e.minTranslate())/(l.maxTranslate()-l.minTranslate()),s=(a-l.minTranslate())*i+e.minTranslate()),l.params.controller.inverse&&(s=e.maxTranslate()-s),e.updateProgress(s),e.setTranslate(s,l),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(var o=0;o'))}),e("afterInit",function(){o.params.a11y.enabled&&(g(),f())}),e("toEdge",function(){o.params.a11y.enabled&&f()}),e("fromEdge",function(){o.params.a11y.enabled&&f()}),e("paginationUpdate",function(){var t;o.params.a11y.enabled&&(t=o.params.a11y,h())&&o.pagination.bullets.each(function(e){e=L(e);o.params.pagination.clickable&&(i(e),o.params.pagination.renderBullet||(d(e,"button"),p(e,t.paginationBulletMessage.replace(/\{\{index\}\}/,e.index()+1)))),e.is(".".concat(o.params.pagination.bulletActiveClass))?e.attr("aria-current","true"):e.removeAttr("aria-current")})}),e("destroy",function(){var e,t;o.params.a11y.enabled&&(l&&0u.previousIndex?"next":"prev"):(i=u.realIndex)>u.previousIndex?"next":"prev",o&&(i+="next"===s?r:-1*r),t.visibleSlidesIndexes)&&t.visibleSlidesIndexes.indexOf(i)<0&&(t.params.centeredSlides?i=a-h.maxTranslate())h.slides.lengthh.minTranslate())t.freeMode.momentumBounce?(p-h.minTranslate()>c&&(p=h.minTranslate()+c),o=h.minTranslate(),n.allowMomentumBounce=e=!0):p=h.minTranslate(),t.loop&&t.centeredSlides&&(l=!0);else if(t.freeMode.sticky){for(var u,f=0;f-p){u=f;break}p=-(p=Math.abs(s[u]-p)=t.longSwipesMs)&&(h.updateProgress(),h.updateActiveIndex(),h.updateSlidesClasses())}}}})},function(e){var c,p,u,f=e.swiper;(0,e.extendParams)({grid:{rows:1,fill:"column"}}),f.grid={initSlides:function(e){var t=f.params.slidesPerView,a=f.params.grid,i=a.rows,a=a.fill;p=c/i,u=Math.floor(e/i),c=Math.floor(e/i)===e/i?e:Math.ceil(e/i)*i,"auto"!==t&&"row"===a&&(c=Math.max(c,t*i))},updateSlide:function(e,t,a,i){var s,n,r=f.params,o=r.slidesPerGroup,r=r.spaceBetween,l=f.params.grid,d=l.rows,l=l.fill;"row"===l&&1'),t.append(E)),E.css({height:"".concat(i,"px")})):0===(E=e.find(".swiper-cube-shadow")).length&&(E=L(''),e.append(E)));for(var u,f=0;f')),h.append(v)),0===b.length&&(b=L('')),h.append(b)),v.length&&(v[0].style.opacity=Math.max(-w,0)),b.length)&&(b[0].style.opacity=Math.max(w,0))}t.css({"-webkit-transform-origin":"50% 50% -".concat(r/2,"px"),"transform-origin":"50% 50% -".concat(r/2,"px")}),l.shadow&&(d?E.transform("translate3d(0px, ".concat(i/2+l.shadowOffset,"px, ").concat(-i/2,"px) rotateX(90deg) rotateZ(0deg) scale(").concat(l.shadowScale,")")):(e=Math.abs(p)-90*Math.floor(Math.abs(p)/90),i=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),e=l.shadowScale,i=l.shadowScale/i,u=l.shadowOffset,E.transform("scale3d(".concat(e,", 1, ").concat(i,") translate3d(0px, ").concat(s/2+u,"px, ").concat(-s/2/i,"px) rotateX(-90deg)"))));var E=o.isSafari||o.isWebView?-r/2:0;t.transform("translate3d(0px,0,".concat(E,"px) rotateX(").concat(T.isHorizontal()?0:p,"deg) rotateY(").concat(T.isHorizontal()?-p:0,"deg)"))},setTransition:function(e){var t=T.$el;T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),T.params.cubeEffect.shadow&&!T.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)},perspective:function(){return!0},overwriteParams:function(){return{slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0}}})},function(e){var u=e.swiper,t=e.extendParams,e=e.on;t({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}}),$({effect:"flip",swiper:u,on:e,setTranslate:function(){for(var e=u.slides,t=u.rtlTranslate,a=u.params.flipEffect,i=0;i
+
+
+
+ Botozz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Спасибо! Мы свяжемся с Вами в течение 30 минут.
+
+
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
index 6867abaf4..27bee33e7 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "Liga-A-accelerator-template",
+ "name": "Botozz",
"version": "2.0.0",
"type": "module",
"description": "Стартовый шаблон сборки Лиги А",
@@ -15,7 +15,9 @@
"build": "gulp build",
"dev": "gulp dev",
"start": "gulp start",
- "webp": "gulp webp"
+ "webp": "gulp webp",
+ "predeploy": "npm run build",
+ "deploy": "gh-pages -d build"
},
"editorconfig-cli": [
"*.json",
@@ -27,8 +29,8 @@
"source/sass/**/*.{sass,scss}"
],
"devDependencies": {
- "@babel/preset-env": "7.18.6",
"@babel/core": "7.21.4",
+ "@babel/preset-env": "7.18.6",
"@htmlacademy/editorconfig-cli": "1.x",
"autoprefixer": "10.4.7",
"babelify": "10.0.0",
@@ -36,18 +38,19 @@
"browserify": "17.0.0",
"del": "6.1.1",
"eslint": "7.32.0",
+ "gh-pages": "^6.1.1",
"gulp": "4.0.2",
+ "gulp-concat": "2.6.1",
"gulp-csso": "4.0.1",
"gulp-group-css-media-queries": "1.2.2",
"gulp-imagemin": "7.1.0",
"gulp-postcss": "9.0.1",
- "gulp-concat": "2.6.1",
"gulp-rename": "2.0.0",
"gulp-sass": "5.1.0",
"gulp-sourcemaps": "3.0.0",
"gulp-svgstore": "9.0.0",
- "gulp-webp": "4.0.1",
"gulp-uglify": "3.0.2",
+ "gulp-webp": "4.0.1",
"imagemin-mozjpeg": "10.0.0",
"imagemin-pngquant": "9.0.2",
"imagemin-svgo": "10.0.1",
diff --git a/source/fonts/montserrat-bold.woff b/source/fonts/montserrat-bold.woff
new file mode 100644
index 000000000..2883cbf14
Binary files /dev/null and b/source/fonts/montserrat-bold.woff differ
diff --git a/source/fonts/montserrat-bold.woff2 b/source/fonts/montserrat-bold.woff2
new file mode 100644
index 000000000..53ce9dbef
Binary files /dev/null and b/source/fonts/montserrat-bold.woff2 differ
diff --git a/source/fonts/montserrat-medium.woff b/source/fonts/montserrat-medium.woff
new file mode 100644
index 000000000..9e15b389e
Binary files /dev/null and b/source/fonts/montserrat-medium.woff differ
diff --git a/source/fonts/montserrat-medium.woff2 b/source/fonts/montserrat-medium.woff2
new file mode 100644
index 000000000..b0efef2b2
Binary files /dev/null and b/source/fonts/montserrat-medium.woff2 differ
diff --git a/source/fonts/montserrat-regular.woff b/source/fonts/montserrat-regular.woff
new file mode 100644
index 000000000..2e90375ee
Binary files /dev/null and b/source/fonts/montserrat-regular.woff differ
diff --git a/source/fonts/montserrat-regular.woff2 b/source/fonts/montserrat-regular.woff2
new file mode 100644
index 000000000..71b9f4173
Binary files /dev/null and b/source/fonts/montserrat-regular.woff2 differ
diff --git a/source/img/phone.png b/source/img/phone.png
new file mode 100644
index 000000000..6927d216a
Binary files /dev/null and b/source/img/phone.png differ
diff --git a/source/img/phone@2x.png b/source/img/phone@2x.png
new file mode 100644
index 000000000..8e516739f
Binary files /dev/null and b/source/img/phone@2x.png differ
diff --git a/source/img/svg/cross.svg b/source/img/svg/cross.svg
new file mode 100644
index 000000000..f42c838c6
--- /dev/null
+++ b/source/img/svg/cross.svg
@@ -0,0 +1,3 @@
+
diff --git a/source/img/svg/telegram.svg b/source/img/svg/telegram.svg
new file mode 100644
index 000000000..13e40cd4b
--- /dev/null
+++ b/source/img/svg/telegram.svg
@@ -0,0 +1,3 @@
+
diff --git a/source/img/svg/tick.svg b/source/img/svg/tick.svg
new file mode 100644
index 000000000..7165dc6bf
--- /dev/null
+++ b/source/img/svg/tick.svg
@@ -0,0 +1,21 @@
+
+
diff --git a/source/img/tick.svg b/source/img/tick.svg
new file mode 100644
index 000000000..cbfd334ad
--- /dev/null
+++ b/source/img/tick.svg
@@ -0,0 +1,22 @@
+
+
+
diff --git a/source/index.html b/source/index.html
index b45f3d2e4..670cf8c34 100644
--- a/source/index.html
+++ b/source/index.html
@@ -1,64 +1,145 @@
-
+
-
-
-
-
- ProjectName
+
+ Botozz
+
+
+
+
+
+
-
-
-
-
-
-
-
Тестовая страница.
-
На данной странице показан пример модальных окон.
-
Перед началом разработки не забудьте удалить всё содержимое ‹main›‹⁄main›.
-
modal--feedback link
-
modal--success link
+
+
+
+
-
-
-
-
-
Размер этой модалки зависит от ширины контента,
отключена анимация-скейл
-
-
+
+
+
+
+
+
Спасибо! Мы свяжемся с Вами в течение 30 минут.
+
-
+
+
+
+
+
+
+
-
+ })
+ });
+
diff --git a/source/js/main.js b/source/js/main.js
index 67efb03ee..9b7b4661e 100644
--- a/source/js/main.js
+++ b/source/js/main.js
@@ -1,6 +1,7 @@
import {iosVhFix} from './utils/ios-vh-fix';
import {initModals} from './modules/modals/init-modals';
import {Form} from './modules/form-validate/form';
+import {mobileVhFix} from './utils/mobile-vh-fix.js';
// ---------------------------------
@@ -8,6 +9,7 @@ window.addEventListener('DOMContentLoaded', () => {
// Utils
// ---------------------------------
+ mobileVhFix();
iosVhFix();
diff --git a/source/js/utils/ios-vh-fix.js b/source/js/utils/ios-vh-fix.js
index 90f1d927e..28b558f29 100644
--- a/source/js/utils/ios-vh-fix.js
+++ b/source/js/utils/ios-vh-fix.js
@@ -15,3 +15,4 @@ const iosVhFix = () => {
};
export {iosVhFix};
+
diff --git a/source/js/utils/mobile-vh-fix.js b/source/js/utils/mobile-vh-fix.js
new file mode 100644
index 000000000..9f0bef1a0
--- /dev/null
+++ b/source/js/utils/mobile-vh-fix.js
@@ -0,0 +1,18 @@
+import {iosChecker} from './ios-checker';
+
+const mobileVhFix = () => {
+ const isMobile = /Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
+ const isIE = !!window.MSInputMethodContext && !!document.documentMode;
+
+ if (!isIE && (isMobile || iosChecker())) {
+ const updateViewportHeight = () => {
+ const vh = window.innerHeight * 0.01;
+ document.documentElement.style.setProperty('--vh', `${vh}px`);
+ };
+
+ updateViewportHeight();
+ window.addEventListener('resize', updateViewportHeight);
+ }
+};
+
+export {mobileVhFix};
diff --git a/source/js/vendor.js b/source/js/vendor.js
index e7a8b1f96..b2e76f0a6 100644
--- a/source/js/vendor.js
+++ b/source/js/vendor.js
@@ -1,4 +1,3 @@
// Swiper 7.4.1
import './vendor/swiper';
import './vendor/focus-visible-polyfill';
-
diff --git a/source/sass/blocks/alert.scss b/source/sass/blocks/alert.scss
new file mode 100644
index 000000000..eecc53e87
--- /dev/null
+++ b/source/sass/blocks/alert.scss
@@ -0,0 +1,39 @@
+.alert {
+ color: $color-default-black;
+ padding: 20px;
+ background-color: $color-default-white;
+ font-size: 24px;
+ font-weight: 600;
+ margin-bottom: 20px;
+ text-align: center;
+ border-radius: 20px;
+}
+
+.alert__button-close {
+ position: absolute;
+ top: 30px;
+ right: 30px;
+
+ width: 22px;
+ height: 22px;
+ padding: 0;
+
+ background-color: transparent;
+ border: none;
+ cursor: pointer;
+
+ @include vp-767 {
+ top: 18px;
+ right: 23px;
+
+ width: 12px;
+ height: 12px;
+ }
+}
+
+.alert__icon {
+ @include vp-767 {
+ width: 12px;
+ height: 12px;
+ }
+}
diff --git a/source/sass/blocks/custom-input.scss b/source/sass/blocks/custom-input.scss
index 4d7f1aedf..22e58bcdd 100644
--- a/source/sass/blocks/custom-input.scss
+++ b/source/sass/blocks/custom-input.scss
@@ -3,14 +3,16 @@
position: relative;
display: flex;
- width: 530px;
- padding: 14px 0 28px;
+ padding: 14px 0 20px;
@media screen and (max-width: 767px) {
- padding: 4px 0 48px;
width: 100%;
}
+ @media (max-width: 540px) {
+ padding: 14px 0 10px;
+ }
+
label {
display: flex;
align-items: center;
@@ -75,22 +77,15 @@
&.is-invalid {
input,
textarea {
- border: 2px solid #ff1553;
-
- &:focus,
- &:hover {
- border: 2px solid rgba(#ff1553, 0.5);
- }
- }
- }
-
- &.is-valid {
- input {
- border: 2px solid #22b259;
+ border-radius: 8px;
+ border: 1px solid $color-wild-watermelon;
+ background: rgba(255, 94, 102, 0.2);
&:focus,
&:hover {
- border: 2px solid rgba(#22b259, 0.5);
+ border-radius: 8px;
+ border: 1px solid $color-wild-watermelon;
+ background: rgba(255, 94, 102, 0.2);
}
}
}
@@ -109,3 +104,11 @@
}
}
}
+
+.custom-textarea {
+ width: 530px;
+
+ &::placeholder {
+ color: #000000;
+ }
+}
diff --git a/source/sass/blocks/custom-toggle.scss b/source/sass/blocks/custom-toggle.scss
index 0cd8e8b6d..087b3fcdb 100644
--- a/source/sass/blocks/custom-toggle.scss
+++ b/source/sass/blocks/custom-toggle.scss
@@ -5,22 +5,14 @@
font-weight: 300;
display: flex;
- width: 500px;
- padding: 14px 0 10px 36px;
+ //width: 500px;
+ //padding: 14px 0 10px 36px;
@media screen and (max-width: 767px) {
- padding: 14px 0 10px 0;
+ //padding: 14px 0 10px 0;
width: 100%;
}
- &:last-of-type {
- padding: 14px 0 58px 36px;
-
- @media screen and (max-width: 767px) {
- padding: 14px 0 58px 0;
- }
- }
-
input {
position: absolute;
@@ -53,25 +45,20 @@
width: 28px;
height: 28px;
- border: 1.5px solid #2c39f2;
+ border: 1.5px solid #ffffff;
transition: border 0.3s ease;
- &::before {
+
+ /* &::before {
content: "";
position: absolute;
top: 50%;
left: 50%;
-
- width: 20px;
- height: 20px;
-
- background-color: rgba(#2c39f2, 0);
-
- transform: translate(-50%, -50%);
-
- transition: background-color 0.3s ease;
- }
+ background-image: url('../../img/svg/tick.svg');
+ background-position: center;
+ background-repeat: no-repeat;
+ }*/
}
}
@@ -84,12 +71,13 @@
width: 28px;
height: 28px;
- border: 1px solid #2c39f2;
+ border: 1px solid #ffffff;
border-radius: 50%;
transition: border 0.3s ease;
- &::before {
+
+ /*&::before {
content: "";
position: absolute;
top: 50%;
@@ -98,27 +86,23 @@
width: 20px;
height: 20px;
- color: rgba(255, 255, 255, 0);
-
- border-radius: 50%;
- transform: translate(-50%, -50%);
-
- transition: color 0.3s ease;
- }
+ background-image: url('../../img/svg/tick.svg');
+ background-position: center;
+ background-repeat: no-repeat;
+ }*/
}
}
input:checked + .custom-toggle__icon {
- border: 1.5px solid #2c39f2;
+ border: 1.5px solid #ffffff;
+ background: url("../img/svg/tick.svg");
+ background-position: center;
+ background-repeat: no-repeat;
&::before {
- background-color: #2c39f2;
- }
- }
-
- &.is-invalid {
- label span {
- color: #ff1553;
+ background: url("../img/svg/tick.svg");
+ background-position: center;
+ background-repeat: no-repeat;
}
}
@@ -136,3 +120,8 @@
}
}
}
+
+.custom-toggle__svg {
+ fill: $color-default-black;
+ color: $color-default-black;
+}
diff --git a/source/sass/blocks/footer.scss b/source/sass/blocks/footer.scss
new file mode 100644
index 000000000..7289a684a
--- /dev/null
+++ b/source/sass/blocks/footer.scss
@@ -0,0 +1,4 @@
+.footer {
+ background-image: $main-gradient;
+ color:beige;
+}
diff --git a/source/sass/blocks/form.scss b/source/sass/blocks/form.scss
new file mode 100644
index 000000000..dbc0a3d47
--- /dev/null
+++ b/source/sass/blocks/form.scss
@@ -0,0 +1,612 @@
+.form {
+ width: 100%;
+ //background-color: $color-alabaster;
+}
+
+.form__inner {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 80px;
+
+ @media (max-width: 1230px) {
+ grid-template-columns: 1fr;
+ gap: 0;
+ }
+}
+
+.form__title {
+ font-size: 48px;
+ font-weight: 800;
+ line-height: normal;
+ color: $color-default-white;
+ margin-top: 0;
+ margin-bottom: 20px;
+
+ @media (max-width: 1230px) {
+ text-align: center;
+ }
+
+ @include vp-767 {
+ font-size: 26px;
+ margin-bottom: 17px;
+ }
+}
+
+.form__link {
+ padding: 13px;
+ border: 1px solid $color-default-black;
+ background-color: transparent;
+ border-radius: 20px;
+ display: block;
+ position: relative;
+ max-width: 340px;
+
+ @media (max-width: 1230px){
+ margin: 0 auto;
+ }
+
+ &:hover {
+ color: $color-default-white;
+ border: 1px solid $color-default-white;
+ //fill: $color-default-white;
+
+ .form__link-text {
+ color: $color-default-white;
+ }
+ }
+
+ &:focus {
+ border: 1px solid $color-default-white;
+ fill: $color-default-white;
+ color: $color-default-white;
+
+ .form__link-text {
+ color: $color-default-white;
+ }
+ }
+
+ &:focus-visible {
+ border: 1px solid $color-default-white;
+ fill: $color-default-white;
+ color: $color-default-white;
+
+ .form__link-text {
+ color: $color-default-white;
+ }
+ }
+
+ &:active {
+ color: $color-default-white;
+ fill: $color-default-white;
+
+ border: 1px solid $color-default-white;
+
+ .form__link-text {
+ color: $color-default-white;
+ }
+ }
+
+ .form__link-icon {
+ &:hover {
+ fill: $color-default-white;
+ color: $color-default-white;
+ }
+
+ &:focus {
+ fill: $color-default-white;
+ }
+
+ &:focus-visible {
+ fill: $color-default-white;
+ }
+
+ &:active {
+ fill: $color-default-white;
+ }
+ }
+}
+
+.form__link-icon {
+ fill: $color-default-black;
+ background-position: center;
+ background-repeat: no-repeat;
+ width: 24px;
+ height: 24px;
+ position: absolute;
+ display: block;
+
+ &:hover {
+ fill: $color-default-white;
+ color: $color-default-white;
+ }
+
+ &:focus {
+ fill: $color-default-white;
+ }
+
+ &:focus-visible {
+ fill: $color-default-white;
+ }
+
+ &:active {
+ fill: $color-default-white;
+ }
+}
+
+.form__link-text {
+ font-size: 18px;
+ color: $color-default-black;
+ font-weight: 400;
+ padding-left: 35px;
+ margin: 0;
+}
+
+.form__text {
+ font-size: 18px;
+ font-weight: 400;
+ line-height: normal;
+ color: $color-default-white;
+ margin-top: 10px;
+ margin-bottom: 20px;
+
+ @media (max-width: 1230px) {
+ text-align: center;
+ }
+
+ @include vp-767 {
+ font-size: 14px;
+ margin-bottom: 7px;
+ }
+}
+
+.form__wrapprer {
+ max-width: 1440px;
+ margin: 0 auto;
+ padding: 117px 6.9% 30px;
+
+ @include vp-1199 {
+ padding: 97px 45px 30px 45px;
+ }
+
+ @include vp-767 {
+ padding: 67px 15px 14px;
+ }
+
+ @media (min-width: 1440px) {
+ padding-right: 100px;
+ padding-left: 100px;
+ }
+}
+
+.form__content {
+ position: relative;
+}
+
+.form__inner-wrapper-grid {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 20px;
+
+ @media (max-width: 540px) {
+ grid-template-columns: 1fr;
+ gap: 0;
+ }
+}
+
+.form__inner-wrapper {
+ margin-bottom: 30px;
+}
+
+.form__input {
+ position: relative;
+
+ display: flex;
+ flex-direction: column-reverse;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 0;
+ padding: 0;
+
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 18px;
+ color: $color-alabaster;
+
+ @media (max-width: 1230px) {
+ margin-bottom: 15px;
+ }
+
+ @include vp-767 {
+ margin-bottom: 20px;
+ }
+
+ @media (max-width: 540px) {
+ margin-bottom: 0;
+ }
+}
+
+.form__input label {
+ display: block;
+ margin: 0;
+ margin-bottom: 8px;
+ padding: 0;
+
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 18px;
+ color: rgba(240, 239, 233, 0.8);
+
+ @include vp-1199 {
+ margin-bottom: 7px;
+
+ line-height: 20px;
+ }
+
+ @media (max-width: 1230px) {
+ margin-bottom: 12px;
+
+ font-size: 12px;
+ line-height: 14px;
+ }
+}
+
+.form__input input::placeholder {
+ color: $color-default-black;
+}
+
+.form__input input {
+ padding: 16px 25px;
+
+ font-size: 14px;
+ color: $color-default-black;
+
+ //background-color: transparent;
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ border-radius: 8px;
+
+ @media (max-width: 1230px) {
+ padding: 16px 25px;
+ }
+
+ &:disabled {
+ background: rgba(169, 175, 183, 0.2);
+ border: 1px solid rgba(169, 175, 183, 0.5);
+ }
+
+ &:hover {
+ border: 1px solid $color-default-white;
+ opacity: 1;
+ }
+
+ &:focus {
+ border: 1px solid $color-default-white;
+ outline: none;
+ opacity: 1;
+ }
+
+ &:focus-visible {
+ border: 1px solid $color-default-white;
+ outline: none;
+ opacity: 1;
+ }
+
+ &:active {
+ color: $color-default-white;
+
+ border: 1px solid $color-default-white;
+ outline: none;
+ opacity: 1;
+ }
+
+ &:hover + label {
+ color: $color-alabaster;
+ }
+
+ &:focus + label {
+ color: $color-alabaster;
+ }
+
+ &:focus-visible + label {
+ color: $color-alabaster;
+ }
+
+ &:active + label {
+ color: $color-alabaster;
+ }
+}
+
+.form__textarea {
+ display: flex;
+ flex-direction: column-reverse;
+ margin-bottom: 18px;
+
+ @media (max-width: 1230px) {
+ margin-bottom: 17px;
+ }
+
+ @include vp-767 {
+ margin-bottom: 21px;
+ }
+}
+
+.form__textarea textarea {
+ min-height: 98px;
+ padding: 18px 25px;
+
+ font-size: 14px;
+ color: $color-default-black;
+
+ //background-color: transparent;
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ border-radius: 8px;
+
+ @include vp-767 {
+ width: 100%;
+ min-width: unset;
+ min-height: 94px;
+ padding: 13px 25px;
+ }
+
+ &:disabled {
+ background: rgba(169, 175, 183, 0.2);
+ border: 1px solid rgba(169, 175, 183, 0.5);
+ }
+
+ &:hover {
+ border: 1px solid $color-default-white;
+ opacity: 1;
+ }
+
+ &:focus {
+ border: 1px solid $color-default-white;
+ outline: none;
+ opacity: 1;
+ }
+
+ &:focus-visible {
+ border: 1px solid $color-default-white;
+ outline: none;
+ opacity: 1;
+ }
+
+ &:active {
+ color: $color-default-white;
+
+ border: 1px solid $color-default-white;
+ outline: none;
+ opacity: 1;
+ }
+
+ &:hover + p {
+ color: $color-alabaster;
+ }
+
+ &:focus + p {
+ color: $color-alabaster;
+ }
+
+ &:focus-visible + p {
+ color: $color-alabaster;
+ }
+
+ &:active + p {
+ color: $color-alabaster;
+ }
+}
+
+.form__textarea p {
+ display: block;
+ margin: 0;
+ margin-bottom: 8px;
+ padding: 0;
+
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 18px;
+ text-align: start;
+ color: rgba(240, 239, 233, 0.8);
+
+ @include vp-1199 {
+ margin-bottom: 6px;
+
+ line-height: 20px;
+ }
+
+ @include vp-767 {
+ margin-bottom: 12px;
+
+ font-size: 12px;
+ line-height: 14px;
+ }
+}
+
+.form__checkbox-wrapper {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 5px;
+ margin-left: 10px;
+
+ @media (max-width: 1230px) {
+ justify-items: center;
+ }
+
+ @media (max-width: 540px) {
+ grid-template-columns: 1fr;
+ gap: 0;
+ margin-bottom: 20px;
+ }
+}
+
+.form__checkbox {
+ margin: 0;
+ margin-bottom: 20px;
+ padding: 0;
+}
+
+.form__checkbox:last-of-type {
+ margin: 0;
+ margin-top: 2px;
+ margin-bottom: 39px;
+ padding: 0;
+
+ @include vp-767 {
+ margin-top: 0;
+ margin-bottom: 12px;
+ }
+}
+
+.form__checkbox-label {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 12px;
+ color: $color-default-white;
+
+ opacity: 0.9;
+}
+
+.form__checkbox label {
+ padding-left: 30px;
+}
+
+.custom-toggle--checkbox .form__toggle-icon,
+.custom-toggle--radio .form__toggle-icon {
+ top: 6px;
+
+ width: 20px;
+ height: 20px;
+
+ border: 1px solid rgba(255, 255, 255, 0.7);
+ border-radius: 2px;
+
+ @include vp-767 {
+ top: 12px;
+ }
+
+ @media (min-width: 321px) and (max-width: 767px) {
+ top: 6px;
+ }
+
+ &:hover {
+ border: 1px solid $color-default-white;
+ outline: none;
+
+ transition: 0.1s ease;
+ }
+
+ &:focus {
+ border: 1px solid $color-default-white;
+ outline: none;
+
+ transition: 0.1s ease;
+ }
+
+ &:focus-visible {
+ border: 1px solid $color-default-white;
+ outline: none;
+
+ transition: 0.1s ease;
+ }
+
+ &:active {
+ border: 1px solid $color-default-white;
+ outline: none;
+
+ transition: 0.1s ease;
+ }
+}
+
+.custom-toggle--checkbox .form__toggle-icon::before,
+.custom-toggle--radio .form__toggle-icon::before {
+ width: 10px;
+ height: 10px;
+}
+
+.custom-toggle input:checked + .form__toggle-icon::before {
+ width: 10px;
+ height: 10px;
+
+ background-color: transparent;
+ background-image: url("../img/svg/check.svg");
+ background-repeat: no-repeat;
+ background-size: 10px 10px;
+}
+
+.custom-toggle input:checked + .form__toggle-icon {
+ background-color: $main-gradient;
+ border: 1px solid $color-default-white;
+
+ &:hover {
+ background-color: transparent;
+
+ &::before {
+ background-image: url("../img/svg/check-white.svg");
+ }
+ }
+
+ &:focus {
+ background-color: transparent;
+
+ &::before {
+ background-image: url("../img/svg/check-white.svg");
+ }
+ }
+
+ &:focus-visible {
+ background-color: transparent;
+
+ &::before {
+ background-image: url("../img/svg/check-white.svg");
+ }
+ }
+}
+
+.is-invalid.custom-toggle--checkbox .form__toggle-icon,
+.custom-toggle--radio .form__toggle-icon {
+ background: rgba(255, 94, 102, 0.2);
+ border: 1px solid $color-wild-watermelon;
+ opacity: 0.7;
+}
+
+.form__button {
+ width: 100%;
+ margin: 0 auto;
+
+ @media (max-width: 1230px) {
+ width: 100%;
+ }
+
+ .span {
+ font-weight: 700;
+ text-transform: lowercase;
+ }
+}
+
+.form__select-text {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 14px;
+ color: $color-alabaster;
+}
+
+.form__inner-img {
+ position: relative;
+}
+
+.form__inner-img img {
+ position: fixed;
+ height: auto;
+ right: 0;
+ z-index: 2;
+ object-fit: cover;
+ max-width: 100%;
+ bottom: 0;
+
+ @media (max-width: 1230px) {
+ display: none;
+ }
+}
diff --git a/source/sass/blocks/general-button.scss b/source/sass/blocks/general-button.scss
new file mode 100644
index 000000000..997e794d6
--- /dev/null
+++ b/source/sass/blocks/general-button.scss
@@ -0,0 +1,212 @@
+.general-button {
+ //display: grid;
+ //align-items: center;
+ display: block;
+ margin: 0 auto;
+ padding: 20px 30px;
+
+ color: $color-light-blue;
+ word-break: break-all;
+
+ background-color: $color-default-black;
+ border: 1px solid $color-default-black;
+ border-radius: 30px;
+ cursor: pointer;
+
+ user-select: none;
+
+ gap: 29px;
+ grid-template-columns: 1fr 46px;
+
+ @include vp-767 {
+ width: 100%;
+ padding: 20px 30px;
+
+ gap: 19px;
+ grid-template-columns: 1fr 34px;
+ }
+
+ &:hover {
+ color: $color-default-white;
+
+ background-color: $color-default-black;
+ }
+
+ &:focus {
+ color: $color-default-white;
+
+ background-color: $color-default-black;
+ outline: none;
+ }
+
+ &:focus-visible {
+ color: $color-default-white;
+
+ background-color: $color-default-black;
+ outline: none;
+ }
+
+ &:active {
+ color: rgba(255, 255, 255, 0.7);
+
+ background-color: $color-default-black;
+ outline: none;
+ }
+}
+
+.general-button span {
+ max-width: 280px;
+ margin: 0;
+ padding: 0;
+
+ font-weight: 700;
+ font-size: 18px;
+ line-height: 14px;
+ letter-spacing: 0.28px;
+
+ @include vp-767 {
+ font-size: 16px;
+ line-height: 12px;
+ letter-spacing: 0.24px;
+ }
+}
+
+.general-button__icon-wrapper {
+ width: 46px;
+ height: 46px;
+ background-color: $color-default-black;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ stroke: $color-default-white;
+ color: $color-default-white;
+
+ @include vp-767 {
+ width: 34px;
+ height: 34px;
+ }
+}
+
+.general-button:hover .general-button__icon-wrapper {
+ background-color: $color-default-white;
+ stroke: $color-light-blue;
+ transform: rotate(45deg);
+ color: $color-light-blue;
+ transition: 1;
+}
+
+.general-button:focus .general-button__icon-wrapper {
+ background-color: $color-default-white;
+ stroke: $color-light-blue;
+ color: $color-light-blue;
+ transform: rotate(45deg);
+}
+
+.general-button:focus-visible .general-button__icon-wrapper {
+ background-color: $color-default-white;
+ stroke: $color-light-blue;
+ color: $color-light-blue;
+ transform: rotate(45deg);
+}
+
+.general-button:active .general-button__icon-wrapper {
+ background-color: $color-default-white;
+ stroke: rgba(49, 109, 194, 0.7);
+ color: rgba(49, 109, 194, 0.7);
+ transform: rotate(45deg);
+}
+
+.general-button__icon {
+ align-self: center;
+ justify-content: center;
+ align-items: center;
+ margin: 0 auto;
+ height: 22px;
+ width: 22px;
+ right: -5px;
+ position: relative;
+ top: 5px;
+}
+
+.general-button--dark {
+ color: $color-default-white;
+ max-width: 270px;
+ text-align: center;
+ padding: 20px 30px;
+ border-radius: 20px;
+ grid-template-columns: 1fr;
+
+ background-color: $color-default-black;
+ border: 1px solid $color-default-black;
+
+ &:hover {
+ color: $color-default-black;
+ fill: $color-default-white;
+
+ background-color: $color-default-white;
+ }
+
+ &:focus {
+ color: $color-default-black;
+ fill: $color-default-white;
+
+ background-color: $color-default-white;
+ outline: none;
+ }
+
+ &:focus-visible {
+ color: $color-default-white;
+ fill: $color-default-white;
+
+ background-color: $color-default-black;
+ outline: none;
+ }
+
+ &:active {
+ color: $color-default-white;
+ fill: $color-default-black;
+
+ background-color: $color-default-black;
+ outline: none;
+ }
+}
+
+.general-button--dark .general-button__icon-wrapper {
+ background-color: $color-default-white;
+
+ stroke: $color-light-blue;
+ color: $color-light-blue;
+}
+
+.general-button--dark:hover .general-button__icon-wrapper {
+ background-color: $color-light-blue;
+ transform: rotate(45deg);
+
+ stroke: $color-default-white;
+ color: $color-default-white;
+}
+
+.general-button--dark:focus .general-button__icon-wrapper {
+ background-color: $color-light-blue;
+ transform: rotate(45deg);
+
+ stroke: $color-default-white;
+ color: $color-default-white;
+}
+
+.general-button--dark:focus-visible .general-button__icon-wrapper {
+ background-color: $color-light-blue;
+ transform: rotate(45deg);
+
+ stroke: $color-default-white;
+ color: $color-default-white;
+}
+
+.general-button--dark:active .general-button__icon-wrapper {
+ background-color: $color-light-blue;
+ transform: rotate(45deg);
+
+ stroke: rgba(255, 255, 255, 0.7);
+ color: rgba(255, 255, 255, 0.7);
+}
diff --git a/source/sass/blocks/header.scss b/source/sass/blocks/header.scss
new file mode 100644
index 000000000..17eb3221a
--- /dev/null
+++ b/source/sass/blocks/header.scss
@@ -0,0 +1,10 @@
+.header {
+ color: #ffffff;
+ padding: 20px 15px 30px 15px;
+}
+
+.header__logo-link {
+ font-size: 26px;
+ font-weight: 800;
+ color: $color-default-black;
+}
diff --git a/source/sass/blocks/hero.scss b/source/sass/blocks/hero.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/source/sass/blocks/page__body.scss b/source/sass/blocks/page__body.scss
new file mode 100644
index 000000000..0b2ebd43b
--- /dev/null
+++ b/source/sass/blocks/page__body.scss
@@ -0,0 +1,3 @@
+.page__body {
+ background-image: $main-gradient;
+}
diff --git a/source/sass/global/container.scss b/source/sass/global/container.scss
index 7b71254a6..c74918049 100644
--- a/source/sass/global/container.scss
+++ b/source/sass/global/container.scss
@@ -1,18 +1,18 @@
.container {
width: 100%;
- max-width: 1920px;
+ flex-grow: 1;
+ max-width: 1440px;
margin: 0 auto;
- padding: 0 40px;
+ padding: 0 0 0 70px;
+ background-image: $main-gradient;
+ margin-left: 0;
+ margin-right: 0;
- @include vp-1439 {
- padding: 0 32px;
+ @media (max-width: 1230px) {
+ padding: 0 70px;
}
- @include vp-1023 {
- padding: 0 24px;
- }
-
- @include vp-767 {
- padding: 0 16px;
- }
+ @media (max-width: 540px) {
+ padding: 0 30px;
+ }
}
diff --git a/source/sass/global/fonts.scss b/source/sass/global/fonts.scss
index ba889ef00..465d009e0 100644
--- a/source/sass/global/fonts.scss
+++ b/source/sass/global/fonts.scss
@@ -1,8 +1,31 @@
+/* здесь подключите шрифты*/
@font-face {
font-style: normal;
font-weight: 400;
- font-family: "";
+ font-family: "Montserrat";
font-display: swap;
- src: url("../fonts/.woff2") format("woff2");
+ src: local("Montserrat"),
+ url("../fonts/montserrat-regular.woff2") format("woff2");
+}
+
+@font-face {
+ font-style: normal;
+ font-weight: 500;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src: local("Montserrat"),
+ url("../fonts/montserrat-medium.woff2") format("woff2");
+}
+
+
+@font-face {
+ font-style: normal;
+ font-weight: 700;
+ font-family: "Montserrat";
+
+ font-display: swap;
+ src: local("Montserrat"),
+ url("../fonts/montserrat-bold.woff2") format("woff2");
}
diff --git a/source/sass/global/reboot.scss b/source/sass/global/reboot.scss
index 9ad1dce09..924c166e6 100644
--- a/source/sass/global/reboot.scss
+++ b/source/sass/global/reboot.scss
@@ -16,7 +16,7 @@ html {
font-weight: 400;
font-size: $fz-default;
line-height: 24px;
- font-family: $ff-placeholder;
+ font-family: $ff-montserrat;
color: $color-default-black;
-webkit-font-smoothing: antialiased;
diff --git a/source/sass/global/utils.scss b/source/sass/global/utils.scss
index b7d6d7f3b..095f78af1 100644
--- a/source/sass/global/utils.scss
+++ b/source/sass/global/utils.scss
@@ -17,14 +17,6 @@
}
}
-.rouble {
- font-family: $ff-rouble;
- /* stylelint-disable */
- text-transform: lowercase !important;
- font-weight: 400 !important;
- /* stylelint-enable */
-}
-
.visually-hidden {
position: absolute;
diff --git a/source/sass/mixins.scss b/source/sass/mixins.scss
index ecc2dcf18..9fed47acb 100644
--- a/source/sass/mixins.scss
+++ b/source/sass/mixins.scss
@@ -56,6 +56,12 @@
}
}
+@mixin vp-1199 {
+ @media (max-width: ($vp-1200 - 1px)) {
+ @content;
+ }
+}
+
@mixin vp-1023 {
@media (max-width: ($vp-1024 - 1px)) {
@content;
@@ -74,6 +80,7 @@
}
}
+
// Mobile first
// @mixin vp-375 {
diff --git a/source/sass/style.scss b/source/sass/style.scss
index 0a8290ae0..030d3188a 100644
--- a/source/sass/style.scss
+++ b/source/sass/style.scss
@@ -18,11 +18,18 @@
// Blocks
// ---------------------------------
+@import "blocks/header";
+@import "blocks/form";
+@import "blocks/page__body";
@import "blocks/btn";
-@import "blocks/modal";
@import "blocks/custom-input";
-@import "blocks/custom-toggle";
@import "blocks/custom-select";
+@import "blocks/custom-toggle";
+@import "blocks/general-button";
+@import "blocks/footer";
+@import "blocks/modal";
+@import "blocks/alert";
+@import "blocks/hero";
// ---------------------------------
diff --git a/source/sass/variables.scss b/source/sass/variables.scss
index b5a9ab283..54b4f4d12 100644
--- a/source/sass/variables.scss
+++ b/source/sass/variables.scss
@@ -3,56 +3,70 @@
// Default
-$color-default-black: #000000;
-$color-default-white: #ffffff;
-$color-transparent: rgba(255, 255, 255, 0);
+$color-default-black: #000000;
+$color-default-white: #ffffff;
+$color-transparent: rgba(255, 255, 255, 0);
// Project palette
// для нейминга цветов используем https://www.htmlcsscolor.com/hex/334482
-$color-neon-blue: #2c39f2;
-$color-torch-red: #ff1553;
+$color-neon-blue: #2c39f2;
+$color-torch-red: #ff1553;
+$color-dark-brown: #484848;
+$color-light-blue: #316dc2;
+$color-endeavour: #275699;
+$color-cerulean-blue: #316dc2;
+$color-alabaster: #f0efe9;
+$color-charcoal: #484848;
+$color-wild-watermelon: #ff5e66;
+$color-navy-blue: #0266c1;
-// Gradient
+$color-photo-overlay: rgba(#316dc2, 20%);
+$color-form-overlay: rgba(#0d1d33, 40%);
-$black-to-right: linear-gradient(90deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 75%);
+// Gradient
+$black-to-right: linear-gradient(
+ 90deg,
+ rgba(0, 0, 0, 0.75) 0%,
+ rgba(0, 0, 0, 0) 75%
+);
+$color-form-overlay: rgba(#0d1d33, 40%);
+$main-gradient: linear-gradient(200deg, #5413a7 0%, #9c55f5 75%);
// Typography
// ---------------------------------
// переменная используемая в html для подключения скейлинга
-$fz-default: 16px;
+$fz-default: 16px;
// у некоторых шрифтов в ios возникают проблемы с символом рубля
// https://www.artlebedev.ru/kovodstvo/sections/159/#13
-$ff-rouble: "Rouble", "Arial", sans-serif;
-
-$ff-placeholder: "Placeholder", "Arial", sans-serif;
+$ff-montserrat: "Montserrat", "Arial", sans-serif;
+$ff-manrope: "Manrope", "Arial", sans-serif;
// Animation
// ---------------------------------
-$tf-default: ease;
-$trans-default: 0.3s $tf-default;
+$tf-default: ease;
+$trans-default: 1s $tf-default;
// если требуется изинг отличный от $tf-default, то переменную называем не цифрой
-$trans-modal: 0.6s cubic-bezier(0.55, 0, 0.1, 1);
-
-$trans-600: 0.6s $tf-default;
+$trans-modal: 0.6s cubic-bezier(0.55, 0, 0.1, 1);
+$trans-600: 0.6s $tf-default;
// Viewports
// ---------------------------------
-
-$vp-320: 320px;
-$vp-375: 375px;
-$vp-768: 768px;
-$vp-1024: 1024px;
-$vp-1280: 1280px;
-$vp-1440: 1440px;
-$vp-1920: 1920px;
+$vp-320: 320px;
+$vp-375: 375px;
+$vp-768: 768px;
+$vp-1024: 1024px;
+$vp-1200: 1200px;
+$vp-1280: 1280px;
+$vp-1440: 1440px;
+$vp-1920: 1920px;
// Retina
// ---------------------------------
-$retina-dpi: 144dpi;
-$retina-dppx: 1.5dppx;
+$retina-dpi: 144dpi;
+$retina-dppx: 1.5dppx;
diff --git a/source/sitemap.html b/source/sitemap.html
index 08982ad04..056124a6b 100644
--- a/source/sitemap.html
+++ b/source/sitemap.html
@@ -1,39 +1,143 @@
-
+
-
-
-
-
-
ProjectName
+
+
Botozz
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
Спасибо! Мы свяжемся с Вами в течение 30 минут.
+
+
+
+
+
+
+