/* Booking, booking-status and check-in pages */
[hidden] { display: none !important; }
.notes-label { display: grid; gap: 6px; margin-top: 14px; font-size: 14px; font-weight: 600; color: #3d4a42; }
.notes-label textarea { font: 16px/1.4 var(--text); padding: 11px 12px; border: 1px solid rgba(31,46,38,.22); border-radius: 10px; background: #fff; width: 100%; }
.form-page main { padding-top: 110px; }
.form-head { max-width: 760px; margin-bottom: 36px; }
.form-head h1, .done h1 { font-size: clamp(36px, 5vw, 60px); margin: 12px 0 14px; }
.form-head p { color: #3d4a42; font-size: 18px; }
.book-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; }
@media (max-width: 980px) { .book-grid { grid-template-columns: 1fr; } }
.steps { display: grid; gap: 22px; }
.step { border: 0; margin: 0; padding: 26px; background: var(--lana); border-radius: 18px; min-width: 0; }
.step legend { float: left; width: 100%; font: 400 26px/1.2 var(--display); margin-bottom: 16px; display: flex; align-items: center; gap: 12px; }
.step legend b { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--brad); color: var(--lana); font: 600 15px/1 var(--text); }
.step > *:not(legend) { clear: both; }
.hint { color: #4a5750; font-size: 15px; margin: 0 0 12px; }
#cap-hint { margin-top: 14px; }

.unit-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 720px) { .unit-pick { grid-template-columns: 1fr; } }
.unit-opt { position: relative; display: grid; border: 2px solid transparent; border-radius: 14px; overflow: hidden; background: #fff; cursor: pointer; transition: border-color .2s; }
.unit-opt input { position: absolute; opacity: 0; }
.unit-opt img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.unit-opt span { padding: 12px 14px; font-size: 14px; color: #4a5750; }
.unit-opt b { display: block; font: 500 19px/1.2 var(--display); color: var(--brad); margin-bottom: 2px; }
.unit-opt small { color: var(--lemn); font-weight: 600; }
.unit-opt:has(input:checked) { border-color: var(--jar); }
.unit-opt:has(input:focus-visible) { outline: 2px solid var(--flacara); outline-offset: 2px; }
@media (max-width: 720px) { .unit-opt { grid-template-columns: 120px 1fr; } .unit-opt img { height: 100%; aspect-ratio: auto; } }

.cal-nav { display: flex; justify-content: space-between; margin-bottom: -38px; position: relative; z-index: 1; pointer-events: none; }
.cal-btn { pointer-events: auto; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(31,46,38,.2); background: #fff; font-size: 22px; cursor: pointer; color: var(--brad); }
.cal-btn:disabled { opacity: .3; cursor: default; }
.calendar { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; }
.month h3 { font: 500 20px/38px var(--display); text-align: center; margin: 0 0 8px; text-transform: capitalize; }
.grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.wd { text-align: center; font-size: 12px; color: var(--fum); padding: 4px 0; }
.day { aspect-ratio: 1; border: 0; border-radius: 10px; background: #fff; font: 600 14px/1 var(--text); color: var(--brad); cursor: pointer; transition: background .15s; }
.day:hover:not(:disabled) { background: #f3dcc4; }
.day:disabled { cursor: default; }
.day.past { background: transparent; color: #b8bcb8; }
.day.busy { background: repeating-linear-gradient(135deg, #e7e3dc 0 4px, #dcd7ce 4px 8px); color: #9aa09b; text-decoration: line-through; }
.day.special { background: #fbeedd; box-shadow: inset 0 -3px 0 var(--flacara); }
.day.in { background: #f6d8b8; border-radius: 0; }
.day.start, .day.end { background: var(--jar); color: #1a0d05; }
.day.start { border-radius: 10px 0 0 10px; }
.day.end { border-radius: 0 10px 10px 0; }
.legend { display: flex; gap: 18px; flex-wrap: wrap; list-style: none; padding: 0; margin: 16px 0 0; font-size: 13px; color: #4a5750; }
.legend i { display: inline-block; width: 14px; height: 14px; border-radius: 4px; margin-right: 6px; vertical-align: -2px; }
.lg-free { background: #fff; border: 1px solid #ddd; }
.lg-busy { background: repeating-linear-gradient(135deg, #e7e3dc 0 3px, #dcd7ce 3px 6px); }
.lg-special { background: #fbeedd; box-shadow: inset 0 -3px 0 var(--flacara); }
.special-note { margin-top: 14px; padding: 12px 14px; background: #fbeedd; border-radius: 10px; font-size: 14px; }

.counters { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 520px) { .counters { grid-template-columns: 1fr; } }
.counter { display: flex; justify-content: space-between; align-items: center; background: #fff; border-radius: 12px; padding: 12px 14px; font-weight: 600; }
.counter small { display: block; font-weight: 400; color: var(--fum); font-size: 12px; }
.ctl { display: flex; align-items: center; gap: 12px; }
.ctl button { width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(31,46,38,.25); background: transparent; font-size: 18px; cursor: pointer; color: var(--brad); }
.ctl output { min-width: 18px; text-align: center; font: 500 20px/1 var(--display); }
.ages { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin-top: 12px; }
.ages label, .fields label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: #3d4a42; }
select, .fields input, .fields textarea, .person input, .person select, .ci-top input { font: 16px/1.4 var(--text); padding: 11px 12px; border: 1px solid rgba(31,46,38,.22); border-radius: 10px; background: #fff; color: var(--brad); width: 100%; }
.fields input:focus, .fields textarea:focus, select:focus, .person input:focus { outline: 2px solid var(--flacara); border-color: transparent; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; margin-top: 12px; cursor: pointer; }
.check input, .radio input { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--jar); flex: none; }
.extra { background: #fbeedd; padding: 12px 14px; border-radius: 10px; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fields .wide { grid-column: 1 / -1; }
@media (max-width: 620px) { .fields { grid-template-columns: 1fr; } }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pay { margin-top: 20px; display: grid; gap: 8px; }
.bill { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(31,46,38,.12); display: grid; gap: 12px; }
.bill-type { display: flex; gap: 22px; flex-wrap: wrap; }
.bill .hint { margin: 0; font-size: 14px; }
.fields label small { font-weight: 400; color: #6c776f; }
[data-bill][hidden] { display: none; }
.pay-title { font-weight: 600; font-size: 14px; color: #3d4a42; }
.radio { display: flex; gap: 10px; align-items: center; background: #fff; padding: 12px 14px; border-radius: 10px; cursor: pointer; }
.radio small { color: var(--fum); }
.consents { margin-top: 18px; border-top: 1px solid rgba(31,46,38,.12); padding-top: 6px; }

.summary { position: sticky; top: 96px; }
.sum-card { background: var(--noapte); color: var(--lana); border-radius: 18px; padding: 26px; display: grid; gap: 10px; }
.sum-card h2 { font-size: 28px; margin: 4px 0 0; }
.sum-dates { color: #c9c3b8; font-size: 14px; margin: 0; }
.sum-lines { display: grid; gap: 6px; border-top: 1px solid rgba(246,241,231,.12); padding-top: 12px; font-size: 14px; color: #d8d2c6; }
.sum-lines:empty { display: none; }
.sum-line { display: flex; justify-content: space-between; gap: 12px; }
.sum-total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid rgba(246,241,231,.12); padding-top: 12px; }
.sum-total strong { font: 500 34px/1 var(--display); color: var(--flacara); }
.sum-split { display: flex; justify-content: space-between; font-size: 14px; color: #d8d2c6; }
.sum-split b { color: var(--lana); }
.sum-error { background: #5a2416; color: #ffd9c9; padding: 10px 12px; border-radius: 10px; font-size: 14px; margin: 0; }
.submit { justify-content: center; margin-top: 6px; width: 100%; }
.submit:disabled { opacity: .45; cursor: not-allowed; }
.fine { font-size: 13px; color: var(--fum); margin: 0; }
.form-page .fine { color: #6c776f; }
.sum-card .fine { color: #a7aaa5; }

.done { max-width: 760px; padding: 20px 0 60px; }
.next-steps { padding-left: 22px; display: grid; gap: 10px; font-size: 17px; color: #2d3a33; margin: 20px 0 26px; }

/* Booking status + check-in */
.status-card { background: var(--lana); border-radius: 18px; padding: 26px; margin-bottom: 22px; }
.status-pill { display: inline-block; padding: 6px 12px; border-radius: 999px; font-weight: 600; font-size: 14px; background: #e9e1d2; color: var(--lemn); }
.status-pill.ok { background: #dbe9d8; color: #2b5a33; }
.status-pill.warn { background: #fbe3cf; color: #8a3f12; }
.status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-top: 18px; }
.status-grid div { background: #fff; border-radius: 12px; padding: 12px 14px; }
.status-grid dt { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--lemn); }
.status-grid dd { margin: 4px 0 0; font-weight: 600; }
.code-box { background: var(--noapte); color: var(--lana); border-radius: 18px; padding: 26px; margin-bottom: 22px; }
.code-box strong { display: block; font: 500 56px/1.1 var(--display); color: var(--flacara); letter-spacing: .12em; margin: 8px 0; }
.person { background: #fff; border-radius: 14px; padding: 18px; margin-top: 14px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.person h4 { grid-column: 1 / -1; margin: 0; font: 500 19px/1.2 var(--display); }
.person label { display: grid; gap: 5px; font-size: 13px; font-weight: 600; color: #3d4a42; }
@media (max-width: 720px) { .person { grid-template-columns: 1fr 1fr; } }
@media (max-width: 460px) { .person { grid-template-columns: 1fr; } }
.ci-top { display: grid; grid-template-columns: 220px 1fr; gap: 14px; align-items: end; }
.ci-top label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: #3d4a42; }
@media (max-width: 620px) { .ci-top { grid-template-columns: 1fr; } }
.ci-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; align-items: center; }
.ok-msg { background: #dbe9d8; color: #2b5a33; padding: 12px 14px; border-radius: 10px; }

.offer-note { margin: 14px 0 0; padding: 12px 14px; border-radius: 10px; background: rgba(242,179,94,.12); color: #F6F1E7; font-size: 14px; line-height: 1.5; white-space: pre-line; }
