@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600&family=Cormorant+Garamond:wght@600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px}body{color:#111;-webkit-font-smoothing:antialiased;background:#efede8;min-height:100vh;font-family:DM Sans,sans-serif}#root{flex-direction:column;align-items:center;min-height:100vh;padding:2.5rem 1.25rem 4rem;display:flex}.booking-header{justify-content:space-between;align-items:center;width:100%;max-width:500px;margin-bottom:2rem;display:flex}.booking-logo{letter-spacing:.02em;color:#111;font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:600}.progress-bar{gap:6px;width:100%;max-width:500px;margin-bottom:2rem;display:flex}.progress-bar span{background:#d5d1c8;border-radius:99px;flex:1;height:3px;transition:background .3s}.progress-bar span.active{background:#111}.step-container{width:100%;max-width:500px}.step-container h2{color:#111;margin-bottom:.25rem;font-family:Cormorant Garamond,serif;font-size:2rem;font-weight:600;line-height:1.2}.step-subtitle{color:#888;margin-bottom:1.75rem;font-size:.85rem}.card-btn{color:#111;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:#fff;border:1.5px solid #e2dfd8;border-radius:16px;justify-content:space-between;align-items:center;width:100%;margin-bottom:.75rem;padding:1.25rem 1.4rem;font-family:DM Sans,sans-serif;font-size:1rem;font-weight:500;transition:border-color .15s,transform .1s;display:flex}.card-btn:active{transform:scale(.98)}.card-btn:hover{border-color:#111}.card-btn .meta{color:#999;font-size:.8rem;font-weight:400}input[type=date],input[type=text],input[type=tel],input{color:#111;-webkit-appearance:none;background:#fff;border:1.5px solid #e2dfd8;border-radius:14px;outline:none;width:100%;margin-bottom:.85rem;padding:1rem 1.1rem;font-family:DM Sans,sans-serif;font-size:1rem;transition:border-color .15s}input:focus{border-color:#111}input::placeholder{color:#bbb}.slot-grid{grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:1.25rem;display:grid}.slot-btn{color:#111;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:1.5px solid #e2dfd8;border-radius:12px;padding:.9rem .5rem;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:500;transition:border-color .15s,background .15s,transform .1s}.slot-btn:hover{border-color:#111}.slot-btn:active{transform:scale(.96)}.no-slots{color:#aaa;text-align:center;margin-top:1rem;font-size:.875rem}.primary-btn{color:#fff;cursor:pointer;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;background:#111;border:none;border-radius:14px;width:100%;margin-top:.75rem;padding:1.1rem;font-family:DM Sans,sans-serif;font-size:1rem;font-weight:500;transition:opacity .15s,transform .1s}.primary-btn:hover{opacity:.88}.primary-btn:active{transform:scale(.98)}.primary-btn:disabled{opacity:.35;cursor:not-allowed}.error{color:#c0392b;background:#fdf0ef;border-radius:10px;margin-bottom:.75rem;padding:.7rem 1rem;font-size:.85rem}.confirm{text-align:center;padding-top:2rem}.check{color:#fff;background:#111;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 1.75rem;font-size:2rem;display:flex}.confirm h2{margin-bottom:.5rem}.confirm .ref{letter-spacing:.08em;color:#111;background:#fff;border:1.5px solid #e2dfd8;border-radius:10px;margin:1rem 0 .5rem;padding:.5rem 1.25rem;font-size:1.1rem;font-weight:600;display:inline-block}.confirm .when{color:#888;margin-top:.25rem;font-size:.9rem}@media (width<=400px){html{font-size:16px}.slot-grid{grid-template-columns:repeat(2,1fr)}}
