@font-face{font-family:"Noto Serif JP Prices";src:url("../fonts/noto-serif-jp-prices-500.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+002B-0039,U+00A5,U+2212}
@charset "utf-8";
/* WEB予約ページ（reserve.html）専用スタイル — LAPiS public tokens を使用 */
.bk { max-width: 1040px; margin: 0 auto; }
.bk__loading, .bk-loading { text-align: center; color: var(--ink-3); padding: 48px 0; letter-spacing: .08em; }
.bk-steps { display: flex; gap: 0; margin: 0 0 44px; padding: 0; list-style: none; counter-reset: bk; }
.bk-steps li { flex: 1; text-align: center; position: relative; padding-top: 40px; font-size: 13px; color: var(--ink-3); letter-spacing: .06em; }
.bk-steps li span { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; background: var(--bg); font-family: var(--en); font-size: 16px; z-index: 1; }
.bk-steps li::before { content: ""; position: absolute; top: 15px; left: -50%; width: 100%; height: 1px; background: var(--line); }
.bk-steps li:first-child::before { display: none; }
.bk-steps li em { font-style: normal; }
.bk-steps li.is-on { color: var(--ink); }
.bk-steps li.is-on span { background: #8a6a4a; border-color: #8a6a4a; color: #fff; }
.bk-steps li.is-done span { background: var(--bg-warm); border-color: var(--bg-warm); }
.bk-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.bk-layout:has(.bk-aside:empty) { grid-template-columns: 1fr; }
.bk-h { font-size: 22px; font-weight: 400; letter-spacing: .08em; margin: 0 0 26px; line-height: 1.5; }
.bk-sub { font-size: 17px; font-weight: 400; letter-spacing: .06em; margin: 34px 0 14px; }
.bk-list { display: grid; gap: 12px; }
.bk-list--staff { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.bk-card { position: relative; display: block; width: 100%; text-align: left; background: #fbf9f7; border: 1px solid var(--line); padding: 20px 24px; transition: border-color .2s, background .2s; }
.bk-card:hover { border-color: #8a6a4a; }
.bk-card.is-on { border-color: #8a6a4a; background: #fff; box-shadow: 0 0 0 1px #8a6a4a inset; }
.bk-card b { display: block; font-weight: 400; font-size: 17px; letter-spacing: .05em; }
.bk-card span { display: block; margin-top: 4px; font-size: 13px; color: var(--ink-3); line-height: 1.7; }
.bk-card i { position: absolute; right: 24px; top: 20px; font-style: normal; font-family: var(--en); font-size: 20px; }
.bk-staff { text-align: center; padding: 18px 14px; }
.bk-staff img, .bk-staff .bk-ph { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; background: var(--bg-warm); display: grid; place-items: center; font-size: 26px; }
.bk-opt { margin-top: 34px; }
.bk-opt h3 { font-size: 15px; font-weight: 400; margin: 0 0 10px; letter-spacing: .06em; }
.bk-check { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--line-soft); cursor: pointer; font-size: 15px; }
.bk-check i { margin-left: auto; font-style: normal; font-family: var(--en); font-size: 17px; }
.bk-check input { accent-color: #8a6a4a; width: 17px; height: 17px; }
.bk-cal-head { font-size: 14px; color: var(--ink-3); margin-bottom: 8px; letter-spacing: .08em; }
.bk-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.bk-cal__w { text-align: center; font-size: 13px; padding: 6px 0; color: var(--ink-3); }
.bk-cal__w.sun { color: #b0524a; } .bk-cal__w.sat { color: #4a6aa0; }
.bk-day { aspect-ratio: 1 / .88; background: #fbf9f7; border: 1px solid var(--line-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: 16px; }
.bk-day em { font-style: normal; font-size: 12px; color: #8a6a4a; }
.bk-day:disabled { background: transparent; color: #b9b3a9; cursor: not-allowed; } .bk-day:disabled em { color: #b9b3a9; }
.bk-day.is-out { border: 0; background: transparent; }
.bk-day:not(:disabled):hover { border-color: #8a6a4a; }
.bk-day.is-on { background: #8a6a4a; border-color: #8a6a4a; color: #fff; } .bk-day.is-on em { color: #fff; }
.bk-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }
.bk-slots button { height: 46px; background: #fbf9f7; border: 1px solid var(--line); font-family: var(--en); font-size: 19px; letter-spacing: .04em; }
.bk-slots button:hover { border-color: #8a6a4a; } .bk-slots button.is-on { background: #8a6a4a; border-color: #8a6a4a; color: #fff; }
.bk-note { font-size: 13px; color: var(--ink-3); margin-top: 14px; line-height: 1.8; }
.bk-empty { color: var(--ink-3); padding: 30px 0; line-height: 1.9; }
.bk-error { background: #f6e4e0; border: 1px solid #e3b9b0; color: #8a3a2c; padding: 14px 18px; margin: 0 0 22px; font-size: 14px; line-height: 1.8; }
.bk-form .bk-row { display: grid; grid-template-columns: 180px 1fr; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: start; }
.bk-form .bk-row:first-child { border-top: 1px solid var(--line); }
.bk-form label { font-size: 15px; padding-top: 12px; letter-spacing: .04em; }
.bk-form label .req, .bk-form #bk-gender-label .req { display: inline-block; margin-left: 8px; font-size: 11px; color: #fff; background: #8a6a4a; padding: 2px 7px; vertical-align: 2px; }
.bk-form input, .bk-form textarea { width: 100%; border: 1px solid var(--line); background: #fff; padding: 12px 14px; font: inherit; font-size: 16px; }
.bk-form textarea { min-height: 110px; line-height: 1.8; }
.bk-form input:focus, .bk-form textarea:focus { outline: 0; border-color: #8a6a4a; }
.bk-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0; }
.bk-notes { margin-top: 28px; background: #fbf9f7; border: 1px solid var(--line-soft); padding: 18px 22px; }
.bk-notes h3 { font-size: 14px; font-weight: 400; margin: 0 0 6px; } .bk-notes p { font-size: 13.5px; color: var(--ink-2); line-height: 1.9; white-space: pre-line; }
.bk-conf, .bk-sum { margin: 0; display: grid; grid-template-columns: 110px 1fr; gap: 0; }
.bk-conf dt, .bk-conf dd, .bk-sum dt, .bk-sum dd { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.bk-conf dt { color: var(--ink-3); font-size: 14px; } .bk-conf dd { word-break: break-all; }
.bk-aside { position: sticky; top: 100px; background: #fbf9f7; border: 1px solid var(--line-soft); padding: 22px 22px 8px; }
.bk-aside h3 { font-size: 15px; font-weight: 400; letter-spacing: .1em; margin: 0 0 6px; }
.bk-sum { grid-template-columns: 70px 1fr; } .bk-sum dt, .bk-sum dd { padding: 10px 0; font-size: 13.5px; } .bk-sum dt { color: var(--ink-3); }
.bk-nav { display: flex; gap: 16px; align-items: center; justify-content: flex-end; margin-top: 40px; }
.bk-back { font-size: 14px; color: var(--ink-3); text-decoration: underline; text-underline-offset: 4px; padding: 10px 4px; }
.bk-next[disabled] { opacity: .35; cursor: not-allowed; }
.bk-done { text-align: center; max-width: 640px; margin: 0 auto; } .bk-done .lead-text { margin: 0 auto 30px; } .bk-done .bk-conf { text-align: left; } .bk-done .bk-nav { justify-content: center; }
@media (max-width: 860px) {
  .bk-layout { grid-template-columns: 1fr; gap: 28px; } .bk-aside { position: static; order: -1; padding: 16px 18px 4px; }
  .bk-steps li { font-size: 10px; } .bk-steps li em { display: none; } .bk-steps li.is-on em { display: block; font-size: 11px; }
  .bk-form .bk-row { grid-template-columns: 1fr; gap: 6px; } .bk-form label { padding-top: 0; }
  .bk-h { font-size: 19px; } .bk-nav { justify-content: space-between; } .bk-nav .btn-dark { min-width: 0; flex: 1; }
}

/* ---- visit type, category chips, coupons, week grid ---- */
.bk-visit { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 28px; padding: 14px 18px; background: #fbf9f7; border: 1px solid var(--line-soft); font-size: 14px; }
.bk-visit button, .bk-chips button { height: 38px; padding: 0 20px; border: 1px solid var(--line); background: #fff; font-size: 14px; letter-spacing: .04em; }
.bk-visit button.is-on, .bk-chips button.is-on { background: #8a6a4a; border-color: #8a6a4a; color: #fff; }
.bk-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; } .bk-chips button { height: 34px; padding: 0 16px; font-size: 13px; }
.bk-cp { position: absolute; right: 24px; bottom: 16px; font-style: normal; font-size: 11px; letter-spacing: .08em; color: #8a6a4a; border: 1px solid #c9b79d; padding: 1px 8px; }
.bk-radios { display: flex; gap: 22px; flex-wrap: wrap; padding-top: 10px; } .bk-radio { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; padding-top: 0 !important; cursor: pointer; } .bk-radio input { width: auto !important; accent-color: #8a6a4a; }
.bk-week-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; font-size: 15px; } .bk-week-nav b { font-weight: 400; letter-spacing: .06em; }
.bk-week-nav button { height: 38px; padding: 0 16px; border: 1px solid var(--line); background: #fff; font-size: 13px; } .bk-week-nav button:disabled { opacity: .35; cursor: not-allowed; }
.bk-week { max-height: 560px; overflow: auto; border: 1px solid var(--line); background: #fff; }
.bk-week table { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 560px; table-layout: fixed; }
.bk-week thead th { position: sticky; top: 0; z-index: 2; background: #fbf9f7; border-bottom: 1px solid var(--line); padding: 8px 0; font-weight: 400; font-size: 14px; line-height: 1.3; }
.bk-week thead th em { display: block; font-style: normal; font-size: 11px; color: var(--ink-3); } .bk-week thead th.sun span { color: #b0524a; } .bk-week thead th.sat span { color: #4a6aa0; }
.bk-week th.bk-time { width: 64px; position: sticky; left: 0; z-index: 1; background: #fbf9f7; font-family: var(--en); font-size: 15px; color: var(--ink-2); border-right: 1px solid var(--line-soft); }
.bk-week thead th.bk-time { z-index: 3; }
.bk-week td { text-align: center; height: 38px; border-bottom: 1px solid var(--line-soft); border-right: 1px solid var(--line-soft); padding: 0; }
.bk-week td:last-child { border-right: 0; }
.bk-ng { color: #c4beb4; font-size: 14px; background: rgba(27,25,23,.015); }
.bk-ok { width: 100%; height: 100%; font-size: 17px; color: #8a6a4a; background: transparent; border: 0; } .bk-ok:hover { background: #f4ece1; }
.bk-ok.is-on { background: #8a6a4a; color: #fff; }
.bk-pick { margin: 14px 0 0; font-size: 15px; color: #8a6a4a; letter-spacing: .05em; }
@media (max-width: 860px) { .bk-visit { padding: 12px; } .bk-week-nav { flex-wrap: wrap; justify-content: center; } .bk-week th.bk-time { width: 52px; font-size: 13px; } .bk-cp { position: static; display: inline-block; margin-top: 6px; } }

/* ---- my page / member / payment ---- */
.mp { max-width: 860px; }
.mp-tabs { margin-bottom: 26px; } .mp-tabs button { height: 42px; padding: 0 26px; font-size: 15px; }
.mp-ok { background: #eaf3e6; border: 1px solid #c4dcb9; color: #35592a; padding: 14px 18px; margin: 0 0 22px; font-size: 14px; line-height: 1.8; }
.mp-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; } .mp-head .bk-h { margin-bottom: 4px; } .mp-head__a { display: flex; gap: 10px; flex-wrap: wrap; }
.mp-mute { color: var(--ink-3); font-size: 13px; line-height: 1.8; }
.mp-btn { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 20px; border: 1px solid var(--line); background: #fff; font-size: 14px; letter-spacing: .04em; cursor: pointer; }
.mp-btn:hover { border-color: #8a6a4a; } .mp-btn--pri { background: #8a6a4a; border-color: #8a6a4a; color: #fff; } .mp-btn--warn { color: #a8433a; border-color: #dcb5af; }
.mp-rank { display: grid; grid-template-columns: auto auto 1fr; gap: 26px; align-items: center; background: #fbf9f7; border: 1px solid var(--line-soft); padding: 20px 26px; }
.mp-rank__n small { display: block; font-size: 12px; color: var(--ink-3); letter-spacing: .1em; } .mp-rank__n b { font-family: var(--en); font-size: 28px; font-weight: 500; letter-spacing: .06em; }
.mp-rank__s { font-size: 14px; line-height: 1.9; } .mp-rank__d { font-size: 14px; border-left: 1px solid var(--line); padding-left: 24px; }
.mp-res { background: #fbf9f7; border: 1px solid var(--line-soft); padding: 18px 22px; margin-bottom: 12px; }
.mp-res__h { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 6px; } .mp-res__h b { font-weight: 500; font-size: 17px; letter-spacing: .04em; }
.mp-res__b { font-size: 14px; line-height: 1.8; } .mp-res__a { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; align-items: center; }
.mp-badge { font-size: 12px; padding: 2px 10px; border: 1px solid var(--line); background: #fff; } .mp-booked { color: #8a6a4a; border-color: #d7c3a5; } .mp-cancelled, .mp-noshow { color: #a8433a; border-color: #dcb5af; } .mp-visited { color: #4a6a3a; border-color: #bfd4b4; }
.mp-move { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--line); } .mp-move input[type=date] { height: 42px; border: 1px solid var(--line); padding: 0 12px; font: inherit; margin: 8px 0 12px; background: #fff; }
.mp-coupon { position: relative; background: #fff; border: 1px dashed #c9b79d; padding: 14px 20px; font-size: 14px; } .mp-coupon code { position: absolute; right: 18px; top: 14px; font-size: 14px; letter-spacing: .1em; color: #8a6a4a; }
.bk-code { display: flex; gap: 8px; flex-wrap: wrap; align-items: stretch; margin-top: 8px; } .bk-code input { flex: 1 1 160px; height: 42px; border: 1px solid var(--line); padding: 0 12px; font: inherit; background: #fff; } .bk-code button { height: 42px; padding: 0 18px; border: 1px solid #8a6a4a; background: #fff; color: #8a6a4a; }
.bk-member { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 22px; padding: 12px 18px; background: #fbf9f7; border: 1px solid var(--line-soft); font-size: 14px; } .bk-member a { color: #8a6a4a; border-bottom: 1px solid currentColor; }
.bk-pay { margin-top: 22px; padding: 16px 20px; background: #fbf9f7; border: 1px solid var(--line-soft); } .bk-pay h3 { margin: 0 0 8px; font-size: 15px; font-weight: 400; }
@media (max-width: 860px) { .mp-rank { grid-template-columns: 1fr; gap: 10px; } .mp-rank__d { border-left: 0; padding-left: 0; } .mp-coupon code { position: static; display: block; margin-top: 6px; } }

/* ---- member / guest gate ---- */
.bk-gate { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0 0 26px; }
.bk-gate button { text-align: left; padding: 16px 20px; background: #fbf9f7; border: 1px solid var(--line); transition: .2s; } .bk-gate button b { display: block; font-weight: 400; font-size: 16px; letter-spacing: .06em; } .bk-gate button span { display: block; margin-top: 3px; font-size: 12.5px; color: var(--ink-3); }
.bk-gate button:hover { border-color: #8a6a4a; } .bk-gate button.is-on { border-color: #8a6a4a; background: #fff; box-shadow: 0 0 0 1px #8a6a4a inset; }
.bk-gate-ok { background: #fbf9f7; border: 1px solid var(--line-soft); padding: 22px 26px; } .bk-gate-ok b { font-size: 19px; font-weight: 400; letter-spacing: .06em; } .bk-gate-ok p { margin: 8px 0 0; font-size: 14px; line-height: 1.9; color: var(--ink-2); }
.bk-member__a { display: flex; gap: 18px; flex-wrap: wrap; }
.mp-pay { color: var(--ink-2); font-size: 13px; line-height: 1.8; } .mp-pay b { font-weight: 500; color: #8a6a4a; }
.mp-ctabs { display: flex; gap: 8px; margin: 0 0 14px; flex-wrap: wrap; } .mp-ctabs button { height: 36px; padding: 0 16px; border: 1px solid var(--line); background: #fff; font-size: 13px; } .mp-ctabs button.is-on { background: #8a6a4a; border-color: #8a6a4a; color: #fff; }
.mp-coupon.is-off { opacity: .55; border-style: solid; } .mp-coupon__a { margin-top: 10px; }
.mp-soon { color: #a8433a; font-size: 12px; }
@media (max-width: 860px) { .bk-gate { grid-template-columns: 1fr; } }

/* Reservation redesign. Scoped so account pages keep their existing styles. */
.reservation-page{background:#fff;--booking-gold:#a4865b;--booking-border:#e9e5df;--booking-warm:#fbfaf8;--booking-muted:#77736e}
.reservation-hero{position:relative;min-height:180px;background:linear-gradient(90deg,rgba(250,247,241,.97),rgba(250,247,241,.86) 52%,rgba(244,234,221,.5)),url('../img/shops/nemureru-mori-spa-main-20261011.jpg') center 45%/cover no-repeat;color:var(--ink)}
.reservation-hero .container{padding-top:20px;padding-bottom:28px}
.reservation-hero .breadcrumb{padding:0;margin:0 0 12px;font-size:11px}
.reservation-hero h1{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:400;letter-spacing:.07em;line-height:1.4;margin:0 0 8px}
.reservation-hero h1 span{font-family:var(--en);font-size:34px;letter-spacing:.06em}
.reservation-hero h1 small{font-size:18px;font-weight:400}
.reservation-hero p{font-size:13px;line-height:1.85;color:#5c554d}
.reservation-section{padding:24px 0 85px}
.reservation-page .container{max-width:1440px}
.reservation-page .bk{max-width:none}
.reservation-page .bk-steps{margin:0 0 34px;gap:12px}
.reservation-page .bk-steps li{padding:0;flex:1;display:flex;align-items:center;font-size:12px;white-space:nowrap;color:#8d8b89}
.reservation-page .bk-steps li::before{display:none}
.reservation-page .bk-steps li::after{content:'';height:1px;min-width:12px;flex:1;background:#dedddc;margin-left:12px}
.reservation-page .bk-steps li:last-child::after{display:none}
.reservation-page .bk-steps button{border:0;background:none;display:flex;align-items:center;gap:8px;color:inherit;padding:0;text-align:left;font:inherit;cursor:pointer}
.reservation-page .bk-steps button:disabled{cursor:default;opacity:1}
.reservation-page .bk-steps li span{position:static;transform:none;width:29px;height:29px;flex-shrink:0;background:#d4d4d6;border:0;color:#fff;font-size:15px}
.reservation-page .bk-steps li em{display:block;font-size:12px;font-style:normal}
.reservation-page .bk-steps li.is-on,.reservation-page .bk-steps li.is-done{color:var(--booking-gold)}
.reservation-page .bk-steps li.is-on span,.reservation-page .bk-steps li.is-done span{background:var(--booking-gold)}
.reservation-page .bk-steps li.is-done::after{background:#b99d79}
.reservation-page .bk-layout{grid-template-columns:minmax(0,1fr) 290px;gap:28px;align-items:start}
.reservation-page .bk-main{min-width:0}
.bk-title{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap;margin:10px 0 26px}
.reservation-page .bk-h{font-size:26px;line-height:1.5;font-weight:500;letter-spacing:.04em;margin:0 0 25px}
.bk-title .bk-h{margin:0}.bk-title p{font-size:13px;color:var(--booking-muted)}
.bk-filters{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0 0 28px}
.bk-filter{display:flex;align-items:center;gap:12px;font-size:12px;white-space:nowrap;min-width:0}
.bk-filter+ .bk-filter{border-left:1px solid var(--booking-border);padding-left:20px}
.bk-filter select{font:inherit;color:var(--ink);border:1px solid var(--booking-border);background:#fff;border-radius:5px;min-width:0;flex:1;height:42px;padding:0 12px}
.bk-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bk-shop-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--booking-border);border-radius:6px;padding:8px;background:#fff;transition:border-color .2s,box-shadow .2s}
.bk-shop-card.is-on{border-color:var(--booking-gold);box-shadow:0 0 0 1px var(--booking-gold)}
.bk-shop-pick{border:0;padding:0;background:transparent;text-align:left;font:inherit;cursor:pointer;flex:1;min-width:0;color:var(--ink)}
.bk-shop-photo{position:relative;aspect-ratio:1.58;overflow:hidden;border-radius:3px;background:#f2ece2}
.bk-shop-photo img{width:100%;height:100%;object-fit:cover;display:block}
.bk-photo-empty{height:100%;display:grid;place-items:center;color:var(--booking-gold)}
.bk-card-check{position:absolute;right:10px;top:10px;border:2px solid #fff;border-radius:50%;width:31px;height:31px;color:#fff;display:grid;place-items:center;font-family:system-ui;font-size:21px;text-shadow:0 1px 3px #0007;background:#b3966a55}
.bk-shop-card h3{font-size:17px;font-weight:500;line-height:1.5;margin:13px 3px 9px;overflow-wrap:anywhere}
.bk-shop-tags{display:flex;gap:5px;flex-wrap:wrap;margin:0 3px 13px}
.bk-shop-tags span{background:#f7f4ef;border-radius:4px;padding:3px 7px;font-size:10px;line-height:1.5;color:#6a6257;overflow-wrap:anywhere}
.bk-shop-access{display:flex;gap:8px;font-size:12px;line-height:1.8;margin:0 3px 16px;white-space:pre-line;overflow-wrap:anywhere;min-height:64px}
.bk-shop-access .bk-icon{margin-top:2px;color:var(--booking-gold);width:16px;height:20px;flex-shrink:0}
.bk-shop-detail{border:1px solid #c8c6c4;border-radius:4px;display:flex;justify-content:center;align-items:center;gap:15px;min-height:39px;padding:7px;font-size:12px;letter-spacing:.02em;margin:0 3px 3px}
.bk-shop-card.is-on .bk-shop-detail{background:linear-gradient(110deg,#b99b70,#8b7046);border-color:transparent;color:#fff}
.bk-shop-detail:hover{border-color:var(--booking-gold)}
.bk-preparing{font-size:10px;color:#8d8172;padding:0 3px 8px}
.bk-more{display:flex;gap:20px;align-items:center;margin:30px auto 0;border:0;border-bottom:1px solid var(--booking-gold);padding:0 3px 4px;background:none;color:#91734b;font:inherit;font-size:14px;cursor:pointer}
.reservation-page .bk-nav{justify-content:center;gap:18px;margin-top:38px}
.reservation-page .bk-next{min-width:300px;background:linear-gradient(115deg,#b4986e,#896e45);border:0;color:#fff;border-radius:4px;height:59px;font-size:16px;font-weight:400;letter-spacing:.08em;padding:0 26px}
.reservation-page .bk-next[disabled]{opacity:1;background:#d4d2d0;color:#fff;cursor:not-allowed}
.reservation-page .bk-back{font-size:12px;white-space:nowrap;color:#8a7761}
.reservation-page .bk-aside{border:1px solid var(--booking-border);border-radius:7px;background:var(--booking-warm);padding:17px 16px;top:100px;max-height:calc(100vh - 115px);overflow:auto;scrollbar-width:thin}
.bk-summary-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:13px;border-bottom:1px solid var(--booking-border)}
.reservation-page .bk-summary-head h3{font-size:18px;margin:0;font-weight:500;letter-spacing:.02em}
.bk-edit{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:10px;font-family:inherit;color:#9a7c54;border:0;background:none;padding:3px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bk-edit:disabled{opacity:.35;cursor:default;text-decoration:none}
.bk-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.bk-edit .bk-icon{width:13px;height:13px}
.bk-selection{padding:17px 0;border-bottom:1px solid var(--booking-border)}
.bk-selection__head{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.bk-selection h4,.bk-prices h4{font-size:15px;font-weight:500;margin:0;letter-spacing:.07em}
.bk-selection__head>span{font-size:11px;color:#96918a}
.bk-selection__head .bk-edit{margin-left:auto}
.bk-selection__body{display:grid;grid-template-columns:65px 1fr;gap:11px;align-items:start;min-width:0}
.bk-selection__body>img,.bk-selection__icon{height:65px;width:65px;object-fit:cover;border-radius:4px;background:#f1ece4}
.bk-selection__icon{display:grid;place-items:center;color:var(--booking-gold)}
.bk-selection__icon .bk-icon{width:31px;height:31px}
.bk-selection__body b{font-size:13px;line-height:1.5;font-weight:500;display:block;overflow-wrap:anywhere}
.bk-selection__body p{font-size:10px;color:#817970;line-height:1.7;margin-top:4px;white-space:pre-line;overflow-wrap:anywhere}
.bk-prices{padding:20px 0 0}.bk-prices dl{display:grid;grid-template-columns:1fr auto;gap:8px;margin:15px 0 18px;font-size:11px;color:#716a62}.bk-prices dt,.bk-prices dd{margin:0}.bk-prices dd{text-align:right;font-family:var(--en);font-size:15px}
.bk-total{display:flex;justify-content:space-between;align-items:baseline;padding:13px 10px;background:#f5f1eb;font-size:14px}.bk-total b{font-family:var(--en);font-weight:500;font-size:23px;color:#8c704b}
.bk-price-note{font-size:10px;line-height:1.7;text-align:center;padding:12px 4px;background:#fff;margin:0 0 14px}
.bk-summary-next{width:100%;min-height:49px;display:flex;align-items:center;justify-content:center;gap:14px;border:0;border-radius:4px;background:linear-gradient(115deg,#b4986e,#896e45);color:#fff;font-family:inherit;font-size:13px;letter-spacing:.03em;padding:10px;cursor:pointer}
.bk-summary-next:disabled{background:#cecbc8;cursor:default}.bk-summary-next span{font-family:var(--en);font-size:22px}
.bk-assurance{display:flex;gap:10px;padding:15px 12px;border:1px solid var(--booking-border);border-radius:5px;background:#fff;margin-top:16px}
.bk-assurance--notice p{margin:0 0 6px;white-space:pre-line}.bk-assurance--notice p:last-child{margin-bottom:0}
.bk-assurance>.bk-icon{color:#9e7f54}.bk-assurance h4{font-size:11px;line-height:1.7;font-weight:500;margin:0 0 5px}.bk-assurance p,.bk-assurance a{font-size:10px;line-height:1.85;color:#827b72}.bk-assurance a{color:#9e7f54;display:block;margin-top:7px;text-decoration:underline;text-underline-offset:3px}
.reservation-page .bk-list{gap:14px}.reservation-page .bk-card{background:#fff;border-color:var(--booking-border);border-radius:5px;padding:21px 24px}.reservation-page .bk-card.is-on{background:#fcfaf6;border-color:var(--booking-gold);box-shadow:0 0 0 1px var(--booking-gold)}
.reservation-page .bk-card span{max-width:85%;font-size:12px}.reservation-page .bk-card b{font-weight:500;font-size:18px;margin-right:100px}.reservation-page .bk-card i{font-size:23px;color:#9e7f54}.reservation-page .bk-card em.bk-cp{font-size:10px}
.reservation-page .bk-card i,.reservation-page .bk-check i,.reservation-page .bk-prices dd,.reservation-page .bk-total b,.reservation-page .bk-amount,.reservation-page .bk-week th.bk-time,.reservation-page .bk-day-row h4,.reservation-page .bk-month-date,.reservation-page .bk-time-options button,.reservation-page .bk-steps li span{font-family:"Noto Serif JP Prices","Hiragino Mincho ProN","Yu Mincho",serif;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1;font-weight:500;letter-spacing:.01em}
.reservation-page .bk-card i,.reservation-page .bk-check i,.reservation-page .bk-prices dd,.reservation-page .bk-total b{white-space:nowrap}
.bk-checkout-coupon .bk-code{display:grid;grid-template-columns:minmax(0,1fr) auto}.bk-checkout-coupon .bk-code label{grid-column:1/-1;font-size:12px}.bk-checkout-coupon .bk-code input{min-width:0;width:100%}.bk-code-applied{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:13px}.bk-code-applied button{border:1px solid var(--booking-border);background:#fff;padding:6px 10px;cursor:pointer;font:inherit}
.reservation-page .bk-list--staff{grid-template-columns:repeat(3,minmax(0,1fr))}.reservation-page .bk-staff{padding:22px 12px;text-align:center}.reservation-page .bk-staff b{margin:0;font-size:17px}.reservation-page .bk-staff span{max-width:none;min-height:40px}.reservation-page .bk-staff i{position:static;display:block;font-size:17px;margin-top:10px}.reservation-page .bk-staff .bk-ph{color:#a48a67}.reservation-page .bk-staff img{width:88px;height:88px}.bk-staff--auto .bk-ph .bk-icon{width:45px;height:45px}
.reservation-page .bk-empty{padding:23px;border:1px solid var(--booking-border);border-radius:5px;background:var(--booking-warm);font-size:13px;line-height:1.9}.reservation-page .bk-error{font-size:13px;border-radius:4px;line-height:1.8}.bk-error button{margin:10px 0 0;border:1px solid currentColor;background:#fff;font:inherit;padding:5px 13px}
.bk-calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:12px}.bk-view-tabs{display:flex;gap:0;border:1px solid var(--booking-gold);border-radius:5px;overflow:hidden}.bk-view-tabs button{font:inherit;font-size:13px;border:0;background:#fff;color:#8a7050;min-width:70px;min-height:37px;cursor:pointer}.bk-view-tabs .is-on{background:var(--booking-gold);color:#fff}.bk-duration{font-size:12px;color:#82766a}
.reservation-page .bk-week-nav b{font-size:14px}.reservation-page .bk-week-nav button{padding:0;width:37px;font-size:22px;border-radius:4px;color:#9e7f54}.reservation-page .bk-week{border-color:var(--booking-border);border-radius:5px;max-height:555px}.reservation-page .bk-week thead th,.reservation-page .bk-week th.bk-time{background:#f9f7f3}.reservation-page .bk-ok{color:#a4865b}.reservation-page .bk-ok.is-on{background:#a4865b;color:#fff}.reservation-page .bk-ok:hover{background:#efdfca}.reservation-page .bk-ok.is-on:hover{background:#9b7d51}
.bk-timeband{display:flex;align-items:center;gap:15px;font-size:12px;margin-bottom:12px}.bk-timeband select{font:inherit;padding:6px 12px;border:1px solid var(--booking-border);background:#fff}
.bk-month{border:1px solid var(--booking-border);border-radius:5px;overflow:hidden}.bk-month table{width:100%;table-layout:fixed;border-collapse:collapse}.bk-month th{font-weight:400;font-size:13px;padding:12px;background:#f9f7f3}.bk-month th.sun{color:#b0665c}.bk-month th.sat{color:#607b9d}.bk-month td{border:1px solid var(--booking-border);height:87px;padding:0;vertical-align:top}.bk-month td button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;min-height:87px;padding:7px;gap:2px;color:#7e6344;cursor:pointer}.bk-month button:disabled{color:#c5c0ba;cursor:default}.bk-month-date{font-family:var(--en);font-size:16px;align-self:flex-start}.bk-month b{font-size:20px;font-weight:400;line-height:1.3}.bk-month small{font-size:9px}.bk-month-day.closed,.bk-month-day.outside,.bk-month-blank{background:#faf9f7}.bk-month-day.is-selected{background:#efe2d0;outline:2px solid var(--booking-gold);outline-offset:-2px}.bk-month-day:not(.outside):hover{background:#faf4eb}
.bk-day-detail{margin-top:25px;padding:20px;border:1px solid var(--booking-border);border-radius:5px;background:#fbfaf8}.bk-day-detail>h3{font-size:16px;font-weight:500;margin-bottom:19px}.bk-day-row{display:flex;gap:16px;padding:12px 0;border-top:1px solid var(--booking-border);align-items:start}.bk-day-row h4{font-family:var(--en);font-size:15px;font-weight:400;min-width:45px}.bk-time-options{display:flex;gap:8px;flex-wrap:wrap}.bk-time-options button{border:1px solid #d9cbb7;border-radius:4px;background:#fff;color:#8d704a;font:inherit;font-size:13px;min-height:35px;padding:6px 13px;cursor:pointer}.bk-time-options .is-on{background:var(--booking-gold);color:#fff}.bk-hour-group{border-top:1px solid var(--booking-border);padding:10px 0}.bk-hour-group summary{cursor:pointer;font-size:13px;color:#91744d}.bk-hour-group .bk-day-row{border:0}
.reservation-page .bk-note{font-size:12px;line-height:1.9}.reservation-page .bk-notes{border-radius:5px;border-color:var(--booking-border)}.bk-external{color:#8d704a;text-decoration:underline;font-size:13px;display:inline-block;margin-top:10px}
.reservation-page .bk-form input:focus-visible,.reservation-page .bk-filter select:focus-visible,.reservation-page button:focus-visible,.reservation-page .bk-shop-detail:focus-visible{outline:2px solid var(--booking-gold);outline-offset:3px}
.reservation-page .bk-main{scroll-margin-top:115px}
@media(min-width:1440px){.reservation-page .bk-layout{grid-template-columns:minmax(0,1fr) 310px;gap:34px}.bk-shop-card h3{font-size:19px}.bk-shop-access{font-size:13px}}
@media(max-width:1120px){.reservation-page .bk-layout{grid-template-columns:minmax(0,1fr) 255px;gap:20px}.bk-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-filters{grid-template-columns:1fr;gap:10px}.bk-filter+ .bk-filter{border-left:0;padding-left:0}.bk-filter span{min-width:105px}.reservation-page .bk-steps li em{font-size:10px}.reservation-page .bk-steps{gap:8px}.reservation-page .bk-steps li::after{margin-left:8px}.reservation-page .bk-list--staff{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.reservation-hero{min-height:159px}.reservation-hero .container{padding-top:14px;padding-bottom:21px}.reservation-hero h1 span{font-size:27px}.reservation-hero h1 small{font-size:15px}.reservation-hero p{font-size:11px}.reservation-section{padding-top:18px;padding-bottom:45px}.reservation-page .bk-layout{display:flex;flex-direction:column;gap:24px}.reservation-page .bk-main,.reservation-page .bk-aside{width:100%}.reservation-page .bk-aside{order:0;position:static;max-height:none;padding:18px}.reservation-page .bk-steps{gap:3px;margin-bottom:25px}.reservation-page .bk-steps li{flex:1;justify-content:center}.reservation-page .bk-steps button{flex-direction:column;gap:6px}.reservation-page .bk-steps li span{width:25px;height:25px;font-size:13px}.reservation-page .bk-steps li em{display:block!important;font-size:8px!important;letter-spacing:0;white-space:nowrap}.reservation-page .bk-steps li::after{display:none}.reservation-page .bk-h{font-size:22px}.bk-title{gap:8px;margin-top:0;margin-bottom:20px}.bk-title p{font-size:11px}.bk-shop-grid{gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.bk-shop-card{padding:6px}.bk-shop-card h3{font-size:14px;margin:9px 2px 8px}.bk-shop-tags{gap:3px;margin:0 2px 8px}.bk-shop-tags span{font-size:9px;padding:2px 5px}.bk-shop-access{font-size:10px;margin:0 2px 10px;gap:4px;min-height:70px}.bk-shop-access .bk-icon{width:12px;height:15px}.bk-shop-detail{font-size:10px;gap:8px;margin:0 1px;min-height:35px}.bk-preparing{font-size:9px}.reservation-page .bk-nav{gap:12px;margin-top:26px}.reservation-page .bk-next{min-width:0;width:auto;flex:1;max-width:380px;height:51px;padding:0 16px;font-size:14px}.reservation-page .bk-next .bar{width:20px}.reservation-page .bk-list--staff{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-page .bk-card{padding:16px}.reservation-page .bk-card b{font-size:16px;margin-right:0}.reservation-page .bk-card span{max-width:none}.reservation-page .bk-card i{position:static;display:block;margin-top:8px}.bk-cp{margin:6px 0}.reservation-page .bk-staff b{font-size:15px}.reservation-page .bk-week-nav{flex-wrap:nowrap;justify-content:space-between}.reservation-page .bk-week-nav b{font-size:12px}.bk-month td,.bk-month td button{height:66px;min-height:66px}.bk-month th{padding:9px 0;font-size:11px}.bk-month td button{padding:5px;gap:1px}.bk-month-date{font-size:13px}.bk-month b{font-size:17px}.bk-month small{font-size:8px}.bk-day-detail{padding:14px}.bk-day-detail>h3{font-size:14px}.bk-day-row{gap:10px}.bk-day-row h4{min-width:37px}.bk-time-options{gap:6px}.bk-time-options button{font-size:12px;padding:6px 10px}.bk-selection__body{grid-template-columns:58px 1fr}.bk-selection__body>img,.bk-selection__icon{width:58px;height:58px}.bk-selection__body p{font-size:11px}.bk-selection__body b{font-size:14px}.bk-prices dl{font-size:12px}.bk-assurance h4{font-size:12px}.bk-assurance p,.bk-assurance a{font-size:11px}.bk-summary-next{display:none}.reservation-page .bk-form .bk-row{grid-template-columns:1fr;gap:6px}.reservation-page .bk-form label{padding-top:0}}
@media(prefers-reduced-motion:reduce){.reservation-page *{scroll-behavior:auto!important;transition:none!important}}
.reservation-page .site-header{position:sticky;top:0;background:rgba(18,16,15,.96);backdrop-filter:blur(8px)}

.bk-staff-choice{display:flex;flex-direction:column;min-width:0;border:1px solid var(--booking-border);border-radius:5px;background:#fff;overflow:hidden}.bk-staff-choice:hover,.bk-staff-choice:focus-within{border-color:var(--booking-gold)}.bk-staff-choice.is-on{border-color:var(--booking-gold);background:#fcfaf6;box-shadow:0 0 0 1px var(--booking-gold)}.reservation-page .bk-staff-choice>.bk-card{flex:1;border:0;border-radius:0;background:transparent;box-shadow:none}.bk-staff-more{align-self:center;color:#8d704a;font-size:13px;text-decoration:underline;text-underline-offset:4px;margin:0 12px 16px;padding:8px 15px}.bk-staff-more:focus-visible{outline:2px solid #a4865b;outline-offset:3px}
.bk-staff-dialog{width:min(680px,calc(100% - 32px));max-height:85dvh;border:1px solid #e9e5df;border-radius:8px;padding:34px;background:#fff;color:#1b1917;overflow:auto;font:inherit}.bk-staff-dialog::backdrop{background:#0008}.bk-staff-dialog__close{position:absolute;right:14px;top:8px;font-size:28px;line-height:1;padding:8px}.bk-staff-dialog__profile{display:flex;gap:25px;align-items:center;margin-bottom:25px;padding-right:15px}.bk-staff-dialog__profile img{width:130px;height:160px;object-fit:cover;border-radius:5px}.bk-staff-dialog h2{font-size:27px;margin:4px 0 12px}.bk-staff-dialog p{font-size:14px;line-height:1.9}.bk-staff-dialog section{margin:22px 0}.bk-staff-dialog h3{font-size:17px;font-weight:500;margin-bottom:8px}.bk-staff-rich{font-size:14px;line-height:1.9;overflow-wrap:anywhere}.bk-staff-dialog .bk-nav{margin-bottom:0}.bk-preview-notice{border:1px solid #d5bd93;background:#fff8eb;color:#785931;padding:12px 16px;font-size:13px;margin:-10px 0 25px;border-radius:5px}
@media(max-width:760px){.bk-staff-dialog{padding:28px 20px}.bk-staff-dialog__profile{gap:15px}.bk-staff-dialog__profile img{width:90px;height:120px}.bk-staff-dialog h2{font-size:22px}.bk-preview-notice{font-size:11px;margin-bottom:20px}}

.bk-main .bk-preview-notice{position:sticky;top:100px;z-index:4;margin:0 0 20px}
@media(max-width:760px){.bk-main .bk-preview-notice{top:80px}}

.bk-advancing{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#fff9;backdrop-filter:blur(2px);cursor:progress}.bk-advancing__panel{display:flex;align-items:center;gap:14px;background:#fff;padding:22px 30px;border:1px solid #e5dfd5;border-radius:8px;box-shadow:0 8px 35px #32251514;color:#806540;font-size:15px}.bk-spinner{width:23px;height:23px;border:2px solid #e8e0d4;border-top-color:#a4865b;border-radius:50%;animation:bk-spin .75s linear infinite}@keyframes bk-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.bk-spinner{animation:none}}

.bk-date-action{position:fixed;bottom:0;left:0;right:0;z-index:200;display:flex;justify-content:center;align-items:center;gap:40px;padding:14px 24px calc(14px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid #e5dfd5;box-shadow:0 -4px 24px #32251512}.bk-date-action>div{display:flex;flex-direction:column;gap:4px}.bk-date-action b{font-size:15px;font-weight:500}.bk-date-action span{font-size:14px;color:#8d704a}.reservation-page .bk-date-action .bk-next{height:50px;min-width:280px}.has-date-action{padding-bottom:100px}.bk-verification>p{margin:16px 0;line-height:1.9}.bk-verification .bk-nav{flex-wrap:wrap}@media(max-width:760px){.bk-date-action{gap:15px;padding-left:16px;padding-right:16px;justify-content:space-between}.bk-date-action b{font-size:12px}.reservation-page .bk-date-action .bk-next{min-width:0;flex:0 1 210px;font-size:13px;height:46px}.bk-verification .bk-nav .bk-next{flex-basis:100%}}

/* back from the payment page without paying */
.bk-resume{display:flex;flex-direction:column;align-items:center;gap:18px;margin:28px 0 8px}
.bk-resume .bk-next{width:100%;max-width:420px;justify-content:center}
.bk-resume .bk-back{background:none;border:0;padding:6px 0;cursor:pointer;text-align:center;max-width:100%;white-space:normal}
