/**
 * NextBio Website - ESG 경영 페이지 스타일 (Figma 디자인 반영)
 */

.esg-page,
.esg-page * {
    box-sizing: border-box;
}

.esg-page {
    background: var(--fff, #ffffff);
    display: flex;
    flex-direction: column;
    gap: 160px;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 160px 0;
    width: 100%;
}


.esg-page .inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
    width: 100%;
}

/* ========== 섹션 01, 02 (Intro) ========== */
.esg-page .section-01,
.esg-page .section-02 {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 섹션 02: 이미지 왼쪽, 텍스트 오른쪽 (기본 row 유지) */
.esg-page .section-02 .inner .flex-row {
    flex-direction: row;
}

.esg-page .flex-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 60px;
    width: 100%;
}

.esg-page .flex-row.reverse {
    flex-direction: row-reverse;
}

.esg-page .text-box {
    display: flex;
    flex-direction: column;
    gap: 60px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 488px;
}

.esg-page .sub-main-title {
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-ExtraBold', sans-serif;
    font-size: 48px;
    line-height: 60px;
    font-weight: 800;
    position: relative;
    margin: 0;
}

.esg-page .green {
    color: var(--main, #8dc63f);
}

.esg-page .sub-main-title:not(.green) {
    color: var(--000, #000000);
}

.esg-page .desc {
    color: var(--555, #555555);
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 18px;
    line-height: 26px;
    font-weight: 400;
    position: relative;
    align-self: stretch;
    margin: 0;
    word-break: keep-all;
}

.esg-page .side-img {
    border-radius: 32px;
    flex-shrink: 0;
    width: 830px;
    height: 470px;
    position: relative;
    object-fit: cover;
}

/* ========== 섹션 03 (조직도) - Figma 참고 구조 ========== */
.esg-page .section-03,
.esg-page .section-03 * {
    box-sizing: border-box;
}

.esg-page .section-03 {
    display: flex;
    flex-direction: column;
    gap: 60px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
    width: 100%;
}

.esg-page .section-03 .inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.esg-page .section-03 .esg {
    color: var(--000, #000000);
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Bold', sans-serif;
    font-size: 32px;
    line-height: 40px;
    font-weight: 700;
    position: relative;
    margin: 0;
}

.esg-page .section-03 .content {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
    width: 100%;
}

.esg-page .section-03 .p {
    background: var(--sub, #f4faec);
    border-radius: 999px;
    border: 1px dashed var(--gray-02, #dfdfdf);
    flex-shrink: 0;
    width: 268px;
    height: 268px;
    position: relative;
    overflow: hidden;
}

.esg-page .section-03 .p2 {
    background: var(--main, #8dc63f);
    border-radius: 9999px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: center;
    width: 220px;
    height: 220px;
    position: absolute;
    left: 50%;
    translate: -50% -50%;
    top: 50%;
}

.esg-page .section-03 .p2 .esg2 {
    color: var(--fff, #ffffff);
    text-align: center;
    font-family: var(--font-family-suit), 'SuitVariable-Bold', sans-serif;
    font-size: 24px;
    line-height: 32px;
    font-weight: 700;
    position: relative;
}

.esg-page .section-03 .vector-7 {
    flex-shrink: 0;
    width: 100%;
    max-width: 1278px;
    height: 94px;
    position: relative;
    overflow: visible;
}

.esg-page .section-03 .ul {
    display: flex;
    flex-direction: row;
    gap: 50px;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
}

.esg-page .section-03 .li {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 200px;
    position: relative;
}

.esg-page .section-03 .p3 {
    background: var(--main, #8dc63f);
    border-radius: 8px;
    padding: 24px 30px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 200px;
    position: relative;
}

.esg-page .section-03 .p3 .div {
    color: var(--fff, #ffffff);
    text-align: center;
    font-family: var(--font-family-suit), 'SuitVariable-SemiBold', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
    position: relative;
}

.esg-page .section-03 .p4 {
    background: var(--sub, #f4faec);
    border-radius: 8px;
    border: 1px dashed var(--gray-02, #dfdfdf);
    padding: 24px 30px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    width: 200px;
    min-height: 168px;
    position: relative;
}

.esg-page .section-03 .div2 {
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 18px;
    line-height: 30px;
    font-weight: 400;
    position: relative;
}

.esg-page .section-03 .div-2-span {
    color: var(--main, #8dc63f);
}

.esg-page .section-03 .div-2-span2 {
    color: var(--555, #555555);
}

.esg-page .section-03 .esg3 {
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 18px;
    line-height: 30px;
    font-weight: 400;
    position: relative;
}

.esg-page .section-03 .esg-3-span {
    color: var(--main, #8dc63f);
}

.esg-page .section-03 .esg-3-span2 {
    color: var(--555, #555555);
}

.esg-page .section-03 .div3 {
    color: var(--555, #555555);
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 18px;
    line-height: 30px;
    font-weight: 400;
    position: relative;
}

/* ========== 섹션 04 (추진 방향성) - Figma 참고 구조 ========== */
.esg-page .section-04,
.esg-page .section-04 * {
    box-sizing: border-box;
}

.esg-page .section-04 {
    display: flex;
    flex-direction: column;
    gap: 60px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
    width: 100%;
}

.esg-page .section-04.last {
    padding-bottom: 0;
}

.esg-page .section-04 .inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.esg-page .section-04 .p {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
    width: 100%;
}

.esg-page .section-04 .esg {
    color: var(--000, #000000);
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Bold', sans-serif;
    font-size: 32px;
    line-height: 40px;
    font-weight: 700;
    position: relative;
    margin: 0;
}

.esg-page .section-04 .p .div {
    color: var(--555, #555555);
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 400;
    position: relative;
    margin: 0;
}

.esg-page .section-04 .content {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
    width: 100%;
}

.esg-page .section-04 .row-label {
    margin: 32px 0 8px;
    color: var(--main, #8dc63f);
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-SemiBold', sans-serif;
    font-size: 24px;
    line-height: 32px;
    font-weight: 600;
    position: relative;
}

.esg-page .section-04 .txt {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 100%;
    position: relative;
}

.esg-page .section-04 .p2 {
    background: var(--main, #8dc63f);
    border-radius: 8px;
    padding: 40px 30px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 100%;
    position: relative;
}

.esg-page .section-04 .p2 .div2 {
    color: var(--fff, #ffffff);
    text-align: center;
    font-family: var(--font-family-suit), 'SuitVariable-Bold', sans-serif;
    font-size: 24px;
    line-height: 32px;
    font-weight: 700;
    position: relative;
}

.esg-page .section-04 .line,
.esg-page .section-04 .line2,
.esg-page .section-04 .line3,
.esg-page .section-04 .line4 {
    display: none;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    position: relative;
    overflow: visible;
}

.esg-page .section-04 .line { height: 48px; }
.esg-page .section-04 .line2,
.esg-page .section-04 .line3,
.esg-page .section-04 .line4 { height: 24px; }

.esg-page .section-04 .p3 {
    border-radius: 8px;
    border: 1px dashed var(--main, #8dc63f);
    padding: 30px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    flex: 1;
    min-width: 0;
    position: relative;
}

.esg-page .section-04 .p3 .div3 {
    color: var(--main, #8dc63f);
    text-align: center;
    font-family: var(--font-family-suit), 'SuitVariable-SemiBold', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
    position: relative;
}

.esg-page .section-04 .p3 .esg2 {
    color: var(--main, #8dc63f);
    text-align: center;
    font-family: var(--font-family-suit), 'SuitVariable-SemiBold', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
    position: relative;
}

.esg-page .section-04 .p4 {
    border-radius: 8px;
    border: 1px dashed var(--gray-02, #dfdfdf);
    padding: 30px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    flex: 1;
    min-width: 0;
    position: relative;
}

.esg-page .section-04 .p4 .div4 {
    color: var(--555, #555555);
    text-align: center;
    font-family: var(--font-family-suit), 'SuitVariable-SemiBold', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
    position: relative;
}

.esg-page .section-04 .p5 {
    background: var(--sub, #f4faec);
    border-radius: 8px;
    padding: 30px;
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    flex: 1;
    min-width: 0;
    position: relative;
}

.esg-page .section-04 .div5 {
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 400;
    position: relative;
}

.esg-page .section-04 .div-5-span {
    color: var(--main, #8dc63f);
    margin-right: 6px;
}

.esg-page .section-04 .div-5-span2 {
    color: var(--000, #000000);
}

.esg-page .section-04 .esg3 {
    text-align: left;
    font-family: var(--font-family-suit), 'SuitVariable-Regular', sans-serif;
    font-size: 20px;
    line-height: 30px;
    font-weight: 400;
    position: relative;
}

.esg-page .section-04 .esg-3-span {
    color: var(--main, #8dc63f);
    margin-right: 6px;
}

.esg-page .section-04 .esg-3-span2 {
    color: var(--000, #000000);
}

/* ========== 반응형 ========== */
@media (max-width: 1440px) {
    .esg-page .inner {
        padding: 0 40px;
    }

    .esg-page .side-img {
        width: 50%;
        height: auto;
        max-height: 470px;
    }

    .esg-page .section-03 .vector-7 {
        width: 100%;
    }

    .esg-page .section-03 .ul {
        flex-wrap: wrap;
        gap: 32px;
        justify-content: center;
    }

    .esg-page .section-04 .txt {
        flex-wrap: wrap;
    }
}

@media (max-width: 1200px) {
    .esg-page {
        padding: 120px 0;
        gap: 120px;
    }

    .esg-page .flex-row {
        flex-direction: column;
        gap: 40px;
    }

    .esg-page .flex-row.reverse {
        flex-direction: column;
    }

    .esg-page .text-box {
        width: 100%;
    }

    .esg-page .side-img {
        width: 100%;
        height: auto;
        max-height: 400px;
    }
}

@media (max-width: 1024px) {
    .esg-page {
        padding: 100px 0;
        gap: 100px;
    }

    .esg-page .inner {
        padding: 0 40px;
    }

    .esg-page .sub-main-title {
        font-size: 36px;
        line-height: 1.3;
        margin-bottom: 0;
    }

    .esg-page .desc {
        font-size: 16px;
        line-height: 1.5;
    }

    /* PC 디자인 유지: section-03·04는 가로 스크롤로 PC 레이아웃 유지 */
    .esg-page .section-03,
    .esg-page .section-04 {
        overflow-x: auto;
        overflow-y: visible;
        -webkit-overflow-scrolling: touch;
        width: 100%;
    }

    .esg-page .section-03 .inner,
    .esg-page .section-04 .inner {
        min-width: 960px;
        width: max-content;
    }

    .esg-page .section-03 .ul {
        gap: 24px;
        flex-wrap: nowrap;
        justify-content: flex-start;
    }

    .esg-page .section-03 .li {
        width: 200px;
        flex-shrink: 0;
    }

    .esg-page .section-04 .txt {
        flex-wrap: nowrap;
    }

    .esg-page .section-04 .p3,
    .esg-page .section-04 .p4,
    .esg-page .section-04 .p5 {
        flex: 0 1 auto;
        min-width: 0;
    }
}

@media (max-width: 768px) {
    .esg-page {
        padding: 60px 0;
        gap: 80px;
    }

    .esg-page .inner {
        padding: 0 20px;
    }

    .esg-page .text-box {
        gap: 40px;
    }

    .esg-page .sub-main-title {
        font-size: 28px;
        line-height: 1.3;
        margin-bottom: 0;
    }

    .esg-page .desc {
        font-size: 16px;
        line-height: 1.5;
    }

    /* PC 디자인 유지: 가로 스크롤로 레이아웃 유지 */
    .esg-page .section-03,
    .esg-page .section-04 {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .esg-page .section-03 .inner,
    .esg-page .section-04 .inner {
        min-width: 900px;
        width: max-content;
    }

    .esg-page .section-03 .esg {
        font-size: 28px;
    }

    .esg-page .section-03 .p {
        width: 200px;
        height: 200px;
    }

    .esg-page .section-03 .p2 {
        width: 160px;
        height: 160px;
    }

    .esg-page .section-03 .p2 .esg2 {
        font-size: 20px;
        line-height: 28px;
    }

    .esg-page .section-03 .ul {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        gap: 24px;
    }

    .esg-page .section-03 .li {
        width: 200px;
        flex-shrink: 0;
    }

    .esg-page .section-03 .p3 {
        width: 200px;
    }

    .esg-page .section-03 .p3 .div {
        font-size: 18px;
    }

    .esg-page .section-03 .p4 {
        padding: 20px;
        min-height: auto;
        width: 200px;
    }

    .esg-page .section-03 .div2,
    .esg-page .section-03 .esg3,
    .esg-page .section-03 .div3 {
        font-size: 16px;
        line-height: 1.5;
    }

    .esg-page .section-04 .txt {
        flex-direction: row;
        flex-wrap: nowrap;
    }

    .esg-page .section-04 .p .div {
        font-size: 16px;
        line-height: 1.5;
    }

    .esg-page .section-04 .p2 .div2 {
        font-size: 18px;
    }

    .esg-page .section-04 .p3 .div3,
    .esg-page .section-04 .p3 .esg2 {
        font-size: 18px;
    }

    .esg-page .section-04 .p4 .div4 {
        font-size: 18px;
    }

    .esg-page .section-04 .div5,
    .esg-page .section-04 .esg3 {
        font-size: 16px;
        line-height: 1.5;
    }
}

/* 480px: 초소형 화면 */
@media (max-width: 480px) {
    .esg-page {
        padding: 48px 0 60px;
        gap: 56px;
    }

    .esg-page .inner {
        padding: 0 16px;
    }

    .esg-page .section-01,
    .esg-page .section-02 {
        padding: 0 16px;
    }

    .esg-page .flex-row {
        gap: 28px;
    }

    .esg-page .text-box {
        gap: 28px;
    }

    .esg-page .sub-main-title {
        font-size: 24px;
        line-height: 1.35;
    }

    .esg-page .desc {
        font-size: 14px;
        line-height: 1.55;
    }

    .esg-page .side-img {
        max-height: 280px;
    }

    .esg-page .section-03 .inner {
        gap: 40px;
    }

    .esg-page .section-03 .esg {
        font-size: 22px;
        line-height: 1.3;
    }

    .esg-page .section-03 .p {
        width: 160px;
        height: 160px;
    }

    .esg-page .section-03 .p2 {
        width: 130px;
        height: 130px;
    }

    .esg-page .section-03 .p2 .esg2 {
        font-size: 18px;
        line-height: 26px;
    }

    .esg-page .section-03 .vector-7 {
        height: 80px;
    }

    .esg-page .section-03 .ul {
        gap: 20px;
    }

    .esg-page .section-03 .p3 {
        padding: 18px 20px;
    }

    .esg-page .section-03 .p3 .div {
        font-size: 16px;
        line-height: 1.4;
    }

    .esg-page .section-03 .p4 {
        padding: 18px 16px;
    }

    .esg-page .section-03 .div2,
    .esg-page .section-03 .esg3,
    .esg-page .section-03 .div3 {
        font-size: 14px;
        line-height: 1.5;
    }

    .esg-page .section-04.last {
        padding-bottom: 0;
    }

    .esg-page .section-04 .inner {
        gap: 40px;
    }

    .esg-page .section-04 .p .div {
        font-size: 14px;
        line-height: 1.55;
    }

    .esg-page .section-04 .p2 .div2 {
        font-size: 16px;
    }

    .esg-page .section-04 .p3 .div3,
    .esg-page .section-04 .p3 .esg2 {
        font-size: 16px;
    }

    .esg-page .section-04 .p4 .div4 {
        font-size: 16px;
    }

    .esg-page .section-04 .div5,
    .esg-page .section-04 .esg3 {
        font-size: 14px;
        line-height: 1.5;
    }
}
