/* Вошедший гость: общая шапка, нижнее меню и экраны кабинета. */
body { padding-bottom: 68px; }
.g-top { position: relative; height: 70px; }
.g-logo { position: absolute; left: 21px; top: 24px; font-size: 27px; letter-spacing: -.04em; }
.g-bell { position: absolute; right: 125px; top: 22px; border-radius: 50%; }
.g-bell b { position: absolute; left: 17px; top: -7px; display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--accent-soft); font-size: 10px; font-weight: 800; }
.g-ava { position: absolute; right: 66px; top: 15px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--avatar); color: var(--avatar-ink); font-size: 15px; font-weight: 800; }
.g-gear { position: absolute; right: 21px; top: 22px; border-radius: 50%; }
.g-h1 { margin: 13px 0 0 20px; color: var(--white); font-size: 22px; font-weight: 700; line-height: 30px; letter-spacing: -.01em; }
.g-h1--p { margin-left: 13px; }
.g-chev { margin-left: auto; }
/* Брони */
.b-sec { margin: 20px 0 0 21px; font-size: 19px; font-weight: 800; line-height: 26px; }
.b-sec--2 { margin-top: 35px; }
.b-sec + .b-row { margin-top: 5px; }
.b-row { display: flex; align-items: center; gap: 16px; height: 99px; margin: 0 16px 0 22px; border-bottom: 1px solid var(--line); }
.b-row img { flex: none; width: 70px; height: 70px; border-radius: 12px; }
.b-row b { display: block; font-size: 17px; font-weight: 700; line-height: 25px; }
.b-row span span { display: block; color: var(--ink-sub); font-size: 14.5px; line-height: 25px; }
.b-row small { display: block; color: var(--ink-2); font-size: 13px; line-height: 21px; }
.b-row small.is-ok { color: var(--ok); }
.b-row .g-chev { margin-right: 4px; }
.b-row:last-child { margin-bottom: 26px; }
/* Профиль */
.pr-head { display: flex; align-items: center; gap: 22px; margin: 9px 15px 0; }
.pr-ava { display: grid; place-items: center; flex: none; width: 76px; height: 76px; border-radius: 50%; background: var(--avatar); color: var(--avatar-ink); font-size: 29px; font-weight: 800; }
.pr-head b { display: block; font-size: 17px; font-weight: 800; line-height: 24px; }
.pr-head div > span { display: block; font-size: 16px; line-height: 30px; }
.pr-head small { display: block; color: var(--ink-2); font-size: 12px; line-height: 22px; }
.pr-head small button { margin-left: 8px; color: var(--link-soft); }
.pr-list { display: grid; gap: 10px; margin: 33px 14px 22px; }
.pr-row { display: flex; align-items: center; gap: 19px; width: 100%; height: 66px; padding: 0 24px; border: 1px solid var(--line); border-radius: 33px; }
.pr-row--low { height: 64px; }
.pr-row b { display: block; font-size: 16px; font-weight: 700; line-height: 22px; }
.pr-row small { display: block; color: var(--ink-2); font-size: 13px; line-height: 22px; }
/* Личные данные */
.d-h1 { margin: 15px 0 0 18px; font-size: 23px; }
.d-sub { margin: 23px 18px 0; font-size: 16px; font-weight: 600; line-height: 20px; color: var(--ink-tab); }
.d-label { display: block; margin: 23px 18px 7px; font-size: 13.5px; font-weight: 700; line-height: 20px; }
.d-label--thin { margin-top: 12px; font-weight: 400; color: var(--ink-tab); }
.d-label small { margin-left: 10px; color: var(--ink-2); font-size: 11.5px; font-weight: 400; }
.d-input { display: block; width: calc(100% - 35px); height: 46px; margin-left: 18px; padding: 0 18px; border: 1px solid var(--line-5); border-radius: 23px; outline: 0; background: var(--plate-3); color: var(--ink); font: inherit; font-size: 14.5px; }
.d-input::placeholder { color: var(--ink-3); opacity: .75; }
.d-save { display: block; width: calc(100% - 35px); height: 44px; margin: 16px 0 23px 18px; border-radius: 22px; background: var(--accent-book); color: var(--white); text-align: center; font-size: 15px; font-weight: 700; }
body:has(.d-h1) { background: var(--bg-deep); }
/* Избранное */
.f-h1 { margin: 6px 0 0 20px; font-size: 21px; font-weight: 600; }
.f-h1--e { margin-top: 5px; font-size: 25px; font-weight: 700; }
.f-card { display: block; margin: 13px 16px 22px 19px; overflow: hidden; border-radius: 18px; background: var(--plate-2); }
.f-card img { display: block; width: 100%; height: 216px; object-fit: cover; }
.f-card div { padding: 6px 14px 11px; }
.f-card b { display: block; font-size: 19px; font-weight: 700; line-height: 26px; }
.f-card span { display: flex; justify-content: space-between; color: var(--ink-tab); font-size: 14px; line-height: 25px; }
.f-card em { display: flex; align-items: center; gap: 5px; font-style: normal; }
.f-empty { display: flex; flex-direction: column; align-items: center; width: 100%; margin: 255px 0 92px; text-align: center; color: var(--ink-tab); font-size: 15px; line-height: 22px; }
.f-empty svg { margin-bottom: 18px; color: var(--white); }
body:has(.f-h1--e) { background: var(--bg-mid); }
/* Уведомления */
.n-h1 { margin: 18px 0 0 16px; font-size: 25px; }
.n-lead { margin: 7px 16px 0; color: var(--ink-2); font-size: 14px; line-height: 20px; }
.n-card { margin: 14px 16px 0; padding: 23.5px 24px; border: 1px solid var(--line); border-radius: 28px; }
.n-card + .n-card { margin-bottom: 32px; }
.n-card h2 { font-size: 18px; font-weight: 700; line-height: 26px; }
.n-card p { margin-top: 9px; color: var(--ink-2); font-size: 14px; line-height: 21px; }
.n-btn { display: block; width: 219px; height: 44px; margin-top: 15px; border: 1px solid var(--line-2); border-radius: 22px; text-align: center; font-size: 14px; font-weight: 700; }
.n-btn--main { border: 0; background: var(--accent); }
/* Банкет */
.q-h1 { margin-top: 5px; text-align: center; font-size: 18.7px; font-weight: 700; line-height: 25px; }
.q-lead { margin: 16px 12px 0 16px; color: var(--ink-tab); font-size: 14.8px; line-height: 22px; }
.q-form { margin: 15px 16px 0; padding: 18px 17px 16px; border: 1px solid var(--line); border-radius: 22px; }
.q-form label { display: block; margin: 13px 0 6px 8px; font-size: 13.8px; font-weight: 500; line-height: 20px; }
.q-form label:first-child { margin-top: 0; }
.q-field { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 44px; padding: 0 20px 0 14px; border: 1px solid var(--line); border-radius: 22px; background: var(--plate-3); font-size: 14.500px; }
.q-field input { width: 100%; border: 0; outline: 0; background: none; color: var(--ink); font-size: 14.500px; }
.q-field input::placeholder { color: var(--ink-3); opacity: .7; }
.q-send { display: block; width: calc(100% + 4px); height: 48px; margin: 12px -2px 0; border-radius: 24px; background: var(--accent-book); color: var(--white); text-align: center; font-size: 14.500px; font-weight: 700; }
.q-note { margin: 15px 14px 0 16px; color: var(--ink-tab); font-size: 13px; line-height: 19px; }
.q-foot { display: flex; align-items: center; gap: 16px; height: 64px; margin: 10px 12px 13px; padding: 0 18px 0 17px; border: 1px solid var(--line); border-radius: 32px; }
.q-ico { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border: 2px solid var(--accent-soft); border-radius: 50%; color: var(--accent-soft); }
.q-t b { display: block; font-size: 17px; font-weight: 700; line-height: 22px; }
.q-t small { display: block; margin-top: 2px; color: var(--ink-2); font-size: 13.500px; }
/* О сервисе, Документы, О нас */
.i-top { position: relative; height: 62px; }
.i-logo { position: absolute; left: 0; right: 0; top: 21px; text-align: center; font-size: 31px; letter-spacing: -.04em; }
.i-gear { position: absolute; right: 21px; top: 18px; border-radius: 50%; }
.i-eyebrow { margin: 11px 19px 0; color: var(--link-soft); font-size: 12px; font-weight: 800; letter-spacing: .07em; line-height: 18px; }
.i-h1 { margin: 6px 19px 0; font-size: 22px; font-weight: 700; line-height: 30px; }
.i-h1--docs { margin-top: 18px; }
.i-h1--about { margin: 20px 16px 0; font-size: 28px; line-height: 36px; }
.i-lead { margin: 3px 19px 0; color: var(--ink-2); font-size: 14.500px; line-height: 22px; }
.i-lead--about { margin: 0 16px; }
.i-list { display: grid; gap: 10px; margin: 21px 16px 0; }
.i-list--2 { margin-top: 15px; }
.i-list--docs { margin: 26px 16px 25px; gap: 9px; }
.i-row { display: flex; align-items: center; gap: 22px; width: 100%; height: 58px; padding: 0 0 0 17px; border: 1px solid var(--line); border-radius: 29px; background: var(--plate-3); }
.i-list--docs .i-row { height: 63px; border-radius: 32px; }
.i-ic { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; }
.i-ic.is-accent { background: var(--accent-book); }
.i-row small { display: block; color: var(--ink-2); font-size: 12.500px; line-height: 19px; }
.i-row b { display: block; font-size: 15.500px; font-weight: 600; line-height: 21px; }
.i-sec { margin: 21px 19px 0; color: var(--ink-2); font-size: 12.500px; font-weight: 700; line-height: 18px; }
.i-sec--soc { margin-top: 15px; }
.i-soc { display: grid; grid-template-columns: repeat(6, 1fr); margin: 4px 18px 14px 13px; }
.i-soc button { display: grid; place-items: center; height: 50px; color: var(--ink-tab); }
.i-box { margin: 25px 16px 0; padding: 12px 24px 14px; border: 1px solid var(--line); border-radius: 28px; }
.i-box + .i-box { margin-top: 10px; }
.i-box small { display: block; color: var(--ink-2); font-size: 11.500px; line-height: 22px; }
.i-box p { margin-top: 3px; font-size: 15.500px; font-weight: 500; line-height: 23px; }
.i-osm { margin: 16px 16px 0; color: var(--ink-2); font-size: 12.500px; line-height: 18px; }
.i-osm button { color: var(--link-soft); }
.i-foot { margin-top: 32px; }
/* Заявка отправлена */
.w-ico { display: grid; place-items: center; width: 62px; height: 62px; margin: 28px auto 0; border-radius: 50%; background: var(--avatar); color: var(--accent-soft); }
.w-h1 { margin-top: 15px; text-align: center; font-size: 18px; font-weight: 700; line-height: 26px; }
.w-lead { margin-top: 6px; text-align: center; color: var(--ink-tab); font-size: 14px; line-height: 22px; }
.w-card { display: flex; gap: 16px; margin: 21px 14px 0; padding: 13px 11px; border: 1px solid var(--line); border-radius: 22px; }
.w-card img { flex: none; width: 90px; height: 90px; border-radius: 12px; }
.w-card b { display: block; font-size: 18.500px; font-weight: 700; line-height: 26px; }
.w-card span span { display: block; margin-top: 3px; color: var(--ink-sub); font-size: 13.500px; line-height: 22px; }
.w-card em { display: inline-flex; align-items: center; gap: 9px; height: 31px; margin-top: 6px; padding: 0 15px; border-radius: 16px; background: var(--status-bg); color: var(--link-soft); font-style: normal; font-size: 14.500px; font-weight: 600; }
.w-chat { position: relative; display: flex; flex-direction: column; align-items: center; height: 295px; margin: 16px 14px 26px; padding-top: 19px; border: 1px solid var(--line); border-radius: 22px; }
.w-chat h2 { font-size: 16.500px; font-weight: 700; line-height: 26px; }
.w-chat svg { margin-top: 56px; color: var(--ink-2); }
.w-chat p { margin-top: 10px; color: var(--ink-tab); font-size: 14px; line-height: 22px; }
.w-send { position: absolute; left: 10px; right: 10px; bottom: 10px; display: flex; align-items: center; height: 41px; padding: 0 4px 0 24px; border: 1px solid var(--line); border-radius: 21px; }
.w-send input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; color: var(--ink); font-size: 14px; }
.w-send input::placeholder { color: var(--ink-3); opacity: .75; }
.w-send button { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--accent-book); }
.w-send svg { margin: 0; color: var(--white); }
/* Бронь подтверждена */
.k-ico { width: 52px; height: 52px; margin-top: 6px; }
.k-h1 { margin-top: 14px; text-align: center; font-size: 21px; font-weight: 700; line-height: 30px; }
.k-lead { margin-top: 2px; text-align: center; color: var(--ink-tab); font-size: 14px; line-height: 20px; }
.k-place { display: flex; gap: 14px; align-items: center; height: 132px; margin: 19px 16px 0; padding: 0 12px; border: 1px solid var(--line); border-radius: 24px; }
.k-place img { flex: none; width: 96px; height: 106px; border-radius: 14px; }
.k-place b { display: block; font-size: 18px; font-weight: 700; line-height: 26px; }
.k-place span span { display: flex; align-items: center; gap: 11px; margin-top: 3px; color: var(--ink-tab); font-size: 12.500px; line-height: 21px; white-space: nowrap; }
.k-steps { display: flex; align-items: center; gap: 9px; height: 24px; margin: 18px 16px 0 20px; font-size: 12px; color: var(--ink-2); }
.k-steps i { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--accent); color: var(--white); }
.k-steps u { flex: 1; height: 1px; background: var(--line); }
.k-steps b { font-weight: 700; color: var(--ink); white-space: nowrap; }
.k-card { margin: 0 16px; border: 1px solid var(--line); border-radius: 24px; }
.k-card h2 { font-size: 18px; font-weight: 700; line-height: 26px; }
.k-meet { height: 175px; margin-top: 19px; padding: 16px 17px; }
.k-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.k-btn { display: flex; align-items: center; justify-content: center; gap: 10px; height: 46px; width: 100%; border: 1px solid var(--line); border-radius: 23px; font-size: 13.500px; font-weight: 600; }
.k-btn--off { margin-top: 10px; color: var(--ink-tab); font-weight: 500; }
.k-main { display: grid; place-items: center; height: 48px; margin: 16px 16px 0; border-radius: 24px; background: var(--accent); color: var(--white); font-size: 15px; font-weight: 700; }
.k-chat { height: 263px; margin-top: 17px; padding: 16px 17px; }
.k-chat p { margin-top: 7px; color: var(--ink-tab); font-size: 13.500px; line-height: 24px; }
.k-chat textarea { display: block; width: 100%; height: 78px; margin-top: 11px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 24px; outline: 0; resize: none; background: none; color: var(--ink); font: inherit; font-size: 13.500px; }
.k-chat textarea::placeholder { color: var(--ink-3); opacity: .75; }
.k-btn--send { margin-top: 10px; font-weight: 500; }
.k-more { display: flex; align-items: center; justify-content: space-between; height: 60px; margin-top: 17px; padding: 0 17px; color: var(--accent-soft); }
.k-more h2 { color: var(--ink); font-size: 19px; }
.k-foot { margin: 18px 20px 26px; color: var(--ink-tab); font-size: 13.500px; line-height: 20px; }
.k-det { margin-top: 18px; padding: 15px 17px 12px; height: 327px; }
.k-det__h { display: flex; align-items: center; justify-content: space-between; color: var(--accent-soft); }
.k-det__h h2 { color: var(--ink); font-size: 19px; }
.k-badge { display: inline-block; margin-top: 8px; padding: 0 14px; height: 30px; border-radius: 15px; background: var(--ok-bg); color: var(--ok); font-size: 13px; line-height: 30px; }
.k-d { display: flex; align-items: center; gap: 14px; height: 56px; color: var(--accent-soft); }
.k-d__half { display: flex; align-items: center; gap: 14px; }
.k-d > i { width: 1px; height: 34px; background: var(--line); }
.k-d small { display: block; color: var(--ink-2); font-size: 12px; line-height: 18px; }
.k-d b { display: block; color: var(--ink); font-size: 14.500px; font-weight: 700; line-height: 20px; white-space: nowrap; }
.k-d b.is-acc { color: var(--accent-ink); }
/* Как это работает */
.h2-h1 { margin: 11px 16px 0; font-size: 18.700px; font-weight: 700; line-height: 26px; }
.h2-lead { margin: 12px 16px 16px; color: var(--ink-tab); font-size: 14.200px; line-height: 20px; }
.h2-step { display: flex; gap: 18px; margin: 0 16px; padding: 18px 0 11px; border-bottom: 1px solid var(--line-3); }
.h2-step:nth-of-type(3) { border: 0; }
.h2-step > span { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--avatar); color: var(--accent-soft); font-size: 14px; font-weight: 700; }
.h2-step h2 { font-size: 15px; font-weight: 700; line-height: 22px; }
.h2-step p { margin-top: 5px; color: var(--ink-tab); font-size: 15px; line-height: 21.700px; }
.h2-sec { margin: 19px 16px 0; font-size: 19px; font-weight: 700; line-height: 28px; }
.h2-faq { margin: 12px 16px 0; padding: 15px 17px 17px; border: 1px solid var(--line); border-radius: 18px; }
.h2-faq h3 { font-size: 15px; font-weight: 700; line-height: 22px; }
.h2-faq p { margin-top: 9px; color: var(--ink-tab); font-size: 15px; line-height: 21.700px; }
.h2-faq a { color: var(--accent-ink); }
.h2-cta { margin: 12px 16px 0; height: 181px; padding-top: 14px; border: 1px solid var(--line); border-radius: 18px; text-align: center; }
.h2-cta h2 { padding-right: 28px; font-size: 18.700px; font-weight: 700; line-height: 26px; }
.h2-cta p { margin: 15px 20px 0; color: var(--ink-tab); font-size: 15px; line-height: 21.700px; }
.h2-cta a { display: inline-grid; place-items: center; width: 162px; height: 46px; margin-top: 14px; border-radius: 23px; background: var(--accent-book); font-size: 14px; font-weight: 600; }
.h2-foot { margin: 22.5px 12px 14px; }
/* Контакты */
.o-h1 { margin: 5px 16px 0; font-size: 29.500px; font-weight: 700; line-height: 36px; }
.o-lead { margin: 8px 16px 0; color: var(--ink-2); font-size: 14px; line-height: 21px; }
.o-card { margin: 13px 16px 0; padding: 15px 18px 17px; border: 1px solid var(--line); border-radius: 26px; }
.o-card h2 { font-size: 18px; font-weight: 700; line-height: 26px; }
.o-row { display: flex; align-items: center; gap: 16px; width: 100%; margin-top: 12px; font-size: 14.500px; }
.o-card > .o-row:first-of-type { margin-top: 15px; }
.o-ic { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--plate); color: var(--accent-ink); }
.o-row small { display: block; color: var(--ink-2); font-size: 12.500px; line-height: 20px; }
.o-row b { display: block; color: var(--accent-ink); font-size: 16.500px; font-weight: 700; line-height: 24px; }
.o-link { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: 15px; color: var(--accent-ink); }
.o-link b { display: block; color: var(--ink); font-size: 15px; font-weight: 700; line-height: 22px; }
.o-link small { display: block; color: var(--ink-2); font-size: 13px; line-height: 18px; }
.o-soc { display: flex; justify-content: space-between; margin: 17px 16px 12px; padding-top: 1px; }
.o-link:first-of-type { margin-top: 17px; }
.o-card--docs { padding-bottom: 26px; }
.o-soc button { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--plate); }
@media (max-width: 360px) {
  .k-steps { font-size: 9.5px; gap: 5px; margin-left: 16px; }
  .k-place span span { white-space: normal; line-height: 16px; }
  .k-d b { white-space: normal; }
  .k-d__half { gap: 6px; }
}
