@charset "UTF-8";

/* color */
:root {
  /* Primary */
  --color-main: #D4AF79;
  --color-main-light1: #EEEAE4;
  --color-main-light2: #ECDECB;
  --color-main-dark1: #A88A5E;
  --color-main-dark2: #6B5B43;
  --color-main-dark3: #352F26;

  /* Neutrals */
  --gray1: #F2F4F5;
  --gray2: #EBEEF0;
  --gray3: #E1E6E9;
  --gray4: #D4DADE;
  --gray5: #C3CED7;
  --gray6: #ACB6BE;
  --gray7: #83909A;
  --gray8: #626D76;
  --gray9: #434B52;

  /* Typography */
  --text-main: #1a1a1a;
  --text-body: #333333;

  --color-red: #ED3C24;
  --color-blue: #1A71E3;
}
.inner {
  padding: 0 24px;
}
@media (min-width:1441px) {
  .inner {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0;
  }
}

body {
  background: url(../images/ryokan_bg.png) no-repeat center center/cover;
  background-attachment: fixed;
}

#wrap {
  position: relative;
  min-width: 340px;
  font-size: 14px;
  font-weight: 400;
  font-family: "Lato", sans-serif;
  font-style: normal;
  color: var(--text-main);
}

.notScroll {
  overflow: hidden;
  width: 100%;
  height: 100%;
  touch-action:none;
}

.bold {font-weight: 700;}
.thin {font-weight: 200;}
.red {color: var(--color-red);}

/* 헤더 - 모바일우선 */
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 68px;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,0.4);
  z-index: 1000;
  transition: height 0.3s;
}
header .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
header .logo {}
header .logo a {}
header .logo a img {
  width: 140px;
}
header .logo a .whLogo {}
header .logo a .bkLogo {display: none;}
header .gnb {}
header .d1 {display: none;}
header .d1>li {}
header .d1tit {}
header .d2 {}
header .d2 li {}
header .d2 li a {}
header .gnb_util {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-right: 48px;
}
header .gnb_util .btn_reserve {
  padding: 8px 6px;
  font-size: 13px;
  letter-spacing: 1px;
  background-color: var(--color-main-dark2);
  border: 1px solid #fff;
}
header .gnb_util .lang {
  position: relative;
}
header .gnb_util .selLang {display: none;}
header .gnb_util .selLang .selected {}
header .gnb_util .selLang .material-symbols-outlined {}
header .gnb_util .langIcon {}
header .gnb_util .langIcon .material-symbols-outlined {
  font-size: 28px;
  font-weight: 300;
}
header .gnb_util .langList {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 10px;
  width: 80px;
  color: var(--text-main);
  background-color: rgba(255,255,255,0.8);
  border: 1px solid var(--gray6);
  border-top: none;
}
header .gnb_util .lang.open .langList {
  display: block;
}
header .gnb_util .langList li {
  padding: 3px 0;
  cursor: pointer;
}
header .btn_menu {
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  cursor: pointer;
}
header .btn_menu span {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
}
header .btn_menu span:nth-child(1) {
  top: 2px;
}
header .btn_menu span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
header .btn_menu span:nth-child(3) {
  bottom: 2px;
}

/* 스크롤시 */
header.scroll {
  background-color: #fff;
  border-bottom: 1px solid rgba(0,0,0,0.2);
}
header.scroll .logo a .keyLogo {display: none;}
header.scroll .logo a .bkLogo {display: block;}
header.scroll .gnb_util .btn_reserve {
  color: #fff;
  border: 1px solid #333;
}
header.scroll .gnb_util .langIcon .material-symbols-outlined {
  color: #333;
}
header.scroll .btn_menu span {
  background-color: #333;
}

