/* 공통 */
.about-content .sub-title {
	text-align: center;
	font-weight: 700;
	font-size: 2.1rem;
    line-height: 3.5rem;
	margin-bottom: 20px;
}

.about-content .sub-desc {
	text-align: center;
	font-weight: 700;
	font-size: 2.1rem;
    line-height: 3.7rem;
	word-break: keep-all;
}

.about-content .sub-desc span {
	display: block;
}

.about-content .inner-container {
	max-width: 950px;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.about-content .inner-container2 {
    max-width: 1060px;
    width: 100%;
    margin: 0 auto;
}

/* 비전 */
.about-sec1 {
	padding: 170px 32px 190px;
    background: url("../../images/egovframework/sub/about-sec1.png") no-repeat center center;
    background-size: cover;
}

.about-sec1 .sub-title {
    color: #B6B6B6;
}

.about-sec1 .sub-desc {
    color: #fff;
}

/* 사업분야 */
.about-sec2 {
    background-color: #FAFAFA;
    padding: 70px 32px 110px;
}

.about-sec2 .sub-title {
	color: #0072FF;
    font-size: 1.6rem;
}

.about-sec2 .sub-desc {
	margin-bottom: 50px;
}

.about-sec2 .sec2-card-container .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(4, 1fr); 
    gap: 40px;
    width: 100%;
    height: auto;
}

.about-sec2 .biz-card {
    background: #fff;
    padding: 30px 20px;
    border-radius: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    height: auto;
    box-sizing: border-box;
}

.about-sec2 .icon-box {
    width: 150px;
    height: 150px;
    background: #FAFAFA;
    border-radius: 50%;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 70%;
    text-indent: -9999px;
}

.about-sec2 .icon-box.icon01 {
	background-image: url("../../images/egovframework/sub/about-sec2-icon01.svg");
}

.about-sec2 .icon-box.icon02 {
	background-image: url("../../images/egovframework/sub/about-sec2-icon02.svg");
}

.about-sec2 .icon-box.icon03 {
	background-image: url("../../images/egovframework/sub/about-sec2-icon03.svg");
}

.about-sec2 .icon-box.icon04 {
	background-image: url("../../images/egovframework/sub/about-sec2-icon04.svg");
}

.about-sec2 .biz-card h3 {
    font-size: 2.7rem;
    line-height: 3.4rem;
    margin-bottom: 30px;
    font-weight: 700;
    color: #101010;
}

.about-sec2 .biz-card ul {
    list-style: none;
    padding: 0;
    text-align: center;
}

.about-sec2 .biz-card ul li {
    font-size: 1.1rem;
    line-height: 1.4rem;
    color: #333;
    margin-bottom: 8px;
    position: relative;
    word-break: keep-all;
}

.about-sec2 .biz-card ul li::before {
    content: '•';
    color: #333;
    margin-right: 5px;
}

/* 포트폴리오 */
.about-sec3 {
  	height: 200vh;
  	background: #fff;
  	padding: 0 32px;
}

.about-sec3 .pfMainSwiper > .swiper-wrapper {
	display: block !important; /* flex 해제 */
    height: 100% !important;   /* 부모인 sticky-wrap(100vh)을 다 채움 */
    position: relative;
    transform: none; /* 스와이퍼의 이동값 무효화 */
}

.about-sec3 .sticky-wrap {
  	position: sticky;
  	top: 0;
  	height: 100vh;
  	display: flex;
  	align-items: center;
  	justify-content: center;
}

.about-sec3 .item {
  	width: 100%;
    height: 100%;
    display: flex;
    align-items: center;    /* 세로 중앙 정렬 */
    justify-content: center; /* 가로 중앙 정렬 */
    position: absolute;
    top: 0;
    left: 0;
  	transition: all 0.6s ease;
}

.about-sec3 .item1 {
  	opacity: 1;
  	z-index: 2;
}

.about-sec3 .item1.hide {
  	opacity: 0;
  	pointer-events: none;
  	z-index: 1;
}

.about-sec3 .item2 {
  	opacity: 0;
  	z-index: 1;
  	pointer-events: none;
}

