/* 실시간 부킹 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.no-scroll{overflow:hidden;}
.mobile-only{display:none !important;}
.bottom-sheet{display:none !important;}

.calendar {
	margin: 30px auto;
}

#sub_wrap.res_live .res_list .club-list.item_wrap .empty-row {
	font-size: 15px;
}


.local ul {
	display: flex;
	align-items: center;
	gap: 10px;
}
.local ul li {
	background: border-box;
	border: 1px solid #ddd;
	padding: 5px 10px;
	border-radius: 8px;
	cursor: pointer;
	opacity: 0.8;
	transition: all 0.2s;
}
.local ul li.active,
.local ul li:hover {
	opacity: 1;
	background: #8cc11d;
	color: #fff;
	border: none;
}


#sub_wrap.res_live .topbar .total span {
	font-weight: bold;
	color: green;
}


.res_booking .res_list .item_name p {
	opacity: 0.7;
	font-size: 14px;
	margin-bottom: 10px;
}

.res_booking .res_list .item_name b {
	font-size: 17px;
}

.res_booking .res_list .item_info {
    text-align: right;
}

.res_booking .res_list .item_info .time {
	display: flex;
	justify-content: end;
	align-items: center;
	gap: 10px;
	margin-left: auto;
	margin-bottom: 5px;
	font-size: 14px;
}

.res_booking .res_list .item_info .time p {
	box-sizing: border-box;
	padding: 2px 8px;
	border-radius: 5px;
	background: #eee;
	font-weight: bold;
}

.res_booking .res_list .item_info .time b {
	width: 50px;
	text-align: right;
}

.res_booking .res_list .item_info .price {
	color: green;
	margin-top: 10px;
}

#sub_wrap.res_live .golf-table {
	border-top: 1px solid #ddd;
}

#sub_wrap.res_live .res_booking .golf-table th, 
#sub_wrap.res_live .res_booking .golf-table td {
	/* padding: 0; */
}

#sub_wrap.res_live .res_booking .golf-table td:last-child {
	border-top: 1px solid #ddd;
}




.mobile-reserve,
.mobile-cards {
  display: none;
}

/* 카드 */
#sub_wrap.res_live .card {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
  margin: 30px auto 50px;
}
#sub_wrap.res_live .topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  border-bottom: 2px solid #222;
}


/* 클럽 리스트 */
#sub_wrap.res_live .club-list{
  list-style:none;
  margin:0;
  padding:0;
}

/* 날짜별 리스트 on/off */
#sub_wrap.res_live .res_list .club-list.item_wrap { display: none; }
#sub_wrap.res_live .res_list .club-list.item_wrap.is-active { display: block; }

/* 비어있는 날 안내문 스타일 */
#sub_wrap.res_live .res_list .club-list.item_wrap .empty-row {
  padding: 36px 0;
  color: #888;
  background: #fafafa;
  text-align: center;
  font-weight: 600;
}

#sub_wrap.res_live details.club{
	border-top: none;
	border-bottom: 1px solid #ddd !important;
}
#sub_wrap.res_live details.club:first-child{border-top:none}
#sub_wrap.res_live summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:18px 16px}
#sub_wrap.res_live .res_list .count{
  background: green;
  color: #fff;
  border-radius: 50px;
  padding: 5px 10px;
  font-weight: 700;
  font-size: 12px;
}

/* 표/버튼(기존 스타일 유지 가정) */
#sub_wrap.res_live .golf-table { width:100%; border-collapse:collapse; min-width:1100px }
#sub_wrap.res_live .golf-table th, #sub_wrap.res_live .golf-table td { padding:14px 12px; border-bottom:1px solid #ddd; font-size:14px }
#sub_wrap.res_live .act_btn{
  display:inline-block;
  border:1px solid #ddd;
  background:#fff;
  color:#666;
  border-radius:10px;
  padding:6px 16px;
  font-weight:700;
  text-decoration: none;
}


