/* 予約ページ /book/<slug>（2026-09-23）。スマホ縦持ち前提。文字は16px以上、押す場所は44px以上 */
:root{--bk-accent:#1f5eff;--bk-ink:#14171c;--bk-sub:#475467;--bk-line:#e4e7ec;--bk-bg:#f4f6f9;--bk-err:#b42318}
*{box-sizing:border-box}
body{margin:0;background:var(--bk-bg);color:var(--bk-ink);font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic","Yu Gothic UI",Meiryo,sans-serif;font-size:16px;line-height:1.75}
.bk{max-width:600px;margin:0 auto;padding:20px 16px 120px}
.bk__loading{color:var(--bk-sub);text-align:center;padding:40px 0}
.bk__head h1{font-size:22px;line-height:1.4;margin:4px 0}
.bk__meta{color:var(--bk-sub);margin:0 0 6px}
.bk__desc{margin:8px 0;white-space:pre-wrap}
.bk__steps{display:flex;gap:6px;list-style:none;padding:0;margin:12px 0 16px;counter-reset:s}
.bk__steps li{flex:1;text-align:center;font-size:14px;color:var(--bk-sub);border-bottom:3px solid var(--bk-line);padding-bottom:4px}
.bk__steps li.is-now{color:var(--bk-accent);font-weight:700;border-color:var(--bk-accent)}
.bk__steps li.is-done{color:var(--bk-ink);border-color:#9bb5ff}
.bk__card{background:#fff;border:1px solid var(--bk-line);border-radius:16px;padding:18px;margin:0 0 14px}
.bk__card h2{font-size:18px;margin:0 0 12px}
.bk__soonlist{display:grid;gap:10px}
.bk__soon{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:60px;padding:12px 16px;border:2px solid var(--bk-accent);border-radius:12px;background:#fff;color:var(--bk-accent);font:inherit;cursor:pointer;text-align:left}
.bk__soon strong{font-size:17px}.bk__soon span{font-weight:700}
.bk__soon:hover,.bk__time:hover{background:#f0f4ff}
.bk__more{display:block;width:100%;min-height:52px;border:1px solid var(--bk-line);border-radius:12px;background:#fff;color:var(--bk-ink);font:inherit;font-weight:700;cursor:pointer}
.bk__weeknav{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px}
.bk__weeknav button{min-height:44px;padding:0 14px;border:1px solid var(--bk-line);border-radius:10px;background:#fff;font:inherit;cursor:pointer}
.bk__weeknav button:disabled{opacity:.4;cursor:default}
.bk__week{display:grid;gap:10px;margin-bottom:14px}
.bk__day{background:#fff;border:1px solid var(--bk-line);border-radius:14px;padding:12px 14px}
.bk__day h3{font-size:16px;margin:0 0 8px}
.bk__day small{font-weight:400;color:var(--bk-sub)}.bk__day small.sun{color:#c0392b}.bk__day small.sat{color:#1f5eff}
.bk__day.is-empty{background:#f8f9fb}.bk__day.is-empty h3{color:var(--bk-sub)}
.bk__none{margin:0;color:#98a2b3;font-size:14px}
.bk__times{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.bk__time{min-height:48px;border:2px solid var(--bk-accent);border-radius:10px;background:#fff;color:var(--bk-accent);font:inherit;font-weight:700;cursor:pointer}
.bk__picked{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#eef3ff;border:1px solid #c9d7ff;border-radius:14px;padding:12px 16px;margin-bottom:14px}
.bk__picked small{display:block;color:var(--bk-sub);font-size:13px}.bk__picked strong{font-size:17px}
.bk__field{display:grid;gap:4px;margin-bottom:14px}
.bk__field>span{font-weight:700}
.bk__field em{font-style:normal;font-size:12px;color:#fff;background:var(--bk-err);border-radius:4px;padding:0 6px;margin-left:6px;vertical-align:2px}
.bk__field i{font-style:normal;font-size:12px;color:var(--bk-sub);border:1px solid var(--bk-line);border-radius:4px;padding:0 6px;margin-left:6px;vertical-align:2px}
.bk__field small{color:var(--bk-sub);font-size:13px}
.bk__field input,.bk__field textarea,.bk__field select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #cfd4dc;border-radius:10px;font:inherit;background:#fff}
.bk__field input:focus,.bk__field textarea:focus,.bk__field select:focus{outline:3px solid #b8caff;border-color:var(--bk-accent)}
.bk__err{color:var(--bk-err);font-weight:700;min-height:1em;margin:4px 0}
.bk__bar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(244,246,249,.96);border-top:1px solid var(--bk-line);z-index:5}
.bk__bar .bk__primary{max-width:568px;margin:0 auto}
.bk__primary{display:block;width:100%;min-height:54px;padding:12px 16px;border:0;border-radius:12px;background:var(--bk-accent);color:#fff;font:inherit;font-size:17px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}
.bk__primary:disabled{opacity:.6}
.bk__link{background:none;border:0;padding:6px 0;color:var(--bk-accent);font:inherit;text-decoration:underline;cursor:pointer;min-height:44px}
.bk__row{display:flex;gap:18px;flex-wrap:wrap}
.bk__dl{display:grid;grid-template-columns:5em 1fr;gap:8px 12px;margin:0 0 8px}
.bk__dl dt{color:var(--bk-sub)}.bk__dl dd{margin:0;word-break:break-all;white-space:pre-wrap}
.bk__opt{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--bk-line);border-radius:12px;padding:14px;margin:0 0 10px}
.bk__opt input{width:22px;height:22px;margin-top:3px;flex:0 0 auto}
.bk__opt small{display:block;color:var(--bk-sub)}
.bk__done{text-align:center;background:#fff;border:1px solid var(--bk-line);border-radius:18px;padding:28px 20px}
.bk__check{width:64px;height:64px;margin:0 auto 8px;border-radius:50%;background:#12b76a;color:#fff;font-size:34px;line-height:64px}
.bk__done h1{font-size:22px;margin:4px 0}
.bk__when{font-size:20px;font-weight:700;color:var(--bk-accent);margin:6px 0}
.bk__note{color:var(--bk-sub);font-size:14px}
.bk__done .bk__primary{margin:16px 0 4px}
@media (prefers-reduced-motion:no-preference){.bk__card,.bk__day,.bk__done{animation:bk-in .2s ease-out}@keyframes bk-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
/* 空きの無い日は1行にまとめて、縦に長くしない */
.bk__day.is-empty{display:flex;justify-content:space-between;align-items:center;padding:8px 14px}
.bk__day.is-empty h3{margin:0;font-size:15px}
/* LINE で予約（2026-09-23） */
.bk__notice{background:#fffaeb;border:1px solid #fedf89;color:#93370d;border-radius:12px;padding:10px 14px;font-size:14px}
.bk__linebox p{margin:0 0 10px}
.bk__line{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border-radius:12px;background:#06c755;color:#fff;font-weight:700;text-decoration:none;font-size:17px}
.bk__line b{background:#fff;color:#06c755;border-radius:6px;padding:0 6px;font-size:14px}
.bk__or{text-align:center;color:var(--bk-sub);font-size:13px;margin:10px 0 0!important}
.bk__lineok{background:#ecfdf3;border:1px solid #abefc6;color:#067647;border-radius:12px;padding:10px 14px;font-weight:700;font-size:14px}
/* 埋め込み（自社サイト・LP の中）。余白を詰め、下の固定ボタンは流れの中に置く（親ページの中で浮かないように） */
.bk-embed body{background:transparent}
.bk-embed .bk{padding:12px 12px 16px}
.bk-embed .bk__bar{position:static;background:none;border:0;padding:12px 0 0}

/* 説明会の回の名前・残り席 */
.bk__seat{display:block;font-size:12px;font-weight:600;color:#475467;line-height:1.4}
.bk__seat--few{color:#b42318}
