/* Sunday reservations: approved Figma design, scoped away from site chrome. */
.roast-booking { --roast-line:#3d3327; --roast-cream:#f2ebdd; display:grid; grid-template-columns:minmax(0,572fr) minmax(0,560fr); gap:64px; max-width:1292px; margin:0 auto; padding:80px 24px; align-items:start; }
.roast-story { min-width:0; color:var(--roast-cream); }
.roast-eyebrow { color:var(--gold); font-size:11px; letter-spacing:.1em; line-height:1.5; text-transform:uppercase; }
.roast-story h1 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:400; font-size:clamp(52px,5.3vw,76px); line-height:1.02; letter-spacing:-.025em; margin:22px 0; }
.roast-story .roast-tagline { font-family:'Cormorant Garamond',Georgia,serif; font-size:30px; font-style:italic; color:var(--gold); margin-bottom:22px; }
.roast-description { color:var(--text-muted); font-size:14px; line-height:1.65; max-width:460px; margin-bottom:22px; }
.roast-photo { display:block; width:100%; height:auto; aspect-ratio:572 / 440; object-fit:cover; border-radius:8px; }
.roast-facts { display:flex; flex-wrap:wrap; gap:12px 24px; font-size:11px; line-height:1.5; margin:22px 0; color:var(--text-muted); }
.roast-facts span:first-child { color:var(--gold); }
.roast-facts span:nth-child(2) { color:var(--roast-cream); }
.roast-address { border-top:1px solid var(--roast-line); padding-top:22px; }
.roast-address h2 { font-family:'Cormorant Garamond',Georgia,serif; font-size:32px; font-weight:400; line-height:1.1; margin-bottom:22px; }
.roast-address p { color:var(--text-muted); font-size:13px; line-height:1.6; }
.roast-story .roast-book-link { display:none; }
.roast-booking .page { width:100%; max-width:none; margin:0; padding:32px; min-width:0; background:var(--bg-card); border:1px solid var(--roast-line); border-radius:12px; scroll-margin-top:120px; }
.reservation-intro { margin-bottom:28px; }
.reservation-intro h2 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:400; font-size:42px; color:var(--roast-cream); line-height:1.1; margin:18px 0; }
.reservation-intro > p:last-child { color:var(--text-muted); font-size:12px; line-height:1.6; }
.roast-booking .card { background:transparent; border:0; border-top:1px solid var(--roast-line); border-radius:0; padding:24px 0 0; margin-bottom:24px; }
.roast-booking .card-title { font-size:18px; font-weight:500; margin-bottom:22px; }
.roast-booking .step-badge { border:0; background:none; border-radius:0; width:auto; height:auto; font-size:14px; color:var(--text); }
.roast-booking label { font-size:11px; font-weight:400; letter-spacing:.025em; }
.roast-booking input,.roast-booking select,.roast-booking textarea { border-color:var(--roast-line); border-radius:6px; font-size:14px; padding:14px; }
.roast-booking input:focus-visible,.roast-booking select:focus-visible,.roast-booking textarea:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.roast-booking .form-group { margin-bottom:20px; }
.roast-booking .time-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.roast-booking .time-btn { border-radius:5px; background:var(--bg-input); padding:13px 6px; letter-spacing:0; }
.roast-booking .time-btn.selected { background:var(--gold); color:var(--bg); border-color:var(--gold); }
.roast-booking .time-btn.selected .time-val,.roast-booking .time-btn.selected .time-seats { color:var(--bg); }
.roast-booking .time-btn:focus-within { outline:2px solid var(--gold); outline-offset:3px; }
.roast-booking .time-btn input[type=radio] { display:block; position:absolute; opacity:0; width:1px; height:1px; }
.roast-booking .time-val { font-size:14px; }
.roast-booking .turn-note { display:block; line-height:1.6; }
.roast-booking .time-seats { font-size:10px; }
.party-choices { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:6px; margin:0 0 12px; }
.party-choice { min-height:44px; background:var(--bg-input); border:1px solid var(--roast-line); border-radius:5px; color:var(--text); cursor:pointer; font:inherit; font-size:13px; }
.party-choice[aria-pressed=true] { background:var(--gold); color:var(--bg); border-color:var(--gold); }
.party-choice:hover { border-color:var(--gold); }
.party-choice:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.reservation-summary { background:var(--bg-input); border-radius:6px; padding:14px; margin:22px 0; }
.reservation-summary h3 { color:var(--gold); font-size:10px; font-weight:400; letter-spacing:.08em; margin-bottom:6px; }
.reservation-summary p { color:var(--text); font-size:14px; line-height:1.5; }
.roast-booking .btn-submit { background:var(--gold); border-radius:6px; font-weight:500; font-size:14px; box-shadow:none; }
.roast-booking .btn-submit:hover:not(:disabled) { background:var(--gold-light); transform:none; box-shadow:none; }
.roast-booking #stepDetails { margin-bottom:0; }
.roast-booking .success-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:42px; font-weight:400; }
@media(max-width:1000px) { .roast-booking { gap:32px; padding-top:48px; } .roast-booking .page { padding:24px; } .roast-booking .form-row { grid-template-columns:1fr; gap:0; } .roast-story h1 { font-size:60px; } .party-choices { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:760px) { .roast-booking { grid-template-columns:1fr; gap:32px; padding:32px 24px 48px; max-width:600px; } .roast-story h1 { font-size:52px; } .roast-story .roast-tagline { font-size:24px; } .roast-photo { aspect-ratio:342 / 270; } .roast-address h2 { font-size:26px; } .roast-booking .page { padding:20px; } .reservation-intro h2 { font-size:34px; } .roast-story .roast-book-link { display:inline-block; margin-top:22px; color:var(--gold); text-underline-offset:5px; font-size:13px; } }
@media(prefers-reduced-motion:reduce) { .roast-booking * { transition:none!important; animation:none!important; } }
