/* 共通 */
:root {
	--mainColor: #35ACB1;
	--taneColor: #4FABC9;
	--yakuColor: #77B472;
}

html {
	position: relative;
	scroll-behavior: smooth;
	
	&.is-fixed {
		overflow-y: hidden;
		height: 100%;
	}
}

body {
	font-family: "noto-sans-cjk-jp", sans-serif;
	overflow-x: hidden;
	font-size: 16px;
	
	&.is-fixed {
		overflow-y: hidden;
		height: 100%;
	}
}

h1,h2,h3,h4,h5,h6 {
	font-weight: 400;
	letter-spacing: 0.15em;
}

h1 {
	font-size: 22px;
}

h2 {
	font-size: 22px;
}

h3 {
	font-size: 20px;
}

p {
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.1em;
}

br.sp {
	display: none;
	
	@media screen and (max-width: 600px) {
		display: block;
	}
}

.l-container {
	position: relative;
	max-width: 1400px;
	width: 100%;
	margin: 0 auto;
	padding: 0 2.5em;
	
	@media screen and (max-width: 600px) {
		padding: 0 1.5em;
	}
}

.l-flex {
	display: flex;
	
	@media screen and (max-width:834px) {
		display: block;
	}
}

.illust-move {
	animation: fluffy 3s infinite;
	
	&:nth-of-type(2) {
		animation-delay: .3s;
	}
	
	&:nth-of-type(3) {
		animation-delay: .6s;
	}
}

@keyframes fluffy {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-20px);
	}
}

.illust-move-invert {
	animation: fluffy-invert 3s infinite;
	
	&:nth-of-type(2) {
		animation-delay: .3s;
	}
	
	&:nth-of-type(3) {
		animation-delay: .6s;
	}
}

@keyframes fluffy-invert {
	0%, 100% {
		transform: translateY(0) scaleX(-1);
	}
	50% {
		transform: translateY(-20px) scaleX(-1);
	}
}

.title-main {
	display: inline-block;
	font-weight: 700;
	font-size: 18px;
	color: var(--mainColor);
	
	@media screen and (max-width: 600px) {
		font-size: 15px;
	}
	
	&:after {
		content: "";
		display: block;
		width: 100%;
		height: 0.8em;
		background: #DBF1F2;
		border-radius: 50px;
		margin: -8px 0 0;
	}
}

/* header */
header {
	position: relative;
	width: 100%;
	height: auto;
	z-index: 500;
	
	.language-switcher {
		position: absolute;
		top: 32px;
		left: 32px;
		
		@media screen and (max-width: 600px) {
			top: 28px;
		}
		
		&.is-show {
			
			.language-wrp {
				display: block;
			}
		}
		
		.switcher-toggle {
			color: var(--mainColor);
			font-size: 14px;
			font-weight: 500;
			
			&:after {
				content: "";
				display: inline-block;
				width: 1.1em;
				height: 1.1em;
				margin: 0 0 0 0.5em;
				vertical-align: bottom;
				background: no-repeat center/contain url(../img/icon-arrow.svg);
			}
			
			&.open {
				&:after {
					transform: scale(1, -1);
				}
			}
		}
		
		.language-wrp {
			display: none;
			border: solid 1px var(--mainColor);
			background: #fff;
			padding: 1em;
			border-radius: 1em;
			margin: 8px 0 0;
			
			.language-item {
				margin: 0 0 0.5em;
				
				&:last-child {
					margin: 0;
				}
			}
			
			a {
				display: block;
				font-size: 14px;
				font-weight: 300;
			}
			
			a[data-stt-active] {
				color: var(--mainColor);
				font-weight: 700;
			}
			
			a[data-stt-disabled] * {
				color: #999;
			}
		}
	}
	
	.header-nav {
		position: fixed;
		top: 32px;
		right: 32px;
		z-index: 100;
		
		ul {
			display: flex;
			border: solid 1px var(--mainColor);
			border-radius: 50px;
			padding: 1.25em 4em;
			gap: 2.5em;
			background: rgba(255, 255, 255, 0.8);
			
			@media screen and (max-width: 834px) {
				padding: 1em 2em;
			}
			
			li {
				color: var(--mainColor);
				font-size: 15px;
				font-weight: 700;
			}
		}
	}
	
	.hum-menu {
		position: fixed;
		top: 32px;
		right: 32px;
		display: none;
		flex-direction: column;
		justify-content: space-between;
		width: 32px;
		height: 16px;
		padding: 0;
		border: none;
		background: transparent;
		cursor: pointer;
		z-index: 200;
		
		span {
			display: block;
			width: 100%;
			height: 2px;
			background-color: var(--mainColor);
			border-radius: 10px;
			transition: all 0.3s ease;
		}
		
		&.is-active {
			span {
				//background-color: #fff;
			}
			
			span:nth-child(1) {
				transform: translateY(12px) rotate(45deg);
			}
			
			span:nth-child(2) {
				opacity: 0;
			}
				
			span:nth-child(3) {
				transform: translateY(-2px) rotate(-45deg);
			}
		}
		
		@media screen and (max-width: 600px) {
			display: flex;
		}
	}
	
	.sp-nav {
		
		@media screen and (max-width: 600px) {
			display: none;
			position: fixed;
			top: 50px;
			right: -200px;
			min-width: 200px;
			background-color: #fff;
			transition: right 0.3s ease;
			z-index: 100;
		}
		
		&.is-active {
			display: block;
			top: 0;
			right: 0;
			width: 100%;
			height: 100dvh;
			background: #fff;
			border: solid 1px var(--mainColor);
			
			ul {
				margin: 60% auto 0;
				display: block;
				padding: 0;
				border: none;
				width: 80%;
				
				li {
					//color: #fff;
					font-size: 18px;
					margin: 0 0 2em;
					padding: 0 0 0.5em;
					border-bottom: dashed 2px var(--mainColor);
					
					&:last-child {
						margin: 0;
					}
					
					a {
						display: block;
					}
				}
			}
		}
		
		.illust {
			display: none;
			
			@media screen and (max-width: 600px) {
				display: block;
				pointer-events: none;
			}
			
			&.illust-01 {
				position: absolute;
				bottom: 0%;
				right: 20%;
				width: 40%;
			}
			
			&.illust-02 {
				position: absolute;
				right: 10%;
				bottom: 16%;
				width: 28%;
				transform: scale(-1, 1);
			}
		}
	}
}

