@charset "utf-8";

/* -------共通パーツ------- */

.fukidashi_ttl {
	position: relative;
	width: 45rem;
	padding: 2.6rem 2.2rem 3.3rem;
	margin: 0 auto;
	border: 2px solid #fff;
	border-radius: 2.8rem;
	box-sizing: border-box;
	@media (width <= 767px) {/* SP */
		width: 100%;
		padding: 1.7rem 1.3rem 2rem 1.5rem;
	}
	.ttl{
		color: #fff;
		font-size: 2.8rem;
		letter-spacing: 0.04em;
		line-height: 1.8;
		@media (width <= 767px) {/* SP */
		font-size: 1.9rem;
		letter-spacing: 0;
		}
	}
	&:after {
		content: '';
		position: absolute;
		display: block;
		width: 4.4rem;
		height: 4.6rem;
		background-image: url(../images/business/fukidashi.png);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
		bottom: -3rem;
		left: 6.7rem;
		@media (width <= 767px) {/* SP */
			width: 3rem;
			height: 3.1rem;
			bottom: -2rem;
			left: 4.5rem;
		}
	}
}


/* ------------------------ */

.businessPage {
	background: var(--cc-blue-3);
	.pageHead{
		margin: 0 auto;
		@media (width > 767px) {/* PC */
			width: 91.5rem;
			padding: 11rem 0 8rem;
			position: relative;
			left: -5rem;
		}
		@media (width <= 767px) {/* SP */
			width: 29.5rem;
			padding: 4rem 0;
		}
		img{
			@media (width > 767px) {/* PC */
				width: 71.9rem;
			}
			@media (width <= 767px) {/* SP */
				width: 22.75rem;
			}
		}
	}

	.pageCnt{
		position: relative;
		font-weight: 700;
		margin: 0 auto;
		padding-bottom: 16rem;
		line-height: 1.9;
		font-size: 2rem;
		@media (width > 767px) {/* PC */
			position: relative;
			width: 103rem;
		}
		@media (width <= 767px) {/* SP */
			line-height: 2.1;
			font-size: 1.4rem;
			padding-bottom: 3.6rem;
		}
		.pageTtl{
			position: absolute;
				left: 0;
				top: 0;
			@media (width > 767px) {/* PC */
				width: 7.65rem;
			}
			@media (width <= 767px) {/* SP */
				margin-left: 3rem;
        width: 2.95rem;
			}
			img{
				width: 100%;
			}
		}
		.pageCnt__in{
			@media (width > 767px) {/* PC */
				width: 91.3rem;
				margin-left: auto;
			}
			@media (width <= 767px) {/* SP */
				width: 29.5rem;
				margin-left: auto;
				margin-right: auto;
			}
		}


		.kvBlock{
			img{
				width: 100%;
			}
			@media (width <= 767px) {/* SP */
				width: 29.5rem;
				margin-left: auto;
				position: relative;
				left: 4rem;
			}
		}
		.topBlock{
			margin-top:3.5rem;
			margin-bottom: 2.6rem;
			@media (width <= 767px) {/* SP */
				margin-top: 4.5rem;
				margin-bottom: 3rem;
			}
			.ttl{
				display: flex;
				color: #fff;
				line-height: 1;
				font-size: 2.2rem;
				margin-bottom: 2rem;
				box-sizing: border-box;
				@media (width > 767px) {/* PC */
					flex-direction: row;
					justify-content: flex-start;
					width: 100%;
					background: var(--cc-black-A);
					gap: 0;
					padding: 0.3rem 0 0.4rem 0.8rem;
				}
				@media (width <= 767px) {/* SP */
					flex-direction: column;
					width: 29.5rem;
					gap: 0.7rem;
					margin-bottom: 1.5rem;
					font-size: 1.5rem;
				}
				span{
					@media (width > 767px) {/* PC */
						display: inline;
						background: none;
						padding: 0;
					}
					@media (width <= 767px) {/* SP */
						display: block;
						background: var(--cc-black-A);
						padding: 0.9rem;
					}
				}
			}
			.txt{
				line-height: 1.8;
				font-size: 2rem;
				letter-spacing: -0.04em;
				@media (width <= 767px) {/* SP */
					line-height: 2.1;
					font-size: 1.4rem;
					letter-spacing: -0.08em;
				}
			}
		}
		.lclNavBlock{
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			font-weight: 700;
			font-size: 2.6rem;
			letter-spacing: 0.04em;
			gap: 1.8rem;
			margin-bottom: 8.6rem;
			@media (width <= 767px) {/* SP */
				margin: 3rem 0;
				font-size: 1.9rem;
				letter-spacing: 0;
				gap: 1.8rem;
			}
			a{
				display: flex;
				align-items: center;
				line-height: 1;
				&:before{
					background: url(../images/common/ico-arw.svg) center center /cover no-repeat;
					content: '';
					display: inline-block;
					width: 2.7rem;
					height: 2.7rem;
					margin-right: 1rem;
				}
			}
		}


		.secHead{
			margin-bottom: 5rem;
			margin-left: 4rem;
			@media (width <= 767px) {/* SP */
				margin-bottom: 2.6rem;
				margin-left: 0;
			}
			.secHead__ttl{
				display: flex;
				align-items: center;
				gap: 2.6rem;
				@media (width > 767px) {/* PC */
					justify-content: center;
					text-align: center;
				}
				@media (width <= 767px) {/* SP */
					justify-content: space-between;
					position: relative;
					height: 8.4rem;
					gap: 1.6rem;
				}
				.ttl{
					line-height: 1.4;
					font-size: 3.1rem;
					position: relative;
					z-index: 1;
					letter-spacing: 0.02em;
					@media (width <= 767px) {/* SP */
						font-size: 2.7rem;
						line-height: 1.2;
						letter-spacing: 0;
					}
				}
				.num{
					width: 7.8rem;
					height: 6rem;
					/* color: #fff;
					line-height: 1;
					font-weight: 600;
					font-size: 7.4rem; */
					@media (width <= 767px) {/* SP */
						width: 7.2rem;
						height: 5.6rem;
						/* position: absolute;
						right: 0;
						top: 50%;
						transform: translateY(-50%);
						font-size: 6.8rem;
						letter-spacing: -0.04em; */
					}
				}
			}
			.secHead__copy{
				margin-top: 2rem;
				@media (width <= 767px) {/* SP */
					margin-top: 1.2rem;
				}
				img{
					margin: 0 auto;
				}
				.copy-1{
					width: 38rem;
					@media (width <= 767px) {/* SP */
						width: 25.5rem;
					}
				}
				.copy-2{
					width: 38rem;
					@media (width <= 767px) {/* SP */
						width: 22.5rem;
					}
				}
			}
		}
		.secTopTxt{
			display: flex;
			flex-direction: column;
			gap: 6rem;
			@media (width <= 767px) {/* SP */
				gap: 3rem;
			}
			.item{
				.ttl{
					margin-bottom: 1.8rem;
					line-height: 1.5;
					letter-spacing: 0.05em;
					font-size: 3rem;
					@media (width <= 767px) {/* SP */
						margin-bottom: 1.7rem;
						font-size: 1.9rem;
						line-height: 1.7;
						letter-spacing: 0;
					}
				}
				.txt{
					line-height: 1.8;
					font-size: 2rem;
					@media (width <= 767px) {/* SP */
						line-height: 2.1;
						font-size: 1.4rem;
						letter-spacing: -0.06em;
					}
					& + .txt{
						margin-top: 3.4rem;
						@media (width <= 767px) {/* SP */
							margin-top: 3.6rem;
						}
					}
				}
			}
		}
		.charmBlock {
			margin-top: 7rem;
			@media (width <= 767px) {/* SP */
				margin-top: 2.8rem;
			}
			.charmBlock_list {
				margin-top: 10rem;
				@media (width <= 767px) {/* SP */
					margin-top: 5.6rem;
				}
				.item {
					position: relative;
					padding: 3.5rem 4.3rem 2.8rem 3.7rem;
					border-radius: 1rem;
					background-color: #E8D200;
					+ .item {
						margin-top: 6rem;
					}
					@media (width <= 767px) {/* SP */
						padding: 2.8rem 2rem 1.8rem;
						+ .item {
							margin-top: 5rem;
						}
					}
				}
				.ttl {
					position: absolute;
					top: -4.2rem;
					left: 50%;
					transform: translateX(-50%);
					width: 20.9rem;
					height: 8rem;
					background-image: url(../images/business/fukidashi_bg.png);
					background-size: cover;
					background-position: center;
					background-repeat: no-repeat;
					@media (width <= 767px) {/* SP */
						top: -2.6rem;
						width: 14rem;
						height: 5.3rem;
					}
					span {
						font-size: 2.8rem;
						letter-spacing: 0.05em;
						padding-left: 8.5rem;
                        padding-top: 1.2rem;
                        display: block;
						@media (width <= 767px) {/* SP */
							font-size: 1.9rem;
							letter-spacing: 0.02em;
							padding-left: 6rem;
							padding-top: 0.6rem;
						}
					}
				}
				.txt {
					font-size: 2rem;
					line-height: 1.8;
					@media (width <= 767px) {/* SP */
						font-size: 1.4rem;
						letter-spacing: -0.08em;
						line-height: 2.2;
					}
				}
			}
		}
		.tourBlock {
			margin-top: 7rem;
			@media (width <= 767px) {/* SP */
				margin-top: 5rem;
			}
			.tourBlock_wrap {
				@media (width > 767px) {/* PC */
					display: flex;
					align-items: flex-end;
					justify-content: space-between;
				}
			}
			.map_warp {
				position: relative;
				margin-top: 3rem;
				padding-left: 3rem;
				@media (width <= 767px) {/* SP */
					padding-left: 0;
					margin-top: 2.4rem;
				}
				.nav {
					position: absolute;
					top: 5rem;
					left: 0;
					@media (width <= 767px) {/* SP */
						top: 3rem;
					}
				}
				.nav_item {
					position: relative;
					display: flex;
					align-items: center;
					gap: 1rem;
					cursor: pointer;
					transition: opacity 0.3s ease;
					opacity: 0.6;
					z-index: 1;
					&.active {
						opacity: 1;
					}
					@media (width <= 767px) {/* SP */
						gap: 0.48rem;
					}
					+ .nav_item {
						margin-top: 2.6rem;
						@media (width <= 767px) {/* SP */
							margin-top: 1rem;
						}
					}
					+ .nav_item::before {
						content: '';
						position: absolute;
						display: block;
						width: 2px;
						height: 2.2rem;
						background: #fff;
						top: -2.6rem;
                        left: 7.8rem;
						@media (width <= 767px) {/* SP */
							height: 1.3rem;
							top: -1.3rem;
							left: 4.4rem;
						}
					}
					.num {
						width: 3.7rem;
						height: 3.7rem;
						@media (width <= 767px) {/* SP */
							width: 2.1rem;
							height: 2.1rem;
						}
					}
					span {
						font-size: 2.8rem;
						color: #fff;
						@media (width <= 767px) {/* SP */
							font-size: 1.7rem;
							letter-spacing: 0.02em;
						}
					}
				}
				.map {
					position: relative;
					width: 52rem;
					@media (width <= 767px) {/* SP */
						width: 100%;
					}
					.mapimg {
					}
					.maplocal {
						position: absolute;
						top: 0;
						left: 0;
						width: 100%;
						height: 100%;
						path {
							fill: #E8D200;
							stroke: #fff;
							stroke-width: 2px;
							transition: fill 0.4s ease;
							&.active {
								fill: #d685a5;
							}
						}
					}
					.mappin {
						position: absolute;
						cursor: pointer;
						width: 12%;
						height: auto;
						transition: transform 0.3s ease, filter 0.3s ease;
						&.active {
							transform: scale(1.15);
						}
						@media (width <= 767px) {/* SP */
						}
						transition: opacity 0.2s ease;
						&:hover {
							opacity: 0.7;
						}
						&.type01 {
							top: 17%;
							left: 75%;
						}
						&.type02 {
							top: 12%;
							left: 60%;
						}
						&.type03 {
							top: 5%;
							left: 40%;
						}
						&.type04 {
							top: 33%;
							left: 40%;
						}
					}
				}
			}
			.slide {
				@media (width <= 767px) {/* SP */
					margin-top: 3.5rem;
				}
				.slide_wrap {
					position: relative;
					margin-left: 7rem;
					@media (width <= 767px) {/* SP */
						margin-left: 2rem;
					}
				}
				.slide_item {
					width: 40.8rem;
					opacity: 0;
					visibility: hidden;
					position: absolute;
					top: 0;
					left: 0;
					transition: opacity 0.4s ease, visibility 0.4s ease;
					&.active {
						opacity: 1;
						visibility: visible;
						position: relative;
					}
					@media (width <= 767px) {/* SP */
						width: 26rem;
					}
					.name {
						width: fit-content;
						margin: 0 auto;
						display: flex;
						gap: 3rem;
						@media (width <= 767px) {/* SP */
							gap: 2rem;
						}
						img {
							width: 23.5rem;
							height: 10.9rem;
							@media (width <= 767px) {/* SP */
								width: 14.7rem;
								height: 6.8rem;
							}
						}
						.before,
						.after {
							display: inline-block;
							background: url(../images/common/ico-arw.svg) center center /cover no-repeat;
							width: 3.6rem;
							height: 3.6rem;
							margin-top: 2.3rem;
							cursor: pointer;
							transition: opacity 0.2s ease;
							&:hover {
								opacity: 0.7;
							}
							@media (width <= 767px) {/* SP */
								width: 2.2rem;
								height: 2.2rem;
								margin-top: 1.5rem;
							}
						}
						.before {
							transform: rotate(180deg);
						}
					}
					.ph {
						width: 100%;
						margin-top: 0.9rem;
					}
					.txt {
						margin-top: 3rem;
						font-size: 2.2rem;
						line-height: 2.2;
						letter-spacing: -0.06em;
						color: #fff;
						@media (width <= 767px) {/* SP */
							margin-top: 2rem;
							font-size: 1.4rem;
							line-height: 2.1;
							letter-spacing: -0.08em;
						}

					}
				}
			}

		}





		.famtripBlock {
			margin-top: 8.6rem;
			@media (width <= 767px) {/* SP */
				margin-top: 5rem;
			}
			.txt {
				margin-top: 7rem;
				font-size: 2rem;
				line-height: 1.75;
				letter-spacing: 0.01em;
				@media (width <= 767px) {/* SP */
					margin-top: 4rem;
					font-size: 1.4rem;
					letter-spacing: -0.07em;
					line-height: 2.1;
				}
			}
		}


		.sec2 .secHead {
			margin-bottom: 2rem;
		}
		.sec2 .secHead__copy {
			@media (width > 767px) {/* PC */
				margin-top: 3.6rem;
			}
		}
		.sec2 .secTopTxt {
			gap: 4rem;
			@media (width <= 767px) {/* SP */
				gap: 2rem;
			}
			.ttl {
				margin-bottom: 0.6rem;
			}
		}
		.sec2 .secHead__ttl {
			@media (width <= 767px) {/* SP */
				gap: 0;
			}
		}

		.advBlock{
			margin: 5rem auto 6rem;
			@media (width <= 767px) {/* SP */
				margin: 3rem auto;
			}
			.item{
				+ .item {
					margin-top: 3.4rem;
				}
				.ttl{
					font-size: 2rem;
					line-height: 1.8;
					letter-spacing: -0.02em;
					color: #fff;
					@media (width <= 767px) {/* SP */
						font-size: 1.4rem;
						line-height: 2.1;
						letter-spacing: -0.04em;
					}
				}
				.wrap {
					display: flex;
					justify-content: space-between;
					@media (width <= 767px) {/* SP */
						flex-direction: column-reverse;
					}
				}
				.img{
					width: 40rem;
					margin-top: -1.7rem;
					@media (width <= 767px) {/* SP */
						width: 100%;
						margin-top: 0.4rem;
					}
				}
				.txt{
					width: 59rem;
					font-size: 2rem;
					line-height: 1.8;
					letter-spacing: -0.01em;
					@media (width <= 767px) {/* SP */
						width: 100%;
						margin-top: 2rem;
						font-size: 1.4rem;
						line-height: 2.1;
						letter-spacing: -0.08em;
					}
				}
			}
		}

		.voiceBlock{
			background: #fff;
			border-radius: 1rem;
			.voiceBlock__head{
				position: relative;
				display: flex;
				@media (width > 767px) {/* PC */
					justify-content: space-between;
					height: 9.3rem;
				}
				@media (width <= 767px) {/* SP */
					flex-direction: column;
					padding-top: 2rem;
				}
				.ttl{
					display: flex;
					align-items: center;
					line-height: 1;
					gap: 1.6rem;
					margin-left: 5.5rem;
					@media (width <= 767px) {/* SP */
						flex-direction: column-reverse;
						margin-left: 0;
						gap: 0.8rem;
					}
					.txt{
						letter-spacing: 0.05em;
						color: var(--cc-blue-3);
						font-size: 3rem;
						@media (width <= 767px) {/* SP */
							font-size: 2.3rem;
						}
					}
					.en{
						font-size: 1.6rem;
						@media (width <= 767px) {/* SP */
							font-size: 1.2rem;
						}
					}
				}
				img{
					@media (width <= 767px) {/* SP */
						margin: 0 auto;
					}
				}
				.illust-1{
					width: 22.8rem;
					@media (width > 767px) {/* PC */
						position: absolute;
						bottom: 0;
						right: 8.6rem;
					}
					@media (width <= 767px) {/* SP */
						margin-top: -1rem;
					}
				}
				.illust-2{
					width: 29.6rem;
					@media (width > 767px) {/* PC */
						position: absolute;
						bottom: 0;
						right: 6.5rem;
					}
					@media (width <= 767px) {/* SP */
						margin-top: 0.8rem;
						width: 26rem;
					}
				}
			}
			.voiceBlock__cnt{
				.block{
					border-top: solid 1px var(--cc-black-A);
					display: flex;
					padding: 4rem 4.6rem;

					@media (width > 767px) {/* PC */
						justify-content: center;
					}
					@media (width <= 767px) {/* SP */
						flex-direction: column;
						padding: 3rem 2rem;
					}
					.block__head{
						@media (width > 767px) {/* PC */
							width: 28.8rem;
							margin-right: 3.5rem;
							margin-top: 8rem;
						}
						@media (width <= 767px) {/* SP */
							margin: 0 auto;
						}
					}
					.block__txtarea{
						@media (width > 767px) {/* PC */
							background: url(../images/business/line-v.png) top left repeat-y;
							width: 57rem;
							padding-left: 3.5rem;
						}
						@media (width <= 767px) {/* SP */
							background: url(../images/business/line-h.png) top left repeat-x;
							margin-top: 2.3rem;
							padding-top: 1.7rem;
						}
						p{
							color: var(--cc-blue-3);
							line-height: 1.8;
							font-size: 2rem;
							@media (width <= 767px) {/* SP */
								font-size: 1.4rem;
								letter-spacing: -0.08em;
								line-height: 2.1;
							}
						}
						img{
							@media (width <= 767px) {/* SP */
								margin-top: 1.5rem;
							}
						}
					}
					.voice_ph {
						@media (width <= 767px) {/* SP */
							width: 100%;
							margin-top: 1rem;
							object-fit: cover;
						}
					}
				}
			}
		}

		.sec1{
			@media (width > 767px) {/* PC */
				margin-bottom: 9.8rem;
			}
			@media (width <= 767px) {/* SP */
				width: 29.5rem;
                margin-left: auto;
                margin-right: auto;
				margin-bottom: 4rem;
			}
		}
		.sec2{
			padding-top: 11rem;
			border-top: 2px solid #fff;
			@media (width <= 767px) {/* SP */
				padding-top: 4rem;
				width: 29.5rem;
                margin-left: auto;
                margin-right: auto;
			}
		}
	}

	@media (width > 767px) {/* PC */
	}
	@media (width <= 767px) {/* SP */
	}
}