/* ================== 기본 구조 ================== */
#wrap {
  width: 100%;
  margin: 0 auto;
  position: relative;
}
#wrapper {
  max-width: 1920px;
  margin: auto;
  min-width: 1200px;
}
#body_layout {
  position: relative;
  margin-top: 0px;
  min-height: 800px;
}
.i_head_title {
  width: 100%;
}

.bg_h1 {
  background: #001d1e url(../../images/home/bg_h_04.png) no-repeat;
}

.bg_h2 {
  background: #00253b url(../../images/home/bg_h_02.png) no-repeat;
}

.bg_h3 {
  background: #004a84 url(../../images/home/bg_h_03.png) no-repeat;
}

.bg_h4 {
  background: #0085ca url(../../images/home/bg_h_01.png) no-repeat;
}

.ht_wrap {
  max-width: 1400px;
  margin: auto;
  padding: 70px 0;
  text-align: center;
}
.ht_wrap .p_nm {
  color: #fff;
  font-weight: 700;
  font-size: 36px;
  line-height: 1;
  margin-bottom: 15px;
}
.ht_wrap .pj_n {
  color: #fff;
  font-family: "S-CoreDream-3Light";
  font-size: 16px;
  line-height: 1;
  letter-spacing: 2px;
  opacity: 0.7;
}

/*서브*/
#contents {
  display: block;
  margin: 60px 0;
}
.wd_1400 {
  max-width: 1400px;
  margin: 0 auto;
}
.sub_top .page_title {
  font-family: "GmarketSansMedium";
  text-align: center;
  color: #212121;
  font-size: 42px;
  line-height: 1;
  padding: 0 0 40px;
  margin: 12px 0px 0;
  letter-spacing: -0.5px;
}

/*Contents*/
.contents_wrap {
  width: 100%;

  margin: 0 auto;
  max-width: 1400px;
}

/* ================== 뉴스/텍스트랩 ================== */
.notice_title {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px 10px;
  font-size: 36px;

  color: #fff;
}
.notice_card_wrap {
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}

.notice_list {
  background: transparent;
  border: 2px solid #fff;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  transition: 0.25s;
}

.notice_list a {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  padding: 20px;
  text-decoration: none;
  color: #fff;
}

.notice_list:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.n_cat {
  font-size: 14px;
  color: #1f68c6;
  border-radius: 20px;
  border: 1px solid #e2e5e6;
  padding: 4px 14px;
  background: #fff;
  text-align: center;
  margin-bottom: 8px;
  display: inline-block;
}

.n_title {
  font-size: 16px;
  line-height: 1.4;
  font-family: S-CoreDream-5Medium;
  margin-bottom: 20px;
}

.n_date {
  font-size: 14px;
  color: #fff;
  text-align: right;
}

/*스크롤*/
.scroll-indicator {
  margin-top: 20px; /* 배너와 간격 */
  width: 100%;
  text-align: center;
  margin-bottom: 20px; /* 배너와 간격 */
  cursor: pointer;
}

.scroll-indicator img {
  width: 38px; /* 이미지 크기 조절 */
  animation: bounce 2.5s infinite;
}

@keyframes bounce {
  0%,
  20%,
  50%,
  80%,
  100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(10px);
  }
  60% {
    transform: translateY(5px);
  }
}

/* ================== 시설 안내 ================== */

.ex_recommend {
  width: 100%;
  margin: 0 auto;
  padding-top: 20px;
  padding-bottom: 50px; /* 하단 여백 */
  box-sizing: border-box;
}

/* 타이틀 영역 */
.ex_tit {
  width: 100%;
  background: #1f68c6;
  border-radius: 15px 15px 0 0;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 35px;
  height: 65px;
  box-sizing: border-box;
}

.ex_text {
  font-size: 20px;

  letter-spacing: -1px;
}

.ex_more a {
  color: #fff;

  display: flex;
  align-items: center;
}

.ex_more img {
  margin-left: 5px;
}

/* 리스트 영역 */

.ex_list ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.ex_list ul li {
  float: none; /* float 제거 */
  display: block; /* 기본 블록 */
  text-align: center;
}

.ex_photo img {
  width: 115px;
  height: 115px;
  border-radius: 50%;
  margin: 50px auto 15px;
}

.ex_key {
  display: flex;
  justify-content: center;
  gap: 5px;
}

.ex_name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 5px;
}

.ex_des {
  font-size: 14px;
  color: #2c2c2c;
  margin-bottom: 16px;
}

