/* ================================ Intro ================================ */

#intro-spacer {
    height: 200vh;
    position: relative;
    z-index: 1;
}

#intro-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #111;
    z-index: 99999;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

#intro-overlay .intro-content {
    position: absolute;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: opacity 0.6s ease;
}

#intro-overlay .intro-logo {
    width: clamp(120px, 15vw, 240px);
    opacity: 0;
    transform: scale(0.85);
    animation: introLogoIn 1.5s ease forwards 0.4s;
}

#intro-overlay .intro-line {
    width: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.3);
    margin-top: 30px;
    animation: introLineExpand 1s ease forwards 1.2s;
}

#intro-overlay .intro-text {
    margin-top: 20px;
    font-size: clamp(13px, 1vw, 16px);
    color: rgba(255, 255, 255, 0);
    letter-spacing: 0.3em;
    font-weight: 300;
    animation: introTextIn 0.8s ease forwards 1.8s;
}

#intro-overlay .intro-video-wrap {
    position: absolute;
    z-index: 2;
    width: 22vw;
    height: 70vh;
    border-radius: 16px;
    overflow: hidden;
    opacity: 0;
    transition: opacity 1.2s ease, border-radius 0.1s linear;
}

#intro-overlay .intro-video-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: var(--overlay-opacity, 0.7);
    z-index: 1;
}

#intro-overlay .intro-video-wrap video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#intro-overlay .intro-scroll-hint {
    position: absolute;
    bottom: 40px;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transition: opacity 0.5s ease;
}

#intro-overlay .intro-scroll-hint span {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
    letter-spacing: 0.2em;
    font-weight: 300;
}

#intro-overlay .intro-scroll-hint .scroll-arrow {
    width: 1px;
    height: 30px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.5), transparent);
    animation: scrollArrowBounce 1.5s ease-in-out infinite;
}

/* SKIP 커서 */
#intro-skip-cursor {
    position: fixed;
    z-index: 100;
    pointer-events: none;
    transform: translate(-50%, -50%);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.15em;
    color: #fff;
    opacity: 0;
    transition: opacity 0.25s ease, transform 0.15s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    background: rgba(255,255,255,0.08);
}
#intro-overlay.done #intro-skip-cursor {
    display: none;
}
#intro-overlay { cursor: none; }

@media (max-width: 768px) {
    #intro-skip-cursor { display: none !important; }
    #intro-overlay { cursor: auto; }
}

@keyframes introLogoIn {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes introLineExpand {
    to {
        width: clamp(60px, 8vw, 120px);
    }
}

@keyframes introTextIn {
    to {
        color: rgba(255, 255, 255, 0.6);
    }
}

@keyframes scrollArrowBounce {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(8px); opacity: 1; }
}

body.intro-active {
    overflow: hidden !important;
    height: 100vh !important;
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
}

#intro-overlay.done {
    display: none;
}


/* ================================ 커스텀 커서 ================================ */

#custom-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 40px;
    height: 40px;
    border: 1.5px solid rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    pointer-events: none;
    z-index: 100000;
    opacity: 0;
    transform: translate(-50%, -50%) scale(0);
    transition: width 0.3s ease, height 0.3s ease, background 0.3s ease, border-color 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    mix-blend-mode: difference;
}

#custom-cursor .cursor-text {
    font-size: 0;
    color: #fff;
    font-weight: 500;
    letter-spacing: 0.05em;
    opacity: 0;
    transition: font-size 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
    white-space: nowrap;
}

#custom-cursor.hover {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 1);
}

#custom-cursor.hover .cursor-text {
    font-size: 13px;
    opacity: 1;
}

@media all and (max-width: 1024px) {
    #custom-cursor {
        display: none !important;
    }
}

/* ================================ Scroll Fade Up ================================ */

.fade-up-ready {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fade-up-ready.fade-up {
    opacity: 1;
    transform: translateY(0);
}

/* ================================ Header ================================ */

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
    height: var(--header-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--padding-pc);
    /* background-color: red; */
    transition: transform 0.6s ease, opacity 0.6s ease, background 0.3s ease;
    opacity: 0;
}

.header.header--visible {
    opacity: 1;
}