@media (min-width:1025px) {
  header {
    height: 105px;
  }
  header .inner {
    justify-content: center;
  }
  header .logo {
    position: absolute;
    top: 50%;
    left: 24px;
    transform: translateY(-50%);
  }
  header .gnb {
    display: flex;
    align-items: center;
    gap: 24px; 
    height: 100%;
  }
  header .d1 {
    display: flex;
    align-items: center;
    gap: 24px;
    height: 100%;
    font-size: 16px;
  }
  header .d1>li {
    height: 100%;
  }
  header .d1tit {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    letter-spacing: 1px;
  }
  header .d1tit::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--color-main);
    opacity: 0;
    transition: all 0.3s;
  }
  header li:hover .d1tit::after {
    opacity: 1;
  }
  header .d2 {
    position: fixed;
    top: 105px;
    left: 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px;
    width: 100%;
    height: 60px;
    border-bottom: 1px solid rgba(255,255,255,0.4);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
  }
  header li:hover .d2 {
    opacity: 1;
    visibility: visible;
  }
  header .d2 li {
    height: 100%;
    line-height: 59px;
  }
  header .d2 li:hover {
    color: var(--color-main);
  }
  header .d2 li a {
    display: block;
    height: 100%;
  }
  header .gnb_util {
    padding-right: 0;
  }
  header .gnb_util .btn_reserve {
    padding: 8px 10px;
    font-size: 14px;
    transition: all 0.3s;
  }
  header .gnb_util .btn_reserve:hover {
    background-color: var(--color-main-dark3);
  }
  header .gnb_util .lang {}
  header .gnb_util .selLang {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100px;
    height: 32px;
    padding-left: 10px;
    border-bottom: 1px solid #fff;
    transition: all 0.3s;
  }
  header .gnb_util .lang:hover .selLang {
    color: var(--color-main);
    border-bottom-color: var(--color-main);
  }
  header .gnb_util .selLang .selected {}
  header .gnb_util .selLang .material-symbols-outlined {
    font-size: 16px;
  }
  header .gnb_util .langIcon {display: none;}
  header .gnb_util .langIcon .material-symbols-outlined {
    font-size: 28px;
  }
  header .gnb_util .langList {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 10px;
    width: 100px;
    color: var(--text-main);
    background-color: rgba(255,255,255,0.8);
    border: 1px solid var(--gray6);
    border-top: none;
  }
  header .gnb_util .langList li {
    padding: 3px 0;
  }
  header .gnb_util .langList li:hover {
    color: var(--color-main-dark2);
  }
  header .btn_menu {
    width: 28px;
    height: 28px;
  }
  
  /* 스크롤시 */
  header.scroll {
    height: 82px;
    color: var(--text-main);
  }
  header.scroll .d2 {
    top: 82px;
    background-color: #fff;
  }
  header.scroll .gnb_util .selLang {
    border-bottom-color: var(--text-main);
  }
}

@media (min-width:1201px) {
  header .logo a img {
    width: 166px;
  }
}

@media (min-width:1441px) {
  header .logo {
    left: 0;
  }
  header .logo a img {
    width: 198px;
  }
  header .gnb,
  header .d1,
  header .gnb_util {
    gap: 36px;
  }
  header .btn_menu {
    right: 0;
  }
}

/* 예약박스 */
#rev_box {
  position: fixed;
  top: -100%;
  left: 0;
  right: 0;
  width: 100%;
  font-size: 16px;
  background-color: rgba(255,255,255,0.86);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: all 0.6s ease-in-out;
}
#rev_box.open {
  top: 68px;
  opacity: 1;
  visibility: visible;
}
#rev_box .inner {
  padding: 0;
}
#rev_box .inner .row {
  height: 62px;
  padding: 0 24px;
  line-height: 62px;
  cursor: pointer;
  border-bottom: 1px solid rgba(51,51,51,0.2);
}
#rev_box .trigger_cal {}
#rev_box .trigger_room {}
#rev_box .trigger_guest {}
#rev_box .trigger_room span,
#rev_box .trigger_guest span {
  font-weight: 700;
}
#rev_box .btn_search {
  width: 100%;
  height: 56px;
  text-align: center;
  color: #fff;
  background-color: var(--color-main-dark1);
  cursor: pointer;
}

#rev_box .btn_revClose {
  position: absolute;
  top: calc(100% - 30px);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  cursor: pointer;
  border: 1px solid #fff;
  border-radius: 50%;
  transition: all 0.6s 0.5s;
}
#rev_box.open .btn_revClose {
  top: calc(100% + 10px);
}
#rev_box .btn_revClose .material-symbols-outlined {
  color: #fff;
  font-weight: 300;
}