/* top */
.top-mv {
	position: relative;
	width: 100%;
	height: 65vw;
	max-height: 960px;
	background: #F4F2E9;
	padding: 1em 1em 0 1em;	
	//overflow-x: hidden;
	
	@media screen and (max-width: 600px) {
		height: 100dvh;
	}
	
	&:before {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 5%;
		background: linear-gradient(rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .7) 20%, rgba(255, 255, 255, 1) 80%);
	}
	
	.inner {
		position: relative;
		border-radius: 20px 20px 0 0;
		width: 100%;
		height: 100%;
		background: #fff;
		z-index: 10;
		
		&:before {
			content: "";
			display: block;
			width: 100vw;
			height: 25vw;
			position: absolute;
			bottom: -12vw;
			left: -1em;
			background: no-repeat center bottom/100% auto url(../img/wave-mv.png);
			z-index: -2;
			
			@media screen and (max-width: 834px) {
				bottom: -5vw;
			}
		}
		
		.copy-wrp {
			position: absolute;
			width: 100%;
			padding: 12% 0 0 10%;
			z-index: 10;
			
			@media screen and (max-width: 600px) {
				top: 18%;
				padding: 0 0 0 7%;
			}
			
			.illust {
				position: absolute;
				
				&.kani {
					width: 19vw;
					top: 5%;
					left: 60%;
					
					@media screen and (max-width: 600px) {
						width: 32%;
						top: -36%;
						left: auto;
						right: 0;
					}
				}
				
				&.fish1 {
					width: 20vw;
					bottom: -55%;
					left: 2%;
					
					@media screen and (max-width: 600px) {
						width: 34%;
						top: 88%;
						left: -3%;
					}
				}
			}
		}
		
		.copy {
			font-family: "ads-soyokaze", sans-serif;
			font-size: clamp(20px, 12vw, 200px);
			letter-spacing: 0.01em;
			line-height: 1;
			color: #2685c0;
			
			@media screen and (max-width: 600px) {
				font-size: clamp(70px, 20vw, 80px);
			}
			
			.sub {
				position: relative;
				font-size: 0.4em;
				display: block;
				padding: 0 0 0 0.2em;
				
				@media screen and (max-width: 600px) {
					margin: 0 0 8px;
				}
				
				&:before {
					content: "";
					display: block;
					width: 15vw;
					height: 16vw;
					position: absolute;
					top: -250%;
					left: -12%;
					background: no-repeat center bottom/contain url(../img/mv-map.png);
					z-index: -1;
					
					@media screen and (max-width: 600px) {
						width: 110px;
						height: 130px;
						top: -83px;
						left: -57px;
					}
				}
			}
			
			.main {
				display: inline-block;
				
				&:eq(0) {
					font-size: 90px;
					
					@media screen and (max-width: 600px) {
						font-size: 44px;
					}
				}
			}
		}
		
		.img-box {
			position: absolute;
			top: -1em;
			left: -1em;
			width: 100vw;
			height: 100%;
			overflow: hidden;
			pointer-events: none;
			
			.img-item  {
				position: absolute;
				height: auto;
				aspect-ratio: 1/1;
				z-index: -1;
				
				&:after {
					content: "";
					display: block;
					position: absolute;
					top: 50%;
					left: 50%;
					transform: translate(-50%, -50%);
					background: no-repeat center bottom/contain url(../img/mv-frame-1.svg);
					z-index: 1;
				}
				
				.photo {
					width: 100%;
					height: 100%;
					object-fit: cover;
					border-radius: 50%;
					opacity: 0;
					z-index: 0;
					transition: opacity 3s ease;
					position: absolute;
					top: 0;
					left: 0;
					
					&.active {
						opacity: 1;
						z-index: 1;
					}
				}
				
				.illust {
					position: absolute;
					min-width: 100px;
					z-index: 2;
				}
				
				&.img-01 {
					bottom: 55%;
					right: 8%;
					width: 12%;
					max-width: 220px;
					z-index: 1;
					
					@media screen and (max-width: 600px) {
						top: 55%;
						right: 55%;
						width: 30%;
					}
					
					&:after {
						width: 110%;
						height: 110%;
						background: no-repeat center bottom/contain url(../img/mv-frame-1.svg);
					}
					
					.illust {
						bottom: -60%;
						right: -40%;
						width: 90%;
						height: auto;
						
						@media screen and (max-width: 600px) {
							top: 82%;
							right: -175%;
							width: 30%;
						}
					}
				}
				
				&.img-02 {
					bottom: 10%;
					right: 5%;
					width: 22%;
					max-width: 360px;
					
					@media screen and (max-width: 600px) {
						width: 50%;
						top: 45%;
						right: -3%;
					}
					
					&:after {
						width: 116%;
						height: 116%;
						background: no-repeat center bottom/contain url(../img/mv-frame-2.svg);
					}
					
					.illust {
						bottom: -10%;
						right: -25%;
						width: 60%;
						height: auto;
						
						@media screen and (max-width: 600px) {
							bottom: -27%;
							right: 0;
						}
					}
				}
				
				&.img-03 {
					bottom: 17%;
					right: 33%;
					width: 14%;
					max-width: 200px;
					
					@media screen and (max-width: 600px) {
						width: 35%;
						top: 75%;
						right: 32%;
					}
					
					&:after {
						width: 110%;
						height: 110%;
						background: no-repeat center bottom/contain url(../img/mv-frame-3.svg);
					}
					
					.illust {
						bottom: -48%;
						right: -30%;
						width: 70%;
						height: auto;
					}
				}
			}
		}
		
		.info {
			position: absolute;
			left: 50%;
			bottom: -10%;
			transform: translateX(-50%);
			max-width: 720px;
			width: 90%;
			
			@media screen and (max-width: 600px) {
				bottom: -7%;
			}
			
			ul {
				
				li {
					width: 100%;
					margin: 0 0 1rem;
					
					@media screen and (max-width: 600px) {
						margin: 0 0 0.5em;
					}
					
					a {
						position: relative;
						display: block;
						
						.wrp {
							width: calc(100% - 4em);
							border: solid 1px var(--mainColor);
							background: rgba(255,255,255,0.5);
							border-radius: 50px;
							padding: 1em 2em;
							display: flex;
							align-items: end;
							gap: 0.5em;
							
							@media screen and (max-width: 600px) {
								width: calc(100% - 3em);
								padding: 0.5em 1em;
							}
							
							time {
								flex-shrink: 0;
								font-size: 12px;
								color: #8D8D8D;
								
								@media screen and (max-width: 600px) {
									font-size: 11px;
								}
							}
							
							p {
								font-size: 15px;
								overflow: hidden;
								text-overflow: ellipsis;
								white-space: nowrap;
								
								@media screen and (max-width: 600px) {
									font-size: 13px;
								}
							}
						}
						
						&:after {
							content: "→";
							position: absolute;
							top: 0;
							right: 0;
							display: block;
							width: 3em;
							height: 3em;
							background: var(--mainColor);
							color: #fff;
							line-height: 3em;
							text-align: center;
							border-radius: 50%;
							
							@media screen and (max-width: 600px) {
								width: 2em;
								height: 2em;
								line-height: 2em;
							}
						}
					}
				}
			}
		}
		
		.kibinago-wrp {
			position: absolute;
			left: 25%;
			bottom: 30%;
			z-index: 1;
			
			@media screen and (max-width: 600px) {
				left: -2%;
				bottom: 20%;
			}
			
			img {
				width: 10%;
				
				@media screen and (max-width: 600px) {
					width: 18%;
				}
				
				&:nth-child(2) {
					margin: 0 20px 40px;
					
					@media screen and (max-width: 600px) {
						margin: 0 0 30px;
					}
				}
				
				&:nth-child(3) {
					@media screen and (max-width: 600px) {
						display: none;
					}
				}
			}
		}
		
		.wave-01 {
			position: absolute;
			bottom: 10%;
			left: -1%;
			max-width: 200px;
			min-width: 100px;
			width: 13%;
			height: auto;
			object-fit: contain;
			z-index: -1;
		}
		
		.wave-02 {
			position: absolute;
			bottom: 20%;
			left: 10%;
			max-width: 200px;
			min-width: 80px;
			width: 13%;
			height: auto;
			object-fit: contain;
			z-index: -1;
			
			@media screen and (max-width: 600px) {
				display: none;
			}
		}
		
		.wave-03 {
			position: absolute;
			bottom: 10%;
			right: -1%;
			max-width: 200px;
			min-width: 100px;
			width: 10%;
			height: auto;
			object-fit: contain;
			z-index: -1;
		}
	}
}

