html, body {
    overflow-x: hidden;
    background-color: #FBFBFB;
    cursor: default;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

a.close-link {
    text-decoration: none;
    color: white;
}

a.close-link:hover {
    text-decoration: none; /* hover 시에도 밑줄 없음 */
}
#popup-modal {
    z-index: 99999;
}
.blue {
    color: var(--main-blue);
}

.black {
    color: var(--main-black);
}

.black700 {
    color: var(--main-black);
    text-align: center;
    font-weight: 700;
}

.blue700 {
    color: var(--main-blue);
    text-align: center;
    font-weight: 700;
}

.navy {
    color: var(--main-navy);
    text-align: center;
}

.white {
    color: var(--main-white);
    text-align: center;
}

.white400 {
    color: var(--main-white);
    text-align: center;
    font-weight: 400;
    font-size: 26px;
}

.white700 {
    color: var(--main-white);
    text-align: center;
    font-weight: 700;
}


/*------------------------------------------------- HOME --------------------------------------------------------*/

/*#header {*/
/*    position: fixed;*/
/*    width: 100%;*/
/*    top: 0;*/
/*    z-index: 9999;*/
/*}*/

/*#contents {*/
/*    transition:.7s ease-in-out;*/
/*}*/

.body-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #FBFBFB;

    width: 100%;       /* 화면 전체에서 중앙정렬 가능하도록 */
    cursor: default;
}

.partition-1 {
    position: relative;   /* 기준이 되어야 함 */
    display: flex;
    height: 500px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
}

.partition-1 .banner {
    display: none; /* 기본 숨김 */
    flex-direction: column;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
    border: 1px solid rgba(48, 45, 48, 0.10);
}

.partition-1 .banner.active {
    display: flex; /* 현재 배너만 표시 */
}

.partition-1 .point-layout {
    display: flex;
    width: 100%;
    height: 500px;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    border: 1px solid rgba(48, 45, 48, 0.10);
}

.layout-color-1 {
    background: #EEFAFF;
}

.layout-color-2 {
    background: #F2F2F2;;
}

.layout-color-3 {
    background: #E5EDF8;;
}

.partition-1 .point-layout img {
    position: absolute;
    object-fit: contain;
    transition: all 0.3s ease; /* 부드러운 반응 */
    margin-top: auto;   /* 이미지를 아래로 밀어서 하단에 붙임 */
}

.partition-1 .banner-contents-group {
    display: flex;
    max-width: 800px;
    width:  100%;
    max-height: 500px;
    height: 100%;
    margin: 0 auto;
    padding: 80px 30px 20px 30px;
    flex-direction: column;
    align-items: center;     /* 가로 중앙 정렬 */
    flex: 1 0 0;
    align-self: center;      /* stretch 제거, 중앙 정렬 */
    justify-content: space-between;
    /*align-self: stretch;*/
    position: absolute;  /* 텍스트 위로 */
    box-sizing: border-box;   /* padding 포함하여 width 계산 */
}

.partition-1 .banner-contents-group2 {
    display: flex;
    max-width: 800px;
    width:  100%;
    max-height: 500px;
    height: 100%;
    margin: 0 auto;
    padding: 120px 30px 20px 30px;
    flex-direction: column;
    align-items: center;     /* 가로 중앙 정렬 */
    flex: 1 0 0;
    align-self: center;      /* stretch 제거, 중앙 정렬 */
    justify-content: space-between;
    /*align-self: stretch;*/
    position: absolute;  /* 텍스트 위로 */
    box-sizing: border-box;   /* padding 포함하여 width 계산 */
}

.partition-1 .banner-contents {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    flex: 1 0 0;
    align-self: stretch;
}

.partition-1 .banner-contents-top {
    display: flex;
    padding-top: 10px;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
}

.banner-txt {
    max-width: 420px;
    color: var(--main-black);
}

.banner-btn {
    display: flex;
    padding: 10px 20px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 1000px;
    background: var(--main-navy);
    z-index: 2;
}

.banner-btn:hover {
    background: var(--Transparent-black-60);
    cursor: pointer;
}

.arrow-btn-group {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 10px;
    position: absolute;
    right: 30px;
    bottom: 20px;
    z-index: 1;
}

.arrow-btn {
    display: flex;
    width: 40px;
    height: 40px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 100px;
    border: 1px solid var(--Transparent-black-10);
    background: var(--main-white);
    box-shadow: 0 0 4px 0 rgba(19, 20, 22, 0.10);
}