/* 체크인아웃 선택 */
#calendarOverlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 2000;
}
/* 활성화 */
#calendarOverlay.open {
  display: block;
}
#calendarOverlay .overlay_content {
  position: relative;
  width: 100%;
  height: 100%;
  background-color: #fff;
  transform: translateY(20px);
  transition: transform 0.3s ease;
}
#calendarOverlay.open .overlay_content {
  transform: translateY(0);
}
#calendarOverlay .overlay_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 58px;
  margin-bottom: 40px;
  padding: 0 24px;
  border-bottom: 1px solid #E7E5E4;
}
#calendarOverlay .overlay_header h3 {
  font-size: 18px;
}
#calendarOverlay .overlay_header .material-symbols-outlined {
  font-size: 32px;
}
#calendarOverlay .calendar_body {
  padding: 0 24px;
}
#calendarOverlay .btn_done {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 48px);
  max-width: 640px;
  height: 50px;
  margin-top: 20px;
  font-size: 16px;
  color: #fff;
  background-color: var(--color-main-dark1);
  cursor: pointer;
}

/* 달력 커스텀 */
#calendarOverlay .flatpickr-calendar.inline {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  box-shadow: none;
}
#calendarOverlay .flatpickr-months {
  margin-bottom: 20px;
}
#calendarOverlay .flatpickr-current-month {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
#calendarOverlay .flatpickr-current-month .flatpickr-monthDropdown-months,
#calendarOverlay .flatpickr-current-month input.cur-year {
  font-size: 20px;
  font-weight: 600;
}
#calendarOverlay .flatpickr-rContainer,
#calendarOverlay .flatpickr-days {
  width: 100%;
}
#calendarOverlay .flatpickr-weekdays {
  margin-bottom: 10px;
}
#calendarOverlay span.flatpickr-weekday {
  width: calc(100% / 7);
}
#calendarOverlay .dayContainer {
  row-gap: 5px;
  width: 100%;
  max-width: none;
}
#calendarOverlay .rangeMode .flatpickr-day {
  width: calc(100% / 7);
  max-width: none;
  box-shadow: none;
}
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
  background: var(--color-main-dark1) !important;
  border-color: var(--color-main-dark1) !important;
  color: #fff !important;
}
.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day:hover, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:focus {
  background-color: rgba(58,38,23,0.1);
  box-shadow: none;
  border: none;
}

/* 객실/인원 */
.rev_counter {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  padding: 24px;
  z-index: 2000;
  background-color: #fff;
}
.rev_counter.open {
  display: block;
}
#guestOverlay {
  top: 192px;
}
#roomOverlay {
  top: 130px;
}
.rev_counter .count_row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  font-size: 16px;
}
.rev_counter .stepper {
  display: flex;
  align-items: center;
  gap: 15px;
}
.rev_counter .stepper button {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid #ddd;
  background: #f9f9f9;
  cursor: pointer;
}
/* 비활성화 상태 스타일 */
.rev_counter .stepper button:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.rev_counter .btn_done {
  width: 100%;
  height: 44px;
  margin-top: 20px;
  color: #fff;
  font-size: 16px;
  background-color: var(--color-main-dark1);
}

@media (min-width:769px) {
  #rev_box .inner {
    display: flex;
  }
  #rev_box .inner .row {
    padding: 0 12px;
  }
  #rev_box .inner .trigger_cal {
    width: 28%;
    border-right: 1px solid rgba(0,0,0,0.2);
  }
  #rev_box .inner .trigger_room {
    width: 20%;
    border-right: 1px solid rgba(0,0,0,0.2);
  }
  #rev_box .inner .trigger_guest {
    width: 32%;
  }
  #rev_box .btn_search {
    width: 20%;
    height: 62px;
  }

  #calendarOverlay {
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 600px;
    height: auto;
    max-height: 80vh;
    text-align: center;
    overflow-y: scroll;
  }
  #calendarOverlay .btn_done {
    position: static;
    transform: translateX(0);
    margin: 40px auto 20px;
  }
  #calendarOverlay .overlay_header {
    margin-bottom: 30px;
  }

  .rev_counter {
    width: 60%;
  }
  #roomOverlay {
    left: 20%;
  }
  #guestOverlay {
    top: 130px;
    left: auto;
    right: 0;
  }

}

