:root{--ink:#1c2b24;--paper:#faf7f2;--accent:#2f5d50;--line:#d9d2c4}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}.container{max-width:960px;margin:0 auto;padding:24px 20px 64px}.hero{display:grid;grid-template-columns:2fr 1fr;grid-gap:8px;gap:8px;border-radius:12px;overflow:hidden;margin-bottom:24px}.hero img{width:100%;height:100%;object-fit:cover;display:block}.hero-side{display:grid;grid-template-rows:1fr 1fr;grid-gap:8px;gap:8px}h1{font-size:2rem;margin:0 0 4px}.subtitle{color:#556;margin:0 0 24px}.layout{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:32px;gap:32px}@media (max-width:800px){.hero,.layout{grid-template-columns:1fr}}.section{margin-bottom:28px}.section h2{font-size:1.1rem;margin-bottom:8px}.amenities{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:0;list-style:none;margin:0}.amenities li{padding:6px 0;border-bottom:1px solid var(--line);font-size:.95rem}.booking-card{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;position:-webkit-sticky;position:sticky;top:20px;height:-moz-fit-content;height:fit-content}.rate{font-size:1.3rem;font-weight:600;margin-bottom:12px}.rate span{font-size:.85rem;font-weight:400;color:#667}.calendar{margin-bottom:16px}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px;font-size:.8rem}.cal-day{padding:6px 0;text-align:center;border-radius:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cal-day.blocked{background:#eee;color:#aaa;cursor:not-allowed;text-decoration:line-through}.cal-day.selected{background:var(--accent);color:#fff}.cal-day.in-range{background:#cfe0da}.cal-day.empty{visibility:hidden}.cal-nav-btn{border:none;background:none;cursor:pointer;font-size:1rem;padding:4px 8px}form.booking-form{display:grid;grid-gap:10px;gap:10px;margin-top:16px}form.booking-form input{padding:10px;border:1px solid var(--line);border-radius:8px;font-size:.95rem}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px;font-size:1rem;cursor:pointer;margin-top:4px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.error-text{color:#b0453d;font-size:.85rem}.total-line{display:flex;justify-content:space-between;font-size:.9rem;padding:4px 0}.total-line.due{font-weight:700;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}