.reservation-page{max-width:1600px;margin:auto;padding-top:48px;padding-bottom:90px}
.reservation-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}
.reservation-heading .eyebrow,.cancel-page>.eyebrow{margin-bottom:20px}
.reservation-heading h1{font-size:clamp(58px,6.1vw,94px);letter-spacing:-3px;line-height:.92}
.reservation-heading h1 em,.cancel-page h1 em{font-style:italic;font-weight:500;color:#82534d}
.reservation-heading>p{font-size:12px;line-height:1.9;padding-bottom:5px;max-width:260px}
.reservation-demo{padding:13px 18px;background:#ede9e1;color:#625e55;font-size:10px;line-height:1.7;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:5px;margin-bottom:22px}
.reservation-demo a{color:var(--ink);white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.reservation-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.7fr);gap:45px;align-items:start}
.reservation-main{background:#fffefa;border:1px solid #e4e0d7;border-radius:9px;overflow:hidden;box-shadow:0 14px 45px #27272304;min-width:0}
.reservation-progress{display:flex;border-bottom:1px solid #e8e4db;padding:0 30px;gap:30px}
.reservation-progress button{border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:24px 0 20px;display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:11px;margin-bottom:-1px}
.reservation-progress button span{font-size:9px;color:#969086}
.reservation-progress button[aria-current=step]{border-bottom-color:#8a292c;color:var(--ink)}
.reservation-progress button:disabled{cursor:default;opacity:.58}
.reservation-step{padding:34px 34px 26px;animation:booking-reveal .25s ease both}
.reservation-step-head{margin-bottom:28px}
.reservation-step-head .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:11px}
.reservation-step-head h2{font-size:43px;letter-spacing:-1.2px;line-height:1.05;outline:none}
.reservation-step-head>p:last-child:not(.eyebrow){font-size:12px;line-height:1.8;margin-top:15px;max-width:420px}
.reservation-guests{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 0 25px;border-bottom:1px solid #e8e4db;margin-bottom:27px}
.reservation-guests label{font-size:12px;color:var(--ink);display:block}
.reservation-guests p{font-size:10px;margin-top:5px;line-height:1.7}
.party-control{display:flex;align-items:center;gap:18px;flex-shrink:0}
.party-control button{width:37px;height:37px;border:1px solid #dcd7cc;background:transparent;border-radius:50%;font-size:19px;line-height:1;color:#5f5c55;display:grid;place-items:center}
.party-control button:disabled{opacity:.3;cursor:default}
.party-control output{font-size:18px;min-width:18px;text-align:center;font-variant-numeric:tabular-nums}
.reservation-calendar{padding:24px 25px 13px;background:#f5f3ee;border-radius:7px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}
.calendar-heading h3{font-family:Manrope,Arial,sans-serif;font-size:13px;letter-spacing:0;font-weight:500;text-transform:capitalize}
.calendar-heading>div{display:flex;gap:4px}
.calendar-heading button{background:none;border:0;min-width:34px;min-height:34px;display:grid;place-items:center;color:var(--ink)}
.calendar-heading button:disabled{opacity:.22;cursor:default}
.calendar-heading svg{width:14px;height:14px}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin-bottom:9px;color:#8b867b;font-size:9px;text-align:center}
.calendar-days button{background:none;border:0;border-radius:5px;font-size:12px;min-width:0;min-height:42px;position:relative;color:var(--ink);transition:background .16s,color .16s,box-shadow .16s}
.calendar-days button:hover:not(:disabled){background:#e7e1d6}
.calendar-days button.is-today:after{content:'';width:3px;height:3px;border-radius:50%;background:currentColor;position:absolute;bottom:5px;left:calc(50% - 1.5px)}
.calendar-days button[aria-pressed=true]{background:#803e39;color:#fffdfa;box-shadow:0 3px 8px #803e3926}
.calendar-days button[aria-pressed=true]:hover{background:#71332f}
.calendar-days button:disabled{color:#c1bbaf;cursor:default}
.calendar-note{font-size:8px;color:#938c80;text-align:right;margin-top:12px;line-height:1.5}
.reservation-time-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:29px;margin-bottom:14px}
.reservation-time-head h3{font-family:Manrope,Arial,sans-serif;font-size:12px;letter-spacing:0;font-weight:400}
.reservation-time-head>span{font-size:9px;color:var(--muted);text-align:right}
.service-tabs{padding:4px;background:#f0eee8;display:flex;border-radius:5px;gap:4px;margin-bottom:14px}
.service-tabs button{flex:1;min-height:36px;border:0;border-radius:3px;background:none;color:var(--muted);font-size:11px}
.service-tabs button[aria-pressed=true]{background:#fffefa;color:var(--ink);box-shadow:0 1px 5px #27272308}
.reservation-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;min-height:44px}
.reservation-slots button{min-height:43px;border:1px solid #ddd8cf;border-radius:4px;background:none;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink);transition:border-color .16s,background .16s}
.reservation-slots button:hover:not(:disabled){border-color:#956760;background:#f7f2ed}
.reservation-slots button[aria-pressed=true]{border-color:#803e39;background:#f4e9e3;color:#72362f}
.reservation-slots button:disabled{opacity:.3;cursor:default;text-decoration:line-through}
.slots-message{font-size:11px;line-height:1.8;min-height:24px;margin-top:11px;color:var(--muted)}
.reservation-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:26px;padding-top:23px;border-top:1px solid #e8e4db}
.reservation-actions>span{font-size:9px;line-height:1.8;color:var(--muted);max-width:180px}
.reservation-actions .button{border-radius:4px;font-size:12px;min-width:166px;min-height:49px;padding:13px 25px}
.reservation-actions .button:disabled{background:#d1cec6;border-color:#d1cec6;cursor:default;color:#fff;opacity:1}
.reservation-back,.reservation-edit{border:0;background:none;border-bottom:1px solid #c0b8aa;padding:7px 0;font-size:11px;color:#696459}
.reservation-back{min-height:42px}
.reservation-field{margin-bottom:24px;min-width:0}
.reservation-field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.reservation-field label{display:block;font-size:11px;margin-bottom:10px;color:var(--ink)}
.reservation-field label span{font-size:9px;color:#8d877a;margin-left:8px}
.reservation-field input,.reservation-field textarea{width:100%;border:1px solid #dcd7cd;background:#faf9f5;border-radius:4px;min-height:49px;padding:13px 14px;font-size:13px;color:var(--ink);line-height:1.5;transition:border-color .2s,background .2s;font-family:Manrope,Arial,sans-serif}
.reservation-field textarea{resize:vertical;min-height:105px}
.reservation-field input:focus,.reservation-field textarea:focus{outline:none;border-color:#9e8071;background:#fffefa;box-shadow:0 0 0 2px #aa92801a}
.reservation-field input[aria-invalid=true]{border-color:#9f493d}
.reservation-field input::placeholder,.reservation-field textarea::placeholder{color:#a49b8d;font-size:11px}
.reservation-field small{display:block;font-size:10px;color:#9a4135;margin-top:6px;line-height:1.5;min-height:0}
.reservation-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.reservation-privacy{font-size:10px;line-height:1.9;color:#8a8274;max-width:400px;margin-top:2px}
.review-card{background:#f5f3ed;border:1px solid #e9e4da;border-radius:6px;padding:23px 24px;margin-bottom:17px}
.review-card-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:19px}
.review-card-head h3{font-size:26px;letter-spacing:-.5px}
.review-card-head .reservation-edit{font-size:9px;padding:3px 0}
.booking-review-table{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}
.booking-review-table div>span{display:block;font-size:9px;color:#918777;margin-bottom:5px}
.booking-review-table strong{font-size:12px;font-weight:400;line-height:1.7;display:block}
.booking-review-contact p{font-size:12px;color:#615b50;line-height:1.9;overflow-wrap:anywhere}
.booking-review-contact p:first-child{font-size:14px;color:var(--ink);margin-bottom:7px}
.booking-review-contact p:last-child:not(:first-child){white-space:pre-line}
.reservation-confirm-note{font-size:10px;line-height:1.9;max-width:380px;margin-top:22px}
.reservation-aside{position:sticky;top:calc(var(--header) + 26px)}
.reservation-aside-inner{border-radius:8px;background:#eeebe3;overflow:hidden}
.reservation-aside figure{aspect-ratio:1.75;overflow:hidden}
.reservation-aside img{width:100%;height:100%;object-fit:cover;object-position:center 53%}
.reservation-aside-content{padding:26px}
.reservation-aside .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:13px}
.reservation-aside h2{font-size:36px;letter-spacing:-.8px;line-height:1.1;margin-bottom:13px}
.reservation-address{font-size:10px;display:inline-flex;align-items:center;gap:10px;line-height:1.9}
.reservation-address svg{width:13px;height:13px}
.booking-aside-summary{border-top:1px solid #dcd5c9;margin-top:25px;padding-top:18px;display:grid;gap:10px}
.booking-aside-summary div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;font-size:11px}
.booking-aside-summary span{font-size:10px;color:#928675}
.booking-aside-summary strong{font-weight:400;text-align:right;line-height:1.5}
.reservation-help{border-top:1px solid #dcd5c9;margin-top:23px;padding-top:20px}
.reservation-help p{font-size:10px;margin-bottom:8px;line-height:1.7}
.reservation-help a{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;min-height:36px}
.reservation-help svg{width:16px;height:16px}
.reservation-alert{background:#f6ebe5;border-left:2px solid #a16250;color:#864c3f;font-size:11px;line-height:1.8;padding:15px 18px;margin:24px 30px 0}
.reservation-alert a{text-decoration:underline;text-underline-offset:3px}
.reservation-initial{padding:70px 30px;font-size:12px;text-align:center;color:var(--muted)}
.reservation-success{padding:50px 36px 44px;text-align:center;animation:booking-reveal .3s ease both}
.reservation-success-mark{display:grid;place-items:center;width:51px;height:51px;margin:0 auto 25px;border-radius:50%;background:#e5eadd;color:#626c50}
.reservation-success-mark svg{width:22px;height:22px}
.reservation-success>.eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:14px}
.reservation-success h2{font-size:50px;letter-spacing:-1.5px;outline:none}
.reservation-success>p:not(.eyebrow):not(.booking-reference){font-size:12px;max-width:410px;line-height:1.9;margin:20px auto 0}
.booking-success-summary{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;border-top:1px solid #e6dfd4;border-bottom:1px solid #e6dfd4;padding:24px 0;margin-top:28px;font-size:12px}
.booking-reference{font-size:9px;letter-spacing:1px;margin-top:19px;color:#918675}
.booking-success-actions{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:30px}
.booking-success-actions .link-line{font-size:10px;gap:15px}
.booking-success-actions svg{width:15px;height:15px}
.reservation-main.is-complete .reservation-progress{display:none}
.cancel-page{padding-top:55px;padding-bottom:90px;max-width:1000px;margin:0 auto}
.cancel-page h1{font-size:clamp(55px,7vw,90px);letter-spacing:-2px;margin-bottom:37px;line-height:.98}
.cancel-card{background:#fffefa;border:1px solid #e4e0d7;border-radius:8px;padding:35px;max-width:650px}
.cancel-card h2{font-size:39px;letter-spacing:-1px;margin-bottom:17px}
.cancel-card>p{font-size:12px;line-height:1.9;max-width:460px}
.cancel-card .reservation-alert{margin:20px 0 0}
.cancel-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:27px}
.cancel-actions .button{border-radius:4px;font-size:12px}
.cancel-actions .link-line{font-size:10px;gap:12px}
.cancel-phone{border-top:1px solid #e8e2d7;padding-top:23px;margin-top:28px;color:#928675}
.cancel-phone a{color:var(--ink);text-decoration:underline;text-underline-offset:4px;margin-left:7px;white-space:nowrap}
.reservation-cancel-dialog{border:1px solid #ddd5c7;background:#faf9f6;color:var(--ink);border-radius:8px;padding:32px;width:480px;max-width:calc(100vw - 40px);box-shadow:0 20px 100px #0003}
.reservation-cancel-dialog::backdrop{background:#19171380;backdrop-filter:blur(3px)}
.reservation-cancel-dialog h3{font-size:34px;letter-spacing:-.7px;line-height:1.1}
.cancel-confirm-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:29px;flex-wrap:wrap}
.cancel-confirm-actions .button{font-size:11px;border-radius:4px}
@keyframes booking-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.reservation-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,.75fr);gap:25px}.reservation-step{padding:28px 25px 24px}.reservation-progress{padding:0 25px;gap:23px}.reservation-progress button{font-size:10px;gap:7px}.reservation-aside-content{padding:22px}.reservation-aside h2{font-size:32px}.reservation-slots{grid-template-columns:repeat(4,minmax(0,1fr))}.reservation-heading h1{font-size:74px}}
@media(max-width:780px){
 .reservation-page{padding-top:30px;padding-bottom:45px}
 .reservation-heading{display:block;margin-bottom:29px}
 .reservation-heading .eyebrow{font-size:8px;margin-bottom:16px}
 .reservation-heading h1{font-size:59px;letter-spacing:-1.8px;line-height:.95}
 .reservation-heading>p{font-size:11px;margin-top:21px;max-width:none;padding:0;line-height:1.8}
 .reservation-heading>p br{display:none}
 .reservation-demo{display:block;font-size:9px;padding:12px 14px;margin-bottom:17px;border-radius:4px}
 .reservation-demo a{display:block;margin-top:4px}
 .reservation-layout{display:flex;flex-direction:column;gap:26px}
 .reservation-main{width:100%;border-radius:7px}
 .reservation-progress{padding:0 16px;justify-content:space-between;gap:9px}
 .reservation-progress button{font-size:8px;gap:5px;padding:19px 0 17px;min-width:0;white-space:normal;line-height:1.4;text-align:left}
 .reservation-progress button span{font-size:7px}
 .reservation-step{padding:25px 18px 20px}
 .reservation-step-head{margin-bottom:21px}
 .reservation-step-head .eyebrow{font-size:7px;margin-bottom:11px}
 .reservation-step-head h2{font-size:35px;letter-spacing:-.8px}
 .reservation-step-head>p:last-child:not(.eyebrow){font-size:11px;margin-top:13px;line-height:1.8}
 .reservation-guests{padding:9px 0 21px;gap:15px;margin-bottom:21px}
 .reservation-guests label{font-size:11px}
 .reservation-guests p{font-size:8px;max-width:145px;line-height:1.8}
 .party-control{gap:11px}
 .party-control button{width:32px;height:32px;font-size:17px}
 .party-control output{font-size:16px;min-width:16px}
 .reservation-calendar{padding:18px 13px 12px}
 .calendar-heading{margin-bottom:16px}
 .calendar-heading h3{font-size:11px}
 .calendar-heading button{min-width:30px;min-height:30px}
 .calendar-weekdays{font-size:8px;gap:3px;margin-bottom:7px}
 .calendar-days{gap:3px}
 .calendar-days button{min-height:36px;font-size:11px}
 .calendar-note{font-size:7px;margin-top:10px}
 .reservation-time-head{margin-top:23px;margin-bottom:12px;gap:11px;align-items:flex-start}
 .reservation-time-head h3{font-size:11px;max-width:145px;line-height:1.6}
 .reservation-time-head>span{font-size:8px;max-width:120px;padding-top:2px}
 .service-tabs{margin-bottom:12px}
 .service-tabs button{font-size:10px;min-height:34px}
 .reservation-slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 .reservation-slots button{font-size:11px;min-height:40px}
 .slots-message{font-size:10px;line-height:1.8;margin-top:11px;min-height:18px}
 .reservation-actions{margin-top:18px;padding-top:19px;gap:15px;flex-wrap:wrap}
 .reservation-actions>span{font-size:8px;max-width:125px;flex:1}
 .reservation-actions .button{min-height:47px;font-size:11px;min-width:137px;padding:12px 17px}
 .reservation-step-2 .reservation-actions .button{min-width:0}
 .reservation-field{margin-bottom:20px}
 .reservation-field-row{grid-template-columns:1fr;gap:0}
 .reservation-field label{font-size:10px;margin-bottom:8px}
 .reservation-field label span{font-size:8px}
 .reservation-field input,.reservation-field textarea{font-size:16px;padding:12px;min-height:47px}
 .reservation-field textarea{font-size:13px;min-height:95px}
 .reservation-field input::placeholder,.reservation-field textarea::placeholder{font-size:10px}
 .reservation-field small{font-size:9px}
 .reservation-privacy{font-size:9px}
 .reservation-back{font-size:10px}
 .review-card{padding:20px 17px;margin-bottom:14px}
 .review-card-head h3{font-size:24px}
 .review-card-head .reservation-edit{font-size:8px}
 .booking-review-table{grid-template-columns:1fr;gap:13px}
 .booking-review-table div>span{font-size:8px;margin-bottom:3px}
 .booking-review-table strong{font-size:11px}
 .booking-review-contact p{font-size:11px}
 .booking-review-contact p:first-child{font-size:13px}
 .reservation-confirm-note{font-size:9px;margin-top:19px}
 .reservation-aside{position:static;width:100%}
 .reservation-aside-inner{display:grid;grid-template-columns:95px minmax(0,1fr);border-radius:6px}
 .reservation-aside figure{aspect-ratio:auto;height:100%;min-height:198px}
 .reservation-aside img{height:100%;object-position:45% center}
 .reservation-aside-content{padding:19px 17px}
 .reservation-aside .eyebrow{font-size:6px;letter-spacing:1px;margin-bottom:9px}
 .reservation-aside h2{font-size:27px;letter-spacing:-.6px;margin-bottom:9px}
 .reservation-address{font-size:8px;gap:5px;flex-wrap:wrap;line-height:1.6}
 .reservation-address svg{width:11px;height:11px}
 .booking-aside-summary{margin-top:15px;padding-top:12px;gap:7px}
 .booking-aside-summary div{font-size:9px;gap:10px}
 .booking-aside-summary span{font-size:8px}
 .reservation-help{margin-top:15px;padding-top:12px}
 .reservation-help p{font-size:8px;margin-bottom:3px}
 .reservation-help a{font-size:10px;min-height:30px}
 .reservation-help svg{width:13px;height:13px}
 .reservation-alert{margin:18px 18px 0;font-size:10px;padding:12px 14px}
 .reservation-initial{padding:55px 20px;font-size:11px}
 .reservation-success{padding:37px 20px 32px}
 .reservation-success h2{font-size:40px;letter-spacing:-1px}
 .reservation-success>p:not(.eyebrow):not(.booking-reference){font-size:11px;margin-top:17px}
 .booking-success-summary{gap:12px;padding:20px 0;margin-top:24px;font-size:11px}
 .booking-reference{font-size:8px;margin-top:16px}
 .booking-success-actions{gap:13px;margin-top:20px}
 .booking-success-actions .link-line{font-size:9px}
 .cancel-page{padding-top:35px;padding-bottom:45px}
 .cancel-page>.eyebrow{font-size:8px;margin-bottom:19px}
 .cancel-page h1{font-size:53px;letter-spacing:-1.5px;margin-bottom:29px}
 .cancel-card{padding:26px 21px}
 .cancel-card h2{font-size:34px}
 .cancel-card>p{font-size:11px}
 .cancel-actions{display:block;margin-top:23px}
 .cancel-actions .button{width:100%;font-size:11px;min-height:47px}
 .cancel-actions .link-line{font-size:9px;margin-top:17px}
 .cancel-phone{padding-top:20px;margin-top:21px}
}
@media(max-width:370px){.reservation-progress{padding:0 12px;gap:7px}.reservation-progress button{font-size:7px}.reservation-step{padding-left:14px;padding-right:14px}.reservation-calendar{padding-left:10px;padding-right:10px}.reservation-guests{gap:10px}.party-control{gap:8px}.party-control button{width:30px;height:30px}.reservation-guests p{max-width:130px;font-size:7px}.reservation-aside-inner{grid-template-columns:75px minmax(0,1fr)}.reservation-aside-content{padding:18px 14px}.reservation-aside h2{font-size:25px}.reservation-actions>span{font-size:7px}.reservation-actions .button{min-width:125px;font-size:10px;padding-left:14px;padding-right:14px}}
@media(prefers-reduced-motion:reduce){.reservation-step,.reservation-success{animation:none}.calendar-days button,.reservation-slots button{transition:none}}