@media (min-width:1025px) {
  #rev_box {
    display: flex;
    align-items: center;
    gap: 30px;
  }
  #rev_box.open {
    top: 105px;
  }
  header.scroll + #rev_box.open {
    top: 82px;
  }
  #rev_box .inner {
    width: 90%;
    max-width: none;
    margin: 0;
  }
  #rev_box .inner .row {
    padding: 0 20px;
  }
  #rev_box .inner .trigger_cal {
    width: 28%;
  }
  #rev_box .inner .trigger_room {
    width: 24%;
  }
  #rev_box .inner .trigger_guest {
    width: 28%;
  }
  #rev_box .btn_revClose {
    position: static;
    border: none;
    transform: translateX(0);
  }
  #rev_box.open .btn_revClose .material-symbols-outlined {
    font-size: 36px;
    color: #333;
    font-weight: 200;
  }

  #calendarOverlay {
    top: 167px;
    left: 0;
    transform: translate(0,0);
    width: 25.2%;
    min-width: 380px;
    overflow-y: visible;
  }
  #roomOverlay {
    top: 167px;
    left: 25.2%;
    right: auto;
    width: 400px;
  }
  #guestOverlay {
    top: 167px;
    left: 46.8%;
    right: auto;
    width: 400px;
  }
  header.scroll ~ #calendarOverlay,
  header.scroll ~ #roomOverlay,
  header.scroll ~ #guestOverlay {
    top: 144px;
  }
}

/* 사이드메뉴 */
#sideM {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh;
  color: #fff;
  background: no-repeat center center/cover;
  background-image: linear-gradient( rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8) ), url(../images/sideM_bg.png);
  transition: all 0.3s;
  overflow-y: scroll;
  z-index: 3000;
}
#sideM.open {
  right: 0;
}
#sideM .inner {
  position: relative;
  z-index: 1;
}
#sideM .side_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 68px;
}

#sideM .lang {
  position: relative;
  width: 100px;
}
#sideM .lang .selLang {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 32px;
  padding-left: 10px;
  border-bottom: 1px solid #fff;
}
#sideM .lang .selLang .selected {
  font-size: 14px;
}
#sideM .lang .selLang .material-symbols-outlined {
  font-size: 16px;
}
#sideM .lang .langList {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 10px;
  width: 100px;
  color: var(--text-main);
  background-color: rgba(255,255,255,0.9);
  border: 1px solid var(--gray4);
  border-top: none;
}
#sideM .lang.open .langList {
  display: block;
}
#sideM .lang .langList li {
  padding: 3px 0;
  cursor: pointer;
}

#sideM .btn_sideClose {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  text-align: center;
  cursor: pointer;
}
#sideM .btn_sideClose .material-symbols-outlined {
  font-size: 32px;
  line-height: 24px;
}

#sideM .mGnb {
  margin-top: 50px;
}
#sideM .mGnb>li {
  font-size: 18px;
}
#sideM .mGnb li:first-child .d1tit {
  border-top: 1px solid rgba(255,255,255,0.4);
}
#sideM .mGnb .d1tit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 0;
  font-weight: bold;
  border-bottom: 1px solid rgba(255,255,255,0.4);
}
#sideM .mGnb .d1tit .material-symbols-outlined {
  font-size: 16px;
  transition: transform 0.3s;
}
#sideM .mGnb .d1tit.active .material-symbols-outlined {
  transform: rotate(180deg);
}
#sideM .mGnb .d2 {
  gap: 20px;
  max-height: 0;
  padding: 0 20px;
  overflow: hidden;
  transition: all 0.4s ease-out;
}
#sideM .mGnb .d1tit.active + .d2 {
  border-bottom: 1px solid rgba(255,255,255,0.4);
}
#sideM .mGnb .d2 li {
  margin: 20px 0;
}
#sideM .mGnb .d2 li a {}

#sideM .btn_myrev {
  display: block;
  width: 100%;
  max-width: 460px;
  padding: 12px;
  margin: 40px auto 20px;
  font-size: 18px;
  text-align: center;
  border: 1px solid #fff;
}

