* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.n-project-page img {
    width: 100%;
}

.bannerCont {
    position: relative;
}

.bannerText {
    position: absolute;
    left: calc((100% - 1400px)/2);
    top: 50%;
    transform: translateY(-50%);
    max-width: 800px;
}

.bannerText h1 {
    color: #FFF;
    font-size: 48px;
    font-weight: 700;
    line-height: 120%;
}

.bannerText p {
    color: #FFF;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    margin-top: 12px;
}

.n-project-btn {
    display: inline-block;
    margin-top: 48px;
    height: 46px;
    border-radius: 24px;
    backdrop-filter: blur(2.5px);
    -webkit-backdrop-filter: blur(2.5px);
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    padding: 12px 40px;
    box-sizing: border-box;
    cursor: pointer;
}

.n-project-btn.redBtn {
    color: #FFF;
    background: #E60039;
}
.redBtn:hover {
    background: #F23E5E;
    color: #FFF;
}
.navCont {
    position: sticky;
    width: 100%;
    padding: 14px 0;
    background: #F7F9FA;
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.03);
    z-index: 20;
}

.navText {
    display: none;
}

.navInfo {
    display: flex;
    justify-content: end;
    align-items: center;
    width: 1400px;
    margin: 0 auto;
}

.navTab {
    position: relative;
    margin-left: 24px;
    color: #6A6B6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 200%;
    cursor: pointer;
}

.navTab.active {
    font-weight: 700;
    color: #2A2B2E;
    pointer-events: none;
}

.navTab.active::after {
    content: '';
    display: block;
    background-color: #E60039;
    width: 100%;
    height: 2px;
}

.pageCont {
    width: 1400px;
    margin: 0 auto;
    padding: 80px 0;
}

.pageCont h2 {
    color: #2A2B2E;
    font-size: 36px;
    font-weight: 700;
    line-height: 150%;
}

.rowText p {
    margin-top: 24px;
    color: #6A6B6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
}

.rowText p b {
    color: #2A2B2E;
}

.rowCont {
    display: flex;
    align-items: center;
}

.rowCont img {
    width: 688px;
    flex-shrink: 0;
    margin-right: 48px;
}

.gridCont {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 60px;
}

.gridInfo {
    display: flex;
    align-items: flex-start;
}

.gridText h3 {
    color: #2A2B2E;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
}

.gridText p {
    margin-top: 12px;
    color: #6A6B6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
}

.gridImg {
    width: 80px;
    margin-right: 16px;
    flex-shrink: 0;
}

.greyCont {
    background: #f7f9fa;
}

#expert.rowCont img {
    margin-left: 48px;
    margin-right: 0;
}

.listCont {
    display: flex;
}

.listCont h2 {
    flex-shrink: 0;
    margin-right: 64px;
}

.listMain {
    padding-left: 40px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    border-left: 1px solid #D5D5D5;
}

.listInfo h3 {
    color: #2A2B2E;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
}

.listInfo p {
    margin-top: 12px;
    color: #6A6B6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
}

