/* 現地見学の予約表（モーダル）。第1希望・第2希望の欄を押すと開く */
.rsv-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;background:rgb(0 0 0 / .4);opacity:0;transition:opacity .25s;font-family:'Noto Sans JP',sans-serif;color:#333}
.rsv-modal[hidden]{display:none}
.rsv-modal.open{opacity:1}
.rsv-box{width:640px;max-width:100%;max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:8px;padding:28px 28px 24px;box-shadow:0 10px 40px rgb(0 0 0 / .18)}
.rsv-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.rsv-title{font-family:'Noto Serif JP',serif;font-weight:700;font-size:18px;letter-spacing:1.6px;color:#08344d}
.rsv-close{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:#08344d;color:#fff;font-size:20px;line-height:36px;cursor:pointer}

.rsv-legend{display:flex;gap:16px;justify-content:flex-end;font-size:11px;letter-spacing:.5px;color:#555;margin-bottom:8px}
.rsv-legend span{display:flex;align-items:center;gap:4px}
.rsv-legend i{font-style:normal;font-weight:700}
.rsv-legend .ok{color:#08344d}
.rsv-legend .ng{color:#bbb}

.rsv-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.rsv-nav button{flex:none;height:32px;padding:0 12px;border:1px solid #08344d;border-radius:16px;background:#fff;color:#08344d;font:inherit;font-size:12px;font-weight:500;letter-spacing:.6px;cursor:pointer}
.rsv-nav button:disabled{border-color:#ddd;color:#bbb;cursor:default}
.rsv-nav .range{font-size:13px;font-weight:700;letter-spacing:.8px;text-align:center}

.rsv-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;letter-spacing:.3px}
.rsv-table th,.rsv-table td{border:1px solid #dcdcdc;text-align:center;padding:0;height:40px}
.rsv-table thead th{background:#f3f6f7;font-weight:500;line-height:1.35;height:46px}
.rsv-table thead th small{display:block;font-size:10px;color:#777}
.rsv-table thead th.sat small{color:#2a5ea8}
.rsv-table thead th.sun small{color:#c83232}
.rsv-table tbody th{background:#f3f6f7;font-weight:500;width:64px}
.rsv-table td button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:0;background:#fff;color:#08344d;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s}
.rsv-table td button:hover{background:#e8f0f3}
.rsv-table td button.sel{background:#08344d;color:#fff;font-size:12px;letter-spacing:.5px}
.rsv-table td button.other{background:#c9d6dd;color:#fff;cursor:default}
.rsv-table td.ng{color:#c4c4c4;font-size:15px;background:#fafafa}
.rsv-foot{margin-top:14px;text-align:right;min-height:20px}
.rsv-clear{border:0;background:none;color:#888;font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.rsv-clear[hidden]{display:none}

@media (max-width:767px){
  .rsv-modal{padding:12px}
  .rsv-box{padding:20px 12px 16px}
  .rsv-title{font-size:16px;letter-spacing:1px}
  .rsv-table{font-size:11px;letter-spacing:0}
  .rsv-table tbody th{width:44px}
  .rsv-table th,.rsv-table td{height:38px}
  .rsv-table thead th{height:44px}
  .rsv-table td button{font-size:14px}
  .rsv-table td button.sel{font-size:11px}
  .rsv-nav button{padding:0 10px;font-size:11px}
  .rsv-nav .range{font-size:12px}
}