@media (min-width:1025px) {
  #sideM .side_header {
    height: 105px;
  }
  #sideM .btn_sideClose {
    width: 28px;
    height: 28px;
  }
  #sideM .btn_sideClose .material-symbols-outlined {
    font-size: 40px;
  }
  #sideM .lang:hover .selLang {
    color: var(--color-main);
    border-bottom-color: var(--color-main);
  }
  #sideM .lang .langList li {}
  #sideM .lang .langList li:hover {
    color: var(--color-main-dark1);
  }
  #sideM .mGnb {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 60px;
    margin-top: 100px;
    font-size: 20px;
  }
  #sideM .mGnb>li {
    width: 25%;
    padding-right: 20px;
  }
  #sideM .mGnb li:hover .d1tit {
    color: var(--color-main);
  }
  #sideM .mGnb .d1tit {
    font-size: 22px;
    border-bottom: none;
  }
  #sideM .mGnb li:first-child .d1tit {
    border-top: none;
  }
  #sideM .mGnb .d1tit .material-symbols-outlined {
    display: none;
  }
  #sideM .mGnb .d2 {
    max-height: none;
    padding: 0;
  }
  #sideM .mGnb .d2 li:hover {
    color: var(--color-main);
  }
  
  #sideM .btn_myrev {
    max-width: 320px;
    margin: 100px 0 0;
    transition: background-color 0.3s;
  }
  #sideM .btn_myrev:hover {
    background-color: var(--color-main-dark2);
  }
}

/* 푸터 */
footer {
  margin-top: 100px;
  padding: 40px 0 30px;
  color: #fff;
  font-size: 12px;
  background-color: var(--color-main-dark3);
}
footer .inner {}
footer .fCont {
  display: flex;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
}
footer .fLogo {
  margin-bottom: 20px;
}
footer .fLogo img {
  width: 110px;
}
footer .fTxt {
  text-align: center;
}
footer .fMenu {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-bottom: 12px;
}
footer .fMenu a {}
footer address {
  text-align: center;
  font-style: normal;
  line-height: 160%;
}
footer address .address {
  width: 100%;
  margin-bottom: 4px;
}
footer address .contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 16px;
}
footer address .contact p {}
footer address .contact p span {
  font-weight: 700;
}
footer address .contact p a {}
footer .social {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}
footer .social a {}
footer .social a img {
  width: 24px;
}
footer .copy {
  margin-top: 20px;
  padding-top: 30px;
  border-top: 1px solid rgba(255,255,255,0.4);
}

@media (min-width:769px) {
  footer .inner {
    position: relative;
  }
  footer .fCont {
    flex-direction: row;
    align-items: center;
  }
  footer .fLogo {
    margin-bottom: 0;
  }
  footer .fLogo img {
    width: 104px;
  }
  footer .fTxt {
    width: calc(100% - 140px);
    padding-left: 30px;
  }
  footer .fMenu {
    justify-content: flex-start;
    margin-bottom: 16px;
  }
  footer address {
    text-align: left;
  }
  footer address .contact {
    column-gap: 20px;
    justify-content: flex-start;
  }
  footer .social {
    position: absolute;
    top: -6px;
    right: 24px;
    gap: 18px;
    margin-top: 0;
    padding-left: 0;
  }
  footer .social a img {
    width: 28px;
  }
}

@media (min-width:1025px) {
  footer {
    margin-top: 130px;
    padding: 40px 0;
    font-size: 13px;
  }
  footer .fLogo img {
    width: 136px;
  }
  footer .fTxt {
    width: calc(100% - 160px);
    padding-left: 60px;
  }
  footer .fMenu {
    margin-bottom: 20px;
  }
  footer .copy {
    margin-top: 30px;
    padding-top: 40px;
    text-align: right;
  }
}

@media (min-width:1441px) {
  footer .social {
    right: 0;
  }
}












/* input layout */
.input-layout {}
.input-tr {
  position: relative;
  margin-bottom: 30px;
}
.input-tr:last-child {
  margin-bottom: 0;
}
.input-td {}
.input-tit {
  margin-bottom: 10px;
  font-size: 13px;
  color: var(--gray9);
}
.input-tit .essential {
  margin-left: 6px;
  line-height: 10px;
  color: var(--red-color);
}
.input-box, .select-box {
  width: 100%;
  height: 42px;
  border: 1px solid var(--gray6);
  border-radius: 4px;
}
.select-box {
  background: url(../images/arr_dropdown_g7.svg) no-repeat calc(100% - 10px) center/10px auto;
}
.input-box input,
.select-box select {
  width: 100%;
  height: 100%;
  padding: 0 10px;
  border-radius: 0;
  background: transparent;
  border: none;
}
.select-box select {
  color: var(--gray6);
  font-size: 14px;
}
.input-textarea {
  height: auto;
}
.input-textarea textarea {
  width: 100%;
  padding: 10px;
  line-height: 120%;
  font-size: 14px;
  background-color: transparent;
  border: none;
  border-radius: 0;
}
.select-box select.selected {
  color: var(--black-color);
}
.select-box select option {
  color: var(--black-color);
}
.input-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* 이름 */
.input-tr.name .input-td {
  margin-bottom: 30px;
}