.about-sec3 .item2.show {
  	opacity: 1;
  	z-index: 2;
  	pointer-events: auto;
}

.about-sec3 .inner-container {
    display: flex;
    gap: 140px;
    align-items: center;
    justify-content: space-between;
}

.about-sec3 .text-area {
    flex: 1;
    text-align: left;
}

.about-sec3 .text-area.mo-ta {
	display: none;
}

.about-sec3 .sub-title { font-size: 5.2rem; color: #101010; margin-bottom: 45px; font-weight: 700; text-align: left; }
.about-sec3 .main-title { font-size: 1.5rem; color: #101010; margin-bottom: 30px; font-weight: 700; }
.about-sec3 .desc {
	display: flex;
	flex-direction: column;
	gap: 30px;
	font-size: 1.5rem;
	line-height: 2.5rem;
	color: #727272;
}
.about-sec3 .desc p { word-break: keep-all; }

.about-sec3 .swiper-area {
    width: 340px;
    position: relative;
}

.about-sec3 .swiper-area .overlay {
	width: 100%;
    pointer-events: none;
    position: relative;
    z-index: 11;
}

.about-sec3 .swiper-area .swiper {
	position: absolute;
	top: 8px;
    left: 7px;
    width: 96%;
    height: 70%;
}

.about-sec3 .swiper-area .swiper .swiper-slide img {
	width: 100%;
	height: 100%;
}

.about-sec3 .swiper-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    font-size: 16px;
	position: absolute;
    bottom: -50px;
}

.about-sec3 .swiper-pagination .fraction {
    font-size: 1.5rem;
    color: #727272;
}

.about-sec3 .swiper-pagination .fraction span {
	color: #101010;
}

.about-sec3 .prev-btn,
.about-sec3 .next-btn {
	cursor: pointer;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.about-sec3 .prev-btn.disabled {
	background-image: url("../../images/egovframework/sub/about-sec3-prev-disabled.svg");
}

.about-sec3 .prev-btn {
	background-image: url("../../images/egovframework/sub/about-sec3-prev.svg");
}

.about-sec3 .next-btn.disabled {
	background-image: url("../../images/egovframework/sub/about-sec3-next-disabled.svg");
}

.about-sec3 .next-btn {
	background-image: url("../../images/egovframework/sub/about-sec3-next.svg");
}

/* 우리의 기술 */
.about-sec4 {
	padding: 120px 32px 200px;
	background: url("../../images/egovframework/sub/about-sec4.png") no-repeat top center;
	background-size: cover;
	color: #fff;
}

.about-sec4 .sub-title {
	text-align: left;
    font-size: 5rem;
    margin-bottom: 60px;
}

.about-sec4 dl {
	display: flex;
    gap: 60px;
    align-items: baseline;
}

.about-sec4 dl dt {
    font-size: 2rem;
    font-weight: 700;
    flex-shrink: 0;
}

.about-sec4 dl dd {
    font-size: 2.1rem;
    line-height: 3.5rem;
    word-break: keep-all;
}

/* 데이루덴스의 여정 */
.about-sec5 {
	background-color: #151618;
	color: #fff;
    padding: 80px 32px 140px;
}

.about-sec5 .sub-title {
	font-size: 2.7rem;
}

.about-sec5 .timeline-wrap .sub-title {
	margin-bottom: 100px;
}

.about-sec5 .timeline-item {
    display: flex;
    align-items: stretch;
    position: relative;
    opacity: 0.1;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.2, 1, 0.3, 1);
}

.about-sec5 .timeline-item .timeline-reverse {
    display: flex;
    align-items: stretch;
    position: relative;
}

.about-sec5 .timeline-item.active {
    opacity: 1;
    transform: translateY(0);
}

.about-sec5 .year-side {
    width: 130px;
    flex-shrink: 0;
    padding-right: 40px;
    text-align: right;
    position: relative;
}

.about-sec5 .year-text {
    position: absolute;
    top: 0;
    margin: 0;
    font-size: 5.2rem;
    font-weight: 700;
    transition: color 0.4s ease;
}

.about-sec5 .dot-side {
    width: 40px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}

.about-sec5 .item-line-fill {
    position: absolute;
    top: 0;
    width: 3px;
    height: 0%;
    background-color: #0072FF;
    /* background: linear-gradient(180deg, #151618 0%, #0072FF 100%); */
    z-index: 2;
}

.about-sec5 .dot {
    width: 10px;
    height: 10px;
    background-color: #0072FF;
    border: 10px solid #151618;
    border-radius: 50%;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 7px);
    z-index: 3;
}

