@charset "utf-8";

* {
  margin: 0;
  padding: 0;
}

/* 전체 슬라이더 컨테이너 */
.main_visual_slide {
  width: 100%;
  height: 100vh;
  /* 전체 화면 채우기 (원하면 고정 px로 변경 가능) */
  position: relative;
}

/* 각 슬라이드 */
.main_visual_slide .swiper-slide {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 !important;
}

/* 슬라이드 이미지 */
.main_visual_slide .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.1);

}

.main_visual_slide .swiper-slide-active img {
  animation: slowZoom 8s ease-out forwards;
}

@keyframes slowZoom {
  from {
    transform: scale(1.1);
  }

  to {
    transform: scale(1);
  }
}

/* 오버레이 텍스트 박스 */
.main_visual_slide .swiper-slide h2,
.main_visual_slide .swiper-slide p {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  text-align: left;
  z-index: 10;
  width: 90%;
  word-break: keep-all;
}

/* 제목 */
.main_visual_slide .swiper-slide h2 {
  top: 50%;
  transform: translate(-40%, -50%);
  /* 약간 위로 */
  color: #FFF;
  font-family: Pretendard;
  font-size: 56px;
  font-style: normal;
  font-weight: 700;
  line-height: 130%;
  /* 72.8px */
  letter-spacing: 1.12px;
}

/* 설명 */
.main_visual_slide .swiper-slide p {
  top: 50%;
  transform: translate(-40%, -300%);
  /* 약간 아래 */
  font-size: 22px;
  font-weight: 400;
  line-height: 1.4;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}


.main_visual_slide .swiper-slide h2 b {
  font-size: 32px;
  font-weight: 600;
}

@media(max-width:1024px) {
  .main_visual_slide {
    height: 80vw;
  }

  .main_visual_slide .swiper-slide h2 {
    font-size: 40px;
  }

  .main_visual_slide .swiper-slide h2 b {
    font-size: 20px;
  }
}

@media(max-width:768px) {
  .main_visual_slide {
    height: 80vw;
  }

  .main_visual_slide .swiper-slide h2 {
    font-size: 28px;
  }

  .main_visual_slide .swiper-slide h2 b {
    font: 12px;
  }
}

/* 사업소개 =============================================================================*/

.business_section {
  width: 100%;
  background: url('/img/business_section_bg.png') right center / cover no-repeat;
  display: flex;
  justify-content: center;
  padding: 60px 0;
  /* 240px → 60px로 줄이기 */
  align-items: center;
  /* 추가: 수직 중앙 정렬 */
  min-height: 100vh;
  /* 추가: 최소 높이 보장 */
}

.business_section .business_box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 60px;
}

