@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz@9..40&family=Zen+Kaku+Gothic+New:wght@900&display=swap');
body {
	font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', meiryo, sans-serif;
	color: #1F1F1F;
	line-height: 1.6;
	text-align: justify;
}

.green { color: #019C84; }
.pink { color: #EB6D87; }

.bg_grey { background-color: #F2F2F2; }
.bg_green { background-color: #019C84; }

.container, 
.inner {
	position: relative;
	padding: 0 15px;
}

.box {
	border-radius: 30px;
	overflow: hidden;
}

header {
	position: relative;
	z-index: 1000;
}

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

header .logo {
	padding: 4px 0;
	height: 60px;
}

footer {
	position: relative;
	padding: 15px 0;
	margin-top: 30px;
	background-color: #FFFFFF;
}

footer nav {
	display: none;
}

footer img {
	max-width: 80%;
}

footer #copyright {
	padding-top: 20px;
	margin-top: 20px;
	font-size: 1.1rem;
	border-top: solid 1px #CCCCCC;
}

main {
	position: relative;
	overflow: hidden;
}

/* pagetop */
#pagetop {
	position: fixed;
	right: 15px;
	bottom: 10px;
	width: 40px;
	height: 40px;
	z-index: 100;
}

#pagetop a {
	display: inline-block;
	position: relative;
	text-indent: -9999px;

}

#pagetop a::before,
#pagetop a::after {
	content: "";
	position: absolute;
	bottom: 0;
	margin: auto;
	vertical-align: middle;
}

#pagetop a::before {
	left: 0;
	width: 40px;
	height: 40px;
	background-color: #1F1F1F;
	border-radius: 5px;
	opacity: 0.5;
}

#pagetop a::after {
	top: -10px;
	left: 14px;
	width: 12px;
	height: 12px;
	border-top: solid 2px #FFFFFF;
	border-right: solid 2px #FFFFFF;
	transform: rotate(-45deg);
}

.fadein {
	opacity: 0;
	transition: 1s;
}

.fadein.is-show {
	opacity: 1;
}

.poyon.is-show {
	animation: poyon 1.2s;
}

@keyframes poyon {
	0% {
		transform: scale(1.0, 1.0) translate(0%, 0%);
	}
	15% {
		transform: scale(0.9, 0.9) translate(0%, 5%);
	}
	30% {
		transform: scale(1.3, 0.8) translate(0%, 10%);
	}
	50% {
		transform: scale(0.8, 1.3) translate(0%, -10%);
	}
	70% {
		transform: scale(1.1, 0.9) translate(0%, 5%);
	}
	100% {
		transform: scale(1.0, 1.0) translate(0%, 0%);
	}
}

.fluffy {
	animation: fluffy 1.5s ease-in-out infinite alternate-reverse;
}

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

.swaying {
	animation: swaying 2.1s ease-in-out infinite alternate-reverse;
}

@keyframes swaying {
	0% {
		
		transform: translate(2px) rotate(5deg);
	}
	100% {
		transform: translate(-2px) rotate(-5deg);
	}
}

.slide {
	animation: slide 1.8s ease-in-out infinite alternate-reverse;
}

@keyframes slide {
	0% {
		transform: translateX(-5px);
	}
	100% {
		transform: translateX(5px);
	}
}

.vibration {
	animation: vibration .2s infinite;
}

@keyframes vibration {
	0% {
		transform: translate(0px, 0px) rotateZ(0deg);
	}
	25% {
		transform: translate(1px, 1px) rotateZ(1deg);
	}
	50% {
		transform: translate(0px, 1px) rotateZ(0deg);
	}
	75% {
		transform: translate(1px, 0px) rotateZ(-1deg);
	}
	100% {
		transform: translate(0px, 0px) rotateZ(0deg);
	}
}