.header.header--scrolled {
    backdrop-filter: var(--header-filter);
    -webkit-backdrop-filter: var(--header-filter);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.header.header--scrolled .gnb_link {
    color: var(--base-color-black);
}

.header.header--scrolled .hd_btn {
    border-color: var(--base-color-black);
    color: var(--base-color-black);
}

.header.header--scrolled .hamburger span {
    background: var(--base-color-black);
}

.header.header--scrolled .logo .logo_default {
    display: none;
}

.header.header--scrolled .logo .logo_scroll {
    display: block;
}

.header.header--scrolled .gnb_sub {
    background: rgba(255, 255, 255, 0.95);
}

.header.header--scrolled .gnb_sub_link {
    color: var(--base-color-black);
}

/* 스크롤 0~99px에서 hover 시 */
.header:not(.header--scrolled):hover {
    backdrop-filter: var(--header-filter);
    -webkit-backdrop-filter: var(--header-filter);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.header:not(.header--scrolled):hover .gnb_link {
    color: var(--base-color-black);
}

.header:not(.header--scrolled):hover .hd_btn {
    border-color: var(--base-color-black);
    color: var(--base-color-black);
}

.header:not(.header--scrolled):hover .hamburger span {
    background: var(--base-color-black);
}

.header:not(.header--scrolled):hover .logo .logo_default {
    display: none;
}

.header:not(.header--scrolled):hover .logo .logo_scroll {
    display: block;
}

.header.header--hidden {
    transform: translateY(-100%);
}

/* 좌측: 로고 */
.header .logo {
    flex-shrink: 0;
    width: clamp(120px, 8vw, 160px);
}

.header .logo a {
    display: flex;
    align-items: center;
    height: 100%;
}

.header .logo img {
    width: 100%;
    height: auto;
}

.header .logo .logo_scroll {
    display: none;
}


/* 중앙: 네비게이션 */
.header .gnb {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.header .gnb > h2 {
    display: none;
}

.header .gnb_list {
    display: flex;
    align-items: center;
    gap: clamp(10px, 2vw, 40px);
}

.header .gnb_item {
    position: relative;
}

.header .gnb_link {
    display: inline-block;
    padding: 10px 0;
    color: var(--base-color-white);
    font-size: var(--text-font-size);
    font-weight: 400;
    white-space: nowrap;
    transition: opacity 0.3s;
}

.header .gnb_item:hover ~ .gnb_item .gnb_link,
.header .gnb_item:has(~ .gnb_item:hover) .gnb_link {
    opacity: 0.5;
}

/* 2차 메뉴 (드롭다운) */
.header .gnb_sub {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 140px;
    padding: 10px 0;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.header .gnb_item:hover .gnb_sub {
    display: block;
}

.header .gnb_sub_link {
    display: block;
    padding: 8px 20px;
    color: var(--base-color-white);
    font-size: var(--text-font-size-s);
    white-space: nowrap;
    transition: opacity 0.3s;
}

.header .gnb_sub_link:hover {
    opacity: 0.6;
}

/* 우측: 버튼 + 햄버거 */
.header .hd_right {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 20px;
}

.header .hd_btn {
    display: inline-flex;
    align-items: center;
    padding: 10px 20px;
    border: 1px solid var(--base-color-white);
    border-radius: 30px;
    color: var(--base-color-white);
    font-size: 14px;
    white-space: nowrap;
    transition: all 0.3s;
}

.header .hd_btn:hover {
    background: var(--base-color-black) !important;
    border-color: var(--base-color-black) !important;
    color: #fff !important;
}

/* 햄버거 메뉴 버튼 */
.header .hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 22px;
    height: 28px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.header .hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--base-color-white);
    transition: 0.3s;
}

/* ---- header_w (흰색 헤더) ---- */
.header.header_w .gnb_link {
    color: var(--base-color-black);
}

.header.header_w .hd_btn {
    border-color: var(--base-color-black);
    color: var(--base-color-black);
}

.header.header_w .hamburger span {
    background: var(--base-color-black);
}

.header.header_w.header--scrolled {
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.header.header_w:not(.header--scrolled):hover {
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

.header.header_w .gnb_sub {
    background: rgba(255, 255, 255, 0.95);
}

.header.header_w .gnb_sub_link {
    color: var(--base-color-black);
}

/* ================================ Wrapper (fixed 헤더 높이만큼 여백) ================================ */

#wrapper.sub_page {
    padding-top: var(--header-height);
}

/* ================================ 전체메뉴 (오버레이) ================================ */

.gnb_all {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: var(--base-color-white);
    z-index: 10001;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 0 var(--padding-pc);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.8s ease;
    overflow-y: auto;
}

.gnb_all.active {
    opacity: 1;
    pointer-events: auto;
}

.gnb_all h2 {
    display: none;
}

.gnb_all_list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.gnb_all_item {
    text-align: left;
    padding: clamp(8px, 1.5vh, 15px) 0;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}


.gnb_all.active .gnb_all_item {
    opacity: 1;
    transform: translateY(0);
}

.gnb_all.active .gnb_all_item:nth-child(1) { transition-delay: 0.1s; }
.gnb_all.active .gnb_all_item:nth-child(2) { transition-delay: 0.2s; }
.gnb_all.active .gnb_all_item:nth-child(3) { transition-delay: 0.3s; }
.gnb_all.active .gnb_all_item:nth-child(4) { transition-delay: 0.4s; }
.gnb_all.active .gnb_all_item:nth-child(5) { transition-delay: 0.5s; }
.gnb_all.active .gnb_all_item:nth-child(6) { transition-delay: 0.6s; }
.gnb_all.active .gnb_all_item:nth-child(7) { transition-delay: 0.7s; }
.gnb_all.active .gnb_all_item:nth-child(8) { transition-delay: 0.8s; }

/* 메뉴 링크 - hover 시 텍스트 슬라이드 업 */
.gnb_all_link {
    display: block;
    position: relative;
    overflow: hidden;
}

.gnb_all_link .nav_text {
    display: block;
    color: var(--base-color-black);
    font-size: clamp(28px, 3.5vw, 50px);
    font-weight: 600;
    line-height: 1.2;
    transition: transform 0.4s ease;
}

.gnb_all_link .nav_text_hover {
    position: absolute;
    left: 0;
    top: 100%;
    color: var(--signature-color);
    font-size: clamp(28px, 3.5vw, 50px);
    font-weight: 600;
    line-height: 1.2;
    transition: transform 0.4s ease;
    white-space: nowrap;
}

.gnb_all_link:hover .nav_text {
    transform: translateY(-100%);
}

.gnb_all_link:hover .nav_text_hover {
    transform: translateY(-100%);
}

/* 서브메뉴 */
.gnb_all_item ul {
    padding: 0 0 10px 0;
}

.gnb_all_item ul li a {
    display: inline-block;
    padding: 6px 0;
    color: var(--background-color-gray);
    font-size: var(--text-font-size);
    transition: color 0.3s;
}

.gnb_all_item ul li a:hover {
    color: var(--signature-color);
}

/* 닫기 버튼 - X 형태 */
.gnb_all_close {
    position: absolute;
    top: 30px;
    right: var(--padding-pc);
    width: clamp(40px, 7vw, 100px);
    height: clamp(40px, 7vw, 100px);
    background: none;
    border: none;
    cursor: pointer;
    transition: transform 0.3s;
}


.gnb_all_close:hover {
    transform: rotate(90deg);
}

.gnb_all_close span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--base-color-black);
    position: absolute;
    top: 50%;
    left: 0;
}

.gnb_all_close span:first-child {
    transform: rotate(45deg);
}

.gnb_all_close span:last-child {
    transform: rotate(-45deg);
}

/* 우측 하단 영상 */
.gnb_all_video {
    position: absolute;
    right: var(--padding-pc);
    bottom: var(--padding-pc);
    width: 450px;
    border-radius: 10px;
    overflow: hidden;
}

.gnb_all_video video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ================================ 메인 섹션 ================================ */

.section_1 {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.section_1 video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.section_1_video_back {
    z-index: 0;
}

.section_1_video_front {
    z-index: 1;
    transition: opacity 1.5s ease-in-out;
}

.section_1_scroll {
    position: absolute;
    bottom: clamp(15px, 1vw, 20px);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.section_1_scroll span {
    font-size: clamp(11px, 0.75vw, 13px);
    color: #fff;
    letter-spacing: 0.15em;
    font-weight: 400;
}

.section_1_scroll_line {
    width: 1px;
    height: clamp(30px, 2vw, 40px);
    background: rgba(255, 255, 255, 0.3);
    position: relative;
    overflow: hidden;
}

.section_1_scroll_line::after {
    content: '';
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    animation: scrollLine 1.8s ease-in-out infinite;
}

@keyframes scrollLine {
    0% { top: -100%; }
    50% { top: 0; }
    100% { top: 100%; }
}

/* ================================ section_2 ================================ */

.section_2 {
    background: var(--base-color-white);
    padding: clamp(80px, 10vw, 160px) var(--padding-pc);
}

.section_2_inner {
    display: flex;
}

.section_2_left {
    width: 60%;
    display: flex;
    gap: clamp(20px, 2.5vw, 40px);
    align-items: stretch;
}


.section_2_keywords {
    display: flex;
    flex-direction: column;
}

.section_2_keywords span {
    display: block;
    font-size: clamp(32px, 6.4vw, 100px);
    font-weight: 600;
    line-height: 1.2;
    color: var(--base-color-black);
    letter-spacing: -0.02em;
}

.section_2_keywords span em {
    display: inline-block;
    font-style: normal;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: var(--base-color-black);
    margin-right: 0;
    transition: color 1s ease, margin-right 1s ease;
}

.section_2_keywords span.active em {
    margin-right: 12px;
}

.section_2_keywords span:nth-child(1).active em {
    color: #355FFE;
}

.section_2_keywords span:nth-child(2).active em {
    color: #4935FE;
}

.section_2_keywords span:nth-child(3).active em {
    color: #5535FE;
}

.section_2_keywords span:nth-child(4).active em {
    color: #7735FE;
}

.section_2_right {
    width: 40%;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    flex: 1;
    min-height: 100%;
}

.section_2_desc {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 2vw, 28px);
    padding-top: 15px;
}

.section_2_desc p {
    font-size: var(--text-font-title-size);
    line-height: 1.5;
    color: #333;
    word-break: keep-all;
}

.section_2_btn_wrap {
    display: flex;
    justify-content: flex-end;
}

.section_2_btn {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: var(--base-color-black);
    font-size: clamp(17px, 1.5vw, 22px);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: color 0.3s;
}

.section_2_btn img {
    width: clamp(30px, 4vw, 52px);
    height: auto;
}

.section_2_btn:hover {
    color: var(--signature-color);
}

/* ================================ section_3 ================================ */

.section_3 {
    background: var(--base-color-black);
    padding: clamp(80px, 10vw, 160px) var(--padding-pc);
    overflow: hidden;
}

.section_3_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: clamp(40px, 5vw, 80px);
}

.section_3_header_left {
    flex-shrink: 0;
}

.section_3_suptitle {
    font-size: clamp(28px, 3.33vw, 64px);
    font-weight: 300;
    color: var(--base-color-white);
}

.section_3_title {
    font-size: clamp(34px, 3.96vw, 76px);
    font-weight: 700;
    color: var(--base-color-white);
}

.section_3_header_right {
    text-align: right;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: clamp(16px, 2vw, 32px);
}

.section_3_btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: clamp(14px, 1vw, 18px);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: color 0.3s;

    span {
        color: var(--base-color-white) !important;
    }
}

.section_3_btn img {
    width: clamp(24px, 3vw, 40px);
    height: auto;
    filter: invert(1);
    transition: transform 0.3s ease;
}

.section_3_btn:hover {
    color: var(--signature-color);
}

.section_3_btn:hover img {
    transform: translateX(6px);
}

.section_3_desc {
    font-size: var(--text-font-title-size);
    color: #999;
    font-weight: 300;
    line-height: 1.5;
}

.section_3_marquee_wrap {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1.5vw, 24px);
    overflow: hidden;
}

.section_3_marquee {
    overflow: hidden;
    width: 100%;
}

.section_3_marquee_track {
    display: flex;
    gap: clamp(12px, 1.5vw, 24px);
    width: max-content;
}

.section_3_marquee--left .section_3_marquee_track {
    animation: marqueeLeft 60s linear infinite;
}

.section_3_marquee--right .section_3_marquee_track {
    animation: marqueeRight 60s linear infinite;
}

@keyframes marqueeLeft {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes marqueeRight {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

.section_3_marquee_track .section_3_card {
    flex-shrink: 0;
    width: clamp(260px, 22vw, 420px);
}

.section_3_card {
    overflow: hidden;
    position: relative;
    cursor: pointer;
}

.section_3_card:hover .section_3_thumb img {
    transform: scale(1.05);
}

.section_3_thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 4px;
}

.section_3_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.3);
    transition: transform 0.6s ease, filter 0.4s ease;
}

.section_3_card:hover .section_3_thumb img {
    filter: saturate(1);
}

