/* Common */
.hd {
	position: relative;
	margin-bottom:60px;
}

.sec-tit {
	font-family: "Geologica", sans-serif;
	font-size:5.5rem;
	font-weight:700;
}

.sec-txt {
	font-size:2.3rem;
}

@media screen and (max-width:1200px) {
	.sec-tit {
		font-size:3.9rem;
	}

	.sec-txt {
		font-size:1.9rem;
	}
}
@media screen and (max-width:1024px) {
	.hd {
		margin-bottom:40px;
	}
}
@media screen and (max-width:768px) {
	.sec-tit {
		font-size:3.2rem;
	}

	.sec-txt {
		font-size:1.8rem;
	}
}
@media screen and (max-width:576px) {
	.hd {
		margin-bottom:28px;
	}

	.sec-tit {
		font-size:2.8rem;
	}

	.sec-txt {
		font-size:1.6rem;
	}
}


/* Visual */
.sec01 {
	width: 100%;
	height: calc(var(--vh, 1vh)*100);
	height: 100svh;
	background: url('../img/main/visual_bak.png') no-repeat center / cover;
}

.sec01 .visual {
	width: 100%;
	height:100%;
	padding-top:100px;
}

.sec01 .context {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width:1080px;
	width: 85%;
	height:100%;
	margin:0 auto;
}

.sec01 .wheel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: absolute;
	left:50%;
	transform:translateX(-50%);
	bottom:40px;
	text-align: center;
}

.sec01 .wheel div {
	position: relative;
	width:32px;
	height:56px;
	border:2px solid #000;
	border-radius:50px;
	margin-bottom: 10px;
}

.sec01 .wheel div:before {
    content: '';
		display: block;
		position: absolute;
    top: 10px;
		margin-left:11px;
    width: 6px;
    height: 6px;
    background: #000;
    border-radius: 4px;
    animation: wheel-scroll 2s infinite forwards;
}

.sec01 .wheel p {
	font-size:1.3rem;
}

.sec01 .tit {
	opacity: 0;
	transform: translateX(-100px);
	transition: all 0s 0s;
	margin-bottom:60px;
	will-change: transform;
}

.sec01 .img {
	position: relative;
	z-index:2;
	opacity:0;
	transform: translateX(100px);
	transition: all 0s 0s;
	will-change: transform;
}

.sec01 .img-ani {
	position: absolute;
	top:0;
	left:25%;
	width: 20.8333%;
	height:0;
	padding-top: calc(225/1080*100%);
	overflow: hidden;
	z-index:-1;
}

.sec01 .img-ani::before,
.sec01 .img-ani::after {
	content: "";
	display: block;
	position: absolute;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	background-color: rgba(179,221,239,0.8);
	border-radius:50%;
	opacity:0;
	animation: circle-ani 2s linear infinite forwards;
}

.sec01 .img-ani:nth-child(1)::after {
	animation-delay: .4s;
}

.sec01 .img-ani:nth-child(2)::before {
	animation-delay: .6s;
}

.sec01 .img-ani:nth-child(3)::after {
	animation-delay: .8s;
}

