/* ==========================================================
   component.css
   ACF Flexible Content 컴포넌트 공통 스타일
   wave_content 등 특정 페이지 래퍼 없이도 어느 페이지에서나 동작
   ========================================================== */


/* ----------------------------------------------------------
   Banner (상단 배너 이미지)
   ---------------------------------------------------------- */
.comp_banner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.comp_banner .comp_banner__bg img {
    display: block;
    width: 100%;
    height: auto;
}

/* PC에서 mo 이미지 숨김, 모바일에서 pc 이미지 숨김 */
.comp_banner .comp_banner__bg img.mo { display: none; }

.comp_banner .comp_banner__title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    white-space: nowrap;
}

.comp_banner .comp_banner__title p {
    font-size: 4rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

@media (max-width: 1180px) {
    .comp_banner .comp_banner__bg img.pc { display: none; }
    .comp_banner .comp_banner__bg img.mo { display: block; }
    .comp_banner .comp_banner__title p   { font-size: 2.4rem; }
}


/* ----------------------------------------------------------
   Feature Alternating (이미지 + 텍스트 교차 레이아웃)
   wave.css의 .wave_content .feature 와 완전히 분리된 독립 컴포넌트.
   .wave_content 래퍼 없이 어느 페이지에서나 동작.
   ---------------------------------------------------------- */

/* 섹션 여백 + inner 폭 고정 (wave.css 의존 제거) */
.comp_feature {
    margin: 18.7rem 0;
}
.comp_feature .inner {
    padding: 0;
    width: 144rem;
}

/* 섹션 헤더 (section_title h3 + section_descs) */
.comp_feature .inner .feature_title {
    padding-bottom: 7.2rem;
    width: 100%;
}
.comp_feature .inner .feature_title .hgroup {
    text-align: center;
}
.comp_feature .inner .feature_title .hgroup h3 {
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.3;
}
.comp_feature .inner .feature_title .hgroup .txt {
    margin-top: 1.8rem;
    font-size: 1.8rem;
    line-height: 1.6;
}

.comp_feature .inner .content .feature_list {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.comp_feature .inner .content .feature_list > li {
    display: flex;
    gap: 14rem;
    align-items: center;
}

/* 이미지 오른쪽 배치 (텍스트 → 이미지) */
.comp_feature .inner .content .feature_list > li.img-right {
    flex-direction: row-reverse;
}

.comp_feature .inner .content .feature_list > li .cgroup {
    width: 65rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.comp_feature .inner .content .feature_list > li .cgroup .title {
    font-size: 4.4rem;
    font-weight: 700;
    padding-bottom: 6rem;
    width: 100%;
}

.comp_feature .inner .content .feature_list > li .cgroup .explain {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
}

.comp_feature .inner .content .feature_list > li .cgroup .explain .txt {
    font-size: 1.8rem;
    line-height: 1.6;
}

.comp_feature .inner .content .feature_list > li .cgroup .explain ul {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.comp_feature .inner .content .feature_list > li .cgroup .explain ul li {
    font-size: 1.8rem;
    line-height: 1.6;
    padding-left: 2rem;
    position: relative;
}

.comp_feature .inner .content .feature_list > li .cgroup .explain ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1rem;
    width: 0.6rem;
    height: 0.6rem;
    background: #000;
    border-radius: 50%;
}

.comp_feature .inner .content .feature_list > li .bg {
    width: 65rem;
    flex-shrink: 0;
}

.comp_feature .inner .content .feature_list > li .bg img {
    width: 100%;
    object-fit: contain;
}

.comp_feature .inner .content .desc {
    font-size: 1.8rem;
    line-height: 1.6;
    margin-top: 7.2rem;
    text-align: center;
}


/* --- Tablet/PC fluid (max-width: 1440px) --- */
@media (max-width: 1440px) {
    .comp_feature {
        margin: calc(100vw * (187 / 1440)) 0;
    }
    .comp_feature .inner {
        width: 100%;
        padding-left:  calc(100vw * (50 / 1440));
        padding-right: calc(100vw * (50 / 1440));
    }
    .comp_feature .inner .feature_title {
        padding-bottom: calc(100vw * (72 / 1440));
    }
    .comp_feature .inner .feature_title .hgroup h3 {
        font-size: calc(100vw * (48 / 1440));
    }
    .comp_feature .inner .feature_title .hgroup .txt {
        font-size: calc(100vw * (18 / 1440));
    }
    .comp_feature .inner .content .feature_list {
        gap: calc(100vw * (50 / 1440));
    }
    .comp_feature .inner .content .feature_list > li {
        gap: calc(100vw * (140 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup {
        width: calc(100vw * (650 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .title {
        font-size: calc(100vw * (44 / 1440));
        padding-bottom: calc(100vw * (60 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain {
        gap: calc(100vw * (20 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain .txt {
        font-size: calc(100vw * (18 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain ul {
        gap: calc(100vw * (10 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain ul li {
        font-size: calc(100vw * (18 / 1440));
        padding-left: calc(100vw * (20 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain ul li::before {
        top: calc(100vw * (10 / 1440));
        width: calc(100vw * (6 / 1440));
        height: calc(100vw * (6 / 1440));
    }
    .comp_feature .inner .content .feature_list > li .bg {
        width: calc(100vw * (650 / 1440));
    }
    .comp_feature .inner .content .desc {
        font-size: calc(100vw * (18 / 1440));
        margin-top: calc(100vw * (72 / 1440));
    }
}


/* --- Mobile (max-width: 767px) --- */
@media (max-width: 767px) {
    .comp_feature {
        margin: calc(100vw * (100 / 767)) 0;
    }
    .comp_feature .inner {
        padding-left:  calc(100vw * (40 / 767));
        padding-right: calc(100vw * (40 / 767));
    }
    .comp_feature .inner .feature_title {
        padding-bottom: calc(100vw * (80 / 767));
    }
    .comp_feature .inner .feature_title .hgroup h3 {
        font-size: calc(100vw * (52 / 767));
        margin-bottom: calc(100vw * (16 / 767));
    }
    .comp_feature .inner .feature_title .hgroup .txt {
        font-size: calc(100vw * (32 / 767));
    }
    .comp_feature .inner .content .feature_list {
        gap: calc(100vw * (100 / 767));
    }
    /* 모바일은 이미지 아래, 텍스트 위 — column-reverse 로 DOM 순서(bg→cgroup) 뒤집기 */
    .comp_feature .inner .content .feature_list > li,
    .comp_feature .inner .content .feature_list > li.img-right {
        flex-direction: column-reverse;
        height: auto;
        gap: calc(100vw * (40 / 767));
    }
    .comp_feature .inner .content .feature_list > li .cgroup {
        width: 100%;
    }
    .comp_feature .inner .content .feature_list > li .cgroup .title {
        font-size: calc(100vw * (52 / 767));
        padding-bottom: calc(100vw * (40 / 767));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain {
        gap: calc(100vw * (20 / 767));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain .txt {
        font-size: calc(100vw * (30 / 767));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain ul {
        gap: calc(100vw * (20 / 767));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain ul li {
        font-size: calc(100vw * (30 / 767));
        padding-left: calc(100vw * (20 / 767));
    }
    .comp_feature .inner .content .feature_list > li .cgroup .explain ul li::before {
        top: calc(100vw * (20 / 767));
        width: calc(100vw * (6 / 767));
        height: calc(100vw * (6 / 767));
    }
    .comp_feature .inner .content .feature_list > li .bg {
        width: 100%;
    }
    .comp_feature .inner .content .desc {
        font-size: calc(100vw * (30 / 767));
        margin-top: calc(100vw * (72 / 767));
    }
}