/* 핸드폰번호 */
.input-tr.mobile .select-box {
  margin-bottom: 10px;
}

/* 카드 */
.input-tr.creditcard {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}
.input-tr.creditcard .card-number {
  margin-bottom: 30px;
}
.input-tr.creditcard .cvc {}
.input-tr.creditcard .nominator {
  margin-bottom: 30px;
}
.input-tr.creditcard .validity-period {}
.input-tr.creditcard .input-td:first-child {
  margin-right: 10px;
}
.input-tr.creditcard .bar {
  margin: 0 4px;
}
.input-noti {
  width: 100%;
  margin-top: 10px;
  font-size: 12px;
  color: var(--red-color);
  line-height: 120%;
}

/* 인증버튼포함*/
.verify-layout {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.verify-layout:last-child {
  margin-bottom: 0;
}
.verify-layout .input-box {
  width: 76%;
  max-width: 440px;
}
.btn-verify {
  width: 24%;
  max-width: 140px;
  color: var(--white-color);
  font-size: 13px;
  background-color: var(--key-color);
  border-radius: 4px;
}

/* disabled */
.input-box.disabled, .select-box.disabled {
  position: relative;
  min-height: 42px;
  color: var(--gray8);
  background-color: var(--gray1);
}
.input-box.disabled {
  height: auto;
}
.input-box.disabled input {
  display: none;
}
.input-box.disabled .save-txt {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  min-height: 42px;
  padding: 6px 10px;
  line-height: 130%;
  font-size: 14px;
} 
.select-box.disabled select {
  color: var(--black-color);
}

/* changeable */
.input-box.changeable input::placeholder,
.select-box.changeable select {
  color: var(--black-color);
}

/* 재전송 */
.btn-resend {
  position: absolute;
  top: 128px;
  right: 0;
  color: var(--blue-color);
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

/* error */
.error-message {display: none;}
.error .error-message {display: block;}
 .input-box.error,
 .select-box.error {
  border-color: var(--red-color);
}

.error-message {
  width: 100%;
  padding-left: 20px;
  margin-top: 10px;
  color: var(--red-color);
  font-size: 12px;
  line-height: 14px;
  background: url(../images/ico_error.svg) no-repeat left center;
  background-size: 14px auto;
}

@media (min-width:768px) {
  /* 이름 */
  .input-tr.name {
    display: flex;
  }
  .input-tr.name .input-td {
    width: 50%;
    margin-bottom: 0;
  }
  .input-tr.name .input-td:first-child {
    margin-right: 20px;
  }

  /* 핸드폰번호 */
  .input-tr.mobile .mobile-box {
    display: flex;
  }
  .input-tr.mobile .select-box {
    width: 30%;
    margin-bottom: 0;
    margin-right: 20px;
  }
  .input-tr.mobile .input-box {
    width: 70%;
  }

  /* 카드 */
  .input-tr.creditcard {
    flex-direction: row;
  }
  .input-tr.creditcard .card-number {
    width: calc(70% - 20px);
    margin-bottom: 0;
  }
  .input-tr.creditcard .cvc {
    width: 30%;
  }
  .input-tr.creditcard .nominator {
    width: 56%;
    margin-bottom: 0;
  }
  .input-tr.creditcard .validity-period {
    width: calc(44% - 20px);
  }
  .input-tr.creditcard .input-td:first-child {
    margin-right: 20px;
  }
  .input-tr.creditcard .bar {
    margin: 0 8px;
  }

  /* 인증버튼포함*/
  .verify-layout {
    gap: 20px;
  }
  .verify-layout .input-box {
    width: 440px;
  }
  .btn-verify {
    width: 140px;
  }
}

@media (min-width:992px) {
  .input-textarea {
    height: auto;
  }
  .input-box input,
  .select-box select {
    font-size: 15px;
  }
  .input-tit {
    margin-bottom: 10px;
    font-size: 14px;
  }
  .input-tr.creditcard .bar {
    margin: 0 12px;
  }
  .input-noti {
    font-size: 13px;
  }

  .btn-verify {
    font-size: 14px;
  }
  .btn-verify:hover {
    background-color: var(--keydark1-color);
  }
  
  .error-message {
    padding-left: 22px;
    font-size: 13px;
    background-size: 15px auto;
  }
}

/* 공통 상태박스 */
.statebox {
  display: inline-block;
  height: 17px;
  padding: 0 8px;
  font-size: 10px;
  line-height: 17px;
  color: var(--white-color);
  font-weight: 400;
  border-radius: 30px;
  vertical-align: middle;
}
.statebox.float-right {
  margin-left: 10px;
}
.statebox.float-left {
  margin-right: 10px;
}
.statebox.redbox {
  background-color: var(--red-color);
}
.statebox.bluebox {
  background-color: var(--blue-color);
}
.statebox.g8box {
  background-color: var(--gray8);
}
.statebox.greenbox {
  background-color: #0ABC83;
}
.statebox.deeppink {
  background-color: #DF2066;
}

@media (min-width:992px) {
  .statebox {
    height: 18px;
    font-size: 11px;
    line-height: 18px;
  }
}

/* 팝업 */
#layler-popup {
  position: fixed;
  top: calc(50% - 280px);
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 40px);
  max-width: 400px;
  box-shadow: 0px 4px 20px rgba(0,0,0,.1);
  z-index: 100;
}
#layler-popup.hidden {
  display: none;
}
#layler-popup .image {
  width: 100%;
  height: auto;
}
#layler-popup .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#layler-popup .pop-footer {
  display: flex;
}
#layler-popup .pop-footer button {
  width: 50%;
  height: 48px;
  font-size: 14px;
  text-align: center;
  background-color: #fff;
  cursor: pointer;
}
#layler-popup #day-close {
  border-right: 1px solid var(--gray6);
}