.sec01.active .tit {
	transition: all 1.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.sec01.active .img {
	transition: all 1.5s cubic-bezier(0.4, 0, 0.2, 1) .15s;
}

.sec01.active .tit,
.sec01.active .img {
	opacity: 1;
	transform: translateX(0);
}

@media screen and (max-width:1200px) {
	.sec01 .visual {
		padding-top:70px;
	}

	.sec01 .wheel p {
		font-size:1.1rem;
	}
}
@media screen and (max-width:1024px) {
	.sec01 .tit {
		margin-bottom: 40px;
	}

	.sec01 .wheel {
		bottom:28px;
	}

	.sec01 .wheel div {
		width:26px;
		height:40px;
		margin-bottom:6px;
	}

	.sec01 .wheel div:before {
		width: 3px;
		height: 3px;
		margin-left: 9px;
	}
}
@media screen and (max-width:768px) {
	.sec01 .tit {
		margin-bottom: 28px;
	}

	.sec01 .wheel div {
		width:21px;
		height:32px;
	}

	.sec01 .wheel div:before {
		top:2px;
		width: 3px;
		height: 3px;
		margin-left: 7px;
	}

	.sec01 .wheel p {
		font-size:1rem;
	}
}
@media screen and (max-width:576px) {
	.sec01 .tit {
		margin-bottom: 20px;
	}

	.sec01 .wheel div {
		width:19px;
		height:28px;
	}

	.sec01 .wheel div:before {
		margin-left:6px;
	}

	.sec01 .wheel {
		bottom:20px;
	}
}


/* Intro */
.sec02 {
	padding:160px 0px;
	background-color: #f6f8f9;
}

.sec02 .tit {
	margin-bottom:60px;
}

.sec02 .txt {
	line-height:1.4;
}

@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {
	.sec02 {
		padding: 120px 0px;
	}

	.sec02 .tit {
		margin-bottom: 40px;
	}
}
@media screen and (max-width:768px) {
	.sec02 {
		padding: 100px 0px;
	}
}
@media screen and (max-width:576px) {
	.sec02 {
		padding:80px 0px;
	}

	.sec02 .tit {
		margin-bottom: 20px;
	}
}


/* Service */
.sec03 {
	padding:160px 0px;
	background: url('../img/main/service_bak.png') no-repeat center / cover;
}

.sec03 ul {
	display: flex;
	gap:2.7%;
}

.sec03 li {
	flex:1 1;
}

.sec03 .card {
	position: relative;
	width: 100%;
	height:0;
	padding-top:100%;
	border-top-left-radius: 50px;
	border-bottom-right-radius: 50px;
	overflow: hidden;
	transition: var(--transition-basic);
}

.sec03 .context {
	position: absolute;
	top:0;
	left:0;
	width: 100%;
	height:100%;
	padding:40px 12%;
}

.sec03 .tit {
	margin-bottom:16px;
}

.sec03 .icon {
	display: block;
	position: absolute;
	right:9%;
	bottom: 30px;
	width:104px;
	height: 104px;
	background-repeat: no-repeat;
	background-position: center;
}

.sec03 .icon01 {
	background-image: url('../img/main/service_ico01.png');
}

.sec03 .icon02 {
	background-image: url('../img/main/service_ico02.png');
}

.sec03 .icon03 {
	background-image: url('../img/main/service_ico03.png');
}

.sec03 .icon04 {
	background-image: url('../img/main/service_ico04.png');
}

@media screen and (min-width:1201px){
	.sec03 li:hover .card {
		transform: translateY(-20px);
		box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.4);
	}
}
@media screen and (max-width:1366px) {
	.sec03 ul {
		gap:20px;
	}
	
	.sec03 .context {
		padding:40px 20px;
	}

}
@media screen and (max-width:1200px) {
	.sec03 .icon {
		width:84px;
		height: 84px;
		background-size: auto 84px;
	}
}
@media screen and (max-width:1024px) {
	.sec03 {
		padding: 120px 0px;
	}

	.sec03 ul {
		gap:12px;
		flex-wrap: wrap;
	}

	.sec03 li {
		flex:1 1 calc(50% - 12px);
		max-width: 50%;
	}

	.sec03 .card {
		padding-top: 72.5%;
		border-top-left-radius: 30px;
		border-bottom-right-radius: 30px;
	}

	.sec03 .context {
		padding: 28px;
	}

	.sec03 .tit {
		margin-bottom: 10px;
	}
}
@media screen and (max-width:768px) {
	.sec03 {
		padding: 100px 0px;
	}

	.sec03 ul {
		gap:8px;
	}

	.sec03 li {
		flex:1 1 calc(50% - 8px);
	}

	.sec03 .icon {
		width:64px;
		height: 64px;
		background-size: auto 64px;
	}
}
@media screen and (max-width:576px) {
	.sec03 {
		padding: 80px 0px;
	}

	.sec03 ul {
		gap:4px;
	}

	.sec03 li {
		flex:1 1 calc(100% - 4px);
		max-width: 100%;
	}

	.sec03 .card {
		height: auto;
		padding-top: 0px;
		border-top-left-radius: 20px;
		border-bottom-right-radius: 20px;
	}

	.sec03 .context {
		position: relative;
		top:unset;
		left: unset;
		padding:20px;
	}

	.sec03 .tit {
		margin-bottom: 6px;
	}

	.sec03 .icon {
		top:50%;
		right:30px;
		bottom: unset;
		transform: translateY(-50%);
		width:42px;
		height: 42px;
		background-size: auto 42px;
	}
}