.keyword {
  font-size: 14px;
  color: #1f68c6;
  font-weight: 600;
  border-radius: 20px;
  border: 1px solid #e2e5e6;
  padding: 4px 14px;
  background: #fff;
  text-align: center;
}

.history_view {
  width: 164px;
  height: 35px;
  border-radius: 4px;
  background: #2f4055;
  color: #fff;
  cursor: pointer;
  font-size: 15px;
  margin-top: 15px;
  margin-bottom: 50px;
}

.history_view:hover {
  background: #4b5b6e;
  transition: all 0.3s;
}
/*메인슬라이더*/
.ex_list {
  width: 100%;
  height: auto;
  padding: 0 125px;
  background: #fff;
  border-radius: 0 0 15px 15px;
  border-left: 1px solid #eeeeee;
  border-right: 1px solid #eeeeee;
  border-bottom: 1px solid #eeeeee;
  box-shadow: 0 0 15px rgb(0 0 0 / 8%);
  position: relative;
}
.ex_list .bx-controls-direction {
  width: 100%;
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  transform: translateY(-50%);
}
.ex_list .bx-controls-direction a {
  display: block;
  width: 35px;
  height: 69px;
  background-repeat: no-repeat;
  text-indent: -9999px;
}
.ex_list .bx-controls-direction .bx-prev {
  background-image: url(../../images/home/left_bt.png);
  position: absolute;
  top: -40px;
  left: 40px;
  width: 50px;
  height: 50px;
}
.ex_list .bx-controls-direction .bx-next {
  background-image: url(../../images/home/right_bt.png);
  position: absolute;
  top: -40px;
  right: 40px;
  width: 50px;
  height: 50px;
}
/* ================== 메인 메뉴 ================== */
.main_menu {
  display: flex; /* float 대신 flex 사용 */
  justify-content: space-between;
  width: 100%;
  border: 1px solid #c9c9c9;
  border-radius: 13px;
  padding: 0;
}

.main_menu ul {
  display: flex;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

.main_menu li {
  flex: 1; /* 세 메뉴 동일 비율 */
  position: relative; /* 내부 절대 위치 기준 */
  text-align: left;
  height: 80px;
  border-right: 1px solid #c9c9c9;
}

.main_menu li:last-child {
  border-right: none; /* 마지막 메뉴는 border 제거 */
}

.menu_img {
  position: absolute;
  top: 20px;
  left: 60px;
  width: 40px; /* 필요시 크기 조정 */
  height: 40px;
}

.menu_name {
  position: absolute;
  top: 30px;
  left: 150px;
  font-size: 20px;
  color: #222;
}

.menu_more {
  position: absolute;
  top: 35px;
  right: 50px;
  width: 20px; /* 필요시 크기 조정 */
  height: auto;
}
/*서브메뉴*/
.sub_tab_menu {
  width: 100%;
  border-bottom: 1px solid #e5e5e5;
  background: #f9f9f9;
}

.sub_tab_menu ul {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  gap: 30px;
  list-style: none;
  height: 60px;
  align-items: center;
}

.sub_tab_menu li a {
  display: block;
  padding: 10px 0;
  font-size: 16px;
  color: #444;
  text-decoration: none;
  position: relative;
}

/* 현재 선택된 메뉴 */
.sub_tab_menu li.on a {
  font-weight: 700;
  color: #0068b7; /* 네 기본 포인트 컬러 */
}

/* 밑줄 */
.sub_tab_menu li.on a::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 3px;
  background: #0068b7;
  border-radius: 2px;
}
/*센터소개*/
.center_intro {
  margin-bottom: 90px;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.center_intro ul {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 50px;
}

.center_intro ul:after {
  content: "";
  display: block;
  clear: both;
}

.center_intro li {
  float: left;
}

.center_intro .intro_img {
  position: relative;
  flex: 1 1 48%;
  width: calc((100% - 2px) / 2);
}

.center_intro .intro_img img {
  width: 100%;
  height: auto;
}

.center_intro .intro_des {
  position: relative;
  width: calc((100% - 150px) / 2);
  flex: 1 1 48%;
}

.intro_sub {
  color: #1f68c6;
  font-weight: 600;
  font-size: 20px;
  margin-bottom: 13px;
}

.intro_sub1 {
  color: #1f68c6;
  font-weight: 600;
  font-size: 16px;
  margin-bottom: 13px;
}

.intro_des h2 {
  margin-top: 10px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #dcdcdc;
}

.intro_txt1 {
  margin-bottom: 35px;
}

.i_text {
  font-size: 17px;
  color: #343434;
  font-weight: 400;
}

.intro_txt2 .i_text {
  margin-bottom: 10px;
}

.intro_txt3 {
  color: #848484;
  font-size: 15px;
  line-height: 22px;
  padding-left: 10px;
}

/* 준비중 안내 */
.ready-wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 80px 0;
}