.top-intro {
	padding: 20vw 0;
	
	@media screen and (max-width: 600px) {
		padding: 7.5em 0;
	}
	
	.inner {
		justify-content: center;
		//gap: 10%;
		
		@media screen and (max-width:834px) {
			width: fit-content;
			margin: 0 auto;
			text-align: center;
		}
	}
	
	.title-box {
		position: relative;
		width: 50%;
		
		@media screen and (max-width:834px) {
			width: 100%;
		}
		
		&:before {
			content: "";
			display: block;
			width: 2em;
			height: 2em;
			position: absolute;
			top: -30%;
			left: -10%;
			background: no-repeat center/contain url(../img/illust-flower.svg);
			z-index: 1;
			
			@media screen and (max-width:834px) {
				top: -70%;
				left: 10%;
			}
		}
		
		.title {
			font-family: "Yu Mincho", "YuMincho";
			font-size: clamp(24px, 4vw, 40px);
			color: var(--mainColor);
			line-height: 1.5;
			margin: 0 0 2em;
			
			@media screen and (max-width:834px) {
				font-size: 32px;	
			}
			
			@media screen and (max-width: 600px) {
				font-size: 24px;
			}
			
			&:before {
				content: "";
				display: block;
				width: 3em;
				height: 3em;
				position: absolute;
				top: -45%;
				right: 10%;
				background: no-repeat center/contain url(../img/illust_tobiuo.png);
				z-index: 1;
				animation: fluffy 3s infinite;
				
				@media screen and (max-width: 834px) {
					right: -10%;
				}
				
				@media screen and (max-width: 600px) {
					width: 2.5em;
					height: 2.5em;
					right: 0;
				}
			}
			
			&:after {
				content: "";
				display: block;
				width: 3.1em;
				height: 3.1em;
				position: absolute;
				bottom: -30%;
				left: -15%;
				background: no-repeat center/contain url(../img/illust_sujiara.png);
				z-index: 1;
				animation: fluffy-invert 3s .5s infinite;
				
				@media screen and (max-width: 600px) {
					width: 2.5em;
					height: 2.5em;
					left: -5%;
					bottom: -85%;
				}
			}
		}
	}
	
	.content-box {
		width: 40%;
		
		@media screen and (max-width:834px) {
			width: 100%;
		}
		
		p {
			font-size: 18px;
			line-height: 1.7;
			
			@media screen and (max-width: 600px) {
				font-size: 16px;
			}
			
			&.note {
				font-size: 0.9em;
				color: #7a7a7a;
				margin: 1.5em 0 0;
				
				@media screen and (max-width: 600px) {
					font-size: 13px;
				}
			}
		}
	}
	
	.btn-box {
		margin: 8em 0 0;
		text-align: center;
		
		.btn-wrp {
			display: flex;
			justify-content: center;
			gap: 2.5em;
			margin: 2.5em 0 0;
			
			@media screen and (max-width: 600px) {
				display: block;
			}
		}
		
		.btn {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0.3em;
			font-size: 48px;
			font-weight: 500;
			letter-spacing: 0.1em;
			color: #fff;
			padding: 0.5em 1.3em;
			border-radius: 0.5em;
			
			@media screen and (max-width:834px) {
				font-size: 40px;
			}
			
			@media screen and (max-width: 600px) {
				font-size: 32px;
				margin: 0 0 1rem;
			}
			
			&.tane {
				background: var(--taneColor);
			}
			
			&.yaku {
				background: var(--yakuColor);
			}
			
			&:after {
				content: "";
				display: inline-block;
				width: 0.6em;
				height: 0.6em;
				background: no-repeat center/contain url(../img/arrow-wh.svg);
			}
		}
	}
}

