@charset "utf-8";

.-train {
	padding-bottom: 100px;
	
	@media screen and (max-width: 999px) {
		padding-bottom: 60px;
	}
	
	& .catch {
		font-size: 4.6rem;
		font-weight: 600;
		text-align: center;
		
		@media screen and (max-width: 999px) {
			font-size: 3.6rem;
			line-height: 1.5;
		}
	}
	
}

.base_time {
	margin: 60px 0 0;
	display: flex;
	justify-content: center;
	
	@media screen and (max-width: 999px) {
		display: block;
	}
	
	& p {
		font-size: 3.6rem;
		font-weight: 400;
		padding: 0 20px;
		position: relative;
		
		@media screen and (max-width: 999px) {
			font-size: 2.8rem;
			text-align: center;
			padding-right: 0;
			padding-left: 0;
		}
		
		&:nth-child(even) {
			margin-top: 30px;
			
			@media screen and (max-width: 999px) {
				margin-top: 20px;
			}
			
			&:before {
				content: '';
				width: 1px;
				height: 3.5em;
				margin: -.75em -.25em 0 0;
				display: block;
				background: var(--gold);
				position: absolute;
				top: 0;
				left: 0;
				transform: skewX(-10deg);
				opacity: .25;
			}
	
			@media screen and (max-width: 999px) {
				&:before {
					display: none;
				}
			}
		}
	}
	
	& b {
		color: var(--red);
		font-size: 6rem;
		font-weight: 400;
		position: relative;
		
		@media screen and (max-width: 999px) {
			font-size: 4.8rem;
		}
	}
	
	& small {
		font-size: 3.6rem;
	}
	
	& span {
		color: var(--black);
		font-size: 1rem;
		text-align: right;
		margin: 0 0 -.5em;
		display: block;
		position: absolute;
		bottom: 0;
		right: 0;
	}
}

.cards_train {
	margin: 80px 0 0;
	padding-inline: 60px;
	display: flex;
	flex-wrap: wrap;
	overflow: hidden;
	transform: translateZ(0);
	
	@media screen and (max-width: 999px) {
		padding-inline: 0;
	}
	
	& .item {
		width: calc(100% / 4);
		position: relative;
		
		@media screen and (max-width: 999px) {
			width: calc(100% / 2);
		}
		
		& .title {
			color: var(--white);
			font-weight: 600;
			text-align: center;
			text-shadow: 0 0 20px rgba(0,0,0,.5);
			width: 100%;
			margin: 17.15% 0 0;
			position: absolute;
			top: 0;
			left: 0;
			z-index: 10;
			
			& h4 {
				font-size: 1.42vw;
				
				@media screen and (max-width: 999px) {
					font-size: 3.63vw;
				}
				
				& b {
					font-size: 1.97vw;
					font-weight: 600;
					
					@media screen and (max-width: 999px) {
						font-size: 5vw;
					}
				}
			}
			
			& p {
				font-size: 1.14vw;
				margin: 1em 0 0;
				
				@media screen and (max-width: 999px) {
					font-size: 2.8vw;
				}
			}
			
			& time {
				font-size: 2.57vw;
				margin: .25em 0 0;
				display: inline-block;
				
				@media screen and (max-width: 999px) {
					font-size: 6.3vw;
				}
				
				& b {
					font-size: 4vw;
					font-weight: 600;
					
					@media screen and (max-width: 999px) {
						font-size: 8.83vw;
					}
				}
			}
			
			& small {
				font-size: 1.1rem;
				font-weight: 400;
				line-height: 1.5;
				margin: 2em 0 0;
				display: block;
				
				@media screen and (max-width: 999px) {
					font-size: 2.56vw;
					margin-top: 1em;
				}
			}
		}
		
		& figure {
			position: relative;
		}
		
		& figcaption {
			color: var(--white);
			font-size: 1rem;
			font-weight: 400;
			margin: 0 1em 1em 0;
			position: absolute;
			bottom: 0;
			right: 0;
			opacity: .8;
		}
	}
}

.route_map {
	margin: 80px 0 0;
	padding: 0 60px;
	position: relative;
	
	@media screen and (max-width: 999px) {
		margin-top: 60px;
		padding-right: 0;
		padding-left: 0;
	}
	
	& figcaption {
		font-size: 1rem;
		position: absolute;
		bottom: 0;
		right: 0;
	}
}

.-bus {
	padding: 0 0 180px;
	background: #eee;
	z-index: 0;
	
	@media screen and (max-width: 999px) {
		padding-bottom: 60px;
	}
}

