/* assets/form.css (FLAT REDESIGN)
   Shaleny 七五三LP 予約フォーム
   方針：べた塗 / デフォルメ（簡潔・明快）/ 過度な角丸・ドロップシャドウ・文字の囲みをしない
   目的：入力ストレスの低減 → 離脱率の抑制
   スコープ：.tcbn-reserve 配下のみ（LP他要素に影響なし）
   ※ JSが参照するクラス名・ID・DOM構造は変更していません（見た目のみ刷新）
*/

.tcbn-reserve{
  /* --- color tokens（べた塗・単色）--- */
  --ink:#2b2b30;          /* 本文 */
  --muted:#6e707a;        /* 補助テキスト */
  --line:#e6e3e8;         /* 罫線（単色ハーフトーンではなく実線色） */
  --line-strong:#d7d3da;  /* 入力枠など、少し強い罫線 */
  --paper:#ffffff;        /* 面（カード/入力） */
  --bg:#fbf8f6;           /* 温かみのあるオフホワイト背景 */

  --brand:#e84b7a;        /* メインのべた塗ピンク（枠・ドット・淡い面に使用） */
  --brand-deep:#c42f62;   /* 白文字を載せる面・必須文字（AA 5.3:1 確保） */
  --brand-deeper:#a82753; /* 上記のhover/active */
  --brand-tint:#fcebf1;   /* 選択中・アクティブのべた塗背景 */
  --brand-line:#f0a9c2;   /* ブランド寄りの罫線 */

  --ok:#1e9e57;
  --ok-tint:#e9f7ef;
  --err:#d62b51;
  --err-tint:#fdebef;

  --sun:#e0436b;
  --sat:#2f6fe0;

  /* --- shape tokens（控えめな角丸）--- */
  --r:10px;               /* 入力・ボタン・カード共通 */
  --r-sm:8px;
  --r-chip:10px;          /* 時間選択は丸ピルをやめて角丸矩形 */

  font-family:-apple-system, BlinkMacSystemFont, "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  color:var(--ink);
  -webkit-text-size-adjust:100%;
}

/* ============== Card ============== */
.tcbn-reserve .tcbn-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:20px 16px;
}
@media (min-width:768px){
  .tcbn-reserve .tcbn-card{ padding:26px 24px; }
}

/* ============== Stepper（進捗の可視化）============== */
.tcbn-reserve .tcbn-steps{
  display:flex;
  gap:8px;
  margin:0 0 18px;
}
.tcbn-reserve .tcbn-step{
  flex:1;
  border:1.5px solid var(--line);
  border-radius:var(--r-sm);
  padding:9px 8px;
  background:var(--paper);
  color:var(--muted);
  font-weight:700;
  font-size:12px;
  line-height:1.15;
  text-align:center;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.tcbn-reserve .tcbn-step span{
  display:block;
  margin-top:3px;
  font-weight:700;
  font-size:11px;
  opacity:.95;
}
/* 完了したステップ：淡いべた塗＋チェック */
.tcbn-reserve .tcbn-step.is-done{
  border-color:var(--brand-line);
  background:var(--brand-tint);
  color:var(--brand-deep);
}
.tcbn-reserve .tcbn-step.is-done::before{
  content:"✓ ";
  font-weight:900;
}
/* 現在のステップ：白文字を載せるため濃いピンク（AA確保） */
.tcbn-reserve .tcbn-step.is-active{
  border-color:var(--brand-deep);
  background:var(--brand-deep);
  color:#fff;
}

/* ============== Pane / Heading ============== */
.tcbn-reserve .tcbn-pane{ display:none; }
.tcbn-reserve .tcbn-pane.is-active{ display:block; }

.tcbn-reserve .tcbn-title{
  margin:0 0 6px;
  font-size:19px;
  font-weight:800;
  letter-spacing:.01em;
}
.tcbn-reserve .tcbn-title:focus{ outline:none; }
.tcbn-reserve .tcbn-lead{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.7;
  font-size:13px;
}

/* ============== Field / Label ============== */
.tcbn-reserve .tcbn-field{ margin:16px 0 0; }

.tcbn-reserve .tcbn-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:13.5px;
  margin:0 0 7px;
}