/* Product */
.sec04 {
	overflow: hidden;
	padding:160px 0px;
	background: url('../img/main/product_bak.png') no-repeat center / cover;
}

.sec04 .hd {
	position: relative;
}

.sec04 .bd {
	max-width:1200px;
	width: 100%;
	margin:0 auto;
}

.sec04 .swiper {
	overflow:visible;
}

.sec04 .control {
	display: flex;
	align-items: center;
	gap:20px;
	position: absolute;
	top:50%;
	right:0;
	transform: translateY(-50%);
}

.sec04 .control .btn {
	display: block;
	width: 56px;
	height:56px;
	border-radius:50%;
	box-shadow: 0 0 0 4px #3e82c4 inset;
	background-color: #fff;
	cursor: pointer;
	background-repeat: no-repeat;
	background-position: center;
}

.sec04 .control .prev {
	background-image: url('../img/main/product_btn_prev.png');
}

.sec04 .control .next {
	background-image: url('../img/main/product_btn_next.png');
}

.sec04 a {
	display: block;
	position: relative;
	width: 100%;
	padding-top: calc(360/360*100%);
	/* padding: 76px 10px; */
	background-color: #fff;
	border-radius:50%;
	box-shadow: 1.928px 2.298px 10px 0px rgba(0, 0, 0, 0.05);
	transition: var(--transition-basic);
}

.sec04 a::after {
	content: "";
	display: block;
	position: absolute;
	top:10px;
	right:0;
	width:26%;
	height:26%;
	background: url('../img/main/product_btn_pin.png') no-repeat center / 100% auto;
	transform: scale(0);
	opacity:0;
	visibility: hidden;
	transition: var(--transition-basic);
}

.sec04 .context-wrap {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	gap:40px;
	position: absolute;
	top:0;
	left:0;
	width: 100%;
	height:100%;
}

.sec04 .context {
	position: relative;
	z-index:5;
}

.sec04 .img {
	position: relative;
	z-index:5;
}

.sec04 .context .tit {
	font-size:3.1rem;
	font-weight:700;
	margin-bottom:20px;
	transition: var(--transition-basic);
}

.sec04 .context .txt {
	font-size:1.5rem;
	color:#cccccc;
	transition: var(--transition-basic);
}