/* 열 정렬/너비 */
#sub_wrap.res_live .golf-table th.col-area   { width:100px; }
#sub_wrap.res_live .golf-table th.col-time   { width:100px; }
#sub_wrap.res_live .golf-table th.col-course { width:120px;  }
#sub_wrap.res_live .golf-table th.col-hole   { width:80px;  }
#sub_wrap.res_live .golf-table th.col-people { width:80px;  }
#sub_wrap.res_live .golf-table th.col-booking { width: 80px; }
#sub_wrap.res_live .golf-table th.col-price  { width:120px; display: none;}
#sub_wrap.res_live .golf-table th.col-author { width:120px; }
#sub_wrap.res_live .golf-table th.col-action { width:180px; text-align:center; }
#sub_wrap.res_live .golf-table td:last-child  { text-align:center; } /* 예약 버튼 칸 */

#sub_wrap.res_live .time-row td:last-child {
  text-align: center;
  box-sizing: border-box;
  border-top: 2px solid #eeeeee;
}

.golf-table .reserve-host {
	background: #f5f5f5 !important;
}

/* 비고가 길 때 한 줄 말줄임 */
#sub_wrap.res_live .golf-table td.note{
  max-width: 280px;
  white-space: nowrap; 
  overflow: hidden; 
  text-overflow: ellipsis;
}

/* 아코디언: 기본은 감춤 */
#sub_wrap.res_live .reserve-row{ display:none; }
#sub_wrap.res_live .reserve-row.is-open{ display:table-row; }

/* (선택) 부드러운 펼침 느낌 - 내부 박스만 트랜지션 */
#sub_wrap.res_live .reserve-row .reserve-box{
  max-height:0; 
  overflow:hidden; 
  padding:0 16px; 
  transition: max-height .25s ease, padding .25s ease;
}

#sub_wrap.res_live .reserve-row.is-open .reserve-box{
  max-height:800px;
  padding: 30px 50px;
}

/* 컨테이너가 들어가는 행 */
#sub_wrap.res_live .reserve-row td{
  background:#f9fafb;
  border-bottom:1px solid #ddd;
  padding:0;
}

/* 컨테이너 박스 */
#sub_wrap.res_live .reserve-box{
  display:flex;
  flex-direction:column;
  gap:14px;
}

#reserve-shared {
    padding: 30px;
}
#reserve-shared[hidden] {
    display: none !important;
}

#sub_wrap.res_live .reserve-box input, #sub_wrap.res_live .reserve-box textarea {
  box-sizing: border-box;
  border: 1px solid #ddd;
}

/* 상단 줄 */
#sub_wrap.res_live .reserve-head{
  display:flex; 
  align-items:center; 
  gap:10px; 
  flex-wrap:wrap;
}
#sub_wrap.res_live .reserve-head strong{ font-size:16px }
#sub_wrap.res_live .reserve-head .meta{ color:#64748b; font-size:13px }

/* 내용 그리드 */
#sub_wrap.res_live .reserve-grid {
  display:grid;
  gap: 10px 16px;
  grid-template-columns: 100px 1fr 100px 1fr;
  align-items: center;
  text-align: left;
  margin-top: 20px;
}

#sub_wrap.res_live #reserve-form div#rf-cancel {
  text-align: right;
  font-weight: bold;
  margin: 10px 0;
}

#sub_wrap.res_live button#rf-cancel.act_btn {
  border-radius: 2px;
  padding: 5px 10px;
  font-weight: normal;
  transition: all 0.2s;
}

#sub_wrap.res_live button#rf-cancel.act_btn:hover {
  background: #aaa;
}