/* 흰색 카드 스타일 */
.ready-box {
  text-align: center;
  padding: 60px 40px;
  border: 1px solid #ddd;
  border-radius: 20px;
  max-width: 600px;
  width: 100%;
  background: #fff;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

/* 타이틀 */
.ready-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 20px;
}

/* 설명 */
.ready-desc {
  font-size: 18px;
  color: #666;
  line-height: 1.6;
}
/*주요기능*/
.consult {
  display: flex;
  margin-bottom: 50px;
}

.consult h2 {
  margin-right: 30px;
  width: 30%;
}

.consult_area ul {
  margin-top: 8px;
}

.consult_area ul:after {
  content: "";
  display: block;
  clear: both;
}

.consult_area li {
  float: left;
  width: calc((100% - 60px) / 2);
  height: 400px;
  border-top: 2px solid #0068c9;
  border-bottom: 1px solid #dcdcdc;
  text-align: center;
  float: left;
  margin-bottom: 40px;
}

.consult_area li h3 {
  background: #fbfbfb;
  border-bottom: 1px solid #dcdcdc;
  padding: 22px 0;
}
.consult_area li img {
  width: 80%;
  height: auto;
}
.consult_area li p {
  /*padding: 28px 0 20px;*/
  padding: 15px 0 0;
  color: #797979;
  font-weight: 300;
}

.consult_list li {
  display: flex;
  gap: 40px;
  padding: 32px 0;
  border-bottom: 1px solid #e5e7eb;
}
.consult_list li:last-child {
  border-bottom: none;
}
.thumb {
  flex: 0 0 340px;
}

.thumb img {
  width: 100%;
  height: 220px;
  border-radius: 16px;
}

.thu-cont {
  flex: 1;
}

.thu-num {
  display: block;
  color: var(--brand);
  font-weight: 700;
  margin-bottom: 10px;
}

.thu-cont h3 {
  margin: 8px 0 12px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
  margin-bottom: 10px;
}

.thu-cont > p {
  position: relative;
  padding-left: 16px;
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.7;
  color: #4b5563;
}
.thu-cont > p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 4px;
  height: calc(100% - 8px);
  border-radius: 4px;
  background: var(--brand);
}
.service_item {
  margin-bottom: 10px;
}
.service_item strong {
  display: block;
  font-size: 17px;
  margin-bottom: 6px;
}
.service_item p {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
  color: #4b5563;
  letter-spacing: -0.02em;
}

/*신청절차*/
.step {
  width: 100%;
  margin: 0 auto;
  max-width: 1400px;
  margin-bottom: 90px;
}
.apply_step ul {
  display: flex;
  justify-content: center; /* 가운데 정렬 */
  align-items: flex-start;

  padding: 0;
  margin: 0 auto;
  list-style: none;
}
.apply_step ul:after {
  content: "";
  display: block;
  clear: both;
}

.apply_step li {
  width: 13%;
  height: 250px;
  border: 1px solid #dcdcdc;
  border-right: none;
  text-align: center;
  position: relative;
  padding: 120px 0 0;
  float: left;

  background: #f7f8fa;
  border-radius: 12px;

  position: relative;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05);
}

.procedure-intro {
  max-width: 1400px;
  margin: 0 auto 50px;
  text-align: center;
}

.procedure-intro h2 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 15px;
}

.procedure-intro p {
  font-size: 16px;
  color: #666;
  line-height: 1.6;
}

/* 단계 리스트 */
.apply_step ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  padding: 0;
  margin: 0 auto;
  list-style: none;
}

.apply_step li {
  flex: 0 0 calc(20% - 16px); /* 5단계 기준 */
  background: #f9f9f9;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  position: relative;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

.apply_step li img {
  max-width: 80px;
  margin-bottom: 15px;
}

.step_tit {
  color: #0068c9;
  font-weight: 600;
  margin-bottom: 5px;
}

.step_name {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
}

.step_des {
  font-size: 14px;
  color: #444;
  line-height: 1.4;
}

/* 화살표 */
.step_arrow img {
  position: absolute;
  right: -15px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: auto;
}
.step_download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  margin-top: 15px;
  padding: 5px 18px;

  border: 1px solid #d9e4f1;
  border-radius: 999px;

  background: #fff;
  color: #0068c9;

  font-size: 12px;
  font-weight: 600;

  text-decoration: none;
  transition: all 0.25s ease;
}

