/*PC*/

@media all {
	/*contactフォーム7*/
	.wpcf7-response-output,
	.wpcf7-spinner {
		display: none !important;
	}
	.wpcf7-select {
		border: 1px solid #707070;
		padding: 10px;
	}
	.wpcf7-not-valid-tip {
		font-size: 1.3rem !important;
		margin: 5px 0 10px;
	}

	.wpcf7-list-item {
		margin: 0 !important;
	}

	/* スクロールエフェクト */
	.fadein {
		opacity: 0;
		transform: translate(0, 25px);
		transition: all 500ms;
	}

	.fadein.scrollin {
		opacity: 1;
		transform: translate(0, 0);
	}

	/* 2つ目の要素に200msのdelayをかける */
	/*ここに親要素名*/
	.fadein:nth-of-type(2) {
		-moz-transition-delay: 200ms;
		-webkit-transition-delay: 200ms;
		-o-transition-delay: 200ms;
		-ms-transition-delay: 200ms;
	}

	.fadein:nth-of-type(3) {
		-moz-transition-delay: 400ms;
		-webkit-transition-delay: 400ms;
		-o-transition-delay: 400ms;
		-ms-transition-delay: 400ms;
	}

	.fadein:nth-of-type(4) {
		-moz-transition-delay: 600ms;
		-webkit-transition-delay: 600ms;
		-o-transition-delay: 600ms;
		-ms-transition-delay: 600ms;
	}

	html,
	body {
		background-color: #fff !important;
		font-size: 62.5%;
	}

	.serif {
		font-family: "Noto Serif JP", serif;
	}

	ul {
		list-style: none;
	}

	table {
		border-collapse: collapse;
	}

	header {
		.sp_menu {
			display: none;
		}
	}

	h2 {
		text-align: center;
		font-size: 2.2rem;
		&::after {
			content: "";
			display: block;
			width: 50px;
			border-bottom: 1px solid black;
			padding-top: 10px;
			margin: 0 auto 100px;
		}
	}

	.button {
		background-color: black;
		font-size: 1.4rem;
		color: white;
		padding: 5px 40px;
		margin: auto;
		display: block;
		width: fit-content;
		transition: all 0.25s;
		border: 1px solid black;
		&:hover {
			background-color: unset;
			color: black;
		}
	}

	.area {
		display: flex;
		margin: 0 auto 80px;
		width: fit-content;
		a {
			color: #626262;
			font-size: 1.4rem;
			line-height: 1;
			margin-right: 20px;
			padding-right: 20px;
			border-right: 1px solid #626262;
			transition: all 0.25s;
			&:last-child {
				margin-right: 0px;
				padding-right: 0px;
				border-right: unset;
			}
			&:hover {
				color: black;
			}
		}
	}

	.postid-207 {
		.area {
			a {
				&:nth-child(3) {
					display: none;
				}
			}
		}
	}

	.page-id-94 {
		a {
			&:nth-child(1) {
				color: black;
			}
		}
	}

	.page-id-224 {
		a {
			&:nth-child(2) {
				color: black;
			}
		}
	}

	.page-id-226 {
		a {
			&:nth-child(3) {
				color: black;
			}
		}
	}

	#header {
		position: fixed;
		top: 0;
		width: 100%;
		background-color: rgb(255, 255, 255, 0.9);
		z-index: 999;
		border-bottom: 1px solid #707070;
		.header_wrapper {
			max-width: 1240px;
			padding: 16px 30px;
			margin: auto;
			display: flex;
			align-items: center;
			justify-content: space-between;
			nav {
				display: flex;
				align-items: center;
				z-index: 2;
				& a {
					font-size: 1.4rem;
					line-height: 1;
					margin-right: 16px;
					padding-right: 16px;
					border-right: 1px solid #c1c1c1;
					transition: all 0.25s;
					&:last-child {
						margin-right: 0px;
						padding-right: 0px;
						border-right: unset;
					}
					&:nth-last-child(2) {
						border-right: unset;
					}
					&:hover {
						opacity: 0.5;
					}
				}
				article {
					& a {
						letter-spacing: 0.1em;
						font-size: 1.2rem;
						margin-right: 8px;
						padding-right: 4px;
						&:last-child {
							margin-right: 0px;
							padding-right: 0px;
						}
						&:nth-last-child(2) {
							border-right: 1px solid #c1c1c1;
						}
					}
				}
			}
		}
	}

	@keyframes fadeIn {
		to {
			opacity: 1;
		}
	}

	#top {
		.logo_mv {
			max-width: 150px;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			z-index: 5;
			img {
				width: 100%;
				height: auto;
			}
		}

		.mv {
			position: relative;
			width: 100%;
			height: calc(100vh - 82px);
			overflow: hidden;
			margin-bottom: 150px;
			margin-top: 82px;
			img {
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				object-fit: cover;

				opacity: 0;
				transform: scale(1);
				transition:
					opacity 4s ease,
					transform 6s ease;

				&.active {
					opacity: 1;
					/*transform: scale(1.03);*/
					z-index: 1;
				}
			}
		}

		#list {
			max-width: 1100px;
			padding: 0px 50px;
			margin: auto;
			.wrapper {
				display: flex;
				flex-wrap: wrap;
				gap: 80px 20px;
				article {
					width: calc((100% - 40px) / 3);
					a {
						figure {
							margin-bottom: 10px;
							img {
								width: 100%;
								height: auto;
								transition: all 0.25s;
							}
						}

						h3 {
							line-height: 1;
						}

						&:hover {
							img {
								opacity: 0.8;
							}
						}
					}
				}
			}
			.tab {
				color: #626262;
				font-size: 1.4rem;
				line-height: 1;
				margin-right: 20px;
				padding-right: 20px;
				border-right: 1px solid #626262;
				transition: all 0.25s;
				&:last-child {
					margin-right: 0px;
					padding-right: 0px;
					border-right: unset;
				}
				&:hover {
					color: black;
				}
				&.is-active {
					color: black;
				}
			}

			.tab_panel {
				display: none;

				&.is-active {
					display: block;
				}
			}
		}
	}

	#map,
	#restaurant {
		margin-top: 180px !important;
		max-width: 1100px;
		padding: 0px 50px;
		margin: auto;
	}

	#manners,
	#about,
	#contact,
	#contact-end,
	#pp {
		margin-top: 180px !important;
		max-width: 750px;
		padding: 0px 50px;
		margin: auto;
	}

	#contact-end {
		max-width: fit-content !important;
	}

	#map {
		iframe {
			border: unset;
		}
		.map {
			aspect-ratio: 5 / 2.5;
			margin: auto;
			filter: grayscale(100%);
		}
	}

	.i4ewOd-pzNkMb-QClCJf-giiMnc-V1ur5d-haAclf {
		display: none !important;
	}

	#restaurant {
		h3 {
			text-align: center;
			font-size: 1.8rem;
			display: flex;
			flex-direction: column;
			align-items: center;
			margin-bottom: 60px;
			&::after {
				content: "";
				border-right: 1px solid black;
				display: block;
				height: 40px;
				margin-top: 15px;
			}
		}

		.area {
			a {
				color: black;
			}
		}

		article {
			margin-bottom: 100px;
			&:last-of-type {
				margin-bottom: 0px;
				p {
					max-width: 800px;
					margin: 0 auto 100px;
					line-height: 1.7;
				}
			}

			figure {
				img {
					width: 100%;
					height: auto;
					margin-bottom: 15px;
				}
			}

			table {
				max-width: 800px;
				width: 100%;
				margin: 0 auto 70px;
				border-collapse: collapse;

				th,
				td {
					font-size: 1.4rem;
					vertical-align: top;
					line-height: 1.4;
					a {
						line-height: 1.4;
					}
				}

				th {
					width: 150px;
					padding-right: unset;
					text-align: left;
					text-wrap: nowrap;
				}

				td {
					position: relative;
					padding: 0 0 8px 10px;
					text-align: left;
					letter-spacing: 0em;
					word-break: break-word;
					div {
						display: flex;
						flex-direction: column;
					}
				}

				td.colon::before {
					content: "：";
					position: absolute;
					left: 0;
				}

				.bb {
					th,
					td {
						position: relative;
						padding-bottom: 20px;
						border-bottom: none;
					}

					th::after,
					td::after {
						content: "";
						position: absolute;
						left: 0;
						bottom: 0;
						width: 100%;
						height: 1px;
						background: #707070;
						transform: scaleY(0.5);
						transform-origin: bottom;
					}
				}

				.bb + tr {
					th,
					td {
						padding-top: 20px;
					}
				}

				a {
					color: gray;
				}
			}

			.map {
				aspect-ratio: 4 / 1.5;
				filter: grayscale(100%);
				margin-bottom: 60px;
			}
		}
	}

	#about {
		p {
			line-height: 2;
			margin: auto;
			width: fit-content;
		}
	}

	.wpcf7-turnstile {
		filter: grayscale(100%) !important;
	}

	#contact {
		p {
			line-height: 2;
			margin-bottom: 70px;
		}
		table {
			width: 100%;
			th,
			td {
				text-align: justify;
				padding: 15px 0;
				display: block;
				width: 100%;
			}
			th {
				span {
					color: #ef0c0c;
					font-size: 1.1rem;
					padding-left: 8px;
				}
			}
			td {
				margin-bottom: 50px;
				padding: 0;
			}
			.form_01,
			.form_02 {
				color: black;
				width: 100%;
				font-size: 1.5rem;
			}
			.form_01 {
				padding-bottom: 5px;
				border-bottom: 1px solid #707070;
			}
			.form_02 {
				padding: 5px 10px;
				border: 1px solid #707070;
				height: 250px;
			}
		}
		.checkbox {
			display: flex;
			flex-direction: column;
			align-items: center;
			margin-bottom: 30px;
			label {
				font-size: 1.5rem;
				display: flex;
				align-items: center;
				margin-bottom: 10px;
				input {
					margin-right: 5px;
				}
			}
			a {
				color: gray;
				font-size: 1.4rem;
			}
		}
	}

	#pp {
		article {
			margin-top: 60px;
			h3 {
				margin-bottom: 15px;
			}
			p {
				font-size: 1.4rem;
				margin-bottom: 20px;
			}
			ul {
				margin-top: 10px;
				li {
					text-indent: -1em;
					padding-left: 1em;
					margin-bottom: 10px;
					a {
						color: #626262;
					}
				}
			}
		}
	}

	footer {
		p {
			z-index: 5;
			text-align: center;
			font-size: 0.8rem;
			color: black;
			letter-spacing: 0.2em;
			padding: 30px;
			margin-top: 150px;
		}
	}
}

