/* the Sanctuary — 予約フォーム（reservation） */

.booking { display:flex; flex-direction:column; gap:clamp(18px,3vw,28px); }

.booking-card {
  border:1px solid var(--line);
  border-radius:var(--r);
  background:#fff;
  padding:clamp(20px,3vw,30px);
  margin:0;
  box-shadow:var(--shadow-sm);
}
.booking-card > legend {
  display:flex; align-items:center; gap:.6em;
  font-family:var(--font-jp);
  font-size:1.15rem; color:var(--heading);
  padding:0; margin-bottom:1em;
}
.bk-num {
  display:inline-grid; place-items:center;
  width:1.9em; height:1.9em; border-radius:50%;
  background:var(--accent); color:#fff;
  font-family:var(--font-en); font-size:.85rem; font-weight:600;
}

.bk-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:clamp(12px,2vw,18px); margin-bottom:1.4rem;
}
.bk-field { display:flex; flex-direction:column; gap:.4em; font-size:.86rem; color:var(--leaf); }
.bk-field.bk-wide { grid-column:1 / -1; }
.bk-field input,
.bk-field select,
.bk-field textarea {
  font-family:var(--font-body); font-size:1rem; color:var(--text);
  padding:.7em .8em; border:1px solid var(--line); border-radius:12px;
  background:var(--bg); width:100%;
}
.bk-field input:focus,
.bk-field select:focus,
.bk-field textarea:focus {
  outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(194,115,74,.15);
}
.bk-field textarea { resize:vertical; }

.bk-summary {
  font-size:.92rem; color:var(--dark);
  background:var(--bg-section); border-radius:12px;
  padding:.7em 1em; margin:0 0 1.2rem;
}

.bk-rooms { display:flex; flex-direction:column; gap:14px; }
.room-card {
  display:flex; align-items:flex-start; gap:.9em;
  border:1px solid var(--line); border-radius:14px;
  padding:1em 1.1em; cursor:pointer;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.room-card:hover { border-color:var(--accent); }
.room-card input { margin-top:.35em; accent-color:var(--accent); flex:0 0 auto; }
.room-card:has(input:checked) {
  border-color:var(--accent); background:rgba(194,115,74,.06);
}
.room-card.is-out { opacity:.55; cursor:not-allowed; }
.room-card.is-out:hover { border-color:var(--line); }

.rc-body { display:flex; flex-direction:column; gap:.3em; flex:1; }
.rc-name { font-family:var(--font-jp); font-size:1.05rem; color:var(--dark); }
.rc-name small { display:block; font-family:var(--font-en); font-size:.72rem; color:var(--leaf); }
.rc-desc { font-size:.85rem; color:var(--leaf); line-height:1.7; }
.rc-meta {
  display:flex; justify-content:space-between; align-items:baseline;
  gap:.8em; margin-top:.4em; flex-wrap:wrap;
}
.rc-price { font-family:var(--font-en); font-size:1.1rem; color:var(--accent-deep); font-weight:600; }
.rc-price small { font-size:.72rem; color:var(--leaf); font-weight:400; }
.rc-state {
  font-size:.78rem; padding:.2em .8em; border-radius:999px;
  background:rgba(124,122,90,.14); color:var(--leaf);
}
.rc-state:not(.is-out) { background:rgba(120,160,110,.18); color:#4f7a44; }

/* ハニーポット（画面外へ） */
.bk-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.bk-fineprint { font-size:.78rem; color:var(--leaf); line-height:1.8; margin:1rem 0 0; }
.bk-fineprint a { color:var(--accent); }

.bk-msg {
  border-radius:12px; padding:1em 1.2em; font-size:.9rem; line-height:1.8;
  border:1px solid var(--line); background:#fff;
}
.bk-msg.is-error  { border-color:#d98a6a; background:#fbeee8; color:#9a4a2c; }
.bk-msg.is-warn   { border-color:#d9c06a; background:#fbf6e6; color:#8a6e2c; }
.bk-msg.is-success{ border-color:#8fbf7f; background:#eef6ea; color:#3f7a34; }

/* キャンセルポリシー同意 */
.bk-policy {
  border:1px solid var(--line); border-radius:14px;
  background:var(--bg-section); padding:1em 1.2em; margin:1.4rem 0 .2rem;
}
.bk-policy-title { font-family:var(--font-jp); color:var(--dark); margin:0 0 .5em; font-size:.95rem; }
.bk-policy-list { margin:.4em 0 .6em; padding-left:1.2em; font-size:.85rem; color:var(--leaf); line-height:1.95; }
.bk-policy-note { font-size:.78rem; color:var(--leaf); margin:.4em 0 .9em; line-height:1.8; }
.bk-policy-note a, .bk-policy-list a { color:var(--accent); }
.bk-agree {
  display:flex; align-items:flex-start; gap:.6em;
  font-size:.92rem; color:var(--text); cursor:pointer;
  padding-top:.6em; border-top:1px solid var(--line);
}
.bk-agree input { margin-top:.28em; accent-color:var(--accent); flex:0 0 auto; width:1.1em; height:1.1em; }

#bk-search, #bk-submit { margin-top:.4rem; }
.btn.is-busy { opacity:.6; pointer-events:none; }
.btn[disabled] { opacity:.45; pointer-events:none; cursor:not-allowed; }

@media (max-width:560px) {
  .bk-grid { grid-template-columns:1fr; }
  .rc-meta { flex-direction:column; align-items:flex-start; gap:.3em; }
}