.top-restaurant {
	position: relative;
	margin: 2.5em 0 0;
	padding: 10em 0 20em;
	
	@media screen and (max-width: 600px) {
		padding: 8em 0;
		margin: 0;
	}
	
	.illust {
		position: absolute;
		width: 10%;
		min-width: 100px;
		z-index: 10;
		
		@media screen and (max-width: 600px) {
			min-width: 80px;
		}
		
		&.bubble1 {
			width: 2%;
			right: 10%;
			top: -4%;
			min-width: 20px;
			
			@media screen and (max-width: 600px) {
				top: -1.5%;
			}
		}
		
		&.mizuika {
			top: -3%;
			right: 10%;
			
			@media screen and (max-width: 600px) {
				top: -1%;
			}
		}
		
		&.fish3 {
			width: 8%;
			bottom: 5%;
			right: 0;
			transform: rotateY(180deg);
			
			@media screen and (max-width: 600px) {
				bottom: -1%;
				right: -5%;
			}
		}
		
		&.sujiara {
			width: 12%;
			bottom: -5%;
			right: 5%;
			
			@media screen and (max-width: 600px) {
				width: 35%;
			}
		}
		
		&.ishigakidai{
			bottom: -15%;
			left: -5%;
			
			@media screen and (max-width: 600px) {
				bottom: -5%;
			}
		}
		
		&.kani {
			right: 0;
			bottom: -15%;
			
			@media screen and (max-width: 600px) {
				bottom: -5%;
			}
		}
		
		&.kai {
			width: 5%;
			min-width: 80px;
			bottom: 2%;
			right: 0;
			
			@media screen and (max-width: 600px) {
				min-width: 40px;
				bottom: -1%;
			}
		}
		
		&.chibiki {
			width: 11%;
			bottom: -5%;
			right: 3%;
			
			@media screen and (max-width: 600px) {
				width: 30%;
				bottom: -3%;
			}
		}
		
		&.fish1{
			bottom: -15%;
			left: -20px;
			
			@media screen and (max-width: 600px) {
				bottom: -5%;
			}
		}
		
		&.bubble2 {
			width: 2%;
			right: 10%;
			bottom: 10%;
			min-width: 20px;
			
			@media screen and (max-width: 600px) {
				bottom: 15%;
			}
		}
		
		&.umeiro {
			bottom: -7%;
			right: 0;
			
			@media screen and (max-width: 600px) {
				bottom: -20%;
			}
		}
		
		&.fish2{
			bottom: -10%;
			left: -20px;
			
			@media screen and (max-width: 600px) {
				bottom: -2%;
			}
		}
	}
	
	.map-box {
		position: relative;
		max-width: 640px;
		width: 55%;
		border-radius: 3.5em;
		background: #fff;
		margin: 0 auto;
		
		@media screen and (max-width: 600px) {
			width: 100%;
			padding: 1em 0;
		}
		
		.map-title {
			position: absolute;
			top: -2.5rem;
			left: 0;
			font-size: clamp(36px, 7vw, 80px);
			font-weight: 700;
			
			@media screen and (max-width: 600px) {
				top: -0.5em;
			}
		}
		
		.map-inner {
			position: relative;
			padding: 2em;
			
			@media screen and (max-width: 600px) {
				padding: 2em 0;
			}
			
			.map {
				display: block;
				width: 80%;
				margin: 0 auto;
				
				&.pc {
					
					@media screen and (max-width: 600px) {
						display: none;
					}
				}
				
				&.sp {
					display: none;
					
					@media screen and (max-width: 600px) {
						display: block;
					}
				}
			}
			
			.map-link {
				position: absolute;
				font-size: clamp(18px, 2.5vw, 32px);
				font-weight: 500;
				white-space: nowrap;
				width: fit-content;
				letter-spacing: 0.1em;
				padding: 0.7em 1.5em;
				background: #fff;
				
				@media screen and (max-width: 600px) {
					padding: 0.5em;
				}
			}
		}
	}
	
	&.restaurant-tanegashima {
		background: #ECF4F7;
		
		&:before {
			content: "";
			display: block;
			width: 100%;
			height: 10%;
			position: absolute;
			top: -10%;
			left: 0;
			background: no-repeat center bottom/100% auto url(../img/wave-tane.png);
			z-index: -1;
		}
		
		.map-title {
			color: var(--taneColor);
		}
		
		.map-inner {
			
			.map {
				@media screen and (max-width: 600px) {
					width: 75%;
				}
			}
		}
		
		.map-link {
			color: var(--taneColor);
			border: solid 4px #9BD1E0;
			
			@media screen and (max-width: 600px) {
				border: solid 3px #9BD1E0;
			}
			
			&:after {
				content: "";
				display: inline-block;
				width: 0.6em;
				height: 0.6em;
				margin: 0 0 0 0.3em;
				background: no-repeat center/contain url(../img/arrow-tane.svg);
			}
		}
		
		.link-01 {
			top: 23%;
			left: 85%;
			
			@media screen and (max-width: 600px) {
				top: 2%;
				left: auto;
				right: -3%;
			}
		}
		
		.link-02 {
			top: 43%;
			right: 85%;
			
			@media screen and (max-width: 600px) {
				top: 34%;
				left: -5%;
			}
		}
		
		.link-03 {
			top: 70%;
			left: 63%;
			
			@media screen and (max-width: 600px) {
				top: 81%;
				left: 53%;
			}
		}
		
		.list-title {
			color: var(--taneColor);
			border-bottom: dashed 2px var(--taneColor);
		}
	}
	
	&.restaurant-yakushima {
		background: #E2F2E1;
		
		&:before {
			content: "";
			display: block;
			width: 100%;
			height: 10%;
			position: absolute;
			top: -10%;
			left: 0;
			background: no-repeat center bottom/100% auto url(../img/wave-yaku-1.png);
			z-index: 0;
		}
		
		&:after {
			content: "";
			display: block;
			width: 100%;
			height: 10%;
			position: absolute;
			bottom: -10%;
			left: 0;
			background: no-repeat center bottom/100% auto url(../img/wave-yaku-1.png);
			z-index: 0;
			transform: scale(1, -1);
		}
		
		.map-title {
			color: var(--yakuColor);
		}
		
		.map-inner {
			padding: 4em 0;
			
			@media screen and (max-width: 600px) {
				padding: 2em 0;
			}
			
			.map {
				
				@media screen and (max-width: 600px) {
					width: 90%;
				}
			}
		}
		
		.map-link {
			color: var(--yakuColor);
			border: solid 4px #B8E2B5;
			
			&:after {
				content: "";
				display: inline-block;
				width: 0.6em;
				height: 0.6em;
				margin: 0 0 0 0.3em;
				background: no-repeat center/contain url(../img/arrow-yaku.svg);
			}
		}
		
		.link-01 {
			top: 7%;
			left: 68%;
			
			@media screen and (max-width: 600px) {
				top: 7%;
				right: auto;
				left: -5%;
			}
		}
		
		.link-02 {
			top: 34%;
			left: 85%;
			
			@media screen and (max-width: 600px) {
				top: 6%;
				right: -5%;
				left: auto;
			}
		}
		
		.link-03 {
			top: 52%;
			left: 85%;
			
			@media screen and (max-width: 600px) {
				top: 73%;
				right: -5%;
				left: auto;
			}
		}
		
		.link-04 {
			top: 62%;
			right: 80%;
			
			@media screen and (max-width: 600px) {
				top: 78%;
				left: -5%;
			}
		}
		
		.list-title {
			color: var(--yakuColor);
			border-bottom: dashed 2px var(--yakuColor);
		}
	}
	
	.restaurant-list {
		position: relative;
		margin: 7.5em 0 0;
		
		.list-title {
			font-weight: 700;
			letter-spacing: 0.1em;
			padding: 0 0 8px;
			margin: 0 0 2.5em;
			
			@media screen and (max-width: 600px) {
				margin: 0 0 1em;
			}
		}
		
		.list-wrp {
			display: grid;
			grid-auto-columns: 1fr;
			grid-gap: 2em;
			grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
			
			&.list-wrp--koseda-funayuki {
				display: grid;
				gap: 2em;
				grid-template-columns: repeat(3, minmax(310px, 1fr));
				grid-template-areas:
					"koseda koseda funayuki"
					"hibiscus ilmare pastaslow";
		
				.list-title {
					margin: 0;
					padding: 0 0 8px;
				}
		
				.area-koseda    {
					grid-area: koseda;
				}
				
				.area-funayuki  {
					grid-area: funayuki;
					
					@media screen and (max-width: 1088px) {
						margin: 7.5rem 0 0;
					}
				}
				
				.area-hibiscus  {
					grid-area: hibiscus;
				}
				
				.area-ilmare    {
					grid-area: ilmare;
				}
				
				.area-pastaslow {
					grid-area: pastaslow;
				}
				
				@media screen and (max-width: 1088px) {
					grid-template-columns: repeat(2, minmax(310px, 1fr));
					grid-template-areas:
						"koseda koseda"
						"hibiscus ilmare"
						"funayuki funayuki"
						"pastaslow .";
				}
				
				@media screen and (max-width: 600px) {
					grid-template-columns: minmax(310px, 1fr);
					gap: 1em;
					grid-template-areas:
						"koseda"
						"hibiscus"
						"ilmare"
						"funayuki"
						"pastaslow";
				}
			}
		}
		
		.item {
			background: #fff;
			border-radius: 1.2em;
			padding: 2em 1.5em 1.5em;
			
			@media screen and (max-width: 600px) {
				padding: 2em 1.5em;
			}
			
			.restaurant-name {
				font-weight: 500;
				font-size: 1.4em;
				letter-spacing: 0;
				margin: 0 0 0.5em;
				
				span {
					font-size: 0.8em;
					margin: 0 2px;
				}
			}
			
			img {
				width: 100%;
				height: auto;
				aspect-ratio: 3/2;
				object-fit: cover;
			}
			
			.menu-name {
				//max-width: 83%;
				text-align: center;
				margin: 4px 0 0;
				
				p {
					max-width: 93%;
					font-size: 1em;
					font-weight: 500;
					position: relative;
					display: inline-block;
					padding: 0.5em;
					background-color: #f4a23b;
					color: #fff;
					//text-align: center;
					
					@media screen and (max-width: 600px) {
						font-size: 14px;
						padding: 0.5em 0;
					}
					
					&:before,
					&::after {
						content: "";
						position: absolute;
						top: 0;
						width: 20px;
						height: 100%;
					}
					
					&:before {
						left: -20px;
						background: no-repeat left/auto 100% url(../img/ribbon-1.svg);
					}
					
					&:after {
						right: -20px;
						background: no-repeat right/auto 100% url(../img/ribbon-2.svg);
					}
				}
			}
			
			.meta {
				margin: 1em 0 0;
				
				p,a {
					position: relative;
					font-size: 1em;
					padding: 0.5em 0 0.5em 1.5em;
					
					@media screen and (max-width: 600px) {
						font-size: 1em;
					}
					
					&:before {
						content: "";
						position: absolute;
						top: 0.6em;
						left: 0;
						display: inline-block;
						width: 1.3em;
						height: 1.3em;
					}
				}
				
				a {
					text-decoration: underline;
				}
				
				.tel {
					&:before {
						background: no-repeat center/contain url(../img/icon-tel.svg);
					}
				}
				
				.open {
					&:before {
						background: no-repeat center/contain url(../img/icon-clock.svg);
					}
					
					span {
						font-size: 0.9em;
					}
				}
				
				.address {
					&:before {
						background: no-repeat center/contain url(../img/icon-pin.svg);
					}
				}
			}
		}
	}
}