.section_3_card_info {
    display: flex;
    align-items: baseline;
    gap: clamp(8px, 0.6vw, 14px);
    margin-top: clamp(8px, 0.8vw, 14px);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.section_3_card:hover .section_3_card_info {
    opacity: 1;
}

.section_3_name {
    font-size: clamp(13px, 0.9vw, 16px);
    font-weight: 400;
    color: #ccc;
    line-height: 1.4;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.section_3_cate {
    flex-shrink: 0;
    font-size: clamp(11px, 0.75vw, 13px);
    color: #999;
    white-space: nowrap;
}

/* ================================ Section 4 ================================ */

.section_4 {
    padding: clamp(80px, 8vw, 160px) var(--padding-pc);
    max-width: var(--max-width);
    margin: 0 auto;
}

.section_4_title {
    font-size: clamp(32px, 3vw, 64px);
    font-weight: 700;
    color: var(--base-color-black);
    margin-bottom: clamp(40px, 4vw, 80px);
}

.section_4_accordion {
    border-top: 1px solid #ddd;
}

.section_4_item {
    border-bottom: 1px solid #ddd;
}

.section_4_item_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: clamp(20px, 1.8vw, 36px) 0;
    cursor: pointer;
    transition: opacity 0.3s;
}

.section_4_item_header:hover {
    opacity: 0.7;
}

.section_4_item_kr {
    font-size: clamp(18px, 1.2vw, 24px);
    font-weight: 600;
    color: var(--base-color-black);
    min-width: 160px;
}

.section_4_item.active .section_4_item_kr {
    color: var(--signature-color);
}

.section_4_item_en {
    flex: 1;
    text-align: right;
    font-size: clamp(15px, 1vw, 20px);
    font-weight: 400;
    color: #999;
    letter-spacing: 0.05em;
    margin-right: clamp(12px, 1vw, 20px);
}

.section_4_item_arrow {
    display: flex;
    align-items: center;
    transition: transform 0.3s;
}

.section_4_item_arrow img {
    width: clamp(16px, 1.2vw, 24px);
    height: auto;
    transition: transform 0.3s;
}

.section_4_item.active .section_4_item_arrow img {
    transform: rotate(180deg);
}

.section_4_item_body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease, padding 0.5s ease;
    padding: 0;
}

.section_4_item.active .section_4_item_body {
    max-height: 600px;
    padding: 0 0 clamp(30px, 2.5vw, 50px) 0;
}

.section_4_item_desc {
    font-size: var(--text-font-title-size);
    color: #666;
    line-height: 1.5;
    margin-bottom: clamp(20px, 2vw, 40px);
}

.section_4_item_content {
    display: flex;
    gap: clamp(20px, 2vw, 40px);
    align-items: flex-start;
}

.section_4_item_img {
    flex-shrink: 0;
    width: clamp(200px, 20vw, 360px);
    border-radius: 4px;
    overflow: hidden;
}

.section_4_item_img img {
    width: 100%;
    aspect-ratio: 6 / 3;
    object-fit: cover;
    display: block;
}

.section_4_item_info {
    flex: 1;
}

.section_4_item_info p {
    font-size: var(--text-font-title-size);
    color: #555;
    line-height: 1.5;
    margin-bottom: clamp(12px, 1vw, 20px);
}

.section_4_item_tags {
    font-size: clamp(13px, 0.7vw, 14px);
    color: #999;
    margin-bottom: clamp(16px, 1.2vw, 24px);
}

.section_4_item_link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: clamp(13px, 0.8vw, 15px);
    font-weight: 500;
    color: var(--base-color-black);
    text-decoration: none;
    transition: opacity 0.3s;
}

.section_4_item_link:hover {
    opacity: 0.6;
}

.section_4_item_link img {
    width: clamp(20px, 1.5vw, 28px);
    height: auto;
    transition: transform 0.3s;
}

.section_4_item_link:hover img {
    transform: translateX(4px);
}

/* ================================ Section 5: BY THE NUMBERS ================================ */

.section_5 {
    position: relative;
    overflow: hidden;
    padding: clamp(100px, 10vw, 200px) var(--padding-pc);
}

.section_5_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.section_5_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

.section_5_inner {
    position: relative;
    z-index: 2;
}

.section_5_header {
    margin-bottom: clamp(50px, 5vw, 100px);
}

.section_5_title {
    font-size: clamp(32px, 3.5vw, 68px);
    font-weight: 700;
    color: var(--base-color-white);
    margin-bottom: clamp(16px, 1.5vw, 28px);
}

.section_5_desc {
    font-size: var(--text-font-title-size);
    color: #aaa;
    line-height: 1.5;
    font-weight: 300;
}

.section_5_cards {
    display: flex;
    gap: clamp(16px, 1.5vw, 30px);
}

.section_5_card {
    flex: 1;
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: clamp(28px, 2.1vw, 48px) clamp(24px, 2vw, 40px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: clamp(180px, 14vw, 260px);
}

.section_5_card_label {
    font-size: clamp(16px, 0.94vw, 18px);
    color: #ccc;
    line-height: 1.6;
    font-weight: 400;
}

.section_5_card_value {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: clamp(4px, 0.4vw, 8px);
    margin-top: clamp(20px, 2vw, 40px);
}

.section_5_number {
    font-size: clamp(48px, 5vw, 96px);
    font-weight: 700;
    color: var(--base-color-white);
    line-height: 1;
}

.section_5_unit {
    font-size: clamp(14px, 1vw, 20px);
    color: #aaa;
    font-weight: 400;
}

/* ================================ Section 6 ================================ */

.section_6 {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
}

.section_6_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0;
    transition: opacity 1.5s ease;
}

.section_6.active .section_6_bg {
    opacity: 1;
}

.section_6_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 1;
}

.section_6_inner {
    position: relative;
    z-index: 2;
    text-align: center;
}

.section_6_title {
    font-size: clamp(24px, 2.5vw, 48px);
    font-weight: 700;
    color: var(--base-color-white);
    line-height: 1.3;
    margin-bottom: clamp(16px, 1.5vw, 30px);
}

.section_6_title em {
    font-style: normal;
    font-size: inherit;
    font-weight: inherit;
    color: var(--signature-color);
}

.section_6_desc {
    font-size: var(--text-font-title-size);
    color: #e4e4e4;
    line-height: 1.5;
    font-weight: 300;
}

/* ================================ Section 7: LET'S WORK TOGETHER ================================ */

.section_7 {
    background: #000;
    padding: clamp(100px, 10vw, 200px) var(--padding-pc);
}

.section_7_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.section_7_title {
    font-size: clamp(36px, 4.5vw, 88px);
    font-weight: 700;
    color: var(--base-color-white);
    line-height: 1.2;
    margin-bottom: clamp(20px, 2vw, 40px);
}

.section_7_title em {
    font-style: normal;
    font-size: inherit;
    font-weight: inherit;
    color: var(--signature-color);
}

.section_7_desc {
    font-size: var(--text-font-title-size);
    color: #aaa;
    line-height: 1.5;
    font-weight: 300;
    margin-bottom: clamp(40px, 4vw, 70px);
}

.section_7_btns {
    display: flex;
    gap: clamp(12px, 1.2vw, 24px);
}

.section_7_btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: clamp(16px, 1.1vw, 20px) clamp(28px, 2.5vw, 48px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50px;
    color: var(--base-color-white) !important;
    font-size: clamp(14px, 0.9vw, 17px);
    font-weight: 500;
    letter-spacing: 0.03em;
    text-decoration: none;
    background: transparent;
    transition: all 0.3s ease;
}

.section_7_btn span {
    color: var(--base-color-white) !important;
}

.section_7_btn svg {
    color: var(--base-color-white) !important;
}

.section_7_btn:hover {
    background: var(--signature-color);
    border-color: var(--signature-color);
}

/* ================================ Contact Us ================================ */

.contact_wrap {
    background: #fff;
    padding: clamp(60px, 8vw, 120px) var(--padding-pc) clamp(60px, 6vw, 100px);
}

.contact_inner {
    max-width: var(--max-width);
    margin: 0 auto;
}

.contact_header {
    margin-bottom: clamp(40px, 4vw, 70px);
}

.contact_title {
    font-size: clamp(32px, 3.8vw, 78px);
    font-weight: 800;
    color: #000;
    line-height: 1.2;
    margin-bottom: clamp(16px, 1.5vw, 28px);
}

.contact_info p {
    font-size: var(--text-font-title-size);
    color: #222;
    line-height: 1.5;
}

.contact_info p strong {
    font-weight: 700;
    font-size: var(--text-font-title-size);
    margin-right: 8px;
}

/* 폼 */
.contact_form {
    display: flex;
    flex-direction: column;
    gap: clamp(32px, 3vw, 50px);
}

.contact_field {}

.contact_label {
    display: block;
    font-size: clamp(14px, 1vw, 16px);
    font-weight: 600;
    color: #000;
    margin-bottom: clamp(12px, 1vw, 20px);
}

.contact_label .required {
    color: #000;
}

/* 문의사항 카테고리 버튼 */
.contact_category {
    display: flex;
    gap: clamp(10px, 0.7813vw ,20px);
}

.contact_cat_item {
    flex: 1;
    cursor: pointer;
}

.contact_cat_item input[type="radio"],
.contact_cat_item input[type="checkbox"] {
    display: none;
}

.contact_cat_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: clamp(48px, 4vw, 60px);
    border: 1px solid #ddd;
    margin-left: -1px;
    font-size: clamp(13px, 0.9vw, 15px);
    color: #333;
    background: #f5f5f5;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    cursor: pointer;
}

.contact_cat_item:first-child .contact_cat_btn {
    margin-left: 0;
    border-radius: 4px 0 0 4px;
}

.contact_cat_item:last-child .contact_cat_btn {
    border-radius: 0 4px 4px 0;
}

.contact_cat_btn:hover {
    background: #eee;
}

.contact_cat_btn.active {
    background: #222;
    color: #fff;
    border-color: #222;
    position: relative;
    z-index: 1;
}

/* 정보 입력 필드 */
.contact_inputs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(12px, 1vw, 20px);
}

