:root {
    --mainColor: #3c2e5f;          /* 메인 */
    --mainColorLight: #5a4a8a;     /* 밝은 톤 (구 #336ec5) */
    --mainColorDark: #241b3d;      /* 어두운 톤 (구 #0f3979) */
    --mainColorRgba: rgba(60, 46, 95, 0.8); /* hover 반투명 (구 rgba(49,92,161,0.8)) */
    --pointColor: #9d8fc4;         /* 포인트 텍스트 (구 #739bc6) */
    --bgLight: #f4f2f9;            /* 연한 배경 (구 #f0f5fb) */
}

.material-symbols-outlined {
    font-variation-settings:
            'FILL' 1,
            'wght' 200,
            'GRAD' 0,
            'opsz' 20
}

.wrap {
    width: 100%;
    max-width: 1440px;
    padding: 0 20px;
    margin: 0 auto;
    position: relative;
}

.flexSb {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex {
    display: flex;
}

.secBg {
    overflow: hidden;
    position: relative;
    padding-bottom: 56.25%;
}

.secBg iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.tt span {
    display: block;
    font-size: 19px;
    color: #959595;
    font-weight: bold;
    margin-bottom: 22px;
}

.tt h3 {
    font-size: 50px;
    white-space: pre-line;
}
.tt p {
    font-size: 20px;
    line-height: 1.8;
    color: #fff;
    word-break: keep-all;
    white-space: pre-line;
    margin-top: 30px;
}
.color {
    color: var(--mainColor);
}
.poppins {
    font-family: "Poppins", serif;
}

/* header */


header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    transition: 0.5s;
    height: 100px;
}
header .gnb {
    display: flex;
    align-items: center;
    gap:65px;
    height: 100%;
}
header .flexSb {
    height: 100%;
}
h1 a {
    width: 240px;
    height: 50px;
    display: block;
    background-image: url("/img/logo.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
header .gnb > li > a {
    font-size: 18px;
    font-weight: bold;
    color: #fff;
}
header .snb {
    position: fixed;
    top: 100px;
    left: 0;
    width: 100%;
    background: linear-gradient(90deg, #f7f7f7 50% , #fff 50%);
    z-index: 10;
    display: none;
}
header .snb.active {
    display: flex;
}
.header_title {
    width: 30%;
    background: #f7f7f7;
    text-align: right;
    padding: 65px 80px 0 0;
}
.header_title h2 {
    font-size: 30px;
    font-weight: 600;
}

header .depth02 {
    width: 70%;
    background: #fff;
    display: flex;
    padding: 70px 0 90px;
}

header .depth02 > li {
    flex: 1;
    border-right: 1px solid #ddd;
}

header .depth02 > li > a {
    display: block;
    padding: 0 0 0 30px;
    font-size:20px;
    font-weight: 600;
}

header li:hover > a {
    color: var(--mainColor);
}

header .depth02 > li:last-child {
    border-right: 0;
}

.depth03 {
    padding: 30px 0 0 30px;
}

.depth03 li + li {
    margin-top: 20px;
}

.depth03 li a {
    color: #666;
    font-size:18px;
    font-weight: 600;
}

/* depth04 레벨에서 모빌리티 메뉴만 */
.depth04-mobility {
  color: #666 !important;           
  font-weight: 700 !important;    
height:1000px !important;
border-radius: 4px !important;
      font-size:18px !important;
}


.depth04-mobility:hover{
    color: var(--mainColor) !important;
	}





.depth04  li a{
    margin-top: 20px;
   color: #999;
    font-size:18px;
    font-weight: 600;
}


.depth04 li + li {
    margin-top: 10px !important;
}

header.active , header.visible {
    background: #fff;
}
header.active h1 a , header.visible h1 a {
    background-image: url("/img/logo.png");
}
header.active #bar span , header.visible #bar span {
    background: #000;
}
header.active .gnb > li > a , header.visible .gnb > li > a, header.visible .lang {
    color: #000;
}
header.active .gnb li:hover > a {
    color: var(--mainColor);
}
header.visible-hidden {
    transform: translateY(-120%);
}
header.visible {
    transform: translateY(0);
    height: 70px;
}
header.visible .snb {
    top:70px
}

#bar {
 display:none;
    width: 26px;
    height: 16px;
    position: relative;
    cursor: pointer;
}

#bar span {
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: #fff;
    transition: 0.5s;
}

#bar span:nth-child(1) {
    top: 0;
}

#bar span:nth-child(2) {
    top: 50%;
    width: 80%;
    transform: translateY(-50%);
}