/*ipad*/
@media screen and (max-width: 1024px) {
	img {
		backface-visibility: hidden;
	}
}

@media screen and (max-width: 890px) {
	header {
		.sp_menu {
			display: block;
			position: fixed;
			z-index: 1000;
			@keyframes bugfix {
				from {
					padding: 0;
				}
				to {
					padding: 0;
				}
			}
			@-webkit-keyframes bugfix {
				from {
					padding: 0;
				}
				to {
					padding: 0;
				}
			}
			#overlay-button {
				position: fixed;
				right: 9px;
				top: 13px;
				padding: 26px 11px;
				z-index: 999;
				cursor: pointer;
				user-select: none;
				span {
					height: 1px;
					width: 35px;
					background-color: black;
					position: relative;
					display: block;
					transition: all 0.2s ease-in-out;
					&::before {
						top: -10px;
						visibility: visible;
					}
					&::after {
						top: 10px;
					}
					&::before,
					&::after {
						height: 1px;
						width: 35px;
						background-color: black;
						position: absolute;
						content: "";
						transition: all 0.2s ease-in-out;
					}
				}
			}

			input[type="checkbox"] {
				display: none;
			}

			input[type="checkbox"]:checked ~ #overlay {
				visibility: visible;
			}

			input[type="checkbox"]:checked ~ #overlay-button:hover span,
			input[type="checkbox"]:checked ~ #overlay-button span {
				background: transparent;
			}
			input[type="checkbox"]:checked ~ #overlay-button span:before {
				transform: rotate(45deg) translate(7px, 7px);
			}
			input[type="checkbox"]:checked ~ #overlay-button span:after {
				transform: rotate(-45deg) translate(7px, -7px);
			}

			#overlay {
				height: 100vh;
				width: 100vw;
				background: white;
				z-index: 2;
				visibility: hidden;
				position: fixed;
				top: 0;
				ul {
					display: flex;
					justify-content: center;
					align-items: center;
					flex-direction: column;
					text-align: center;
					height: 100vh;
					padding-left: 0;
					list-style-type: none;
					li {
						width: 120px;
						padding: 18px 0;
						border-bottom: 1px solid #c1c1c1;
						a {
							font-size: 1.6rem !important;
							letter-spacing: 0.15em;
						}
						&:first-child {
							padding-bottom: 50px;
							border-bottom: unset;
						}
						&:nth-last-child(2) {
							border-bottom: unset;
						}
						&:last-child {
							display: flex;
							justify-content: center;
							padding-top: 20px;
							border-bottom: unset;
							line-height: 1;
							a {
								font-size: 1.2rem !important;
								padding: 0 6px 0 10px;
								border-right: 1px solid;
								letter-spacing: 0.05em;
								&:last-child {
									border-right: unset;
								}
							}
						}
					}
				}
			}
		}
	}

	#header {
		.header_wrapper {
			padding: 16px 20px;
			nav {
				display: none;
			}
		}
	}
}

