@charset "utf-8";
@import url("sub_style.css");

/* 공통 폰트 및 기본 설정 */
body {
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    color: #fff;
    background-color: #000;
}

/* HEADER */
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 85px;
    background-color: transparent;
    z-index: 100;
    transition: background-color 0.3s ease;
}

/* 스크롤 시 배경색 변경 */
.header.active {
    background-color: #000000;
}

.header .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

/* 로고 */
.header .logo {
    display: flex;
    align-items: center;
    margin: 0;
}

.header .logo a {
    display: flex;
    align-items: center;
}

.header .logo img {
    height: 28px;
    width: auto;
    display: block;
}

/* 네비게이션 */
.header .nav {
    height: 100%;
}

.header .nav .list {
    display: flex;
    align-items: center;
    gap: 80px;
    height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.header .nav .item {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

.header .nav .item > a {
    font-family: 'Fahkwang', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #ffffff;
    letter-spacing: 0.5px;
    transition: opacity 0.2s ease, color 0.2s ease;
    display: block;
}

.header .nav .item > a:hover,
.header .nav .item.open > a {
    opacity: 0.7;
    color: #ffffff;
}

/* 드롭다운 서브메뉴 (2차 메뉴) - 헤더 끝나는 하단선(85px)에 정확히 밀착 */
.header .nav .sub,
.header .nav .depth2 {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(0);
    min-width: 140px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0 0 15px 15px;
    overflow: hidden;
    padding: 0;
    margin: 0;
    list-style: none;
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease, padding-top 0s linear 0.25s;
    z-index: 110;
}

/* 개별 호버 및 클릭(open 클래스) 시 서브메뉴 노출 */
.header:not(.menu_open) .nav .item:hover .sub,
.header:not(.menu_open) .nav .item.open .sub,
.header:not(.menu_open) .nav .item:hover .depth2,
.header:not(.menu_open) .nav .item.open .depth2 {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
    background: #090909;
    border-color: #111111;
}

.header .nav .sub li,
.header .nav .depth2 li {
    margin: 0;
    padding: 0;
    width: 100%;
    transition: background-color 0.2s ease;
}

/* hover하면 li 배경색 #000000 */
.header .nav .sub li:hover,
.header .nav .depth2 li:hover {
    background-color: #005E2E;
}

.header .nav .sub li a,
.header .nav .depth2 li a {
    display: block;
    width: 100%;
    padding: 13px 18px;
    box-sizing: border-box;
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #ffffff;
    text-align: center;
    text-transform: none;
    letter-spacing: -0.2px;
    white-space: nowrap;
    transition: color 0.2s ease;
}

.header .nav .sub li a:hover,
.header .nav .depth2 li a:hover {
    color: #ffffff;
    background-color: transparent;
}

/* 햄버거 버튼 */
.header .btn {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    width: 40px;
    height: 22px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    position: relative;
    z-index: 120;
}

.header .btn span {
    display: block;
    height: 3px;
    background-color: #ffffff;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.header .btn span:nth-child(1) {
    width: 40px;
}

.header .btn span:nth-child(2) {
    width: 20px;
}

.header .btn span:nth-child(3) {
    width: 40px;
}

/* 햄버거 버튼 클릭 시 (전체 서브메뉴 오픈 상태: .header.menu_open) */
.header.menu_open {
    background-color: #000000 !important;
}

/* 전체 서브메뉴 배경 패널 */
.header::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 215px;
    background-color: #000000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease;
    z-index: 105;
}

.header.menu_open::after {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* 햄버거 버튼을 X 아이콘(img/main/sub.png)으로 전환 */
.header.menu_open .btn {
    width: 40px;
    height: 40px;
    background: url('../img/main/sub.png') no-repeat center / contain;
}

.header.menu_open .btn span {
    display: none;
}

/* 전체 ul.sub 동시 노출 */
.header.menu_open .nav .sub,
.header.menu_open .nav .depth2 {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
    background: transparent;
    border-color: transparent;
    border-radius: 0;
    padding-top: 20px;
    transition: opacity 0.25s ease, visibility 0.25s ease, padding-top 0s linear 0s;
}

.header.menu_open .nav .sub li,
.header.menu_open .nav .depth2 li {
    background-color: transparent;
}

.header.menu_open .nav .sub li a,
.header.menu_open .nav .depth2 li a {
    padding: 12px 18px;
}

.header.menu_open .nav .sub li a:hover,
.header.menu_open .nav .depth2 li a:hover {
    opacity: 0.7;
}

/* VISUAL */
.visual {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 750px;
    overflow: hidden;
    background-color: #000;
}

/* 슬라이더 */
.visual .slider {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.visual .slide {
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    opacity: 0;
    visibility: hidden;
    transform: scale(1);
    transform-origin: center center;
    will-change: transform;
    transition: opacity 1.2s ease, visibility 1.2s ease;
}

.visual .slide.active {
    opacity: 1;
    visibility: visible;
    animation: visualSlowZoom 6s linear infinite alternate;
}

/* 점점 가까워지며 확대되는 줌인 반복 효과 */
@keyframes visualSlowZoom {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.28);
    }
}

/* 메인페이지 좌측 고정 인디케이터 */
.indicator {
    position: fixed;
    left: 45px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 900;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.indicator .dot {
    position: relative;
    width: 4px;
    height: 4px;
    background-color: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    cursor: pointer;
    transition: all 0.35s ease;
}

/* 클릭/터치 감도 향상을 위한 히트박스 확장 */
.indicator .dot::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 24px;
    height: 24px;
}

.indicator .dot.active {
    height: 18px;
    background-color: #00c73c;
}

/* 중앙 콘텐츠 */
.visual .content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    pointer-events: none;
}

