.reserve{max-width:820px;margin-inline:auto}.steps{display:flex;gap:1rem;list-style:none;padding:0;margin:0 0 3rem}.step{display:flex;gap:.7rem;align-items:baseline;flex:1;padding:.8rem 0;border-top:2px solid var(--color-line);transition:border-color .4s}.step.is-current{border-top-color:var(--color-accent)}.step.is-done{border-top-color:var(--color-fg);opacity:.55}.step__no{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;color:var(--color-accent)}.step__label{font-family:var(--font-display);font-size:1.1rem;font-style:italic}.panel{padding:clamp(1.6rem,3vw,2.6rem);border:1px solid var(--color-line);border-radius:18px;background:var(--color-bg)}.panel__title{font-family:var(--font-display);font-size:clamp(1.6rem,2.4vw,2.2rem);margin:0 0 2rem}.grid-2{display:grid;gap:1.4rem;grid-template-columns:1fr 1fr}@media(max-width:600px){.grid-2{grid-template-columns:1fr}}.field{display:grid;gap:.4rem}.field span{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8}.field input{background:transparent;border:0;border-bottom:1px solid var(--color-line);padding:.7rem 0;font:inherit;color:inherit;outline:none;transition:border-color .3s;font-family:var(--font-display);font-size:1.15rem;width:100%}.field input:focus{border-bottom-color:var(--color-accent)}.field input[type=date]::-webkit-calendar-picker-indicator{opacity:.4;filter:invert(var(--date-icon-invert, 0));cursor:pointer}:root[data-service=dinner]{--date-icon-invert: 1}.field-label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8;margin:1.5rem 0 .6rem}.field span.required:after,.field-label.required:after{content:" *";color:var(--color-terracotta);opacity:1}.res-mt-4{margin-top:1rem}.res-mt-6{margin-top:1.5rem}.res-mt-8{margin-top:2rem}.res-mt-10{margin-top:2.5rem}.hint{font-family:var(--font-mono);font-size:.7rem;opacity:.7;font-style:italic}.hint--warn{color:var(--color-terracotta);opacity:1}.guest-stepper{display:inline-flex;align-items:center;gap:1.2rem;padding:.4rem 0}.guest-stepper button{width:38px;height:38px;border-radius:50%;border:1px solid var(--color-line);transition:all .3s}.guest-stepper button:hover{border-color:var(--color-fg)}.guest-stepper span{font-family:var(--font-display);font-size:1.5rem;min-width:2ch;text-align:center}.service-grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.service-card{padding:1.4rem;border:1px solid var(--color-line);border-radius:14px;text-align:left;transition:all .3s;cursor:pointer;background:none;color:inherit;font:inherit;width:100%}.service-card:hover{border-color:var(--color-fg)}.service-card.is-active{background:var(--color-fg);color:var(--color-bg);border-color:var(--color-fg)}.service-card__title{display:block;font-family:var(--font-display);font-size:1.6rem}.service-card__hours{display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-top:.4rem}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:.6rem}.slot{padding:.7rem .4rem;border:1px solid var(--color-line);border-radius:10px;font-family:var(--font-mono);font-size:.85rem;transition:all .25s;cursor:pointer;background:none;color:inherit}.slot:hover{border-color:var(--color-fg)}.slot.is-active{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.slot.is-taken{opacity:.35;cursor:not-allowed;text-decoration:line-through;pointer-events:none}.actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--color-line)}.btn[disabled]{opacity:.4;pointer-events:none}.recap{display:grid;gap:.8rem}.recap>div{display:grid;grid-template-columns:130px 1fr;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--color-line)}.recap dt{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;opacity:.6;padding-top:.2rem}.recap dd{font-family:var(--font-display);font-size:1.15rem;margin:0}.panel--success{text-align:center;padding-block:4rem}.recap-msg{font-family:var(--font-display);font-size:1.4rem;margin-top:1rem}.recap-msg strong{color:var(--color-accent);font-weight:400;letter-spacing:.05em}