.arrow-btn:hover {
    border: 1px solid var(--Transparent-cyan-30);
    background: var(--Pastel-blue);
    box-shadow: 0 0 4px 0 rgba(19, 20, 22, 0.10);
    cursor: pointer;
}

.arrow-btn:hover svg path {
    stroke: #115AC6; /* 원하는 hover 색상 */
}

















.partition-2 {
    display: flex;
    padding: 80px 0 20px 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 50px;
    align-self: stretch;
    background: var(--main-white);
}

.partition-2 .title-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.title-container .title {
    color: var(--main-black);
    text-align: center;
}

.partition-2-table {
    /*margin-top: 50px;*/
    display: flex;
    flex-direction: column;
    align-items: center;     /* 좌우 중앙 정렬 */
    gap : 2px;
    justify-content: center;
    align-self: stretch;
}

.partition-2-tab {
    display: flex;
    justify-content: space-between; /* 탭을 균등하게 배치 */
    /*width: 1085px; !* 5개의 탭이 고정된 크기를 가지도록 설정 *!*/
    /*border-bottom: 2px solid rgba(48, 45, 48, 0.1);  !* 회색선 (색상은 원하는 대로 조정 가능) *!*/
    position: relative; /* 위치를 상대적으로 설정 */
    z-index: 1; /* 배경선보다 위로 오도록 설정 */

    max-width: 900px;
    width: 100%;
    border-radius: 20px;
    background: var(--main-white);

    /* border부분 tab line 잘리게 */
    overflow: hidden;
}

.partition-2-tab .tab .contents-tab-on .word {
    display: inline-block;   /* 단어 단위로 묶어서 줄바꿈 */
    white-space: nowrap;     /* 단어 안에서 줄바꿈 금지 */
    margin-right: 4px;       /* 단어 사이 간격 */
}

.partition-2 .tab {
    outline: 2px solid transparent;
    outline-offset: 2px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
    margin: 0;
    /*padding: 16px;*/
    color: var(--Transparent-black-60);
    transition: all 0.1s linear;
    width: 217px;
    /*height: 80px;*/
    /*box-sizing: border-box;*/
    cursor: pointer;
}

.partition-2 .tab p {
    font-family: "Wanted Sans", sans-serif;
    font-weight: 400;
    letter-spacing: -0.05em;                  /* -5% 정도면 -0.05em으로 변경 */
    text-align: center;
    vertical-align: middle;                   /* inline/inline-block 요소에서만 적용 */

}

.partition-2 .tab-line {
    position: absolute;
    bottom: -1px; /* border-radius 테두리 밖으로 라인 내려주기 */
    left: 0;
    width: 0;
    height: 3px;
    background-color: #3946e8;
    transition: width 0.6s ease-in-out;
    z-index: 5;
}

.partition-2 .tab.active .tab-line {
    width: 100%;
}

.partition-2 .tab:hover {
    /*background-color: rgba(0, 0, 0, 0.1);*/
    color: rgba(147, 195, 255, 0.6);
}

/* 탭이 활성화될 때 각 탭에 다른 배경색을 적용 */
.partition-2 .tab.active {
    background: radial-gradient(
            49.14% 96.61% at 51.11% 100%,
            #DCEEFF 0%,
            rgba(220, 238, 255, 0) 100%
    ) !important;
    border-radius: 6px !important;
    color: var(--main-blue) !important;
}

.partition-2 .tab.active p{
    font-weight: 700;
}

/* 기본적으로 모든 콘텐츠 숨기기 */
.partition-2 .tab-content .content {
    display: none;
}

.partition-2 .tab-content {
    max-width: 900px;
    width: 100%;
}

.partition-2 .tab-content .content .text-container{
    display: flex;
    height: 500px;
    max-width: 900px;
    padding-top: 48px;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
    border-radius: 20px;
    text-align: center; /* 텍스트 중앙 정렬 */
    opacity: 1; /* 투명도 영향을 받지 않도록 설정 */
    width: 100%;
}

.tab_contents_txt {
    color: var(--sub-d-blue);
    margin-top: 0;
    margin-bottom: 15px;
    padding: 0 13px;
}

/* 활성화된 콘텐츠만 표시 */
.partition-2 .tab-content .active-content {
    display: block;
}