@media (min-width:460px) {
  #layler-popup .image {
    height: 500px;
  }
}

/* 지금결제/나중에결제 라디오 */
.radio-group {
  display: flex;
  gap: 40px;
  align-items: center;
}
.custom-radio {
  display: flex;
  align-items: center;
  position: relative;
  user-select: none;
  cursor: pointer;
}
.custom-radio input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
/* 커스텀 radio */
.radio-mark {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: #fff;
  border: 1px solid #d1d5db;
  border-radius: 50%;
  margin-right: 10px;
  transition: all 0.2s ease;
}
/* 체크되었을 때 */
.custom-radio input:checked ~ .radio-mark {
  border-color: var(--key-color);
  background-color: var(--key-color);
}
/* 체크되었을 때 안쪽 */
.radio-mark:after {
  content: "";
  position: absolute;
  display: none;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
}

/* 체크된 상태에서 안쪽 원 보이기 */
.custom-radio input:checked ~ .radio-mark:after {
  display: block;
}

/* 마우스 올렸을 때 살짝 강조 */
.custom-radio:hover .radio-mark {
  border-color: #918551;
}

/* 임시팝업 */
#popup {
  position: fixed;
  top: 100px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 40px);
  max-width: 500px;
  background-color: var(--color-main-dark3);
  z-index: 4000;
}
.popup-overlay {}
.popup-content {
  max-height: 550px;
  overflow-y: auto;
}
.popup-content .logo {
  padding-top: 20px;
  margin-bottom: 30px;
  text-align: center;
}
.popup-content .logo img {
  width: 100px;
}
.popup-content .text-group {
  padding: 0 20px;
  color: #fff;
  font-size: 14px;
}
.popup-content .text-group h3 {
  margin-bottom: 16px;
}
.popup-content .text-group p {
  line-height: 160%;
}
.popup-content .line {
  display: block;
  width: calc(100% - 60px);
  height: 1px;
  margin: 30px auto;
  background-color: var(--gray6);
}
#closeBtn {
  width: 100%;
  height: 50px;
  margin-top: 30px;
  color: #fff;
  font-size: 16px;
  background-color: var(--color-main-dark1);
  cursor: pointer;
}

@media (min-width:768px) {
  .popup-content .logo img {
    width: 130px;
  }
  .popup-content .text-group {
    padding: 0 30px;
    font-size: 15px;
  }
  #closeBtn {
    font-size: 18px;
  }
}

@media (min-width:1025px) {
  #popup {
    top: 180px;
  }
}