.top-recipe {
	margin: 20em 0;
	
	@media screen and (max-width: 600px) {
		margin: 10em 0;
	}
	
	.recipe-intro {
		text-align: center;
		
		.intro-heading {
			position: relative;
			padding: 0.6em 2em;
			background: #fff5db;
			border-radius: 0.8em;
			font-size: 1.8em;
			font-weight: 500;
			
			@media screen and (max-width: 600px) {
				font-size: 1.5em;
				padding: 0.6em 1em;
			}
			  
			&:after {
				position: absolute;
				content: '';
				top: 100%;
				left: 50%;
				border: 15px solid transparent;
				border-top: 15px solid #fff5db;
				width: 0;
				height: 0;
			}
		}
		
		p {
			margin: 2em 0 0;
			font-size: 1.2em;
			
			@media screen and (max-width: 600px) {
				font-size: 1em;
			}
		}
		
		.intro-title {
			
			.inner {
				position: relative;
				display: inline-block;
				max-width: 85%;
				margin: 0 auto;
				
				@media screen and (max-width: 600px) {
					display: block;
				}
				
				img {
					position: absolute;
					z-index: 1;
					
					&.bubble {
						width: 2%;
						min-width: 13px;
						top: -70%;
						left: -7%;
						
						@media screen and (max-width: 834px) {
							width: 3%;
							left: -8%;
							top: -40%;
						}
						
						@media screen and (max-width: 600px) {
							top: -40%;
							left: -5%;
						}
					}
					
					&.kibinago {
						width: 25%;
						max-width: 160px;
						min-width: 72px;
						top: -110%;
						left: -5%;
						
						@media screen and (max-width: 834px) {
							width: 22%;
							top: -90%;
							left: -5%;
						}
						
						@media screen and (max-width: 600px) {
							top: -40%;
						}
					}
					
					&.tobiuo {
						width: 20%;
						max-width: 160px;
						min-width: 64px;
						top: 35%;
						right: -8%;
						
						@media screen and (max-width: 834px) {
							width: 20%;
							top: 40%;
							right: -8%;
						}
						
						@media screen and (max-width: 600px) {
							top: auto;
							right: -10%;
							bottom: -30%;
						}
					}
				}
				
				p {
					font-size: 2em;
					font-weight: 500;
					margin: 1.3em 0 0;
					
					@media screen and (max-width: 600px) {
						font-size: 20px;
					}
				}
			}
		}
	}
	
	.recipe-list {
		display: flex;
		flex-wrap: wrap;
		gap: 2em;
		margin: 3.5em 0 0;
		
		@media screen and (max-width:834px) {
			display: block;
		}
		
		.item {
			width: calc((100% - 2em) / 2);
			padding: 3.2em 2em;
			border-radius: 2em;
			border: solid 4px #F4A23B;
			background: #FFFEFA;
			
			@media screen and (max-width: 834px) {
				width: 80%;
				max-width: 640px;
				margin: 0 auto 2em;
			}
			
			@media screen and (max-width: 600px) {
				width: 100%;
				padding: 2em 1em;
			}
			
			.recipe-img {
				width: auto;
				height: 30vw;
				margin: 0 auto 2em;
				
				@media screen and (max-width: 600px) {
					height: 200px;
				}
				
				img {
					display: block;
					width: 90%;
					height: 100%;
					object-fit: contain;
					margin: 0 auto;
				}
			}
			
			.recipe-title {
				font-size: 1.5em;
				font-weight: 700;
				text-align: center;
				
				@media screen and (max-width: 600px) {
					font-size: 20px;
				}
			}
			
			.recipe-text {
				width: 85%;
				font-size: 1.1em;
				text-align: center;
				line-height: 1.4;
				margin: 1em auto;
				
				@media screen and (max-width: 600px) {
					width: 100%;
					font-size: 15px;
				}
			}
			
			.btn-view {
				text-align: center;
				margin: 2em 0 0;
				
				a {
					display: inline-block;
					font-size: 1.2em;
					font-weight: 700;
					color: #fff;
					background: #F4A23B;
					padding: 1em 2.6em;
					border-radius: 1em;
					
					&:after {
						content: "";
						display: inline-block;
						width: 1.2em;
						height: 1.2em;
						vertical-align: bottom;
						background: no-repeat center/contain url(../img/icon-blank.svg);
					}
				}
			}
		}
	}
}