.contact_inputs input {
    width: 100%;
    padding: clamp(10px, 0.8vw, 14px) 0;
    border: none;
    border-bottom: 1px solid #ccc;
    font-size: clamp(13px, 0.9vw, 15px);
    color: #222;
    background: transparent;
    outline: none;
    transition: border-color 0.2s;
}

.contact_inputs input::placeholder {
    color: #999;
}

.contact_inputs input:focus {
    border-bottom-color: #000;
}

/* 문의 내용 텍스트영역 */
.contact_textarea {
    width: 100%;
    min-height: clamp(160px, 15vw, 240px);
    padding: clamp(14px, 1vw, 20px);
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: clamp(13px, 0.9vw, 15px);
    color: #222;
    background: #fff;
    resize: vertical;
    outline: none;
    transition: border-color 0.2s;
    font-family: inherit;
}

.contact_textarea:focus {
    border-color: #000;
}

/* 하단 동의 + 제출 */
.contact_bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.contact_agree {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.contact_agree input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #000;
    cursor: pointer;
}

.contact_agree_text {
    font-size: clamp(13px, 0.85vw, 14px);
    color: #333;
}

.contact_agree_text a {
    color: #333;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.contact_submit {
    flex-shrink: 0;
    min-width: clamp(200px, 25vw, 360px);
    padding: clamp(14px, 1.2vw, 20px) clamp(30px, 3vw, 60px);
    background: #e8e8e8;
    border: none;
    border-radius: 4px;
    font-size: clamp(14px, 1vw, 16px);
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.contact_submit:hover {
    background: #222;
    color: #fff;
}

/* 개인정보 팝업 */
.privacy_popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}

.privacy_popup.active {
    display: flex;
}

.privacy_popup_inner {
    background: #fff;
    border-radius: 8px;
    width: 90%;
    max-width: 640px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15);
}

.privacy_popup_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: clamp(16px, 1.5vw, 24px) clamp(20px, 2vw, 32px);
    border-bottom: 1px solid #eee;
    flex-shrink: 0;
}

.privacy_popup_header h3 {
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 700;
    color: #000;
}

.privacy_popup_close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    display: flex;
    transition: opacity 0.2s;
}

.privacy_popup_close:hover {
    opacity: 0.5;
}

.privacy_popup_body {
    padding: clamp(20px, 2vw, 32px);
    overflow-y: auto;
    font-size: clamp(13px, 0.85vw, 15px);
    color: #333;
    line-height: 1.8;
}

.privacy_popup_body h4 {
    font-size: clamp(14px, 0.9vw, 16px);
    font-weight: 700;
    color: #000;
    margin-top: 24px;
    margin-bottom: 12px;
}

.privacy_popup_body h4:first-child {
    margin-top: 0;
}

.privacy_popup_body p {
    margin-bottom: 12px;
}

.privacy_popup_table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
}

.privacy_popup_table th,
.privacy_popup_table td {
    border: 1px solid #ddd;
    padding: 12px 16px;
    text-align: left;
    font-size: clamp(13px, 0.85vw, 14px);
}

.privacy_popup_table th {
    background: #f5f5f5;
    font-weight: 600;
    color: #000;
}

.privacy_popup_notice {
    color: #888;
    font-size: clamp(12px, 0.8vw, 13px);
}

/* ================================ Footer ================================ */

.footer#ft {
    background: #000;
    text-align: left;
    padding: clamp(40px, 4vw, 80px) var(--padding-pc);
    position: relative;
    z-index: 1;
}

.footer_inner {
    display: flex;
    align-items: flex-start;
    gap: clamp(40px, 4vw, 80px);
    max-width: var(--max-width);
    margin: 0 auto;
}

.footer_left {
    flex-shrink: 0;
    min-width: 240px;
}

.footer_logo {
    margin-bottom: 12px;
}

.footer_logo img {
    height: clamp(29px, 2vw, 40px);
    width: auto;
}

.footer_copy {
    font-size: clamp(11px, 0.7vw, 13px);
    color: #888;
    margin-bottom: clamp(16px, 1.5vw, 28px);
}

.footer_privacy {
    display: inline-block;
    font-size: clamp(12px, 0.75vw, 14px);
    color: rgb(136, 136, 136) !important;
    font-weight: 500;
    margin-bottom: clamp(16px, 1.5vw, 28px);
    text-decoration: none;
    transition: color 0.3s;
}

.footer_privacy:hover {
    color: #fff !important;
}

.footer_sns {
    display: flex;
    gap: 8px;
}

.footer_sns_icon {
    display: flex;
    transition: opacity 0.3s;
}

.footer_sns_icon:hover {
    opacity: 0.6;
}

.footer_center,
.footer_right {
    flex: 1;
}

.footer_heading {
    font-size: clamp(14px, 0.9vw, 17px);
    font-weight: 700;
    color: var(--base-color-white);
    margin-bottom: clamp(16px, 1.5vw, 28px);
}

.footer_info {
    display: flex;
    flex-direction: column;
    gap: clamp(6px, 0.5vw, 10px);
}

.footer_info_row {
    display: flex;
    gap: clamp(16px, 1.5vw, 32px);
}

.footer_info_row dt {
    flex-shrink: 0;
    min-width: clamp(60px, 4.5vw, 80px);
    font-size: clamp(13px, 0.75vw, 14px);
    color: #888;
}

.footer_info_row dd {
    font-size: clamp(13px, 0.75vw, 14px);
    color: #ccc;
}

/* ---- footer_b (기본 검은 배경) ---- */
.footer#ft.footer_b {
    background: #000;
}

/* ---- footer_w (흰색 배경) ---- */
.footer#ft.footer_w {
    background: #fff;
    border-top: 1px solid #e0e0e0;
}

.footer_w .footer_copy {
    color: #666;
}

.footer_w .footer_privacy {
    color: #666 !important;
}

.footer_w .footer_privacy:hover {
    color: #000 !important;
}

.footer_w .footer_sns_icon svg circle {
    stroke: #222;
}

.footer_w .footer_sns_icon svg text,
.footer_w .footer_sns_icon svg path {
    fill: #222;
}

.footer_w .footer_heading {
    color: #000;
}

.footer_w .footer_info_row dt {
    color: #666;
}

.footer_w .footer_info_row dd {
    color: #333;
}

/* ================================ 우측 하단 고정 버튼 ================================ */

.fixed_btns {
    position: fixed;
    bottom: clamp(15px, 1.3vw, 30px);
    right: var(--padding-pc);
    z-index: 99999;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    align-items: flex-end;
}

.fixed_btn {
    width: clamp(50px, 3vw, 60px);
    height: clamp(50px, 3vw, 60px);
    border-radius: 50%;
    border: 1px solid #2d2d2d;
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
}

.fixed_btn:hover {
    background: #2d2d2d;
    color: #fff !important;
}

.fixed_btn_phone,
.fixed_btn_contact {
    width: auto;
    height: auto;
    border-radius: 28px;
    padding: 14px 24px;
    font-size: clamp(13px, 0.9vw, 15px);
    font-weight: 500;
    color: #2d2d2d !important;
    white-space: nowrap;
    text-decoration: none;
}

.fixed_btn_phone:hover,
.fixed_btn_contact:hover {
    color: #fff !important;
}

/* Top 버튼 */
.fixed_btn_top {
    flex-direction: column;
    gap: 2px;
}

.fixed_btn_top svg path {
    fill: #000;
}

.fixed_btn_top_label {
    font-size: 10px;
    color: #000;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1;
}

/* ================================ 서브 비주얼 ================================ */

.sub_section_visual {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 0;
    overflow: hidden;
}

.sub_visual_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.sub_visual_bg img,
.sub_visual_bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sub_visual_bg img {
    transform: scale(1.5);
}

.sub_visual_bg video {
    transform: scale(1.1);
}

.sub_section_visual.visual-ready .sub_visual_bg img {
    animation: visualSnap 1.2s ease forwards;
}

@keyframes visualSnap {
    0%   { transform: scale(1.5); }
    50%  { transform: scale(1); }
    100% { transform: scale(1.1); }
}

.sub_visual_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
}

.sub_visual_text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-align: center;
    padding: 0 var(--padding-pc);
}

