.booking-app{color:var(--ink);font-size:var(--fs-base);line-height:1.7}.booking-app :focus-visible{outline:1px solid var(--accent);outline-offset:2px}.booking-app a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.booking-app a:hover{color:var(--accent)}.booking-app button{font:inherit;cursor:pointer}.bk-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);align-items:start}.bk-main{min-width:0;display:grid;gap:var(--space-2)}@media(min-width:1024px){.bk-grid{grid-template-columns:minmax(0,1fr) 340px;gap:32px}.bk-panel{position:sticky;top:calc(var(--header-h, 80px) + 24px)}}.bk-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:0 1.25rem;background:var(--ink);color:#fff;border:1px solid var(--ink);font-size:var(--fs-sm);letter-spacing:var(--tracking-ja);text-decoration:none;transition:background .2s,border-color .2s,color .2s}.booking-app a.bk-btn{color:#fff}.bk-btn:hover:not(:disabled),.booking-app a.bk-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.bk-btn:disabled{opacity:.6;cursor:wait}.booking-app a.bk-btn-line{background:transparent;color:var(--ink)}.booking-app a.bk-btn-line:hover{background:var(--ink);border-color:var(--ink);color:#fff}.bk-link{min-height:44px;padding:0 .5rem;background:none;border:0;color:var(--ink-2);font-size:var(--fs-sm);text-decoration:underline;text-underline-offset:3px}.bk-link:hover{color:var(--accent)}.bk-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bk-room{position:relative;display:grid;border:1px solid var(--line-mid);background:#fff}.bk-room[data-on=true]{border-color:var(--ink);box-shadow:inset 0 3px 0 var(--ink)}.bk-room-pick{display:grid;gap:.1rem;justify-items:start;padding:1rem 1.1rem .4rem;min-height:44px;background:none;border:0;color:var(--ink);text-align:left}.bk-room-pick:hover{background:var(--hover)}.bk-room-floor{font-family:var(--font-latin);font-size:var(--fs-xs);letter-spacing:.16em;color:var(--muted)}.bk-room-name{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:500;letter-spacing:var(--tracking-ja)}.bk-room-kind{font-size:var(--fs-sm);color:var(--muted)}.bk-vcard{position:relative}.booking-app a.bk-room-more{position:absolute;top:8px;right:8px;z-index:1;padding:3px 10px;background:#fffffff0;border:1px solid var(--line-mid);font-size:12px;letter-spacing:.06em;color:var(--ink);text-decoration:none}.booking-app a.bk-room-more:hover{background:var(--ink);border-color:var(--ink);color:#fff}.bk-card{border:1px solid var(--line-mid);background:#fff;min-width:0}.bk-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.bk-nav{display:flex}.bk-nav button,.bk-modes button{min-height:40px;min-width:40px;padding:0 .8rem;background:#fff;color:var(--ink);border:1px solid var(--line-mid);font-size:var(--fs-sm);transition:background .15s,color .15s}.bk-nav button+button,.bk-modes button+button{margin-left:-1px}.bk-nav button:first-child,.bk-nav button:nth-child(2){font-size:1.25rem;line-height:1}.bk-nav button:hover,.bk-modes button:hover{background:var(--hover)}.bk-modes{margin-left:auto;display:flex}.bk-modes button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink);position:relative}.bk-title{margin:0;font-family:var(--font-serif);font-weight:500;font-size:1.25rem;letter-spacing:var(--tracking-ja)}.bk-hint{margin:0;color:var(--muted)}.booking-calendar{position:relative;padding:0 16px 8px;overflow-x:auto}.booking-calendar-loading{position:absolute;right:1rem;top:.5rem;z-index:5;pointer-events:none;font-size:var(--fs-xs);color:var(--muted)}.booking-calendar-loading:empty{visibility:hidden}.booking-calendar .fc{--fc-border-color: var(--line);--fc-page-bg-color: #fff;--fc-neutral-bg-color: transparent;--fc-today-bg-color: transparent;--fc-now-indicator-color: var(--accent);--fc-highlight-color: rgb(20 20 20 / .14);font-family:var(--font-sans);font-size:var(--fs-sm)}.booking-calendar .fc-theme-standard .fc-scrollgrid{border-left:0;border-right:0}.booking-calendar .fc-col-header-cell{background:transparent}.booking-calendar .fc-col-header-cell-cushion{padding:.5rem .3rem;font-size:var(--fs-xs);color:var(--muted);font-weight:400;text-decoration:none}.booking-calendar .fc-daygrid-day-frame{min-height:76px;cursor:pointer}@media(min-width:861px){.booking-calendar .fc{max-width:960px;margin-inline:auto}.booking-calendar .fc-daygrid-day-frame{min-height:0;aspect-ratio:1.25 / 1}}.booking-calendar .fc-daygrid-day-frame:hover{background:var(--hover)}.booking-calendar .fc-daygrid-day-number{padding:.3rem .45rem;font-size:var(--fs-sm);color:var(--ink);text-decoration:none}.booking-calendar .fc-day-today .fc-daygrid-day-number{margin:4px;padding:0;min-width:1.9em;height:1.9em;display:inline-grid;place-items:center;border:1px solid var(--ink);border-radius:50%}.booking-calendar .fc-day-other .fc-daygrid-day-number{color:var(--faint)}.booking-calendar .fc-day-past{background:var(--st-past)}.booking-calendar .fc-day-past .fc-daygrid-day-frame{cursor:default}.booking-calendar .fc-day-past .fc-daygrid-day-frame:hover{background:none}.booking-calendar .fc-day-past .fc-daygrid-day-number{color:var(--faint)}.booking-calendar .fc-timegrid-slot{height:22px}.booking-calendar .fc-timegrid-slot-label-cushion,.booking-calendar .fc-timegrid-axis-cushion{font-size:var(--fs-xs);color:var(--muted)}.booking-calendar a{color:inherit;text-decoration:none}.booking-calendar .fc-daygrid-more-link{font-size:var(--fs-xs);color:var(--muted)}.booking-calendar .fc-event{border-width:1px;border-style:solid;border-radius:0;margin:1px 3px;font-size:var(--fs-xs)}.booking-calendar .calendar-confirmed{background:var(--st-busy)!important;border-color:transparent!important;color:var(--ink);--fc-event-bg-color: var(--st-busy);--fc-event-border-color: transparent;--fc-event-text-color: var(--ink)}.booking-calendar .calendar-pending{background:transparent!important;border:1px dashed var(--st-pending)!important;color:var(--st-pending);--fc-event-bg-color: transparent;--fc-event-border-color: var(--st-pending);--fc-event-text-color: var(--st-pending)}.booking-calendar .calendar-mine{background:#fff!important;border:1px solid var(--line-mid)!important;border-left:3px solid var(--st-mine)!important;color:var(--ink);--fc-event-bg-color: #fff;--fc-event-text-color: var(--ink)}.booking-calendar .calendar-selection{background:var(--ink)!important;border:1px solid var(--ink)!important;color:#fff;--fc-event-bg-color: var(--ink);--fc-event-text-color: #fff}.booking-calendar .fc-daygrid-event{white-space:nowrap}.booking-calendar .fc-event-main{color:inherit}.booking-event-text{display:flex;gap:.4rem;padding:0 .3rem;line-height:1.6;font-weight:500;overflow:hidden}.booking-event-text span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-event-time{font-weight:400;flex:none}.fc-timegrid-event .booking-event-text{flex-direction:column;gap:0;white-space:normal}.booking-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:0;padding:10px 16px 12px;list-style:none;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--ink-2)}.booking-legend li{display:inline-flex;align-items:center;gap:.45rem}.booking-legend li:before{content:"";width:14px;height:14px;box-sizing:border-box}.lg-busy:before{background:var(--st-busy)}.lg-pending:before{border:1px dashed var(--st-pending)}.lg-mine:before{border:1px solid var(--line-mid);border-left:3px solid var(--st-mine)}.lg-past:before{background:var(--st-past);border:1px solid var(--line)}.bk-panel{border:1px solid var(--line-mid);background:#fff;padding:24px;scroll-margin-top:calc(var(--header-h, 80px) + 16px)}.bk-empty,.bk-done{display:grid;gap:.9rem;justify-items:start}.bk-icon{color:var(--muted)}.bk-empty-title{margin:0;font-family:var(--font-serif);font-size:var(--fs-base);letter-spacing:.03em}.bk-facts{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1rem;margin:.4rem 0 0;padding-top:1rem;border-top:1px solid var(--line);width:100%;font-size:var(--fs-sm)}.bk-facts dt{color:var(--muted)}.bk-facts dd{margin:0}.bk-confirm{display:grid;gap:1rem}.bk-summary{padding-bottom:1rem;border-bottom:1px solid var(--line)}.bk-summary p{margin:0}.bk-summary-room{font-size:var(--fs-sm);color:var(--muted)}.bk-summary-date{margin-block:.2rem .6rem!important;font-family:var(--font-serif);font-size:1.2rem;line-height:1.5;letter-spacing:var(--tracking-ja)}.bk-chip{display:inline-block;padding:0 .7rem;border:1px solid var(--line-mid);border-radius:999px;font-size:var(--fs-sm)}.bk-confirm label{display:grid;gap:.4rem;font-size:var(--fs-sm)}.bk-confirm input,.bk-confirm textarea{min-width:0;padding:.7rem .8rem;background:#fff;color:var(--ink);border:1px solid var(--line-mid);border-radius:0;font:inherit;font-size:16px}.bk-confirm input:focus-visible,.bk-confirm textarea:focus-visible{border-color:var(--ink);outline:0}.bk-confirm textarea{resize:vertical}.bk-contact{margin:0;font-size:var(--fs-sm);color:var(--muted)}.bk-contact>span{display:block}.bk-contact-mail{overflow-wrap:anywhere;color:var(--ink)}.bk-confirm .bk-link{justify-self:center}.bk-done-title{margin:0;font-family:var(--font-serif);font-size:var(--fs-lg);letter-spacing:var(--tracking-ja)}.bk-muted{margin:0;color:var(--muted);font-size:var(--fs-sm)}.bk-done .bk-btn{margin-top:.4rem}.bk-done .bk-link{justify-self:center;width:100%}.booking-hint{font-size:var(--fs-sm);color:var(--ink-2)}.booking-error{margin:0 0 1rem;padding:.8rem 1rem;border:1px solid var(--line);border-left:3px solid var(--accent);font-size:var(--fs-sm);line-height:1.7}.bk-bar{display:none}@media(max-width:1023px){.bk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line-mid);font-family:var(--font-serif);font-size:var(--fs-md)}.bk-bar .bk-btn{width:auto;min-width:128px}.booking-app{padding-bottom:72px}}@media(max-width:650px){.bk-rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.bk-room+.bk-room{margin-left:-1px}.bk-room-pick{padding:.6rem .8rem;min-height:56px}.bk-room-name{font-size:var(--fs-base)}.bk-room-kind,.booking-app a.bk-room-more{display:none}.bk-toolbar{padding:10px 12px;gap:8px}.bk-title{order:-1;flex-basis:100%;font-size:1.15rem}.bk-modes{margin-left:auto}.bk-nav button,.bk-modes button{min-height:44px;min-width:44px}.booking-calendar{padding:0 8px 8px}.booking-calendar .fc-daygrid-day-frame{min-height:58px}.booking-calendar .fc-daygrid-event .booking-event-text{font-size:.65rem;padding:0 .15rem}.booking-calendar .fc-timegrid-slot{height:28px}.bk-panel{padding:18px}}.booking-app{--bk-accent: #7a1f1d;--bk-paper: #f6f4ef}.bk-steps4{list-style:none;display:flex;flex-wrap:wrap;gap:0;margin:0 0 var(--space-3);padding:0;border-bottom:1px solid var(--line)}.bk-steps4 li{display:flex;align-items:center;gap:10px;padding:0 28px 14px 0;margin-right:28px;font-size:var(--fs-sm);letter-spacing:.1em;color:var(--faint);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .3s,border-color .3s}.bk-steps4 li span{font-family:var(--font-latin);font-size:12px;letter-spacing:.2em}.bk-steps4 li[data-on=true]{color:var(--ink);border-bottom-color:var(--bk-accent)}.bk-steps4 li[data-on=true] span{color:var(--bk-accent)}.bk-h{display:flex;align-items:baseline;gap:14px;margin:0 0 var(--space-2);padding-bottom:12px;border-bottom:1px solid var(--ink);font-family:var(--font-serif);font-weight:500;font-size:1.35rem;letter-spacing:.16em}.bk-h span{font-family:var(--font-latin);font-size:12px;letter-spacing:.3em;color:var(--bk-accent)}.bk-venue-block{display:grid;gap:0}.bk-vcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bk-vcard{display:grid;border:1px solid var(--line-mid);background:#fff;transition:border-color .2s,box-shadow .2s}.bk-vcard[data-on=true]{border-color:var(--ink);box-shadow:inset 0 3px 0 var(--bk-accent)}.bk-vcard-pick{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:stretch;padding:0;min-height:44px;background:none;border:0;color:var(--ink);text-align:left}.bk-vcard-pick:hover{background:var(--hover)}.bk-vcard-pick img{width:100%;height:100%;min-height:110px;object-fit:cover}.bk-vcard-tx{display:grid;align-content:center;gap:2px;padding:12px 14px}.bk-vcard-tx b{font-family:var(--font-latin);font-weight:400;font-size:11px;letter-spacing:.2em;color:var(--bk-accent)}.bk-vcard-tx strong{font-family:var(--font-serif);font-weight:500;font-size:1.15rem;letter-spacing:.1em}.bk-vcard-tx em{font-style:normal;font-size:12px;color:var(--muted)}.bk-vcard-tx i{font-style:normal;font-family:var(--font-latin);font-size:14px;letter-spacing:.04em}.bk-note{margin:0;font-size:12.5px;color:var(--muted);line-height:1.9}.bk-small{margin:6px 0 0;font-size:12px;color:var(--muted)}.bk-fld label,.bk-lb{font-size:13px;letter-spacing:.1em;color:var(--ink-2)}.bk-fld input[type=text],.bk-fld input[type=number]{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-mid);border-radius:0;background:#fff;color:var(--ink);font:inherit}.bk-side-h{margin:0 0 12px;font-family:var(--font-serif);font-weight:500;font-size:1.1rem;letter-spacing:.14em}.bk-sum{margin:0 0 12px;border-top:1px solid var(--ink)}.bk-sum div{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.7}.bk-sum dt{color:var(--muted)}.bk-sum dd{margin:0;overflow-wrap:anywhere}.bk-warn{margin:0 0 12px;padding:10px 12px;border:1px solid var(--bk-accent);color:var(--bk-accent);font-size:13px}.booking-app .bk-btn{background:var(--bk-accent);border-color:var(--bk-accent)}.booking-app .bk-btn:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}@media(max-width:860px){.bk-vcards{grid-template-columns:1fr}.bk-vcard-pick{grid-template-columns:96px minmax(0,1fr)}.bk-steps4 li{padding-right:14px;margin-right:14px;font-size:12px;gap:6px}.bk-steps4 li span{font-size:11px;letter-spacing:.1em}}@media(max-width:560px){.bk-steps4{flex-wrap:nowrap}.bk-steps4 li{flex:1 1 0;min-width:0;flex-direction:column;align-items:flex-start;gap:2px;padding-right:6px;margin-right:8px;font-size:11.5px;letter-spacing:.04em}.bk-steps4 li:last-child{margin-right:0}}.bk-ask{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:1.25rem;background:#0d0d0d8c}.bk-ask-box{width:min(520px,100%);padding:2.25rem 2.25rem 2rem;background:#fff;border:1px solid var(--ink)}.bk-ask-k{font-family:var(--font-latin);font-size:11px;letter-spacing:.3em;color:var(--accent)}.bk-ask h2{margin-top:.5rem;font-size:var(--fs-xl);line-height:1.6}.bk-ask p:not(.bk-ask-k){margin-top:.9rem;font-size:var(--fs-sm);line-height:1.9;color:var(--ink-2)}.bk-ask-act{display:flex;gap:.75rem;margin-top:1.75rem}.bk-ask-act .bk-btn{flex:1}@media(max-width:650px){.bk-ask-box{padding:1.75rem 1.25rem 1.5rem}.bk-ask-act{flex-direction:column-reverse}}.bk-ask .bk-btn.bk-btn-line{background:transparent;color:var(--ink)}.bk-ask .bk-btn.bk-btn-line:hover{background:var(--ink);border-color:var(--ink);color:#fff}.bk-req{font-weight:inherit}.bk-req.bad{color:var(--accent)}.bk-confirm input[aria-invalid=true]{border-color:var(--accent)}.bk-field-err{margin-top:-.6rem;font-size:12.5px;color:var(--accent)}.bk-count{margin-top:-.6rem;font-size:12px;text-align:right;color:var(--muted)}.bk-count.over{color:var(--accent)}.bk-confirm textarea[aria-invalid=true]{border-color:var(--accent)}.bk-applied .bk-ask-box{text-align:center}.bk-applied .bk-icon{display:block;margin:0 auto 12px;color:var(--accent)}.bk-applied-dl{margin-top:1.1rem;border-top:1px solid var(--line);text-align:left}.bk-applied-dl div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:12px;padding:10px 2px;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}.bk-applied-dl dt{color:var(--muted)}.bk-applied .bk-ask-act a.bk-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.bk-applied .bk-ask-box>p:not(.bk-ask-k){text-align:left}.bk-card,#booking-request{scroll-margin-top:90px}dialog.bk-ask{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;color:inherit;overflow:auto}dialog.bk-ask::backdrop{background:transparent}.bk-check{margin:24px 0 0}.bk-check[hidden]{display:none}.bk-check a.bk-btn{background:#7a1f1d;border-color:#7a1f1d;color:#fff;text-decoration:none}.bk-check a.bk-btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