@media (max-width:768px){
	.local {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	
	.local ul {
		padding: 0 10px;
		width: max-content;
		white-space: nowrap;
	}

	.local ul li {
		padding: 4px 8px;
		font-size: 14px;
		flex: 0 0 auto;
	}

	.local::-webkit-scrollbar {
		display: none;
	}

	.calendar {
		width: 90%;
		margin: 20px auto;
	}

	#sub_wrap.join ul.date_list li {
		padding: 10px 0;
		font-size: 12px;
	}

	
	/* 데이터 없는 날 */
	#sub_wrap.res_live .res_list .club-list.item_wrap .empty-row {
		font-size: 15px;
	}



	#sub_wrap.res_live .card {
		box-shadow: none;
		margin: auto;
		width: 90%;
	}

	#sub_wrap.res_live .topbar {
		padding: 20px 0;
		border-bottom: none;
	}

	#sub_wrap.res_live .info {
		font-size: 13px;
	}


	#sub_wrap.res_live summary {
		padding: 20px 10px;
		border-bottom: 1px solid #ddd;
	}
		
	#sub_wrap.res_live ul.date_list li {
		min-width: 70px;
	}

	.res_booking .res_list .item_name {
		width: 50%;
	}

	.res_booking .res_list .item_name b {
		font-size: 15px;
		width: 26px;
	}
	
	.res_booking .res_list .item_info {
		width: 50%;
	}

	.res_booking .res_list .item_info .time {
		font-size: 13px;
	}

	.res_booking .res_list .item_name p {
		font-size: 12px;
	}

	.res_booking .res_list .item_info .price {
		font-size: 15px;
		text-align: right;
	}

	/* style.css 3737 */
	/* #sub_wrap.res_live .mobile-reserve .reserve-box {
		gap: 10px;
		padding: 15px;
		background: #f5f5f5;
	}

	#sub_wrap.res_live .mobile-reserve .close-reserve {
		padding: 5px 10px;
		font-size: 13px;
	}

	#sub_wrap.res_live .mobile-reserve .reserve-grid {
		gap: 5px 0;
		margin-top: 10px;
	} */

	#sub_wrap.res_live .reserve-head strong {
		font-size: 17px;
	}

	#sub_wrap.res_live .reserve-grid {
		grid-template-columns: 1fr 2fr;
		font-size: 14px;
	}
	
	#sub_wrap.res_live .mcard {
		display: flex;
		justify-content: space-between;
		align-items: center;
		background: #f5f5f5;
        padding: 10px;
		box-shadow: none;
	}

	#sub_wrap.res_live .mcard .cont_wrap {
		display: flex;
		flex-direction: column;
		gap: 5px;
	}

	nav.pagnation {
		width: 90% !important;
	}


	/* PC용 표는 숨김 */
	#sub_wrap.res_live .table-wrap { display:none; }


	/* 카드 컨테이너 */
	#sub_wrap.res_live .mobile-cards {
		display:grid;
		gap: 5px;
        padding: 0 !important;
		/* border-bottom: 5px solid #fff;
		background: #f5f5f5; */
		overflow: hidden;
	}
	
	/* 카드 */
	/* #sub_wrap.res_live .mcard {
		background:#fff;
		border:1px solid #eaeaea;
		border-radius:16px;
		padding:14px;
		box-shadow:0 2px 12px rgba(0,0,0,.06);
	} */

	#sub_wrap.res_live .mcard {
        border: none;
        border-radius: 0;
		background: #f5f5f5;
		box-sizing: border-box;
	}


	#sub_wrap.res_live .mcard-row {
		display: flex;
		justify-content: space-between;
		width: 100%;
		align-items: center;
	}





	/* 신청폼 활성화 */
	#sub_wrap.res_live .mcard.on {
    	flex-direction: column;
	}

	.mcard.on {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }
	
	.reserve-host {
		position: relative;
		width: 100%;
	}

	.reserve-host::before {
		content: '';
		width: 200%;
		height: 5px;
		background: #fff;
		position: absolute;
		left: -20%;
		top: 0;
	}




	/* 상단 배지 */
	#sub_wrap.res_live .badges {
		display:flex; 
		gap: 15px;
		justify-content: start;
	}

	#sub_wrap.res_live .badge {
		font-size:12px; 
		font-weight:700;
		/* display:inline-flex; 
		align-items:center;
		padding:6px 10px;
		border-radius: 10px;
		background:#f1f5f9; 
		color:#64748b; */
	}

	#sub_wrap.res_live .badge:not(:last-child) {
		position: relative;
	}

	#sub_wrap.res_live .badge:not(:last-child)::after {
		position: absolute;
		content: '';
		width: 1px;
		height: 75%;
		background: #ddd;
		right: -8px;
		top: 50%;
		transform: translateY(-50%);
	}

	/* 시간 / 홀 / 캐디 */
	#sub_wrap.res_live .infos {
		display:flex; 
		gap:14px; 
		color:#111; 
		flex-wrap:wrap; 
		justify-content: left;
		margin: 0;
	}
	#sub_wrap.res_live .info {
		display:flex; 
		gap:6px; 
		align-items:center;
		font-weight:700; 
	}

	#sub_wrap.res_live .infos i {
		color: #8cc11d;
	}


	/* 칩(금액, 부부/커플, 매니저 등) */
	#sub_wrap.res_live .chips {
		display:flex; 
		gap:6px; 
		/* justify-content: center; */
	}
	#sub_wrap.res_live .chip {
		display:inline-flex; 
		align-items:center; 
		gap:6px;
		padding: 5px; 
		border-radius:8px;
		background:#f8fafc; 
		font-size:12px; 
		font-weight:700;
		border:1px solid #eef2f7;
	}

	/* 예약 버튼 */
	#sub_wrap.res_live .actions {
		margin-top: 0;
	}

	#sub_wrap.res_live .actions .reg_btn {
		display: block;
		width: fit-content;
		border-radius: 5px;
		background: #8cc11d;
		color: #fff;
		padding: 6px 12px;
		text-align: center;
		text-decoration: none;
		margin: auto;
	}

	.pagination {
		padding: 0;
	}

	/* 모바일용 신청 폼 패널 */
	.mobile-reserve.active {
		display: block;
		margin-bottom: 10px;
	}

  	#sub_wrap.res_live .mobile-reserve .reserve-box { padding:18px 16px; }

  
  	#sub_wrap.res_live .mobile-reserve .reserve-head{
		display:flex; 
		align-items:center; 
		gap:8px;
	}

	#sub_wrap.res_live #reserve-shared {
		padding: 20px 10px 10px 10px;
        background: #f5f5f5;
        margin-top: 10px;
        box-sizing: border-box;
    }

	#sub_wrap.res_live .reserve_grid {
		font-size: 15px;
	}

	#sub_wrap.res_live .mobile-reserve .reserve-grid {
		display:grid; 
		gap:10px 12px; 
		grid-template-columns: 90px 1fr;
	}
	#sub_wrap.res_live .mobile-reserve .reserve-grid input.input {width: 100%;}
	#sub_wrap.res_live .reserve-grid textarea {
		width: 100%;
		min-height: auto;
		box-sizing: border-box;
		resize: vertical;
	}


	#sub_wrap.res_live .mobile-reserve .reserve-actions {
		display: flex;
		justify-content: center;
        gap: 20px;
	}

	#sub_wrap.res_live .mobile-reserve .reserve-actions button {
		display:block; 
		border:0;
		border-radius: 5px;
		padding: 7px 10px;
        text-align: center;
        font-size: 14px;
	}
  	#sub_wrap.res_live .mobile-reserve .reg_btn {
		background:#8cc11d; 
		color:#fff; 
  	}
	#sub_wrap.res_live .mobile-reserve .close-reserve{
		background: #999;
		color:#fff; 
	}

	#sub_wrap.res_live button#rf-cancel.act_btn,
	#sub_wrap .reg_btn {
		border-radius: 5px !important;
	}


	/* 공통: 입력들은 기본적으로 label 오른쪽 전체를 차지 */
	#sub_wrap.res_live .reserve-grid .input,
	#sub_wrap.res_live .reserve-grid .textarea,
	#sub_wrap.res_live .reserve-grid input,
	#sub_wrap.res_live .reserve-grid textarea,
	#sub_wrap.res_live .reserve-grid select {
		grid-column: 2 / -1 !important;
		width: 100%;
		box-sizing: border-box;
	}




	#sub_wrap.res_live .mcard .cont_wrap .title, 
	#sub_wrap.res_live .mcard .cont_wrap .chips {
		display: none;
	}
}




