@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap";:root{font-family:Roboto,system-ui,sans-serif;color:#171b18;background:#f1f8f3;font-synthesis:none;--green: #116d3a;--green-strong: #0b5b2e;--green-soft: #e3f0e6;--surface: #fff;--text: #171b18;--muted: #6f7771;--line: #dce5de;--danger: #a43d37;--radius-sm: 14px;--radius-md: 22px;--radius-lg: 30px;--shadow: 0 8px 28px rgba(24, 56, 36, .07)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:#f1f8f3}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(17,109,58,.25);outline-offset:3px}.page-shell{width:min(100%,940px);margin:0 auto;padding:16px 16px 190px}.location-hero{position:relative;overflow:hidden;color:#fff;background:#10251a;padding:30px;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.location-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-100px;bottom:-150px;background:#174a2b;opacity:.7}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#ffffff12;color:#dce9df;font-size:13px;text-transform:uppercase;letter-spacing:.06em}.location-hero h1{position:relative;z-index:1;margin:24px 0 8px;font-size:clamp(31px,5vw,48px);line-height:1.05;letter-spacing:-.035em}.hero-description{max-width:610px;color:#c8d3cc;line-height:1.55}.hero-details{display:grid;gap:12px;margin-top:24px;color:#dce3de}.hero-details div,.hero-details a{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.hero-details svg{width:20px;color:#8dc09f}.directions{color:#aebdb3;font-size:14px}.socials{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.socials a{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;background:#ffffff14;color:#fff;font-size:13px;text-decoration:none}.vk-icon{font-weight:700;font-size:11px}.booking-flow{display:grid;gap:60px;margin-top:50px}.step-title{display:flex;align-items:center;gap:16px;margin-bottom:22px}.step-title>span{flex:0 0 44px;height:44px;display:grid;place-items:center;border-radius:15px;background:#171b18;color:#fff;font-size:19px;font-weight:700}.step-title h2{margin:0;font-size:clamp(25px,4vw,34px);letter-spacing:-.03em}.step-title small{margin-left:auto;color:#89908b}.room-list{display:grid;gap:16px}.room-card{position:relative;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:border-color .2s,transform .2s}.room-card.selected{border:2px solid var(--green);padding:21px}.room-select{width:100%;padding:0;border:0;background:transparent;text-align:left;color:var(--text)}.room-select h3,.service-card h3{margin:0;font-size:22px;letter-spacing:-.02em}.room-select p,.service-card p{margin:7px 0 0;color:var(--muted);line-height:1.45}.room-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.room-meta span{display:flex;align-items:center;gap:6px;color:var(--muted)}.room-meta strong,.service-card strong{color:var(--green)}.selected-mark{position:absolute;top:17px;right:17px;display:flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:13px;font-weight:700}.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:20px}.photo-strip button{padding:0;border:0;border-radius:var(--radius-sm);overflow:hidden;background:#e9eeea;aspect-ratio:16/10}.photo-strip img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.photo-strip button:hover img{transform:scale(1.04)}.photo-placeholder{display:flex;align-items:center;justify-content:center;gap:9px;min-height:100px;margin-top:20px;border-radius:var(--radius-md);background:#edf3ee;color:#819087}.gallery{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#060c08eb;padding:50px 16px}.gallery img{max-width:min(1100px,100%);max-height:calc(100vh - 100px);border-radius:18px;object-fit:contain}.gallery button{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:#ffffff1f;color:#fff}.gallery-close{top:20px;right:20px}.gallery-prev{left:20px;top:50%}.gallery-next{right:20px;top:50%}.gallery p{position:absolute;bottom:18px;color:#fff}.duration{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:-4px 0 16px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md)}.duration label{display:block;font-weight:600}.duration p{margin:5px 0 0;color:var(--muted);font-size:13px}.duration-counter{display:flex;align-items:center;gap:14px}.duration-counter button{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green)}.duration-counter button:last-child{border-color:var(--green);background:var(--green);color:#fff}.duration-counter button:disabled{opacity:.3;cursor:default}.duration-counter output{min-width:82px;display:flex;align-items:baseline;justify-content:center;gap:6px}.duration-counter output strong{font-size:28px}.duration-counter output span{color:var(--muted);font-size:14px}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill-row button,.slots button{min-height:48px;padding:0 19px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font-weight:600}.pill-row button.active,.slots button.active{border-color:var(--green);background:var(--green);color:#fff}.calendar-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow)}.calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center}.calendar-head strong{text-transform:capitalize}.calendar-head button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:12px;background:#f1f5f2;color:var(--text)}.calendar-head button:disabled{opacity:.3;cursor:default}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.weekdays{margin:18px 0 8px;color:#89918b;font-size:12px;font-weight:600}.calendar-grid{transition:opacity .2s}.calendar-grid.loading{opacity:.45}.calendar-grid button{aspect-ratio:1;min-width:0;border:0;border-radius:12px;background:transparent;color:var(--text)}.calendar-grid button:hover:not(:disabled){background:var(--green-soft)}.calendar-grid button.active{background:var(--green);color:#fff;font-weight:700}.calendar-grid button:disabled{color:#c4c9c5;text-decoration:line-through;cursor:default}.time-section{margin-top:22px}.time-section h3{margin:0 0 12px;font-size:17px}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.slots button{padding:0 8px}.skeletons span{height:50px;border-radius:14px;background:linear-gradient(90deg,#eaf0eb 20%,#f7faf7,#eaf0eb 80%);background-size:300% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-150% 0}}.cleaning-note{display:flex;align-items:flex-start;gap:11px;margin-top:18px;color:var(--muted);line-height:1.5;font-size:14px}.cleaning-note svg{flex:0 0 20px;color:var(--green)}.guest-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.guest-copy{display:flex;align-items:center;gap:15px}.guest-copy strong{display:block;font-size:19px}.guest-copy p{margin:5px 0 0;color:var(--muted);font-size:14px}.icon-box{flex:0 0 54px;width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:var(--green-soft);color:var(--green)}.counter,.service-counter{display:flex;align-items:center;gap:12px}.counter button,.service-counter button{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green)}.counter button:last-child{border-color:var(--green);background:var(--green);color:#fff}.counter button:disabled{opacity:.35}.counter output{min-width:24px;text-align:center;font-size:24px;font-weight:700}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.service-card{position:relative;display:flex;flex-direction:column;gap:18px;min-height:210px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow)}.service-card.selected{border-color:var(--green)}.service-top{display:flex;justify-content:space-between}.service-card h3{font-size:18px}.service-card strong{display:block;margin-top:10px}.switch{width:49px;height:29px;padding:3px;border:0;border-radius:999px;background:#d5d9d6}.switch span{display:block;width:23px;height:23px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0002;transition:transform .2s}.switch.on{background:var(--green)}.switch.on span{transform:translate(20px)}.service-counter{margin-top:auto}.service-counter button{width:38px;height:38px}.service-counter output{font-weight:700}.contact-card,.promo-card,.price-breakdown{padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow)}.contact-card{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-card label>span,.promo-card label{display:block;margin-bottom:8px;color:var(--muted);font-size:13px;font-weight:600}.contact-card input,.promo-card input{width:100%;height:54px;padding:0 15px;border:1px solid var(--line);border-radius:14px;background:#fbfcfb;color:var(--text)}.contact-card input:focus,.promo-card input:focus{border-color:var(--green)}.field-error,.inline-error{margin:7px 0 0;color:var(--danger);font-size:13px}.promo-card{box-shadow:none}.promo-open{padding:0;border:0;background:transparent;color:var(--green);font-weight:700}.promo-card>div{display:flex;gap:9px}.promo-card button:not(.promo-open){padding:0 18px;border:0;border-radius:14px;background:#17231b;color:#fff;font-weight:600}.promo-card button:disabled{opacity:.5}.promo-success{margin:10px 0 0;color:var(--green);font-size:13px}.price-breakdown h3{margin:0 0 16px}.price-breakdown dl{margin:0}.price-breakdown dl div{display:flex;justify-content:space-between;gap:20px;padding:8px 0}.price-breakdown dt{color:var(--muted)}.price-breakdown dd{margin:0;font-weight:600}.price-breakdown .discount dt,.price-breakdown .discount dd{color:var(--green)}.price-breakdown .total{margin-top:10px;padding-top:18px;border-top:1px solid var(--line);font-size:21px}.price-breakdown .total dt{color:var(--text);font-weight:700}.empty-state{padding:22px;border:1px dashed #cbd6ce;border-radius:var(--radius-md);color:var(--muted);text-align:center}.empty-state p{margin-top:0}.text-button{border:0;background:transparent;color:var(--green);font-weight:700}.submit-error{display:flex;gap:10px;align-items:flex-start;padding:15px;border-radius:14px;background:#fff0ef;color:var(--danger)}.privacy{margin:-30px 0 0;color:#8a928c;font-size:12px;text-align:center}.booking-summary{position:fixed;z-index:40;left:0;right:0;bottom:0;padding:14px max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-top:1px solid #e5ebe6;background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.summary-inner{width:min(100%,908px);margin:auto;display:grid;grid-template-columns:1fr auto 280px;align-items:center;gap:20px}.summary-copy{display:grid;gap:5px}.summary-copy span{color:var(--green);font-size:14px}.summary-copy .missing{color:var(--muted)}.summary-price{display:grid;text-align:right}.summary-price s{color:#949b96;font-size:13px}.summary-price strong{font-size:26px}.book-button{height:58px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:17px;background:var(--green);color:#fff;font-size:17px;font-weight:700;box-shadow:0 9px 22px #116d3a33}.book-button:disabled{background:#b9c3bc;box-shadow:none;cursor:not-allowed}.success-backdrop{position:fixed;z-index:120;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0a100c94;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.success-modal{width:min(100%,520px);max-height:calc(100vh - 30px);overflow:auto;padding:34px;border-radius:32px;background:#fff;text-align:center;box-shadow:0 30px 80px #0004}.success-icon{width:82px;height:82px;display:grid;place-items:center;margin:0 auto 22px;border-radius:50%;background:var(--green);color:#fff}.success-icon svg{width:42px;height:42px}.success-modal h2{margin:0;font-size:30px}.success-modal>p{color:var(--muted)}.success-details{margin:24px 0 18px;padding:20px;border-radius:20px;background:#f6f8f6;text-align:left}.success-details h3{margin:0 0 16px}.success-details p{display:flex;align-items:center;gap:10px;margin:12px 0;color:#535b55}.success-details p svg{width:19px;color:var(--green)}.success-details>div{display:flex;justify-content:space-between;margin-top:18px;padding-top:18px;border-top:1px dashed #d5ddd7}.success-details>div strong{color:var(--green);font-size:21px}.success-phone{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);text-decoration:none}.success-close{width:100%;height:56px;margin-top:24px;border:0;border-radius:16px;background:#151815;color:#fff;font-weight:700}.prepayment-box{margin:0 0 20px;padding:22px;border:1px solid #cfe0d3;border-radius:22px;background:#f0f7f2;text-align:left}.prepayment-caption{display:block;color:var(--muted);font-size:13px}.prepayment-amount{display:block;margin:3px 0 14px;color:var(--green);font-size:32px}.transfer-method{display:block;margin-bottom:12px;font-weight:700}.prepayment-box dl{margin:0}.prepayment-box dl div{display:flex;justify-content:space-between;gap:20px;padding:7px 0}.prepayment-box dt{color:var(--muted)}.prepayment-box dd{margin:0;text-align:right;font-weight:600}.prepayment-box>p{color:var(--muted);line-height:1.45}.copy-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:15px;border:1px solid #bed3c3;border-radius:14px;background:#fff;color:var(--green);font-weight:700}.copy-button svg{width:18px}.payment-deadline{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;color:#394d3e}.payment-deadline svg{width:18px;color:var(--green)}.manual-note{margin:16px 0 0;padding-top:15px;border-top:1px dashed #c9d8cc;font-size:13px;text-align:center}.success-modal:has(.prepayment-box){width:min(100%,560px)}.boot-state{min-height:100vh;display:grid;place-content:center;justify-items:center;padding:24px;color:var(--muted);text-align:center}.boot-state svg{width:44px;height:44px;color:var(--green)}.boot-state h1{color:var(--text)}.boot-state button{height:48px;padding:0 20px;border:0;border-radius:14px;background:var(--green);color:#fff}.spinner{width:38px;height:38px;border:4px solid #dce9df;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:720px){.room-list{grid-template-columns:repeat(2,1fr)}.room-list:has(.room-card:only-child){grid-template-columns:minmax(0,1fr)}#date-time{display:grid;grid-template-columns:1fr 1fr;gap:16px}#date-time .step-title,#date-time .cleaning-note{grid-column:1 / -1}#date-time .duration{grid-column:1 / -1;margin-bottom:0}.time-section{margin-top:0}}@media(max-width:719px){.page-shell{padding:10px 12px 190px}.location-hero{padding:24px 20px;border-radius:25px}.booking-flow{gap:46px;margin-top:40px}.step-title{gap:12px}.step-title>span{flex-basis:40px;height:40px;border-radius:13px}.step-title h2{font-size:25px}.step-title small{font-size:12px}.room-card{padding:18px;border-radius:24px}.room-card.selected{padding:17px}.room-select h3{padding-right:75px;font-size:21px}.room-meta{align-items:flex-start;flex-direction:column;gap:8px}.selected-mark{top:14px;right:14px}.photo-strip{gap:6px}.calendar-card{padding:14px}.calendar-grid{gap:2px}.calendar-grid button{border-radius:10px}.slots{grid-template-columns:repeat(3,1fr)}.duration{align-items:flex-start;flex-direction:column}.duration-counter{width:100%;justify-content:space-between}.duration-counter output{flex:1}.guest-card{align-items:flex-start;flex-direction:column}.counter{width:100%;justify-content:space-between;padding-top:4px}.counter button{width:52px;height:52px}.service-grid{grid-template-columns:1fr 1fr;gap:10px}.service-card{min-height:205px;padding:16px}.service-card .icon-box{width:46px;height:46px;flex-basis:46px}.service-card h3{font-size:17px}.contact-card{grid-template-columns:1fr}.summary-inner{grid-template-columns:1fr auto;gap:7px 12px}.summary-copy strong{font-size:14px}.summary-copy span{font-size:12px}.summary-price strong{font-size:22px}.book-button{grid-column:1 / -1;height:55px}.success-modal{padding:28px 20px;border-radius:28px}.success-modal h2{font-size:27px}}@media(max-width:380px){.service-grid{grid-template-columns:1fr}.service-card{min-height:175px}.slots{grid-template-columns:repeat(3,1fr)}.photo-strip{grid-template-columns:repeat(2,1fr)}.photo-strip button:nth-child(3){display:none}.promo-card>div{flex-direction:column}.promo-card button:not(.promo-open){height:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