.back-color-1 {
    background: linear-gradient(0deg, #DCEEFF -96.61%, #F1F8FF 96.61%);
}

.back-color-2 {
    background: linear-gradient(0deg, #C8D2DB -96.61%, #F2F7FC 96.61%);
}

.back-color-3 {
    background: linear-gradient(0deg, #CBE0FF -96.61%, #F5F9FF 96.61%);
}

.back-color-4 {
    background: linear-gradient(0deg, #CFDCE7 -96.61%, #F6FBFF 96.61%);
}

.back-color-5 {
    background: linear-gradient(0deg, #D3ECFA -96.61%, #F6FCFF 96.61%);
}

.pc_img {
    display: block;
    margin-top: 29px;
    max-height: 320px;
}

.mobile_img {
    display: none;
}
















.partition-3-wrapper {
    position: relative;
    width: 100%;
}

.partition-3 {
    width: 100%;
    display: flex;
    padding-top: 80px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    background: linear-gradient(180deg, #FFF 0%, #FBFBFB 100%);
}

.partition-3 .slide-container {
    width: 100%;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: flex-start;
    /*margin-top: 322px;*/
}

.partition-3 .slide-track {
    display: flex;
    /*width: 370%;*/
    width: max-content; /* 트랙 전체 너비를 내용 크기에 맞게 */
    animation: slide-all 50s linear infinite;

    padding: 10px 0;
    justify-content: center;
    align-items: center;
    gap: 10px;
    /*align-self: stretch;*/
}

.partition-3 .slide_txt {
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 15px;
    background: var(--sub-w-gray);
    backdrop-filter: blur(35px);
    white-space: nowrap; /* 한 줄로 유지 */
    width: auto; /* 텍스트 길이에 맞게 자동 */
    height: 39px;
    box-sizing: border-box;
}

.partition-3 .slide_txt .slide-txt-color {
    color: var(--Transparent-d-blue-90, rgba(17, 71, 151, 0.90));
    text-align: center;
}

.partition-3-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
}

.partition-3-txt {
    color: var(--main-black, #131416);
    text-align: center;
}

.partition-3-img {
    position: relative;
    max-width: 600px;
    max-height: 300px;
    margin: 0 auto;
    border-radius: 20px;
    overflow: hidden; /* 이미지가 잘림 방지 */
}

.partition-3-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.1s linear; /* 부드럽게 축소 */
}























.partition-4-wrapper {
    position: relative;
    width: 100%;
}

.partition-4 {
    display: flex;
    padding: 160px 0 100px 0;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    align-self: stretch;
    background: linear-gradient(180deg, rgba(239, 246, 255, 0.00) 7.5%, #EFF6FF 18.95%);
    /*background: linear-gradient(180deg, rgba(239, 246, 255, 0.00) 7.5%, #EFF6FF 12.95%);*/
    z-index: 2;
}

.partition-4-center {
    width: 100%;
    max-width: 900px;
    height: auto; /* 내부 내용에 따라 자동으로 */
    margin: 0 auto;
    position: relative; /* 혹은 position 삭제 */
    left: auto;
    transform: none;
}

.partition-4-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    align-self: stretch;
    text-align: center;
}

.before-after-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    align-self: stretch;
}

.before-group {
    display: flex;
    height: 280px;
    max-width: 900px;
    padding: 0 15px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
}

.before-group-mobile {
    position: relative; /* 일반 flow */

    display: flex;
    width: 100%;
    max-width: 400px;
    padding: 0 15px;
    flex-direction: column;
    align-items: center;
}

.before {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex: 1 0 0;
    align-self: stretch;
}

.before-content {
    display: flex;
    padding: 10px 20px 0 20px;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
}

.before-content-mobile {
    display: flex;
    height: 140px;
    max-width: 300px;
    padding: 15px 20px;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    box-sizing: border-box;
    justify-content: space-between;
    margin: 0 auto;   /* 좌우 자동 → 가운데 정렬 */
    width: fit-content;   /* 내용 크기만큼만 */
}

.before-text-group {
    display: flex;
    padding-top: 10px;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    align-self: stretch;
}

.before-text-group-mobile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    flex: 1 0 0;
}

.before-icon {
    display: flex;
    padding: 5px 8px;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    background: var(--main-white);
}

.before-icon-text {
    color: var(--main-navy);
    text-align: center;
}

.before-text {
    align-self: stretch;
    color: var(--main-navy);
    text-align: center;
}

.before-text-mobile {
    width: 170px;
    align-self: stretch;
    color: var(--main-navy);
    text-align: left;
}

.before-content img{
    width: 100%; /* 가로폭을 100%로 설정 */
    height: auto; /* 세로는 자동으로 비율에 맞게 조정 */
    max-width: 130px; /* 최대 가로폭 제한 */
    max-height: 166px; /* 최대 세로높이 제한 */
    object-fit: contain; /* 이미지가 비율에 맞게 들어가도록 조정 */
    display: block;
}

.after-group {
    display: flex;
    height: 280px;
    max-width: 900px;
    padding: 0 15px;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    align-self: stretch;
}

.after-group-mobile {
    top: 0;
    /*left: 0;         !* 부모 기준 시작 위치 *!*/
    left: 50%;       /* 초기 위치 중앙 기준 */
    position: absolute; /* before-group-mobile 위로 겹치도록 */
    z-index: 10;         /* [전] 위로 겹치게 */

    display: flex;
    width: 100%;
    max-width: 400px;
    padding: 0 15px;
    flex-direction: column;
    align-items: center;
    /*position: relative; !* 필요 시 absolute로 해도 됨 *!*/
    /*transform: translateX(100%); !* 초기 화면 밖 오른쪽 *!*/
    transform: translate(100%); /* 이동 시작: 오른쪽 밖 */
}

.after {
    display: flex;
    height: 280px;
    justify-content: center;
    align-items: flex-end;
    gap: 10px;
    flex-shrink: 0;
    align-self: stretch;
}

.after-content {
    display: flex;
    padding: 10px 20px 0 20px;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    flex: 1 0 0;
    align-self: stretch;
    border-radius: 20px;
    background: var(--Transparent-d-blue-90);
    backdrop-filter: blur(5.449999809265137px);
    overflow: hidden;

    position: relative;       /* 자식 absolute 기준 */
    justify-content: center;  /* 가로 중앙 */
}

.after-content-mobile {
    display: flex;
    height: 140px;
    max-width: 300px;
    padding: 15px 20px;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    border-radius: 20px;
    background: var(--Transparent-d-blue-90);
    backdrop-filter: blur(5.449999809265137px);
    overflow: hidden;

    position: relative;       /* 자식 absolute 기준 */
    /*justify-content: center;  !* 가로 중앙 *!*/
    margin: 0 auto;   /* 좌우 자동 → 가운데 정렬 */
    width: fit-content;   /* 내용 크기만큼만 */
}

.after-text-group {
    display: flex;
    padding-top: 10px;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    align-self: stretch;
    text-align: center;        /* 👈 텍스트 중앙 정렬 */
}

.after-text-group-mobile {
    display: flex;
    justify-content: center;
    align-self: stretch;
    text-align: left;        /* 👈 텍스트 중앙 정렬 */

    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    flex: 1 0 0;
}

.after-icon {
    display: flex;
    padding: 5px 8px;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    background: var(--main-white);
}


.before-after-img {
    width: 100%; /* 가로폭을 100%로 설정 */
    height: auto; /* 세로는 자동으로 비율에 맞게 조정 */
    max-width: 130px; /* 최대 가로폭 제한 */
    max-height: 166px; /* 최대 세로높이 제한 */
    object-fit: contain; /* 이미지가 비율에 맞게 들어가도록 조정 */
    display: block;
}

.before-after-mobile-img {
    width: 100%; /* 가로폭을 100%로 설정 */
    height: auto; /* 세로는 자동으로 비율에 맞게 조정 */
    max-width: 60px; /* 최대 가로폭 제한 */
    max-height: 77px; /* 최대 세로높이 제한 */
    object-fit: contain; /* 이미지가 비율에 맞게 들어가도록 조정 */
    display: block;
}

.after-text {
    align-self: stretch;
    color: var(--main-white);
    text-align: center;
}

.after-text-mobile {
    width: 170px;
    align-self: stretch;
    color: var(--main-white);
    text-align: left;
}

.pc_only { display: block; }
.mobile_only { display: none; }
.scroll { display: none; }






.floating-buttons {
    position: fixed;          /* 화면 기준 고정 */
    bottom: 0;
    display: flex;
    z-index: 10;
    justify-content: center;
    align-items: center;
    max-width: 100%;         /* 버튼 그룹 최대 너비 */
    width: 100%;
    padding: 15px 10px;
    align-content: center;
    flex-wrap: wrap;
    height: 97px;
    border-radius: 10px;
}

/*.floating-buttons .button-group {*/
/*    display: flex;*/
/*    max-width: 900px;*/
/*    align-items: flex-start;*/
/*    flex: 1 0 0;*/
/*    height: 100%;*/

/*    border-radius: 10px;*/
/*    border: 2px solid var(--main-white, #FFF);*/
/*    background: var(--Transparent-black-90, rgba(19, 20, 22, 0.90));*/
/*    backdrop-filter: blur(20px);*/
/*}*/

.floating-buttons .button-group {
    display: flex;
    max-width: 900px;
    flex: 1 0 0;
    height: 67px; /* 원하는 실제 높이 */

    /* border 대신 outline 사용 */
    outline: 2px solid #FFF;
    outline-offset: 0; /* border처럼 딱 맞게 */

    border-radius: 10px;
    background: rgba(19, 20, 22, 0.90);
    backdrop-filter: blur(20px);
}

.floating-button1 {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
    padding: 12px 20px;
    cursor: pointer;
    border-right: 1px dashed rgba(255, 255, 255, 0.70);
    flex-direction: column;
    background: var(--Transparent-black-90, rgba(19, 20, 22, 0.90));
    max-width: 156px;
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}

.floating-button2 {
    display: flex;
    padding: 10px 20px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
    border-right: 1px dashed var(--Transparent-white-60, rgba(255, 255, 255, 0.60));
    background: var(--Transparent-blue-60, rgba(17, 90, 198, 0.60));
    cursor: pointer;
}

.floating-button3 {
    display: flex;
    padding: 10px 20px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
    border-right: 1px dashed var(--Transparent-white-60, rgba(255, 255, 255, 0.60));
    background: var(--Transparent-blue-60, rgba(17, 90, 198, 0.60));
    cursor: pointer;
}

.floating-button4 {
    display: flex;
    padding: 10px 20px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
    background: var(--Transparent-blue-60, rgba(17, 90, 198, 0.60));
    cursor: pointer;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}

.floating-btn-txt {
    color: #FFF;
    text-align: center;
}




/* 슬라이드 애니메이션 */
@keyframes slide-all {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* 마우스 hover 시 애니메이션 멈추기 */
.partition-3 .slide-track:hover {
    animation-play-state: paused;
}


/* ✅ 900px 이상 */
@media (min-width: 900px) {
    .partition-1 .point-layout img {
        width: 400px;
        height: 400px;
        position: absolute;
        right: calc((100% - 900px) / 2 + 50px); /* 화면이 커져도 900px 기준 위치 고정 */
        /*bottom: 50%;*/
        /*transform: translateY(50%);*/
    }
}

/* ✅ 692px ~ 899px */
@media (min-width: 692px) and (max-width: 899px) {
    .partition-1 .point-layout img {
        width: 400px;
        height: 400px;
        right: 0;
        left: auto;
        /*bottom: 50%;*/
        /*transform: translateY(50%);*/
    }


    .floating-buttons {
        height: 94px;
    }
    .floating-buttons .button-group {
        max-width: 692px;
    }
    .floating-button1 {
        max-width: 146px;
    }
}


/* ✅ 692px ~ 899px */
@media (min-width: 533px) and (max-width: 691px) {
    .floating-buttons {
        height: 65px;
        padding: 5px;
    }
    .floating-buttons .button-group {
        max-width: 533px;
        height: 55px;
    }
    .floating-button1 {
        display: none;
    }
    .floating-button2 {
        border-top-left-radius: 10px;
        border-bottom-left-radius: 10px;
    }
}

/* ✅ 1px ~ 691px (모바일) */
@media (max-width: 691px) {
    .partition-1 .point-layout img {
        width: 280px;
        height: 280px;
        aspect-ratio: 1 / 1;
        left: 50%;
        bottom: 0;
        transform: translateX(-50%); /* 중앙 정렬 */
    }

    .pc_img {
        display: none;
    }

    .mobile_img {
        display: block;
        margin-top: 29px;
        max-height: 320px;
    }

    .tab-txt {
        width: 50px;
    }

    .pc_only { display: none; }
    .mobile_only {
        display: flex;
        position: relative;
        width: 100%;
        flex-direction: column; /* 세로 스택 유지 */
        overflow: hidden;
        align-items: center; /* 가로 중앙 정렬 */
    }

    .before-after-wrapper.mobile_only {
        position: relative; /* 필수! */
        margin-top: 15px;
    }

    .before-group-mobile .before {
        flex-direction: column;
        align-items: center; /* 가운데 정렬 */
    }

    .after-group-mobile .after {
        flex-direction: column;
        align-items: center; /* 가운데 정렬 */
        height: 440px;
    }

    .scroll {
        display: block;
        height: 400px;
    }

    .partition-2 .tab-content .content .text-container{
        height: auto;
        border-radius: 0;
    }

    .partition-5 .review-container .review {
        display: flex;
        width: 100%;      /* 260px → 100%로 변경 */
        max-width: 260px;
        flex-direction: column;
        align-items: center;
        align-self: stretch;
    }

    .partition-5 .review-container .review .office {
        display: flex;
        padding: 15px;
        justify-content: space-between;
        align-items: center;
        align-self: stretch;
    }

    .partition-5 .review-container .review .list {
        display: flex;
        padding: 20px 15px 15px 15px;
        flex-direction: column;
        justify-content: space-between; /* 핵심 */
        align-items: flex-start;
        align-self: stretch;
        height: 255px;
    }

    .review-track {
        width: auto; /* max-content → auto로 변경 */
        flex-wrap: nowrap;
        animation: slide-review 25s linear infinite; /* 모바일은 속도 줄이기 optional */
        gap: 15px;
    }

    .partition-5 .review-container .text-section {
        display: block !important;              /* -webkit-box 대신 기본 block */
        -webkit-line-clamp: unset !important;   /* 라인 제한 해제 */
        -webkit-box-orient: unset !important;   /* box-orient 초기화 */
        overflow: visible !important;           /* 숨김 해제 */
        text-overflow: clip !important;         /* ... 제거 */
        white-space: normal !important;         /* 줄바꿈 허용 */
        height: auto !important;                /* 고정 높이 해제 */
    }


    .partition-3-img {
        max-width: 500px;
        max-height: 250px;
        aspect-ratio: 2/1;
    }
}

@media (max-width: 532px) {
    .partition-6-partners {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .partition-6-img {
        flex: 0 0 50%;     /* 한 줄에 정확히 2개 */
        max-width: 50%;    /* 2개 고정 */
        box-sizing: border-box;
        padding: 5px;
        object-fit: contain;
        width: 100%;       /* flex-basis 안먹는 문제 해결 */
        height: auto;      /* 비율 유지 */
    }

    .floating-buttons {
        height: 63px;
        padding: 5px;
    }
    .floating-buttons .button-group {
        max-width: 320px;
        height: 53px;
    }
    .floating-button1 {
        display: none;
    }
    .floating-button2 {
        display: none;
    }
    .floating-button3 {
        border-top-left-radius: 10px;
        border-bottom-left-radius: 10px;
    }
}

@media (max-width: 320px) {
    .partition-3-img {
        max-width: 400px;
        max-height: 200px;
        aspect-ratio: 2/1;
    }
}




























.partition-5 {
    display: flex;
    padding: 100px 0 80px 0;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    align-self: stretch;
    background: linear-gradient(180deg, #FBFBFB 22.81%, #EFF6FF 100%);

    /* partition-4 덮는 효과 */
    z-index: 3;
}

.partition-5-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    align-self: stretch;

    width: 100%;
    /*max-width: 900px;*/
    height: auto; /* 내부 내용에 따라 자동으로 */
    margin: 0 auto;
    position: relative; /* 혹은 position 삭제 */
    left: auto;
    transform: none;
}

.partition-5-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    align-self: stretch;
}

.partition-2-tab .tab .contents-tab-on .word {
    display: inline-block;   /* 단어 단위로 묶어서 줄바꿈 */
    white-space: nowrap;     /* 단어 안에서 줄바꿈 금지 */
    margin-right: 4px;       /* 단어 사이 간격 */
}

.move-button {
    display: flex;
    padding: 10px 20px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 1000px;
    background: var(--main-navy);
}

.move-button:hover {
    background: var(--Transparent-black-60);
}

.white {
    color: var(--main-white);
}

.partition-5 .review-container {
    display: flex;
    width: 100%;
    padding: 10px;
    align-items: center;
    gap: 20px;
    align-self: stretch;
}

.review-track {
    display: flex;
    /*width: 250%; !* 총 슬라이드 항목 수에 맞게 조정 *!*/
    justify-content: flex-start; /* 항목들이 왼쪽에 정렬되도록 설정 */
    animation: slide-review 40s linear infinite;
    align-items: center;
    align-self: stretch;
    flex-direction: row; /* ✅ 가로로 나열 */
    gap: 20px;
    width: max-content; /* 콘텐츠 폭에 맞춤 */
}

/* 슬라이드 애니메이션 */
@keyframes slide-review {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%); /* 트랙을 절반만 이동 */
    }
}

/* 마우스 hover 시 애니메이션 멈추기 */
.review-container:hover .review-track {
    animation-play-state: paused;
}

.partition-5 .review-container .review {
    display: flex;
    width: 380px;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
    border-radius: 14px;
    border: 1px solid var(--Transparent-black-10);
    background: var(--main-white);
    flex-shrink: 0; /* 부모 폭에 맞춰 줄어드는 걸 방지 */
    box-sizing: border-box; /* border 포함해서 정확한 width 적용 */

    transition: transform 0.25s ease; /* 부드러운 확대·축소 */
}

.partition-5 .review-container .review:hover {
    transform: scale(1.05);
}

.review a {
    text-decoration: none; /* 기본 링크 밑줄 제거 */
    color: inherit; /* 부모 요소의 글자 색상을 그대로 사용 */
    display: flex; /* 가로로 배치 */
    justify-content: space-between; /* 텍스트와 아이콘을 양 끝으로 배치 */
    align-items: center; /* 세로로 중앙 정렬 */
    width: 100%; /* 전체 너비를 사용 */
}

.review a:hover {
    cursor: pointer; /* 마우스를 올렸을 때 포인터 커서로 변경 */
}

.partition-5 .review-container .office {
    display: flex;
    padding: 20px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    border-bottom: 1px solid var(--Transparent-black-10);
}

.office svg {
    margin-left: 10px; /* 아이콘과 텍스트 사이에 간격을 추가 */
}

.partition-5 .review-container .office p {
    margin: 0;
}

.partition-5 .review-container .list {
    display: flex;
    height: 229px;
    min-height: 200px;
    padding: 30px 29px;
    flex-direction: column;
    /*justify-content: space-between;*/
    justify-content: flex-start; /* 항목 위쪽부터 시작 */
    align-items: flex-start;
    align-self: stretch;
    gap: 30px;
    box-sizing: border-box; /* padding 포함해서 229px 유지 */
}

.partition-5 .review-container .section-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    align-self: stretch;
}

.partition-5 .review-container .title-section {
    color: var(--sub-d-blue);
}

.partition-5 .review-container .text-section {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    align-self: stretch;
    overflow: hidden;
    color: var(--main-black);
    text-align: justify;
    text-overflow: ellipsis;
}

.partition-5 .review-container .text-section b {
    font-weight: 700;
}

.partition-5 .review-container .div-section {
    display: flex;
    padding: 8px 14px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 3px;
    background: var(--Transparent-blue-10);

}

.partition-5 .review-container .div-section p {
    color: var(--sub-d-blue);
    margin: 0;
}













.partition-6 {
    display: flex;
    padding: 80px 0;
    flex-direction: column;
    align-items: center;
    /*gap: 40px;*/
    align-self: stretch;
    border-top: 1px solid #DCEEFF;
    background: var(--main-white);

    /* partition-4 덮는 효과 */
    z-index: 3;
}

.partition-6-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    align-self: stretch;

    width: 100%;
    max-width: 900px;
    height: auto; /* 내부 내용에 따라 자동으로 */
    margin: 0 auto;
    position: relative; /* 혹은 position 삭제 */
    left: auto;
    transform: none;
}

