.booking-info {
  padding: 50px 17%;
}
.room_wrap { padding: 0 17%;}
.sec-wrap {
  margin-bottom: 65px;
}
.sec-wrap h2, .sec-wrap h3 {
  font-size: 26px;
  margin-bottom: 20px;
  letter-spacing: 0 !important;
  font-weight: 600 !important;
}
/* 예약정보 요약 최상단 */
.summary-box {
  background-color: #f8f5f2;
  border-radius: 16px;
  padding: 25px 25px 25px 30px;
  line-height: 1.6;
  font-family: 'nanum-bold', 'sans-serif';
}
.summary-box dl {
  display: flex;
  margin-bottom: 10px;
}
.summary-box dl:last-of-type {
  margin-bottom: 0;
}
.summary-box dt {
  width: 95px;

}
.summary-box a {
  margin-left: 8px;
  color: var(--main-pink);
  text-decoration: underline;
}


/* 숙박기간 */
.date-select {
  display: flex;
  align-items: center;
  border: 1px solid var(--sub-gray);
  border-radius: 10px;
  cursor: pointer;
}
.date-select .icon-btn {
  border: none;
  outline: none;
  border-right: 1px solid var(--sub-gray);
  padding: 25px 58px;
  height: 100%;
  background: none;
}
.date-select .icon-btn img {
  width: 35px;
}
.date-select .date-info {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  gap: 77px;
  font-family: 'nanum-bold', 'sans-serif';
}
.date-info .date {
  display: flex;
  align-items: center;
}
.date-info .date > span {
  display: inline-block;
  margin-right: 20px;
  border: 1px solid #959595;
  border-radius: 9px;
  padding: 4px 8px;
  color: #959595;
  font-size: 18px;
  letter-spacing: 0.36px;
}
.date-info .date strong {
  color: var(--main-gray);
  font-size: clamp(13px, 2vw, 19px);
  line-height: 1.4;
  letter-spacing: 0.5px;
  font-weight: 400;
  white-space: nowrap;
}
.nights {
  background-color: var(--sub-brown);
  color: #fff;
  padding: 10px 40px;
  border-radius: 9px;
  font-size: 20px;
  letter-spacing: 0.56px;
}
/* 달력 팝업 */
.calendar-popup {
  display: none;
  position: absolute;
  top: 39%; 
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 650px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  z-index: 999;
  padding: 20px;
}
.calendar-popup.active {
  display: block;
}
.calendar-close {
  position: absolute;
  top: 57px;
  right: 50px;
  transform: translateY(-50%);
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
  color : var(--main-brown);

}
.calendar-header { text-align: center;}
.calendar-header::after {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--sub-gray);
  margin-top: 20px;
}
.calendar-header p {
  font-size: 16px;
  font-weight: bold;
  margin-top: 10px;
}
.calendar-header p .night {
  display: inline-block;
  background: var(--main-brown);
  padding: 3px 10px;
  color: #fff;
  border-radius: 15px;
  margin-left: 10px;
}
.calendar-header p.message { margin-top: 10px;}

/* 달력 커스텀 */
#calendar {
  display: flex;
  justify-content: center;
}
.air-datepicker { 
  font-family: 'gowun', 'sans-serif'; 
  font-weight: bold;
  --adp-width: 310px;
  --adp-padding: 10px;
  --adp-day-cell-height: 51px;
  --adp-cell-border-radius: 30px

}
.air-datepicker-nav--title {font-family: 'gowun', 'sans-serif'; font-weight: bold; font-size: 17px;}
.air-datepicker-nav--title i { color: var(--main-gray);}
.air-datepicker-body--day-names {
    margin: 0px;
    background: #F6F4F1;
    padding: 10px 0;
}
.air-datepicker-body--day-name { color: var(--main-gray); }
.air-datepicker-cell { margin: 5px 0;}

/* 다른 달 흐린 색 유지 */
.air-datepicker-cell.-day-.-other-month- {
    color: var(--adp-color-other-month) !important;
}
/* 토요일  */
.air-datepicker-cell.-weekend-:nth-of-type(7n) {
  color: var(--main-blue);
}
/* 일요일  */
.air-datepicker-cell.-weekend-:nth-of-type(7n+1) {
  color: var(--main-red);
}

.air-datepicker-cell.-selected- { 
  color: #fff !important;
  background: var(--main-brown) !important; 
}

.air-datepicker-cell.-selected-::after {
  content: '입실';
  display: block;
  position: absolute;
  bottom: -17px;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  margin-top: 10px;
  color: var(--main-brown);
  font-size: 13px;
}
.air-datepicker-cell.-range-to- {
  border: none;
  background: rgba(109,93,82,0.2);
}
.air-datepicker-cell.-selected-.-range-to-::after {
  content: '퇴실';
}
.air-datepicker-cell.-in-range- { background: rgba(109,93,82,0.2) !important;}


