/* オンライン説明の予約表 */
.nbb .nb-person { margin: 0 0 18px; }
.nbb-step { margin: 22px 0 10px; font-weight: 800; font-size: 15px; }
.nbb-days { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; }
.nbb-day { flex: none; scroll-snap-align: start; display: grid; gap: 2px; justify-items: center; min-width: 84px; padding: 10px 12px; border: 2px solid #e2e2dd; border-radius: 12px; background: #fff; font: inherit; font-weight: 800; font-size: 14.5px; color: #141414; cursor: pointer; }
.nbb-day small { font-size: 11px; font-weight: 700; color: #6b6b66; }
.nbb-day[aria-pressed="true"], .nbb-time[aria-pressed="true"] { border-color: #141414; background: #f2c200; }
.nbb-day[aria-pressed="true"] small { color: #141414; }
.nbb-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.nbb-time { padding: 12px 6px; border: 2px solid #e2e2dd; border-radius: 12px; background: #fff; font: inherit; font-weight: 800; font-size: 15px; color: #141414; cursor: pointer; min-height: 48px; }
.nbb-day:focus-visible, .nbb-time:focus-visible { outline: 3px solid #f2c200; outline-offset: 2px; }
.nbb-form { display: grid; gap: 12px; margin-top: 8px; padding: 18px; background: #f6f6f3; border-radius: 16px; }
.nbb-form label { display: grid; gap: 6px; font-weight: 700; font-size: 14px; }
.nbb-form input, .nbb-form textarea { font: inherit; font-size: 16px; padding: 12px 14px; border: 2px solid #e2e2dd; border-radius: 12px; background: #fff; }
.nbb-form input:focus, .nbb-form textarea:focus { outline: none; border-color: #141414; }
.nbb-req { font-size: 11px; background: #141414; color: #fff; border-radius: 4px; padding: 1px 6px; margin-left: 4px; }
.nbb-picked { margin: 0; font-weight: 800; font-size: 16px; }
.nbb-submit { width: 100%; justify-content: center; }
.nbb-err { color: #b32d2e; font-weight: 700; margin: 0; }
.nbb-hint, .nbb-loading { color: #6b6b66; margin: 0; }
.nbb-done, .nbb-card { padding: 24px 20px; border: 2px solid #141414; border-radius: 18px; background: #fff; text-align: center; display: grid; gap: 10px; justify-items: center; }
.nbb-done-h, .nbb-h { margin: 0; font-weight: 900; font-size: 20px; }
.nbb-when { margin: 0; font-weight: 900; font-size: clamp(20px, 5vw, 26px); }
.nbb-badge { margin: 0; font-size: 12px; font-weight: 800; padding: 4px 12px; border-radius: 99px; background: #e2e2dd; }
.nbb-card.is-confirmed .nbb-badge { background: #06c755; color: #fff; }
.nbb-card.is-pending .nbb-badge { background: #f2c200; }
.nbb-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; text-align: left; margin: 6px 0; }
.nbb-dl dt { font-weight: 700; color: #6b6b66; }
.nbb-dl dd { margin: 0; overflow-wrap: anywhere; }
.nbb-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.nbb [hidden] { display: none !important; }