.cards_access {
	max-width: 1400px;
	margin: 80px auto 0;
	padding: 0 60px;
	display: flex;
	
	@media screen and (max-width: 999px) {
		display: block;
		margin-top: 40px;
		padding-right: 20px;
		padding-left: 20px;
	}
	
	& .item {
		width: calc(100% / 3 - (15px * 2));
		margin: 0 15px;
		padding: 0 0 40px;
		background: var(--white);
		border-radius: 10px;
		overflow: hidden;
		transform: translateZ(0);
		
		@media screen and (max-width: 999px) {
			width: 100%;
			margin-right: 0;
			margin-bottom: 30px;
			margin-left: 0;
			
			@media screen and (max-width: 767px) {
				padding-bottom: 0px;
			}
		}
		
		&.double {
			width: calc(100% / 3 * 2 - (15px * 2));
			
			@media screen and (max-width: 999px) {
				width: 100%;
			}
		}
	}
	
	& figure {
		margin-bottom: 20px;
		position: relative;
		
		& img {
			height: 200px;
			object-fit: cover;
		}
		
		& figcaption {
			color: var(--white);
			font-size: 1rem;
			margin: 0 10px 10px 0;
			position: absolute;
			bottom: 0;
			right: 0;
		}
	}
	
	& h3 {
		margin: 10px 10px 0 0;
		
		& + * {
			margin-top: 10px;
		}

		&:nth-of-type(odd) {
			
			& b {
				line-height: 1.5;
				border-radius: 0 10em 10em 0;
			}
		}

		&:nth-of-type(even) {
			line-height: 1.5;
			text-align: right;
			margin-right: 0;
			margin-left: 10px;
			
			& b {
				border-radius: 10em 0 0 10em;
			}
		}

		& b {
			color: var(--gold);
			font-size: 1.8rem;
			font-weight: 600;
			padding: .7em 1.25em .85em;
			display: inline-block;
			background: #F3F0E8;
			
			@media screen and (max-width: 999px) {
				line-height: 1.35;
			}
			
			@media screen and (max-width: 767px) {
				font-size: 1.6rem;
			}
			
			& sup {
				font-size: .5em;
				vertical-align: .5em;
				margin: 0 .75em 0 0;
				display: inline-block;
				
				@media screen and (max-width: 999px) {
					font-size: .75em;
					margin: 0 0 .5em 0;
					display: block;
				}
			}
		}
	}
	
	& .data {
		padding: 0 20px;
		
		&:first-of-type {
			margin-top: 0;
			margin-bottom: 0;
			
			@media screen and (max-width: 767px) {
				margin-top: 0;
				margin-bottom: 30px;
			}
		}
		
		& h3 {
			margin-right: 20px;
			margin-left: -20px;
			display: inline-block;
			
			@media screen and (max-width: 999px) {
				margin-right: 0;
				display: block;
			}
		}
		
		& h4 {
			font-size: 3.2rem;
			font-weight: 600;
			text-align: center;
			display: block;
			
			& b {
				color: var(--red);
				font-size: 5rem;
				font-weight: 700;
				vertical-align: -.065em;
				margin-inline: .05em;
				display: inline-block;
			}
			
			& small {
				font-size: 1.4rem;
				font-weight: 400;
				margin-top: 10px;
			}
		}
		
		& p {
			font-size: 1.8rem;
			line-height: 1.45;
			text-align: center;
			margin: 20px 0 0;
			
			@media screen and (max-width: 999px) {
				font-size: 1.6rem;
			}
			
			& b {
				color: var(--red);
				font-size: 2.8rem;
				font-weight: 600;
				
				@media screen and (max-width: 999px) {
					font-size: 2.4rem;
				}
			}
		}
		
		& small {
			font-size: 1.1rem;
			line-height: 1.5;
			margin: 20px 0 0;
			display: block;
		}
	}
	
	& .title {
		font-size: 1.8rem;
		font-weight: 700;
		text-align: center;
		width: calc(100% - (40px * 2));
		margin: 40px auto 0;
		padding: 0 0 .5em;
		
		@media screen and (max-width: 999px) {
			width: calc(100% - (20px * 2));
		}
		
		& + * {
			margin-top: 15px;
		}
	}
	
	& .wrap {
		padding: 0 30px;
		display: flex;
		
		@media screen and (max-width: 999px) {
			padding: 0;
		}
		
		@media screen and (max-width: 999px) {
			display: block;
		}
		
		& .inner {
			margin: 0 10px;
			padding: 40px 0 60px;
			flex: 1;
			border-radius: 20px;
			box-shadow: 0 0 10px 0 rgba(0,0,0,.1);
			
			@media screen and (max-width: 999px) {
				box-shadow: 0 0 6px 0 rgba(0,0,0,.1);
				
				@media screen and (max-width: 767px) {
					padding: 20px 0 10px;
				}
			}
			
			& + .inner {
				@media screen and (max-width: 767px) {
					margin-top: 10px;
				}
			}
		}
		
		&.full {
			& h3 {
				
				&:nth-of-type(even) {
					text-align: left;
				}
				
				& b {
					font-size: 2rem;
					border-radius: 0 10em 10em 0;
				}
				
				& + h4 {
					vertical-align: .25em;
					display: block;
					
					@media screen and (max-width: 999px) {
						display: block;
					}
				}
			}
		}

	}
	
	& .taxi {
		& h3 {
			& b {
				font-size: 2rem;
			}
		}
		
		& figure {
			margin-bottom: 20px;
		}
		
		& .data {
			& p {
				margin-top: 30px;
			}
			
		}
		
	}
}