/* 객실선택 */
.room-select h3 { margin-bottom: 0; }
.room-select h3::after {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--main-gray);
  margin-top: 20px;
}

.room-list li {
  gap: 15px;
  padding: 20px 0px;
  flex-wrap: wrap;
  display: flex;
  position: relative;
  border-bottom: 1px solid #B8B8B8;
  padding: 20px 20px;
}

.room-image {
  position: relative;
  width: 140px;
  flex-shrink: 0;
}

.room-image img {
  width: 100%;
  border: 1px solid #707070;
}

.room-info {
  min-width: 32%;
}
.room-info .tag { /*예약가능 예약불가 상태*/
  display: inline-block;
  color: #fff;
  font-size: 15px;
  padding: 2px 6px;
  border-radius: 4px;
  margin-bottom: 7px;
}
.tag.available { background: var(--main-green); }
.tag.non-available { background: #989898;}

.room-info h4 {
  font-size: 20px;
  letter-spacing: 0.4px;
  line-height: 1.5em;
  margin-bottom: 4px;
}
.room-info p {
  font-size: 16px;
  letter-spacing: -0.3px;
  line-height: 1.7em;
  font-weight: 600;
}
.person-count {
  font-family: 'nanum-bold', 'sans-serif';
  font-size: 18px;
}
.person-count > div {
  display: flex;
}
.person-count label {
  display: flex;
  width: 100px;
  height: 43px;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: 8px;
  letter-spacing: 0.36px;
}
.person-count .number {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 114px;
  height: 43px;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  letter-spacing: 0.9px;
}
.btn-count-wrap {
  display: flex;
  width: 208px;
}
.btn-count {
  width: 45px;
  height: 43px;
  text-align: center;
  line-height: 22px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  font-size: 24px;
  color: var(--sub-gray);
}

/* 선택, 즉시할인가, 가격 */
.room-price {
  font-family: 'nanum-bold', 'sans-serif';
}
.btn-select {
  position: absolute;
  top: 35px;
  right: 20px;
  width: 130px;
  background: #fff;
  border: 1px solid #aaa;
  padding: 5px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 17px;
  letter-spacing: 1.05px;
  color: #444;
}
.btn-select.selected {
  background-color: var(--main-brown);
  color: #fff;
}
.price {
  position: absolute;
  top: 80px;
  right: 20px;
  text-align: right;
  line-height: 1.8;
}
.discount-rate {
  color: var(--main-red);
  font-weight: bold;
  font-size: 16px;
  margin-right: 6px;
  letter-spacing: 0.8px;
}
.discount {
  font-size: 15px;
  letter-spacing: 0.6px;
  /* margin-top: 13px; */
  display: none;
}
.origin-price {
  color: #888;
  font-size: 14px;
  letter-spacing: 0.7px;
}
.final-price {
  font-size: clamp(15px, 2vw, 25px);
  font-weight: bold;
  color: var(--main-gray);
}


/* 총 결제금액 */
.total-price-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 20px;
  letter-spacing: 1px;
  font-family: 'nanum-bold', 'sans-serif';
  margin: 30px 0 20px;
  padding: 0 17%;
}
.total-price {
  display: inline-block;
  color: var(--main-red);
  font-size: 23px;
  letter-spacing: 1.15px;
  font-weight: bold;
  margin-right: 25px;
}
.btn-next {
  background: var(--sub-brown);
  color: #fff;
  font-size: 20px;
  letter-spacing: 1.32px;
  padding: 19px 83px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-family: 'nanum-bold', 'sans-serif';
}
.btn-next:hover {
  background: var(--main-brown);
  transition: background-color 0.2s ease;
}



