*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth}
body{margin:0;background:#FBFBF8;font-family:Manrope,system-ui,sans-serif;color:#1B231E;line-height:1.55}
a{color:#2F5D46}a:hover{color:#1E3D2E}
button{font-family:inherit}
input,select,textarea{font-family:inherit;font-size:15px}
:focus-visible{outline:3px solid #2F5D46;outline-offset:2px}

/* header navigation */
.nav-link{min-height:44px;padding:0 16px;border:1px solid #C5CCC5;border-radius:999px;font-size:14px;font-weight:600;color:#3F4842;text-decoration:none;display:inline-flex;align-items:center;background:transparent}
.nav-link:hover{color:#1E3D2E;border-color:#8FA095}
.nav-link.active{border-color:#2F5D46;background:#E3ECE6;color:#1E3D2E}

/* calendar */
.cal-nav{width:44px;height:44px;border-radius:999px;border:1px solid #D3D7D1;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.cal-nav:disabled{opacity:.35;cursor:not-allowed}
.cal-title{text-align:center;font-weight:700;font-size:17px;padding:6px 0 10px}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.cal-dow{text-align:center;font-size:12px;color:#5A635D;font-weight:600;padding-bottom:4px}
.cal-empty{height:44px}
.day{height:44px;width:100%;border:1px solid #CFD6CF;border-radius:10px;background:#fff;color:#1B231E;font-weight:600;font-size:14px;cursor:pointer}
.day:hover:not(:disabled){border-color:#2F5D46}
.day.past{background:transparent;color:#A3AAA5;font-weight:400;border-color:transparent;cursor:not-allowed}
.day.booked{background:repeating-linear-gradient(135deg,#F3D6CB 0 5px,#E8BFAE 5px 10px);color:#6E2D16;text-decoration:line-through;text-decoration-thickness:2px;font-weight:700;border-color:#D9A792}
.day.booked:disabled{cursor:not-allowed}
.day.in-range{background:#D5E5DA;color:#1B231E;border-color:#A9C4B1;text-decoration:none}
.day.end{background:#2F5D46;color:#fff;border-color:#2F5D46;font-weight:700;text-decoration:none}
.swatch{width:22px;height:22px;border-radius:6px;display:inline-block}
.alert{margin-top:14px;background:#FBEDE7;color:#7A3418;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}

/* form */
.mini-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5A635D}
.field{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600}
.field input,.field select{min-height:44px;border:1px solid #C5CAC3;border-radius:10px;padding:0 12px;background:#fff}
.field textarea{border:1px solid #C5CAC3;border-radius:10px;padding:10px 12px;resize:vertical}
#submit-btn:disabled{opacity:.7;cursor:wait}

/* small screens: header scrolls away instead of covering the page */
@media (max-width: 760px){body>header{position:static !important}}

/* check-in / check-out date boxes */
.date-box{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;min-width:0}
.date-box:focus-within{background:#F3F7F4}
.date-in{border:0;background:transparent;font:inherit;font-weight:600;font-size:15px;color:#1B231E;padding:2px 0;min-height:32px;width:100%;cursor:pointer}
.date-in:focus{outline:none}
.date-in::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7}
