:root{--paper:#fbfaf7;--surface:#fff;--ink:#1c1b19;--muted:#6b675f;--line:#ece7de;--badge:#f2eee6;--accent:#f2a93b;--accent-strong:#e0961f;--price:#1c7c54;--danger:#b4451f;--radius:12px;--radius-lg:18px;--radius-pill:999px;--shadow-sm:0 1px 2px rgb(28 27 25/5%),0 8px 24px rgb(28 27 25/4%);--shadow-lg:0 24px 60px rgba(28,27,25,.14);--maxw:1140px;--font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:Manrope,var(--font-body)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;line-height:1.08;margin:0}img{max-width:100%}a{color:inherit}button,input,textarea{font:inherit}.btn,button{align-items:center;border:0;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:var(--font-display);font-weight:700;gap:8px;justify-content:center;min-height:46px;padding:11px 20px;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.btn--primary,button{background:var(--accent);color:var(--ink)}.btn--primary:hover,button:hover{background:var(--accent-strong)}button:active{transform:translateY(1px)}.btn--ghost,.button-secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.btn--ghost:hover,.button-secondary:hover{background:var(--badge);border-color:#ddd5c7}button:disabled{cursor:not-allowed;opacity:.55}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.eyebrow{color:var(--muted);font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.14em;margin:0 0 8px;text-transform:uppercase}.eyebrow--light{color:#ffffffe0}.hero{align-items:end;background-color:#2c2822;background-position:50%;background-size:cover;color:#fff;display:flex;min-height:64vh;padding:48px clamp(20px,6vw,88px) 132px}.hero__inner{animation:rise .6s ease both;max-width:760px}.hero__title{font-size:clamp(38px,6.5vw,72px);font-weight:800;margin:0;text-shadow:0 2px 24px rgba(20,18,14,.3)}.hero__subtitle{font-size:clamp(17px,2vw,20px);line-height:1.5;margin:16px 0 0;max-width:620px;opacity:.94}.shell{margin:-108px auto 0;max-width:var(--maxw);padding:0 clamp(16px,4vw,24px) 80px;position:relative}.section{margin-top:56px}.section__head{align-items:end;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.section__head h2{font-size:clamp(26px,3.5vw,34px)}.section__count{color:var(--muted);font-size:14px;font-weight:600;white-space:nowrap}.empty{color:var(--muted);padding:8px 0}.contacts,.intro{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:clamp(22px,3vw,34px)}.intro{align-items:start;display:grid;gap:32px;grid-template-columns:1.4fr 1fr}.intro__body{color:var(--ink);font-size:17px;line-height:1.65;margin:0}.intro__facts{display:grid;gap:12px;list-style:none;margin:0;padding:0}.intro__facts li{align-items:center;color:var(--muted);display:flex;font-size:15px;gap:10px}.dot{background:var(--accent);border-radius:999px;flex:0 0 auto;height:8px;width:8px}.card-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.card__media{aspect-ratio:4/3;background:var(--badge);overflow:hidden}.card__media img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.card__media-empty{background:radial-gradient(circle at 30% 30%,#fff 0,transparent 60%),linear-gradient(135deg,#f2eee6,#e6dece);height:100%;width:100%}.card__body{display:flex;flex:1;flex-direction:column;gap:12px;padding:20px}.card__title{font-size:20px;font-weight:700}.card__desc{color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;margin:0;overflow:hidden}.card__foot{margin-top:auto;padding-top:4px}.card__foot .btn{width:100%}.card__hint{color:var(--muted);font-size:14px;margin:auto 0 0}.card__hint a{color:var(--accent-strong);font-weight:600;text-decoration:none}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill{align-items:center;background:var(--badge);border-radius:var(--radius-pill);color:var(--ink);display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 12px}.pill--accent{background:#f2a93b2e;color:#8a5a11}.icon{height:15px;width:15px}.pill .icon{height:14px;width:14px}.contacts__head{margin-bottom:18px}.contacts__head h2{font-size:clamp(24px,3vw,30px)}.contacts__list{display:grid;gap:14px;list-style:none;margin:0 0 22px;padding:0}.contacts__list li{align-items:center;color:var(--ink);display:flex;gap:12px}.contacts__list .icon{color:var(--accent-strong);flex:0 0 auto}.contacts__list a{color:var(--ink);text-decoration:none}.contacts__list a:hover{text-decoration:underline}.contacts__map{width:-moz-fit-content;width:fit-content}.footer{border-top:1px solid var(--line);color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;margin:40px auto 0;max-width:var(--maxw);padding:28px clamp(16px,4vw,24px) 44px}.footer p{margin:0}.footer__muted{font-size:14px}.booking-anchor{animation:rise .6s ease .05s both;scroll-margin-top:20px}.booking-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:grid;gap:20px;padding:clamp(20px,3vw,32px)}.booking-panel__header{align-items:center;display:flex;gap:16px;justify-content:space-between}.booking-panel__header h2{font-size:clamp(22px,3vw,28px)}.booking-panel__badge{background:#1c7c541a;border-radius:var(--radius-pill);color:var(--price);flex:0 0 auto;font-size:13px;font-weight:700;padding:8px 14px}.search-form{align-items:end;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:14px;grid-template-columns:minmax(0,2fr) minmax(0,.8fr) auto;padding:16px}.booking-panel--vertical .search-form{grid-template-columns:1fr}.search-form>button{min-width:150px}label{color:var(--muted);display:grid;font-size:13px;font-weight:600;gap:6px}input,textarea{background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--ink);min-height:46px;padding:11px 13px;width:100%}input:focus,textarea:focus{border-color:var(--accent-strong);box-shadow:0 0 0 3px #f2a93b33;outline:none}.field--invalid{color:var(--danger)}.input--invalid,.input--invalid:focus{background:#fdf4f0;border-color:var(--danger);box-shadow:0 0 0 3px #b4451f24}.field-error{color:var(--danger);font-size:12px;font-weight:600;line-height:1.35}.alert{border-radius:var(--radius);font-weight:500;padding:12px 16px}.alert--error{background:#fdf1ec;color:var(--danger)}.alert__hint{display:block;font-size:13px;font-weight:400;margin-top:4px}.restricted-list{border:1px dashed var(--line);border-radius:var(--radius);display:grid;gap:12px;padding:16px 18px}.restricted-room h3{font-size:16px}.restricted-room ul{color:var(--muted);margin:6px 0 0;padding-left:18px}.restricted-room li+li{margin-top:2px}.restricted-list__hint{color:var(--muted);font-size:13px;margin:0}.date-range{min-width:0;position:relative}.date-range__fields{display:grid;gap:14px;grid-template-columns:1fr 1fr}.date-range__col{display:grid;gap:6px;min-width:0}.date-range__label{color:var(--muted);font-size:13px;font-weight:600}.date-range .date-field{-webkit-tap-highlight-color:transparent;background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:var(--font-body);font-weight:500;justify-content:space-between;min-height:46px;padding:11px 13px;text-align:left;width:100%}.date-range .date-field:hover{background:var(--surface);border-color:#ddd5c7}.date-range .date-field--active,.date-range .date-field--active:hover{border-color:var(--accent-strong);box-shadow:0 0 0 3px #f2a93b33}.date-field__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-field__icon,.date-field__value--empty{color:var(--muted)}.date-field__icon{flex:0 0 18px;height:18px;width:18px}.date-popover{left:0;position:absolute;top:calc(100% + 8px);z-index:40}.date-panel{--range:rgba(242,169,59,.24);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-width:calc(100vw - 32px);padding:18px}.date-panel__months{display:grid;gap:28px;grid-auto-columns:280px;grid-auto-flow:column}.date-panel--vertical .date-panel__months{gap:22px;grid-auto-columns:auto;grid-auto-flow:row;max-height:min(440px,60vh);overflow-y:auto;overscroll-behavior:contain;width:300px}.date-month__head{align-items:center;display:flex;justify-content:center;margin-bottom:10px;min-height:36px;position:relative}.date-month__title{font-size:15px;font-weight:700}.date-panel--vertical .date-month__head{background:var(--surface);position:sticky;top:0;z-index:1}.date-panel .date-month__nav{-webkit-tap-highlight-color:transparent;background:var(--surface);border:1px solid var(--line);border-radius:50%;color:var(--ink);height:36px;min-height:36px;padding:0;position:absolute;width:36px}.date-panel .date-month__nav:first-child{left:0}.date-panel .date-month__nav:last-child{right:0}.date-panel .date-month__nav:hover:not(:disabled){background:var(--badge)}.date-month__nav svg,.date-panel__close svg{height:18px;width:18px}.date-month__weekdays,.date-panel__weekdays{color:var(--muted);display:grid;font-size:12px;font-weight:600;grid-template-columns:repeat(7,1fr);margin-bottom:4px;text-align:center;text-transform:uppercase}.date-panel__weekdays{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:8px}.date-month__grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}.date-panel .date-day{-webkit-tap-highlight-color:transparent;aspect-ratio:1;border-radius:0;color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:500;min-height:0;padding:2px;transition:none}.date-panel .date-day,.date-panel .date-day:hover{background:transparent}.date-day__num{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background-color .12s ease;width:100%}.date-panel .date-day:not(:disabled,.date-day--start,.date-day--end):hover .date-day__num{background:var(--badge)}.date-panel .date-day--today .date-day__num{box-shadow:inset 0 0 0 1.5px var(--accent-strong)}.date-panel .date-day--range,.date-panel .date-day--range:hover{background:var(--range)}.date-panel .date-day--with-end,.date-panel .date-day--with-end:hover{background:linear-gradient(90deg,transparent 50%,var(--range) 50%)}.date-panel .date-day--end,.date-panel .date-day--end:hover{background:linear-gradient(90deg,var(--range) 50%,transparent 50%)}.date-panel .date-day--end .date-day__num,.date-panel .date-day--start .date-day__num{background:var(--accent);box-shadow:none;color:var(--ink);font-weight:700}.date-panel .date-day:disabled{color:var(--muted);opacity:.4}.date-panel__foot{align-items:center;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;margin-top:16px;padding-top:14px}.date-panel__summary{color:var(--muted);font-size:14px;font-weight:600}.date-panel .date-panel__done{min-height:40px;padding:8px 18px}.date-sheet{align-items:flex-end;display:flex;inset:0;position:fixed;z-index:1000}.date-sheet__backdrop{animation:date-fade .18s ease;background:#1c1b1973;inset:0;position:absolute}.date-panel--phone{animation:date-sheet-up .22s ease;border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:88vh;max-height:88dvh;max-width:none;padding:0 16px calc(12px + env(safe-area-inset-bottom));position:relative;width:100%}.date-panel__head{align-items:center;display:flex;font-family:var(--font-display);font-size:17px;justify-content:space-between;padding:12px 0 8px}.date-panel .date-panel__close{background:transparent;border-radius:50%;color:var(--ink);height:40px;min-height:40px;padding:0;width:40px}.date-panel .date-panel__close:hover{background:var(--badge)}.date-panel--phone .date-panel__months{flex:1;max-height:none;min-height:0;width:auto}.date-panel--phone .date-day{font-size:16px}.date-panel--phone .date-panel__foot{align-items:stretch;flex-direction:column;gap:10px;margin-top:8px}.date-panel--phone .date-panel__summary{text-align:center}.date-panel--phone .date-panel__done{min-height:48px;width:100%}@media(max-width:360px){.date-field__icon{display:none}}@keyframes date-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes date-fade{0%{opacity:0}to{opacity:1}}.available-list{display:grid;gap:14px}.available-list__header{align-items:end;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding-bottom:14px}.available-list__header h3{font-size:20px}.available-list__header span{color:var(--muted);font-size:14px;font-weight:600;text-align:right}.available-room{align-items:center;border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:18px;justify-content:space-between;padding:18px;transition:border-color .15s ease,box-shadow .15s ease}.available-room__main{min-width:0}.available-room__main h3{font-size:18px}.available-room__meta{color:var(--price);display:block;font-size:13px;font-weight:700;margin-bottom:6px}.available-room__main p{color:var(--muted);margin:4px 0 0}.available-room__aside{align-items:end;display:grid;flex:0 0 180px;gap:10px;justify-items:end}.available-room__aside strong,.guest-form__header strong{font-family:var(--font-display);font-size:22px;font-weight:800;white-space:nowrap}.available-room--selected{border-color:var(--accent);box-shadow:0 0 0 2px #f2a93b4d}.guest-form{border-top:1px solid var(--line);display:grid;gap:16px;padding-top:22px}.guest-form__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.guest-form__header h3{font-size:20px}.guest-form__grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.website-field{display:none}.confirmation-panel{display:grid;gap:16px;justify-items:start}.confirmation-panel h2{font-size:clamp(24px,3vw,30px)}.confirmation-panel__mark{align-items:center;background:#1c7c541a;border-radius:999px;display:flex;height:48px;justify-content:center;width:48px}.confirmation-panel__mark:before{background:var(--price);border-radius:999px;content:"";display:block;height:20px;width:20px}.confirmation-panel__lead{color:var(--muted);margin:0;max-width:720px}.confirmation-details{border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;overflow:hidden;width:100%}.confirmation-details div{border-bottom:1px solid var(--line);display:grid;gap:4px;padding:14px 16px}.confirmation-details div:nth-child(odd){border-right:1px solid var(--line)}.confirmation-details dt{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.06em;margin:0;text-transform:uppercase}.confirmation-details dd{font-weight:600;margin:0;overflow-wrap:anywhere}.confirmation-details__total{background:var(--paper);border-bottom:0;border-right:0!important;grid-column:1/-1}.confirmation-details__total dd{color:var(--price);font-family:var(--font-display);font-size:22px;font-weight:800}.confirmation-actions{display:flex;flex-wrap:wrap;gap:12px}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,.booking-anchor,.hero__inner{animation:none!important;transition:none!important}}@media(max-width:860px){.intro{grid-template-columns:1fr}.search-form{grid-template-columns:1fr 1fr}.search-form .date-range{grid-column:1/-1}.guest-form__grid{grid-template-columns:1fr}}@media(max-width:620px){.hero{min-height:56vh;padding-bottom:116px}.section{margin-top:40px}.available-list__header,.booking-panel__header,.guest-form__header,.section__head{align-items:stretch;flex-direction:column;gap:10px}.search-form{grid-template-columns:1fr}.available-room{align-items:stretch;flex-direction:column;gap:14px}.available-room__aside{align-items:stretch;flex:none;justify-items:stretch}.available-list__header span{text-align:left}.confirmation-details{grid-template-columns:1fr}.confirmation-details div,.confirmation-details div:nth-child(odd){border-right:0}.confirmation-actions,.confirmation-actions button{width:100%}}