/* 반응형 */
@media(max-width:1850px){
  .booking-info {
    padding: 30px 10%;
  }
  .room_wrap, .total-price-wrap { padding: 0 10%;}
}
@media(max-width:1550px){
  .booking-info {
    padding: 30px 2%;
  }
  .room_wrap, .total-price-wrap { padding: 0 2%;}
  .btn-select {
    width: 150px;
  }
}
@media(max-width:1300px){
  .date-info .date {
    flex-direction: column;
    align-items: center;
  }
  .date-select .date-info {
    gap: 35px;
  }
  .date-info .date > span {
    margin-bottom: 10px;
    margin-right: 0;
  }
  .date-info .date > strong {
    word-break: keep-all;
    white-space: wrap;
    text-align: center;
  }
  .nights { font-size: 18px;}

 
  .btn-select {
    position: absolute;
    width: 41px;
    padding: 5px;
  }
  .btn-select span { display: none; }
  .room-price { width: 100%; }
  .price { position: static;}
  .price > p {display: inline-block;}
  .price p.origin-price { margin-left: 7px; }
  .price p.final-price { margin-left: 17px; } 

}
@media(max-width:1100px){
  .room-info { min-width: 41%; margin-left: 7px;}
  .person-count { display: none;}
  .person-count.selected { display: block;}
}
@media(max-width:768px){
  .sec-wrap { margin-bottom: 45px;}
  .booking-info {
      padding: 15px 2%;
  }
  .sec-wrap h2, .sec-wrap h3 {
      font-size: 18px;
      margin-bottom: 20px;
  }
  .room-select h3 { margin-bottom: 0;}
  .room-select h3::after { margin-top: 10px; }

  /* 최상단 요약 */
  .summary-box { padding: 16px;}
  .summary-box dt, .summary-box dd { font-size: 14px;}
  .summary-box a {
    display: block;
    margin-left: 0;
  }
  .date-select .icon-btn { display: none;}
  .date-select .date-info {
    padding: 18px;
    gap: 20px; 
  }
  .date-info .date > span { font-size: 14px;}
  .nights {
    font-size: 16px;
    padding: 10px 0;
    width: 64px;
    text-align: center;
  }
  .air-datepicker {
    --adp-padding: 5px !important;
  }

  .calendar-close { right: 30px;}

  /* 객실선택 */
  .room-image { width: 125px;}
  .room-info .tag { 
    font-size: 11px;
    padding: 3px 6px;
    margin-bottom: 3px;
  }
  .room-info h4 { 
    font-size: 17px;
    margin-top: 4px;
  }
  .room-info p { font-size: 11px;}
  .btn-select {
    top: 15px;
    right: 14px;
    width: 34px;
    padding: 2px;
  }
  .person-count { font-size: 13px;} 
  .btn-count-wrap { width: 180px;}

  .discount { 
    font-size: 12px;
    letter-spacing: 0;
    margin-top: 5px;
  }
  .discount-rate {
    font-size: 13px;
  }
  .price del { font-size: 11px; }


  /* 총 결제금액 */
  .total-price-wrap { 
    font-size: clamp(12px, 2.3vw, 20px);
    letter-spacing: 0px; 
    font-weight: 600;
  }
  .total-price {font-size: 18px; }
  .btn-next { 
    font-size: 15px;
    padding: 14px 16%;
  }

/* ===== 객실 선택 상태 시각화 ===== */

/* 카드 기본 */
#room-select-list .room-list > li{
  position: relative;
  border: 1px solid #e5e7eb;       /* 연한 테두리 */
  border-radius: 14px;
  transition: box-shadow .2s ease, border-color .2s ease, transform .15s ease;
  overflow: hidden;
  gap: 5px;
  padding: 12px;
}

/* 선택 전 인원영역 숨김 */
#room-select-list .room-list > li .person-count{
  display: none;
}

/* 선택됨: 카드 강조 + 인원영역 노출 */
#room-select-list .room-list > li.selected{
  border-color: var(--main-brown);           /* 파란 테두리 */
  box-shadow: 0 8px 24px rgba(37,99,235,.15);
  transform: translateY(-2px);
  background: #f8fbff;
}
#room-select-list .room-list > li.selected .person-count{
  display: block;
}

  /* 기본: 인원 영역 숨김 */
  #room-select-list .room-list > li .person-count {
    display: none !important;
  }

  /* 선택된 카드: 강조 + 인원 영역 노출 */
  #room-select-list .room-list > li.selected {
    outline: 3px solid var(--main-brown) !important;
    background: #f0f7ff !important;
    box-shadow: 0 8px 24px rgba(37,99,235,.15) !important;
  }
  #room-select-list .room-list > li.selected .person-count {
    display: block !important;
  }

  /* 버튼도 반전 */
  #room-select-list .room-list > li.selected .btn-select {
    background: var(--main-brown) !important;
    border-color: var(--main-brown) !important;
    color: #fff !important;
  }



  /* 예약완료 카드 흐리게 (선택 불가 표시) */
  #room-select-list .room-list > li.soldout {
    opacity: .6 !important;
    filter: grayscale(.1);
  }


  
}
  /* 데스크톱(필요한 기준으로 조정 가능)에서도 강제 */
  @media (min-width: 768px) {
    #room-select-list .room-list > li .person-count {
      display: none !important;
    }
    #room-select-list .room-list > li.selected .person-count {
      display: block !important;
    }
    #room-select-list .room-list > li.selected {
      outline: 3px solid var(--main-brown) !important;
      background: #f0f7ff !important;
      box-shadow: 0 8px 24px rgba(37,99,235,.15) !important;
    }
    #room-select-list .room-list > li.selected .btn-select {
      background: var(--main-brown) !important;
      border-color: var(--main-brown) !important;
      color: #fff !important;
    }
  }

@media(max-width:500px){
  .calendar-header { text-align: left;}
  .calendar-header p { 
    padding-left: 20px;
    font-size: 13px;
  }
  .calendar-close { right: 20px;}
}
@media(max-width:380px){
  .date-info .date > span { font-size: 12px;}
  .room-image {
        width: 115px;
    }
  .total-price {
    font-size: 16px;
    margin-top: 10px; 
  }
  .btn-next { 
    padding: 14px 0;
    width: 135px; 
  }
}