.step_download:hover {
  background: #0068c9;
  border-color: #0068c9;
  color: #fff;
  transform: translateY(-2px);
}

/*검색*/
.search {
  position: relative;
  float: right;
  padding-bottom: 30px;
  max-width: 100%;
}

/* 검색 input */
.input_search {
  width: 100%;
  max-width: 550px;
  height: 57px;
  border: 1px solid #c1c1c1;
  border-radius: 30px;
  font-size: 17px;
  padding: 0 70px 0 30px;
  box-sizing: border-box;
  display: block; /* ⭐ 버튼 위치 기준을 명확하게 하기 위해 필요 */
}

/* 검색 버튼 */
.search_bt {
  background: none;
  vertical-align: middle;
  position: absolute;
  top: 20%; /* 시각적 중앙 맞춤 */
  right: 30px;
  cursor: pointer;
}
/* placeholder 색상 */
.input_search::placeholder {
  color: #aeaeae;
}

.sum {
  font-size: 20px;
  font-weight: 600;
  color: #0068c9;
}
/*시설예약*/
.expert_sub {
  justify-content: center;
  gap: 20px;
  margin: 0 auto;
  padding-top: 90px;
}

.expert_list_sub {
  width: 100%;
  margin-bottom: 45px;
}
.expert_list_sub ul {
  display: flex; /* flex 컨테이너 */
  flex-wrap: wrap; /* 줄 바꿈 허용 */
  justify-content: flex-start; /* 왼쪽 정렬, 가운데는 center */
  gap: 20px; /* 카드 간 간격 */
  padding: 0;
  margin: 0;
  list-style: none;
}
/* 개별 카드 */
.expert_list_sub li {
  flex: 0 0 calc((100% - 80px) / 5); /* 4개씩 배치, gap 20px 고려 */
  padding: 40px 0 20px;
  background: #fafcff;
  border: 1px solid #e6e6e6;
  border-radius: 15px;
  text-align: center;
  box-sizing: border-box; /* padding 포함 */
}

/* 사진 */
.ex_photo_sub {
  width: 115px;
  height: 114px;
  border-radius: 100%;
  margin: 0 auto 15px;
}

.ex_photo_sub img {
  width: 115px;
  height: 114px;
  border-radius: 100%;
}

/* 이름/설명 */
.ex_name_sub {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 1px;
}

.ex_des_sub {
  font-size: 14px;
  color: #2c2c2c;
  letter-spacing: -1px;
  margin-bottom: 16px;
}