/* article */
.article-wrp {
	background: #F4F2E9;
	padding: 1em;
	
	article {
		background: #fff;
		border-radius: 20px;
		
		.illust-top {
			padding: 4em 0 0 2em;
			
			.illust {
				display: block;
				
				
				&.illust-01 {
					width: 130px;
					margin: 0 0 0 80px;
					
					@media screen and (max-width: 600px) {
						width: 100px;
						margin: 0 0 0 auto;
					}
				}
				
				&.illust-02 {
					width: 108px;
					margin: -10px 0 0 0;
					
					@media screen and (max-width: 600px) {
						width: 80px;
						margin: -40px 90px 0 auto;
					}
				}
				
				&.illust-03 {
					width: 24px;
					margin: -170px 0 0 70px;
					
					@media screen and (max-width: 600px) {
						width: 20px;
						margin: -120px 82px 0 auto;
					}
				}
				
				&.illust-04 {
					width: 30px;
					margin: -30px 0 0 180px;
					
					@media screen and (max-width: 600px) {
						margin: 0 0 0 auto;
					}
				}
			}
		}
		
		.l-container {
			max-width: 800px;
			margin-top: 8em;
			
			@media screen and (max-width: 600px) {
				margin-top: 4em;
			}
			
			time {
				display: block;
				font-size: 14px;
				margin: 0 0 2em;
			}
			
			h1 {
				margin: 0 0 2em;
			}
			
			.thumbnail {
				display: block;
				width: 100%;
				height: auto;
				margin: 0 0 2em;
			}
			
			.contetns {
				
				p {
					font-size: 15px;
					line-height: 1.4;
					margin: 0 0 2em;
				}
				
				a {
					display: inline-block;
					color: var(--mainColor);
					text-decoration: underline;
					margin: 0 0 2em;
				}
			}
			
			.btn-back {
				text-align: center;
				margin: 2em 0 0;
				
				a {
					display: inline-block;
					font-size: 1.2em;
					font-weight: 700;
					color: #fff;
					background: var(--mainColor);
					padding: 1em 2.6em;
					border-radius: 1em;
				}
			}
		}
		
		.illust-bottom {
			padding: 4em 2em 4em 0;
			
			.illust {
				display: block;
				
				&.illust-01 {
					width: 9%;
					min-width: 80px;
					margin: 0 0 0 auto;
				}
				
				&.illust-02 {
					width: 12%;
					min-width: 100px;
					margin: 0 5% 0 auto;
				}
			}
		}
	}
}

footer {
	padding: 7em 0 2em;
	background: no-repeat center bottom/auto 100% url(../img/wave-footer.svg);
	
	@media screen and (max-width: 600px) {
		background: no-repeat center bottom/auto 100% url(../img/wave-footer-sp.svg);
	}
	
	.title {
		color: var(--mainColor);
		font-weight: 500;
		font-size: 1.1em;
		
		span {
			font-size: 0.8em;
			display: block;
		}
	}
	
	.contact {
		display: flex;
		align-items: center;
		margin: 1em 0 0;
		text-align: center;
		
		.heading {
			margin: 0 1em 0 0;
			padding: 0 1em 0 0;
			border-right: solid 1px #D0D0D0;
			
			span {
				font-size: 0.7em;
			}
		}
		
		.tel {
			&:before {
				content: "";
				display: inline-block;
				width: 1.2em;
				height: 1.2em;
				margin: 0 0.5em 0 0;
				vertical-align: sub;
				background: no-repeat center/contain url(../img/icon-tel-footer.svg);
			}
		}
	}
	
	.tobiuo {
		position: absolute;
		bottom: 90%;
		right: 10%;
		width: 10%;
		
		@media screen and (max-width: 600px) {
			bottom: 120%;
			width: 25%;
		}
	}
}










