/* Booking widget. Builds on the site's /style.css variables and components. */
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.book-main{padding:calc(72px + var(--s8)) 0 var(--s9);min-height:70vh}
.book-head{max-width:680px;margin-bottom:var(--s7)}
.book-head h1,.thanks h1{font-size:clamp(2.2rem,4.5vw,3.2rem);font-weight:350;margin-bottom:var(--s4)}
.book-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--s6);align-items:start}
.book-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:var(--s6);box-shadow:0 30px 60px -40px rgba(44,58,46,.35)}
.summary-card{position:sticky;top:96px}
.cal-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s2)}
.cal-title,.sum-title{font-size:1.5rem}
.cal-nav{display:flex;gap:var(--s2)}
.cal-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--cream);color:var(--green);display:grid;place-items:center;cursor:pointer}
.cal-btn:hover:not(:disabled){border-color:var(--green)}
.cal-btn:disabled{opacity:.35;cursor:default}
.cal-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cal-help{margin:0 0 var(--s4);color:var(--muted);font-size:.95rem;min-height:1.6em}
.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
.cal-loading{grid-column:1/-1;color:var(--muted);padding:var(--s7) 0;text-align:center}
.cal-month h3{font-size:1.1rem;margin-bottom:var(--s3);text-align:center}
.cal-table{width:100%;border-collapse:collapse;table-layout:fixed}
.cal-table th{font:600 .72rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:var(--s2) 0}
.cal-table td{padding:2px}
.day{width:100%;aspect-ratio:1/1.05;min-height:44px;border:1px solid transparent;border-radius:var(--r);background:var(--cream);color:var(--ink);font:500 .95rem/1.1 var(--sans);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;padding:0;transition:background .15s,border-color .15s,color .15s}
.day .p{font-size:.66rem;font-weight:500;color:var(--muted)}
.day:hover:not([aria-disabled="true"]){border-color:var(--green)}
.day.is-booked,.day.is-past{background:transparent;color:#a9a397;text-decoration:line-through;text-decoration-color:#c9c1b2;cursor:not-allowed}
.day.is-past{text-decoration:none;opacity:.55}
.day.is-ask{background:transparent;border:1px dashed #cdbfa7;color:var(--muted);cursor:not-allowed}
.day.is-checkout-only{cursor:pointer;text-decoration:none;color:var(--ink);border:1px dashed var(--green)}
.day.in-range{background:#dfe6dc;border-radius:0}
.day.is-start,.day.is-end{background:var(--green);color:#fff;border-color:var(--green)}
.day.is-start .p,.day.is-end .p,.day.in-range .p{color:inherit;opacity:.85}
.day[aria-disabled="true"]{cursor:not-allowed}
.cal-legend{list-style:none;padding:0;margin:var(--s5) 0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:.85rem;color:var(--muted)}
.cal-legend li{display:flex;align-items:center;gap:var(--s2)}
.key{width:16px;height:16px;border-radius:4px;display:inline-block}
.key-free{background:var(--cream);border:1px solid var(--line)}
.key-booked{background:transparent;border:1px solid var(--line);position:relative}
.key-booked::after{content:"";position:absolute;left:2px;right:2px;top:50%;height:1px;background:#a9a397}
.key-ask{border:1px dashed #cdbfa7}
.party{margin-top:var(--s4)}
.field-hint{margin:var(--s2) 0 0;font-size:.82rem;line-height:1.45;color:var(--muted)}
.party+.field-row{margin-top:var(--s4)}
.summary-card .muted{margin:0}
.breakdown{margin:var(--s4) 0 0;padding:0;list-style:none}
.breakdown li{display:flex;justify-content:space-between;gap:var(--s4);padding:var(--s2) 0;border-bottom:1px solid var(--line);font-size:.95rem}
.breakdown li.total{border-bottom:0;padding-top:var(--s4);font-family:var(--serif);font-size:1.5rem;color:var(--green)}
.breakdown details{width:100%}
.breakdown summary{cursor:pointer;color:var(--muted)}
.nightly{list-style:none;padding:var(--s2) 0 0;margin:0;font-size:.88rem;color:var(--muted)}
.nightly li{border:0;padding:2px 0}
.stay-dates{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin:0}
.stay-dates dt{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.stay-dates dd{margin:2px 0 0;font-family:var(--serif);font-size:1.15rem;color:var(--ink)}
.deposit{margin-top:var(--s4);background:#f3ecdf;border-radius:var(--r);padding:var(--s3) var(--s4);font-size:.92rem;color:var(--ink)}
.book-form{display:grid;gap:var(--s4);margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line)}
.book-form h3{font-size:1.25rem}
.address{border:0;padding:0;margin:0;display:grid;gap:var(--s4)}
.address legend{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3);padding:0}
.policy{background:var(--cream);border-radius:var(--r);padding:var(--s4)}
.policy h3{font-size:1.05rem;margin-bottom:var(--s2)}
.policy ul{margin:0;padding-left:1.1em;font-size:.9rem;color:var(--muted)}
.check{display:flex;gap:var(--s3);align-items:flex-start;font-size:.95rem;cursor:pointer}
.check input{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--green)}
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#8f2d1c}
.notice{background:#f3ecdf;border-left:3px solid var(--ochre);padding:var(--s4) var(--s5);border-radius:var(--r);margin:0 0 var(--s6)}
.notice-warn{background:#f8e9e3;border-left-color:#8f2d1c}
.btn[disabled]{opacity:.6;cursor:progress;transform:none}
.book-foot{margin-top:var(--s7)}
.thanks{max-width:680px}
.thanks .ref{font-family:var(--serif);font-size:1.4rem;color:var(--green)}
@media (max-width:1000px){.book-grid{grid-template-columns:1fr}.summary-card{position:static}}
@media (max-width:700px){.cal-months{grid-template-columns:1fr}.cal-month+.cal-month{display:none}}
@media (max-width:560px){.book-main{padding-top:calc(64px + var(--s6))}.book-card{padding:var(--s5) var(--s4)}.day{min-height:42px}.day .p{font-size:.6rem}}
/* TEST-MODE banner */
.test-banner{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#8a5422;color:#fff;text-align:center;font:600 .95rem/1.4 var(--sans);padding:10px 16px;box-shadow:0 -2px 12px rgba(0,0,0,.15)}
body.book-page{padding-bottom:44px}