.sub_visual_text h2 {
    font-size: clamp(32px, 3.9583vw, 86px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.04em;
    margin-bottom: 20px;
    color: #fff;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease 0.4s, transform 0.6s ease 0.4s;
}

.sub_visual_text p {
    font-size: var(--text-font-title-size);
    font-weight: 300;
    line-height: 1.5;
    max-width: 600px;
    color: #fff;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease 0.7s, transform 0.6s ease 0.7s;
}

.sub_section_visual.visual-ready .sub_visual_text h2,
.sub_section_visual.visual-ready .sub_visual_text p {
    opacity: 1;
    transform: translateY(0);
}

.sub_visual_text .sub_point {
    font-weight: 700;
    color: #fff;
    font-size: var(--text-font-title-size);
}

.sub_visual_spacer {
    height: calc(100vh - var(--header-height));
}

.sub_wrap {
    position: relative;
    z-index: 1;
    background: #fff;
}

/* ================================ About - Section Slogan ================================ */

.about-section-slogan {
    padding: var(--all-sec-margin-position) 0;
    overflow: hidden;
}

.about-slogan-text {
    display: flex;
    flex-direction: column;
    gap: clamp(4px, 0.5vw, 10px);
}

/* Step 1: 글자 아래에서 위로 올라옴 */
.about-slogan-line {
    display: flex;
    align-items: baseline;
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.about-slogan-line.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.about-slogan-line span {
    font-size: clamp(28px, 7vw, 120px);
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--base-color-black);
}

/* Step 2: CREATIVE 포인트 칼라 전환 */
.about-slogan-line .color_point {
    font-size: clamp(28px, 7vw, 120px);
    font-weight: 900;
    color: var(--base-color-black);
    transition: color 0.4s ease;
}

.about-section-slogan.step-2 .about-slogan-line .color_point {
    color: var(--signature-color);
}

/* 선 & 이미지 전환 영역 */
.about-slogan-divider {
    position: relative;
    display: inline-block;
    width: 0;
    height: 3px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 4px;
    margin: 0;
    margin-bottom: 0.34em;
    transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                height 0.35s cubic-bezier(0.22, 1, 0.36, 1) 0.1s,
                margin-bottom 0.35s cubic-bezier(0.22, 1, 0.36, 1) 0.1s,
                margin-left 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                margin-right 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.about-slogan-line-bar {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 3px;
    background: var(--base-color-black);
    transform: translateY(-50%);
    transition: opacity 0.3s ease;
}

.about-slogan-line-img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 0.68em;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.5s ease;
}

/* Step 2: 선이 나타나면서 CREATIVE를 오른쪽으로 밀어냄 */
.about-section-slogan.step-2 .about-slogan-divider {
    width: clamp(80px, 8vw, 200px);
    margin-left: clamp(6px, 0.8vw, 16px);
    margin-right: clamp(6px, 0.8vw, 16px);
}

/* Step 3: 선이 위아래로 벌어지면서 이미지 나타남 */
.about-section-slogan.step-3 .about-slogan-divider {
    height: 0.68em;
    margin-bottom: 0;
}

.about-section-slogan.step-3 .about-slogan-line-bar {
    opacity: 0;
}

.about-section-slogan.step-3 .about-slogan-line-img {
    opacity: 1;
}


/* ================================ Sub1_2 - Keyword Marquee ================================ */

.sub1_2_wrap .about-section-keyword {
    overflow: hidden;
}
.sub1_2_wrap .keyword-marquee-wrap {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1.5vw, 24px);
}
.sub1_2_wrap .keyword-marquee {
    overflow: hidden;
    width: 100%;
}
.sub1_2_wrap .keyword-marquee-track {
    display: flex;
    gap: clamp(10px, 1.2vw, 20px);
    width: max-content;
    will-change: transform;
}
.sub1_2_wrap .keyword-marquee--right .keyword-marquee-track {
    animation: kwMarqueeRight 80s linear infinite;
}
.sub1_2_wrap .keyword-marquee--left .keyword-marquee-track {
    animation: kwMarqueeLeft 80s linear infinite;
}
@keyframes kwMarqueeRight {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@keyframes kwMarqueeLeft {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}
.sub1_2_wrap .keyword-tag {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(10px, 1.2vw, 18px) clamp(20px, 2.5vw, 40px);
    border: 2px solid var(--base-color-black);
    border-radius: 999px;
    font-size: clamp(14px, 1.6vw, 26px);
    font-weight: 700;
    color: var(--base-color-black);
    white-space: nowrap;
    background: transparent;
    letter-spacing: -0.02em;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    cursor: pointer;
}
.sub1_2_wrap .keyword-tag:hover {
    background: var(--base-color-black);
    color: #fff;
    border-color: var(--base-color-black);
}
.sub1_2_wrap .keyword-marquee:hover .keyword-marquee-track {
    animation-play-state: paused;
}


/* ================================ Sub1_2 - Services ================================ */

.sub1_2_wrap .svc-section,
.sub1_3_wrap .svc-section,
.sub1_4_wrap .svc-section,
.sub1_5_wrap .svc-section {
    padding: var(--all-sec-margin-position) 0;
}
.sub1_2_wrap .svc-header,
.sub1_3_wrap .svc-header,
.sub1_4_wrap .svc-header,
.sub1_5_wrap .svc-header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 5vw, 80px);
    align-items: center;
    margin-bottom: clamp(40px, 5vw, 80px);
}
.sub1_2_wrap .svc-header-title,
.sub1_3_wrap .svc-header-title,
.sub1_4_wrap .svc-header-title,
.sub1_5_wrap .svc-header-title {
    font-size: clamp(28px, 4vw, 56px);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: var(--base-color-black);
}
.sub1_2_wrap .svc-header-title em,
.sub1_3_wrap .svc-header-title em,
.sub1_4_wrap .svc-header-title em,
.sub1_5_wrap .svc-header-title em {
    font-style: normal;
    font-size: inherit;
    font-weight: inherit;
    color: var(--signature-color);
}
.sub1_2_wrap .svc-header-desc,
.sub1_3_wrap .svc-header-desc,
.sub1_4_wrap .svc-header-desc,
.sub1_5_wrap .svc-header-desc {
    font-size: var(--text-font-title-size);
    line-height: 1.5;
    color: #555;
    max-width: 520px;
    margin-top: clamp(16px, 2vw, 32px);
}
.sub1_2_wrap .svc-header-right,
.sub1_3_wrap .svc-header-right,
.sub1_4_wrap .svc-header-right,
.sub1_5_wrap .svc-header-right {
    display: flex;
    justify-content: center;
    align-items: center;
}
.sub1_2_wrap .svc-header-img,
.sub1_3_wrap .svc-header-img,
.sub1_4_wrap .svc-header-img,
.sub1_5_wrap .svc-header-img {
    width: clamp(180px, 18vw, 290px);
    animation: svcFloat 3s ease-in-out infinite;
}
@keyframes svcFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-16px); }
}
.sub1_2_wrap .svc-big-text,
.sub1_3_wrap .svc-big-text,
.sub1_4_wrap .svc-big-text,
.sub1_5_wrap .svc-big-text {
    font-size: clamp(36px, 8vw, 104px);
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1.15;
    color: var(--light-gray);
    text-align: center;
    padding-bottom: clamp(40px, 5vw, 80px);
    overflow: hidden;
}

/* Service List */
.sub1_2_wrap .svc-list,
.sub1_3_wrap .svc-list,
.sub1_4_wrap .svc-list,
.sub1_5_wrap .svc-list {
    display: flex;
    flex-direction: column;
}
.sub1_2_wrap .svc-item,
.sub1_3_wrap .svc-item,
.sub1_4_wrap .svc-item,
.sub1_5_wrap .svc-item {
    display: grid;
    grid-template-columns: clamp(180px, 18vw, 300px) 1fr;
    gap: clamp(40px, 5vw, 80px);
    padding: clamp(40px, 5vw, 80px) 0;
    border-top: 1px solid #e5e3de;
    align-items: start;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.sub1_2_wrap .svc-item.is-visible,
.sub1_3_wrap .svc-item.is-visible,
.sub1_4_wrap .svc-item.is-visible,
.sub1_5_wrap .svc-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.sub1_2_wrap .svc-item:last-child,
.sub1_3_wrap .svc-item:last-child,
.sub1_4_wrap .svc-item:last-child,
.sub1_5_wrap .svc-item:last-child {
    border-bottom: 1px solid #e5e3de;
}

/* Meta */
.sub1_2_wrap .svc-meta,
.sub1_3_wrap .svc-meta,
.sub1_4_wrap .svc-meta,
.sub1_5_wrap .svc-meta {
    position: sticky;
    top: 120px;
    min-width: 0;
}
.sub1_2_wrap .svc-num,
.sub1_3_wrap .svc-num,
.sub1_4_wrap .svc-num,
.sub1_5_wrap .svc-num {
    font-size: clamp(13px, 1vw, 15px);
    font-style: italic;
    color: #999;
    margin-bottom: clamp(16px, 2vw, 32px);
    display: block;
}
.sub1_2_wrap .svc-icon,
.sub1_3_wrap .svc-icon,
.sub1_4_wrap .svc-icon,
.sub1_5_wrap .svc-icon {
    width: clamp(36px, 3vw, 48px);
    height: clamp(36px, 3vw, 48px);
    margin-bottom: clamp(16px, 1.5vw, 28px);
    color: var(--base-color-black);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), color 0.4s ease;
}
.sub1_2_wrap .svc-item:hover .svc-icon,
.sub1_3_wrap .svc-item:hover .svc-icon,
.sub1_4_wrap .svc-item:hover .svc-icon,
.sub1_5_wrap .svc-item:hover .svc-icon {
    transform: translateY(-4px);
    color: var(--signature-color);
}
.sub1_2_wrap .svc-icon svg,
.sub1_3_wrap .svc-icon svg,
.sub1_4_wrap .svc-icon svg,
.sub1_5_wrap .svc-icon svg {
    width: 100%;
    height: 100%;
    stroke-width: 1;
}
.sub1_2_wrap .svc-title-en,
.sub1_3_wrap .svc-title-en,
.sub1_4_wrap .svc-title-en,
.sub1_5_wrap .svc-title-en {
    font-size: clamp(11px, 0.85vw, 13px);
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #999;
    margin-bottom: 10px;
}
.sub1_2_wrap .svc-title,
.sub1_3_wrap .svc-title,
.sub1_4_wrap .svc-title,
.sub1_5_wrap .svc-title {
    font-size: clamp(22px, 2.2vw, 34px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--base-color-black);
}

