
/* Primary Style
--------------------------------*/
.benefit-main {
	max-width: 100%;
	margin: 150px auto;
	padding: 0 2rem;
}

/* Slider Style
--------------------------------------*/
.cd-slider {
	position: relative;
	width: 100%;
	height: 50rem;
	overflow: hidden;
	margin: 0 0 8rem 0;
}
.cd-slider li {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	visibility: hidden;
	transition: visibility 0s 1s;
  will-change: visibility;
}
.benefit-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 60%;
	height: 100%;
	background-size: cover;
	background-position: 50% 50%;
	clip: rect(0, 80rem, 50rem, 80rem);
	transition: clip .5s cubic-bezier(0.99, 0.01, 0.45, 0.9) .5s;
  	will-change: clip;
  	border-radius:0 0 20rem 0;
	overflow:hidden;
}
.benefit-content {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	padding: 5rem 18rem 0 2rem;
	font-size: 5rem;
	text-align: right;
	color:#222;
	font-weight:800;
}
.benefit-content h2 {
	line-height:7rem;
	text-overflow: ellipsis;
	overflow: hidden;
	transform: translateY(-30%);
	opacity: 0;
	transition: transform .5s, opacity .5s;
  	will-change: transform, opacity;
}
.benefit-content p {
	display: block;
	font-size: 2.5rem;
	line-height:3rem;
	font-weight:800;
	padding: 2rem 0;
	opacity: 0;
	transform: translateY(-70%);
	transition: transform .5s .1s, opacity .5s .1s;
  will-change: transform, opacity;
}
.benefit-content span {
	display: block;
	font-size: 1rem;
	line-height:1.6rem;
	font-weight:500;
	padding: 1.5rem 0 0 0;
	opacity: 0;
	transform: translateY(-100%);
	transition: transform .5s .1s, opacity .5s .1s;
  	will-change: transform, opacity;
}
.benefit-content a {
	display: inline-block;
	border-radius:50px;
	border:1px solid #c3c3c3;
	font-size: 0.875rem;
	padding: 1rem 4rem;
	opacity: 0;
	transform: translateY(-230%);
	transition: transform .5s .1s, opacity .5s .1s;
	will-change: transform, opacity;
  	margin-right:1px;
}
.benefit-content a:hover {
	background:#263f6d;
	border:1px solid #263f6d;
	color:#fff;
}
/* Current Slide 
-------------------------------------*/
li.current {
	visibility: visible;
	transition-delay: 0s;
}
li.current .benefit-image {
	clip: rect(0, 80rem, 50rem, 0);
}
li.current .benefit-content h2 {
	transform: translateY(0);
	opacity: 1;
	transition-delay: 1s;
}
li.current .benefit-content p {
	transform: translateY(0);
	opacity: 1;
	transition-delay: 1.2s;
}
li.current .benefit-content span {
	transform: translateY(0);
	opacity: 1;
	transition-delay: 1.2s;
}
li.current .benefit-content a {
	transform: translateY(0);
	opacity: 1;
	transition-delay: 1.3s;
}
/* Prev Slide 
------------------------------------*/
li.prev_slide .benefit-image {
	clip: rect(0, 0, 50rem, 0);
}
nav {
	position: absolute;
	bottom: 0;
	right: 18rem;
	z-index: 2;
}
.prev, .next, .counter {
	vertical-align: middle;
}
.prev, .next {
	position: relative;
	display: inline-block;
	height: 2rem;
	width: 3rem;
  	border: 0;
  	cursor: pointer;
  	background: transparent;
}
.prev::before, .next::before {
	content: '';
	position: absolute;
	top: 50%;
  	left: 0;
	transform: translateY(-50%);
	border: .5rem solid transparent;
	border-right-width: 0.8rem;
	border-right-color: #000;
	border-left-width: 0;
	width: 0;
	height: 0;
}
.prev::after, .next::after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%) translateZ(0);
	left: .5rem;
	background: #000;
	height: .1rem;
	min-height: 1px;
	width: 2.5rem;
	transition: width .3s;
}
.next::before {
	right: 0;
  left: auto;
	border-left-width: 1rem;
	border-left-color: #000;
	border-right-width: 0;
}
.next::after {
	right: .5rem;
	left: auto;
}
.counter {
	display: inline-block;
	font-size: 0;
	font-family: serif;
	font-style: italic;
}
.counter span:last-child::before {
	content: '/';
	margin: 0 1rem;
}
.prev:hover::after, .next:hover::after {
	width: 3.5rem;
}
@media screen and ( max-width: 768px ) {
	.benefit-image { width: 100%; }
	.benefit-content { padding-right: 2rem; }
	nav { right: auto; }
	.nav_arrows {left:1rem; bottom:2rem;}
	.benefit-main {margin:100px auto; padding:0;}
	
	.cd-slider {
		position: relative;
		width: 100%;
		height: 50rem;
		overflow: hidden;
		margin: 0 0 5rem 0;
	}
	
	.benefit-content {
		position: absolute;
		top: 0;
		right: 0;
		width: 100%;
		height: 100%;
		padding: 3rem 1rem 0 2rem;
		font-size: 2.5rem;
		text-align: right;
		color:#fff;
		font-weight:800;
	}
	
	.benefit-content h2 {
		line-height: 3.5rem;
		text-overflow: ellipsis;
		overflow: hidden;
		transform: translateY(-30%);
		opacity: 0;
		transition: transform .5s, opacity .5s;
		will-change: transform, opacity;
	}
	
	.benefit-content a {
		display: inline-block;
		border-radius:50px;
		border:0;
		background:#fff;
		font-size: 0.875rem;
		padding: 1rem 4rem;
		opacity: 0;
		transform: translateY(-230%);
		transition: transform .5s .1s, opacity .5s .1s;
		will-change: transform, opacity;
	}
	
	.contents_main_title {font-size:2rem; line-height:40px; font-weight:800; color:#212121; text-align:center; margin-bottom:2.5rem; padding:0 10px;}
	.contents_sub_title {width:130px; font-size:0.875rem; font-weight:700; color:#fff;  border-radius:50px; background:#263f6d; text-align:center; padding:8px 0;margin:20px auto;}
	
	.prev, .next, .counter {
		vertical-align: middle;
	}
	.prev, .next {
		position: relative;
		display: inline-block;
		height: 2rem;
		width: 3rem;
	  	border: 0;
	  	cursor: pointer;
	  	background: transparent;
	}
	.prev::before, .next::before {
		content: '';
		position: absolute;
		top: 50%;
	  	left: 0;
		transform: translateY(-50%);
		border: .5rem solid transparent;
		border-right-width: 0.8rem;
		border-right-color: #fff;
		border-left-width: 0;
		width: 0;
		height: 0;
	}
	.prev::after, .next::after {
		content: '';
		position: absolute;
		top: 50%;
		transform: translateY(-50%) translateZ(0);
		left: .5rem;
		background: #fff;
		height: .1rem;
		min-height: 1px;
		width: 2.5rem;
		transition: width .3s;
	}
	.next::before {
		right: 0;
	  left: auto;
		border-left-width: 1rem;
		border-left-color: #fff;
		border-right-width: 0;
	}
	.next::after {
		right: .5rem;
		left: auto;
	}
	  	
	
}