/* common */
:root {
	--inner-width: 1110px;
	--inner-width-m: 920px;
	--inner-width-s: 768px;

	--theme-white: #FFF;
	--theme-beige: #fdf6ec;
	--theme-black-base: #1c1c1c;
	--theme-black-soft: #333;
	--theme-gray:#888;
	--theme-lime:#8DC50B;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

*,
html,
body {
  font-size: 10px;
  font-family: 'noto sans jp', 'sans-serif';
  scroll-behavior: smooth;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none
}
body{
	background-color: var(--theme-beige);
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0
}

ul,
ol,
li {
  list-style-type: none;
}

body {
  min-height: 100vh;
  line-height: 1.5
}

h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1
}

h1,
h2,
h3,
h4 {
  text-wrap: balance
}

a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor
}

img,
picture {
  max-width: 100%;
  display: block
}

input,
button,
textarea,
select {
  font: inherit
}

textarea:not([rows]) {
  min-height: 10em
}

:target {
  scroll-margin-block: 5ex
}

.pc {
  display: block !important;
}

.sp {
  display: none !important;
}

@media screen and (max-width: 768px) {

  .pc {
    display: none !important;
  }

  .sp {
    display: block !important;
  }
}


/* header */

#header {
	height: 70px;

	.inner {
		position: fixed;
		width: 100%;
		height: 70px;
		display: flex;
		justify-content: flex-end;
		align-items: center;
		padding: 10px 1.5rem;
		z-index: 100;
		background-color: var(--theme-beige);
		&.scrolled {
			background-color: rgba(253, 246, 236, 0.8);
			box-shadow: 0px 7px 15px -5px #777;
		}
		.logo {
		margin-right: auto;
		flex: none;

		& a {
			display: block;

			& img {
			height: 30px;
			width: auto;
			}
		}
		}

		.gnav {
		flex: none;

		.gnav-list {
			& ul {
			display: flex;
			align-items: center;

				& li {
				& a {
					position: relative;
					color: var(--theme-black-soft);
					padding: 0 1.2rem 3px;
					font-size: 1.2rem;
					font-weight: 600;
					line-height: 1;
					text-decoration: none;
					transition: opacity 0.3s;

					&::after {
					content: '';
					position: absolute;
					bottom: 0;
					left: 1.2rem;
					right: 1.2rem;
					height: 1px;
					background-color: var(--theme-black-soft);
					transform: scaleX(0);
					transform-origin: right;
					transition: transform 0.3s ease-in-out;
					}

					&:hover {
					opacity: 0.7;

					&::after {
						transform: scaleX(1);
						transform-origin: left;
					}
					}
				}

				&.contact {
					margin-left: 1.5em;

					& a {
					background: var(--theme-lime);
					color: var(--theme-white);
					padding: 1rem 2rem;

					&:hover {
						background-color: var(--theme-black-base);
						opacity: 1;
					}

					&::after {
						transform: scaleX(0);
					}
					}
				}
				}
			}
		}
		}
	}

	@media screen and (min-width: 768px) and (max-width: 1100px) {
		.inner {
			.gnav{
				.gnav-list {
					& ul{
					flex-wrap: wrap;
					row-gap: 10px;

						& li.contact {
							& a {
								padding: 0.1rem 2rem;
							}
						}
					}
				}
			}
		}
	}

	@media screen and (max-width: 768px) {
		height: auto;

		.inner {
		height: auto;
		background-color: transparent;

		&.scrolled {
			background-color: rgba(253, 246, 236, 0.9);
			box-shadow: 0px 7px 15px -5px #777;
		}

		.menu {
			margin-right: 4.8rem;

			.gnav {
			display: block;
			position: fixed;
			top: 0;
			bottom: 0;
			right: -100%;
			width: 70%;
			padding: 6.5rem 1rem;
			background: black;
			overflow-x: hidden;
			overflow-y: auto;
			-webkit-overflow-scrolling: touch;
			transition: all 0.5s;
			z-index: 3;

			.gnav-list {
				width: 100%;
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				padding-left: 0;

				ul {
				display: block;
				text-align: center;
				padding: 0;
				}

				.menu-item {
				position: static;
				width: 100%;
				height: auto;
				}

				li {
				a {
					display: block;
					margin: 2rem 0;
					font-size: 1.5rem;
					font-weight: bold;
					color: var(--theme-black-base);
					text-align: left;
					text-decoration: none;

					span {
					display: block;
					font-weight: normal;
					color: var(--main-gray);
					}
				}

				&.tel a {
					padding: 1rem 3rem;
					border: 1px solid var(--main-gray);
					border-radius: 100px;
				}

				&.contact {
					padding: 2em 0;

					a {
					text-align: center;
					}
				}
				}
			}
			}

			.toggle {
			display: block;
			position: fixed;
			top: 0;
			right: 0;
			width: 70px;
			height: 70px;
			transition: all 0.5s;
			cursor: pointer;
			z-index: 3;

			span {
				display: block;
				position: absolute;
				left: 50%;
				transform: translateX(-50%);
				width: 35px;
				height: 2px;
				background-color: var(--theme-black-base);
				transition: all 0.5s;

				&:nth-child(1) {
				top: 15px;
				}
				&:nth-child(2) {
				top: 25px;
				}
				&:nth-child(3) {
				bottom: 33px;
				}

				&.scrolled {
				background-color: black;
				}
			}

			p {
				position: absolute;
				bottom: 7px;
				left: 50%;
				transform: translateX(-50%);
				color: var(--theme-black-base);
			}
			}

			&.menu-open {
			.gnav {
				right: 0;
				background-color: var(--theme-beige);
			}

			.toggle {
				span {
				left: 25%;
				background-color: var(--theme-lime);

				&:nth-child(1) {
					transform: translateY(9px) rotate(-315deg);
				}

				&:nth-child(2) {
					opacity: 0;
				}

				&:nth-child(3) {
					transform: translateY(-11px) rotate(315deg);
				}

				&.scroll {
					background-color: var(--theme-lime);
				}
				}

				p {
				color: var(--main-gray);
				}
			}

			#mask {
				display: block;
				position: fixed;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				z-index: 2;
				cursor: pointer;
			}
			}

			#mask {
			display: none;
			transition: all 0.3s;
			}
		}
		}
	}
}
/* footer */
#footer {
	background-color: var(--theme-black-base);
	padding: 14rem 0 2rem;
	font-family: sans-serif;
	color: var(--theme-white);

	.content {
		max-width: 1100px;
		margin: 0 auto;
		padding: 0;
		display: flex;
		justify-content: space-between;
		gap: 40px;

		.content-left {
			flex: 1;
			display: flex;
			flex-direction: column;

			.nav {
				margin-bottom: 30px;

				& ul#menu-footer {
					list-style: none;
					padding: 0;
					margin: 0;

					& li {
						margin-bottom: 15px;

						& a {
							display: inline-block;
							position: relative;
							text-decoration: none;
							font-size: 1.5rem;

							&::after {
								content: '';
								position: absolute;
								bottom: 0;
								left: 0;
								right: 0;
								height: 1px;
								background-color: var(--theme-white);
								transform: scaleX(0);
								transform-origin: right;
								transition: transform 0.3s ease-in-out;
							}

							&:hover {
								opacity: .7;

								&::after {
									transform: scaleX(1);
									transform-origin: left;
								}
							}
						}

					}
				}
			}


			.brand-info {
				margin-top: auto;

				.brand-info-title {
					font-size: 1.4rem;
				}

				.logo {
					height: auto;
					margin: 1.4rem auto 2.2rem;
				}
				.contact-info{
					display: flex;
					justify-content: center;
					.tel{
						margin-right: 2rem;
						& p {
							font-size: 2.5rem;
							& span{
								font-size: 1.2rem;
							}
						}
					}
					.license{
						& p{
							font-size: 1.2rem;
						}
					}
				}

			}


		}

		.content-right {
			flex: 1;
			display: flex;
			flex-direction: column;
			gap: 30px;

			.info-set {
				padding: 3.5rem 1.5rem 1.5rem 2.5rem;
				background-color: #686868;
				max-width: 550px;

				.info-title {
					font-size: 3.2rem;
					font-weight: bold;
					margin-top: 0;
					margin-bottom: 10px;
				}

				.info-subtitle {
					font-size: 1.6rem;
					margin-top: 0;
					margin-bottom: 1.5rem;
					font-weight: normal;
				}


				& p {
					font-size: 1.6rem;
					line-height: 1.6;
					margin-bottom: 3rem;
				}

				.info-link {
					width: 240px;
					display: block;
					margin-left: auto;
					text-align: center;
					text-decoration: none;
					color: var(--theme-white);
					font-size: 1.6rem;
					padding: 2rem 0;
					background: linear-gradient(to right, #9AC042, #48A851);

					&:hover {
						background: none;
						background-color: var(--theme-black-base);
					}
				}


			
			}
		}
	}

	@media (max-width: 768px) {
		padding: 5rem 2rem;

		.content {
			flex-direction: column-reverse;
			gap: 30px;

			.content-left {
				flex: none;
				width: 100%;

				.brand-info {
					margin-top: 30px;
					text-align: center;
				}

				.logo {
					margin-left: auto;
					margin-right: auto;
				}
			}

			.content-right {
				flex: none;
				width: 100%;

				.info-set {
					.info-body {
						display: flex;

						& p {
							width: 160px;
							font-size: 1.2rem;
							line-height: 1.6;
							margin-top: 0;
						}

						.info-link {
							width: 160px;
							height: 40px;
							font-size: 1.2rem;
							padding: 1rem 0;
						}
					}
				}
			}
		}
	}
}


/* pagination */

.pagination{
	display: flex;
	justify-content: center;
	align-items: center;
	.pagination-item-link{
		& span{
			display: block;
			font-size: 1.5rem;
			color: var(--theme-white);
			text-decoration: none;
			background-color: var(--theme-lime);
			border-radius: 10px;
			width: 3.2rem;
			height: 3.2rem;
			line-height: 2;
			text-align: center;
		}
	}
	.pagination-item{
		& a{
			display: block;
			font-size: 1.5rem;
			color: var(--theme-black-base);
			text-decoration: none;
			width: 3.2rem;
			height: 3.2rem;
			line-height: 2;
			text-align: center;
			&.pagination-item-link-icon{
				width: unset;
			}
		}
	}
}

/* fade */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;

  &.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
}