#bar span:nth-child(3) {
    top: 14px;
}


#bar { display:none;}


.shop_btn {
font-size:16px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    gap:8px;
    border:1px solid #fff;
    border-radius: 23px;
    width: 125px;
    color: #fff;
    text-align: center;
    height: 45px;
}
.shop_icon {
    display: block;
    width: 21px;
    height: 18px;
    background-image: url("../img/main/icon_shop.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
header.active .shop_btn , header.visible .shop_btn {
    color: var(--mainColor);
    border-color:var(--mainColor);
}
header.active .shop_icon , header.visible .shop_icon {
    background-image: url("../img/main/icon_shop_b.png");
}


/* main */

#sec01.section {
    position: relative;
    height: 100vh;
    overflow: hidden;
}
.main_swiper .swiper-slide {
    height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.main_swiper .swiper-slide .img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.main_swiper .swiper-slide .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1);
    transition: 3s;
}

/* 메인비주얼 배경 비디오 */
.main_swiper .swiper-slide .bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.main_swiper .swiper-slide .txt {
    position: relative;
    z-index: 1;
    width: 100%;
    padding-bottom: 115px;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.main_swiper .swiper-slide .txt p {
    font-size:30px;
    color: #fff;
    margin-bottom: 15px;
}
.main_swiper .swiper-slide .txt h2 {
    color: #fff;
    font-size:100px;
    font-weight: 800;
}
/* 0617 움직이는모션 빼달라하셔서 주석 처리
.main_swiper .swiper-slide.swiper-slide-active img {
    transform: scale(1);
}
*/
.main_swiper .swiper-slide.swiper-slide-active .txt h2 {
    opacity: 1;
    transform: translateY(0px);
}
.swiper-btm {
    position: absolute;
    top: calc(50% + 140px);
    transform: translateY(-50%);
    left: 0;
    width: 100%;
    z-index: 2;
}
.swiper-btm .flex {
    align-items: center;
    gap:20px;
    width: 250px;
}
.swiper-btm .flex > * {
    position: static !important
}
.swiper-button-next:after, .swiper-button-prev:after {
    display: none;
}
.swiper-btm .swiper-button-next, .swiper-btm .swiper-button-prev{
    color: #fff;
    width: auto;
    height: auto;
    margin: 0;
}

.swiper-btm .playBtn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    position: relative !important;
    display: flex;
    align-items: center;
    justify-content: center;
    outline:1px solid rgba(255,255,255,0.2);
}
.autoplay-progress svg {
    --progress: 0;
    position: absolute;
    left: 0;
    top: 0px;
    z-index: 10;
    width: 100%;
    height: 100%;
    stroke-width: 2px;
    stroke: #fff;
    fill: none;
    stroke-dashoffset: calc(125.6px * (1 - var(--progress)));
    stroke-dasharray: 125.6;
    transform: rotate(-90deg);
}
.playBtn span {
    color: #fff;
    display: block;
}
.playBtn.pause .play {
    display: block;
}
.playBtn .play {
    display: none;
}
.playBtn.pause .pause {
    display: none;
}
.swiper-btm .swiper-pagination-fraction {
    width: auto;
    color: #fff;
    font-size: 17px;
}
.swiper-btm .swiper-pagination-total {
    opacity: 0.5;
}
.scroll {
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 10px;
    font-size: 20px;
    color: #fff;
}
.scroll span {
    width: 30px;
    height: 50px;
    border:2px solid #fff;
    position: relative;

    border-radius: 50px;
}
.scroll span:after {
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    animation:scrolling 1s infinite alternate;
}

@keyframes scrolling {
    0% {
        top: 12px;
    }
    100% {
        top: 32px;
    }
}

.swiperArrow {
    position: relative;
}