/* 키워드 */
.ex_key_sub {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.keyword_sub {
  font-size: 12px;
  color: #1f68c6;
  background: #fff;
  font-weight: 600;
  text-align: center;
  border-radius: 20px;
  border: 1px solid #e2e5e6;
  padding: 4px 14px;
}

/* 버튼 */
.history_view_sub {
  width: 164px;
  height: 35px;
  border-radius: 4px;
  background: #2f4055;
  color: #fff;
  cursor: pointer;
  margin-top: 24px;
  font-size: 15px;
  transition: all 0.3s;
}

.history_view_sub:hover {
  background: #4b5b6e;
}
/*시설예약-뷰페이지*/
.pro {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 120px;
}
.pro_left {
  flex: 1;
  min-width: 600px;
}
.profile {
  display: flex;
  gap: 30px;
  margin-bottom: 20px;
}
.pro_photo img {
  width: 115px;
  height: 114px;
  border-radius: 50%;
}
.pro_des {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pro_name {
  font-size: 24px;
}
.pro_keyword {
  font-size: 16px;
}
.line {
  width: 100%;
  height: 1px;
  background: #e8e8e8;
  margin-bottom: 35px;
}
.career ul {
  display: block; /* flex 제거 */
  padding: 0;
  margin: 0;
}
.career .c_txt {
  display: block; /* 가로가 아닌 블록 */
  margin-bottom: 55px; /* 항목 간 간격 */
}
.c_tit {
  display: block;
  font-size: 20px;

  margin-bottom: 10px; /* 제목과 내용 간격 */
}
.c_des {
  display: block;
  font-size: 16px;
}
.c_txt p {
  margin-bottom: 8px;
}
.ex_keyword p {
  display: inline-block;
  margin-right: 8px;
}
.pro_right {
  flex: 0 0 400px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.pro_intro {
  border: 1px solid #e6e6e6;
  border-radius: 7px;
  padding: 40px 30px 50px;
  box-shadow: 0 5px 25px rgba(0, 0, 0, 0.08);
}
.pro_intro h3 {
  margin-bottom: 10px;
}
.pro_intro .intro_text {
  font-size: 16px;

  margin-bottom: 10px;
}
.counsel_apply {
  width: 100%;
  height: 60px;
  background: #2f4055;
  border-radius: 3px;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}
.counsel_apply:hover {
  background: #4b5b6e;
}
.similar_expert h3 {
  margin-bottom: 10px;
}
.similar_list ul {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.similar_list li {
  display: flex;
  padding: 30px;
  position: relative;
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 7px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.expert_bt {
  text-align: center;
}
.white-bt {
  width: 150px;
  height: 65px;
  background: #fff;
  border: 1px solid #000;
  font-size: 20px;
  margin-right: 3px;
  cursor: pointer;
}

/*시설안내*/
.facility-list {
  display: flex;
  flex-wrap: wrap; /* 여러 줄로 자동 줄바꿈 */
  gap: 20px; /* 시설 간 간격 */
  margin: 0 auto;
  justify-content: flex-start;
}

/* 한 시설 박스: 한 줄에 두 개 */
.facility-view {
  /*flex: 0 0 calc(50% - 20px);  두 개씩 배치, 간격 빼기 */
  flex: 0 0 calc((100% - 40px) / 3); /* 3개씩 배치, gap 20px 두 개 고려 */
  display: flex;
  flex-direction: column; /* 이미지+설명 세로 배치 */
  margin-bottom: 30px;
  /* 카드 스타일 추가 */
  border: 1px solid #ddd;
  border-radius: 15px;
  background: #fff;
  padding: 15px; /* 안쪽 여백 추가, 필요 시 */
  max-width: 500px; /* 카드 최대 너비 제한 */
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05); /* 선택 사항: 살짝 그림자 */
}

/* 이미지 영역: 큰 이미지 + 작은 이미지 가로 */
.img-area {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
  width: 100%;
}

.big-img {
  flex: 1; /* 남는 영역 차지 */
}

.big-img img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
}

/* 설명 영역 */
.desc-area {
  width: 100%;
  margin-top: 10px;
}

.desc-area h2 {
  font-size: 24px;

  margin-bottom: 5px;
  text-align: center;
}

.desc-area .desc {
  margin-bottom: 20px;
  color: #666;
  line-height: 1.6;
  font-size: 14px;

  text-align: center;
  letter-spacing: -1px;
}
.desc-area .info {
  list-style: none;
  padding: 0;
  margin: 0;
}
.desc-area .info li {
  display: flex;
  justify-content: flex-start; /* 왼쪽 정렬 */
  gap: 10px; /* 항목 사이 간격 */
  margin-bottom: 8px;
  font-size: 14px;
  color: #444;
}

.desc-area strong {
  width: 80px; /* "위치 :", "이용시간 :" 등 항목 이름 일정 폭 */
  flex-shrink: 0; /* 폭 고정 */
  color: #0068b7;
}
/*신청절차*/
.procedure-wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 40px 20px; /* 상하 여백, 좌우 패딩 */
  background: #f7f8fa; /* 선택 사항: 배경색으로 구분 */
  border-radius: 15px;
  margin-bottom: 50px;
}

/* 안내 카드 */
.procedure-box {
  text-align: center;
}

/* 타이틀 */
.procedure-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #0068b7;
}

/* 설명 */
.procedure-desc {
  font-size: 16px;
  color: #555;
  line-height: 1.6;
}
/*시설예약*/
.reserve {
  width: 100%;
  margin: 0 auto;
}
/* STEP 영역 기본 */
.reserve_step {
  margin: 0;
}

.reserve_step ul {
  overflow: hidden;
  margin: 0;
  padding: 0;
  list-style: none;
}

.reserve_step li {
  float: left;
  width: 33.33%;
  height: 86px;
  line-height: 86px; /* li 안 텍스트 수직 중앙 */
  background: #fff;
  color: #999;
  font-size: 18px;
  text-align: center;
  border: 1px solid #dcdcdc;
  border-right: none;
  box-sizing: border-box;
}

.reserve_step li:last-child {
  border-right: 1px solid #dcdcdc;
}

.reserve_step .step_on {
  background: #1f68c6;
  color: #fff;
}
.counsel_date_wrapper {
  width: 100%;
  margin: 20px 0; /* 상하 간격 */
}
.counsel_tit {
  padding: 15px 20px;
  background: #f7f9fb;
  border-radius: 10px;

  font-size: 20px;
}
.reserve_bt {
  text-align: right;
  margin-top: 30px;
  margin-bottom: 90px;
}
.reserve_content {
  display: flex;
  gap: 30px;
  margin-top: 20px;
}
.cal {
  width: 45%;
  height: auto;
  background: #fff;
  border-radius: 0 50px 0 0;
  border: 1px solid #dcdcdc;
  padding: 30px;
  margin: 0;
}

.rs_notice ul {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 10px;
}

.rs_notice ul:after {
  content: "";
  display: block;
  clear: both;
}

.rs_notice li {
  font-size: 15px;
  float: left;
  margin-right: 10px;
}

.time {
  position: relative; /* absolute 제거 */
  top: 0;
  right: 0;
  width: 50%;
}

.counsel_date {
  border-top: 2px solid #000;
  border-bottom: 1px solid #dcdcdc;
  padding: 30px 0 30px 20px;
}

.counsel_date h3 {
  font-size: 19px;
  color: #222222;
}

.counsel_date h3 span {
  font-weight: 200;
  font-size: 17px;
  padding: 0 0 0 40px;
  color: #222222;
}

.time_select {
  padding: 30px 0 0 20px;
}

.time_select h3 {
  margin-bottom: 20px;
}

.time_select ul:after {
  content: "";
  display: block;
  clear: both;
}

.time_select li {
  width: 49.2%;
  height: 66px;
  padding: 19px 0;
  border: 1px solid #dcdcdc;
  border-radius: 8px;
  background: #fff;
  margin: 0 5px 5px 0;
  font-size: 17px;
  color: #222222;
  float: left;
  text-align: center;
  cursor: pointer;
}

.time_select li input[type="checkbox"] {
  display: none;
}

.time_select li label {
  display: block;
  cursor: pointer;
}

.time_select li label span {
  width: 332px;
  height: 66px;
}

.time_select .time_pos {
  background: #fff;
}

.time_select .on {
  border: 1px solid #1f68c6;
  color: #1f68c6;
  font-weight: 500;
}

.time_select .time_impos {
  background: #f4f7f8;
  color: #cccccc;
  cursor: default;
}

.time_select .time_ms {
  text-align: center;
  padding: 150px 0;
  color: #999;
}
.reserve_bt {
  text-align: right;
  margin-bottom: 90px;
}
.blue-bt {
  width: 150px;
  height: 65px;
  background: #1f68c6;
  border: 1px solid #1f68c6;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}
/*시설예약 커스터마이징*/
/* 날짜 숫자 조정 */
.fc .day-num {
  font-size: 15px;
  font-weight: 600;
}

/* 예약 가능 / 불가 점 */
.dot-available,
.dot-blocked {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
}

.dot-available {
  background-color: #00af50;
}

.dot-blocked {
  background-color: #c7c7c7;
}

/* 기존 이벤트 배경 제거 */
.fc-daygrid-event {
  height: 0;
  padding: 0 !important;
  margin-top: 2px !important;
}

.fc-h-event {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* 클릭 가능한 영역 */
.fc-daygrid-day {
  cursor: pointer; /* 클릭 가능하게 */
}

.fc-daygrid-day.fc-day-today {
  background-color: #f4f4f4; /* 오늘 날짜 구분 */
}
/*시설예약정보입력*/
.reserve_info h3 {
  margin: 50px 0 15px;
  color: #222;
  letter-spacing: -0.8px;
}
.list_01 {
  width: 100%;
  border-top: 2px solid #000;
  border-collapse: collapse; /* 셀 간의 경계선 겹침 방지 */
}

.list_01 tr {
  border-bottom: 1px solid #dcdcdc;
}

.list_01 th {
  padding: 15px 15px 15px 23px;
  font-size: 19px;
  font-weight: 600;
  text-align: left;

  color: #000;
  background: #fbfbfb;
  border-right: 1px solid #dcdcdc;
}

.list_01 td {
  font-size: 17px;
  text-align: left;
  padding: 15px 15px 15px 23px;
  color: #666666;
  border-bottom: 1px solid #dcdcdc;
}

.list_01 td input {
  height: 52px;
  border: 1px solid #dcdcdc;
  padding-left: 20px;
  font-size: 16px;
}

.list_01 td input::placeholder {
  color: #b5b5b5;
  font-size: 16px;
  font-weight: 300;
}

.list_01 .counsel_text textarea {
  height: 400px;
  border: 1px solid #dcdcdc;
  font-size: 16px;
  padding: 20px;
}

.list_01 .counsel_text textarea::placeholder {
  color: #b5b5b5;
  font-size: 16px;
  font-weight: 300;
}

.dkblue-bt {
  width: 150px;
  height: 45px;
  background: #2f4055;
  border: 1px solid #2f4055;
  color: #fff;
  font-size: 16px;
  border-radius: 30px;
  cursor: pointer;
}

.dkblue-bt:hover {
  background: #939393;
  transition: all 0.3s;
}
/*시설예약완료*/
.reserve_complete h2 {
  margin-bottom: 5px;
  text-align: center;
  font-size: 30px;
}

.reserve_complete .re_com {
  margin: 50px 0 5px;
  text-align: center;
}

.r_des {
  text-align: center;
  margin-bottom: 50px;
  color: #8d8d8d;
  font-weight: 300;
}
.counsel_apply {
  width: 337px;
  height: 60px;
  background: #2f4055;
  border-radius: 3px;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}

.counsel_apply:hover {
  background: #4b5b6e;
  transition: all 0.3s;
}
.list_02 {
  width: 100%;
  border-top: 2px solid #000;
}

.list_02 tr {
  border-bottom: 1px solid #dcdcdc;
  cursor: pointer;
}

.list_02 th {
  width: 200px;
  font-size: 19px;
  font-weight: 600;
  text-align: center;
  padding: 25px 0 25px 0;
  color: #000;
  background: #fff;
  cursor: default;
}

.list_02 td {
  font-size: 17px;
  text-align: center;
  padding: 15px 0 15px 0;
  color: #666666;
  border-bottom: 1px solid #dcdcdc;
}

.list_02 tr:hover {
  background: #fbfbfb;
  transition: all 0.3s;
}

.list_02 tr:hover .r_view {
  color: #1f68c6;
  font-weight: 400;
  transition: all 0.3s;
}
.dblue-bt {
  width: 150px;
  height: 65px;
  background: #2f4055;
  border: 1px solid #2f4055;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}

.dblue-bt:hover {
  background: #4b5b6e;
  transition: all 0.3s;
}
/*공지사항*/
.notice2 {
  margin-bottom: 30px;
}

.notice2 tr {
  cursor: default;
}

.notice2 td {
  padding: 20px 0 20px 0;
  font-size: 16px;
  color: #222;
}

.notice2 .nh_tit {
  text-align: left;
}

.notice2 .n_tit {
  font-size: 17px;
  font-weight: 600;
  text-align: left;
}

.notice2 tr:hover .n_tit {
  color: #1f68c6;
  font-weight: 600;
  transition: all 0.3s;
  cursor: pointer;
}

.n_lv {
  width: 73px;
  height: 35px;
  padding: 3px 20px 5px;
  background: #1f68c6;
  border-radius: 5px;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
}

.notice_view th {
  text-align: left;
  padding: 30px 0 30px 20px;
}

.notice_view th:after {
  content: "";
  display: block;
  clear: both;
}

.no_date {
  float: right;
  margin-top: 2px;
  padding-right: 30px;
}

.notice_view .nview_tit {
  vertical-align: middle;
}

.notice_view td {
  font-size: 16px;
  text-align: left;
  cursor: default;
}
.notice_view .file_tit {
  font-weight: 600;
  color: #222;
  padding: 20px 0 20px 20px;
}

.notice_view tr:hover {
  background: none;
}

.notice_view tr td a:hover {
  color: #1f68c6;
}

.notice_view tr .f2 img {
  vertical-align: middle;
  margin-right: 3px;
}

.notice_view .write {
  font-weight: 600;
  color: #222;
  text-align: right;
  padding: 20px 30px 20px 0;
}

.notice_view .write .writer {
  margin-right: 20px;
}

.notice_view .write .write_name {
  font-weight: 300;
}

.notice_view tr .pre {
  width: 120px;
  padding: 20px 0 20px 20px;
}

.notice_view tr .nex {
  width: 120px;
  padding: 20px 0 20px 20px;
}
/* 카카오맵 크기 */
#map {
  width: 100%;
  height: 400px;
}

/* 문의처 및 주소 아이콘 */
.contact-info {
  margin-top: 20px;
}

.contact-info img {
  width: 30px;
  height: 30px;
  margin-right: 10px;
}

.contact-info .address,
.contact-info .phone {
  margin-bottom: 15px;
  font-size: 18px;
  color: #333;
}

.contact-info .address i,
.contact-info .phone i {
  color: #1f68c6;
}

/* 아이콘에 여백을 추가하여 텍스트와 구분 */
.contact-info-icon {
  vertical-align: middle;
}
/*사이트맵*/
.horizontal-sitemap {
  padding: 60px 20px;
  background: #f0f0f0;
}

.horizontal-sitemap .main-menu {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  list-style: none;
  flex-wrap: wrap; /* 반응형을 위해 wrap 활성화 */
  padding: 0;
  margin: 0;
}

.horizontal-sitemap .main-menu > li {
  flex: 1;
  min-width: 250px; /* 반응형 기준 */
  background: #fff;
  padding: 25px;
  border-radius: 10px;
  border: 1px solid #ddd;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

.horizontal-sitemap h3 {
  font-size: 18px;
  margin-bottom: 12px;
  color: #222;
  border-bottom: 2px solid #0072ff;
  padding-bottom: 6px;
}

.horizontal-sitemap .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.horizontal-sitemap .sub-menu li {
  margin: 8px 0;
}

.horizontal-sitemap .sub-menu li a {
  text-decoration: none;
  color: #444;
  transition: 0.2s;
}

.horizontal-sitemap .sub-menu li a:hover {
  color: #0072ff;
  padding-left: 3px;
}
.history-stair {
  position: relative;
  max-width: 1200px;
  height: 420px;
  margin: 120px auto;
}

/* 공통 카드 */
.stair {
  position: absolute;
  /*width: 260px;
  padding: 22px 26px;*/
  padding: 20px;
  background: #fff;
  border-top: 5px solid rgba(86, 129, 206);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  transform: translateY(80px);
  transition: transform 0.8s ease, opacity 0.8s ease;
  border-top-right-radius: 14px;
  border-bottom-left-radius: 14px;
  width: 300px; /* 🔥 폭 고정 */
  min-height: 160px;
  box-sizing: border-box;
  word-break: keep-all; /* 한글 줄바꿈 안정 */
}

/* 계단 위치 */
.step1 {
  left: 0;
  bottom: 0;
  transition-delay: 0s;
}
.step2 {
  left: 320px;
  bottom: 80px;
  transition-delay: 0.15s;
}
.step3 {
  left: 640px;
  bottom: 160px;
  transition-delay: 0.3s;
}
.step4 {
  left: 960px;
  bottom: 240px;
  transition-delay: 0.45s;
}

/* 🔥 활성화되면 위로 상승 */
.history-stair.active .stair {
  opacity: 1;
  transform: translateY(0);
}

/* 텍스트 */
.year {
  font-size: 22px;
  font-weight: 700;
  color: #1f68c6;
  margin-bottom: 8px;
  display: block;
}
/* 장식 이미지 공통 */
.deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

/* 왼쪽 상단 */
.deco-tl {
  top: -40px;
  left: -60px;
  width: 475px;
}

/* 오른쪽 하단 */
.deco-br {
  right: -60px;
  bottom: -40px;
  width: 530px;
}

/* 카드가 항상 위로 */
.stair {
  z-index: 2;
}
.history-list {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.history-list li {
  display: flex;
  align-items: flex-start;
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 8px;
  color: #333;
}

/* 월 표시 */
.history-list .month {
  min-width: 36px;
  font-size: 14px;
  font-weight: 700;
  color: #1f68c6;
  margin-right: 10px;
  text-align: center;
  flex-shrink: 0;
}

/* 월 뒤에 '월' 자동 표시 */
.history-list .month::after {
  content: "월";
  font-size: 12px;
  margin-left: 1px;
}
/*저작권처리방침*/
.copy_notice {
  padding: 28px 34px;
  background: #f6f9fc;
  border-left: 5px solid var(--brand);
  border-radius: 16px;
  margin-bottom: 20px;
}

.copy_notice h3 {
  font-size: 24px;
  margin-bottom: 12px;
}

.copy_notice p {
  color: #555;
  line-height: 1.8;
}
.copy_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.copy_item {
  padding: 30px;
  border: 1px solid #e7edf4;
  border-radius: 18px;
  background: #fff;
}

.copy_item span {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-weight: 700;
  margin-bottom: 18px;
}

.copy_item h4 {
  margin-bottom: 14px;
  font-size: 22px;
}

.copy_item p {
  color: #666;
  line-height: 1.6;
}
/*개인정보처리방침*/
.policy-section {
  padding: 15px 20px;
  border-bottom: 1px solid #e5e7eb;
}

.policy-section:last-child {
  border-bottom: 0;
}

.policy-section h3 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 700;
}
.policy-section p {
  margin-bottom: 5px;
  line-height: 1.4;
  color: #555;
  font-size: 14px;
}

.policy-download {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 30px;
  padding: 20px 24px;
  border: 1px solid #dce5ef;
  border-radius: 14px;
  background: #fafbfd;
}

.policy-download a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}