/* Content */
.sub1_2_wrap .svc-content,
.sub1_3_wrap .svc-content,
.sub1_4_wrap .svc-content,
.sub1_5_wrap .svc-content {
    padding-top: 8px;
    min-width: 0;
    overflow: hidden;
}
.sub1_2_wrap .svc-desc,
.sub1_3_wrap .svc-desc,
.sub1_4_wrap .svc-desc,
.sub1_5_wrap .svc-desc {
    font-size: var(--text-font-title-size);
    line-height: 1.5;
    color: #555;
    margin-bottom: clamp(24px, 2.5vw, 40px);
    /* max-width: 640px; */
}
.sub1_2_wrap .svc-sub-group,
.sub1_3_wrap .svc-sub-group,
.sub1_4_wrap .svc-sub-group,
.sub1_5_wrap .svc-sub-group {
    margin-bottom: clamp(20px, 2vw, 32px);
}
.sub1_2_wrap .svc-sub-group:last-child,
.sub1_3_wrap .svc-sub-group:last-child,
.sub1_4_wrap .svc-sub-group:last-child,
.sub1_5_wrap .svc-sub-group:last-child {
    margin-bottom: 0;
}
.sub1_2_wrap .svc-sub-label,
.sub1_3_wrap .svc-sub-label,
.sub1_4_wrap .svc-sub-label,
.sub1_5_wrap .svc-sub-label {
    font-size: clamp(13px, 1vw, 14px);
    color: var(--signature-color);
    margin-bottom: clamp(10px, 1vw, 14px);
    display: flex;
    align-items: center;
    gap: 12px;
}
.sub1_2_wrap .svc-sub-label::before,
.sub1_3_wrap .svc-sub-label::before,
.sub1_4_wrap .svc-sub-label::before,
.sub1_5_wrap .svc-sub-label::before {
    content: '';
    width: 16px;
    height: 1px;
    background: var(--signature-color);
}
.sub1_2_wrap .svc-tags,
.sub1_3_wrap .svc-tags,
.sub1_4_wrap .svc-tags,
.sub1_5_wrap .svc-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.sub1_2_wrap .svc-tag,
.sub1_3_wrap .svc-tag,
.sub1_4_wrap .svc-tag,
.sub1_5_wrap .svc-tag {
    display: inline-block;
    padding: clamp(6px, 0.6vw, 10px) clamp(12px, 1vw, 16px);
    background: var(--light-gray);
    border: 1px solid transparent;
    border-radius: 100px;
    font-size: clamp(13px, 0.95vw, 15px);
    color: var(--base-color-black);
    transition: all 0.25s ease;
    cursor: default;
}
.sub1_2_wrap .svc-tag:hover,
.sub1_3_wrap .svc-tag:hover,
.sub1_4_wrap .svc-tag:hover,
.sub1_5_wrap .svc-tag:hover {
    background: var(--base-color-black);
    color: #fff;
    transform: translateY(-1px);
}

