.booking-page{--bk-1:4px;--bk-2:8px;--bk-3:12px;--bk-4:16px;--bk-5:20px;--bk-6:24px;--bk-8:32px;--bk-10:40px;--bk-12:48px;--bk-16:64px;--bk-20:80px;--bk-card:16px;--bk-input:10px;background:var(--color-bg)}.booking-page__header{padding:var(--bk-12)0 var(--bk-20);background:var(--color-bg-secondary)}.booking-page__eyebrow{margin:0 0 var(--bk-3);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);font-size:13px;font-weight:600}.booking-page__title{margin:0 0 var(--bk-3);letter-spacing:-.025em;font-size:clamp(2rem,1.4rem + 2.4vw,3rem);font-weight:700;line-height:1.08}.booking-page__subtitle{max-width:52ch;color:var(--color-text-secondary);margin:0;font-size:17px;line-height:1.5}.booking-page__facts{gap:var(--bk-4);margin:var(--bk-8)0 0;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));padding:0;list-style:none;display:grid}.booking-page__fact{gap:var(--bk-1);padding-left:var(--bk-4);border-left:2px solid var(--color-primary);display:grid}.booking-page__fact strong{color:var(--color-text);font-size:16px;font-weight:600;line-height:1.35}.booking-page__fact span{color:var(--color-text-secondary);font-size:14px;line-height:1.45}.booking-page__content{padding:0 0 var(--bk-20);margin:-48px auto 0}.booking-form__layout{gap:var(--bk-6);align-items:start;display:grid}@media (min-width:960px){.booking-form__layout{grid-template-columns:minmax(0,1fr) 360px}}.booking-form__main{gap:var(--bk-8);min-width:0;display:grid}.booking-step{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--bk-card);padding:var(--bk-4);animation:.62s cubic-bezier(.16,1,.3,1) both booking-rise;animation-delay:calc(var(--step-index,0)*90ms)}@media (min-width:640px){.booking-step{padding:var(--bk-6)}}.booking-step__head{align-items:center;gap:var(--bk-3);margin-bottom:var(--bk-5);display:flex}.booking-step__num{background:var(--color-primary);width:28px;height:28px;color:var(--color-white);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:14px;font-weight:600;display:grid}.booking-step__title{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.booking-step__hint{color:var(--color-text-secondary);margin-left:auto;font-size:14px;animation:1.4s ease-in-out infinite booking-pulse}.booking-field-row{gap:var(--bk-3);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.booking-field-row--contacts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.booking-field{gap:var(--bk-2);min-width:0;display:grid}.booking-field--narrow{max-width:180px}.booking-field__label{color:var(--color-text-secondary);font-size:14px;font-weight:500}.booking-field__hint{color:var(--color-text-secondary);font-size:13px}.booking-field input,.booking-field select,.booking-field textarea{width:100%;min-height:48px;padding:var(--bk-3)var(--bk-4);border:1px solid var(--color-border);border-radius:var(--bk-input);font:inherit;color:var(--color-text);background:var(--color-white);font-size:16px;transition:border-color .16s,box-shadow .16s}.booking-field textarea{resize:vertical;min-height:96px;padding-top:var(--bk-3)}.booking-field input:hover,.booking-field select:hover,.booking-field textarea:hover{border-color:var(--color-gray-300)}.booking-field input:focus-visible,.booking-field select:focus-visible,.booking-field textarea:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0a633124}.booking-field-row+.booking-field{margin-top:var(--bk-4)}.booking-quick{align-items:center;gap:var(--bk-2);margin-top:var(--bk-5);flex-wrap:wrap;display:flex}.booking-quick__label{color:var(--color-text-secondary);margin-right:var(--bk-1);font-size:14px}.booking-quick__chip{min-height:44px;padding:0 var(--bk-4);border:1px solid var(--color-border);background:var(--color-white);color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;font-size:14px;font-weight:500;transition:background-color .16s,border-color .16s,color .16s}.booking-quick__chip:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.booking-quick__chip:active{background:var(--color-border-light)}.room-choice{border:0;margin:0;padding:0}.room-choice__legend{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.room-choice__grid{gap:var(--bk-3);grid-template-columns:minmax(0,1fr);display:grid}.room-choice__card{border:1px solid var(--color-border);border-radius:var(--bk-3);background:var(--color-white);cursor:pointer;animation:.56s cubic-bezier(.16,1,.3,1) both booking-rise;animation-delay:calc(var(--card-index,0)*70ms + .12s);grid-template-columns:168px minmax(0,1fr);align-items:stretch;transition:border-color .18s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);display:grid;position:relative;overflow:hidden}.room-choice__card:hover{border-color:var(--color-gray-300);transform:translateY(-2px);box-shadow:0 12px 28px #1018281a}.room-choice__card--active{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.room-choice__card--active .room-choice__body{background:var(--color-bg-secondary)}.room-choice__card--soldout{cursor:not-allowed}.room-choice__card--soldout .room-choice__photo-img{filter:grayscale(.8)}.room-choice__input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.room-choice__input:focus-visible+.room-choice__photo{outline:var(--focus-ring-width,2px)solid var(--focus-ring-color,var(--color-primary));outline-offset:-2px}.room-choice__photo{background:var(--color-bg-secondary);width:100%;height:100%;min-height:116px;display:block;position:relative}.room-choice__photo-img{object-fit:cover;transition:transform .48s cubic-bezier(.16,1,.3,1),filter .24s}.room-choice__card:hover .room-choice__photo-img{transform:scale(1.03)}.room-choice__badge{top:var(--bk-2);left:var(--bk-2);padding:var(--bk-1)var(--bk-2);background:var(--color-white);color:#9a3412;border-radius:999px;font-size:12px;font-weight:600;position:absolute;box-shadow:0 1px 3px #1018282e}.room-choice__badge--busy{color:var(--color-white);background:#b42318}.room-choice__card--active .room-choice__photo:after{content:"";top:var(--bk-2);right:var(--bk-2);background:var(--color-primary)url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;border-radius:50%;width:24px;height:24px;position:absolute}.room-choice__body{gap:var(--bk-1)0;padding:var(--bk-4)var(--bk-5);grid-template-columns:minmax(0,1fr) auto;align-content:center;transition:background-color .18s;display:grid}.room-choice__name,.room-choice__meta{grid-column:1}.room-choice__name{letter-spacing:-.01em;font-size:17px;font-weight:600;line-height:1.3}.room-choice__meta{gap:0 var(--bk-1);color:var(--color-text-secondary);flex-wrap:wrap;font-size:14px;line-height:1.45;display:flex}.room-choice__sep{color:var(--color-gray-300)}.room-choice__price{padding-left:var(--bk-4);text-align:right;grid-area:1/2/-1;align-content:center;justify-items:end;gap:2px;display:grid}.room-choice__price strong{letter-spacing:-.01em;color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:19px;font-weight:700}.room-choice__price-note{color:var(--color-text-secondary);font-size:14px}.room-gallery{gap:var(--bk-2);display:grid}.room-gallery:focus-visible{outline:var(--focus-ring-width,2px)solid var(--focus-ring-color,var(--color-primary));outline-offset:2px}.room-gallery__stage{aspect-ratio:4/3;background:var(--color-bg-secondary);position:relative;overflow:hidden}.room-gallery__photo{object-fit:cover;animation:.42s both booking-fade}.room-gallery__nav{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:#ffffffeb;border:0;border-radius:50%;place-items:center;transition:background-color .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 4px #10182829}.room-gallery__nav svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.room-gallery__nav:hover{background:var(--color-white)}.room-gallery__nav--prev{left:var(--bk-2)}.room-gallery__nav--next{right:var(--bk-2)}.room-gallery__counter{right:var(--bk-3);bottom:var(--bk-3);padding:var(--bk-1)var(--bk-2);color:var(--color-white);font-variant-numeric:tabular-nums;background:#101828b8;border-radius:999px;margin:0;font-size:12px;position:absolute}.room-gallery__strip{gap:var(--bk-2);padding:0 var(--bk-2);scrollbar-width:thin;display:flex;overflow-x:auto}.room-gallery__thumb{aspect-ratio:4/3;border:1px solid var(--color-border);border-radius:var(--bk-2);background:var(--color-bg-secondary);cursor:pointer;opacity:.6;flex:none;width:64px;padding:0;transition:opacity .18s,border-color .18s;position:relative;overflow:hidden}.room-gallery__thumb:hover{opacity:1}.room-gallery__thumb--active{opacity:1;border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.room-gallery__thumb-photo{object-fit:cover}.booking-summary{min-width:0}@media (min-width:960px){.booking-summary{top:calc(var(--header-height,72px) + var(--bk-4));position:sticky}}.booking-summary__card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--bk-card);animation:.7s cubic-bezier(.16,1,.3,1) .16s both booking-rise;overflow:hidden;box-shadow:0 16px 40px #10182814}.booking-summary__body{gap:var(--bk-4);padding:var(--bk-5);display:grid}.booking-summary__head{gap:var(--bk-1);display:grid}.booking-summary__room{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.booking-summary__rate{color:var(--color-primary);font-variant-numeric:tabular-nums;margin:0;font-size:15px;font-weight:600}.booking-summary__rate span{color:var(--color-text-secondary);font-weight:400}.booking-summary__empty{padding:var(--bk-3)var(--bk-4);border-radius:var(--bk-input);background:var(--color-bg-secondary);color:var(--color-text);margin:0;font-size:14px;line-height:1.5}.booking-summary__rows{gap:var(--bk-2);margin:0;padding:0;display:grid}.booking-summary__row{justify-content:space-between;gap:var(--bk-4);font-size:15px;display:flex}.booking-summary__row dt{color:var(--color-text-secondary)}.booking-summary__row dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:500}.booking-summary__total{justify-content:space-between;align-items:baseline;gap:var(--bk-4);padding-top:var(--bk-4);border-top:1px solid var(--color-border);color:var(--color-text-secondary);margin:0;font-size:15px;display:flex}.booking-summary__total strong{letter-spacing:-.02em;color:var(--color-text);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.booking-summary__state{align-items:center;gap:var(--bk-2);color:var(--color-text);margin:0;font-size:14px;font-weight:500;display:flex}.booking-summary__state:before{content:"";background:var(--color-primary);border-radius:50%;flex:none;width:8px;height:8px}.booking-summary__state--busy{color:#b42318}.booking-summary__state--busy:before{background:#b42318}.booking-summary__consent{align-items:flex-start;gap:var(--bk-3);min-height:44px;color:var(--color-text-secondary);cursor:pointer;margin:0;font-size:14px;line-height:1.45;display:flex}.booking-summary__consent input[type=checkbox]{width:22px;height:22px;accent-color:var(--color-primary);cursor:pointer;flex:none;margin:0}.booking-summary__consent a{color:var(--color-primary);text-decoration:underline}.booking-summary__errors{padding:var(--bk-3)var(--bk-4)var(--bk-3)var(--bk-8);border-radius:var(--bk-input);color:#9f1d13;background:#fdecea;margin:0;font-size:14px;line-height:1.45}.booking-summary__submit{width:100%;min-height:56px}.booking-summary__submit:disabled{opacity:.6;cursor:progress}.booking-summary__note{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.5}.booking-bar{display:none}@media (max-width:959px){.booking-bar{align-items:center;gap:var(--bk-4);padding:var(--bk-3)var(--bk-4);padding-bottom:max(var(--bk-3),env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);z-index:var(--z-dropdown);background:#fffffff7;display:flex;position:fixed;inset:auto 0 0}.booking-page__content{padding-bottom:96px}}.booking-bar__info{gap:2px;min-width:0;display:grid}.booking-bar__total{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.booking-bar__meta{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.booking-bar__submit{min-height:48px;padding:0 var(--bk-5);flex:none;margin-left:auto}.booking-bar__submit:disabled{opacity:.6;cursor:progress}.booking-done{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--bk-card);max-width:640px;margin:0 auto;animation:.62s cubic-bezier(.16,1,.3,1) both booking-rise;overflow:hidden;box-shadow:0 16px 40px #10182814}.booking-done__photo{aspect-ratio:16/9;background:var(--color-bg-secondary);position:relative}.booking-done__photo img{object-fit:cover}.booking-done__body{padding:var(--bk-8)}.booking-done__badge{margin:0 0 var(--bk-3);padding:var(--bk-1)var(--bk-3);background:var(--color-bg-secondary);color:var(--color-primary);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;font-size:12px;font-weight:600;display:inline-block}.booking-done__title{margin:0 0 var(--bk-3);letter-spacing:-.02em;font-size:26px;font-weight:700}.booking-done__text{margin:0 0 var(--bk-3);color:var(--color-text-secondary);line-height:1.6}.booking-done__text--note{font-size:14px}.booking-done__actions{gap:var(--bk-3);margin-top:var(--bk-6);flex-wrap:wrap;display:flex}.booking-done__reset{margin-top:var(--bk-4);color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.booking-done__reset:hover{color:var(--color-primary)}.booking-form__note{padding:var(--bk-6);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--bk-3);color:var(--color-text-secondary);margin:0}@keyframes booking-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes booking-fade{0%{opacity:0}to{opacity:1}}@keyframes booking-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.booking-step,.room-choice__card,.booking-summary__card,.booking-done,.room-gallery__photo,.booking-step__hint{animation:none}.room-choice__card,.room-choice__photo-img,.booking-quick__chip{transition:none}}@media (max-width:640px){.booking-page__header{padding:var(--bk-8)0 var(--bk-16)}.booking-page__facts{gap:var(--bk-2);margin-top:var(--bk-5);flex-wrap:wrap;display:flex}.booking-page__fact{padding:var(--bk-2)var(--bk-3);background:var(--color-white);border-left:0;border-radius:999px}.booking-page__fact strong{font-size:13px;font-weight:600}.booking-page__fact span{display:none}.booking-page__content{margin-top:-32px}.booking-quick__label{flex:0 0 100%;margin:0}.room-choice__card{grid-template-columns:88px minmax(0,1fr)}.room-gallery__stage{aspect-ratio:16/10}.room-choice__body{padding:var(--bk-3);grid-template-columns:minmax(0,1fr)}.room-choice__name{font-size:15px}.room-choice__meta{font-size:13px}.room-choice__price{align-items:baseline;gap:var(--bk-1);margin-top:var(--bk-1);text-align:left;grid-area:auto/1;justify-items:start;padding-left:0;display:flex}.room-choice__price strong{font-size:16px}.room-choice__price-note{font-size:12px}.booking-field--narrow{max-width:none}}