.about-sec5 .content-side-wrap {
	display: flex;
	flex-direction: column;
	padding-left: 40px;
    padding-bottom: 150px;
    gap: 40px;
}

.about-sec5 .content-side {
    flex: 1;
}

.about-sec5 .content-title {
    font-size: 2.1rem;
    font-weight: 700;
    margin-bottom: 25px;
}

.about-sec5 .content-desc {
    font-size: 2.1rem;
    color: #B6B6B6;
    line-height: 3rem;
    word-break: break-word;
}

.about-sec5 .content-desc p {
    margin: 0 0 15px 0;
}

.about-sec5 .timeline-item:last-child .item-line-bg {
    bottom: calc(100% - 25px);
}

.about-sec5 .partner-wrap .sub-title {
	margin: 100px 0 50px;
}

.about-sec5 .partner-list {
    display: grid;
    grid-template-columns: repeat(5, 1fr); 
    gap: 10px; 
    list-style: none;
    padding: 0;
    margin: 0;
}

.about-sec5 .partner-list li {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
}

.about-sec5 .partner-list li img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

/* 추천 콘텐츠  */
.about-sec6 {
    padding: 80px 32px;
}

.about-sec6 .sub-title {
    font-size: 2.7rem;
    font-weight: 700;
    margin-bottom: 50px;
    color: #101010;
    text-align: left;
}

.about-sec6 .card-wrapper {
    display: flex;
    gap: 60px;
    padding: 0;
    margin: 0;
    align-items: stretch !important;
    height: auto;
}

.about-sec6 .card-item {
    flex: 1;
    min-width: 0;
    display: flex;
    height: auto !important;
}

.about-sec6 .content-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
    background-color: #FAFAFA;
    border-radius: 40px;
    overflow: hidden;
}

.about-sec6 .card-text {
    padding: 30px 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.about-sec6 .card-title {
    font-size: 2.2rem;
    line-height: 3rem;
    font-weight: 700;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.about-sec6 .card-title .icon-chat {
    text-indent: -9999px;
    width: 22px;
    height: 22px;
   	background: url("../../images/egovframework/sub/about-sec6-icon01.png") no-repeat center center;
   	background-size: contain;
}

.about-sec6 .card-desc {
    font-size: 1.6rem;
    line-height: 1.6;
    color: #333333;
    margin-bottom: 25px;
    word-break: keep-all;
    
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    max-height: 3.2em; /* line-height(1.6) * 2줄 = 3.2 */
}

.about-sec6 .card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}

.about-sec6 .card-footer .icon-cal {
	text-indent: -9999px;
    width: 22px;
    height: 22px;
   	background: url("../../images/egovframework/sub/about-sec6-icon02.svg") no-repeat center center;
   	background-size: contain;
}

.about-sec6 .card-img {
    display: block;
    width: 100%;
    height: 180px;
    overflow: hidden;
}

.about-sec6 .card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 회사위치 */
.about-sec7 {
    padding: 120px 32px 0;
}

.about-sec7 .sub-title {
    font-size: 2.7rem;
    font-weight: 700;
    margin-bottom: 50px;
    color: #101010;
    text-align: left;
}

.about-sec7 #map {
    height: 370px;
}

