header .wrapper > .logo,
header .location,
.promo * {
    color: var(--text-color);
}
header .location::before {
    background: var(--dark);
}
header .logo {
    font-family: "Goudy Old Style";
    font-size: 77px;
    font-weight: 700;
    line-height: 129%;
    text-align: center;
    opacity: 0.7;
}
header .logo span {
    display: none;
}
header .wrapper {
    display: grid;
    column-gap: 10px;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    justify-content: space-between;

}
header .wrapper > .logo {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}
.vertical header .wrapper > .logo {
    position: static;
    transform: none;
}
header .buttons:has(.burger) {
    justify-self: end;
}
header .wrapper > .buttons svg {
    fill: var(--text-color);
}
.vertical header .logo span {
    color: var(--text-color);
}
.vertical header .wrapper {
    height: 127px;
}
.vertical header .wrapper > .logo {
    width: 240px;
    min-height: 127px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 3px solid var(--dark);
    font-size: 18px;
    opacity: 1;
    transition: 0.2s linear;
}
.vertical header .wrapper > .logo::before {
    content: '';
    position: absolute;
    inset: 2px;
    border: 2px solid var(--dark);
}
.vertical header .wrapper > .logo span {
    display: inline-block;
    font-family: inherit;
    font-weight: inherit;
    font-size: 10px;
    line-height: 80%;
}
footer {
    display: none;
}
.promo {
    background: url(/resource/images/2024/12/image-162.webp) center top / cover;
}
.promo * {
    font-family: 'Lato';
}
:-webkit-autofill {
    box-shadow: inset 0 0 0 50px #E9E6E7 !important;
    background: transparent;
}
.promo .wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: start;
    height: 100%;
    max-width: 460px;
    padding: 31vh 0 0;
}
.promo :is(h1, h2) {
    display: block;
    text-align: center;
    font-size: 20px;
    font-weight: 400;
    text-transform: uppercase;
}
.promo :is(h1, h2) + p {
    color: var(--menu-bg);
    text-align: center;
    font-family: Lato;
    font-size: 13px;
    font-weight: 400;
    margin: 46px auto 15px;
}
.promo input {
    width: 100%;
    background: #F4F3F3;
    height: 48px;
    font-size: 16px;
    text-align: left;
    transition: background-color 0.2s linear, border-color 0.2s linear;
}
.promo form {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 340px;
    padding: 55px 30px;
    border-radius: 3px;
    border: 1px solid #FFF;
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0px 40px 74px 0px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
}
.promo form .btn {
    min-width: 100px;
    height: 35px;
    font-size: 13px;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 3px;
}
.promo form button {
    text-align: center;
    font-size: 13px;
    line-height: 100%;
    background: none;
}
.promo form button:disabled {
    color: rgba(45, 47, 46, 0.2);
}
.promo form > div {
    width: 100%;
}
.promo.email-login form .email,
.promo form .phone {
    width: min(300px, 100%);
}
.promo :is(.password, .code-password) {
    height: 48px;
}
.promo :is(.password, .code-password) > input {
    padding-right: 60px;
}
.promo :is(.password, .code-password) .check {
    position: absolute;
    top: 12px;
    right: 20px;
    width: 24px;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.promo :is(.password, .code-password) .check input {
    display: none;
}
.promo :is(.password, .code-password) .check label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    cursor: pointer;
}
.promo :is(.password, .code-password) .check label::before {
    content: '\e90a';
    font-family: 'icon';
    font-size: 22px;
    height: 22px;
    transition: color 0.2s linear;
}
.promo :is(.password, .code-password) .check input[type=checkbox]:checked + label::before {
    content: '\e901';
}
.pass-wrong {
    display: flex;
    justify-content: space-between;
}
.code-wrong {
    display: none;
    font-size: 13px;
    margin: 1px auto 0;
    color: var(--error);
}
.promo form .sms-code {
    display: none;
    flex-direction: column;
    gap: 20px;
    width: min(290px, 100%);
    margin-top: 30px;
}
.promo form .sms-code.active {
    display: flex;
}
.promo form .sms-code p {
    text-align: center;
    font-size: 13px;
    color: #606161;
}
.promo form .sms-code p.text {
    color: #34A476;
}
.promo form .sms-code p:has(.counter) {
    display: none;
    gap: 8px;
    align-items: center;
    margin: 0 auto;
}
.promo form .sms-code p:has(.counter).active {
    display: flex;
}
.promo form .sms-code p span {
    font-weight: 700;
    font-size: inherit;
    color: inherit;
}
.promo form .sms-code div {
    display: none;
    gap: 4px;
    align-items: center;
    color: #606161;
    font-size: 13px;
    font-weight: 400;
    margin: 0 auto;
}
.promo form .sms-code div button {
    color: inherit;
    line-height: inherit;
    font-weight: 700;
}
.promo form .sms-code div.active {
    display: flex;
}
.promo form :is(:is(.password, .code-password), .sms-code) {
    position: relative;
    display: none;
    flex-direction: column;
    margin-top: 22px;
    width: min(300px, 100%);
}
.promo form :is(:is(.password, .code-password), .sms-code).active {
    display: flex;
}
.promo form :is(:is(.password, .code-password), .sms-code).error input {
    border-color: var(--error);
}
.promo form :is(:is(.password, .code-password), .sms-code) .pass-wrong {
    display: flex;
    justify-content: space-between;
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    opacity: 1;
    color: var(--error);
    transition: .3s linear;
    width: 100%;
}
.promo form :is(:is(.password, .code-password), .sms-cod) .pass-wrong p {
    color: var(--error);
    text-align: center;
    opacity: 0;
    font-size: 13px;
    transition: .3s linear;
}
.promo form :is(:is(.password, .code-password), .sms-cod) .pass-wrong span {
    text-decoration: underline;
    font-size: 13px;
    color: #2D2F2E;
    cursor: pointer;
}
.promo form .enter {
    display: none;
    flex-direction: column;
    width: min(300px, 100%);
    margin: 45px 0 35px;
}
.promo form .enter.active {
    display: flex;
}
.promo form .enter.hide-restore {
    margin-top: 30px;
}
.promo form .restore {
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 2px;
    margin: 4px 0 30px auto;
    transition: color 0.2s linear;
    background: none;
    height: initial;
    text-transform: none;
}
.promo form .hide-restore .restore {
    display: none;
}
.promo form .registration {
    display: none;
    flex-direction: column;
    margin-bottom: 10vh;
}
.promo form .registration.active {
    display: flex;
}
.promo form .registration p {
    font-size: 13px;
    color: var(--color);
    text-align: center;
    margin: 4px 0 20px;
}
.promo form .registration .message {
    color: #000;
    text-align: center;
    line-height: 200%;
    text-transform: uppercase;
    margin-bottom: 35px;
    font-size: 12px;
}
.promo.email-login .registration .email-wrong,
.promo .registration .phone-wrong {
    color: var(--error);
}
.promo .registration .buttons {
    display: grid;
    grid-template-columns: repeat(2, auto);
    justify-content: center;
    gap: 40px;
}
.promo .send {
    margin: 0 auto;
    padding: 0 25px;
}
.promo .send.hide {
    display: none;
}