/*ipadmini*/
@media screen and (max-width: 768px) {
	#top {
		.mv {
			margin-bottom: 100px;
		}
		.map {
			aspect-ratio: 5 / 3;
		}
	}
}

/*スマホ*/

@media screen and (max-width: 599px) {
	h2 {
		font-size: 2rem;
		&::after {
			margin: 0 auto 70px;
		}
	}

	#header {
		.header_wrapper {
			.header_logo {
				max-width: 250px;
			}
		}
	}

	#top {
		.mv {
			height: 80vh;
			margin-top: 77px;
		}

		.logo_mv {
			max-width: 120px;
			top: 50%;
		}

		#list {
			padding: 0px 10px;
			.wrapper {
				gap: 50px 5px;
				article {
					width: calc((100% - 5px) / 2);
				}
			}
		}
	}

	#map,
	#restaurant,
	#manners,
	#contact,
	#contact-end,
	#pp {
		max-width: 100% !important;
		margin-top: 150px !important;
		padding: 0px 10px;
	}

	#about {
		max-width: 100% !important;
		margin-top: 150px !important;
		padding: 0px 50px;
	}

	#map {
		.map {
			aspect-ratio: 1 / 1.5;
		}
	}

	#restaurant {
		article {
			figure {
				img {
					margin-bottom: 5px;
				}
			}
			table {
				th {
					width: 80px;
					padding-right: unset;
				}
				td {
					text-align: left;
					letter-spacing: 0em;
				}
				.bb {
					th,
					td {
						padding-bottom: 20px;
					}
				}
				.bb + tr {
					th,
					td {
						padding-top: 20px;
					}
				}
			}
			.map {
				aspect-ratio: 1 / 1.5;
			}
		}
	}

	footer {
		p {
			margin-top: 100px;
		}
	}
}