/* 왼쪽 탭 */
.business_section .business_tabs {
  width: 320px;
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.business_section .business_tabs h2 {
  font-size: 48px;
  font-weight: 700;
  color: #171717;
  line-height: 1;
}

.business_section .tab_menu {
  display: flex;
  flex-direction: column;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.business_section .tab_menu li {
  padding: 12px 16px;
  border-radius: 4px;
  font-size: 24px;
  font-weight: 500;
  color: #5B5B5B;
  cursor: pointer;
  transition: 0.3s;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.business_section .tab_menu li.active {
  background: #444;
  color: #FAFAFA;
}

.business_section .tab_menu li.active img {
  filter: brightness(0) invert(1);
}

.business_section .tab_menu li:hover:not(.active) {
  background: #f3f3f3;
}

/* 오른쪽 콘텐츠 */
.business_section .business_contents {
  width: 880px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.business_section .tab_content {
  display: none;
  flex-direction: column;
  gap: 40px;
}

.business_section .tab_content.active {
  display: flex;
}

.business_section .img_box {
  width: 100%;
  height: 400px;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}

.business_section .img_box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.business_section .text_box {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: none;
  margin: 0;
  padding: 0;
}

.business_section .text_box h3 {
  font-size: 32px;
  font-weight: 500;
  color: #171717;
}

.business_section .text_box p {
  font-size: 18px;
  color: #444;
  line-height: 1.5;
}

.business_line {
  width: 1px;
  height: 100%;
  background: rgba(102, 102, 102, 0.3);
}

.business_section .btn_more {
  display: flex;
  width: 95px;
  height: 20px;
  justify-content: space-between;
  align-items: center;
  border-radius: 5px;
  border: 1px solid var(--GREY-600, #5B5B5B);
  transition: all 0.5s ease;
  padding: 10px 20px;
}

.business_section .btn_more img {
  filter: invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0%) contrast(100%);
}

.business_section .btn_more:hover img {
  filter: unset;
}

.business_section .btn_more span {
  color: var(--GREY-900, #171717);
  /* Label 1/Normal - Medium */
  font-family: Pretendard;
  font-size: 14px;
  font-style: normal;
  font-weight: 500;
  line-height: 100%;
  /* 14px */
  letter-spacing: 0.07px;
}

.business_section .btn_more:hover img {
  filter: brightness(0) invert(1);
}

.business_section .btn_more .arrow_icon {
  width: 24px;
  height: 24px;
  position: relative;
}

.business_section .btn_more .arrow_icon::after {
  content: "";
  position: absolute;
  left: 8.25px;
  top: 3.75px;
  width: 9px;
  height: 16.5px;
  background: #fff;
  transition: 0.3s;
}

.business_section .btn_more:hover {
  background: #000000;
}

.business_section .btn_more:hover span {
  color: #ffffff;
}

.business_section .btn_more:hover .arrow_icon::after {
  background: #000;
  transform: translateX(2px);
}


/* =============================
   ✅ 반응형
============================= */

/* 1400px ↓ */
@media (max-width:1400px) {
  .business_section {}

  .business_section .business_box {
    gap: 40px;
  }

  .business_section .business_tabs h2 {
    font-size: 42px;
  }

  .business_section .tab_menu li {
    font-size: 22px;
  }

  .business_section .business_contents {
    width: 760px;
  }

  .business_section .img_box {
    height: 360px;
  }
}

/* 1024px ↓ */
/* 1000px ↓ */
@media (max-width:1024px) {
  .business_section .business_box {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 20px;
  }

  .business_section .business_tabs {
    width: 100%;
    align-items: center;
    gap: 32px;
  }

  .business_section .business_tabs h2 {
    font-size: 40px;
  }

  .business_section .tab_menu {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    justify-items: center;
    width: 100%;
  }

  .business_section .tab_menu li {
    width: 80%;
    font-size: 20px;
    padding: 10px 14px;
    text-align: center;
    word-break: keep-all;
  }

  .business_section .business_contents {
    width: 100%;
  }

  .business_section .img_box {
    height: 340px;
  }

  .business_section .text_box h3 {
    font-size: 28px;
  }
}



/* 자세히보기 섹션 ========================================== */
.intro_section {
  width: 100%;
  height: 883px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  /* background: url('/img/intro_section_bg.png') center center / cover no-repeat; */
  overflow: hidden;
    position: relative;
}

.intro_section .left_box {
  width: 50%;
  position: relative;
  z-index: 1;
}

.intro_section .right_box {
  width: 50%;
  display: flex;
  justify-content: end;
  align-items: center;
  padding: 120px 80px;
  position: relative;
  z-index: 1;
}

.intro_section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url('/img/intro_section_bg.png') center center / cover no-repeat;
  transition: opacity 0.8s ease-in-out;
  z-index: 0;
}

.intro_section .text_wrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 40px;
}

.intro_section .text_group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.intro_section .text_group h2 {
  color: #fff;
  font-size: 32px;
  font-family: Pretendard;
  font-weight: 500;
  line-height: 1.3;
}

.intro_section .text_group p {
  color: #c7c7c7;
  font-size: 18px;
  font-family: Pretendard;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.09px;
}

.intro_section .btn_more {
  display: flex;
  width: 95px;
  height: 20px;
  justify-content: space-between;
  align-items: center;
  border-radius: 5px;
  border: 1px solid var(--GREY-600, #5B5B5B);
  transition: all 0.5s ease;
  padding: 10px 20px;
  background: rgba(0, 0, 0, 0.3);
}

.intro_section .btn_more img {
  filter: brightness(0) invert(1);
  transition: 0.3s;
}

.intro_section .btn_more:hover img {
  filter: unset;
}

.intro_section .btn_more span {
  color: #fff;
  font-size: 14px;
  font-family: Pretendard;
  font-weight: 500;
  letter-spacing: 0.07px;
}

.intro_section .btn_more .arrow_icon {
  width: 24px;
  height: 24px;
  position: relative;
}

.intro_section .btn_more .arrow_icon::after {
  content: "";
  position: absolute;
  left: 8.25px;
  top: 3.75px;
  width: 9px;
  height: 16.5px;
  background: #fff;
  transition: 0.3s;
}

.intro_section .btn_more:hover {
  background: #fff;
}

.intro_section .btn_more:hover span {
  color: #000;
}

.intro_section .btn_more:hover .arrow_icon::after {
  background: #000;
  transform: translateX(2px);
}

/* ==================================
       ✅ 반응형 설정
    ================================== */

/* 1400px ↓ */
@media (max-width:1400px) {
  .intro_section {
    height: auto;
    flex-direction: row;
    padding: 100px 0;
  }

  .intro_section .right_box {
    padding: 100px 60px;
  }

  .intro_section .text_group h2 {
    font-size: 28px;
  }

  .intro_section .text_group p {
    font-size: 17px;
  }
}

/* 1024px ↓ */
@media (max-width:1024px) {
  .intro_section {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    height: auto;
  }

  .intro_section .left_box {
    width: 100%;
    height: 300px;
    background-position: center top;
  }

  .intro_section .right_box {
    width: 100%;
    padding: 80px 40px;
    justify-content: center;
  }

  .intro_section .text_wrap {
    align-items: center;
  }

  .intro_section .text_group h2 {
    font-size: 40px;
  }

  .intro_section .text_group p {
    font-size: 20px;
    line-height: 1.6;
  }

  .intro_section .btn_more {
    margin: 0 auto;
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
  }
}

/* 768px ↓ */
@media (max-width:768px) {
  .intro_section .left_box {
    height: 240px;
  }

  .intro_section .right_box {
    padding: 60px 20px;
  }
}

/* 480px ↓ */
@media (max-width:480px) {
  .intro_section .left_box {
    height: 200px;
  }

  .intro_section .right_box {
    padding: 40px 16px;
  }
}



/* 파트너 ================================================================*/
.partner_section {
  width: 100%;
  background: #FAFAFA;
  padding: 120px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.partner_section .partner_box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

.partner_section .partner_box h2 {
  color: #171717;
  font-size: 48px;
  font-family: Pretendard;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  word-break: keep-all;
}

.partner_section .partner_box .partner_list {
  background: #F6F6F6;
  border: 1px solid #E6E6E6;
  border-radius: 4px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
}

.partner_section .partner_box .partner_list .partner_item {
  flex: 0 1 calc(20% - 16px);
  height: 200px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: transparent;
}

.partner_section .partner_box .partner_list .partner_item img {
  width: 120px;
  height: 72px;
  object-fit: contain;
}

/* ✅ 반응형 */
@media (max-width:1200px) {
  .partner_section .partner_box .partner_list {
    width: 100%;
    justify-content: flex-start;
  }

  .partner_section .partner_box .partner_list .partner_item {
    flex: 0 1 calc(25% - 16px);
  }
}

@media (max-width:768px) {
  .partner_section .partner_box .partner_list {
    gap: 16px;
  }

  .partner_section .partner_box .partner_list .partner_item {
    flex: 0 1 calc(50% - 12px);
  }
}


/* 오시는길============================================================ */

/* 전체 섹션 */
.map_section_wrap {
  width: 100%;
  align-self: stretch;
  padding: 80px 0px;
  background: #FAFAFA;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1vh;
}

/* 타이틀 */
.map_title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #171717;
  font-size: 48px;
  font-family: Pretendard;
  font-weight: 700;
  line-height: 48px;
  text-align: center;
}

/* 내부 레이아웃 */
.map_container {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 2vh;
}

/* 지도 이미지 영역 */
.map_image_box {
  width: 100%;
  height: 540px;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
}

.map_image_box img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: -64px;
  left: 0;
  object-fit: cover;
}

/* 정보 전체 */
.map_info_wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 56px;
}

/* 주소 정보 박스 */
.map_info_box {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 주소 타이틀 라인 */
.map_info_header {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

/* 아이콘 */
.map_icon {
  width: 32px;
  height: 32px;
  position: relative;
}

.map_icon::before {
  content: "";
  width: 22px;
  height: 28px;
  background: #343330;
  position: absolute;
  left: 5px;
  top: 2px;
  border-radius: 2px;
}

/* 라벨 */
.map_label {
  color: #171717;
  font-size: 32px;
  font-family: Pretendard;
  font-weight: 500;
  line-height: 41.6px;
}

/* 주소 텍스트 */
.map_address {
  color: #444444;
  font-size: 18px;
  font-family: Pretendard;
  font-weight: 400;
  line-height: 27px;
  letter-spacing: 0.09px;
}

.root_daum_roughmap {
  width: 100% !important;
  height: 100% !important;
}

.root_daum_roughmap .wrap_map {
  height: 100% !important;
}

/* new 비즈니스 */
.business_intro_section {
  width: 100%;
  padding: 112px 0;
  background: #F5F5F5;
  position: relative;
  overflow: hidden;
}

.business_intro_bg {
  position: absolute;
  width: 1372px;
  filter: blur(6px);
  pointer-events: none;
  opacity: 0.3;
}

.business_intro_bg_1 {
  left: 1154px;
  top: 607px;
}

.business_intro_bg_2 {
  left: 665px;
  top: 1001px;
  transform: rotate(180deg);
}

.business_intro_container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2vh;
  position: relative;
  z-index: 1;
}

.business_intro_header {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.business_intro_title {
  color: #171717;
  font-size: 48px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  line-height: 48px;
  margin: 0;
  text-align: left;
}

.business_intro_subtitle {
  color: #27272A;
  font-size: 24px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  line-height: 32px;
  margin: 0;
}

.business_intro_content {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.business_intro_row {
  display: flex;
  gap: 3vh;
  flex-wrap: wrap;
}

.business_intro_card {
  flex: 1 1 calc(33.3% - 27px);
  display: flex;
  flex-direction: column;
  gap: 1vh;
  transition: transform 0.3s;
}

.business_intro_card:hover {
  transform: translateY(-8px);
  cursor: pointer;
}

.business_intro_image_wrapper {
  width: 100%;
  height: 22vh;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}

.business_intro_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

.business_intro_card_content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.business_intro_card_title {
  color: #171717;
  font-size: 24px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  line-height: 32px;
  margin: 0;
}

.business_intro_card_description {
  color: #404040;
  font-size: 18px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: -0.18px;
  margin: 0;
}

@media (max-width: 1400px) {
  .business_intro_section {
    padding: 100px 0;
  }

  .business_intro_container {
    gap: 48px;
  }

  .business_intro_title {
    font-size: 42px;
    line-height: 42px;
  }

  .business_intro_subtitle {
    font-size: 22px;
    line-height: 30px;
  }
}

@media (max-width: 1200px) {
  .business_intro_section {
    padding: 80px 0;
  }

  .business_intro_bg {
    width: 1000px;
    height: 600px;
  }

  .business_intro_bg_1 {
    left: 800px;
    top: 400px;
  }

  .business_intro_bg_2 {
    left: 400px;
    top: 700px;
  }

  .business_intro_row {
    gap: 30px;
  }

  .business_intro_card {
    gap: 20px;
  }
}

@media (max-width: 968px) {
  .business_intro_section {
    padding: 60px 0;
  }

  .business_intro_container {
    gap: 40px;
    padding: 0 20px;
  }

  .business_intro_title {
    font-size: 36px;
    line-height: 40px;
  }

  .business_intro_subtitle {
    font-size: 18px;
    line-height: 26px;
  }

  .business_intro_content {
    gap: 30px;
  }

  .business_intro_row {
    flex-wrap: wrap;
    gap: 24px;
  }

  .business_intro_card {
    flex: 0 0 calc(50% - 12px);
  }

  .business_intro_image_wrapper {
    height: 240px;
  }

  .business_intro_card_title {
    font-size: 20px;
    line-height: 28px;
  }

  .business_intro_card_description {
    font-size: 16px;
    line-height: 24px;
  }
}

@media (max-width: 768px) {
  .business_intro_section {
    padding: 50px 0;
  }

  .business_intro_container {
    gap: 30px;
    padding: 0 15px;
  }

  .business_intro_title {
    font-size: 28px;
    line-height: 36px;
  }

  .business_intro_subtitle {
    font-size: 16px;
    line-height: 24px;
  }

  .business_intro_bg {
    display: none;
  }
}

@media (max-width: 480px) {
  .business_intro_section {
    padding: 40px 0;
  }

  .business_intro_title {
    font-size: 24px;
    line-height: 32px;
  }

  .business_intro_subtitle {
    font-size: 15px;
    line-height: 22px;
  }

  .business_intro_row {
    gap: 20px;
  }

  .business_intro_card {
    flex: 0 0 100%;
  }

  .business_intro_image_wrapper {
    height: 200px;
  }

  .business_intro_card_title {
    font-size: 18px;
    line-height: 24px;
  }

  .business_intro_card_description {
    font-size: 15px;
    line-height: 22px;
  }
}


/* Contact Info Box */
.contact_info_box {
  width: 100%;
  padding: 3vh;
  background: #F0F0F0;
  border-radius: 8px;
  box-sizing: border-box;
}

.contact_info_inner {
  display: flex;
  flex-direction: column;
  gap: 3vh;
}

/* Contact Info Section */
.contact_info_section {
  display: flex;
  gap: 24px;
}

/* Header */
.contact_info_header {
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  flex-direction: column;
}

.contact_info_icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.contact_info_title {
  color: #171717;
  font-size: 28px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
  line-height: 36px;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact_info_header p {
  font-size: 24px;
  font-weight: 500;
  padding-left: 36px;
}

/* List */
.contact_info_list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.contact_info_item {
  display: flex;
  gap: 40px;
}

.contact_info_label {
  width: 155px;
  color: #444444;
  font-size: 18px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 700;
  line-height: 27px;
  letter-spacing: 0.09px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}

.contact_info_value {
  color: #444444;
  font-size: 18px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  line-height: 27px;
  letter-spacing: 0.09px;
}

/* Address Section */
.contact_info_address_wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact_info_address_header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.contact_info_address_text {
  color: #444444;
  font-size: 18px;
  font-family: 'Pretendard', sans-serif;
  font-weight: 400;
  line-height: 27px;
  letter-spacing: 0.09px;
  margin: 0;
}

/* Responsive */
@media (max-width: 1200px) {
  .contact_info_box {
    padding: 36px;
  }

  .contact_info_inner {
    gap: 48px;
  }

  .contact_info_title {
    font-size: 26px;
    line-height: 34px;
  }

  .contact_info_label {
    font-size: 17px;
    line-height: 26px;
  }

  .contact_info_value {
    font-size: 17px;
    line-height: 26px;
  }

  .contact_info_address_text {
    font-size: 17px;
    line-height: 26px;
  }

  .contact_info_item {
    gap: 10px;
  }
}

@media (max-width: 968px) {
  .contact_info_box {
    padding: 32px;
  }

  .contact_info_inner {
    gap: 40px;
  }

  .contact_info_section {
    flex-direction: column;
    gap: 20px;
  }

  .contact_info_title {
    font-size: 24px;
    line-height: 31px;
  }

  .contact_info_label {
    font-size: 16px;
    line-height: 24px;
    width: 140px;
  }

  .contact_info_value {
    font-size: 16px;
    line-height: 24px;
  }

  .contact_info_address_wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .contact_info_address_text {
    font-size: 16px;
    line-height: 24px;
  }
}

.m_logo_box {
  display: none;
}

@media (max-width: 1024px) {
  .m_logo_box {
    display: flex;
    padding: 40px 0;
    margin: 0 auto;
    align-items: center;
    justify-content: center;
  }

}


.intro_section {
  transition: opacity 0.8s ease-in-out;
  /* 더 빠른 전환 */
}


/* 20251219 추가 */
.intro_section .left_box {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}