/* YAMAHA BIKE [ RENTAL & TOURING ] : line.css */

.fillBtn.line {
	max-width: 100%;
	width: auto;
	background: #00b800;
}
.fillBtn.line:hover,
.fillBtn.line:active {
	opacity: .7;
}
.fillBtn.line span {
	position: relative;
	padding-left: 30px;
}
.fillBtn.line span::before {
	position: absolute;
	top: calc(50% - 22px);
	left: -10px;
	width: 40px;
	height: 40px;
	background: url(/jp/line/img/icon_line.svg) center center no-repeat;
	background-size: contain;
	content: "";
}
.fillBtn.app, 
.fillBtn.login {
	max-width: 360px;
	text-align: left;
}
.fillBtn.app span, 
.fillBtn.login span {
	position: relative;
	padding-left: 30px;
}
.fillBtn.app svg, 
.fillBtn.login svg {
	position: absolute;
	top: calc(50% - 14px);
	left: -3px;
	width: 24px;
	height: 24px;
	fill: #fff;
}


/*======================================================================*
 *  [ メイン画像 ] 
 *======================================================================*/

.mainImg img {
	width: 100%;
}

@media screen and (max-width: 767px) { /* Smartphone */
	.mainImg {
		margin: 0 -10px !important;
	}
} /* */


/*======================================================================*
 *  [ キャンペーン ] 
 *======================================================================*/