/*************** 반응형 ***************/
@media (max-width: 1024px) {    
	.about-main.sub-wrapper {
		padding-left: 0;
    	padding-right: 0;
	}
	
	.about-main.sub-wrapper .about-title {
		padding: 0 32px;
	}
	
	.about-content .sub-desc span {
		display: inline;
	}
	
	.about-sec2 .sec2-card-container .swiper-wrapper {
		gap: 0;
	}
	
	.about-sec3 {
        height: auto !important; /* 200vh 해제 */
    }
    
    .about-sec3 .sticky-wrap {
        position: relative;
        top: 0;
        height: auto;
        padding: 100px 0;
    }
    
    .about-sec3 .pfMainSwiper > .swiper-wrapper {
        display: flex !important; /* 스와이퍼 기능 활성화 */
        height: auto !important;
        transition-property: transform !important; /* 애니메이션 허용 */
    }
    
    .about-sec3 .pfMainSwiper .pfmainswiper-button-prev,
    .about-sec3 .pfMainSwiper .pfmainswiper-button-next {
    	width: 11px;
    	height: 24px;
    	background-repeat: no-repeat;
    	background-position: center center;
    	position: absolute;
    	top: 320px;
    	z-index: 100 !important;
        pointer-events: auto !important;
        cursor: pointer !important;
    }
    
    .about-sec3 .pfMainSwiper .pfmainswiper-button-prev {
    	left: 0;
    	background-image: url("../../images/egovframework/sub/about-sec3-wrap-prev.svg");
    }
    
    .about-sec3 .pfMainSwiper .pfmainswiper-button-next {
    	right: 0;
    	background-image: url("../../images/egovframework/sub/about-sec3-wrap-next.svg");
    }
    
    .about-sec3 .pfMainSwiper .pfmainswiper-button-prev.swiper-button-disabled,
    .about-sec3 .pfMainSwiper .pfmainswiper-button-next.swiper-button-disabled {
        display: none !important;
    }
    
    .about-sec3 .item {
        position: relative; /* absolute 해제하여 순서대로 배치 */
        height: auto !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        visibility: visible !important;
        z-index: 1 !important;
    }
    
    .about-sec3 .inner-container {
        flex-direction: column;
        gap: 30px;
    }
    
    .about-sec3 .item1.hide,
    .about-sec3 .item2.show {
        /* PC용 애니메이션 클래스 무시 */
        opacity: 1 !important;
    }
    
    .about-sec3 .text-area.pc-ta {
		display: none;
	}
    
    .about-sec3 .text-area.mo-ta {
		display: block;
		text-align: center;
	}
	
	.about-sec3 .swiper-area {
		margin-bottom: 70px;
	}
    
    .about-sec6 .card-wrapper {
    	gap: 0;
    }
    
    .about-sec6 .card-item {
    	flex: none;
    }
    
    
    /* .about-sec6 .card-item {
        flex: none;
        width: calc(50% - 15px); 2열 배치
    } */
}

