/* A quiet, editorial reservation room. Scoped to this page. */
.booking-page{position:relative;isolation:isolate;padding:168px max(6%,calc((100vw - 1420px)/2)) 96px;background:radial-gradient(ellipse at 82% 26%,#2eb0c60d,transparent 48%),#000}
.booking-page:before{content:"";position:absolute;top:112px;left:6%;right:6%;height:1px;background:linear-gradient(90deg,transparent,#2eb0c630,transparent);pointer-events:none}
.booking-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:46px}
.booking-kicker{font-size:12px;color:var(--brand);display:flex;align-items:center;gap:12px;margin-bottom:17px}.booking-kicker:before{content:"";width:28px;height:1px;background:currentColor}
.booking-heading h1{font-size:clamp(44px,4.5vw,72px);line-height:1.4;font-weight:600}.booking-heading h1 br{display:none}.booking-heading h1 em{margin-right:10px;font-weight:700}
.booking-lead{font-size:13px;line-height:2.15;color:#c3ced0;max-width:330px}.booking-lead span{display:block;font-size:11px;color:#7b9297;margin-top:12px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:26px;align-items:start}
.booking-card{position:relative;padding:34px clamp(24px,3vw,48px) 24px;border:1px solid #7fbbc12b;border-radius:20px;background:linear-gradient(140deg,#1522258c,#080d0ed9 65%);box-shadow:inset 0 1px 0 #d5f9ff08,0 20px 60px #0005;min-width:0}
.booking-card-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:27px;margin-bottom:27px;border-bottom:1px solid #9ad6df17}.booking-overline{font-size:10px;color:#8ea7ab}.booking-card h2{font-size:25px;font-weight:600;margin-top:8px}
.booking-table{display:grid;grid-template-columns:9px 32px 9px;grid-template-rows:13px 13px;gap:6px;opacity:.65;transform:rotate(-18deg);margin-left:6px}.booking-table b{grid-column:2;grid-row:1/3;border:1px solid #2eb0c6;border-radius:9px;background:#2eb0c60e}.booking-table i{border:1px solid #2eb0c6;border-radius:5px}.booking-table i:nth-child(1){grid-column:1;grid-row:1}.booking-table i:nth-child(2){grid-column:3;grid-row:1}.booking-table i:nth-child(4){grid-column:1;grid-row:2}.booking-table i:nth-child(5){grid-column:3;grid-row:2}
.booking-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:27px 18px}.booking-field{position:relative;min-width:0;margin:0;padding:0;border:0}.booking-label{display:block;font-size:11px;color:#c4d5d8;margin-bottom:10px;width:100%}.booking-label small{float:left;font-size:9px;color:#6e898e;font-weight:400}
.booking-date{grid-column:1/-1}.booking-trigger{display:flex;align-items:center;gap:11px;width:100%;min-height:57px;padding:13px 16px;border:1px solid #8db9bf2b;border-radius:10px;background:#02080960;text-align:right;font-size:12px;transition:border-color .2s,background .2s}.booking-trigger:hover,.booking-trigger[aria-expanded=true]{border-color:#2eb0c68c;background:#2eb0c609}.booking-trigger svg{width:19px;height:19px;fill:none;stroke:var(--brand);stroke-width:1.2;flex-shrink:0}.booking-trigger>span:not(.booking-change){min-width:0}.booking-change{margin-right:auto;color:#6b9ba4;font-size:9px;padding-right:7px}.booking-trigger .is-placeholder{color:#829b9f}
.booking-stepper{height:57px;display:flex;align-items:center;justify-content:space-between;border:1px solid #8db9bf2b;border-radius:10px;background:#02080960;padding:5px;direction:ltr}.booking-stepper button{width:43px;height:43px;border-radius:7px;background:#c5f8ff07;font-size:23px;line-height:1;color:#85d1de;font-weight:300}.booking-stepper button:hover{background:#2eb0c61b}.booking-stepper button:disabled{opacity:.25}.booking-stepper output{font-size:21px;color:#e5f2f5;direction:rtl;display:flex;align-items:center;gap:7px}.booking-stepper small{font-size:11px;color:#9bb2b6}.booking-group{font-size:9px;color:#8ea7ac;display:flex;align-items:center;gap:7px;margin-top:11px;cursor:pointer;min-height:22px}.booking-group input{accent-color:var(--brand);margin:0;width:13px;height:13px}
.booking-popover{position:absolute;top:calc(100% + 9px);right:0;width:100%;min-width:265px;background:#0c171b;border:1px solid #47778280;border-radius:13px;box-shadow:0 24px 55px #000b;z-index:15;padding:16px;color:#dcebee;animation:booking-open .16s ease-out}.booking-calendar{width:340px;max-width:100%}.booking-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.booking-calendar-head strong{font-size:13px;font-weight:500}.booking-calendar-head button{background:transparent;color:#79becb;padding:7px 2px;font-size:9px;min-height:34px}.booking-calendar-head button:disabled{color:#46616a}.booking-week,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.booking-week{font-size:10px;color:#77939a;margin-bottom:8px}.booking-days button{min-height:34px;background:transparent;border:1px solid transparent;border-radius:7px;font-size:12px}.booking-days button[aria-current=date]{border-color:#2eb0c650}.booking-days button[aria-pressed=true],.booking-times button[aria-pressed=true]{background:#2eb0c6;color:#001317;border-color:#2eb0c6}.booking-days button:hover:not(:disabled),.booking-times button:hover:not(:disabled){border-color:#2eb0c6}.booking-days button:disabled,.booking-times button:disabled{opacity:.22;cursor:default}.booking-picker-note{font-size:9px;color:#91a8ad;line-height:1.9;margin-top:12px}.booking-picker-title{font-size:12px;font-weight:500}.booking-picker-title+.booking-picker-note{margin:3px 0 14px}.booking-times{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;direction:ltr;max-height:235px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#346673 #0c171b;scrollbar-width:thin}.booking-times button{font-size:11px;min-height:35px;border:1px solid #789ba532;border-radius:7px;background:#ffffff03;padding:4px}.booking-occasions{padding:7px;min-width:220px}.booking-occasions button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px;font-size:11px;background:transparent;border-radius:7px;text-align:right}.booking-occasions button:hover{background:#2eb0c60c}.booking-occasions button[aria-pressed=true]{background:#2eb0c61a;color:#79d6e7}.booking-occasions button span{font-size:13px}
.booking-notes{display:block;margin-top:27px}.booking-notes textarea{width:100%;min-height:86px;border:1px solid #8db9bf2b;border-radius:10px;background:#02080960;color:#dcebee;padding:13px 15px;resize:vertical;font-size:11px;line-height:2;max-height:240px}.booking-notes textarea::placeholder{color:#6f898e}.booking-notes textarea:focus{outline:1px solid #2eb0c6;outline-offset:2px}
.booking-form-bottom{margin-top:23px}.booking-submit{min-height:50px;padding:11px 27px;border-radius:8px;font-size:12px;font-weight:600}.booking-form-bottom p{font-size:9px;color:#7d979c;margin-top:12px}.booking-direct{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #9ad6df17;margin-top:25px;padding-top:21px}.booking-direct>span{font-size:10px;color:#8ea7ac}.booking-direct a{font-size:17px;font-weight:500;color:#b2d9e1;letter-spacing:.5px}
.booking-place{min-width:0}.booking-place figure{position:relative;margin:0;aspect-ratio:.91;overflow:hidden;border-radius:20px;background:#0b1215;isolation:isolate}.booking-place img{width:100%;height:100%;object-fit:cover;object-position:58% 50%;filter:saturate(.68) brightness(.82);transition:transform 1.1s ease}.booking-place figure:hover img{transform:scale(1.035)}.booking-place figure:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#00151c0a 32%,#001116b3 83%,#000f15ed);pointer-events:none}.booking-place figcaption{position:absolute;z-index:1;bottom:31px;right:32px;left:25px}.booking-image-label{font-size:9px;color:#a2d1da;display:flex;align-items:center;gap:10px}.booking-image-label:before{content:"";height:1px;width:22px;background:#7cb3c1}.booking-place figcaption p{font-size:clamp(21px,2.3vw,34px);font-weight:500;line-height:1.65;margin-top:13px;color:#eff9fb}.booking-address{display:flex;flex-wrap:wrap;align-items:center;gap:12px 25px;margin-top:23px;padding:0 5px}.booking-address>span{font-size:9px;color:#6c929c}.booking-address p{font-size:11px;line-height:2;color:#c0d0d4}.booking-address small{font-size:10px;color:#7d9ca4}.booking-address a{font-size:10px;color:#7fc5d3;margin-right:auto;border-bottom:1px solid #447e8b;padding:4px 0}
.booking-summary{padding:6px 0}.booking-summary h3{font-size:29px;font-weight:600;margin:11px 0 18px}.booking-summary-day{font-size:14px;color:#77c7d8}.booking-summary dl{margin:20px 0}.booking-summary dl div{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid #9ad6df17;font-size:12px}.booking-summary dt{color:#8aa8ae}.booking-summary dd{margin:0}.booking-summary-notes{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:2}.booking-summary-help{font-size:11px;color:#9ab0b5;line-height:2.2;margin:20px 0}.booking-summary .button{min-height:48px;border-radius:8px;font-size:12px;padding:10px 22px}.booking-summary-actions{display:flex;gap:25px;margin-top:20px}.booking-summary-actions button{background:transparent;color:#85b8c4;font-size:11px;padding:6px 0;border-bottom:1px solid #477d89}.booking-page :focus-visible{outline:2px solid #64cee0;outline-offset:3px}.booking-page .form-error{border-radius:7px}
@keyframes booking-open{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.booking-page{padding-top:185px}.booking-layout{gap:36px}.booking-card{padding-top:38px}.booking-place figure{aspect-ratio:1}}
@media(max-width:1100px){.booking-page{padding:148px 5% 72px}.booking-heading{gap:25px}.booking-lead{font-size:11px;max-width:280px}.booking-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:19px}.booking-card{padding:27px 22px 22px}.booking-fields{gap:23px 12px}.booking-trigger{padding:12px 11px;gap:8px;font-size:11px}.booking-change{font-size:8px}.booking-place figure{aspect-ratio:.67}.booking-place figcaption{right:24px;bottom:27px}.booking-address{gap:10px 16px}.booking-address>span{width:100%}.booking-popover{min-width:250px}.booking-occasions{min-width:210px}.booking-field:nth-child(even) .booking-popover{right:auto;left:0}}
@media(max-width:800px){.booking-page{padding-top:120px}.booking-page:before{top:83px}.booking-heading{margin-bottom:30px;align-items:flex-start}.booking-heading h1{font-size:44px}.booking-heading h1 br{display:block}.booking-heading h1 em{margin-right:0}.booking-lead{margin-top:40px;max-width:230px}.booking-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}.booking-card{padding:25px 20px 20px}.booking-fields{grid-template-columns:1fr;gap:23px}.booking-card h2{font-size:22px}.booking-guests{order:0}.booking-popover,.booking-field:nth-child(even) .booking-popover{right:0;left:auto;max-width:100%;min-width:0}.booking-calendar{width:100%}.booking-times{grid-template-columns:repeat(4,1fr)}.booking-place figure{aspect-ratio:.62}.booking-place figcaption p{font-size:26px}.booking-direct{flex-wrap:wrap}.booking-direct a{font-size:17px}.booking-label{font-size:11px}.booking-trigger{font-size:12px}.booking-change{font-size:9px}}
@media(max-width:600px){.booking-page{padding:116px 5% 55px}.booking-heading{display:block;margin-bottom:27px}.booking-kicker{font-size:10px;margin-bottom:12px}.booking-heading h1{font-size:40px;line-height:1.45}.booking-heading h1 br{display:none}.booking-heading h1 em{margin-right:6px}.booking-lead{margin-top:18px;max-width:none;font-size:11px}.booking-lead br{display:none}.booking-lead span{font-size:10px;margin-top:7px}.booking-layout{grid-template-columns:1fr;gap:28px}.booking-card{border-radius:16px;padding:24px 20px 20px}.booking-card-head{margin-bottom:24px;padding-bottom:22px}.booking-card h2{font-size:24px}.booking-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 12px}.booking-field:nth-child(2),.booking-field:nth-child(4){grid-column:1/-1}.booking-guests{grid-column:1/-1}.booking-stepper{max-width:100%}.booking-group{font-size:10px;margin-top:9px}.booking-label{font-size:11px}.booking-trigger{min-height:55px;padding:12px 14px}.booking-times{max-height:204px}.booking-notes{margin-top:23px}.booking-form-bottom p{line-height:2.2;font-size:9px}.booking-submit{font-size:12px;padding:11px 22px}.booking-direct{margin-top:23px;gap:12px}.booking-direct>span{font-size:9px}.booking-direct a{font-size:16px}.booking-place figure{aspect-ratio:1.25;border-radius:16px}.booking-place img{object-position:50% 60%}.booking-place figcaption{bottom:23px;right:24px}.booking-place figcaption p{font-size:25px;margin-top:9px}.booking-address{margin-top:19px;padding:0 3px}.booking-address>span{width:auto}.booking-address p{font-size:10px}.booking-address a{font-size:10px}.booking-heading h1 em{white-space:nowrap}}
@media(max-width:360px){.booking-heading h1{font-size:35px}.booking-card{padding-inline:16px}.booking-direct{flex-direction:column;align-items:flex-start}.booking-calendar-head{gap:6px}.booking-calendar-head strong{font-size:12px}.booking-days button{min-height:32px}}
@media(prefers-reduced-motion:reduce){.booking-popover{animation:none}.booking-place figure:hover img{transform:none}.booking-place img{transition:none}}
.booking-field:has(#occasion-trigger){grid-column:1/-1}
@media(max-width:800px){.booking-popover,.booking-field:nth-child(even) .booking-popover{position:relative;top:auto;right:auto;left:auto;margin-top:10px;width:100%;max-width:100%}}
@media(min-width:601px) and (max-width:900px){.booking-layout{grid-template-columns:1fr;gap:30px}.booking-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-place figure{aspect-ratio:2.1}.booking-place img{object-position:50% 65%}.booking-place figcaption p{font-size:29px}.booking-address>span{width:auto}.booking-heading h1 br{display:none}.booking-heading h1 em{margin-right:8px}.booking-lead{margin-top:10px;max-width:240px}}