@media screen and (min-width:1201px) {
	.sec04 a:hover {
		background-color: #3e82c4;
	}

	.sec04 a:hover::after {
		opacity: 1;
		visibility: visible;
		transform: scale(1);
	}

	.sec04 a:hover .context .tit {
		color:#fff;
	}

	.sec04 a:hover .context .txt {
		color:#dfdfdf;
	}

	.sec04 a:hover .img01 img {
		content: url('../img/main/product_ico02_on.png');
	}

	.sec04 a:hover .img02 img {
		content: url('../img/main/product_ico03_on.png');
	}

	.sec04 a:hover .img03 img {
		content: url('../img/main/product_ico04_on.png');
	}

	.sec04 a:hover .img04 img {
		content: url('../img/main/product_ico05_on.png');
	}

	.sec04 a:hover .img05 img {
		content: url('../img/main/product_ico01_on.png');
	}

	.sec04 a:hover .img06 img {
		content: url('../img/main/product_ico06_on.png');
	}
}
@media screen and (max-width:1200px) {
	.sec04 .context .tit {
		font-size:2.7rem;
	}

	.sec04 .context .txt {
		font-size:1.3rem;
	}

	.sec04 .context-wrap {
		gap:30px;
	}

	.sec04 .img img {
		width:80px;	
	}
}
@media screen and (max-width:1024px) {
	.sec04 {
		padding: 120px 0px;
	}

	.sec04 .control {
		gap:12px;
	}
	
	.sec04 .control .btn {
		width:46px;
		height:46px;
		background-size: auto 15px;
	}

	.sec04 .context {
		/* top:60px; */
	}

	.sec04 .context .tit {
		margin-bottom:10px;
	}

	.sec04 .img img {
		width: 70px;	
	}
}
@media screen and (max-width:768px) {
	.sec04 {
		padding: 100px 0px;
	}

	.sec04 .context .tit {
		font-size:2.4rem;
	}

	.sec04 .context .txt {
		font-size:1.2rem;
	}

	.sec04 a {
		gap:20px;
	}

	.sec04 .context-wrap {
		gap:20px;
	}

	.sec04 .img img {
		width: 60px;
	}
}
@media screen and (max-width:576px) {
	.sec04 {
		padding: 80px 0px;
	}

	.sec04 .control {
		position: relative;
		top:unset;
		right: unset;
		transform: none;
		gap:6px;
		margin-top:16px;
	}

	.sec04 .control .btn {
		width:36px;
		height:36px;
		background-size: auto 13px;
		box-shadow: 0 0 0 2px #3e82c4 inset;
	}

	.sec04 a {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap:12px;
		height: 100%;
		border-radius:10px;
		padding-top:0px;
		padding:20px 12px;
	}

	.sec04 .context-wrap {
		position: relative;
		top:unset;
		left: unset;
		transform: none;
		gap:12px;
	}

	.sec04 .context .tit {
		font-size:1.8rem;
		margin-bottom:4px;
	}

	.sec04 .context .txt {
		font-size:1rem;
	}

	.sec04 .img img {
		width: 50px;
	}
}


/* PR */
.sec05 {
	padding:160px 0px;
}

.sec05 .list {
	display: flex;
	margin: -20px;
}

.sec05 .list li:not(.list-message) {
	flex:1 0 33.33%;
	max-width: 33.33%;
	padding: 20px;
}

.sec05 .list li.list-message {
	flex:1 1 100%;
	max-width:100%;
}

.sec05 .list .thumb {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: calc(340/452*100%);
	border-radius:20px;
	overflow: hidden;
	border:1px solid #bbbbbb;
}

.sec05 .list .thumb img {
	display: block;
	position: absolute;
	top:0;
	left: 0;
	right:0;
	bottom: 0;
	width: 100%;
	height: 100%;
	transition: var(--transition-basic);
}

.sec05 .list .con {
	padding-top:40px;
}

.sec05 .list .category {
	display: block;
	font-size: 1.9rem;
}

.sec05 .list .subject {
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-line-clamp: 2; 
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin:20px 0px 30px;
	font-size:2.7rem;
}

.sec05 .list .date {
	font-size:1.7rem;
}