.partition-6-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    align-self: stretch;
}

.partition-6-partners {
    display: flex;
    max-width: 900px;
    padding: 20px;
    justify-content: center;
    align-items: flex-start;
    align-content: flex-start;
    align-self: stretch;
    flex-wrap: wrap;
    background: var(--main-white);
}

.partition-6-img {
    display: flex;
    width: 214px;
    height: 63px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 3.271px;
}
















.partition-7 {
    display: flex;
    padding: 80px 0;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    align-self: stretch;
    background: var(--sub-d-blue);

    /* partition-4 덮는 효과 */
    z-index: 3;
}

.partition-7 .partition-7-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    align-self: stretch;
}

.partition-7-title {
    display: flex;
    /*max-width: 600px;*/
    flex-direction: column;
    align-items: center;
    gap: 2px;
    align-self: stretch;
}

.drop-faq-list {
    display: flex;
    padding: 0 20px;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
    transition: height 0.3s ease-in-out;

    width: 100%;              /* 최대 너비 지정 가능 */
    max-width: 700px;         /* 원하는 최대 너비 */
    margin: 0 auto;           /* 화면 좌우 중앙 정렬 */
}

.drop {
    display: flex;
    max-width: 700px;
    padding: 0 10px;
    flex-direction: column;
    align-items: flex-start;
    align-self: stretch;
    border-top: 0.5px solid #DCEEFF;
}