.-car {
	margin-top: -60px;
	padding-bottom: 120px;
	
	@media screen and (max-width: 999px) {
		padding-bottom: 60px;
	}
	
	& .cards_access {
		
		& .item {
			background: #F3F0E8
		}
		
		& h3 {
			text-align: center;
			margin-top: 30px;
			
			& span {
				font-weight: 600;
				min-height: 1.5em;
				display: block;
				
				@media screen and (max-width: 999px) {
					font-size: 1.8rem;
				}
			}
			
			& b {
				color: var(--black);
				font-size: 3.2rem;
				font-weight: 600;
				padding: 0;
				
				@media screen and (max-width: 999px) {
					font-size: 2.8rem;
				}
			}
		}
		
		& p {
			color: var(--red);
			font-size: 4rem;
			text-align: center;
			margin: 0;
			
			@media screen and (max-width: 999px) {
				font-size: 4rem;
				margin-top: -10px;
				
				@media screen and (max-width: 767px) {
					font-size: 3rem;
				}
			}
			

			
			& b {
				font-size: 7rem;
				font-weight: 500;
				vertical-align: 0;
				display: inline-block;
				
				@media screen and (max-width: 999px) {
					font-size: 7rem;
					
					@media screen and (max-width: 767px) {
						font-size: 5rem;
					}
				}
			}
			
			& small {
				color: var(--black);
				font-size: 5rem;
				vertical-align: 0;
				display: inline;
				
				@media screen and (max-width: 999px) {
					font-size: 4rem;
				}
			}
		}
		
		& small {
			font-size: 1.6rem;
			text-align: center;
			margin-top: 0;
			
			@media screen and (max-width: 767px) {
				font-size: 1.4rem;
			}
		}
		
	}
}

.area_guide {
	margin: 70px 0 0;
	
	& .inner {
		display: flex;
		justify-content: center;
		align-items: center;
		
		@media screen and (max-width: 999px) {
			display: block;
		}
	}
	
	& p {
		font-size: 3rem;
		font-weight: 600;
		line-height: 2;
		text-align: right;
		width: 55%;
		padding: 0 30px 0 0;
		
		@media screen and (max-width: 999px) {
			font-size: 2.6rem;
			text-align: center;
			line-height: 1.5;
			width: 100%;
			padding-right: 0;
		}
		
		& b {
			color: var(--red);
			font-weight: 600;
		}
	}
	
	& figure {
		width: calc(100% - 55%);
		position: relative;
		
		@media screen and (max-width: 999px) {
			width: 100%;
			margin-top: 20px;
		}
	}
	
	& figcaption {
		font-size: 1rem;
		position: absolute;
		right: 0;
		bottom: 0;
	}
	
}

.-car {
	& .details {
		max-width: 1400px;
		margin: 60px auto 0;
		padding: 0 60px;
		display: flex;
		flex-wrap: wrap;
		
		@media screen and (max-width: 999px) {
			margin-top: 30px;
			display: block;
			border-left: 0;
			border-bottom: 1px solid #ddd;
		}
		
		@media screen and (max-width: 767px) {
			padding-inline: 20px;
			border-bottom: 0;
		}
		
		& li {
			font-size: 1.5rem;
			line-height: 1.75;
			text-align: center;
			width: calc(100% / 4);
			min-height: 120px;
			display: flex;
			flex-direction: column;
			justify-content: center;
			position: relative;
			
			@media screen and (max-width: 999px) {
				width: calc(100% / 2);
				padding: 20px 0;
				
				&:nth-child(3) {
					border-top: 1px solid #ddd;
					border-left: 1px solid #ddd;
					
					@media screen and (max-width: 767px) {
						border-top: 0;
						border-left: 0;
					}
				}
				
				&:nth-child(4) {
					border-top: 1px solid #ddd;
					
					@media screen and (max-width: 767px) {
						border-top: 0;
					}
				}
			}
			
			@media screen and (max-width: 999px) {
				width: 100%;
				min-height: 0;
				padding-top: 15px;
				padding-bottom: 15px;
				border-left: 0;
			}
			
			&:first-child {
				border-left: 1px solid #ddd;
				
				@media screen and (max-width: 767px) {
					border-left: 0;
				}
			}
			
			&:after {
				content: '';
				width: 1px;
				height: 100%;
				display: block;
				background: #ddd;
				position: absolute;
				top: 0;
				right: 0;
			}
			
			@media screen and (max-width: 999px) {
				&:after {
					width: 100%;
					height: 1px;
				}
			}
			
			& span {
				width: 100%;
				display: block;
				
				@media screen and (max-width: 999px) {
					position: relative;
					top: auto;
					left: auto;
					transform: none;
				}
			}
			
			& b {
				color: var(--red);
				font-size: 2.1rem;
				font-weight: 600;
				line-height: 1.35;
			}
			
			& small {
				font-size: 1.2rem;
				line-height: 1.75;
				margin: 10px 0 0;
				display: inline-block;
			}
		}
	}
}





















