/* view-more btn */
.view-more > button {
	display: inline-flex;
	align-items: center;
	font-size: 1.375rem;
	font-weight: bold;
	color: #fff;
}
.view-more > button > span:last-child {
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	background: url(/upload/dosoftlab/static/image/ce1aad7620_20250526110444643.png) no-repeat center;
	background-size: contain;
	margin-left: .875rem;
}
/* view-more btn */

/* project wrap */
.project-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.project-wrap .project-img {
	width: 100%;
	border-radius: 1.875rem;
	overflow: hidden;
}
.project-wrap .project-img:after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 0;
	background: linear-gradient(to top, #0039A6, transparent 60%);
	z-index: 1;
}
.project-wrap:hover .project-img:before {
	content: "";
	position: absolute;
	top: calc(50% - 1.875rem);
	left: calc(50% - 1.875rem);
	width: 3.75rem;
	height: 3.75rem;
	background: url(/upload/dosoftlab/static/image/a8c4733426_20250526112200387.png) no-repeat 50% 50%;
	background-size: contain;
	z-index: 1;
}
.project-wrap:hover .project-img:after {
	height: 100%;
	animation: projectHover .5s ease-in-out forwards;
}
.project-wrap > .project-text {
	margin-top: 1.875rem;
	text-align: center;
}
.project-wrap > .project-text > h5 {
	font-size: 1.625rem;
	font-weight: 600;
	color: #fff;
}
.project-wrap > .project-text > p {
	font-size: 1.375rem;
	color: rgba(255,255,255,.8);
	margin-top: .5rem;
}
/* //project wrap */

/* line-flex */
.line-flex {
	display: flex;
	align-items: center;
	width: 100%;
}
.line-flex > div {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
	text-align: center;
}
.line-flex > div + div:before {
	content: "";
	position: absolute;
	left: 0;
	width: 1px;
	background-color: #fff;
}
/* //line-flex */


/* gradient-border */
.gradient-border {
	position: relative;
}
.gradient-border:before {
	content: "";
	position: absolute;
	top: 1px;
	left: 1px;
	right: 1px;
	bottom: 1px;
	z-index: 1;
	background-color: #00070F;
}
.gradient-border:after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
	background: linear-gradient(180deg, #0057FF, #00070F, #0057FF);
}
/* //gradient-border */


/* footer */
.footer {
	display: flex;
	flex-direction: column;
	background-color: rgba(255,255,255,.1);
	color: #fff;
	font-size: 1.125rem;
	font-weight: 500;
}
.footer .container {
	width: 100%;
	max-width: 1340px;
	margin: auto;
	padding-top: 3.75rem;
	padding-bottom: 2.5rem;
}
.footer .container .logo {
	width: 10rem;
	height: 2rem;
}
.footer .container .logo > a {
	display: block;
	width: 100%;
	height: 100%;
}
.footer .container .address {
	margin-top: 2.625rem;
}
.footer .container .address + div {
	margin-top: 1rem;
}
.footer .container .title {
	color: #ffffff99;
	margin-right: 1.25rem;
}
.footer .container > div:last-child > .d-flex > .d-flex:first-child {
	margin-right: 1.875rem;
}
.footer .container > div:last-child > .d-flex > .d-flex:last-child {
	margin-left: 1.875rem;
}
.footer .container > div:last-child > .d-flex > span {
	display: none;
}
.footer .container > div:last-child > p {
	color: #ffffff99;
}
/* //footer */

/* pagination */
.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2rem;
}
.pagination > [class^=btn-] {
	display: block;
	width: 1.125rem;
	height: 1.125rem;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: contain;
}
.pagination .page-num {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
}
.pagination .page-num .btn-page {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	color: #fff;
	font-size: 1.125rem;
	border-radius: 50%;
}
.pagination .page-num .btn-page.active {
	background-color: var(--primary-color);
}
/* //pagination */


/* keyframes */
@keyframes scrollPointer1 {
	0%{transform: translateX(3px);}
	50%{transform: translateX(-3.5px);}
	100%{transform: translateX(3px);}
}
@keyframes scrollPointer2 {
	0%{transform: translateX(-3.5px);}
	50%{transform: translateX(3px);}
	100%{transform: translateX(-3.5px);}
}
@keyframes projectHover {
	0% {height: 0;}
	100% {height: 100%;}
}
/* //keyframes */

/* PC */
@media (max-width: 1399.98px){
	.footer .container {
		max-width: 1140px;
	}
}
@media (max-width: 1199.98px){
	.footer .container {
		max-width: 940px;
	}
}
/* //PC */

/* Tablet */
@media (max-width: 1023.98px){
	a:hover,
	a:focus {
		cursor: pointer;
	}
	/* project wrap */
	.project-wrap:hover .project-img:before {
		display: none;
	}
	.project-wrap .project-img:after {
		display: none;
	}
	/* //project wrap */
}

@media (max-width: 991.98px){
	/* line-flex */
	.line-flex {
		flex-direction: column;
	}
	.line-flex > div {
		width: 100%;
	}
	.line-flex > div + div:before {
		width: 100%;
		height: 1px;
	}
	/* //line-flex */

	/* footer */
	.footer .container {
		max-width: 720px;
	}
	/* //footer */
	
	/* pagination */
	.pagination {
		gap: 1.75rem;
	}
	.pagination > [class^=btn-] {
		width: 1.75rem;
		height: 1.75rem;
	}
	.pagination .page-num {
		gap: 1.25rem;
	}
	.pagination .page-num .btn-page {
		width: 3rem;
		height: 3rem;
		font-size: 1.5rem;
	}
	/* //pagination */
}
/* //Tablet */

/* mobile */
@media (max-width: 767.98px){
	/* view-more btn */
	.view-more > button {
		font-size: 1.875rem;
	}
	.view-more > button > span:last-child {
		width: 2.25rem;
		height: 2.25rem;
	}
	/* view-more btn */

	/* footer */
	.footer {
		font-size: 1.625rem;
	}
	.footer .container {
		max-width: 540px;
	}
	.footer .container .logo {
		width: 16rem;
		height: 3.25rem;
	}
	.footer .container .address {
		margin-top: 3.5rem;
		font-size: 1.625rem;
	}
	.footer .container .address + div {
		flex-direction: column;
		margin-top: 1.5rem;
	}
	.footer .container .address + div > div {
		flex-direction: column;
	}
	.footer .container > div:last-child > .d-flex > .d-flex:last-child {
		margin-left: 0;
		margin-top: .5rem;
	}
	.footer .container > div:last-child > p {
		margin-top: 1.5rem;
	}
	/* //footer */

	/* project wrap */
	.project-wrap > .project-text {
		margin-top: 2.5rem;
	}
	.project-wrap > .project-text > h5 {
		font-size: 2rem;
	}
	.project-wrap > .project-text > p {
		font-size: 1.625rem;
		margin-top: 1rem;
	}
	/* //project wrap */
}

@media (max-width: 575.98px){
	/* footer */
	.footer .container {
		max-width: 420px;
	}
	/* //footer */
}

@media (max-width: 459.98px){
	/* footer */
	.footer .container {
		max-width: 320px;
	}
	/* //footer */
}

@media (max-width: 359.98px){
	
}
/* //mobile */