.drop-title {
    display: flex;
    padding: 10px 0;
    align-items: center;
    gap: 20px;
    align-self: stretch;
    cursor: pointer;
}

.drop-title-txt {
    display: flex;
    padding: 13px 0;
    align-items: center;
    gap: 10px;
    flex: 1 0 0;
}

.title-left {
    color: #FFF;
    font-weight: 700;
    text-align: left;
}

.svg-group {
    height: 60px;
    display: flex;
    justify-content: center; /* 가로 가운데 */
    align-items: center;     /* 세로 가운데 */
}

.drop svg {
    margin-left: auto;
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.drop-content {
    overflow: hidden;          /* 높이 변경 시 내용이 잘리지 않도록 */
    max-height: 0;             /* 기본은 접혀있음 */
    transition: max-height 0.4s ease, padding 0.4s ease;
    padding: 0 20px;           /* 접힐 때도 패딩 유지 */
}

.drop-content.show {
    display: block;
    padding: 0 20px 42px 30px;
    align-items: flex-end;
    gap: 10px;
    align-self: stretch;

    max-height: 500px;         /* 충분히 큰 값, 내용에 맞게 늘어남 */
}

.drop-txt {
    flex: 1 0 0;
}

.svg.on {
    display: block;
}

.svg.off {
    display: none;
}

.partition-7-btns {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center; /* 버튼 자체를 좌우 가운데 정렬 */
    gap: 10px;
    padding: 0 30px;
    align-self: stretch;
}

.partition-7-btns .btn {
    display: flex;
    width: 100%; /* stretch 효과 유지 */
    max-width: 500px;
    padding: 30px;
    align-items: center;
    justify-content: center; /* 내부 내용 가운데 정렬 */
    gap: 40px;
    border-radius: 12px;
    position: relative; /* ← 아이콘의 절대 위치 기준 */

    overflow: hidden; /* 효과가 버튼 밖으로 안 나가도록 */
    z-index: 1; /* 텍스트가 ::after보다 위에 위치 */
}

.partition-7-btns .btn.white {
    background: var(--main-white);
}

.partition-7-btns .btn.black {
    background: var(--main-black);
}

.button-text {
    display: flex;
    padding-right: 48px;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    flex: 1 0 0;
}

.white_btn_txt1 {
    color: var(--Transparent-blue-60);
}

.white_btn_txt2 {
    color: var(--main-blue);
}

.black_btn_txt1 {
    color: var(--Transparent-white-60);
}

.black_btn_txt2 {
    color: var(--main-white);
}

/* 버튼 내 아이콘 스타일 */
.partition-7-btns .btn .btn-icon {
    position: absolute;
    right: 32px;
    top: 44px;
    z-index: 3; /* ::after보다 위로 */
    pointer-events: none; /* 클릭 막기 */
}

/* hover 시 원이 커지고 stroke-width가 두꺼워짐 */
/*.partition-7-btns .btn:hover .btn-icon path {*/
/*    !*animation: svgBubbleEffect 0.2s ease-in-out 2;*!*/
/*    !*stroke-width: 5px;*!*/
/*}*/

/* --------------------------------------------------------- */
/* 💫 버튼 hover 버블 효과 (white, black 각각 다르게) */
/* --------------------------------------------------------- */

/* 공통 초기 상태 */
.partition-7-btns .btn::after {
    content: "";
    position: absolute;
    width: 378px;
    height: 378px;
    border-radius: 50%;
    right: -213px;
    top: -122px;
    transform: scale(0);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    z-index: 0;
}

/* white 버튼용 */
.partition-7-btns .btn.white::after {
    background: radial-gradient(49.14% 96.61% at 51.11% 100%, #C0EFFF 45%, rgba(220, 238, 255, 0) 100%);
}

/* black 버튼용 */
.partition-7-btns .btn.black::after {
    background: radial-gradient(49.14% 96.61% at 51.11% 100%, #0062C4 45%, rgba(0, 67, 134, 0) 100%);
}

/* hover 시 원 퍼지는 애니메이션 */
.partition-7-btns .btn:hover::after {
    opacity: 1;
    transform: scale(1);
    animation: bubbleEffect 0.4s ease-in-out 1;
}

/* 버블 효과 keyframes */
@keyframes bubbleEffect {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        transform: scale(1.2);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 0.8;
    }
}

/* hover 시 svg 아이콘 반응 */
/*.partition-7-btns .btn:hover .btn-icon path {*/
/*    animation: svgBubbleEffect 0.2s ease-in-out 2;*/
/*    !*stroke-width: 5px;*!*/
/*}*/

@keyframes svgBubbleEffect {
    0% { transform: scale(1); }
    50% { transform: scale(1.3); }
    100% { transform: scale(1); }
}