@media (max-width: 768px) {
	.about-content .sub-title {
		font-size: 1rem;
	    line-height: 1.2rem;
	    margin-bottom: 16px;
	}
	
	.about-content .sub-desc {
		font-size: 1rem;
		line-height: 1.5rem;
	}
	
	.about-sec1 {
		padding: 56px 32px;
	}
	
	.about-sec2 {
		padding: 56px 32px;
	}
	
	.about-sec2 .sub-desc {
		margin-bottom: 56px;
	}
	
	.about-sec2 .biz-card {
		padding: 24px 9px 27px;
		border-radius: 17px;
	}
	
	.about-sec2 .icon-box {
		width: 100px;
		height: 100px;
		margin-bottom: 20px;
	}
	
	.about-sec2 .biz-card h3 {
		font-size: 1.6rem;
		line-height: 1.9rem;
		margin-bottom: 18px;
	}
	
	.about-sec2 .biz-card ul li {
		font-size: 0.8rem;
		line-height: 1rem;
		margin-bottom: 4px;
	}
	
	.about-sec3 .sticky-wrap {
		padding: 56px 0;
	}
	
	.about-sec3 .sub-title {
		font-size: 1.6rem;
		line-height: 1.9rem;
        margin-bottom: 32px;
	}
	
	.about-sec3 .inner-container {
		gap: 0;
	}
	
	.about-sec3 .swiper-area {
		width: 212px;
		margin-bottom: 68px;
	}
	
	.about-sec3 .swiper-area .swiper {
		top: 5px;
		left: 4px;
	}
	
	.about-sec3 .swiper-pagination {
		bottom: -30px;
		gap: 8px;
	}
	
	.about-sec3 .swiper-pagination .fraction {
		font-size: 0.8rem;
	}
	
	.about-sec3 .prev-btn, .about-sec3 .next-btn {
		width: 10px;
		height: 10px;
	}
	
	.about-sec3 .main-title {
		font-size: 0.8rem;
		line-height: 1.3rem;
		margin-bottom: 15px;
	}
	
	.about-sec3 .desc {
		font-size: 0.8rem;
		line-height: 1.3rem;
		gap: 15px;
	}
	
	.about-sec3 .pfMainSwiper .pfmainswiper-button-prev, .about-sec3 .pfMainSwiper .pfmainswiper-button-next {
		top: 160px;
	}
	
	.about-sec4 {
		padding: 56px 32px;
	}
	
	.about-sec4 .sub-title {
		font-size: 1.6rem;
		line-height: 1.9rem;
		margin-bottom: 24px;
	}
	
	.about-sec4 dl {
		gap: 32px;
	}
	
	.about-sec4 dl dt {
		font-size: 0.8rem;
	}
	
	.about-sec4 dl dd {
		font-size: 0.8rem;
		line-height: 1.2rem;
	}
	
	.about-sec5 {
		padding: 56px 32px 66px;
	}
	
	.about-sec5 .timeline-wrap .sub-title {
		font-size: 1.3rem;
		margin-bottom: 34px;
	}
	
	.about-sec5 .year-side {
		width: 40px;
		padding-left: 10px;
		padding-right: 0;
	}
	
	.about-sec5 .year-text {
		font-size: 1.6rem;
	}
	
	.about-sec5 .content-title {
		font-size: 0.8rem;
		margin-bottom: 4px;
	}
	
	.about-sec5 .content-desc {
		font-size: 0.8rem;
		line-height: 1.2rem;
	}
	
	.about-sec5 .content-desc p {
		margin: 0;
	}
	
	.about-sec5 .content-side-wrap {
		gap: 12px;
		padding-left: 32px;
		padding-bottom: 56px;
	}
	
	.about-sec5 .dot {
		width: 4px;
		height: 4px;
		border-width: 3px;
		transform: translate(-50%, 2px);
	}
	
	.about-sec5 .timeline-item .timeline-reverse {
	    flex-direction: row-reverse;
	}
	
	.about-sec5 .item-line-fill {
		width: 1px;
	}
	
	.about-sec5 .partner-wrap .sub-title {
		margin: 56px 0 32px;
		font-size: 1.3rem;
		line-height: 1.6rem;
	}
	
	.about-sec5 .partner-list {
		gap: 8px 15px;
	}
	
	.about-sec5 .partner-list li {
		padding: 0;
	}
	
	.about-sec6 {
		padding: 56px 32px;
	}
	
	.about-sec6 .sub-title {
		font-size: 1.3rem;
		line-height: 1.6rem;
		margin-bottom: 32px;
	}
	
	.about-sec6 .content-card {
		border-radius: 14px;
	}
	
	.about-sec6 .card-text {
		padding: 12px 8px 10px;
	}
	
	.about-sec6 .card-title .icon-chat {
		width: 10px;
		height: 10px;
	}
	
	.about-sec6 .card-title {
		font-size: 1rem;
		line-height: 1.2rem;
		gap: 4px;
		margin-bottom: 8px;
	}
	
	.about-sec6 .card-desc {
		font-size: 0.8rem;
		line-height: 1.4rem;
		margin-bottom: 16px;
	}
	
	.about-sec6 .card-footer .icon-cal {
		width: 10px;
		height: 10px;
	}
	
	.about-sec6 .card-footer .date {
		font-size: 0.8rem;
		line-height: 1.2rem;
	}
	
	.about-sec6 .card-img {
		height: 94px;
	}
	
	.about-sec7 {
		padding: 0 32px;
	}
	
	.about-sec7 .sub-title {
		font-size: 1.3rem;
		line-height: 1.6rem;
		margin-bottom: 26px;
	}
	
	.about-sec7 #map {
	    height: 140px;
	}
}