.visual .inner {
    width: 1400px;
    max-width: calc(100% - 60px);
    margin: 0 auto;
}

.visual .title {
    margin: 0 0 20px 0;
    font-family: 'Fahkwang', serif;
    font-size: 80px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.5px;
    color: #ffffff;
}

.visual .desc {
    margin: 0;
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    font-size: 19px;
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: -0.3px;
    color: rgba(255, 255, 255, 0.85);
}

/* 하단 캡션 */
.visual .caption,
.business .caption {
    position: absolute;
    bottom: 35px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    margin: 0;
    font-family: 'Fahkwang', sans-serif;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.55);
    white-space: nowrap;
    pointer-events: none;
}

/* BUSINESS */
.business {
    position: relative;
    width: 100%;
    height: 885px;
    background-color: #141414;
    background-image: url('../img/main/bg.jpg');
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 1530px 885px;
    display: flex;
    align-items: center;
}

.business .inner {
    width: 1530px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    padding: 0 40px;
}

.business .title {
    margin: 0 0 20px 0;
    font-family: 'Fahkwang', sans-serif;
    font-size: 78px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.5px;
    color: #ffffff;
}

.business .desc {
    margin: 0 0 45px 0;
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    font-size: 18px;
    font-weight: 400;
    letter-spacing: -0.3px;
    color: rgba(255, 255, 255, 0.7);
}

.business .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 28px;
    font-family: 'Fahkwang', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 1px;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 9999px;
    transition: all 0.3s ease;
}

.business .btn:hover {
    border-color: #ffffff;
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

.business .btn span {
    font-size: 15px;
    letter-spacing: 2px;
}

/* PORTFOLIO */
.portfolio {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 860px;
    background-color: #000000;
    overflow: hidden;
}

.portfolio .inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 50px;
    box-sizing: border-box;
}

.portfolio .title {
    margin: 0;
    font-family: 'Fahkwang', sans-serif;
    font-size: 52px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.5px;
    color: #ffffff;
}

.portfolio .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 24px;
    font-family: 'Fahkwang', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 1px;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 9999px;
    transition: all 0.3s ease;
}

