html {
	scroll-behavior: smooth;

	/* 長さの単位はrem bodyの幅を基準にしている */
	font-size: 1vw;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	margin: 0;

	/* スマホ版の左右に背景をつけてPC版に */
	background-color: #fdf2e2;
	background-image: url(../img/top_bg.webp);
	background-repeat: no-repeat;
	background-size: 100%;
	background-attachment: fixed;
}

ul li:last-child {
	margin-bottom: 0;
}

/*----------------------------*/
/* 箇条書き */
ul {
	text-align: left;
	list-style: none;
	margin: 1em auto 0;
	width: fit-content;
	padding-inline-start: 0;
}

ul li {
	position: relative;
	margin-bottom: 0.5em;
	line-height: 1.4em;
	padding-left: 0.7em;
}

ul li::before {
	content: '';
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
}

/*----------------------------*/
.mb {
	display: block;
}

.pc {
	display: none;
}

main {
	position: relative;
}

div.image_wrap img {
	margin-bottom: 10vw;
	width: 100%;
}

div.container {
	margin-bottom: 20vw;
}

div.contents-wide {
	position: relative;
}

div.contents-right {
	position: relative;
}

div.contents-left {
	position: relative;
}


header {
	position: relative;
	width: 100%;
}

header img {
	width: 100%;
}

h1 {
	margin-bottom: -2vw;
}

div.topbtn {
	position: absolute;
	top: 0;
	left: 0.5vw;
	width: 26vw;
}

div.topbtn img {
	width: 100%;
	margin-bottom: 5%;
}

div.top_text1 {
	padding: 0 10vw;
}

footer {
	position: relative;
	width: 100%;
	margin: 0 auto;
	text-align: center;
}

footer p {
	margin: 0;
}

footer img {
	width: 100%;
}

div.footer_text {
	margin-top: 4rem;
	padding-bottom: 12rem;
	font-size: 4rem;
}

div.footer_text p {
	margin-top: 2rem;
}

.footer_text_addr {
	font-size: 0.9em;
}

.footer_text_tel {
	font-size: 0.9em;
	width: fit-content;
	margin: 8rem auto 0;
}

.footer_text_tel p {
	font-weight: bold;
}

.footer_text_tel span {
	font-size: 0.85em;
	margin-right: 1rem;
}

div.footer_image {
	position: absolute;
	bottom: 0;
	right: 5vw;
	width: 16vw;
}

/*----------------------------*/
@media screen and (min-width: 481px) {
	/* 481px以上に適用されるCSS（タブレット用） */

	a[href^="tel:"] {
		/* pointer-events: none; */
	}

	.mb {
		display: none;
	}

	.pc {
		display: block;
	}

	html {
		font-size: 0.5vw;
	}

	div.container {
		display: flex;
		flex-direction: row-reverse;
		gap: 20px;
	}


	div.contents-wide {
		padding: 0 12vw;

	}

	div.contents-right {
		width: 44vw;
		padding-left: 2vw;
	}

	div.contents-right-inner {
		position: sticky;
		top: 0;
	}

	div.contents-right img {
		max-height: 100vh;
		object-fit: contain;
	}

	div.contents-left {
		flex: 54vw;
	}

	div.topbtn {
		width: 18vw;
	}

	header {
		padding: 0 13vw;
	}

	footer {
		width: 90vw;
	}

}

@media screen and (min-width: 960px) {
	/* 960px以上に適用されるCSS（PC用） */

	html {
		font-size: 0.4vw;
	}

	main {
		padding: 0 11vw;
	}

	div.contents-left {
		flex: 38vw;
	}

	header {
		padding: 0 18vw;
	}

	footer {
		width: 80vw;
	}
}

/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
	transition: 0.5s ease-in-out;
	transform: translateY(50px);
	opacity: 0;
}

.scroll_up.on {
	transform: translateY(0);
	opacity: 1.0;
}

.scroll_delay {
	transition-delay: 0.2s;
}