#sec02 {
    padding: 140px 0;
    text-align: center;
}
#sec02 .tt {
    margin-bottom: 75px;
}
#sec02 .tt h3 strong {
    font-weight: 800;
}
#sec02 .tt h3 strong b {
    color: var(--mainColor);
}
#sec02 .con ul {
    display: flex;
    gap: 50px;
}
#sec02 .con ul li {
    flex: 1;
    position: relative;
    overflow: hidden;
    border-radius: 20px;
}
#sec02 .con ul li a {
    padding: 60px 15px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: 0.5s;
}
#sec02 .conTt span {
    display: block;
    color: rgba(255,255,255,0.5);
    font-size:19px;
    font-weight: 800;
}
#sec02 .conTt h4 {
font-size:40px;
    font-weight: 800;
    color: #fff;
    margin-top: 15px;
}
#sec02 .con .btn {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border:1px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    transition: 0.3s;
    background: rgba(255,255,255,0);
}
#sec02 .con .btn span {
    color: var(--mainColor);
    font-weight: 800;
    font-size:16px;
    transition: 0.3s;
    margin-left: -150px;
    display: block;
}
#sec02 .con .btn:after {
    content: '';
    display: block;
    width: 24px;
    height: 13px;
    background: url("../img/main/arrow-more.png") no-repeat center center / contain;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    transition: 0.3s;
}
#sec02 .con ul li:hover .btn:after {
    transform: translate(200%,-50%);
}
#sec02 .con ul li:hover .btn {
    background:#fff
}
#sec02 .con ul li:hover a {
    background: var(--mainColorRgba);
    backdrop-filter: blur(2px);
}
#sec02 .con ul li:hover .btn span {
    margin-left: 0;
}


#sec03 {
    padding: 135px 0;
    background:url("../img/main/sec03_bg.png") no-repeat center center / cover;
}
#sec03 > .wrap {
    max-width: 1200px;
}
#sec03 .wrap2 {
    max-width: 1475px;
    width: 100%;
    padding: 0 20px;
margin: 0 auto;
}


#sec03 .tt span  {
    color: #dcdcdc;   
} 
#sec03 .tt h3 {
    color: #fff;
}
#sec03 .con {
    padding:0 130px;
    max-width: 1665px;
    position: relative;
}

/* 제품 슬라이더 래퍼 + 커스텀 네비게이션 */
.product-swiper-wrap {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.product_swiper {
    margin-top: 70px;
    width: 100%;
    overflow: hidden; /* 3개만 딱 잘리게 */
    padding: 5px;
}

.product_swiper .swiper-wrapper {
    width: 100% !important;
}

.product_swiper .swiper-slide {
    display: block;
    padding: 20px;
    border-radius: 20px;
    box-sizing: border-box;
}

.product-swiper-prev,
.product-swiper-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border:1px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.10);
    cursor: pointer;
}
.product-swiper-prev { left: -150px; }
.product-swiper-next { right: -150px; }
.product-swiper-prev img,
.product-swiper-next img {
    width: 24px;
    height: 24px;
    pointer-events: none;
}

.product-swiper-prev img {
    transform: scaleX(-1);
}

.product_swiper .swiper-slide a {
    display: block;
    padding: 20px;
    border-radius: 20px;
    background:rgba(255,255,255,0.7);
    transition: 0.5s;

}
.product_swiper .txt {
    padding: 40px 0 60px;
    position:relative;

}
.product_swiper .txt h4 {
    font-weight: 800;
    font-size: 30px;
   margin-bottom: 12px;
}
.product_swiper .txt p {
    font-size:16px;
	    font-weight: 600;
    color: #6c6c6c;

}
.product_swiper .txt button {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #fff;
    font-weight: 700;
    font-size:16px;
    border-radius: 27.5px;
    background: var(--mainColor);
    width: 128px;
    height: 55px;
}
.product_swiper .swiper-slide:hover a {
    background: #fff;
	color:#333;
    outline: 5px solid var(--mainColor);
}
.product_swiper .swiper-button-next, .product_swiper .swiper-button-prev {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border:1px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition: 0.3s;
}
.product_swiper .swiper-button-prev img {
    transform: rotate(180deg);
}
.product_swiper .swiper-button-next:hover, .product_swiper .swiper-button-prev:hover {
    transform: scale(0.8);
}


#sec04 ul{
    padding: 140px 0;
    display: flex;
    gap:50px;
}
#sec04 ul li {
    flex: 1;
}
#sec04 ul li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 183px;
    border-radius: 20px;
    background-color: var(--bgLight);
    background-image: url("../img/main/sec04_img.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    padding: 15px 60px;
    box-sizing: border-box;
    transition: 0.3s;
}
#sec04 ul li:hover a {
    padding: 15px 80px;
}
#sec04 ul li a h4 {
    font-size: 30px;
    font-weight: 800;
}
#sec04 ul li a span {
    display: block;
    color: var(--pointColor);
    font-size:19px;
    font-weight: 700;
}
#sec04 ul li a p {
    color: #474747;
    margin-top: 12px;
    font-size:19px;
    font-weight: 600;
}