.cardCont {
    margin-top: 60px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.cardInfo {
    text-align: center;
}

.cardInfo h3 {
    color: #2A2B2E;
    text-align: center;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
}

.cardInfo p {
    margin-top: 12px;
    color: #6A6B6D;
    text-align: center;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
}

.cardInfo p span {
    color: #9B9FA8;
    font-size: 12px;
    font-weight: 400;
}

.cardImg {
    margin: 0 auto;
    width: 160px;
}

.centerAlign {
    text-align: center;
}

.solutionImg {
    width: 688px;
    flex-shrink: 0;
}

.solutionCont {
    margin-top: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.solutionText h3 {
    color: #2A2B2E;
    font-size: 24px;
    font-weight: 400;
    line-height: 150%;
}

.solutionText p {
    margin-top: 12px;
    color: #6A6B6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
}

.solutionText a {
    margin-top: 32px;
    display: inline-block;
    color: #FFF;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    padding: 11px 32px;
    border-radius: 24px;
    background: #E60039;
}

.solutionText a:hover {
    background: #F23E5E;
    color: #FFF;
}

.tabCont {
    margin-top: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #D5D5D5;
}

.tabInfo {
    position: relative;
    color: #6A6B6D;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    margin-right: 24px;
    padding: 0 24px 12px 24px;
    cursor: pointer;
}

.tabInfo.active {
    color: #2A2B2E;
    font-weight: 700;
    pointer-events: none;
}

#caseSwiper .swiper-pagination {
    display: none;
}

.tabInfo.active::after {
    width: 100%;
    content: '';
    display: block;
    height: 2px;
    border-bottom: 2px solid #E60039;
    position: absolute;
    bottom: 0;
    left: 0;
}

.docCont {
    margin-top: 60px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.docTab {
    color: #E60039;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    padding-left: 24px;
    border-left: 1px solid #E60039;
}

.docCards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.linkBtn {
    margin-top: 34px;
    display: flex;
    align-items: center;
    color: #E60039;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
}

.linkBtn::after {
    content: '';
    width: 24px;
    height: 24px;
    background-image: url(../RJ-img/link.svg);
    display: block;
    background-size: cover;
    transition: all 0.3s ease;
}

.docCard {
    position: relative;
    border-radius: 4px;
    border: 2px solid #FFF;
    background: linear-gradient(180deg, #F3F5F8 0%, #FFF 100%);
    box-shadow: 0px 6px 20px 0px rgba(213, 219, 228, 0.50);
    padding: 24px;
    max-width: 520px;
}

.docCard a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.docCard h3 {
    color: #2A2B2E;
    font-size: 18px;
    font-weight: 400;
    line-height: 150%;
}

.docCard:hover .linkBtn::after,
.caseText:hover .linkBtn::after {
    transform: translateX(10px);
}

#caseCont {
    padding-bottom: 40px;
}

.caseInfo {
    position: relative;
}

.caseText {
    position: absolute;
    left: calc((100% - 1400px)/2);
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    max-width: 380px;
    background: #FFF;
    padding: 36px;
}

.caseText img {
    width: unset;
    height: 20px;
}

.caseText p {
    margin-top: 28px;
    overflow: hidden;
    color: #6A6B6D;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 7;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    min-height: 168px;
}

.caseText a {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.caseSection {
    position: relative;
}

.prevBtn,
.nextBtn {
    width: 70px;
    height: 70px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    cursor: pointer;
}

.prevBtn {
    left: 100px;
}

.nextBtn {
    right: 100px;
}

.nextBtn.swiper-button-disabled,
.prevBtn.swiper-button-disabled {
    display: none;
}
.form-mask,.form-modal{
    display: none;
}
.form-mask{
    background-color: rgba(0, 0, 0, 0.60);
    position: fixed;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    top: 0;
    left: 0;
}
.form-modal{
    position: fixed;
    background-color: #FFFFFF;
    z-index: 10000;
    width: 960px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 48px 100px;
}
.form-modal-header{
    margin: 0 auto;
}
.form-title{
    color: #2A2B2E;
    font-weight: 700;
    line-height: 120%; /* 38.4px */
    position: relative;
}
.form-desc{
    margin-top: 12px; 
    color: #6A6B6D;
    line-height: 150%; /* 21px */
}
.form-modal-body{
    margin-top: 24px;
}
.form-close{
    position: absolute;
    top: 16px;
    right: 24px;
    font-size: 36px;
    line-height: 100%;
    color:#6A6B6D;
    cursor: pointer;
}
@media screen and (max-width: 1800px) {
    .prevBtn {
        left: 6px;
    }
    .nextBtn {
        right: 6px;
    }
}

@media screen and (max-width: 1620px) {
    .prevBtn,
    .nextBtn {
        width: 48px;
    }
    .caseText {
        left: calc((100% - 1200px)/2);
    }
    .tabInfo {
        font-size: 16px;
        margin-right: 16px;
    }
}

@media screen and (max-width: 1440px) {
    .bannerText {
        left: calc((100% - 1200px)/2);
        max-width: 688px;
    }
    .bannerText h1 {
        font-size: 42px;
    }
    .bannerText p {
        font-size: 14px;
    }
    .pageCont {
        width: 1200px;
    }
    .rowCont img {
        width: 592px;
    }
    .pageCont h2 {
        font-size: 32px;
    }
    .gridImg {
        width: 64px;
    }
    .pageCont {
        padding: 72px 0;
    }
    .navInfo {
        width: 1200px;
    }
    .cardImg {
        width: 120px;
    }
    .listInfo p {
        font-size: 14px;
    }
    .cardInfo p {
        font-size: 14px;
    }
    .solutionImg {
        width: 592px;
    }
    .solutionText h3 {
        font-size: 22px;
    }
    .docCard {
        max-width: 448px;
    }
    .docCard h3 {
        font-size: 16px;
    }
    .caseText p {
        margin-top: 20px;
        -webkit-line-clamp: 4;
        min-height: 68px;
    }
    .caseText img {
        height: 16px;
        width: unset;
    }
    .linkBtn {
        margin-top: 24px;
    }
    .n-project-btn {
        margin-top: 42px;
    }
}

@media screen and (max-width: 1300px) {
    .caseText {
        left: calc((100% - 1024px) / 2);
    }
}

@media screen and (max-width: 1281px) {
    .bannerText {
        left: calc((100% - 1024px)/2);
        max-width: 592px;
    }
    .bannerText h1 {
        font-size: 36px;
    }
    .navInfo {
        width: 1024px;
    }
    .pageCont {
        width: 1024px;
    }
    .rowCont img {
        width: 502px;
    }
    .pageCont h2 {
        font-size: 28px;
    }
    .rowText p {
        margin-top: 16px;
    }
    .rowText p {
        font-size: 14px;
    }
    .gridImg {
        width: 48px;
    }
    .gridText p {
        font-size: 14px;
    }
    .gridText h3 {
        font-size: 18px;
    }
    .listCont h2 {
        margin-right: 36px;
    }
    .listMain {
        padding-left: 24px;
    }
    .cardImg {
        width: 106px;
    }
    .solutionImg {
        width: 502px;
    }
    .solutionText h3 {
        font-size: 18px;
    }
    .solutionText a {
        font-size: 14px;
        padding: 8px 24px;
    }
    .solutionCont {
        margin-top: 48px;
    }
    .docCard {
        max-width: 380px;
        padding: 16px;
    }
    .linkBtn {
        font-size: 14px;
        margin-top: 18px;
    }
    .linkBtn::after {
        width: 20px;
        height: 20px;
    }
    .n-project-btn {
        margin-top: 36px;
        font-size: 14px;
        height: 40px;
        padding: 9px 32px;
    }
    .form-modal{
        padding: 24px 80px;
    }
}

@media screen and (max-width: 1160px) {
    .prevBtn,
    .nextBtn {
        display: none;
    }
    .caseText {
        left: 36px;
        padding: 20px;
    }
}

@media screen and (max-width:768px) {
    .bannerText {
        left: 0;
        width: 100%;
        top: 0;
        transform: unset;
        padding: 32px 20px 0 20px;
    }
    .bannerText h1 {
        font-size: 24px;
    }
    .bannerText p {
        font-size: 16px;
    }
    .pageCont {
        width: 100%;
        padding: 40px 20px;
    }
    .rowCont {
        flex-wrap: wrap;
    }
    .rowCont img,
    #expert.rowCont img {
        margin-top: 40px;
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }
    .navCont+.pageCont .rowCont {
        flex-direction: column-reverse;
    }
    .pageCont h2 {
        font-size: 22px;
    }
    .gridCont {
        grid-template-columns: repeat(1, 1fr);
    }
    .listCont {
        flex-wrap: wrap;
    }
    .listMain {
        grid-template-columns: repeat(1, 1fr);
        gap: 24px;
        border-left: unset;
        border-top: 1px solid #D5D5D5;
        padding-left: 0;
        padding-top: 24px;
    }
    .listCont h2 {
        margin-right: 0;
        margin-bottom: 24px;
    }
    .listInfo h3 {
        font-size: 18px;
    }
    .cardCont {
        grid-template-columns: repeat(1, 1fr);
    }
    .cardImg {
        width: 120px;
    }
    .solutionCont {
        flex-wrap: wrap;
    }
    .solutionImg {
        width: 100%;
    }
    .centerAlign+.solutionCont {
        flex-direction: column-reverse;
    }
    .solutionText {
        margin-top: 24px;
    }
    .docCont {
        margin-top: 40px;
        flex-wrap: wrap;
    }
    .docCards {
        margin-top: 0;
        grid-template-columns: repeat(1, 1fr);
    }
    .docTab {
        display: none;
    }
    .tabCont {
        display: none;
    }
    .caseText {
        position: unset;
        left: unset;
        transform: unset;
        top: unset;
        background: #f7f9fa;
        width: 100%;
        max-width: unset;
    }
    .caseSection {
        padding: 0 20px;
    }
    #caseSwiper {
        padding-bottom: 40px;
    }
    #caseSwiper .swiper-pagination {
        display: block;
    }
    #caseSwiper .swiper-pagination-bullet {
        border-radius: unset;
        height: 2px;
        width: 34px;
        opacity: 1;
        background: #D5D5D5;
    }
    #caseSwiper .swiper-pagination-bullet-active {
        background: #E60039;
    }
    .caseText p {
        font-size: 14px;
        min-height: unset;
    }
    .navInfo {
        display: none;
        border-top: 1px solid #D5D5D5;
        width: 100%;
        flex-wrap: wrap;
        padding: 6px 20px 0 20px;
    }
    .navTab {
        width: 100%;
        margin-left: 0;
    }
    .navTab.active::after {
        display: none;
    }
    .navText {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 20px;
        color: #2A2B2E;
        font-size: 16px;
        font-weight: 400;
    }
    .navText::after {
        content: '';
        width: 20px;
        height: 20px;
        background-image: url(../RJ-img/link.svg);
        display: block;
        background-size: cover;
        transform: rotate(90deg);
    }
    .navText.active::after {
        transform: rotate(-90deg);
    }
    .n-project-btn {
        margin-top: 24px;
        font-size: 16px;
        padding: 8px 24px;
    }
    .form-modal {
        top: 20px;
        transform: unset;
        left: 20px;
        bottom: 20px;
        width: calc(100% - 40px);
        padding: 48px 20px;
        overflow-y: auto;
    }
}