/* floating book button: desktop only, phones use the bottom bar */
.fab{position:fixed;right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:40;min-height:56px;padding:0 28px;border:2px solid var(--ink);background:var(--ink);color:var(--canvas);font-family:var(--head);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:1rem;cursor:pointer;box-shadow:6px 6px 0 var(--sage)}
.fab:hover{background:var(--ink-hover);color:var(--canvas-hover)}
.fab:focus-visible{outline:3px solid var(--sage-deep);outline-offset:4px}
@media (max-width:820px){.fab{display:none}}

/* booking lightbox */
.bk-overlay[hidden]{display:none}
.bk-overlay{position:fixed;inset:0;z-index:60;background:rgba(74,46,33,.55);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.bk-panel{background:var(--paper);border:2px solid var(--ink);box-shadow:10px 10px 0 var(--ink);width:min(780px,100%);max-height:min(90vh,920px);display:flex;flex-direction:column;min-width:0}
.bk-head{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:2px solid var(--ink);background:var(--blush)}
.bk-icon{width:42px;height:42px;flex:0 0 auto;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer}
.bk-icon:hover{background:var(--sage-wash)}
.bk-icon:focus-visible{outline:3px solid var(--sage-deep);outline-offset:2px}
.bk-steps{flex:1;display:flex;gap:6px;list-style:none;margin:0;padding:0;justify-content:center;font-family:var(--head);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.74rem}
.bk-steps li{padding:6px 10px;border:1.5px solid var(--line);color:var(--muted)}
.bk-steps li.on{border-color:var(--ink);background:var(--ink);color:var(--canvas)}
.bk-steps li.done{border-color:var(--sage-deep);color:var(--sage-deep)}
.bk-body{overflow:auto;padding:22px;overscroll-behavior:contain}
.bk-body h2{font-size:clamp(1.4rem,3.6vw,1.9rem)}
.bk-lede{color:var(--soft);margin-top:6px}
@media (max-width:600px){
  .bk-overlay{padding:0}
  .bk-panel{width:100%;height:100%;max-height:none;box-shadow:none;border:0}
  .bk-head{padding-top:calc(12px + env(safe-area-inset-top,0px))}
  .bk-steps li{padding:5px 7px;font-size:.68rem}
  .bk-body{padding:18px max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
}

/* step 1 */
.bk-new{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:18px 0 16px;padding:14px 16px;background:var(--sage-wash);border:2px solid var(--ink);text-align:left;width:100%;cursor:pointer;font:inherit;color:var(--ink)}
.bk-new b{font-family:var(--item);font-weight:600}
.bk-new span{color:var(--soft);font-size:.92rem}
.bk-new:hover{background:#d2ddc7}
.bk-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.bk-cat{display:grid;gap:0;text-align:left;border:2px solid var(--ink);background:var(--cream);padding:0;cursor:pointer;font:inherit;color:var(--ink);min-width:0}
.bk-cat img{display:block;height:140px;width:auto;max-width:calc(100% - 28px);margin:14px auto 0;object-fit:contain;border:2px solid var(--ink)}
@media (max-width:600px){.bk-cat img{height:96px}}
.bk-cat div{padding:10px 14px 14px;display:grid;gap:2px}
.bk-cat h3{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.1rem}
.bk-cat small{color:var(--soft)}
.bk-cat em{font-style:normal;font-family:var(--item);font-weight:600;font-size:.9rem;color:var(--sage-deep)}
.bk-cat:hover{background:var(--sage-wash)}
.bk-cat:focus-visible,.bk-item:focus-visible,.bk-new:focus-visible{outline:3px solid var(--sage-deep);outline-offset:3px}

.bk-wide{grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);align-items:center}
.bk-wide img{margin:14px 0 14px 14px}
@media (max-width:600px){.bk-wide{grid-template-columns:1fr}.bk-wide img{margin:14px auto 0}}
/* step 2 */
.bk-catpic{display:block;height:180px;width:auto;max-width:100%;object-fit:contain;border:2px solid var(--ink);margin:0 auto 16px}
@media (max-width:600px){.bk-catpic{height:140px}}
.bk-items{display:grid;gap:10px;margin-top:16px}
.bk-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;text-align:left;width:100%;padding:14px 16px;border:2px solid var(--ink);background:var(--paper);cursor:pointer;font:inherit;color:var(--ink)}
.bk-item:hover{background:var(--sage-wash)}
.bk-item b{font-family:var(--item);font-weight:500;font-size:1.05rem;display:block}
.bk-item small{color:var(--muted);font-size:.85rem}
.bk-item .pr{font-family:var(--item);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.bk-item .go{font-size:1.2rem}
.bk-sub{font-family:var(--head);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;margin-top:22px;color:var(--sage-deep)}
.bk-faq{margin-top:10px;border-top:2px solid var(--ink)}
.bk-faq details{padding:13px 2px}

/* step 3 */
.bk-detail{display:grid;gap:14px}
.bk-price{font-family:var(--item);font-weight:600;font-size:1.4rem}
.bk-desc{color:var(--soft);max-width:60ch}
.bk-note{font-size:.9rem;color:var(--sage-deep);font-weight:600}
.bk-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.bk-msg{background:var(--sage-wash);border:2px solid var(--ink);padding:12px 14px;font-size:.95rem}
.bk-fine{color:var(--muted);font-size:.85rem}
body.bk-open{overflow:hidden}

.bk-faq details{max-width:none}
.bk-faq details:last-child{border-bottom:2px solid var(--ink)}
body.bk-open{overflow:hidden}
.bk-emblem{width:58px;height:auto;margin-bottom:10px}
