.booking{max-width:1000px;margin:auto}.booking h1{font-size:clamp(2rem,5vw,3.5rem)}.booking fieldset{border:2px solid #181818;margin:2rem 0;padding:1.5rem}.booking legend{font-weight:900;font-size:1.25rem}.booking label{display:block;margin:1rem 0}.booking input:not([type=radio]):not([type=checkbox]){display:block;width:100%;max-width:600px;padding:.8rem;border:2px solid #181818;font:inherit;background:white}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem}.slot-grid label{margin:0;background:#fff;padding:.7rem;border:1px solid #181818;cursor:pointer}.slot-grid label:has(input:checked){background:#ffdc00;outline:2px solid #181818}.slot-grid label:has(input:disabled){color:#777;background:#eee;cursor:default}.agreement{line-height:1.8}.agreement input{margin-right:.5rem}.booking button:disabled{opacity:.5;cursor:wait}.booking .notice{padding:1rem}.booking a{text-decoration:underline}.booking .button{text-decoration:none}#result-details{padding:1rem 0;line-height:2}

.booking select{width:100%;font:inherit;padding:.8rem;border:1px solid #888;background:white;border-radius:4px}
.person-card{border:2px solid #222;background:#fff;padding:1.25rem;margin:1rem 0}.person-card h3{font-size:1.3rem;margin:0 0 1rem}.person-card details{margin:1rem 0}.person-card summary{cursor:pointer;font-weight:bold}.person-card .slot-grid{margin:1rem 0}.person-card .slot-grid label{font-size:.85rem;padding:.4rem}.booking button[type=button]{font:inherit;padding:.7rem 1rem;margin:.4rem;border:1px solid #222;background:#fff;cursor:pointer}.booking #result-details img{max-width:100%;height:auto}

.booking [hidden]{display:none!important}
