/* ==========================================================================
   Section 03
   ========================================================================== */

.section03 {
    width: 100%;
    padding:
        clamp(3rem, 3.65vw, 4.375rem) clamp(1rem, 12.5vw, 15rem);

    box-sizing: border-box;

    background: #ffffff;

    overflow: hidden;
}


/* ==========================================================================
   Section 03 제목
   ========================================================================== */

.section03>div:first-child {
    max-width: 1440px;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: clamp(1rem, 1.82vw, 2.1875rem) !important;
    margin-bottom: clamp(2rem, 3.65vw, 4.375rem);
}


.section03>div:first-child>div:first-child {
    width: auto !important;
    height: auto !important;

    color: #001E47 !important;

    font-size:
        clamp(2.5rem, 3.65vw, 4.375rem) !important;

    font-family: Inter, Pretendard, sans-serif !important;

    font-weight: 700 !important;

    line-height: 1.2 !important;

    word-wrap: break-word;
}


.section03>div:first-child>div:last-child {
    width: auto !important;
    height: auto !important;

    color: #777777 !important;

    font-size:
        clamp(1rem, 1.82vw, 2.1875rem) !important;

    font-family: Pretendard, sans-serif !important;

    font-weight: 500 !important;

    line-height: 1.4 !important;

    word-wrap: break-word;
}


/* ==========================================================================
   서비스 그룹
   PC : 2개씩
   ========================================================================== */

.services {
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(2rem, 3vw, 3.75rem);
    padding: clamp(2rem, 3.65vw, 4.375rem) 0;
    background: #ffffff;
    box-sizing: border-box;
}


/* ==========================================================================
   서비스 카드
   ========================================================================== */

.services-img-box {
    width: 100%;

    height: auto;

    padding: 0 !important;

    display: flex !important;

    flex-direction: column;

    justify-content: flex-start;
    align-items: stretch;

    gap:
        clamp(1rem, 1.56vw, 1.875rem);

    background: #ffffff;

    overflow: hidden !important;

    box-sizing: border-box;

    flex: none !important;
}

.services-img-wrapper {
    width: 100%;
    overflow: hidden !important;
    /* 이미지 확대 시 넘치는 부분 차단 */
    border-radius: clamp(1.25rem, 1.82vw, 2.1875rem);
    /* 둥근 모서리 적용 */
    isolation: isolate;
    /* 크롬/사파리 버그로 인한 넘침 방지 */
    transform: translateZ(0);
}


/* ==========================================================================
   서비스 이미지
   ========================================================================== */

.services-img-box img {
    width: 100% !important;

    height: auto !important;

    aspect-ratio: 1.5 / 1;

    object-fit: cover;

    padding: 0 !important;

    border-radius:
        clamp(1.25rem, 1.82vw, 2.1875rem);

    display: block;
}

.services-img-box.card-01 img {
    transform: scale(1.5);
    transform-origin: left top;
}

.services-img-box.card-02 img {
    transform: scale(1.5);
    transform-origin: center top;
}

.services-img-box.card-03 img {
    transform: scale(1);
}

.services-img-box.card-04 img {
    transform: scale(2);
    transform-origin: bottom;
}

.services-img-box.card-05 img {
    transform: scale(2);
    transform-origin: bottom;
}

.services-img-box.card-06 img {
    transform: scale(1.5);
    transform-origin: center;
}

/* ==========================================================================
   서비스 제목
   ========================================================================== */

.services-text-box01 {
    width: 100%;

    height: auto;

    padding: 0 !important;

    display: flex !important;

    justify-content: flex-start;
    align-items: center;

    box-sizing: border-box;
}


.services-text-style01 {
    width: 100%;

    color: #001E47;

    font-size:
        clamp(1.5rem, 2.08vw, 2.5rem);

    font-family: Inter, Pretendard, sans-serif;

    font-weight: 700;

    line-height: 1.3;

    word-break: keep-all;
}


/* ==========================================================================
   서비스 설명
   ========================================================================== */

.services-text-box02 {
    width: 100%;

    height: auto;

    padding: 0 !important;

    display: flex !important;

    justify-content: flex-start;
    align-items: flex-start;

    box-sizing: border-box;
}


.services-text-style02 {
    width: 100%;

    flex: none !important;

    color: #7E7E7E;

    font-size:
        clamp(0.875rem, 1.3vw, 1.5625rem);

    font-family: Inter, Pretendard, sans-serif;

    font-weight: 500;

    line-height: 1.6;

    word-break: keep-all;
}


/* ==========================================================================
   PC 대형 화면
   ========================================================================== */

@media (min-width: 1441px) {

    .services {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 50px;

        padding-top: 70px;
        padding-bottom: 70px;
    }

    .services-img-box {
        gap: 30px;
    }

    .services-img-box img {
        height: 400px !important;
        aspect-ratio: auto;
    }

    .services-text-style01 {
        font-size: 40px;
    }

    .services-text-style02 {
        font-size: 25px;
        line-height: 40px;
    }
}


/* ==========================================================================
   태블릿
   ========================================================================== */

@media (max-width: 1024px) {

    .section03 {
        padding-left: clamp(2rem, 6vw, 4rem);
        padding-right: clamp(2rem, 6vw, 4rem);
    }

    .services {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: clamp(1.5rem, 3vw, 2.5rem);
    }

    .services-img-box img {
        aspect-ratio: 1.45 / 1;
    }

    .services-text-style01 {
        font-size: clamp(1.35rem, 3vw, 2rem);
    }

    .services-text-style02 {
        font-size: clamp(0.8rem, 1.7vw, 1.1rem);
        line-height: 1.6;
    }
}


/* ==========================================================================
   모바일
   ========================================================================== */

@media (max-width: 767px) {

    .section03 {
        padding:
            3rem 1.25rem;
    }


    .section03>div:first-child {
        margin-bottom: 1rem;
    }


    .section03>div:first-child>div:first-child {
        font-size:
            clamp(2rem, 10vw, 3rem) !important;
    }


    .section03>div:first-child>div:last-child {
        font-size:
            clamp(0.9rem, 4vw, 1.25rem) !important;

        line-height: 1.5 !important;

        word-break: keep-all;
    }


    /*
       모바일에서는 한 줄에 하나
    */

    .services {
        grid-template-columns: 1fr;

        gap: 2.5rem;

        padding:
            1.5rem 0;
    }


    .services-img-box {
        width: 100%;

        gap: 1rem;
    }


    .services-img-box img {
        width: 100% !important;

        height: auto !important;

        aspect-ratio: 1.5 / 1;

        border-radius: 1.5rem;
    }


    .services-text-style01 {
        font-size:
            clamp(1.35rem, 6vw, 2rem);

        line-height: 1.3;
    }


    .services-text-style02 {
        font-size:
            clamp(0.85rem, 3.5vw, 1.05rem);

        line-height: 1.7;
    }
}


/* ==========================================================================
   작은 모바일
   ========================================================================== */

@media (max-width: 480px) {

    .section03 {
        padding:
            2.5rem 1rem;
    }


    .services {
        gap: 2rem;
    }


    .services-text-style01 {
        font-size:
            clamp(1.25rem, 6.5vw, 1.7rem);
    }


    .services-text-style02 {
        font-size: 0.85rem;
        line-height: 1.65;
    }
}