#sec05 {
    background: url("../img/main/sec05_bg.png") no-repeat center center / cover;
}
#sec05 .flex > div {
    flex: 1;
}
#sec05 .sec05Tt {
    padding: 140px 20px 140px calc((100% - 1400px)/2) ;
}
#sec05 .sec05Con {
    padding: 140px 75px;
    /* 어두운 반투명 레이어 + 배경 이미지 (위에서부터 순서대로 겹침) */
    background: url("../img/main/sec05_input.png") no-repeat center center / cover;
    border-radius: 100px 0 0 0;
}
#sec05 .flex {
    align-items: stretch;   /* 좌우 높이 동일하게 */
}
#sec05 .tt span {
    color: #b5b5b5;
    margin-bottom: 8px;}
#sec05 .tt h3 {
    color: #fff;
    font-size:60px;
    font-weight: 800;
}
#sec05 .sec05Tt ul {
    padding: 45px 0;
    margin-bottom: 35px;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}
#sec05 .sec05Tt ul li a{
    display: flex;
    align-items: center;
    gap: 15px;
    font-size:50px;
    color: #fff;
    font-family: "Poppins", serif;
}
#sec05 .sec05Tt ul li + li {
    margin-top: 15px;
}
.csCenter h4 {
    color: #fff;
    font-weight: 800;
    font-size:22px;
    margin-bottom: 10px;
}
.csCenter p {
    color: #fff;
    font-size:18px;
    line-height: 1.8;
    font-weight: 600;
}
#sec05 .sec05Con .inputBox {
    display: flex;
}
#sec05 .sec05Con .inputBox input , #sec05 .sec05Con textarea {
    background: transparent;
    padding: 15px 0;
    font-size:20px;
    border:0;
    border-bottom: 1px solid rgba(255,255,255,0.48);
    flex: 1;
	color:#fff;
}
#sec05 .sec05Con .flex > div {
    flex: 1;
    width: 50%;
}
#sec05 .sec05Con .con {
    margin: 45px 0;
}
#sec05 .sec05Con .con .flex {
    gap:35px
}
#sec05 .sec05Con .con > div + div{
    padding-top: 35px;
}
.telInput {
    align-items: center;
}
#sec05 .sec05Con .con .flex.emailInput {
    gap:0;
    align-items: center;
}
#sec05 .sec05Con span {
    color: #fff;
    font-size:16px;
    padding: 0 8px;
    display: block;
}
.telInput input {
    width: 33.333%;
}
.consultingContent label {
    display: block;
    font-sizE:18px;
    color: rgba(255,255,255,0.48);
}
#sec05 .sec05Con .inputBox input::placeholder {
    color: rgba(255,255,255,0.48);
}
.consultingContent textarea {
    height: 80px;
    margin-top: 15px;
    width: 100%;
}
.checkItem {
    display: flex;
    align-items: center;
    gap:16px;
    color: #fff;
    font-sizE:18px;
}
#sec05 .sec05Con button {
    background: var(--mainColor);
    border-radius: 39.5px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    width: 250px;
    height: 80px;
    font-size:20px;
    font-weight: 600;
    transition: 0.5s;
    margin: 0 auto;
}
#sec05 .sec05Con button:hover {
    gap:15px
}
.footerBtmRight .fnb p {
    line-height: 1.5;
}

/* sub top */