/* Featured (07 IMC) */
.sub1_2_wrap .svc-featured,
.sub1_3_wrap .svc-featured,
.sub1_4_wrap .svc-featured,
.sub1_5_wrap .svc-featured {
    background: var(--base-color-black);
    color: #fff;
    margin-top: clamp(20px, 2.5vw, 40px);
    padding: clamp(40px, 5vw, 80px) clamp(24px, 4vw, 60px) !important;
    border: none !important;
    border-radius: clamp(12px, 1.5vw, 24px);
}
.sub1_2_wrap .svc-featured .svc-meta,
.sub1_3_wrap .svc-featured .svc-meta,
.sub1_4_wrap .svc-featured .svc-meta,
.sub1_5_wrap .svc-featured .svc-meta {
    position: static;
}
.sub1_2_wrap .svc-featured .svc-num,
.sub1_3_wrap .svc-featured .svc-num,
.sub1_4_wrap .svc-featured .svc-num,
.sub1_5_wrap .svc-featured .svc-num,
.sub1_2_wrap .svc-featured .svc-title-en,
.sub1_3_wrap .svc-featured .svc-title-en,
.sub1_4_wrap .svc-featured .svc-title-en,
.sub1_5_wrap .svc-featured .svc-title-en {
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-icon,
.sub1_3_wrap .svc-featured .svc-icon,
.sub1_4_wrap .svc-featured .svc-icon,
.sub1_5_wrap .svc-featured .svc-icon {
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-icon svg,
.sub1_3_wrap .svc-featured .svc-icon svg,
.sub1_4_wrap .svc-featured .svc-icon svg,
.sub1_5_wrap .svc-featured .svc-icon svg {
    stroke: #fff;
}
.sub1_2_wrap .svc-featured:hover .svc-icon,
.sub1_3_wrap .svc-featured:hover .svc-icon,
.sub1_4_wrap .svc-featured:hover .svc-icon,
.sub1_5_wrap .svc-featured:hover .svc-icon {
    color: var(--signature-color);
}
.sub1_2_wrap .svc-featured .svc-title,
.sub1_3_wrap .svc-featured .svc-title,
.sub1_4_wrap .svc-featured .svc-title,
.sub1_5_wrap .svc-featured .svc-title {
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-title em,
.sub1_3_wrap .svc-featured .svc-title em,
.sub1_4_wrap .svc-featured .svc-title em,
.sub1_5_wrap .svc-featured .svc-title em {
    font-style: normal;
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-desc,
.sub1_3_wrap .svc-featured .svc-desc,
.sub1_4_wrap .svc-featured .svc-desc,
.sub1_5_wrap .svc-featured .svc-desc {
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-sub-label,
.sub1_3_wrap .svc-featured .svc-sub-label,
.sub1_4_wrap .svc-featured .svc-sub-label,
.sub1_5_wrap .svc-featured .svc-sub-label {
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-sub-label::before,
.sub1_3_wrap .svc-featured .svc-sub-label::before,
.sub1_4_wrap .svc-featured .svc-sub-label::before,
.sub1_5_wrap .svc-featured .svc-sub-label::before {
    background: var(--base-color-white);
}
.sub1_2_wrap .svc-featured .svc-tag,
.sub1_3_wrap .svc-featured .svc-tag,
.sub1_4_wrap .svc-featured .svc-tag,
.sub1_5_wrap .svc-featured .svc-tag {
    background: rgba(255,255,255,0.08);
    color: #fff;
}
.sub1_2_wrap .svc-featured .svc-tag:hover,
.sub1_3_wrap .svc-featured .svc-tag:hover,
.sub1_4_wrap .svc-featured .svc-tag:hover,
.sub1_5_wrap .svc-featured .svc-tag:hover {
    background: #fff;
    color: var(--base-color-black);
}

/* Responsive */
@media (max-width: 960px) {
.sub1_2_wrap .svc-header,
    .sub1_3_wrap .svc-header,
    .sub1_4_wrap .svc-header,
    .sub1_5_wrap .svc-header {
        grid-template-columns: 1fr;
        gap: 32px;
    }
.sub1_2_wrap .svc-header-right,
    .sub1_3_wrap .svc-header-right,
    .sub1_4_wrap .svc-header-right,
    .sub1_5_wrap .svc-header-right {
        order: -1;
    }
.sub1_2_wrap .svc-header-img,
    .sub1_3_wrap .svc-header-img,
    .sub1_4_wrap .svc-header-img,
    .sub1_5_wrap .svc-header-img {
        width: clamp(140px, 40vw, 220px);
    }
.sub1_2_wrap .svc-big-text,
    .sub1_3_wrap .svc-big-text,
    .sub1_4_wrap .svc-big-text,
    .sub1_5_wrap .svc-big-text {
        font-size: clamp(20px, 8vw, 40px);
        white-space: normal;
    }
.sub1_2_wrap .svc-item,
    .sub1_3_wrap .svc-item,
    .sub1_4_wrap .svc-item,
    .sub1_5_wrap .svc-item {
        grid-template-columns: 1fr;
        gap: 24px;
    }
.sub1_2_wrap .svc-meta,
    .sub1_3_wrap .svc-meta,
    .sub1_4_wrap .svc-meta,
    .sub1_5_wrap .svc-meta {
        position: static;
    }
.sub1_2_wrap .svc-featured,
    .sub1_3_wrap .svc-featured,
    .sub1_4_wrap .svc-featured,
    .sub1_5_wrap .svc-featured {
        border-radius: 12px;
    }
}


/* ================================ About - Section Achievement ================================ */

.about-section-achievement {
    padding-bottom: var(--all-sec-margin-position);
    overflow: hidden;
}

.about-achievement-title {
    margin-bottom: clamp(40px, 5vw, 80px);
}

.about-achievement-line {
    overflow: hidden;
}

.about-achievement-line span {
    display: inline-block;
    font-size: clamp(24px, 3.5vw, 48px);
    font-weight: 700;
    line-height: 1.5;
    transform: translateY(100%);
    opacity: 0;
    transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.7s ease;
}

.about-achievement-line.is-visible span {
    transform: translateY(0);
    opacity: 1;
}

.about-achievement-point {
    color: currentColor;
    text-decoration-color: transparent;
    transition: color 1s ease, text-decoration-color 1s ease;
}

.about-section-achievement.point-active .about-achievement-point {
    color: var(--signature-color);
    text-decoration-color: var(--signature-color);
    transition: color 1s ease, text-decoration-color 1s ease;
}

.about-achievement-stats {
    display: flex;
    gap: clamp(16px, 2vw, 40px);
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.about-section-achievement.count-active .about-achievement-stats {
    opacity: 1;
    transform: translateY(0);
}

.about-achievement-item {
    width: 19%;
    padding: clamp(16px, 2vw, 30px) 20px;
}


.about-achievement-number {
    display: flex;
    align-items: baseline;
    gap: 2px;
    margin-bottom: clamp(10px, 1.5vw, 20px);
}

.about-count {
    font-size: clamp(36px, 5vw, 80px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.about-achievement-unit {
    font-size: clamp(14px, 1.5vw, 24px);
    font-weight: 500;
}

.about-achievement-unit small {
    font-size: 0.9em;
}

.about-achievement-desc {
    font-size: var(--text-font-title-size);
    line-height: 1.5;
    color: #666;
    text-align: right;
}

.about-achievement-desc .color_point {
    font-size: inherit;
    font-weight: 600;
}


/* ================================ About - Section Partners (Physics) ================================ */

.about-section-partners {
    position: relative;
    background: #fff;
    overflow: hidden;
}

.about-partners-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: clamp(40px, 6vw, 80px) 0 0;
    pointer-events: none;
}

.about-partners-title {
    font-size: clamp(32px, 5vw, 64px);
    font-weight: 700;
    color: #111;
    margin-bottom: clamp(8px, 1.5vw, 16px);
}

.about-partners-desc {
    font-size: clamp(14px, 1.4vw, 20px);
    color: rgba(0, 0, 0, 0.6);
    font-weight: 300;
}

.about-partners-desc strong {
    font-size: inherit;
    font-weight: 700;
    color: #111;
}

.about-partners-canvas-wrap {
    position: relative;
    width: 100%;
    height: clamp(480px, 72vh, 840px);
}

.about-partners-canvas-wrap canvas {
    display: block;
    width: 100%;
    height: 100%;
}

/* ================================ About - Section What We Do ================================ */

.about-section-wwd {
    position: relative;
    padding: clamp(80px, 10vw, 160px) 0;
    overflow: hidden;
}

.about-wwd-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.about-wwd-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

.about-wwd-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: #fff;
}

.about-wwd-title {
    font-size: clamp(32px, 5vw, 64px);
    font-weight: 700;
    margin-bottom: clamp(12px, 2vw, 24px);
    color: var(--base-color-white);
}

.about-wwd-desc {
    font-size: clamp(14px, 1.4vw, 20px);
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: clamp(40px, 6vw, 80px);
    font-weight: 300;
}

.about-wwd-desc strong {
    font-size: inherit;
    font-weight: 700;
    color: #fff;
}

.about-wwd-items {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.about-wwd-item {
    flex-shrink: 0;
}

.about-wwd-circle {
    position: relative;
    width: clamp(150px, 14vw, 230px);
    height: clamp(150px, 14vw, 230px);
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.5);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(4px, 0.5vw, 8px);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.about-wwd-circle::before {
    content: '';
    position: absolute;
    top: 6px;
    left: 6px;
    right: 6px;
    bottom: 6px;
    border-radius: 50%;
    border: 1px dashed rgba(255, 255, 255, 0.35);
    pointer-events: none;
}

.about-wwd-circle:hover {
    border-color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}

.about-wwd-en {
    font-size: clamp(14px, 1.5vw, 20px);
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    color: var(--base-color-white);
}

.about-wwd-ko {
    font-size: clamp(13px, 1.2vw, 16px);
    color: rgba(255, 255, 255, 0.6);
}

/* 점선 연결선 - 흘러가는 애니메이션 */
.about-wwd-line {
    width: clamp(40px, 5vw, 80px);
    flex-shrink: 0;
}

.about-wwd-line svg {
    width: 100%;
    height: 2px;
    display: block;
}

.about-wwd-line svg line {
    stroke: rgba(255, 255, 255, 0.5);
    stroke-width: 2;
    stroke-dasharray: 6 4;
    animation: wwdFlowDash 1s linear infinite;
}

@keyframes wwdFlowDash {
    to {
        stroke-dashoffset: -20;
    }
}


/* ================================ About - Section History (연혁) ================================ */

.about-section-history {
    padding: clamp(60px, 10vw, 120px) 0;
    background: #fff;
    overflow: hidden;
}

.about-section-history .sub_inner {
    text-align: center;
    margin-bottom: clamp(40px, 5vw, 60px);
}

.about-history-title {
    font-size: clamp(32px, 5vw, 64px);
    font-weight: 700;
    color: #111;
    margin-bottom: clamp(8px, 1.5vw, 16px);
}

.about-history-desc {
    font-size: clamp(14px, 1.4vw, 20px);
    color: rgba(0, 0, 0, 0.6);
    font-weight: 300;
}

.about-history-desc strong {
    font-size: inherit;
    font-weight: 700;
    color: #111;
}


.about-history-timeline-wrap {
    overflow: visible;
    padding: 0 clamp(20px, 4vw, 60px);
}

.about-history-timeline {
    display: flex;
    gap: 0;
    position: relative;
}

.about-history-glow-ball {
    position: absolute;
    top: var(--dot-line-top, 70px);
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--signature-color);
    z-index: 2;
    pointer-events: none;
    left: -3px;
    transform: translateY(-50%);
}

.about-history-column {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.about-history-year {
    font-size: clamp(24px, 3vw, 40px);
    font-weight: 700;
    color: #111;
    margin-bottom: clamp(16px, 2vw, 24px);
}

.about-history-dot-wrap {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    margin-bottom: clamp(20px, 3vw, 32px);
}

.about-history-dot-wrap::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: #ccc;
    transform: translateY(-50%);
}

.about-history-glow-trail {
    position: absolute;
    top: var(--dot-line-top, 70px);
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--signature-color));
    z-index: 1;
    pointer-events: none;
    transition: none;
    transform: translateY(-50%);
}


.about-history-column:last-child .about-history-dot-wrap::before {
    right: 50%;
    left: 0;
}

.about-history-dot {
    width: 12px;
    height: 12px;
    background: #111;
    border-radius: 50%;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.about-history-dot.is-glow {
    background: var(--signature-color);
    box-shadow: 0 0 8px var(--signature-color), 0 0 16px var(--signature-color);
}

.about-history-list-wrap {
    width: 100%;
    padding: 0 clamp(10px, 1.5vw, 20px);
    position: relative;
}

.about-history-list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.8s ease;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 clamp(8px, 1vw, 16px);
}

.about-history-list.is-expanded {
    max-height: 5000px;
}

.about-history-list li {
    font-size: clamp(13px, 1.1vw, 15px);
    color: #555;
    line-height: 1.8;
    white-space: nowrap;
    text-align: center;
}

.about-history-more {
    display: block;
    margin: 15px auto;
    margin-top: 16px;
    background: none;
    border: 1px solid #ccc;
    padding: 8px 20px;
    font-size: clamp(11px, 0.9vw, 13px);
    color: #888;
    cursor: pointer;
    letter-spacing: 0.05em;
    transition: all 0.3s ease;
    font-weight: 500;
    width: 60%;
    text-align: center;
}

.about-history-more.is-visible {
    display: block;
}

.about-history-more:hover {
    border-color: #111;
    color: #111;
}

.about-history-more.is-active {
    border-color: #111;
    color: #111;
}

.about-history-total {
    font-size: clamp(13px, 1.2vw, 15px);
    font-weight: 700;
    color: #111;
    text-align: center;
    margin-top: 16px;
}

/* ================================ Contact Us ================================ */

.about-section-contact {
    padding: clamp(60px, 8vw, 120px) 0;
}

.about-contact-title {
    font-size: clamp(32px, 4vw, 56px);
    font-weight: 900;
    color: #111;
    margin-bottom: clamp(8px, 1vw, 16px);
}

.about-contact-address {
    font-size: clamp(16px, 2vw, 28px);
    color: #333;
    margin-bottom: clamp(16px, 2vw, 28px);
}

.about-contact-map-btns {
    display: flex;
    gap: 12px;
    margin-bottom: clamp(24px, 3vw, 40px);
}

.about-contact-map-btn {
    display: inline-block;
    padding: clamp(8px, 0.8vw, 12px) clamp(16px, 1.5vw, 24px);
    border: 1px solid #ccc;
    border-radius: 50px;
    font-size: clamp(13px, 1vw, 15px);
    color: #555;
    text-decoration: none;
    transition: all 0.3s ease;
}

.about-contact-map-btn:hover {
    border-color: #111;
    color: #111;
}

.about-contact-map-btn.btn-naver:hover {
    border-color: #03cf5d;
    color: #03cf5d;
}

.about-contact-map-btn.btn-kakao:hover {
    border-color: #ffc300;
    color: #ffc300;
}

.about-contact-map {
    max-width: 1720px;
    width: 90%;
    height: clamp(300px, 35vw, 500px);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: clamp(40px, 5vw, 64px);
}

.about-contact-map iframe {
    width: 100%;
    height: 100%;
}

.about-contact-info {
    display: flex;
    gap: clamp(40px, 8vw, 120px);
    margin-bottom: clamp(40px, 5vw, 64px);
    padding-bottom: clamp(32px, 4vw, 48px);
    border-bottom: 1px solid #eee;
}

.about-contact-info-label {
    display: block;
    font-size: clamp(18px, 2vw, 26px);
    font-weight: 700;
    color: #111;
    margin-bottom: clamp(4px, 0.5vw, 8px);
}

.about-contact-info-value {
    font-size: clamp(14px, 1.3vw, 18px);
    color: #555;
    text-decoration: none;
    transition: color 0.3s ease;
}

.about-contact-info-value:hover {
    color: #111;
}

.about-contact-cta {
    cursor: pointer;
    padding-top: 100px;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: clamp(12px, 1.5vw, 20px);
}

.about-contact-cta-arrow {
    display: flex;
    align-items: center;
    color: #bbb;
    animation: cta-arrow-nudge 2s ease-in-out infinite;
}

.about-contact-cta-arrow svg {
    width: clamp(28px, 3vw, 32px);
    height: auto;
}

@keyframes cta-arrow-nudge {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(-8px); }
}

.about-contact-cta-text {
    display: inline-block;
    font-size: clamp(20px, 2.5vw, 36px);
    font-weight: 700;
    color: #111;
    position: relative;
    padding-bottom: 4px;
}

.about-contact-cta-text::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    background: #111;
    transition: width 0.5s ease;
}

.about-contact-cta:hover .about-contact-cta-text::after {
    width: 100%;
}

/* ================================ 반응형 ================================ */

/* ~1200px */
@media all and (max-width: 1200px) {
    .section_2_left {
        width: 50%;
    }

    .section_2_right {
        width: 50%;
    }
}

/* 태블릿 ~960px */
@media all and (max-width: 960px) {
    .sub_visual_text {
        padding: 0 var(--padding-mo);
    }

    .contact_wrap {
        padding: clamp(40px, 6vw, 80px) var(--padding-mo);
    }

    .contact_category {
        flex-wrap: wrap;
    }

    .contact_cat_item {
        flex: 1 1 calc(33.333% - 0px);
    }

    .contact_cat_item:first-child .contact_cat_btn,
    .contact_cat_item:last-child .contact_cat_btn {
        border-radius: 0;
    }

    .contact_inputs {
        grid-template-columns: repeat(2, 1fr);
    }

    .contact_bottom {
        flex-direction: column;
        align-items: flex-start;
    }

    .contact_submit {
        width: 100%;
        min-width: auto;
    }

    #intro-overlay .intro-line {
        margin-top: 20px;
    }

    #intro-overlay .intro-text {
        margin-top: 14px;
        letter-spacing: 0.2em;
    }

    #intro-overlay .intro-video-wrap {
        width: 45vw;
        height: 60vh;
        border-radius: 14px;
    }

    #intro-overlay .intro-scroll-hint {
        bottom: 30px;
    }

    .fixed_btns {
        right: var(--padding-mo);
    }

    .section_1_scroll {
        display: none;
    }

    .section_4 {
        padding: clamp(60px, 10vw, 100px) var(--padding-mo);
    }

    .section_4_item_content {
        flex-direction: column;
    }

    .section_4_item_img {
        width: 100%;
    }

    .section_4_item_en {
        display: none;
    }
    .header {
        padding: 0 var(--padding-mo);
    }

    .header .gnb {
        display: none;
    }

    .header .hd_btn {
        display: none;
    }

    .gnb_all {
        padding: 0 var(--padding-mo);
    }

    .gnb_all_video {
        display: none;
    }

    .header.header--scrolled {
        background: var(--base-color-white);
    }

    .header.header--scrolled .hamburger span {
        background: var(--base-color-black);
    }

    .header.header--scrolled .hd_btn {
        color: var(--base-color-black);
        border-color: var(--base-color-black);
    }

    .header.header--scrolled .logo .logo_default {
        display: none;
    }

    .header.header--scrolled .logo .logo_scroll {
        display: block;
    }

    .section_3 {
        padding: clamp(60px, 10vw, 100px) var(--padding-mo);
    }

    .section_3_header {
        flex-direction: column;
        gap: 24px;
    }

    .section_3_header_right {
        align-items: flex-start;
        text-align: left;
    }

    .section_3_marquee_track .section_3_card {
        width: clamp(200px, 45vw, 300px);
    }

    .section_5 {
        padding: clamp(60px, 10vw, 100px) var(--padding-mo);
    }

    .section_5_cards {
        flex-direction: column;
    }

    .section_7 {
        padding: clamp(60px, 10vw, 100px) var(--padding-mo);
    }

    .section_7_btns {
        flex-direction: column;
    }

    .section_7_btn {
        justify-content: center;
    }

    .footer#ft {
        padding: clamp(30px, 5vw, 60px) var(--padding-mo);
    }

    .footer_inner {
        flex-direction: column;
        gap: 30px;
    }

    .footer_left {
        min-width: auto;
    }

    .section_2 {
        padding: clamp(60px, 10vw, 100px) var(--padding-mo);
    }

    .section_2_inner {
        flex-direction: column;
        gap: 40px;
    }

    .section_2_btn_wrap {
        margin-top: clamp(30px, 2.5vw, 60px);
    }

    .section_2_desc {
        gap: 10px;
    }

    .section_2_left,
    .section_2_right {
        width: 100%;
    }

    .section_2_keywords span {
        font-size: clamp(36px, 10vw, 50px);
    }

    .section_2_desc p br {
        display: none;
    }

    .gnb_all_close {
        top: var(--padding-mo);
        right: var(--padding-mo);
    }

    .about-section-achievement {
        padding: 0 var(--padding-mo) clamp(60px, 10vw, 100px) var(--padding-mo);
    }

    .about-section-achievement .sub_inner {
        padding: 0;
    }

    .about-achievement-stats {
        flex-wrap: wrap;
    }

    .about-achievement-item {
        width: 30%;
    }

    .about-history-more {
        width: 100%;
    }


}

