/* 予約画面の追加スタイル（本家テーマ style.css / my.css の上に重ねる。色は本家と同じ値） */
.bk { --pink: #ea6d8d; --pink-l: #f5b4b9; --pink-xl: #fdf0f2; --beige: #c8ae8b; --orange: #ffaa56; --line: #d7d7d7; --text: #333; color: var(--text); }
.bk * { box-sizing: border-box; }
.bk-intro { text-align: center; margin-bottom: 30px; }
.bk-lead { font-size: 16px; line-height: 1.8; margin-bottom: 20px; }
.bk-info { display: grid; grid-template-columns: auto auto; justify-content: center; gap: 8px 16px; margin: 0 auto 16px; padding: 18px 24px; max-width: 560px; border: 2px solid var(--pink-l); border-radius: 6px; background: var(--pink-xl); text-align: left; }
.bk-info dt { color: var(--pink); font-weight: bold; }
.bk-info dd { margin: 0; }
.bk-notice { max-width: 560px; margin: 0 auto 16px; padding: 12px 16px; border-left: 4px solid var(--beige); background: #faf6f1; text-align: left; line-height: 1.7; }
.bk-sub { font-size: 14px; color: #666; }
.bk-sub a { color: var(--pink); text-decoration: underline; }

.bk-steps { display: flex; justify-content: center; gap: 4px; margin: 0 0 30px; padding: 0; list-style: none; counter-reset: none; }
.bk-steps li { list-style: none; flex: 1; max-width: 200px; padding: 10px 4px; background: #f7f7f7; color: #999; text-align: center; font-size: 14px; position: relative; }
.bk-steps li span { display: inline-block; width: 22px; height: 22px; line-height: 22px; margin-right: 6px; border-radius: 50%; background: #ccc; color: #fff; font-size: 12px; }
.bk-steps li.is-current { background: var(--pink); color: #fff; font-weight: bold; }
.bk-steps li.is-current span { background: #fff; color: var(--pink); }
.bk-steps li.is-done { background: var(--pink-l); color: #fff; }
.bk-steps li.is-done span { background: #fff; color: var(--pink-l); }

.bk-alert { margin: 0 0 24px; padding: 14px 18px; border: 1px solid #f3b0b0; background: #fff3f3; color: #b4232a; line-height: 1.7; border-radius: 4px; }
.bk-alert .bk-btn { margin-top: 10px; }
.bk-loading { text-align: center; padding: 40px 0; color: #888; }

.bk-h { margin: 0 0 24px; font-size: 18px; line-height: 1.5; }

/* カレンダー */
.bk-cal { max-width: 720px; margin: 0 auto 12px; }
.bk-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.bk-cal-title { font-size: 20px; font-weight: bold; color: var(--pink); margin: 0; }
.bk-cal-nav { padding: 8px 14px; border: 1px solid var(--pink); background: #fff; color: var(--pink); border-radius: 4px; font-size: 14px; cursor: pointer; }
.bk-cal-nav:disabled { border-color: var(--line); color: #ccc; cursor: default; }
.bk-cal table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.bk-cal th { padding: 8px 0; background: var(--pink-xl); border: 1px solid var(--line); font-size: 14px; text-align: center; }
.bk-cal th.is-sun, .bk-cal td.is-sun .bk-d { color: #d9534f; }
.bk-cal th.is-sat, .bk-cal td.is-sat .bk-d { color: #337ab7; }
.bk-cal td { height: 64px; border: 1px solid var(--line); text-align: center; vertical-align: middle; padding: 0; }
.bk-cal td.is-out, .bk-cal td.is-empty { background: #f5f5f5; }
.bk-cal td.is-out .bk-d { color: #bbb !important; }
.bk-cal td.is-full { background: #fafafa; }
.bk-d { display: block; font-size: 14px; }
.bk-day { width: 100%; height: 100%; min-height: 62px; border: 0; background: #fff; cursor: pointer; font: inherit; color: inherit; }
.bk-day:hover, .bk-day:focus-visible { background: var(--pink-xl); }
.bk-cal td.is-selected .bk-day { background: var(--pink); }
.bk-cal td.is-selected .bk-day .bk-d, .bk-cal td.is-selected .bk-day .bk-mark-o { color: #fff !important; }
.bk-mark-o { color: var(--pink); font-size: 18px; font-weight: bold; line-height: 1.3; }
.bk-mark-x { color: #aaa; font-size: 16px; line-height: 1.3; }
.bk-mark-n { color: #ccc; }
.bk-legend { max-width: 720px; margin: 0 auto 30px; text-align: right; font-size: 13px; color: #666; }
.bk-legend span { margin-left: 8px; margin-right: 2px; }

/* 時間 */
.bk-times { max-width: 720px; margin: 0 auto 20px; scroll-margin-top: 20px; }
.bk-times ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.bk-time { width: 100%; padding: 14px 0; border: 2px solid var(--pink); border-radius: 4px; background: #fff; color: var(--pink); font-size: 17px; font-weight: bold; cursor: pointer; }
.bk-time:hover, .bk-time:focus-visible, .bk-time.is-selected { background: var(--pink); color: #fff; }

/* 入力 */
.bk-selected { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 20px; padding: 14px 18px; background: var(--pink-xl); border: 1px solid var(--pink-l); border-radius: 4px; }
.bk-selected p { margin: 0; }
.bk-selected strong { color: var(--pink); font-size: 17px; }
.bk-link { border: 0; background: none; color: var(--pink); text-decoration: underline; cursor: pointer; font-size: 14px; padding: 4px; }
.bk .inquiry td p, .bk .inquiry th p { margin: 0 0 20px; }
.bk .inquiry input[type=text], .bk .inquiry input[type=tel], .bk .inquiry input[type=email] { max-width: 100%; border: 1px solid #aaa; border-radius: 2px; }
.bk .inquiry textarea { width: 100%; padding: 10px; font-size: 16px; border: 1px solid #aaa; border-radius: 2px; }
.bk .inquiry input[aria-invalid=true] { border-color: #d9534f; background: #fff6f6; }
.bk-radios { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.bk-radios label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; padding: 4px 0; }
.bk-radios input, .bk-agree input { width: 18px; height: 18px; margin: 0; }
.bk-err { margin: -12px 0 16px !important; color: #d9534f; font-size: 14px; }
.bk-agree { text-align: center; margin: 10px 0; }
.bk-agree label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 16px; }
.bk #formbtn { cursor: pointer; border: 2px solid #ffaa56; }
.bk #formbtn:disabled { opacity: .6; cursor: wait; }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* 確認・完了 */
.bk-confirm th { width: 32%; }
.bk-none { color: #aaa; }
.bk-btn { display: inline-block; padding: 12px 30px; border-radius: 2px; font-size: 16px; cursor: pointer; text-decoration: none; }
.bk-btn-sub { border: 1px solid #aaa; background: #fff; color: #555; }
.bk-btn-sub:hover { background: #f7f7f7; color: #333; }
.bk-done > p { text-align: center; line-height: 1.8; margin-bottom: 24px; }
.bk-done .bk-h { color: var(--pink); font-size: 22px; }
.bk-small { font-size: 14px !important; color: #666; text-align: left !important; max-width: 720px; margin: 0 auto 24px !important; }
.bk-contact { margin: 0 auto 10px !important; max-width: 720px; }
.bk-contact img { width: 100%; height: auto; }
.top-mg-20 { margin-top: 20px; }

@media (max-width: 800px) {
  .pc-br { display: none; }
}
@media (max-width: 500px) {
  .bk-lead { font-size: 15px; text-align: left; }
  .bk-info { padding: 14px; gap: 4px 10px; }
  .bk-steps li { font-size: 11px; padding: 8px 2px; }
  .bk-steps li span { display: block; margin: 0 auto 2px; }
  .bk-cal td { height: 54px; }
  .bk-day { min-height: 52px; }
  .bk-cal-title { font-size: 17px; }
  .bk-cal-nav { padding: 6px 8px; font-size: 13px; }
  .bk-times ul { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .bk-time { font-size: 16px; padding: 12px 0; }
  .bk .inquiry th p { margin-bottom: 10px; }
  .bk-confirm th { width: 100% !important; }
  .bk-done > p { text-align: left; }
}
/* スマホ下部の固定ボタンに最後のボタンが隠れないようにする */
@media (max-width: 500px) {
  body { padding-bottom: 80px; }
}