.promo form .switch {
    margin-top: auto;
    color: var(--menu-bg);
    font-weight: 300;
    font-size: 13px;
    span {
        font-size: inherit;
    }
}
@media screen and (max-width: 1500px) {
    header .wrapper > .logo {
        font-size: 60px;
    }
    .promo form {
        padding: 30px;
    }
    .promo :is(h1, h2) + p {
        margin: 25px auto 15px;
    }
    .promo form .registration {
        margin-bottom: 95px;
    }
    .promo form .enter {
        margin: 20px 0;
    }
    .promo form :is(:is(.password, .code-password), .sms-code) {
        margin-top: 20px;
        padding-bottom: 20px;
    }
}
@media screen and (max-width: 1279px) {
    header .wrapper > .logo {
        font-size: 35px;
    }
    .promo {
        background: url(/resource/images/2024/12/frame-1437254825.webp) center top / cover;
    }
}
@media screen and (max-width: 767px) {
    header {
        padding-top: 20px;
    }
    .vertical header {
        padding: 30px 20px 0;
    }
    .vertical header .wrapper {
        height: initial;
    }
    .vertical header .wrapper > .logo {
        width: 112px;
        min-height: 58px;
        font-size: 9px;
        border: none;
        background: url(../images/logo.svg) 0 0 / 100% 100%;
        &::before {
            display: none;
        }
        span {
            font-size: 5px;
        }
    }
    .promo {
        background: url(/resource/images/2024/12/frame-1437254788.webp) center top /cover;

    }
    .promo form {
        width: calc(100% - 40px);
    }
}
@media screen and (max-width: 1024px) and (max-height: 431px) {
    header {
        padding-top: 10px;
    }
    header .wrapper {
        height: auto;
    }
    .promo {
        max-width: initial;
        padding-top: 10px;
    }
    .promo form {
        margin: 10px 0;
    }
    .promo input {
        height: 38px;
    }
    .promo form button {
        height: 30px;
    }
    .promo.email-login form .phone::before,
    .promo form .phone::before {
        top: 10px;
        font-size: 20px;
    }
    .promo :is(.password, .code-password) .check {
        top: 8px;
    }
    .promo :is(.registration, :is(.password, .code-password)) :is(.phone-wrong, .pass-wrong) {
        font-size: 12px;
    }
    .promo .help {
        position: fixed;
        bottom: 20px;
        right: 30px;
        font-size: 13px;
    }
    .promo span.restore {
        font-size: 12px;
        margin-bottom: 10px;
    }
    .promo .registration .email-wrong,
    .promo .registration .phone-wrong {
        margin: 1px 0 20px;
    }
    .promo form .registration .message {
        line-height: 1;
        font-size: 13px;
        margin-bottom: 15px;
    }
    .code-wrong {
        font-size: 12px;
    }
}
@media screen and (hover:hover) {
    .promo input:hover {
        border-color: rgba(45, 47, 46, 0.36);
        background-color: rgba(255, 255, 255, 0.5);
    }
    .promo .help:hover,
    .promo :is(.password, .code-password) .check label:hover::before,
    .promo form .restore:hover {
        color: var(--hover)
    }
}