@media print, screen and (max-width: 767px) {
	.pc { display: none; }

	.noscroll { overflow: hidden; }

	header nav {
		display: none;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		margin: auto;
		background-color: #019C84;
		transition: all .5s;
		opacity: 0;
	}
	
	header nav ul {
		display: block;
		position: absolute;
		top: calc(50% - 30px);
		left: 50%;
		width: 70%;
		transform: translate(-50%, -50%);
	}
	
	header nav > ul:first-of-type {
		padding-top: 60px;
	}
	
	header nav > ul:last-of-type {
		padding-bottom: 74px;
	}
	
	header nav ul li {
		position: relative;
		display: block;
		line-height: 1;
		text-align: center;
		background-color: #019C84;
		border-bottom: solid 2px #FFFFFF;
	}
	
	header nav ul li a {
		display: block;
		padding: 1.2em 0;
		font-size: 1.4em;
		font-weight: bold;
		color: #FFFFFF;
		white-space: nowrap;
	}
	
	header nav ul li label {
		display: inline-block;
		position: absolute;
		bottom: 0;
		right: 0;
		width: 60px;
		height: 100%;
		border-left: solid 1px #A5A5A5;
		cursor: pointer;
	}
	
	header nav ul li label::before, 
	header nav ul li label::after {
		content: "";
		display: block;
		position: absolute;
		top: 1.5em;
		left: 50%;
		width: 20px;
		height: 5px;
		background-color: #A5A5A5;
		border-radius: 10px;
	}
	
	header nav ul li label::before {
		transform: translate(-50%, -50%) rotate(-90deg);
	}
	
	header nav ul li label::after {
		transform: translate(-50%, -50%);
	}

	header #menu .btn_menu,
	header #menu .btn_menu span {
		display: inline-block;
	}
	
	header #menu .btn_menu {
		position: absolute;
		top: 10px;
		right: 10px;
		padding: 0;
		width: 40px;
		height: 40px;
		text-indent: -9999px;
		z-index: 2000;
	}
	
	header #menu .btn_menu label {
		display: block;
		position: relative;
		width: 100%;
		height: 100%;
		cursor: pointer;
	}
	
	header #menu .btn_menu label::before, 
	header #menu .btn_menu label::after {
		content: "";
	}
	
	header #menu .btn_menu label::before, 
	header #menu .btn_menu label::after, 
	header #menu .btn_menu .hamburger {
		position: absolute;
		left: 0;
		width: 100%;
		height: 20%;
		background-color: #019C84;
	}
	
	header #menu .btn_menu label::before {
		top: 0;
	}
	
	header #menu .btn_menu label::after {
		bottom: 0;
	}
	
	header #menu .btn_menu .hamburger {
		top: 50%;
		transform: translateY(-50%);
	}
	
	header #menu #open:checked ~ nav {
		display: inline-block;
		height: 100vh;
		transition: all .5s;
		opacity: 1;
		overflow-y: scroll;
		-ms-overflow-style: none;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	
	header #menu #open:checked ~ nav::-webkit-scrollbar, 
	header #menu #open:checked ~ nav ul::-webkit-scrollbar {
		display: none;
	}
	
	header #menu #open:checked ~ .btn_menu label::before {
		top: 40%;
		background-color: #FFFFFF;
		transform: rotate(-45deg);
	}
	
	header #menu #open:checked ~ .btn_menu label::after {
		bottom: 40%;
		background-color: #FFFFFF;
		transform: rotate(45deg);
	}
	
	header #menu #open:checked ~ .btn_menu .hamburger {
		opacity: 0;
	}
}


@media print, screen and (min-width: 768px) {
	a[href^="tel:"] {
		color: #1F1F1F;
		cursor: default;
		pointer-events: none;
		text-decoration: none;
	}

	.sp { display: none; }

	.container, 
	.container2 {
		position: relative;
		padding: 0;
		margin: auto;
		width: 1100px;
	}

	.inner {
		position: relative;
		padding: 0;
		margin: auto;
		width: 920px;
	}

	header, 
	footer, 
	main {
		min-width: 1100px;
	}

	header {
		padding: 10px;
	}

	header .logo {
		width: 104px;
		height: auto;
	}

	header > div {
		display: flex;
		align-items: center;
		gap: 30px;
	}

	header #menu {
		flex: 1;
	}

	nav ul {
		display: flex;
		padding-bottom: 10px;
		border-bottom: solid 1px #CCCCCC;
	}

	nav > ul > li {
		flex: 1;
		font-size: 1.4rem;
		text-align: center;
	}

	header nav > ul > li:last-of-type {
		display: none;
	}

	footer nav > ul > li:last-of-type {
		position: absolute;
		right: 10px;
		bottom: 60px;
	}

	footer {
		padding: 30px 0 10px 0;
	}

	footer nav {
		display: block;
	}

	footer img {
		margin: 100px auto;
		width: 355px;
	}

	footer #copyright {
		font-size: 1.3rem;
	}
}