@media screen and (min-width:1201px) {
	.sec05 .list li:hover .thumb img {
		transform: scale(1.1);
	}
}
@media screen and (max-width:1200px) {
	.sec05 .list .category {
		font-size: 1.7rem;
	}

	.sec05 .list .subject {
		font-size:2.3rem;
	}

	.sec05 .list .date {
		font-size:1.5rem;
	}
}
@media screen and (max-width:1024px) {
	.sec05 {
		padding:120px 0px;
	}
	
	.sec05 .list {
		margin:-8px;
	}

	.sec05 .list li {
		padding:8px;
	}

	.sec05 .list .con {
		padding-top: 28px;
	}

	.sec05 .list .subject {
		margin:16px 0px 20px;
	}
}
@media screen and (max-width:768px) {
	.sec05 {
		padding:100px 0px;
	}

	.sec05 .list .category {
		font-size: 1.6rem;
	}

	.sec05 .list .subject {
		font-size:2rem;
	}

	.sec05 .list .date {
		font-size:1.4rem;
	}
}
@media screen and (max-width:576px) {
	.sec05 {
		padding:80px 0px;
	}

	.sec05 .list {
		flex-wrap: wrap;
		margin: -12px -4px;
	}

	.sec05 .list li:not(.list-message) {
		flex:1 1 100%;
		max-width:100%;
		padding:12px 4px;
	}

	.sec05 .list .con {
		padding-top: 20px;
	}

	.sec05 .list .category {
		font-size: 1.4rem;
	}

	.sec05 .list .subject {
		font-size:1.8rem;
		margin:10px 0px 16px;
	}

	.sec05 .list .date {
		font-size:1.2rem;
	}
}


/* KeyFrames */
@keyframes circle-ani {
	0% {
		transform: scale(0);
		opacity: 1;
	}

	100% {
		transform: scale(1);
		opacity:0;
	}
}

@keyframes wheel-scroll {
	0% {
		opacity:1;
	}
	100% {
		opacity:0;
		transform: translateY(28px);
	}
}

@media screen and (max-width:1200px) {

}
@media screen and (max-width:1024px) {

}
@media screen and (max-width:768px) {
	@keyframes wheel-scroll {
		0% {
			opacity:1;
		}
		100% {
			opacity:0;
			transform: translateY(20px);
		}
	}
}
@media screen and (max-width:576px) {

}

/* Popup */
#popup {
	position: relative;
}

.popup-layer {
	z-index: 10000;
	position: absolute;
	background: #fff;
	box-shadow: 0px 0px 20px 0px rgba(0,0,0,.25);
	animation: popup-fade .65s ease-in-out .35s forwards;
	opacity: 0;
	max-width:800px;
}

@keyframes popup-fade {
	0% { opacity: 0;
	-webkit-transform: translateY(25px);
	-ms-transform: translateY(25px);
	transform: translateY(25px); }
	100% { opacity: 1;
	-webkit-transform: translateY(0);
	-ms-transform: translateY(0);
	transform: translateY(0); }
}
.popup-layer__body {
	background: #fff;
}

.popup-layer__body img {
	display: block;
	margin: 0 auto;
	border: none;
	max-width: 100%;
}

.popup-layer__foot {
	background: #424242;
}

.popup-layer__foot ul {
	display:flex;
	flex-wrap: wrap;
}

.popup-layer__foot li {
	width:50%;
	padding:10px;
}

.popup-layer__foot li:first-child {
	padding-right:0;
}

.popup-layer__foot li:last-child {
	text-align: right;
}

.popup-layer__foot span {
	font-size: 1.5rem;
	color: #fff;
	cursor: pointer;
	transition:all 0.3s ease;
}

.popup-layer__foot label:hover span { opacity: .7; }

/* .popup-layer-foot { background: #424242; }
.popup-layer-foot span { font-size: 15px; color: #fff; }
.popup-layer-foot label:hover span { opacity: .7; }
.popup-layer-foot li:first-child { padding-right: 0; }
.popup-layer-foot li:last-child { text-align: right; } */


@media (max-width: 1024px){
	/* .popup-layer { z-index: 999; } */
	.popup-layer { top: 95px !important; left: 0 !important; margin: 0 5px; }
}
@media (max-width: 768px){

	.popup-layer {
		width:calc(100% - 10px);
	}

	.popup-layer img {
		max-width: none;
		width:100%;
		height: auto !important;
	}
	.popup-layer-foot span { font-size: 14px; }

}
@media (max-width: 375px){
	.popup-layer-foot li { width: 100%; }
	.popup-layer-foot li:last-child { text-align: left; }
}