@media all and (max-width: 760px) {
    
    .section_1 {
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .section_1 video {
        object-fit: cover;
    }
}

@media all and (max-width: 760px) {

    .about-achievement-item {
        width: 48%;
    }

    .about-wwd-items {
        flex-wrap: wrap;
        gap: clamp(16px, 4vw, 24px) 0;
    }

    .about-wwd-line {
        display: none;
    }

    .about-wwd-item {
        width: 50%;
        display: flex;
        justify-content: center;
    }

    .about-contact-map {
        width: 100%;
    }

}

/* 모바일 ~480px */
@media all and (max-width: 480px) {

    /* 슬로건 애니메이션 제거 - 바로 표시 */
    .about-slogan-line {
        flex-wrap: wrap;
        gap: 0 clamp(6px, 2vw, 12px);
        opacity: 1;
        transform: none;
        transition: none;
    }

    .about-slogan-line .color_point {
        color: var(--signature-color);
    }

    .about-slogan-divider {
        width: clamp(40px, 12vw, 80px);
        height: clamp(16px, 4vw, 32px);
        margin-bottom: 0;
        margin-left: clamp(6px, 0.8vw, 16px);
        margin-right: clamp(6px, 0.8vw, 16px);
        transition: none;
    }

    .about-slogan-line-bar {
        opacity: 0;
    }

    .about-slogan-line-img {
        opacity: 1;
    }

    .about-achievement-stats {
        gap: 0;
    }

    .about-achievement-item {
        width: 100%;
    }


    .contact_inputs {
        grid-template-columns: 1fr;
    }

    .contact_cat_item {
        flex: 1 1 50%;
    }

    #intro-overlay .intro-line {
        margin-top: 16px;
    }

    #intro-overlay .intro-text {
        margin-top: 12px;
        letter-spacing: 0.15em;
    }

    #intro-overlay .intro-video-wrap {
        width: 70vw;
        height: 50vh;
        border-radius: 12px;
    }

    #intro-overlay .intro-scroll-hint {
        bottom: 24px;
    }

    #intro-overlay .intro-scroll-hint .scroll-arrow {
        height: 24px;
    }

    .header .logo {
        width: clamp(80px, 25vw, 120px);
    }

    .header .hd_right {
        gap: 12px;
    }

    .header .hamburger {
        width: 20px;
        gap: 4px;
    }

    .gnb_all_close {
        right: var(--padding-mo);
    }

}
