@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@600;700&display=swap');:root{color-scheme:light}.reservation-page{margin:0;min-height:100vh;background:#f4f0e9;color:var(--reservation-text);font-family:"DM Sans",sans-serif}.reservation-page *{box-sizing:border-box}.reservation-backdrop{position:fixed;inset:0 0 auto;height:34vh;background:linear-gradient(110deg,var(--reservation-nav),#171713);background-size:cover;background-position:center;z-index:-2}.reservation-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,14,11,.82),rgba(15,14,11,.45))}.reservation-header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,76px);color:#fff}.restaurant-mark{display:flex;align-items:center;gap:13px;color:inherit;text-decoration:none;font-weight:600;font-size:18px}.restaurant-mark img{width:44px;height:44px;object-fit:contain;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.12)}.reservation-close{color:#fff;text-decoration:none;display:flex;gap:10px;align-items:center}.reservation-close span{font-size:25px}.reservation-shell{width:min(1180px,calc(100% - 32px));margin:28px auto 64px}.booking-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.75fr);background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 24px 70px rgba(36,29,20,.2);min-height:680px}.booking-panel{padding:clamp(28px,5vw,64px)}.booking-intro{max-width:590px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:600;color:var(--reservation-primary);margin:0 0 12px}.booking-intro h1,.confirmation-card h1{font-family:"Playfair Display",serif;font-size:clamp(36px,5vw,60px);line-height:1.04;margin:0 0 14px}.booking-intro>p:last-child,.confirmation-lead{color:#6e675e;line-height:1.65}.booking-progress{list-style:none;display:flex;gap:8px;padding:0;margin:32px 0 42px}.booking-progress li{height:3px;flex:1;background:#e9e3db;position:relative}.booking-progress li span{position:absolute;top:-30px;font-size:11px;color:#9a9186}.booking-progress li.is-active,.booking-progress li.is-complete{background:var(--reservation-primary)}.booking-step{display:none;animation:step-in .32s ease both;min-height:300px}.booking-step.is-active{display:block}.step-count{font-size:12px;color:#91887e;margin:0 0 9px}.booking-step h2,.edit-slot-title{font-family:"Playfair Display",serif;font-size:clamp(26px,4vw,38px);margin:0 0 28px}.party-grid,.slot-grid{display:grid;grid-template-columns:repeat(5,minmax(58px,1fr));gap:12px}.choice-button,.slot-button,.date-choice{border:1px solid #ded7ce;background:#fff;color:inherit;border-radius:14px;min-height:58px;font:600 16px inherit;cursor:pointer;transition:.18s ease}.choice-button:hover,.slot-button:hover,.date-choice:hover{border-color:var(--reservation-primary);transform:translateY(-1px)}.choice-button.is-selected,.slot-button.is-selected,.date-choice.is-selected{background:var(--reservation-primary);border-color:var(--reservation-primary);color:#fff}.date-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.date-choice{padding:10px 4px;display:flex;flex-direction:column;align-items:center}.date-choice small{margin-top:4px;opacity:.72;text-transform:uppercase}.field{display:flex;flex-direction:column;gap:8px;margin-top:22px;font-weight:600}.field input,.field select{width:100%;min-height:52px;border:1px solid #d9d2ca;border-radius:12px;padding:0 14px;background:#fff;color:inherit;font:inherit}.field small,.identity-note{font-weight:400;color:#837b71}.calendar-field{max-width:320px}.slots-status{min-height:28px;color:#746d64}.slots-status.is-loading:before{content:"";display:inline-block;width:16px;height:16px;border:2px solid #ddd;border-top-color:var(--reservation-primary);border-radius:50%;animation:spin .7s linear infinite;margin-right:9px;vertical-align:middle}.slot-grid{grid-template-columns:repeat(4,1fr)}.slot-button:disabled{opacity:.4;cursor:not-allowed}.contact-grid,.edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.field-wide{margin-bottom:12px}.captcha-wrap{max-width:304px;overflow:hidden;margin-top:24px}.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:34px}.button-primary,.button-secondary{min-height:52px;border-radius:999px;padding:0 25px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;font:600 15px inherit;text-decoration:none;cursor:pointer}.button-primary{background:var(--reservation-button);color:var(--reservation-button-text)}.button-secondary{background:transparent;color:inherit;border-color:#d7d0c8}.button-primary:disabled{opacity:.65}.button-primary i{display:none;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-left:9px;animation:spin .7s linear infinite}.button-primary.is-loading i{display:block}.booking-summary{padding:52px 38px;background:linear-gradient(160deg,var(--reservation-nav),#191a17);color:#fff;position:relative}.booking-summary:after{content:"";position:absolute;inset:auto -100px -140px auto;width:280px;height:280px;border:1px solid rgba(255,255,255,.12);border-radius:50%}.booking-summary h2{font-family:"Playfair Display",serif;font-size:32px;margin:0 0 42px}.booking-summary dl{margin:0}.booking-summary dl div{padding:17px 0;border-bottom:1px solid rgba(255,255,255,.13)}.booking-summary dt{font-size:12px;color:rgba(255,255,255,.58);text-transform:uppercase;letter-spacing:.1em}.booking-summary dd{margin:6px 0 0;font-size:17px}.summary-address{margin-top:38px;color:rgba(255,255,255,.7);line-height:1.6}.mobile-summary{display:none}.form-errors{color:#a32929;line-height:1.5}.form-errors:empty{display:none}.confirmation-card{width:min(780px,100%);margin:5vh auto;background:#fff;border-radius:28px;padding:clamp(32px,7vw,76px);text-align:center;box-shadow:0 24px 70px rgba(36,29,20,.2)}.confirmation-icon{width:68px;height:68px;margin:0 auto 25px;border-radius:50%;display:grid;place-items:center;background:var(--reservation-primary);color:#fff;font-size:32px}.confirmation-card.pending .confirmation-icon{background:#b97a2e}.confirmation-details{display:grid;grid-template-columns:repeat(2,1fr);text-align:left;margin:38px 0;border-top:1px solid #e9e3db}.confirmation-details div{padding:18px;border-bottom:1px solid #e9e3db}.confirmation-details dt{font-size:12px;text-transform:uppercase;color:#8a8177}.confirmation-details dd{margin:5px 0 0;font-weight:600}.restaurant-contact{display:flex;flex-direction:column;gap:5px;color:#6e675e}.confirmation-actions{margin-top:35px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.text-link{color:var(--reservation-primary);padding:15px}.booking-grid-edit{grid-template-columns:1fr;max-width:860px;margin:auto}.final-note{color:#746d64}.edit-slot-title{margin-top:35px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes step-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:800px){.reservation-header{height:72px}.reservation-close{font-size:0}.reservation-close span{font-size:28px}.reservation-shell{width:min(100% - 20px,680px);margin:12px auto 30px}.booking-grid{display:block;border-radius:22px;min-height:0}.booking-panel{padding:28px 20px}.booking-summary{display:none}.booking-intro h1{font-size:38px}.booking-progress{margin:28px 0 34px}.party-grid{grid-template-columns:repeat(4,1fr)}.date-strip{display:flex;overflow-x:auto;padding-bottom:8px;margin-right:-20px}.date-choice{flex:0 0 76px}.slot-grid{grid-template-columns:repeat(3,1fr)}.contact-grid,.edit-fields{grid-template-columns:1fr}.booking-step{min-height:330px}.booking-actions{position:sticky;bottom:10px;background:rgba(255,255,255,.94);padding:10px 0;margin-bottom:-10px}.button-primary{flex:1}.mobile-summary{display:block;background:#f6f2ec;border-radius:16px;padding:18px}.confirmation-card{margin:12px auto;padding:34px 20px}.confirmation-details{grid-template-columns:1fr}.confirmation-actions{flex-direction:column}.confirmation-actions>*{width:100%}}@media(max-width:360px){.reservation-shell{width:100%;margin:0}.booking-grid,.confirmation-card{border-radius:0}.restaurant-mark span{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-grid{grid-template-columns:repeat(3,1fr)}.slot-grid{grid-template-columns:repeat(2,1fr)}.captcha-wrap{transform:scale(.88);transform-origin:left top;margin-bottom:-22px}}[data-reservation-wizard].is-single-page .booking-intro{margin-bottom:36px}[data-reservation-wizard].is-single-page .booking-step{display:block;min-height:0;margin-top:38px;padding-top:38px;border-top:1px solid #e9e3db;animation:none}[data-reservation-wizard].is-single-page .booking-step:first-of-type{margin-top:0;padding-top:0;border-top:0}[data-reservation-wizard].is-single-page .booking-step h2{margin-bottom:22px}[data-reservation-wizard].is-single-page .booking-actions{justify-content:flex-end}@media(max-width:800px){[data-reservation-wizard].is-single-page .booking-intro{margin-bottom:28px}[data-reservation-wizard].is-single-page .booking-step{margin-top:28px;padding-top:28px}[data-reservation-wizard].is-single-page .booking-step h2{margin-bottom:18px}[data-reservation-wizard].is-single-page .mobile-summary{padding:0;border:0;background:transparent}[data-reservation-wizard].is-single-page .mobile-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}[data-reservation-wizard].is-single-page .mobile-summary dl div{min-width:0;padding:14px;border:1px solid #e2ddd6;border-radius:12px;background:#fff}[data-reservation-wizard].is-single-page .mobile-summary dl div:last-child{grid-column:1/-1}[data-reservation-wizard].is-single-page .mobile-summary dt{margin-bottom:6px;color:#7b746c;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}[data-reservation-wizard].is-single-page .mobile-summary dd{margin:0;color:var(--reservation-text);font-size:15px;font-weight:600;line-height:1.35}[data-reservation-wizard].is-single-page .booking-actions{justify-content:stretch}}@media(max-width:360px){[data-reservation-wizard].is-single-page .mobile-summary dl{grid-template-columns:1fr}[data-reservation-wizard].is-single-page .mobile-summary dl div:last-child{grid-column:auto}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}