.cpStep { position: relative; }
.cpStep::before {
	position: absolute;
	top: 0;
	left: 5rem;
	width: 1px;
	height: 100%;
	background: #000;
	content: "";
}
.cpStep > * { margin-top: 50px; }
.cpStep dt:nth-child(1), 
.cpStep dd:nth-child(2) { margin-top: 0; }
.cpStep dt {
	display: flex;
	position: relative;
	align-items: center;
	width: 10rem;
	background: #000;
	color: #fff;
	font-size: 1.8rem;
	text-align: center;
	z-index: 1;
}
.cpStep dt span { width: 100%; }
.cpStep dt b {
	font-size: 3rem;
	font-weight: normal;
}
.cpStep dd {
	width: calc(100% - 12rem);
	padding: 10px 0;
}
.cpStep dd p {
	flex: 1;
	margin: 0;
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1.2;
}
.cpStep dd p b { display: inline-block; }
.cpStep dd p .line { background:linear-gradient(transparent 60%, #ebcccc 60%); }
.cpStep dd p .red { color: #9b0101; }
.cpStep dd p span {
	font-size: 1.4rem;
	font-weight: normal;
}
.cpStep dd .fillBtn.line, 
.cpStep dd .fillBtn.app, 
.cpStep dd .fillBtn.login {
	width: 100%;
	max-width: 340px !important;
	margin-left: 2rem;
	text-align: left;
}

@media screen and (max-width: 900px) { /* Tablet */
	.cpStep dd { display: block; }
	.cpStep dd p { width: 100%; }
	.cpStep dd .fillBtn.line, 
	.cpStep dd .fillBtn.app, 
	.cpStep dd .fillBtn.login {
		display: block;
		margin: 10px 0 0 auto;
	}
} /* */

@media screen and (max-width: 767px) { /* Smartphone */
	.cpStep::before { left: 3.5rem; }
	.cpStep > * { margin-top: 30px; }
	.cpStep dt {
		width: 7rem;
		font-size: 1.4rem;
	}
	.cpStep dt b { font-size: 2.4rem; }
	.cpStep dd { width: calc(100% - 8.2rem); }
	.cpStep dd p { font-size: 1.8rem; }
	.cpStep dd p span {
		margin-top: 5px;
		font-size: 1.2rem;
	}
	.cpStep dd .fillBtn.line, 
	.cpStep dd .fillBtn.app, 
	.cpStep dd .fillBtn.login {
		margin: 10px auto 0 auto;
		text-align: center;
	}
} /* */

.cpTshirt {
	background: #000;
	color: #fff;
	text-align: center;
}
.cpTshirt p {
	margin-bottom: 30px;
	font-size: 1.8rem;
}
.cpTshirt p b { font-size: 2.6rem; }

@media screen and (max-width: 767px) { /* Smartphone */
	.cpTshirt p { font-size: 1.4rem; }
	.cpTshirt p b {
		margin-top: 5px;
		font-size: 2rem;
	}
} /* */


/*======================================================================*
 *  [ ポイント ] 
 *======================================================================*/

.linePoint section {
	position: relative;
	margin: 0;
	border: 3px solid #d5d5d5;
	padding: 15px 40px 30px;
	overflow: hidden;
}
.linePoint.cp section {
	padding-right: 20px;
	padding-bottom: 40px;
	padding-left: 20px;
}
.linePoint section > b {
	position: absolute;
	top: -50px;
	left: -50px;
	padding: 70px 30px 30px 70px;
	border-radius: 50%;
	font-size: 4rem;
	line-height: 1;
}
.linePoint section > b::before {
	display: block;
	font-size: 0.5em;
	content: "POINT";
}
.linePoint h2 b {
	font-size: 3rem;
	background:linear-gradient(transparent 60%, #f9ff62 60%);
	line-height: 1;
}
.linePoint h2 b.sub {
	font-size: 2.4rem;
	background: none;
}

.linePoint .notesTxt a {
	color: #000;
	text-decoration: underline;
	text-indent: 0;
}
.linePoint .notesTxt a:hover,
.linePoint .notesTxt a:active {
	color: #0a2d81;
	text-decoration: none;
}

@media screen and (max-width: 840px) { /* Smartphone */
	.linePoint section {
		padding-right: 15px;
		padding-left: 15px;
	}

} /* */

@media screen and (max-width: 767px) { /* Smartphone */
	.linePoint .txtlt {
		text-align: center;
	}
	.linePoint section {
		margin-bottom: 30px;
		padding: 10px 20px 25px !important;
		border: 3px solid #d5d5d5 !important;
	}
	.linePoint.cp section {
		padding-bottom: 25px;
	}
	.linePoint section > b {
		top: -40px;
		left: -40px;
		padding: 50px 20px 20px 50px;
		font-size: 3.2rem;
	}
	.linePoint h2 b {
		font-size: 2.6rem;
	}
	.linePoint .notesTxt {
		display: inline-block;
		text-align: left;
	}
} /* */


/* [ 1 ] */
.linePoint .pt1 {
	display: flex;
	align-items: center;
	width: 100%;
	padding-top: 0;
	padding-bottom: 0;
	border-bottom: none;
}
.linePoint .pt1 > b {
	background: #ccf0cc;
	color: #00b800;
}
.linePoint .pt1 figure {
	width: 40%;
	min-width: 280px;
	margin-right: 20px !important;
}
.linePoint .pt1 figure + div {
	flex: 1;
	padding-top: 20px;
	padding-bottom: 20px;
}
.linePoint .pt1 h2 b {
	color: #00b800;
}

/* [ 2 ] */
.linePoint .pt2 {
	width: 50%;
	background: #feffde;
}
.linePoint .pt2 > b {
	background: #ff6851;
	color: #fff;
}
.linePoint .pt2 h2 b {
	color: #ff6851;
}

/* [ 3 ] */
.linePoint .pt3 {
	width: 50%;
	border-left: none;
	background: #feeeeb;
}
.linePoint .pt3 > b {
	background: #ff5186;
	color: #fff;
}
.linePoint .pt3 h2 b {
	background:linear-gradient(transparent 60%, #fff 60%);
	color: #ff5186;
}

@media screen and (max-width: 767px) { /* Smartphone */
	/* [ 1 ] */
	.linePoint .pt1 {
		display: block;
		padding-top: 0;
		padding-bottom: 0;
	}
	.linePoint .pt1 figure {
		width: 100%;
		margin-right: 0 !important;
	}
	.linePoint .pt1 figure + div {
		padding-top: 0;
		padding-bottom: 0;
	}
	
	/* [ 2 ] */
	.linePoint .pt2 {
		width: 100%;
	}

	/* [ 3 ] */
	.linePoint .pt3 {
		width: 100%;
	}
} /* */


/*======================================================================*
 *  [ ステップ（事前） ] 
 *======================================================================*/

.beforeStep {
	border-top: 1px solid #c0c0c0;
}
.beforeStep section {
	border-bottom: 1px solid #c0c0c0;
}

@media screen and (max-width: 767px) { /* Smartphone */
	.beforeStep section {
		padding: 10px 0;
	}
	.beforeStep section p {
		margin: 0 0 5px;
	}
} /* */


/*======================================================================*
 *  [ ステップ（実際） ] 
 *======================================================================*/

.actualStep {
	max-width: 1080px;
	margin-right: auto;
	margin-left: auto;
}
.actualStep section {
	position: relative;
	width: 33.33%;
	padding: 20px;
	background: #e9e9e9;
}
.actualStep section + section {
	margin-left: 50px;
}
.actualStep section + section::before {
	position: absolute;
	top: calc(50% - 35px);
	left: -35px;
	width: 20px;
	height: 70px;
	border: 35px solid #fff;
	border-right: 0;
	border-left: 20px solid #0a2d81;
	content: "";
}
.actualStep section p a {
	color: #000;
	text-decoration: underline;
}
.actualStep section p a:hover,
.actualStep section p a:active {
	color: #0a2d81;
	text-decoration: none;
}
.actualStep section p b {
	color: #ff6851;
}

@media screen and (max-width: 767px) { /* Smartphone */
	.actualStep section {
		width: 100%;
	}
	.actualStep section + section {
		margin: 50px 0 0;
	}
	.actualStep section p {
		margin-bottom: 0;
	}
	.actualStep section + section::before {
		top: -35px;
		left: calc(50% - 35px);
		width: 70px;
		height: 20px;
		border: 35px solid #fff;
		border-top: 20px solid #0a2d81;
		border-bottom: 0;
	}
} /* */