.subTop {
  position: relative;
}
.subImg01 {
  height: 470px;
  background-image: url(../img/main/sub_topimg01.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.subImg02 {
  height: 470px;
  background-image: url(../img/main/sub_topimg02.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.subImg03 {
  height: 470px;
  background-image: url(../img/main/sub_topimg03.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.subImg04 {
  height: 470px;
  background-image: url(../img/main/sub_topimg03.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.subTop .wrap h2 {
  font-size: 72px;
  font-weight: 600;
  color: #fff;
  padding-top: 190px;
}

/*ceo인사말*/
.ceo_tit {
  text-align: left;          /* center → left */
  margin: 140px 0 50px;
}
.ceo_tit h4 {
  font-size: 28px;           /* 40px → 28px (길이 맞춰서 26~30 사이 조절) */
  font-weight: 800;
  color: #000;
  line-height: 1.6;          /* 고정 56px → 비율로 변경 */
}
.ceo {
  margin-top: 20px;
  justify-content: space-between;
  align-content: center;
  width: 100%;
  text-align: left;          /* center → left */
}
.ceo_con {
  width: 100%;
  font-size: 20px;
  padding: 60px 0 0 0;
  line-height: 32px;
  color: #000;
  margin-bottom: 50px;
  word-break: keep-all;
}

/* CEO 서명 대신 회사명 */
.ceo_sign {
  text-align: right;
  font-size: 32px;          
  font-weight: 800;
  color: #000;
  margin: 70px 0;
  padding-right: 80px;      
}/* 연혁 타임라인 */
.hs_tit {
  text-align: center;
  padding: 140px 0 60px;   
}
.hs_tit h4 {
  font-size: 44px;
  font-weight: 800;
  color: #000;
}
.hs_tit p {
  font-size: 40px;
  font-weight: 800;
  color: #d9d9d9;
  font-family: "Poppins", serif;
  margin-top: 10px;
}
.hs_banner {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 20px;
}
.hs_banner img {
  display: block;
  width: 100%;
  height: auto;      
}

/* 중앙 세로 라인 */
.hs_timeline {
  position: relative;
  padding: 120px 0 140px;
}
.hs_timeline::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: #d5d0e2;
}

/* 연도 블록 공통 + 중앙 점 */
.hs_year {
  position: relative;
  width: 50%;
  padding-bottom: 90px;
}
.hs_year::before {
  content: '';
  position: absolute;
  top: 14px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--mainColor);
  box-shadow: 0 0 0 5px rgba(60,46,95,0.12);
}

/* 오른쪽 블록 */
.hs_year.hs_right {
  margin-left: 50%;
  padding-left: 70px;
  text-align: left;
}
.hs_year.hs_right::before {
  left: -7px;
}

/* 왼쪽 블록 */
.hs_year.hs_left {
  margin-right: 50%;
  padding-right: 70px;
  text-align: right;
}
.hs_year.hs_left::before {
  right: -7px;
}

.hs_yearNum {
  font-size: 46px;
  font-weight: 800;
  color: #000;
  font-family: "Poppins", serif;
  line-height: 1;
  margin-bottom: 30px;
}
.hs_list li {
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.hs_year.hs_left .hs_list li {
  flex-direction: row-reverse; /* 왼쪽 블록은 월이 오른쪽 */
}
.hs_list li + li {
  margin-top: 16px;
}
.hs_month {
  flex-shrink: 0;
  min-width: 26px;
  text-align: center;
  font-size: 17px;
  font-weight: 800;
  color: var(--pointColor);
}
.hs_list li p {
  font-size: 18px;
  color: #444;
  line-height: 1.6;
  word-break: keep-all;
}

/* 하이라이트 박스 */
.hs_list li p.hs_hl {
  display: inline-block;
  background: var(--mainColor);
  color: #fff;
  padding: 4px 12px;
  font-weight: 700;
}
/* 주요사업 */
.busi_wrap01 {
  height: 297px;
  background-image: url(../img/busi_middle_img01.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.busi_wrap02 {
  height: 297px;
  background-image: url(../img/busi_middle_img02.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.busi_wrap03 {
  height: 297px;
  background-image: url(../img/busi_middle_img03.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.busi_wrap04 {
  height: 297px;
  background-image: url(../img/busi_middle_img04.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.mB120 {
  margin-bottom: 120px;
}

/* 오시는 길 - 카카오맵 */
.mapWrap {
  padding: 100px 0;
}
.mapBox {
  width: 100%;
  height: 360px;           /* mapHeight(360)에 맞춰 고정 → 아래 카카오 자체 정보박스 크롭 */
  border-radius: 16px;
  overflow: hidden;
  position: relative;
}
.mapBox .root_daum_roughmap {
  width: 100% !important;
}

/* 본사 정보 : 좌측 큰 타이틀 + 우측 리스트 */
.mapInfo {
  display: flex;
  align-items: flex-start;
  gap: 100px;
  margin-top: 60px;
  padding-top: 50px;
  border-top: 1px solid #e5e5e5;
}
.mapInfoTit {
  flex-shrink: 0;
  font-size: 38px;
  font-weight: 800;
  color: #000;
}
.mapList li {
  display: flex;
  align-items: center;
  gap: 20px;
}
.mapList li + li {
  margin-top: 26px;
}
.mapLabel {
  width: 90px;         
  flex-shrink: 0;
  font-size: 17px;
  font-weight: 700;
  color: #333;
}
.mapList li p {
  font-size: 20px;      /* 기존 값 유지 */
  font-weight: 700;
  color: #000;
  padding-left: 10px;   /* ← 이 줄 추가: 라벨과 주소 사이 간격 */
}
/* 아이콘 (인라인 SVG를 background로) */
.mapIcon {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.mapIcon_pin {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c2e5f' stroke-width='2'%3E%3Cpath d='M12 22s7-7.5 7-13a7 7 0 1 0-14 0c0 5.5 7 13 7 13z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E");
}
.mapIcon_tel {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c2e5f' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.34 1.79.65 2.65a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.43-1.27a2 2 0 0 1 2.11-.45c.86.31 1.75.53 2.65.65A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}
.mapIcon_fax {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c2e5f' stroke-width='2'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E");
}

/* 제품소개 서브메뉴 */

.navSub ul {
  position: relative;
  width:580px;

  padding: 100px 0;
}
.navSub ul::before {
  content: '';
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: 0;
  width: 100%;
}
.navSub li {
  width: auto;
  float: left;
  border: 0;
}
.navSub li a {
  font-weight: bold;   
  font-size: 22px;
  color: #a6a6a6;
  padding: 0;
  margin-right: 45px;
  position: relative;
}

/*.navSub li.active a::before {
  content: '';
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: -10px;
  width: 100%;
  height: 4px;
  background: var(--mainColor);

}*/

.navSub li.active a {
  background: var(--mainColor);
  color: #fff;
   font-size: 30px;
top:-15px;
padding:10px;
border-radius: 5px;
}


/* 제품소개 */
.pd_tit {
  width: 100%;
  color: #000;
  font-weight: 800;
  margin: 20px 0 0 0;
}
.pd_tit em {
  font-size: 20px; 
  font-style: normal;
}
.pd_tit h3 {
  margin: 16px 0 60px;
  font-size: 40px; 
}

.product {
  height: 100%;
  background-image: url(../img/product_bg.png);
  background-size: auto;
  background-position: center;
  background-repeat: repeat;
  margin: 0 0 120px 0;
}
.product01 {
  height: 100%;
  background-image: url(../img/product_bg_m.png);
  background-size: auto;
  background-position: center;
  background-repeat: repeat;
  margin: 0 0 120px 0;
}
.product_wrap {
  width: 100%;
  display: flex;
  align-items: center;
 /* justify-content: space-between*/
}
.product_con {
  padding: 40px 0;
  margin-right: 20px;
  width: 33.3333%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.product_con01 {
  padding: 40px 0;
  margin-right: 20px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.product_con:last-child {
  margin-right: 0;
}
.product_con .Img {
  padding: 10px 0 0 0;
}
.product_con .Txt {
  font-size: 20px;
  font-weight: bold;
  border-radius: 35px;
  border: 1px solid var(--mainColor);
  color: var(--mainColor);
  margin: 50px 0 0 0;
  padding: 14px 36px;
}
.product_con01 .lTxt {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product_con01 .lTxt .Txt {
  font-size: 20px;
  font-weight: bold;
  border-radius: 35px;
  border: 1px solid var(--mainColor);
  color: var(--mainColor);
  margin: 50px 10px 0 10px;
  padding: 14px 36px;
}
.mT30 {
  margin-top: 30px;
}
.mT31 {
  margin-top: 31px;
}
.merit {
  margin: 100px 0;
}
.merit_wrap {
  display: flex;
  justify-content: space-between;
  align-content: center;
  width: 100%;
  padding: 0;
  margin: 0 auto;
}
.busi_wrap h4 {
  font-size: 30px;
  font-weight: bold;
  padding: 0 0 10px 0;
}
.merit .left {
  width: 25%;
  font-size: 30px;
  font-weight: bold;
  padding: 0 20px 0 0;
  word-break: keep-all;
  white-space: pre-line;
}

.merit .right {
  width: 75%;
  display: flex;
  align-content: center;
}
.merit .right1 {
  width: 100%;
  display: flex;
  align-content: center;
}
.merit .right .rImg .lImg {
  background: var(--bgLight);
  border-radius: 20px;
  padding: 30px 30px 40px 30px;
  margin-right: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.merit .right .sImg {
  background: #fff;
  border-radius: 20px;
  padding: 90px 50px;
  text-align: center;
}
.merit .right .sTit {
  font-size: 24px;
  font-weight: bold;
  margin: 36px 0 0 0;
}
.merit .right .rTxt {
  display: flex;
  flex-direction: column;
  margin-bottom: 50px;
}
.merit .right .rTxt h5 {
  font-size: 24px;
  font-weight: bold;
  color: var(--mainColor);
  margin: 5px 0 40px;
}

.merit .right .rTxt em {
  font-size: 22px;
  background-image: url(../img/icon_check.png);
  background-size: auto;
  background-position: left 0 top 8px;
  background-repeat: no-repeat;
  padding-left: 30px;
  font-weight: bold;
  font-style: normal;
}
.merit .right .rTxt p {
  color: #585858;
  font-size: 20px;
  margin: 10px 0 50px;
  line-height: 30px;
}
.merit .right1 .rTxt p {
  color: #585858;
  font-size: 20px;
  margin: 10px 0 50px;
  line-height: 30px;
}
.merit .right .rTxt p.two {
  color: #585858;
  font-size: 20px;
  margin: 10px 0 20px;
  line-height: 30px;
}
.merit .right .rTxt .rsImg {
  display: flex;
  justify-content: center;
  align-content: center;
}
.merit .right .rTxt .rsImg .bsImg {
  margin-right: 23px;
  display: flex;
  flex-direction: column;
  text-align: center;
}
.merit .right .rTxt .rsImg .bsImg:last-child {
  margin-right: 0;
}
.merit .right .rTxt .rsImg .bsImg p {
  font-size: 18px;
}
.merit .right .rTxt .rsImg .bsImg img {
  border-radius: 20px;
}

.merit .right02 {
  width: 75%;
  display: flex;
  align-content: center;
  flex-direction: column;
  margin-bottom: 40px;
}
.merit .right02 table {
  color: #585858;
  font-size: 18px;
}
.merit .right02 tr th {
  text-align: center;
  background: var(--mainColor);
  padding: 14px 0;
  color: #fff;
}
.merit .right02 tr td {
  text-align: center;
  padding: 20px;
  font-weight: 300;
  white-space: pre-line;
  border-bottom: 1px solid #dbdbdb;
}
.merit .right02 tr td.bTxt {
  font-weight: 600;
}
.merit .right02 p {
  margin-top: 30px;
  color: #585858;
  font-size: 18px;
  line-height: 28px;
}


.merit .right03 {
  width: 75%;
  display: flex;
  align-content: center;
  flex-direction: column;
  margin-bottom: 40px;
}
.merit .right03 table {
  color: #585858;
  font-size: 18px;
}
.merit .right03 tr th {
  width: 50%;
  text-align: center;
  background: var(--mainColorLight);
  padding: 14px 0;
  color: #fff;
}
.merit .right03 tr th.blue {
  width: 50%;
  text-align: center;
  background: var(--mainColorDark);
  padding: 14px 0;
  color: #fff;
}
.merit .right03 tr td {
  padding: 30px;
  font-weight: 300;
  white-space: pre-line;
  border-bottom: 1px solid #dbdbdb;
}
.merit .right03 tr td.bTxt {
  font-weight: 600;
}
.merit .right03 p {
  color: #585858;
  font-size: 18px;
  line-height: 28px;
}

.mT140 {
  margin-top: 140px;
}
.mB50 {
  margin: 50px 0 70px;
}
.mB60 {
  margin: 0 0 50px 0;
}
/* Seaports */
.seaportWrap {
  padding: 60px 0 120px;
}
.seaportInner {
  display: flex;
  align-items: center;   /* 텍스트가 이미지 2개 높이의 세로 중앙에 */
  gap: 60px;
}
.seaportImgs {
  flex: 1;               /* 왼쪽 절반 */
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.seaportImg img {
  width: 100%;
  border-radius: 12px;
  display: block;
}
.seaportTxtBox {
  flex: 1;               /* 오른쪽 절반 */
}
.seaportTxt {
  font-size: 20px;
  line-height: 1.8;
  color: #585858;
  word-break: keep-all;
}
/* PBB 제품 탭 - navSub 오버라이드 (긴 라벨용) */
.pbbNav ul {
  width: 100%;
  float: none;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  padding: 60px 0 40px;
}
.pbbNav ul::before {
  display: none;
}
.pbbNav li {
  float: none;
  border: 0;
}
.pbbNav li a {
  display: block;
  font-size: 17px;
  font-weight: 700;
  color: #a6a6a6;
  padding: 14px 24px;
  border-radius: 30px;
  background: var(--bgLight);
  margin: 0;
  white-space: nowrap;
  transition: 0.3s;
}
.pbbTabBtn {
  cursor: pointer;
}
.pbbTabBtn.active a {
  background: var(--mainColor);
  color: #fff;
}
.pbbTabBtn:hover a {
  color: var(--mainColor);
}
.pbbTabBtn.active:hover a {
  color: #fff;
}

/* 소개 블록 */
.pbbIntro {
  padding: 80px 0;
}
.pbbIntro_inner {
  display: flex;
  align-items: center;
  gap: 80px;
}
.pbbIntro_txt {
  flex: 1;
}
.pbbIntro_txt h5 {
  font-size: 28px;
  font-weight: 800;
  color: #000;
  margin-bottom: 20px;
}
.pbbIntro_txt p {
  font-size: 18px;
  color: #585858;
  line-height: 1.8;
  word-break: keep-all;
}
.pbbIntro_img {
  flex: 1;
}
.pbbIntro_img img {
  width: 100%;
  border-radius: 12px;
  display: block;
}

/* 특장점 블록 */
.pbbFeature {
  padding: 60px 0 100px;
  background: var(--bgLight);
}
.pbbFeature_inner {
  display: flex;
  align-items: center;
  gap: 80px;
}
.pbbFeature_txt {
  flex: 1;
}
.pbbFeature_txt h5 {
  font-size: 24px;
  font-weight: 800;
  color: #000;
  margin-bottom: 20px;
}
.pbbFeature_txt ul li {
  position: relative;
  padding-left: 30px;
  font-size: 18px;
  color: #333;
  font-weight: 600;
}
.pbbFeature_txt ul li + li {
  margin-top: 14px;
}
.pbbFeature_txt ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--mainColor);
  font-weight: 800;
}
.pbbFeature_img {
  flex: 1;
}
/* 특장점 이미지 없을 때 텍스트 전체폭 */
.pbbFeature_inner.noImg .pbbFeature_txt {
  flex: none;
  width: 100%;
}
.pbbFeature_img img {
  width: 100%;
  border-radius: 12px;
  display: block;
}
/* footer */

footer{
    color: #a4a4a4;
    background: #0c0c0c;
}
footer a {
    color: #a4a4a4;
}
footer a:hover {
    color: #fff;
}
.footerTop {
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}
footer .termList ul {
    display: flex;
    align-items: center;
    gap:30px
}
footer .termList ul  li a {
    font-size:17px;
}
.footerRight a.footerTel {
    display: flex;
    align-items: center;
    font-size:17px
}
.footerRight .shop_btn {
    border: 1px solid #a4a4a4;
    color: #a4a4a4;
}
.footerRight .shop_btn:hover {
    border: 1px solid #fff;
    color: #fff;
}
.footerRight a.footerTel img {
    margin-right: 5px;
}
.footerRight a.footerTel b {
    font-size: 30px;
    font-family : "Poppins", serif;
    display: block;
    font-weight: 600;
    margin-left: 10px;
}
.footerRight  {
    gap: 35px
}
.footerBtm  {
    padding: 45px 0 60px;
    align-items: center;
    gap:100px
}
.footerBtmRight {
    width: 100%;
}
.footerBtmRight .fnb {
    line-height: 1.5;
    white-space: pre-line;
	    font-size: 14px;
}
.footerBtmRight p {
    margin-top: 10px;
}


.fnb .title {

color:#fff;
 font-weight: 600;

}


/* Our Technology - 콘텐츠 (좌 텍스트 / 우 이미지) */
.techWrap {
  padding: 80px 0 120px;
}
.techRow {
  display: flex;
  gap: 60px;
  align-items: flex-start;
}
.techTxt {
  flex: 1;
}
.techTxt h5 {
  font-size: 26px;
  font-weight: 800;
  color: #000;
  margin-bottom: 18px;
}
.techTxt p {
  font-size: 18px;
  line-height: 1.8;
  color: #585858;
  word-break: keep-all;
}
.techFeature {
  margin-top: 40px;
}
.techFeature h6 {
  font-size: 22px;
  font-weight: 800;
  color: #000;
  margin-bottom: 16px;
}
.techFeature ul li {
  position: relative;
  padding-left: 30px;
  font-size: 18px;
  color: #333;
  font-weight: 600;
}
.techFeature ul li + li {
  margin-top: 12px;
}
.techFeature ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--mainColor);
  font-weight: 800;
}
.techImgs {
  flex: 1;
  display: flex;
  gap: 20px;
  align-self: stretch;   /* 텍스트 컬럼 높이에 맞춰 늘어남 */
}
.techImgBox {
  flex: 1;
}
.techImgBox img {
  width: 100%;
  height: 100%;
  max-height: 520px;      /* 텍스트 높이에 맞춰 조절 (480~560 사이 취향껏) */
  object-fit: cover;      /* 넘치는 부분은 크롭 */
  border-radius: 12px;
  display: block;
}
/* 이미지 없는 탭: 텍스트 전체폭 */
.techRow.techImg0 .techTxt {
  flex: none;
  width: 100%;
  max-width: 900px;
}