.portfolio .btn:hover {
    border-color: #ffffff;
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

.portfolio .btn span {
    font-size: 15px;
    letter-spacing: 2px;
}

/* =================== 포트폴리오 슬라이드 시작 =================== */
.portfolio .mySwiper {
    width: 100%;
    overflow: hidden;
    padding: 0;
}

.portfolio .swiper-wrapper {
    display: flex;
    align-items: center;
    transition-timing-function: linear; /* 부드러운 이동 */
}

/* 카드 크기: 490px * 490px */
.portfolio .swiper-slide {
    flex-shrink: 0;
    width: 490px !important;
    height: 490px !important;
    overflow: hidden;
    background-color: #111111;
}

/* 슬라이드 이미지: 490px * 490px */
.portfolio .swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.portfolio .swiper-slide:hover img {
    transform: scale(1.04);
}

/* 좌우 네비게이션 버튼 컨트롤러 */
.portfolio .swiper-button-next,
.portfolio .swiper-button-prev {
    color: #ffffff;
    width: 46px;
    height: 46px;
    background-color: rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    backdrop-filter: blur(4px);
    transition: all 0.3s ease;
    z-index: 20;
}

.portfolio .swiper-button-next:hover,
.portfolio .swiper-button-prev:hover {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: #ffffff;
}

.portfolio .swiper-button-next::after,
.portfolio .swiper-button-prev::after {
    font-size: 16px;
    font-weight: 700;
}

/* 하단 페이지네이션 컨트롤러 */
.portfolio .swiper-pagination {
    position: relative;
    margin-top: 25px;
    bottom: auto;
    z-index: 20;
}

.portfolio .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background-color: rgba(255, 255, 255, 0.3);
    opacity: 1;
    transition: all 0.3s ease;
    cursor: pointer;
}

.portfolio .swiper-pagination-bullet-active {
    width: 24px;
    border-radius: 4px;
    background-color: #ffffff;
}
/* =================== 포트폴리오 슬라이드 끝 =================== */

/* FOOTER */
.footer {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 375px;
    padding-top: 60px;
    background-color: #000000;
    box-sizing: border-box;
}

.footer .inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    box-sizing: border-box;
}

.footer .content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

/* 기업 정보 */
.footer .logo {
    margin: 0 0 24px 0;
}

.footer .logo a {
    font-family: 'Fahkwang', sans-serif;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #ffffff;
    display: inline-block;
    transition: opacity 0.2s ease;
}

.footer .logo a:hover {
    opacity: 0.8;
}

.footer .info .list {
    display: grid;
    grid-template-columns: 260px auto;
    row-gap: 9px;
    column-gap: 40px;
    margin: 0;
    padding: 0;
}

.footer .info .item {
    display: flex;
    align-items: center;
    font-size: 13px;
    line-height: 1.5;
}

.footer .info .item.full {
    grid-column: span 2;
}

.footer .label {
    width: 95px; /* label과 text 사이 간격 확보 (기존 65px -> 95px) */
    flex-shrink: 0;
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    font-weight: 500;
    color: #ffffff;
    letter-spacing: -0.2px;
}

.footer .text {
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    font-weight: 500;
    color: #656565;
    letter-spacing: -0.2px;
}

/* 사이트맵 내비게이션 */
.footer .nav {
    display: flex;
    gap: 65px;
}

.footer .group .title {
    margin: 0 0 20px 0;
    font-family: 'Fahkwang', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: 0.5px;
}

.footer .nav .list {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin: 0;
    padding: 0;
}

.footer .nav .item a {
    font-family: 'S-CoreDream', 'Escoredream', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #656565;
    transition: color 0.2s ease;
}

.footer .nav .item a:hover {
    color: #ffffff;
}

/* 하단 카피라이트 라인 */
.footer .copy {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 65px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer .caption {
    margin: 0;
    font-family: 'Fahkwang', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #656565;
    letter-spacing: 0.5px;
}