/* 必須／任意：囲みをやめてインラインの色文字に */
.tcbn-reserve .tcbn-req,
.tcbn-reserve .tcbn-opt{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11.5px;
  font-weight:800;
  padding:0;
  background:none;
  border:none;
  border-radius:0;
  line-height:1;
}
.tcbn-reserve .tcbn-req{ color:var(--brand-deep); }
.tcbn-reserve .tcbn-req::before{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:var(--brand);
  flex:0 0 auto;
}
.tcbn-reserve .tcbn-opt{ color:var(--muted); font-weight:700; }

.tcbn-reserve .tcbn-hint{
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
  margin-top:6px;
}

/* ============== Inputs ============== */
.tcbn-reserve .tcbn-input{
  width:100%;
  border:1.5px solid var(--line-strong);
  border-radius:var(--r);
  padding:12px 13px;
  font-size:16px;                /* iOS の自動ズーム防止 */
  line-height:1.4;
  background:#fff;
  color:var(--ink);
  transition:border-color .12s ease, box-shadow .12s ease;
  appearance:none;
  -webkit-appearance:none;
}
.tcbn-reserve select.tcbn-input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236e707a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:36px;
}
.tcbn-reserve .tcbn-input:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-tint);
}
.tcbn-reserve .tcbn-input::placeholder{ color:#aeb0b8; }
.tcbn-reserve textarea.tcbn-input{ resize:vertical; min-height:96px; }

.tcbn-reserve .tcbn-grid2{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
@media (min-width:768px){
  .tcbn-reserve .tcbn-grid2{ grid-template-columns:1fr 1fr; gap:14px; }
}

/* ============== 希望日ブロック ============== */
.tcbn-reserve .tcbn-pref{ margin-top:18px; }
.tcbn-reserve .tcbn-pref + .tcbn-pref{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.tcbn-reserve .tcbn-pref-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.tcbn-reserve .tcbn-pref-title{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  flex-wrap:wrap;
  font-weight:800;
  font-size:15px;
}
.tcbn-reserve .tcbn-pref-title .tcbn-req,
.tcbn-reserve .tcbn-pref-title .tcbn-opt{ white-space:nowrap; }

/* 選択中の日付フィードバック（JS生成 .tcbn-selected-hint） */
.tcbn-reserve .tcbn-selected-hint{
  margin-top:8px;
  font-size:13px;
  font-weight:700;
  color:var(--muted);
}
.tcbn-reserve .tcbn-selected-hint.is-set{
  color:var(--brand-deep);
}
.tcbn-reserve .tcbn-selected-hint.is-set::before{
  content:"✓ ";
  font-weight:900;
}

/* ============== 時間チップ（ラジオ）============== */
.tcbn-reserve .tcbn-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  position:relative;
  z-index:5;                 /* クリック可能性の安定化 */
}
.tcbn-reserve .tcbn-chip{
  position:relative;
  z-index:6;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:48px;           /* タップ領域確保 */
  padding:10px 14px;
  border:1.5px solid var(--line-strong);
  border-radius:var(--r-chip);
  background:#fff;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  user-select:none;
  transition:background .12s ease, border-color .12s ease, color .12s ease;
}
.tcbn-reserve .tcbn-chip input[type="radio"]{
  -webkit-appearance:none;
  appearance:none;
  width:18px; height:18px;
  border-radius:50%;
  border:2px solid #c4c6ce;
  background:#fff;
  margin:0;
  display:inline-grid;
  place-content:center;
  flex:0 0 auto;
}
.tcbn-reserve .tcbn-chip input[type="radio"]::before{
  content:"";
  width:10px; height:10px;
  border-radius:50%;
  transform:scale(0);
  transition:transform .12s ease;
  background:var(--brand);
}
.tcbn-reserve .tcbn-chip input[type="radio"]:checked{ border-color:var(--brand); }
.tcbn-reserve .tcbn-chip input[type="radio"]:checked::before{ transform:scale(1); }

/* 選択済みチップ：べた塗のトーンで明示（影なし） */
.tcbn-reserve .tcbn-chip:has(input:checked),
.tcbn-reserve .tcbn-chip.is-checked{
  border-color:var(--brand);
  background:var(--brand-tint);
  color:var(--brand-deep);
}
.tcbn-reserve .tcbn-chip:active{ transform:translateY(1px); }

/* ============== 第2/第3希望 追加ボタン ============== */
.tcbn-reserve .tcbn-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
/* 「次へ」と同格に見せず、サブの追加導線として軽く */
.tcbn-reserve .tcbn-row .tcbn-btn{
  flex:0 0 auto;
  width:auto;
  min-height:44px;
  padding:10px 14px;
  font-size:13.5px;
  font-weight:700;
  color:var(--brand-deep);
  background:#fff;
  border:1.5px dashed var(--brand-line);
}
.tcbn-reserve .tcbn-row .tcbn-btn:hover{ background:var(--brand-tint); }
.tcbn-reserve .tcbn-row .tcbn-btn[disabled]{
  color:var(--muted);
  border-style:dashed;
  border-color:var(--line);
  background:#fff;
}

/* ============== Calendar ============== */
.tcbn-reserve .tcbn-cal{
  border:1.5px solid var(--line);
  border-radius:var(--r);
  overflow:hidden;
  background:var(--paper);
  margin-top:6px;
  position:relative;
  z-index:1;
}
.tcbn-reserve .tcbn-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.tcbn-reserve .tcbn-cal-title{ font-weight:800; font-size:15px; }
.tcbn-reserve .tcbn-cal-nav{
  width:40px; height:40px;
  border-radius:var(--r-sm);
  border:1.5px solid var(--line-strong);
  background:#fff;
  cursor:pointer;
  font-weight:900;
  font-size:18px;
  line-height:1;
  color:var(--ink);
}
.tcbn-reserve .tcbn-cal-nav:hover{ background:var(--bg); }
.tcbn-reserve .tcbn-cal-nav:disabled{ opacity:.35; cursor:not-allowed; }

.tcbn-reserve .tcbn-cal-week{
  background:var(--bg);
  border-bottom:1px solid var(--line);
  padding:6px 8px;
}
.tcbn-reserve .tcbn-cal-grid{
  display:grid !important;
  grid-template-columns:repeat(7,1fr) !important;
  gap:6px !important;
}
.tcbn-reserve .tcbn-cal-w{
  padding:6px 0;
  text-align:center;
  font-weight:800;
  color:var(--muted);
  font-size:12px;
}
.tcbn-reserve .tcbn-cal-w.is-sun{ color:var(--sun); }
.tcbn-reserve .tcbn-cal-w.is-sat{ color:var(--sat); }

.tcbn-reserve .tcbn-cal-days{ padding:10px 10px 14px; }
.tcbn-reserve .tcbn-cal-cell{
  height:48px;
  border-radius:var(--r-sm);
  border:1.5px solid transparent;
  background:#fff;
  cursor:pointer;
  font-weight:700;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transition:background .12s ease, border-color .12s ease;
}
.tcbn-reserve .tcbn-cal-cell:hover{
  border-color:var(--line-strong);
  background:var(--bg);
}
.tcbn-reserve .tcbn-cal-cell:active{ transform:translateY(1px); }
.tcbn-reserve .tcbn-cal-cell.is-empty{ background:transparent; border:0; cursor:default; }
.tcbn-reserve .tcbn-cal-cell.is-disabled{
  opacity:.32;
  cursor:not-allowed;
  background:var(--bg);
}
/* 選択日：白文字のため濃いピンクのべた塗（AA確保／影なし） */
.tcbn-reserve .tcbn-cal-cell.is-selected{
  border-color:var(--brand-deep);
  background:var(--brand-deep);
  color:#fff !important;
  -webkit-text-fill-color:#fff;
}
.tcbn-reserve .tcbn-cal-cell.is-selected .tcbn-cal-num,
.tcbn-reserve .tcbn-cal-cell.is-selected .tcbn-cal-dowmini{ color:#fff !important; }

.tcbn-reserve .tcbn-cal-num{ font-size:16px; line-height:1; }
.tcbn-reserve .tcbn-cal-dowmini{
  display:block;
  font-size:11px;
  font-weight:700;
  opacity:.7;
  line-height:1;
  margin-top:3px;
}

/* iOS Safari：cal内ボタンが青文字化するのを抑止 */
.tcbn-reserve .tcbn-cal button,
.tcbn-reserve .tcbn-cal-cell{
  color:var(--ink);
  -webkit-text-fill-color:currentColor;
  text-decoration:none;
  appearance:none;
  -webkit-appearance:none;
}
/* 日曜・土曜の指定色を優先（非選択時） */
.tcbn-reserve .tcbn-cal-cell.is-sun:not(.is-selected){ color:var(--sun) !important; -webkit-text-fill-color:var(--sun); }
.tcbn-reserve .tcbn-cal-cell.is-sat:not(.is-selected){ color:var(--sat) !important; -webkit-text-fill-color:var(--sat); }

/* ============== STEP3 ヒアリング ============== */
/* 重いカード状の囲みをやめ、見出し＋区切りで軽く整理 */
.tcbn-reserve .tcbn-fieldset{
  margin-top:22px;
  padding:0;
  border:0;
  border-top:1px solid var(--line);
  padding-top:18px;
  background:none;
}
.tcbn-reserve .tcbn-legend{
  font-weight:800;
  font-size:14.5px;
  padding:0;
  margin-bottom:4px;
  color:var(--ink);
}

.tcbn-reserve .tcbn-checkgrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin-top:12px;
}
@media (min-width:768px){
  .tcbn-reserve .tcbn-checkgrid{ grid-template-columns:repeat(3,1fr); }
}
.tcbn-reserve .tcbn-check{
  display:flex;
  gap:10px;
  align-items:center;
  min-height:48px;
  padding:10px 12px;
  border:1.5px solid var(--line-strong);
  border-radius:var(--r);
  background:#fff;
  font-weight:700;
  font-size:13.5px;
  line-height:1.4;
  cursor:pointer;
  transition:background .12s ease, border-color .12s ease;
}
.tcbn-reserve .tcbn-check input{
  width:20px; height:20px;
  margin:0;
  flex:0 0 auto;
  accent-color:var(--brand);   /* ネイティブ・フラットなチェック */
  cursor:pointer;
}
.tcbn-reserve .tcbn-check:has(input:checked){
  border-color:var(--brand);
  background:var(--brand-tint);
  color:var(--brand-deep);
}

/* ============== Privacy ============== */
.tcbn-reserve .tcbn-privacy{ margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.tcbn-reserve .tcbn-privacy__head{ margin-bottom:10px; }
.tcbn-reserve .tcbn-privacy__details{ margin-top:10px; }
.tcbn-reserve .tcbn-privacy__summary{
  cursor:pointer;
  font-weight:700;
  font-size:13.5px;
  padding:12px 13px;
  border:1.5px solid var(--line-strong);
  border-radius:var(--r);
  background:#fff;
  list-style:none;
}
.tcbn-reserve .tcbn-privacy__summary::-webkit-details-marker{ display:none; }
.tcbn-reserve .tcbn-privacy__summary::after{
  content:"＋";
  float:right;
  color:var(--muted);
  font-weight:900;
}
.tcbn-reserve details[open] .tcbn-privacy__summary::after{ content:"−"; }
.tcbn-reserve .tcbn-privacy__body{
  margin-top:10px;
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:14px;
  background:#fff;
  max-height:280px;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.tcbn-reserve .tcbn-privacy__agree{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:14px;
  padding:13px 14px;
  border-radius:var(--r);
  border:1.5px solid var(--line-strong);
  background:#fff;
  font-weight:700;
  font-size:13.5px;
  cursor:pointer;
}
.tcbn-reserve .tcbn-privacy__agree input{
  width:20px; height:20px;
  margin-top:1px;
  flex:0 0 auto;
  accent-color:var(--brand);
  cursor:pointer;
}
.tcbn-reserve .tcbn-privacy__agree:has(input:checked){
  border-color:var(--brand);
  background:var(--brand-tint);
  color:var(--brand-deep);
}
/* 未同意で送信した場合のエラー強調（JSが is-error を付与した場合） */
.tcbn-reserve #ssrPrivacyBox.is-error .tcbn-privacy__summary,
.tcbn-reserve #ssrPrivacyBox.is-error .tcbn-privacy__agree{
  border-color:var(--err);
  background:var(--err-tint);
}

/* policy typography */
.tcbn-reserve .tcbn-pp h3{ font-size:16px; margin:0 0 10px; }
.tcbn-reserve .tcbn-pp h4{ font-size:14px; margin:14px 0 8px; }
.tcbn-reserve .tcbn-pp h5{ font-size:13px; margin:12px 0 6px; }
.tcbn-reserve .tcbn-pp p{ margin:0 0 10px; line-height:1.85; font-size:13px; }
.tcbn-reserve .tcbn-pp ul,
.tcbn-reserve .tcbn-pp ol{ margin:0 0 10px 1.2em; padding:0; line-height:1.85; font-size:13px; }
.tcbn-reserve .tcbn-pp li{ margin:0 0 6px; }

/* ============== Nav / Buttons ============== */
.tcbn-reserve .tcbn-nav{
  display:flex;
  gap:10px;
  margin-top:24px;
  position:relative;
  z-index:20;               /* 下層要素の被り対策（クリック保証） */
}
.tcbn-reserve .tcbn-btn{
  flex:1;
  min-height:52px;
  border:1.5px solid var(--line-strong);
  border-radius:var(--r);
  padding:13px 14px;
  font-size:15px;
  font-weight:800;
  cursor:pointer;
  background:#fff;
  color:var(--ink);
  position:relative;
  z-index:21;
  pointer-events:auto;
  transition:background .12s ease, border-color .12s ease, opacity .12s ease;
  -webkit-appearance:none;
  appearance:none;
}
.tcbn-reserve .tcbn-btn-sub{
  flex:0 0 auto;
  min-width:96px;
  color:var(--muted);
  background:#fff;
}
.tcbn-reserve .tcbn-btn-sub:hover{ background:var(--bg); }
/* 主導線：白文字のため濃いピンクのべた塗（AA 5.3:1／グラデ・影なし） */
.tcbn-reserve .tcbn-btn-primary{
  border-color:var(--brand-deep);
  background:var(--brand-deep);
  color:#fff;
}
.tcbn-reserve .tcbn-btn-primary:hover{ background:var(--brand-deeper); border-color:var(--brand-deeper); }
.tcbn-reserve .tcbn-btn[disabled]{ opacity:.55; cursor:not-allowed; }
/* nav内ではサブ→主の順で主ボタンを広く */
.tcbn-reserve .tcbn-nav .tcbn-btn-primary{ flex:1; }

/* ============== Alerts ============== */
.tcbn-reserve .tcbn-alert{
  border-radius:var(--r);
  padding:12px 14px;
  line-height:1.6;
  margin-top:14px;
  font-size:13.5px;
  font-weight:700;
  border-left:4px solid transparent;
}
.tcbn-reserve .tcbn-alert-error{
  background:var(--err-tint);
  border:1px solid #f5c2cd;
  border-left:4px solid var(--err);
  color:#9f1239;
}
.tcbn-reserve .tcbn-alert-ok{
  background:var(--ok-tint);
  border:1px solid #b9e6cb;
  border-left:4px solid var(--ok);
  color:#166534;
}

/* ===== Inline field errors（フィールド単位のエラー）===== */
.tcbn-reserve .tcbn-fielderr{
  display:flex;
  align-items:flex-start;
  gap:6px;
  margin-top:7px;
  font-size:12.5px;
  font-weight:700;
  line-height:1.5;
  color:var(--err);
}
.tcbn-reserve .tcbn-fielderr::before{
  content:"";
  flex:0 0 auto;
  width:15px; height:15px;
  margin-top:1px;
  background:no-repeat center/contain
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2L23 21H1L12 2z' fill='%23d62b51'/%3E%3Crect x='11' y='9' width='2' height='6' fill='%23fff'/%3E%3Crect x='11' y='17' width='2' height='2' fill='%23fff'/%3E%3C/svg%3E");
}
/* 入力欄のエラー状態 */
.tcbn-reserve .tcbn-input.is-error{
  border-color:var(--err);
  background:var(--err-tint);
}
.tcbn-reserve .tcbn-input.is-error:focus{
  border-color:var(--err);
  box-shadow:0 0 0 3px rgba(214,43,81,.15) !important;
}
/* カレンダー・時間チップ・チェックを内包するフィールドのエラー */
.tcbn-reserve .tcbn-field.is-error .tcbn-cal{ border-color:var(--err); }
.tcbn-reserve .tcbn-field.is-error .tcbn-chip{ border-color:#eeb4c2; }
.tcbn-reserve .tcbn-pref.is-error > .tcbn-pref-head .tcbn-pref-title{ color:var(--err); }

/* ============== A11y / 重なり順・固定解除（既存バグ対策を継承）============== */
.tcbn-reserve a:focus-visible,
.tcbn-reserve button:focus-visible,
.tcbn-reserve input:focus-visible,
.tcbn-reserve select:focus-visible,
.tcbn-reserve textarea:focus-visible,
.tcbn-reserve summary:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

/* テーマ側の header{position:sticky} 等で「第1希望/必須」が固定される問題を無効化 */
.tcbn-reserve header,
.tcbn-reserve .tcbn-pref-head{
  position:static !important;
  top:auto !important; left:auto !important; right:auto !important; bottom:auto !important;
  z-index:auto !important;
}
.tcbn-reserve article,
.tcbn-reserve .tcbn-pref{ position:static !important; }

/* カレンダー・時間選択はボタンより下の重なりに */
.tcbn-reserve .tcbn-cal,
.tcbn-reserve .tcbn-cal-head,
.tcbn-reserve .tcbn-cal-week,
.tcbn-reserve .tcbn-cal-days,
.tcbn-reserve .tcbn-cal-grid,
.tcbn-reserve .tcbn-chips{
  position:relative;
  z-index:1;
}

/* ドロップシャドウ・テキストシャドウは全面的に不使用（テーマ干渉対策で !important） */
.tcbn-reserve *,
.tcbn-reserve *::before,
.tcbn-reserve *::after{
  box-shadow:none !important;
  text-shadow:none !important;
}
/* 例外：入力フォーカスのリングだけは可視性のため許可 */
.tcbn-reserve .tcbn-input:focus{ box-shadow:0 0 0 3px var(--brand-tint) !important; }

@media (prefers-reduced-motion:reduce){
  .tcbn-reserve *{ transition:none !important; }
}

/* =========================================================
   相談会（consultation）
   - カレンダーの対象日ハイライト
   - 希望ごとの「参加する/参加しない」UI
   - 期間が未設定（開始日・終了日が空）なら一切表示されない
   ========================================================= */

/* 対象日の凡例 */
.tcbn-reserve .tcbn-consult-legend{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  padding:10px 12px;
  background:var(--brand-tint);
  border:1px solid var(--brand-line);
  border-radius:var(--r-sm);
  color:var(--brand-deep);
  font-size:13px;
  font-weight:700;
  line-height:1.6;
}
.tcbn-reserve .tcbn-consult-legend[hidden]{ display:none; }
.tcbn-reserve .tcbn-consult-dot{
  width:16px;
  height:16px;
  border-radius:4px;
  background:var(--brand-tint);
  border:1.5px solid var(--brand);
  flex:0 0 auto;
}

/* カレンダー：相談会の対象日（選択済み・無効日は除く）
   ドットは曜日表示と重なるため廃止。淡い背景＋ブランド枠線で示す。 */
.tcbn-reserve .tcbn-cal-cell.is-consult:not(.is-selected):not(.is-disabled){
  background:var(--brand-tint);
  border-color:var(--brand);
}
.tcbn-reserve .tcbn-cal-cell.is-consult:not(.is-selected):not(.is-disabled):hover{
  background:var(--brand-tint);
  border-color:var(--brand-deep);
}

/* 希望ごとの参加可否ブロック */
.tcbn-reserve .tcbn-consult{
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed var(--brand-line);
}
.tcbn-reserve .tcbn-consult[hidden]{ display:none; }
.tcbn-reserve .tcbn-consult-note{
  margin:2px 0 10px;
  font-size:13px;
  font-weight:700;
  color:var(--brand-deep);
  line-height:1.6;
}